Index: DPI_Switch/c
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/c	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/c	(nonexistent)
@@ -1,99 +0,0 @@
-#!/bin/bash
-
-gensched () {
-if [ -f output/sched.rom ];then rm output/sched.rom; fi
-while [ 1 ];do
-	if [ -n "$1" ];then cat sched/$1.dat >> output/sched.rom; else return; fi
-	shift
-done
-}
-
-#enckey="-k 00000000000000000000000000000000"
-
-cd ${0%/*}
-for f in program/*.prog 
-  do if [[ ! $f =~ "bt.prog" && ! $f =~ "patch.prog" && ! $f =~ "sim.prog" ]] ; then progs="$progs $f"; fi; done
-cat program/bt.prog $progs  > output/bt_program23.meta
-
-case $1 in
-s)
-#	gensched sim usb
-	gensched sim
-#	enckey="-k key -i iv"
-	sed '1,4 c define REVD\ndefine ROMCODE\ndefine SIM' -i output/bt_program23.meta;;
-p)
-	echo 'mem_patch00:0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' > output/sched.rom
-	echo 'mem_lap:00 00 00 00 00 00' >> output/sched.rom
-	sed '3 d' -i output/bt_program23.meta;;
-f)
-	gensched test usb fpga
-	enckey="-k key"
-	sed '2 c define FPGA' -i output/bt_program23.meta;;
-t)
-	echo test;gensched test 109x;;
-d)
-        gensched 109x usb
-	sed '2 c define DONGLE' -i output/bt_program23.meta;;
-m)
-        gensched 109x mouse
-	sed '2 c define MOUSE' -i output/bt_program23.meta;;
-esac
-
-
-for f in format/*.format; do if [[ ! $f =~ "bt.format" && ! $f =~ "command.format" ]] ; then fmts="$fmts $f"; fi; done
-cat format/bt.format $fmts format/command.format > output/bt_format.meta
-perl $UTIL/mergepatch.pl 
-perl $UTIL/memalloc.pl
-cd output
-osiuasm bt_program23 -O-W
-sed 's/\(.*\)\r/\1/' -i bt_program23.meta 
-
-
-defs=( FPGA SIM ROMCODE BLE REVA REVB )
-for i in $(seq 0 $((${#defs[@]} - 1))) ; do
-	grep  "^define ${defs[$i]}$" bt_program23.meta -q
-	tsts[$i]=$?
-done
-
-#for i in $(seq 0 $((${#defs[@]} - 1))) ; do echo test ${tsts[$i]};done
-
-geneep -n $enckey
-
-if [[ $2 == "o" ]];then exit;fi
-
-if [ ${tsts[1]} -eq 0 ] ; then
-	sed '8193,24576d' < romcode.rom > romcode0.rom
-	sed '1,8192d' < romcode.rom > romcode1.rom
-	cp romcode0.rom romcode1.rom ../../sim
-	cp romcode.rom ramcode.rom ../../sim
-	if [ -f eeprom.dat ] ; then cp eeprom.dat ../../sim/ ; fi
-	if [ -f otp.rom ] ; then sed '7 c 1' < otp.rom > ../../sim/otp.rom ; fi
-else
-	if [ ${tsts[0]} -eq 0 ] ; then
-		if [ ${tsts[2]} -eq 0 ] ; then
-			sed '8193,24576d' < romcode.rom > romcode0.rom
-			sed '1,8192d' < romcode.rom > romcode1.rom
-			perl $UTIL/rom2mif.pl < romcode.rom > romcode.mif; mv romcode.mif  ../../fpga/
-			echo fpga
-			if [ -f otp.rom ] ; then perl $UTIL/rom2mif.pl < otp.rom > otp.mif; mv otp.mif ../../fpga/ ; fi
-			if [[ $2 == o ]] ; then exit; fi
-			e ku; e hu ramcode.rom 0
-			e su sched.rom;exit 
-		fi
-#		if [[ $1 == "f" ]] ; then 	../../fpga/p u;sleep 1; e su sched.rom;exit; fi
-	fi
-	if [ ! -s ramcode.rom ] ; then exit; fi
-	if [[ $2 =~ e ]];then 
-		e pu;cd ..;e ep;e ku
-	elif [[ $2 =~ [f] ]];then 
-		e ku;e hu romcode.rom 2000;e hu ramcode.rom 0; e su sched.rom;e ku
-	else
-		if [ -f sched.rom ]; then
-			e ku; e hu ramcode.rom 0;e su sched.rom;e pu;e cu
-		else
-			e ku;e hu
-		fi
-	fi
-fi
-
-cd ..
Index: DPI_Switch/do.bat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/do.bat	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/do.bat	(nonexistent)
@@ -1,168 +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=shutter
-@rem set device_option=antilost
-@rem set device_option=hci
-@rem set device_option=kb
-@set device_option=mouse
-@rem set device_option=le_kb
-@rem set device_option=dongle
-@rem set device_option=module
-@rem set device_option=prcp
-@rem set device_option=car
-@rem set device_option=remote_car
-@echo off
-
-setlocal enabledelayedexpansion
-for /f %%f in ('dir /b /o program\*.prog') do @if not %%f==bt.prog if not %%f==patch.prog if not %%f==sim.prog set progs=!progs! program\%%f
-type program\bt.prog %progs% > output\bt_program23.meta
-for /f %%f in ('dir /b /o format\*.format') do @if not %%f==bt.format if not %%f==command.format set fmts=!fmts! format\%%f
-type format\bt.format %fmts% format\command.format > output\bt_format.meta
-perl util/mergepatch.pl output/bt_program23.meta
-perl util/memalloc.pl output/bt_format.meta
-
-cd output
-osiuasm bt_program23 -O-W
-
-if "%device_option%" equ "hci" (
-  copy ..\sched\hci_boot.dat ..\output\sched.rom
-) else if "%device_option%" equ "kb" (
-copy ..\sched\ssp.dat + ..\sched\kb.dat +  ..\sched\fpga.dat ..\output\sched.rom
-) else if "%device_option%" equ "le_kb" (
-  copy ..\sched\le_kb.dat + ..\sched\fpga.dat ..\output\sched.rom
-) else if "%device_option%" equ "mouse" (
-  copy ..\sched\109x.dat + ..\sched\mouse.dat ..\output\sched.rom
-) else if "%device_option%" equ "module" (
-  copy ..\sched\DM_module.dat + ..\sched\109x.dat ..\output\sched.rom
-) else if "%device_option%" equ "shutter" (
-  copy ..\sched\shutter.dat + ..\sched\109x.dat ..\output\sched.rom
-) else if "%device_option%" equ "antilost" (
-  copy ..\sched\antilost.dat + ..\sched\109x.dat ..\output\sched.rom
-) else if "%device_option%" equ "dongle" (
-  copy  ..\sched\109x.dat + ..\sched\usb.dat ..\output\sched.rom
-) else if "%device_option%" equ "prcp" (
-  copy ..\sched\Le_prcp.dat + ..\sched\fpga.dat ..\output\sched.rom
-) else if "%device_option%" equ "test" (
-  copy ..\sched\test.dat + ..\sched\fpga.dat ..\output\sched.rom
-) else if "%device_option%" equ "car" (
-  copy ..\sched\car.dat + ..\sched\109x.dat ..\output\sched.rom
-) else if "%device_option%" equ "remote_car" (
-  copy ..\sched\remote_car.dat + ..\sched\109x.dat ..\output\sched.rom
-) else (
-
-cd ..
-echo **********************************
-echo Error: illegal device_option !
-echo **********************************
-goto end
-) 
-
-if "%1" equ "eep" (
-	goto genromrevc
-)else (
-  goto downloadram
-)
-
-:geneeprom
-@rem echo on
-@echo Start to generate EEPROM code
-copy ..\sched\mouse.dat ..\output\sched.rom
-
-..\util\geneep ramcode.rom fwram.rom sched.rom %enc% %enckey% a
-perl ..\util\a1bugfix.pl
-osiuasm bt_program23 -O-W
-..\util\geneep ramcode.rom fwram.rom sched.rom %enc% %enckey% a
-goto gen_eep_end
-
-
-
-
-:genromrevb
-echo off
-@echo Start to generate EEPROM code
-..\..\regedr\geneep ramcode.rom fwram.rom sched.rom %enc% %enckey% b
-goto gen_eep_end
-
-
-:genromrevc
-echo off
-@echo Start to generate EEPROM code
-
-geneep -n -f -z  ramcode.rom sched.rom 0 %enckey% c
-
-rem geneep -n -k key.txt
-
-
-cd ..\output
-copy flash.dat ..\util\flash1.dat
-del flash.dat
-
-cd ..\util
-perl flash_dat2eeprom_dat.pl flash1.dat flash.dat
-copy flash.dat ..\output\flash.dat
-del flash1.dat
-del flash.dat
-
-
-cd ..\output
-echo flash.dat Generated......
-
-if "%device_option%" equ "module" (
-perl eeprom2hciimage_1021s.pl
-echo bt_patch.bin Generated......
-perl bin2array.pl > bt_patch.h
-echo bt_patch.h Generated......
-)
-
-
-:gen_eep_end
-cd ..
-echo **********************************
-echo FLASH Generated.
-echo The Device is %device_option%. 
-echo Use command "e fp" to download FLASH.
-echo **********************************
-goto end
-
-
-
-
-:genrom
-@rem echo on
-perl ..\util\rom2mif.pl romcode
-del ..\..\%FPGA_PATH%\romcode.mif
-copy .\romcode.mif ..\..\%FPGA_PATH%\romcode.mif
-perl ..\util\gen_patch_h.pl >%YC_PATCH_FILE%
-copy .\%YC_PATCH_FILE% ..\..\%MV_PATCH%\%YC_PATCH_FILE%
-copy .\%YC_PATCH_FILE% D:\work\yichip\mv_proj\src\inc\%YC_PATCH_FILE%
-cd ..\..\%FPGA_PATH%
-quartus_cdb btspi -c btspi --update_mif
-quartus_asm --read_settings_files=off --write_settings_files=off btspi -c btspi
-quartus_pgm -c USB-Blaster[USB-0] -m jtag -o "p;.\output\btspi.sof" 
-@echo bitstream_compression=on >1
-@echo memory_map_file=on >> 1
-quartus_cpf -c -o 1 -s EP3C55 -d EPCS16 output\btspi.sof output\btspi.jic  
-@rem quartus_pgm -c USB-Blaster[USB-0] -m jtag -o "pi;.\output\btspi.jic"   
-@del 1
-goto end
-
-
-
-:downloadram
-echo on
-@echo Start to download ram code
-e ku
-e hu
-e su sched.rom
-@echo **********************************
-@echo RAM CODE has been downloaded.
-@echo The Device is %device_option%. 
-@echo **********************************
-cd ..
-
-
-:end
Index: DPI_Switch/flash_clear.bat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/flash_clear.bat	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/flash_clear.bat	(nonexistent)
@@ -1,6 +0,0 @@
-e pu
-e 8070l20
-e 8081 8
-e fr 0 10
-e fc
-e fr 0 10
\ No newline at end of file
Index: DPI_Switch/flash_download.bat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/flash_download.bat	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/flash_download.bat	(nonexistent)
@@ -1,12 +0,0 @@
-call do.bat eep
-e ku
-ping -n 2 127.1 >nul
-e pu
-
-e 8081 8
-
-e fc
-e fp
-e fr 0 10
-e ku
-e au
Index: DPI_Switch/format/Hid.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/Hid.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/Hid.format	(nonexistent)
@@ -1,21 +0,0 @@
-
-(
-/*HID TYPE*/
-0x01 HID_TYPE_CONTROL
-0x04 HID_TYPE_GET_REPORT
-0x05 HID_TYPE_SET_REPORT
-0x07 HID_TYPE_SET_PROTOCOL
-0x09 HID_TYPE_SET_IDLE
-0x0a HID_TYPE_DATA
-/*HID REPORT ID*/
-0x01 HID_REPORT_ID_KB
-
-0x00 HID_CONTROL_P_NOOPERATION
-0x01 HID_CONTROL_P_HARDRESET
-0x02 HID_CONTROL_P_SOFTRESET
-0x03 HID_CONTROL_P_SUSPEND
-0x04 HID_CONTROL_P_EXITSUSPEND
-0x05 HID_CONTROL_P_VIRTUALCABLEUNPLUG
-)
-
-
Index: DPI_Switch/format/app.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app.format	(nonexistent)
@@ -1,326 +0,0 @@
-
-memalloc(
-
-/* load code */
-1 mem_ucode_status
-2 mem_otp_ucode_flag
-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
-2 mem_ucode_ptr
-16 mem_ucode_keybuf
-18 mem_check_plap_temp
-
-
-1 mem_reconnect_flag
-1 mem_switch_fail_master_count
-1 mem_app_evt_timer_count
-
-)
-
-xmemalloc(
-1 mem_app_handshake_flag
-2 mem_sniff_param_interval
-2 mem_sniff_param_attempt
-2 mem_sniff_param_timeout
-
-/*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_bt_process
-2 mem_cb_idle_process
-2 mem_cb_bb_event_process
-2 mem_cb_discovry_timeout
-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_eeprom_base
-
-1 mem_unsniff2sniff_timer_count
-//lpm mode
-1 mem_wake_up_delay_timer
-
-1 mem_app_connection_options
-
-//
-2 mem_app_disconn_reason
-2 mem_app_disconn_reason_flag
-4 mem_lpm_delay_after_sniff
-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
-
-1 mem_ui_led_struct_num
-2 mem_ui_led_struct_ptr
-
-//adc
-2 mem_0_5_adc_io_data
-2 mem_1v_adc_hvin_data
-2 mem_2v_adc_vinlpm_data
-2 mem_1v_adc_io_data
-2 mem_5v_adc_hvin_data
-2 mem_3v_adc_vinlpm_data
-2 mem_otp_adc_flag
-2 mem_reference_voltage
-1 mem_adc_config_flag
-1 mem_adc_channel
-2 mem_adc_current_value
-1 mem_adc_power_flag	//bit0:low power falg ; bit1:no power flag
-
-3 mem_spi_write_addr
-2 mem_spi_write_ptr
-2 mem_spi_write_len
-1 mem_spi_write_flash_sm
-1 mem_eeprom_wp_gpio
-2 mem_kscan_ptr
-ifdef SPI_SIMULATE
-//spi gpio config
-0 mem_spi_simulate_struct
-1 mem_spi_simulate_cs_gpio
-1 mem_spi_simulate_sclk_gpio
-1 mem_spi_simulate_mosi_gpio
-1 mem_spi_simulate_miso_gpio
-1 mem_spi_simulate_motion_gpio
-//spi slave read byte
-50 mem_spi_simulate_read_byte_slave
-1 mem_spi_simulate_read_byte_slave_temp
-1 mem_spi_simulate_read_length_slave
-1 mem_spi_simulate_read_length_slave_temp
-//spi slave write byte
-50 mem_spi_simulate_write_byte_slave
-1 mem_spi_simulate_write_byte_slave_temp
-1 mem_spi_simulate_write_byte_slave_temp_temp
-1 mem_spi_simulate_write_length_slave
-1 mem_spi_simulate_write_length_slave_temp
-endif
-
-0 mem_key_num_ptr
-2 mem_keyscan_ptr
-
-2 mem_power_param_ptr
-
-0 mem_power_on_flag	//forbid to move this variable
-2 mem_24g_head_ptr
-)
-//adc read
-(
-0 ADC_CONFIG_VINLPM
-1 ADC_CONFIG_HVIN
-2 ADC_CONFIG_GPIO
-)
-
-
-(
-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
-0x20 FLASH_COMMAND_SECTOR_ERASE
-)
-
-0x0000 otp_ucode_flag
-0x07f0 otp_ucode_aeskey
-
-/* adc data addr and flag */
-(
-0x07e0 OTP_CHIP_FUNCTIONS
-0x07e2 otp_adc_io_0_5V_addr
-0x07e4 otp_adc_hvin_1V_addr
-0x07e6 otp_adc_vinlpm_2V_addr
-0x07e8 otp_adc_io_1V_addr
-0x07ea otp_adc_hvin_5V_addr
-0x07ec otp_adc_vinlpm_3V_addr
-0x07ee otp_adc_flag_addr
-0xaa55 OTP_ADC_FLAG
-)
-
-/* data stored in eeprom */
-(
-0	eeprom_nv_ram
-
-195	eeprom_module_init_flag//2
-
-)
-
-/*mem_app_handshake_flag*/
-(
-0 APP_HANDSHAKE_NULL
-1 APP_HANDSHAKE_DONE
-
-)
-/*mem_device_option*/
-(
-1 dvc_op_hci
-4 dvc_op_dongle
-5 dvc_op_spp
-6 dvc_op_ukey
-7 dvc_op_ir
-
-9 dvc_op_shutter
-10 dvc_op_module
-11 dvc_op_ble_mouse
-12 dvc_op_ble_kb
-13 dvc_op_ble_prcp
-14 dvc_op_car
-15 dvc_op_AntiLost
-16 dvc_op_remote_car
-255 dvc_op_test
-//device option hight 4
-6 dvc_op_mouse
-7 dvc_op_keyboard
-//device option low 2
-(
-0 MODE_3_MOUSE
-1 MODE_4_MOUSE
-)
-)
-
-(
-3 twspi_sclk
-4 twspi_sdio
-)
-
-(
-4 pan_clk_bit
-5 pan_dat_bit
-6 pan_mov_bit
-)
-
-(
-7 otp_uflag_aes
-6 otp_uflag_skip_eep
-5 otp_uflag_skip_flash
-4 otp_uflag_hci
-)
-
-/* ir command */
-(
-1 ircmd_record
-2 ircmd_play
-3 ircmd_write_pulse
-4 ircmd_write_seq
-5 ircmd_write_next
-
-8 ircmd_test_play
-9 ircmd_test_rec
-
-10 ircmd_report_pulse
-11 ircmd_report_seq
-12 ircmd_report_raw
-
-20 ircmd_screen_on
-21 ircmd_screen_off
-)
-
-(
-7 gpio_active_bit
-)
-(
-2 HID_HANDSHAKE_TIMEOUT
-
-)
-
-(
-1 APP_FLAG_RECONNECT
-)
-(
-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
-1 APP_DISC_AFTER_PAIRING
-2 APP_DISC_AFTER_RECONN
-3 APP_DISC_AFTER_SNIFF
-4 APP_DISC_AFTER_SETUP_DONE
-5 APP_DISC_AFTER_HANDSHAKE
-6 APP_DISC_BT
-7 APP_DISC_BLE
-8 APP_DISC_L2CAP_REFUSED
-9 APP_DISC_SWITCH_FAIL
-)
-//eeprom init flag
-(
-	0xaa55 EEPROM_INIT_FLAG
-)
-
-(
-1 KEY_CONF_STRUCT_LEN
-0 KEY_PIN_OFFSET
-)
-
-(
-12000000 PWM_12MHZ
-)
-(
-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
-)
-
Index: DPI_Switch/format/app_antiLost.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_antiLost.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_antiLost.format	(nonexistent)
@@ -1,202 +0,0 @@
-omemalloc(
-// memblock for cover the variables portion at shutter.format
-2 mem_antl_lpm_interval
-2 mem_antl_adv_interval
-2 mem_antl_slow_adv_lpm_interval
-2 mem_antl_slow_adv_adv_interval
-0 mem_antl_led_style
-1 mem_antl_led_type
-1 mem_antl_led_blink_count
-1 mem_antl_led_gpio
-2 mem_antl_led_on_time
-2 mem_antl_led_off_time
-2 mem_antl_led_cb_on
-2 mem_antl_led_cb_off
-
-0 mem_antl_buzzer_style
-1 mem_antl_buzzer_type
-1 mem_antl_buzzer_blink_count
-1 mem_antl_buzzer_gpio
-2 mem_antl_buzzer_on_time
-2 mem_antl_buzzer_off_time
-2 mem_antl_buzzer_cb_on
-2 mem_antl_buzzer_cb_off
-
-0 mem_antl_fast_adv_led_style
-1 mem_antl_fast_adv_led_type
-1 mem_antl_fast_adv_led_blink_count
-1 mem_antl_fast_adv_led_gpio
-2 mem_antl_fast_adv_led_on_time
-2 mem_antl_fast_adv_led_off_time
-
-0 mem_antl_slow_adv_led_style
-1 mem_antl_slow_adv_led_type
-1 mem_antl_slow_adv_led_blink_count
-1 mem_antl_slow_adv_led_gpio
-2 mem_antl_slow_adv_led_on_time
-2 mem_antl_slow_adv_led_off_time
-
-0 mem_antl_power_starting_led_style
-1 mem_antl_power_starting_led_type
-1 mem_antl_power_starting_led_blink_count
-1 mem_antl_power_starting_led_gpio
-2 mem_antl_power_starting_led_on_time
-2 mem_antl_power_starting_led_off_time
-
-7 mem_antl_power_starting_buzzer_style
-
-0 mem_antl_power_off_led_style
-1 mem_antl_power_off_led_type
-1 mem_antl_power_off_led_link_count
-1 mem_antl_power_off_led_gpio
-2 mem_antl_power_off_led_on_time
-2 mem_antl_power_off_led_off_time
-
-0 mem_antl_power_off_buzzer_style
-1 mem_antl_power_off_buzzer_type
-1 mem_antl_power_off_buzzer_link_count
-1 mem_antl_power_off_buzzer_gpio
-2 mem_antl_power_off_buzzer_on_time
-2 mem_antl_power_off_buzzer_off_time
-
-7 mem_antl_alert_led_stlye
-
-0 mem_antl_alert_buzzer_stlye
-1 mem_antl_alert_buzzer_type
-1 mem_antl_alert_buzzer_blink_count
-1 mem_antl_alert_buzzer_gpio
-2 mem_antl_alert_buzzer_on_time
-2 mem_antl_alert_buzzer_off_time
-
-0 mem_antl_key_led_style
-1 mem_antl_key_led_type
-1 mem_antl_key_led_blink_count
-1 mem_antl_key_led_gpio
-2 mem_antl_key_led_on_time
-2 mem_antl_key_led_off_time
-
-7 mem_antl_key_buzzer_style
-
-1 mem_antl_queue_width
-1 mem_antl_queue_depth
-1 mem_antl_queue_curr_num
-1 mem_antl_queue_read_ptr
-1 mem_antl_queue_write_ptr
-80 mem_antl_queue_buff
-
-1 mem_antl_key_scan_enable
-1 mem_antl_led_num
-4 mem_antl_led_gpio_map
-
-0 mem_antl_power_param
-1 mem_antl_power_state
-1 mem_antl_power_timer
-1 mem_antl_power_off_timeout
-1 mem_antl_power_starting_timeout
-2 mem_antl_power_off_cb
-2 mem_antl_power_starting_cb
-2 mem_antl_power_standby_cb
-2 mem_event_button_up_cb
-
-1 mem_antl_key_num
-2 mem_cb_antl_key
-4 mem_antl_key_conf0
-
-15 mem_antl_key0_press
-15 mem_antl_key0_release
-
-///////
-1 mem_antl_conn_updata_procedure_state
-2 mem_client_characteristic_configuration_descriptor
-///////
-
-
-//100ms timer
-2 mem_adc_timer
-1 mem_antl_conn_update_timer
-1 mem_antl_send_updata_le_param_timer
-////
-
-2 mem_antl_le_sleep_timer
-2 mem_antl_fast_adv_timer
-2 mem_antl_fast_adv_timeout
-2 mem_antl_le_sleep_timeout
-1 mem_double_click_timer
-1 mem_butten_click_cnt
-
-//1 mem_dvc_seq
-/////////anti lost alarm state/////
-1 mem_antl_led_state
-1 mem_antl_buzzer_state
-1 mem_antl_key_state
-1 mem_antl_lost_mode
-1 mem_alarm_config
-1 mem_alarm_config_notfy_cnt
-
-6 mem_buzzer_pwm_conf
-
-
-/////////anti lost battery adc read////////
-2 mem_adc_timeout
-1 mem_voltage_remain_percent
-
-0 mem_battery_calculate_set
-2 mem_battery_full_voltage
-2 mem_battery_empty_voltage
-2 mem_battery_low_voltage
-2 mem_battery_current_voltage
-
-
-2 mem_rx_window_sniff_inc
-2 mem_interval_increment
-
-2 mem_antl_le_interval_min
-2 mem_antl_le_interval_max
-2 mem_antl_le_latency
-2 mem_antl_le_timeout
-2 mem_antl_le_unnormal_interval_min
-2 mem_antl_le_unnormal_interval_max
-2 mem_antl_le_unnormal_latency
-2 mem_antl_le_unnormal_timeout
-
-400 mem_AntiLost_le_att_list
-)
-
-//app new specific
-(
-0 CONN_PARAM_UPDATA_PROCEDURE_NO_INIT
-1 CONN_PARAM_UPDATA_PROCEDURE_STARTING
-2 CONN_PARAM_UPDATA_PROCEDURE_COMPLETE
-3 CONN_PARAM_UPDATA_PROCEDURE_FAILD
-)
-(
-0 NEW_SPEC_HEADER_OFFSET
-2 NEW_SPEC_OPCODE_OFFSET
-3 NEW_SPEC_DLEGTH_OFFSET  //data length offset
-5 NEW_SPEC_DADDR_OFFSET   //data address offset
-)
-(
-1 OPCODE1_BUTTEN_CLICK_ONCE
-2 OPCODE2_BUTTEN_DOUBLE_CLICK
-3 OPCODE3_ANTL_START_ALRAM
-4 OPCODE4_CURRENT_ALARM_STATE
-5 OPCODE5_BATTER_INFORMATION
-7 OPCODE7_ANTL_CONFIG_ALRAM
-)
-(
-0x0a NEW_SPEC_NOTIFY_HANDLE
-0x0b NEW_SPEC_NOTIFICATION_ENABLE_HANDLE
-0x0d NEW_SPEC_WRITE_HANDLE
-)
-//app new specific end
-
-//mem_anti_lost_mode
-(
-0x01 ANTI_LE_ALARM_ON
-0x00 ANTI_LE_ALARM_OFF
-)
-(
-0 NOTIFICATION_ENABLE_BIT
-1 INDICATION_ENABLE_BIT
-)
-
Index: DPI_Switch/format/app_car.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_car.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_car.format	(nonexistent)
@@ -1,287 +0,0 @@
-
-
-omemalloc(
-1 mem_car_hard_soft_switch
-1 mem_car_queue_each_size
-1 mem_car__queue_length
-
-1 mem_car_queue_curr_num
-1 mem_car_queue_read_ptr
-1 mem_car_queue_write_ptr
-120 mem_car_queue_ele
-
-20 mem_car_pop_queue_buff
-
-1 mem_car_led_num
-10 mem_car_led_map
-
-1 mem_car_style1_led_type
-1 mem_car_style1_blink_count
-1 mem_car_style1_struct_led_gpio
-2 mem_car_style1_on_time
-2 mem_car_style1_off_time
-2 mem_car_style1_cb_ledon
-2 mem_car_style1_cb_ledoff
-
-1 mem_car_style2_led_type
-1 mem_car_style2_blink_count
-1 mem_car_style2_struct_led_gpio
-2 mem_car_style2_on_time
-2 mem_car_style2_off_time
-2 mem_car_style2_cb_ledon
-2 mem_car_style2_cb_ledoff
-
-//////motor
-0 mem_le_receive_data
-2 mem_le_receive_packet_head
-1 mem_le_receive_cmd
-2 mem_le_receive_length
-10 mem_le_receive_payload
-1 mem_le_receive_checksum
-1 mem_motor1_status
-1 mem_motor1_speed
-1 mem_motor2_status
-1 mem_motor2_speed
-1 mem_motor3_status
-1 mem_motor3_speed
-
-0 mem_motor1_pwm_set
-1 mem_motor1_pwm_pin1_set
-1 mem_motor1_pwm_pin2_set
-1 mem_motor1_pwm_pin_set
-1 mem_motor1_pwm_channel_set
-3 mem_motor1_pwm_freq_set
-1 mem_motor1_pwm_dute_set
-0 mem_motor2_pwm_set
-1 mem_motor2_pwm_pin1_set
-1 mem_motor2_pwm_pin2_set
-1 mem_motor2_pwm_pin_set
-1 mem_motor2_pwm_channel_set
-3 mem_motor2_pwm_freq_set
-1 mem_motor2_pwm_dute_set
-0 mem_motor3_pwm_set
-1 mem_motor3_pwm_pin1_set
-1 mem_motor3_pwm_pin2_set
-1 mem_motor3_pwm_pin_set
-1 mem_motor3_pwm_channel_set
-3 mem_motor3_pwm_freq_set
-1 mem_motor3_pwm_dute_set
-
-1 mem_motor_select_p_n
-1 mem_car_motor_status
-1 mem_car_motor_speed
-0 mem_motor_pwm_set
-1 mem_motor_pwm_pin1_set
-1 mem_motor_pwm_pin2_set
-1 mem_motor_pwm_pin_set
-1 mem_motor_pwm_channel_set
-3 mem_motor_pwm_freq_set
-1 mem_motor_pwm_dute_set
-
-1 mem_ir_rx_gpio
-2 mem_ir_data
-2 mem_ir_rx_buf
-4 mem_ir_receive_clkn
-
-3 mem_ir_notify_data
-5 mem_ir_notify_data_head
-2 mem_ir_notify_data_payload
-1 mem_ir_notify_data_check_sum
-1 mem_car_ir_breakdown_check_timer
-1 mem_car_ir_breakdown_flag
-
-0 mem_car_led_control
-1 mem_car_led1_status
-1 mem_car_led2_status
-1 mem_car_led3_status
-1 mem_car_led4_status
-1 mem_car_led5_status
-1 mem_car_led6_status
-1 mem_car_led7_status
-1 mem_car_led8_status
-1 mem_car_led_control_timer
-1 mem_car_led_blink_status
-1 mem_car_led_no
-
-3 mem_car_info_request
-5 mem_car_info_request_head
-8 mem_car_info_request_payload
-1 mem_car_info_request_checksum
-
-0 mem_car_config_param
-1 mem_car_config_setting_flag
-1 mem_car_config_device_select
-1 mem_car_config_motor_layout
-1 mem_car_config_ir_enable
-1 mem_car_config_ir_rx_gpio
-1 mem_car_config_pairing_led_conn_status
-1 mem_car_config_pairing_led_gpio
-1 mem_car_config_led_num
-0 mem_car_config_blood_led_gpio
-1 mem_car_config_blood_led1_gpio
-1 mem_car_config_blood_led2_gpio
-1 mem_car_config_blood_led3_gpio
-1 mem_car_config_blood_led4_gpio
-1 mem_car_config_blood_led5_gpio
-1 mem_car_config_blood_led6_gpio
-1 mem_car_config_blood_led7_gpio
-1 mem_car_config_blood_led8_gpio
-1 mem_car_config_bat_notify_enable
-1 mem_car_config_low_voltage_led_gpio
-1 mem_car_config_low_voltage_percent
-1 mem_car_config_soft_switch_enable
-1 mem_car_config_soft_switch_gpio
-
-1 mem_car_notify_vdd_count
-1 mem_car_notify_vdd_timer
-1 mem_car_notify_vdd_value_last
-1 mem_car_notify_vdd_percent
-1 mem_car_working_flag
-1 mem_low_bat_flag
-
-3 mem_notify_bat_packet
-5 mem_notify_bat_head
-1 mem_notify_bat_payload
-1 mem_notify_bat_check_sum
-
-1 mem_vdd_notify_flag
-2 mem_car_current_vdd_value_temp
-2 mem_car_last_vdd_value
-
-0 mem_vdd_calculate_set
-2 mem_vdd_full_vol
-2 mem_vdd_empty_vol
-2 mem_vdd_low_vol
-2 mem_vdd_now_vol
-
-
-1 mem_car_24g_status
-2 mem_car_24g_no_data_timeout_count
-2 mem_car_24g_no_data_timeout_timer
-
-1 mem_car_24g_ir_receive_attack_count
-1 mem_car_24g_go_die_flag
-1 mem_car_attack_shake_timer
-1 mem_car_attack_shake_flag
-
-0 mem_car_soft_power
-1 mem_car_power_state
-1 mem_car_power_timer
-1 mem_car_power_off_timeout
-1 mem_car_power_starting_timeout
-2 mem_car_power_off_cb
-2 mem_car_power_starting_cb
-2 mem_car_power_standby_cb
-2 mem_car_ui_button_up_cb
-
-
-500 mem_car_le_att_list
-
-1 mem_car_moto1_blank_timer
-1 mem_car_moto2_blank_timer
-1 mem_car_moto3_blank_timer
-1 mem_car_24g_received_pac
-400 mem_24g_car_head_ptr
-)
-
-(
-//20ms
-0x0020	FAST_ADV_INTERVAL_VALUE_CAR
-)
-
-(
-0x14 ATT_CAR_CONTROL_HANDLE
-0x14 ATT_SPEED_SET_HANDLE
-)
-
-
-(
-0 TURN_FRONT
-1 TURN_LEFT
-2 TURN_RIGHT
-0 MOTOR_STOP
-1 GO_FRONT
-2 GO_BACK
-0x6b5a LE_RECEIVE_PACKET_HEAD
-)
-
-(
-0 FLAG_IR_DISABLE
-1 FLAG_IR_ENABLE
-)
-
-(
-0 DEVICE_CAR
-1 DEVICE_TANK
-2 DEVICE_BATTLE_CAR
-3 DEVICE_BATTLE_TANK
-4 DEVICE_REMOTE
-)
-
-(
-0 F_B_MOTOR
-1 L_R_MOTOR
-2 F_B_BATTERY
-3 L_R_BATTERY
-)
-
-
-
-(
-1 SPEED_LEVEL_1
-2 SPEED_LEVEL_2
-3 SPEED_LEVEL_3
-4 SPEED_LEVEL_4
-5 SPEED_LEVEL_5
-6 SPEED_LEVEL_6
-7 SPEED_LEVEL_7
-8 SPEED_LEVEL_8
-9 SPEED_LEVEL_9
-10 SPEED_LEVEL_10
-)
-
-(
-0 PWM0_DUTY_SETTING
-1 PWM1_DUTY_SETTING
-2 PWM2_DUTY_SETTING
-)
-
-(
-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
-)
-
-(
-0 CAR_REMOTE_CHECK_BUTTON
-1 CAR_REMOTE_CHECK_ROCKER
-)
-
-(
-0x11 CAR_NOTIFY_HANDLE
-)
-
-(
-0 LED_OFF
-1 LED_ON
-2 LED_BLINK
-0xFF LED_INVALID
-)
-
-(
-0xFF INVALID_PIN_NUM
-)
-
-
-(
-0 POWER_ON
-1 WORK_PAIRED
-2 WORK_SEARCH
-)
-
-
Index: DPI_Switch/format/app_light.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_light.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_light.format	(nonexistent)
@@ -1,34 +0,0 @@
-omemalloc(
-1 mem_light_pwm0
-1 mem_light_pwm1
-1 mem_light_pwm2
-1 mem_light_pwm3
-1 mem_light_pwm4
-1 mem_light_pwm5
-
-1 mem_light_pairing_enable
-2 mem_light_pairing_timer
-1 mem_light_cnum
-1 mem_light_next_record
-80 mem_light_clist
-
-
-1 mem_light_crr_cmd_count
-1 mem_curr_packet_num
-)
-
-(
-0 LIGHT_GROUP0
-)
-
-(
-0 LIGHT_CMD_PWM0
-1 LIGHT_CMD_PWM1
-2 LIGHT_CMD_PWM2
-3 LIGHT_CMD_PWM3
-4 LIGHT_CMD_PWM4
-5 LIGHT_CMD_PWM5
-6 LIGHT_CMD_AUTO_MODE
-0xff LIGHT_CMD_PAIRING
-
-)
Index: DPI_Switch/format/app_lightc.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_lightc.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_lightc.format	(nonexistent)
@@ -1,30 +0,0 @@
-omemalloc(
-1 mem_lightc_led_gpio
-6 mem_lightc_row
-6 mem_lightc_col
-
-1 mem_adv_time
-
-20 mem_cmd0_string
-20 mem_cmd1_string
-20 mem_cmd2_string
-20 mem_cmd3_string
-20 mem_cmd4_string
-20 mem_cmd5_string
-20 mem_cmd6_string
-20 mem_cmd7_string
-20 mem_cmd8_string
-20 mem_cmd9_string
-20 mem_cmd10_string
-20 mem_cmd11_string
-20 mem_cmd12_string
-20 mem_cmd13_string
-20 mem_cmd14_string
-20 mem_cmd15_string
-20 mem_cmd16_string
-20 mem_cmd17_string
-20 mem_cmd18_string
-20 mem_cmd19_string
-20 mem_cmd20_string
-)
-
Index: DPI_Switch/format/app_module.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_module.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_module.format	(nonexistent)
@@ -1,221 +0,0 @@
-
-omemalloc(	
-	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_spp_lpm_mult
-	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
-
-	//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_le_rx_data_len
-	2 mem_module_le_rx_data_address
-	2 mem_module_le_rx_data_handle
-	//ble write handle
-	2 mem_module_data_write_handle
-	2 mem_module_data_write_handle2
-	//flag
-	1 mem_module_flag
-
-	1 mem_module_hci_notify_len
-	2 mem_module_hci_notify_handle
-	2 mem_module_hci_nofiy_addr
-
-	4 mem_last_transmite_clock
-	
-	300 mem_module_uuid_list
-	0 mem_module_uuid_list_end
-	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
-)
-
-
-(//mem_module_flag
-//bit0~bit3 config module function
-0 MODULE_FLAG_UART_FLOW_CONTROL
-1 MODULE_FLAG_BLE_SEND_MTU23
-2 MODULE_FLAG_BLE_DATA_ENCRYPT
-
-//bit4~bit7 module states change
-4 MODULE_FLAG_BLE_DATA_FINISH
-5 MOUDLE_TASK_UNSNIFF
-6 MOUDLE_TASK_SNIFF
-
-)
-
-(
-34 NV_DATA_LEN
--1 DECREASED_ONE
-)
-
-
-
-(
-	10 FLAG_MODULE_READ_VDD_COUNT
-)
-
-(
-	110  DM_REFCOM_BUFF_LEN
-)
-(
-	0x200 UART_AIR_CONTROL_THRESHOLD
-)
-
-(
-0x01 HCI_DISCARD_PACKET
-0x00 HCI_NOT_DISCARD_PACKET
-)
-
-
-
-(//Command
-0x00 HCI_CMD_SET_BT_ADDR_REQ
-0x01 HCI_CMD_SET_LE_ADDR_REQ
-0x02 HCI_CMD_SET_VISIBILITY_REQ
-0x03 HCI_CMD_SET_BT_NAME_REQ
-0x04 HCI_CMD_SET_LE_NAME_REQ
-0x05 HCI_CMD_SPP_DATA_REQ
-0x09 HCI_CMD_LE_DATA_REQ
-0x0b HCI_CMD_STATUS_IRQ
-0x0c HCI_CMD_SET_PAIRING_REQ
-0x0d HCI_CMD_SET_PINCODE_REQ
-0x0e HCI_CMD_SET_UARTCONTROL_REQ
-0x0f HCI_CMD_SET_UART_BAUD_REQ
-0x10 HCI_CMD_VERSION_REQ
-0x11 HCI_CMD_BT_DISCONNECT
-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
-0x29 HCI_CMD_SET_CREDIT_GIVEN
-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
-
-0xff HCI_TEST_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
-0x0b HCI_EVENT_FINISH_PACK_NUM
-0X0C HCI_EVENT_SNIFF_MD_CHANGE
-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
-
-)
-
-
-(//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
-)
-
-
-
-(
-0x7e0 OTP_ADDR_RF_PARAM_FIX
-//struct of RF_PARAM_FIX
-// uint8       //length = param_pair_count * 2 
-// uint16     //param-pair-1
-// uint16     //param-pair-2
-// uint16     //param-pair-3
-// uint16     //param-pair-4
-// uint16     //param-pair-5
-// uint16     //param-pair-6
-// uint16     //param-pair-7
-)
-
-(
-0	PAIRING_PINCODE
-1	PAIRING_JUSTWORK
-2	PAIRING_PASSKEY
-3	PAIRING_CONFIRM
-)
-
-
-(
-0x0001	FLAG_BT_PAIRING_SUCCESS
-0x0101	FLAG_BT_PAIRING_FAIL
-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
-)
-
Index: DPI_Switch/format/app_mouse.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_mouse.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_mouse.format	(nonexistent)
@@ -1,528 +0,0 @@
-
-memalloc(
-2 mem_init_cnt
-)
-//dpi eeprom addr
-
-
-cmemalloc 0(
-// Mouse Work Area
-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_sensor_shutter_hi
-1 mem_sensor_shutter_lo
-1 mem_sensor_smart_flag
-1 mem_sensor_squal_reg
-1 mem_sensor_iqc
-1 mem_mouse_move_flag
-2 mem_mouse_direct_timeout
-2 mem_mouse_no_data_timeout
-2 mem_mouse_discovery_timer
-2 mem_mouse_direct_timer
-2 mem_mouse_no_data_timer
-2 mem_mouse_blank_data_timer
-1 mem_mouse_send_blank_timer
-
-1 mem_mouse_cpi_count
-1 mem_mouse_dpi_button_state
-
-
-//mouse T wheel
-1 mem_wheel_tb_old_pinlevel
-1 mem_wheel_tb_new_pinlevel
-1 mem_wheel_tog 
-1 mem_mouse_tz_data
-1 mem_mouse_tz_data_count
-1 mem_mouse_tz_data_count1
-
-
-1 mem_mwheel_b_old_pinlevel
-1 mem_mwheel_b_new_pinlevel
-1 mem_mwheel_tog 
-1 mem_mouse_z_data
-1 mem_mouse_z_data_count
-1 mem_mouse_z_data_count1
-
-1 mem_reconn_mode
-1 mem_mouse_statue_led_timer  
-1 mem_le_connect_status_flag
-1 mem_le_start_encrypt_timer
-
-7 mem_device_addr_temp
-
-1 mem_adc_read_timer
-1 mem_adc_low_volatage_led_timer_count
-2 mem_adc_reference_voltage
-1 mem_device_number
-2 mem_mouse_flag
-2 mem_mouse_function_enable
-1 mem_combination_select_device_timer_init
-1 mem_combination_select_device_count
-1 mem_select_device_button_statue
-
-1 mem_combination_ui_button_count
-1 mem_bt_discovey_button_statue
-1 mem_sensor_reset_gpio	
-
-1 mem_sensor_id1
-1 mem_sensor_id2
-//eeprom config param
-1 mem_mouse_dpi_led_delay_count
-1 mem_config_sensor_type
-1 mem_config_sensor_motion
-1 mem_lbutton_gpio
-1 mem_rbutton_gpio
-1 mem_mbutton_gpio
-1 mem_bk_button_gpio
-1 mem_fw_button_gpio
-1 mem_dpi_button_gpio
-1 mem_whee_a_data_gpio
-1 mem_whee_b_data_gpio
-1 mem_whee_ta_data_gpio
-1 mem_whee_tb_data_gpio
-1 mem_config_bt_button_gpio
-1 mem_config_select_device_button_gpio
-1 mem_config_paraing_led_gpio
-1 mem_config_low_voltage_alarm_gpio
-1 mem_config_device1_led_gpio
-1 mem_config_device2_led_gpio
-1 mem_config_device3_led_gpio	
-1 mem_sensor_data_gpio
-1 mem_dpi_led_gpio
-1 mem_config_function_enable
-1 mem_config_sensor_angle
-1 mem_select_sensor_angle_gpio
-1 mem_select_adc_gpio
-0 mem_config_end
-//max length 1f								
-4 mem_btclk_sensor
-1 mem_wire_usb_interval
-1 mem_mouse_mode_flag
-1 mem_usb_addr
-3 mem_flash_base
-1 mem_24g_device_number
-1 mem_24g_enter_lpm_timer
-1 mem_mouse_1step_up_count
-1 mem_mouse_2step_up_count
-2 mem_24g_pairing_timer_count
-
-//adc struct
-0 mem_mouse_vdd_calculate_set
-2 mem_mouse_vdd_full_vol
-2 mem_mouse_vdd_empty_vol
-2 mem_mouse_vdd_low_vol
-2 mem_mouse_vdd_now_vol
-// sensor led 
-1 mem_mouse_sensor_timer_count
-1 mem_sensor_led_style
-
-//led struct
-1 mem_mouse_led_type
-1 mem_mouse_blink_count
-1 mem_mouse_struct_led_gpio
-2 mem_mouse_on_time
-2 mem_mouse_off_time
-2 mem_mouse_cb_ledon
-2 mem_mouse_cb_ledoff
-
-//three devices param
-1 mem_reconn_times
-1 mem_reconn_times_init
-0 mem_mouse_information_start
-1 mem_device_flag
-1 mem_device1_type
-6 mem_device1_addr
-16 mem_device1_link_key
-6 mem_device1_locall_addr
-
-1 mem_device2_type
-6 mem_device2_addr
-16 mem_device2_link_key
-6 mem_device2_locall_addr
-
-1 mem_device3_type
-6 mem_device3_addr
-16 mem_device3_link_key
-6 mem_device3_locall_addr
-2 mem_store_flag
-1 mem_mouse_dpi
-4 mem_mouse_24g_addr
-0 mem_mouse_information_end
-
-0 mem_mouse_dpi_seting
-1 mem_320x_dpi_1
-1 mem_320x_dpi_2
-1 mem_320x_dpi_3
-1 mem_320x_dpi_4
-
-1 mem_3212_dpi_1
-1 mem_3212_dpi_2
-1 mem_3212_dpi_3
-1 mem_3212_dpi_4
-
-1 mem_3610_dpi_1
-1 mem_3610_dpi_2
-1 mem_3610_dpi_3
-1 mem_3610_dpi_4
-
-1 mem_mouse_24g_enter_lpm_enable
-
-//-------------- patch variable ------------------
-2 mem_le_rx_window_inc
-1 mem_empty_count
-15 mem_rf_init_data_new
-
-1 mem_mouse_clear_sensor_data_flag
-1 mem_mouse_null_enter_hibernate_flag
-1 mem_mouse_null_enter_hibernate_timer
-1 mem_mouse_le_reconnect_flag
-
-33 mem_mouse_data_queue
-1 mem_mouse_data_queue_num
-
-1 mem_mouse_le_conn_param_reject
-1 mem_lpm_mult_init
-64 mem_mouse_le_uuid_sup
-
-1 mem_mouse_wheel_trigger
-1 mem_mouse_wheel_trigger_timer
-
-1 mem_mouse_enter_sniff_count
-1 mem_mouse_send_switch_req_timer
-
-27 mem_le_tx_buffer0_omemalloc
-27 mem_le_tx_buffer1_omemalloc
-27 mem_le_tx_buffer2_omemalloc
-27 mem_le_tx_buffer3_omemalloc
-
-
-646 mem_mouse_uuid_list
-1 mem_lmi_opcode_temp
-
-1 mem_mouse_button_select_device_timer_init
-1 mem_mouse_button_select_device_count
-
-1 mem_mouse_adc_last_low_voltage_flag
-1 mem_mouse_init_sensor_reset_flag
-
-1 mem_bt_rcvd_switch_req_accept
-1 mem_bt_send_max_slot_req_accept_after_switch
-1 mem_bt_send_lmp_setup_complete
-
-1 mem_l2cap_rcv
-1 mem_mouse_bt_boot_mode
-5 mem_mouse_bt_boot_data
-
-1 mem_mouse_bt_send_first_package_timer
-1 mem_mouse_bt_send_first_package_flag
-
-1 mem_mouse_asm_flag
-2 mem_mouse_x_pre
-2 mem_mouse_y_pre
-
-19 mem_le_adv_swift_pair
-
-1 mem_mouse_multi_led_blink_enable
-1 mem_mouse_multi_led_gpio
-1 mem_mouse_multi_led_state
-1 mem_mouse_multi_led_type
-1 mem_mouse_multi_led_on_timer
-1 mem_mouse_multi_led_on_timer_init
-1 mem_mouse_multi_led_blink_timer_init
-1 mem_mouse_multi_led_blink_timer
-1 mem_mouse_multi_led_blink_count
-1 mem_mouse_multi_led_blink_count_limited
-1 mem_mouse_multi_led_on_poweron2s_flag
-1 mem_mouse_multi_led_blink_poweron3s_flag
-
-1 mem_mouse_priority_bb_event
-2 mem_mouse_le_parse_l2cap_ptr
-1 mem_low_power_no_data_off_led_time
-1 mem_low_power_check_count
-1 mem_low_power_led_blink_flag
-
-0 mem_mouse_3065xy_dpi_seting
-1 mem_3065xy_dpi_1
-1 mem_3065xy_dpi_2
-1 mem_3065xy_dpi_3
-1 mem_3065xy_dpi_4
-
-//modified pnp id
-1 mem_le_att_pnp_id_len
-7 mem_le_att_pnp_id
-
-//no motion pin
-1 mem_mouse_long_mult_flag
-1 mem_mouse_le_current_mult_timer
-1 mem_24g_long_sleep_param_update_timer
-
-//flash
-1 mem_flash_ncs_gpio
-1 mem_select_ui_button_count
-4 mem_write_flash_head_temp
-1 mem_mouse_poweron_led_timer
-4 mem_mouse_24g_addr_init
-
-//zcode
-1 mem_zcode_current_number
-3 mem_xip_flash_offset
-3 mem_flash_start_addr
-3 mem_flash_address
-
-1 mem_mouse_select_device_button_wakeup_flag
-1 mem_mouse_le_updata_not_accepted_flag
-
-
-//fast le conn
-6 mem_le_normal_lap
-1 mem_le_switch_adv_flag
-1 mem_le_switch_adv_timer
-1 mem_le_switch_adv_count
-1 mem_mouse_start_discovery_enable
-1 mem_mouse_le_adv_start
-
-1 mem_mouse_send_secutiry_request_timer
-1 mem_le_send_security_request_flag
-1 mem_mouse_le_bb_connected_flag
-
-
-//user flash data
-0 mem_mouse_flash_start_temp
-2 mem_random_addr_increase_count
-1 mem_mouse_long_button_select_device
-2 mem_eeprom_init_flag
-1 mem_mouse_fast_conn_flag
-1 mem_mouse_latest_mode
-0 mem_mouse_flash_end_temp
-
-1 mem_mouse_le_not_tx_disconn
-)
-
-(
-//SPI GPIO 
-0x19 MOUSE_SPI1_CLK_GPIO
-0x1A MOUSE_SPI1_SDIO_GPIO
-0X1E MOUSE_SPI2_CLK_GPIO
-0X1F MOUSE_SPI2_SDIO_GPIO
-//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
-//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
-//bt mode device number
-0x01 MODE_BT_DEVICE1
-0x02 MODE_BT_DEVICE2
-0x03 MODE_BT_DEVICE3
-0x02 MODE_24G_DEVICE
-0xff MODE_DEFAULT_DEVICE
-
-//mouse  flag
-0X00 WRITE_REQ_ENABLE_FLAG
-0X01 LL_START_ENC_FLAG
-0X02 LL_PAIRING_SUCCESS_FLAG
-
-
-//mouse_function_flag
-0X04 MOUSE_FLAG_LEN
-//1byte
-0X00 MOUSE_SELECT_DEVICE_FLAG
-0X01 MOUSE_CPI_FLAG
-0X02 MOUSE_BT_CANNEL_RECONN_FLAG
-0X03 MOSUE_24G_PAIRING_FLAG
-0X04 MOUSE_LOW_VOLTAGE_FLAG
-0X05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
-0X06 MOUSE_LONG_BT_BUTTON_FLAG
-0X07 MOUSE_STORE_EEPROM_FLAG
-0x08 MOUSE_STATUE_UP_FLAG
-0X09 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
-
-
-//3byte
-0X10 MOUSE_ENABLE_USB
-0X11 MOUSE_ENABLE_24G
-0X12 MOUSE_ENABLE_SPI2
-0X13 MOUSE_ENABLE_FLASH
-0X14 MOUSE_ENABLE_EEPROM
-0X15 MOUSE_ENABLE_STATUE_UP_THREE_LED
-0X16 MOUSE_ENABLE_STATUE_UP
-0X17 MOUSE_ENABLE_DPI_LED_BLINK
-//4byte
-0X18 MOUSE_ENABLE_BLE_RANDOM_ADDRE
-0X19 MOUSE_ENABLE_2K_EEPROM
-0X1A MOUSE_ENABLE_ADC
-0X1B MOUSE_ENABLE_INIT_DELAY
-0X1C MOUSE_ENABLE_DISCOVERY_SENSOR_LED
-0X1D MOUSE_ENABLE_AUTO_24G_PARING
-0X1E MOUSE_ENABLE_WAKEUP_FROM_POWER
-0X1F MOUSE_ENABLE_GPIO_CONTROL_ADC_SENSOR
-
-
-
-//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
-
-
-//mem_config_function_enable
-0 ENABLE_BT_DISCOVERY_BY_GPIO_LED
-1 ENABLE_MODE_LED
-2 ENABLE_LOW_VOLTAGE_LED
-3 ENABLE_DEVICE_LED
-4 ENABLE_BT_BUTTON
-5 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON
-6 ENABLE_SELECT_DEVICE_BY_SWITCH
-7 ENABLE_SENSOR_MOTION_PIN
-
-0xFF GPIO_DISABLE
-
-
-//DPI button state 
-0x00 DPI_BUTTON_STATE_DOWN
-0x01 DPI_BUTTON_STATE_UP
-
-
-//eeprom address offect
-0X00 MOUSE_INFO_EEPROM_OFFECT
-0X5A MOUSE_DPI_EEPROM_OFFECT	//1byte
-0X5B MOUSE_G24_ADDR_EEPROM_OFFECT	//4bytes
-0x5F MOUSE_USER_DATA_OFFECT
-0X5F MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET	//2bytes
-0X61 MOUSE_DEVICE_MODE_EEPROM_OFFSET	//1byte	
-0X62 MOUSE_EEPROM_MODULE_INIT_FLAG		//eeprom_module_init_flag 2bytes
-0X64 MOUSE_FAST_CONN_FLAG_OFFSET	//1byte
-0X65 MOUSE_LATEST_MODE_OFFSET	//1byte
-
-// Sensor id number
-0x30 P32XX_ID1
-0x31 P3065_ID1
-0x3E P3610_ID1
-0x02 P3212_ID2
-0xD1 P3205_TJ3T_ID2
-0XD2 P3204_TJ3L_ID2
-0x54 PKA8_ID2
-0x70 P3065_XY_ID2
-0x5a MA8650_ID2
-
-
-//Sensor type
-0X00 P3205
-0X01 P3065
-0X02 KA8
-0X03 P3204
-0X04 P3212
-0X05 P3610
-0X06 P3065_XY
-0X07 MA8650
-0x07 MX8650
-
-
-//p3610 smart enable flag
-0X00 P3610_SMART_ENABLE
-0X01 P3610_SMART_DISABLE
-
-
-//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
-
-
-0x06 MOUSE_FPGA_RF_WORK_DEBUG_GPIO
-0x02 MOUSE_FPGA_DEBUG_GPIO
-
-)
-
-(
-0x01 ADV_FLAG_LIMITED_DISCOVERABLE
-0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
-)
-
-(
-4 TEST_GPIO
-)
-
-(
-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
-)
-
-(
-0xb9 FLASH_COMMAND_DEEP_POWER_DOWN
-0xab FLASH_COMMAND_RELEASE_DEEP_POWER_DOWN
-)
-
-(
-0 MULTI_LED_ON
-1 MULTI_LED_BLINK
-)
-
-(
-0 DIS_BUTTON_UP
-1 DIS_BT_BUTTON
-2 DIS_COMM_BUTTON
-)
-
-(
-0x017700 G24_LONG_SLEEP_STEP1	//8ms
-0x249f00 G24_LONG_SLEEP_STEP2	//200ms
-0x604800 G24_LONG_SLEEP_STEP3	//500ms
-)
-
-(
-8 LOW_VOLTAGE_LED_COUNT
-)
-
-(
-0x0708 BLE_DIRECT_ADV_TIMEOUT
-0x0a BLE_POWERON_RECONN_TIMER
-)
-
Index: DPI_Switch/format/app_remote_car.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_remote_car.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_remote_car.format	(nonexistent)
@@ -1,150 +0,0 @@
-
-omemalloc(
-1 mem_remote_car_hard_soft_switch
-
-1 mem_remote_car_queue_each_size
-1 mem_remote_car_queue_length
-
-1 mem_remote_car_queue_curr_num
-1 mem_remote_car_queue_read_ptr
-1 mem_remote_car_queue_write_ptr
-90 mem_remote_car_queue_ele
-
-1 mem_remote_style_led_type
-1 mem_remote_style_blink_count
-1 mem_remote_style_struct_led_gpio
-2 mem_remote_style_on_time
-2 mem_remote_style_off_time
-2 mem_remote_style_cb_ledon
-2 mem_remote_style_cb_ledoff
-
-
-1 mem_remote_car_led_num
-8 mem_remote_car_led_map
-
-0 mem_remote_car_keyscan
-1 mem_remote_car_key_num
-2 mem_cb_remote_car_keyscan
-
-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
-
-
-//rocker
-1 mem_rocker_negative_flag
-1 mem_rocker_work_status
-2 mem_current_vdd_value_default_mid_x
-2 mem_current_vdd_value_default_mid_y
-2 mem_current_vdd_value_default_mid_temp
-2 mem_current_vdd_default_range
-2 mem_rocker_last_status
-0 mem_rocker_status
-1 mem_rocker_x_status
-1 mem_rocker_y_status
-
-0 mem_remote_car_config_param
-1 mem_remote_car_config_setting_flag
-1 mem_remote_car_config_key_map
-1 mem_remote_car_config_layout
-1 mem_remote_car_config_connect_led_gpio
-1 mem_remote_car_config_check_way
-1 mem_remote_car_config_soft_switch_enable
-1 mem_remote_car_config_soft_switch_gpio
-1 mem_remote_car_config_timeout_shutdown_enable
-
-0 mem_remote_car_24g_motor_packet
-1 mem_remote_car_24g_motor_packet_lenght
-2 mem_remote_car_24g_motor_send_packet_head
-1 mem_remote_car_24g_motor_send_cmd
-2 mem_remote_car_24g_motor_send_length
-0 mem_remote_car_24g_motor_send_payload
-2 mem_remote_car_24g_motor1_payload
-2 mem_remote_car_24g_motor2_payload
-2 mem_remote_car_24g_motor3_payload
-1 mem_remote_car_24g_motor_send_checksum
-
-0 mem_remote_car_24g_fire_packet
-1 mem_remote_car_24g_fire_packet_lenght
-2 mem_remote_car_24g_fire_send_packet_head
-1 mem_remote_car_24g_fire_send_cmd
-2 mem_remote_car_24g_fire_send_length
-2 mem_remote_car_24g_fire_send_payload
-1 mem_remote_car_24g_fire_send_checksum
-
-15 mem_remote_car_24g_tx_temp
-
-2 mem_remote_car_no_data_timeout
-2 mem_remote_car_no_data_timer
-
-0 mem_remote_car_soft_power
-1 mem_remote_car_power_state
-1 mem_remote_car_power_timer
-1 mem_remote_car_power_off_timeout
-1 mem_remote_car_power_starting_timeout
-2 mem_remote_car_power_off_cb
-2 mem_remote_car_power_starting_cb
-2 mem_remote_car_power_standby_cb
-
-1 mem_remote_key_status
-1 mem_remote_car_24g_status
-
-1 mem_remote_car_24g_auto_work_step
-1 mem_remote_car_24g_pair_success_flag
-1 mem_remote_car_24g_enter_lpm_enable
-1 mem_remote_car_empty_packet
-400 mem_24g_RC_head_ptr
-)
-
-
-(
-// eeprom config
-0xb0 REMOTE_PARAM_EEPROM_CONFIG_ADDR
-
-)
-
-
-(
-0x00 CONTROL_F_B_MOTOR
-0x02 CONTROL_L_R_MOTOR
-)
-
-(
-0x00 KEY_MAP_TEN
-0x01 KEY_MAP_LR
-)
-
-(
-0x00 CONTROL_F_B_TEN
-0x02 CONTROL_L_R_TEN
-0x03 CONTROL_L_R_LR
-)
-
-(
-0 KEY_CHECK
-1 ROCKER_CHECK
-)
-
-(
-1 MOTOR_POSITIVE
-2 MOTOR_NEGATIVE
-)
-
-(
-0 ROCKER_MIDDLE_KEY
-1 ROCKER_POSITIVE_KEY
-2 ROCKER_NEGATIVE_KEY
-)
-
-
Index: DPI_Switch/format/app_shutter.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_shutter.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_shutter.format	(nonexistent)
@@ -1,252 +0,0 @@
-
-
-omemalloc(
-
-////////////////////////////////////
-//shutter common config
-1 mem_shutter_bluetooth_type
-////////////////////////////////////
-
-//shutter config name by GPIO
-1 mem_shutter_config_enable
-2 mem_shutter_config_otp_base_address
-1 mem_shutter_config_size
-1 mem_shutter_config_select_gpio1
-1 mem_shutter_config_select_gpio2
-1 mem_shutter_config_select_gpio3
-
-2 mem_shutter_config_user_otp_address
-2 mem_shutter_config_eeprom_offset_addr
-
-////////
-2 mem_shutter_config_eeprom_start_flag
-1 mem_shutter_config_user_size
-///////
-1 mem_shutter_config_label
-2 mem_shutter_config_otp_addr
-///////////////////////////////////
-
-////////////////////////////////////
-//classic shutter config
-1 mem_classic_shutter_cable_unplug_conut
-1 mem_classic_shutter_hid_disconn_count
-2 mem_classic_shutter_random_mac_offset_addr
-////////////////////////////////////
-
-////////////////////////////////////
-//ble shutter config
-1 mem_ble_shutter_enable_notify
-2 mem_ble_shutter_reconn_dav_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_classic_shutter_discovery_timeout
-2 mem_classic_shutter_connect_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
-1 mem_shutter_key_conf2
-1 mem_shutter_key_conf3
-1 mem_shutter_key_conf4
-1 mem_shutter_key_conf5
-1 mem_shutter_key_conf6
-1 mem_shutter_key_conf7
-
-
-5 mem_key0_press
-5 mem_key1_press
-5 mem_key2_press
-5 mem_key3_press
-5 mem_key4_press
-5 mem_key5_press
-5 mem_key6_press
-5 mem_key7_press
-
-5 mem_key0_release	
-5 mem_key1_release
-5 mem_key2_release
-5 mem_key3_release
-5 mem_key4_release
-5 mem_key5_release
-5 mem_key6_release
-5 mem_key7_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
-
-5 mem_classic_data_buffer
-
-5 mem_classic_data_buffer1
-5 mem_classic_data_buffer2
-5 mem_classic_data_buffer3
-5 mem_classic_data_buffer4
-5 mem_classic_data_buffer5
-5 mem_classic_data_buffer6
-5 mem_classic_data_buffer7
-5 mem_classic_data_buffer8
-50 mem_classic_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
-
-)
-
-
-
-
-(
-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
-382		BLE_GATT_LIST_SIZE
-487		BT_SDP_LIST_SIZE
-40		BLE_KEY_VALUE_LIST_SIZE
-40		BT_KEY_VALUE_LIST_SIZE
-0x913A	BLE_SHUTTER_GATT_LIST
-0x92B8	CLASSIC_SHUTTER_SDP_LIST
-0x949F	BLE_SHUTTER_KEY_VALUE_LIST
-0x94C7	CLASSIC_SHUTTER_KEY_VALUE_LIST
-)
-
-
-(//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
-
-)
-
Index: DPI_Switch/format/app_usb.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_usb.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/app_usb.format	(nonexistent)
@@ -1,203 +0,0 @@
-
-omemalloc(
-
-)
-
-//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
-)
-
-(
-4 USB_STATUS_SETUP
-6 USB_STATUS_NAK
-)
-
-(
-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
-0x01 MAC_BOOT_MODE
-0x02 R_KEY
-0x03 LR_KEY
-)
-
-(
-0x8ffa	HID_KBDATA_ADDR
-0x903a	HID_MSDATA_ADDR
-0x90fe	HID_CONFDATA_ADDR
-)
-
-
-(
-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
-)
-
-
-(
-0x1A0 AT_baud_115200
-0x4e2 AT_baud_38400
-0x1388 AT_baud_9600
-)
-
-(
-0x4e00 mem_module_rx_buf//0x400
-0x4fff mem_module_rx_buf_end
-0x1c00 mem_module_tx_buf
-0x1fff mem_module_tx_buf_end
-)
-
-(
-0x01 BIND_ACKPAYLOAD
-0x02 USER_ACKPAYLOAD
-
-0xcf CMD_OTA
-0xc0 CMD_OTA_START
-0xc1 CMD_OTA_DATA
-0xc2 CMD_OTA_EXIT
-0x55 OTA_STA_SUCCESS
-0xaa OTA_STA_FAIL
-)
-
-(
-0 TIMER_NAK
-640 TIMER_NAK_DELAY
-15 TIMER_WAKEUP
-5000 TIMER_WAKEUP_DELAY
-)
-
Index: DPI_Switch/format/bt.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/bt.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/bt.format	(nonexistent)
@@ -1,1027 +0,0 @@
-
-	width = 32
-	const length = 12000
-
-	/* ========= memory ============== */
-memalloc(
-/* 00-0f most frequently used area  */
-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_inquiryscan_waitcnt
-1 mem_inquiryscan_rcvcnt
-1 mem_pagescan_waitcnt
-1 mem_pagescan_rcvcnt
-1 mem_pagescan_rcvfhscnt
-1 mem_slave_rcvcnt
-1 mem_page_transmit
-1 mem_page_rcv
-1 mem_page_rcv_fhs
-1 mem_master_rcvcnt
-
-/* 10-1f debug area */
-1 mem_fhs_wait_counter
-1 mem_newconnto_counter
-1 mem_inquiry_transmit
-1 mem_inquiry_rcv
-1 mem_fw_ver
-1 mem_current_context
-1 mem_le_ch_mapped
-1 mem_last_freq
-1 mem_rssi
-1 mem_rx_type
-2 mem_rx_hec_err
-2 mem_rx_crc_err
-2 mem_context_ptr
-8 mem_display
-8 mem_bcd
-
-		/* context swappable area */
-1 mem_state
-1 mem_mode
-2 mem_tsniff
-4 mem_sniff_anchor
-6 mem_clk_offset
-2 mem_rx_window
-3 mem_plap
-1 mem_puap
-2 mem_pnap
-1 mem_conn_handle
-1 mem_arq
-1 mem_lmp_to_send
-1 mem_lmi_opcode
-1 mem_lmo_reason
-1 mem_op
-1 mem_state_map
-4 mem_supervision_timer
-2 mem_supervision_to
-1 mem_name_offset
-1 mem_key_size
-1 mem_conn_sm
-12 mem_aco
-16 mem_kc
-1 mem_conn_timer
-1 mem_sniff_attempt
-1 mem_sniff_timeout
-2 mem_dsniff
-1 mem_amaddr
-1 mem_lmo_opcode1
-1 mem_lmi_opcode1
-1 mem_lmo_reason1
-1 mem_lmo_tid1
-1 mem_lmo_opcode2
-1 mem_lmi_opcode2
-1 mem_lmo_reason2
-1 mem_lmo_tid2
-
-3 mem_hci_version
-2 mem_acl_pktlen
-1 mem_sco_pktlen
-2 mem_acl_pktcnt
-2 mem_sco_pktcnt
-
-1 mem_current_sniff_attempt
-1 mem_current_sniff_timeout
-1 mem_sniff_timeout_temp
-1 mem_nfreq_index_inq
-1 mem_nfreq_index_page
-1 mem_ninqy_index
-1 mem_fhs_misc
-
-
-
-/* lpo related */
-4 mem_subsniff_instant
-1 mem_subsniff_rate
-2 mem_subsniff_tcmax
-1 mem_subsniff_tsniff
-1 mem_lpm_adjust
-6 mem_sync_clke
-1 mem_lpm_current_mult
-4 mem_gpio_wakeup_low
-4 mem_gpio_wakeup_high
-	
-
-/* sco & esco */
-1 mem_air_mode
-1 mem_sco_asso_handle
-2 mem_sco_handle
-1 mem_esco_desco
-1 mem_esco_type
-1 mem_neogotiation_state
-1 mem_saved_amaddr
-1 mem_esco_arq
-1 mem_esco_saved_arq
-30 mem_sco_obuf
-30 mem_sco_ibuf
-1 mem_sco_poll
-
-
-
-//page
-1 mem_npage_index
-1 mem_page_mode
-4 mem_page_clk
-
-
-/* test related */
-2 mem_tst_pktcnt_sync
-2 mem_tst_pktcnt_hec
-2 mem_tst_pktcnt_crc
-2 mem_tst_pktcnt_dmh
-3 mem_tmp_buffer_head
-80 mem_tmp_buffer
-
-
-1 mem_tester_emulate
-0 mem_temp_payload
-1 test_mode_scenario
-1 test_mode_hopping_mode
-1 test_mode_tx_freq
-1 test_mode_rx_freq
-1 test_mode_power_mode
-1 test_mode_poll_period
-1 test_mode_packet_type
-2 test_mode_data_length
-1 mem_test_mode_old_debug_config
-1 mem_tester_cnt
-
-
-/*temp mem*/
-1 mem_temp_am_addr
-1 mem_temp_arq
-
-//
-2 mem_len
-4 mem_clkn_bt
-4 mem_clke_bt
-4 mem_dpll_clkn
-1 mem_connection_options
-
-1 mem_nameres_cnt
-2 mem_txptr
-2 mem_slot_offset
-
-//extm
-1 extm_fhs_misc
-1 extm_newconn_am_addr
-3 extm_class
-3 extm_lap
-1 extm_uap
-3 extm_nap
-
-
-//debug
-1 mem_debug_config
-1 mem_lch_code
-1 mem_fhs_am_addr
-2 mem_dpll_error
-1 mem_select_list_item
-0 mem_temp_reconn_record
-1 mem_record_bt_mode
-6 mem_temp_lap
-2 mem_list_item_ptr
-
-100 mem_eir
-)
-
-
-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  */
-80 mem_context
-1 mem_current_amaddr
-1 mem_lpm_mode
-1 mem_device_option
-1 mem_scan_mode
-4 mem_last_clkn
-
-	/* parameters */
-8 mem_features
-3 mem_lap
-1 mem_uap
-2 mem_nap
-1 mem_npage
-3 mem_glap
-3 mem_class
-2 mem_iscan_window
-2 mem_iscan_interval
-2 mem_pscan_window
-2 mem_pscan_interval
-2 mem_page_interval
-2 mem_page_window
-2 mem_page_to
-2 mem_inq_window
-1 mem_fcomp_mul
-1 mem_fcomp_div
-2 mem_rx_window_init
-2 mem_rx_window_sniff
-2 mem_rf_init_ptr
-
-	/* connection related */
-1 mem_last_type
-1 mem_last_type_esco
-1 mem_last_type_saved
-2 mem_retransmission_cnt
-4 mem_next_btclk
-
-1 mem_rf_rccal
-1 mem_handle_num
-1 mem_max_slot
-1 mem_eir_enable
-
-/* AFH related */
-4 mem_afh_instant
-2 mem_afh_error_total
-1 mem_afh_cfg
-1 mem_afh_new_mod
-5 mem_afh_map_lo
-5 mem_afh_map_hi
-1 mem_afh_used
-2 mem_afh_index
-11 mem_afh_map_new
-80 mem_afh_map
-4 mem_afh_timer
-10 mem_afh_classify_channel_map
-
-
-	/* 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_esco_addr
-1 mem_sniff_unint_lost
-1 mem_ptt
-4 mem_sleep_counter   //should be 0x41fc in REVC
-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
-
-/* 8139-813b lpm_ctrl[31:12] */
-3 mem_lpm_config				
-
-1 mem_lpm_xtalcnt
-1 mem_lpm_buckcnt
-1 mem_lpm_ldocnt
-1 mem_lpm_isogate
-1 mem_lpm_isogate_final
-16 mem_saved_gpio	// should be 0x421e in REVC
-3 mem_saved_gsel
-8 mem_saved_mark
-1 mem_saved_spidctrl
-2 mem_patch_ptr
-2 mem_patch_len
-
-32 mem_timers
-
-/*LINK KEY*/
-1 mem_link_key_exists
-16 mem_link_key
-
-
-/* HCI */
-1 mem_hci_cmd
-1 mem_hci_conn_handle
-3 mem_hci_plap
-1 mem_hci_puap
-2 mem_hci_pnap
-
-/*Peripherals*/
-1 mem_uartd_rxitems_got_data
-1 mem_uartd_rxitems_threshold
-2 mem_uartd_rx_timeout
-
-1 mem_loadcode_times
-
-1 mem_tx_lch
-2 mem_tx_len
-
-1 mem_tx_power
-
-1 mem_context_number
-
-1 mem_250k_freq_enable
-
-ifdef DEBUG_RF_INIT
-1 mem_rf_init_data
-endif
-)
-
-(//bluetooth tx power
-0 TX_POWER_0DB
-1 TX_POWER_3DB
-2 TX_POWER_5DB
-3 TX_POWER_f3DB
-4 TX_POWER_f5DB
-
-0x20 TX_POWER_PAIR
-)
-
-
-ifdef RAM_VERSION
-0x4b17 rom_lpm_sleep
-0x4b1d rom_lpm_enter_sleep
-0x4b16 rom_lpm_write_ctrl
-0x6b1a rom_otpd_read_data
-0x6ada rom_otp_write
-else
-0x3b17 rom_lpm_sleep
-0x59e0 rom_save_ucode
-
-0x4219 rom_mem_lpm_xtalcnt
-0x423b rom_mem_patch_ptr
-0x423d rom_mem_patch_len
-
-0x5b1a rom_otpd_read_data
-0x5ada rom_otp_write
-endif
-	/* 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 */
-0x18 coffset_lmp_to_send
-0x1b coffset_op
-0x1c coffset_state_map
-	/* le only */
-0x18 coffset_le_ch
-0x19 coffset_le_hop
-0x1a coffset_le_event_cnt
-
-80 context_size
-1 context_num
-)
-
-(
-0 lpm_flag_wake
-1 lpm_flag_loadcode
-)
-
-/* ========= parameters ============== */
-(
-0x0050 param_newconn_arq
-0x0007 param_esco_addr
-0x0010 param_conn_handle
-0x01f0 param_conn_handle_comp
-0x0020 param_newconnto
-0x0008 param_pagerespto
-0x0a00 param_snooze_setup_orig
-0x5353 param_snooze_ahead_orig
-0x00ff param_ninquiry
-0x2000 param_page_to
-0x0005 param_max_slot
-0x0010 param_sco_poll
-
-/* 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
-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
-endif
-
-110 param_lpm_fix
-10 param_lpo_extra
-200 param_lpm_adjmax
-
-ifdef SIM
-20 param_hibernate_clks
-3 param_chgpump_delay
-else
--1 param_hibernate_clks
-3000 param_chgpump_delay
-endif
-
-3 param_featrue_ssp
-0x0101 param_lmpext_ssp_enable
-339 param_acl_pktlen
-30   param_sco_pktlen
-1     param_acl_pktcnt		/*buffer acl pkt cnt*/
-7     param_sco_pktcnt
-
-
-0x8fffff param_features0
-0x9d83fe param_features1  // not support afh
-0x8359     param_features2
-0x000033 param_unap
-0x001177 param_lap
-0x9e8b33 param_glap
-0x002540 param_class//0x180208 //0x002580//402500//240404
-0x12e904 param_hci_version
-0x000a04 param_lmp_version//0x0a04
-0x000a06 param_lmp_version0
-0x12e9 param_lmp_subversion
-0x0012 param_tisw
-0x0012 param_tpsw
-0x1000 param_tisi
-0x0800 param_tpsi
-0x0020 param_page_window
-0x0020 param_inq_window
-0x1c80 param_supervision_to
-39 param_fcomp_div
-2 param_fcomp_mul
-6     param_name_len
-0x535442 param_name
-0x344950 param_name1
-
-
-)
-
-/* ======= packet types  ========= */
-(
-0x0      type_null    
-0x1      type_poll   
-0x2      type_fhs    
-0x3      type_dm1    
-0x4      type_dh1    
-0x5      type_hv1    
-0x6      type_hv2    
-0x7      type_hv3    
-0x8      type_3dh1     
-0x9      type_aux1   
-0xa      type_dm3    
-0xb      type_dh3    
-0xe      type_dm5    
-0xf      type_dh5    
-0x10     type_id
-0x11     type_shutdown
-0x13     type_lmp
-)
-
-/* ========== 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 */
-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       slave2         /* 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 */
-54       le		/* bluetooth 4.0 LE enable */
-55       aes_ready	/* set when aes is ok */
-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        contru  /* contr 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       contwu   /* 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       interrupts    /* 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 */
-21       ctrl_reg     /* 2023 and after */
-22       jtag_addr    /* load jtag address field, lsb */
-23       freq_index   /* 7 bit read only */
-24       jtag_data    /* wdata to and rdata from jtag */
-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
-/* wire even_train    = freq_mode[4];    // odd even train                            */
-/* wire conn_mode     = 3;    // connection                                           */
-/* wire iqpgscan_mode = 2;    // slave in inquiry and page (not response)             */
-/* wire iqpgresp_mode = 1;    // slave in inquriy and page (response only)            */
-/* wire inqypage_mode = 0;    // master in inquiry and page(response or not response) */
-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 */
-43       host_mode         /* generic stuff for kick starts */
-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		
-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 ============= *//*0 - 47 */
-(
-
-0  mark_fhs_eir  
-1  mark_rxbuf_inuse
-2  mark_tx_l2cap
-3  mark_switch_initiated
-4  mark_accept_switch
-5  mark_loopback
-7  mark_esco
-8  mark_esco_rxok
-9  mark_context
-10 mark_am_addr_broadcast
-11 mark_fhs_already_good
-12 mark_page_trainb
-13 mark_lpm_mult_enable
-14 mark_usb_flag
-15 mark_old_packet
-16 mark_longpacket
-17 mark_testmode
-18 mark_ar2
-19 mark_h5tx_rp
-20 mark_h5tx_crc	
-21 mark_h5tx_retransmit
-22 mark_h5rx_pstart
-23 mark_h5_sync
-24 mark_h5_reinit
-28 mark_inquiry_on
-29 mark_inquiry_state
-30 mark_inquiry_trainb
-31 mark_periodical_diac
-32 mark_all_diac
-33 mark_slave_in_rand_accepted
-34 mark_reconn_recieve_switch
-35 mark_isstr
-36 mark_loadcode
-37 mark_ext_patch
-38 mark_24g
-39 mark_24g_conext
-40 mark_eeprom_size
-// REVAB:max 35, REVC:max 63
-41 mark_ble_tx_md
-42 mark_ble_rx_md
-43 mark_otp_encrypt
-44 mark_first_packet
-45 mark_role_switch_receive_fhs
-)
-
-(
-1 reload_type_otp
-2 reload_type_spi
-3 reload_type_iic
-)
-
-
-/* ============== soft timers ============== */
-(
-0 le_adv_interval_timer
-1 inquiry_length_timer
-2 le_scan_interval_timer
-3 page_length_timer
-4 iscan_interval_timer
-5 pscan_interval_timer
-6 switch_wait_timer
-7 enpt_delay_timer
-8 page_interval_timer
-9 key_scan_timer
-10 smp_pairing_timer
-11  ui_led_blink   //led timer չ
-12  ui_led_blink1
-13 ui_led_blink2
- 
-)
-
-(
-1 hci_cmd_inquiry
-2 hci_cmd_inquiry_cancel
-3 hci_cmd_remote_name_req
-4 hci_cmd_remote_feature_req
-5 hci_cmd_create_conn
-6 hci_cmd_disconn
-7 hci_cmd_accept_conn
-8 hci_cmd_reject_conn
-9 hci_cmd_pair
-10 hci_cmd_nopair
-11 hci_cmd_linkkey
-12 hci_cmd_nokey
-13 hci_cmd_auth
-14 hci_cmd_stopencrypt
-15 hci_cmd_startencrypt
-16 hci_cmd_setup_sco
-17 hci_cmd_disconn_sco
-18 hci_cmd_in_sniff
-19 hci_cmd_exit_sniff
-20 hci_cmd_remote_version_req
-21 hci_cmd_remote_ext_features_req
-22 hci_cmd_io_cap
-23 hci_cmd_role_discovery
-24 hci_cmd_role_switch
-25 hci_cmd_accept_with_switch
-26 hci_cmd_detach
-27 hci_cmd_le_create_conn
-28 hci_cmd_accept_sco_conn
-80 hci_cmd_wait_remote_feature
-81 hci_cmd_wait_remote_ext_feature
-82 hci_cmd_wait_remote_name
-)
-
-
-
-/* ============== debug ============= */
-(
-0 debug_neg_skew
-1 debug_bitbucket
-2 debug_dont_clear_got_tx
-3 debug_scatter_enabled
-4 debug_tx_fixed_freq
-5 debug_rx_fixed_freq
-6 debug_tx_pattern
-)
-
-/* ============== tester_emulator ============= */
-(
-0 tester_fixed_flow
-1 tester_fixed_flow_polarity
-2 tester_change
-3 tester_exit
-4 tester_pattern_test
-5 tester_whitening_change
-6 tester_fixed_freq
-7 tester_no_whitening
-)
-
-/* ============== mode ==========*/
-(
-0 mode_le
-1 mode_master
-2 afh_enable
-3 afh_change
-4 send_sco_when_slave
-5 first_seqnx
-)
-
-/* ============== state_map ==========*/
-(
-0 smap_lmptidinit
-1 smap_lmptid
-2 smap_encryption
-3 smap_name_res
-4 smap_name_req
-5 smap_edr
-6 smap_rxlmp
-7 smap_rxl2cap
-)
-(
-0 state_inconn
-1 state_insniff
-2 state_insco 
-3 state_inpage
-4 state_conn_comp
-5 state_init_seq
-6 state_combkey
-7 state_linkkey
-)
-(
-0 op_send_sres
-1 op_auth_req
-2 op_inrand_req
-3 op_disconn
-4 op_stop_enc
-5 op_start_enc
-6 op_txl2cap
-7 op_pkt_comp
-)
-
-
-/* ============== arq [3] ================ */
-(
-0 flow
-1 arqn
-2 seqn
-3 wack
-4 flowx              /* out */  /* not really in memory */
-5 arqnx              /* out */
-6 seqnx              /* out */
-7 bcast1             /* first broadcast received */
-)
-
-/* arq          {flow,arqn,seqn}, read/write */
-/* [0] flow r/w  acl full status of the other, store during rx, checked during tx */
-/* [1] arqn r/w  ack of the other during rx (ack tx fifo),                        */
-/* [2] seqn r/w  seqn of the other, check during rx                               */ 
-/* arqx         {flowx,arqnx,seqnx} */
-/* [0] flowx r/o flow back to the other, 1 alow send, 0 not to send, read only tx */
-/* [1] arqnx r/w ack to the other, set by rx, send back on tx                     */
-/* [2] seqnx r/w toggled by arqn, to be send during tx                            */ 
-
-(
-0 llid0
-1 llid1
-2 nesn
-3 sn
-4 md
-5 wak
-)
-
-/* AFH flags */
-(
-0 AFH_CFG_ON
-1 AFH_CFG_TIMER
-2 send_lmp_set_afh
-3 AFH_CFG_REPORT_MODE
-4 AFH_CFG_MASTER_SENT_REQ
-)
-
-/* LLID CODE */
-(	
-1 LLID_L2CAP_CONT
-2 LLID_L2CAP_START
-3 LLID_LMP
-)
-
-/* ============== master_state ==========*/
-(
-0  master_in_idle
-1  master_in_inquiry
-2  master_in_page
-10 master_in_becoming_slave
-15 master_in_conn
-)
-(
-0 newrev_feature_bettx
-1 newrev_feature_betplltx
-2 newrev_feature_skip_retransmit
-3 newrev_feature_init_radio_after_sleep
-4 newrev_feature_no_lpolog
-)
-/*************mem_pincode_state****************/
-(
-0 pincode_state_ilde
-1 pincode_state_wait_pincode
-2 pincode_state_pincode_ready
-)
-
-
-// lpm_write
-(
-1 lpmreg_sel_ctrl
-2 lpmreg_sel_ctrl2
-4 lpmreg_sel_gpiolow
-8 lpmreg_sel_gpiohigh
-16 lpmreg_sel_counter
-)
-
-//scan_mode
-(
-0 inq_scan_mode
-1 page_scan_mode
-2 page_inq_enable
-)
-//mem_neogotiation_state
-(
- 0 default_neogotiation_state
- 1 prarm_neogotiation
-)
-
-//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
-10 wake_lock_lmp_tx
-11 wake_lock_lmp_rx
-12 wake_lock_l2cap_tx
-13 wake_lock_l2cap_rx
-14 wake_lock_ipc_c512bt
-15 wake_lock_ipc_bt2c51
-
-)
-
-(
-0 bt_disabled
-1 ble_disabled
-2 module_disable
-
-)
-
-(
-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
-)
-
-
-//sniff UART_TX UART_RX
-(
-6 UART_WAKEUP_TX
-7 UART_WAKEUP_RX
-)
-
-
Index: DPI_Switch/format/command.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/command.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/command.format	(nonexistent)
@@ -1,1384 +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
-  ! 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
-  ! 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
-  ! 0x0c store          /* write to memory, data from pdata, address from immediate then mem_ptr */
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] 0               /* memory */
-  [1] 0
-  [1] 0
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x0c hstore          /* write to memory, data from pdata, address from immediate then mem_ptr */
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] 0               /* memory */
-  [1] 1
-  [1] 0
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x1c istore        /* write to memory, data from pdata, address from regr then mem_ptr */
-  % num_bytes
-  % reg
-  [5] opcode
-  [6] reg            /* hold address */
-  [1] 0
-  [1] 0
-  [4] num_bytes
-  [15] 0
-end
-
-format
-  ! 0x0d fetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] 0               /* memory */
-  [1] 0
-  [1] 0
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x0d hfetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] 0               /* memory */
-  [1] 1
-  [1] 0
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x0d crc         /* read from memory, count from loopcnt, put crc result into pdata */
-  % addr
-  [5] opcode
-  [6] 0
-  [1] 0
-  [1] 0
-  [4] 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] reg             /* hold address */
-  [1] 0
-  [1] 0
-  [4] 0
-  [15] 0
-end
-
-
-format
-  ! 0x1d ifetch         /* read from memory, data into pdata, address from regr then mem_ptr */
-  % num_bytes
-  % reg
-  [5] opcode
-  [6] reg             /* hold address */
-  [1] 0
-  [1] 0
-  [4] num_bytes
-  [15] 0
-end
-
-format
-  ! 0x0c storet          /* write to memory, data from temp, address from immediate won't increment */
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] 0               /* memory */
-  [1] 0
-  [1] 1
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x0c hstoret          /* write to corereg, data from temp, address from immediate won't increment */
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] 0               /* memory */
-  [1] 1
-  [1] 1
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x1c istoret        /* write to memory, data from temp, address from regr won't increment */
-  % num_bytes
-  % reg
-  [5] opcode
-  [6] reg            /* hold address */
-  [1] 0
-  [1] 1
-  [4] num_bytes
-  [15] 0
-end
-
-format
-  ! 0x0d fetcht          /* read from memory, data into temp, address from immediate won't increment */
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] 0               /* memory */
-  [1] 0
-  [1] 1
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x0d hfetcht          /* read from corereg, data into temp, address from immediate won't increment */
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] 0               /* memory */
-  [1] 1
-  [1] 1
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x1d ifetcht         /* read from memory, data into temp, address from regr won't increment */
-  % num_bytes
-  % reg
-  [5] opcode
-  [6] reg             /* hold address */
-  [1] 0
-  [1] 1
-  [4] num_bytes
-  [15] 0
-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 mult                  /* immediate mult regr */  /* the product will be ready 17 clks later */
-  % immediate                                   /* use "product" instruction to get the result */
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 16                   /* generate diven pulse to div */
-  [6] null
-  [9] immediate
-end
-
-format
-  ! 0x13 imult           /* pdata mult regr */  /* the product will be ready after 15 nops */
-  % reg                                         /* use product opcode to get the result */
-  [5] opcode
-  [6] reg
-  [6] 16                   /* generate mult pulse to multiplier */
-  [6] null
-  [9] 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
-  ! 3 product              /* harvest mult product */
-  % regw
-  [5] opcode
-  [6] 0
-  [6] 17
-  [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
-
Index: DPI_Switch/format/g24.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/g24.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/g24.format	(nonexistent)
@@ -1,492 +0,0 @@
-
-cmemalloc 0 (
-34 mem_24g_rxbuf
-32 mem_24g_txbuf
-34 mem_24g_txpayload
-32 mem_24g_rxpayload
-1 mem_24g_rxdata_length
-1 mem_24g_pid
-1 mem_24g_datalen
-1 mem_24g_data_type
-1 mem_24g_txlen
-2 mem_24g_rx_window
-1 mem_24g_ensure
-2 mem_24g_txfail_cnt
-1 mem_24g_get_ack_fail
-1 mem_24g_retry
-1 mem_24g_ch
-1 mem_24g_current_ch_number
-4 mem_24g_paring_addr
-1 mem_24g_pairing_sm
-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
-4 mem_24g_addr
-1 mem_24g_abort_pac
-2 mem_24g_check_dongle_times
-
-8 mem_24g_enter_hibernate
-4 mem_24g_device_addr
-1 mem_24g_pac_index
-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_max_retry
-1 mem_24g_mode
-
-34 mem_24g_rxdata_temp
-4 mem_24g_rx_addr
-1 mem_dongle_mode_init
-1 mem_dongle_work_mode
-1 mem_dongle_ms_bind_step
-1 mem_dongle_kb_bind_step
-1 mem_dongle_bind_device_status
-8 mem_24g_bind_payload
-1 mem_24g_abort_packet
-1 mem_24g_rf_laststa
-4 mem_24g_hop_btclk
-1 mem_24g_hop_interval
-1 mem_24g_mode_switch
-1 mem_24g_ackpayload_enable
-1 mem_24g_hop_packet
-1 mem_24g_pair_mode
-1 mem_24g_nodata_timer_enable
-1 mem_24g_time_slice
-8 mem_24g_kb_data_sta_data
-8 mem_24g_kb_data_last_data
-3 mem_24g_kb_multikey_sta_data
-3 mem_24g_kb_multikey_last_data
-1 mem_24g_kb_blank_data_enable
-1 mem_24g_kb_mul_blank_data_enable
-1 mem_24g_ms_blank_data_enable
-4 mem_24g_kb_addr
-4 mem_24g_ms_addr
-
-1 mem_24g_dg_last_ch
-1 mem_24g_dg_ch_number
-1 mem_24g_dg_config_ch_once
-1 mem_24g_kb_last_ch
-1 mem_24g_kb_ch_number
-1 mem_24g_kb_config_ch_once
-1 mem_24g_ms_last_ch
-1 mem_24g_ms_ch_number
-1 mem_24g_ms_config_ch_once
-
-2 mem_24g_syncword
-1 mem_24g_syncword_crc8
-1 mem_24g_get_syncword_crc8
-2 mem_24g_ota_sta_pid
-
-1 mem_tx_power_temp
-
-1 mem_rssi_hex
-1 mem_rssi_noise_avg
-1 mem_rssi_noise_index
-1 mem_rssi_signal_index
-1 mem_rssi_noise_dg_avg
-1 mem_rssi_noise_kb_avg
-1 mem_rssi_noise_ms_avg
-1 mem_rssi_noise_dg_index
-1 mem_rssi_noise_kb_index
-1 mem_rssi_noise_ms_index
-8 mem_rssi_signal_buf
-
-1 mem_queue_ele_num
-2 mem_queue_read
-2 mem_queue_write
-0 mem_queue_start
-32 mem_data_ele0
-32 mem_data_ele1
-32 mem_data_ele2
-0 mem_queue_end
-2 mem_queue_temp
-
-2 mem_cb_24g_data
-1 mem_24g_hop_fastly_cnt
-1 mem_24g_hop_pac_retry
-1 mem_24g_rf_hop_ch
-1 mem_24g_rf_last_sta
-1 mem_24g_rf_work_stage
-1 mem_24g_sync_cnt
-1 mem_power_ctrl_pac_succ_cnt
-1 mem_rssi_avg_received
-1 mem_rssi_hex_received
-1 mem_power_ctrl_level
-
-1 mem_seqi
-1 mem_24g_auto_paring_switch
-1 mem_24g_paccnt
-1 mem_24g_transmit_by_interrupt
-2 mem_24g_transmit_by_interrupt_exit_count
-2 mem_24g_transmit_by_interrupt_exit_count_init
-4 mem_24g_allpowerful_addr
-
-1 mem_24g_stop_g24_mode
-2 mem_24g_stop_g24_mode_timeout
-1 mem_24g_pair_current_ch_num
-1 mem_24g_powerful_current_ch_num
-
-1 mem_24g_search_dongle_action
-1 mem_24g_search_dongle_count
-1 mem_24g_search_dongle_ch
-1 mem_24g_search_dongle_delay_count
-
-
-1 mem_24g_conn_sm
-)
-
-(
-//add
-0   offset_24g_rxbuf
-1   offset_24g_rxbuf_add1
-2   offset_24g_rxbuf_add2
-34  offset_24g_txbuf
-66  offset_24g_txpayload
-100 offset_24g_rxpayload
-102 offset_24g_rxpayload_add2
-132 offset_24g_rxdata_length
-133 offset_24g_pid
-134 offset_24g_datalen
-135 offset_24g_data_type
-136 offset_24g_txlen
-137 offset_24g_rx_window
-139 offset_24g_ensure
-140 offset_24g_txfail_cnt
-141 offset_24g_get_ack_fail
-142 offset_24g_tx_without_int
-143 offset_24g_retry
-144 offset_24g_ch
-145 offset_24g_current_ch_number
-146 offset_24g_paring_addr
-150 offset_24g_pairing_sm
-151 offset_24g_ch_map1
-155 offset_24g_ch_map2
-159 offset_24g_ch_map3
-163 offset_24g_ch_map4
-167 offset_24g_tx_btclk
-171 offset_24g_interval
-172 offset_24g_interval_min
-173 offset_24g_interval_max
-174 offset_24g_addr
-178 offset_24g_abort_pac
-179 offset_24g_sync_pac
-180 offset_24g_hop_pac
-181 offset_24g_check_dongle_times
-182 offset_24g_enter_hibernate
-190 offset_24g_device_addr
-194 offset_24g_pac_index
-195 offset_24g_no_ack
-196 offset_24g_sta_crc
-199 offset_24g_last_crc
-202 offset_24g_sta_pid
-203 offset_24g_last_pid
-204 offset_24g_max_retry
-205 offset_24g_mode
-206 offset_24g_rf_last_sta
-207 offset_24g_rf_hop_ch
-208 offset_24g_sync_cnt
-209 offset_24g_hop_pac_retry
-210 offset_24g_rf_work_stage
-211 offset_24g_hop_fastly_cnt
-212 offset_24g_short_sleep_timer
-216 offset_24g_cb_data
-218 offset_24g_cb_lpm_prepare
-220 offset_24g_cb_lpm_before
-222 offset_24g_cb_rxdata_type1
-224 offset_rssi_signal_index
-225 offset_rssi_signal_avg
-226 offset_rssi_signal_buf
-234 offset_rssi_noise_index
-235 offset_rssi_noise_avg
-236 offset_rssi_noise_buf
-244 offset_rssi_ctrl_threshold_down
-245 offset_rssi_noise_dg_index
-246 offset_rssi_noise_kb_index
-247 offset_rssi_noise_ms_index
-248 offset_rssi_noise_dg_avg
-249 offset_rssi_noise_kb_avg
-250 offset_rssi_noise_ms_avg
-251 offset_tx_power_temp
-252 offset_power_ctrl_packet_cnt
-253 offset_power_ctrl_ack_cnt
-254 offset_power_ctrl_level
-255 offset_power_ctrl_txpwr_level2
-//iadd
-256 offset_power_ctrl_txpwr_level1
-257 offset_power_ctrl_txpwr_level0
-258 offset_power_ctrl_threshold_up
-259 offset_power_ctrl_threshold_down
-260 offset_dongle_mode_init
-261 offset_dongle_work_mode
-262 offset_dongle_ms_bind_step
-263 offset_dongle_kb_bind_step
-264 offset_dongle_bind_device_status
-265 offset_24g_rxdata_temp
-267 offset_24g_rxdata_temp_add2
-268 offset_24g_rxdata_temp_add3
-269 offset_24g_rxdata_temp_add4
-299 offset_24g_rx_addr
-303 offset_24g_bind_payload
-304 offset_24g_bind_payload_add1
-305 offset_24g_bind_payload_add2
-309 offset_24g_rf_laststa
-310 offset_24g_hop_btclk
-314 offset_24g_hop_interval
-315 offset_24g_ackpayload_enable
-316 offset_24g_ackpayload
-348 offset_24g_mode_switch
-349 offset_24g_pair_mode
-350 offset_24g_nodata_timer_enable
-351 offset_24g_time_slice
-352 offset_24g_mouse_addr
-356 offset_24g_kb_addr
-360 offset_24g_kb_data_sta_data
-368 offset_24g_kb_data_last_data
-376 offset_24g_kb_multikey_sta_data
-379 offset_24g_kb_multikey_last_data
-382 offset_24g_kb_blank_data_enable
-383 offset_24g_kb_mul_blank_data_enable
-384 offset_24g_ms_blank_data_enable
-385 offset_24g_dg_last_ch
-386 offset_24g_dg_ch_number
-387 offset_24g_dg_config_ch_once
-388 offset_24g_kb_last_ch
-389 offset_24g_kb_ch_number
-390 offset_24g_kb_config_ch_once
-391 offset_24g_ms_last_ch
-392 offset_24g_ms_ch_number
-393 offset_24g_ms_config_ch_once
-394 offset_24g_pair_txpower
-395 offset_24g_auto_pair_switch
-)
-
-(
-3 QUEUE_ELE_COUNT
-32 QUEUE_ELE_LENGTH
-)
-
-(
-3 retry_24g
-1 NO_ACK_24G
-0 WITH_ACK_24G
-
-0 ENSURE_OFF_24G
-1 ENSURE_ON_24G
-
-0x10 ABORT_DATA
-0x40 RSSI_SENSITIVITY
-
-0x4e G24_PAIR_CH
-)
-
-(
-0 disable_24g
-1 tx_24g
-2 rx_24g
-
-0 bit_ack_24g
-)
-
-//mem_24g_interrupt
-(
-0 rx_dr
-1 rx_sync
-4 tx_ds
-5 tx_fail
-)
-
-//mem_24g_data_type
-(
-0x07 bits_data
-//0-2 data type
-3 bit_abort
-4 bit_hop
-5 bit_sync
-//6-7 channel offset
-)
-
-(
-0 STATE_24G_STOP
-0 STATE_24G_START
-1 STATE_24G_PAIR
-2 STATE_24G_RECONN
-)
-
-
-//mem_24g_pairing_sm
-(
-0 STATE_24G_PAIRING_NULL
-1 STATE_24G_PAIRING_1
-2 STATE_24G_PAIRING_2
-3 STATE_24G_PAIRING_3
-0X11 STATE_24G_PAIRING_1_WAITING_ACK
-0X12 STATE_24G_PAIRING_2_WAITING_ACK
-0X13 STATE_24G_PAIRING_3_WAITING_ACK
-0XFF STATE_24G_PAIRING_SUCCESS
-)
-
-(
-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
-)
-
-(
-0x01 DATATYPE_MOUSE	//mouse
-0x02 DATATYPE_KEYBOARD	//keyboard
-0xAA DATATYPE_BIND		//bind step 1
-0x55 DATATYPE_CONFIG	//bind step 2
-0x22 DATATYPE_OK	//bind step 3
-
-0x01 BIND_MOUSE
-0x02 BIND_KEYBOARD
-)
-
-(
-112 G24_DONGLE_ADDR
-)
-
-(
-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
-)
-
-//user defined cmd
-(
-0xb0 COMMAND_USER_DEFINED
-)
-
-(
-0x15 PRODUCT_ID
-0 FW_VERSION0
-0 FW_VERSION1
-1 FW_VERSION2
-7 FW_VERSION3
-)
-
-
-(
-8 TIMER_NODATA
-640 TIMER_NODATA_DELAY	//200ms
-
-11 TIMER_MS_BLANK
-320 TIMER_MS_BLANK_DELAY
-
-12 TIMER_KB_MUL_BLANK
-320 TIMER_KB_MUL_BLANK_DELAY
-
-14 TIMER_KB_BLANK
-320 TIMER_KB_BLANK_DELAY
-)
-
-(
-0 KB_NORMAL_REPORT_ID
-1 MS_REPORT_ID
-3 KB_MULTIKEY_REPORT_ID
-)
-
-(
-7 RSSI_BUF_LEN_SIGNAL
-255 RSSI_BUF_LEN_NOISE
-0x50 RSSI_THRESH_NOISE
-
-0x77 RSSI_DIS_MIN_24G
-0x82 RSSI_DIS_MAX_24G
-
-0x75 RSSI_DIS_MIN_BLE
-0x80 RSSI_DIS_MAX_BLE
-)
-
-(
-//power control
-0x01 TXPWR_0DB
-0x02 TXPWR_3DB
-0x04 TXPWR_5DB
-0x10 TXPWR_f5DB
-
-124 POWER_CTRL_MAX_PACKET_CNT
-
-2 POWER_CTRL_LOSSPAC_THRESH_UP0
-0 POWER_CTRL_LOSSPAC_THRESH_DOWN0
-0x20 POWER_CTRL_RSSI_THRESH_DOWN0
-
-5 POWER_CTRL_LOSSPAC_THRESH_UP1
-0 POWER_CTRL_LOSSPAC_THRESH_DOWN1
-0x60 POWER_CTRL_RSSI_THRESH_DOWN1
-
-10 POWER_CTRL_LOSSPAC_THRESH_UP2
-0 POWER_CTRL_LOSSPAC_THRESH_DOWN2
-0x80 POWER_CTRL_RSSI_THRESH_DOWN2
-)
-
-//mem_send_data_24g_short_lpm
-(
-0 SHORT_LPM_STATE_POLLING 	
-1 SHORT_LPM_STATE_DATA
-2 SHORT_LPM_STATE_NODATA
-3 SHORT_LPM_STATE_BUTTON_WHEEL
-)
-
-(
-81000 G24_8125_INTERVAL_PARAM
-78000 G24_78125_INTERVAL_PARAM
-)
-
-(
-1 G24_TX_TIMER_INT_ENABLE
-0 G24_TX_TIMER_INT_DISABLE
-)
-
-(
-0 G24_DISCONN_STATE
-1 G24_CONN_STATE
-
-
-4 G24_CH_NUMBER
-8 G24_CH_POLL_COUNT
-0x0708 G24_DISCONN_NODATA_TIMER
-)
-
-
Index: DPI_Switch/format/hci.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/hci.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/hci.format	(nonexistent)
@@ -1,570 +0,0 @@
-
-
-memalloc(
-1 mem_h5rx_ackcnt
-1 mem_check_err_acl_cont
-
-1 mem_rp_packets
-2 mem_packet_type
-
-2 mem_hci_sniff_conn_handle
-2 mem_hci_sniff_max_interval
-2 mem_hci_sniff_min_interval
-2 mem_hci_sniff_attempt
-2 mem_hci_sniff_timeout
-2 mem_voice_setting
-1 mem_retransmission_effort
-2 mem_sco_ptype
-3 mem_extm_uap_restore
-
-2 mem_h5rx_rptr
-1 mem_h5rx_ack
-1 mem_h5tx_ack
-2 mem_h5tx_rptr
-2 mem_h5tx_wptr
-2 mem_h5tx_free
-1 mem_h5rx_tmp
-1 mem_h5tx_seq
-
-2 mem_hci_acl_queue_wptr
-2 mem_hci_acl_queue_rptr
-2 mem_hci_acl_queue_end
-1 mem_hci_acl_queue_wcnt
-1 mem_hci_acl_cnt
-
-2 mem_hci_acl_tx_trigger_wptr //tx via uart
-
-
-1 mem_hci_curr_len
-2 mem_hci_curr_target 
-) 
-
-xmemalloc(
-
-2 mem_baud
-1 mem_hci_lt_rx_state
-)
-
-15 hci_flag_rp
-//mem_hci_options bit map
-(
-1 hci_option_h4
-2 hci_option_protocol2
-3 hci_option_protocol3
-4 hci_option_uart
-5 hci_option_usb
-6 hci_option_phy2
-7 hci_option_phy3
-)
-// UART baud rate @6MHz
-(
-0 uart_ctrl_bit_enable
-3 uart_ctrl_bit_slip_protocol
-
-)
-
-//bit map of core_uart_ctrl
-(
-
-)
-//bit map of core_uart_status
-(
-0 uart_status_tx_fifo_full
-1 uart_status_tx_fifo_empty
-2 uart_status_tx_busy
-3 uart_status_rx_fifo_empty
-
-)
-//HCI H4 LOG related
-(
-0x4850 mem_hci_log
-8 hci_log_size
-100 hci_log_cnt
-
-)
-//HCI H4 Packet TYPE
-(
-0x01 HCI_H4_TYPE_CMD
-0x02 HCI_H4_TYPE_ACL
-0x04 HCI_H4_TYPE_EVENT
-
-)
-// HCI command opcode group field values
-(
-0x01 HCI_OGF_LINK_CONTROL
-0x02 HCI_OGF_LINK_POLICY
-0x03 HCI_OGF_BASEBAND
-0x04 HCI_OGF_INFO
-0x05 HCI_OGF_STATUS
-0x06 HCI_OGF_TEST
-0x08 HCI_OGF_LOW_ENERGY
-0x3e HCI_OGF_LOGO_TESTING
-0x3f HCI_OGF_VENDOR_SPECIFIC
-)
-
-// 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
-)
-
-//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
-)
-
-(
-0x00 HCI_LPM_OFF
-0x01 HCI_LPM_ON
-)
-
-
-(
-33 HOST_WAKE_TIME
-)
-
-(
-1 HCI_RX_WAKE
-0 HCI_RX_READY
-)
-
Index: DPI_Switch/format/kscan_peipherals.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/kscan_peipherals.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/kscan_peipherals.format	(nonexistent)
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-//0 mem_kscan_head_ptr
-//1 mem_col_num
-//1 mem_row_num
-//4 mem_col_conf_pin
-//4 mem_row_conf_pin
-//1 mem_row_count
-//1 mem_count_shift
-//2 mem_kscan_value_temp
-//2 mem_kscan_lastvalue
-//2 mem_kscan_value
-//4 mem_btclk_kscan
-//1 mem_btclk_kscan_interval
-
-
-0x00 KEYSCAN_OFFECT_COL_NUM
-0x01 KEYSCAN_OFFECT_ROW_NUM
-0x02 KEYSCAN_OFFECT_COL_CONF_PIN
-0x06 KEYSCAN_OFFECT_ROW_CONF_PIN
-
-0x0a KEYSCAN_OFFECT_ROW_COUNT
-0x0b KEYSCAN_OFFECT_SHIFT_COUNT
-
-0X0C KEYSCAN_OFFECT_VALUE_TEMP
-0X0E KEYSCAN_OFFECT_LASVALUE
-0X10 KEYSCAN_OFFECT_VALUE
-0x12 KEYSCAN_OFFECT_BTCLK
-0x16 KEYSCAN_OFFECT_BTCLK_INTERVAL
-
-
Index: DPI_Switch/format/l2cap.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/l2cap.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/l2cap.format	(nonexistent)
@@ -1,442 +0,0 @@
-
-memalloc(
-0 mem_l2cap_mem_start
-// L2CAP RX 
-2 mem_l2cap_rxbuff1_len
-2 mem_l2cap_rxbuff2_len
-2 mem_l2cap_rxbuff_new
-1 mem_l2cap_rxbuff_inuse
-2 mem_l2cap_payload_ptr
-2 mem_l2cap_rx_pkt_length
-2 mem_l2cap_rx_cid
-1 mem_l2cap_rx_done
-
-
-
-// L2CAP TX Signal channel
-2 mem_l2cap_signal_tx_buff_ptr
-2 mem_l2cap_signal_tx_payload_ptr
-2 mem_l2cap_signal_tx_length
-// L2CAP TX SDP channel
-2 mem_sdp_tx_buff_ptr
-2 mem_sdp_tx_payload_ptr
-2 mem_sdp_tx_pkt_length
-// L2CAP TX RFCOMM channel
-2 mem_rfcomm_tx_buff_ptr
-2 mem_rfcomm_tx_payload_ptr
-2 mem_rfcomm_tx_pkt_length
-
-
-
-//L2CAP Util
-
-2 memL2CAP_T1
-
-1 mem_CONTROL_tasks
-1 mem_send_config_req
-
-
-1 mem_config_identifier
-2 mem_config_req_dest_CID
-1 mem_rfcomm_malloc_fail_flag
-
-//L2CAP STATE MACHINE
-1 mem_message_to_uppersm
-1 mem_upper_sm_remote_page
-1 mem_upper_sm_reconn
-1 mem_upper_sm_ss
-
-
-64 mem_tx_malloc_log
-0 mem_l2cap_mem_end
-
-
-2 mem_scid
-2 mem_cmd_length
-2 mem_tt2
-2 mem_tt3
-2 mem_id
-2 mem_psm
-
-
-4 mem_l2cap_sdpres_delay_time
-)
-
-xmemalloc(
-0 mem_l2cap_xmem_start
-//*******************L2CAP TX MULTI-PACKET*********************//
-2 mem_l2cap_tx_multi_offset //0 means single packet
-
-//*******************CHANNEL ID*********************//
-2 mem_sdp_remote_cid
-2 mem_rfcomm_remote_cid
-2 mem_hid_ctrl_remote_cid
-2 mem_hid_int_remote_cid
-//*******************CHANNEL STATE*********************//
-1 mem_sdp_state
-1 mem_rfcomm_state
-1 mem_hid_control_state
-1 mem_hid_interrupt_state
-1 mem_spp_state
-1 mem_ML2CAP_comm_id
-
-//*******************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
-256 mem_l2cap_lpm_txbuf
-//*******************MISC*********************//
-1 mem_l2cap_flow_ctrl_flag
-1 mem_l2cap_pending_item
-0 mem_l2cap_xmem_end
-
-)
-
-
-//mem_l2cap_lpm_txbuf
-(
-256 l2cap_lpm_txbuf_len
-)
-
-(
-4 L2CAP_TX_FIFO_SIZE
-8 L2CAP_TX_BUFF_CNT
-
-)
-(
-0x0002 L2CAP_SIG_EXT_FEATRUE
-0x0003 L2CAP_SIG_FIX_FEATRUE
-)
-
-
-(
-0 HS_IDLE
-1 AG_INIT_CALL
-2 HS_INIT_CALL
-)
-(
-0 M_ACL_LINK_ABSENT
-1 M_ACL_LINK_EXIST
-)
-
-(
-0 L2CAP_INUSE_BUFF1
-1 L2CAP_INUSE_BUFF2
-)
-/* upper layer interface w/ lower layer */
-(
-1 MAX_NUM_LINKS_ALLOWED
-1 MAX_NUM_SCO_ALLOWED
-1 ACL_LINK_PRESENT
-0 ACL_LINK_ABSENT
-)
-(
-1 L2CAP_RX_DONE 
-0 L2CAP_RX_CLEAR
-)
-/* Scheduler */
-(
-0 L2CAP_DISCONNECT_INTERRUPT
-1 RFCOMM_wants_service
-2 L2CAP_sig_Tx_buff_full
-3 RFCOMM_Tx_buff_full
-4 SDP_Tx_buff_full
-5 got_complete_L2CAP_pkt	
-6 L2CAP_init_Config_Req
-7 L2CAP_DISCONNECT_CONTROL
-)
-
-/* mem_CONTROL_tasks2 */
-(
-0 UI_NEED_SERVICE
-)
-/* L2CAP logic channel identifiers (2 bytes) p.261 */
-(
-0x0001 L2CAP_signal_channel
-0x0050 L2CAP_SDP_channel
-0x0051 L2CAP_RFCOMM_channel
-0x0052 L2CAP_HID_Control_channel   
-0x0053 L2CAP_HID_Interrupt_channel
-0x0077 L2CAP_AVDTP_signal_channel		//------avdtp
-0x0078 L2CAP_AVDTP_media_channel
-0x0079 L2CAP_AVDTP_report_channel
-0x0080 L2CAP_AVDTP_recovery_channel
-0x00dd L2CAP_AVCTP_Control_channel
-)
-/* L2CAP signalling command codes (1 byte) p.284 */
-(
-0x00 reserved
-0x01 signal_cmd_reject
-0x02 signal_connect_req
-0x03 signal_connect_rsp
-0x04 signal_config_req
-0x05 signal_config_rsp
-0x06 signal_disconnect_req
-0x07 signal_disconnect_rsp
-0x08 signal_echo_req
-0x09 signal_echo_rsp
-0x0a signal_info_req
-0x0b signal_info_rsp
-)
-/* L2CAP signal_command_reject reason code (2 bytes), p.285 */
-(
-0x0000 cmd_not_understood
-0x0001 signalling_MTU_exceeded
-0x0002 invalid_CID_in_req
-)
-/* L2CAP PSM values used in signal_connect_req (2 bytes), p.286 */
-(
-0x0001 PSM_SDP
-0x0003 PSM_RFCOMM
-0x0005 PSM_TCS
-0x0011 PSM_HID_control
-0x0013 PSM_HID_interrupt
-0x0017 PSM_AVCTP
-0x0019 PSM_AVDTP
-)
-/* L2CAP connection response result code (2 bytes), p.288 */
-(
-0x0000 L2CAP_connect_successful
-0x0001 L2CAP_connect_pending
-0x0002 L2CAP_connect_refused_PSM_unsupported
-0x0003 L2CAP_connect_refused_security_block
-0x0004 L2CAP_connect_refused_no_resources
-)
-/* L2CAP connection status values (2 bytes), p.288 */
-(
-0x0000 L2CAP_no_info_available
-0x0001 L2CAP_authentication_pending
-0x0002 L2CAP_authorization_pending
-)
-/* L2CAP configuration response result code (2 bytes), p.292 */
-(
-0x0000 L2CAP_config_success
-0x0001 L2CAP_config_failure_bad_parameters
-0x0002 L2CAP_config_failure_no_reason
-0x0003 L2CAP_config_failure_unknown_options
-)
-/* L2CAP constant definitions */
-(
-128 L2CAP_Rx_buff_size
-48  L2CAP_signal_Tx_buff_size
-128 SDP_Tx_buff_size
-128 RFCOMM_Tx_buff_size
-1 AM_ADDRESS
-3 DM1TYPE
-4 DH1TYPE
-11 DH3TYPE
-8 DVTYPE
-0 channel_state_closed
-1 channel_state_config
-2 channel_state_open
-0x0030 L2CAP_config_MTU_SDP
-0xffff L2CAP_config_ftimeout_SDP
-0x03e3 L2CAP_config_MTU_RFCOMM
-0xffff L2CAP_config_ftimeout_RFCOMM
-260 l2cap_max_pkt_len
-)
-
-(
-0 FAILURE
-1 SUCCESS
-2 IN_PROGRESS
-)
-(
-0x00	IDLE
-0x01	WAIT_4_BB_PAGE
-0x02	WAIT_4_LMP_CONN
-0x03	WAIT_4_SCO_CONN
-0x04	WAIT_4_SCO_KILLED
-)
-
-/*mem_master_mss*/
-(
-0 STOP_ENC
-1 SEND_SWITCH_REQ
-)
-(
-0 HF_HS_READY
-1 HF_AG_READY
-)
-/* mem_hf_state */
-(
-0 HF_STATE_WAITING_RFCOMM_CONN
-1 HF_STATE_HF_SEND_FEATURE
-2 HF_STATE_WAITING_AG_FEATURE_OK
-3 HF_STATE_HF_SEND_INDICATORS
-4 HF_STATE_WAITING_AG_INDICATORS_OK
-5 HF_STATE_HF_SEND_CURR_STATUS
-6 HF_STATE_WAITING_AG_STATUS_OK
-7 HF_STATE_HF_SEND_UPDATE_STATUS
-8 HF_STATE_WAITING_AG_UPDATE_STATUS_OK
-9 HF_STATE_CONNECTED
-0x0a HF_STATE_HF_SEND_RECEIVE_INFO
-0x0b HF_STATE_WAITING_AG_INFO
-0x0c HF_STATE_HF_SEND_AT_CLIP
-0x0d HF_STATE_WAITING_AT_CLIP
-0x0e HF_STATE_HF_SEND_AT_CCWA
-0x0f HF_STATE_WAITING_AT_CCWA
-)
-/*mem_hf_call_state*/
-(
-0 HF_CALL_STATE_INACTIVE
-1 HF_CALL_STATE_SETUP
-2 HF_CALL_STATE_ACTIVE 
-)
-/* mem_pairing_state bit definition */
-(
-0 PAIR_INQUIRY_START
-1 PAIR_INQUIRY_TIME_OUT
-2 PAIR_INQUIRY_FAILED
-3 PAIR_INQUIRY_SUCCESS
-4 PAIR_READY_CONN
-5 PAIR_WAIT_CANCEL_RESPONSE
-6 PAIR_CONN_SUCCESS
-7 PAIR_WAIT_DETACH
-)  
-
-/* mem_pairing_mode bit definition */
-(
-0 FORCE_AUTHENTICATION
-)
-/* mem_hid_protecol_type */
-(
-0 PROTECOL_BOOT /*default*/
-1 PROTECOL_REPORT
-)
-
-/* mem_upper_sm_reconn */
-(
-1 UPPERSM_SEND_SDP_CONN_REQ
-2 UPPERSM_SEND_SDP_CFG_REQ
-3 UPPERSM_SEND_SDP_HF_SS
-4 UPPERSM_SEND_SDP_DISC_REQ
-5 UPPERSM_SEND_RFCOMM_CONN_REQ
-6 UPPERSM_SEND_RFCOMM_CFG_REQ
-7 UPPERSM_SEND_SABM_CMD
-8 UPPERSM_SEND_DISC
-9 UPPERSM_SEND_WAIT
-10 UPPERSM_SEND_HID_CONTROL_CONN_REQ
-11 UPPERSM_SEND_HID_CONTROL_CFG_REQ
-12 UPPERSM_SEND_HID_INTERRUPT_CONN_REQ
-13 UPPERSM_SEND_HID_INTERRUPT_CFG_REQ
-14 UPPERSM_SEND_SDP_HS_SS
-15 UPPERSM_SEND_SDP_PBAP_SS
-16 UPPERSM_SEND_SDP_AVTARG_SS
-)
-/* mem_upper_sm_remote_page */
-(
-1 UPPERSM_RP_SEND_SDP_CONN_REQ
-2 UPPERSM_RP_SEND_SDP_CFG_REQ
-3 UPPERSM_RP_SEND_SDP_HF_SS
-4 UPPERSM_RP_SEND_SDP_HS_SS
-5 UPPERSM_RP_SEND_SDP_PBAP_SS
-6 UPPERSM_RP_SEND_SDP_AVTARG_SS
-7 UPPERSM_RP_SEND_SDP_DISC_REQ
-8 UPPERSM_RP_SEND_AVCTP_CONN_REQ
-9 UPPERSM_RP_SEND_AVCTP_CFG_REQ
-)
-
-/* mem_ML2CAP_flag */
-(
-0 MSCHEDULER_HID_CONTROL_CONN_DONE
-1 MSCHEDULER_HID_INTERRUPT_CONN_DONE
-2 MSCHEDULER_HID_CONTROL_CFG_REQ_DONE
-3 MSCHEDULER_HID_CONTROL_CFG_RSP_DONE
-4 MSCHEDULER_HID_INTERRUPT_CFG_REQ_DONE
-5 MSCHEDULER_HID_INTERRUPT_CFG_RSP_DONE
-6 MSCHEDULER_HID_CONTROL_DISC_DONE
-7 MSCHEDULER_HID_INTERRUPT_DISC_DONE
-)
-/*    ui event    --add by lj*/
-(
-0x00 UI_DATA_EVNET_NONE
-0x01 UI_DATA_EVNET_HID
-0x02 UI_DATA_EVNET_AVDTP_S
-0x03 UI_DATA_EVNET_AVDTP_M
-0x04 UI_DATA_EVNET_AVCTP
-0x05 UI_DATA_EVNET_HS
-0x06 UI_DATA_EVNET_HF
-0x07 UI_DATA_EVNET_SPP
-0x08 UI_DATA_EVNET_OBEX
-)
-/*    ui ack --add by lj*/
-(
-0x00 UI_DATA_TX_NONE
-0x01 UI_DATA_TX_HID
-0x02 UI_DATA_TX_AVDTP_S
-0x03 UI_DATA_TX_AVDTP_M
-0x04 UI_DATA_TX_AVCTP
-0x05 UI_DATA_TX_HS
-0x06 UI_DATA_TX_HF
-0x07 UI_DATA_TX_SPP
-0x08 UI_DATA_TX_OBEX
-0x10 ACL_TX_L2CAP_SIGNAL
-0x11 ACL_TX_SDP
-0x12 ACL_TX_RFCOMM
-
-)
-
-(
-0 L2CAP_SDP_interface_conn
-1 L2CAP_SDP_interface_cfg
-)
-
-(                                   
-0 L2CAP_CHANNEL_STATE_CONN_REQ      
-1 L2CAP_CHANNEL_STATE_CONN_RES      
-2 L2CAP_CHANNEL_STATE_SND_CFG_REQ   
-3 L2CAP_CHANNEL_STATE_SND_CFG_RES   
-4 L2CAP_CHANNEL_STATE_RCV_CFG_REQ   
-5 L2CAP_CHANNEL_STATE_RCV_CFG_RES
-6 L2CAP_CHANNEL_RFCOMM_ONLY_SABM
-7 L2CAP_CHANNEL_RFCOMM_ONLY_UA
-6 L2CAP_CHANNEL_AVDTP_SIGNAL_INIT //set avdtp init complete
-6 L2CAP_CHANNEL_HID_HANDSHAKE_DONE
-0x3f L2CAP_CHANNEL_SETUP_COMPLETE
-0x7f L2CAP_CHANNEL_AVDTP_SIGNAL_COMPLETE
-0xff L2CAP_CHANNEL_RFCOMM_DLCI0_OPENED
-)                                     
-
-/*  AVDTP---lj*/
-(
-0 L2CAP_AVDTP_SIGNAL_CONNECT
-1 L2CAP_AVDTP_SIGNAL_CONFIG
-2 L2CAP_AVDTP_MEDIA_CONNECT
-3 L2CAP_AVDTP_MEDIA_CONFIG
-4 L2CAP_AVDTP_REPORT_CONNECT
-5 L2CAP_AVDTP_REPORT_CONFIG
-6 L2CAP_AVDTP_RECOVERY_CONNECT
-7 L2CAP_AVDTP_RECOVERY_CONFIG
-)
-/*  AVCTP---lj*/
-(
-0 L2CAP_AVCTP_SIGNAL_CONNECT
-1 L2CAP_AVCTP_SIGNAL_CONFIG
-)
-
-127 L2CAP_SIGNAL_MALLOC_SIZE
-
-//1 mem_rfcomm_malloc_fail_flag
-(
-0 RFCOMM_MALLOC_SUCCEED
-1 RFCOMM_MALLOC_FAIL
-)
-
-//mem_l2cap_flow_ctrl_flag
-(
-0 L2CAP_FLOW_CTRL_DISABLE
-1 L2CAP_FLOW_CTRL_ENABLE
-)
-
Index: DPI_Switch/format/le.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/le.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/le.format	(nonexistent)
@@ -1,724 +0,0 @@
-
-memalloc(
-56 mem_le_rxbuf
-262 mem_le_l2capbuf
-
-
-/* security temp */
-4 mem_le_mic
-4 mem_le_peer_mic
-//8 mem_le_skdm
-//8 mem_le_skds
-16 mem_le_peer_ltk
-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
-
-2 mem_le_no_using
-1 mem_le_peer_sca
-
-/* should be together */
-1 mem_le_att_opcode
-2 mem_le_att_handle
-
-1 mem_le_err_code
-1 mem_le_ll_pairing_fail_reason
-
-16 mem_le_sk
-
-/* test */
-1 mem_le_testtype
-2 mem_le_test_sync
-2 mem_le_test_pcnt
-
-6 mem_le_rxon_ts
-
-1 mem_le_rx_ll_opcode
-
-2 mem_le_notify_attr_start
-1 mem_le_notify_len
-
-1 mem_cmd_le_create_conn
-
-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
-
-1 mem_le_curr_att_len
-1 mem_le_search_res
-
-1 mem_le_continue_type
-
-)
-
-
-xmemalloc(
-2 mem_le_dsniff
-
-// parameters
-2 mem_le_conn_interval
-1 mem_le_scan_enable
-2 mem_le_scan_interval
-2 mem_le_scan_window
-
-1 mem_le_adv_enable
-1 mem_le_adv_data_len
-31 mem_le_adv_data
-1 mem_le_scan_data_len
-31 mem_le_scan_data
-
-//modified name
-1 mem_le_name_len
-30 mem_le_name
-
-
-5 mem_le_new_map
-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
-
-1 mem_le_txheader
-1 mem_le_txlen
-2 mem_le_txpayload
-2 mem_le_txcid
-1 mem_le_l2cap
-1 mem_le_l2cap_response
-31 mem_le_txbdy
-
-/* smp related */
-5 mem_le_pcnt_tx
-5 mem_le_pcnt_rx
-4 mem_le_last_mic
-4 mem_le_ivm
-4 mem_le_ivs
-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
-
-/* att related */
-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
-2 mem_le_notify_handle
-1 mem_le_search_uuid_length
-16 mem_le_search_uuid
-
-
-//START of LE adv parameter structure
-0 mem_le_adv_param
-2 mem_le_adv_interval
-1 mem_le_adv_type
-1 mem_le_adv_own_addr_type
-1 mem_le_adv_direct_addr_type
-6 mem_le_adv_direct_addr
-1 mem_le_adv_channel_map
-//END of LE adv parameter structure
-
-//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
-
-//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
-
-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_enable
-1 mem_le_secure_connect_flag
-1 mem_le_sc_calc
-1 mem_le_secure_connect_state
-1 mem_le_sc_confirm_gkey_flag
-1 mem_le_sc_local_key_invalid
-
-
-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
-
-//for continue
-2 mem_le_l2cap_size
-1 mem_le_packet_len_recved
-
-//for fifo
-1 mem_le_tx_buff_used
-2 mem_le_tx_ptr0
-2 mem_le_tx_ptr1
-2 mem_le_tx_ptr2
-2 mem_le_tx_ptr3
-
-//ble gatt signaling
-1 mem_le_signaling_identifier
-2 mem_le_l2cap_signaling_conn_param_update_rsp_result
-
-1 mem_le_packet_size
-1 mem_le_packet_llid
-2 mem_le_payload_ptr
-
-1 mem_le_md_count
-
-)
-
-
-(
-0x000001 param_le_features
-0x000a06 param_le_version
-0x1d87 param_le_subversion
-1636 param_sifs
-0x1e0 param_clke_cal_le
-0xa0 param_le_sca
-)
-
-(
-0 DEFAULT_STATES
-1 IPHONE_LOST_LTK
-2 MODULE_LOST_LTK
-3 LTK_NOT_LOST
-)
-
-
-(
-27 LE_MAX_PAKET_LEN
-)
-
-/* advertising channel PDU type */
-(
-0 ADV_IND
-1 ADV_DIRECT_IND
-2 ADV_NONCONN_IND
-3 SCAN_REQ
-4 SCAN_RSP
-5 CONNECT_REQ
-6 ADV_SCAN_IND
-)
-
-(
-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
-0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
-)
-
-
-	/* LE control packet type */
-	(
-	0x00 LL_CONNECTION_UPDATE_REQ
-	0x01 LL_CHANNEL_MAP_REQ
-	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
-	)
-
-	/* 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
-	)
-
-	/* L2CAP Signaling OPCODE */
-	(
-	0x12 L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST
-	0x13 L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE
-	)
-
-	/* 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
-	)
-	/*	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	
-	)
-
-	(// 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
-	)
-
-
-	//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
-	)
-
-
-	//modified_name
-	(
-	0x14 MAX_NAME_LEN
-	0x16 ADV_DATA_NAME_LEN
-	0X20 SPACE
-	
-	)
-	/* 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
-	)
-	/* 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
-	)
-
-	(
-	0x0000 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
-	0x0001 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED
-	)
-
-//	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
-)
-
-// 	le mode
-(
-0 lemode_idle
-1 lemode_slave
-3 lemode_master
-)
-
-
-(
-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
-)
-
-(
-0x00 LE_PAIRING_MODE_NONE
-0x01 LE_PAIRING_MODE_LAGACY_JUSTWORK
-0x02 LE_PAIRING_MODE_LAGACY_PASSKEY
-0x81 LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
-0x82 LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
-0x83 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
-
-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
-)
-
-(
-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
-)
-
-
-(
-96000 TIMER_SMP_PAIRING_TIMEOUT //30S
-)
-//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_AUTH
-5 FLAG_LE_PAIRING_AFTER_AUTH
-6 FLAG_LE_PAIRING_SEND_START_ENC_RSP
-7 FLAG_LE_PARING_SEND_ENC_INFORMATION
-8 FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION 
-9 FLAG_LE_PARING_SEND_INDENTITY_INFORMATION
-0xff FLAG_LE_PAIRING_END
-)
-
-
-
-/*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
-)
-
-//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
-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
-
-)
-
-(
-0 BIT_ADV_CHANNEL_MAP_37
-1 BIT_ADV_CHANNEL_MAP_38
-2 BIT_ADV_CHANNEL_MAP_39
-)
-
-
-
Index: DPI_Switch/format/lmp.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/lmp.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/lmp.format	(nonexistent)
@@ -1,224 +0,0 @@
-
-memalloc(
-
-1 mem_lmo_header_length
-1 mem_lmo_header_opcode
-17 mem_lmo_payload
-1 mem_lmi_accepted_opcode
-1 mem_disconn_reason_send
-1 mem_tx_fixed_freq
-1 mem_rx_fixed_freq
-1 mem_ext_features_page
-2 mem_lmpext_ssp_enable
-1 mem_remote_sppcap
-
-1 mem_lmp_conn_state
-2 mem_soft_timer
-1 mem_pincode_state
-
-1 mem_sres_tid
-1 mem_accptsco_tid
-
-1 mem_auth_enable
-1 mem_wait_encryption
-
-16 mem_sniff_payload
-4 mem_aurand_send_delay_time
-)
-
-xmemalloc(
-3 mem_lmp_version
-2 mem_lmp_subversion
-1 mem_local_name_length
-3 mem_local_name
-64 mem_local_name2
-1 mem_local_name_end
-1 mem_unsniff2sniff_timer
-1 mem_switch_flag
-1 mem_classic_bt_flag
-)
-
-	(
-	//bit flag:mem_classic_bt_flag
-	0 FLAG_SSP_REJECT_JUSTWORK
-	1 SHORT_MULT_FLAG
-	)
-	
-	(
-	//bit map
-	0 pair_state_inrand
-	1 pair_state_inrand_acpt
-	2 pair_state_send_comb
-	3 pair_state_recv_comb
-	4 pair_state_send_aurand
-	5 pair_state_recv_sres
-	6 pair_state_recv_aurand
-	7 pair_state_send_sres	
-	)
-	/* LMP opcodes */
-	(
-	1 LMP_NAME_REQ 
-	2 LMP_NAME_RES 
-	3 LMP_ACCEPTED 
-	4 LMP_NOT_ACCEPTED 
-	5 LMP_CLKOFFSET_REQ 
-	6 LMP_CLKOFFSET_RES 
-	7 LMP_DETACH 
-	8 LMP_IN_RAND 
-	9 LMP_COMB_KEY 
-	10 LMP_UNIT_KEY 
-	11 LMP_AU_RAND 
-	12 LMP_SRES 
-	13 LMP_TEMP_RAND 
-	14 LMP_TEMP_KEY 
-	15 LMP_ENCRYPTION_MODE_REQ 
-	16 LMP_ENCRYPTION_KEY_SIZE_REQ 
-	17 LMP_START_ENCRYPTION_REQ 
-	18 LMP_STOP_ENCRYPTION_REQ 
-	19 LMP_SWITCH_REQ 
-	20 LMP_HOLD
-	21 LMP_HOLD_REQ
-	23 LMP_SNIFF_REQ 
-	24 LMP_UNSNIFF_REQ 
-	26 LMP_PARK_REQ 
-	27 LMP_SET_BROADCAST_SCAN_WINDOW 
-	28 LMP_MODIFY_BEACON 
-	29 LMP_UNPARK_BD_ADDR_REQ 
-	30 LMP_UNPARK_PM_ADDR_REQ 
-	31 LMP_INCR_POWER_REQ 
-	32 LMP_DECR_POWER_REQ 
-	33 LMP_MAX_POWER 
-	34 LMP_MIN_POWER 
-	35 LMP_AUTO_RATE 
-	36 LMP_PREFERRED_RATE 
-	37 LMP_VERSION_REQ 
-	38 LMP_VERSION_RES 
-	39 LMP_FEATURES_REQ 
-	40 LMP_FEATURES_RES 
-	41 LMP_QUALITY_OF_SERVICE 
-	42 LMP_QUALITY_OF_SERVICE_REQ 
-	43 LMP_SCO_LINK_REQ 
-	44 LMP_REMOVE_SCO_LINK_REQ 
-	45 LMP_MAX_SLOT 
-	46 LMP_MAX_SLOT_REQ 
-	47 LMP_TIMING_ACCURACY_REQ 
-	48 LMP_TIMING_ACCURACY_RES 
-	49 LMP_SETUP_COMPLETE 
-	50 LMP_USE_SEMI_PERMANENT_KEY 
-	51 LMP_HOST_CONNECTION_REQ 
-	52 LMP_SLOT_OFFSET 
-	53 LMP_PAGE_MODE_REQ 
-	54 LMP_PAGE_SCAN_MODE_REQ 
-	55 LMP_SUPERVISION_TIMEOUT 
-	56 LMP_TEST_ACTIVATE
-	57 LMP_TEST_CONTROL
-	58 LMP_ENC_KEY_SIZE_MASK_REQ
-	59 LMP_ENC_KEY_SIZE_MASK_RES
-	60 LMP_SET_AFH
-
-	/* simple pairing support */
-	61 LMP_ENCAPSULATED_HEADER
-	62 LMP_ENCAPSULATED_PAYLOAD
-	63 LMP_SIMPLE_PAIRING_CONFIRM
-	64 LMP_SIMPLE_PAIRING_NUMBER
-	65 LMP_DHKEY_CHECK
-	127 LMP_ESCAPE
-	127 LMP_ESCAPE_4   /* add 2bytes LMP header support  */   
-	)
-	/* LMP EXT opcodes, ORed with bit 7 to make difference to nonEXT */
-	(
-	129 LMP_EXT_ACCEPTED
-	130 LMP_NOT_ACCEPTED_EXT
-	131 LMP_EXT_FEATURES_REQ
-	132 LMP_EXT_FEATURES_RES
-	139 LMP_PACKET_TYPE_TABLE_REQ
-	140 LMP_EXT_ESCO_LINK_REQ
-	141 LMP_EXT_REMOVE_ESCO_REQ
-	144 LMP_EXT_CHN_CLASSIFICATION_REQ
-	145 LMP_EXT_CHN_CLASSIFICATION
-	149 LMP_SNIFF_SUBRATING_REQ
-	150 LMP_SNIFF_SUBRATING_RES
-	151 LMP_PAUSE_ENCRYPTION_REQ
-	152 LMP_RESUME_ENCRYPTION_REQ
-	153 LMP_IO_CAP_REQ
-	154 LMP_IO_CAP_RES
-	)
-	/* LMP reason codes */
-	(
-	0x05 AUTHENTICATION_FAILURE_ERROR
-	0x06 KEY_MISSING
-	0x0b ACL_CONNECTION_ALREADY_EXISTS
-	0x13 OTHER_END_TERMINATED
-	0x15 ABOUT_TO_POEWR_OFF
-	0x16 LOCAL_HOST
-	0x18 PAIRING_NOT_ALLOWED
-	0x19 UNKNOWN_LMP_PDU
-	0x1A UNSUPPORTED_LMP_FEATURE 
-	0x1F UNSPECIFIED_ERROR
-	0x20 UNSUPPORTED_PARAMETERS
-	0x21 SWITCH_NOT_ALLOWED
-	0x23 TRANSACTION_COLLISION
-	0x24 PDU_NOT_ALLOWED
-	0x25 ENCRYPTION_MODE_NOT_ACCEPTABLE
-	0x2e NOT_SUPPORT_CHN_CLASSIFICATION
-	0x37 NOT_SUPPORT_SSP
-	)
-
-	/* test mode scenarios */
-	(
-	0 PAUSE_TEST_MODE
-	1 ZERO_PATTERN
-	2 ONE_PATTERN
-	3 ALT_PATTERN
-	4 PSEUDORANDOM
-	5 CLOSED_LOOP_BACK_ACL
-	6 CLOSED_LOOP_BACK_SCO
-	7 ACL_WITHOUT_WHITENING
-	8 SCO_WITHOUT_WHITENING
-	9 ALT2_PATTERN
-	255 EXIT_TEST_MODE
-	)
-	/* test mode hoppig modes */
-	(
-	0 FIXED_FREQ
-	1 NORMAL_HOP
-	)
-
-	/* mem_lmp_tid indicates which type of LMP will be sent */
-	(
-	0 TID_NORM_REPLY
-	1 TID_NORM_SEND
-	2 TID_ONE
-	3 TID_ZERO
-	4 TID_PAIRING
-	5 TID_ENCRYPTION
-	6 TID_VARIABLE
-	7 TID_RX
-	)
-
-	/* ============== lmp status ==========*/
-	(
-	0 lmp_incoming
-	1 lmp_outgoing
-	2 lmp_reject_msg
-	3 lmp_clear_msg
-	4 upper_reject_msg
-	5 upper_clear_msg
-	)
-
-(
-0x2ee00 TIMER_ONE_MINUTE //96000*2
-80 TIMER_SWITCH_WAITE
-12 TIMER_ENPT_WAITE
-)
-
-(
-0 SWITCH_FLAG_INIT
-1 SWITCH_FLAG_ACCEPT
-2 SWITCH_FLAG_NOT_ACCEPT
-)
-(
-0 NULL_ENCRYP
-1 DONE_ENCRYP
-)
-
Index: DPI_Switch/format/memblocks.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/memblocks.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/memblocks.format	(nonexistent)
@@ -1,64 +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.
-
-// USB C51 exchange area
-(
-0xff0 mem_mcmd
-0xff1 mem_mouse_data
-)
-
-//l2cap RX buffers
-(
-0x1000 mem_l2cap_rxbuff1		//0x400
-0x1400 mem_l2cap_rxbuff2		//0x400
-//end address:0x17ff
-)
-//l2cap TX buffers
-(
-0x1800 mem_tx_buff0		//128
-0x1880 mem_tx_buff1		//128
-0x1900 mem_tx_buff2		//128
-0x1980 mem_tx_buff3		//128
-0x1a00 mem_tx_buff4		//128
-0x1a80 mem_tx_buff5		//128
-0x1b00 mem_tx_buff6		//128
-0x1b80 mem_tx_buff7		//128
-//end address: 0x1bff
-)
-
-(
-0x1800 mem_le_tx_buffer0
-0x1900 mem_le_tx_buffer1
-0x1a00 mem_le_tx_buffer2
-0x1b00 mem_le_tx_buffer3
-//end addr:0x1dff
-)
-
-
-//uart buffer
-(
-0x1800 mem_h5rx_buf//0x400
-0x1bff mem_h5rx_buf_end
-0x1c00 mem_h5tx_buf
-0x1fff mem_h5tx_buf_end
-)
-
-
-(
-0x1800 mem_ir_record
-0x1c      mem_ir_record_max
-)
-
-ifndef REVD 
-(
-0x4b00 memk
-)
-
-
-endif
-
Index: DPI_Switch/format/patch.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/patch.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/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: DPI_Switch/format/regs.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/regs.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/regs.format	(nonexistent)
@@ -1,302 +0,0 @@
-(
-  0x8000 core_chipid
-  0x8003 core_kick
-  0x8005 core_lpm_wr
-  0x8006 core_misc_ctrl
-  0x8007 core_otp_rdata
-  0x8009 core_pcmoutfifo
-  0x8010 core_reset
-  0x8011 core_encrypt
-  0x8015 core_uart_txd
-  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_xtal_stable_time
-  0x8045 core_otp_addr
-  0x8046 core_otp_din
-  0x8047 core_otp_ctrl
-  0x8048 core_otpd_addr
-  0x804a core_otpd_len
-  0x804b core_otpd_ctrl
-  0x804c core_lpm_reg
-  0x804f core_lpm_isogate
-  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_trptrp
-  0x8062 core_uart_ctrl
-  0x8063 core_bist_ctrl
-  0x8064 core_pwm_pcnt3
-  0x8066 core_pwm_ncnt3 
-  0x8068 core_pwm_pcnt4
-  0x806a core_pwm_ncnt4
-  0x806c core_pwm_pcnt5
-  0x806e core_pwm_ncnt5
-  0x8070 core_gpio_oe0
-  0x8071 core_gpio_oe1
-  0x8072 core_gpio_oe2
-  0x8073 core_gpio_oe3
-  0x8074 core_gpio_out0
-  0x8075 core_gpio_out1
-  0x8076 core_gpio_out2
-  0x8077 core_gpio_out3
-  0x8078 core_gpio_pu0
-  0x8079 core_gpio_pu1
-  0x807a core_gpio_pu2
-  0x807b core_gpio_pu3
-  0x807c core_gpio_pd0
-  0x807d core_gpio_pd1
-  0x807e core_gpio_pd2
-  0x807f core_gpio_pd3
-  0x8080 core_gpio_sel
-  0x8081 core_gpio_sel1
-  0x8082 core_gpio_sel2
-  0x8083 core_gpio_key0
-  0x8084 core_gpio_key1
-  0x8085 core_gpio_key2
-  0x8086 core_spid_ctrl
-  0x8087 core_spid_delay
-  0x8088 core_spid_txlen
-  0x808a core_spid_txaddr
-  0x808c core_spid_rxaddr
-  0x808e core_spid_rxlen
-  0x8090 core_iicd_ctrl
-  0x8091 core_iicd_scl_low
-  0x8092 core_iicd_scl_high
-  0x8093 core_iicd_start_setup
-  0x8094 core_iicd_start_hold
-  0x8095 core_iicd_stop_setup
-  0x8096 core_iicd_data_setup
-  0x8097 core_iicd_data_hold
-  0x8098 core_iicd_txlen
-  0x809a core_iicd_txaddr
-  0x809c core_iicd_rxaddr
-  0x809e core_iicd_rxlen
-  0x80a0 core_pwm_pcnt0
-  0x80a2 core_pwm_ncnt0
-  0x80a4 core_pwm_pcnt1
-  0x80a6 core_pwm_ncnt1
-  0x80a8 core_pwm_pcnt2
-  0x80aa core_pwm_ncnt2
-  0x80b0 core_enc_ctrl
-  0x80b1 core_cvsd_ctrl
-  0x80b2 core_codec_ctrl
-  0x80b3 core_dec_ctrl
-
-
-
-
-  
-  0x8108 core_misc_status
-  0x8109 core_qdec_cntx
-  0x810a core_qdec_cnty
-  0x810b core_qdec_cntz
-  0x810c core_uart_status
-  0x810d core_uart_rbaud
-  0x810e core_uart_txitems
-  0x8110 core_uart_trptr
-  0x8112 core_uart_rxitems
-  0x8114 core_uart_rdptr
-  0x8116 core_uart_rwptr
-  0x8119 core_kscn_kstat
-  0x811a core_kscn_event
-  0x811b core_kscn_event_num
-  0x811c core_gpio_in
-  0x811d core_gpio_in1
-  0x8124 core_current_otp_addr
-  0x8126 core_otpd_remain
-  0x8128 core_spid_remain
-  0x812a core_iicd_remain
-  0x812c core_dma_status
-  0x812d core_perf_status
-  0x812e core_adc_in
-  0x8134 core_pcminfifo
-  0x8135 core_pcminfifo_remain
-  0x8136 core_pcmoutfifo_remain
-  0x8138 core_lpm_ctrl
-  0x813c core_lpm_xtalcnt
-  0x813d core_lpm_buckcnt
-  0x813e core_lpm_ldocnt
-  0x813f core_lpm_latch
-  0x8140 core_gpio_wakeup_low
-  0x8144 core_gpio_wakeup_high
-  0x8149 core_clk_counter
-  0x8150 core_adc_sum
-// dummy regs  
-
-  0x8203 core_ice_ctrl
-  0x8204 core_ice_status
-  0x8205 core_ice_break0
-  0x8207 core_ice_break1
-  
-  0x8280 core_docd_ctrl
-  0x8288 core_docd_paddr
-  0x828a core_docd_pdata
-
-  0x8300 iic_prer_low		
-  0x8301 iic_slave_addr	
-  0x8302 iic_ctr					
-  0x8303 iic_cr					
-  0x8304 iic_rxr					
-  0x8305 iic_txr					
-  0x8306 iic_sr					
-  0x8307 iic_fifo				
-
-  0x8400   mem_b_box          /* entire bank */
-  0x8500   mem_e_box          /* entire bank */
-  0x8600   mem_l_box          /* entire bank */
-
-ifdef REVD
-  0x8700 memk
-endif
-
-  0x8900 rfen_rx
-  0x8901 rfen_tx
-  0x8902 rfen_mdm
-  0x8903 rfen_sn
-  0x8904 rfen_msc
-  0x8905 rfen_ck
-  0x8906 rfen_adc
-  0x890a  rf_iq_gain
-  0x890b  rf_agc_nsat
-  0x890f  rf_adc_goff
-  0x8912 rf_agc_ctrl
-  0x8914 rfen_ulp
-  0x8973 rfen_chgpump
-  0x894b rf_rx_vctrl_reg1
-  0x894c rf_rx_vctrl_reg2
-  0x894d rf_rx_ib_lna
-  0x894e rf_rx_lna_ctrim
-
-  0x8950 rf_bpf_ctrim
-  0x8951 rf_bpf_ib
-  0x8952 rf_adc_rccal
-  0x8952 rf_rccal_ctrl
-  0x8953 rf_rccal_sel
-  0x8955 rf_tx_pa_ib
-  0x8956 rf_tx_pa_gc
-  0x895f rf_pll_rstn
-  0x8964 rf_sdm_en
-  0x8960 rf_pll_intg
-  0x8961 rf_pll_frac
-  0x8963 rf_pll_frachi
-  0x896c rf_afc_cap
-  0x8967 rf_clkpll_bias
-  0x896f rf_clkpll_en
-  0x8968 rf_clkpll_int
-  0x8969 rf_clkpll_frac
-  0x896d rf_balun_ctrim
-  0x8971 rf_adc_mode
-  0x8972 rf_adc_gc
-  0x8973 rf_adc_ch
-  0x8980 rf_rccal_result
-  0x8981 rf_afc_d2a
-  0x8982 rf_rssi
-
-
-0x8a00 core_usb_config		
-0x8a01 core_usb_int_mask	
-0x8a04 core_usb_addr
-0x8a10 core_usb_trig	
-0x8a11 core_usb_stall		
-0x8a12 core_usb_clear		
-0x8a18 core_usb_ep
-0x8a18 core_usb_dfifo0 
-0x8a19 core_usb_dfifo1  
-0x8a1a core_usb_dfifo2 
-0x8a20 core_usb_ep_len
-0x8a26 core_usb_status		
-0x8a27 core_usb_fifo_empty
-0x8a28 core_usb_fifo_full
-
-
-4 rx_freq_offset
-1 tx_freq_offset
-
-/* bit difinitions */
-  4 whiteoff_bit
-  6 clksel_rc
-  5 clksel_dpll
-  4 clksel_xtal
-  5 adc_rccal
-  0 bpf_rccal
-  1 demod_clkoff
-
-(
-  2 reload_code
-  3 gpio_latch
-  4 enable_retmem
-  7 cold_wake
-  0xef isogate_mask
-  0xe0 cs_mask
-)
-
-// misc ctrl
-(
-  0x01 otpd_start
-  0x02 spid_start
-  0x04 iicd_start
-  0x08 lock_otp
-  0x10 x_sethi
-  0x20 y_sethi
-  0x40 z_sethi
-  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
-)
-
-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
-0x2dc6c00 uart_clk
-0x16E3600 uart_clk_24
-
-//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_8051
-	9 CLOCK_OFF_KEYSCAN
-	0x0a CLOCK_OFF_USB
-	0x0b CLOCK_OFF_QDECODER
-	0x0c CLOCK_OFF_SPI
-	0x0d CLOCK_OFF_PWM
-	0x0e CLOCK_OFF_CODEC
-	0x0f CLOCK_OFF_UART
-)
-
-
Index: DPI_Switch/format/rfcomm.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/rfcomm.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/rfcomm.format	(nonexistent)
@@ -1,391 +0,0 @@
-/*****************************************************************************/
-/* RCS HEADER -- DO NOT ERASE                                                */
-/* $Author: Administrator $                                                           */
-/* $Id: bt_rfcomm_format.upper,v 1.1 2009-09-28 04:06:17 Administrator Exp $ */
-/* Orisil Technology                                                      */
-/*****************************************************************************/
-
-/**********/
-/* memory */
-/**********/
-
-memalloc(
-1 memRemoteRPNBitRate
-1 memRemotePRNDataBits
-1 memRemotePRNStopBit
-1 memRemotePRNParity
-1 memRemotePRNFlowControl
-1 memRemotePRNXon
-1 memRemotePRNXoff
-
-
-3 mem_mod2div_temp
-2 mem_contw_temp
-2 mem_attrib_list
-
-//rfcomm head
-1 mem_current_adss
-1 mem_current_channel
-1 mem_current_frame_type
-1 mem_current_fcs
-2 mem_current_length
-2 mem_rfcomm_uih_payload_ptr
-
-//rfcomm uih
-1 mem_uih_cmd_type
-2 mem_uih_length
-2 mem_param_payload_ptr
-
-
-//rfcomm modem status
-1 mem_ms_param
-
-//rfcomm pn
-1 mem_pn_credit_flow_type_info
-1 mem_pn_priority
-1 mem_pn_acknowledg_timer
-1 mem_pn_max_retrans
-
-1 mem_rfcomm_send_adss
-1 mem_rfcomm_send_frame_type
-1 mem_rfcomm_send_fcs
-1 mem_rfcomm_send_offset
-
-)
-
-xmemalloc(
-1 mem_pn_dlci
-2 mem_pn_max_frame_size
-
-1 memFCStemp1
-1 memFCStemp2
-1 memFCStemp3
-
-1 mem_rfcomm_initiator
-
-1 mem_remote_spp_channel
-
-1 mem_HIUfcs_SPP
-1 mem_HIUfcs_SPP_WCredits
-
-1 mem_rfcomm_send_more_pkt
-
-1 mem_remote_credits
-1 mem_credit_given
-
-//rfcomm modem status
-1 mem_ms_channel
-
-1 mem_credit_flag
-
-2 mem_rfcomm_max_frame_size
-1 mem_rfcomm_credit_init_data
-
-2 mem_cb_receive_spp_data
-
-2 mem_nl_rx_data_src
-2 mem_nl_rx_len_all
-)
-
-
-(
-0 CREDIT_DISABLE
-1 CREDIT_ENABLE
-)
-
-
-/************************************************************************/
-  
-
- 
-/************/
-/* constant */
-/************/
-
-/* RFCOMM state for Headset (memRFCOMM_State) */ 
-  (
-    0 RFCOMM_IDLE           /* before the responsor HS receive SABM            */
-    1 RFCOMM_W4_DLCI0_OPEN
-    2 RFCOMM_W4_DLCI0_CLOSE
-    3 RFCOMM_START_DLCI0    /* After respond SABM frame (DLCI=0)               */
-    4 RFCOMM_W4_DLCI_OPEN
-    5 RFCOMM_W4_DLCI_CLOSE
-    6 RFCOMM_DLCI_OPENED    
-   
-  )
-  
-/* RFCOMM timer constants   */
-  (
-    1000  RFCOMM_T1         /* Used by SABM and DISC frames,100*20ms = 20s     */     
-    1000  RFCOMM_T2         /* Used by commands send in UIH on DLCI0,          */
-    300   RFCOMM_T3_RINGON  /* 6s for ring fade time                           */
-  
-  )
-
-/* Command Type */
-  (
-    0x3F RSP_RX_SABM        /*responsor expect SABM from initiator             */
-    0x3F INI_TX_SABM
-	
-    0x73 RSP_TX_UA          /*responsor send out UA command                    */
-    0x73 UA_WFBIT_SET	    /* UA control field with F bit set                 */
-	
-    0xEF RSP_RX_UIH         /*responsor expect UIH from initiator              */
-
-    0xEF RSP_TX_UIH         /*responsor send UIH to initiator                  */
-     
-    0x1F RSP_TX_DM          /*responsor send DM to initiator                   */
-    0x1F DM_WFBIT_SET       /* DM control field with F bit set                 */
-    0x0F DM_WFBIT_CLEAR     /* DM control field with F bit clear               */
-
-    0x53 RSP_RX_DISC        /*responsor expect DISC from initiator             */
-    0x53 INI_TX_DISC	    /*initiator send DISC control type command         */
-     
-    0xFF RSP_RX_UIH_WDATA   /*UIH data with credit flow control info           */
-    
-    
-  )
-
-/* Multiplexor commands and responses frames */
-  (
-    0x83 PN_COMMAND           /* Bit 0 EA C/R Type = 000001         */
-    0x81 PN_RESPONSOR         /* Bit 0 EA C/R Type = 000001         */
-    
-    0xE3 MSC_COMMAND          /* Bit 0 EA C/R Type = 000111         */
-    0xE1 MSC_RESPONSOR
- 
-    0x13 NSC_COMMAND          /* Bit 0 EA C/R Type = 001000         */
-    0x11 NSC_RESPONSOR        /* Bit 0 EA C/R Type = 001000         */
-
-    0x23 TEST_COMMAND         /* Bit 0 EA C/R Type = 000111         */
-    0x21 TEST_RESPONSOR 
-    
-    0x93 RPN_COMMAND          /* Bit 0 EA C/R Type = 001001         */
-    0x91 RPN_RESPONSOR 
-    
-    0x53 RLS_COMMAND          /* Bit 0 EA C/R Type = 001010         */
-    0x51 RLS_RESPONSOR 
-
-    0xA3 FCON_COMMAND         /* Bit 0 EA C/R Type = 000101         */
-    0xA1 FCON_RESPONSOR 
-    
-    0x63 FCOFF_COMMAND        /* Bit 0 EA C/R Type = 000110         */
-    0x61 FCOFF_RESPONSOR 
-    	
-    0x03 RLS_OVERRUN
-    0x05 RLS_PARITY_ERROR
-    0x09 RLS_FRAMING_ERROR
-  )
-
-/* memLocalCredit */
-  (
-    0x01 RFCOMM_CREDIT
-  )
-
-  (
-  	0x007f RFCOMM_MAX_FRAME_SIZE
-  )
-
-/* UIH received Data length */
-  (
-    0  LENGTH_ZERO
-    
-    6  LENGTH_OK
-    7  LENGTH_HOT
-    8  LENGTH_RING
-    9  LENGTH_ERROR
-    9  LENGTH_AGVOL_ONEBYTE
-    10 LENGTH_AGVOL_TWOBYTE
-    10 LENGTH_VOL_ONEBYTE
-    11 LENGTH_VOL_TWOBYTE
-    12 LENGTH_BRSF
-    13 LENGTH_PLUS_CIEV
-    15 LENGTH_INBANDRING
-    14 LENGTH_CIEV_CALL
-    17 LENGTH_CRING
-    20 LENGTH_BRSF_OK
-    24 LENGTH_CIND0
-    28 LENGTH_CIEV_TWO
-    32 LENGTH_CIND_OK
-    59 LENGTH_CIND_OK2
-    100 LENGTH_DISCARD
-  )
-  
-/************/
-/* flags    */
-/************/
-  
-/* memRFCOMM_L2CAP_Interface */
-  (
-    0 RFCOMM_TX_W4BUF_FLAG    /* Wait for Tx buffer empty flag */
-    1 RFCOMM_CLOSE_LINK_FLAG
-  )
-  
-
-    
-/* memRemoteMSC		*/
-  (
-    0 MSC_EA_BIT
-    1 MSC_FC_BIT
-    2 MSC_RTC_BIT
-    3 MSC_RTR_BIT
-    6 MSC_IC_BIT
-    7 MSC_DV_BIT
-  )
-
-/* memRemoteRLS         */
-  (
-    0x0C OVERRUN_ERROR
-    0x0A PARITY_ERROR
-    0x09 FRAMING_RERROR
-  )
-  
-/* memRemoteRPNBitRate  */
-  (
-    0x00 BITS2400
-    0x01 BITS4800
-    0x02 BITS7200
-    0x03 BITS9600
-    0x04 BITS19200
-    0x05 BITS38400
-    0x06 BITS57600
-    0x07 BITS115200
-    0x08 BITS230400
-  )
-  
-/* memRemotePRNDataBits	*/
-  (
-    0x00 DATABITS5
-    0x01 DATABITS6
-    0x02 DATABITS7
-    0x03 DATABITS8
-  )
-  
-/* memRemotePRNStopBit	*/
-  (
-    0    ONESTOP
-    1    ONEHALFSTOP
-  )
-  
-/* memRemotePRNParity   */
-  (
-    0    ODDPARITY
-    1    EVENPARITY
-    2    MARKPARITY
-    3    SPACEPARITY
-    
-    7    PARITY_ENABLE_BIT
-  )
-
-/* RPN bit mask(in)     */
-  (
-     0   BIT_RATE_MASK_BIT
-     1   DATA_BITS_MASK_BIT
-     2   STOP_BITS_MASK_BIT
-     3   PARITY_MASK_BIT
-     4   PARITY_TYPE_MASK_BIT
-     5   XON_CHAR_MASK_BIT
-     6   XOFF_CHAR_MASK_BIT
-  )
-  
-/* RPN bit mask(in) 2    */
-  (
-     0   XON_XOFF_INPUT_MASK_BIT
-     1   XON_XOFF_OUTPUT_MASK_BIT
-     2	 RTR_INPUT_MASK_BIT
-     3   RTR_OUTPUT_MASK_BIT
-     4   RTC_INPUT_MASK_BIT
-     5   RTC_OUTPUT_MASK_BIT
-
-  )
-
-/* memRFCOMM_Request	*/
-  (
-    0 SEND_MSC_CMD_REQ_FLAG
-    1 SEND_AT_CKPD_REQ_FLAG
-    2 SEND_RING_REQ_FLAG
-    3 SEND_SABM_CMD
-  )
-  
-/* memRFCOMM_Misc_Flag  */
-  (
-    0 MSC_CDM_ALREADY_SEND_FLAG
-    1 CREDIT_FLOW_USED_FLAG
-    2 DONT_EMBEDDED_CREDIT_FLAG 
-    3 MSC_EXCHANGE_DONE_FLAG
-    4 FLOW_CONTROL_FCOFF_BIT            /* set when receive FCoff, clear when FCon   */
-  )
-  
-/* memRemoteMSC		*/
-  (
-    1 FLOW_CONTROL_FC_BIT		/* received MSC FC bits                      */
-  
-  )
-/* Address filed        */
-  (
-    0 ADDR_EA_BIT
-    1 ADDR_CR_BIT
-    2 ADDR_D_BIT
-  )
-//should be same as descripted in SDP
-(
-    1 SPP_SLAVE_CHANNEL
-    7 OBEX_SERVER_CHANNEL
-    8 HF_SERVER_CHANNEL 
-    9 HS_SERVER_CHANNEL
-)
-/* memRFCOMM_Flag */
-(
-	0 USING_HF_PROFILE
-	1 USING_HS_PROFILE
-	2 USING_SPP_PROFILE
-)
-/*RFCOMM Frame Type*/
-(
-	0x3f RFCOMM_FRAME_TYPE_SABM
-	0x73 RFCOMM_FRAME_TYPE_UA
-	0xEF RFCOMM_FRAME_TYPE_UIH
-	0xFF RFCOMM_FRAME_TYPE_UIH_CREDITS
-	0x53 RFCOMM_FRAME_TYPE_DISCONN
-)
-/*RFCOMM UIH CMD TYPE*/
-(
-	0x41 UIH_PARAM_NEG_CMD
-	0x40 UIH_PARAM_NEG_RES
-	0x49 UIH_PARAM_CMD_REMOVE_PORT
-	0x71 UIH_MODEM_STATUS_CMD
-	0x70 UIH_MODEM_STATUS_RES
-)
-
-/*bits in rfcomm address*/
-(
-	0 RFCOMM_ADDRESS_EXT_LEN
-	1 RFCOMM_ADDRESS_CR
-	2 RFCOMM_ADDRESS_DERECTION
-
-
-)
-
-	(                                   
-	0 RFCOMM_CHANNEL_STATE_PN_CMD
-	1 RFCOMM_CHANNEL_STATE_PN_RES
-	2 RFCOMM_CHANNEL_STATE_SABM
-	3 RFCOMM_CHANNEL_STATE_UA
-	4 RFCOMM_CHANNEL_STATE_SND_MS_CMD
-	5 RFCOMM_CHANNEL_STATE_RCV_MS_CMD
-	6 RFCOMM_CHANNEL_STATE_SND_MS_RES
-	7 RFCOMM_CHANNEL_STATE_RCV_MS_RES
-	0xff RFCOMM_CHANNEL_SETUP_COMPLETE
-	) 
-
-	/*mem_rfcomm_send_more_pkt*/
-	(
-	1 MORE_PKT_MSC_CMD_HF
-	2 MORE_PKT_MSC_CMD_HS
-	3 MORE_PKT_MSC_CMD_SPP
-	4 MORE_PKT_MSC_CMD_OBEX
-	)
-
-	(
-	127 RFCOMM_MALLOC_SIZE
-	)
\ No newline at end of file
Index: DPI_Switch/format/sdp.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/sdp.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/sdp.format	(nonexistent)
@@ -1,70 +0,0 @@
-
-memalloc(
-0 mem_sdp_mem_start
-8 mem_sdp_uuid_search_ptr
-2 mem_sdp_continue_byte
-1 mem_sdp_pduid
-2 mem_sdp_transactionid
-2 mem_sdp_transactionid_local
-2 mem_sdp_attribute_maxbyte
-2 mem_sdp_record_maxcnt
-4 mem_sdp_record_handle
-1 mem_sdp_LACAP_found
-1 mem_sdp_RFCOMM_found
-0 mem_sdp_handle_list
-32 mem_sdp_attrib_list
-2 mem_sdp_error_code
-2 mem_sdp_all_length
-1 mem_handle_humber
-2 mem_search_uuid
-0 mem_sdp_mem_end
-)
-xmemalloc(
-2 mem_ui_uuid_table
-22 mem_all_uuid_16bits
-34 mem_all_uuid_128bits
-2 mem_sdp_l2capch_ptr
-)
-(
-0 AGORHS_SERVICE
-1 GENAUDIO_SERVICE
-2 HANDSFREE_SERVICE
-)
-(
-0 ATTRIBUTEID_0000
-1 ATTRIBUTEID_0001
-2 ATTRIBUTEID_0004
-3 ATTRIBUTEID_0009
-4 ATTRIBUTEID_0100
-5 ATTRIBUTEID_0302
-6 ATTRIBUTEID_0006
-7 ATTRIBUTEID_0311
-)
-
-(
-0x01 SDP_ERROR_RES
-0x02 SDP_SEARCH_REQ
-0x03 SDP_SEARCH_RES
-0x04 SDP_ATTRIBUTE_REQ
-0x05 SDP_ATTRIBUTE_RES
-0x06 SDP_SEARCHATTRIB_REQ
-0x07 SDP_SEARCHATTRIB_RES
-)
-0x2600 sdp_max_amount
-250 SDP_MALLOC_SIZE
-0x6e sdp_tid_spp //any number
-
-(
-0x1f11 SDP_UUID_HS_AUDIO_GATEWAY
-)
-
-(
-0X09 SDP_ATTRIBUTE_ID
-0x0a SDP_ATTRIBUTE_RANGE
-)
-
-(//mem_sdp_handle_list
-7 SDP_MAX_HANDLE_NUMBER
-)
-
- 
Index: DPI_Switch/format/security.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/security.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/security.format	(nonexistent)
@@ -1,141 +0,0 @@
-
-memalloc(
-/* moved from bt.format for 3dh5 1021bytes packet buffer */
-17 mem_rxbuf
-
-16 mem_random_number
-16 mem_round_key
-16 mem_kinit
-
-16 mem_input_store
-16 mem_x
-15 mem_y
-1 mem_y15
-17 mem_key_store
-1 mem_key_store_end
-2 memp_ar_key
-2 memp_ar_input
-10 mem_ar_hround
-
-
-1 mem_ec_infinite
-2 mem_ec_loopc
-1 mem_aes_cmac_data_length
-
-0 memdat
-/* ecc calculation */
-
-24 mem_ax
-24  mem_ay
-24  mem_az
-24 mem_bx
-0 mem_ax_256 //32 bytes
-24 mem_by
-8 mem_bz
-16 mem_ay_256 // 32 bytes
-16 mem_cx
-8 mem_az_256 // 32 bytes
-23 mem_cy
-1 mem_cy5
-0 mem_bx_256 // 32 bytes
-24 mem_cz
-8  mem_k
-16 mem_by_256 // 31 bytes
-16 mem_align
-
-0 mem_bz_256  //32 bytes
-0 mem_tmp1
-24 memahbak
-8 mem_tmp5
-0 mem_cx_256  //32 bytes
-16 memahsave
-16  mem_tmp2
-0 mem_cy_256  // 32 bytes
-0  memahsave_end 
-1  mem_addr_padding 
-7   mem_addr_value         /* 12 bytes     */ 
-0 mem_tmp3
-5 mem_t1
-3  mem_addr_value_end   
-15 mem_addr_iocap_end
-1 mem_cy5_256 // 1 byte
-0 mem_cz_256 // 32 bytes
-0 mem_tmp0
-8 mem_t0
-16 mem_tmp0a
-8  mem_t2
-16 mem_k_256 //32 bytes
-16 mem_t3
-8  mem_tmp1_256 //32 bytes
-24 mem_t7
-
-
-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
-
-//p256
-//2 mem_ec_loopc_256
-//32 mem_ax_256
-//32 mem_ay_256
-//32 mem_az_256
-//32 mem_bx_256
-//32 mem_by_256
-//32 mem_bz_256
-//32 mem_cx_256
-//31 mem_cy_256
-//1 mem_cy5_256
-//32 mem_cz_256
-//32 mem_k_256
-
-
-//32 mem_tmp1_256
-//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
-
-32 mem_p_256		
-32 mem_a_256
-32 mem_gx_256
-32 mem_gy_256
-//4 mem_le_keyid
-16 mem_le_slat
-
-
-//64 mem_regext
-//1 mem_regext_index
-
-//16 mem_le_mackey
-
-
-//1 mem_AES_CMAC_flag
-//16 mem_AES_CMAC_temp
-//16 mem_AES_CMAC_M_last
-
-//4 mem_le_gkey
-
-//16 mem_le_r
-
-)
-
-
Index: DPI_Switch/format/simple_pairing.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/simple_pairing.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/simple_pairing.format	(nonexistent)
@@ -1,188 +0,0 @@
-/* simple pairing page */
-
-memalloc(
-
-//4 mem_hci_ssp_mode
-0 mem_sp_state_start
-1 mem_sp_state
-1 mem_master_sp_state
-1 mem_sp_flag
-1 mem_master_sp_flag
-1 mem_sp_calc
-1 mem_sp_dh_ready
-1 mem_sp_localsm
-1 mem_pairing_auth
-
-0 mem_sp_flag_start
-1 mem_sp_local_key_send_count
-1 mem_sp_remote_key_recv_count
-1 mem_sp_remote_key_invalid
-1 mem_sp_dhkey_invalid
-
-
-4 mem_gkey
-
-
-8 mem_le_pubkey_remote_x_256
-0 mem_sp_pubkey_remote
-24 mem_sp_pubkey_remote_x
-0 mem_sp_pubkey_remote_x_end
-8 mem_le_pubkey_remote_y_256
-24 mem_sp_pubkey_remote_y
-
-8 mem_le_dhkey_256
-24 mem_sp_dhkey
-0 mem_sp_dhkey_end
-
-16 mem_sp_random_local
-0 mem_sp_random_local_end
-16 mem_sp_random_remote
-0 mem_sp_random_remote_end
-0 memresult
-0 mem_sp_calc_result
-4 memh
-4 memg
-4 memf
-4 meme
-0 mem_sp_calc_result_high
-4 memd
-4 memc
-4 memb
-4 mema
-16 mem_sp_check_result
-16 mem_sp_confirm_remote
-16 mem_sp_prarm_stack
-)
-
-xmemalloc(
-1 mem_sp_local_key_invalid
-
-
-32 mem_le_private_key_256
-32 mem_le_pubkey_local_x_256
-32 mem_le_pubkey_local_y_256
-
-24 mem_sp_private_key
-0 mem_sp_pubkey_local
-24 mem_sp_pubkey_local_x
-0 mem_sp_pubkey_local_x_end
-24 mem_sp_pubkey_local_y
-
-1 mem_ssp_enable
-3 mem_sp_iocap_local
-3 mem_sp_iocap_remote
-
-1 mem_flag_mode_ssp_pin
-1 mem_ssp_mode_flag
-1 mem_authentication_passkey_times
-1 mem_passkey_1bit
-1 mem_flag_pairing_state
-
-)
-/* simple pairing status flag */
-(
-  0x00   SP_FLAG_STANDBY
-  0x01   SP_FLAG_COMMIT
-  0x02   LE_SP_FLAG_COMMIT_256
-
-)
-
-/* simple pairing calc flag */
-(
-  0x00   SP_CALC_STANDBY
-  0x01   SP_CALC_PUBKEY
-  0x02   SP_CALC_DHKEY
-  0x03   SP_CALC_PUBKEY_256
-  0x04   SP_CALC_DHKEY_256
-)
-
-/* simple pairing state */
-(
-  0x00   SP_STAT_NULL
-  0x01   SP_STAT_KEY_RECV
-  0x02   SP_STAT_KEY_GENERATE
-  0x03   SP_STAT_KEY_SEND
-  0x04   SP_STAT_COMMIT_CALC
-  0x05   SP_STAT_COMMIT_SEND
-  0x06   SP_STAT_RANDOM_RECV
-  0x07   SP_STAT_RANDOM_SEND
-  0x08   SP_STAT_CONFIRM_RECV
-  0x09   SP_STAT_CONFIRM_CHECK
-  0x0A   SP_STAT_CONFIRM_CALC
-  0x0B   SP_STAT_CONFIRM_SEND
-  0x0C   SP_STAT_LINK_KEY_CALC
-  0x0F   SP_STAT_DONE
-  0x10   SP_STAT_FEATURE_EXT_SEND
-  0x11   SP_STAT_GKEY_CALC
-  /*simple pairing master only*/
-  0x12   SP_MASTER_STAT_START_SKIP
-  0x13   SP_MASTER_STAT_START_DONE
-  0x14   SP_STAT_COMMITMENT_COMPARE
-  0x15   SP_STATE_END
-)
-
-
-/* simple paring invalid flag */
-(
-  0x00   SP_KEY_INVALID
-  0x01   SP_KEY_VALID
-  0x03   SP_KEY_VALID_256
-
-)
-
-/* encapsulated defination for P-192 key */
-(
-  0x01  ENCAPSULATED_MAJOR_TYPE_P192
-  0x01  ENCAPSULATED_MINOR_TYPE_P192
-  0x30  ENCAPSULATED_LEN_P192
-)
-
-/* bluetooth 2.1 support flag */
-(
-  0x00  SIMPLE_PAIRING_ENABLE
-  0x01  ENCRYPTION_PAUSE_ENABLE
-  0x02  EXTENDED_INQUIRY_RESPOSE_ENABLE
-  0x03  SNIFF_SUBRATING_ENABLE
-)
-
-/*mem_sp_localsm*/
-(
-  0x00 DEFAULT_STATEMACHINE
-  0x01 LOCAL_STATEMACHINE
-)
-
-(
- 0x00 DEFALT_PAIRING_AUTH
- 0x01 PAIRING_AUTH
-)
-
-(
-1 SSP_MODE_SSP_PIN_FLAG
-2 SSP_MODE_PASSKEY_ENTRY_FLAG
-3 SSP_MODE_JUST_WORK_FLAG
-)
-
-(//ssp mode
-0x040003 SSP_MODE_JUST_WORK_IO_CAP_DATA
-0X040001 SSP_MODE_SSP_PIN_IO_CAP_DATA
-0X040002 SSP_MODE_PASSKEY_IO_CAP_DATA
-)
-
-(
-0x00 DISPLAY_ONLY
-0x01 DISPLAY_YESNO
-0x02 KEYBOARD_ONLY
-0x03 NO_INPUT_NO_OUTPUT
-)
-
-(
-7 FLAG_MODE_SSP_PIN_REVICEVE_COMPARISON_BIT
-6 FLAG_MODE_SSP_PIN_RECIEVE_DHKEY_BIT
-0 FLAG_MODE_SSP_PIN_COMPARISON_RESULT_BIT
-)
-(
-1 FLAG_PAIRING_STATE_PAIRING
-0 FLAG_PAIRING_STATE_NOT_PAIRING
-)
-
-  
Index: DPI_Switch/format/ui.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/ui.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/ui.format	(nonexistent)
@@ -1,448 +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(
-2 mem_UI_data_txbuff_length
-
-1 mem_ipc_skip_continue_proc
-0 mem_ui_timer_temp  //length 4
-4 mem_ipc_rega_temp
-) 
-
-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_discovery_timeout_timer_count
-1 mem_hid_handshake_timer_count
-1 memui_reconnect_mode
-2 mem_ui_state_map
-
-//UI Config area
-1 mem_ui_profile_supported
-1 mem_ui_button_timeout
-1 mem_ui_button_gpio
-2 mem_discovery_timeout
-1 mem_pin_length
-16 mem_pin
-
-)
-/************/
-/* constant */
-/************/
-
-//mem_ui_state_map
-(
-0 UI_STATE_BT_CONNECTED
-1 UI_STATE_BT_SETUP_COMPLETE
-2 UI_STATE_BT_HID_CONN
-3 UI_STATE_BT_HID_HANDSHAKE
-4 UI_STATE_BT_SPP_CONN
-5 UI_STATE_BT_SNIFF
-6 UI_STATE_BT_DISCOVERY
-7 UI_STATE_BT_RECONNECT
-8 UI_STATE_BT_SLAVE_ROLE
-9 UI_STATE_BLE_CONNECTED
-10 UI_STATE_BLE_WRITE_RCV
-11 UI_STATE_BLE_ADV
-12 UI_STATE_BTN_DOWN
-)
-
-(
-1 UI_STATE_SPP_NL_AUTO_DISCOVER
-
-)
-
-/* UI state for Headset (memui_HS_State) */ 
-   (
-    0 UI_HEADSET_DISCONNECT
-    1 UI_HEADSET_IDLE                   /* before the responsor HS receive SABM      */
-    2 UI_HEADSET_W4CONNECT
-    3 UI_HEADSET_RINGING
-    4 UI_HEADSET_CONNECTED
-    5 UI_HEADSET_PARING
-  )
-/* memui_BB_State */
-(
-  0 UI_BB_OFF
-  1 UI_BB_IDLE
-  2 UI_BB_DISCOVERY
-  3 UI_BB_CONNECTED_ACTIVE_NO_SCO
-  4 UI_BB_CONNECTED_ACTIVE_WITH_SCO
-  5 UI_BB_CONNECTED_ACTIVE_WAIT_SNIFF
-  6 UI_BB_CONNECTED_SNIFF
-  7 UI_BB_RECONNECT
-  8 UI_BB_CONNECTED_SNIFF_WITH_SCO
-)
-
-/************/
-/* flags    */
-/************/
-  
-/* memui_Misc_Flags */
-  (
-    5 NO_IDLE_TURN_OFF
-    7 ANSWER_RING_FLAG               /* 1 Answer,0 no*/
-  )
-
-/* mem_UI_SCH_Interface */
-  (
-    0  UI_HS_PAIRING 
-    2  UI_REQ_CLOSE_RFCOMM
-    3  UI_LINK_LOST
-    4  UI_REQ_OPEN_SCO
-    6  UI_REQ_CLOSE_SCO
-  )
-  
-/* memui_PassOverKey */
-  (
-    0  ANSWER_RING_BIT
-    0  AG_SEND_RING_BIT
-    1  VOL_UP_BIT
-    2  VOL_DOWN_BIT
-    3  INI_CALL_BIT
-    4  DAIL_LAST_CALL
-    5  END_CALL_BIT
-    6  NOKIA_VOICE_ACTIVE 
-    7  REJECT_CALL_BIT
-  )
-  
-/* memui_reconnect_mode */
-(
-  0 NO_RECONNECTION
-  1 RECONNECT_HID
-  2 RECONNECT_HF
-  3 RECONNECT_HS
-  4 RECONNECT_HID_HF
-  5 RECONNECT_HID_HS
-)
-/* memui_Commands */
-(
-0 BT_CMD_STANDBY
-1 BT_CMD_START_DISCOVERY
-2 BT_CMD_STOP_DISCOVERY
-3 BT_CMD_RECONNECT
-4 BT_CMD_DISCONNECT
-5 BT_CMD_ENTER_SNIFF
-6 BT_CMD_EXIT_SNIFF
-7 BT_CMD_ENTER_SNIFF_SUBRATING
-8 BT_CMD_EXIT_SNIFF_SUBRATING
-9 BT_CMD_SNIFF_TEST
-10 BT_CMD_SET_PIN_CODE
-11 BT_CMD_START_INQUIRY
-12 BT_CMD_STOP_INQUIRY
-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
-29 BT_CMD_ROLE_SWITCH
-30 BT_CMD_BB_RECONN_CANCEL
-31 BT_CMD_STORE_RECONN_INFO_LE
-32 BT_CMD_STORE_RECONN_INFO_BT
-33 BT_CMD_DHKEY_NOT_ACCEPT
-34 BT_CMD_START_24G
-35 BT_CMD_STOP_24G
-36 BT_CMD_PAIR_24G
-37 BT_CMD_STORE_RECONN_INFO
-)
-
-(
-0x00 BT_EVT_NULL
-0x01 BT_EVT_BB_CONNECTED
-0x02 BT_EVT_BB_DISCONNECTED
-0x03 BT_EVT_RECONN_STARTED
-0x04 BT_EVT_RECONN_FAILED
-0x05 BT_EVT_SETUP_COMPLETE
-0x06 BT_EVT_HID_CONNECTED
-0x07 BT_EVT_HID_DISCONNECTED
-0x08 BT_EVT_SPP_CONNECTED
-0x09 BT_EVT_SPP_DISCONNECTED
-0x0A BT_EVT_PINCODE_REQ
-0x0B BT_EVT_ENTER_SNIFF
-0x0C BT_EVT_EXIT_SNIFF
-0x0D BT_EVT_ENTER_SNIFF_SUB
-0x0E BT_EVT_EXIT_SNIFF_SUB
-0x0F BT_EVT_DISCOVERY_STOPED
-0x10 BT_EVT_BUTTON_LONG_PRESSED
-0x12 BT_EVT_HID_HANDSHAKE
-0X13 BT_EVT_RECONN_PAGE_TIMEOUT
-0x14 BT_EVT_LE_CONNECTED
-0X15 BT_EVT_LE_DISCONNECTED
-0x16 BT_EVT_ML2CAP_CONN_REFUSED
-0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
-0x18 BT_EVT_LINKKEY_GENERATE
-0x19 BT_EVT_SWITCH_NOT_ACCEPT
-0x20 BT_EVT_SWITCH_ACCEPT
-0x21 BT_EVT_SNIFF_NOT_ACCEPT
-0x22 BT_EVT_SNIFF_ACCEPT
-0x23 BT_EVT_UNSNIFF_ACCEPT
-0x24 BT_EVT_UNSNIFF_NOT_ACCEPT
-0x25 BT_EVT_BUTTON_ADJUST_DPI
-0x26 BT_EVT_SEND_UNSNIFF_ACCEPT
-0x27 BT_EVT_VIRTUAL_CABLE_UNPLUG
-0x28 BT_EVT_LE_WRITE_REQUEST
-0x29 BT_EVT_LE_ENC_INFO
-0x2a BT_EVT_SWITCH_FAIL_MASTER
-0x2b BT_EVT_SWITCH_SUCCESS_MASTER
-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
-0x37 BT_EVT_BT_PAIRING_FAIL
-0x38 BT_EVT_BT_PAIRING_SUCCESS
-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
-)
-//switch
-(
-0 OFF
-1 ON
-)
-/* memui_mem_lock */
-(
-    0 MEM_UNLOCK
-    1 MEM_LOCK
-)
-/* memui_flag0 */
-(
-    0 UI_USER_DATA_FLAG
-    1 UI_WII_WAITING_SLEEP
-    2 UI_KEYBOARD_SNIFF_SKIP
-)
-/* mem_master_type */
-(
-    0 MTYPE_HID_DEFAULT
-    1 MTYPE_HID_SSP
-    2 MTYPE_SPP
-)
-
-	(	
-	0x01 RECIEVE_SDP_CONN_RES
-	0x02 RECIEVE_SDP_CFG_REQ
-	0x03 RECIEVE_SDP_CFG_RES
-	0x04 RECIEVE_RFCOMM_CONN_RES
-	0x05 RECIEVE_RFCOMM_CFG_REQ
-	0x06 RECIEVE_RFCOMM_CFG_RES
-	0x07 RECIEVE_HID_CTRL_CONN_RES
-	0x08 RECIEVE_HID_CTRL_CFG_REQ
-	0x09 RECIEVE_HID_CTRL_CFG_RES
-	0x0A RECIEVE_HID_INT_CONN_RES
-	0x0B RECIEVE_HID_INT_CFG_REQ
-	0x0C RECIEVE_HID_INT_CFG_RES
-	0x0D RECIEVE_AVCTP_CONN_RES
-	0x0E RECIEVE_AVCTP_CFG_REQ
-	0x0F RECIEVE_AVCTP_CFG_RES
-	0x10 RECIEVE_AVDTP_SIGNAL_CONN_RES
-	0x11 RECIEVE_AVDTP_SIGNAL_CFG_REQ
-	0x12 RECIEVE_AVDTP_SIGNAL_CFG_RES
-	0x13 RECIEVE_AVDTP_MEDIA_CONN_RES
-	0x14 RECIEVE_AVDTP_MEDIA_CFG_REQ
-	0x15 RECIEVE_AVDTP_MEDIA_CFG_RES
-	0x16 RECIEVE_SS_REASULT_HS                  
-	0x17 RECIEVE_SS_REASULT_HF                  
-	0x18 RECIEVE_SS_REASULT_AVTARG		          
-	0x19 RECIEVE_SS_REASULT_OBEX		            
-	0x1A RECIEVE_DLCI0_UA
-	0x1B RECIEVE_HS_PARAM_NEG_RES
-	0x1C RECIEVE_HS_UA
-	0x1D RECIEVE_HS_MODEM_STATUS_RES
-	0x1E RECIEVE_HS_MODEm_STATUS_CMD
-	0x1F RECIEVE_HF_PARAM_NEG_RES   
-	0x20 RECIEVE_HF_UA              
-	0x21 RECIEVE_HF_MODEM_STATUS_RES
-	0x22 RECIEVE_HF_MODEm_STATUS_CMD 
-	0x23 RECIEVE_OBEX_PARAM_NEG_RES     
-	0x24 RECIEVE_OBEX_UA              
-	0x25 RECIEVE_OBEX_MODEM_STATUS_RES
-	0x26 RECIEVE_OBEX_MODEm_STATUS_CMD    
-	0x27 RECIEVE_SPP_PARAM_NEG_RES   
-	0x28 RECIEVE_SPP_UA              
-	0x29 RECIEVE_SPP_MODEM_STATUS_RES
-	0x2A RECIEVE_SPP_MODEm_STATUS_CMD
-	0x2b RECIEVE_SDP_DISCONN_RES
-	)
-
-
-
-	(
-	0 UPPERSM_RP_IDLE
-	1 UPPERSM_RP_SDP_CONN
-	2 UPPERSM_RP_SDP_CONN_WAIT
-	3 UPPERSM_RP_SDP_CFG
-	4 UPPERSM_RP_SDP_CFG_WAIT
-	5 UPPERSM_RP_SS_AVTARG
-	6 UPPERSM_RP_SS_AVTARG_WAIT
-	7 UPPERSM_RP_SS_OBEX
-	8 UPPERSM_RP_SS_OBEX_WAIT
-	9 UPPERSM_RP_SDP_DISCONN
-	10 UPPERSM_RP_SDP_DISCONN_WAIT
-	11 UPPERSM_RP_AVDTP_CONN_WAIT
-	12 UPPERSM_RP_AVCTP_CONN
-	13 UPPERSM_RP_AVCTP_CONN_WAIT
-	14 UPPERSM_RP_AVCTP_CFG
-	15 UPPERSM_RP_AVCTP_CFG_WAIT
-	16 UPPERSM_RP_OBEX_CMD_PN
-	17 UPPERSM_RP_OBEX_CMD_PN_WAIT
-	18 UPPERSM_RP_OBEX_SABM
-	19 UPPERSM_RP_OBEX_SABM_WAIT
-	20 UPPERSM_RP_OBEX_CMD_MS
-	21 UPPERSM_RP_OBEX_CMD_MS_WAIT
-	)
-	(		/*mem_upper_sm_reconn*/
-	0 UPPERSM_RECONN_IDLE		
-	1 UPPERSM_RECONN_SDP_CONN		
-	2 UPPERSM_RECONN_SDP_CONN_WAIT		
-	3 UPPERSM_RECONN_SDP_CFG		
-	4 UPPERSM_RECONN_SDP_CFG_WAIT		
-	5 UPPERSM_RECONN_SS_HS
-	6 UPPERSM_RECONN_SS_HS_WAIT
-	7 UPPERSM_RECONN_SS_HF
-	8 UPPERSM_RECONN_SS_HF_WAIT
-	9 UPPERSM_RECONN_SS_AVTARG		
-	10 UPPERSM_RECONN_SS_AVTARG_WAIT		    
-	11 UPPERSM_RECONN_SS_OBEX		            
-	12 UPPERSM_RECONN_SS_OBEX_WAIT		      
-	13 UPPERSM_RECONN_SDP_DISCONN		        
-	14 UPPERSM_RECONN_SDP_DISCONN_WAIT      
-	15 UPPERSM_RECONN_HID_CTRL_CONN		      
-	16 UPPERSM_RECONN_HID_CTRL_CONN_WAIT		
-	17 UPPERSM_RECONN_HID_CTRL_CFG		      
-	18 UPPERSM_RECONN_HID_CTRL_CFG_WAIT     
-	19 UPPERSM_RECONN_HID_INT_CONN		      
-	20 UPPERSM_RECONN_HID_INT_CONN_WAIT		  
-	21 UPPERSM_RECONN_HID_INT_CFG		        
-	22 UPPERSM_RECONN_HID_INT_CFG_WAIT      
-	23 UPPERSM_RECONN_RFCOMM_CONN		        
-	24 UPPERSM_RECONN_RFCOMM_CONN_WAIT		  
-	25 UPPERSM_RECONN_RFCOMM_CFG		        
-	26 UPPERSM_RECONN_RFCOMM_CFG_WAIT       
-	27 UPPERSM_RECONN_RFCOMM_SABM		        
-	28 UPPERSM_RECONN_RFCOMM_SABM_WAIT		  
-	29 UPPERSM_RECONN_SPP_CMD_PN		        
-	30 UPPERSM_RECONN_SPP_CMD_PN_WAIT		    
-	31 UPPERSM_RECONN_SPP_SABM		          
-	32 UPPERSM_RECONN_SPP_SABM_WAIT		      
-	33 UPPERSM_RECONN_SPP_CMD_MS		        
-	34 UPPERSM_RECONN_SPP_CMD_MS_WAIT       
-	35 UPPERSM_RECONN_HF_CMD_PN		          
-	36 UPPERSM_RECONN_HF_CMD_PN_WAIT		    
-	37 UPPERSM_RECONN_HF_SABM		            
-	38 UPPERSM_RECONN_HF_SABM_WAIT		      
-	39 UPPERSM_RECONN_HF_CMD_MS		          
-	40 UPPERSM_RECONN_HF_CMD_MS_WAIT        
-	41 UPPERSM_RECONN_AVDTPs_CONN		        
-	42 UPPERSM_RECONN_AVDTPs_CONN_WAIT		  
-	43 UPPERSM_RECONN_AVDTPs_CFG		        
-	44 UPPERSM_RECONN_AVDTPs_CFG_WAIT       
-	45 UPPERSM_RECONN_AVDTPm_CONN		        
-	46 UPPERSM_RECONN_AVDTPm_CONN_WAIT		  
-	47 UPPERSM_RECONN_AVDTPm_CFG		        
-	48 UPPERSM_RECONN_AVDTPm_CFG_WAIT       
-	49 UPPERSM_RECONN_AVCTP_CONN		        
-	50 UPPERSM_RECONN_AVCTP_CONN_WAIT		    
-	51 UPPERSM_RECONN_AVCTP_CFG		          
-	52 UPPERSM_RECONN_AVCTP_CFG_WAIT		    
-	53 UPPERSM_RECONN_OBEX_CMD_PN		        
-	54 UPPERSM_RECONN_OBEX_CMD_PN_WAIT		  
-	55 UPPERSM_RECONN_OBEX_SABM		          
-	56 UPPERSM_RECONN_OBEX_SABM_WAIT		    
-	57 UPPERSM_RECONN_OBEX_CMD_MS		        
-	58 UPPERSM_RECONN_OBEX_CMD_MS_WAIT     
-	59 UPPERSM_RECONN_SS_SPP
-	60 UPPERSM_RECONN_SS_SPP_WAIT
-	)
-	(/*mem_UI_profile_supported*/
-	0 support_HID
-	1 support_A2DP
-	2 support_AVRCP
-	3 support_HF
-	4 support_HS
-	5 support_PBAP
-	6 support_SPP
-	)
-	/*mem_upper_sm_ss*/
-	(
-	0 UPPERSM_SS_HS
-	1 UPPERSM_SS_HF
-	2 UPPERSM_SS_AVTARG
-	3 UPPERSM_SS_OBEX
-	)
-
-	(
-	160 UI_HUNDRED_MILLISECOND_TIME
-	0XFF UI_BUTTON_GPIO_DISABLE
-	)
-	(
-	0x01 UI_BB_INCONNECT
-	0x10 UI_BB_DISCONNECT
-	)
-(
-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: DPI_Switch/format/utility.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/utility.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/utility.format	(nonexistent)
@@ -1,381 +0,0 @@
-/**
-*  @file:bt_utility_format.upper
-*  @author: lei.zhu
-*  utility header file. inlcude timer
-*  Copyright:  (C)Hanlynn Technology    
-*/
-
-memalloc(
-
-/*
-    temp parameter
-*/
-2 mem_hold_contr
-2 mem_hold_contw
-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
-
-1 mem_wakup_from_power_flag
-4 mem_saved_gpio_in
-
-0 mem_shutter_random_mac_data_temp
-0 mem_shutter_config_data_temp
-0 mem_le_adv_channel_map_temp
-0 mem_le_data_len_temp	//1byte
-0 mem_tx_fifo_map_temp
-0 mem_rpn_dlci		//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_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
-
-1 mem_usb_status
-1 mem_usb_fifo_empty
-1 mem_usb_read_len
-64 mem_usb_rxbuf
-2 mem_bufptr
-1 mem_remain
-20 mem_devicedesc
-2 mem_hidreportdesc_kb
-2 mem_hidreportdesc_m
-100 mem_confdesc
-5 mem_string0
-30 mem_string1
-64 mem_string2
-30 mem_string3
-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
-1 mem_usb_tx_interval
-
-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_setup
-64 mem_usb0_set_report_data
-64 mem_usb0_get_report_data
-1 mem_usb_state
-1 mem_usb_tx_wait
-1 mem_usb_tx_enable
-1 mem_usb_remote_wakeup
-1 mem_usb_clear_remote_wakeup
-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_usb0_data_ready_report
-1 mem_usb_tx_win_enable
-1 mem_usb_tx_mac_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_set_protocol_value
-1 mem_usb_set_protocol_status
-1 mem_usb_get_protocol_flag
-1 mem_usb_idle_flag
-1 mem_usb_idle_rate
-2 mem_usb_setup_bValue_temp
-1 mem_usb0_get_set_report
-1 mem_usb_ep1_data
-1 mem_usb_ep2_data
-1 mem_usb_clear_halt
-16 mem_usb_mouse_data
-16 mem_usb_kb_data
-16 mem_usb_kb_multikey
-8 mem_usb_kb_data_sta_data
-8 mem_usb_kb_data_last_data
-3 mem_usb_kb_multikey_sta_data
-3 mem_usb_kb_multikey_last_data
-1 mem_usb_kb_blank_data_enable
-1 mem_usb_kb_mul_blank_data_enable
-1 mem_usb_test_cnt
-0 mem_usb_clear_mem_end
-1 mem_usb_test_kb
-
-256 mem_rssi_noise_buffer
-256 mem_rssi_noise_dg_buffer
-256 mem_rssi_noise_ms_buffer
-256 mem_rssi_noise_kb_buffer
-32 mem_24g_common_temp
-
-2 mem_data_pre
-2 mem_data_current
-3 mem_data_sum
-
-//zcode
-1 mem_zcode_temp_param0	//zcode num
-2 mem_zcode_temp_param1	//patch ram func addr
-2 mem_zcode_temp_param2	//patch ram func addr
-
-
-ifdef DEBUGLOG
-1   mem_debuglog_temp
-1   mem_debuglog_type
-1	mem_debuglog_datalen
-2	mem_debuglog_dataval
-2	mem_debuglog_datatype
-1	mem_debuglog_tail
-8	mem_debuglog_pdata
-endif
-
-)
-
-
-(
-/*mem_util_timer_flag0_7*/
-    0   UTIL_TIMER_0_USED
-    1   UTIL_TIMER_1_USED
-    2   UTIL_TIMER_2_USED
-    3   UTIL_TIMER_3_USED
-    4   UTIL_TIMER_4_USED
-    5   UTIL_TIMER_5_USED
-    6   UTIL_TIMER_6_USED
-    7   UTIL_TIMER_7_USED
-/*mem_util_timer_flag8_15*/
-    0   UTIL_TIMER_8_USED
-    1   UTIL_TIMER_9_USED
-    2   UTIL_TIMER_10_USED
-    3   UTIL_TIMER_11_USED
-    4   UTIL_TIMER_12_USED
-    5   UTIL_TIMER_13_USED
-    6   UTIL_TIMER_14_USED
-    7   UTIL_TIMER_15_USED
-)
-
-//util fifo param
-(
-
-8 UTIL_FIFO_LEN
--1 UTIL_FIFO_OFFSET
-)
-
-
-(
-	0xAA DEBUGLOG_HEAD
-	0x00 DEBUGLOG_TYPE
-	0x04 DEBUGLOG_LEN
-	0xBB DEBUGLOG_TAIL
-)
-
-(
-	0x1000 DEBUGLOG_DTYPE_CALLBACK
-	0x1001 DEBUGLOG_DTYPE_EVENT
-	0x1002 DEBUGLOG_DTYPE_CMD
-	0x1003 DEBUGLOG_DTYPE_STATUS
-	0x1004 DEBUGLOG_DTYPE_MISC
-	0x1005 DEBUGLOG_DTYPE_CONN_SM
-	0x1006 DEBUGLOG_DTYPE_UPPER_SM
-	0x1007 DEBUGLOG_DTYPE_PARSE_LMP
-	0x1008 DEBUGLOG_DTYPE_SEND_LMP
-)
-
-//DEBUGLOG_DTYPE_CALLBACK
-(
-	0x0000 CALLBACK_24G_DATA
-	0x0001 CALLBACK_LE_PROCESS
-	0x0002 CALLBACK_BT_PROCESS
-	0x0003 CALLBACK_BEFORE_LPM
-	0x0004 CALLBACK_BB_EVENT_PROCESS
-	0x0005 CALLBACK_IDLE_PROCESS
-	0x0006 CALLBACK_BEFORE_HIBERNATE
-	0x0007 CALLBACK_ATT_WRITE
-	0x0008 CALLBACK_EVENT_TIMER
-)
-
-//DEBUGLOG_DTYPE_EVENT
-//(
-
-//)
-
-//DEBUGLOG_DTYPE_CMD
-//(
-
-//)
-
-//DEBUGLOG_DTYPE_STATUS
-(
-	0x0000 STATUS_CODE_WAKE
-	0x0001 STATUS_LPM_WAKE
-	0x0004 STATUS_24G_START 
-)
-//DEBUG_DTYPE_MISC
-(
-	0x0000 MISC_LE_RETRANSMIT
-	0x0001 MISC_LOST_MOUSEDATA
-	0x0002 MISC_TXPOWER_0
-	0x0003 MISC_TXPOWER_1
-	0x0004 MISC_TXPOWER_2
-	0x0006 MISC_PULL_MOUSEDATA
-	0x0007 MISC_PUSH_MOUSEDATA
-	0x0008 MISC_LE_RETRANSMIT_MD
-
-
-)
-
-0x1f00 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: DPI_Switch/format/var.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/var.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/format/var.format	(nonexistent)
@@ -1,442 +0,0 @@
-/************************************************************************/
-/* RCS HEADER -- DO NOT ERASE                                           */
-/* $Author: Administrator $                                                     */
-/* $Id: bt_var.osi,v 1.1 2009-09-28 04:06:18 Administrator Exp $   */
-/* Orisil Technology                                                 */
-/************************************************************************/
-
-
-/* packet types */
-(
-  0x02 FHS_PACKET 
-  0x03 DM1_PACKET 
-  0x03 DM1_LMP_PACKET 
-  0x04 DH1_PACKET 
-  0x05 HV1_PACKET 
-  0x06 HV2_PACKET 
-  0x07 HV3_PACKET 
-  0x08 DV_PACKET 
-  0x09 AUX1_PACKET 
-  0x0a DM3_PACKET 
-  0x0b DH3_PACKET 
-  0x0e DM5_PACKET 
-  0x0f DH5_PACKET 
-)
-
-
-/* mem_lmp_respond */
-(
-  0 RESPOND_TO_ALL
-  1 PASS_EVERYTHING
-  2 PASS_ONLY_UNKNOWNS
-  3 RESPOND_TO_LMPS
-)
-/* SCO algorithm defines */
-(
-  0 ULAW
-  1 ALAW
-  2 CVSD
-)
-/* encryption modes */
-(
-  0 NO_ENCRYPTION
-  1 PT_PT_ENCRYPTION
-  2 PT_BROADCAST_ENCRYPTION
-)
-
-/* bits used in mem_lmp_state1 variable */
-(
-  0 LMP_STATE_DETACH
-  1 LMP_STATE_HOLD
-  2 LMP_STATE_SNIFF
-  3 LMP_STATE_PARK
-  4 LMP_STATE_WAIT_SCO_CREATE
-  5 LMP_STATE_WAIT_SCO_KILL
-  6 LMP_STATE_SCO3
-  7 LMP_STATE_WAIT_SCO_START
-)
-/* mem_lmp_state2 */
-(
-  0 LMP_WAIT_FOR_SNIFF_ACCEPT
-  1 LMP_WAIT_FOR_PARK_ACCEPT
-  2 LMP_SEND_UNPARK_ACCEPTED
-  3 LMP_SEND_ENCRYPTION_START
-  4 LMP_SEND_ENCRYPTION_STOP
-  5 MESSAGE_QUEUE
-  7 LMP_STATE_WAIT_BEACON
-)
-/* mem_lmp_state3 */
-(
- 0 INQUIRY_STATE_CHECK
- 1 HOST_DELAY_MESSAGE
- 2 VARIABLE_DELAY
- 3 TEST_MODE_START_LOOPBACK
- 4 TEST_MODE_START_PATTERN
- 5 PARSE_TEST_CONTROL_MESSAGE
- 6 H_AUTH_SEND_COMB_KEY
-)
-/* mem_rx_status */
-(
-  0 FROM_MASTER
-)
-/* mem_ms_flag */
-(
-  0 MS_RECEIVE_SWITCH_REQ
-  1 MS_SEND_SETUP_COMPLATE
-)
-/* mem_conn_sm */
-(
-  0 CONN_SM_STANDBY
-  1 CONN_SM_WAIT_PAGE
-  2 CONN_SM_SEND_FEATURES
-  3 CONN_SM_WAIT_FEATURES_RES
-  4 CONN_SM_SEND_CONN_REQ
-  5 CONN_SM_WAIT_CONN_ACCEPT
-  6 CONN_SM_AUTH_PAIR
-  7 CONN_SM_AUTH_PAIR_WAIT
-  8 CONN_SM_WAIT_MUTAL_AUTH
-  9 CONN_SM_ENCRYPT
-  0xa CONN_SM_ENCRYPT_WAIT
-  0xb CONN_SM_ENCRYPT_WAIT_CLEAR
-  0xc CONN_SM_SEND_SETUP_COMPLETE
-  0xd CONN_SM_WAIT_SETUP_COMPLETE 
-  0xe CONN_SM_SEND_SWITCH
-  0xf CONN_SM_DETACH_DELAY
-  0x10 CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION
-  0x11 CONN_SM_DELAY_RESTART_CONNECTION
-  0x12 CONN_SM_SEND_VERSION
-  0X13 CONN_SM_WAIT_VERSION
-  0x14 CONN_SM_SEND_FEATURES_EXT
-  0x15 CONN_SM_WAIT_FEATURES_EXT
-  0x16 CONN_SM_PAIRING
-  0x17 CONN_SM_AUTH
-  0x18 CONN_SM_PAIRING_WAIT
-  0x19 CONN_SM_AUTH_WAIT
-  0x1a CONN_SM_DONE
-  0x1b CONN_SM_WAIT_DONE
-)
-
-/* btStateConn1 */
-(
-  0 CONN_STANDBY
-  1 CONN_MASTER_SEND_CONN_REQ
-  2 CONN_MASTER_WAIT_FOR_CONN_ACCEPTED
-  3 CONN_MASTER_AUTH
-  4 CONN_MASTER_WAIT_FOR_FEATURES
-  5 CONN_MASTER_WAIT_FOR_SETUP_COMPLETE
-  6 CONN_MASTER_WAIT_FOR_MAX_SLOT
-  7 CONN_SLAVE_CONN_REQUESTED
-  8 CONN_SLAVE_WAIT_FOR_SETUP_COMPLETE
-  9 CONN_SLAVE_AUTH
-  10 CONN_USING_HOST_OPCODE
-  11 CONN_SLAVE_AUTH_WAIT
-  12 CONN_SLAVE_ENCRYPT_WAIT
-)
-
-/* mem_lmp_conn_state */
-(
-  0 RECEIVED_CONN_REQ
-  1 SENT_CONN_REQ
-  2 RECEIVED_SETUP_COMPLETE
-  3 SENT_SETUP_COMPLETE
-  4 HOST_CONNECTION_MADE
-  6 INIT_COMPLETE
-  7 SNIFF_NEGOTIATE
-)
-/* btStateAuth1 */
-(
-  0 WAIT_FOR_KINIT
-  1 WAIT_FOR_LKA
-  2 WAIT_FOR_LKB
-  3 WAIT_FOR_SRES
-  4 EXAMINE_RECEIVED_SRES
-  5 SEND_AU_RAND
-  6 WAIT_FOR_KC
-  7 DELAYED_ENCRYPT_RESPONSE
-)
-/* btStateAuth2 */
-(
-  0 SENT_SRES
-  1 RECEIVED_IN_RAND
-  2 SENT_AU_RAND
-  3 AUTHENTICATION_FAILED
-  4 AUTHENTICATION_PASSED
-  5 STARTED_AUTH
-  6 SENT_COMB_KEY
-  7 SENT_IN_RAND
-)
-/* btStateAuth3 */
-(
-  0 RECEIVED_AU_RAND
-  1 RECEIVED_SRES
-  2 MUTUALLY_AUTHENTICATE
-)
-/* btStateHost */
-(
-  0 H_AUTH_STARTED
-  2 H_ENCRYPTION_MODE_REQ_PT
-  3 H_ENCRYPTION_KEY_SIZE
-  4 H_ENCRYPTION_START
-  5 H_ENCRYPTION_STOP
-  6 H_AUTH_SECOND_TRY
-)
-/* btStateEncrypt2 */
-(
-  0 RECEIVED_ENCRYPT_MODE_REQ_PT
-  1 RECEIVED_ENCRYPT_KEY_SIZE
-  2 RECEIVED_ENCRYPT_START
-  3 RECEIVED_ENCRYPT_STOP
-  4 STARTED_ENCRYPT_START
-)
-/* mem_ms_state */
-(
-  0x00 MS_STANDBY
-  0x11 M_MINIT_1
-  0x12 M_MINIT_2
-  0x20 M_SINIT_0
-  0x30 S_MINIT_0
-  0x31 S_MINIT_1
-  0x32 S_MINIT_2
-  0x41 S_SINIT_1
-  0x42 S_SINIT_2
-  0x43 S_SINIT_3
-)
-/* mem_test_mode */
-(
-  0 TEST_MODE_ALLOWED
-  1 TEST_MODE_ACTIVE
-)
-/* values for mem_tester_emulate */
-(
-  0x00 NO_TEST_MODE
-  0x00 CONTINUOUS_TRANSMIT
-  0x10 TRANSMIT_TEST
-  0x08 LOOPBACK
-)
-
-/* mem_tx_misc */
-(
-  1 SEND_TX_ADDR
-)
-/* BBHWREG_page_stat */
-(
-  5 PAGE_MODE_END
-)
-/* host_return_parameters_status codes */
-(
-  0x00 HOST_RETURN_SUCCESS
-  0x01 HOST_RETURN_SLAVE_CANT_ISSUE
-  0x02 HOST_RETURN_NO_CONNECTION
-  0x04 HOST_RETURN_PAGE_TIMEOUT
-  0x05 HOST_RETURN_INQUIRY_TIMEOUT
-  0x08 HOST_RETURN_CONNECTION_TIMEOUT
-  0x09 HOST_RETURN_MAX_NUM_CONNECTIONS
-  0x0a HOST_RETURN_MAX_NUM_SCO
-  0x0b HOST_RETURN_MAX_NUM_ACL
-  0x0c HOST_RETURN_SECURITY_REASONS
-  0x10 HOST_RETURN_HOST_TIMEOUT
-  0x11 HOST_RETURN_UNSUPPORTED_FEATURE_PARAMETER
-  0x13 HOST_RETURN_OTHER_END_USER
-  0x14 HOST_RETURN_OTHER_END_LOW_RESOURCE
-  0x15 HOST_RETURN_OTHER_END_POWER_OFF
-  0x16 HOST_RETURN_LOCAL_HOST
-  0x18 HOST_RETURN_PAIRING_NOT_ALLOWED
-  0x19 HOST_RETURN_UNKNOWN_PDU
-  0x1a HOST_RETURN_UNSUPPORTED_REMOTE_FEATURE
-  0x1d HOST_RETURN_SCO_AIR_MODE_REJECTED
-  0x20 HOST_RETURN_UNSUPPORTED_LMP_VALUE
-  0x21 HOST_RETURN_AUTHENTICATION_FAILURE
-  0x22 HOST_RETURN_CHANGED_EXISTING_SCO
-  0x23 HOST_RETURN_HOST_REJECTED
-  0x24 HOST_RETURN_UNSPECIFIED_ERROR
-  0x25 HOST_RESET
-  0x26 HOST_RETURN_BAD_HANDLE
-
-  0x00 HOST_RETURN_ACCEPT_COMMAND
-  0x01 HOST_RETURN_REJECT_COMMAND
-)
-/* host_present */
-(
-  0 HOST_IS_PRESENT
-  1 BCI_IS_PRESENT
-  2 DONT_INIT_RADIO
-)
-/* mem_master_state */
-(
-  0 MASTER_STATE_STANDBY
-  1 MASTER_INQUIRY
-)
-/* misc */
-(
-  92 SECOND_SWITCH_REQ
-  93 SLAVE_DELAY_DETACH
-  94 MASTER_DELAY_DETACH
-  95 UNSNIFF_DELAY_DETACH
-  0 WE_STARTED_AS_MASTER
-  1 WE_STARTED_AS_SLAVE
-)
-/* mem_host_commands */
-(
-  0x01 HOST_INQUIRY
-  0x02 HOST_INQUIRY_CANCEL
-  0x03 HOST_CREATE_CONNECTION
-  0x04 HOST_DISCONNECT_CONNECTION
-  0x05 HOST_ADD_SCO_REQUEST
-  0x06 HOST_REMOTE_NAME_REQUEST
-  0x07 HOST_WRITE_SUPPORTED_FEATURES
-  0x08 HOST_SET_TX_LEVEL
-  0x09 HOST_SET_RX_LEVEL
-  0x0a HOST_SNIFF_REQUEST
-  0x0b HOST_UNSNIFF_REQUEST
-  0x0c HOST_WRITE_LINK_SUPERVISION_TIMEOUT
-  0x0e HOST_WRITE_SCAN_ENABLE
-  0x0f HOST_READ_AUDIO_QUALITY
-  0x10 HOST_ENABLE_DEVICE_UNDER_TEST
-  0x14 HOST_BUTTON_CONFIGURE
-  0x15 HOST_SET_LOW_BATTERY_LEVEL
-  0x16 HOST_WRITE_LOCAL_NAME
-  0x17 HOST_WRITE_LOCAL_PIN
-  0x18 HOST_KILL_SCO_REQUEST
-  0x19 HOST_QOS_REQ
-
-  0x1a HOST_FEATURES_REQUEST
-  0x1b HOST_VERSION_REQUEST
-  0x1c HOST_TIMING_REQUEST
-  0x1d HOST_CLK_OFFSET_REQUEST
-  0x1e HOST_AUTHENTICATE
-  0x1f HOST_START_ENCRYPTION
-  0x20 HOST_STOP_ENCRYPTION
-  0x21 HOST_HOLD_REQUEST
-  0x22 HOST_HOLD_FORCE
-  0x23 HOST_PARK_REQUEST
-  0x24 HOST_MOD_BEACON
-  0x25 HOST_SET_BROADCAST_SCAN_WINDOW
-  0x26 HOST_UNPARK_PM_REQUEST
-  0x27 HOST_UNPARK_BD_REQUEST
-  0x28 HOST_SLAVE_REQUEST_UNPARK
-  0x29 HOST_DECREASE_POWER_REQUEST
-  0x2a HOST_INCREASE_POWER_REQUEST
-  0x2b HOST_SEND_PREFERRED_RATE
-  0x2c HOST_MAX_SLOT_REQ
-  0x2d HOST_MAX_SLOT_FORCE
-  0x2e HOST_PAGE_MODE_REQUEST
-  0x2f HOST_PAGE_SCAN_MODE_REQUEST
-  0x30 HOST_MASTER_SLAVE_SWITCH
-  0x31 HOST_SEND_AUTO_RATE
-  0x32 HOST_PAGE_CANCEL
-  0x33 HOST_CHANGE_LINK_KEY
-  0x34 HOST_RADIO_READ
-  0x35 HOST_RADIO_WRITE
-  0x36 HOST_REMOTE_SLAVE_INIT_UNPARK_REQUESTED
-
-  0x40 HOST_REMOTE_CONNECTION_REQUESTED
-  0x41 HOST_REMOTE_DETACH
-  0x42 HOST_REMOTE_SCO_CREATE_REQUESTED
-  0x43 HOST_REMOTE_SCO_KILL_REQUESTED
-  0x44 HOST_REMOTE_PARK_REQUESTED
-  0x45 HOST_REMOTE_UNPARK_REQUESTED
-  0x46 HOST_REMOTE_SNIFF_REQUESTED
-  0x47 HOST_REMOTE_UNSNIFF_REQUESTED
-  0x48 HOST_REMOTE_HOLD_REQUESTED
-  0x49 HOST_REMOTE_AUTHENTICATION
-  0x4a HOST_REMOTE_START_ENCRYPTION_REQUESTED
-  0x4b HOST_REMOTE_STOP_ENCRYPTION_REQUESTED
-  0x4c HOST_MODE_CHANGE_EVENT
-  0x4d HOST_REMOTE_TEST_ACTIVATE
-  0x4e HOST_REMOTE_TEST_CONTROL
-  0x4f HOST_REMOTE_TIMING_REQUEST
-)
-/* BCI interface (not used if not compiled in ) */
-(
-  0x01 BCI_INQUIRY
-  0x02 BCI_INQUIRY_CANCEL
-  0x03 BCI_CREATE_CONNECTION
-  0x04 BCI_DISCONNECT
-  0x05 BCI_ADD_SCO_CONNECTION
-  0x06 BCI_REMOTE_NAME_REQUEST
-  0x07 BCI_WRITE_SUPPORTED_FEATURES
-  0x08 BCI_SET_TX_POWER_LEVEL
-  0x09 BCI_SET_RX_POWER_LEVEL
-  0x0a BCI_SNIFF_MODE
-  0x0b BCI_EXIT_SNIFF_MODE
-  0x0c BCI_WRITE_LINK_SUPERVISION_TIMEOUT
-  0x0d BCI_WRITE_PAGE_TIMEOUT
-  0x0e BCI_WRITE_SCAN_ENABLE
-  0x0f BCI_GET_AUDIO_QUALITY
-  0x10 BCI_ENABLE_DEVICE_UNDER_TEST
-  0x11 BCI_SEND_DATA
-  0x12 BCI_REGISTER_SERVICE_RECORD
-  0x13 BCI_SERVICE_SEARCH_ATTRIB_REQ
-  0x14 BCI_BUTTON_CONFIGURE
-  0x15 BCI_SET_LOW_BATTERY_LEVEL
-  0x16 BCI_WRITE_LOCAL_NAME
-  0x17 BCI_WRITE_LOCAL_PIN
-  0x18 BCI_REMOVE_SCO_CONNECTION
-  0x19 BCI_QUALITY_OF_SERVICE
-  0x40 BCI_REMOTE_CONNECTION_REQUEST
-  0x41 BCI_REMOTE_DETACH
-  0x42 BCI_REMOTE_ADD_SCO_REQUEST
-  0x43 BCI_REMOTE_REMOVE_SCO_REQUEST
-  0x44 BCI_REMOTE_PARK_REQUEST
-  0x45 BCI_REMOTE_UNPARK_REQUEST
-  0x46 BCI_REMOTE_SNIFF_REQUEST
-  0x47 BCI_REMOTE_UNSNIFF_REQUEST
-  0x48 BCI_REMOTE_HOLD_REQUEST
-  0x49 BCI_REMOTE_AUTHENTICATION_PAIRING_REQUEST
-  0x4a BCI_REMOTE_START_ENCRYPTION_REQUEST
-  0x4b BCI_REMOTE_STOP_ENCRYPTION_REQUEST
-  0x4c BCI_MODE_CHANGE_EVENT
-)
-/* mode changes */
-(
-  0 MODE_CHANGE_ACTIVE
-  1 MODE_CHANGE_SNIFFING
-  2 MODE_CHANGE_PARKED
-  3 MODE_CHANGE_HOLDING
-  4 MODE_CHANGE_SCO_ADDED
-  5 MODE_CHANGE_SCO_REMOVED
-  6 MODE_CHANGE_ACL_CONNECTION
-  7 MODE_CHANGE_DISCONNECT
-  8 MODE_CHANGE_SCO_CHANGED
-  9 MODE_CHANGE_ENCRYPTING
-  10 MODE_CHANGE_NOT_ENCRYPTING
-  11 MODE_CHANGE_BUTTON_UP
-  12 MODE_CHANGE_BUTTON_DOWN
-  13 MODE_CHANGE_BATTERY_LOW
-  14 MODE_CHANGE_RESET
-  15 MODE_CHANGE_INQUIRY_CANCELED_RMTCMD
-  16 MODE_ACTIVE_MSSWITCH_PASSED
-  17 MODE_ACTIVE_MSSWITCH_FAILED
-)
-/* mem_battery - low nibble is level information, upper nibble is status info */
-(
-  6 BATTERY_CHECK_LEVEL
-  7 BATTERY_SENT_STATUS
-)
-/* mem_radio_version */
-(
-  0x02 RADIO_2001
-  0x12 RADIO_2002
-  0x32 RADIO_2002_DDM
-  0x42 RADIO_1008A1
-  0x52 RADIO_1018A0
-)
-/* mem_slave_initiated_conn */
-(
-  0 SLAVE_INIT_AUTHENTICATION
-  1 SLAVE_INIT_ENCRYPTION
-  2 SLAVE_INIT_MASTER_SLAVE_SWITCH
-)
-/* connection_options */
-(
-  0 CONNECTION_AUTH
-  1 CONNECTION_ENCRYPT
-  2 CONNECTION_SWITCH
-  3 CONNECTION_ACL
-  4 CONNECTION_FEATURE_EXT
-)
-/* mem_debug_config */
-(
-  7 AA_INSERTION
-)
-
Index: DPI_Switch/output/flash.dat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/output/flash.dat	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/output/flash.dat	(nonexistent)
@@ -1,12251 +0,0 @@
-00
-02
-aa
-55
-fa
-1f
-20
-20
-00
-40
-20
-40
-03
-ac
-68
-00
-c1
-de
-60
-00
-cc
-b0
-20
-40
-07
-0d
-68
-00
-c6
-85
-60
-00
-c6
-da
-20
-40
-04
-e6
-20
-40
-03
-24
-20
-40
-07
-a3
-20
-40
-00
-0d
-20
-40
-00
-20
-20
-20
-02
-f8
-58
-00
-03
-6c
-60
-01
-4d
-2a
-58
-00
-03
-98
-60
-01
-41
-ef
-58
-00
-06
-4e
-60
-01
-41
-f9
-58
-00
-03
-c7
-60
-01
-41
-f1
-58
-00
-02
-c1
-60
-01
-41
-ed
-58
-00
-04
-0d
-60
-01
-41
-f5
-58
-00
-03
-f0
-60
-01
-41
-f3
-58
-00
-04
-46
-60
-01
-41
-eb
-58
-00
-04
-53
-60
-01
-41
-fd
-20
-60
-00
-00
-58
-00
-00
-19
-60
-01
-4d
-3c
-24
-55
-80
-2c
-20
-40
-02
-e9
-20
-40
-04
-4c
-68
-00
-c7
-1f
-60
-00
-c7
-1e
-68
-03
-44
-a0
-60
-03
-4b
-5d
-68
-00
-c2
-41
-c3
-81
-00
-00
-20
-20
-03
-95
-58
-00
-01
-77
-60
-01
-4d
-3c
-20
-60
-00
-00
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-20
-00
-00
-01
-c2
-84
-00
-59
-c0
-00
-80
-75
-c0
-01
-00
-7e
-c0
-42
-87
-79
-c0
-44
-87
-4a
-c0
-0d
-86
-68
-c0
-13
-06
-6a
-c0
-24
-06
-85
-c0
-25
-06
-8c
-c0
-28
-86
-95
-c0
-2c
-86
-83
-c0
-53
-86
-9a
-c0
-56
-86
-b0
-c0
-65
-b3
-e4
-c0
-74
-86
-c1
-c0
-50
-80
-87
-c0
-58
-80
-8c
-c0
-59
-00
-9a
-c0
-62
-02
-ce
-c0
-71
-85
-46
-c0
-73
-05
-68
-c0
-75
-05
-95
-c0
-75
-85
-9e
-c0
-76
-05
-a0
-20
-20
-2a
-8e
-c0
-1c
-85
-a4
-c0
-21
-85
-ac
-c0
-25
-05
-b2
-c0
-2b
-85
-b5
-c0
-2c
-85
-b7
-c0
-31
-85
-b9
-c0
-33
-05
-e3
-c0
-33
-86
-02
-c0
-35
-06
-3a
-c0
-3b
-86
-45
-c0
-7d
-06
-f5
-c0
-02
-86
-c3
-c0
-40
-06
-c5
-c0
-41
-06
-cf
-c0
-44
-06
-d1
-c0
-46
-06
-55
-c0
-46
-86
-61
-20
-20
-2a
-8e
-1f
-e2
-22
-00
-68
-08
-cc
-b4
-58
-00
-4c
-bb
-98
-40
-8a
-00
-1a
-22
-7e
-00
-e0
-a0
-80
-00
-18
-40
-84
-01
-18
-41
-04
-07
-60
-08
-cc
-b4
-20
-60
-00
-00
-d8
-a0
-09
-ae
-df
-20
-00
-0c
-20
-40
-7e
-d4
-20
-40
-03
-7d
-20
-40
-6a
-03
-20
-40
-5c
-f6
-24
-55
-ac
-65
-20
-40
-7c
-cd
-20
-20
-20
-0c
-20
-55
-b2
-e3
-20
-40
-75
-6a
-20
-55
-ab
-41
-20
-40
-76
-dc
-68
-00
-c6
-5a
-20
-3a
-20
-12
-68
-00
-c5
-b1
-20
-3a
-00
-81
-20
-20
-20
-12
-58
-00
-0a
-06
-60
-01
-c5
-10
-58
-00
-1d
-87
-60
-01
-45
-13
-20
-20
-2a
-a2
-c6
-13
-00
-00
-68
-00
-cb
-27
-24
-3a
-7f
-ef
-68
-00
-cb
-2d
-24
-3a
-7f
-ef
-68
-00
-c7
-9e
-20
-3a
-7f
-ef
-68
-00
-c7
-c4
-c0
-00
-ff
-ef
-68
-01
-42
-48
-24
-3a
-7f
-ef
-68
-00
-c8
-06
-24
-3a
-7f
-ef
-20
-20
-7f
-f1
-c6
-93
-00
-00
-68
-00
-cd
-4b
-c2
-80
-80
-b0
-c2
-81
-00
-b2
-68
-00
-cd
-39
-c0
-00
-80
-b8
-20
-40
-01
-80
-24
-34
-00
-d3
-70
-4d
-4a
-0a
-20
-40
-01
-5b
-20
-40
-01
-a3
-68
-00
-cc
-09
-c1
-ff
-80
-00
-20
-40
-07
-1e
-20
-40
-00
-b4
-68
-00
-cb
-27
-c0
-00
-83
-6f
-20
-40
-00
-e5
-24
-74
-00
-00
-20
-40
-02
-c8
-58
-00
-ec
-54
-20
-20
-2b
-93
-70
-11
-c5
-60
-20
-20
-07
-7b
-70
-11
-c5
-53
-20
-20
-07
-7b
-58
-01
-77
-00
-60
-01
-cc
-28
-70
-4b
-45
-14
-20
-60
-00
-00
-20
-40
-02
-a1
-24
-74
-00
-00
-20
-40
-00
-cd
-68
-01
-4d
-3a
-1f
-e0
-fe
-01
-60
-01
-4d
-3a
-68
-09
-4d
-3c
-98
-46
-7c
-00
-20
-42
-80
-c2
-20
-20
-00
-a0
-70
-4d
-39
-00
-58
-00
-00
-00
-60
-01
-4d
-3a
-58
-00
-00
-19
-60
-01
-4d
-3c
-70
-4c
-34
-00
-68
-00
-cc
-1f
-60
-00
-cc
-1e
-20
-60
-00
-00
-68
-00
-cc
-20
-20
-20
-00
-c9
-68
-00
-cc
-34
-1f
-e0
-fe
-01
-60
-00
-cc
-34
-c0
-02
-00
-cb
-c0
-02
-80
-c7
-20
-60
-00
-00
-68
-00
-cc
-25
-20
-5a
-00
-fd
-68
-00
-cb
-2d
-24
-7a
-00
-00
-68
-00
-cb
-27
-c1
-00
-80
-00
-68
-00
-cd
-39
-c1
-00
-80
-00
-20
-40
-01
-0f
-68
-00
-cd
-49
-c1
-82
-00
-00
-70
-4d
-49
-00
-20
-40
-00
-e5
-24
-74
-00
-00
-68
-01
-cc
-28
-20
-40
-7f
-49
-60
-0a
-41
-5b
-20
-20
-2b
-2a
-78
-34
-7c
-00
-20
-40
-2a
-fa
-68
-01
-c1
-6f
-20
-3a
-7f
-e9
-68
-00
-c0
-91
-20
-3a
-7f
-e9
-68
-00
-cd
-39
-c0
-00
-ff
-e9
-20
-40
-02
-cb
-20
-40
-02
-c8
-20
-40
-3e
-bf
-20
-40
-02
-fa
-68
-12
-00
-70
-68
-1a
-00
-78
-98
-41
-84
-00
-18
-44
-04
-00
-60
-1a
-00
-7c
-68
-10
-80
-7d
-79
-3f
-fe
-02
-60
-10
-80
-7d
-68
-10
-80
-7e
-79
-3f
-fe
-06
-60
-10
-80
-7e
-20
-20
-05
-3c
-70
-4c
-25
-01
-70
-4d
-2e
-00
-20
-40
-01
-33
-60
-00
-cb
-95
-58
-00
-00
-00
-60
-03
-cb
-96
-68
-02
-4c
-30
-60
-02
-4b
-9d
-70
-4b
-f9
-0c
-68
-00
-cb
-fa
-79
-20
-7e
-03
-60
-00
-cb
-fa
-20
-40
-01
-83
-20
-40
-01
-a3
-20
-20
-07
-1e
-58
-00
-00
-00
-60
-01
-cd
-47
-20
-60
-00
-00
-68
-00
-cd
-4a
-24
-7a
-00
-00
-68
-00
-cc
-25
-20
-7a
-00
-00
-68
-00
-cd
-49
-1f
-e0
-fe
-01
-60
-00
-cd
-49
-20
-40
-01
-6e
-20
-40
-00
-fe
-68
-00
-cd
-49
-c0
-82
-01
-13
-68
-00
-cd
-48
-1f
-e0
-fe
-01
-60
-00
-cd
-48
-c0
-04
-01
-1f
-20
-60
-00
-00
-70
-4d
-48
-00
-68
-00
-cd
-47
-c3
-80
-00
-00
-79
-20
-7e
-00
-60
-00
-cd
-47
-58
-00
-07
-08
-60
-01
-46
-b0
-20
-20
-04
-4c
-68
-00
-cc
-25
-20
-3a
-01
-0c
-70
-4d
-48
-00
-70
-4d
-49
-04
-68
-00
-cd
-47
-c4
-00
-00
-00
-79
-3f
-fe
-00
-60
-00
-cd
-47
-20
-40
-3f
-8d
-20
-20
-03
-ee
-70
-4d
-2f
-01
-70
-4d
-31
-00
-68
-00
-cb
-fa
-1f
-e1
-7e
-07
-60
-00
-cb
-fa
-20
-60
-00
-00
-68
-00
-cb
-fa
-79
-20
-7e
-04
-60
-00
-cb
-fa
-60
-00
-cb
-b5
-20
-60
-00
-00
-68
-00
-cb
-fa
-79
-3f
-fe
-04
-60
-00
-cb
-fa
-60
-00
-cb
-b5
-20
-40
-07
-14
-20
-20
-01
-6e
-68
-00
-cd
-2e
-c0
-80
-81
-33
-68
-00
-cd
-2c
-1f
-e0
-fe
-01
-60
-00
-cd
-2c
-c0
-02
-01
-4b
-20
-40
-01
-6e
-70
-4c
-3e
-02
-20
-20
-01
-a3
-20
-40
-07
-14
-70
-4d
-2c
-00
-20
-20
-01
-33
-70
-4d
-31
-02
-70
-4d
-2f
-01
-70
-4d
-2e
-00
-20
-20
-01
-33
-68
-00
-cd
-30
-c0
-01
-81
-4f
-68
-00
-cb
-fa
-2f
-ec
-00
-04
-20
-20
-81
-31
-68
-00
-cd
-30
-c0
-00
-81
-4e
-c0
-01
-01
-4f
-20
-60
-00
-00
-68
-00
-cc
-09
-c1
-ff
-80
-00
-20
-40
-01
-60
-24
-56
-01
-68
-20
-60
-00
-00
-78
-56
-7c
-00
-68
-00
-cd
-2f
-c1
-80
-80
-00
-68
-00
-cd
-31
-c1
-80
-00
-00
-70
-4d
-30
-01
-70
-4c
-3e
-04
-20
-20
-7f
-eb
-68
-00
-cd
-31
-20
-3a
-01
-7b
-1f
-e0
-ff
-ff
-60
-00
-cd
-31
-70
-4d
-30
-02
-70
-4c
-3e
-04
-68
-08
-cc
-04
-68
-00
-cc
-21
-1f
-e1
-7e
-03
-1f
-ef
-a2
-04
-58
-00
-4c
-0a
-9a
-20
-fe
-00
-98
-40
-8c
-00
-e8
-c0
-80
-00
-60
-00
-cc
-03
-18
-40
-84
-01
-18
-41
-04
-03
-60
-08
-cc
-04
-20
-60
-00
-00
-70
-4d
-30
-03
-68
-00
-cd
-2e
-24
-3a
-01
-42
-70
-4c
-3e
-02
-20
-20
-01
-6e
-68
-00
-cc
-09
-c0
-ff
-82
-05
-20
-40
-01
-86
-20
-40
-02
-25
-70
-4b
-fe
-01
-20
-60
-00
-00
-68
-01
-4d
-2a
-20
-40
-7f
-9c
-20
-34
-01
-8c
-68
-03
-cb
-96
-20
-7a
-00
-00
-20
-20
-7f
-e7
-20
-40
-03
-89
-70
-4c
-25
-00
-1a
-20
-fe
-01
-60
-00
-cb
-f9
-20
-40
-01
-33
-60
-00
-cb
-95
-e8
-a8
-80
-00
-ea
-40
-80
-00
-98
-41
-fe
-00
-e0
-a0
-80
-00
-1a
-40
-a4
-01
-ea
-42
-00
-00
-e0
-a2
-00
-00
-1a
-40
-a4
-04
-d8
-a0
-4b
-9b
-df
-20
-00
-02
-ea
-40
-80
-00
-e8
-a8
-80
-00
-98
-40
-fe
-00
-e0
-a0
-80
-00
-1a
-40
-a4
-01
-c2
-00
-01
-9c
-20
-60
-00
-00
-70
-4c
-02
-00
-d9
-60
-0d
-00
-34
-73
-02
-00
-20
-40
-01
-be
-24
-2c
-01
-cb
-24
-37
-81
-cb
-20
-40
-01
-27
-20
-40
-01
-b8
-20
-40
-01
-e8
-20
-40
-07
-10
-68
-00
-cb
-f8
-1f
-e0
-fe
-01
-60
-00
-cb
-f8
-20
-40
-01
-bb
-68
-00
-cc
-09
-c0
-ff
-82
-07
-20
-40
-01
-52
-58
-00
-00
-00
-60
-02
-4b
-fe
-60
-00
-cd
-2d
-20
-60
-00
-00
-df
-20
-00
-04
-d8
-a0
-4b
-95
-20
-20
-7e
-c6
-68
-00
-cb
-fa
-c2
-82
-01
-3c
-20
-60
-00
-00
-78
-57
-fc
-00
-20
-40
-02
-80
-18
-00
-2a
-00
-68
-02
-4c
-21
-98
-00
-12
-00
-68
-08
-80
-17
-20
-40
-29
-1f
-20
-40
-29
-24
-20
-40
-02
-40
-20
-57
-82
-79
-20
-60
-00
-00
-20
-40
-02
-79
-20
-20
-01
-ad
-68
-00
-cc
-25
-24
-7a
-00
-00
-68
-01
-4b
-ff
-1f
-e0
-fe
-01
-60
-01
-4b
-ff
-68
-00
-cc
-00
-c2
-82
-2d
-d4
-68
-00
-cc
-09
-c0
-ff
-81
-d6
-20
-40
-01
-de
-20
-20
-01
-a4
-68
-00
-cb
-ff
-c1
-ff
-80
-00
-58
-00
-00
-00
-60
-01
-4b
-ff
-20
-20
-2d
-d4
-20
-40
-07
-41
-20
-40
-07
-14
-20
-20
-01
-6e
-68
-00
-cc
-02
-1f
-e6
-7c
-0b
-24
-21
-01
-db
-1f
-e0
-fe
-01
-60
-00
-cc
-02
-c0
-01
-01
-37
-c0
-03
-01
-3c
-c0
-04
-01
-37
-c0
-06
-01
-3c
-20
-60
-00
-00
-20
-40
-02
-18
-68
-00
-cb
-f7
-20
-7a
-00
-00
-98
-00
-72
-00
-d8
-c0
-4b
-75
-d8
-a0
-4b
-d7
-20
-20
-7f
-01
-70
-41
-de
-00
-70
-4b
-f8
-00
-70
-4c
-03
-4e
-68
-02
-4c
-05
-60
-02
-4c
-21
-da
-20
-00
-00
-df
-20
-00
-04
-d8
-c0
-4c
-21
-e8
-c0
-80
-00
-9a
-20
-a2
-00
-c2
-00
-01
-f7
-1a
-22
-7e
-00
-60
-01
-4c
-aa
-68
-00
-cc
-aa
-68
-08
-cc
-ab
-98
-40
-fe
-00
-60
-00
-cc
-ac
-20
-60
-00
-00
-79
-20
-00
-26
-20
-40
-01
-ef
-70
-4c
-09
-01
-20
-60
-00
-00
-70
-11
-c5
-90
-20
-20
-07
-7b
-20
-40
-07
-0d
-70
-11
-c5
-91
-20
-20
-07
-7b
-70
-11
-c5
-40
-20
-20
-07
-7b
-70
-11
-c5
-41
-20
-20
-07
-7b
-79
-3f
-80
-26
-70
-4d
-4b
-00
-20
-40
-53
-ce
-d8
-e0
-00
-03
-20
-20
-43
-d2
-60
-08
-cb
-f9
-18
-42
-72
-00
-d8
-a0
-4b
-95
-1a
-22
-0c
-00
-20
-20
-7f
-01
-68
-00
-cb
-74
-1f
-e9
-7e
-00
-60
-00
-cb
-f7
-1f
-e0
-fe
-01
-d8
-c0
-4b
-74
-98
-c0
-8c
-00
-e8
-c1
-80
-00
-60
-01
-cc
-36
-68
-00
-cb
-74
-1f
-e3
-7e
-00
-1f
-e1
-7e
-03
-60
-00
-cc
-3c
-20
-60
-00
-00
-68
-00
-cb
-f9
-1f
-e0
-fe
-02
-60
-00
-cb
-fb
-68
-00
-cb
-fa
-60
-00
-cb
-b5
-68
-00
-cb
-f9
-1f
-e9
-fe
-00
-68
-08
-cb
-f8
-18
-41
-04
-03
-18
-43
-84
-00
-98
-41
-fe
-00
-68
-08
-cc
-35
-98
-40
-fe
-00
-e0
-a0
-80
-00
-68
-00
-cb
-f9
-98
-00
-72
-00
-d8
-c0
-4b
-95
-20
-20
-7f
-01
-78
-44
-fc
-00
-78
-43
-fc
-00
-58
-55
-55
-55
-98
-00
-1e
-00
-68
-00
-cc
-03
-1f
-ed
-84
-00
-79
-20
-04
-01
-18
-43
-1c
-00
-20
-60
-00
-00
-20
-40
-02
-37
-78
-57
-fc
-00
-78
-26
-fc
-00
-78
-30
-fc
-00
-78
-50
-7c
-00
-78
-28
-7c
-00
-68
-01
-4b
-fc
-98
-00
-36
-00
-37
-c1
-84
-00
-24
-2c
-02
-79
-78
-46
-fc
-00
-78
-25
-fc
-00
-78
-23
-fc
-00
-78
-24
-fc
-00
-20
-40
-02
-76
-60
-00
-cc
-ad
-68
-08
-cc
-ac
-98
-46
-7c
-00
-24
-22
-82
-79
-20
-40
-02
-76
-60
-00
-cb
-73
-68
-00
-cb
-73
-68
-08
-cb
-fa
-a8
-40
-0e
-00
-24
-20
-82
-79
-20
-40
-02
-76
-e0
-a0
-80
-00
-1f
-e9
-7e
-00
-1f
-e1
-72
-1f
-20
-22
-82
-61
-20
-40
-02
-76
-e0
-a0
-80
-00
-c2
-00
-02
-5e
-18
-a2
-22
-00
-20
-40
-02
-76
-60
-00
-cd
-34
-1a
-22
-0a
-00
-09
-80
-00
-18
-78
-28
-7c
-00
-db
-60
-06
-64
-1f
-ef
-7e
-00
-1f
-f1
-7e
-00
-e0
-a1
-80
-00
-78
-45
-fc
-00
-20
-23
-02
-79
-78
-37
-fc
-00
-68
-00
-80
-17
-1f
-e0
-a2
-00
-20
-40
-29
-81
-78
-46
-fc
-00
-20
-40
-29
-18
-68
-00
-cd
-34
-20
-40
-00
-6b
-20
-60
-00
-00
-09
-80
-00
-08
-19
-89
-7e
-00
-20
-60
-00
-00
-78
-4d
-fc
-00
-78
-45
-fc
-00
-20
-40
-26
-4d
-20
-60
-00
-00
-20
-40
-29
-18
-68
-08
-cc
-03
-20
-20
-29
-33
-20
-40
-53
-c4
-68
-02
-4c
-21
-98
-00
-12
-00
-20
-40
-02
-37
-20
-40
-02
-7d
-79
-20
-2a
-00
-78
-2e
-fc
-00
-78
-30
-7c
-00
-78
-50
-fc
-00
-19
-31
-7e
-00
-1f
-ec
-fe
-00
-1f
-f1
-fe
-00
-08
-00
-86
-28
-78
-4e
-fc
-00
-78
-2d
-fc
-00
-78
-23
-fc
-00
-78
-24
-fc
-00
-68
-00
-cc
-ac
-08
-00
-86
-08
-68
-00
-cb
-fb
-98
-00
-72
-00
-d8
-c0
-4b
-b5
-e8
-c0
-80
-00
-08
-00
-86
-08
-c2
-00
-02
-96
-78
-24
-7c
-00
-08
-00
-86
-18
-78
-44
-7c
-00
-37
-d3
-82
-00
-20
-00
-00
-64
-78
-4e
-fc
-00
-78
-4d
-fc
-00
-20
-60
-00
-00
-20
-40
-7f
-e9
-68
-0a
-4c
-1a
-1c
-42
-7e
-00
-98
-46
-7c
-00
-24
-41
-2d
-18
-1f
-e2
-24
-00
-68
-02
-4c
-1a
-68
-08
-cc
-1e
-98
-40
-84
-00
-1a
-42
-7e
-00
-98
-46
-7c
-00
-24
-61
-00
-00
-79
-3f
-fe
-1c
-60
-02
-4c
-1a
-20
-20
-7f
-e7
-d8
-40
-00
-00
-df
-20
-00
-08
-1a
-22
-0c
-00
-e8
-c0
-80
-00
-98
-40
-84
-00
-c2
-00
-02
-b3
-18
-49
-7e
-00
-1f
-e2
-04
-00
-c6
-93
-00
-00
-1f
-e6
-fc
-0a
-20
-40
-7f
-86
-18
-07
-fe
-00
-1f
-f2
-7e
-00
-18
-07
-04
-00
-98
-41
-84
-00
-20
-60
-00
-00
-20
-60
-00
-00
-c6
-13
-00
-00
-20
-40
-03
-73
-20
-40
-00
-ed
-68
-00
-c0
-40
-c3
-00
-02
-c8
-68
-00
-80
-a0
-24
-7a
-00
-00
-58
-00
-00
-00
-60
-04
-00
-a1
-20
-60
-00
-00
-68
-00
-cb
-00
-20
-7a
-00
-00
-20
-20
-05
-46
-20
-40
-34
-16
-20
-40
-74
-b9
-20
-35
-82
-df
-20
-40
-00
-01
-20
-40
-02
-e0
-68
-00
-c7
-20
-c0
-01
-03
-65
-68
-00
-c2
-10
-c0
-19
-82
-e3
-c0
-1a
-02
-e7
-68
-00
-cb
-70
-1f
-e6
-7c
-ff
-20
-42
-83
-59
-20
-40
-04
-f9
-70
-01
-6d
-06
-20
-40
-04
-7e
-20
-20
-7d
-dd
-20
-20
-03
-24
-68
-00
-cc
-b0
-60
-00
-c1
-de
-20
-60
-00
-00
-20
-40
-05
-3f
-68
-03
-41
-d0
-20
-3a
-33
-eb
-20
-20
-42
-74
-70
-11
-c5
-11
-20
-20
-07
-7b
-20
-40
-03
-24
-20
-40
-40
-c0
-20
-40
-40
-d9
-c0
-18
-02
-f1
-c0
-18
-82
-f3
-20
-40
-40
-d1
-20
-00
-03
-e8
-20
-20
-02
-eb
-20
-40
-03
-8e
-20
-20
-40
-e0
-20
-40
-03
-8e
-68
-00
-c6
-de
-c0
-38
-40
-e8
-70
-46
-e0
-01
-20
-60
-00
-00
-70
-11
-c5
-80
-20
-20
-07
-7b
-68
-08
-cb
-46
-20
-20
-68
-25
-70
-80
-86
-40
-70
-80
-87
-00
-68
-10
-80
-81
-79
-3f
-fe
-00
-79
-3f
-fe
-01
-79
-20
-7e
-03
-79
-3f
-fe
-04
-60
-10
-80
-81
-58
-00
-00
-00
-60
-02
-01
-f5
-68
-10
-80
-7f
-79
-3f
-fe
-00
-60
-10
-80
-7f
-20
-60
-00
-00
-20
-40
-03
-52
-20
-40
-44
-23
-68
-01
-47
-78
-d8
-40
-aa
-55
-98
-46
-7c
-00
-20
-22
-83
-46
-60
-09
-47
-78
-20
-40
-44
-1c
-68
-00
-c6
-e1
-60
-00
-c7
-7a
-68
-02
-4b
-4d
-60
-02
-47
-7b
-60
-02
-4c
-21
-20
-40
-03
-52
-20
-40
-03
-26
-20
-40
-03
-3d
-20
-40
-03
-32
-20
-40
-03
-29
-d8
-40
-00
-07
-da
-20
-4b
-6b
-da
-40
-00
-5f
-68
-01
-c7
-00
-9a
-40
-fe
-00
-20
-40
-03
-32
-20
-40
-03
-29
-20
-40
-03
-4c
-70
-42
-12
-76
-20
-20
-3d
-36
-68
-01
-c7
-00
-60
-01
-c2
-32
-20
-40
-65
-2a
-58
-01
-86
-a0
-20
-40
-2a
-8f
-20
-40
-65
-0b
-58
-00
-01
-fa
-60
-11
-00
-8c
-58
-00
-00
-05
-20
-40
-64
-f3
-c2
-80
-03
-29
-20
-60
-00
-00
-1f
-e2
-26
-00
-1a
-22
-7e
-00
-1f
-e0
-ff
-fc
-1f
-e2
-24
-00
-ea
-42
-00
-00
-60
-02
-4b
-48
-1a
-62
-7e
-00
-20
-40
-65
-52
-68
-02
-4b
-48
-e2
-42
-00
-00
-20
-60
-00
-00
-58
-00
-47
-7f
-d8
-40
-47
-20
-98
-46
-04
-00
-68
-01
-c7
-00
-da
-20
-47
-20
-20
-60
-00
-00
-20
-40
-03
-52
-20
-40
-03
-3d
-20
-20
-65
-62
-20
-40
-03
-43
-20
-40
-03
-5e
-20
-40
-43
-1a
-68
-02
-47
-7b
-60
-02
-4c
-21
-20
-60
-00
-00
-70
-0a
-a2
-b9
-20
-40
-02
-fc
-20
-40
-65
-0b
-da
-20
-4b
-48
-68
-08
-8a
-a2
-20
-20
-65
-56
-70
-0a
-a2
-ab
-20
-20
-03
-4d
-58
-00
-00
-50
-60
-01
-46
-ae
-20
-40
-34
-10
-70
-4b
-70
-5a
-20
-20
-03
-17
-70
-4b
-64
-01
-70
-4b
-63
-01
-5f
-ff
-ff
-ff
-60
-03
-44
-a0
-20
-60
-00
-00
-20
-40
-03
-52
-d8
-40
-00
-07
-da
-20
-4b
-6b
-da
-40
-00
-5f
-68
-01
-c7
-00
-9a
-40
-fe
-00
-20
-20
-65
-62
-20
-40
-05
-40
-68
-00
-c2
-41
-c2
-81
-02
-0a
-68
-02
-4b
-4d
-60
-02
-4c
-21
-20
-40
-03
-17
-20
-20
-02
-0c
-20
-40
-44
-01
-68
-01
-46
-9f
-20
-7a
-00
-00
-70
-4d
-39
-01
-58
-00
-00
-00
-60
-01
-4d
-3a
-20
-60
-00
-00
-d8
-c0
-18
-00
-d8
-a0
-48
-0a
-20
-40
-03
-7b
-d8
-c0
-19
-00
-20
-40
-03
-7b
-d8
-c0
-1a
-00
-20
-40
-03
-7b
-d8
-c0
-1b
-00
-df
-20
-00
-1b
-20
-20
-7f
-01
-d8
-c0
-48
-0a
-d8
-a0
-18
-00
-20
-40
-03
-7b
-d8
-a0
-19
-00
-20
-40
-03
-7b
-d8
-a0
-1a
-00
-20
-40
-03
-7b
-d8
-a0
-1b
-00
-20
-20
-03
-7b
-70
-41
-72
-00
-70
-4b
-44
-1e
-20
-60
-00
-00
-68
-00
-cb
-43
-c1
-80
-80
-00
-58
-00
-00
-00
-60
-00
-cb
-43
-60
-02
-46
-9b
-20
-40
-03
-24
-58
-00
-80
-06
-20
-40
-64
-13
-20
-00
-2e
-e0
-68
-00
-c7
-7a
-c0
-7f
-83
-95
-20
-20
-05
-46
-68
-00
-c6
-e1
-60
-00
-c7
-7a
-20
-20
-05
-46
-20
-40
-58
-92
-24
-7a
-00
-00
-68
-00
-cb
-70
-c0
-7f
-83
-9f
-68
-00
-c6
-c5
-1f
-e1
-7e
-03
-c1
-81
-80
-00
-68
-00
-c7
-9e
-20
-5a
-03
-ec
-68
-02
-46
-d3
-c2
-82
-c1
-79
-20
-40
-3f
-97
-24
-74
-00
-00
-20
-40
-03
-86
-20
-40
-03
-89
-20
-40
-03
-c2
-da
-20
-46
-9a
-20
-40
-7e
-3d
-20
-54
-03
-b1
-20
-60
-00
-00
-70
-47
-a2
-07
-70
-47
-a3
-04
-58
-00
-47
-a2
-60
-01
-42
-18
-20
-20
-7e
-38
-68
-00
-c7
-c3
-1f
-e0
-fe
-01
-60
-00
-c7
-c3
-20
-60
-00
-00
-da
-20
-46
-9a
-20
-40
-7e
-54
-20
-34
-03
-b9
-20
-60
-00
-00
-20
-40
-56
-52
-68
-00
-c7
-c3
-1f
-e6
-7c
-01
-24
-41
-56
-50
-68
-00
-c7
-c3
-20
-7a
-00
-00
-1f
-e0
-ff
-ff
-60
-00
-c7
-c3
-20
-20
-3f
-90
-68
-01
-46
-9f
-20
-7a
-00
-00
-70
-48
-06
-01
-70
-48
-07
-0a
-20
-60
-00
-00
-20
-77
-00
-00
-68
-00
-c1
-e2
-20
-7a
-00
-00
-20
-40
-52
-71
-24
-7a
-00
-00
-68
-00
-c7
-9e
-20
-5a
-03
-ec
-68
-02
-46
-d3
-c2
-82
-bf
-8a
-c2
-84
-bf
-8a
-20
-40
-3f
-97
-24
-74
-00
-00
-20
-40
-03
-86
-20
-40
-03
-89
-20
-40
-03
-c2
-68
-00
-cb
-05
-c0
-00
-83
-db
-68
-00
-cb
-0c
-20
-7a
-00
-00
-20
-20
-3f
-81
-68
-00
-c6
-9a
-60
-00
-cb
-06
-68
-00
-c6
-9b
-e0
-a0
-80
-00
-68
-00
-c6
-9d
-e0
-a0
-80
-00
-68
-01
-46
-9f
-e0
-a1
-00
-00
-da
-20
-00
-07
-20
-40
-4d
-63
-68
-01
-42
-4e
-e0
-a1
-00
-00
-58
-00
-02
-a1
-e0
-a1
-00
-00
-68
-02
-cb
-06
-e0
-a2
-80
-00
-20
-60
-00
-00
-70
-47
-9e
-01
-20
-40
-58
-14
-70
-4b
-00
-01
-20
-20
-02
-e9
-20
-40
-7e
-34
-20
-40
-03
-f3
-20
-20
-3e
-e0
-68
-08
-c6
-e7
-20
-40
-05
-8c
-68
-08
-c6
-e7
-20
-40
-68
-1d
-20
-20
-83
-fd
-20
-40
-05
-87
-68
-00
-c6
-b6
-c1
-00
-00
-00
-70
-46
-b6
-00
-20
-60
-00
-00
-20
-40
-05
-87
-68
-00
-c6
-b6
-c1
-00
-80
-00
-70
-46
-b6
-01
-20
-40
-03
-5e
-68
-00
-cb
-6d
-20
-3a
-04
-b5
-68
-00
-c7
-7a
-1f
-e0
-fe
-01
-1f
-e1
-7e
-03
-60
-00
-c7
-7a
-1f
-e0
-fe
-02
-60
-00
-cb
-2d
-20
-40
-05
-43
-20
-40
-3d
-7e
-20
-20
-03
-17
-1a
-62
-7e
-00
-c0
-0a
-04
-1e
-c0
-0a
-84
-21
-c0
-14
-84
-24
-c0
-19
-04
-26
-c0
-20
-04
-28
-c0
-02
-04
-2a
-c0
-09
-84
-2a
-c0
-0c
-b3
-df
-c0
-10
-84
-2e
-c0
-00
-84
-30
-c0
-01
-04
-38
-c0
-15
-84
-3b
-c0
-1c
-84
-3d
-c0
-1d
-04
-40
-c0
-1e
-04
-43
-20
-20
-41
-7d
-20
-40
-03
-ee
-70
-11
-c5
-b0
-20
-20
-07
-7b
-20
-40
-04
-49
-70
-11
-c5
-a2
-20
-20
-07
-7b
-70
-0a
-99
-12
-20
-20
-7d
-8f
-70
-11
-c5
-b3
-20
-20
-07
-7b
-70
-11
-c5
-a1
-20
-20
-07
-7b
-70
-11
-c5
-a3
-20
-20
-07
-7b
-70
-11
-c5
-70
-20
-20
-07
-7b
-70
-11
-c5
-b1
-20
-20
-07
-7b
-20
-40
-04
-7c
-20
-40
-03
-ee
-58
-00
-00
-00
-60
-01
-cb
-63
-20
-40
-03
-57
-20
-40
-05
-0a
-70
-48
-09
-00
-20
-20
-42
-ca
-20
-40
-04
-49
-70
-11
-c5
-b4
-20
-20
-07
-7b
-70
-11
-c5
-b2
-20
-20
-07
-7b
-20
-40
-03
-ee
-70
-11
-c5
-50
-20
-20
-07
-7b
-20
-40
-04
-49
-70
-11
-c5
-51
-20
-20
-07
-7b
-20
-40
-03
-ee
-70
-11
-c5
-52
-20
-20
-07
-7b
-20
-40
-04
-49
-70
-11
-c5
-a0
-20
-20
-07
-7b
-68
-00
-cb
-00
-20
-7a
-00
-00
-70
-4b
-00
-00
-20
-40
-02
-e9
-58
-00
-00
-06
-20
-40
-64
-14
-1f
-e1
-fe
-08
-1f
-ed
-7e
-00
-1f
-e0
-fe
-06
-20
-20
-64
-13
-20
-40
-04
-65
-20
-40
-05
-0d
-20
-40
-04
-d8
-20
-40
-04
-fc
-20
-40
-04
-dd
-20
-40
-42
-34
-20
-40
-04
-92
-20
-40
-04
-83
-20
-40
-04
-8a
-20
-40
-04
-8d
-20
-40
-04
-c1
-20
-40
-04
-c7
-20
-40
-04
-ca
-20
-40
-04
-d2
-20
-40
-04
-b9
-20
-40
-42
-31
-20
-40
-04
-bc
-20
-20
-42
-3a
-68
-00
-cb
-63
-20
-7a
-00
-00
-da
-60
-4b
-64
-da
-40
-04
-6a
-20
-20
-33
-6d
-70
-4b
-64
-01
-68
-00
-cb
-65
-1f
-e0
-fe
-01
-1f
-e1
-7e
-01
-60
-00
-cb
-65
-c0
-00
-04
-7e
-68
-03
-4b
-5d
-60
-03
-44
-a0
-20
-40
-04
-74
-20
-20
-7d
-f4
-70
-43
-6f
-1f
-70
-43
-8f
-1f
-20
-40
-04
-7c
-d8
-c0
-4b
-12
-d8
-a0
-43
-7b
-df
-20
-00
-13
-20
-40
-7f
-01
-20
-20
-57
-b8
-d8
-e0
-00
-07
-20
-20
-43
-ce
-70
-43
-6f
-00
-70
-43
-8f
-00
-d8
-e0
-00
-07
-20
-40
-43
-d2
-20
-20
-03
-5b
-da
-60
-4b
-45
-da
-40
-04
-86
-20
-20
-33
-6d
-58
-24
-9f
-00
-60
-01
-cc
-28
-70
-4b
-43
-01
-20
-60
-00
-00
-da
-60
-4d
-4a
-da
-40
-00
-00
-20
-20
-33
-6d
-da
-60
-4d
-43
-da
-40
-04
-90
-20
-20
-33
-74
-70
-4d
-42
-01
-20
-60
-00
-00
-68
-08
-c6
-ed
-20
-40
-05
-8c
-68
-08
-c6
-ed
-20
-40
-68
-1d
-24
-20
-84
-9f
-20
-40
-05
-87
-68
-00
-ca
-fd
-60
-00
-ca
-fe
-68
-00
-c6
-d9
-c1
-00
-80
-00
-70
-46
-d9
-01
-d8
-e0
-00
-06
-20
-20
-43
-d2
-20
-40
-05
-87
-20
-40
-04
-a6
-20
-40
-05
-03
-68
-00
-c6
-d9
-c1
-00
-00
-00
-70
-46
-d9
-00
-20
-60
-00
-00
-da
-60
-4a
-fe
-da
-40
-04
-a9
-20
-20
-33
-6d
-68
-02
-46
-d3
-c3
-83
-00
-00
-20
-40
-04
-b7
-70
-41
-bd
-00
-68
-08
-c7
-20
-18
-40
-84
-01
-68
-00
-c6
-d2
-98
-46
-7c
-00
-24
-41
-43
-cc
-60
-08
-c7
-20
-20
-40
-03
-17
-20
-20
-43
-78
-70
-4b
-6d
-ff
-20
-20
-03
-17
-70
-4b
-6d
-00
-20
-20
-03
-17
-da
-60
-48
-09
-da
-40
-63
-7a
-20
-20
-33
-6d
-da
-60
-4b
-0b
-da
-40
-04
-bf
-20
-20
-33
-6d
-70
-4b
-0c
-01
-20
-60
-00
-00
-da
-60
-46
-ae
-da
-40
-04
-c4
-20
-20
-33
-74
-70
-4b
-72
-01
-20
-40
-04
-f2
-20
-20
-04
-e6
-da
-60
-46
-c6
-da
-40
-3d
-60
-20
-20
-33
-6d
-68
-00
-cb
-6a
-20
-7a
-00
-00
-da
-60
-4b
-68
-da
-40
-04
-cf
-20
-20
-33
-6d
-68
-00
-cb
-69
-24
-7a
-00
-00
-20
-20
-5b
-f5
-da
-60
-4b
-44
-da
-40
-04
-d5
-20
-20
-33
-6d
-68
-00
-c7
-c5
-60
-00
-c1
-72
-20
-20
-04
-88
-da
-60
-48
-07
-da
-40
-04
-db
-20
-20
-33
-6d
-70
-48
-06
-00
-20
-60
-00
-00
-68
-00
-c7
-20
-c1
-01
-00
-00
-20
-40
-05
-74
-c0
-03
-84
-e9
-68
-00
-c6
-85
-60
-00
-c6
-da
-68
-00
-c6
-db
-c1
-00
-80
-00
-70
-46
-db
-01
-d8
-e0
-00
-09
-20
-40
-43
-d2
-20
-20
-43
-ca
-70
-47
-a0
-28
-20
-40
-04
-ec
-20
-20
-43
-b0
-da
-60
-46
-da
-da
-40
-04
-ef
-20
-20
-33
-6d
-20
-40
-04
-b7
-68
-00
-cb
-63
-24
-3a
-04
-f9
-20
-40
-04
-74
-68
-01
-46
-82
-2f
-ef
-fe
-07
-20
-40
-c3
-92
-d8
-e0
-00
-09
-20
-40
-43
-ce
-20
-20
-43
-b8
-68
-01
-46
-87
-60
-01
-46
-ac
-20
-60
-00
-00
-68
-00
-c7
-9f
-20
-7a
-00
-00
-da
-60
-47
-a0
-da
-40
-05
-01
-20
-20
-33
-6d
-70
-47
-9f
-00
-20
-20
-34
-0a
-68
-01
-46
-82
-c3
-84
-80
-00
-c3
-80
-00
-00
-c6
-13
-00
-00
-70
-47
-9f
-01
-70
-47
-a0
-28
-20
-60
-00
-00
-70
-47
-9f
-00
-70
-47
-a0
-00
-20
-60
-00
-00
-68
-00
-cb
-25
-20
-7a
-00
-00
-20
-20
-05
-18
-70
-4b
-30
-00
-70
-4b
-2b
-05
-70
-4b
-2e
-00
-70
-4b
-2d
-01
-70
-4b
-2c
-05
-70
-4b
-25
-01
-70
-4b
-28
-01
-20
-60
-00
-00
-da
-60
-4b
-2c
-da
-40
-05
-1b
-20
-20
-33
-6d
-68
-00
-cb
-2b
-60
-00
-cb
-2c
-68
-00
-cb
-2e
-20
-3a
-05
-23
-68
-00
-cb
-2d
-20
-3a
-05
-33
-1f
-e0
-ff
-ff
-60
-00
-cb
-2d
-68
-00
-cb
-27
-c0
-00
-85
-35
-70
-4b
-27
-01
-68
-00
-c7
-20
-c0
-00
-85
-2d
-68
-08
-cb
-26
-79
-20
-04
-07
-20
-40
-68
-0e
-68
-08
-cb
-26
-20
-20
-68
-29
-68
-08
-cb
-26
-20
-40
-68
-0e
-68
-08
-cb
-26
-20
-20
-68
-25
-68
-00
-cb
-30
-24
-7a
-00
-00
-58
-00
-00
-00
-60
-01
-cb
-2c
-68
-00
-cb
-2d
-24
-3a
-05
-3a
-70
-4b
-30
-00
-70
-4b
-25
-00
-70
-4b
-28
-00
-70
-4b
-29
-00
-70
-4b
-27
-00
-68
-08
-cb
-26
-79
-3f
-84
-07
-20
-20
-68
-06
-70
-4b
-30
-01
-70
-4b
-2d
-1b
-70
-4b
-2b
-01
-20
-20
-05
-44
-70
-4b
-2b
-05
-70
-4b
-2e
-01
-20
-20
-05
-14
-68
-00
-c6
-e0
-c0
-03
-05
-53
-c0
-03
-85
-53
-c0
-01
-05
-60
-68
-00
-c7
-7a
-1f
-e6
-7c
-01
-20
-42
-85
-51
-68
-00
-c7
-7a
-c0
-00
-3d
-8a
-c0
-01
-bd
-8e
-20
-20
-3d
-8c
-70
-47
-7a
-02
-20
-60
-00
-00
-68
-00
-c7
-7a
-1f
-e6
-7c
-01
-20
-42
-85
-51
-68
-00
-c7
-7a
-c0
-00
-05
-5c
-c0
-01
-85
-5e
-68
-00
-cb
-39
-60
-00
-c6
-b5
-20
-20
-3d
-c1
-68
-00
-cb
-37
-20
-20
-05
-5a
-68
-00
-cb
-3a
-20
-20
-05
-5a
-68
-00
-c7
-7a
-20
-5a
-05
-51
-68
-00
-c7
-7a
-c0
-00
-bd
-88
-c0
-01
-85
-66
-20
-20
-3d
-8e
-58
-00
-00
-05
-20
-20
-3d
-be
-78
-54
-7c
-00
-58
-00
-00
-00
-60
-03
-46
-9b
-20
-40
-05
-92
-20
-40
-40
-79
-20
-40
-40
-7e
-20
-40
-05
-72
-24
-34
-07
-a3
-20
-40
-07
-9a
-20
-20
-3f
-a0
-20
-40
-05
-74
-20
-20
-40
-9a
-da
-20
-00
-00
-20
-40
-05
-77
-20
-20
-40
-8e
-68
-08
-c6
-e2
-20
-40
-05
-87
-68
-08
-c6
-e2
-20
-40
-68
-1d
-79
-20
-a2
-00
-68
-08
-c6
-e3
-20
-40
-05
-87
-68
-08
-c6
-e3
-20
-40
-68
-1d
-79
-20
-a2
-01
-68
-08
-c6
-e4
-20
-40
-05
-87
-68
-08
-c6
-e4
-20
-40
-68
-1d
-79
-20
-a2
-02
-20
-60
-00
-00
-79
-20
-04
-07
-d8
-a0
-80
-78
-20
-40
-68
-30
-79
-3f
-84
-07
-20
-20
-05
-90
-79
-3f
-84
-07
-d8
-a0
-80
-78
-20
-40
-68
-30
-79
-20
-04
-07
-d8
-a0
-80
-7c
-20
-20
-68
-0a
-20
-40
-3f
-c0
-78
-54
-7c
-00
-20
-20
-3f
-e7
-20
-40
-05
-0a
-28
-0f
-fe
-26
-20
-40
-82
-0e
-70
-46
-b4
-00
-68
-00
-cb
-72
-20
-5a
-43
-86
-58
-00
-00
-00
-60
-01
-46
-b0
-20
-20
-42
-6f
-70
-11
-c5
-30
-20
-20
-07
-7b
-20
-40
-05
-31
-70
-4b
-00
-01
-20
-40
-03
-8e
-20
-20
-42
-cb
-68
-00
-c5
-0f
-1f
-e0
-fe
-01
-60
-00
-c5
-0f
-c0
-06
-53
-95
-20
-40
-55
-aa
-20
-40
-56
-1e
-20
-40
-07
-1e
-20
-20
-53
-8f
-68
-00
-80
-16
-1f
-e0
-fe
-01
-60
-00
-80
-16
-c1
-94
-00
-00
-70
-00
-16
-25
-20
-60
-00
-00
-20
-40
-29
-bb
-20
-40
-00
-6b
-20
-20
-54
-a3
-70
-11
-c5
-20
-20
-20
-07
-7b
-70
-11
-c5
-21
-20
-20
-07
-7b
-68
-00
-84
-56
-c2
-82
-85
-cd
-20
-40
-07
-10
-68
-00
-c7
-8e
-24
-3a
-05
-c3
-68
-00
-84
-3f
-c3
-02
-05
-c7
-68
-00
-82
-da
-20
-3a
-05
-c7
-20
-20
-56
-64
-68
-00
-c7
-8e
-1f
-e0
-ff
-ff
-60
-00
-c7
-8e
-20
-20
-56
-64
-68
-00
-c4
-c4
-c0
-82
-85
-ca
-70
-47
-8e
-03
-20
-40
-58
-92
-20
-5a
-03
-b5
-20
-20
-56
-22
-20
-40
-05
-cf
-20
-20
-05
-db
-68
-00
-c6
-c5
-1f
-e1
-7e
-03
-c1
-81
-80
-00
-68
-00
-c7
-c3
-20
-7a
-00
-00
-68
-00
-c3
-dd
-20
-7a
-00
-00
-68
-00
-c3
-dc
-79
-20
-7e
-04
-60
-00
-c3
-dc
-20
-40
-56
-50
-20
-60
-00
-00
-20
-20
-07
-14
-68
-00
-c7
-a1
-20
-7a
-00
-00
-68
-00
-c6
-c5
-1f
-e1
-7e
-03
-c1
-01
-80
-00
-70
-46
-c6
-02
-20
-60
-00
-00
-c6
-07
-80
-00
-20
-40
-58
-90
-24
-7a
-00
-00
-68
-00
-82
-d9
-1f
-e1
-7e
-03
-60
-00
-c5
-0c
-e8
-c0
-80
-00
-1f
-e1
-7e
-1f
-60
-00
-c5
-0b
-20
-7a
-00
-00
-18
-c2
-7e
-00
-60
-01
-45
-0d
-68
-00
-c5
-0c
-c0
-01
-85
-f2
-20
-20
-56
-8d
-68
-00
-82
-db
-c0
-00
-05
-f6
-c0
-00
-85
-fd
-20
-20
-5c
-65
-20
-40
-5c
-7b
-68
-00
-cb
-5c
-20
-7a
-00
-00
-68
-00
-c3
-d8
-60
-00
-c1
-72
-60
-00
-c7
-c5
-20
-60
-00
-00
-e8
-c2
-80
-00
-60
-02
-c3
-ce
-e8
-c1
-00
-00
-60
-01
-04
-5f
-20
-20
-5c
-8a
-e8
-c1
-00
-00
-c0
-02
-06
-06
-c0
-03
-06
-32
-20
-20
-56
-98
-20
-40
-7e
-a5
-20
-40
-05
-dc
-20
-40
-7e
-9f
-e8
-c1
-80
-00
-60
-01
-84
-77
-c0
-08
-06
-15
-1f
-ec
-84
-00
-18
-46
-7c
-24
-20
-21
-06
-23
-d8
-40
-47
-c6
-60
-09
-44
-bc
-20
-40
-58
-ad
-58
-00
-8e
-7a
-60
-01
-44
-bc
-20
-60
-00
-00
-20
-40
-59
-fa
-20
-40
-58
-79
-18
-c0
-8c
-07
-e8
-c0
-80
-00
-c1
-88
-80
-00
-18
-c0
-8c
-05
-e8
-c1
-00
-00
-d8
-40
-18
-12
-98
-46
-7c
-00
-24
-62
-80
-00
-18
-c0
-8d
-fc
-58
-00
-00
-2b
-e0
-c1
-00
-00
-20
-60
-00
-00
-c0
-05
-06
-25
-20
-20
-58
-ad
-68
-09
-04
-78
-68
-00
-c4
-e9
-c2
-81
-86
-2c
-68
-01
-04
-78
-c0
-09
-da
-76
-68
-09
-04
-78
-20
-20
-59
-bf
-68
-01
-44
-fa
-98
-46
-7c
-00
-24
-22
-86
-28
-20
-40
-5a
-42
-24
-34
-06
-28
-20
-20
-59
-e2
-e8
-c0
-80
-00
-c0
-00
-86
-36
-c0
-02
-86
-38
-20
-20
-5a
-f5
-70
-4b
-69
-01
-20
-20
-5b
-09
-70
-11
-c5
-82
-20
-20
-07
-7b
-68
-00
-80
-16
-c0
-93
-d6
-f2
-20
-40
-06
-40
-d8
-e0
-00
-00
-68
-01
-44
-82
-20
-20
-7f
-08
-18
-0a
-7e
-00
-d8
-40
-01
-ff
-98
-41
-7e
-00
-1f
-e0
-fe
-fa
-20
-20
-3c
-be
-78
-55
-fc
-00
-20
-37
-06
-48
-24
-36
-d8
-06
-20
-40
-2b
-cb
-68
-01
-40
-c1
-60
-01
-04
-4d
-68
-00
-c6
-c5
-c0
-81
-ab
-de
-20
-20
-57
-fb
-68
-00
-c7
-a1
-24
-7a
-00
-00
-68
-00
-84
-78
-1f
-e6
-7e
-1a
-24
-62
-80
-00
-70
-46
-c6
-00
-20
-20
-3d
-60
-68
-10
-80
-77
-1f
-e1
-7e
-fd
-60
-10
-80
-77
-68
-18
-80
-73
-18
-41
-84
-02
-60
-18
-80
-73
-20
-40
-63
-ee
-18
-41
-04
-fd
-20
-00
-00
-0d
-20
-40
-06
-62
-60
-18
-80
-73
-20
-60
-00
-00
-20
-40
-64
-dd
-68
-10
-80
-81
-79
-20
-7e
-00
-79
-3f
-fe
-01
-79
-3f
-fe
-03
-60
-10
-80
-81
-20
-60
-00
-00
-70
-11
-c5
-00
-20
-20
-07
-7b
-20
-40
-21
-c9
-24
-74
-00
-00
-78
-54
-7c
-00
-70
-00
-11
-20
-79
-3f
-80
-0b
-79
-3f
-80
-2d
-20
-40
-2a
-4f
-20
-40
-22
-e6
-c5
-05
-86
-77
-20
-40
-24
-55
-24
-3a
-06
-70
-c5
-16
-86
-7f
-20
-20
-21
-ec
-20
-40
-2a
-4d
-d8
-20
-00
-10
-20
-40
-22
-dc
-79
-20
-00
-2d
-79
-3f
-80
-0b
-18
-00
-08
-01
-70
-00
-11
-02
-20
-20
-06
-70
-68
-02
-01
-65
-1f
-e0
-fe
-08
-60
-02
-01
-65
-20
-20
-21
-f8
-c5
-16
-26
-4d
-20
-20
-25
-8f
-20
-40
-33
-af
-20
-40
-26
-e9
-70
-0a
-99
-02
-20
-40
-7d
-86
-20
-40
-5c
-f7
-20
-40
-4d
-6b
-20
-20
-24
-6e
-68
-00
-80
-30
-2f
-ef
-fe
-00
-20
-40
-86
-90
-20
-20
-24
-8a
-68
-00
-80
-47
-2f
-ef
-fe
-03
-20
-40
-87
-14
-24
-40
-87
-10
-20
-20
-07
-1e
-20
-40
-24
-f0
-24
-2c
-28
-f9
-20
-40
-29
-bb
-20
-40
-00
-6b
-20
-20
-25
-18
-c6
-13
-00
-00
-20
-40
-2a
-fa
-68
-01
-c1
-6f
-20
-7a
-00
-00
-68
-00
-c0
-91
-20
-7a
-00
-00
-68
-00
-c6
-5a
-20
-3a
-06
-a4
-68
-00
-c5
-b1
-20
-7a
-00
-00
-68
-00
-c4
-c0
-24
-7a
-00
-00
-20
-40
-2c
-3a
-24
-7a
-00
-00
-68
-00
-c0
-40
-2f
-e0
-0e
-03
-24
-20
-ab
-9d
-68
-01
-40
-42
-d8
-40
-ff
-ff
-98
-46
-7c
-00
-20
-62
-80
-00
-20
-20
-2b
-7d
-78
-55
-fc
-00
-68
-00
-80
-30
-c4
-00
-80
-00
-24
-36
-ab
-d0
-20
-40
-2b
-cb
-68
-01
-40
-c1
-60
-01
-00
-3e
-68
-00
-80
-47
-c2
-81
-ab
-de
-c5
-86
-ab
-de
-20
-40
-52
-74
-24
-3a
-2b
-de
-20
-5a
-06
-be
-20
-20
-2b
-be
-70
-00
-8a
-01
-70
-00
-8b
-00
-20
-60
-00
-00
-70
-11
-c5
-01
-20
-20
-07
-7b
-70
-11
-c5
-02
-20
-20
-07
-7b
-68
-00
-85
-52
-60
-00
-84
-c9
-c0
-09
-86
-c9
-20
-20
-5d
-b4
-20
-40
-5d
-cf
-70
-4b
-01
-01
-68
-00
-cb
-03
-20
-7a
-00
-00
-70
-4b
-03
-02
-20
-60
-00
-00
-70
-11
-c5
-10
-20
-20
-07
-7b
-20
-40
-62
-bc
-24
-7a
-00
-00
-68
-00
-80
-55
-20
-7a
-00
-00
-c0
-02
-06
-f3
-c0
-08
-06
-d8
-20
-20
-63
-20
-68
-00
-c5
-5b
-c1
-00
-00
-00
-c0
-00
-86
-dc
-20
-20
-63
-5f
-20
-74
-80
-00
-68
-00
-81
-6d
-c2
-80
-06
-e0
-20
-20
-63
-99
-68
-00
-cb
-03
-c0
-00
-e3
-9d
-68
-00
-c1
-bd
-20
-3a
-63
-a9
-68
-00
-84
-d1
-c4
-01
-80
-00
-c4
-01
-00
-00
-68
-00
-cb
-02
-20
-7a
-00
-00
-70
-4b
-02
-00
-68
-02
-04
-e9
-d8
-40
-00
-14
-98
-40
-84
-00
-1c
-42
-7e
-00
-98
-46
-7c
-00
-24
-21
-06
-f1
-20
-20
-63
-49
-70
-4b
-02
-01
-20
-60
-00
-00
-70
-48
-09
-14
-20
-20
-63
-6f
-20
-40
-62
-bc
-24
-3a
-7d
-db
-68
-00
-8a
-99
-c5
-84
-fd
-d6
-c0
-0f
-86
-fd
-c0
-10
-07
-00
-c0
-09
-07
-0a
-20
-20
-7d
-ca
-70
-01
-85
-34
-68
-03
-04
-4f
-20
-20
-07
-02
-70
-01
-85
-33
-68
-03
-00
-40
-60
-03
-01
-86
-68
-02
-46
-d3
-c4
-03
-80
-00
-d8
-e0
-00
-07
-20
-40
-43
-d2
-20
-40
-42
-e8
-20
-40
-42
-fb
-20
-20
-03
-17
-20
-40
-58
-90
-24
-7a
-00
-00
-20
-20
-5a
-bf
-70
-4d
-35
-01
-70
-4d
-32
-00
-20
-60
-00
-00
-68
-00
-cd
-32
-1f
-e0
-fe
-01
-60
-00
-cd
-32
-20
-60
-00
-00
-68
-00
-cd
-32
-1f
-e6
-7c
-02
-24
-41
-07
-1c
-68
-00
-cd
-32
-c1
-00
-00
-00
-1f
-e0
-ff
-ff
-60
-00
-cd
-32
-20
-60
-00
-00
-70
-4d
-32
-03
-20
-60
-00
-00
-68
-01
-46
-82
-c3
-85
-80
-00
-c3
-83
-80
-00
-c3
-83
-00
-00
-da
-20
-4c
-bb
-20
-40
-02
-b0
-60
-08
-cd
-33
-58
-00
-00
-82
-c5
-13
-07
-28
-58
-00
-00
-80
-98
-46
-7c
-00
-24
-21
-07
-40
-68
-00
-cd
-32
-1f
-e6
-7c
-02
-24
-21
-07
-30
-68
-00
-cd
-32
-c0
-00
-07
-41
-20
-60
-00
-00
-68
-00
-cd
-32
-c1
-90
-00
-00
-70
-4d
-32
-00
-68
-08
-cd
-33
-58
-00
-00
-77
-c5
-13
-07
-37
-58
-00
-00
-75
-98
-46
-7c
-00
-24
-61
-00
-00
-68
-00
-cd
-35
-c0
-00
-07
-48
-1f
-e0
-ff
-ff
-60
-00
-cd
-35
-c0
-00
-07
-48
-70
-41
-de
-00
-20
-60
-00
-00
-70
-4d
-32
-00
-68
-00
-cd
-35
-c0
-01
-07
-46
-1f
-e0
-fe
-01
-60
-00
-cd
-35
-c0
-00
-87
-3e
-70
-41
-de
-02
-20
-60
-00
-00
-70
-41
-de
-04
-20
-60
-00
-00
-60
-08
-80
-17
-18
-40
-a2
-00
-20
-40
-29
-81
-58
-00
-05
-00
-20
-40
-2a
-8f
-70
-89
-06
-01
-70
-89
-00
-3c
-70
-89
-01
-e0
-20
-00
-00
-0a
-70
-89
-02
-01
-70
-89
-02
-3d
-20
-00
-00
-0a
-70
-89
-03
-b7
-20
-00
-00
-0a
-70
-89
-02
-7d
-68
-00
-c1
-de
-c0
-01
-07
-62
-c0
-02
-07
-67
-c0
-10
-07
-76
-20
-40
-07
-6c
-70
-89
-55
-d0
-70
-89
-56
-e0
-70
-89
-58
-6c
-20
-20
-29
-4b
-20
-40
-07
-71
-70
-89
-55
-d0
-70
-89
-56
-e0
-70
-89
-58
-3c
-20
-20
-29
-53
-20
-40
-07
-6c
-70
-89
-55
-d0
-70
-89
-56
-c0
-70
-89
-58
-6c
-20
-20
-29
-5b
-70
-89
-4c
-5b
-70
-89
-4d
-96
-70
-89
-4e
-2c
-70
-89
-4f
-46
-20
-60
-00
-00
-70
-89
-4c
-fb
-70
-89
-4d
-ef
-70
-89
-4e
-ec
-70
-89
-4f
-5e
-20
-60
-00
-00
-70
-89
-56
-c2
-70
-89
-55
-d0
-20
-60
-00
-00
-18
-00
-2a
-08
-20
-20
-28
-fa
-68
-08
-91
-c5
-18
-51
-84
-00
-68
-00
-cb
-51
-98
-46
-7c
-00
-20
-22
-87
-98
-60
-08
-cb
-51
-18
-40
-84
-01
-58
-00
-01
-00
-98
-4f
-84
-00
-68
-01
-cb
-52
-98
-46
-7e
-00
-68
-09
-cb
-55
-98
-40
-fe
-00
-1f
-e0
-ff
-fb
-60
-01
-cb
-58
-20
-40
-03
-52
-68
-01
-cb
-58
-d8
-40
-01
-00
-da
-20
-1f
-00
-20
-40
-65
-62
-68
-02
-1f
-00
-20
-3a
-07
-8b
-20
-40
-03
-24
-58
-00
-1f
-00
-60
-01
-41
-99
-70
-41
-9b
-40
-20
-40
-64
-ca
-58
-00
-00
-00
-60
-02
-41
-99
-68
-00
-91
-c5
-20
-20
-00
-01
-68
-02
-46
-9b
-20
-7a
-00
-00
-20
-40
-07
-ed
-58
-00
-00
-06
-20
-40
-07
-e0
-58
-00
-00
-03
-20
-40
-07
-e6
-68
-00
-cb
-0d
-c0
-00
-87
-a6
-df
-20
-00
-05
-d8
-a0
-4b
-0d
-20
-20
-7e
-d4
-68
-01
-4b
-0e
-60
-01
-11
-be
-68
-01
-46
-9b
-60
-01
-11
-c0
-20
-40
-07
-b9
-68
-01
-11
-be
-60
-01
-4b
-0e
-68
-01
-11
-c0
-60
-01
-46
-9b
-68
-01
-4b
-10
-60
-01
-11
-be
-68
-01
-46
-9d
-60
-01
-11
-c0
-20
-40
-07
-b9
-68
-01
-11
-be
-60
-01
-4b
-10
-68
-01
-11
-c0
-60
-01
-46
-9d
-20
-60
-00
-00
-68
-01
-11
-be
-68
-09
-11
-c0
-98
-40
-fe
-00
-60
-01
-91
-c2
-2f
-ef
-fe
-10
-20
-20
-87
-c6
-68
-00
-91
-c3
-c0
-7f
-87
-cd
-68
-00
-91
-c2
-1f
-e3
-7e
-00
-60
-01
-11
-be
-60
-01
-11
-c0
-20
-60
-00
-00
-68
-00
-91
-c3
-c0
-00
-07
-ca
-68
-01
-91
-c2
-20
-20
-07
-c2
-70
-11
-c4
-00
-68
-00
-91
-c2
-20
-20
-07
-c2
-68
-00
-91
-c2
-20
-40
-07
-d8
-60
-00
-91
-be
-60
-00
-91
-c0
-20
-3a
-07
-d6
-58
-00
-00
-ff
-60
-00
-91
-bf
-60
-00
-91
-c1
-20
-60
-00
-00
-58
-00
-00
-00
-20
-20
-07
-d3
-1f
-e6
-7e
-00
-60
-00
-8a
-ae
-68
-00
-8a
-ae
-1f
-e3
-7e
-00
-60
-00
-8a
-ae
-68
-00
-8a
-ae
-1f
-e6
-7e
-00
-20
-60
-00
-00
-9a
-26
-7c
-00
-24
-21
-07
-eb
-9a
-46
-7c
-00
-24
-21
-07
-eb
-70
-4b
-0d
-00
-20
-60
-00
-00
-9a
-26
-7c
-00
-24
-61
-00
-00
-9a
-46
-7c
-00
-24
-61
-00
-00
-20
-20
-07
-e4
-70
-4b
-0d
-01
-20
-60
-00
-00
-68
-01
-46
-9b
-60
-01
-11
-c0
-20
-40
-07
-f6
-1f
-e2
-22
-00
-68
-01
-46
-9d
-60
-01
-11
-c0
-20
-40
-07
-f6
-1f
-e2
-24
-00
-20
-60
-00
-00
-68
-00
-91
-c1
-c0
-7f
-87
-fb
-68
-00
-91
-c0
-1f
-e1
-7e
-ff
-20
-60
-00
-00
-68
-01
-11
-c0
-1f
-e6
-7e
-00
-20
-20
-07
-f9
-fc
-26
-aa
-55
-08
-00
-75
-41
-8f
-1f
-ce
-00
-0a
-0b
-ef
-07
-aa
-55
-01
-00
-57
-41
-00
-aa
-55
-08
-00
-a1
-00
-00
-00
-00
-00
-00
-00
-00
-00
-aa
-55
-08
-00
-ad
-40
-12
-00
-80
-00
-12
-00
-80
-00
-aa
-55
-02
-00
-bb
-40
-20
-00
-aa
-55
-04
-00
-b7
-40
-20
-00
-00
-40
-aa
-55
-04
-00
-bf
-40
-80
-04
-00
-08
-aa
-55
-01
-00
-36
-4d
-00
-aa
-55
-01
-00
-de
-41
-00
-aa
-55
-0d
-00
-8f
-47
-4b
-ba
-55
-d0
-56
-e0
-57
-88
-58
-6c
-59
-10
-ff
-aa
-55
-02
-00
-c3
-40
-8f
-47
-aa
-55
-01
-00
-00
-40
-06
-aa
-55
-02
-00
-03
-40
-08
-40
-aa
-55
-03
-00
-09
-40
-05
-02
-02
-aa
-55
-02
-00
-10
-40
-20
-02
-aa
-55
-03
-00
-14
-40
-82
-20
-06
-aa
-55
-02
-00
-18
-40
-10
-08
-aa
-55
-02
-00
-1c
-40
-48
-1e
-aa
-55
-01
-00
-20
-40
-20
-aa
-55
-08
-00
-27
-40
-02
-08
-04
-80
-02
-c8
-04
-80
-aa
-55
-02
-00
-30
-40
-05
-31
-aa
-55
-01
-00
-3f
-40
-04
-aa
-55
-01
-00
-92
-40
-43
-aa
-55
-01
-00
-91
-40
-01
-aa
-55
-01
-00
-72
-41
-20
-aa
-55
-01
-00
-c5
-47
-20
-aa
-55
-02
-00
-d5
-46
-0a
-00
-aa
-55
-01
-00
-07
-42
-06
-aa
-55
-06
-00
-a0
-40
-20
-51
-17
-01
-20
-20
-aa
-55
-0c
-00
-15
-45
-0b
-42
-54
-33
-2e
-30
-20
-4d
-6f
-75
-73
-65
-aa
-55
-05
-00
-e3
-41
-0e
-00
-01
-00
-02
-aa
-55
-01
-00
-5a
-45
-0a
-aa
-55
-01
-00
-62
-46
-03
-aa
-55
-01
-00
-5a
-46
-01
-aa
-55
-01
-00
-8d
-45
-00
-aa
-55
-01
-00
-5a
-41
-00
-aa
-55
-03
-00
-5b
-46
-03
-00
-04
-aa
-55
-01
-00
-84
-46
-01
-aa
-55
-01
-00
-d1
-40
-01
-aa
-55
-0c
-00
-6f
-43
-1f
-02
-01
-05
-03
-03
-12
-18
-03
-19
-c2
-03
-aa
-55
-14
-00
-12
-4b
-06
-ff
-06
-00
-03
-00
-80
-0c
-09
-42
-54
-35
-2e
-30
-20
-4d
-6f
-75
-73
-65
-aa
-55
-0e
-00
-8f
-43
-1f
-0c
-09
-42
-54
-35
-2e
-30
-20
-4d
-6f
-75
-73
-65
-aa
-55
-0c
-00
-af
-43
-0b
-42
-54
-35
-2e
-30
-20
-4d
-6f
-75
-73
-65
-aa
-55
-08
-00
-96
-44
-07
-00
-07
-00
-20
-00
-2c
-01
-aa
-55
-04
-00
-82
-44
-00
-00
-00
-00
-aa
-55
-01
-00
-8d
-44
-07
-aa
-55
-06
-00
-a0
-44
-8e
-45
-34
-0e
-8e
-ed
-aa
-55
-01
-00
-e5
-44
-50
-aa
-55
-02
-00
-6f
-44
-19
-00
-aa
-55
-02
-00
-fa
-44
-22
-00
-aa
-55
-02
-00
-87
-46
-08
-07
-aa
-55
-04
-00
-a8
-46
-50
-00
-70
-17
-aa
-55
-01
-00
-46
-4b
-0a
-aa
-55
-01
-00
-14
-42
-ff
-aa
-55
-01
-00
-86
-46
-ff
-aa
-55
-01
-00
-85
-46
-1e
-aa
-55
-01
-00
-d2
-46
-02
-aa
-55
-01
-00
-03
-47
-02
-aa
-55
-02
-00
-2d
-42
-01
-32
-aa
-55
-06
-00
-09
-47
-a4
-01
-18
-01
-40
-01
-aa
-55
-19
-00
-e0
-46
-00
-02
-06
-14
-1d
-ff
-ff
-14
-1c
-1b
-ff
-ff
-ff
-14
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-20
-03
-ff
-ff
-aa
-55
-01
-00
-3a
-42
-ff
-aa
-55
-01
-00
-dc
-46
-ff
-aa
-55
-01
-00
-a5
-46
-07
-aa
-55
-01
-00
-6c
-0c
-ff
-aa
-55
-04
-00
-7f
-47
-01
-02
-03
-04
-aa
-55
-04
-00
-37
-4b
-00
-01
-02
-03
-aa
-55
-02
-00
-1b
-42
-13
-47
-aa
-55
-01
-00
-1a
-42
-01
-aa
-55
-40
-00
-c6
-47
-25
-00
-02
-03
-28
-01
-12
-26
-00
-02
-4d
-2a
-07
-00
-00
-00
-00
-00
-00
-00
-27
-00
-02
-02
-29
-02
-00
-00
-28
-00
-02
-08
-29
-02
-11
-01
-29
-00
-02
-03
-28
-01
-0e
-2a
-00
-02
-4d
-2a
-07
-00
-00
-00
-00
-00
-00
-00
-2b
-00
-02
-08
-29
-02
-11
-02
-aa
-55
-01
-00
-3f
-4c
-01
-aa
-55
-01
-00
-fa
-4b
-01
-aa
-55
-01
-00
-3e
-4c
-04
-aa
-55
-01
-00
-35
-4c
-00
-aa
-55
-02
-00
-fc
-4b
-c0
-12
-aa
-55
-03
-00
-1e
-4c
-19
-19
-1c
-aa
-55
-10
-00
-0a
-4c
-00
-13
-2c
-42
-06
-15
-36
-48
-0f
-1a
-3a
-4c
-11
-23
-31
-4d
-aa
-55
-01
-00
-09
-4c
-ff
-aa
-55
-04
-00
-05
-4c
-20
-15
-10
-05
-aa
-55
-04
-00
-3e
-4d
-0f
-0f
-0f
-0f
-aa
-55
-0a
-00
-9e
-11
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-aa
-55
-03
-00
-28
-4c
-80
-ee
-36
-aa
-55
-08
-00
-20
-47
-02
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-01
-00
-70
-4b
-ff
-aa
-55
-01
-00
-6d
-4b
-ff
-aa
-55
-04
-00
-4d
-4b
-ff
-ff
-ff
-ff
-aa
-55
-03
-00
-00
-47
-00
-50
-00
-aa
-55
-01
-00
-1f
-47
-00
-aa
-55
-01
-00
-db
-46
-01
-aa
-55
-01
-00
-b6
-46
-01
-aa
-55
-01
-00
-8e
-47
-03
-aa
-55
-01
-00
-26
-4b
-05
-aa
-55
-02
-00
-2a
-4b
-14
-03
-aa
-55
-01
-00
-fd
-4a
-19
-aa
-55
-04
-00
-51
-4b
-ff
-00
-00
-00
-aa
-55
-03
-00
-52
-4b
-da
-2f
-00
-ff
-20
-20
-00
-40
-c0
-58
-00
-07
-c0
-58
-80
-1d
-c0
-59
-00
-23
-c0
-59
-80
-28
-c0
-5a
-00
-30
-20
-60
-00
-00
-58
-00
-00
-00
-60
-01
-cb
-63
-df
-20
-00
-03
-d8
-c0
-44
-a0
-20
-40
-00
-16
-24
-54
-03
-54
-70
-4b
-6a
-01
-68
-00
-c7
-a1
-24
-3a
-00
-11
-70
-4b
-68
-14
-70
-4b
-72
-00
-70
-4b
-66
-00
-20
-40
-05
-0a
-20
-40
-03
-ac
-20
-20
-41
-c3
-20
-40
-7f
-e7
-58
-00
-ff
-ff
-e8
-c9
-00
-00
-98
-46
-7c
-00
-24
-42
-ff
-e9
-c2
-00
-00
-18
-20
-60
-00
-00
-68
-00
-c8
-08
-c1
-01
-00
-00
-1f
-e0
-fe
-01
-60
-00
-c8
-08
-70
-41
-e3
-12
-20
-20
-34
-0e
-68
-00
-c8
-08
-c1
-81
-00
-00
-70
-48
-08
-00
-70
-41
-e3
-0e
-20
-20
-34
-0e
-68
-00
-c7
-a1
-c0
-00
-80
-2c
-70
-46
-c6
-14
-20
-20
-00
-2e
-20
-40
-04
-24
-70
-46
-c6
-0a
-d8
-e0
-00
-01
-20
-20
-41
-b9
-70
-4b
-01
-00
-70
-4b
-03
-00
-70
-4b
-0c
-00
-20
-20
-41
-d9
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-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
-50
-00
-2a
-c0
-50
-80
-06
-c0
-51
-00
-1b
-c0
-51
-80
-14
-20
-60
-00
-00
-68
-01
-45
-09
-c1
-00
-00
-00
-68
-00
-84
-41
-1f
-eb
-7e
-00
-1f
-e6
-7c
-0c
-20
-21
-00
-12
-58
-00
-00
-09
-60
-01
-44
-96
-60
-01
-44
-98
-20
-40
-04
-24
-70
-47
-c4
-01
-20
-60
-00
-00
-70
-4b
-5c
-01
-20
-20
-05
-f9
-68
-01
-46
-82
-c3
-86
-00
-00
-c3
-83
-00
-00
-c3
-85
-80
-00
-68
-02
-46
-d3
-c3
-82
-80
-00
-20
-20
-33
-a7
-70
-4b
-6a
-00
-58
-00
-00
-07
-60
-01
-44
-96
-60
-01
-44
-98
-70
-47
-c4
-00
-70
-47
-9e
-00
-20
-40
-03
-ac
-20
-40
-58
-16
-20
-40
-41
-d9
-68
-00
-cb
-66
-20
-7a
-00
-00
-68
-03
-4b
-5d
-60
-03
-44
-a0
-20
-40
-04
-74
-20
-20
-7d
-f4
-68
-12
-01
-38
-79
-20
-7e
-1a
-60
-12
-00
-4c
-20
-40
-2c
-21
-20
-40
-74
-bd
-20
-40
-44
-82
-20
-40
-3e
-9f
-20
-40
-00
-ef
-20
-40
-03
-4c
-68
-10
-80
-81
-1f
-e1
-7e
-f7
-60
-10
-80
-81
-68
-10
-80
-7f
-79
-20
-7e
-00
-60
-10
-80
-7f
-68
-04
-00
-a1
-79
-3f
-fe
-14
-60
-04
-00
-a1
-68
-08
-c6
-e7
-20
-40
-05
-8c
-68
-04
-00
-a1
-79
-20
-7e
-34
-20
-20
-00
-40
-c0
-48
-00
-04
-c0
-48
-80
-1e
-20
-60
-00
-00
-68
-00
-cb
-fe
-c0
-00
-ff
-e7
-68
-00
-cc
-09
-c0
-00
-80
-0b
-c0
-01
-00
-0e
-c0
-01
-80
-11
-20
-20
-2a
-8c
-70
-4c
-09
-11
-70
-11
-9e
-aa
-20
-20
-00
-13
-70
-4c
-09
-12
-70
-11
-9e
-55
-20
-20
-00
-13
-70
-4c
-09
-13
-70
-11
-9e
-22
-68
-00
-cb
-fa
-1f
-e1
-7e
-07
-60
-00
-91
-9f
-68
-02
-4c
-30
-60
-02
-11
-a0
-70
-11
-a4
-00
-da
-20
-11
-9e
-d8
-40
-00
-07
-20
-40
-02
-13
-20
-40
-01
-83
-20
-20
-7f
-e7
-68
-00
-cc
-09
-c1
-7f
-80
-00
-c0
-08
-80
-24
-c0
-09
-00
-26
-c0
-09
-80
-28
-20
-60
-00
-00
-70
-4c
-09
-02
-20
-20
-01
-b4
-70
-4c
-09
-03
-20
-20
-01
-b4
-70
-4c
-09
-ff
-70
-0a
-99
-39
-20
-40
-7d
-86
-68
-02
-4b
-d9
-20
-40
-01
-f3
-20
-20
-01
-b4
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-20
-20
-00
-40
-c0
-40
-00
-03
-20
-60
-00
-00
-68
-02
-40
-a0
-60
-02
-4c
-30
-20
-40
-3e
-6e
-20
-40
-05
-3c
-68
-08
-cb
-46
-20
-40
-68
-0e
-20
-40
-3e
-1e
-20
-40
-00
-14
-58
-00
-00
-00
-60
-01
-41
-54
-20
-40
-68
-a2
-20
-40
-3e
-54
-20
-40
-58
-10
-20
-40
-58
-39
-20
-40
-58
-2c
-20
-40
-58
-18
-20
-20
-03
-0a
-20
-40
-74
-b9
-d8
-c0
-8c
-00
-d8
-a0
-48
-76
-df
-20
-01
-71
-20
-40
-7f
-01
-58
-0f
-02
-09
-e0
-a1
-80
-00
-58
-12
-00
-09
-e0
-a1
-80
-00
-58
-10
-02
-09
-e0
-a1
-80
-00
-58
-00
-00
-09
-e0
-a1
-80
-00
-d8
-c0
-8d
-71
-df
-20
-01
-09
-20
-40
-7f
-01
-70
-48
-8d
-00
-70
-48
-85
-6d
-58
-00
-40
-1f
-60
-01
-49
-db
-58
-00
-6d
-04
-60
-01
-4a
-44
-58
-00
-16
-b0
-60
-01
-4a
-4a
-58
-00
-48
-76
-60
-01
-45
-75
-20
-60
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-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
-38
-00
-03
-20
-60
-00
-00
-5f
-ff
-ff
-ff
-60
-03
-00
-40
-70
-01
-85
-33
-70
-4b
-70
-ff
-20
-40
-42
-fb
-70
-47
-21
-ff
-20
-20
-03
-17
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-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
-68
-00
-cd
-42
-c0
-00
-ad
-d4
-70
-11
-9e
-ff
-68
-00
-cb
-fa
-60
-00
-91
-9f
-68
-02
-4c
-30
-60
-02
-11
-a0
-d8
-40
-00
-06
-da
-20
-11
-9e
-20
-40
-02
-13
-20
-40
-02
-25
-20
-40
-01
-be
-24
-2c
-00
-26
-24
-37
-80
-26
-70
-4d
-4b
-00
-20
-40
-01
-e8
-68
-02
-4c
-21
-68
-0a
-4d
-3e
-98
-46
-7c
-00
-20
-22
-80
-17
-68
-00
-cb
-f7
-20
-7a
-00
-00
-20
-40
-02
-e0
-68
-02
-4c
-21
-68
-0a
-4c
-05
-98
-46
-7c
-00
-20
-22
-82
-01
-68
-02
-4c
-21
-68
-0a
-4c
-30
-98
-46
-7c
-00
-20
-42
-80
-24
-70
-4b
-43
-00
-20
-40
-2f
-20
-20
-40
-01
-b8
-20
-20
-03
-6f
-68
-02
-4b
-d9
-20
-20
-01
-f3
-68
-00
-cd
-37
-1f
-e0
-fe
-01
-1f
-e1
-7e
-03
-60
-00
-cd
-37
-c0
-00
-00
-2d
-c0
-01
-00
-37
-20
-20
-01
-ef
-20
-40
-02
-e0
-68
-02
-4c
-30
-60
-02
-4c
-21
-68
-00
-cd
-45
-60
-00
-cc
-04
-20
-40
-00
-35
-60
-08
-cd
-45
-20
-60
-00
-00
-20
-40
-01
-f4
-20
-20
-01
-6e
-70
-41
-de
-20
-68
-02
-4d
-3e
-60
-02
-4c
-21
-68
-00
-cd
-46
-60
-00
-cc
-04
-20
-40
-00
-35
-60
-08
-cd
-46
-20
-60
-00
-00
-00
-00
-00
-00
-20
-20
-00
-40
-c0
-28
-00
-06
-c0
-28
-80
-0c
-c0
-29
-00
-10
-c0
-29
-80
-1a
-20
-60
-00
-00
-d8
-e0
-00
-03
-20
-40
-43
-d2
-70
-46
-a7
-00
-20
-40
-40
-5d
-20
-40
-02
-e0
-20
-20
-00
-10
-70
-4d
-39
-00
-20
-40
-02
-e0
-20
-40
-02
-0e
-20
-20
-34
-0a
-20
-40
-00
-17
-20
-40
-05
-0a
-20
-40
-3f
-8d
-68
-02
-4c
-21
-60
-02
-47
-7b
-20
-40
-43
-66
-20
-20
-03
-17
-58
-00
-00
-00
-60
-01
-cd
-42
-20
-60
-00
-00
-68
-00
-cd
-42
-c0
-00
-ad
-d4
-20
-40
-00
-29
-20
-40
-01
-be
-24
-2c
-01
-6e
-24
-37
-81
-6e
-68
-00
-cd
-4b
-79
-3f
-fe
-02
-60
-00
-cd
-4b
-70
-4b
-43
-00
-20
-40
-2f
-20
-20
-40
-01
-b8
-20
-20
-03
-6f
-68
-02
-4b
-d9
-20
-20
-01
-f3
-70
-11
-9e
-ff
-68
-00
-cb
-fa
-60
-00
-91
-9f
-68
-02
-4c
-30
-60
-02
-11
-a0
-d8
-40
-00
-06
-da
-20
-11
-9e
-20
-40
-02
-13
-20
-20
-02
-25
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-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
-05
-c0
-20
-80
-17
-c0
-21
-00
-1f
-20
-60
-00
-00
-20
-40
-00
-0e
-20
-34
-02
-0c
-79
-20
-00
-26
-68
-00
-cd
-4b
-79
-20
-7e
-02
-60
-00
-cd
-4b
-20
-40
-01
-f4
-20
-40
-01
-6e
-20
-20
-00
-1b
-df
-20
-00
-02
-d8
-c0
-4c
-21
-20
-40
-7f
-e7
-58
-00
-ff
-ff
-e8
-c9
-00
-00
-98
-46
-7c
-00
-24
-42
-ff
-e9
-c2
-00
-00
-12
-20
-60
-00
-00
-79
-20
-00
-26
-68
-00
-cd
-4b
-79
-20
-7e
-01
-60
-00
-cd
-4b
-58
-00
-07
-08
-60
-01
-4d
-43
-70
-4d
-42
-00
-20
-60
-00
-00
-68
-02
-46
-d3
-c4
-08
-80
-00
-c3
-81
-80
-00
-c6
-13
-00
-00
-20
-40
-44
-82
-d8
-e0
-00
-03
-20
-40
-43
-ce
-58
-00
-00
-00
-60
-01
-46
-ae
-60
-00
-c6
-b4
-60
-01
-4c
-26
-20
-40
-42
-ca
-20
-20
-02
-0c
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-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
-18
-00
-03
-20
-60
-00
-00
-20
-40
-02
-e0
-70
-4b
-69
-00
-70
-4b
-66
-01
-70
-47
-20
-01
-70
-47
-9e
-00
-68
-03
-4b
-5d
-60
-03
-44
-a0
-20
-40
-34
-18
-68
-01
-46
-87
-60
-01
-46
-ac
-70
-01
-6d
-06
-58
-00
-00
-00
-60
-01
-46
-b0
-60
-01
-46
-ae
-20
-40
-04
-7c
-20
-40
-43
-ca
-20
-40
-03
-46
-68
-00
-c2
-10
-1f
-e6
-7c
-33
-20
-42
-80
-1b
-68
-00
-c0
-92
-2f
-ef
-fe
-00
-20
-40
-fd
-dd
-20
-20
-05
-10
-68
-03
-4b
-5d
-60
-03
-44
-a0
-20
-40
-04
-74
-20
-20
-7d
-f4
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-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
-04
-c0
-10
-80
-16
-20
-60
-00
-00
-20
-40
-00
-0c
-20
-20
-55
-7d
-68
-00
-c7
-c5
-60
-00
-c1
-72
-70
-47
-c4
-00
-20
-60
-00
-00
-70
-47
-c4
-01
-20
-60
-00
-00
-68
-00
-c3
-d6
-1f
-e6
-7c
-0c
-24
-21
-00
-0a
-68
-00
-c3
-d8
-68
-08
-c7
-c5
-98
-46
-7c
-00
-20
-21
-00
-06
-68
-00
-c3
-d8
-60
-00
-c1
-72
-20
-20
-00
-08
-68
-00
-84
-3f
-c4
-03
-00
-00
-20
-40
-00
-1b
-24
-74
-00
-00
-20
-20
-55
-a0
-78
-34
-7c
-00
-68
-00
-84
-5a
-1f
-f1
-fe
-00
-c1
-87
-80
-00
-68
-00
-84
-60
-1f
-f1
-fe
-00
-c1
-80
-00
-00
-20
-20
-7f
-e9
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-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
-0f
-c0
-08
-80
-04
-20
-60
-00
-00
-20
-40
-05
-3f
-70
-4b
-69
-01
-70
-47
-a1
-01
-68
-01
-46
-a8
-60
-01
-46
-ae
-20
-40
-04
-7c
-20
-40
-34
-18
-d8
-c0
-43
-90
-20
-40
-04
-78
-70
-43
-8f
-1f
-20
-20
-7d
-f4
-78
-54
-7c
-00
-20
-40
-62
-c1
-68
-00
-80
-48
-20
-7a
-00
-00
-c2
-83
-80
-18
-c0
-01
-80
-28
-c0
-18
-80
-24
-c0
-0b
-80
-26
-20
-20
-60
-10
-c0
-42
-00
-1b
-c0
-41
-80
-1e
-20
-20
-60
-3f
-20
-40
-00
-21
-68
-00
-80
-48
-20
-20
-60
-99
-20
-40
-00
-21
-68
-00
-80
-48
-20
-20
-61
-0d
-68
-00
-c6
-5a
-20
-3a
-61
-2b
-20
-20
-61
-24
-70
-4b
-03
-01
-20
-20
-61
-c3
-70
-4b
-0b
-04
-20
-20
-61
-a4
-18
-00
-7e
-02
-20
-40
-62
-98
-68
-00
-80
-49
-e0
-a0
-80
-00
-60
-00
-ca
-fc
-20
-40
-62
-a7
-68
-00
-ca
-fc
-c0
-17
-00
-31
-20
-20
-60
-51
-68
-00
-cb
-01
-20
-7a
-00
-00
-70
-4b
-01
-00
-68
-00
-cb
-03
-c1
-81
-00
-00
-70
-4b
-02
-01
-1c
-42
-7e
-00
-60
-02
-04
-e9
-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
-20
-20
-00
-40
-c0
-00
-00
-05
-c0
-00
-80
-12
-c0
-01
-00
-28
-20
-60
-00
-00
-68
-00
-80
-0e
-1f
-e0
-fe
-01
-60
-00
-80
-0e
-20
-40
-24
-35
-79
-20
-00
-2c
-20
-40
-22
-f2
-20
-2c
-00
-10
-79
-3f
-80
-2c
-20
-40
-24
-55
-24
-3a
-00
-09
-20
-20
-20
-fc
-79
-3f
-80
-2c
-20
-20
-21
-5f
-70
-48
-08
-00
-70
-41
-e3
-0e
-20
-40
-41
-e7
-68
-01
-42
-08
-c2
-83
-c1
-f5
-c2
-80
-33
-a9
-c2
-80
-80
-1c
-c2
-81
-00
-1f
-c2
-81
-80
-1f
-20
-20
-42
-b0
-c2
-82
-80
-1f
-c2
-81
-80
-1f
-20
-20
-42
-b0
-68
-01
-46
-82
-c2
-86
-42
-b0
-20
-40
-33
-a9
-20
-40
-05
-74
-c0
-03
-80
-25
-20
-20
-33
-a7
-70
-47
-9f
-01
-70
-47
-a0
-28
-20
-60
-00
-00
-68
-01
-02
-64
-1f
-e2
-0c
-00
-e8
-c0
-80
-00
-60
-00
-cb
-04
-1f
-e1
-04
-0f
-1f
-f1
-fe
-00
-c0
-03
-80
-31
-c0
-00
-80
-38
-20
-20
-4d
-39
-20
-40
-4d
-53
-70
-4b
-05
-00
-68
-00
-cb
-04
-2f
-ef
-fe
-00
-20
-60
-80
-00
-70
-4b
-05
-01
-20
-60
-00
-00
-18
-42
-7e
-00
-c0
-02
-84
-2c
-20
-20
-4d
-41
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-aa
-55
-00
-00
-34
-a0
Index: DPI_Switch/output/memmap.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/output/memmap.format	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/output/memmap.format	(nonexistent)
@@ -1,1956 +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_inquiryscan_waitcnt
-0x0007 mem_inquiryscan_rcvcnt
-0x0008 mem_pagescan_waitcnt
-0x0009 mem_pagescan_rcvcnt
-0x000a mem_pagescan_rcvfhscnt
-0x000b mem_slave_rcvcnt
-0x000c mem_page_transmit
-0x000d mem_page_rcv
-0x000e mem_page_rcv_fhs
-0x000f mem_master_rcvcnt
-0x0010 mem_fhs_wait_counter
-0x0011 mem_newconnto_counter
-0x0012 mem_inquiry_transmit
-0x0013 mem_inquiry_rcv
-0x0014 mem_fw_ver
-0x0015 mem_current_context
-0x0016 mem_le_ch_mapped
-0x0017 mem_last_freq
-0x0018 mem_rssi
-0x0019 mem_rx_type
-0x001a mem_rx_hec_err
-0x001c mem_rx_crc_err
-0x001e mem_context_ptr
-0x0020 mem_display
-0x0028 mem_bcd
-0x0030 mem_state
-0x0031 mem_mode
-0x0032 mem_tsniff
-0x0034 mem_sniff_anchor
-0x0038 mem_clk_offset
-0x003e mem_rx_window
-0x0040 mem_plap
-0x0043 mem_puap
-0x0044 mem_pnap
-0x0046 mem_conn_handle
-0x0047 mem_arq
-0x0048 mem_lmp_to_send
-0x0049 mem_lmi_opcode
-0x004a mem_lmo_reason
-0x004b mem_op
-0x004c mem_state_map
-0x004d mem_supervision_timer
-0x0051 mem_supervision_to
-0x0053 mem_name_offset
-0x0054 mem_key_size
-0x0055 mem_conn_sm
-0x0056 mem_aco
-0x0062 mem_kc
-0x0072 mem_conn_timer
-0x0073 mem_sniff_attempt
-0x0074 mem_sniff_timeout
-0x0075 mem_dsniff
-0x0077 mem_amaddr
-0x0078 mem_lmo_opcode1
-0x0079 mem_lmi_opcode1
-0x007a mem_lmo_reason1
-0x007b mem_lmo_tid1
-0x007c mem_lmo_opcode2
-0x007d mem_lmi_opcode2
-0x007e mem_lmo_reason2
-0x007f mem_lmo_tid2
-0x0080 mem_hci_version
-0x0083 mem_acl_pktlen
-0x0085 mem_sco_pktlen
-0x0086 mem_acl_pktcnt
-0x0088 mem_sco_pktcnt
-0x008a mem_current_sniff_attempt
-0x008b mem_current_sniff_timeout
-0x008c mem_sniff_timeout_temp
-0x008d mem_nfreq_index_inq
-0x008e mem_nfreq_index_page
-0x008f mem_ninqy_index
-0x0090 mem_fhs_misc
-0x0091 mem_subsniff_instant
-0x0095 mem_subsniff_rate
-0x0096 mem_subsniff_tcmax
-0x0098 mem_subsniff_tsniff
-0x0099 mem_lpm_adjust
-0x009a mem_sync_clke
-0x00a0 mem_lpm_current_mult
-0x00a1 mem_gpio_wakeup_low
-0x00a5 mem_gpio_wakeup_high
-0x00a9 mem_air_mode
-0x00aa mem_sco_asso_handle
-0x00ab mem_sco_handle
-0x00ad mem_esco_desco
-0x00ae mem_esco_type
-0x00af mem_neogotiation_state
-0x00b0 mem_saved_amaddr
-0x00b1 mem_esco_arq
-0x00b2 mem_esco_saved_arq
-0x00b3 mem_sco_obuf
-0x00d1 mem_sco_ibuf
-0x00ef mem_sco_poll
-0x00f0 mem_npage_index
-0x00f1 mem_page_mode
-0x00f2 mem_page_clk
-0x00f6 mem_tst_pktcnt_sync
-0x00f8 mem_tst_pktcnt_hec
-0x00fa mem_tst_pktcnt_crc
-0x00fc mem_tst_pktcnt_dmh
-0x00fe mem_tmp_buffer_head
-0x0101 mem_tmp_buffer
-0x0151 mem_tester_emulate
-0x0152 mem_temp_payload
-0x0152 test_mode_scenario
-0x0153 test_mode_hopping_mode
-0x0154 test_mode_tx_freq
-0x0155 test_mode_rx_freq
-0x0156 test_mode_power_mode
-0x0157 test_mode_poll_period
-0x0158 test_mode_packet_type
-0x0159 test_mode_data_length
-0x015b mem_test_mode_old_debug_config
-0x015c mem_tester_cnt
-0x015d mem_temp_am_addr
-0x015e mem_temp_arq
-0x015f mem_len
-0x0161 mem_clkn_bt
-0x0165 mem_clke_bt
-0x0169 mem_dpll_clkn
-0x016d mem_connection_options
-0x016e mem_nameres_cnt
-0x016f mem_txptr
-0x0171 mem_slot_offset
-0x0173 extm_fhs_misc
-0x0174 extm_newconn_am_addr
-0x0175 extm_class
-0x0178 extm_lap
-0x017b extm_uap
-0x017c extm_nap
-0x017f mem_debug_config
-0x0180 mem_lch_code
-0x0181 mem_fhs_am_addr
-0x0182 mem_dpll_error
-0x0184 mem_select_list_item
-0x0185 mem_temp_reconn_record
-0x0185 mem_record_bt_mode
-0x0186 mem_temp_lap
-0x018c mem_list_item_ptr
-0x018e mem_eir
-0x01f2 mem_ucode_status
-0x01f3 mem_otp_ucode_flag
-0x01f5 mem_spid_tbuf/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
-0x01f6 mem_iicd_tbuf/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
-0x01f6 mem_addr_hi
-0x01f7 mem_addr_mi
-0x01f8 mem_addr_lo
-0x01f9 mem_iicd_addr
-0x01fa mem_spid_rbuf
-0x01fe mem_ucode_buf
-0x0200 mem_ucode_len
-0x0202 mem_sched_addr
-0x0204 mem_ucode_ptr
-0x0206 mem_ucode_keybuf
-0x0216 mem_check_plap_temp
-0x0228 mem_reconnect_flag
-0x0229 mem_switch_fail_master_count
-0x022a mem_app_evt_timer_count
-0x022b mem_init_cnt
-0x022d mem_h5rx_ackcnt
-0x022e mem_check_err_acl_cont
-0x022f mem_rp_packets
-0x0230 mem_packet_type
-0x0232 mem_hci_sniff_conn_handle
-0x0234 mem_hci_sniff_max_interval
-0x0236 mem_hci_sniff_min_interval
-0x0238 mem_hci_sniff_attempt
-0x023a mem_hci_sniff_timeout
-0x023c mem_voice_setting
-0x023e mem_retransmission_effort
-0x023f mem_sco_ptype
-0x0241 mem_extm_uap_restore
-0x0244 mem_h5rx_rptr
-0x0246 mem_h5rx_ack
-0x0247 mem_h5tx_ack
-0x0248 mem_h5tx_rptr
-0x024a mem_h5tx_wptr
-0x024c mem_h5tx_free
-0x024e mem_h5rx_tmp
-0x024f mem_h5tx_seq
-0x0250 mem_hci_acl_queue_wptr
-0x0252 mem_hci_acl_queue_rptr
-0x0254 mem_hci_acl_queue_end
-0x0256 mem_hci_acl_queue_wcnt
-0x0257 mem_hci_acl_cnt
-0x0258 mem_hci_acl_tx_trigger_wptr//tx via uart
-0x025a mem_hci_curr_len
-0x025b mem_hci_curr_target
-0x025d mem_l2cap_mem_start
-0x025d mem_l2cap_rxbuff1_len
-0x025f mem_l2cap_rxbuff2_len
-0x0261 mem_l2cap_rxbuff_new
-0x0263 mem_l2cap_rxbuff_inuse
-0x0264 mem_l2cap_payload_ptr
-0x0266 mem_l2cap_rx_pkt_length
-0x0268 mem_l2cap_rx_cid
-0x026a mem_l2cap_rx_done
-0x026b mem_l2cap_signal_tx_buff_ptr
-0x026d mem_l2cap_signal_tx_payload_ptr
-0x026f mem_l2cap_signal_tx_length
-0x0271 mem_sdp_tx_buff_ptr
-0x0273 mem_sdp_tx_payload_ptr
-0x0275 mem_sdp_tx_pkt_length
-0x0277 mem_rfcomm_tx_buff_ptr
-0x0279 mem_rfcomm_tx_payload_ptr
-0x027b mem_rfcomm_tx_pkt_length
-0x027d memL2CAP_T1
-0x027f mem_CONTROL_tasks
-0x0280 mem_send_config_req
-0x0281 mem_config_identifier
-0x0282 mem_config_req_dest_CID
-0x0284 mem_rfcomm_malloc_fail_flag
-0x0285 mem_message_to_uppersm
-0x0286 mem_upper_sm_remote_page
-0x0287 mem_upper_sm_reconn
-0x0288 mem_upper_sm_ss
-0x0289 mem_tx_malloc_log
-0x02c9 mem_l2cap_mem_end
-0x02c9 mem_scid
-0x02cb mem_cmd_length
-0x02cd mem_tt2
-0x02cf mem_tt3
-0x02d1 mem_id
-0x02d3 mem_psm
-0x02d5 mem_l2cap_sdpres_delay_time
-0x02d9 mem_le_rxbuf
-0x0311 mem_le_l2capbuf
-0x0417 mem_le_mic
-0x041b mem_le_peer_mic
-0x041f mem_le_peer_ltk
-0x042f mem_le_mrand
-0x043f mem_le_state
-0x0440 mem_le_mode
-0x0441 mem_le_tsniff
-0x0443 mem_le_anchor
-0x0447 mem_le_clk_offset
-0x044d mem_le_receive_window
-0x044f mem_le_plap
-0x0455 mem_le_conn_handle
-0x0456 mem_le_arq
-0x0457 mem_le_ch
-0x0458 mem_le_hop
-0x0459 mem_le_event_count
-0x045b mem_le_supervision_timer
-0x045f mem_le_instant
-0x0461 mem_le_channels
-0x0462 mem_le_op
-0x0463 mem_le_access
-0x0467 mem_le_crcinit
-0x046a mem_le_window_size
-0x046b mem_le_slave_latency
-0x046d mem_le_superto
-0x046f mem_le_channel_map
-0x0474 mem_le_no_using
-0x0476 mem_le_peer_sca
-0x0477 mem_le_att_opcode
-0x0478 mem_le_att_handle
-0x047a mem_le_err_code
-0x047b mem_le_ll_pairing_fail_reason
-0x047c mem_le_sk
-0x048c mem_le_testtype
-0x048d mem_le_test_sync
-0x048f mem_le_test_pcnt
-0x0491 mem_le_rxon_ts
-0x0497 mem_le_rx_ll_opcode
-0x0498 mem_le_notify_attr_start
-0x049a mem_le_notify_len
-0x049b mem_cmd_le_create_conn
-0x049c mem_le_cur_attlist_start_ptr
-0x049e mem_le_cur_handle_start
-0x04a0 mem_le_cur_handle_end
-0x04a2 mem_le_cur_uuid_length
-0x04a3 mem_le_cur_uuid
-0x04b3 mem_le_curr_att_len
-0x04b4 mem_le_search_res
-0x04b5 mem_le_continue_type
-0x04b6 mem_lmo_header_length
-0x04b7 mem_lmo_header_opcode
-0x04b8 mem_lmo_payload
-0x04c9 mem_lmi_accepted_opcode
-0x04ca mem_disconn_reason_send
-0x04cb mem_tx_fixed_freq
-0x04cc mem_rx_fixed_freq
-0x04cd mem_ext_features_page
-0x04ce mem_lmpext_ssp_enable
-0x04d0 mem_remote_sppcap
-0x04d1 mem_lmp_conn_state
-0x04d2 mem_soft_timer
-0x04d4 mem_pincode_state
-0x04d5 mem_sres_tid
-0x04d6 mem_accptsco_tid
-0x04d7 mem_auth_enable
-0x04d8 mem_wait_encryption
-0x04d9 mem_sniff_payload
-0x04e9 mem_aurand_send_delay_time
-0x04ed memRemoteRPNBitRate
-0x04ee memRemotePRNDataBits
-0x04ef memRemotePRNStopBit
-0x04f0 memRemotePRNParity
-0x04f1 memRemotePRNFlowControl
-0x04f2 memRemotePRNXon
-0x04f3 memRemotePRNXoff
-0x04f4 mem_mod2div_temp
-0x04f7 mem_contw_temp
-0x04f9 mem_attrib_list
-0x04fb mem_current_adss
-0x04fc mem_current_channel
-0x04fd mem_current_frame_type
-0x04fe mem_current_fcs
-0x04ff mem_current_length
-0x0501 mem_rfcomm_uih_payload_ptr
-0x0503 mem_uih_cmd_type
-0x0504 mem_uih_length
-0x0506 mem_param_payload_ptr
-0x0508 mem_ms_param
-0x0509 mem_pn_credit_flow_type_info
-0x050a mem_pn_priority
-0x050b mem_pn_acknowledg_timer
-0x050c mem_pn_max_retrans
-0x050d mem_rfcomm_send_adss
-0x050e mem_rfcomm_send_frame_type
-0x050f mem_rfcomm_send_fcs
-0x0510 mem_rfcomm_send_offset
-0x0511 mem_sdp_mem_start
-0x0511 mem_sdp_uuid_search_ptr
-0x0519 mem_sdp_continue_byte
-0x051b mem_sdp_pduid
-0x051c mem_sdp_transactionid
-0x051e mem_sdp_transactionid_local
-0x0520 mem_sdp_attribute_maxbyte
-0x0522 mem_sdp_record_maxcnt
-0x0524 mem_sdp_record_handle
-0x0528 mem_sdp_LACAP_found
-0x0529 mem_sdp_RFCOMM_found
-0x052a mem_sdp_handle_list
-0x052a mem_sdp_attrib_list
-0x054a mem_sdp_error_code
-0x054c mem_sdp_all_length
-0x054e mem_handle_humber
-0x054f mem_search_uuid
-0x0551 mem_sdp_mem_end
-0x0551 mem_rxbuf
-0x0562 mem_random_number
-0x0572 mem_round_key
-0x0582 mem_kinit
-0x0592 mem_input_store
-0x05a2 mem_x
-0x05b2 mem_y
-0x05c1 mem_y15
-0x05c2 mem_key_store
-0x05d3 mem_key_store_end
-0x05d4 memp_ar_key
-0x05d6 memp_ar_input
-0x05d8 mem_ar_hround
-0x05e2 mem_ec_infinite
-0x05e3 mem_ec_loopc
-0x05e5 mem_aes_cmac_data_length
-0x05e6 memdat
-0x05e6 mem_ax
-0x05fe mem_ay
-0x0616 mem_az
-0x062e mem_bx
-0x0646 mem_ax_256//32 bytes
-0x0646 mem_by
-0x065e mem_bz
-0x0666 mem_ay_256// 32 bytes
-0x0676 mem_cx
-0x0686 mem_az_256// 32 bytes
-0x068e mem_cy
-0x06a5 mem_cy5
-0x06a6 mem_bx_256// 32 bytes
-0x06a6 mem_cz
-0x06be mem_k
-0x06c6 mem_by_256// 31 bytes
-0x06d6 mem_align
-0x06e6 mem_bz_256//32 bytes
-0x06e6 mem_tmp1
-0x06e6 memahbak
-0x06fe mem_tmp5
-0x0706 mem_cx_256//32 bytes
-0x0706 memahsave
-0x0716 mem_tmp2
-0x0726 mem_cy_256// 32 bytes
-0x0726 memahsave_end
-0x0726 mem_addr_padding
-0x0727 mem_addr_value/* 12 bytes     */ 
-0x072e mem_tmp3
-0x072e mem_t1
-0x0733 mem_addr_value_end
-0x0736 mem_addr_iocap_end
-0x0745 mem_cy5_256// 1 byte
-0x0746 mem_cz_256// 32 bytes
-0x0746 mem_tmp0
-0x0746 mem_t0
-0x074e mem_tmp0a
-0x075e mem_t2
-0x0766 mem_k_256//32 bytes
-0x0776 mem_t3
-0x0786 mem_tmp1_256//32 bytes
-0x078e mem_t7
-0x07a6 mem_tmp5_256
-0x07c6 mem_tmp2_256
-0x07e6 mem_tmp3_256
-0x07e6 mem_t1_256
-0x0806 mem_tmp0_256
-0x0806 mem_t0_256
-0x0826 mem_t2_256
-0x0846 mem_t3_256
-0x0866 mem_t7_256
-0x0886 mem_p
-0x089e mem_a
-0x08b6 mem_b
-0x08ce mem_gx
-0x08e6 mem_gy
-0x08fe memh0
-0x091e mem_p_256
-0x093e mem_a_256
-0x095e mem_gx_256
-0x097e mem_gy_256
-0x099e mem_le_slat
-0x09ae mem_sp_state_start
-0x09ae mem_sp_state
-0x09af mem_master_sp_state
-0x09b0 mem_sp_flag
-0x09b1 mem_master_sp_flag
-0x09b2 mem_sp_calc
-0x09b3 mem_sp_dh_ready
-0x09b4 mem_sp_localsm
-0x09b5 mem_pairing_auth
-0x09b6 mem_sp_flag_start
-0x09b6 mem_sp_local_key_send_count
-0x09b7 mem_sp_remote_key_recv_count
-0x09b8 mem_sp_remote_key_invalid
-0x09b9 mem_sp_dhkey_invalid
-0x09ba mem_gkey
-0x09be mem_le_pubkey_remote_x_256
-0x09c6 mem_sp_pubkey_remote
-0x09c6 mem_sp_pubkey_remote_x
-0x09de mem_sp_pubkey_remote_x_end
-0x09de mem_le_pubkey_remote_y_256
-0x09e6 mem_sp_pubkey_remote_y
-0x09fe mem_le_dhkey_256
-0x0a06 mem_sp_dhkey
-0x0a1e mem_sp_dhkey_end
-0x0a1e mem_sp_random_local
-0x0a2e mem_sp_random_local_end
-0x0a2e mem_sp_random_remote
-0x0a3e mem_sp_random_remote_end
-0x0a3e memresult
-0x0a3e mem_sp_calc_result
-0x0a3e memh
-0x0a42 memg
-0x0a46 memf
-0x0a4a meme
-0x0a4e mem_sp_calc_result_high
-0x0a4e memd
-0x0a52 memc
-0x0a56 memb
-0x0a5a mema
-0x0a5e mem_sp_check_result
-0x0a6e mem_sp_confirm_remote
-0x0a7e mem_sp_prarm_stack
-0x0a8e mem_UI_data_txbuff_length
-0x0a90 mem_ipc_skip_continue_proc
-0x0a91 mem_ui_timer_temp//length 4
-0x0a91 mem_ipc_rega_temp
-0x0a95 mem_hold_contr
-0x0a97 mem_hold_contw
-0x0a99 mem_fifo_temp
-0x0a9a mem_pdatatemp
-0x0aa2 mem_temp//8 bytes
-0x0aaa mem_timeup// 4 bytes
-0x0aae mem_rega//4 bytes
-0x0ab2 mem_regb//4 bytes
-0x0ab6 mem_regc//3 bytes
-0x0ab9 mem_contr//2 bytes
-0x0abb mem_contw//2 bytes
-0x0abd mem_wakup_from_power_flag
-0x0abe mem_saved_gpio_in
-0x0ac2 mem_shutter_random_mac_data_temp
-0x0ac2 mem_shutter_config_data_temp
-0x0ac2 mem_le_adv_channel_map_temp
-0x0ac2 mem_le_data_len_temp//1byte
-0x0ac2 mem_tx_fifo_map_temp
-0x0ac2 mem_rpn_dlci//1byte
-0x0ac2 mem_event_cmd_response_content//2byte
-0x0ac2 mem_le_prand//16byte
-0x0ac2 mem_AES_CMAC_k//16 bytes
-0x0ac2 mem_regext_index//1 bytes
-0x0ac2 mem_temp_block0
-0x0ac3 mem_le_data_temp//15bytes
-0x0ac3 mem_temp_block1
-0x0ad2 mem_le_aes_128//16byte
-0x0ad2 mem_regext//64 bytes
-0x0ad2 mem_AES_CMAC_k1//16 bytes
-0x0ad2 mem_temp_block2
-0x0ae2 mem_AES_CMAC_k2//16 bytes
-0x0ae2 mem_temp_block3
-0x0af2 mem_AES_CMAC_temp// 16 bytes
-0x0af2 mem_temp_block4
-0x0b02 mem_AES_CMAC_M_last// 16 bytes
-0x0b02 mem_module_uart_cmd
-0x0b03 mem_module_uart_opcode
-0x0b04 mem_module_uart_len
-0x0b05 mem_module_temp_nl_discard_packet
-0x0b06 mem_temp_block5
-0x0b12 mem_le_mackey//16 bytes
-0x0b12 mem_app_receive_temp
-0x0b12 mem_key_value_temp
-0x0b14 mem_key_value
-0x0b16 mem_key_value_temp1
-0x0b17 mem_key_value_temp2
-0x0b18 mem_key_value_temp3
-0x0b19 mem_key_value_temp4
-0x0b1a mem_key_value_temp5
-0x0b1b mem_key_value_temp6
-0x0b1c mem_temp_block6
-0x0b22 mem_usb_status
-0x0b23 mem_usb_fifo_empty
-0x0b24 mem_usb_read_len
-0x0b25 mem_usb_rxbuf
-0x0b65 mem_bufptr
-0x0b67 mem_remain
-0x0b68 mem_devicedesc
-0x0b7c mem_hidreportdesc_kb
-0x0b7e mem_hidreportdesc_m
-0x0b80 mem_confdesc
-0x0be4 mem_string0
-0x0be9 mem_string1
-0x0c07 mem_string2
-0x0c47 mem_string3
-0x0c65 mem_usb_zero_packet
-0x0c67 mem_usb_ones_packet
-0x0c69 mem_usb_two_packet
-0x0c6b mem_usb0_state
-0x0c6c mem_usb_offline_check_gpio
-0x0c6d mem_usb_tx_interval
-0x0c6e mem_usb_clear_mem_start
-0x0c6e mem_usb_setup
-0x0c6e mem_usb_setup_bmRequestType
-0x0c6f mem_usb_setup_bRequest
-0x0c70 mem_usb_setup_bValue
-0x0c71 mem_usb_setup_bValueH
-0x0c72 mem_usb_setup_wIndex
-0x0c74 mem_usb_setup_bLength
-0x0c75 mem_usb_setup_bLengthH
-0x0c76 mem_usb0_setup
-0x0cb6 mem_usb0_set_report_data
-0x0cf6 mem_usb0_get_report_data
-0x0d36 mem_usb_state
-0x0d37 mem_usb_tx_wait
-0x0d38 mem_usb_tx_enable
-0x0d39 mem_usb_remote_wakeup
-0x0d3a mem_usb_clear_remote_wakeup
-0x0d3b mem_usb_ep0_stall_status
-0x0d3c mem_usb_ep1_stall_status
-0x0d3d mem_usb_ep2_stall_status
-0x0d3e mem_usb_ep3_stall_status
-0x0d3f mem_dsc_info_data_pointer
-0x0d41 mem_dsc_info_len
-0x0d42 mem_usb0_data_ready_report
-0x0d43 mem_usb_tx_win_enable
-0x0d44 mem_usb_tx_mac_enable
-0x0d45 mem_usb_device_enumeration_endflag
-0x0d46 mem_usb_wakestate_onetime_flag
-0x0d47 mem_usb_mac_wakeup_trig
-0x0d48 mem_usb_set_high_addr_flag
-0x0d49 mem_usb_set_protocol_value
-0x0d4a mem_usb_set_protocol_status
-0x0d4b mem_usb_get_protocol_flag
-0x0d4c mem_usb_idle_flag
-0x0d4d mem_usb_idle_rate
-0x0d4e mem_usb_setup_bValue_temp
-0x0d50 mem_usb0_get_set_report
-0x0d51 mem_usb_ep1_data
-0x0d52 mem_usb_ep2_data
-0x0d53 mem_usb_clear_halt
-0x0d54 mem_usb_mouse_data
-0x0d64 mem_usb_kb_data
-0x0d74 mem_usb_kb_multikey
-0x0d84 mem_usb_kb_data_sta_data
-0x0d8c mem_usb_kb_data_last_data
-0x0d94 mem_usb_kb_multikey_sta_data
-0x0d97 mem_usb_kb_multikey_last_data
-0x0d9a mem_usb_kb_blank_data_enable
-0x0d9b mem_usb_kb_mul_blank_data_enable
-0x0d9c mem_usb_test_cnt
-0x0d9d mem_usb_clear_mem_end
-0x0d9d mem_usb_test_kb
-0x0d9e mem_rssi_noise_buffer
-0x0e9e mem_rssi_noise_dg_buffer
-0x0f9e mem_rssi_noise_ms_buffer
-0x109e mem_rssi_noise_kb_buffer
-0x119e mem_24g_common_temp
-0x11be mem_data_pre
-0x11c0 mem_data_current
-0x11c2 mem_data_sum
-0x11c5 mem_zcode_temp_param0//zcode num
-0x11c6 mem_zcode_temp_param1//patch ram func addr
-0x11c8 mem_zcode_temp_param2//patch ram func addr
-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
-0x4090 mem_current_amaddr
-0x4091 mem_lpm_mode
-0x4092 mem_device_option
-0x4093 mem_scan_mode
-0x4094 mem_last_clkn
-0x4098 mem_features
-0x40a0 mem_lap
-0x40a3 mem_uap
-0x40a4 mem_nap
-0x40a6 mem_npage
-0x40a7 mem_glap
-0x40aa mem_class
-0x40ad mem_iscan_window
-0x40af mem_iscan_interval
-0x40b1 mem_pscan_window
-0x40b3 mem_pscan_interval
-0x40b5 mem_page_interval
-0x40b7 mem_page_window
-0x40b9 mem_page_to
-0x40bb mem_inq_window
-0x40bd mem_fcomp_mul
-0x40be mem_fcomp_div
-0x40bf mem_rx_window_init
-0x40c1 mem_rx_window_sniff
-0x40c3 mem_rf_init_ptr
-0x40c5 mem_last_type
-0x40c6 mem_last_type_esco
-0x40c7 mem_last_type_saved
-0x40c8 mem_retransmission_cnt
-0x40ca mem_next_btclk
-0x40ce mem_rf_rccal
-0x40cf mem_handle_num
-0x40d0 mem_max_slot
-0x40d1 mem_eir_enable
-0x40d2 mem_afh_instant
-0x40d6 mem_afh_error_total
-0x40d8 mem_afh_cfg
-0x40d9 mem_afh_new_mod
-0x40da mem_afh_map_lo
-0x40df mem_afh_map_hi
-0x40e4 mem_afh_used
-0x40e5 mem_afh_index
-0x40e7 mem_afh_map_new
-0x40f2 mem_afh_map
-0x4142 mem_afh_timer
-0x4146 mem_afh_classify_channel_map
-0x4150 mem_chip_functions
-0x4152 mem_lpm_wake_lock
-0x4154 mem_lpm_interval
-0x4156 mem_lpm_overhead
-0x4157 mem_lpm_hibernate_switch
-0x4158 mem_esco_addr
-0x4159 mem_sniff_unint_lost
-0x415a mem_ptt
-0x415b mem_sleep_counter//should be 0x41fc in REVC
-0x415f mem_sleep_counter_all
-0x4163 mem_sleep_clkn
-0x4169 mem_sniff_rcv
-0x416c mem_sniff_lost
-0x416f mem_clks_per_lpo
-0x4172 mem_lpm_mult
-0x4173 mem_lpm_mult_timeout
-0x4174 mem_lpm_mult_cnt
-0x4175 mem_lpm_config
-0x4178 mem_lpm_xtalcnt
-0x4179 mem_lpm_buckcnt
-0x417a mem_lpm_ldocnt
-0x417b mem_lpm_isogate
-0x417c mem_lpm_isogate_final
-0x417d mem_saved_gpio// should be 0x421e in REVC
-0x418d mem_saved_gsel
-0x4190 mem_saved_mark
-0x4198 mem_saved_spidctrl
-0x4199 mem_patch_ptr
-0x419b mem_patch_len
-0x419d mem_timers
-0x41bd mem_link_key_exists
-0x41be mem_link_key
-0x41ce mem_hci_cmd
-0x41cf mem_hci_conn_handle
-0x41d0 mem_hci_plap
-0x41d3 mem_hci_puap
-0x41d4 mem_hci_pnap
-0x41d6 mem_uartd_rxitems_got_data
-0x41d7 mem_uartd_rxitems_threshold
-0x41d8 mem_uartd_rx_timeout
-0x41da mem_loadcode_times
-0x41db mem_tx_lch
-0x41dc mem_tx_len
-0x41de mem_tx_power
-0x41df mem_context_number
-0x41e0 mem_250k_freq_enable
-0x41e1 mem_rf_init_data
-0x41e2 mem_app_handshake_flag
-0x41e3 mem_sniff_param_interval
-0x41e5 mem_sniff_param_attempt
-0x41e7 mem_sniff_param_timeout
-0x41e9 mem_cb_check_wakelock
-0x41eb mem_cb_before_hibernate
-0x41ed mem_cb_before_lpm
-0x41ef mem_cb_le_process
-0x41f1 mem_cb_bt_process
-0x41f3 mem_cb_idle_process
-0x41f5 mem_cb_bb_event_process
-0x41f7 mem_cb_discovry_timeout
-0x41f9 mem_cb_att_write
-0x41fb mem_cb_ble_transmit
-0x41fd mem_cb_event_timer
-0x41ff mem_cb_bt_set_mult
-0x4201 mem_cb_spi_flash_write_complate
-0x4203 mem_eeprom_base
-0x4205 mem_unsniff2sniff_timer_count
-0x4206 mem_wake_up_delay_timer
-0x4207 mem_app_connection_options
-0x4208 mem_app_disconn_reason
-0x420a mem_app_disconn_reason_flag
-0x420c mem_lpm_delay_after_sniff
-0x4210 mem_xrecord_mode
-0x4211 mem_eeprom_block_size
-0x4212 mem_spi_init_clk
-0x4213 mem_spi_init_delay_time
-0x4214 mem_spi_ncs_gpio
-0x4215 mem_nv_data_ptr
-0x4217 mem_nv_data_number
-0x4218 mem_queue_ptr
-0x421a mem_ui_led_struct_num
-0x421b mem_ui_led_struct_ptr
-0x421d mem_0_5_adc_io_data
-0x421f mem_1v_adc_hvin_data
-0x4221 mem_2v_adc_vinlpm_data
-0x4223 mem_1v_adc_io_data
-0x4225 mem_5v_adc_hvin_data
-0x4227 mem_3v_adc_vinlpm_data
-0x4229 mem_otp_adc_flag
-0x422b mem_reference_voltage
-0x422d mem_adc_config_flag
-0x422e mem_adc_channel
-0x422f mem_adc_current_value
-0x4231 mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
-0x4232 mem_spi_write_addr
-0x4235 mem_spi_write_ptr
-0x4237 mem_spi_write_len
-0x4239 mem_spi_write_flash_sm
-0x423a mem_eeprom_wp_gpio
-0x423b mem_kscan_ptr
-0x423d mem_key_num_ptr
-0x423d mem_keyscan_ptr
-0x423f mem_power_param_ptr
-0x4241 mem_power_on_flag//forbid to move this variable
-0x4241 mem_24g_head_ptr
-0x4243 mem_baud
-0x4245 mem_hci_lt_rx_state
-0x4246 mem_l2cap_xmem_start
-0x4246 mem_l2cap_tx_multi_offset//0 means single packet
-0x4248 mem_sdp_remote_cid
-0x424a mem_rfcomm_remote_cid
-0x424c mem_hid_ctrl_remote_cid
-0x424e mem_hid_int_remote_cid
-0x4250 mem_sdp_state
-0x4251 mem_rfcomm_state
-0x4252 mem_hid_control_state
-0x4253 mem_hid_interrupt_state
-0x4254 mem_spp_state
-0x4255 mem_ML2CAP_comm_id
-0x4256 mem_used_map
-0x4257 mem_tx_fifo0
-0x4257 mem_tx_fifo0_map
-0x4258 mem_tx_fifo0_ptr
-0x425a mem_tx_fifo1
-0x425a mem_tx_fifo1_map
-0x425b mem_tx_fifo1_ptr
-0x425d mem_tx_fifo2
-0x425d mem_tx_fifo2_map
-0x425e mem_tx_fifo2_ptr
-0x4260 mem_tx_fifo3
-0x4260 mem_tx_fifo3_map
-0x4261 mem_tx_fifo3_ptr
-0x4263 mem_tx_fifo_end
-0x4263 mem_l2cap_lpm_txbuf
-0x4363 mem_l2cap_flow_ctrl_flag
-0x4364 mem_l2cap_pending_item
-0x4365 mem_l2cap_xmem_end
-0x4365 mem_le_dsniff
-0x4367 mem_le_conn_interval
-0x4369 mem_le_scan_enable
-0x436a mem_le_scan_interval
-0x436c mem_le_scan_window
-0x436e mem_le_adv_enable
-0x436f mem_le_adv_data_len
-0x4370 mem_le_adv_data
-0x438f mem_le_scan_data_len
-0x4390 mem_le_scan_data
-0x43af mem_le_name_len
-0x43b0 mem_le_name
-0x43ce mem_le_new_map
-0x43d3 mem_le_new_param
-0x43d3 mem_le_new_transmitwindowsize
-0x43d4 mem_le_new_transmitwindowoffset
-0x43d6 mem_le_new_conninterval
-0x43d8 mem_le_new_connslavelatency
-0x43da mem_le_new_connsupervisiontimeout
-0x43dc mem_le_txheader
-0x43dd mem_le_txlen
-0x43de mem_le_txpayload
-0x43e0 mem_le_txcid
-0x43e2 mem_le_l2cap
-0x43e3 mem_le_l2cap_response
-0x43e4 mem_le_txbdy
-0x4403 mem_le_pcnt_tx
-0x4408 mem_le_pcnt_rx
-0x440d mem_le_last_mic
-0x4411 mem_le_ivm
-0x4415 mem_le_ivs
-0x4419 mem_le_ltk
-0x4429 mem_ltk_exists
-0x442a mem_le_rconfirm
-0x443a mem_le_srand
-0x444a mem_le_iat
-0x444b mem_le_rat
-0x444c mem_le_preq
-0x444d mem_le_preq_iocap
-0x444e mem_le_preq_oob
-0x444f mem_le_preq_auth
-0x4450 mem_le_preq_max_keysize
-0x4451 mem_le_preq_init_key_distribution
-0x4452 mem_le_preq_resp_key_distribution
-0x4453 mem_le_pres
-0x4454 mem_le_pres_iocap
-0x4455 mem_le_pres_oob
-0x4456 mem_le_pres_auth
-0x4457 mem_le_pres_max_keysize
-0x4458 mem_le_pres_init_key_distribution
-0x4459 mem_le_pres_resp_key_distribution
-0x445a mem_le_search_handle_start
-0x445c mem_le_search_handle_end
-0x445e mem_le_att_offset
-0x445e mem_le_search_att_type_length
-0x445f mem_le_search_att_type
-0x446f mem_le_notify_handle
-0x4471 mem_le_search_uuid_length
-0x4472 mem_le_search_uuid
-0x4482 mem_le_adv_param
-0x4482 mem_le_adv_interval
-0x4484 mem_le_adv_type
-0x4485 mem_le_adv_own_addr_type
-0x4486 mem_le_adv_direct_addr_type
-0x4487 mem_le_adv_direct_addr
-0x448d mem_le_adv_channel_map
-0x448e mem_le_conn_param
-0x448e mem_le_conn_peer_addr_type
-0x448f mem_le_conn_peer_addr
-0x4495 mem_le_conn_own_addr_type
-0x4496 mem_le_interval_min
-0x4498 mem_le_interval_max
-0x449a mem_le_latency
-0x449c mem_le_timeout
-0x449e mem_le_scan_params
-0x449e mem_le_scan_type
-0x449f mem_le_scan_own_addr_type
-0x44a0 mem_le_lap
-0x44a3 mem_le_uap
-0x44a4 mem_le_nap
-0x44a6 mem_le_local_mtu
-0x44a8 mem_le_remote_mtu
-0x44aa mem_le_skdm
-0x44b2 mem_le_skds
-0x44ba mem_le_init_superto
-0x44bc mem_ui_le_uuid_table
-0x44be mem_le_secure_connect_enable
-0x44bf mem_le_secure_connect_flag
-0x44c0 mem_le_sc_calc
-0x44c1 mem_le_secure_connect_state
-0x44c2 mem_le_sc_confirm_gkey_flag
-0x44c3 mem_le_sc_local_key_invalid
-0x44c4 mem_le_pairing_state
-0x44c5 mem_le_enc_state
-0x44c6 mem_le_pairing_mode
-0x44c7 mem_le_tk
-0x44cb mem_le_ediv
-0x44cd mem_le_rand
-0x44d5 mem_le_irk
-0x44e5 mem_le_transmit_window
-0x44e9 mem_le_configuration
-0x44ea mem_le_fixed_ltk
-0x44fa mem_le_pairing_handle
-0x44fc mem_le_l2cap_size
-0x44fe mem_le_packet_len_recved
-0x44ff mem_le_tx_buff_used
-0x4500 mem_le_tx_ptr0
-0x4502 mem_le_tx_ptr1
-0x4504 mem_le_tx_ptr2
-0x4506 mem_le_tx_ptr3
-0x4508 mem_le_signaling_identifier
-0x4509 mem_le_l2cap_signaling_conn_param_update_rsp_result
-0x450b mem_le_packet_size
-0x450c mem_le_packet_llid
-0x450d mem_le_payload_ptr
-0x450f mem_le_md_count
-0x4510 mem_lmp_version
-0x4513 mem_lmp_subversion
-0x4515 mem_local_name_length
-0x4516 mem_local_name
-0x4519 mem_local_name2
-0x4559 mem_local_name_end
-0x455a mem_unsniff2sniff_timer
-0x455b mem_switch_flag
-0x455c mem_classic_bt_flag
-0x455d mem_pn_dlci
-0x455e mem_pn_max_frame_size
-0x4560 memFCStemp1
-0x4561 memFCStemp2
-0x4562 memFCStemp3
-0x4563 mem_rfcomm_initiator
-0x4564 mem_remote_spp_channel
-0x4565 mem_HIUfcs_SPP
-0x4566 mem_HIUfcs_SPP_WCredits
-0x4567 mem_rfcomm_send_more_pkt
-0x4568 mem_remote_credits
-0x4569 mem_credit_given
-0x456a mem_ms_channel
-0x456b mem_credit_flag
-0x456c mem_rfcomm_max_frame_size
-0x456e mem_rfcomm_credit_init_data
-0x456f mem_cb_receive_spp_data
-0x4571 mem_nl_rx_data_src
-0x4573 mem_nl_rx_len_all
-0x4575 mem_ui_uuid_table
-0x4577 mem_all_uuid_16bits
-0x458d mem_all_uuid_128bits
-0x45af mem_sdp_l2capch_ptr
-0x45b1 mem_sp_local_key_invalid
-0x45b2 mem_le_private_key_256
-0x45d2 mem_le_pubkey_local_x_256
-0x45f2 mem_le_pubkey_local_y_256
-0x4612 mem_sp_private_key
-0x462a mem_sp_pubkey_local
-0x462a mem_sp_pubkey_local_x
-0x4642 mem_sp_pubkey_local_x_end
-0x4642 mem_sp_pubkey_local_y
-0x465a mem_ssp_enable
-0x465b mem_sp_iocap_local
-0x465e mem_sp_iocap_remote
-0x4661 mem_flag_mode_ssp_pin
-0x4662 mem_ssp_mode_flag
-0x4663 mem_authentication_passkey_times
-0x4664 mem_passkey_1bit
-0x4665 mem_flag_pairing_state
-0x4666 mem_ipc_lock_bt
-0x4667 mem_ipc_lock_c51
-0x4668 mem_ipc_fifo_bt2c51
-0x4670 mem_ipc_fifo_c512bt
-0x4678 mem_ui_button_timer
-0x4679 mem_ui_button_last_state
-0x467a mem_ui_timer_last_btclk
-0x467e mem_discovery_timeout_timer_count
-0x4680 mem_hid_handshake_timer_count
-0x4681 memui_reconnect_mode
-0x4682 mem_ui_state_map
-0x4684 mem_ui_profile_supported
-0x4685 mem_ui_button_timeout
-0x4686 mem_ui_button_gpio
-0x4687 mem_discovery_timeout
-0x4689 mem_pin_length
-0x468a mem_pin
-0x469a mem_antl_lpm_interval
-0x469c mem_antl_adv_interval
-0x469e mem_antl_slow_adv_lpm_interval
-0x46a0 mem_antl_slow_adv_adv_interval
-0x46a2 mem_antl_led_style
-0x46a2 mem_antl_led_type
-0x46a3 mem_antl_led_blink_count
-0x46a4 mem_antl_led_gpio
-0x46a5 mem_antl_led_on_time
-0x46a7 mem_antl_led_off_time
-0x46a9 mem_antl_led_cb_on
-0x46ab mem_antl_led_cb_off
-0x46ad mem_antl_buzzer_style
-0x46ad mem_antl_buzzer_type
-0x46ae mem_antl_buzzer_blink_count
-0x46af mem_antl_buzzer_gpio
-0x46b0 mem_antl_buzzer_on_time
-0x46b2 mem_antl_buzzer_off_time
-0x46b4 mem_antl_buzzer_cb_on
-0x46b6 mem_antl_buzzer_cb_off
-0x46b8 mem_antl_fast_adv_led_style
-0x46b8 mem_antl_fast_adv_led_type
-0x46b9 mem_antl_fast_adv_led_blink_count
-0x46ba mem_antl_fast_adv_led_gpio
-0x46bb mem_antl_fast_adv_led_on_time
-0x46bd mem_antl_fast_adv_led_off_time
-0x46bf mem_antl_slow_adv_led_style
-0x46bf mem_antl_slow_adv_led_type
-0x46c0 mem_antl_slow_adv_led_blink_count
-0x46c1 mem_antl_slow_adv_led_gpio
-0x46c2 mem_antl_slow_adv_led_on_time
-0x46c4 mem_antl_slow_adv_led_off_time
-0x46c6 mem_antl_power_starting_led_style
-0x46c6 mem_antl_power_starting_led_type
-0x46c7 mem_antl_power_starting_led_blink_count
-0x46c8 mem_antl_power_starting_led_gpio
-0x46c9 mem_antl_power_starting_led_on_time
-0x46cb mem_antl_power_starting_led_off_time
-0x46cd mem_antl_power_starting_buzzer_style
-0x46d4 mem_antl_power_off_led_style
-0x46d4 mem_antl_power_off_led_type
-0x46d5 mem_antl_power_off_led_link_count
-0x46d6 mem_antl_power_off_led_gpio
-0x46d7 mem_antl_power_off_led_on_time
-0x46d9 mem_antl_power_off_led_off_time
-0x46db mem_antl_power_off_buzzer_style
-0x46db mem_antl_power_off_buzzer_type
-0x46dc mem_antl_power_off_buzzer_link_count
-0x46dd mem_antl_power_off_buzzer_gpio
-0x46de mem_antl_power_off_buzzer_on_time
-0x46e0 mem_antl_power_off_buzzer_off_time
-0x46e2 mem_antl_alert_led_stlye
-0x46e9 mem_antl_alert_buzzer_stlye
-0x46e9 mem_antl_alert_buzzer_type
-0x46ea mem_antl_alert_buzzer_blink_count
-0x46eb mem_antl_alert_buzzer_gpio
-0x46ec mem_antl_alert_buzzer_on_time
-0x46ee mem_antl_alert_buzzer_off_time
-0x46f0 mem_antl_key_led_style
-0x46f0 mem_antl_key_led_type
-0x46f1 mem_antl_key_led_blink_count
-0x46f2 mem_antl_key_led_gpio
-0x46f3 mem_antl_key_led_on_time
-0x46f5 mem_antl_key_led_off_time
-0x46f7 mem_antl_key_buzzer_style
-0x46fe mem_antl_queue_width
-0x46ff mem_antl_queue_depth
-0x4700 mem_antl_queue_curr_num
-0x4701 mem_antl_queue_read_ptr
-0x4702 mem_antl_queue_write_ptr
-0x4703 mem_antl_queue_buff
-0x4753 mem_antl_key_scan_enable
-0x4754 mem_antl_led_num
-0x4755 mem_antl_led_gpio_map
-0x4759 mem_antl_power_param
-0x4759 mem_antl_power_state
-0x475a mem_antl_power_timer
-0x475b mem_antl_power_off_timeout
-0x475c mem_antl_power_starting_timeout
-0x475d mem_antl_power_off_cb
-0x475f mem_antl_power_starting_cb
-0x4761 mem_antl_power_standby_cb
-0x4763 mem_event_button_up_cb
-0x4765 mem_antl_key_num
-0x4766 mem_cb_antl_key
-0x4768 mem_antl_key_conf0
-0x476c mem_antl_key0_press
-0x477b mem_antl_key0_release
-0x478a mem_antl_conn_updata_procedure_state
-0x478b mem_client_characteristic_configuration_descriptor
-0x478d mem_adc_timer
-0x478f mem_antl_conn_update_timer
-0x4790 mem_antl_send_updata_le_param_timer
-0x4791 mem_antl_le_sleep_timer
-0x4793 mem_antl_fast_adv_timer
-0x4795 mem_antl_fast_adv_timeout
-0x4797 mem_antl_le_sleep_timeout
-0x4799 mem_double_click_timer
-0x479a mem_butten_click_cnt
-0x479b mem_antl_led_state
-0x479c mem_antl_buzzer_state
-0x479d mem_antl_key_state
-0x479e mem_antl_lost_mode
-0x479f mem_alarm_config
-0x47a0 mem_alarm_config_notfy_cnt
-0x47a1 mem_buzzer_pwm_conf
-0x47a7 mem_adc_timeout
-0x47a9 mem_voltage_remain_percent
-0x47aa mem_battery_calculate_set
-0x47aa mem_battery_full_voltage
-0x47ac mem_battery_empty_voltage
-0x47ae mem_battery_low_voltage
-0x47b0 mem_battery_current_voltage
-0x47b2 mem_rx_window_sniff_inc
-0x47b4 mem_interval_increment
-0x47b6 mem_antl_le_interval_min
-0x47b8 mem_antl_le_interval_max
-0x47ba mem_antl_le_latency
-0x47bc mem_antl_le_timeout
-0x47be mem_antl_le_unnormal_interval_min
-0x47c0 mem_antl_le_unnormal_interval_max
-0x47c2 mem_antl_le_unnormal_latency
-0x47c4 mem_antl_le_unnormal_timeout
-0x47c6 mem_AntiLost_le_att_list
-0x469a mem_car_hard_soft_switch
-0x469b mem_car_queue_each_size
-0x469c mem_car__queue_length
-0x469d mem_car_queue_curr_num
-0x469e mem_car_queue_read_ptr
-0x469f mem_car_queue_write_ptr
-0x46a0 mem_car_queue_ele
-0x4718 mem_car_pop_queue_buff
-0x472c mem_car_led_num
-0x472d mem_car_led_map
-0x4737 mem_car_style1_led_type
-0x4738 mem_car_style1_blink_count
-0x4739 mem_car_style1_struct_led_gpio
-0x473a mem_car_style1_on_time
-0x473c mem_car_style1_off_time
-0x473e mem_car_style1_cb_ledon
-0x4740 mem_car_style1_cb_ledoff
-0x4742 mem_car_style2_led_type
-0x4743 mem_car_style2_blink_count
-0x4744 mem_car_style2_struct_led_gpio
-0x4745 mem_car_style2_on_time
-0x4747 mem_car_style2_off_time
-0x4749 mem_car_style2_cb_ledon
-0x474b mem_car_style2_cb_ledoff
-0x474d mem_le_receive_data
-0x474d mem_le_receive_packet_head
-0x474f mem_le_receive_cmd
-0x4750 mem_le_receive_length
-0x4752 mem_le_receive_payload
-0x475c mem_le_receive_checksum
-0x475d mem_motor1_status
-0x475e mem_motor1_speed
-0x475f mem_motor2_status
-0x4760 mem_motor2_speed
-0x4761 mem_motor3_status
-0x4762 mem_motor3_speed
-0x4763 mem_motor1_pwm_set
-0x4763 mem_motor1_pwm_pin1_set
-0x4764 mem_motor1_pwm_pin2_set
-0x4765 mem_motor1_pwm_pin_set
-0x4766 mem_motor1_pwm_channel_set
-0x4767 mem_motor1_pwm_freq_set
-0x476a mem_motor1_pwm_dute_set
-0x476b mem_motor2_pwm_set
-0x476b mem_motor2_pwm_pin1_set
-0x476c mem_motor2_pwm_pin2_set
-0x476d mem_motor2_pwm_pin_set
-0x476e mem_motor2_pwm_channel_set
-0x476f mem_motor2_pwm_freq_set
-0x4772 mem_motor2_pwm_dute_set
-0x4773 mem_motor3_pwm_set
-0x4773 mem_motor3_pwm_pin1_set
-0x4774 mem_motor3_pwm_pin2_set
-0x4775 mem_motor3_pwm_pin_set
-0x4776 mem_motor3_pwm_channel_set
-0x4777 mem_motor3_pwm_freq_set
-0x477a mem_motor3_pwm_dute_set
-0x477b mem_motor_select_p_n
-0x477c mem_car_motor_status
-0x477d mem_car_motor_speed
-0x477e mem_motor_pwm_set
-0x477e mem_motor_pwm_pin1_set
-0x477f mem_motor_pwm_pin2_set
-0x4780 mem_motor_pwm_pin_set
-0x4781 mem_motor_pwm_channel_set
-0x4782 mem_motor_pwm_freq_set
-0x4785 mem_motor_pwm_dute_set
-0x4786 mem_ir_rx_gpio
-0x4787 mem_ir_data
-0x4789 mem_ir_rx_buf
-0x478b mem_ir_receive_clkn
-0x478f mem_ir_notify_data
-0x4792 mem_ir_notify_data_head
-0x4797 mem_ir_notify_data_payload
-0x4799 mem_ir_notify_data_check_sum
-0x479a mem_car_ir_breakdown_check_timer
-0x479b mem_car_ir_breakdown_flag
-0x479c mem_car_led_control
-0x479c mem_car_led1_status
-0x479d mem_car_led2_status
-0x479e mem_car_led3_status
-0x479f mem_car_led4_status
-0x47a0 mem_car_led5_status
-0x47a1 mem_car_led6_status
-0x47a2 mem_car_led7_status
-0x47a3 mem_car_led8_status
-0x47a4 mem_car_led_control_timer
-0x47a5 mem_car_led_blink_status
-0x47a6 mem_car_led_no
-0x47a7 mem_car_info_request
-0x47aa mem_car_info_request_head
-0x47af mem_car_info_request_payload
-0x47b7 mem_car_info_request_checksum
-0x47b8 mem_car_config_param
-0x47b8 mem_car_config_setting_flag
-0x47b9 mem_car_config_device_select
-0x47ba mem_car_config_motor_layout
-0x47bb mem_car_config_ir_enable
-0x47bc mem_car_config_ir_rx_gpio
-0x47bd mem_car_config_pairing_led_conn_status
-0x47be mem_car_config_pairing_led_gpio
-0x47bf mem_car_config_led_num
-0x47c0 mem_car_config_blood_led_gpio
-0x47c0 mem_car_config_blood_led1_gpio
-0x47c1 mem_car_config_blood_led2_gpio
-0x47c2 mem_car_config_blood_led3_gpio
-0x47c3 mem_car_config_blood_led4_gpio
-0x47c4 mem_car_config_blood_led5_gpio
-0x47c5 mem_car_config_blood_led6_gpio
-0x47c6 mem_car_config_blood_led7_gpio
-0x47c7 mem_car_config_blood_led8_gpio
-0x47c8 mem_car_config_bat_notify_enable
-0x47c9 mem_car_config_low_voltage_led_gpio
-0x47ca mem_car_config_low_voltage_percent
-0x47cb mem_car_config_soft_switch_enable
-0x47cc mem_car_config_soft_switch_gpio
-0x47cd mem_car_notify_vdd_count
-0x47ce mem_car_notify_vdd_timer
-0x47cf mem_car_notify_vdd_value_last
-0x47d0 mem_car_notify_vdd_percent
-0x47d1 mem_car_working_flag
-0x47d2 mem_low_bat_flag
-0x47d3 mem_notify_bat_packet
-0x47d6 mem_notify_bat_head
-0x47db mem_notify_bat_payload
-0x47dc mem_notify_bat_check_sum
-0x47dd mem_vdd_notify_flag
-0x47de mem_car_current_vdd_value_temp
-0x47e0 mem_car_last_vdd_value
-0x47e2 mem_vdd_calculate_set
-0x47e2 mem_vdd_full_vol
-0x47e4 mem_vdd_empty_vol
-0x47e6 mem_vdd_low_vol
-0x47e8 mem_vdd_now_vol
-0x47ea mem_car_24g_status
-0x47eb mem_car_24g_no_data_timeout_count
-0x47ed mem_car_24g_no_data_timeout_timer
-0x47ef mem_car_24g_ir_receive_attack_count
-0x47f0 mem_car_24g_go_die_flag
-0x47f1 mem_car_attack_shake_timer
-0x47f2 mem_car_attack_shake_flag
-0x47f3 mem_car_soft_power
-0x47f3 mem_car_power_state
-0x47f4 mem_car_power_timer
-0x47f5 mem_car_power_off_timeout
-0x47f6 mem_car_power_starting_timeout
-0x47f7 mem_car_power_off_cb
-0x47f9 mem_car_power_starting_cb
-0x47fb mem_car_power_standby_cb
-0x47fd mem_car_ui_button_up_cb
-0x47ff mem_car_le_att_list
-0x49f3 mem_car_moto1_blank_timer
-0x49f4 mem_car_moto2_blank_timer
-0x49f5 mem_car_moto3_blank_timer
-0x49f6 mem_car_24g_received_pac
-0x49f7 mem_24g_car_head_ptr
-0x469a mem_light_pwm0
-0x469b mem_light_pwm1
-0x469c mem_light_pwm2
-0x469d mem_light_pwm3
-0x469e mem_light_pwm4
-0x469f mem_light_pwm5
-0x46a0 mem_light_pairing_enable
-0x46a1 mem_light_pairing_timer
-0x46a3 mem_light_cnum
-0x46a4 mem_light_next_record
-0x46a5 mem_light_clist
-0x46f5 mem_light_crr_cmd_count
-0x46f6 mem_curr_packet_num
-0x469a mem_lightc_led_gpio
-0x469b mem_lightc_row
-0x46a1 mem_lightc_col
-0x46a7 mem_adv_time
-0x46a8 mem_cmd0_string
-0x46bc mem_cmd1_string
-0x46d0 mem_cmd2_string
-0x46e4 mem_cmd3_string
-0x46f8 mem_cmd4_string
-0x470c mem_cmd5_string
-0x4720 mem_cmd6_string
-0x4734 mem_cmd7_string
-0x4748 mem_cmd8_string
-0x475c mem_cmd9_string
-0x4770 mem_cmd10_string
-0x4784 mem_cmd11_string
-0x4798 mem_cmd12_string
-0x47ac mem_cmd13_string
-0x47c0 mem_cmd14_string
-0x47d4 mem_cmd15_string
-0x47e8 mem_cmd16_string
-0x47fc mem_cmd17_string
-0x4810 mem_cmd18_string
-0x4824 mem_cmd19_string
-0x4838 mem_cmd20_string
-0x469a mem_soft_version_num
-0x469c mem_module_wake_up_gpio
-0x469d mem_module_state_gpio
-0x469e mem_module_connect_state_gpio
-0x469f mem_current_packet_length
-0x46a1 mem_module_state
-0x46a2 mem_module_mcu_wake_pin
-0x46a3 mem_module_mcu_wake_delay_us
-0x46a7 mem_module_spp_lpm_mult
-0x46a8 mem_module_le_lpm_mult
-0x46a9 mem_module_bluetooth_stauts_by_command
-0x46aa mem_module_uart_rx_buffer
-0x46ac mem_module_uart_rx_buffer_end
-0x46ae mem_module_uart_tx_buffer
-0x46b0 mem_module_uart_tx_buffer_end
-0x46b2 mem_module_read_vdd_flag
-0x46b3 mem_module_read_vdd_count
-0x46b4 mem_module_vdd_quotient
-0x46b5 mem_module_vdd_remainder
-0x46b6 mem_module_le_rx_data_len
-0x46b7 mem_module_le_rx_data_address
-0x46b9 mem_module_le_rx_data_handle
-0x46bb mem_module_data_write_handle
-0x46bd mem_module_data_write_handle2
-0x46bf mem_module_flag
-0x46c0 mem_module_hci_notify_len
-0x46c1 mem_module_hci_notify_handle
-0x46c3 mem_module_hci_nofiy_addr
-0x46c5 mem_last_transmite_clock
-0x46c9 mem_module_uuid_list
-0x47f5 mem_module_uuid_list_end
-0x47f5 mem_module_le_att_list
-0x4a4d mem_module_le_att_list_end
-0x4a4d mem_module_nv_data
-0x4a4d mem_module_nv_data0
-0x4a6f mem_module_nv_data1
-0x4a91 mem_module_nv_data2
-0x4ab3 mem_module_nv_data3
-0x4ad5 mem_module_nv_data4
-0x469a mem_remote_car_hard_soft_switch
-0x469b mem_remote_car_queue_each_size
-0x469c mem_remote_car_queue_length
-0x469d mem_remote_car_queue_curr_num
-0x469e mem_remote_car_queue_read_ptr
-0x469f mem_remote_car_queue_write_ptr
-0x46a0 mem_remote_car_queue_ele
-0x46fa mem_remote_style_led_type
-0x46fb mem_remote_style_blink_count
-0x46fc mem_remote_style_struct_led_gpio
-0x46fd mem_remote_style_on_time
-0x46ff mem_remote_style_off_time
-0x4701 mem_remote_style_cb_ledon
-0x4703 mem_remote_style_cb_ledoff
-0x4705 mem_remote_car_led_num
-0x4706 mem_remote_car_led_map
-0x470e mem_remote_car_keyscan
-0x470e mem_remote_car_key_num
-0x470f mem_cb_remote_car_keyscan
-0x4711 mem_remote_car_key_conf0
-0x4711 mem_remote_car_key_conf0_pin
-0x4712 mem_remote_car_key_conf1
-0x4712 mem_remote_car_key_conf1_pin
-0x4713 mem_remote_car_key_conf2
-0x4713 mem_remote_car_key_conf2_pin
-0x4714 mem_remote_car_key_conf3
-0x4714 mem_remote_car_key_conf3_pin
-0x4715 mem_remote_car_key_conf4
-0x4715 mem_remote_car_key_conf4_pin
-0x4716 mem_remote_car_key_conf5
-0x4716 mem_remote_car_key_conf5_pin
-0x4717 mem_remote_car_key_conf6
-0x4717 mem_remote_car_key_conf6_pin
-0x4718 mem_rocker_negative_flag
-0x4719 mem_rocker_work_status
-0x471a mem_current_vdd_value_default_mid_x
-0x471c mem_current_vdd_value_default_mid_y
-0x471e mem_current_vdd_value_default_mid_temp
-0x4720 mem_current_vdd_default_range
-0x4722 mem_rocker_last_status
-0x4724 mem_rocker_status
-0x4724 mem_rocker_x_status
-0x4725 mem_rocker_y_status
-0x4726 mem_remote_car_config_param
-0x4726 mem_remote_car_config_setting_flag
-0x4727 mem_remote_car_config_key_map
-0x4728 mem_remote_car_config_layout
-0x4729 mem_remote_car_config_connect_led_gpio
-0x472a mem_remote_car_config_check_way
-0x472b mem_remote_car_config_soft_switch_enable
-0x472c mem_remote_car_config_soft_switch_gpio
-0x472d mem_remote_car_config_timeout_shutdown_enable
-0x472e mem_remote_car_24g_motor_packet
-0x472e mem_remote_car_24g_motor_packet_lenght
-0x472f mem_remote_car_24g_motor_send_packet_head
-0x4731 mem_remote_car_24g_motor_send_cmd
-0x4732 mem_remote_car_24g_motor_send_length
-0x4734 mem_remote_car_24g_motor_send_payload
-0x4734 mem_remote_car_24g_motor1_payload
-0x4736 mem_remote_car_24g_motor2_payload
-0x4738 mem_remote_car_24g_motor3_payload
-0x473a mem_remote_car_24g_motor_send_checksum
-0x473b mem_remote_car_24g_fire_packet
-0x473b mem_remote_car_24g_fire_packet_lenght
-0x473c mem_remote_car_24g_fire_send_packet_head
-0x473e mem_remote_car_24g_fire_send_cmd
-0x473f mem_remote_car_24g_fire_send_length
-0x4741 mem_remote_car_24g_fire_send_payload
-0x4743 mem_remote_car_24g_fire_send_checksum
-0x4744 mem_remote_car_24g_tx_temp
-0x4753 mem_remote_car_no_data_timeout
-0x4755 mem_remote_car_no_data_timer
-0x4757 mem_remote_car_soft_power
-0x4757 mem_remote_car_power_state
-0x4758 mem_remote_car_power_timer
-0x4759 mem_remote_car_power_off_timeout
-0x475a mem_remote_car_power_starting_timeout
-0x475b mem_remote_car_power_off_cb
-0x475d mem_remote_car_power_starting_cb
-0x475f mem_remote_car_power_standby_cb
-0x4761 mem_remote_key_status
-0x4762 mem_remote_car_24g_status
-0x4763 mem_remote_car_24g_auto_work_step
-0x4764 mem_remote_car_24g_pair_success_flag
-0x4765 mem_remote_car_24g_enter_lpm_enable
-0x4766 mem_remote_car_empty_packet
-0x4767 mem_24g_RC_head_ptr
-0x469a mem_shutter_bluetooth_type
-0x469b mem_shutter_config_enable
-0x469c mem_shutter_config_otp_base_address
-0x469e mem_shutter_config_size
-0x469f mem_shutter_config_select_gpio1
-0x46a0 mem_shutter_config_select_gpio2
-0x46a1 mem_shutter_config_select_gpio3
-0x46a2 mem_shutter_config_user_otp_address
-0x46a4 mem_shutter_config_eeprom_offset_addr
-0x46a6 mem_shutter_config_eeprom_start_flag
-0x46a8 mem_shutter_config_user_size
-0x46a9 mem_shutter_config_label
-0x46aa mem_shutter_config_otp_addr
-0x46ac mem_classic_shutter_cable_unplug_conut
-0x46ad mem_classic_shutter_hid_disconn_count
-0x46ae mem_classic_shutter_random_mac_offset_addr
-0x46b0 mem_ble_shutter_enable_notify
-0x46b1 mem_ble_shutter_reconn_dav_interval
-0x46b3 mem_ble_shutter_discovery_adv_interval
-0x46b5 mem_ble_shutter_reconn_timeout
-0x46b7 mem_ble_shutter_reconn_timer
-0x46b9 mem_ble_shutter_reconn_blink_on_time
-0x46bb mem_ble_shutter_reconn_blink_off_time
-0x46bd mem_ble_shutter_discovery_blink_on_time
-0x46bf mem_ble_shutter_discovery_blink_off_time
-0x46c1 mem_ble_shutter_interval_min
-0x46c3 mem_ble_shutter_interval_max
-0x46c5 mem_ble_shutter_latency
-0x46c7 mem_ble_shutter_timeout
-0x46c9 mem_ble_shutter_interval_min_new
-0x46cb mem_ble_shutter_interval_max_new
-0x46cd mem_ble_shutter_latency_new
-0x46cf mem_ble_shutter_timeout_new
-0x46d1 mem_classic_shutter_discovery_timeout
-0x46d3 mem_classic_shutter_connect_timeout
-0x46d5 mem_ble_shutter_discovery_timeout
-0x46d7 mem_ble_shutter_connect_timeout
-0x46d9 mem_shutter_sleep_timeout
-0x46db mem_shutter_sleep_timer
-0x46dd mem_shutter_hard_soft_switch_case
-0x46de mem_shutter_soft_switch_button_gpio
-0x46df mem_shutter_soft_switch_power_state
-0x46e0 mem_shutter_soft_switch_poweron_time
-0x46e1 mem_shutter_soft_switch_poweroff_time
-0x46e2 mem_shutter_soft_switch_poweron_callback_function
-0x46e4 mem_shutter_soft_switch_poweroff_callback_function
-0x46e6 mem_shutter_keyscan
-0x46e6 mem_shutter_key_num
-0x46e7 mem_cb_shutter_keycan
-0x46e9 mem_shutter_key_conf0
-0x46ea mem_shutter_key_conf1
-0x46eb mem_shutter_key_conf2
-0x46ec mem_shutter_key_conf3
-0x46ed mem_shutter_key_conf4
-0x46ee mem_shutter_key_conf5
-0x46ef mem_shutter_key_conf6
-0x46f0 mem_shutter_key_conf7
-0x46f1 mem_key0_press
-0x46f6 mem_key1_press
-0x46fb mem_key2_press
-0x4700 mem_key3_press
-0x4705 mem_key4_press
-0x470a mem_key5_press
-0x470f mem_key6_press
-0x4714 mem_key7_press
-0x4719 mem_key0_release
-0x471e mem_key1_release
-0x4723 mem_key2_release
-0x4728 mem_key3_release
-0x472d mem_key4_release
-0x4732 mem_key5_release
-0x4737 mem_key6_release
-0x473c mem_key7_release
-0x4741 mem_ble_data_buffer1
-0x4746 mem_ble_data_buffer2
-0x474b mem_ble_data_buffer3
-0x4750 mem_ble_data_buffer4
-0x4755 mem_ble_data_buffer5
-0x475a mem_ble_data_buffer6
-0x475f mem_ble_data_buffer7
-0x4764 mem_ble_data_buffer8
-0x4769 mem_ble_data_buffer9_58
-0x479b mem_classic_data_buffer
-0x47a0 mem_classic_data_buffer1
-0x47a5 mem_classic_data_buffer2
-0x47aa mem_classic_data_buffer3
-0x47af mem_classic_data_buffer4
-0x47b4 mem_classic_data_buffer5
-0x47b9 mem_classic_data_buffer6
-0x47be mem_classic_data_buffer7
-0x47c3 mem_classic_data_buffer8
-0x47c8 mem_classic_data_buffer9_58
-0x47fa mem_queue_each_size
-0x47fb mem_queue_length
-0x47fc mem_queue_curr_num
-0x47fd mem_queue_read_ptr
-0x47fe mem_queue_write_ptr
-0x47ff mem_queue_ele
-0x481f mem_shutter_nv_data
-0x48c9 mem_shutter_led_struct_app_led
-0x48c9 mem_shutter_led_struct_app_led_type
-0x48ca mem_shutter_led_struct_app_led_blink_count
-0x48cb mem_shutter_led_struct_app_led_gpio
-0x48cc mem_shutter_led_struct_app_led_on_time
-0x48ce mem_shutter_led_struct_app_led_off_time
-0x48d0 mem_shutter_led_struct_app_led_on_callback
-0x48d2 mem_shutter_led_struct_app_led_off_callback
-0x48d4 mem_shutter_power_off_led_style
-0x48d4 mem_shutter_power_off_led_style_type
-0x48d5 mem_shutter_power_off_led_style_blink_count
-0x48d6 mem_shutter_power_off_led_style_gpio
-0x48d7 mem_shutter_power_off_led_style_on_time
-0x48d9 mem_shutter_power_off_led_style_off_time
-0x48db mem_shutter_power_off_led_style_on_callback
-0x48dd mem_shutter_power_off_led_style_off_callback
-0x48df mem_shutter_soft_swtich_botton_down
-0x48e0 mem_shutter_soft_swtich_led_struct_temp
-0x48eb mem_shutter_power_off_timeout
-0x48ec mem_shutter_power_off_timer
-0x469a mem_mouse_key
-0x469b mem_mouse_x
-0x469d mem_mouse_y
-0x469f mem_mouse_z
-0x46a0 mem_mouse_tz
-0x46a1 mem_mouse_xy_h
-0x46a2 mem_sensor_shutter_hi
-0x46a3 mem_sensor_shutter_lo
-0x46a4 mem_sensor_smart_flag
-0x46a5 mem_sensor_squal_reg
-0x46a6 mem_sensor_iqc
-0x46a7 mem_mouse_move_flag
-0x46a8 mem_mouse_direct_timeout
-0x46aa mem_mouse_no_data_timeout
-0x46ac mem_mouse_discovery_timer
-0x46ae mem_mouse_direct_timer
-0x46b0 mem_mouse_no_data_timer
-0x46b2 mem_mouse_blank_data_timer
-0x46b4 mem_mouse_send_blank_timer
-0x46b5 mem_mouse_cpi_count
-0x46b6 mem_mouse_dpi_button_state
-0x46b7 mem_wheel_tb_old_pinlevel
-0x46b8 mem_wheel_tb_new_pinlevel
-0x46b9 mem_wheel_tog
-0x46ba mem_mouse_tz_data
-0x46bb mem_mouse_tz_data_count
-0x46bc mem_mouse_tz_data_count1
-0x46bd mem_mwheel_b_old_pinlevel
-0x46be mem_mwheel_b_new_pinlevel
-0x46bf mem_mwheel_tog
-0x46c0 mem_mouse_z_data
-0x46c1 mem_mouse_z_data_count
-0x46c2 mem_mouse_z_data_count1
-0x46c3 mem_reconn_mode
-0x46c4 mem_mouse_statue_led_timer
-0x46c5 mem_le_connect_status_flag
-0x46c6 mem_le_start_encrypt_timer
-0x46c7 mem_device_addr_temp
-0x46ce mem_adc_read_timer
-0x46cf mem_adc_low_volatage_led_timer_count
-0x46d0 mem_adc_reference_voltage
-0x46d2 mem_device_number
-0x46d3 mem_mouse_flag
-0x46d5 mem_mouse_function_enable
-0x46d7 mem_combination_select_device_timer_init
-0x46d8 mem_combination_select_device_count
-0x46d9 mem_select_device_button_statue
-0x46da mem_combination_ui_button_count
-0x46db mem_bt_discovey_button_statue
-0x46dc mem_sensor_reset_gpio
-0x46dd mem_sensor_id1
-0x46de mem_sensor_id2
-0x46df mem_mouse_dpi_led_delay_count
-0x46e0 mem_config_sensor_type
-0x46e1 mem_config_sensor_motion
-0x46e2 mem_lbutton_gpio
-0x46e3 mem_rbutton_gpio
-0x46e4 mem_mbutton_gpio
-0x46e5 mem_bk_button_gpio
-0x46e6 mem_fw_button_gpio
-0x46e7 mem_dpi_button_gpio
-0x46e8 mem_whee_a_data_gpio
-0x46e9 mem_whee_b_data_gpio
-0x46ea mem_whee_ta_data_gpio
-0x46eb mem_whee_tb_data_gpio
-0x46ec mem_config_bt_button_gpio
-0x46ed mem_config_select_device_button_gpio
-0x46ee mem_config_paraing_led_gpio
-0x46ef mem_config_low_voltage_alarm_gpio
-0x46f0 mem_config_device1_led_gpio
-0x46f1 mem_config_device2_led_gpio
-0x46f2 mem_config_device3_led_gpio
-0x46f3 mem_sensor_data_gpio
-0x46f4 mem_dpi_led_gpio
-0x46f5 mem_config_function_enable
-0x46f6 mem_config_sensor_angle
-0x46f7 mem_select_sensor_angle_gpio
-0x46f8 mem_select_adc_gpio
-0x46f9 mem_config_end
-0x46f9 mem_btclk_sensor
-0x46fd mem_wire_usb_interval
-0x46fe mem_mouse_mode_flag
-0x46ff mem_usb_addr
-0x4700 mem_flash_base
-0x4703 mem_24g_device_number
-0x4704 mem_24g_enter_lpm_timer
-0x4705 mem_mouse_1step_up_count
-0x4706 mem_mouse_2step_up_count
-0x4707 mem_24g_pairing_timer_count
-0x4709 mem_mouse_vdd_calculate_set
-0x4709 mem_mouse_vdd_full_vol
-0x470b mem_mouse_vdd_empty_vol
-0x470d mem_mouse_vdd_low_vol
-0x470f mem_mouse_vdd_now_vol
-0x4711 mem_mouse_sensor_timer_count
-0x4712 mem_sensor_led_style
-0x4713 mem_mouse_led_type
-0x4714 mem_mouse_blink_count
-0x4715 mem_mouse_struct_led_gpio
-0x4716 mem_mouse_on_time
-0x4718 mem_mouse_off_time
-0x471a mem_mouse_cb_ledon
-0x471c mem_mouse_cb_ledoff
-0x471e mem_reconn_times
-0x471f mem_reconn_times_init
-0x4720 mem_mouse_information_start
-0x4720 mem_device_flag
-0x4721 mem_device1_type
-0x4722 mem_device1_addr
-0x4728 mem_device1_link_key
-0x4738 mem_device1_locall_addr
-0x473e mem_device2_type
-0x473f mem_device2_addr
-0x4745 mem_device2_link_key
-0x4755 mem_device2_locall_addr
-0x475b mem_device3_type
-0x475c mem_device3_addr
-0x4762 mem_device3_link_key
-0x4772 mem_device3_locall_addr
-0x4778 mem_store_flag
-0x477a mem_mouse_dpi
-0x477b mem_mouse_24g_addr
-0x477f mem_mouse_information_end
-0x477f mem_mouse_dpi_seting
-0x477f mem_320x_dpi_1
-0x4780 mem_320x_dpi_2
-0x4781 mem_320x_dpi_3
-0x4782 mem_320x_dpi_4
-0x4783 mem_3212_dpi_1
-0x4784 mem_3212_dpi_2
-0x4785 mem_3212_dpi_3
-0x4786 mem_3212_dpi_4
-0x4787 mem_3610_dpi_1
-0x4788 mem_3610_dpi_2
-0x4789 mem_3610_dpi_3
-0x478a mem_3610_dpi_4
-0x478b mem_mouse_24g_enter_lpm_enable
-0x478c mem_le_rx_window_inc
-0x478e mem_empty_count
-0x478f mem_rf_init_data_new
-0x479e mem_mouse_clear_sensor_data_flag
-0x479f mem_mouse_null_enter_hibernate_flag
-0x47a0 mem_mouse_null_enter_hibernate_timer
-0x47a1 mem_mouse_le_reconnect_flag
-0x47a2 mem_mouse_data_queue
-0x47c3 mem_mouse_data_queue_num
-0x47c4 mem_mouse_le_conn_param_reject
-0x47c5 mem_lpm_mult_init
-0x47c6 mem_mouse_le_uuid_sup
-0x4806 mem_mouse_wheel_trigger
-0x4807 mem_mouse_wheel_trigger_timer
-0x4808 mem_mouse_enter_sniff_count
-0x4809 mem_mouse_send_switch_req_timer
-0x480a mem_le_tx_buffer0_omemalloc
-0x4825 mem_le_tx_buffer1_omemalloc
-0x4840 mem_le_tx_buffer2_omemalloc
-0x485b mem_le_tx_buffer3_omemalloc
-0x4876 mem_mouse_uuid_list
-0x4afc mem_lmi_opcode_temp
-0x4afd mem_mouse_button_select_device_timer_init
-0x4afe mem_mouse_button_select_device_count
-0x4aff mem_mouse_adc_last_low_voltage_flag
-0x4b00 mem_mouse_init_sensor_reset_flag
-0x4b01 mem_bt_rcvd_switch_req_accept
-0x4b02 mem_bt_send_max_slot_req_accept_after_switch
-0x4b03 mem_bt_send_lmp_setup_complete
-0x4b04 mem_l2cap_rcv
-0x4b05 mem_mouse_bt_boot_mode
-0x4b06 mem_mouse_bt_boot_data
-0x4b0b mem_mouse_bt_send_first_package_timer
-0x4b0c mem_mouse_bt_send_first_package_flag
-0x4b0d mem_mouse_asm_flag
-0x4b0e mem_mouse_x_pre
-0x4b10 mem_mouse_y_pre
-0x4b12 mem_le_adv_swift_pair
-0x4b25 mem_mouse_multi_led_blink_enable
-0x4b26 mem_mouse_multi_led_gpio
-0x4b27 mem_mouse_multi_led_state
-0x4b28 mem_mouse_multi_led_type
-0x4b29 mem_mouse_multi_led_on_timer
-0x4b2a mem_mouse_multi_led_on_timer_init
-0x4b2b mem_mouse_multi_led_blink_timer_init
-0x4b2c mem_mouse_multi_led_blink_timer
-0x4b2d mem_mouse_multi_led_blink_count
-0x4b2e mem_mouse_multi_led_blink_count_limited
-0x4b2f mem_mouse_multi_led_on_poweron2s_flag
-0x4b30 mem_mouse_multi_led_blink_poweron3s_flag
-0x4b31 mem_mouse_priority_bb_event
-0x4b32 mem_mouse_le_parse_l2cap_ptr
-0x4b34 mem_low_power_no_data_off_led_time
-0x4b35 mem_low_power_check_count
-0x4b36 mem_low_power_led_blink_flag
-0x4b37 mem_mouse_3065xy_dpi_seting
-0x4b37 mem_3065xy_dpi_1
-0x4b38 mem_3065xy_dpi_2
-0x4b39 mem_3065xy_dpi_3
-0x4b3a mem_3065xy_dpi_4
-0x4b3b mem_le_att_pnp_id_len
-0x4b3c mem_le_att_pnp_id
-0x4b43 mem_mouse_long_mult_flag
-0x4b44 mem_mouse_le_current_mult_timer
-0x4b45 mem_24g_long_sleep_param_update_timer
-0x4b46 mem_flash_ncs_gpio
-0x4b47 mem_select_ui_button_count
-0x4b48 mem_write_flash_head_temp
-0x4b4c mem_mouse_poweron_led_timer
-0x4b4d mem_mouse_24g_addr_init
-0x4b51 mem_zcode_current_number
-0x4b52 mem_xip_flash_offset
-0x4b55 mem_flash_start_addr
-0x4b58 mem_flash_address
-0x4b5b mem_mouse_select_device_button_wakeup_flag
-0x4b5c mem_mouse_le_updata_not_accepted_flag
-0x4b5d mem_le_normal_lap
-0x4b63 mem_le_switch_adv_flag
-0x4b64 mem_le_switch_adv_timer
-0x4b65 mem_le_switch_adv_count
-0x4b66 mem_mouse_start_discovery_enable
-0x4b67 mem_mouse_le_adv_start
-0x4b68 mem_mouse_send_secutiry_request_timer
-0x4b69 mem_le_send_security_request_flag
-0x4b6a mem_mouse_le_bb_connected_flag
-0x4b6b mem_mouse_flash_start_temp
-0x4b6b mem_random_addr_increase_count
-0x4b6d mem_mouse_long_button_select_device
-0x4b6e mem_eeprom_init_flag
-0x4b70 mem_mouse_fast_conn_flag
-0x4b71 mem_mouse_latest_mode
-0x4b72 mem_mouse_flash_end_temp
-0x4b72 mem_mouse_le_not_tx_disconn
-0x4b73 mem_24g_rxbuf
-0x4b95 mem_24g_txbuf
-0x4bb5 mem_24g_txpayload
-0x4bd7 mem_24g_rxpayload
-0x4bf7 mem_24g_rxdata_length
-0x4bf8 mem_24g_pid
-0x4bf9 mem_24g_datalen
-0x4bfa mem_24g_data_type
-0x4bfb mem_24g_txlen
-0x4bfc mem_24g_rx_window
-0x4bfe mem_24g_ensure
-0x4bff mem_24g_txfail_cnt
-0x4c01 mem_24g_get_ack_fail
-0x4c02 mem_24g_retry
-0x4c03 mem_24g_ch
-0x4c04 mem_24g_current_ch_number
-0x4c05 mem_24g_paring_addr
-0x4c09 mem_24g_pairing_sm
-0x4c0a mem_24g_ch_map1
-0x4c0e mem_24g_ch_map2
-0x4c12 mem_24g_ch_map3
-0x4c16 mem_24g_ch_map4
-0x4c1a mem_24g_tx_btclk
-0x4c1e mem_24g_interval
-0x4c1f mem_24g_interval_min
-0x4c20 mem_24g_interval_max
-0x4c21 mem_24g_addr
-0x4c25 mem_24g_abort_pac
-0x4c26 mem_24g_check_dongle_times
-0x4c28 mem_24g_enter_hibernate
-0x4c30 mem_24g_device_addr
-0x4c34 mem_24g_pac_index
-0x4c35 mem_24g_no_ack
-0x4c36 mem_24g_sta_crc
-0x4c39 mem_24g_last_crc
-0x4c3c mem_24g_sta_pid
-0x4c3d mem_24g_last_pid
-0x4c3e mem_24g_max_retry
-0x4c3f mem_24g_mode
-0x4c40 mem_24g_rxdata_temp
-0x4c62 mem_24g_rx_addr
-0x4c66 mem_dongle_mode_init
-0x4c67 mem_dongle_work_mode
-0x4c68 mem_dongle_ms_bind_step
-0x4c69 mem_dongle_kb_bind_step
-0x4c6a mem_dongle_bind_device_status
-0x4c6b mem_24g_bind_payload
-0x4c73 mem_24g_abort_packet
-0x4c74 mem_24g_rf_laststa
-0x4c75 mem_24g_hop_btclk
-0x4c79 mem_24g_hop_interval
-0x4c7a mem_24g_mode_switch
-0x4c7b mem_24g_ackpayload_enable
-0x4c7c mem_24g_hop_packet
-0x4c7d mem_24g_pair_mode
-0x4c7e mem_24g_nodata_timer_enable
-0x4c7f mem_24g_time_slice
-0x4c80 mem_24g_kb_data_sta_data
-0x4c88 mem_24g_kb_data_last_data
-0x4c90 mem_24g_kb_multikey_sta_data
-0x4c93 mem_24g_kb_multikey_last_data
-0x4c96 mem_24g_kb_blank_data_enable
-0x4c97 mem_24g_kb_mul_blank_data_enable
-0x4c98 mem_24g_ms_blank_data_enable
-0x4c99 mem_24g_kb_addr
-0x4c9d mem_24g_ms_addr
-0x4ca1 mem_24g_dg_last_ch
-0x4ca2 mem_24g_dg_ch_number
-0x4ca3 mem_24g_dg_config_ch_once
-0x4ca4 mem_24g_kb_last_ch
-0x4ca5 mem_24g_kb_ch_number
-0x4ca6 mem_24g_kb_config_ch_once
-0x4ca7 mem_24g_ms_last_ch
-0x4ca8 mem_24g_ms_ch_number
-0x4ca9 mem_24g_ms_config_ch_once
-0x4caa mem_24g_syncword
-0x4cac mem_24g_syncword_crc8
-0x4cad mem_24g_get_syncword_crc8
-0x4cae mem_24g_ota_sta_pid
-0x4cb0 mem_tx_power_temp
-0x4cb1 mem_rssi_hex
-0x4cb2 mem_rssi_noise_avg
-0x4cb3 mem_rssi_noise_index
-0x4cb4 mem_rssi_signal_index
-0x4cb5 mem_rssi_noise_dg_avg
-0x4cb6 mem_rssi_noise_kb_avg
-0x4cb7 mem_rssi_noise_ms_avg
-0x4cb8 mem_rssi_noise_dg_index
-0x4cb9 mem_rssi_noise_kb_index
-0x4cba mem_rssi_noise_ms_index
-0x4cbb mem_rssi_signal_buf
-0x4cc3 mem_queue_ele_num
-0x4cc4 mem_queue_read
-0x4cc6 mem_queue_write
-0x4cc8 mem_queue_start
-0x4cc8 mem_data_ele0
-0x4ce8 mem_data_ele1
-0x4d08 mem_data_ele2
-0x4d28 mem_queue_end
-0x4d28 mem_queue_temp
-0x4d2a mem_cb_24g_data
-0x4d2c mem_24g_hop_fastly_cnt
-0x4d2d mem_24g_hop_pac_retry
-0x4d2e mem_24g_rf_hop_ch
-0x4d2f mem_24g_rf_last_sta
-0x4d30 mem_24g_rf_work_stage
-0x4d31 mem_24g_sync_cnt
-0x4d32 mem_power_ctrl_pac_succ_cnt
-0x4d33 mem_rssi_avg_received
-0x4d34 mem_rssi_hex_received
-0x4d35 mem_power_ctrl_level
-0x4d36 mem_seqi
-0x4d37 mem_24g_auto_paring_switch
-0x4d38 mem_24g_paccnt
-0x4d39 mem_24g_transmit_by_interrupt
-0x4d3a mem_24g_transmit_by_interrupt_exit_count
-0x4d3c mem_24g_transmit_by_interrupt_exit_count_init
-0x4d3e mem_24g_allpowerful_addr
-0x4d42 mem_24g_stop_g24_mode
-0x4d43 mem_24g_stop_g24_mode_timeout
-0x4d45 mem_24g_pair_current_ch_num
-0x4d46 mem_24g_powerful_current_ch_num
-0x4d47 mem_24g_search_dongle_action
-0x4d48 mem_24g_search_dongle_count
-0x4d49 mem_24g_search_dongle_ch
-0x4d4a mem_24g_search_dongle_delay_count
-0x4d4b mem_24g_conn_sm
Index: DPI_Switch/output/program.lis
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/output/program.lis	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/output/program.lis	(nonexistent)
@@ -1,36205 +0,0 @@
-include "bt_format "
-org 0x0000
-
-p_start:
-0000 20200040 branch p_patch_array 
-
-p_zcode:
-
-p_wake_from_power:
-0001 204003ac call p_mouse_data_init 
-0002 6800c1de fetch 1 ,mem_tx_power 
-0003 6000ccb0 store 1 ,mem_tx_power_temp 
-0004 2040070d call power_ctrl_pac_succ_cnt_init 
-0005 6800c685 fetch 1 ,mem_ui_button_timeout 
-0006 6000c6da store 1 ,mem_combination_ui_button_count 
-0007 204004e6 call p_mouse_bt_discovery_button_up_init 
-0008 20400324 call p_mouse_spi_init 
-0009 204007a3 call p_drawing_optima_init 
-000a 2040000d call p_mouse_cb_fuction 
-000b 20400020 call p_mouse_wakeup_from_power 
-000c 202002f8 branch p_mouse_setting_config 
-
-p_mouse_cb_fuction:
-000d 5800036c setarg p_mouse_g24_package_data 
-000e 60014d2a store 2 ,mem_cb_24g_data 
-000f 58000398 setarg p_mouse_le 
-0010 600141ef store 2 ,mem_cb_le_process 
-0011 5800064e setarg p_le_mouse_bb_event_connect_complete 
-0012 600141f9 store 2 ,mem_cb_att_write 
-0013 580003c7 setarg p_mouse_bt 
-0014 600141f1 store 2 ,mem_cb_bt_process 
-0015 580002c1 setarg p_mouse_before_lpm 
-0016 600141ed store 2 ,mem_cb_before_lpm 
-0017 5800040d setarg p_mouse_priority_bb_event 
-0018 600141f5 store 2 ,mem_cb_bb_event_process 
-0019 580003f0 setarg p_mouse_idle 
-001a 600141f3 store 2 ,mem_cb_idle_process 
-001b 58000446 setarg p_mouse_before_hibernate 
-001c 600141eb store 2 ,mem_cb_before_hibernate 
-001d 58000453 setarg p_mouse_bb_event_timer 
-001e 600141fd store 2 ,mem_cb_event_timer 
-001f 20600000 rtn 
-
-p_mouse_wakeup_from_power:
-0020 58000019 setarg 25 
-0021 60014d3c store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
-0022 2455802c ncall p_mouse_24g_transmit_by_interrupt_exit_count_max ,wake 
-0023 204002e9 call p_mouse_init_sunt 
-0024 2040044c call p_mouse_sensor_powerdown 
-
-p_mouse_wakeup_no_from_power:
-0025 6800c71f fetch 1 ,mem_reconn_times_init 
-0026 6000c71e store 1 ,mem_reconn_times 
-0027 680344a0 fetch 6 ,mem_le_lap 
-0028 60034b5d store 6 ,mem_le_normal_lap 
-0029 6800c241 fetch 1 ,mem_power_on_flag 
-002a c3810000 rtnbit1 2 
-002b 20200395 branch p_mouse_dpi_config_default 
-
-p_mouse_24g_transmit_by_interrupt_exit_count_max:
-002c 58000177 setarg 375 
-002d 60014d3c store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
-002e 20600000 rtn 
-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 c2840059 bbit1 8 ,pf_patch_ext 
-0041 c0008075 beq patch00_1 ,p_soft_reset_1 
-0042 c001007e beq patch00_2 ,p_soft_reset_2 
-0043 c0428779 beq patch10_5 ,p_shutdown_radio 
-0044 c044874a beq patch11_1 ,p_set_freq_tx 
-0045 c00d8668 beq patch03_3 ,p_page_wait_fhs_reply_ok 
-0046 c013066a beq patch04_6 ,p_role_switch_master 
-0047 c0240685 beq patch09_0 ,p_quit_connection_cont 
-0048 c025068c beq patch09_2 ,p_prepare_tx 
-0049 c0288695 beq patch0a_1 ,p_slave_conn_recv_packet 
-004a c02c8683 beq patch0b_1 ,p_process_dmh 
-004b c053869a beq patch14_7 ,p_lpm_dispatch 
-004c c05686b0 beq patch15_5 ,p_lpm_set_mult 
-004d c065b3e4 beq patch19_3 ,app_bt_start_reconnect + 3 
-004e c07486c1 beq patch1d_1 ,p_mouse_bb_disconnected 
-004f c0508087 beq patch14_1 ,p_init_param 
-0050 c058808c beq patch16_1 ,p_lpm_check_wake_lock 
-0051 c059009a beq patch16_2 ,p_g24_dispatch 
-0052 c06202ce beq patch18_4 ,p_device_init 
-0053 c0718546 beq patch1c_3 ,p_mouse_seting_dpi 
-0054 c0730568 beq patch1c_6 ,p_mouse_motion 
-0055 c0750595 beq patch1d_2 ,p_mouse_bb_event_discovery_btn 
-0056 c075859e beq patch1d_3 ,p_mouse_start_discovery 
-0057 c07605a0 beq patch1d_4 ,p_mouse_stop_discovery 
-0058 20202a8e branch loop 
-
-pf_patch_ext:
-0059 c01c85a4 beq patch27_1 ,p_le_slave_match 
-005a c02185ac beq patch28_3 ,p_le_next_adv_channel 
-005b c02505b2 beq patch29_2 ,p_le_receive_skip 
-005c c02b85b5 beq patch2a_7 ,p_le_update_param 
-005d c02c85b7 beq patch2b_1 ,p_le_update_channel_map 
-005e c03185b9 beq patch2c_3 ,p_le_prepare_tx 
-005f c03305e3 beq patch2c_6 ,p_le_parse 
-0060 c0338602 beq patch2c_7 ,p_le_parse_l2cap 
-0061 c035063a beq patch2d_2 ,p_le_adv_not_match 
-0062 c03b8645 beq patch2e_7 ,p_le_lpm_setmult 
-0063 c07d06f5 beq patch3f_2 ,p_check_51cmd_once_continue 
-0064 c00286c3 beq patch20_5 ,p_hid_rx_process 
-0065 c04006c5 beq patch30_0 ,p_parse_lmp_accepted 
-0066 c04106cf beq patch30_2 ,p_send_lmp 
-0067 c04406d1 beq patch31_0 ,p_process_conn_sm 
-0068 c0460655 beq patch31_4 ,p_twspi_reset 
-0069 c0468661 beq patch31_5 ,p_spid_init 
-006a 20202a8e branch loop 
-
-p_rssi_signal:
-006b 1fe22200 copy pdata ,rega 
-006c 6808ccb4 fetcht 1 ,mem_rssi_signal_index 
-006d 58004cbb setarg mem_rssi_signal_buf 
-006e 98408a00 iadd temp ,contw 
-006f 1a227e00 copy rega ,pdata 
-0070 e0a08000 istore 1 ,contw 
-0071 18408401 increase 1 ,temp 
-0072 18410407 and_into rssi_buf_len_signal ,temp 
-0073 6008ccb4 storet 1 ,mem_rssi_signal_index 
-0074 20600000 rtn 
-
-p_soft_reset_1:
-0075 d8a009ae arg mem_sp_state ,contw 
-0076 df20000c arg 12 ,loopcnt 
-0077 20407ed4 call clear_mem 
-0078 2040037d call p_mouse_le_txbuff_load 
-0079 20406a03 call rfcomm_init 
-007a 20405cf6 call init_lmp 
-007b 2455ac65 ncall lpm_disable_exen_output ,wake 
-007c 20407ccd call ui_init + 1 
-007d 2020200c branch soft_reset + 11 
-
-p_soft_reset_2:
-007e 2055b2e3 call app_lpm_init ,wake 
-007f 2040756a call publickey_init 
-0080 2055ab41 call lpm_recover_clk ,wake 
-
-p_sp_cal_loop:
-0081 204076dc call sp_calc_sequence 
-0082 6800c65a fetch 1 ,mem_ssp_enable 
-0083 203a2012 branch main_loop ,blank 
-0084 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
-0085 203a0081 branch p_sp_cal_loop ,blank 
-0086 20202012 branch main_loop 
-
-p_init_param:
-0087 58000a06 setarg param_le_version 
-0088 6001c510 store 3 ,mem_lmp_version 
-0089 58001d87 setarg param_le_subversion 
-008a 60014513 store 2 ,mem_lmp_version + 3 
-008b 20202aa2 branch init_param + 12 
-
-p_lpm_check_wake_lock:
-008c c6130000 rtnmark1 mark_24g 
-008d 6800cb27 fetch 1 ,mem_mouse_multi_led_state 
-008e 243a7fef nbranch disable_blank ,blank 
-008f 6800cb2d fetch 1 ,mem_mouse_multi_led_blink_count 
-0090 243a7fef nbranch disable_blank ,blank 
-0091 6800c79e fetch 1 ,mem_mouse_clear_sensor_data_flag 
-0092 203a7fef branch disable_blank ,blank 
-0093 6800c7c4 fetch 1 ,mem_mouse_le_conn_param_reject 
-0094 c000ffef beq le_lpm_disable ,disable_blank 
-0095 68014248 fetch 2 ,mem_sdp_remote_cid 
-0096 243a7fef nbranch disable_blank ,blank 
-0097 6800c806 fetch 1 ,mem_mouse_wheel_trigger 
-0098 243a7fef nbranch disable_blank ,blank 
-0099 20207ff1 branch enable_blank 
-
-p_g24_dispatch:
-009a c6930000 rtnmark0 mark_24g 
-009b 6800cd4b fetch 1 ,mem_24g_conn_sm 
-009c c28080b0 bbit1 state_24g_pair ,p_g24_pair_dispatch 
-009d c28100b2 bbit1 state_24g_reconn ,p_g24_reconn_dispatch 
-009e 6800cd39 fetch 1 ,mem_24g_transmit_by_interrupt 
-009f c00080b8 beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
-
-p_g24_transmit_process:
-00a0 20400180 call p_g24_txdata_prep 
-00a1 243400d3 nbranch p_g24_nodata_transmit ,user 
-00a2 704d4a0a jam 10 ,mem_24g_search_dongle_delay_count 
-00a3 2040015b call p_g24_rf_sta_check 
-
-p_g24_transmit_start:
-00a4 204001a3 call p_g24_transmit_packet 
-00a5 6800cc09 fetch 1 ,mem_24g_pairing_sm 
-00a6 c1ff8000 rtnne state_24g_pairing_success 
-00a7 2040071e call power_ctrl_start 
-00a8 204000b4 call g24_long_sleep_shorter_param_update 
-00a9 6800cb27 fetch 1 ,mem_mouse_multi_led_state 
-00aa c000836f beq on ,p_g24_transmit_by_interrupt_enable 
-
-p_g24_short_sleep:
-00ab 204000e5 call p_g24_lpm_wait 
-00ac 24740000 nrtn user 
-00ad 204002c8 call p_clear_wake 
-00ae 5800ec54 setarg 60500 
-00af 20202b93 branch lpm_dispatch_sleep 
-
-p_g24_pair_dispatch:
-00b0 7011c560 jam zcode_60 ,mem_zcode_temp_param0 
-00b1 2020077b branch p_zcode_entrance 
-
-p_g24_reconn_dispatch:
-00b2 7011c553 jam zcode_53 ,mem_zcode_temp_param0 
-00b3 2020077b branch p_zcode_entrance 
-
-g24_long_sleep_shorter_param_update:
-00b4 58017700 setarg g24_long_sleep_step1 
-00b5 6001cc28 store 3 ,mem_24g_enter_hibernate 
-00b6 704b4514 jam 20 ,mem_24g_long_sleep_param_update_timer 
-00b7 20600000 rtn 
-
-p_g24_transmit_by_interrupt:
-00b8 204002a1 call p_g24_timer_check 
-00b9 24740000 nrtn user 
-00ba 204000cd call p_g24_interval_calibrate 
-00bb 68014d3a fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
-00bc 1fe0fe01 increase 1 ,pdata 
-00bd 60014d3a store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-00be 68094d3c fetcht 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
-00bf 98467c00 isub temp ,null 
-00c0 204280c2 call p_g24_transmit_by_interrupt_exit ,zero 
-00c1 202000a0 branch p_g24_transmit_process 
-
-p_g24_transmit_by_interrupt_exit:
-00c2 704d3900 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
-00c3 58000000 setarg 0 
-00c4 60014d3a store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-00c5 58000019 setarg 25 
-00c6 60014d3c store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
-
-p_g24_interval_min:
-00c7 704c3400 jam 0 ,mem_24g_pac_index 
-00c8 6800cc1f fetch 1 ,mem_24g_interval_min 
-
-p_g24_interval_store:
-00c9 6000cc1e store 1 ,mem_24g_interval 
-00ca 20600000 rtn 
-
-p_g24_interval_max:
-00cb 6800cc20 fetch 1 ,mem_24g_interval_max 
-00cc 202000c9 branch p_g24_interval_store 
-
-p_g24_interval_calibrate:
-00cd 6800cc34 fetch 1 ,mem_24g_pac_index 
-00ce 1fe0fe01 increase 1 ,pdata 
-00cf 6000cc34 store 1 ,mem_24g_pac_index 
-00d0 c00200cb beq 4 ,p_g24_interval_max 
-00d1 c00280c7 beq 5 ,p_g24_interval_min 
-00d2 20600000 rtn 
-
-p_g24_nodata_transmit:
-00d3 6800cc25 fetch 1 ,mem_24g_abort_pac 
-00d4 205a00fd call p_g24_send_abort_packet ,blank 
-00d5 6800cb2d fetch 1 ,mem_mouse_multi_led_blink_count 
-00d6 247a0000 nrtn blank 
-00d7 6800cb27 fetch 1 ,mem_mouse_multi_led_state 
-00d8 c1008000 rtneq on 
-00d9 6800cd39 fetch 1 ,mem_24g_transmit_by_interrupt 
-00da c1008000 rtneq g24_tx_timer_int_enable 
-00db 2040010f call p_g24_search_dongle 
-00dc 6800cd49 fetch 1 ,mem_24g_search_dongle_ch 
-00dd c1820000 rtnne g24_ch_number 
-00de 704d4900 jam 0 ,mem_24g_search_dongle_ch 
-
-p_g24_long_sleep:
-00df 204000e5 call p_g24_lpm_wait 
-00e0 24740000 nrtn user 
-00e1 6801cc28 fetch 3 ,mem_24g_enter_hibernate 
-00e2 20407f49 call clk2lpo 
-00e3 600a415b storet 4 ,mem_sleep_counter 
-00e4 20202b2a branch lpm_sleep 
-
-p_g24_lpm_wait:
-00e5 78347c00 enable user 
-00e6 20402afa call lpo_calibration 
-00e7 6801c16f fetch 3 ,mem_clks_per_lpo 
-00e8 203a7fe9 branch disable_user ,blank 
-00e9 6800c091 fetch 1 ,mem_lpm_mode 
-00ea 203a7fe9 branch disable_user ,blank 
-00eb 6800cd39 fetch 1 ,mem_24g_transmit_by_interrupt 
-00ec c000ffe9 beq g24_tx_timer_int_enable ,disable_user 
-
-p_mouse_setgpio_lpm:
-00ed 204002cb call p_mouse_set_sdio_high 
-00ee 204002c8 call p_clear_wake 
-
-p_mouse_setgpio_hibernate:
-00ef 20403ebf call mouse_lpm_before_common 
-00f0 204002fa call p_flash_ncs_disable 
-00f1 68120070 hfetch 4 ,core_gpio_oe0 
-00f2 681a0078 hfetcht 4 ,core_gpio_pu0 
-00f3 98418400 ior temp ,temp 
-00f4 18440400 invert temp ,temp 
-00f5 601a007c hstoret 4 ,core_gpio_pd0 
-00f6 6810807d hfetch 1 ,core_gpio_pd1 
-00f7 793ffe02 set0 2 ,pdata 
-00f8 6010807d hstore 1 ,core_gpio_pd1 
-00f9 6810807e hfetch 1 ,core_gpio_pd2 
-00fa 793ffe06 set0 6 ,pdata 
-00fb 6010807e hstore 1 ,core_gpio_pd2 
-00fc 2020053c branch p_mouse_multi_led_gpio_set_float 
-
-p_g24_send_abort_packet:
-00fd 704c2501 jam 1 ,mem_24g_abort_pac 
-
-p_g24_send_abort_packet1:
-00fe 704d2e00 jam 0 ,mem_24g_rf_hop_ch 
-00ff 20400133 call p_g24_transmit_rf_ctrl_clear 
-0100 6000cb95 store 1 ,mem_24g_txbuf 
-0101 58000000 setarg 0 
-0102 6003cb96 store 7 ,mem_24g_txbuf + 1 
-0103 68024c30 fetch 4 ,mem_24g_device_addr 
-0104 60024b9d store 4 ,mem_24g_txbuf + 8 
-0105 704bf90c jam 12 ,mem_24g_datalen 
-0106 6800cbfa fetch 1 ,mem_24g_data_type 
-0107 79207e03 set1 bit_abort ,pdata 
-0108 6000cbfa store 1 ,mem_24g_data_type 
-0109 20400183 call p_g24_txdata_enable_tx 
-010a 204001a3 call p_g24_transmit_packet 
-010b 2020071e branch power_ctrl_start 
-
-p_g24_search_dongle_init:
-010c 58000000 setarg 0 
-010d 6001cd47 store 3 ,mem_24g_search_dongle_action 
-010e 20600000 rtn 
-
-p_g24_search_dongle:
-010f 6800cd4a fetch 1 ,mem_24g_search_dongle_delay_count 
-0110 247a0000 nrtn blank 
-0111 6800cc25 fetch 1 ,mem_24g_abort_pac 
-0112 207a0000 rtn blank 
-
-p_g24_search_dongle_loop:
-0113 6800cd49 fetch 1 ,mem_24g_search_dongle_ch 
-0114 1fe0fe01 increase 1 ,pdata 
-0115 6000cd49 store 1 ,mem_24g_search_dongle_ch 
-0116 2040016e call p_g24_ch 
-0117 204000fe call p_g24_send_abort_packet1 
-0118 6800cd49 fetch 1 ,mem_24g_search_dongle_ch 
-0119 c0820113 bne g24_ch_number ,p_g24_search_dongle_loop 
-011a 6800cd48 fetch 1 ,mem_24g_search_dongle_count 
-011b 1fe0fe01 increase 1 ,pdata 
-011c 6000cd48 store 1 ,mem_24g_search_dongle_count 
-011d c004011f beq g24_ch_poll_count ,p_g24_search_dongle_check 
-011e 20600000 rtn 
-
-p_g24_search_dongle_check:
-011f 704d4800 jam 0 ,mem_24g_search_dongle_count 
-0120 6800cd47 fetch 1 ,mem_24g_search_dongle_action 
-0121 c3800000 rtnbit1 g24_disconn_state 
-0122 79207e00 set1 g24_disconn_state ,pdata 
-0123 6000cd47 store 1 ,mem_24g_search_dongle_action 
-0124 58000708 setarg g24_disconn_nodata_timer 
-0125 600146b0 store 2 ,mem_mouse_no_data_timer 
-0126 2020044c branch p_mouse_sensor_powerdown 
-
-p_g24_search_dongle_success:
-0127 6800cc25 fetch 1 ,mem_24g_abort_pac 
-0128 203a010c branch p_g24_search_dongle_init ,blank 
-0129 704d4800 jam 0 ,mem_24g_search_dongle_count 
-012a 704d4904 jam g24_ch_number ,mem_24g_search_dongle_ch 
-012b 6800cd47 fetch 1 ,mem_24g_search_dongle_action 
-012c c4000000 rtnbit0 g24_disconn_state 
-012d 793ffe00 set0 g24_disconn_state ,pdata 
-012e 6000cd47 store 1 ,mem_24g_search_dongle_action 
-012f 20403f8d call mouse_no_data_timer_init 
-0130 202003ee branch p_mouse_init_sensor_reset 
-
-p_g24_transmit_rf_sta_init:
-0131 704d2f01 jam 1 ,mem_24g_rf_last_sta 
-0132 704d3100 jam 0 ,mem_24g_sync_cnt 
-
-p_g24_transmit_rf_ctrl_clear:
-0133 6800cbfa fetch 1 ,mem_24g_data_type 
-0134 1fe17e07 and_into bits_data ,pdata 
-0135 6000cbfa store 1 ,mem_24g_data_type 
-0136 20600000 rtn 
-
-p_g24_hop_ch_enable:
-0137 6800cbfa fetch 1 ,mem_24g_data_type 
-0138 79207e04 set1 bit_hop ,pdata 
-0139 6000cbfa store 1 ,mem_24g_data_type 
-013a 6000cbb5 store 1 ,mem_24g_txpayload 
-013b 20600000 rtn 
-
-p_g24_hop_ch_disable:
-013c 6800cbfa fetch 1 ,mem_24g_data_type 
-013d 793ffe04 set0 bit_hop ,pdata 
-013e 6000cbfa store 1 ,mem_24g_data_type 
-013f 6000cbb5 store 1 ,mem_24g_txpayload 
-0140 20400714 call power_ctrl_pac_succ_decrs 
-0141 2020016e branch p_g24_ch 
-
-p_g24_rf_hop_attemp_again:
-0142 6800cd2e fetch 1 ,mem_24g_rf_hop_ch 
-0143 c0808133 bne 1 ,p_g24_transmit_rf_ctrl_clear 
-
-p_g24_rf_hop_fastly:
-0144 6800cd2c fetch 1 ,mem_24g_hop_fastly_cnt 
-0145 1fe0fe01 increase 1 ,pdata 
-0146 6000cd2c store 1 ,mem_24g_hop_fastly_cnt 
-0147 c002014b beq 4 ,p_g24_rf_hop_fastly_exit 
-0148 2040016e call p_g24_ch 
-0149 704c3e02 jam 2 ,mem_24g_max_retry 
-014a 202001a3 branch p_g24_transmit_packet 
-
-p_g24_rf_hop_fastly_exit:
-014b 20400714 call power_ctrl_pac_succ_decrs 
-014c 704d2c00 jam 0 ,mem_24g_hop_fastly_cnt 
-014d 20200133 branch p_g24_transmit_rf_ctrl_clear 
-
-p_g24_transmit_hop_pac_succ_wo_hop:
-014e 704d3102 jam 2 ,mem_24g_sync_cnt 
-
-p_g24_transmit_hop_pac_succ:
-014f 704d2f01 jam 1 ,mem_24g_rf_last_sta 
-0150 704d2e00 jam 0 ,mem_24g_rf_hop_ch 
-0151 20200133 branch p_g24_transmit_rf_ctrl_clear 
-
-p_g24_transmit_succ_rf_config:
-0152 6800cd30 fetch 1 ,mem_24g_rf_work_stage 
-0153 c001814f beq 3 ,p_g24_transmit_hop_pac_succ 
-0154 6800cbfa fetch 1 ,mem_24g_data_type 
-0155 2fec0004 isolate0 bit_hop ,pdata 
-0156 20208131 branch p_g24_transmit_rf_sta_init ,true 
-0157 6800cd30 fetch 1 ,mem_24g_rf_work_stage 
-0158 c000814e beq 1 ,p_g24_transmit_hop_pac_succ_wo_hop 
-0159 c001014f beq 2 ,p_g24_transmit_hop_pac_succ 
-015a 20600000 rtn 
-
-p_g24_rf_sta_check:
-015b 6800cc09 fetch 1 ,mem_24g_pairing_sm 
-015c c1ff8000 rtnne state_24g_pairing_success 
-015d 20400160 call p_g24_rf_laststa_synccnt_check 
-015e 24560168 ncall p_g24_rf_sync_cnt_check ,user2 
-015f 20600000 rtn 
-
-p_g24_rf_laststa_synccnt_check:
-0160 78567c00 disable user2 
-0161 6800cd2f fetch 1 ,mem_24g_rf_last_sta 
-0162 c1808000 rtnne 1 
-0163 6800cd31 fetch 1 ,mem_24g_sync_cnt 
-0164 c1800000 rtnne 0 
-0165 704d3001 jam 1 ,mem_24g_rf_work_stage 
-0166 704c3e04 jam 4 ,mem_24g_max_retry 
-0167 20207feb branch enable_user2 
-
-p_g24_rf_sync_cnt_check:
-0168 6800cd31 fetch 1 ,mem_24g_sync_cnt 
-0169 203a017b branch p_g24_rf_hop_attemp ,blank 
-016a 1fe0ffff increase -1 ,pdata 
-016b 6000cd31 store 1 ,mem_24g_sync_cnt 
-016c 704d3002 jam 2 ,mem_24g_rf_work_stage 
-016d 704c3e04 jam 4 ,mem_24g_max_retry 
-
-p_g24_ch:
-016e 6808cc04 fetcht 1 ,mem_24g_current_ch_number 
-016f 6800cc21 fetch 1 ,mem_24g_addr 
-0170 1fe17e03 and_into 0x03 ,pdata 
-0171 1fefa204 mul32 pdata ,4 ,rega 
-0172 58004c0a setarg mem_24g_ch_map1 
-0173 9a20fe00 iadd rega ,pdata 
-0174 98408c00 iadd temp ,contr 
-0175 e8c08000 ifetch 1 ,contr 
-0176 6000cc03 store 1 ,mem_24g_ch 
-0177 18408401 increase 1 ,temp 
-0178 18410403 and_into 3 ,temp 
-0179 6008cc04 storet 1 ,mem_24g_current_ch_number 
-017a 20600000 rtn 
-
-p_g24_rf_hop_attemp:
-017b 704d3003 jam 3 ,mem_24g_rf_work_stage 
-017c 6800cd2e fetch 1 ,mem_24g_rf_hop_ch 
-017d 243a0142 nbranch p_g24_rf_hop_attemp_again ,blank 
-017e 704c3e02 jam 2 ,mem_24g_max_retry 
-017f 2020016e branch p_g24_ch 
-
-p_g24_txdata_prep:
-0180 6800cc09 fetch 1 ,mem_24g_pairing_sm 
-0181 c0ff8205 bne state_24g_pairing_success ,p_g24_pairing_sm 
-
-p_g24_txdata_prep_packeage_data:
-0182 20400186 call p_g24_package_data 
-
-p_g24_txdata_enable_tx:
-0183 20400225 call p_g24_transmit_prep 
-0184 704bfe01 jam ensure_on_24g ,mem_24g_ensure 
-0185 20600000 rtn 
-
-p_g24_package_data:
-0186 68014d2a fetch 2 ,mem_cb_24g_data 
-0187 20407f9c call callback_func 
-0188 2034018c branch p_g24_accumulate_mouse_data ,user 
-0189 6803cb96 fetch 7 ,mem_24g_txbuf + 1 
-018a 207a0000 rtn blank 
-018b 20207fe7 branch enable_user 
-
-p_g24_accumulate_mouse_data:
-018c 20400389 call p_mouse_data_xy_release 
-018d 704c2500 jam 0 ,mem_24g_abort_pac 
-018e 1a20fe01 add rega ,1 ,pdata 
-018f 6000cbf9 store 1 ,mem_24g_datalen 
-0190 20400133 call p_g24_transmit_rf_ctrl_clear 
-0191 6000cb95 store 1 ,mem_24g_txbuf 
-0192 e8a88000 ifetcht 1 ,contw 
-0193 ea408000 ifetch 1 ,regb 
-0194 9841fe00 ior temp ,pdata 
-0195 e0a08000 istore 1 ,contw 
-0196 1a40a401 increase 1 ,regb 
-0197 ea420000 ifetch 4 ,regb 
-0198 e0a20000 istore 4 ,contw 
-0199 1a40a404 increase 4 ,regb 
-019a d8a04b9b arg mem_24g_txbuf + 6 ,contw 
-019b df200002 arg 2 ,loopcnt 
-
-p_g24_accumulation_loop:
-019c ea408000 ifetch 1 ,regb 
-019d e8a88000 ifetcht 1 ,contw 
-019e 9840fe00 iadd temp ,pdata 
-019f e0a08000 istore 1 ,contw 
-01a0 1a40a401 increase 1 ,regb 
-01a1 c200019c loop p_g24_accumulation_loop 
-01a2 20600000 rtn 
-
-p_g24_transmit_packet:
-01a3 704c0200 jam 0 ,mem_24g_retry 
-
-p_g24_transmit_loop:
-01a4 d9600d00 arg param_rx_setup ,timeup 
-01a5 34730200 until clkn_rt ,meet 
-01a6 204001be call p_g24_transmit_receive_ack 
-01a7 242c01cb nbranch p_g24_retransmit ,sync 
-01a8 243781cb nbranch p_g24_retransmit ,user3 
-01a9 20400127 call p_g24_search_dongle_success 
-01aa 204001b8 call p_g24_txbuf_clear 
-01ab 204001e8 call p_g24_ackpayload_parse 
-01ac 20400710 call power_ctrl_pac_succ_incrs 
-
-p_g24_transmit_next_packet:
-01ad 6800cbf8 fetch 1 ,mem_24g_pid 
-01ae 1fe0fe01 increase 1 ,pdata 
-01af 6000cbf8 store 1 ,mem_24g_pid 
-01b0 204001bb call p_g24_hop_enable_packet 
-01b1 6800cc09 fetch 1 ,mem_24g_pairing_sm 
-01b2 c0ff8207 bne state_24g_pairing_success ,p_g24_paring_mode_start 
-01b3 20400152 call p_g24_transmit_succ_rf_config 
-
-p_g24_transmit_abandon:
-01b4 58000000 setarg 0 
-01b5 60024bfe store 4 ,mem_24g_ensure 
-01b6 6000cd2d store 1 ,mem_24g_hop_pac_retry 
-01b7 20600000 rtn 
-
-p_g24_txbuf_clear:
-01b8 df200004 arg 4 ,loopcnt 
-01b9 d8a04b95 arg mem_24g_txbuf ,contw 
-01ba 20207ec6 branch memset0 
-
-p_g24_hop_enable_packet:
-01bb 6800cbfa fetch 1 ,mem_24g_data_type 
-01bc c282013c bbit1 bit_hop ,p_g24_hop_ch_disable 
-01bd 20600000 rtn 
-
-p_g24_transmit_receive_ack:
-01be 7857fc00 disable user3 
-01bf 20400280 call p_g24_transmit 
-01c0 18002a00 force 0 ,radio_ctrl 
-01c1 68024c21 fetch 4 ,mem_24g_addr 
-01c2 98001200 iforce access 
-01c3 68088017 fetcht 1 ,mem_last_freq 
-01c4 2040291f call set_freq_rx 
-01c5 20402924 call rf_rx_enable 
-01c6 20400240 call p_g24_receive_rxon 
-01c7 20578279 call p_g24_end_of_packet ,user3 
-01c8 20600000 rtn 
-
-p_g24_transmit_no_ack:
-01c9 20400279 call p_g24_end_of_packet 
-01ca 202001ad branch p_g24_transmit_next_packet 
-
-p_g24_retransmit:
-01cb 6800cc25 fetch 1 ,mem_24g_abort_pac 
-01cc 247a0000 nrtn blank 
-01cd 68014bff fetch 2 ,mem_24g_txfail_cnt 
-01ce 1fe0fe01 increase 1 ,pdata 
-01cf 60014bff store 2 ,mem_24g_txfail_cnt 
-01d0 6800cc00 fetch 1 ,mem_24g_txfail_cnt + 1 
-01d1 c2822dd4 bbit1 4 ,g24_stop_24g_mode 
-01d2 6800cc09 fetch 1 ,mem_24g_pairing_sm 
-01d3 c0ff81d6 bne state_24g_pairing_success ,p_g24_tx_paring_retry 
-01d4 204001de call p_g24_tx_hop_ch_process 
-01d5 202001a4 branch p_g24_transmit_loop 
-
-p_g24_tx_paring_retry:
-01d6 6800cbff fetch 1 ,mem_24g_txfail_cnt 
-01d7 c1ff8000 rtnne 0xff 
-
-p_g24_tx_attempt_fail:
-01d8 58000000 setarg 0 
-01d9 60014bff store 2 ,mem_24g_txfail_cnt 
-01da 20202dd4 branch g24_stop_24g_mode 
-
-p_g24_tx_fast_hop:
-01db 20400741 call power_ctrl_txpower_incrs 
-01dc 20400714 call power_ctrl_pac_succ_decrs 
-01dd 2020016e branch p_g24_ch 
-
-p_g24_tx_hop_ch_process:
-01de 6800cc02 fetch 1 ,mem_24g_retry 
-01df 1fe67c0b sub pdata ,11 ,null 
-01e0 242101db nbranch p_g24_tx_fast_hop ,positive 
-01e1 1fe0fe01 increase 1 ,pdata 
-01e2 6000cc02 store 1 ,mem_24g_retry 
-01e3 c0010137 beq 2 ,p_g24_hop_ch_enable 
-01e4 c003013c beq 6 ,p_g24_hop_ch_disable 
-01e5 c0040137 beq 8 ,p_g24_hop_ch_enable 
-01e6 c006013c beq 12 ,p_g24_hop_ch_disable 
-01e7 20600000 rtn 
-
-p_g24_ackpayload_parse:
-01e8 20400218 call p_g24_read_len_pid_crc 
-01e9 6800cbf7 fetch 1 ,mem_24g_rxdata_length 
-01ea 207a0000 rtn blank 
-01eb 98007200 iforce loopcnt 
-01ec d8c04b75 arg mem_24g_rxbuf + 2 ,contr 
-01ed d8a04bd7 arg mem_24g_rxpayload ,contw 
-01ee 20207f01 branch memcpy 
-
-p_g24_pair_init:
-01ef 7041de00 jam tx_power_0db ,mem_tx_power 
-01f0 704bf800 jam 0 ,mem_24g_pid 
-01f1 704c034e jam g24_pair_ch ,mem_24g_ch 
-01f2 68024c05 fetch 4 ,mem_24g_paring_addr 
-
-p_g24_update_addr_and_synccrc8:
-01f3 60024c21 store 4 ,mem_24g_addr 
-
-p_g24_syncword_crc8:
-01f4 da200000 arg 0 ,rega 
-01f5 df200004 arg 4 ,loopcnt 
-01f6 d8c04c21 arg mem_24g_addr ,contr 
-
-p_g24_syncword_crc8_loop:
-01f7 e8c08000 ifetch 1 ,contr 
-01f8 9a20a200 iadd rega ,rega 
-01f9 c20001f7 loop p_g24_syncword_crc8_loop 
-01fa 1a227e00 copy rega ,pdata 
-01fb 60014caa store 2 ,mem_24g_syncword 
-01fc 6800ccaa fetch 1 ,mem_24g_syncword 
-01fd 6808ccab fetcht 1 ,mem_24g_syncword + 1 
-01fe 9840fe00 iadd temp ,pdata 
-01ff 6000ccac store 1 ,mem_24g_syncword_crc8 
-0200 20600000 rtn 
-
-p_g24_start_pairing_sm1:
-0201 79200026 set1 mark_24g ,mark 
-0202 204001ef call p_g24_pair_init 
-
-p_g24_set_pairing_sm_1:
-0203 704c0901 jam state_24g_pairing_1 ,mem_24g_pairing_sm 
-0204 20600000 rtn 
-
-p_g24_pairing_sm:
-0205 7011c590 jam zcode_90 ,mem_zcode_temp_param0 
-0206 2020077b branch p_zcode_entrance 
-
-p_g24_paring_mode_start:
-0207 2040070d call power_ctrl_pac_succ_cnt_init 
-
-p_g24_paring_mode:
-0208 7011c591 jam zcode_91 ,mem_zcode_temp_param0 
-0209 2020077b branch p_zcode_entrance 
-
-p_g24_start_24g_mode:
-020a 7011c540 jam zcode_40 ,mem_zcode_temp_param0 
-020b 2020077b branch p_zcode_entrance 
-
-p_g24_auto_pair_start:
-020c 7011c541 jam zcode_41 ,mem_zcode_temp_param0 
-020d 2020077b branch p_zcode_entrance 
-
-p_g24_check_51cmd_stop_24g:
-020e 793f8026 set0 mark_24g ,mark 
-020f 704d4b00 jam state_24g_stop ,mem_24g_conn_sm 
-0210 204053ce call le_disable 
-
-p_mouse_disable_g24_pairing_flag:
-0211 d8e00003 arg mosue_24g_pairing_flag ,queue 
-0212 202043d2 branch mouse_disable_function_flag 
-
-p_g24_put_data_in_buff:
-0213 6008cbf9 storet 1 ,mem_24g_datalen 
-0214 18427200 copy temp ,loopcnt 
-0215 d8a04b95 arg mem_24g_txbuf ,contw 
-0216 1a220c00 copy rega ,contr 
-0217 20207f01 branch memcpy 
-
-p_g24_read_len_pid_crc:
-0218 6800cb74 fetch 1 ,mem_24g_rxbuf + 1 
-0219 1fe97e00 rshift3 pdata ,pdata 
-021a 6000cbf7 store 1 ,mem_24g_rxdata_length 
-021b 1fe0fe01 increase 1 ,pdata 
-021c d8c04b74 arg mem_24g_rxbuf + 1 ,contr 
-021d 98c08c00 iadd contr ,contr 
-021e e8c18000 ifetch 3 ,contr 
-021f 6001cc36 store 3 ,mem_24g_sta_crc 
-0220 6800cb74 fetch 1 ,mem_24g_rxbuf + 1 
-0221 1fe37e00 rshift pdata ,pdata 
-0222 1fe17e03 and pdata ,0x03 ,pdata 
-0223 6000cc3c store 1 ,mem_24g_sta_pid 
-0224 20600000 rtn 
-
-p_g24_transmit_prep:
-0225 6800cbf9 fetch 1 ,mem_24g_datalen 
-0226 1fe0fe02 increase 2 ,pdata 
-0227 6000cbfb store 1 ,mem_24g_txlen 
-0228 6800cbfa fetch 1 ,mem_24g_data_type 
-0229 6000cbb5 store 1 ,mem_24g_txpayload 
-022a 6800cbf9 fetch 1 ,mem_24g_datalen 
-022b 1fe9fe00 lshift3 pdata ,pdata 
-022c 6808cbf8 fetcht 1 ,mem_24g_pid 
-022d 18410403 and temp ,0x03 ,temp 
-022e 18438400 lshift temp ,temp 
-022f 9841fe00 ior temp ,pdata 
-0230 6808cc35 fetcht 1 ,mem_24g_no_ack 
-0231 9840fe00 iadd temp ,pdata 
-0232 e0a08000 istore 1 ,contw 
-0233 6800cbf9 fetch 1 ,mem_24g_datalen 
-0234 98007200 iforce loopcnt 
-0235 d8c04b95 arg mem_24g_txbuf ,contr 
-0236 20207f01 branch memcpy 
-
-p_g24_prep:
-0237 7844fc00 disable enable_crc 
-0238 7843fc00 disable enable_white 
-0239 58555555 setarg 0x555555 
-023a 98001e00 iforce crc24_init 
-023b 6800cc03 fetch 1 ,mem_24g_ch 
-023c 1fed8400 reverse pdata ,temp 
-023d 79200401 set1 1 ,temp 
-023e 18431c00 rshift temp ,white_init 
-023f 20600000 rtn 
-
-p_g24_receive_rxon:
-0240 20400237 call p_g24_prep 
-0241 7857fc00 disable user3 
-0242 7826fc00 enable decode_fec0 
-0243 7830fc00 enable is_rx 
-0244 78507c00 disable is_tx 
-0245 78287c00 enable swfine 
-0246 68014bfc fetch 2 ,mem_24g_rx_window 
-0247 98003600 iforce stop_watch 
-0248 37c18400 correlate null ,timeout 
-0249 242c0279 nbranch p_g24_sync_timeout ,sync 
-024a 7846fc00 disable decode_fec0 
-024b 7825fc00 enable decode_fec1 
-024c 7823fc00 enable enable_white 
-024d 7824fc00 enable enable_crc 
-024e 20400276 call p_g24_receive_byte 
-024f 6000ccad store 1 ,mem_24g_get_syncword_crc8 
-0250 6808ccac fetcht 1 ,mem_24g_syncword_crc8 
-0251 98467c00 isub temp ,null 
-0252 24228279 nbranch p_g24_end_of_packet ,zero 
-0253 20400276 call p_g24_receive_byte 
-0254 6000cb73 store 1 ,mem_24g_rxbuf 
-0255 6800cb73 fetch 1 ,mem_24g_rxbuf 
-0256 6808cbfa fetcht 1 ,mem_24g_data_type 
-0257 a8400e00 icompare bits_data ,temp 
-0258 24208279 nbranch p_g24_end_of_packet ,true 
-
-p_g24_receive_skip:
-0259 20400276 call p_g24_receive_byte 
-025a e0a08000 istore 1 ,contw 
-025b 1fe97e00 rshift3 pdata ,pdata 
-025c 1fe1721f and pdata ,0x1f ,loopcnt 
-025d 20228261 branch p_g24rx_nopayload ,zero 
-
-p_g24rx_loop:
-025e 20400276 call p_g24_receive_byte 
-025f e0a08000 istore 1 ,contw 
-0260 c200025e loop p_g24rx_loop 
-
-p_g24rx_nopayload:
-0261 18a22200 copy contw ,rega 
-0262 20400276 call p_g24_receive_byte 
-0263 6000cd34 store 1 ,mem_rssi_hex_received 
-0264 1a220a00 copy rega ,contw 
-0265 09800018 parse demod ,bucket ,24 
-0266 78287c00 enable swfine 
-0267 db600664 arg param_sifs ,stop_watch 
-0268 1fef7e00 rshift32 pdata ,pdata 
-0269 1ff17e00 rshift16 pdata ,pdata 
-026a e0a18000 istore 3 ,contw 
-026b 7845fc00 disable decode_fec1 
-026c 20230279 branch p_g24_end_of_packet ,crc_failed 
-026d 7837fc00 enable user3 
-026e 68008017 fetch 1 ,mem_last_freq 
-026f 1fe0a200 add pdata ,0 ,rega 
-0270 20402981 call rf_write_freq 
-0271 7846fc00 disable decode_fec0 
-0272 20402918 call set_sync_on 
-0273 6800cd34 fetch 1 ,mem_rssi_hex_received 
-0274 2040006b call p_rssi_signal 
-0275 20600000 rtn 
-
-p_g24_receive_byte:
-0276 09800008 parse demod ,bucket ,8 
-0277 19897e00 rshift3 pwindow ,pdata 
-0278 20600000 rtn 
-
-p_g24_sync_timeout:
-
-p_g24_end_of_packet:
-0279 784dfc00 disable encode_fec1 
-027a 7845fc00 disable decode_fec1 
-027b 2040264d call end_of_packet 
-027c 20600000 rtn 
-
-p_g24_set_freq_tx:
-027d 20402918 call set_sync_on 
-027e 6808cc03 fetcht 1 ,mem_24g_ch 
-027f 20202933 branch set_freq_tx 
-
-p_g24_transmit:
-0280 204053c4 call le_enable 
-0281 68024c21 fetch 4 ,mem_24g_addr 
-0282 98001200 iforce access 
-0283 20400237 call p_g24_prep 
-0284 2040027d call p_g24_set_freq_tx 
-0285 79202a00 set1 txgfsk ,radio_ctrl 
-0286 782efc00 enable encode_fec0 
-0287 78307c00 enable is_tx 
-0288 7850fc00 disable is_rx 
-0289 19317e00 rshift16 access ,pdata 
-028a 1fecfe00 rshift8 pdata ,pdata 
-028b 1ff1fe00 rshift4 pdata ,pdata 
-028c 08008628 inject mod ,40 
-028d 784efc00 disable encode_fec0 
-028e 782dfc00 enable encode_fec1 
-028f 7823fc00 enable enable_white 
-0290 7824fc00 enable enable_crc 
-0291 6800ccac fetch 1 ,mem_24g_syncword_crc8 
-0292 08008608 inject mod ,8 
-0293 6800cbfb fetch 1 ,mem_24g_txlen 
-0294 98007200 iforce loopcnt 
-0295 d8c04bb5 arg mem_24g_txpayload ,contr 
-
-p_g24tr_loop:
-0296 e8c08000 ifetch 1 ,contr 
-0297 08008608 inject mod ,8 
-0298 c2000296 loop p_g24tr_loop 
-0299 78247c00 enable enable_parity 
-029a 08008618 inject mod ,24 
-029b 78447c00 disable enable_parity 
-029c 37d38200 until null ,tx_clear 
-029d 20000064 nop 100 
-029e 784efc00 disable encode_fec0 
-029f 784dfc00 disable encode_fec1 
-02a0 20600000 rtn 
-
-p_g24_timer_check:
-02a1 20407fe9 call disable_user 
-02a2 680a4c1a fetcht 4 ,mem_24g_tx_btclk 
-02a3 1c427e00 copy clkn_bt ,pdata 
-02a4 98467c00 isub temp ,null 
-02a5 24412d18 ncall g24_timer_timeout ,positive 
-02a6 1fe22400 copy pdata ,regb 
-02a7 68024c1a fetch 4 ,mem_24g_tx_btclk 
-02a8 6808cc1e fetcht 1 ,mem_24g_interval 
-02a9 98408400 iadd temp ,temp 
-02aa 1a427e00 copy regb ,pdata 
-02ab 98467c00 isub temp ,null 
-02ac 24610000 nrtn positive 
-02ad 793ffe1c set0 28 ,pdata 
-02ae 60024c1a store 4 ,mem_24g_tx_btclk 
-02af 20207fe7 branch enable_user 
-
-p_rssi_average:
-02b0 d8400000 arg 0 ,temp 
-02b1 df200008 arg rssi_buf_len_signal + 1 ,loopcnt 
-02b2 1a220c00 copy rega ,contr 
-
-p_rssi_average_loop:
-02b3 e8c08000 ifetch 1 ,contr 
-02b4 98408400 iadd temp ,temp 
-02b5 c20002b3 loop p_rssi_average_loop 
-02b6 18497e00 rshift3 temp ,pdata 
-02b7 1fe20400 copy pdata ,temp 
-02b8 c6930000 rtnmark0 mark_24g 
-02b9 1fe6fc0a div pdata ,10 
-02ba 20407f86 call wait_div_end 
-02bb 1807fe00 quotient pdata 
-02bc 1ff27e00 lshift4 pdata ,pdata 
-02bd 18070400 remainder temp 
-02be 98418400 ior temp ,temp 
-02bf 20600000 rtn 
-02c0 20600000 rtn 
-
-p_mouse_before_lpm:
-02c1 c6130000 rtnmark1 mark_24g 
-02c2 20400373 call p_mouse_le_txbuff_save 
-02c3 204000ed call p_mouse_setgpio_lpm 
-02c4 6800c040 fetch 1 ,mem_context 
-02c5 c30002c8 bbit0 state_inconn ,p_clear_wake 
-02c6 680080a0 fetch 1 ,mem_lpm_current_mult 
-02c7 247a0000 nrtn blank 
-
-p_clear_wake:
-02c8 58000000 setarg 0 
-02c9 600400a1 store 8 ,mem_gpio_wakeup_low 
-02ca 20600000 rtn 
-
-p_mouse_set_sdio_high:
-02cb 6800cb00 fetch 1 ,mem_mouse_init_sensor_reset_flag 
-02cc 207a0000 rtn blank 
-02cd 20200546 branch p_mouse_seting_sensor_type 
-
-p_device_init:
-02ce 20403416 call app_lpm_mult_enable 
-02cf 204074b9 call enable_authrom 
-02d0 203582df branch p_device_wake_from_lpm ,wake 
-
-p_device_wake_from_power:
-02d1 20400001 call p_wake_from_power 
-
-p_mouse_check_reconn_target:
-02d2 204002e0 call p_mouse_tx_power_init 
-02d3 6800c720 fetch 1 ,mem_device_flag 
-02d4 c0010365 beq mode_24g_device ,p_mouse_connect_24g_mode 
-02d5 6800c210 fetch 1 ,mem_xrecord_mode 
-02d6 c01982e3 beq rec_3_mode ,p_mouse3_0_check_reconn_target 
-02d7 c01a02e7 beq rec_4_mode ,p_mouse4_0_check_reconn_target 
-02d8 6800cb70 fetch 1 ,mem_mouse_fast_conn_flag 
-02d9 1fe67cff sub pdata ,0xff ,null 
-02da 20428359 call p_mouse_fast_conn_le_switch_adv ,zero 
-02db 204004f9 call p_mouse_fast_conn_adv_switch_timer_reinit 
-02dc 70016d06 jam 6 ,mem_connection_options 
-02dd 2040047e call p_mouse_check_fast_conn_adv_start 
-02de 20207ddd branch check_51cmd_start_discovery 
-
-p_device_wake_from_lpm:
-02df 20200324 branch p_mouse_spi_init 
-
-p_mouse_tx_power_init:
-02e0 6800ccb0 fetch 1 ,mem_tx_power_temp 
-02e1 6000c1de store 1 ,mem_tx_power 
-02e2 20600000 rtn 
-
-p_mouse3_0_check_reconn_target:
-02e3 2040053f call p_mouse_mode_bt_device1_multi_led_blink3s 
-02e4 680341d0 fetch 6 ,mem_hci_plap 
-02e5 203a33eb branch app_bt_start_discovery_short ,blank 
-02e6 20204274 branch mouse3_0_check_reconn_target + 3 
-
-p_mouse4_0_check_reconn_target:
-02e7 7011c511 jam zcode_11 ,mem_zcode_temp_param0 
-02e8 2020077b branch p_zcode_entrance 
-
-p_mouse_init_sunt:
-02e9 20400324 call p_mouse_spi_init 
-02ea 204040c0 call mouse_spi_sdio_gpio_pollup 
-
-p_mouse_init_sensor:
-02eb 204040d9 call mouse_read_sensor_id 
-02ec c01802f1 beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
-02ed c01882f3 beq p3065_id1 ,p_mouse_p3065_init_param 
-02ee 204040d1 call mouse_twspi_reset 
-02ef 200003e8 nop 1000 
-02f0 202002eb branch p_mouse_init_sensor 
-
-p_mouse_init_p32xx_id2_judge:
-02f1 2040038e call p_mouse_sensor_poweron 
-02f2 202040e0 branch mouse_init_p32xx_id2_judge 
-
-p_mouse_p3065_init_param:
-02f3 2040038e call p_mouse_sensor_poweron 
-02f4 6800c6de fetch 1 ,mem_sensor_id2 
-02f5 c03840e8 beq p3065_xy_id2 ,mouse_p3065xy_init_param 
-02f6 7046e001 jam p3065 ,mem_config_sensor_type 
-02f7 20600000 rtn 
-
-p_mouse_setting_config:
-02f8 7011c580 jam zcode_80 ,mem_zcode_temp_param0 
-02f9 2020077b branch p_zcode_entrance 
-
-p_flash_ncs_disable:
-02fa 6808cb46 fetcht 1 ,mem_flash_ncs_gpio 
-02fb 20206825 branch gpio_out_inactive 
-
-p_spid_init_flash:
-02fc 70808640 jam 0x40 ,core_spid_ctrl 
-02fd 70808700 jam 0x0 ,core_spid_delay 
-02fe 68108081 hfetch 1 ,core_gpio_sel1 
-02ff 793ffe00 set0 0 ,pdata 
-0300 793ffe01 set0 1 ,pdata 
-0301 79207e03 set1 3 ,pdata 
-0302 793ffe04 set0 4 ,pdata 
-0303 60108081 hstore 1 ,core_gpio_sel1 
-0304 58000000 setarg 0 
-0305 600201f5 store 4 ,mem_spid_tbuf 
-0306 6810807f hfetch 1 ,core_gpio_pd3 
-0307 793ffe00 set0 0 ,pdata 
-0308 6010807f hstore 1 ,core_gpio_pd3 
-0309 20600000 rtn 
-
-p_mouse_load_flash_info_check:
-030a 20400352 call p_flash_release_deep_power_down 
-030b 20404423 call mouse_load_flash_flag 
-030c 68014778 fetch 2 ,mem_store_flag 
-030d d840aa55 arg eeprom_init_flag ,temp 
-030e 98467c00 isub temp ,null 
-030f 20228346 branch p_mouse_load_flash_device_info ,zero 
-0310 60094778 storet 2 ,mem_store_flag 
-0311 2040441c call mouse_ble_init_address 
-0312 6800c6e1 fetch 1 ,mem_config_sensor_motion 
-0313 6000c77a store 1 ,mem_mouse_dpi 
-0314 68024b4d fetch 4 ,mem_mouse_24g_addr_init 
-0315 6002477b store 4 ,mem_mouse_24g_addr 
-0316 60024c21 store 4 ,mem_24g_addr 
-
-p_mouse_store_flash_device_info:
-0317 20400352 call p_flash_release_deep_power_down 
-0318 20400326 call p_flash_erase_sector 
-0319 2040033d call p_mouse_information_flash_parameters 
-031a 20400332 call p_spid_write_flash 
-031b 20400329 call p_wait_flash_done 
-031c d8400007 arg 7 ,temp 
-031d da204b6b arg mem_mouse_flash_start_temp ,rega 
-031e da40005f arg mouse_user_data_offect ,regb 
-031f 6801c700 fetch 3 ,mem_flash_base 
-0320 9a40fe00 iadd regb ,pdata 
-0321 20400332 call p_spid_write_flash 
-0322 20400329 call p_wait_flash_done 
-0323 2040034c call p_flash_deep_power_down 
-
-p_mouse_spi_init:
-0324 70421276 jam 0x76 ,mem_spi_init_clk 
-0325 20203d36 branch mouse_spi_init 
-
-p_flash_erase_sector:
-0326 6801c700 fetch 3 ,mem_flash_base 
-0327 6001c232 store 3 ,mem_spi_write_addr 
-0328 2040652a call flash_erase_sector + 2 
-
-p_wait_flash_done:
-0329 580186a0 setarg 100000 
-032a 20402a8f call sleep 
-032b 2040650b call spid_unlock_flash 
-032c 580001fa setarg mem_spid_rbuf 
-032d 6011008c hstore 2 ,core_spid_rxaddr 
-032e 58000005 setarg flash_read_satus 
-032f 204064f3 call spid_read_reg 
-0330 c2800329 bbit1 flash_status_wip ,p_wait_flash_done 
-0331 20600000 rtn 
-
-p_spid_write_flash:
-0332 1fe22600 copy pdata ,regc 
-0333 1a227e00 copy rega ,pdata 
-0334 1fe0fffc increase -4 ,pdata 
-0335 1fe22400 copy pdata ,regb 
-0336 ea420000 ifetch 4 ,regb 
-0337 60024b48 store 4 ,mem_write_flash_head_temp 
-0338 1a627e00 copy regc ,pdata 
-0339 20406552 call spid_write_flash 
-033a 68024b48 fetch 4 ,mem_write_flash_head_temp 
-033b e2420000 istore 4 ,regb 
-033c 20600000 rtn 
-
-p_mouse_information_flash_parameters:
-033d 5800477f setarg mem_mouse_information_end 
-033e d8404720 arg mem_mouse_information_start ,temp 
-033f 98460400 isub temp ,temp 
-0340 6801c700 fetch 3 ,mem_flash_base 
-0341 da204720 arg mem_mouse_information_start ,rega 
-0342 20600000 rtn 
-
-p_mouse_read_flash:
-0343 20400352 call p_flash_release_deep_power_down 
-0344 2040033d call p_mouse_information_flash_parameters 
-0345 20206562 branch spid_read_flash 
-
-p_mouse_load_flash_device_info:
-0346 20400343 call p_mouse_read_flash 
-0347 2040035e call p_mouse_load_flash_user_data 
-0348 2040431a call mouse_select_reconn_device 
-0349 6802477b fetch 4 ,mem_mouse_24g_addr 
-034a 60024c21 store 4 ,mem_24g_addr 
-034b 20600000 rtn 
-
-p_flash_deep_power_down:
-034c 700aa2b9 jam flash_command_deep_power_down ,mem_temp 
-
-p_spid_write_flash_cmd:
-034d 204002fc call p_spid_init_flash 
-034e 2040650b call spid_unlock_flash 
-034f da204b48 arg mem_write_flash_head_temp ,rega 
-0350 68088aa2 fetcht 1 ,mem_temp 
-0351 20206556 branch spid_write_flash_common 
-
-p_flash_release_deep_power_down:
-0352 700aa2ab jam flash_command_release_deep_power_down ,mem_temp 
-0353 2020034d branch p_spid_write_flash_cmd 
-
-p_mouse_fast_conn_quit:
-0354 58000050 setarg 0x50 
-0355 600146ae store 2 ,mem_mouse_direct_timer 
-0356 20403410 call app_ble_store_reconn_info 
-
-p_mouse_store_fast_conn_flag:
-0357 704b705a jam 0x5a ,mem_mouse_fast_conn_flag 
-0358 20200317 branch p_mouse_store_flash_device_info 
-
-p_mouse_fast_conn_le_switch_adv:
-0359 704b6401 jam 1 ,mem_le_switch_adv_timer 
-035a 704b6301 jam 1 ,mem_le_switch_adv_flag 
-
-p_mouse_fast_conn_init:
-035b 5fffffff setarg -1 
-035c 600344a0 store 6 ,mem_le_lap 
-035d 20600000 rtn 
-
-p_mouse_load_flash_user_data:
-035e 20400352 call p_flash_release_deep_power_down 
-035f d8400007 arg 7 ,temp 
-0360 da204b6b arg mem_mouse_flash_start_temp ,rega 
-0361 da40005f arg mouse_user_data_offect ,regb 
-0362 6801c700 fetch 3 ,mem_flash_base 
-0363 9a40fe00 iadd regb ,pdata 
-0364 20206562 branch spid_read_flash 
-
-p_mouse_connect_24g_mode:
-0365 20400540 call p_mouse_mode_24g_device_multi_led_blink3s 
-
-p_mouse_start_24g_mode:
-0366 6800c241 fetch 1 ,mem_power_on_flag 
-0367 c281020a bbit1 2 ,p_g24_start_24g_mode 
-0368 68024b4d fetch 4 ,mem_mouse_24g_addr_init 
-0369 60024c21 store 4 ,mem_24g_addr 
-036a 20400317 call p_mouse_store_flash_device_info 
-036b 2020020c branch p_g24_auto_pair_start 
-
-p_mouse_g24_package_data:
-036c 20404401 call mouse_g24_package_data 
-036d 6801469f fetch 2 ,mem_mouse_z 
-036e 207a0000 rtn blank 
-
-p_g24_transmit_by_interrupt_enable:
-036f 704d3901 jam g24_tx_timer_int_enable ,mem_24g_transmit_by_interrupt 
-0370 58000000 setarg 0 
-0371 60014d3a store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-0372 20600000 rtn 
-
-p_mouse_le_txbuff_save:
-0373 d8c01800 arg mem_le_tx_buffer0 ,contr 
-0374 d8a0480a arg mem_le_tx_buffer0_omemalloc ,contw 
-0375 2040037b call p_mouse_le_txbuff_copy 
-0376 d8c01900 arg mem_le_tx_buffer1 ,contr 
-0377 2040037b call p_mouse_le_txbuff_copy 
-0378 d8c01a00 arg mem_le_tx_buffer2 ,contr 
-0379 2040037b call p_mouse_le_txbuff_copy 
-037a d8c01b00 arg mem_le_tx_buffer3 ,contr 
-
-p_mouse_le_txbuff_copy:
-037b df20001b arg 27 ,loopcnt 
-037c 20207f01 branch memcpy 
-
-p_mouse_le_txbuff_load:
-037d d8c0480a arg mem_le_tx_buffer0_omemalloc ,contr 
-037e d8a01800 arg mem_le_tx_buffer0 ,contw 
-037f 2040037b call p_mouse_le_txbuff_copy 
-0380 d8a01900 arg mem_le_tx_buffer1 ,contw 
-0381 2040037b call p_mouse_le_txbuff_copy 
-0382 d8a01a00 arg mem_le_tx_buffer2 ,contw 
-0383 2040037b call p_mouse_le_txbuff_copy 
-0384 d8a01b00 arg mem_le_tx_buffer3 ,contw 
-0385 2020037b branch p_mouse_le_txbuff_copy 
-
-p_mouse_le_current_mult_update:
-0386 70417200 jam 0 ,mem_lpm_mult 
-0387 704b441e jam 30 ,mem_mouse_le_current_mult_timer 
-0388 20600000 rtn 
-
-p_mouse_data_xy_release:
-0389 6800cb43 fetch 1 ,mem_mouse_long_mult_flag 
-038a c1808000 rtnne 1 
-038b 58000000 setarg 0 
-038c 6000cb43 store 1 ,mem_mouse_long_mult_flag 
-038d 6002469b store 4 ,mem_mouse_x 
-
-p_mouse_sensor_poweron:
-038e 20400324 call p_mouse_spi_init 
-038f 58008006 setarg 0x8006 
-0390 20406413 call twspi_write 
-0391 20002ee0 nop 12000 
-
-p_mouse_dpi_config:
-0392 6800c77a fetch 1 ,mem_mouse_dpi 
-0393 c07f8395 beq 0xff ,p_mouse_dpi_config_default 
-0394 20200546 branch p_mouse_seting_dpi 
-
-p_mouse_dpi_config_default:
-0395 6800c6e1 fetch 1 ,mem_config_sensor_motion 
-0396 6000c77a store 1 ,mem_mouse_dpi 
-0397 20200546 branch p_mouse_seting_dpi 
-
-p_mouse_le:
-0398 20405892 call le_fifo_check_nearly_full 
-0399 247a0000 nrtn blank 
-039a 6800cb70 fetch 1 ,mem_mouse_fast_conn_flag 
-039b c07f839f beq 0xff ,p_mouse_le_next 
-039c 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-039d 1fe17e03 and pdata ,0x03 ,pdata 
-039e c1818000 rtnne 0x03 
-
-p_mouse_le_next:
-039f 6800c79e fetch 1 ,mem_mouse_clear_sensor_data_flag 
-03a0 205a03ec call p_mouse_clear_sensor_data ,blank 
-03a1 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-03a2 c282c179 bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
-03a3 20403f97 call mouse_motion 
-03a4 24740000 nrtn user 
-03a5 20400386 call p_mouse_le_current_mult_update 
-03a6 20400389 call p_mouse_data_xy_release 
-03a7 204003c2 call p_mouse_wheel_trigger 
-
-p_mouse_data_push:
-03a8 da20469a arg mem_mouse_key ,rega 
-03a9 20407e3d call queue_push 
-03aa 205403b1 call p_mouse_queue_increase ,user 
-03ab 20600000 rtn 
-
-p_mouse_data_init:
-03ac 7047a207 jam 7 ,mem_mouse_data_queue 
-03ad 7047a304 jam 4 ,mem_mouse_data_queue + 1 
-03ae 580047a2 setarg mem_mouse_data_queue 
-03af 60014218 store 2 ,mem_queue_ptr 
-03b0 20207e38 branch queue_init 
-
-p_mouse_queue_increase:
-03b1 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
-03b2 1fe0fe01 increase 1 ,pdata 
-03b3 6000c7c3 store 1 ,mem_mouse_data_queue_num 
-03b4 20600000 rtn 
-
-p_mouse_data_pull:
-03b5 da20469a arg mem_mouse_key ,rega 
-03b6 20407e54 call queue_pop 
-03b7 203403b9 branch p_mouse_fill_data_le ,user 
-03b8 20600000 rtn 
-
-p_mouse_fill_data_le:
-03b9 20405652 call le_clear_md 
-03ba 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
-03bb 1fe67c01 sub pdata ,1 ,null 
-03bc 24415650 ncall le_set_md ,positive 
-03bd 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
-03be 207a0000 rtn blank 
-03bf 1fe0ffff increase -1 ,pdata 
-03c0 6000c7c3 store 1 ,mem_mouse_data_queue_num 
-03c1 20203f90 branch mouse_fill_data_le 
-
-p_mouse_wheel_trigger:
-03c2 6801469f fetch 2 ,mem_mouse_z 
-03c3 207a0000 rtn blank 
-03c4 70480601 jam 1 ,mem_mouse_wheel_trigger 
-03c5 7048070a jam 10 ,mem_mouse_wheel_trigger_timer 
-03c6 20600000 rtn 
-
-p_mouse_bt:
-03c7 20770000 rtn attempt 
-03c8 6800c1e2 fetch 1 ,mem_app_handshake_flag 
-03c9 207a0000 rtn blank 
-03ca 20405271 call l2cap_malloc_is_fifo_nearly_full 
-03cb 247a0000 nrtn blank 
-03cc 6800c79e fetch 1 ,mem_mouse_clear_sensor_data_flag 
-03cd 205a03ec call p_mouse_clear_sensor_data ,blank 
-03ce 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-03cf c282bf8a bbit1 mouse_bt_discovery_button_down_flag ,mouse_send_empty_data 
-03d0 c284bf8a bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_send_empty_data 
-03d1 20403f97 call mouse_motion 
-03d2 24740000 nrtn user 
-03d3 20400386 call p_mouse_le_current_mult_update 
-03d4 20400389 call p_mouse_data_xy_release 
-03d5 204003c2 call p_mouse_wheel_trigger 
-03d6 6800cb05 fetch 1 ,mem_mouse_bt_boot_mode 
-03d7 c00083db beq 1 ,p_mouse_send_data_boot_mode 
-03d8 6800cb0c fetch 1 ,mem_mouse_bt_send_first_package_flag 
-03d9 207a0000 rtn blank 
-03da 20203f81 branch mouse_send_data 
-
-p_mouse_send_data_boot_mode:
-03db 6800c69a fetch 1 ,mem_mouse_key 
-03dc 6000cb06 store 1 ,mem_mouse_bt_boot_data 
-03dd 6800c69b fetch 1 ,mem_mouse_x 
-03de e0a08000 istore 1 ,contw 
-03df 6800c69d fetch 1 ,mem_mouse_y 
-03e0 e0a08000 istore 1 ,contw 
-03e1 6801469f fetch 2 ,mem_mouse_z 
-03e2 e0a10000 istore 2 ,contw 
-03e3 da200007 arg 7 ,rega 
-03e4 20404d63 call hid_malloc_tx_buff 
-03e5 6801424e fetch 2 ,mem_hid_int_remote_cid 
-03e6 e0a10000 istore 2 ,contw 
-03e7 580002a1 setarg 0x02a1 
-03e8 e0a10000 istore 2 ,contw 
-03e9 6802cb06 fetch 5 ,mem_mouse_bt_boot_data 
-03ea e0a28000 istore 5 ,contw 
-03eb 20600000 rtn 
-
-p_mouse_clear_sensor_data:
-03ec 70479e01 jam 1 ,mem_mouse_clear_sensor_data_flag 
-03ed 20405814 call le_set_config_more_data 
-
-p_mouse_init_sensor_reset:
-03ee 704b0001 jam 1 ,mem_mouse_init_sensor_reset_flag 
-03ef 202002e9 branch p_mouse_init_sunt 
-
-p_mouse_idle:
-03f0 20407e34 call ui_check_paring_button 
-03f1 204003f3 call p_mouse_dpi_check 
-03f2 20203ee0 branch mouse_wheel_check 
-
-p_mouse_dpi_check:
-03f3 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
-03f4 2040058c call p_gpio_set_input_pd 
-03f5 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
-03f6 2040681d call gpio_get_bit 
-03f7 202083fd branch p_mouse_dpi_up ,true 
-03f8 20400587 call p_gpio_set_input_pu 
-
-p_mouse_dpi_down:
-03f9 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
-03fa c1000000 rtneq dpi_button_state_down 
-03fb 7046b600 jam dpi_button_state_down ,mem_mouse_dpi_button_state 
-03fc 20600000 rtn 
-
-p_mouse_dpi_up:
-03fd 20400587 call p_gpio_set_input_pu 
-03fe 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
-03ff c1008000 rtneq dpi_button_state_up 
-0400 7046b601 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
-0401 2040035e call p_mouse_load_flash_user_data 
-0402 6800cb6d fetch 1 ,mem_mouse_long_button_select_device 
-0403 203a04b5 branch p_mouse_select_device_and_reset ,blank 
-0404 6800c77a fetch 1 ,mem_mouse_dpi 
-0405 1fe0fe01 increase 1 ,pdata 
-0406 1fe17e03 and pdata ,0x03 ,pdata 
-0407 6000c77a store 1 ,mem_mouse_dpi 
-0408 1fe0fe02 increase 2 ,pdata 
-0409 6000cb2d store 1 ,mem_mouse_multi_led_blink_count 
-040a 20400543 call p_mouse_dpi_multi_led_blink 
-040b 20403d7e call mouse_seting_dpi 
-040c 20200317 branch p_mouse_store_flash_device_info 
-
-p_mouse_priority_bb_event:
-040d 1a627e00 copy regc ,pdata 
-040e c00a041e beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
-040f c00a8421 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
-0410 c0148424 beq bt_evt_le_enc_info ,p_mouse_le_enc_info 
-0411 c0190426 beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
-0412 c0200428 beq bt_evt_le_parse_conn_papa_update_rsp ,p_mouse_le_conn_param_update_rsp_recieved 
-0413 c002042a beq bt_evt_reconn_failed ,p_mouse_bb_event_reconn_failed 
-0414 c009842a beq bt_evt_reconn_page_timeout ,p_mouse_bb_event_reconn_timeout 
-0415 c00cb3df beq bt_evt_switch_not_accept ,app_bt_role_switch 
-0416 c010842e beq bt_evt_sniff_not_accept ,p_mouse_sniff_not_accept 
-0417 c0008430 beq bt_evt_bb_connected ,p_mouse_bb_event_connected 
-0418 c0010438 beq bt_evt_bb_disconnected ,p_mouse_bb_event_disconnected 
-0419 c015843b beq bt_evt_switch_success_master ,p_mouse_enter_sniff_check 
-041a c01c843d beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
-041b c01d0440 beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
-041c c01e0443 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
-041d 2020417d branch mouse_priority_bb_event + 1 
-
-p_mouse_le_bb_event_connected:
-041e 204003ee call p_mouse_init_sensor_reset 
-041f 7011c5b0 jam zcode_b0 ,mem_zcode_temp_param0 
-0420 2020077b branch p_zcode_entrance 
-
-p_mouse_le_bb_disconnected:
-0421 20400449 call p_mouse_sensor_powerdown_check 
-0422 7011c5a2 jam zcode_a2 ,mem_zcode_temp_param0 
-0423 2020077b branch p_zcode_entrance 
-
-p_mouse_le_enc_info:
-
-p_app_updata_le_param:
-0424 700a9912 jam bt_cmd_le_update_conn ,mem_fifo_temp 
-0425 20207d8f branch ui_ipc_send_cmd 
-
-p_mouse_le_ll_start_encryt:
-0426 7011c5b3 jam zcode_b3 ,mem_zcode_temp_param0 
-0427 2020077b branch p_zcode_entrance 
-
-p_mouse_le_conn_param_update_rsp_recieved:
-0428 7011c5a1 jam zcode_a1 ,mem_zcode_temp_param0 
-0429 2020077b branch p_zcode_entrance 
-
-p_mouse_bb_event_reconn_timeout:
-
-p_mouse_bb_event_reconn_failed:
-042a 7011c5a3 jam zcode_a3 ,mem_zcode_temp_param0 
-042b 2020077b branch p_zcode_entrance 
-
-p_mouse_irtual_cable_unplug:
-042c 7011c570 jam zcode_70 ,mem_zcode_temp_param0 
-042d 2020077b branch p_zcode_entrance 
-
-p_mouse_sniff_not_accept:
-042e 7011c5b1 jam zcode_b1 ,mem_zcode_temp_param0 
-042f 2020077b branch p_zcode_entrance 
-
-p_mouse_bb_event_connected:
-0430 2040047c call p_mouse_store_eeprom_enable 
-0431 204003ee call p_mouse_init_sensor_reset 
-0432 58000000 setarg 0 
-0433 6001cb63 store 3 ,mem_le_switch_adv_flag 
-0434 20400357 call p_mouse_store_fast_conn_flag 
-0435 2040050a call p_mouse_null_enter_hibernate_disable 
-0436 70480900 jam 0 ,mem_mouse_send_switch_req_timer 
-0437 202042ca branch mouse_stop_discovery 
-
-p_mouse_bb_event_disconnected:
-0438 20400449 call p_mouse_sensor_powerdown_check 
-0439 7011c5b4 jam zcode_b4 ,mem_zcode_temp_param0 
-043a 2020077b branch p_zcode_entrance 
-
-p_mouse_enter_sniff_check:
-043b 7011c5b2 jam zcode_b2 ,mem_zcode_temp_param0 
-043c 2020077b branch p_zcode_entrance 
-
-p_mouse_24g_pairing_complete:
-043d 204003ee call p_mouse_init_sensor_reset 
-043e 7011c550 jam zcode_50 ,mem_zcode_temp_param0 
-043f 2020077b branch p_zcode_entrance 
-
-p_mouse_24g_attempt_fail:
-0440 20400449 call p_mouse_sensor_powerdown_check 
-0441 7011c551 jam zcode_51 ,mem_zcode_temp_param0 
-0442 2020077b branch p_zcode_entrance 
-
-p_mouse_24g_attempt_success:
-0443 204003ee call p_mouse_init_sensor_reset 
-0444 7011c552 jam zcode_52 ,mem_zcode_temp_param0 
-0445 2020077b branch p_zcode_entrance 
-
-p_mouse_before_hibernate:
-0446 20400449 call p_mouse_sensor_powerdown_check 
-0447 7011c5a0 jam zcode_a0 ,mem_zcode_temp_param0 
-0448 2020077b branch p_zcode_entrance 
-
-p_mouse_sensor_powerdown_check:
-0449 6800cb00 fetch 1 ,mem_mouse_init_sensor_reset_flag 
-044a 207a0000 rtn blank 
-044b 704b0000 jam 0 ,mem_mouse_init_sensor_reset_flag 
-
-p_mouse_sensor_powerdown:
-044c 204002e9 call p_mouse_init_sunt 
-044d 58000006 setarg 0x06 
-044e 20406414 call twspi_read 
-044f 1fe1fe08 or pdata ,0x08 ,pdata 
-0450 1fed7e00 lshift8 pdata ,pdata 
-0451 1fe0fe06 add pdata ,0x06 ,pdata 
-0452 20206413 branch twspi_write 
-
-p_mouse_bb_event_timer:
-0453 20400465 call p_mouse_le_switch_adv_timer 
-0454 2040050d call p_mouse_multi_led_blink_timer 
-0455 204004d8 call p_mouse_wheel_trigger_timer 
-0456 204004fc call p_mouse_null_enter_hibernate_timer 
-0457 204004dd call p_mouse_bt_discovery_check 
-0458 20404234 call mouse_check_discovery_timeout_timer 
-0459 20400492 call p_mouse_select_device 
-045a 20400483 call p_mouse_g24_long_sleep_param_update_timer 
-045b 2040048a call p_mouse_g24_search_dongle_delay_timer 
-045c 2040048d call p_mouse_g24_stop_mode_timeout_timer 
-045d 204004c1 call p_mouse_check_direct_timeout_timer 
-045e 204004c7 call p_mouse_le_enable_att_list_timer 
-045f 204004ca call p_le_send_smp_security_request_timer 
-0460 204004d2 call p_mouse_le_current_mult_update_timer 
-0461 204004b9 call p_mouse_send_switch_req_timer 
-0462 20404231 call mouse_check_hid_handshake_timer 
-0463 204004bc call p_mouse_bt_check_sniff_req_timeout_timer 
-0464 2020423a branch mouse_check_no_data_timeout_timer 
-
-p_mouse_le_switch_adv_timer:
-0465 6800cb63 fetch 1 ,mem_le_switch_adv_flag 
-0466 207a0000 rtn blank 
-0467 da604b64 arg mem_le_switch_adv_timer ,regc 
-0468 da40046a arg p_mouse_le_switch_adv ,regb 
-0469 2020336d branch timer_single_step 
-
-p_mouse_le_switch_adv:
-046a 704b6401 jam 1 ,mem_le_switch_adv_timer 
-046b 6800cb65 fetch 1 ,mem_le_switch_adv_count 
-046c 1fe0fe01 increase 1 ,pdata 
-046d 1fe17e01 and_into 1 ,pdata 
-046e 6000cb65 store 1 ,mem_le_switch_adv_count 
-046f c000047e beq 0 ,p_mouse_check_fast_conn_adv_start1 
-
-p_check_51cmd_adv:
-0470 68034b5d fetch 6 ,mem_le_normal_lap 
-0471 600344a0 store 6 ,mem_le_lap 
-0472 20400474 call p_mouse_le_adv_data_update 
-0473 20207df4 branch check_51cmd_adv 
-
-p_mouse_le_adv_data_update:
-0474 70436f1f jam 0x1f ,mem_le_adv_data_len 
-0475 70438f1f jam 0x1f ,mem_le_scan_data_len 
-0476 2040047c call p_mouse_store_eeprom_enable 
-0477 d8c04b12 arg mem_le_adv_swift_pair ,contr 
-
-p_le_adv_data_update:
-0478 d8a0437b arg mem_le_adv_data + 11 ,contw 
-0479 df200013 arg 19 ,loopcnt 
-047a 20407f01 call memcpy 
-047b 202057b8 branch le_modified_name_adv 
-
-p_mouse_store_eeprom_enable:
-047c d8e00007 arg mouse_store_eeprom_flag ,queue 
-047d 202043ce branch mouse_enable_function_flag 
-
-p_mouse_check_fast_conn_adv_start:
-
-p_mouse_check_fast_conn_adv_start1:
-047e 70436f00 jam 0 ,mem_le_adv_data_len 
-047f 70438f00 jam 0 ,mem_le_scan_data_len 
-0480 d8e00007 arg mouse_store_eeprom_flag ,queue 
-0481 204043d2 call mouse_disable_function_flag 
-0482 2020035b branch p_mouse_fast_conn_init 
-
-p_mouse_g24_long_sleep_param_update_timer:
-0483 da604b45 arg mem_24g_long_sleep_param_update_timer ,regc 
-0484 da400486 arg p_mouse_g24_long_sleep_normal_param ,regb 
-0485 2020336d branch timer_single_step 
-
-p_mouse_g24_long_sleep_normal_param:
-0486 58249f00 setarg g24_long_sleep_step2 
-0487 6001cc28 store 3 ,mem_24g_enter_hibernate 
-
-p_mouse_long_mult_flag_enable:
-0488 704b4301 jam 1 ,mem_mouse_long_mult_flag 
-0489 20600000 rtn 
-
-p_mouse_g24_search_dongle_delay_timer:
-048a da604d4a arg mem_24g_search_dongle_delay_count ,regc 
-048b da400000 arg 0 ,regb 
-048c 2020336d branch timer_single_step 
-
-p_mouse_g24_stop_mode_timeout_timer:
-048d da604d43 arg mem_24g_stop_g24_mode_timeout ,regc 
-048e da400490 arg p_mouse_g24_stop_mode_timeout ,regb 
-048f 20203374 branch timer_single_step_2b 
-
-p_mouse_g24_stop_mode_timeout:
-0490 704d4201 jam 1 ,mem_24g_stop_g24_mode 
-0491 20600000 rtn 
-
-p_mouse_select_device:
-
-p_mouse_select_device_by_button:
-0492 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
-0493 2040058c call p_gpio_set_input_pd 
-0494 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
-0495 2040681d call gpio_get_bit 
-0496 2420849f nbranch p_mouse_select_device_button_down ,true 
-
-p_mouse_select_device_button_up:
-0497 20400587 call p_gpio_set_input_pu 
-0498 6800cafd fetch 1 ,mem_mouse_button_select_device_timer_init 
-0499 6000cafe store 1 ,mem_mouse_button_select_device_count 
-049a 6800c6d9 fetch 1 ,mem_select_device_button_statue 
-049b c1008000 rtneq dpi_button_state_up 
-049c 7046d901 jam dpi_button_state_up ,mem_select_device_button_statue 
-049d d8e00006 arg mouse_long_bt_button_flag ,queue 
-049e 202043d2 branch mouse_disable_function_flag 
-
-p_mouse_select_device_button_down:
-049f 20400587 call p_gpio_set_input_pu 
-04a0 204004a6 call p_mouse_button_select_device_timer 
-04a1 20400503 call p_mouse_null_enter_hibernate_check 
-04a2 6800c6d9 fetch 1 ,mem_select_device_button_statue 
-04a3 c1000000 rtneq dpi_button_state_down 
-04a4 7046d900 jam dpi_button_state_down ,mem_select_device_button_statue 
-04a5 20600000 rtn 
-
-p_mouse_button_select_device_timer:
-04a6 da604afe arg mem_mouse_button_select_device_count ,regc 
-04a7 da4004a9 arg p_mouse_long_button_select_device ,regb 
-04a8 2020336d branch timer_single_step 
-
-p_mouse_long_button_select_device:
-04a9 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-04aa c3830000 rtnbit1 mouse_long_bt_button_flag 
-04ab 204004b7 call p_mouse_long_button_state_clear 
-
-p_mouse_ready_reconnection_by_button:
-04ac 7041bd00 jam 0 ,mem_link_key_exists 
-04ad 6808c720 fetcht 1 ,mem_device_flag 
-04ae 18408401 increase 1 ,temp 
-04af 6800c6d2 fetch 1 ,mem_device_number 
-04b0 98467c00 isub temp ,null 
-04b1 244143cc ncall mouse_select_device_count_clean ,positive 
-04b2 6008c720 storet 1 ,mem_device_flag 
-04b3 20400317 call p_mouse_store_flash_device_info 
-04b4 20204378 branch mouse_ready_reconnection_by_button + 8 
-
-p_mouse_select_device_and_reset:
-04b5 704b6dff jam 0xff ,mem_mouse_long_button_select_device 
-04b6 20200317 branch p_mouse_store_flash_device_info 
-
-p_mouse_long_button_state_clear:
-04b7 704b6d00 jam 0 ,mem_mouse_long_button_select_device 
-04b8 20200317 branch p_mouse_store_flash_device_info 
-
-p_mouse_send_switch_req_timer:
-04b9 da604809 arg mem_mouse_send_switch_req_timer ,regc 
-04ba da40637a arg host_create_conn_resend ,regb 
-04bb 2020336d branch timer_single_step 
-
-p_mouse_bt_check_sniff_req_timeout_timer:
-04bc da604b0b arg mem_mouse_bt_send_first_package_timer ,regc 
-04bd da4004bf arg p_mouse_bt_send_first_package ,regb 
-04be 2020336d branch timer_single_step 
-
-p_mouse_bt_send_first_package:
-04bf 704b0c01 jam 1 ,mem_mouse_bt_send_first_package_flag 
-04c0 20600000 rtn 
-
-p_mouse_check_direct_timeout_timer:
-04c1 da6046ae arg mem_mouse_direct_timer ,regc 
-04c2 da4004c4 arg p_mouse_check_direct_timeout ,regb 
-04c3 20203374 branch timer_single_step_2b 
-
-p_mouse_check_direct_timeout:
-04c4 704b7201 jam 1 ,mem_mouse_le_not_tx_disconn 
-04c5 204004f2 call p_mouse_long_button_bt_normal_discovery 
-04c6 202004e6 branch p_mouse_bt_discovery_button_up_init 
-
-p_mouse_le_enable_att_list_timer:
-04c7 da6046c6 arg mem_le_start_encrypt_timer ,regc 
-04c8 da403d60 arg mouse_le_write_enable ,regb 
-04c9 2020336d branch timer_single_step 
-
-p_le_send_smp_security_request_timer:
-04ca 6800cb6a fetch 1 ,mem_mouse_le_bb_connected_flag 
-04cb 207a0000 rtn blank 
-04cc da604b68 arg mem_mouse_send_secutiry_request_timer ,regc 
-04cd da4004cf arg p_le_pairing_sm_start_check ,regb 
-04ce 2020336d branch timer_single_step 
-
-p_le_pairing_sm_start_check:
-04cf 6800cb69 fetch 1 ,mem_le_send_security_request_flag 
-04d0 247a0000 nrtn blank 
-04d1 20205bf5 branch le_pairing_sm_start 
-
-p_mouse_le_current_mult_update_timer:
-04d2 da604b44 arg mem_mouse_le_current_mult_timer ,regc 
-04d3 da4004d5 arg p_mouse_le_current_mult_reinit ,regb 
-04d4 2020336d branch timer_single_step 
-
-p_mouse_le_current_mult_reinit:
-04d5 6800c7c5 fetch 1 ,mem_lpm_mult_init 
-04d6 6000c172 store 1 ,mem_lpm_mult 
-04d7 20200488 branch p_mouse_long_mult_flag_enable 
-
-p_mouse_wheel_trigger_timer:
-04d8 da604807 arg mem_mouse_wheel_trigger_timer ,regc 
-04d9 da4004db arg p_mouse_wheel_trigger_disable ,regb 
-04da 2020336d branch timer_single_step 
-
-p_mouse_wheel_trigger_disable:
-04db 70480600 jam 0 ,mem_mouse_wheel_trigger 
-04dc 20600000 rtn 
-
-p_mouse_bt_discovery_check:
-04dd 6800c720 fetch 1 ,mem_device_flag 
-04de c1010000 rtneq mode_24g_device 
-
-p_mouse_bt_discovery_commbination_key:
-04df 20400574 call p_mouse_check_key_gpio 
-04e0 c00384e9 beq mouse_lmr_button ,p_mouse_bt_discovery_commbination_key_down 
-
-p_mouse_bt_discovery_commbination_key_up:
-04e1 6800c685 fetch 1 ,mem_ui_button_timeout 
-04e2 6000c6da store 1 ,mem_combination_ui_button_count 
-04e3 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
-04e4 c1008000 rtneq dpi_button_state_up 
-04e5 7046db01 jam dpi_button_state_up ,mem_bt_discovey_button_statue 
-
-p_mouse_bt_discovery_button_up_init:
-04e6 d8e00009 arg mouse_bt_discovery_button_long_down_flag ,queue 
-04e7 204043d2 call mouse_disable_function_flag 
-04e8 202043ca branch mouse_bt_discovery_button_down_disable 
-
-p_mouse_bt_discovery_commbination_key_down:
-04e9 7047a028 jam 40 ,mem_mouse_null_enter_hibernate_timer 
-04ea 204004ec call p_mouse_bt_discovery_timer 
-04eb 202043b0 branch mouse_bt_discovery_commbination_key_down + 1 
-
-p_mouse_bt_discovery_timer:
-04ec da6046da arg mem_combination_ui_button_count ,regc 
-04ed da4004ef arg p_mouse_long_button_bt_discovery ,regb 
-04ee 2020336d branch timer_single_step 
-
-p_mouse_long_button_bt_discovery:
-04ef 204004b7 call p_mouse_long_button_state_clear 
-04f0 6800cb63 fetch 1 ,mem_le_switch_adv_flag 
-04f1 243a04f9 nbranch p_mouse_fast_conn_adv_switch_timer_reinit ,blank 
-
-p_mouse_long_button_bt_normal_discovery:
-04f2 20400474 call p_mouse_le_adv_data_update 
-04f3 68014682 fetch 2 ,mem_ui_state_map 
-04f4 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
-04f5 2040c392 call mouse_cancel_reconnect ,true 
-04f6 d8e00009 arg mouse_bt_discovery_button_long_down_flag ,queue 
-04f7 204043ce call mouse_enable_function_flag 
-04f8 202043b8 branch mouse_long_button_bt_discovry 
-
-p_mouse_fast_conn_adv_switch_timer_reinit:
-04f9 68014687 fetch 2 ,mem_discovery_timeout 
-04fa 600146ac store 2 ,mem_mouse_discovery_timer 
-04fb 20600000 rtn 
-
-p_mouse_null_enter_hibernate_timer:
-04fc 6800c79f fetch 1 ,mem_mouse_null_enter_hibernate_flag 
-04fd 207a0000 rtn blank 
-04fe da6047a0 arg mem_mouse_null_enter_hibernate_timer ,regc 
-04ff da400501 arg p_mouse_null_enter_hibernate ,regb 
-0500 2020336d branch timer_single_step 
-
-p_mouse_null_enter_hibernate:
-0501 70479f00 jam 0 ,mem_mouse_null_enter_hibernate_flag 
-0502 2020340a branch app_enter_hibernate 
-
-p_mouse_null_enter_hibernate_check:
-0503 68014682 fetch 2 ,mem_ui_state_map 
-0504 c3848000 rtnbit1 ui_state_ble_connected 
-0505 c3800000 rtnbit1 ui_state_bt_connected 
-0506 c6130000 rtnmark1 mark_24g 
-
-p_mouse_null_enter_hibernate_enable:
-0507 70479f01 jam 1 ,mem_mouse_null_enter_hibernate_flag 
-0508 7047a028 jam 40 ,mem_mouse_null_enter_hibernate_timer 
-0509 20600000 rtn 
-
-p_mouse_null_enter_hibernate_disable:
-050a 70479f00 jam 0 ,mem_mouse_null_enter_hibernate_flag 
-050b 7047a000 jam 0 ,mem_mouse_null_enter_hibernate_timer 
-050c 20600000 rtn 
-
-p_mouse_multi_led_blink_timer:
-050d 6800cb25 fetch 1 ,mem_mouse_multi_led_blink_enable 
-050e 207a0000 rtn blank 
-050f 20200518 branch p_mouse_multi_led_type_blink 
-
-p_mouse_discovery_multi_led_blink:
-0510 704b3000 jam 0 ,mem_mouse_multi_led_blink_poweron3s_flag 
-0511 704b2b05 jam 5 ,mem_mouse_multi_led_blink_timer_init 
-0512 704b2e00 jam 0 ,mem_mouse_multi_led_blink_count_limited 
-0513 704b2d01 jam 1 ,mem_mouse_multi_led_blink_count 
-
-p_mouse_multi_led_blink_enable:
-0514 704b2c05 jam 5 ,mem_mouse_multi_led_blink_timer 
-0515 704b2501 jam on ,mem_mouse_multi_led_blink_enable 
-0516 704b2801 jam multi_led_blink ,mem_mouse_multi_led_type 
-0517 20600000 rtn 
-
-p_mouse_multi_led_type_blink:
-0518 da604b2c arg mem_mouse_multi_led_blink_timer ,regc 
-0519 da40051b arg p_mouse_multi_led_type_blink_timeout ,regb 
-051a 2020336d branch timer_single_step 
-
-p_mouse_multi_led_type_blink_timeout:
-051b 6800cb2b fetch 1 ,mem_mouse_multi_led_blink_timer_init 
-051c 6000cb2c store 1 ,mem_mouse_multi_led_blink_timer 
-051d 6800cb2e fetch 1 ,mem_mouse_multi_led_blink_count_limited 
-051e 203a0523 branch p_mouse_multi_led_blink_count_no_limited ,blank 
-051f 6800cb2d fetch 1 ,mem_mouse_multi_led_blink_count 
-0520 203a0533 branch p_mouse_multi_led_blink_off ,blank 
-0521 1fe0ffff increase -1 ,pdata 
-0522 6000cb2d store 1 ,mem_mouse_multi_led_blink_count 
-
-p_mouse_multi_led_blink_count_no_limited:
-0523 6800cb27 fetch 1 ,mem_mouse_multi_led_state 
-0524 c0008535 beq on ,p_mouse_multi_led_off 
-
-p_mouse_multi_led_on:
-0525 704b2701 jam on ,mem_mouse_multi_led_state 
-0526 6800c720 fetch 1 ,mem_device_flag 
-0527 c000852d beq mode_bt_device1 ,p_mouse_multi_down_led_on 
-
-p_mouse_multi_up_led_on:
-0528 6808cb26 fetcht 1 ,mem_mouse_multi_led_gpio 
-0529 79200407 set1 gpio_active_bit ,temp 
-052a 2040680e call gpio_config_output 
-052b 6808cb26 fetcht 1 ,mem_mouse_multi_led_gpio 
-052c 20206829 branch gpio_out_active 
-
-p_mouse_multi_down_led_on:
-052d 6808cb26 fetcht 1 ,mem_mouse_multi_led_gpio 
-052e 2040680e call gpio_config_output 
-052f 6808cb26 fetcht 1 ,mem_mouse_multi_led_gpio 
-0530 20206825 branch gpio_out_inactive 
-
-p_mouse_discovey_led_blink_off:
-0531 6800cb30 fetch 1 ,mem_mouse_multi_led_blink_poweron3s_flag 
-0532 247a0000 nrtn blank 
-
-p_mouse_multi_led_blink_off:
-0533 58000000 setarg 0 
-0534 6001cb2c store 3 ,mem_mouse_multi_led_blink_timer 
-
-p_mouse_multi_led_off:
-0535 6800cb2d fetch 1 ,mem_mouse_multi_led_blink_count 
-0536 243a053a nbranch p_mouse_multi_led_off_wait_blink_over ,blank 
-0537 704b3000 jam 0 ,mem_mouse_multi_led_blink_poweron3s_flag 
-0538 704b2500 jam 0 ,mem_mouse_multi_led_blink_enable 
-0539 704b2800 jam 0 ,mem_mouse_multi_led_type 
-
-p_mouse_multi_led_off_wait_blink_over:
-053a 704b2900 jam 0 ,mem_mouse_multi_led_on_timer 
-053b 704b2700 jam off ,mem_mouse_multi_led_state 
-
-p_mouse_multi_led_gpio_set_float:
-053c 6808cb26 fetcht 1 ,mem_mouse_multi_led_gpio 
-
-p_mouse_set_gpio_suspend:
-053d 793f8407 set0 gpio_active_bit ,temp 
-053e 20206806 branch gpio_set_high_impedance 
-
-p_mouse_mode_bt_device1_multi_led_blink3s:
-053f 704b3001 jam 1 ,mem_mouse_multi_led_blink_poweron3s_flag 
-
-p_mouse_mode_24g_device_multi_led_blink3s:
-0540 704b2d1b jam 27 ,mem_mouse_multi_led_blink_count 
-0541 704b2b01 jam 1 ,mem_mouse_multi_led_blink_timer_init 
-0542 20200544 branch p_mouse_dpi_multi_led_blink + 1 
-
-p_mouse_dpi_multi_led_blink:
-0543 704b2b05 jam 5 ,mem_mouse_multi_led_blink_timer_init 
-0544 704b2e01 jam 1 ,mem_mouse_multi_led_blink_count_limited 
-0545 20200514 branch p_mouse_multi_led_blink_enable 
-
-p_mouse_seting_dpi:
-
-p_mouse_seting_sensor_type:
-0546 6800c6e0 fetch 1 ,mem_config_sensor_type 
-0547 c0030553 beq p3065_xy ,p_mouse_seting_3065xy_dpi 
-0548 c0038553 beq mx8650 ,p_mouse_seting_3065xy_dpi 
-0549 c0010560 beq ka8 ,p_mouse_seting_ka8_dpi 
-
-p_mouse_seting_3205_dpi:
-054a 6800c77a fetch 1 ,mem_mouse_dpi 
-054b 1fe67c01 sub pdata ,mouse_dpi_level2 ,null 
-054c 20428551 call p_mouse_3205_dpi_recount ,zero 
-054d 6800c77a fetch 1 ,mem_mouse_dpi 
-054e c0003d8a beq mouse_dpi_level1 ,mouse_set_cpi1 
-054f c001bd8e beq mouse_dpi_level4 ,mouse_set_cpi4 
-0550 20203d8c branch mouse_set_cpi3 
-
-p_mouse_3205_dpi_recount:
-0551 70477a02 jam mouse_dpi_level3 ,mem_mouse_dpi 
-0552 20600000 rtn 
-
-p_mouse_seting_3065xy_dpi:
-0553 6800c77a fetch 1 ,mem_mouse_dpi 
-0554 1fe67c01 sub pdata ,mouse_dpi_level2 ,null 
-0555 20428551 call p_mouse_3205_dpi_recount ,zero 
-0556 6800c77a fetch 1 ,mem_mouse_dpi 
-0557 c000055c beq mouse_dpi_level1 ,p_mouse_3065xy_set_cpi1 
-0558 c001855e beq mouse_dpi_level4 ,p_mouse_3065xy_set_cpi4 
-
-p_mouse_3065xy_set_cpi3:
-0559 6800cb39 fetch 1 ,mem_3065xy_dpi_3 
-
-p_mouse_dpi_store:
-055a 6000c6b5 store 1 ,mem_mouse_cpi_count 
-055b 20203dc1 branch mouse_p3205_dpi + 3 
-
-p_mouse_3065xy_set_cpi1:
-055c 6800cb37 fetch 1 ,mem_3065xy_dpi_1 
-055d 2020055a branch p_mouse_dpi_store 
-
-p_mouse_3065xy_set_cpi4:
-055e 6800cb3a fetch 1 ,mem_3065xy_dpi_4 
-055f 2020055a branch p_mouse_dpi_store 
-
-p_mouse_seting_ka8_dpi:
-0560 6800c77a fetch 1 ,mem_mouse_dpi 
-0561 205a0551 call p_mouse_3205_dpi_recount ,blank 
-0562 6800c77a fetch 1 ,mem_mouse_dpi 
-0563 c000bd88 beq mouse_dpi_level2 ,mouse_set_cpi2 
-0564 c0018566 beq mouse_dpi_level4 ,p_mouse_ka8_set_cpi3 
-0565 20203d8e branch mouse_set_cpi4 
-
-p_mouse_ka8_set_cpi3:
-0566 58000005 setarg 5 
-0567 20203dbe branch mouse_p3205_dpi 
-
-p_mouse_motion:
-0568 78547c00 disable user 
-0569 58000000 setarg 0 
-056a 6003469b store 6 ,mem_mouse_x 
-056b 20400592 call p_mouse_cheak_sensor_data 
-056c 20404079 call mouse_zwheel 
-056d 2040407e call mouse_t_zwheel 
-056e 20400572 call p_mouse_key 
-056f 243407a3 nbranch p_drawing_optima_init ,user 
-0570 2040079a call p_drawing_optima 
-0571 20203fa0 branch mouse_motion + 9 
-
-p_mouse_key:
-0572 20400574 call p_mouse_check_key_gpio 
-0573 2020409a branch mouse_key + 1 
-
-p_mouse_check_key_gpio:
-0574 da200000 arg 0 ,rega 
-0575 20400577 call p_mouse_check_lkey_gpio 
-0576 2020408e branch mouse_check_key_gpio_output 
-
-p_mouse_check_lkey_gpio:
-0577 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
-0578 20400587 call p_gpio_set_input_pu 
-0579 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
-057a 2040681d call gpio_get_bit 
-057b 7920a200 setflag true ,0 ,rega 
-
-p_mouse_check_rkey_gpio:
-057c 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
-057d 20400587 call p_gpio_set_input_pu 
-057e 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
-057f 2040681d call gpio_get_bit 
-0580 7920a201 setflag true ,1 ,rega 
-
-p_mouse_check_mkey_gpio:
-0581 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
-0582 20400587 call p_gpio_set_input_pu 
-0583 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
-0584 2040681d call gpio_get_bit 
-0585 7920a202 setflag true ,2 ,rega 
-0586 20600000 rtn 
-
-p_gpio_set_input_pu:
-0587 79200407 set1 gpio_active_bit ,temp 
-0588 d8a08078 arg core_gpio_pu0 ,contw 
-0589 20406830 call gpio_set_bit 
-058a 793f8407 set0 gpio_active_bit ,temp 
-058b 20200590 branch p_gpio_set_input_pd4 
-
-p_gpio_set_input_pd:
-058c 793f8407 set0 gpio_active_bit ,temp 
-058d d8a08078 arg core_gpio_pu0 ,contw 
-058e 20406830 call gpio_set_bit 
-058f 79200407 set1 gpio_active_bit ,temp 
-
-p_gpio_set_input_pd4:
-0590 d8a0807c arg core_gpio_pd0 ,contw 
-0591 2020680a branch gpio_set_high_impedance + 4 
-
-p_mouse_cheak_sensor_data:
-
-p_mouse_p32xx_sensor_motion:
-0592 20403fc0 call mouse_clear_sensor_data 
-0593 78547c00 disable user 
-0594 20203fe7 branch mouse_p32xx_sensor_motion_2 
-
-p_mouse_bb_event_discovery_btn:
-0595 2040050a call p_mouse_null_enter_hibernate_disable 
-0596 280ffe26 isolate1 mark_24g ,mark 
-0597 2040820e call p_g24_check_51cmd_stop_24g ,true 
-0598 7046b400 jam 0 ,mem_mouse_send_blank_timer 
-0599 6800cb72 fetch 1 ,mem_mouse_le_not_tx_disconn 
-059a 205a4386 call mouse_disconnect ,blank 
-059b 58000000 setarg 0 
-059c 600146b0 store 2 ,mem_mouse_no_data_timer 
-059d 2020426f branch mouse_bb_event_discovery_btn + 3 
-
-p_mouse_start_discovery:
-059e 7011c530 jam zcode_30 ,mem_zcode_temp_param0 
-059f 2020077b branch p_zcode_entrance 
-
-p_mouse_stop_discovery:
-05a0 20400531 call p_mouse_discovey_led_blink_off 
-05a1 704b0001 jam 1 ,mem_mouse_init_sensor_reset_flag 
-05a2 2040038e call p_mouse_sensor_poweron 
-05a3 202042cb branch mouse_stop_discovery + 1 
-
-p_le_slave_match:
-05a4 6800c50f fetch 1 ,mem_le_md_count 
-05a5 1fe0fe01 pincrease 1 
-05a6 6000c50f store 1 ,mem_le_md_count 
-05a7 c0065395 beq le_md_max_count ,le_slave_cont 
-05a8 204055aa call le_acknowledge 
-05a9 2040561e call le_prepare_tx 
-05aa 2040071e call power_ctrl_start 
-05ab 2020538f branch le_slave_match + 7 
-
-p_le_next_adv_channel:
-05ac 68008016 fetch 1 ,mem_le_ch_mapped 
-05ad 1fe0fe01 increase 1 ,pdata 
-05ae 60008016 store 1 ,mem_le_ch_mapped 
-05af c1940000 rtnne 40 
-05b0 70001625 jam 37 ,mem_le_ch_mapped 
-05b1 20600000 rtn 
-
-p_le_receive_skip:
-05b2 204029bb call save_rssi 
-05b3 2040006b call p_rssi_signal 
-05b4 202054a3 branch le_receive_skip + 2 
-
-p_le_update_param:
-05b5 7011c520 jam zcode_20 ,mem_zcode_temp_param0 
-05b6 2020077b branch p_zcode_entrance 
-
-p_le_update_channel_map:
-05b7 7011c521 jam zcode_21 ,mem_zcode_temp_param0 
-05b8 2020077b branch p_zcode_entrance 
-
-p_le_prepare_tx:
-05b9 68008456 fetch 1 ,mem_le_arq 
-05ba c28285cd bbit1 wak ,p_le_prepare_tx_wak 
-05bb 20400710 call power_ctrl_pac_succ_incrs 
-05bc 6800c78e fetch 1 ,mem_empty_count 
-05bd 243a05c3 nbranch p_le_send_empyt ,blank 
-05be 6800843f fetch 1 ,mem_le_state 
-05bf c30205c7 bbit0 lestate_encryption ,p_le_tx_4 
-05c0 680082da fetch 1 ,mem_le_rxbuf + 1 
-05c1 203a05c7 branch p_le_tx_4 ,blank 
-05c2 20205664 branch le_send_empty 
-
-p_le_send_empyt:
-05c3 6800c78e fetch 1 ,mem_empty_count 
-05c4 1fe0ffff increase -1 ,pdata 
-05c5 6000c78e store 1 ,mem_empty_count 
-05c6 20205664 branch le_send_empty 
-
-p_le_tx_4:
-05c7 6800c4c4 fetch 1 ,mem_le_pairing_state 
-05c8 c08285ca bne flag_le_pairing_after_auth ,p_in_le_tx_4 
-05c9 70478e03 jam 3 ,mem_empty_count 
-
-p_in_le_tx_4:
-05ca 20405892 call le_fifo_check_nearly_full 
-05cb 205a03b5 call p_mouse_data_pull ,blank 
-05cc 20205622 branch le_prepare_tx + 4 
-
-p_le_prepare_tx_wak:
-05cd 204005cf call p_le_check_tx_retransmit_setmd 
-05ce 202005db branch p_le_power_ctrl_pac_succ_decrs 
-
-p_le_check_tx_retransmit_setmd:
-05cf 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-05d0 1fe17e03 and pdata ,0x03 ,pdata 
-05d1 c1818000 rtnne 0x03 
-05d2 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
-05d3 207a0000 rtn blank 
-05d4 6800c3dd fetch 1 ,mem_le_txlen 
-05d5 207a0000 rtn blank 
-05d6 6800c3dc fetch 1 ,mem_le_txheader 
-05d7 79207e04 set1 md ,pdata 
-05d8 6000c3dc store 1 ,mem_le_txheader 
-05d9 20405650 call le_set_md 
-05da 20600000 rtn 
-
-p_le_power_ctrl_pac_succ_decrs:
-05db 20200714 branch power_ctrl_pac_succ_decrs 
-
-p_mouse_le_reconn_write_enable_timer_reinit:
-05dc 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
-05dd 207a0000 rtn blank 
-05de 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-05df 1fe17e03 and pdata ,0x03 ,pdata 
-05e0 c1018000 rtneq 0x03 
-05e1 7046c602 jam 2 ,mem_le_start_encrypt_timer 
-05e2 20600000 rtn 
-
-p_le_parse:
-05e3 c6078000 rtnmark1 mark_old_packet 
-05e4 20405890 call le_fifo_check_full 
-05e5 247a0000 nrtn blank 
-05e6 680082d9 fetch 1 ,mem_le_rxbuf 
-05e7 1fe17e03 and pdata ,0x3 ,pdata 
-05e8 6000c50c store 1 ,mem_le_packet_llid 
-05e9 e8c08000 ifetch 1 ,contr 
-05ea 1fe17e1f and pdata ,0x1f ,pdata 
-05eb 6000c50b store 1 ,mem_le_packet_size 
-05ec 207a0000 rtn blank 
-05ed 18c27e00 copy contr ,pdata 
-05ee 6001450d store 2 ,mem_le_payload_ptr 
-05ef 6800c50c fetch 1 ,mem_le_packet_llid 
-05f0 c00185f2 beq llid_le_ll ,p_le_parse_ll 
-05f1 2020568d branch le_parse_l2cap 
-
-p_le_parse_ll:
-05f2 680082db fetch 1 ,mem_le_rxbuf + 2 
-05f3 c00005f6 beq ll_connection_update_req ,p_le_parse_connection_update_req 
-05f4 c00085fd beq ll_channel_map_req ,p_le_parse_channel_map_req 
-05f5 20205c65 branch le_parse_ll + 1 
-
-p_le_parse_connection_update_req:
-05f6 20405c7b call le_parse_connection_update_req 
-05f7 6800cb5c fetch 1 ,mem_mouse_le_updata_not_accepted_flag 
-05f8 207a0000 rtn blank 
-
-p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset:
-05f9 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
-05fa 6000c172 store 1 ,mem_lpm_mult 
-05fb 6000c7c5 store 1 ,mem_lpm_mult_init 
-05fc 20600000 rtn 
-
-p_le_parse_channel_map_req:
-05fd e8c28000 ifetch 5 ,contr 
-05fe 6002c3ce store 5 ,mem_le_new_map 
-05ff e8c10000 ifetch 2 ,contr 
-0600 6001045f store 2 ,mem_le_instant 
-0601 20205c8a branch le_parse_channel_map_req + 7 
-
-p_le_parse_l2cap:
-0602 e8c10000 ifetch 2 ,contr 
-0603 c0020606 beq le_l2cap_cid_att ,p_le_parse_att 
-0604 c0030632 beq le_l2cap_cid_smp ,p_le_parse_smp 
-0605 20205698 branch le_parse_l2cap + 11 
-
-p_le_parse_att:
-0606 20407ea5 call store_contr 
-0607 204005dc call p_mouse_le_reconn_write_enable_timer_reinit 
-0608 20407e9f call get_contr 
-0609 e8c18000 ifetch 3 ,contr 
-060a 60018477 store 3 ,mem_le_att_opcode 
-060b c0080615 beq attop_read_by_group_type_request ,p_le_parse_att_read_by_group_type_request 
-060c 1fec8400 rshift8 pdata ,temp 
-060d 18467c24 sub temp ,0x24 ,null 
-060e 20210623 branch p_le_parse_att1 ,positive 
-060f d84047c6 arg mem_mouse_le_uuid_sup ,temp 
-0610 600944bc storet 2 ,mem_ui_le_uuid_table 
-0611 204058ad call le_parse_att + 2 
-0612 58008e7a setarg 0x8e7a 
-0613 600144bc store 2 ,mem_ui_le_uuid_table 
-0614 20600000 rtn 
-
-p_le_parse_att_read_by_group_type_request:
-0615 204059fa call le_parse_att_read_by_group_type_request 
-0616 20405879 call le_fifo_get_last_tx_ptr 
-0617 18c08c07 increase 7 ,contr 
-0618 e8c08000 ifetch 1 ,contr 
-0619 c1888000 rtnne attop_read_by_group_type_response 
-061a 18c08c05 increase 5 ,contr 
-061b e8c10000 ifetch 2 ,contr 
-061c d8401812 arg uuid_service_hids ,temp 
-061d 98467c00 isub temp ,null 
-061e 24628000 nrtn zero 
-061f 18c08dfc increase -4 ,contr 
-0620 5800002b setarg 0x2b 
-0621 e0c10000 istore 2 ,contr 
-0622 20600000 rtn 
-
-p_le_parse_att1:
-0623 c0050625 beq attop_read_request ,p_le_parse_att_read_request 
-0624 202058ad branch le_parse_att + 2 
-
-p_le_parse_att_read_request:
-0625 68090478 fetcht 2 ,mem_le_att_handle 
-0626 6800c4e9 fetch 1 ,mem_le_configuration 
-0627 c281862c bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
-
-p_le_send_att_read_response:
-0628 68010478 fetch 2 ,mem_le_att_handle 
-0629 c009da76 beq 0x13 ,le_send_att_error_response_notfound 
-062a 68090478 fetcht 2 ,mem_le_att_handle 
-062b 202059bf branch le_send_att_read_response 
-
-p_le_send_att_read_response_check_auth:
-062c 680144fa fetch 2 ,mem_le_pairing_handle 
-062d 98467c00 isub temp ,null 
-062e 24228628 nbranch p_le_send_att_read_response ,zero 
-062f 20405a42 call le_check_encrypt_state 
-0630 24340628 nbranch p_le_send_att_read_response ,user 
-0631 202059e2 branch le_send_att_read_response_check_auth + 5 
-
-p_le_parse_smp:
-0632 e8c08000 ifetch 1 ,contr 
-0633 c0008636 beq smp_pairing_request ,p_le_parse_smp_pairing_request 
-0634 c0028638 beq smp_pairing_failed ,p_le_parse_smp_pairing_failed 
-0635 20205af5 branch le_parse_smp + 1 
-
-p_le_parse_smp_pairing_request:
-0636 704b6901 jam 1 ,mem_le_send_security_request_flag 
-0637 20205b09 branch le_parse_smp_pairing_request 
-
-p_le_parse_smp_pairing_failed:
-0638 7011c582 jam zcode_82 ,mem_zcode_temp_param0 
-0639 2020077b branch p_zcode_entrance 
-
-p_le_adv_not_match:
-063a 68008016 fetch 1 ,mem_le_ch_mapped 
-063b c093d6f2 bne 39 ,le_adv_loop 
-063c 20400640 call p_le_adv_random_delay 
-063d d8e00000 arg le_adv_interval_timer ,queue 
-063e 68014482 fetch 2 ,mem_le_adv_interval 
-063f 20207f08 branch timer_init 
-
-p_le_adv_random_delay:
-0640 180a7e00 random pdata 
-0641 d84001ff arg 0x1ff ,temp 
-0642 98417e00 iand temp ,pdata 
-0643 1fe0fefa add pdata ,250 ,pdata 
-0644 20203cbe branch delay 
-
-p_le_lpm_setmult:
-0645 7855fc00 disable wake 
-0646 20370648 branch p_le_lpm_set_mult_attempt ,attempt 
-0647 2436d806 nbranch le_lpm_lost ,match 
-
-p_le_lpm_set_mult_attempt:
-0648 20402bcb call lpm_match 
-0649 680140c1 fetch 2 ,mem_rx_window_sniff 
-064a 6001044d store 2 ,mem_le_receive_window 
-064b 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-064c c081abde bne 3 ,lpm_mult_short 
-064d 202057fb branch le_lpm_set_mult_attempt + 3 
-
-p_le_mouse_bb_event_connect_complete:
-064e 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
-064f 247a0000 nrtn blank 
-0650 68008478 fetch 1 ,mem_le_att_handle 
-0651 1fe67e1a sub pdata ,26 ,pdata 
-0652 24628000 nrtn zero 
-0653 7046c600 jam 0 ,mem_le_start_encrypt_timer 
-0654 20203d60 branch mouse_le_write_enable 
-
-p_twspi_reset:
-0655 68108077 hfetch 1 ,core_gpio_out3 
-0656 1fe17efd and_into 0xfd ,pdata 
-0657 60108077 hstore 1 ,core_gpio_out3 
-0658 68188073 hfetcht 1 ,core_gpio_oe3 
-0659 18418402 or_into 0x2 ,temp 
-065a 60188073 hstoret 1 ,core_gpio_oe3 
-065b 204063ee call twspi_disable 
-065c 184104fd and_into 0xfd ,temp 
-065d 2000000d nop 13 
-065e 20400662 call p_twspi_enable 
-065f 60188073 hstoret 1 ,core_gpio_oe3 
-0660 20600000 rtn 
-
-p_spid_init:
-0661 204064dd call spid_init_common 
-
-p_twspi_enable:
-0662 68108081 hfetch 1 ,core_gpio_sel1 
-0663 79207e00 set1 0 ,pdata 
-0664 793ffe01 set0 1 ,pdata 
-0665 793ffe03 set0 3 ,pdata 
-0666 60108081 hstore 1 ,core_gpio_sel1 
-0667 20600000 rtn 
-
-p_page_wait_fhs_reply_ok:
-0668 7011c500 jam zcode_00 ,mem_zcode_temp_param0 
-0669 2020077b branch p_zcode_entrance 
-
-p_role_switch_master:
-066a 204021c9 call role_switch_check 
-066b 24740000 nrtn user 
-
-p_wait_role_switch_anchor:
-066c 78547c00 disable user 
-066d 70001120 jam param_newconnto ,mem_newconnto_counter 
-066e 793f800b set0 mark_fhs_already_good ,mark 
-066f 793f802d set0 mark_role_switch_receive_fhs ,mark 
-
-p_roles_waitfhs_loop:
-0670 20402a4f call rf_setup_time_master_slot 
-0671 204022e6 call master_recv_packet 
-0672 c5058677 bmark1 mark_fhs_already_good ,p_roles_replyto_fhs 
-0673 20402455 call new_conn_timeout 
-0674 243a0670 nbranch p_roles_waitfhs_loop ,blank 
-0675 c516867f bmark1 mark_role_switch_receive_fhs ,p_roles_replyto_fhs1 
-0676 202021ec branch role_switch_fail_master 
-
-p_roles_replyto_fhs:
-0677 20402a4d call rf_setup_time_slave_slot 
-0678 d8200010 arg type_id ,type 
-0679 204022dc call master_send_packet 
-067a 7920002d set1 mark_role_switch_receive_fhs ,mark 
-067b 793f800b set0 mark_fhs_already_good ,mark 
-067c 18000801 force 1 ,am_addr 
-067d 70001102 jam 2 ,mem_newconnto_counter 
-067e 20200670 branch p_roles_waitfhs_loop 
-
-p_roles_replyto_fhs1:
-067f 68020165 fetch 4 ,mem_clke_bt 
-0680 1fe0fe08 pincrease 8 
-0681 60020165 store 4 ,mem_clke_bt 
-0682 202021f8 branch roles_replyto_fhs + 4 
-
-p_process_dmh:
-0683 c516264d bmark1 mark_first_packet ,end_of_packet 
-0684 2020258f branch process_dmh + 1 
-
-p_quit_connection_cont:
-0685 204033af call app_disconn_reason_collect_bt 
-0686 204026e9 call sniff_exit 
-0687 700a9902 jam bt_evt_bb_disconnected ,mem_fifo_temp 
-0688 20407d86 call ui_ipc_send_event 
-0689 20405cf7 call init_lmp_work 
-068a 20404d6b call l2cap_init_work 
-068b 2020246e branch quit_connection_cont + 8 
-
-p_prepare_tx:
-068c 68008030 fetch 1 ,mem_state 
-068d 2feffe00 isolate1 state_inconn ,pdata 
-068e 20408690 call p_bt_power_ctrl ,true 
-068f 2020248a branch prepare_tx + 1 
-
-p_bt_power_ctrl:
-0690 68008047 fetch 1 ,mem_arq 
-0691 2feffe03 isolate1 wack ,pdata 
-0692 20408714 call power_ctrl_pac_succ_decrs ,true 
-0693 24408710 ncall power_ctrl_pac_succ_incrs ,true 
-0694 2020071e branch power_ctrl_start 
-
-p_slave_conn_recv_packet:
-0695 204024f0 call slave_receive_master_slot 
-0696 242c28f9 nbranch shutdown_radio ,sync 
-0697 204029bb call save_rssi 
-0698 2040006b call p_rssi_signal 
-0699 20202518 branch slave_conn_recv_packet + 4 
-
-p_lpm_dispatch:
-069a c6130000 rtnmark1 mark_24g 
-069b 20402afa call lpo_calibration 
-069c 6801c16f fetch 3 ,mem_clks_per_lpo 
-069d 207a0000 rtn blank 
-069e 6800c091 fetch 1 ,mem_lpm_mode 
-069f 207a0000 rtn blank 
-06a0 6800c65a fetch 1 ,mem_ssp_enable 
-06a1 203a06a4 branch p_lpm_dispatch_next ,blank 
-06a2 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
-06a3 207a0000 rtn blank 
-
-p_lpm_dispatch_next:
-06a4 6800c4c0 fetch 1 ,mem_le_sc_calc 
-06a5 247a0000 nrtn blank 
-06a6 20402c3a call lpm_check_wake_lock 
-06a7 247a0000 nrtn blank 
-06a8 6800c040 fetch 1 ,mem_context 
-06a9 2fe00e03 compare 3 ,pdata ,0x7 
-06aa 2420ab9d nbranch lpm_dispatch_unconn ,true 
-06ab 68014042 fetch 2 ,mem_context + coffset_tsniff 
-06ac d840ffff arg 0xffff ,temp 
-06ad 98467c00 isub temp ,null 
-06ae 20628000 rtn zero 
-06af 20202b7d branch lpm_dispatch_next + 9 
-
-p_lpm_set_mult:
-06b0 7855fc00 disable wake 
-06b1 68008030 fetch 1 ,mem_state 
-06b2 c4008000 rtnbit0 state_insniff 
-06b3 2436abd0 nbranch lpm_not_match ,match 
-06b4 20402bcb call lpm_match 
-06b5 680140c1 fetch 2 ,mem_rx_window_sniff 
-06b6 6001003e store 2 ,mem_rx_window 
-06b7 68008047 fetch 1 ,mem_arq 
-06b8 c281abde bbit1 wack ,lpm_mult_short 
-06b9 c586abde bmark0 mark_lpm_mult_enable ,lpm_mult_short 
-06ba 20405274 call l2cap_malloc_is_fifo_empty 
-06bb 243a2bde nbranch lpm_mult_short ,blank 
-06bc 205a06be call p_lpm_set_attemp_timeout ,blank 
-06bd 20202bbe branch lpm_set_mult + 13 
-
-p_lpm_set_attemp_timeout:
-06be 70008a01 jam 1 ,mem_current_sniff_attempt 
-06bf 70008b00 jam 0 ,mem_current_sniff_timeout 
-06c0 20600000 rtn 
-
-p_mouse_bb_disconnected:
-06c1 7011c501 jam zcode_01 ,mem_zcode_temp_param0 
-06c2 2020077b branch p_zcode_entrance 
-
-p_hid_rx_process:
-06c3 7011c502 jam zcode_02 ,mem_zcode_temp_param0 
-06c4 2020077b branch p_zcode_entrance 
-
-p_parse_lmp_accepted:
-06c5 68008552 fetch 1 ,mem_rxbuf + 1 
-06c6 600084c9 store 1 ,mem_lmi_accepted_opcode 
-06c7 c00986c9 beq lmp_switch_req ,p_parse_lmp_accepted_switch 
-06c8 20205db4 branch parse_lmp_accepted + 3 
-
-p_parse_lmp_accepted_switch:
-06c9 20405dcf call parse_lmp_accepted_switch 
-06ca 704b0101 jam 1 ,mem_bt_rcvd_switch_req_accept 
-06cb 6800cb03 fetch 1 ,mem_bt_send_lmp_setup_complete 
-06cc 207a0000 rtn blank 
-06cd 704b0302 jam 2 ,mem_bt_send_lmp_setup_complete 
-06ce 20600000 rtn 
-
-p_send_lmp:
-06cf 7011c510 jam zcode_10 ,mem_zcode_temp_param0 
-06d0 2020077b branch p_zcode_entrance 
-
-p_process_conn_sm:
-06d1 204062bc call lmo_fifo_check 
-06d2 247a0000 nrtn blank 
-
-p_process_conn_sm_continue:
-06d3 68008055 fetch 1 ,mem_conn_sm 
-06d4 207a0000 rtn blank 
-06d5 c00206f3 beq conn_sm_send_conn_req ,p_host_create_conn_send_conn_req 
-06d6 c00806d8 beq conn_sm_wait_switch_after_host_connection ,p_host_creat_conn_wait_switch 
-06d7 20206320 branch process_conn_sm_continue + 2 
-
-p_host_creat_conn_wait_switch:
-06d8 6800c55b fetch 1 ,mem_switch_flag 
-06d9 c1000000 rtneq switch_flag_init 
-06da c00086dc beq switch_flag_accept ,p_host_create_conn_switch_accept 
-06db 2020635f branch host_creat_conn_wait_switch + 3 
-
-p_host_create_conn_switch_accept:
-06dc 20748000 rtn master 
-
-p_host_create_conn_auth_pair:
-06dd 6800816d fetch 1 ,mem_connection_options 
-06de c28006e0 bbit1 connection_auth ,p_host_create_conn_auth_pair_true 
-06df 20206399 branch host_create_conn_auth_pair + 1 
-
-p_host_create_conn_auth_pair_true:
-06e0 6800cb03 fetch 1 ,mem_bt_send_lmp_setup_complete 
-06e1 c000e39d beq 1 ,host_create_conn_auth_pair_true 
-06e2 6800c1bd fetch 1 ,mem_link_key_exists 
-06e3 203a63a9 branch host_create_conn_auth_pair_nokey ,blank 
-06e4 680084d1 fetch 1 ,mem_lmp_conn_state 
-06e5 c4018000 rtnbit0 sent_setup_complete 
-06e6 c4010000 rtnbit0 received_setup_complete 
-06e7 6800cb02 fetch 1 ,mem_bt_send_max_slot_req_accept_after_switch 
-06e8 207a0000 rtn blank 
-06e9 704b0200 jam 0 ,mem_bt_send_max_slot_req_accept_after_switch 
-06ea 680204e9 fetch 4 ,mem_aurand_send_delay_time 
-06eb d8400014 arg 20 ,temp 
-06ec 98408400 iadd temp ,temp 
-06ed 1c427e00 copy clkn_bt ,pdata 
-06ee 98467c00 isub temp ,null 
-06ef 242106f1 nbranch p_bt_send_max_slot_req_accept_after_switch_wait ,positive 
-06f0 20206349 branch host_create_conn_auth 
-
-p_bt_send_max_slot_req_accept_after_switch_wait:
-06f1 704b0201 jam 1 ,mem_bt_send_max_slot_req_accept_after_switch 
-06f2 20600000 rtn 
-
-p_host_create_conn_send_conn_req:
-06f3 70480914 jam 20 ,mem_mouse_send_switch_req_timer 
-06f4 2020636f branch host_create_conn_send_conn_req 
-
-p_check_51cmd_once_continue:
-06f5 204062bc call lmo_fifo_check 
-06f6 243a7ddb nbranch check_51cmd_restore ,blank 
-06f7 68008a99 fetch 1 ,mem_fifo_temp 
-06f8 c584fdd6 bmark0 mark_context ,check_51cmd_check_idle 
-06f9 c00f86fd beq bt_cmd_store_reconn_info_le ,p_flash_store_le_reconn_info 
-06fa c0100700 beq bt_cmd_store_reconn_info_bt ,p_flash_store_bd_reconn_info 
-06fb c009070a beq bt_cmd_le_update_conn ,p_check_51cmd_ble_update_connect_param 
-06fc 20207dca branch check_51cmd_once_continue + 2 
-
-p_flash_store_le_reconn_info:
-06fd 70018534 jam rec_4_mode ,mem_record_bt_mode 
-06fe 6803044f fetch 6 ,mem_le_plap 
-06ff 20200702 branch p_flash_store_reconn_info 
-
-p_flash_store_bd_reconn_info:
-0700 70018533 jam rec_3_mode ,mem_record_bt_mode 
-0701 68030040 fetch 6 ,mem_plap 
-
-p_flash_store_reconn_info:
-0702 60030186 store 6 ,mem_temp_lap 
-
-p_mouse_store_remote_bdaddr:
-0703 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-0704 c4038000 rtnbit0 mouse_store_eeprom_flag 
-0705 d8e00007 arg mouse_store_eeprom_flag ,queue 
-0706 204043d2 call mouse_disable_function_flag 
-0707 204042e8 call mouse_check_device_addr 
-
-p_mouse_unplug_clean_bdaddr:
-0708 204042fb call mouse_before_store_reconn_info 
-0709 20200317 branch p_mouse_store_flash_device_info 
-
-p_check_51cmd_ble_update_connect_param:
-070a 20405890 call le_fifo_check_full 
-070b 247a0000 nrtn blank 
-070c 20205abf branch le_l2cap_tx_update_req 
-
-power_ctrl_pac_succ_cnt_init:
-070d 704d3501 jam 1 ,mem_power_ctrl_level 
-070e 704d3200 jam 0 ,mem_power_ctrl_pac_succ_cnt 
-070f 20600000 rtn 
-
-power_ctrl_pac_succ_incrs:
-0710 6800cd32 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0711 1fe0fe01 increase 1 ,pdata 
-0712 6000cd32 store 1 ,mem_power_ctrl_pac_succ_cnt 
-0713 20600000 rtn 
-
-power_ctrl_pac_succ_decrs:
-0714 6800cd32 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0715 1fe67c02 sub pdata ,2 ,null 
-0716 2441071c ncall power_ctrl_pac_succ_cnt_reinit ,positive 
-0717 6800cd32 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0718 c1000000 rtneq 0 
-0719 1fe0ffff increase -1 ,pdata 
-071a 6000cd32 store 1 ,mem_power_ctrl_pac_succ_cnt 
-071b 20600000 rtn 
-
-power_ctrl_pac_succ_cnt_reinit:
-071c 704d3203 jam 3 ,mem_power_ctrl_pac_succ_cnt 
-071d 20600000 rtn 
-
-power_ctrl_start:
-071e 68014682 fetch 2 ,mem_ui_state_map 
-071f c3858000 rtnbit1 ui_state_ble_adv 
-0720 c3838000 rtnbit1 ui_state_bt_reconnect 
-0721 c3830000 rtnbit1 ui_state_bt_discovery 
-0722 da204cbb arg mem_rssi_signal_buf ,rega 
-0723 204002b0 call p_rssi_average 
-0724 6008cd33 storet 1 ,mem_rssi_avg_received 
-0725 58000082 setarg rssi_dis_max_24g 
-0726 c5130728 bmark1 mark_24g ,power_ctrl_start_next 
-0727 58000080 setarg rssi_dis_max_ble 
-
-power_ctrl_start_next:
-0728 98467c00 isub temp ,null 
-0729 24210740 nbranch power_ctrl_txpower_incrs_force ,positive 
-072a 6800cd32 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-072b 1fe67c02 sub pdata ,2 ,null 
-072c 24210730 nbranch power_ctrl_txpower_decrs_check ,positive 
-072d 6800cd32 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-072e c0000741 beq 0 ,power_ctrl_txpower_incrs 
-072f 20600000 rtn 
-
-power_ctrl_txpower_decrs_check:
-0730 6800cd32 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0731 c1900000 rtnne 32 
-0732 704d3200 jam 0 ,mem_power_ctrl_pac_succ_cnt 
-
-power_ctrl_txpower_decrs:
-0733 6808cd33 fetcht 1 ,mem_rssi_avg_received 
-0734 58000077 setarg rssi_dis_min_24g 
-0735 c5130737 bmark1 mark_24g ,power_ctrl_txpower_decrs_next 
-0736 58000075 setarg rssi_dis_min_ble 
-
-power_ctrl_txpower_decrs_next:
-0737 98467c00 isub temp ,null 
-0738 24610000 nrtn positive 
-0739 6800cd35 fetch 1 ,mem_power_ctrl_level 
-073a c0000748 beq 0 ,power_ctrl_decrs_level0 
-073b 1fe0ffff increase -1 ,pdata 
-073c 6000cd35 store 1 ,mem_power_ctrl_level 
-073d c0000748 beq 0 ,power_ctrl_decrs_level0 
-
-power_ctrl_decrs_level1:
-
-power_ctrl_incrs_level1:
-073e 7041de00 jam tx_power_0db ,mem_tx_power 
-073f 20600000 rtn 
-
-power_ctrl_txpower_incrs_force:
-0740 704d3200 jam 0 ,mem_power_ctrl_pac_succ_cnt 
-
-power_ctrl_txpower_incrs:
-0741 6800cd35 fetch 1 ,mem_power_ctrl_level 
-0742 c0010746 beq 2 ,power_ctrl_incrs_level2 
-0743 1fe0fe01 increase 1 ,pdata 
-0744 6000cd35 store 1 ,mem_power_ctrl_level 
-0745 c000873e beq 1 ,power_ctrl_incrs_level1 
-
-power_ctrl_incrs_level2:
-0746 7041de02 jam tx_power_5db ,mem_tx_power 
-0747 20600000 rtn 
-
-power_ctrl_decrs_level0:
-0748 7041de04 jam tx_power_f5db ,mem_tx_power 
-0749 20600000 rtn 
-
-p_set_freq_tx:
-074a 60088017 storet 1 ,mem_last_freq 
-074b 1840a200 add temp ,0 ,rega 
-074c 20402981 call rf_write_freq 
-074d 58000500 setarg param_pll_setup 
-074e 20402a8f call sleep 
-
-p_rf_tx_enable:
-074f 70890601 jam 0x1 ,rfen_adc 
-0750 7089003c jam 0x3c ,rfen_rx 
-0751 708901e0 jam 0xe0 ,rfen_tx 
-0752 2000000a nop 10 
-0753 70890201 jam 0x01 ,rfen_mdm 
-0754 7089023d jam 0x3d ,rfen_mdm 
-0755 2000000a nop 10 
-0756 708903b7 jam 0xb7 ,rfen_sn 
-0757 2000000a nop 10 
-0758 7089027d jam 0x7d ,rfen_mdm 
-0759 6800c1de fetch 1 ,mem_tx_power 
-075a c0010762 beq tx_power_5db ,p_set_tx_power_5db 
-075b c0020767 beq tx_power_f5db ,p_set_tx_power_f5db 
-075c c0100776 beq tx_power_pair ,p_set_tx_power_pair 
-
-p_set_tx_power_0db:
-075d 2040076c call p_rx_low_sens 
-075e 708955d0 jam 0xd0 ,0x8955 
-075f 708956e0 jam 0xe0 ,0x8956 
-0760 7089586c jam 0x6c ,0x8958 
-0761 2020294b branch set_tx_power_0db 
-
-p_set_tx_power_5db:
-0762 20400771 call p_rx_high_sens 
-0763 708955d0 jam 0xd0 ,0x8955 
-0764 708956e0 jam 0xe0 ,0x8956 
-0765 7089583c jam 0x3c ,0x8958 
-0766 20202953 branch set_tx_power_5db 
-
-p_set_tx_power_f5db:
-0767 2040076c call p_rx_low_sens 
-0768 708955d0 jam 0xd0 ,0x8955 
-0769 708956c0 jam 0xc0 ,0x8956 
-076a 7089586c jam 0x6c ,0x8958 
-076b 2020295b branch set_tx_power_f5db 
-
-p_rx_low_sens:
-076c 70894c5b jam 0x5b ,0x894c 
-076d 70894d96 jam 0x96 ,0x894d 
-076e 70894e2c jam 0x2c ,0x894e 
-076f 70894f46 jam 0x46 ,0x894f 
-0770 20600000 rtn 
-
-p_rx_high_sens:
-0771 70894cfb jam 0xfb ,0x894c 
-0772 70894def jam 0xef ,0x894d 
-0773 70894eec jam 0xec ,0x894e 
-0774 70894f5e jam 0x5e ,0x894f 
-0775 20600000 rtn 
-
-p_set_tx_power_pair:
-0776 708956c2 jam 0xc2 ,0x8956 
-0777 708955d0 jam 0xd0 ,0x8955 
-0778 20600000 rtn 
-
-p_shutdown_radio:
-0779 18002a08 force 8 ,radio_ctrl 
-077a 202028fa branch shutdown_radio + 1 
-
-p_zcode_entrance:
-077b 680891c5 fetcht 1 ,mem_zcode_temp_param0 
-077c 18518400 rshift4 temp ,temp 
-077d 6800cb51 fetch 1 ,mem_zcode_current_number 
-077e 98467c00 isub temp ,null 
-077f 20228798 branch p_zcode_run ,zero 
-0780 6008cb51 storet 1 ,mem_zcode_current_number 
-0781 18408401 increase 1 ,temp 
-0782 58000100 setarg zcode_buff_size 
-0783 984f8400 imul32 temp ,temp 
-0784 6801cb52 fetch 3 ,mem_xip_flash_offset 
-0785 98467e00 isub temp ,pdata 
-0786 6809cb55 fetcht 3 ,mem_flash_start_addr 
-0787 9840fe00 iadd temp ,pdata 
-0788 1fe0fffb increase -5 ,pdata 
-0789 6001cb58 store 3 ,mem_flash_address 
-078a 20400352 call p_flash_release_deep_power_down 
-
-p_zcode_read_loop:
-078b 6801cb58 fetch 3 ,mem_flash_address 
-078c d8400100 arg zcode_buff_size ,temp 
-078d da201f00 arg mem_zcode_buff ,rega 
-078e 20406562 call spid_read_flash 
-078f 68021f00 fetch 4 ,mem_zcode_buff 
-0790 203a078b branch p_zcode_read_loop ,blank 
-0791 20400324 call p_mouse_spi_init 
-0792 58001f00 setarg mem_zcode_buff 
-0793 60014199 store 2 ,mem_patch_ptr 
-0794 70419b40 jam zcode_code_size ,mem_patch_len 
-0795 204064ca call load_ucode 
-0796 58000000 setarg 0 
-0797 60024199 store 4 ,mem_patch_ptr 
-
-p_zcode_run:
-0798 680091c5 fetch 1 ,mem_zcode_temp_param0 
-0799 20200001 branch p_zcode 
-
-p_drawing_optima:
-079a 6802469b fetch 4 ,mem_mouse_x 
-079b 207a0000 rtn blank 
-079c 204007ed call p_data_abs_check 
-079d 58000006 setarg 0x06 
-079e 204007e0 call p_data_greater_than_check 
-079f 58000003 setarg 0x03 
-07a0 204007e6 call p_data_less_than_check 
-07a1 6800cb0d fetch 1 ,mem_mouse_asm_flag 
-07a2 c00087a6 beq 1 ,p_drawing_optima_modify 
-
-p_drawing_optima_init:
-07a3 df200005 arg 5 ,loopcnt 
-07a4 d8a04b0d arg mem_mouse_asm_flag ,contw 
-07a5 20207ed4 branch clear_mem 
-
-p_drawing_optima_modify:
-07a6 68014b0e fetch 2 ,mem_mouse_x_pre 
-07a7 600111be store 2 ,mem_data_pre 
-07a8 6801469b fetch 2 ,mem_mouse_x 
-07a9 600111c0 store 2 ,mem_data_current 
-07aa 204007b9 call p_drawing_optima_data 
-07ab 680111be fetch 2 ,mem_data_pre 
-07ac 60014b0e store 2 ,mem_mouse_x_pre 
-07ad 680111c0 fetch 2 ,mem_data_current 
-07ae 6001469b store 2 ,mem_mouse_x 
-07af 68014b10 fetch 2 ,mem_mouse_y_pre 
-07b0 600111be store 2 ,mem_data_pre 
-07b1 6801469d fetch 2 ,mem_mouse_y 
-07b2 600111c0 store 2 ,mem_data_current 
-07b3 204007b9 call p_drawing_optima_data 
-07b4 680111be fetch 2 ,mem_data_pre 
-07b5 60014b10 store 2 ,mem_mouse_y_pre 
-07b6 680111c0 fetch 2 ,mem_data_current 
-07b7 6001469d store 2 ,mem_mouse_y 
-07b8 20600000 rtn 
-
-p_drawing_optima_data:
-07b9 680111be fetch 2 ,mem_data_pre 
-07ba 680911c0 fetcht 2 ,mem_data_current 
-07bb 9840fe00 iadd temp ,pdata 
-07bc 600191c2 store 3 ,mem_data_sum 
-07bd 2feffe10 isolate1 16 ,pdata 
-07be 202087c6 branch p_data_sum_overflow ,true 
-07bf 680091c3 fetch 1 ,mem_data_sum + 1 
-07c0 c07f87cd beq 0xff ,p_data_sum_n 
-07c1 680091c2 fetch 1 ,mem_data_sum 
-
-p_data_store_pre:
-07c2 1fe37e00 rshift pdata ,pdata 
-07c3 600111be store 2 ,mem_data_pre 
-07c4 600111c0 store 2 ,mem_data_current 
-07c5 20600000 rtn 
-
-p_data_sum_overflow:
-07c6 680091c3 fetch 1 ,mem_data_sum + 1 
-07c7 c00007ca beq 0 ,p_data_sum_overflow_p 
-07c8 680191c2 fetch 3 ,mem_data_sum 
-07c9 202007c2 branch p_data_store_pre 
-
-p_data_sum_overflow_p:
-07ca 7011c400 jam 0 ,mem_data_sum + 2 
-07cb 680091c2 fetch 1 ,mem_data_sum 
-07cc 202007c2 branch p_data_store_pre 
-
-p_data_sum_n:
-07cd 680091c2 fetch 1 ,mem_data_sum 
-07ce 204007d8 call p_pdata_get_half 
-07cf 600091be store 1 ,mem_data_pre 
-07d0 600091c0 store 1 ,mem_data_current 
-07d1 203a07d6 branch p_data_zero ,blank 
-07d2 580000ff setarg 0xff 
-
-p_data_set_direction:
-07d3 600091bf store 1 ,mem_data_pre + 1 
-07d4 600091c1 store 1 ,mem_data_current + 1 
-07d5 20600000 rtn 
-
-p_data_zero:
-07d6 58000000 setarg 0 
-07d7 202007d3 branch p_data_set_direction 
-
-p_pdata_get_half:
-07d8 1fe67e00 sub pdata ,0 ,pdata 
-07d9 60008aae store 1 ,mem_rega 
-07da 68008aae fetch 1 ,mem_rega 
-07db 1fe37e00 rshift pdata ,pdata 
-07dc 60008aae store 1 ,mem_rega 
-07dd 68008aae fetch 1 ,mem_rega 
-07de 1fe67e00 sub pdata ,0 ,pdata 
-07df 20600000 rtn 
-
-p_data_greater_than_check:
-07e0 9a267c00 isub rega ,null 
-07e1 242107eb nbranch p_enable_asm ,positive 
-07e2 9a467c00 isub regb ,null 
-07e3 242107eb nbranch p_enable_asm ,positive 
-
-p_disable_asm:
-07e4 704b0d00 jam 0 ,mem_mouse_asm_flag 
-07e5 20600000 rtn 
-
-p_data_less_than_check:
-07e6 9a267c00 isub rega ,null 
-07e7 24610000 nrtn positive 
-07e8 9a467c00 isub regb ,null 
-07e9 24610000 nrtn positive 
-07ea 202007e4 branch p_disable_asm 
-
-p_enable_asm:
-07eb 704b0d01 jam 1 ,mem_mouse_asm_flag 
-07ec 20600000 rtn 
-
-p_data_abs_check:
-07ed 6801469b fetch 2 ,mem_mouse_x 
-07ee 600111c0 store 2 ,mem_data_current 
-07ef 204007f6 call p_data_abs 
-07f0 1fe22200 copy pdata ,rega 
-07f1 6801469d fetch 2 ,mem_mouse_y 
-07f2 600111c0 store 2 ,mem_data_current 
-07f3 204007f6 call p_data_abs 
-07f4 1fe22400 copy pdata ,regb 
-07f5 20600000 rtn 
-
-p_data_abs:
-07f6 680091c1 fetch 1 ,mem_data_current + 1 
-07f7 c07f87fb beq 0xff ,p_data_reversal 
-07f8 680091c0 fetch 1 ,mem_data_current 
-
-p_data_abs_store:
-07f9 1fe17eff and_into 0xff ,pdata 
-07fa 20600000 rtn 
-
-p_data_reversal:
-07fb 680111c0 fetch 2 ,mem_data_current 
-07fc 1fe67e00 sub pdata ,0 ,pdata 
-07fd 202007f9 branch p_data_abs_store 
-org 0x2000
-
-start:
-2000 20402abc call lpmstate 
-
-soft_reset:
-2001 44804000 bpatch patch00_0 ,mem_patch00 
-2002 20800000 clear_stack 
-2003 2040640d call spi_ncs_gpio_init 
-2004 2040296c call initialize_radio 
-2005 204065a3 call iicd_init_12m 
-2006 20402a96 call init_param 
-2007 20404d6a call l2cap_init 
-2008 4480c000 bpatch patch00_1 ,mem_patch00 
-2009 20406a03 call rfcomm_init 
-200a 20405cf6 call init_lmp 
-200b 20407ccc call ui_init 
-200c 204032d8 call app_init 
-200d 2455e89c ncall load_chip_option ,wake 
-200e 44814000 bpatch patch00_2 ,mem_patch00 
-200f 2055b2e3 call app_lpm_init ,wake 
-2010 2040756a call publickey_init 
-2011 2055ab41 call lpm_recover_clk ,wake 
-
-main_loop:
-2012 4481c000 bpatch patch00_3 ,mem_patch00 
-2013 204076dc call sp_calc_sequence 
-2014 20407aaf call sp_calc_sequence_256 
-2015 2040756d call sp_calc_sequence_256_check 
-2016 2040535c call le_dispatch 
-2017 44824000 bpatch patch00_4 ,mem_patch00 
-2018 20402038 call idle_dispatch 
-2019 204032ed call app_process_idle 
-201a 2040208f call inquiry_dispatch 
-201b 204022f8 call inquiry_scan_dispatch 
-201c 2040236a call page_scan_dispatch 
-201d 20402021 call connection_dispatch 
-201e 20402b6a call lpm_dispatch 
-201f 20402c72 call g24_dispatch 
-2020 20202012 branch main_loop 
-
-connection_dispatch:
-2021 20402026 call connection_incontext 
-2022 c6848000 rtnmark0 mark_context 
-2023 793f8009 set0 mark_context ,mark 
-2024 20402223 call context_save 
-2025 202053ce branch le_disable 
-
-connection_incontext:
-2026 4482c000 bpatch patch00_5 ,mem_patch00 
-2027 2040225e call context_search_insniff 
-2028 2422a02f nbranch connection_nosniff ,zero 
-2029 2040220a call context_load 
-202a 1a208c01 add rega ,coffset_mode ,contr 
-202b e8c08000 ifetch 1 ,contr 
-202c c2805360 bbit1 mode_le ,le_conn_dispatch 
-202d c280a166 bbit1 mode_master ,master_dispatch 
-202e 202023cf branch slave_dispatch 
-
-connection_nosniff:
-202f 2040222b call context_get_next 
-2030 1f227c00 copy loopcnt ,null 
-2031 20628000 rtn zero 
-2032 2040220a call context_load 
-2033 68008030 fetch 1 ,mem_state 
-2034 c281a0d3 bbit1 state_inpage ,master_page 
-2035 68008031 fetch 1 ,mem_mode 
-2036 c280a166 bbit1 mode_master ,master_dispatch 
-2037 202023cf branch slave_dispatch 
-
-idle_dispatch:
-2038 6800c1ce fetch 1 ,mem_hci_cmd 
-2039 207a0000 rtn blank 
-203a c000a048 beq hci_cmd_inquiry ,idle_inquiry 
-203b c001204d beq hci_cmd_inquiry_cancel ,idle_inquiry_cancel 
-203c c001a050 beq hci_cmd_remote_name_req ,idle_remote_name_req 
-203d c002a055 beq hci_cmd_create_conn ,idle_create_conn 
-203e c00da045 beq hci_cmd_le_create_conn ,idle_le_create_conn 
-203f 20402257 call context_search_conn_handle 
-2040 20628000 rtn zero 
-2041 2040225a call context_search_plap 
-2042 20628000 rtn zero 
-
-idle_exit:
-2043 7041ce00 jam 0 ,mem_hci_cmd 
-2044 20600000 rtn 
-
-idle_le_create_conn:
-2045 70049b1b jam hci_cmd_le_create_conn ,mem_cmd_le_create_conn 
-2046 7041ce00 jam 0 ,mem_hci_cmd 
-2047 20600000 rtn 
-
-idle_inquiry:
-2048 7920001c set1 mark_inquiry_on ,mark 
-2049 793f801e set0 mark_inquiry_trainb ,mark 
-204a 70008fff jam param_ninquiry ,mem_ninqy_index 
-204b 70008d1f jam 31 ,mem_nfreq_index_inq 
-204c 20202043 branch idle_exit 
-
-idle_inquiry_cancel:
-204d 793f801c set0 mark_inquiry_on ,mark 
-204e 18003600 force 0 ,stop_watch 
-204f 20202043 branch idle_exit 
-
-idle_remote_name_req:
-2050 2040225a call context_search_plap 
-2051 20628000 rtn zero 
-2052 18000401 force lmp_name_req ,temp 
-2053 70016e05 jam 5 ,mem_nameres_cnt 
-2054 2020205c branch idle_start_page 
-
-idle_create_conn:
-2055 44834000 bpatch patch00_6 ,mem_patch00 
-
-idle_create_conn_device:
-2056 680341d0 fetch 6 ,mem_hci_plap 
-2057 203a2043 branch idle_exit ,blank 
-2058 70468101 jam reconnect_hid ,memui_reconnect_mode 
-2059 70005503 jam conn_sm_wait_features_res ,mem_conn_sm 
-205a 2020205b branch idle_create_conn_cont 
-
-idle_create_conn_cont:
-205b 18000425 force lmp_version_req ,temp 
-
-idle_start_page:
-205c 4483c000 bpatch patch00_7 ,mem_patch00 
-205d 680080f1 fetch 1 ,mem_page_mode 
-205e 203a2062 branch idle_page_mode_r0 ,blank 
-205f 1fe9fe00 lshift3 pdata ,pdata 
-2060 1ff27e00 lshift4 pdata ,pdata 
-2061 1fe0ffff increase -1 ,pdata 
-
-idle_page_mode_r0:
-2062 6000c0a6 store 1 ,mem_npage 
-2063 600080f0 store 1 ,mem_npage_index 
-2064 70008e1f jam 31 ,mem_nfreq_index_page 
-2065 793f800c set0 mark_page_trainb ,mark 
-2066 2040223b call context_new 
-2067 2422a083 nbranch idle_page_fail ,zero 
-2068 20402a6f call get_free_amaddr 
-2069 60008077 store 1 ,mem_amaddr 
-206a 6008807c storet 1 ,mem_lmo_opcode2 
-206b 680341d0 fetch 6 ,mem_hci_plap 
-206c 60030040 store 6 ,mem_plap 
-206d 44844001 bpatch patch01_0 ,mem_patch01 
-206e 20407f15 call timer_reinit 
-206f 18007e00 force 0 ,pdata 
-2070 2841fe01 compare lmp_name_req ,temp ,0xff 
-2071 7d20fe05 nsetflag true ,state_init_seq ,pdata 
-2072 79207e03 set1 state_inpage ,pdata 
-2073 60008030 store 1 ,mem_state 
-2074 700a9903 jam bt_evt_reconn_started ,mem_fifo_temp 
-2075 20407d86 call ui_ipc_send_event 
-2076 18007e00 force 0 ,pdata 
-2077 7920fe04 setflag true ,smap_name_req ,pdata 
-2078 6000804c store 1 ,mem_state_map 
-2079 58000000 setarg 0 
-207a 79207e01 set1 mode_master ,pdata 
-207b 60008031 store 1 ,mem_mode 
-207c 7834fc00 enable master 
-207d 20402223 call context_save 
-207e 7854fc00 disable master 
-207f 18000e03 force page_length_timer ,queue 
-2080 680140b9 fetch 2 ,mem_page_to 
-2081 20407f08 call timer_init 
-2082 20202043 branch idle_exit 
-
-idle_page_fail:
-2083 4484c001 bpatch patch01_1 ,mem_patch01 
-2084 680341d0 fetch 6 ,mem_hci_plap 
-2085 60030040 store 6 ,mem_plap 
-2086 2841fe01 compare lmp_name_req ,temp ,0xff 
-2087 2020a089 branch idle_name_fail ,true 
-2088 20202043 branch idle_exit 
-
-idle_name_fail:
-2089 d8a00101 arg mem_tmp_buffer ,contw 
-208a df200008 arg 8 ,loopcnt 
-208b 20407ec6 call memset0 
-208c 700a9904 jam bt_evt_reconn_failed ,mem_fifo_temp 
-208d 20407d86 call ui_ipc_send_event 
-208e 20202043 branch idle_exit 
-
-inquiry_dispatch:
-208f c68e0000 rtnmark0 mark_inquiry_on 
-2090 18000e01 force inquiry_length_timer ,queue 
-2091 20407f16 call timer_check 
-2092 7d3a001c nsetflag blank ,mark_inquiry_on ,mark 
-2093 243a2095 nbranch inquiry_start ,blank 
-2094 20600000 rtn 
-
-inquiry_start:
-2095 44854001 bpatch patch01_2 ,mem_patch01 
-2096 680940bb fetcht 2 ,mem_inq_window 
-2097 18000e04 force 4 ,queue 
-2098 2040271c call sniff_check_window 
-2099 20740000 rtn user 
-209a 204028a4 call afh_clear 
-209b 18004800 force 0 ,freq_mode 
-
-inquiry_restart:
-209c 20618000 rtn timeout 
-209d 793f800b set0 mark_fhs_already_good ,mark 
-209e 793f8000 set0 mark_fhs_eir ,mark 
-
-inquiry_rx_restart:
-209f 1c40c201 add clkn_bt ,1 ,bt_clk 
-20a0 280ffe1e isolate1 mark_inquiry_trainb ,mark 
-20a1 7920c802 setflag true ,2 ,freq_mode 
-20a2 2c200400 compare 0x00 ,bt_clk ,0x02 
-20a3 2420a0be nbranch inquiry_receive ,true 
-
-inquiry_transmit:
-20a4 4485c001 bpatch patch01_3 ,mem_patch01 
-20a5 68008012 fetch 1 ,mem_inquiry_transmit 
-20a6 1fe0fe01 increase 1 ,pdata 
-20a7 60008012 store 1 ,mem_inquiry_transmit 
-20a8 204028d8 call fetch_giac 
-20a9 204028d2 call tx_radio_freq 
-20aa 204028f2 call fetch_diac 
-20ab 20402a51 call start_transmitter 
-20ac 20402a56 call start_tx_native 
-20ad 20402a64 call send_access_word 
-20ae 2040264d call end_of_packet 
-20af 204020b1 call inquiry_check_train 
-20b0 2020209c branch inquiry_restart 
-
-inquiry_check_train:
-20b1 44864001 bpatch patch01_4 ,mem_patch01 
-20b2 6800808d fetch 1 ,mem_nfreq_index_inq 
-20b3 1fe0ffff increase -1 ,pdata 
-20b4 6000808d store 1 ,mem_nfreq_index_inq 
-20b5 20610000 rtn positive 
-20b6 70008d1f jam 31 ,mem_nfreq_index_inq 
-20b7 6800808f fetch 1 ,mem_ninqy_index 
-20b8 1fe0ffff increase -1 ,pdata 
-20b9 6000808f store 1 ,mem_ninqy_index 
-20ba 20610000 rtn positive 
-20bb 7940001e setflip mark_inquiry_trainb ,mark 
-20bc 70008fff jam param_ninquiry ,mem_ninqy_index 
-20bd 20600000 rtn 
-
-inquiry_receive:
-20be 4486c001 bpatch patch01_5 ,mem_patch01 
-20bf 204028d8 call fetch_giac 
-20c0 204028cc call rx_radio_freq 
-20c1 204028f2 call fetch_diac 
-20c2 20402a5b call start_rx_native 
-20c3 204029eb call start_receiver 
-20c4 20402a0d call wait_access_clkn_rt 
-20c5 202c20c8 branch inquiry_sync ,sync 
-20c6 204020b1 call inquiry_check_train 
-20c7 2020209f branch inquiry_rx_restart 
-
-inquiry_sync:
-20c8 44874001 bpatch patch01_6 ,mem_patch01 
-20c9 204029bb call save_rssi 
-20ca 20402a6b call scan_mode_whiten 
-20cb 2040251e call receive_packet_whitened 
-20cc 793f8001 set0 mark_rxbuf_inuse ,mark 
-20cd c6858000 rtnmark0 mark_fhs_already_good 
-
-inquiry_receive_rtn:
-20ce 4487c001 bpatch patch01_7 ,mem_patch01 
-
-inquiry_receive_eir_rtn:
-20cf 68008013 fetch 1 ,mem_inquiry_rcv 
-20d0 1fe0fe01 increase 1 ,pdata 
-20d1 60008013 store 1 ,mem_inquiry_rcv 
-20d2 20600000 rtn 
-
-master_page:
-20d3 44884002 bpatch patch02_0 ,mem_patch02 
-20d4 7834fc00 enable master 
-20d5 78387c00 enable clknt 
-20d6 680140b5 fetch 2 ,mem_page_interval 
-20d7 203a20db branch master_page_no_interval ,blank 
-20d8 18000e08 force page_interval_timer ,queue 
-20d9 20407f16 call timer_check 
-20da 247a0000 nrtn blank 
-
-master_page_no_interval:
-20db 4488c002 bpatch patch02_1 ,mem_patch02 
-20dc 680940b7 fetcht 2 ,mem_page_window 
-20dd 18000e28 force 40 ,queue 
-20de 2040271c call sniff_check_window 
-20df 20342114 branch page_exit ,user 
-20e0 18000e03 force page_length_timer ,queue 
-20e1 20407f16 call timer_check 
-20e2 243a20f0 nbranch page_start ,blank 
-20e3 6800804c fetch 1 ,mem_state_map 
-20e4 c28220e6 bbit1 smap_name_req ,master_npage_timeout 
-20e5 202020e9 branch master_page_timeout 
-
-master_npage_timeout:
-20e6 d8a00101 arg mem_tmp_buffer ,contw 
-20e7 df200008 arg 8 ,loopcnt 
-20e8 20407ec6 call memset0 
-
-master_page_timeout:
-20e9 44894002 bpatch patch02_2 ,mem_patch02 
-20ea 70003000 jam 0 ,mem_state 
-20eb 20405cf7 call init_lmp_work 
-20ec 70468100 jam 0 ,memui_reconnect_mode 
-20ed 700a9913 jam bt_evt_reconn_page_timeout ,mem_fifo_temp 
-20ee 20407d86 call ui_ipc_send_event 
-20ef 20202114 branch page_exit 
-
-page_start:
-20f0 4489c002 bpatch patch02_3 ,mem_patch02 
-20f1 18001600 force 0 ,timeup 
-20f2 34730200 until clkn_rt ,meet 
-20f3 680080f2 fetch 1 ,mem_page_clk 
-20f4 1fe0ffff increase -1 ,pdata 
-20f5 9c42fe00 ixor clkn_bt ,pdata 
-20f6 2fe00600 compare 0 ,pdata ,3 
-20f7 2420a0f0 nbranch page_start ,true 
-20f8 18827e00 deposit am_addr 
-20f9 60008181 store 1 ,mem_fhs_am_addr 
-20fa 18004c00 force 0 ,n_tx_slot 
-20fb 18004800 force 0 ,freq_mode 
-
-page_restart:
-20fc 448a4002 bpatch patch02_4 ,mem_patch02 
-20fd 2021a114 branch page_exit ,timeout 
-20fe 204028dc call fetch_page_bt_adr 
-20ff d9600600 arg param_rf_setup ,timeup 
-2100 34730200 until clkn_rt ,meet 
-
-page_rx_restart:
-2101 448ac002 bpatch patch02_5 ,mem_patch02 
-2102 680200f2 fetch 4 ,mem_page_clk 
-2103 98004200 iforce bt_clk 
-2104 1fe0fe01 increase 1 ,pdata 
-2105 600200f2 store 4 ,mem_page_clk 
-2106 280ffe0c isolate1 mark_page_trainb ,mark 
-2107 7920c802 setflag true ,2 ,freq_mode 
-2108 2c200400 compare 0x00 ,bt_clk ,0x02 
-2109 2420a128 nbranch page_receive ,true 
-210a 6800800c fetch 1 ,mem_page_transmit 
-210b 1fe0fe01 increase 1 ,pdata 
-210c 6000800c store 1 ,mem_page_transmit 
-210d 204028d2 call tx_radio_freq 
-210e 20402a51 call start_transmitter 
-210f 20402a56 call start_tx_native 
-2110 20402a64 call send_access_word 
-2111 2040264d call end_of_packet 
-2112 2040211a call page_check_train 
-2113 202020fc branch page_restart 
-
-page_exit:
-2114 448b4002 bpatch patch02_6 ,mem_patch02 
-2115 7854fc00 disable master 
-2116 680140b5 fetch 2 ,mem_page_interval 
-2117 207a0000 rtn blank 
-2118 18000e08 force page_interval_timer ,queue 
-2119 20207f08 branch timer_init 
-
-page_check_train:
-211a 448bc002 bpatch patch02_7 ,mem_patch02 
-211b 6800808e fetch 1 ,mem_nfreq_index_page 
-211c 1fe0ffff increase -1 ,pdata 
-211d 6000808e store 1 ,mem_nfreq_index_page 
-211e 20610000 rtn positive 
-211f 70008e1f jam 31 ,mem_nfreq_index_page 
-2120 680080f0 fetch 1 ,mem_npage_index 
-2121 1fe0ffff increase -1 ,pdata 
-2122 600080f0 store 1 ,mem_npage_index 
-2123 20610000 rtn positive 
-2124 7940000c setflip mark_page_trainb ,mark 
-2125 6800c0a6 fetch 1 ,mem_npage 
-2126 600080f0 store 1 ,mem_npage_index 
-2127 20600000 rtn 
-
-page_receive:
-2128 448c4003 bpatch patch03_0 ,mem_patch03 
-2129 204028cc call rx_radio_freq 
-212a 20402a5b call start_rx_native 
-212b 204029eb call start_receiver 
-212c 20402a0d call wait_access_clkn_rt 
-212d 202c2130 branch page_sync ,sync 
-212e 2040211a call page_check_train 
-212f 20202101 branch page_rx_restart 
-
-page_sync:
-2130 2040264d call end_of_packet 
-2131 6800800d fetch 1 ,mem_page_rcv 
-2132 1fe0fe01 increase 1 ,pdata 
-2133 6000800d store 1 ,mem_page_rcv 
-2134 18003600 force 0 ,stop_watch 
-2135 680200f2 fetch 4 ,mem_page_clk 
-
-page_send_fhs:
-2136 448cc003 bpatch patch03_1 ,mem_patch03 
-2137 20402a4f call rf_setup_time_master_slot 
-2138 204028dc call fetch_page_bt_adr 
-2139 1cc0cc01 increase 1 ,n_tx_slot 
-
-page_send_fhs_continue:
-213a 1c2143fd and_into 0x1fd ,bt_clk 
-213b 1c8149fc and_into 0x1fc ,freq_mode 
-213c 204028d2 call tx_radio_freq 
-213d 20402a51 call start_transmitter 
-213e 20402a56 call start_tx_native 
-213f 20402a64 call send_access_word 
-2140 1c427e00 deposit clkn_bt 
-2141 60020161 store 4 ,mem_clkn_bt 
-2142 18000800 force 0 ,am_addr 
-2143 18000202 force type_fhs ,type 
-2144 20402a6b call scan_mode_whiten 
-2145 20402766 call transmit_packet_whitened 
-
-page_wait_fhs_reply:
-2146 448d4003 bpatch patch03_2 ,mem_patch03 
-2147 20402a4d call rf_setup_time_slave_slot 
-2148 1c21c202 or_into 0x02 ,bt_clk 
-2149 1c8149fc and_into 0x1fc ,freq_mode 
-214a 204028cc call rx_radio_freq 
-214b 20402a5b call start_rx_native 
-214c 204029eb call start_receiver 
-214d 20402a0d call wait_access_clkn_rt 
-214e 204c264d call end_of_packet ,sync 
-214f 202c2155 branch page_wait_fhs_reply_ok ,sync 
-2150 68008010 fetch 1 ,mem_fhs_wait_counter 
-2151 203a20fc branch page_restart ,blank 
-2152 1fe0ffff increase -1 ,pdata 
-2153 60008010 store 1 ,mem_fhs_wait_counter 
-2154 20202136 branch page_send_fhs 
-
-page_wait_fhs_reply_ok:
-2155 448dc003 bpatch patch03_3 ,mem_patch03 
-2156 6800800e fetch 1 ,mem_page_rcv_fhs 
-2157 1fe0fe01 increase 1 ,pdata 
-2158 6000800e store 1 ,mem_page_rcv_fhs 
-2159 20402435 call prepare_newconn 
-
-master_newconn_loop:
-215a 204022f2 call master_newconn_once 
-215b 202c215f branch newconn_poll_responded ,sync 
-215c 20402455 call new_conn_timeout 
-215d 243a215a nbranch master_newconn_loop ,blank 
-215e 202020fc branch page_restart 
-
-newconn_poll_responded:
-215f 448e4003 bpatch patch03_4 ,mem_patch03 
-2160 68008030 fetch 1 ,mem_state 
-2161 793ffe03 set0 state_inpage ,pdata 
-2162 60008030 store 1 ,mem_state 
-2163 20402440 call newconn_init 
-2164 7854fc00 disable master 
-2165 20600000 rtn 
-
-master_dispatch:
-2166 448ec003 bpatch patch03_5 ,mem_patch03 
-2167 7834fc00 enable master 
-2168 78387c00 enable clknt 
-2169 204021e1 call role_switch_master 
-216a 20740000 rtn user 
-216b 20402c69 call check_bt_disabled 
-216c 20402a4f call rf_setup_time_master_slot 
-216d 1c40c201 add clkn_bt ,1 ,bt_clk 
-216e 204028e2 call fetch_self_bt_adr 
-216f 18004803 force 0x03 ,freq_mode 
-2170 20406cc2 call scheduler_tx_l2cap_pkt 
-2171 20402489 call prepare_tx 
-2172 204028d2 call tx_radio_freq 
-2173 20402a51 call start_transmitter 
-2174 20402a56 call start_tx_native 
-2175 20402a64 call send_access_word 
-2176 20402762 call transmit_packet 
-
-master_loop:
-2177 448f4003 bpatch patch03_6 ,mem_patch03 
-2178 20405d08 call parse_lmp 
-2179 204022e4 call master_conn_recv_packet 
-217a 2436a180 nbranch master_notmatch ,match 
-217b 20402a88 call supervision_flush 
-217c 20402728 call parse_l2cap 
-217d 6800800f fetch 1 ,mem_master_rcvcnt 
-217e 1fe0fe01 increase 1 ,pdata 
-217f 6000800f store 1 ,mem_master_rcvcnt 
-
-master_notmatch:
-2180 448fc003 bpatch patch03_7 ,mem_patch03 
-2181 20406caa call scheduler_process 
-2182 2040218b call check_master_disconnect 
-2183 24748000 nrtn master 
-2184 204026f3 call check_attempt 
-2185 243a2188 nbranch master_attempt ,blank 
-
-master_exit:
-2186 7854fc00 disable master 
-2187 20600000 rtn 
-
-master_attempt:
-2188 20402489 call prepare_tx 
-2189 204022da call master_conn_send_packet 
-218a 20202177 branch master_loop 
-
-check_master_disconnect:
-218b 2036a18e branch check_master_match ,match 
-218c 20402a7f call supervision_update 
-218d 2021219c branch master_disconnect ,positive 
-
-check_master_match:
-218e 204021a7 call check_disconnect_timeout 
-218f 2434219c nbranch master_disconnect ,user 
-2190 6800804c fetch 1 ,mem_state_map 
-2191 c4020000 rtnbit0 smap_name_req 
-2192 c3818000 rtnbit1 smap_name_res 
-2193 6800804b fetch 1 ,mem_op 
-2194 c3818000 rtnbit1 op_disconn 
-2195 204021ae call conn_timer_expired 
-2196 247a0000 nrtn blank 
-2197 6800816e fetch 1 ,mem_nameres_cnt 
-2198 1fe0ffff increase -1 ,pdata 
-2199 6000816e store 1 ,mem_nameres_cnt 
-219a 247a0000 nrtn blank 
-219b 20206006 branch lmp_disconnect 
-
-master_disconnect:
-219c 44904004 bpatch patch04_0 ,mem_patch04 
-219d 2040245d call quit_connection 
-219e 7854fc00 disable master 
-219f 6800804c fetch 1 ,mem_state_map 
-21a0 c28221a2 bbit1 smap_name_req ,master_name_disconnect 
-21a1 20600000 rtn 
-
-master_name_disconnect:
-21a2 6800804c fetch 1 ,mem_state_map 
-21a3 c3818000 rtnbit1 smap_name_res 
-
-master_name_error:
-21a4 d8a00101 arg mem_tmp_buffer ,contw 
-21a5 df200008 arg 8 ,loopcnt 
-21a6 20207ec6 branch memset0 
-
-check_disconnect_timeout:
-21a7 4490c004 bpatch patch04_1 ,mem_patch04 
-21a8 78347c00 enable user 
-21a9 6800804b fetch 1 ,mem_op 
-21aa c4018000 rtnbit0 op_disconn 
-21ab 204021ae call conn_timer_expired 
-21ac 247a0000 nrtn blank 
-21ad 20207fe9 branch disable_user 
-
-conn_timer_expired:
-21ae 68008072 fetch 1 ,mem_conn_timer 
-21af 1fe0ffff increase -1 ,pdata 
-21b0 60008072 store 1 ,mem_conn_timer 
-21b1 20600000 rtn 
-
-linkkey_ready:
-21b2 44914004 bpatch patch04_2 ,mem_patch04 
-21b3 68008030 fetch 1 ,mem_state 
-21b4 c283a1bb bbit1 state_linkkey ,linkkey_set 
-21b5 680089b5 fetch 1 ,mem_pairing_auth 
-21b6 203a21bb branch linkkey_set ,blank 
-21b7 7009b500 jam defalt_pairing_auth ,mem_pairing_auth 
-21b8 700a9918 jam bt_evt_linkkey_generate ,mem_fifo_temp 
-21b9 20407d86 call ui_ipc_send_event 
-21ba 202021bb branch linkkey_set 
-
-linkkey_set:
-21bb 4491c004 bpatch patch04_3 ,mem_patch04 
-21bc 20402254 call context_traverse_linkkey 
-21bd 68008030 fetch 1 ,mem_state 
-21be 79207e07 set1 state_linkkey ,pdata 
-21bf 60008030 store 1 ,mem_state 
-21c0 7041bd01 jam 1 ,mem_link_key_exists 
-21c1 68008055 fetch 1 ,mem_conn_sm 
-21c2 c08b21c3 bne conn_sm_pairing ,linkkey_set_continue 
-
-linkkey_set_continue:
-21c3 20600000 rtn 
-
-generate_linkkey_continue:
-21c4 7009b501 jam pairing_auth ,mem_pairing_auth 
-
-clear_linkstate:
-21c5 68008030 fetch 1 ,mem_state 
-21c6 793ffe07 set0 state_linkkey ,pdata 
-21c7 60008030 store 1 ,mem_state 
-21c8 20600000 rtn 
-
-role_switch_check:
-21c9 44924004 bpatch patch04_4 ,mem_patch04 
-21ca 78547c00 disable user 
-21cb 68010032 fetch 2 ,mem_tsniff 
-21cc d840ffff arg 0xffff ,temp 
-21cd 98467c00 isub temp ,null 
-21ce 24628000 nrtn zero 
-21cf 68020034 fetch 4 ,mem_sniff_anchor 
-21d0 203821d3 branch role_switch_clkn ,clknt 
-21d1 9d067e00 isub clke_bt ,pdata 
-21d2 202021d4 branch role_switch_clke 
-
-role_switch_clkn:
-21d3 9c467e00 isub clkn_bt ,pdata 
-
-role_switch_clke:
-21d4 1fe67c04 sub pdata ,4 ,null 
-21d5 24610000 nrtn positive 
-21d6 18007e00 force 0 ,pdata 
-21d7 60010032 store 2 ,mem_tsniff 
-21d8 20207fe7 branch enable_user 
-
-role_switch_prepare:
-21d9 1fe20400 copy pdata ,temp 
-21da 4492c004 bpatch patch04_5 ,mem_patch04 
-21db 600a0034 storet 4 ,mem_sniff_anchor 
-
-role_switch_prepare0:
-21dc 70455b01 jam switch_flag_accept ,mem_switch_flag 
-21dd 5800ffff setarg 0xffff 
-21de 60010032 store 2 ,mem_tsniff 
-21df 70007301 jam 1 ,mem_sniff_attempt 
-21e0 20600000 rtn 
-
-role_switch_master:
-21e1 44934004 bpatch patch04_6 ,mem_patch04 
-21e2 204021c9 call role_switch_check 
-21e3 24740000 nrtn user 
-21e4 78547c00 disable user 
-21e5 70001120 jam param_newconnto ,mem_newconnto_counter 
-21e6 793f800b set0 mark_fhs_already_good ,mark 
-
-roles_waitfhs_loop:
-21e7 20402a4f call rf_setup_time_master_slot 
-21e8 204022e6 call master_recv_packet 
-21e9 c505a1f4 bmark1 mark_fhs_already_good ,roles_replyto_fhs 
-21ea 20402455 call new_conn_timeout 
-21eb 243a21e7 nbranch roles_waitfhs_loop ,blank 
-
-role_switch_fail_master:
-21ec 4493c004 bpatch patch04_7 ,mem_patch04 
-21ed 78547c00 disable user 
-21ee 1c427e00 deposit clkn_bt 
-21ef 600240ca store 4 ,mem_next_btclk 
-21f0 78387c00 enable clknt 
-21f1 7834fc00 enable master 
-21f2 700a992a jam bt_evt_switch_fail_master ,mem_fifo_temp 
-21f3 20207d86 branch ui_ipc_send_event 
-
-roles_replyto_fhs:
-21f4 44944005 bpatch patch05_0 ,mem_patch05 
-21f5 20402a4d call rf_setup_time_slave_slot 
-21f6 d8200010 arg type_id ,type 
-21f7 204022dc call master_send_packet 
-21f8 78587c00 disable clknt 
-21f9 7854fc00 disable master 
-21fa 20402818 call apply_switch_clke 
-21fb 20402435 call prepare_newconn 
-
-roles_newconns_loop:
-21fc 4494c005 bpatch patch05_1 ,mem_patch05 
-21fd 2040247c call slave_newconn_once 
-21fe 2036a202 branch roles_newconns_responded ,match 
-21ff 20402455 call new_conn_timeout 
-2200 243a21fc nbranch roles_newconns_loop ,blank 
-2201 202021ec branch role_switch_fail_master 
-
-roles_newconns_responded:
-2202 68008031 fetch 1 ,mem_mode 
-2203 793ffe01 set0 mode_master ,pdata 
-2204 60008031 store 1 ,mem_mode 
-2205 20402a88 call supervision_flush 
-2206 20402841 call calc_clke_offset 
-2207 78347c00 enable user 
-2208 700a992b jam bt_evt_switch_success_master ,mem_fifo_temp 
-2209 20207d86 branch ui_ipc_send_event 
-
-context_load:
-220a 44954005 bpatch patch05_2 ,mem_patch05 
-220b 79200009 set1 mark_context ,mark 
-220c 1a227e00 deposit rega 
-220d 6001001e store 2 ,mem_context_ptr 
-220e 18007250 force context_size ,loopcnt 
-220f d8a0043f arg mem_le_state ,contw 
-2210 1a208c01 add rega ,coffset_mode ,contr 
-2211 e8c08000 ifetch 1 ,contr 
-2212 1a220c00 copy rega ,contr 
-2213 c2807f01 bbit1 mode_le ,memcpy 
-2214 d8a00030 arg mem_state ,contw 
-2215 20407f01 call memcpy 
-2216 78577c00 disable attempt 
-2217 68008077 fetch 1 ,mem_amaddr 
-2218 98000800 iforce am_addr 
-2219 70008a01 jam 1 ,mem_current_sniff_attempt 
-221a 2034a21c branch context_load_master ,master 
-221b 70008a01 jam 1 ,mem_current_sniff_attempt 
-
-context_load_master:
-221c 68008030 fetch 1 ,mem_state 
-221d c4008000 rtnbit0 state_insniff 
-221e 68008073 fetch 1 ,mem_sniff_attempt 
-221f 6000808a store 1 ,mem_current_sniff_attempt 
-2220 68008074 fetch 1 ,mem_sniff_timeout 
-2221 6000808b store 1 ,mem_current_sniff_timeout 
-2222 20600000 rtn 
-
-context_save:
-2223 4495c005 bpatch patch05_3 ,mem_patch05 
-2224 6801001e fetch 2 ,mem_context_ptr 
-2225 98000a00 iforce contw 
-2226 18007250 force context_size ,loopcnt 
-2227 d8c0043f arg mem_le_state ,contr 
-2228 203b7f01 branch memcpy ,le 
-2229 d8c00030 arg mem_state ,contr 
-222a 20207f01 branch memcpy 
-
-context_get_next:
-222b df200001 arg context_num ,loopcnt 
-222c 68088015 fetcht 1 ,mem_current_context 
-
-context_get_next_loop:
-222d 18408401 increase 1 ,temp 
-222e 2841fe01 compare context_num ,temp ,0xff 
-222f 2420a231 nbranch context_get_next_cont ,true 
-2230 d8400000 arg 0 ,temp 
-
-context_get_next_cont:
-2231 60088015 storet 1 ,mem_current_context 
-2232 184ffe50 mul32 temp ,context_size ,pdata 
-2233 da204040 arg mem_context ,rega 
-2234 9a20a200 iadd rega ,rega 
-2235 ea208000 ifetch 1 ,rega 
-2236 c280a239 bbit1 state_insniff ,context_get_next_sniff 
-2237 c3800000 rtnbit1 state_inconn 
-2238 c3818000 rtnbit1 state_inpage 
-
-context_get_next_sniff:
-2239 c200222d loop context_get_next_loop 
-223a 20600000 rtn 
-
-context_new:
-223b 44964005 bpatch patch05_4 ,mem_patch05 
-223c da60226a arg context_search_empty ,regc 
-223d 20402261 call context_search 
-223e 24628000 nrtn zero 
-223f 1a227e00 deposit rega 
-2240 6001001e store 2 ,mem_context_ptr 
-2241 18007c00 force 0 ,null 
-2242 20600000 rtn 
-
-context_check_all_wack:
-2243 20402725 call check_esco_amaddr 
-2244 2020a24b branch context_check_esco_wack ,true 
-2245 6801001e fetch 2 ,mem_context_ptr 
-2246 1fe08a17 add pdata ,coffset_arq ,contw 
-2247 68008047 fetch 1 ,mem_arq 
-2248 e0a08000 istore 1 ,contw 
-2249 da6022aa arg context_check_a_wack ,regc 
-224a 20202261 branch context_search 
-
-context_check_esco_wack:
-224b 68008047 fetch 1 ,mem_arq 
-224c 2feffe03 isolate1 wack ,pdata 
-224d 2020a250 branch context_esco_wack ,true 
-224e 18007c01 force 1 ,null 
-224f 20600000 rtn 
-
-context_esco_wack:
-2250 18007c00 force 0 ,null 
-2251 20600000 rtn 
-
-context_check_idle:
-2252 da6022a7 arg context_check_inconn ,regc 
-2253 20202261 branch context_search 
-
-context_traverse_linkkey:
-2254 6809001e fetcht 2 ,mem_context_ptr 
-2255 da6022cf arg context_traverse_clearkey ,regc 
-2256 20202261 branch context_search 
-
-context_search_conn_handle:
-2257 6808c1cf fetcht 1 ,mem_hci_conn_handle 
-
-context_search_conn_handle2:
-2258 da602275 arg context_search_handle ,regc 
-2259 20202261 branch context_search 
-
-context_search_plap:
-225a 4496c005 bpatch patch05_5 ,mem_patch05 
-225b 680b41d0 fetcht 6 ,mem_hci_plap 
-
-context_search_plap2:
-225c da60226e arg context_search_lap ,regc 
-225d 20202261 branch context_search 
-
-context_search_insniff:
-225e da60227b arg context_search_sniff ,regc 
-225f 20202261 branch context_search 
-
-context_search_sniff_window:
-2260 da6022c6 arg context_search_window ,regc 
-
-context_search:
-2261 44974005 bpatch patch05_6 ,mem_patch05 
-2262 da204040 arg mem_context ,rega 
-2263 df200001 arg context_num ,loopcnt 
-
-context_search_loop:
-2264 ea208000 ifetch 1 ,rega 
-2265 1a627a00 copy regc ,pc 
-
-context_search_next:
-2266 1a20a250 increase context_size ,rega 
-2267 c2002264 loop context_search_loop 
-2268 18007c01 force 1 ,null 
-2269 20600000 rtn 
-
-context_search_empty:
-226a c2802266 bbit1 state_inconn ,context_search_next 
-226b c281a266 bbit1 state_inpage ,context_search_next 
-226c 18007c00 force 0 ,null 
-226d 20600000 rtn 
-
-context_search_lap:
-226e c281a270 bbit1 state_inpage ,context_search_lap_cont 
-226f c3002266 bbit0 state_inconn ,context_search_next 
-
-context_search_lap_cont:
-2270 1a208c10 add rega ,coffset_plap ,contr 
-2271 e8c30000 ifetch 6 ,contr 
-2272 98467c00 isub temp ,null 
-2273 20628000 rtn zero 
-2274 20202266 branch context_search_next 
-
-context_search_handle:
-2275 c3002266 bbit0 state_inconn ,context_search_next 
-2276 1a208c16 add rega ,coffset_conn_handle ,contr 
-2277 e8c08000 ifetch 1 ,contr 
-2278 98467c00 isub temp ,null 
-2279 20628000 rtn zero 
-227a 20202266 branch context_search_next 
-
-context_search_sniff:
-227b c300a266 bbit0 state_insniff ,context_search_next 
-
-context_search_sniff_loop:
-227c 204022b3 call context_get_anchor 
-227d 20402297 call sign_pdata_temp 
-227e 98467e00 isub temp ,pdata 
-227f 1fe0fe01 increase 1 ,pdata 
-2280 20212291 branch context_search_sniff_miss ,positive 
-2281 18c22400 copy contr ,regb 
-2282 60048aa2 store 9 ,mem_temp 
-2283 6800c4c0 fetch 1 ,mem_le_sc_calc 
-2284 243a2289 nbranch context_search_sniff_sc ,blank 
-2285 68048aa2 fetch 9 ,mem_temp 
-2286 1a420c00 copy regb ,contr 
-2287 1fe0fe05 increase 5 ,pdata 
-2288 2020228c branch context_search_meet1 
-
-context_search_sniff_sc:
-2289 68048aa2 fetch 9 ,mem_temp 
-228a 1a420c00 copy regb ,contr 
-228b 1fe0fe14 increase 20 ,pdata 
-
-context_search_meet1:
-228c 24212266 nbranch context_search_next ,positive 
-
-context_search_meet:
-228d 18424200 copy temp ,bt_clk 
-228e 204022bf call context_next_anchor 
-228f 18007c00 force 0 ,null 
-2290 20600000 rtn 
-
-context_search_sniff_miss:
-2291 98002400 iforce regb 
-2292 1a208c02 add rega ,coffset_tsniff ,contr 
-2293 e8c10000 ifetch 2 ,contr 
-2294 203a228d branch context_search_meet ,blank 
-2295 204022bf call context_next_anchor 
-2296 2020227c branch context_search_sniff_loop 
-
-sign_pdata_temp:
-2297 1ff11600 rshift16 pdata ,timeup 
-2298 196c9600 rshift8 timeup ,timeup 
-2299 2022a2a1 branch sign_pdata_temp_p0 ,zero 
-229a 29601e0f compare 0xf ,timeup ,0xf 
-229b 24608000 nrtn true 
-229c 18511600 rshift16 temp ,timeup 
-229d 196c9600 rshift8 timeup ,timeup 
-229e 24628000 nrtn zero 
-229f 7920041c set1 28 ,temp 
-22a0 20600000 rtn 
-
-sign_pdata_temp_p0:
-22a1 18511600 rshift16 temp ,timeup 
-22a2 196c9600 rshift8 timeup ,timeup 
-22a3 29601e0f compare 0xf ,timeup ,0xf 
-22a4 24608000 nrtn true 
-22a5 79207e1c set1 28 ,pdata 
-22a6 20600000 rtn 
-
-context_check_inconn:
-22a7 c3002266 bbit0 state_inconn ,context_search_next 
-22a8 18007c00 force 0 ,null 
-22a9 20600000 rtn 
-
-context_check_a_wack:
-22aa c3002266 bbit0 state_inconn ,context_search_next 
-22ab 1a208c01 add rega ,coffset_mode ,contr 
-22ac e8c08000 ifetch 1 ,contr 
-22ad c2802266 bbit1 mode_le ,context_search_next 
-22ae 1a208c17 add rega ,coffset_arq ,contr 
-22af e8c08000 ifetch 1 ,contr 
-22b0 c301a266 bbit0 wack ,context_search_next 
-22b1 18007c00 force 0 ,null 
-22b2 20600000 rtn 
-
-context_get_anchor:
-22b3 1a208c01 add rega ,coffset_mode ,contr 
-22b4 e8c88000 ifetcht 1 ,contr 
-22b5 1c427e00 deposit clkn_bt 
-22b6 284ffe01 isolate1 mode_master ,temp 
-22b7 1a208c04 add rega ,coffset_sniff_anchor ,contr 
-22b8 e8ca0000 ifetcht 4 ,contr 
-22b9 20608000 rtn true 
-22ba 1a208c08 add rega ,coffset_clk_offset ,contr 
-22bb e8c30000 ifetch 6 ,contr 
-22bc 20402854 call calc_clke2 
-22bd 1d027e00 deposit clke_bt 
-22be 20600000 rtn 
-
-context_next_anchor:
-22bf 1a208c02 add rega ,coffset_tsniff ,contr 
-22c0 1a208a04 add rega ,coffset_sniff_anchor ,contw 
-22c1 e8c10000 ifetch 2 ,contr 
-22c2 98409600 iadd temp ,timeup 
-22c3 19627e00 deposit timeup 
-22c4 e0a20000 istore 4 ,contw 
-22c5 20205449 branch le_context_nexthop 
-
-context_search_window:
-22c6 c300a266 bbit0 state_insniff ,context_search_next 
-22c7 204022b3 call context_get_anchor 
-22c8 9b60fe00 iadd stop_watch ,pdata 
-22c9 9b60fe00 iadd stop_watch ,pdata 
-22ca 98e0fe00 iadd queue ,pdata 
-22cb 98467c00 isub temp ,null 
-22cc 24212266 nbranch context_search_next ,positive 
-22cd 18007c00 force 0 ,null 
-22ce 20600000 rtn 
-
-context_traverse_clearkey:
-22cf c3002266 bbit0 state_inconn ,context_search_next 
-22d0 18427e00 deposit temp 
-22d1 9a267c00 isub rega ,null 
-22d2 203f2266 branch context_search_next ,null 
-22d3 1a208c01 add rega ,coffset_mode ,contr 
-22d4 e8c08000 ifetch 1 ,contr 
-22d5 c2802266 bbit1 mode_le ,context_search_next 
-22d6 ea208000 ifetch 1 ,rega 
-22d7 793ffe07 set0 state_linkkey ,pdata 
-22d8 e2208000 istore 1 ,rega 
-22d9 20202266 branch context_search_next 
-
-master_conn_send_packet:
-22da 4497c005 bpatch patch05_7 ,mem_patch05 
-22db 20402a4f call rf_setup_time_master_slot 
-
-master_send_packet:
-22dc 1c40c201 add clkn_bt ,1 ,bt_clk 
-22dd 204028e2 call fetch_self_bt_adr 
-22de 18004803 force 0x03 ,freq_mode 
-22df 204028d2 call tx_radio_freq 
-22e0 20402a51 call start_transmitter 
-22e1 20402a56 call start_tx_native 
-22e2 20402a64 call send_access_word 
-22e3 20202762 branch transmit_packet 
-
-master_conn_recv_packet:
-22e4 44984006 bpatch patch06_0 ,mem_patch06 
-22e5 20402a4d call rf_setup_time_slave_slot 
-
-master_recv_packet:
-22e6 1c40c201 add clkn_bt ,1 ,bt_clk 
-22e7 204028e2 call fetch_self_bt_adr 
-22e8 18004803 force 0x03 ,freq_mode 
-22e9 204028cc call rx_radio_freq 
-22ea 2040242a call init_rx_packet_flags 
-22eb 204029f1 call prep_crypt 
-22ec 20402a5b call start_rx_native 
-22ed 204029eb call start_receiver 
-
-master_rx_conn_finish_packet:
-22ee 20402a0d call wait_access_clkn_rt 
-22ef 246c0000 nrtn sync 
-22f0 204029bb call save_rssi 
-22f1 2020251c branch receive_packet 
-
-master_newconn_once:
-22f2 4498c006 bpatch patch06_1 ,mem_patch06 
-22f3 68008181 fetch 1 ,mem_fhs_am_addr 
-22f4 98000800 iforce am_addr 
-22f5 18000201 force type_poll ,type 
-22f6 204022da call master_conn_send_packet 
-22f7 202022e4 branch master_conn_recv_packet 
-
-inquiry_scan_dispatch:
-22f8 6800c093 fetch 1 ,mem_scan_mode 
-22f9 c4000000 rtnbit0 inq_scan_mode 
-22fa 18000e04 force iscan_interval_timer ,queue 
-22fb 20407f16 call timer_check 
-22fc 247a0000 nrtn blank 
-22fd 680940ad fetcht 2 ,mem_iscan_window 
-22fe 18000e04 force 4 ,queue 
-22ff 2040271c call sniff_check_window 
-2300 20740000 rtn user 
-2301 20402308 call inquiry_scan_start 
-2302 18000e04 force iscan_interval_timer ,queue 
-2303 680140af fetch 2 ,mem_iscan_interval 
-2304 242c7f08 nbranch timer_init ,sync 
-2305 180a7e00 random pdata 
-2306 9ea17e00 iand mask3ff ,pdata 
-2307 20207f08 branch timer_init 
-
-inquiry_scan_start:
-2308 44994006 bpatch patch06_2 ,mem_patch06 
-2309 70018100 jam 0 ,mem_fhs_am_addr 
-230a 78587c00 disable clknt 
-230b 78577c00 disable attempt 
-230c 204028a4 call afh_clear 
-230d 1c4143fc and clkn_bt ,0x1fc ,bt_clk 
-230e 18004801 force 0x01 ,freq_mode 
-230f 204028d8 call fetch_giac 
-2310 204028cc call rx_radio_freq 
-2311 7940001d setflip mark_inquiry_state ,mark 
-2312 68008006 fetch 1 ,mem_inquiryscan_waitcnt 
-2313 1fe0fe01 increase 1 ,pdata 
-2314 60008006 store 1 ,mem_inquiryscan_waitcnt 
-2315 204028f2 call fetch_diac 
-2316 204029eb call start_receiver 
-2317 20402a14 call wait_access_forever 
-2318 246c0000 nrtn sync 
-2319 4499c006 bpatch patch06_3 ,mem_patch06 
-231a 18003600 force 0 ,stop_watch 
-231b 204028f9 call shutdown_radio 
-231c 68008007 fetch 1 ,mem_inquiryscan_rcvcnt 
-231d 1fe0fe01 increase 1 ,pdata 
-231e 60008007 store 1 ,mem_inquiryscan_rcvcnt 
-231f 204028d8 call fetch_giac 
-2320 20402a4d call rf_setup_time_slave_slot 
-2321 1c21c202 or_into 0x002 ,bt_clk 
-2322 18004801 force 0x01 ,freq_mode 
-2323 204028d2 call tx_radio_freq 
-2324 204028f2 call fetch_diac 
-2325 20402a51 call start_transmitter 
-2326 20402a5f call start_tx_external 
-2327 1c427e00 deposit clkn_bt 
-2328 60020161 store 4 ,mem_clkn_bt 
-2329 20402a64 call send_access_word 
-232a 18000202 force type_fhs ,type 
-232b 18000800 force 0 ,am_addr 
-232c 20402a6b call scan_mode_whiten 
-232d 20402766 call transmit_packet_whitened 
-232e 20402332 call send_eir 
-232f 1c2143fd and_into 0x1fd ,bt_clk 
-2330 1cc0cc01 increase 1 ,n_tx_slot 
-2331 20600000 rtn 
-
-send_eir:
-2332 449a4006 bpatch patch06_4 ,mem_patch06 
-2333 6800c0d1 fetch 1 ,mem_eir_enable 
-2334 207a0000 rtn blank 
-2335 d8a0018e arg mem_eir ,contw 
-2336 6800c515 fetch 1 ,mem_local_name_length 
-2337 1fe27200 copy pdata ,loopcnt 
-2338 1fe0fe01 increase 1 ,pdata 
-2339 e0a08000 istore 1 ,contw 
-233a 18a20400 copy contw ,temp 
-233b 1fe0fe01 increase 1 ,pdata 
-233c 600141dc store 2 ,mem_tx_len 
-233d 18420a00 copy temp ,contw 
-233e 58000009 setarg 0x09 
-233f e0a08000 istore 1 ,contw 
-2340 d8c04516 arg mem_local_name ,contr 
-2341 20407f01 call memcpy 
-2342 da60458d arg mem_all_uuid_128bits ,regc 
-2343 df200004 arg 4 ,loopcnt 
-2344 20402354 call get_all_uuid 
-2345 da604577 arg mem_all_uuid_16bits ,regc 
-2346 df200001 arg 1 ,loopcnt 
-2347 20402354 call get_all_uuid 
-2348 1800020a force type_dm3 ,type 
-2349 7041db02 jam 2 ,mem_tx_lch 
-234a 5800018e setarg mem_eir 
-234b 6001016f store 2 ,mem_txptr 
-234c 20402a4d call rf_setup_time_slave_slot 
-234d 204028d2 call tx_radio_freq 
-234e 20402a51 call start_transmitter 
-234f 20402a5f call start_tx_external 
-2350 20402a64 call send_access_word 
-2351 20402a6b call scan_mode_whiten 
-2352 20402766 call transmit_packet_whitened 
-2353 20600000 rtn 
-
-get_all_uuid:
-2354 18a20400 copy contw ,temp 
-2355 1a620c00 copy regc ,contr 
-2356 e8c08000 ifetch 1 ,contr 
-2357 207a0000 rtn blank 
-
-lshift_loop:
-2358 1fe3fe00 lshift pdata ,pdata 
-2359 c2002358 loop lshift_loop 
-235a 1fe22200 copy pdata ,rega 
-235b 1fe0fe02 increase 2 ,pdata 
-235c 1fe20e00 copy pdata ,queue 
-235d 680141dc fetch 2 ,mem_tx_len 
-235e 98e0fe00 iadd queue ,pdata 
-235f 600141dc store 2 ,mem_tx_len 
-2360 18420a00 copy temp ,contw 
-2361 1a227e00 copy rega ,pdata 
-2362 1fe0fe01 increase 1 ,pdata 
-2363 e0a08000 istore 1 ,contw 
-2364 1a620c00 copy regc ,contr 
-2365 e8c08000 ifetch 1 ,contr 
-2366 e8c08000 ifetch 1 ,contr 
-2367 e0a08000 istore 1 ,contw 
-2368 1a227200 copy rega ,loopcnt 
-2369 20207f01 branch memcpy 
-
-page_scan_dispatch:
-236a 6800c093 fetch 1 ,mem_scan_mode 
-236b c4008000 rtnbit0 page_scan_mode 
-236c 18000e05 force pscan_interval_timer ,queue 
-236d 20407f16 call timer_check 
-236e 247a0000 nrtn blank 
-236f 680940b1 fetcht 2 ,mem_pscan_window 
-2370 18000e28 force 40 ,queue 
-2371 2040271c call sniff_check_window 
-2372 20740000 rtn user 
-2373 18000800 force 0 ,am_addr 
-2374 70001008 jam param_pagerespto ,mem_fhs_wait_counter 
-2375 793f800b set0 mark_fhs_already_good ,mark 
-2376 2040237a call page_scan_start 
-2377 18000e05 force pscan_interval_timer ,queue 
-2378 680140b3 fetch 2 ,mem_pscan_interval 
-2379 20207f08 branch timer_init 
-
-page_scan_start:
-237a 449ac006 bpatch patch06_5 ,mem_patch06 
-237b 78587c00 disable clknt 
-237c 204028a4 call afh_clear 
-237d 68008008 fetch 1 ,mem_pagescan_waitcnt 
-237e 1fe0fe01 increase 1 ,pdata 
-237f 60008008 store 1 ,mem_pagescan_waitcnt 
-2380 18004c00 force 0 ,n_tx_slot 
-2381 204028e2 call fetch_self_bt_adr 
-2382 1c40c201 add clkn_bt ,1 ,bt_clk 
-2383 18004802 force 0x02 ,freq_mode 
-2384 449b4006 bpatch patch06_6 ,mem_patch06 
-2385 204028cc call rx_radio_freq 
-2386 204029eb call start_receiver 
-2387 20402a14 call wait_access_forever 
-2388 246c0000 nrtn sync 
-2389 204028f9 call shutdown_radio 
-238a 68008009 fetch 1 ,mem_pagescan_rcvcnt 
-238b 1fe0fe01 increase 1 ,pdata 
-238c 60008009 store 1 ,mem_pagescan_rcvcnt 
-238d 18003600 force 0 ,stop_watch 
-238e 20402a4d call rf_setup_time_slave_slot 
-238f 1c21c202 or_into 0x002 ,bt_clk 
-2390 18004801 force 0x01 ,freq_mode 
-2391 204028d2 call tx_radio_freq 
-2392 20402a51 call start_transmitter 
-2393 20402a5f call start_tx_external 
-2394 20402a64 call send_access_word 
-2395 2040264d call end_of_packet 
-2396 18000800 force 0 ,am_addr 
-2397 d9600600 arg param_rf_setup ,timeup 
-2398 35330200 until clke_rt ,meet 
-2399 1d01d003 or_into 0x03 ,clke_bt 
-239a 1c2143fd and_into 0x1fd ,bt_clk 
-
-page_scan_wait_fhs_restart:
-239b 449bc006 bpatch patch06_7 ,mem_patch06 
-239c 1cc0cc01 increase 1 ,n_tx_slot 
-239d 204028cc call rx_radio_freq 
-239e 204029eb call start_receiver 
-239f 20402a07 call wait_access_mhalfbnd 
-23a0 242c23a4 nbranch page_scan_wait_fhs_again ,sync 
-23a1 20402a6b call scan_mode_whiten 
-23a2 2040251e call receive_packet_whitened 
-23a3 c505a3ab bmark1 mark_fhs_already_good ,page_scan_reply_to_fhs 
-
-page_scan_wait_fhs_again:
-23a4 449c4007 bpatch patch07_0 ,mem_patch07 
-23a5 68008010 fetch 1 ,mem_fhs_wait_counter 
-23a6 207a0000 rtn blank 
-23a7 1fe0ffff increase -1 ,pdata 
-23a8 60008010 store 1 ,mem_fhs_wait_counter 
-23a9 20402a4f call rf_setup_time_master_slot 
-23aa 2020239b branch page_scan_wait_fhs_restart 
-
-page_scan_reply_to_fhs:
-23ab 449cc007 bpatch patch07_1 ,mem_patch07 
-23ac 793fd001 set0 1 ,clke_bt 
-23ad 79205000 set1 0 ,clke_bt 
-23ae 6800800a fetch 1 ,mem_pagescan_rcvfhscnt 
-23af 1fe0fe01 increase 1 ,pdata 
-23b0 6000800a store 1 ,mem_pagescan_rcvfhscnt 
-23b1 20402a4d call rf_setup_time_slave_slot 
-23b2 1c21c202 or_into 0x02 ,bt_clk 
-23b3 204028d2 call tx_radio_freq 
-23b4 20402a51 call start_transmitter 
-23b5 20402a5f call start_tx_external 
-23b6 20402a64 call send_access_word 
-23b7 2040264d call end_of_packet 
-
-slave_apply_clke_bt:
-23b8 2d000603 compare 0x03 ,clke_bt ,0x03 
-23b9 2020a3bc branch slave_apply_clke_bt_now ,true 
-23ba 37cb8200 until null ,mhalfbnd 
-23bb 202023b8 branch slave_apply_clke_bt 
-
-slave_apply_clke_bt_now:
-23bc 68020165 fetch 4 ,mem_clke_bt 
-23bd 1fe1fe03 or_into 0x03 ,pdata 
-23be 1fe25000 icopy clke_bt 
-
-start_slave_connection:
-23bf 449d4007 bpatch patch07_2 ,mem_patch07 
-23c0 68030178 fetch 6 ,extm_lap 
-23c1 60030040 store 6 ,mem_plap 
-23c2 20402435 call prepare_newconn 
-
-slave_newconn_loop:
-23c3 2040247c call slave_newconn_once 
-23c4 2036a3c8 branch sconn_successful ,match 
-23c5 20402455 call new_conn_timeout 
-23c6 243a23c3 nbranch slave_newconn_loop ,blank 
-23c7 20600000 rtn 
-
-sconn_successful:
-23c8 449dc007 bpatch patch07_3 ,mem_patch07 
-23c9 20402440 call newconn_init 
-23ca 2040223b call context_new 
-23cb 24628000 nrtn zero 
-23cc 70003100 jam 0 ,mem_mode 
-23cd 20402841 call calc_clke_offset 
-23ce 20202223 branch context_save 
-
-slave_dispatch:
-23cf 449e4007 bpatch patch07_4 ,mem_patch07 
-23d0 20402850 call calc_clke 
-23d1 204023f3 call role_switch_slave 
-23d2 20740000 rtn user 
-
-slave_loop:
-23d3 449ec007 bpatch patch07_5 ,mem_patch07 
-23d4 20402c69 call check_bt_disabled 
-23d5 20406caa call scheduler_process 
-23d6 20402514 call slave_conn_recv_packet 
-23d7 2436a3e2 nbranch slave_notmatch ,match 
-23d8 20402a88 call supervision_flush 
-23d9 20406cc2 call scheduler_tx_l2cap_pkt 
-23da 20402489 call prepare_tx 
-23db 20402757 call slave_conn_send_packet 
-23dc 20402728 call parse_l2cap 
-23dd 20405d08 call parse_lmp 
-23de 6800800b fetch 1 ,mem_slave_rcvcnt 
-23df 1fe0fe01 increase 1 ,pdata 
-23e0 6000800b store 1 ,mem_slave_rcvcnt 
-23e1 20402841 call calc_clke_offset 
-
-slave_notmatch:
-23e2 449f4007 bpatch patch07_6 ,mem_patch07 
-23e3 20402bb1 call lpm_set_mult 
-23e4 20402a7f call supervision_update 
-23e5 202123eb branch slave_disconnect ,positive 
-23e6 204021a7 call check_disconnect_timeout 
-23e7 243423eb nbranch slave_disconnect ,user 
-23e8 204026f3 call check_attempt 
-23e9 243a23d3 nbranch slave_loop ,blank 
-23ea 20600000 rtn 
-
-slave_disconnect:
-23eb 449fc007 bpatch patch07_7 ,mem_patch07 
-23ec 70015100 jam 0 ,mem_tester_emulate 
-23ed 70017f00 jam 0 ,mem_debug_config 
-23ee 2040245d call quit_connection 
-23ef 793f8011 set0 mark_testmode ,mark 
-23f0 20407fb0 call test_enable_white 
-23f1 68008030 fetch 1 ,mem_state 
-23f2 20600000 rtn 
-
-role_switch_slave:
-23f3 44a04008 bpatch patch08_0 ,mem_patch08 
-23f4 204021c9 call role_switch_check 
-23f5 24740000 nrtn user 
-23f6 18820400 copy am_addr ,temp 
-23f7 20402a6f call get_free_amaddr 
-23f8 60008181 store 1 ,mem_fhs_am_addr 
-23f9 18420800 copy temp ,am_addr 
-23fa 70001120 jam param_newconnto ,mem_newconnto_counter 
-
-roles_sendfhs_loop:
-23fb 44a0c008 bpatch patch08_1 ,mem_patch08 
-23fc 20402a4f call rf_setup_time_master_slot 
-23fd 18000202 force type_fhs ,type 
-23fe 2040274f call slave_send_access 
-23ff 1c427e00 deposit clkn_bt 
-2400 60020161 store 4 ,mem_clkn_bt 
-2401 20402762 call transmit_packet 
-2402 20402a4d call rf_setup_time_slave_slot 
-2403 7837fc00 enable user3 
-2404 204024f6 call slave_receive_access 
-2405 202c240d branch roles_got_fhs_reply ,sync 
-2406 204028f9 call shutdown_radio 
-2407 20402455 call new_conn_timeout 
-2408 243a23fb nbranch roles_sendfhs_loop ,blank 
-2409 c6820000 rtnmark0 mark_accept_switch 
-240a 70007c34 jam lmp_slot_offset ,mem_lmo_opcode2 
-240b 79200003 set1 mark_switch_initiated ,mark 
-240c 20600000 rtn 
-
-roles_got_fhs_reply:
-240d 78387c00 enable clknt 
-240e 20402435 call prepare_newconn 
-240f 204028a4 call afh_clear 
-
-roles_newconn_loop:
-2410 44a14008 bpatch patch08_2 ,mem_patch08 
-2411 204022f2 call master_newconn_once 
-2412 202c2419 branch roles_newconn_responded ,sync 
-2413 20402455 call new_conn_timeout 
-2414 243a2410 nbranch roles_newconn_loop ,blank 
-2415 78587c00 disable clknt 
-2416 1d027e00 deposit clke_bt 
-2417 600240ca store 4 ,mem_next_btclk 
-2418 20600000 rtn 
-
-roles_newconn_responded:
-2419 7834fc00 enable master 
-241a c582241f bmark0 mark_accept_switch ,roles_newconn_nolmp 
-241b 793f8004 set0 mark_accept_switch ,mark 
-241c 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
-241d 70007d33 jam lmp_host_connection_req ,mem_lmi_opcode2 
-241e 204062f8 call tid_set_reply 
-
-roles_newconn_nolmp:
-241f 18827e00 deposit am_addr 
-2420 60008077 store 1 ,mem_amaddr 
-2421 18007e00 force 0 ,pdata 
-2422 60030038 store 6 ,mem_clk_offset 
-2423 68008031 fetch 1 ,mem_mode 
-2424 79207e01 set1 mode_master ,pdata 
-2425 60008031 store 1 ,mem_mode 
-2426 20402a88 call supervision_flush 
-2427 7854fc00 disable master 
-2428 78347c00 enable user 
-2429 20600000 rtn 
-
-init_rx_packet_flags:
-242a 44a1c008 bpatch patch08_3 ,mem_patch08 
-242b 7856fc00 disable match 
-242c 793f8005 set0 mark_loopback ,mark 
-242d 793f800a set0 mark_am_addr_broadcast ,mark 
-242e 793f8010 set0 mark_longpacket ,mark 
-242f 793f800f set0 mark_old_packet ,mark 
-2430 68008047 fetch 1 ,mem_arq 
-2431 793ffe05 set0 arqnx ,pdata 
-2432 79207e04 set1 flowx ,pdata 
-2433 60008047 store 1 ,mem_arq 
-2434 20600000 rtn 
-
-prepare_newconn:
-2435 44a24008 bpatch patch08_4 ,mem_patch08 
-2436 70001120 jam param_newconnto ,mem_newconnto_counter 
-2437 70004750 jam param_newconn_arq ,mem_arq 
-2438 680140bf fetch 2 ,mem_rx_window_init 
-2439 6001003e store 2 ,mem_rx_window 
-243a 1c427e00 deposit clkn_bt 
-243b 600240ca store 4 ,mem_next_btclk 
-243c 20780000 rtn clknt 
-243d 1d027e00 deposit clke_bt 
-243e 600240ca store 4 ,mem_next_btclk 
-243f 20600000 rtn 
-
-newconn_init:
-2440 44a2c008 bpatch patch08_5 ,mem_patch08 
-2441 20405d04 call init_lmp_reinit 
-2442 20402459 call new_conn_handle 
-2443 60008046 store 1 ,mem_conn_handle 
-2444 58000000 setarg 0 
-2445 6001025d store 2 ,mem_l2cap_rxbuff1_len 
-2446 58001c80 setarg param_supervision_to 
-2447 60010051 store 2 ,mem_supervision_to 
-2448 68008030 fetch 1 ,mem_state 
-2449 79207e00 set1 state_inconn ,pdata 
-244a 60008030 store 1 ,mem_state 
-244b 70004b00 jam 0 ,mem_op 
-244c 70004c00 jam 0 ,mem_state_map 
-244d 7000a000 jam 0 ,mem_lpm_current_mult 
-244e 20202a88 branch supervision_flush 
-
-clear_linkkey:
-244f 44a34008 bpatch patch08_6 ,mem_patch08 
-2450 18007e00 force 0 ,pdata 
-2451 600441be store 8 ,mem_link_key 
-2452 e0a40000 istore 8 ,contw 
-2453 204021c5 call clear_linkstate 
-2454 20202254 branch context_traverse_linkkey 
-
-new_conn_timeout:
-2455 68008011 fetch 1 ,mem_newconnto_counter 
-2456 1fe0ffff increase -1 ,pdata 
-2457 60008011 store 1 ,mem_newconnto_counter 
-2458 20600000 rtn 
-
-new_conn_handle:
-2459 6800c0cf fetch 1 ,mem_handle_num 
-245a 1fe0fe01 increase 1 ,pdata 
-245b 6000c0cf store 1 ,mem_handle_num 
-245c 20600000 rtn 
-
-quit_connection:
-245d 44a3c008 bpatch patch08_7 ,mem_patch08 
-245e 6800c1ce fetch 1 ,mem_hci_cmd 
-245f c001a462 beq hci_cmd_remote_name_req ,quit_connection_name 
-2460 68008048 fetch 1 ,mem_lmp_to_send 
-2461 c080a466 bne lmp_name_req ,quit_connection_cont 
-
-quit_connection_name:
-2462 20404d06 call cmd_check_plap 
-2463 2422a466 nbranch quit_connection_cont ,zero 
-2464 204021a4 call master_name_error 
-2465 7041ce00 jam 0 ,mem_hci_cmd 
-
-quit_connection_cont:
-2466 44a44009 bpatch patch09_0 ,mem_patch09 
-2467 204033af call app_disconn_reason_collect_bt 
-2468 204026e9 call sniff_exit 
-2469 700a9902 jam bt_evt_bb_disconnected ,mem_fifo_temp 
-246a 20407d86 call ui_ipc_send_event 
-246b 20405cf7 call init_lmp_work 
-246c 20404d6b call l2cap_init_work 
-246d 2040757d call sp_initialize 
-246e 68008030 fetch 1 ,mem_state 
-246f 793ffe00 set0 state_inconn 
-2470 60008030 store 1 ,mem_state 
-2471 70468100 jam 0 ,memui_reconnect_mode 
-2472 6800804c fetch 1 ,mem_state_map 
-2473 2fe18000 compare 0x0 ,pdata ,0xc0 
-2474 2020a476 branch quit_connection_not_clear_mark ,true 
-2475 793f8001 set0 mark_rxbuf_inuse ,mark 
-
-quit_connection_not_clear_mark:
-2476 68008047 fetch 1 ,mem_arq 
-2477 c301a478 bbit0 wack ,quit_connection_not_clear_tx 
-
-quit_connection_not_clear_tx:
-2478 6800804b fetch 1 ,mem_op 
-2479 c4030000 rtnbit0 op_txl2cap 
-247a 793f8002 set0 mark_tx_l2cap ,mark 
-247b 20600000 rtn 
-
-slave_newconn_once:
-247c 44a4c009 bpatch patch09_1 ,mem_patch09 
-247d 68008174 fetch 1 ,extm_newconn_am_addr 
-247e 207a0000 rtn blank 
-247f 1fe20800 icopy am_addr 
-2480 20402514 call slave_conn_recv_packet 
-2481 24768000 nrtn match 
-2482 18000200 force type_null ,type 
-2483 20402757 call slave_conn_send_packet 
-2484 18827e00 deposit am_addr 
-2485 60008077 store 1 ,mem_amaddr 
-2486 18007e00 force 0 ,pdata 
-2487 60008174 store 1 ,extm_newconn_am_addr 
-2488 20600000 rtn 
-
-prepare_tx:
-2489 44a54009 bpatch patch09_2 ,mem_patch09 
-248a 68008030 fetch 1 ,mem_state 
-248b c3012496 bbit0 state_insco ,prepare_tx_not_sco 
-248c 18000207 force type_hv3 ,type 
-248d c583a495 bmark0 mark_esco ,prepare_tx_not_esco 
-248e 20402725 call check_esco_amaddr 
-248f 2420a496 nbranch prepare_tx_not_sco ,true 
-2490 20372496 branch prepare_tx_not_sco ,attempt 
-2491 204024c1 call set_wait_ack 
-2492 58000002 setarg 2 
-2493 600140c8 store 2 ,mem_retransmission_cnt 
-2494 20600000 rtn 
-
-prepare_tx_not_esco:
-2495 24770000 nrtn attempt 
-
-prepare_tx_not_sco:
-2496 44a5c009 bpatch patch09_3 ,mem_patch09 
-2497 20402243 call context_check_all_wack 
-2498 2422a4a7 nbranch prepare_tx_no_retransmit ,zero 
-2499 68008047 fetch 1 ,mem_arq 
-249a c301a4b0 bbit0 wack ,prepare_tx_pollnull 
-
-prepare_tx_retransmit:
-249b c502a4b4 bmark1 mark_loopback ,prepare_tx_loopback 
-249c 6800817f fetch 1 ,mem_debug_config 
-249d c28324ba bbit1 debug_tx_pattern ,prepare_tx_txpat 
-249e 680140c8 fetch 2 ,mem_retransmission_cnt 
-249f 1fe0ffff increase -1 ,pdata 
-24a0 600140c8 store 2 ,mem_retransmission_cnt 
-24a1 203a24a5 branch prepare_tx_nomore_retransmit ,blank 
-24a2 6800c0c5 fetch 1 ,mem_last_type 
-24a3 98000200 iforce type 
-24a4 20600000 rtn 
-
-prepare_tx_nomore_retransmit:
-24a5 44a64009 bpatch patch09_4 ,mem_patch09 
-24a6 20402687 call clear_got_tx 
-
-prepare_tx_no_retransmit:
-24a7 20402725 call check_esco_amaddr 
-24a8 2020a4b0 branch prepare_tx_pollnull ,true 
-24a9 2040600a call send_lmp 
-24aa 203424be branch prepare_tx_sendlmp ,user 
-24ab 6800804b fetch 1 ,mem_op 
-24ac c28324c0 bbit1 op_txl2cap ,prepare_tx_sendl2cap 
-24ad c502a4b4 bmark1 mark_loopback ,prepare_tx_loopback 
-24ae 6800817f fetch 1 ,mem_debug_config 
-24af c28324ba bbit1 debug_tx_pattern ,prepare_tx_txpat 
-
-prepare_tx_pollnull:
-24b0 18000201 force type_poll ,type 
-24b1 20748000 rtn master 
-24b2 18000200 force type_null ,type 
-24b3 20600000 rtn 
-
-prepare_tx_loopback:
-24b4 44a6c009 bpatch patch09_5 ,mem_patch09 
-24b5 68008019 fetch 1 ,mem_rx_type 
-24b6 98000200 iforce type 
-24b7 c1808000 rtnne 1 
-24b8 18000200 force type_null ,type 
-24b9 20600000 rtn 
-
-prepare_tx_txpat:
-24ba 68008158 fetch 1 ,test_mode_packet_type 
-24bb 1fe1020f and pdata ,0xf ,type 
-24bc 79200005 set1 mark_loopback ,mark 
-24bd 20600000 rtn 
-
-prepare_tx_sendlmp:
-24be 18000213 force type_lmp ,type 
-24bf 202024c1 branch set_wait_ack 
-
-prepare_tx_sendl2cap:
-24c0 204024ca call tx_l2cap_type 
-
-set_wait_ack:
-24c1 44a74009 bpatch patch09_6 ,mem_patch09 
-24c2 68088047 fetcht 1 ,mem_arq 
-24c3 79200403 set1 wack ,temp 
-24c4 60088047 storet 1 ,mem_arq 
-24c5 18227e00 deposit type 
-24c6 6000c0c5 store 1 ,mem_last_type 
-24c7 5800ffff setarg 0xffff 
-24c8 600140c8 store 2 ,mem_retransmission_cnt 
-24c9 20600000 rtn 
-
-tx_l2cap_type:
-24ca 44a7c009 bpatch patch09_7 ,mem_patch09 
-24cb 6800804c fetch 1 ,mem_state_map 
-24cc 2feffe05 isolate1 smap_edr ,pdata 
-24cd 680141dc fetch 2 ,mem_tx_len 
-24ce 2020a4e0 branch tx_l2cap_type_edr ,true 
-24cf 18000203 force type_dm1 ,type 
-24d0 1fe67c11 sub pdata ,17 ,null 
-24d1 20610000 rtn positive 
-24d2 18000204 force type_dh1 ,type 
-24d3 1fe67c1b sub pdata ,27 ,null 
-24d4 20610000 rtn positive 
-24d5 1800020a force type_dm3 ,type 
-24d6 1fe67c79 sub pdata ,121 ,null 
-24d7 20610000 rtn positive 
-24d8 1800020b force type_dh3 ,type 
-24d9 1fe67cb7 sub pdata ,183 ,null 
-24da 20610000 rtn positive 
-24db 1800020e force type_dm5 ,type 
-24dc 1fe67ce0 sub pdata ,224 ,null 
-24dd 20610000 rtn positive 
-24de 1800020f force type_dh5 ,type 
-24df 20600000 rtn 
-
-tx_l2cap_type_edr:
-24e0 18000203 force type_dm1 ,type 
-24e1 1fe67c11 sub pdata ,17 ,null 
-24e2 20610000 rtn positive 
-24e3 18000204 force type_dh1 ,type 
-24e4 1fe67c36 sub pdata ,54 ,null 
-24e5 20610000 rtn positive 
-24e6 1800020a force type_dm3 ,type 
-24e7 d840016f arg 367 ,temp 
-24e8 98467c00 isub temp ,null 
-24e9 24610000 nrtn positive 
-24ea 1800020e force type_dm5 ,type 
-24eb d84002a7 arg 679 ,temp 
-24ec 98467c00 isub temp ,null 
-24ed 24610000 nrtn positive 
-24ee 1800020f force type_dh5 ,type 
-24ef 20600000 rtn 
-
-slave_receive_master_slot:
-24f0 68008030 fetch 1 ,mem_state 
-24f1 c300a4f5 bbit0 state_insniff ,slave_receive_notsniff 
-24f2 68010032 fetch 2 ,mem_tsniff 
-24f3 203a24f5 branch slave_receive_notsniff ,blank 
-24f4 243724f7 nbranch slave_receive_sniff ,attempt 
-
-slave_receive_notsniff:
-24f5 20402a4f call rf_setup_time_master_slot 
-
-slave_receive_access:
-24f6 1d00c201 add clke_bt ,1 ,bt_clk 
-
-slave_receive_sniff:
-24f7 78287c00 enable swfine 
-24f8 6801003e fetch 2 ,mem_rx_window 
-24f9 1fe37e00 rshift pdata ,pdata 
-24fa d8400500 arg param_pll_setup ,temp 
-24fb 9840fe00 iadd temp ,pdata 
-24fc 20402a24 call ahead_window 
-24fd 204028ea call fetch_extm_bt_adr 
-24fe 18004803 force 0x03 ,freq_mode 
-24ff 204028cc call rx_radio_freq 
-2500 2040242a call init_rx_packet_flags 
-2501 204029f1 call prep_crypt 
-2502 44a8400a bpatch patch0a_0 ,mem_patch0a 
-2503 6801003e fetch 2 ,mem_rx_window 
-2504 1fe37e00 rshift pdata ,pdata 
-2505 20402a24 call ahead_window 
-2506 204029eb call start_receiver 
-2507 7826fc00 enable decode_fec0 
-2508 6801003e fetch 2 ,mem_rx_window 
-2509 d84003bb arg param_clke_cal ,temp 
-250a 9840b600 iadd temp ,stop_watch 
-250b 37c18400 correlate null ,timeout 
-250c 1b420400 copy clke ,temp 
-250d 600b009a storet 6 ,mem_sync_clke 
-250e 7846fc00 disable decode_fec0 
-250f 246c0000 nrtn sync 
-2510 dd2003bb arg param_clke_cal ,clke_rt 
-2511 1c225000 copy bt_clk ,clke_bt 
-2512 2035ab05 branch lpm_adjust_clk ,wake 
-2513 20600000 rtn 
-
-slave_conn_recv_packet:
-2514 44a8c00a bpatch patch0a_1 ,mem_patch0a 
-2515 204024f0 call slave_receive_master_slot 
-2516 242c28f9 nbranch shutdown_radio ,sync 
-2517 204029bb call save_rssi 
-2518 c588a51c bmark0 mark_testmode ,receive_packet 
-2519 680100f6 fetch 2 ,mem_tst_pktcnt_sync 
-251a 1fe0fe01 increase 1 ,pdata 
-251b 600100f6 store 2 ,mem_tst_pktcnt_sync 
-
-receive_packet:
-251c 1c230400 rshift bt_clk ,temp 
-251d 18419c40 or temp ,0x40 ,white_init 
-
-receive_packet_whitened:
-251e 44a9400a bpatch patch0a_2 ,mem_patch0a 
-251f 7823fc00 enable enable_white 
-2520 78257c00 enable enable_hec 
-2521 7825fc00 enable decode_fec1 
-2522 09800003 parse demod ,bucket ,3 
-2523 198cfe00 rshift8 pwindow ,pdata 
-2524 6000815d store 1 ,mem_temp_am_addr 
-2525 09800004 parse demod ,bucket ,4 
-2526 08008007 inject bucket ,7 
-2527 19827e00 copy pwindow ,pdata 
-2528 60008019 store 1 ,mem_rx_type 
-2529 09800003 parse demod ,bucket ,3 
-252a 198cfe00 rshift8 pwindow ,pdata 
-252b 6000815e store 1 ,mem_temp_arq 
-252c 68008019 fetch 1 ,mem_rx_type 
-252d 1fe67c03 sub pdata ,3 ,null 
-252e 20212533 branch receive_packet_noedr ,positive 
-252f c003a533 beq 7 ,receive_packet_noedr 
-2530 6800804c fetch 1 ,mem_state_map 
-2531 2feffe05 isolate1 smap_edr ,pdata 
-2532 7920aa01 setflag true ,psk ,radio_ctrl 
-
-receive_packet_noedr:
-2533 44a9c00a bpatch patch0a_3 ,mem_patch0a 
-2534 09800008 parse demod ,bucket ,8 
-2535 7845fc00 disable decode_fec1 
-2536 78457c00 disable enable_hec 
-2537 20232631 branch error_header ,crc_failed 
-2538 c588a53c bmark0 mark_testmode ,receive_packet_amchk 
-2539 680100f8 fetch 2 ,mem_tst_pktcnt_hec 
-253a 1fe0fe01 increase 1 ,pdata 
-253b 600100f8 store 2 ,mem_tst_pktcnt_hec 
-
-receive_packet_amchk:
-253c 44aa400a bpatch patch0a_4 ,mem_patch0a 
-253d 6800815d fetch 1 ,mem_temp_am_addr 
-253e 2fe00e00 compare 0 ,pdata ,0x07 
-253f 7920800a setflag true ,mark_am_addr_broadcast ,mark 
-2540 2020a54c branch am_addr_ok ,true 
-2541 a8800e00 icompare 0x07 ,am_addr 
-2542 2020a54b branch am_addr_match ,true 
-2543 c583a64d bmark0 mark_esco ,end_of_packet 
-2544 680880b0 fetcht 1 ,mem_saved_amaddr 
-2545 a8400e00 icompare 0x7 ,temp 
-2546 2420a64d nbranch end_of_packet ,true 
-2547 68008047 fetch 1 ,mem_arq 
-2548 793ffe05 set0 arqnx ,pdata 
-2549 79207e04 set1 flowx ,pdata 
-254a 60008047 store 1 ,mem_arq 
-
-am_addr_match:
-254b 7836fc00 enable match 
-
-am_addr_ok:
-254c 44aac00a bpatch patch0a_5 ,mem_patch0a 
-254d 68008019 fetch 1 ,mem_rx_type 
-254e 1fe20200 icopy type 
-254f c505255b bmark1 mark_am_addr_broadcast ,arqn_bypass 
-2550 6808815e fetcht 1 ,mem_temp_arq 
-2551 68008047 fetch 1 ,mem_arq 
-2552 793ffe00 set0 flow ,pdata 
-2553 284ffe00 isolate1 flow ,temp 
-2554 7920fe00 setflag true ,flow ,pdata 
-2555 284ffe01 isolate1 arqn ,temp 
-2556 7920fe01 setflag true ,arqn ,pdata 
-2557 60008047 store 1 ,mem_arq 
-2558 284c0001 isolate0 arqn ,temp 
-2559 2020a55b branch arqn_bypass ,true 
-255a 20402687 call clear_got_tx 
-
-arqn_bypass:
-255b 44ab400a bpatch patch0a_6 ,mem_patch0a 
-255c d8400000 arg 0 ,temp 
-255d 20402a1c call reserve_slot 
-255e 18217e0f and type ,0xf ,pdata 
-255f c000a587 beq type_poll ,process_poll 
-2560 c000264d beq type_null ,end_of_packet 
-2561 c0012659 beq type_fhs ,process_fhs 
-2562 6808815e fetcht 1 ,mem_temp_arq 
-2563 68008047 fetch 1 ,mem_arq 
-2564 a8400800 icompare 0x04 ,temp 
-2565 2420a569 nbranch rx_type_dispatch ,true 
-2566 c5852568 bmark0 mark_am_addr_broadcast ,failed_seqn 
-2567 c303a569 bbit0 bcast1 ,rx_type_dispatch 
-
-failed_seqn:
-2568 7920000f set1 mark_old_packet ,mark 
-
-rx_type_dispatch:
-2569 44abc00a bpatch patch0a_7 ,mem_patch0a 
-256a 18227e00 deposit type 
-256b c001a589 beq type_dm1 ,process_dm1 
-256c c002258d beq type_dh1 ,process_dh1 
-256d c003a578 beq type_hv3 ,process_hev 
-256e c004258c beq type_3dh1 ,process_3dh1 
-256f d8400004 arg 4 ,temp 
-2570 20402a1c call reserve_slot 
-2571 c0052588 beq type_dm3 ,process_dm3 
-2572 c005a58b beq type_dh3 ,process_dh3 
-2573 d8400008 arg 8 ,temp 
-2574 20402a1c call reserve_slot 
-2575 c0072588 beq type_dm5 ,process_dm5 
-2576 c007a58b beq type_dh5 ,process_dh5 
-2577 20600000 rtn 
-
-process_hev:
-2578 44ac400b bpatch patch0b_0 ,mem_patch0b 
-2579 7826fc00 enable decode_fec0 
-257a 7824fc00 enable enable_crc 
-257b 78277c00 enable encrypt 
-257c d8a000d1 arg mem_sco_ibuf ,contw 
-257d 1800721e force 30 ,loopcnt 
-
-process_hev_loop:
-257e 09800008 parse demod ,bucket ,8 
-257f 19897e00 rshift3 pwindow ,pdata 
-2580 e0a08000 istore 1 ,contw 
-2581 c200257e loop process_hev_loop 
-2582 c583a64d bmark0 mark_esco ,end_of_packet 
-2583 09800010 parse demod ,bucket ,16 
-2584 7d230008 nsetflag crc_failed ,mark_esco_rxok ,mark 
-2585 2023263d branch error_payload ,crc_failed 
-2586 20202620 branch ack_payload 
-
-process_poll:
-2587 2020264d branch end_of_packet 
-
-process_dm3:
-
-process_dm5:
-2588 79200010 set1 mark_longpacket ,mark 
-
-process_dm1:
-2589 78267c00 enable decode_fec2 
-258a 2020258e branch process_dmh 
-
-process_dh3:
-
-process_dh5:
-258b 79200010 set1 mark_longpacket ,mark 
-
-process_3dh1:
-258c 79202a02 set1 psk3m ,radio_ctrl 
-
-process_dh1:
-258d 7826fc00 enable decode_fec0 
-
-process_dmh:
-258e 44acc00b bpatch patch0b_1 ,mem_patch0b 
-258f c500a64d bmark1 mark_rxbuf_inuse ,end_of_packet 
-2590 2aac0001 isolate0 psk ,radio_ctrl 
-2591 2020a59a branch process_dmh_noedr ,true 
-2592 7843fc00 disable enable_white 
-2593 7826fc00 enable decode_fec0 
-2594 78467c00 disable decode_fec2 
-2595 1c409602 add clkn_bt ,2 ,timeup 
-2596 34530400 correlate clkn_bt ,meet 
-2597 242c263d nbranch error_payload ,sync 
-2598 79200010 set1 mark_longpacket ,mark 
-2599 7823fc00 enable enable_white 
-
-process_dmh_noedr:
-259a 44ad400b bpatch patch0b_2 ,mem_patch0b 
-259b 78277c00 enable encrypt 
-259c 7824fc00 enable enable_crc 
-259d 09800003 parse demod ,bucket ,3 
-259e 198cfe00 rshift8 pwindow ,pdata 
-259f 60008180 store 1 ,mem_lch_code 
-25a0 09800005 parse demod ,bucket ,5 
-25a1 c50825a5 bmark1 mark_longpacket ,process_dmh_long 
-25a2 19897200 rshift3 pwindow ,loopcnt 
-25a3 1f297200 rshift3 loopcnt ,loopcnt 
-25a4 202025a8 branch process_dmh_common 
-
-process_dmh_long:
-25a5 09800005 parse demod ,bucket ,5 
-25a6 19837200 rshift pwindow ,loopcnt 
-25a7 09800003 parse demod ,bucket ,3 
-
-process_dmh_common:
-25a8 44adc00b bpatch patch0b_3 ,mem_patch0b 
-25a9 1f227e00 deposit loopcnt 
-25aa 6001015f store 2 ,mem_len 
-25ab 203a25e8 branch process_dmh_data_end ,blank 
-25ac 9ea67c00 isub mask3ff ,null 
-25ad 2021263d branch error_payload ,positive 
-25ae 44ae400b bpatch patch0b_4 ,mem_patch0b 
-25af 793f8000 set0 mark_fhs_eir ,mark 
-25b0 68008180 fetch 1 ,mem_lch_code 
-25b1 1fe17e03 and_into 0x03 ,pdata 
-25b2 d8a00551 arg mem_rxbuf ,contw 
-25b3 c001a5ba beq llid_lmp ,process_lmp 
-25b4 c508a5e4 bmark1 mark_testmode ,process_dmh_data 
-25b5 68008180 fetch 1 ,mem_lch_code 
-25b6 1fe17e03 and_into 0x03 ,pdata 
-25b7 c00125bf beq llid_l2cap_start ,process_dmh_data_l2cap_start_pkt 
-25b8 c000a5d3 beq llid_l2cap_cont ,process_dmh_data_l2cap_continue_pkt 
-25b9 2020263d branch error_payload 
-
-process_lmp:
-25ba 6801015f fetch 2 ,mem_len 
-25bb 1fe67c70 sub pdata ,0x70 ,null 
-25bc 2421263d nbranch error_payload ,positive 
-25bd c507a620 bmark1 mark_old_packet ,ack_payload 
-25be 202025e4 branch process_dmh_data 
-
-process_dmh_data_l2cap_start_pkt:
-25bf 44aec00b bpatch patch0b_5 ,mem_patch0b 
-25c0 c507a620 bmark1 mark_old_packet ,ack_payload 
-25c1 6801015f fetch 2 ,mem_len 
-25c2 d84002e0 arg 0x2e0 ,temp 
-25c3 98467c00 isub temp ,null 
-25c4 2021263d branch error_payload ,positive 
-25c5 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
-25c6 c30025c9 bbit0 l2cap_inuse_buff1 ,process_dmh_data_into_buff1 
-25c7 c300a5ce bbit0 l2cap_inuse_buff2 ,process_dmh_data_into_buff2 
-25c8 2020264d branch end_of_packet 
-
-process_dmh_data_into_buff1:
-25c9 70026101 jam 1 ,mem_l2cap_rxbuff_new 
-25ca 6801025d fetch 2 ,mem_l2cap_rxbuff1_len 
-25cb c080264d bne 0 ,end_of_packet 
-25cc d8a01000 arg mem_l2cap_rxbuff1 ,contw 
-25cd 202025e4 branch process_dmh_data 
-
-process_dmh_data_into_buff2:
-25ce 70026102 jam 2 ,mem_l2cap_rxbuff_new 
-25cf 6801025f fetch 2 ,mem_l2cap_rxbuff2_len 
-25d0 c080264d bne 0 ,end_of_packet 
-25d1 d8a01400 arg mem_l2cap_rxbuff2 ,contw 
-25d2 202025e4 branch process_dmh_data 
-
-process_dmh_data_l2cap_continue_pkt:
-25d3 44af400b bpatch patch0b_6 ,mem_patch0b 
-25d4 c507a620 bmark1 mark_old_packet ,ack_payload 
-25d5 6801015f fetch 2 ,mem_len 
-25d6 d84002e0 arg 0x2e0 ,temp 
-25d7 98467c00 isub temp ,null 
-25d8 2021263d branch error_payload ,positive 
-25d9 68008261 fetch 1 ,mem_l2cap_rxbuff_new 
-25da c000a5dd beq 1 ,process_dmh_data_l2cap_continue_pkt1 
-25db c00125e1 beq 2 ,process_dmh_data_l2cap_continue_pkt2 
-25dc 2020264d branch end_of_packet 
-
-process_dmh_data_l2cap_continue_pkt1:
-25dd d8a01000 arg mem_l2cap_rxbuff1 ,contw 
-25de 6801025d fetch 2 ,mem_l2cap_rxbuff1_len 
-25df 98a08a00 iadd contw ,contw 
-25e0 202025e4 branch process_dmh_data 
-
-process_dmh_data_l2cap_continue_pkt2:
-25e1 d8a01400 arg mem_l2cap_rxbuff2 ,contw 
-25e2 6801025f fetch 2 ,mem_l2cap_rxbuff2_len 
-25e3 98a08a00 iadd contw ,contw 
-
-process_dmh_data:
-25e4 09800008 parse demod ,bucket ,8 
-25e5 19897e00 rshift3 pwindow ,pdata 
-25e6 e0a08000 istore 1 ,contw 
-25e7 c20025e4 loop process_dmh_data 
-
-process_dmh_data_end:
-25e8 44afc00b bpatch patch0b_7 ,mem_patch0b 
-25e9 09800010 parse demod ,bucket ,16 
-25ea 20232637 branch error_payload_crc ,crc_failed 
-25eb 6800c363 fetch 1 ,mem_l2cap_flow_ctrl_flag 
-25ec c000a64d beq l2cap_flow_ctrl_enable ,end_of_packet 
-25ed c508a60d bmark1 mark_testmode ,process_dmh_cont 
-25ee c507a64a bmark1 mark_old_packet ,redundant_payload 
-25ef 68008180 fetch 1 ,mem_lch_code 
-25f0 2fe00603 compare 3 ,pdata ,3 
-25f1 2020a60d branch process_dmh_cont ,true 
-25f2 6801015f fetch 2 ,mem_len 
-25f3 203a260d branch process_dmh_cont ,blank 
-25f4 44b0400c bpatch patch0c_0 ,mem_patch0c 
-25f5 68008261 fetch 1 ,mem_l2cap_rxbuff_new 
-25f6 c000a5f9 beq 1 ,process_l2cap_pass_crc_buff1 
-25f7 c0012603 beq 2 ,process_l2cap_pass_crc_buff2 
-25f8 20202a8c branch assert 
-
-process_l2cap_pass_crc_buff1:
-25f9 6801025d fetch 2 ,mem_l2cap_rxbuff1_len 
-25fa 6809015f fetcht 2 ,mem_len 
-25fb 9840fe00 iadd temp ,pdata 
-25fc 6001025d store 2 ,mem_l2cap_rxbuff1_len 
-25fd c0002a8c beq 0 ,assert 
-25fe 68091000 fetcht 2 ,mem_l2cap_rxbuff1 
-25ff 18408404 increase 4 ,temp 
-2600 98467c00 isub temp ,null 
-2601 2042a747 call l2cap_buff1_inuse ,zero 
-2602 2020260d branch process_dmh_cont 
-
-process_l2cap_pass_crc_buff2:
-2603 6801025f fetch 2 ,mem_l2cap_rxbuff2_len 
-2604 6809015f fetcht 2 ,mem_len 
-2605 9840fe00 iadd temp ,pdata 
-2606 6001025f store 2 ,mem_l2cap_rxbuff2_len 
-2607 c0002a8c beq 0 ,assert 
-2608 68091400 fetcht 2 ,mem_l2cap_rxbuff2 
-2609 18408404 add temp ,4 ,temp 
-260a 98467c00 isub temp ,null 
-260b 2042a74b call l2cap_buff2_inuse ,zero 
-260c 2020260d branch process_dmh_cont 
-
-process_dmh_cont:
-260d 44b0c00c bpatch patch0c_1 ,mem_patch0c 
-260e 6808804c fetcht 1 ,mem_state_map 
-260f 68008180 fetch 1 ,mem_lch_code 
-2610 2fe00603 compare 3 ,pdata ,0x03 
-2611 79208406 setflag true ,smap_rxlmp ,temp 
-2612 7d208407 nsetflag true ,smap_rxl2cap ,temp 
-2613 6008804c storet 1 ,mem_state_map 
-2614 2420a616 nbranch process_dmh_cont_rxbuf_not_use ,true 
-2615 79200001 set1 mark_rxbuf_inuse ,mark 
-
-process_dmh_cont_rxbuf_not_use:
-2616 c588a620 bmark0 mark_testmode ,ack_payload 
-2617 284ffe06 isolate1 smap_rxlmp ,temp 
-2618 2020a620 branch ack_payload ,true 
-2619 680100fa fetch 2 ,mem_tst_pktcnt_crc 
-261a 1fe0fe01 increase 1 ,pdata 
-261b 600100fa store 2 ,mem_tst_pktcnt_crc 
-261c 79200005 set1 mark_loopback ,mark 
-261d 793f8407 set0 smap_rxl2cap ,temp 
-261e 793f8001 set0 mark_rxbuf_inuse ,mark 
-261f 6008804c storet 1 ,mem_state_map 
-
-ack_payload:
-2620 44b1400c bpatch patch0c_2 ,mem_patch0c 
-2621 6808815e fetcht 1 ,mem_temp_arq 
-2622 68008047 fetch 1 ,mem_arq 
-2623 79207e05 set1 arqnx ,pdata 
-2624 284ffe02 isolate1 seqn ,temp 
-2625 7920fe02 setflag true ,seqn ,pdata 
-2626 280ffe0a isolate1 mark_am_addr_broadcast ,mark 
-2627 7920fe07 setflag true ,bcast1 ,pdata 
-2628 60008047 store 1 ,mem_arq 
-2629 6801015f fetch 2 ,mem_len 
-262a 243a264d nbranch end_of_packet ,blank 
-262b 6800804c fetch 1 ,mem_state_map 
-262c 793ffe07 set0 smap_rxl2cap ,pdata 
-262d 6000804c store 1 ,mem_state_map 
-262e 68008180 fetch 1 ,mem_lch_code 
-262f 2fe00e01 compare 0x01 ,pdata ,0x07 
-2630 2020264d branch end_of_packet 
-
-error_header:
-2631 44b1c00c bpatch patch0c_3 ,mem_patch0c 
-2632 7856fc00 disable match 
-2633 6801001a fetch 2 ,mem_rx_hec_err 
-2634 1fe0fe01 increase 1 ,pdata 
-2635 6001001a store 2 ,mem_rx_hec_err 
-2636 2020264d branch end_of_packet 
-
-error_payload_crc:
-2637 6801001c fetch 2 ,mem_rx_crc_err 
-2638 1fe0fe01 increase 1 ,pdata 
-2639 6001001c store 2 ,mem_rx_crc_err 
-263a 2040263e call discard_pkt 
-263b c588a63d bmark0 mark_testmode ,error_payload 
-263c 79200005 set1 mark_loopback ,mark 
-
-error_payload:
-263d 2020264d branch end_of_packet 
-
-discard_pkt:
-263e 44b2400c bpatch patch0c_4 ,mem_patch0c 
-263f 68008180 fetch 1 ,mem_lch_code 
-2640 2fe00603 compare 3 ,pdata ,0x03 
-2641 2420a646 nbranch discard_pkt_l2cap ,true 
-
-discard_pkt_lmp:
-2642 6808804c fetcht 1 ,mem_state_map 
-2643 793f8406 set0 smap_rxlmp ,temp 
-2644 6008804c storet 1 ,mem_state_map 
-2645 20600000 rtn 
-
-discard_pkt_l2cap:
-2646 6808804c fetcht 1 ,mem_state_map 
-2647 793f8407 set0 smap_rxl2cap ,temp 
-2648 6008804c storet 1 ,mem_state_map 
-2649 20204c0b branch h4_send_acl_trigger_clear 
-
-redundant_payload:
-264a 68008047 fetch 1 ,mem_arq 
-264b 79207e05 set1 arqnx ,pdata 
-264c 60008047 store 1 ,mem_arq 
-
-end_of_packet:
-264d 44b2c00c bpatch patch0c_5 ,mem_patch0c 
-264e 784efc00 disable encode_fec0 
-264f 784e7c00 disable encode_fec2 
-2650 7846fc00 disable decode_fec0 
-2651 78467c00 disable decode_fec2 
-2652 7844fc00 disable enable_crc 
-2653 78477c00 disable encrypt 
-2654 7843fc00 disable enable_white 
-2655 2030a8f9 branch shutdown_radio ,is_rx 
-2656 37d38200 until null ,tx_clear 
-2657 20000064 nop 100 
-2658 202028f9 branch shutdown_radio 
-
-process_fhs:
-2659 44b3400c bpatch patch0c_6 ,mem_patch0c 
-265a 7824fc00 enable enable_crc 
-265b 78267c00 enable decode_fec2 
-265c 09800048 parse demod ,bucket ,72 
-265d 2feffe3a isolate1 58 ,pdata 
-265e 79208000 setflag true ,mark_fhs_eir ,mark 
-265f 1c020400 copy bt_adr ,temp 
-2660 57e04000 ialigned bt_adr 
-2661 57e03c00 ialigned fhs0 
-2662 782afc00 pulse recalc 
-2663 380bffff setsect 2 ,0xfffff 
-2664 380cffff setsect 3 ,0x0ffff 
-2665 20000020 nop 32 
-2666 29a80000 iverify fhs_parity 
-2667 1d827e00 deposit lap 
-2668 60018178 store 3 ,extm_lap 
-2669 1da27e00 deposit uap 
-266a 6000817b store 1 ,extm_uap 
-266b 18424000 copy temp ,bt_adr 
-266c 2020a66e branch fhs_parity_ok ,true 
-266d 2020263d branch error_payload 
-
-fhs_parity_ok:
-266e 44b3c00c bpatch patch0c_7 ,mem_patch0c 
-266f 09800048 parse demod ,bucket ,72 
-2670 57e03e00 ialigned fhs1 
-2671 57e00800 ialigned am_addr 
-2672 57e05c00 ialigned nap 
-2673 57e02400 ialigned regb 
-2674 18007e00 force 0 ,pdata 
-2675 09800010 parse demod ,bucket ,16 
-2676 2023263d branch error_payload ,crc_failed 
-2677 5ffffffc setarg 0x0ffffffc 
-2678 9a417e00 iand regb ,pdata 
-2679 60020165 store 4 ,mem_clke_bt 
-267a 1ba27e00 deposit fhs_class 
-267b 60018175 store 3 ,extm_class 
-267c 1b827e00 deposit fhs_misc 
-267d 60008173 store 1 ,extm_fhs_misc 
-267e 18827e00 deposit am_addr 
-267f 60008174 store 1 ,extm_newconn_am_addr 
-2680 1dc27e00 deposit nap 
-2681 6001017c store 2 ,extm_nap 
-2682 1c227e00 deposit bt_clk 
-2683 08008220 inject rxf ,32 
-2684 28201e02 compare type_fhs ,type ,0x0f 
-2685 7920800b setflag true ,mark_fhs_already_good ,mark 
-2686 2020264d branch end_of_packet 
-
-clear_got_tx:
-2687 44b4400d bpatch patch0d_0 ,mem_patch0d 
-2688 68008047 fetch 1 ,mem_arq 
-2689 c4018000 rtnbit0 wack 
-268a 793ffe03 set0 wack ,pdata 
-268b 79407e06 setflip seqnx ,pdata 
-268c 60008047 store 1 ,mem_arq 
-268d 6800c0c5 fetch 1 ,mem_last_type 
-268e c009a69c beq type_lmp ,clear_got_txlmp 
-268f c1038000 rtneq type_hv3 
-2690 6800804b fetch 1 ,mem_op 
-2691 c4030000 rtnbit0 op_txl2cap ,pdata 
-2692 793ffe06 set0 op_txl2cap ,pdata 
-2693 79207e07 set1 op_pkt_comp ,pdata 
-2694 6000804b store 1 ,mem_op 
-2695 793f8002 set0 mark_tx_l2cap ,mark 
-2696 68014246 fetch 2 ,mem_l2cap_tx_multi_offset 
-2697 247a0000 nrtn blank 
-2698 6800804b fetch 1 ,mem_op 
-2699 793ffe07 set0 op_pkt_comp ,pdata 
-269a 6000804b store 1 ,mem_op 
-269b 2020525d branch l2cap_malloc_free 
-
-clear_got_txlmp:
-269c 44b4c00d bpatch patch0d_1 ,mem_patch0d 
-269d 680084b7 fetch 1 ,mem_lmo_header_opcode 
-269e 1fe37e00 rshift pdata ,pdata 
-269f c008a6b8 beq lmp_start_encryption_req ,start_encryption 
-26a0 c00926c0 beq lmp_stop_encryption_req ,stop_encryption 
-26a1 c00c26e9 beq lmp_unsniff_req ,sniff_exit 
-26a2 c03fa6a8 beq lmp_escape ,clear_lmp_escape 
-26a3 c1818000 rtnne lmp_accepted 
-26a4 680084b8 fetch 1 ,mem_lmo_payload 
-26a5 c015a6b0 beq lmp_sco_link_req ,sco_link_req_by_slave 
-26a6 c008a6ab beq lmp_start_encryption_req ,clear_send_setup_complete 
-26a7 20600000 rtn 
-
-clear_lmp_escape:
-26a8 680084b8 fetch 1 ,mem_lmo_payload 
-26a9 79207e07 set1 7 ,pdata 
-26aa 20600000 rtn 
-
-clear_send_setup_complete:
-26ab 20748000 rtn master 
-26ac 68008030 fetch 1 ,mem_state 
-26ad c3820000 rtnbit1 state_conn_comp 
-26ae 70007c31 jam lmp_setup_complete ,mem_lmo_opcode2 
-26af 20600000 rtn 
-
-sco_link_req_by_slave:
-26b0 20748000 rtn master 
-26b1 68008031 fetch 1 ,mem_mode 
-26b2 2feffe04 isolate1 send_sco_when_slave ,pdata 
-26b3 2020a6b5 branch clean_mem_mode ,true 
-26b4 20600000 rtn 
-
-clean_mem_mode:
-26b5 793ffe04 set0 send_sco_when_slave ,pdata 
-26b6 60008031 store 1 ,mem_mode 
-26b7 20600000 rtn 
-
-start_encryption:
-26b8 44b5400d bpatch patch0d_2 ,mem_patch0d 
-26b9 6800804c fetch 1 ,mem_state_map 
-26ba 79207e02 set1 smap_encryption ,pdata 
-26bb 6000804c store 1 ,mem_state_map 
-26bc 70801101 jam 1 ,core_encrypt 
-26bd 68008030 fetch 1 ,mem_state 
-26be 2feffe04 isolate1 state_conn_comp ,pdata 
-26bf 20600000 rtn 
-
-stop_encryption:
-26c0 44b5c00d bpatch patch0d_3 ,mem_patch0d 
-26c1 6800804c fetch 1 ,mem_state_map 
-26c2 793ffe02 set0 smap_encryption ,pdata 
-26c3 6000804c store 1 ,mem_state_map 
-26c4 70801100 jam 0 ,core_encrypt 
-26c5 20600000 rtn 
-
-sniff_init:
-26c6 44b6400d bpatch patch0d_4 ,mem_patch0d 
-26c7 1c427e00 copy clkn_bt ,pdata 
-26c8 6002420c store 4 ,mem_lpm_delay_after_sniff 
-26c9 1c40a203 add clkn_bt ,3 ,rega 
-26ca 2034a6cc branch sniff_init_master ,master 
-26cb 1d00a203 add clke_bt ,3 ,rega 
-
-sniff_init_master:
-26cc 68090032 fetcht 2 ,mem_tsniff 
-26cd 1a227e00 deposit rega 
-26ce 793ffe1b set0 27 ,pdata 
-26cf 9846fc00 idiv temp 
-26d0 68010075 fetch 2 ,mem_dsniff 
-26d1 20407f86 call wait_div_end 
-26d2 18072600 remainder regc 
-26d3 9a667e00 isub regc ,pdata 
-26d4 202126d6 branch sniff_init_nowrap ,positive 
-26d5 9840fe00 iadd temp ,pdata 
-
-sniff_init_nowrap:
-26d6 9a20fe00 iadd rega ,pdata 
-26d7 60020034 store 4 ,mem_sniff_anchor 
-26d8 70455b00 jam switch_flag_init ,mem_switch_flag 
-26d9 68008030 fetch 1 ,mem_state 
-26da 79207e01 set1 state_insniff ,pdata 
-26db 60008030 store 1 ,mem_state 
-26dc 68008073 fetch 1 ,mem_sniff_attempt 
-26dd 6000808a store 1 ,mem_current_sniff_attempt 
-26de 58000000 setarg 0 
-26df 6001c169 store 3 ,mem_sniff_rcv 
-26e0 6001c16c store 3 ,mem_sniff_lost 
-26e1 6000c159 store 1 ,mem_sniff_unint_lost 
-26e2 700a990b jam bt_evt_enter_sniff ,mem_fifo_temp 
-26e3 20407d86 call ui_ipc_send_event 
-26e4 680140c1 fetch 2 ,mem_rx_window_sniff 
-26e5 6001003e store 2 ,mem_rx_window 
-26e6 24748000 nrtn master 
-26e7 18808fff add am_addr ,-1 ,queue 
-26e8 20600000 rtn 
-
-sniff_exit:
-26e9 44b6c00d bpatch patch0d_5 ,mem_patch0d 
-26ea 68008030 fetch 1 ,mem_state 
-26eb c4008000 rtnbit0 state_insniff 
-26ec 793ffe01 set0 state_insniff ,pdata 
-26ed 60008030 store 1 ,mem_state 
-26ee 680140bf fetch 2 ,mem_rx_window_init 
-26ef 6001003e store 2 ,mem_rx_window 
-26f0 7855fc00 disable wake 
-26f1 700a990c jam bt_evt_exit_sniff ,mem_fifo_temp 
-26f2 20207d86 branch ui_ipc_send_event 
-
-check_attempt:
-26f3 44b7400d bpatch patch0d_6 ,mem_patch0d 
-26f4 78377c00 enable attempt 
-26f5 68008030 fetch 1 ,mem_state 
-26f6 c280a700 bbit1 state_insniff ,check_attempt_sniff 
-26f7 c6088000 rtnmark1 mark_testmode 
-26f8 68008047 fetch 1 ,mem_arq 
-26f9 c3818000 rtnbit1 wack 
-26fa 68008048 fetch 1 ,mem_lmp_to_send 
-26fb 247a0000 nrtn blank 
-26fc 6800804b fetch 1 ,mem_op 
-26fd c3830000 rtnbit1 op_txl2cap 
-
-check_attempt_nomore:
-26fe 18007e00 force 0 ,pdata 
-26ff 20600000 rtn 
-
-check_attempt_sniff:
-2700 c301270f bbit0 state_insco ,check_attempt_not_sco 
-2701 6800808a fetch 1 ,mem_current_sniff_attempt 
-2702 c0012706 beq 2 ,check_attempt_sniff_restore_sco 
-2703 68008047 fetch 1 ,mem_arq 
-2704 c281a718 bbit1 wack ,check_attempt_notimeout 
-2705 c5842718 bmark0 mark_esco_rxok ,check_attempt_notimeout 
-
-check_attempt_sniff_restore_sco:
-2706 2434a718 nbranch check_attempt_notimeout ,master 
-2707 68008048 fetch 1 ,mem_lmp_to_send 
-2708 243a2718 nbranch check_attempt_notimeout ,blank 
-
-check_attempt_sco_master:
-2709 680080ef fetch 1 ,mem_sco_poll 
-270a 1fe0ffff increase -1 ,pdata 
-270b 600080ef store 1 ,mem_sco_poll 
-270c 243a26fe nbranch check_attempt_nomore ,blank 
-270d 7000ef10 jam param_sco_poll ,mem_sco_poll 
-270e 20202718 branch check_attempt_notimeout 
-
-check_attempt_not_sco:
-270f 6800808a fetch 1 ,mem_current_sniff_attempt 
-2710 c080a718 bne 1 ,check_attempt_notimeout 
-2711 6800808b fetch 1 ,mem_current_sniff_timeout 
-2712 203a2718 branch check_attempt_notimeout ,blank 
-2713 1fe0ffff increase -1 ,pdata 
-2714 6000808b store 1 ,mem_current_sniff_timeout 
-2715 68008047 fetch 1 ,mem_arq 
-2716 c3818000 rtnbit1 wack 
-2717 24768000 nrtn match 
-
-check_attempt_notimeout:
-2718 6800808a fetch 1 ,mem_current_sniff_attempt 
-2719 1fe0ffff increase -1 ,pdata 
-271a 6000808a store 1 ,mem_current_sniff_attempt 
-271b 20600000 rtn 
-
-sniff_check_window:
-271c 44b7c00d bpatch patch0d_7 ,mem_patch0d 
-271d 78487c00 disable swfine 
-271e 18423600 copy temp ,stop_watch 
-271f 20402260 call context_search_sniff_window 
-2720 78547c00 disable user 
-2721 24628000 nrtn zero 
-2722 18003600 force 0 ,stop_watch 
-2723 78347c00 enable user 
-2724 20600000 rtn 
-
-check_esco_amaddr:
-2725 6800c158 fetch 1 ,mem_esco_addr 
-2726 a881fe00 icompare 0xff ,am_addr 
-2727 20600000 rtn 
-
-parse_l2cap:
-2728 44b8400e bpatch patch0e_0 ,mem_patch0e 
-2729 793f8001 set0 mark_rxbuf_inuse ,mark 
-
-parse_l2cap_cont:
-272a 70026a00 jam l2cap_rx_clear ,mem_l2cap_rx_done 
-272b 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
-272c 207a0000 rtn blank 
-272d 2feffe00 isolate1 l2cap_inuse_buff1 ,pdata 
-272e d8c01000 arg mem_l2cap_rxbuff1 ,contr 
-272f 2040cd79 call process_rx_l2cap_pkt ,true 
-2730 44b8c00e bpatch patch0e_1 ,mem_patch0e 
-2731 6800826a fetch 1 ,mem_l2cap_rx_done 
-2732 c000a73b beq l2cap_rx_done ,parse_l2cap_release_buff1 
-2733 70026a00 jam l2cap_rx_clear ,mem_l2cap_rx_done 
-2734 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
-2735 c4008000 rtnbit0 l2cap_inuse_buff2 
-2736 d8c01400 arg mem_l2cap_rxbuff2 ,contr 
-2737 20404d79 call process_rx_l2cap_pkt 
-2738 6800826a fetch 1 ,mem_l2cap_rx_done 
-2739 c000a741 beq l2cap_rx_done ,parse_l2cap_release_buff2 
-273a 20600000 rtn 
-
-parse_l2cap_release_buff1:
-273b 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
-273c 793ffe00 set0 l2cap_inuse_buff1 ,pdata 
-273d 60008263 store 1 ,mem_l2cap_rxbuff_inuse 
-273e 58000000 setarg 0 
-273f 6001025d store 2 ,mem_l2cap_rxbuff1_len 
-2740 20600000 rtn 
-
-parse_l2cap_release_buff2:
-2741 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
-2742 793ffe01 set0 l2cap_inuse_buff2 ,pdata 
-2743 60008263 store 1 ,mem_l2cap_rxbuff_inuse 
-2744 58000000 setarg 0 
-2745 6001025f store 2 ,mem_l2cap_rxbuff2_len 
-2746 20600000 rtn 
-
-l2cap_buff1_inuse:
-2747 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
-2748 79207e00 set1 l2cap_inuse_buff1 ,pdata 
-2749 60008263 store 1 ,mem_l2cap_rxbuff_inuse 
-274a 20600000 rtn 
-
-l2cap_buff2_inuse:
-274b 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
-274c 79207e01 set1 l2cap_inuse_buff2 ,pdata 
-274d 60008263 store 1 ,mem_l2cap_rxbuff_inuse 
-274e 20600000 rtn 
-
-slave_send_access:
-274f 44b9400e bpatch patch0e_2 ,mem_patch0e 
-2750 1d00c201 add clke_bt ,1 ,bt_clk 
-2751 204028ea call fetch_extm_bt_adr 
-2752 18004803 force 0x03 ,freq_mode 
-2753 204028d2 call tx_radio_freq 
-2754 20402a51 call start_transmitter 
-2755 20402a5f call start_tx_external 
-2756 20202a64 branch send_access_word 
-
-slave_conn_send_packet:
-2757 44b9c00e bpatch patch0e_3 ,mem_patch0e 
-2758 20402a4d call rf_setup_time_slave_slot 
-2759 1d027e00 deposit clke_bt 
-275a 680a40ca fetcht 4 ,mem_next_btclk 
-275b 98467e00 isub temp ,pdata 
-275c c1808000 rtnne 1 
-275d 28203e00 compare type_null ,type ,0x1f 
-275e 2420a761 nbranch slave_conn_send_access ,true 
-275f 68008019 fetch 1 ,mem_rx_type 
-2760 207a0000 rtn blank 
-
-slave_conn_send_access:
-2761 2040274f call slave_send_access 
-
-transmit_packet:
-2762 28203e10 compare type_id ,type ,0x1f 
-2763 2020a64d branch end_of_packet ,true 
-2764 1c230400 rshift bt_clk ,temp 
-2765 18419c40 or temp ,0x40 ,white_init 
-
-transmit_packet_whitened:
-2766 44ba400e bpatch patch0e_4 ,mem_patch0e 
-2767 7823fc00 enable enable_white 
-2768 78257c00 enable enable_hec 
-2769 782dfc00 enable encode_fec1 
-276a 793f8010 set0 mark_longpacket ,mark 
-276b 18827e00 deposit am_addr 
-276c 08008603 inject mod ,3 
-276d 18227e00 deposit type 
-276e 08008604 inject mod ,4 
-276f 68008047 fetch 1 ,mem_arq 
-2770 08008004 inject bucket ,4 
-2771 08008603 inject mod ,3 
-2772 78247c00 enable enable_parity 
-2773 08008608 inject mod ,8 
-2774 784dfc00 disable encode_fec1 
-2775 78447c00 disable enable_parity 
-2776 78457c00 disable enable_hec 
-2777 793faa02 set0 psk3m ,radio_ctrl 
-2778 d8400000 arg 0 ,temp 
-2779 20402a1c call reserve_slot 
-277a 44bac00e bpatch patch0e_5 ,mem_patch0e 
-277b 18217e1f and type ,0x1f ,pdata 
-277c c009a7b4 beq type_lmp ,transmit_lmp 
-277d c000264d beq type_null ,end_of_packet 
-277e c000a64d beq type_poll ,end_of_packet 
-277f c0012797 beq type_fhs ,transmit_fhs 
-2780 c001a7c5 beq type_dm1 ,transmit_dm1 
-2781 c00227cb beq type_dh1 ,transmit_dh1 
-2782 c003a78c beq type_hv3 ,transmit_hev 
-2783 c00427ca beq type_3dh1 ,transmit_3dh1 
-2784 d8400004 arg 4 ,temp 
-2785 20402a1c call reserve_slot 
-2786 c00527c7 beq type_dm3 ,transmit_dm3 
-2787 c005a7cd beq type_dh3 ,transmit_dh3 
-2788 d8400008 arg 8 ,temp 
-2789 20402a1c call reserve_slot 
-278a c007a7cd beq type_dh5 ,transmit_dh5 
-278b 202027c7 branch transmit_dm5 
-
-transmit_hev:
-278c 44bb400e bpatch patch0e_6 ,mem_patch0e 
-278d 782efc00 enable encode_fec0 
-278e 7824fc00 enable enable_crc 
-278f 78277c00 enable encrypt 
-2790 1800721e force 30 ,loopcnt 
-2791 d8c000b3 arg mem_sco_obuf ,contr 
-
-transmit_ev_loop:
-2792 e8c08000 ifetch 1 ,contr 
-2793 08008608 inject mod ,8 
-2794 c2002792 loop transmit_ev_loop 
-2795 c503a7f7 bmark1 mark_esco ,transmit_end 
-2796 2020264d branch end_of_packet 
-
-transmit_fhs:
-2797 44bbc00e bpatch patch0e_7 ,mem_patch0e 
-2798 68008181 fetch 1 ,mem_fhs_am_addr 
-2799 1fe20800 icopy am_addr 
-279a 68008090 fetch 1 ,mem_fhs_misc 
-279b 1fe23800 icopy fhs_misc 
-279c 6801c0aa fetch 3 ,mem_class 
-279d 1fe23a00 icopy fhs_class 
-279e 680140a4 fetch 2 ,mem_nap 
-279f 1fe25c00 icopy nap 
-27a0 7824fc00 enable enable_crc 
-27a1 782e7c00 enable encode_fec2 
-27a2 1c022200 copy bt_adr ,rega 
-27a3 204028e2 call fetch_self_bt_adr 
-27a4 782afc00 pulse recalc 
-27a5 20000020 nop 32 
-27a6 1c221600 copy bt_clk ,timeup 
-27a7 68020161 fetch 4 ,mem_clkn_bt 
-27a8 1fe24200 icopy bt_clk 
-27a9 53c07e00 preload fhs0 
-27aa 79207e3a set1 58 ,pdata 
-27ab 08008648 inject mod ,72 
-27ac 53e07e00 preload fhs1 
-27ad 08008648 inject mod ,72 
-27ae 19624200 copy timeup ,bt_clk 
-27af 1a224000 copy rega ,bt_adr 
-27b0 78247c00 enable enable_parity 
-27b1 08008610 inject mod ,16 
-27b2 78447c00 disable enable_parity 
-27b3 2020264d branch end_of_packet 
-
-transmit_lmp:
-27b4 44bc400f bpatch patch0f_0 ,mem_patch0f 
-27b5 78277c00 enable encrypt 
-27b6 7824fc00 enable enable_crc 
-27b7 782e7c00 enable encode_fec2 
-27b8 680084b6 fetch 1 ,mem_lmo_header_length 
-27b9 1fe105f8 and pdata ,0x1f8 ,temp 
-27ba d8c004b6 arg mem_lmo_header_length ,contr 
-27bb 18408408 increase 8 ,temp 
-
-transmit_lmp_loop:
-27bc 1840a7b8 add temp ,-72 ,regc 
-27bd 242127c2 nbranch transmit_lmp_finish ,positive 
-27be e8c48000 ifetch 9 ,contr 
-27bf 08008648 inject mod ,72 
-27c0 1a620400 copy regc ,temp 
-27c1 202027bc branch transmit_lmp_loop 
-
-transmit_lmp_finish:
-27c2 e8c48000 ifetch 9 ,contr 
-27c3 08418600 iinject mod ,temp 
-27c4 202027f7 branch transmit_end 
-
-transmit_dm1:
-27c5 782e7c00 enable encode_fec2 
-27c6 202027d0 branch transmit_dmh 
-
-transmit_dm3:
-
-transmit_dm5:
-27c7 782e7c00 enable encode_fec2 
-27c8 79200010 set1 mark_longpacket ,mark 
-27c9 202027d0 branch transmit_dmh 
-
-transmit_3dh1:
-27ca 79202a02 set1 psk3m ,radio_ctrl 
-
-transmit_dh1:
-27cb 782efc00 enable encode_fec0 
-27cc 202027d0 branch transmit_dmh 
-
-transmit_dh3:
-
-transmit_dh5:
-27cd 79202a02 set1 psk3m ,radio_ctrl 
-27ce 782efc00 enable encode_fec0 
-27cf 79200010 set1 mark_longpacket ,mark 
-
-transmit_dmh:
-27d0 44bcc00f bpatch patch0f_1 ,mem_patch0f 
-27d1 6800804c fetch 1 ,mem_state_map 
-27d2 c302a7e5 bbit0 smap_edr ,transmit_noedr 
-27d3 18267c03 sub type ,3 ,null 
-27d4 202127e5 branch transmit_noedr ,positive 
-27d5 78477c00 disable encrypt 
-27d6 784e7c00 disable encode_fec2 
-27d7 782efc00 enable encode_fec0 
-27d8 7843fc00 disable enable_white 
-27d9 79202a01 set1 psk ,radio_ctrl 
-27da 2aaffe02 isolate1 psk3m ,radio_ctrl 
-27db 2020a7df branch transmit_edr3m ,true 
-27dc 580abeee setarg 0xabeee 
-27dd 08008614 inject mod ,20 
-27de 202027e3 branch transmit_edr_sync_end 
-
-transmit_edr3m:
-27df 585faeba setarg 0x5faeba 
-27e0 08008618 inject mod ,24 
-27e1 58000012 setarg 0x12 
-27e2 08008606 inject mod ,6 
-
-transmit_edr_sync_end:
-27e3 7823fc00 enable enable_white 
-27e4 79200010 set1 mark_longpacket ,mark 
-
-transmit_noedr:
-27e5 78277c00 enable encrypt 
-27e6 7824fc00 enable enable_crc 
-27e7 c502a800 bmark1 mark_loopback ,transmit_loopback 
-27e8 6800c1db fetch 1 ,mem_tx_lch 
-27e9 08008603 inject mod ,3 
-27ea 680141dc fetch 2 ,mem_tx_len 
-27eb 98007200 iforce loopcnt 
-27ec c50827ef bmark1 mark_longpacket ,transmit_long 
-27ed 08008605 inject mod ,5 
-27ee 202027f0 branch transmit_stuff 
-
-transmit_long:
-27ef 0800860d inject mod ,13 
-
-transmit_stuff:
-27f0 1f227e00 deposit loopcnt 
-27f1 203a27f7 branch transmit_end ,blank 
-27f2 6801016f fetch 2 ,mem_txptr 
-27f3 98000c00 iforce contr 
-
-transmit_stuff_loop:
-27f4 e8c08000 ifetch 1 ,contr 
-27f5 08008608 inject mod ,8 
-27f6 c20027f4 loop transmit_stuff_loop 
-
-transmit_end:
-27f7 78247c00 enable enable_parity 
-27f8 08008610 inject mod ,16 
-27f9 78447c00 disable enable_parity 
-27fa 204024c1 call set_wait_ack 
-27fb 6800804c fetch 1 ,mem_state_map 
-27fc c302a64d bbit0 smap_edr ,end_of_packet 
-27fd 18007e00 force 0 ,pdata 
-27fe 08008606 inject mod ,6 
-27ff 2020264d branch end_of_packet 
-
-transmit_loopback:
-2800 44bd400f bpatch patch0f_2 ,mem_patch0f 
-2801 c5082808 bmark1 mark_longpacket ,transmit_loopback_long 
-
-transmit_loopback_short:
-2802 68008180 fetch 1 ,mem_lch_code 
-2803 08008603 inject mod ,3 
-2804 6800815f fetch 1 ,mem_len 
-2805 98002600 iforce regc 
-2806 08008605 inject mod ,5 
-2807 2020280d branch transmit_loopback_cont 
-
-transmit_loopback_long:
-2808 68008180 fetch 1 ,mem_lch_code 
-2809 08008603 inject mod ,3 
-280a 6801015f fetch 2 ,mem_len 
-280b 98002600 iforce regc 
-280c 0800860d inject mod ,13 
-
-transmit_loopback_cont:
-280d d8c00551 arg mem_rxbuf ,contr 
-
-transmit_loopback_loop:
-280e 1a627c00 copy regc ,null 
-280f 2022a814 branch transmit_loopback_end ,zero 
-2810 e8c08000 ifetch 1 ,contr 
-2811 08008608 inject mod ,8 
-2812 1a60a7ff increase -1 ,regc 
-2813 2020280e branch transmit_loopback_loop 
-
-transmit_loopback_end:
-2814 680100fc fetch 2 ,mem_tst_pktcnt_dmh 
-2815 1fe0fe01 increase 1 ,pdata 
-2816 600100fc store 2 ,mem_tst_pktcnt_dmh 
-2817 202027f7 branch transmit_end 
-
-apply_switch_clke:
-2818 68020165 fetch 4 ,mem_clke_bt 
-2819 1fe0a207 add pdata ,7 ,rega 
-281a 68010171 fetch 2 ,mem_slot_offset 
-281b 243a281e nbranch apply_switch_nozero ,blank 
-281c 1a20a3fd increase -3 ,rega 
-281d 20202826 branch apply_switch_wait_loop 
-
-apply_switch_nozero:
-281e 1feffe0c mul32 pdata ,12 ,pdata 
-281f 68190040 hfetcht 2 ,core_halfslot 
-2820 18408401 increase 1 ,temp 
-
-apply_switch_loop:
-2821 98467e00 isub temp ,pdata 
-2822 24212825 nbranch apply_switch_bt ,positive 
-2823 1a20a3ff increase -1 ,rega 
-2824 20202821 branch apply_switch_loop 
-
-apply_switch_bt:
-2825 1fe67e00 sub pdata ,0 ,pdata 
-
-apply_switch_wait_loop:
-2826 37d18200 until null ,oneslot 
-2827 2c400600 compare 0 ,clkn_bt ,3 
-2828 2420a826 nbranch apply_switch_wait_loop ,true 
-2829 98005200 iforce clke_rt 
-282a 1a225000 copy rega ,clke_bt 
-282b 98005200 iforce clke_rt 
-282c 20600000 rtn 
-
-calc_slot_offset:
-282d 44bdc00f bpatch patch0f_3 ,mem_patch0f 
-282e 37d10200 until null ,halfslot 
-282f 1b427e00 deposit clke 
-2830 98000c00 iforce contr 
-2831 1ff17e00 rshift16 ,pdata ,pdata 
-2832 9c467200 isub clkn_bt ,loopcnt 
-2833 1f217203 and_into 3 ,loopcnt 
-2834 2422a837 nbranch calc_bt_portion ,zero 
-2835 18007e00 force 0 ,pdata 
-2836 2020283b branch calc_skip_bt 
-
-calc_bt_portion:
-2837 d8400ea6 arg 3750 ,temp 
-2838 18007e00 force 0 ,pdata 
-
-calc_slot_offset_loop:
-2839 9840fe00 iadd temp ,pdata 
-283a c2002839 loop calc_slot_offset_loop 
-
-calc_skip_bt:
-283b 98c0fe00 iadd contr ,pdata 
-283c 1fe6fc0c div pdata ,12 
-283d 20407f86 call wait_div_end 
-283e 1807fe00 quotient pdata 
-283f 60010171 store 2 ,mem_slot_offset 
-2840 20600000 rtn 
-
-calc_clke_offset:
-2841 44be400f bpatch patch0f_4 ,mem_patch0f 
-2842 1b427e00 deposit clke 
-2843 1b220400 copy clkn ,temp 
-2844 98467c00 isub temp ,null 
-2845 7d217e2c nsetflag positive ,44 ,pdata 
-2846 98460400 isub temp ,temp 
-2847 58000ea6 setarg 3750 
-2848 284c000f isolate0 15 ,temp 
-2849 2020a84c branch calc_clke_pos ,true 
-284a 5fff0ea6 setarg -61786 
-284b 98408400 iadd temp ,temp 
-
-calc_clke_pos:
-284c 600b0447 storet 6 ,mem_le_clk_offset 
-284d 207b0000 rtn le 
-284e 600b0038 storet 6 ,mem_clk_offset 
-284f 20600000 rtn 
-
-calc_clke:
-2850 78587c00 disable clknt 
-2851 68030447 fetch 6 ,mem_le_clk_offset 
-2852 203b2854 branch calc_clke2 ,le 
-2853 68030038 fetch 6 ,mem_clk_offset 
-
-calc_clke2:
-2854 9b20e000 iadd clkn ,alarm 
-2855 1e00e00a increase 10 ,alarm 
-2856 58000ea6 setarg 3750 
-2857 9e067e00 isub alarm ,pdata 
-2858 2fec000f isolate0 15 ,pdata 
-2859 2020a85e branch calc_clke_pos_adj ,true 
-285a 5800f15a setarg 0xf15a 
-285b 9e00e000 iadd alarm ,alarm 
-
-calc_clke_pos2:
-285c 1e023400 copy alarm ,clke 
-285d 20600000 rtn 
-
-calc_clke_pos_adj:
-285e 18007c00 force 0 ,null 
-285f 2020285c branch calc_clke_pos2 
-
-calc_radio_freq:
-2860 44bec00f bpatch patch0f_5 ,mem_patch0f 
-2861 20402918 call set_sync_on 
-2862 1c227e00 copy bt_clk ,pdata 
-2863 1fe17f80 and_into 0x180 ,pdata 
-2864 2c800e03 compare 3 ,freq_mode ,0x07 
-2865 2420a869 nbranch freq_not_connection ,true 
-2866 1fe97e00 rshift3 pdata ,pdata 
-2867 9ae0fe00 iadd freq_index ,pdata 
-2868 2020286a branch do_hop_mod_now 
-
-freq_not_connection:
-2869 1ae27e00 copy freq_index ,pdata 
-
-do_hop_mod_now:
-286a 1fe6fc4f div pdata ,79 
-286b 782afc00 pulse recalc 
-286c 20407f86 call wait_div_end 
-286d 18072200 remainder rega 
-286e 1a2085d8 add rega ,-40 ,temp 
-286f 20212872 branch odd_half ,positive 
-2870 1a238400 lshift rega ,temp 
-2871 20202874 branch freq_result 
-
-odd_half:
-2872 18438400 lshift temp ,temp 
-2873 18408401 increase 1 ,temp 
-
-freq_result:
-2874 44bf400f bpatch patch0f_6 ,mem_patch0f 
-2875 68008031 fetch 1 ,mem_mode 
-2876 c301a885 bbit0 afh_change ,afh_process_con 
-
-afh_process_0:
-2877 680240d2 fetch 4 ,mem_afh_instant 
-2878 9c267c00 isub bt_clk ,null 
-2879 20212885 branch afh_process_con ,positive 
-287a 204028a4 call afh_clear 
-287b 6800c0d9 fetch 1 ,mem_afh_new_mod 
-287c 207a0000 rtn blank 
-287d 68008031 fetch 1 ,mem_mode 
-287e 79207e02 set1 afh_enable ,pdata 
-287f 60008031 store 1 ,mem_mode 
-2880 6802c0e7 fetch 5 ,mem_afh_map_new 
-2881 6002c0da store 5 ,mem_afh_map_lo 
-2882 e8c28000 ifetch 5 ,contr 
-2883 6002c0df store 5 ,mem_afh_map_hi 
-2884 204028a9 call afh_process_freq_map 
-
-afh_process_con:
-2885 68008031 fetch 1 ,mem_mode 
-2886 c4010000 rtnbit0 afh_enable 
-2887 2c2ffe01 isolate1 1 ,bt_clk 
-2888 2020a8a1 branch afh_same_channel ,true 
-2889 18492200 rshift3 temp ,rega 
-288a 18410e07 and temp ,7 ,queue 
-288b 580040da setarg mem_afh_map_lo 
-288c 9a20a200 iadd rega ,rega 
-288d ea208000 ifetch 1 ,rega 
-288e afec0000 qisolate0 pdata 
-288f 2020a892 branch afh_process_1 ,true 
-2890 18427e00 deposit temp 
-2891 2020289e branch afh_process_end 
-
-afh_process_1:
-2892 6800c0e4 fetch 1 ,mem_afh_used 
-2893 98002400 iforce regb 
-2894 1c227e00 deposit bt_clk 
-2895 1fe17f80 and_into 0x180 ,pdata 
-2896 1fe97e00 rshift3 pdata ,pdata 
-2897 9ae0fe00 iadd freq_index ,pdata 
-2898 9a46fc00 idiv regb 
-2899 580040f2 setarg mem_afh_map 
-289a 20407f86 call wait_div_end 
-289b 18072200 remainder rega 
-289c 9a208c00 iadd rega ,contr 
-289d e8c08000 ifetch 1 ,contr 
-
-afh_process_end:
-289e 6000c0e5 store 1 ,mem_afh_index 
-289f 98000400 iforce temp 
-28a0 20600000 rtn 
-
-afh_same_channel:
-28a1 6800c0e5 fetch 1 ,mem_afh_index 
-28a2 98000400 iforce temp 
-28a3 20600000 rtn 
-
-afh_clear:
-28a4 68008031 fetch 1 ,mem_mode 
-28a5 793ffe02 set0 afh_enable ,pdata 
-28a6 793ffe03 set0 afh_change ,pdata 
-28a7 60008031 store 1 ,mem_mode 
-28a8 20600000 rtn 
-
-afh_process_freq_map:
-28a9 44bfc00f bpatch patch0f_7 ,mem_patch0f 
-28aa d8a040f2 arg mem_afh_map ,contw 
-28ab 1800720a force 10 ,loopcnt 
-28ac 20407ec6 call memset0 
-28ad d8a040f2 arg mem_afh_map ,contw 
-28ae 18002600 force 0 ,regc 
-28af 18000e02 force 2 ,queue 
-
-process_freq_3:
-28b0 6802c0da fetch 5 ,mem_afh_map_lo 
-28b1 98000400 iforce temp 
-28b2 28e1fe02 compare 2 ,queue ,0xff 
-28b3 2020a8b5 branch process_freq_1 ,true 
-28b4 18430400 rshift temp ,temp 
-
-process_freq_1:
-28b5 284c0000 isolate0 0 ,temp 
-28b6 2020a8b9 branch process_freq_0 ,true 
-28b7 1a627e00 deposit regc 
-28b8 e0a08000 istore 1 ,contw 
-
-process_freq_0:
-28b9 184b0400 rshift2 temp ,temp 
-28ba 1a60a602 increase 2 ,regc 
-28bb 2a61fc28 compare 40 ,regc ,0xfe 
-28bc 2420a8c2 nbranch process_freq_2 ,true 
-28bd 6802c0df fetch 5 ,mem_afh_map_hi 
-28be 98000400 iforce temp 
-28bf 28e1fe02 compare 2 ,queue ,0xff 
-28c0 2020a8c2 branch process_freq_2 ,true 
-28c1 18430400 rshift temp ,temp 
-
-process_freq_2:
-28c2 1a667c4e sub regc ,78 ,null 
-28c3 202128b5 branch process_freq_1 ,positive 
-28c4 18002601 force 1 ,regc 
-28c5 18e08fff increase -1 ,queue 
-28c6 2422a8b0 nbranch process_freq_3 ,zero 
-28c7 da2040f2 arg mem_afh_map ,rega 
-28c8 18a27e00 deposit contw 
-28c9 9a267e00 isub rega ,pdata 
-28ca 6000c0e4 store 1 ,mem_afh_used 
-28cb 20600000 rtn 
-
-rx_radio_freq:
-28cc 44c04010 bpatch patch10_0 ,mem_patch10 
-28cd 20402860 call calc_radio_freq 
-28ce 6800817f fetch 1 ,mem_debug_config 
-28cf c302a8d1 bbit0 debug_rx_fixed_freq ,rx_radio_freq_now 
-28d0 680884cc fetcht 1 ,mem_rx_fixed_freq 
-
-rx_radio_freq_now:
-28d1 2020291f branch set_freq_rx 
-
-tx_radio_freq:
-28d2 44c0c010 bpatch patch10_1 ,mem_patch10 
-28d3 20402860 call calc_radio_freq 
-28d4 6800817f fetch 1 ,mem_debug_config 
-28d5 c30228d7 bbit0 debug_tx_fixed_freq ,tx_radio_freq_now 
-28d6 680884cb fetcht 1 ,mem_tx_fixed_freq 
-
-tx_radio_freq_now:
-28d7 20202933 branch set_freq_tx 
-
-fetch_giac:
-28d8 18005a00 force 0 ,uap 
-28d9 6801c0a7 fetch 3 ,mem_glap 
-28da 98005800 iforce lap 
-28db 20600000 rtn 
-
-fetch_page_bt_adr:
-28dc 44c14010 bpatch patch10_2 ,mem_patch10 
-28dd 6800c1d3 fetch 1 ,mem_hci_puap 
-28de 1fe25a00 icopy uap 
-28df 6801c1d0 fetch 3 ,mem_hci_plap 
-28e0 1fe25800 icopy lap 
-28e1 20600000 rtn 
-
-fetch_self_bt_adr:
-28e2 44c1c010 bpatch patch10_3 ,mem_patch10 
-28e3 680140a4 fetch 2 ,mem_nap 
-28e4 1fe25c00 icopy nap 
-28e5 6800c0a3 fetch 1 ,mem_uap 
-28e6 1fe25a00 icopy uap 
-28e7 6801c0a0 fetch 3 ,mem_lap 
-28e8 1fe25800 icopy lap 
-28e9 20600000 rtn 
-
-fetch_extm_bt_adr:
-28ea 44c24010 bpatch patch10_4 ,mem_patch10 
-28eb 68010044 fetch 2 ,mem_pnap 
-28ec 1fe25c00 icopy nap 
-28ed 68008043 fetch 1 ,mem_puap 
-28ee 1fe25a00 icopy uap 
-28ef 68018040 fetch 3 ,mem_plap 
-28f0 1fe25800 icopy lap 
-28f1 20600000 rtn 
-
-fetch_diac:
-28f2 c51028f5 bmark1 mark_all_diac ,fetch_diac_do 
-28f3 c68e8000 rtnmark0 mark_inquiry_state 
-28f4 c68f8000 rtnmark0 mark_periodical_diac 
-
-fetch_diac_do:
-28f5 1d815900 and_into -256 ,lap 
-28f6 782afc00 pulse recalc 
-28f7 20000020 nop 32 
-28f8 20600000 rtn 
-
-shutdown_radio:
-28f9 44c2c010 bpatch patch10_5 ,mem_patch10 
-28fa 2030a90a branch shutdown_radio0 ,is_rx 
-28fb 708955d4 jam 0xd4 ,rf_tx_pa_ib 
-28fc 20000004 nop 4 
-28fd 708955d2 jam 0xd2 ,rf_tx_pa_ib 
-28fe 20000004 nop 4 
-28ff 708955d1 jam 0xd1 ,rf_tx_pa_ib 
-2900 20000004 nop 4 
-2901 6800c1de fetch 1 ,mem_tx_power 
-2902 c0002908 beq tx_power_0db ,shutdown_radio_0db 
-2903 c000a915 beq tx_power_3db ,shutdown_radio_3db 
-2904 c0012908 beq tx_power_5db ,shutdown_radio_5db 
-2905 c001a915 beq tx_power_f3db ,shutdown_radio_f3db 
-2906 c0022915 beq tx_power_f5db ,shutdown_radio_f5db 
-2907 c0102915 beq tx_power_pair ,shutdown_radio_pair 
-
-shutdown_radio_5db:
-
-shutdown_radio_0db:
-2908 708955d0 jam 0xd0 ,rf_tx_pa_ib 
-2909 708956e0 jam 0xe0 ,rf_tx_pa_gc 
-
-shutdown_radio0:
-290a 18002a00 force 0 ,radio_ctrl 
-290b 7850fc00 disable is_rx 
-290c 78507c00 disable is_tx 
-290d 782f7c00 pulse packet_end 
-290e 70890200 jam 0x0 ,rfen_mdm 
-290f 70890100 jam 0x0 ,rfen_tx 
-2910 70890000 jam 0x0 ,rfen_rx 
-2911 70890300 jam 0 ,rfen_sn 
-2912 70890470 jam 0x70 ,rfen_msc 
-2913 70890600 jam 0x0 ,rfen_adc 
-2914 20600000 rtn 
-
-shutdown_radio_pair:
-
-shutdown_radio_f5db:
-
-shutdown_radio_f3db:
-
-shutdown_radio_3db:
-2915 708955d0 jam 0xd0 ,rf_tx_pa_ib 
-2916 708956c0 jam 0xc0 ,rf_tx_pa_gc 
-2917 2020290a branch shutdown_radio0 
-
-set_sync_on:
-2918 44c34010 bpatch patch10_6 ,mem_patch10 
-2919 70890200 jam 0x0 ,rfen_mdm 
-291a 70890100 jam 0x0 ,rfen_tx 
-291b 70890018 jam 0x18 ,rfen_rx 
-291c 708903a7 jam 0xa7 ,rfen_sn 
-291d 7089047f jam 0x7f ,rfen_msc 
-291e 20600000 rtn 
-
-set_freq_rx:
-291f 44c3c010 bpatch patch10_7 ,mem_patch10 
-2920 60088017 storet 1 ,mem_last_freq 
-2921 1840a204 add temp ,rx_freq_offset ,rega 
-2922 70896d07 jam 0x07 ,rf_balun_ctrim 
-2923 20202981 branch rf_write_freq 
-
-rf_rx_enable:
-2924 44c44011 bpatch patch11_0 ,mem_patch11 
-2925 708901cf jam 0xcf ,rfen_tx 
-2926 2000000a nop 10 
-2927 708900ff jam 0xff ,rfen_rx 
-2928 708903af jam 0xaf ,rfen_sn 
-2929 708904ff jam 0xff ,rfen_msc 
-292a 2000000a nop 10 
-292b 708902a0 jam 0xa0 ,rfen_mdm 
-292c 20600000 rtn 
-
-set_freq_tx_offset:
-292d 6800c1e0 fetch 1 ,mem_250k_freq_enable 
-292e 203a2931 branch set_freq_tx_2m_offset ,blank 
-
-set_freq_tx_0m_offset:
-292f 1840a202 add temp ,2 ,rega 
-2930 20600000 rtn 
-
-set_freq_tx_2m_offset:
-2931 1840a200 add temp ,0 ,rega 
-2932 20600000 rtn 
-
-set_freq_tx:
-2933 44c4c011 bpatch patch11_1 ,mem_patch11 
-2934 60088017 storet 1 ,mem_last_freq 
-2935 2040292d call set_freq_tx_offset 
-2936 20402981 call rf_write_freq 
-2937 58000500 setarg param_pll_setup 
-2938 20402a8f call sleep 
-
-txon:
-2939 70890601 jam 0x1 ,rfen_adc 
-293a 7089003c jam 0x3c ,rfen_rx 
-293b 708901e0 jam 0xe0 ,rfen_tx 
-293c 70896d12 jam 0x12 ,rf_balun_ctrim 
-293d 2000000a nop 10 
-293e 70890201 jam 0x01 ,rfen_mdm 
-293f 7089023d jam 0x3d ,rfen_mdm 
-2940 2000000a nop 10 
-2941 708903b7 jam 0xb7 ,rfen_sn 
-2942 2000000a nop 10 
-2943 7089027f jam 0x7f ,rfen_mdm 
-
-txon_power_select:
-2944 6800c1de fetch 1 ,mem_tx_power 
-2945 c000294b beq tx_power_0db ,set_tx_power_0db 
-2946 c000a94f beq tx_power_3db ,set_tx_power_3db 
-2947 c0012953 beq tx_power_5db ,set_tx_power_5db 
-2948 c001a957 beq tx_power_f3db ,set_tx_power_f3db 
-2949 c002295b beq tx_power_f5db ,set_tx_power_f5db 
-294a c010295f beq tx_power_pair ,set_tx_power_pair 
-
-set_tx_power_0db:
-294b 708956f0 jam 0xf0 ,rf_tx_pa_gc 
-294c 20402965 call txon_common 
-294d 708955d8 jam 0xd8 ,rf_tx_pa_ib 
-294e 20600000 rtn 
-
-set_tx_power_3db:
-294f 708956df jam 0xdf ,rf_tx_pa_gc 
-2950 20402965 call txon_common 
-2951 708955df jam 0xdf ,rf_tx_pa_ib 
-2952 20600000 rtn 
-
-set_tx_power_5db:
-2953 708956ff jam 0xff ,rf_tx_pa_gc 
-2954 20402965 call txon_common 
-2955 708955df jam 0xdf ,rf_tx_pa_ib 
-2956 20600000 rtn 
-
-set_tx_power_f3db:
-2957 708956ce jam 0xce ,rf_tx_pa_gc 
-2958 20402965 call txon_common 
-2959 708955d8 jam 0xd8 ,rf_tx_pa_ib 
-295a 20600000 rtn 
-
-set_tx_power_f5db:
-295b 708956cb jam 0xcb ,rf_tx_pa_gc 
-295c 20402965 call txon_common 
-295d 708955d8 jam 0xd8 ,rf_tx_pa_ib 
-295e 20600000 rtn 
-
-set_tx_power_pair:
-295f 708955d0 jam 0xd0 ,rf_tx_pa_ib 
-2960 708956c0 jam 0xc0 ,rf_tx_pa_gc 
-2961 7089574c jam 0x4c ,0x8957 
-2962 7089586c jam 0x6c ,0x8958 
-2963 70895950 jam 0x50 ,0x8959 
-2964 20600000 rtn 
-
-txon_common:
-2965 20000004 nop 4 
-2966 708955d1 jam 0xd1 ,rf_tx_pa_ib 
-2967 20000004 nop 4 
-2968 708955d2 jam 0xd2 ,rf_tx_pa_ib 
-2969 20000004 nop 4 
-296a 708955d4 jam 0xd4 ,rf_tx_pa_ib 
-296b 20600000 rtn 
-
-initialize_radio:
-296c 70804206 jam clksel_rc ,core_clksel 
-
-initialize_radio_wait:
-296d 680140c3 fetch 2 ,mem_rf_init_ptr 
-296e c307296d bbit0 14 ,initialize_radio_wait 
-296f 98000c00 iforce contr 
-2970 d8408900 arg 0x8900 ,temp 
-
-initialize_radio_loop:
-2971 e8c08000 ifetch 1 ,contr 
-2972 c07fa977 beq 0xff ,initialize_radio_cont 
-2973 98418a00 ior temp ,contw 
-2974 e8c08000 ifetch 1 ,contr 
-2975 e0a08000 istore 1 ,contw 
-2976 20202971 branch initialize_radio_loop 
-
-initialize_radio_cont:
-2977 44c54011 bpatch patch11_2 ,mem_patch11 
-2978 20402be5 call lpm_cal_xtal_startup 
-2979 204029c9 call switchto_dpllclk 
-297a 580007d0 setarg param_dpll_start_delay 
-297b 9c40fe00 iadd clkn_bt ,pdata 
-297c 60020169 store 4 ,mem_dpll_clkn 
-297d 79202a03 set1 reset ,radio_ctrl 
-297e 18002a00 force 0 ,radio_ctrl 
-297f 2455a998 ncall do_rccal ,wake 
-2980 202029ab branch set_rccal 
-
-rf_write_freq:
-2981 44c5c011 bpatch patch11_3 ,mem_patch11 
-2982 58000960 setarg 2400 
-2983 9a208400 iadd rega ,temp 
-2984 6800c0bd fetch 1 ,mem_fcomp_mul 
-2985 70895f04 jam 0x04 ,rf_pll_rstn 
-2986 984ffe00 imul32 temp ,pdata 
-2987 6808c0be fetcht 1 ,mem_fcomp_div 
-2988 9846fc00 idiv temp 
-2989 20407f86 call wait_div_end 
-298a 1807a200 quotient rega 
-298b 18077e00 remainder pdata 
-298c 1ff07e00 lshift16 pdata ,pdata 
-298d 1ff27e00 lshift4 pdata ,pdata 
-298e 9846fc00 idiv temp 
-298f 20407f86 call wait_div_end 
-2990 1807fe00 quotient pdata 
-2991 1fed7e00 lshift8 pdata ,pdata 
-2992 1fe3fe00 lshift pdata ,pdata 
-2993 9a21fe00 ior rega ,pdata 
-2994 60120960 hstore 4 ,rf_pll_intg 
-2995 70895f44 jam 0x44 ,rf_pll_rstn 
-2996 70895fc4 jam 0xc4 ,rf_pll_rstn 
-2997 20600000 rtn 
-
-do_rccal:
-2998 44c64011 bpatch patch11_4 ,mem_patch11 
-2999 70890602 jam 0x02 ,rfen_adc 
-299a 5803d090 setarg 250000 
-299b 20402a8f call sleep 
-299c 7089007f jam 0x7f ,rfen_rx 
-299d 20000082 nop 130 
-299e 70895230 jam 0x30 ,rf_rccal_ctrl 
-299f 708901d0 jam 0xd0 ,rfen_tx 
-29a0 70895270 jam 0x70 ,rf_rccal_ctrl 
-29a1 708952f0 jam 0xf0 ,rf_rccal_ctrl 
-29a2 18007232 force 50 ,loopcnt 
-
-do_rccal_loop:
-29a3 68108980 hfetch 1 ,rf_rccal_result 
-29a4 c282a9a6 bbit1 5 ,do_rccal_end 
-29a5 c20029a3 loop do_rccal_loop 
-
-do_rccal_end:
-29a6 6000c0ce store 1 ,mem_rf_rccal 
-29a7 70890100 jam 0 ,rfen_tx 
-29a8 70890000 jam 0 ,rfen_rx 
-29a9 70890600 jam 0x00 ,rfen_adc 
-29aa 20600000 rtn 
-
-set_rccal:
-29ab 44c6c011 bpatch patch11_5 ,mem_patch11 
-29ac 6800c0ce fetch 1 ,mem_rf_rccal 
-29ad 79207e05 set1 5 ,pdata 
-29ae 60108952 hstore 1 ,rf_rccal_ctrl 
-29af 68188950 hfetcht 1 ,rf_bpf_ctrim 
-29b0 18410407 and_into 7 ,temp 
-29b1 1fe9fe00 lshift3 pdata ,pdata 
-29b2 9841fe00 ior temp ,pdata 
-29b3 60108950 hstore 1 ,rf_bpf_ctrim 
-29b4 68108951 hfetch 1 ,rf_bpf_ib 
-29b5 793ffe00 set0 bpf_rccal ,pdata 
-29b6 60108951 hstore 1 ,rf_bpf_ib 
-29b7 68108952 hfetch 1 ,rf_adc_rccal 
-29b8 793ffe05 set0 adc_rccal ,pdata 
-29b9 60108952 hstore 1 ,rf_adc_rccal 
-29ba 20600000 rtn 
-
-save_rssi:
-29bb 44c74011 bpatch patch11_6 ,mem_patch11 
-29bc 68110981 hfetch 2 ,rf_afc_d2a 
-29bd 1ff1fe00 rshift4 pdata ,pdata 
-29be 1fe97e00 rshift3 pdata ,pdata 
-29bf 1fe67e00 sub pdata ,0 ,pdata 
-
-bcd:
-29c0 1fe17eff and_into 0xff ,pdata 
-29c1 1fe6fc0a div pdata ,10 
-29c2 20407f86 call wait_div_end 
-29c3 1807fe00 quotient pdata 
-29c4 1ff27e00 lshift4 pdata ,pdata 
-29c5 18070400 remainder temp 
-29c6 9841fe00 ior temp ,pdata 
-29c7 60008018 store 1 ,mem_rssi 
-29c8 20600000 rtn 
-
-switchto_dpllclk:
-29c9 70804206 jam clksel_rc ,core_clksel 
-29ca 6810896b hfetch 1 ,rf_clkpll_frac + 2 
-29cb 793ffe04 set0 4 ,pdata 
-29cc 793ffe05 set0 5 ,pdata 
-29cd 6010896b hstore 1 ,rf_clkpll_frac + 2 
-29ce 70890500 jam 0x00 ,rfen_ck 
-29cf 70890400 jam 0x00 ,rfen_msc 
-29d0 70890470 jam 0x70 ,rfen_msc 
-29d1 708905ff jam 0xff ,rfen_ck 
-29d2 6810896b hfetch 1 ,rf_clkpll_frac + 2 
-29d3 79207e04 set1 4 ,pdata 
-29d4 79207e05 set1 5 ,pdata 
-29d5 6010896b hstore 1 ,rf_clkpll_frac + 2 
-29d6 204029e9 call init_lpm_ctrl 
-29d7 68108968 hfetch 1 ,rf_clkpll_int 
-29d8 79207e07 set1 7 ,pdata 
-29d9 60108968 hstore 1 ,rf_clkpll_int 
-29da 793ffe07 set0 7 ,pdata 
-29db 60108968 hstore 1 ,rf_clkpll_int 
-29dc 79207e07 set1 7 ,pdata 
-29dd 60108968 hstore 1 ,rf_clkpll_int 
-29de 70804205 jam clksel_dpll ,core_clksel 
-29df 20000001 nop 1 
-29e0 70804204 jam clksel_xtal ,core_clksel 
-29e1 6810896b hfetch 1 ,rf_clkpll_frac + 2 
-29e2 1fe17ecf and_into 0xcf ,pdata 
-29e3 6010896b hstore 1 ,rf_clkpll_frac + 2 
-29e4 1fe1fe30 or_into 0x30 ,pdata 
-29e5 6010896b hstore 1 ,rf_clkpll_frac + 2 
-29e6 20600000 rtn 
-
-xtal_fast_wake:
-29e7 58000f0f setarg 0xf0f 
-29e8 20202c18 branch lpm_write_config 
-
-init_lpm_ctrl:
-29e9 5800080f setarg 0x80f 
-29ea 20202c18 branch lpm_write_config 
-
-start_receiver:
-29eb 44c7c011 bpatch patch11_7 ,mem_patch11 
-29ec 20402924 call rf_rx_enable 
-29ed 78507c00 disable is_tx 
-29ee 7830fc00 enable is_rx 
-29ef 782b7c00 pulse init_encrypt 
-29f0 20600000 rtn 
-
-prep_crypt:
-29f1 44c84012 bpatch patch12_0 ,mem_patch12 
-29f2 6800804c fetch 1 ,mem_state_map 
-29f3 2feffe02 isolate1 smap_encryption ,pdata 
-29f4 7920fe00 setflag true ,0 ,pdata 
-29f5 60108011 hstore 1 ,core_encrypt 
-29f6 d8c00062 arg mem_kc ,contr 
-29f7 e8c48000 ifetch 9 ,contr 
-29f8 98006400 iforce kc_ls 
-29f9 e8c38000 ifetch 7 ,contr 
-29fa 98006600 iforce kc_ms 
-29fb 68008054 fetch 1 ,mem_key_size 
-29fc 1fe0e9ff add pdata ,-1 ,g1l 
-29fd 782d7c00 pulse kc_p_activate 
-29fe 20600000 rtn 
-
-wait_access_end:
-29ff 1b427e00 deposit clke 
-2a00 6003009a store 6 ,mem_sync_clke 
-2a01 7846fc00 disable decode_fec0 
-2a02 242c28f9 nbranch shutdown_radio ,sync 
-2a03 dd2003bb arg param_clke_cal ,clke_rt 
-2a04 1d00d001 increase 1 ,clke_bt 
-2a05 1d0151fc and_into 0x1fc ,clke_bt 
-2a06 20600000 rtn 
-
-wait_access_mhalfbnd:
-2a07 7826fc00 enable decode_fec0 
-
-wait_access_mhalfbnd_correlate:
-2a08 37cb8400 correlate null ,mhalfbnd 
-2a09 202c29ff branch wait_access_end ,sync 
-2a0a 2d000402 compare 0x02 ,clke_bt ,0x02 
-2a0b 2420aa08 nbranch wait_access_mhalfbnd_correlate ,true 
-2a0c 202029ff branch wait_access_end 
-
-wait_access_clkn_rt:
-2a0d 44c8c012 bpatch patch12_1 ,mem_patch12 
-2a0e d9600600 arg param_conn_access ,timeup 
-2a0f 7826fc00 enable decode_fec0 
-2a10 34730400 correlate clkn_rt ,meet 
-2a11 7846fc00 disable decode_fec0 
-2a12 242c28f9 nbranch shutdown_radio ,sync 
-2a13 20600000 rtn 
-
-wait_access_forever:
-2a14 44c94012 bpatch patch12_2 ,mem_patch12 
-2a15 7826fc00 enable decode_fec0 
-2a16 37c18400 correlate null ,timeout 
-2a17 7846fc00 disable decode_fec0 
-2a18 242c28f9 nbranch shutdown_radio ,sync 
-2a19 dd2003bb arg param_clke_cal ,clke_rt 
-2a1a 1d0151fc and_into 0x1fc ,clke_bt 
-2a1b 20600000 rtn 
-
-reserve_slot:
-2a1c 44c9c012 bpatch patch12_3 ,mem_patch12 
-2a1d 98002200 iforce rega 
-2a1e 1c227e00 deposit bt_clk 
-2a1f 98409600 iadd temp ,timeup 
-2a20 19627e00 copy timeup ,pdata 
-2a21 600240ca store 4 ,mem_next_btclk 
-2a22 1a227e00 deposit rega 
-2a23 20600000 rtn 
-
-ahead_window:
-2a24 1fe20400 copy pdata ,temp 
-2a25 44ca4012 bpatch patch12_4 ,mem_patch12 
-2a26 18427e00 copy temp ,pdata 
-2a27 20407f50 call clk2bt 
-2a28 1c307e00 lshift16 bt_clk ,pdata 
-2a29 79207e2c set1 44 ,pdata 
-2a2a 20407f39 call clk_diff 
-2a2b 793ffe2c set0 44 ,pdata 
-2a2c 20402a77 call get_clk 
-2a2d 20407f39 call clk_diff 
-2a2e 20740000 rtn user 
-2a2f 20407f43 call clk2rt 
-2a30 98003600 iforce stop_watch 
-2a31 37c18200 until null ,timeout 
-2a32 20600000 rtn 
-
-setup_clk:
-2a33 44cac012 bpatch patch12_5 ,mem_patch12 
-2a34 20382a38 branch setup_clkn ,clknt 
-2a35 35330200 until clke_rt ,meet 
-
-skip_setup_clke:
-2a36 1d020400 copy clke_bt ,temp 
-2a37 20202a3b branch setup_clknbt 
-
-setup_clkn:
-2a38 20372a3a branch skip_setup_clkn ,attempt 
-2a39 34730200 until clkn_rt ,meet 
-
-skip_setup_clkn:
-2a3a 1c420400 copy clkn_bt ,temp 
-
-setup_clknbt:
-2a3b 20342a47 branch setup_clk11 ,user 
-2a3c 28400601 compare 1 ,temp ,3 
-2a3d 2420aa33 nbranch setup_clk ,true 
-
-setup_complete:
-2a3e 44cb4012 bpatch patch12_6 ,mem_patch12 
-2a3f 68008030 fetch 1 ,mem_state 
-2a40 c4000000 rtnbit0 state_inconn 
-2a41 680240ca fetch 4 ,mem_next_btclk 
-2a42 98467e00 isub temp ,pdata 
-2a43 24610000 nrtn positive 
-2a44 1fe67cff sub pdata ,0xff ,null 
-2a45 20212a33 branch setup_clk ,positive 
-2a46 20600000 rtn 
-
-setup_clk11:
-2a47 28400603 compare 3 ,temp ,3 
-2a48 2420aa33 nbranch setup_clk ,true 
-2a49 20202a3e branch setup_complete 
-
-rf_setup_time:
-2a4a 44cbc012 bpatch patch12_7 ,mem_patch12 
-2a4b d9600600 arg param_rf_setup ,timeup 
-2a4c 20202a33 branch setup_clk 
-
-rf_setup_time_slave_slot:
-2a4d 78547c00 disable user 
-2a4e 20202a4a branch rf_setup_time 
-
-rf_setup_time_master_slot:
-2a4f 78347c00 enable user 
-2a50 20202a4a branch rf_setup_time 
-
-start_transmitter:
-2a51 44cc4013 bpatch patch13_0 ,mem_patch13 
-2a52 204029f1 call prep_crypt 
-2a53 7850fc00 disable is_rx 
-2a54 78307c00 enable is_tx 
-2a55 20600000 rtn 
-
-start_tx_native:
-2a56 44ccc013 bpatch patch13_1 ,mem_patch13 
-2a57 d9600e43 arg param_tx_setup ,timeup 
-2a58 34730200 until clkn_rt ,meet 
-2a59 782b7c00 pulse init_encrypt 
-2a5a 20600000 rtn 
-
-start_rx_native:
-2a5b 44cd4013 bpatch patch13_2 ,mem_patch13 
-2a5c d9600d00 arg param_rx_setup ,timeup 
-2a5d 34730200 until clkn_rt ,meet 
-2a5e 20600000 rtn 
-
-start_tx_external:
-2a5f 44cdc013 bpatch patch13_3 ,mem_patch13 
-2a60 d9600e43 arg param_tx_setup ,timeup 
-2a61 35330200 until clke_rt ,meet 
-2a62 782b7c00 pulse init_encrypt 
-2a63 20600000 rtn 
-
-send_access_word:
-2a64 44ce4013 bpatch patch13_4 ,mem_patch13 
-2a65 51207e00 preload access 
-2a66 782efc00 enable encode_fec0 
-2a67 79202a00 set1 txgfsk ,radio_ctrl 
-2a68 08008648 inject mod ,72 
-2a69 784efc00 disable encode_fec0 
-2a6a 20600000 rtn 
-
-scan_mode_whiten:
-2a6b 1ca20400 copy xin ,temp 
-2a6c 18418460 or_into 0x60 ,temp 
-2a6d 18421c00 copy temp ,white_init 
-2a6e 20600000 rtn 
-
-get_free_amaddr:
-2a6f 44cec013 bpatch patch13_5 ,mem_patch13 
-2a70 6800c090 fetch 1 ,mem_current_amaddr 
-2a71 1fe0fe01 increase 1 ,pdata 
-2a72 c083aa74 bne param_esco_addr ,get_free_amaddr_cont 
-2a73 18007e01 force 1 ,pdata 
-
-get_free_amaddr_cont:
-2a74 6000c090 store 1 ,mem_current_amaddr 
-2a75 98000800 iforce am_addr 
-2a76 20600000 rtn 
-
-get_clk:
-2a77 1b220400 copy clkn ,temp 
-2a78 20748000 rtn master 
-2a79 1b420400 copy clke ,temp 
-2a7a 20600000 rtn 
-
-get_clkbt:
-2a7b 1c427e00 deposit clkn_bt 
-2a7c 20748000 rtn master 
-2a7d 1d027e00 deposit clke_bt 
-2a7e 20600000 rtn 
-
-supervision_update:
-2a7f 44cf4013 bpatch patch13_6 ,mem_patch13 
-2a80 680a004d fetcht 4 ,mem_supervision_timer 
-2a81 20402a7b call get_clkbt 
-2a82 98461600 isub temp ,timeup 
-2a83 19627e00 deposit timeup 
-2a84 68090051 fetcht 2 ,mem_supervision_to 
-2a85 18438400 lshift temp ,temp 
-2a86 98467e00 isub temp ,pdata 
-2a87 20600000 rtn 
-
-supervision_flush:
-2a88 44cfc013 bpatch patch13_7 ,mem_patch13 
-2a89 20402a7b call get_clkbt 
-2a8a 6002004d store 4 ,mem_supervision_timer 
-2a8b 20600000 rtn 
-
-assert:
-2a8c 44d04014 bpatch patch14_0 ,mem_patch14 
-2a8d 20202a8c branch assert 
-
-loop:
-2a8e 20202a8e branch loop 
-
-sleep:
-2a8f 207a0000 rtn blank 
-2a90 1fe37e00 rshift pdata ,pdata 
-2a91 1fe0fffd increase -3 ,pdata 
-
-sleep_loop:
-2a92 1fe0ffff increase -1 ,pdata 
-2a93 2422aa92 nbranch sleep_loop ,zero 
-2a94 18007e00 force 0 ,pdata 
-2a95 20600000 rtn 
-
-init_param:
-2a96 df200010 arg 0x10 ,loopcnt 
-2a97 d8a00000 arg 0 ,contw 
-2a98 20407ec6 call memset0 
-2a99 d8a0043f arg mem_le_state ,contw 
-2a9a df20000a arg 10 ,loopcnt 
-2a9b 20407ec6 call memset0 
-2a9c 7009b200 jam 0 ,mem_sp_calc 
-2a9d 700a9900 jam 0 ,mem_fifo_temp 
-2a9e 70048c00 jam 0 ,mem_le_testtype 
-2a9f 70017f00 jam 0 ,mem_debug_config 
-2aa0 7004d100 jam 0 ,mem_lmp_conn_state 
-2aa1 44d0c014 bpatch patch14_1 ,mem_patch14 
-2aa2 70016d00 jam 0 ,mem_connection_options 
-2aa3 70015100 jam 0 ,mem_tester_emulate 
-2aa4 70015c00 jam 0 ,mem_tester_cnt 
-2aa5 589e8b33 setarg param_glap 
-2aa6 6001c0a7 store 3 ,mem_glap 
-2aa7 58000153 setarg param_acl_pktlen 
-2aa8 60010083 store 2 ,mem_acl_pktlen 
-2aa9 7000851e jam param_sco_pktlen ,mem_sco_pktlen 
-2aaa 70008601 jam param_acl_pktcnt ,mem_acl_pktcnt 
-2aab 70008807 jam param_sco_pktcnt ,mem_sco_pktcnt 
-2aac 5812e904 setarg param_hci_version 
-2aad 60018080 store 3 ,mem_hci_version 
-2aae 70009060 jam 0x60 ,mem_fhs_misc 
-2aaf 7040d005 jam param_max_slot ,mem_max_slot 
-2ab0 70001402 jam 0x02 ,mem_fw_ver 
-2ab1 6800c65a fetch 1 ,mem_ssp_enable 
-2ab2 245a74c1 ncall init_memp ,blank 
-2ab3 6800c4be fetch 1 ,mem_le_secure_connect_enable 
-2ab4 245a7518 ncall init_memp_256 ,blank 
-2ab5 44d14014 bpatch patch14_2 ,mem_patch14 
-2ab6 20758000 rtn wake 
-2ab7 58000000 setarg 0 
-2ab8 600141dc store 2 ,mem_tx_len 
-2ab9 1c437e00 rshift clkn_bt ,pdata 
-2aba 60024094 store 4 ,mem_last_clkn 
-2abb 20600000 rtn 
-
-lpmstate:
-2abc 5800ee21 setarg 0xee21 
-2abd 60110050 hstore 2 ,core_clkoff 
-2abe 6812011c hfetch 4 ,core_gpio_in 
-2abf 60020abe store 4 ,mem_saved_gpio_in 
-2ac0 6810813e hfetch 1 ,core_lpm_ldocnt 
-2ac1 60008abd store 1 ,mem_wakup_from_power_flag 
-2ac2 c301e45b bbit0 gpio_latch ,loadcode 
-2ac3 7835fc00 enable wake 
-2ac4 c303aacc bbit0 cold_wake ,lpmwake 
-2ac5 7855fc00 disable wake 
-2ac6 1ce27e00 deposit auxcnt 
-2ac7 243a2acc nbranch lpmwake ,blank 
-2ac8 6810813b hfetch 1 ,core_lpm_ctrl + 3 
-2ac9 c2812acc bbit1 reload_code ,lpmwake 
-2aca d85fffff arg param_hibernate_clks ,temp 
-2acb 20202b3c branch lpm_enter_sleep 
-
-lpmwake:
-2acc 6811813c hfetch 3 ,core_lpm_xtalcnt 
-2acd 6011804c hstore 3 ,core_lpm_reg 
-2ace e8c08000 ifetch 1 ,contr 
-2acf 1fe1feef or_into isogate_mask ,pdata 
-2ad0 e0a08000 istore 1 ,contw 
-2ad1 20402c23 call lpm_write_ctrl2 
-2ad2 6810804f hfetch 1 ,core_lpm_isogate 
-2ad3 79207e04 set1 enable_retmem ,pdata 
-2ad4 6010804f hstore 1 ,core_lpm_isogate 
-2ad5 20402c23 call lpm_write_ctrl2 
-2ad6 2055aadf call lpm_load_context ,wake 
-2ad7 6810804e hfetch 1 ,core_lpm_reg + 2 
-2ad8 793ffe03 set0 gpio_latch ,pdata 
-2ad9 6010804e hstore 1 ,core_lpm_reg + 2 
-2ada 20402c23 call lpm_write_ctrl2 
-2adb 2435e45b nbranch loadcode ,wake 
-2adc c6958000 rtnmark0 mark_otp_encrypt 
-2add 70800608 jam lock_otp ,core_misc_ctrl 
-2ade 20600000 rtn 
-
-lpm_load_context:
-2adf 6800c198 fetch 1 ,mem_saved_spidctrl 
-2ae0 60108086 hstore 1 ,core_spid_ctrl 
-2ae1 6801c18d fetch 3 ,mem_saved_gsel 
-2ae2 60118080 hstore 3 ,core_gpio_sel 
-2ae3 68024181 fetch 4 ,mem_saved_gpio + 4 
-2ae4 60120074 hstore 4 ,core_gpio_out0 
-2ae5 6802417d fetch 4 ,mem_saved_gpio 
-2ae6 60120070 hstore 4 ,core_gpio_oe0 
-2ae7 68044185 fetch 8 ,mem_saved_gpio + 8 
-2ae8 60140078 hstore 8 ,core_gpio_pu0 
-2ae9 68044190 fetch 8 ,mem_saved_mark 
-2aea 98000000 iforce mark 
-2aeb 68140140 hfetch 8 ,core_gpio_wakeup_low 
-2aec 600400a1 store 8 ,mem_gpio_wakeup_low 
-2aed 204064ca call load_ucode 
-2aee 20600000 rtn 
-
-lpm_save_context:
-2aef 18027e00 deposit mark 
-2af0 60044190 store 8 ,mem_saved_mark 
-2af1 68140070 hfetch 8 ,core_gpio_oe0 
-2af2 6004417d store 8 ,mem_saved_gpio 
-2af3 e8c40000 ifetch 8 ,contr 
-2af4 e0a40000 istore 8 ,contw 
-2af5 68118080 hfetch 3 ,core_gpio_sel 
-2af6 6001c18d store 3 ,mem_saved_gsel 
-2af7 68108086 hfetch 1 ,core_spid_ctrl 
-2af8 6000c198 store 1 ,mem_saved_spidctrl 
-2af9 20202c29 branch lpm_write_gpio_wakeup 
-
-lpo_calibration:
-2afa 68108063 hfetch 1 ,core_bist_ctrl 
-2afb 243a2b00 nbranch lpo_cal_inited ,blank 
-2afc 6801c16f fetch 3 ,mem_clks_per_lpo 
-2afd 247a0000 nrtn blank 
-2afe 708063c0 jam 0xc0 ,core_bist_ctrl 
-2aff 70800680 jam ccnt_start ,core_misc_ctrl 
-
-lpo_cal_inited:
-2b00 6810812d hfetch 1 ,core_perf_status 
-2b01 c4008000 rtnbit0 1 
-2b02 68118149 hfetch 3 ,core_clk_counter 
-2b03 6001c16f store 3 ,mem_clks_per_lpo 
-2b04 20600000 rtn 
-
-lpm_adjust_clk:
-2b05 44d1c014 bpatch patch14_3 ,mem_patch14 
-2b06 1b427e00 deposit clke 
-2b07 20407f37 call clk_diff_rt 
-2b08 680a415f fetcht 4 ,mem_sleep_counter_all 
-2b09 18467cff sub temp ,0xff ,null 
-2b0a 20610000 rtn positive 
-2b0b 1fed7e00 lshift8 pdata ,pdata 
-2b0c 1ff27e00 lshift4 pdata ,pdata 
-2b0d 9846fc00 idiv temp 
-2b0e 20407f86 call wait_div_end 
-2b0f 1807fe00 quotient pdata 
-2b10 d84000c8 arg param_lpm_adjmax ,temp 
-2b11 20407f91 call ceiling 
-2b12 60008099 store 1 ,mem_lpm_adjust 
-2b13 24342b15 nbranch lpm_adjust_positive ,user 
-2b14 1fe67e00 sub pdata ,0 ,pdata 
-
-lpm_adjust_positive:
-2b15 6809c16f fetcht 3 ,mem_clks_per_lpo 
-2b16 9840fe00 iadd temp ,pdata 
-2b17 6001c16f store 3 ,mem_clks_per_lpo 
-
-lpm_clear_counter:
-2b18 58000000 setarg 0 
-2b19 6002415f store 4 ,mem_sleep_counter_all 
-2b1a 20600000 rtn 
-
-lpm_doze:
-2b1b 6800c177 fetch 1 ,mem_lpm_config + 2 
-2b1c 79207e02 set1 reload_code ,pdata 
-2b1d 6000c177 store 1 ,mem_lpm_config + 2 
-2b1e 20202b23 branch lpm_hibernate_normal 
-
-lpm_hibernate:
-2b1f d85fffff arg param_hibernate_clks ,temp 
-2b20 6800c176 fetch 1 ,mem_lpm_config + 1 
-2b21 793ffe07 set0 7 ,pdata 
-2b22 6000c176 store 1 ,mem_lpm_config + 1 
-
-lpm_hibernate_normal:
-2b23 44d24014 bpatch patch14_4 ,mem_patch14 
-2b24 20402c29 call lpm_write_gpio_wakeup 
-2b25 6800c157 fetch 1 ,mem_lpm_hibernate_switch 
-2b26 6000c17c store 1 ,mem_lpm_xtalcnt + 4 
-2b27 6800c17a fetch 1 ,mem_lpm_xtalcnt + 2 
-2b28 79207e07 set1 cold_wake ,pdata 
-2b29 6000c17a store 1 ,mem_lpm_xtalcnt + 2 
-
-lpm_sleep:
-2b2a 44d2c014 bpatch patch14_5 ,mem_patch14 
-2b2b 204029e7 call xtal_fast_wake 
-2b2c 6802415f fetch 4 ,mem_sleep_counter_all 
-2b2d 9840fe00 iadd temp ,pdata 
-2b2e 6002415f store 4 ,mem_sleep_counter_all 
-2b2f 20402aef call lpm_save_context 
-2b30 6802c178 fetch 5 ,mem_lpm_xtalcnt 
-2b31 6012004c hstore 4 ,core_lpm_reg 
-2b32 1fef2200 rshift32 pdata ,rega 
-2b33 37d98200 until null ,lpo_edge 
-2b34 1b227e00 deposit clkn 
-2b35 60034163 store 6 ,mem_sleep_clkn 
-2b36 70800502 jam lpmreg_sel_ctrl2 ,core_lpm_wr 
-2b37 37d98200 until null ,lpo_edge 
-2b38 37d98200 until null ,lpo_edge 
-2b39 1a227e00 deposit rega 
-2b3a 6010804f hstore 1 ,core_lpm_isogate 
-2b3b 70800502 jam lpmreg_sel_ctrl2 ,core_lpm_wr 
-
-lpm_enter_sleep:
-2b3c 37d98200 until null ,lpo_edge 
-2b3d 37d98200 until null ,lpo_edge 
-2b3e 601a004c hstoret 4 ,core_lpm_reg 
-2b3f 70800510 jam lpmreg_sel_counter ,core_lpm_wr 
-2b40 37df8200 until null ,never 
-
-lpm_recover_clk:
-2b41 44d34014 bpatch patch14_6 ,mem_patch14 
-2b42 58000000 setarg 0 
-2b43 1ce27c00 copy auxcnt ,null 
-2b44 2022ab4c branch lpm_recover_timeout ,zero 
-2b45 6810813c hfetch 1 ,core_lpm_xtalcnt 
-2b46 6818813d hfetcht 1 ,core_lpm_buckcnt 
-2b47 98467c00 isub temp ,null 
-2b48 20212b4a branch lpm_recover_xtal ,positive 
-2b49 18427e00 deposit temp 
-
-lpm_recover_xtal:
-2b4a 9ce67e00 isub auxcnt ,pdata 
-2b4b 1fe0fe01 increase 1 ,pdata 
-
-lpm_recover_timeout:
-2b4c 1fe0fe08 increase 8 ,pdata 
-2b4d 37d98200 until null ,lpo_edge 
-2b4e 9e20fe00 iadd lpo_time ,pdata 
-2b4f 680a415b fetcht 4 ,mem_sleep_counter 
-2b50 9840fe00 iadd temp ,pdata 
-2b51 6809c16f fetcht 3 ,mem_clks_per_lpo 
-2b52 984ffe00 imul32 temp ,pdata 
-2b53 1fecfe00 rshift8 pdata ,pdata 
-2b54 1ff1fe00 rshift4 pdata ,pdata 
-2b55 1fe0fe6e increase param_lpm_fix ,pdata 
-2b56 d8400ea6 arg 3750 ,temp 
-2b57 9846fc00 idiv temp 
-2b58 20407f86 call wait_div_end 
-2b59 1807fe00 quotient pdata 
-2b5a 1ff07e00 lshift16 pdata ,pdata 
-2b5b 18070400 remainder temp 
-2b5c 9841fe00 ior temp ,pdata 
-2b5d 680b4163 fetcht 6 ,mem_sleep_clkn 
-2b5e 20407f2c call clk_add 
-2b5f 18423200 copy temp ,clkn 
-2b60 68034048 fetch 6 ,mem_context + coffset_clk_offset 
-2b61 20402854 call calc_clke2 
-2b62 1b427e00 deposit clke 
-2b63 60030a9a store 6 ,mem_pdatatemp 
-2b64 1ce27e00 deposit auxcnt 
-2b65 e0a08000 istore 1 ,contw 
-2b66 6810811d hfetch 1 ,core_gpio_in1 
-2b67 1fe1fef0 or_into 0xf0 ,pdata 
-2b68 e0a08000 istore 1 ,contw 
-2b69 20600000 rtn 
-
-lpm_dispatch:
-2b6a 44d3c014 bpatch patch14_7 ,mem_patch14 
-2b6b 20402afa call lpo_calibration 
-2b6c 6801c16f fetch 3 ,mem_clks_per_lpo 
-2b6d 207a0000 rtn blank 
-2b6e 6800c091 fetch 1 ,mem_lpm_mode 
-2b6f 207a0000 rtn blank 
-2b70 6800c65a fetch 1 ,mem_ssp_enable 
-2b71 203a2b74 branch lpm_dispatch_next ,blank 
-2b72 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
-2b73 207a0000 rtn blank 
-
-lpm_dispatch_next:
-2b74 6800c4c0 fetch 1 ,mem_le_sc_calc 
-2b75 247a0000 nrtn blank 
-2b76 20402c3a call lpm_check_wake_lock 
-2b77 247a0000 nrtn blank 
-2b78 6800c040 fetch 1 ,mem_context 
-2b79 2fe00e03 compare 3 ,pdata ,0x7 
-2b7a 2420ab9d nbranch lpm_dispatch_unconn ,true 
-2b7b 68014042 fetch 2 ,mem_context + coffset_tsniff 
-2b7c 207a0000 rtn blank 
-2b7d 20758000 rtn wake 
-2b7e 44d44015 bpatch patch15_0 ,mem_patch15 
-
-lpm_dispatch_next2:
-2b7f 680880a0 fetcht 1 ,mem_lpm_current_mult 
-2b80 68014042 fetch 2 ,mem_context + coffset_tsniff 
-2b81 984ffe00 imul32 temp ,pdata 
-2b82 18518400 rshift4 temp ,temp 
-2b83 184b0400 rshift2 temp ,temp 
-2b84 98467e00 isub temp ,pdata 
-2b85 680a4044 fetcht 4 ,mem_context + coffset_sniff_anchor 
-2b86 9840fe00 iadd temp ,pdata 
-2b87 6808c156 fetcht 1 ,mem_lpm_overhead 
-2b88 98467e00 isub temp ,pdata 
-2b89 1ff06000 lshift16 pdata ,alarm 
-2b8a 44d4c015 bpatch patch15_1 ,mem_patch15 
-2b8b 6801404e fetch 2 ,mem_context + coffset_rx_window 
-2b8c 1fe37e00 rshift pdata ,pdata 
-2b8d 20407f50 call clk2bt 
-2b8e 1e027e00 deposit alarm 
-2b8f 20407f39 call clk_diff 
-2b90 1b420400 copy clke ,temp 
-2b91 20407f37 call clk_diff_rt 
-2b92 20740000 rtn user 
-
-lpm_dispatch_sleep:
-2b93 20407f49 call clk2lpo 
-
-lpm_dispatch_lpo:
-2b94 44d54015 bpatch patch15_2 ,mem_patch15 
-2b95 6800c178 fetch 1 ,mem_lpm_xtalcnt 
-2b96 98467c00 isub temp ,null 
-2b97 20212b18 branch lpm_clear_counter ,positive 
-2b98 600a415b storet 4 ,mem_sleep_counter 
-2b99 20403328 call app_will_enter_lpm 
-2b9a 204052fb call l2cap_lpm_save_txbuf 
-2b9b 680a415b fetcht 4 ,mem_sleep_counter 
-2b9c 20202b2a branch lpm_sleep 
-
-lpm_dispatch_unconn:
-2b9d 44d5c015 bpatch patch15_3 ,mem_patch15 
-2b9e 6800c040 fetch 1 ,mem_context 
-2b9f c3800000 rtnbit1 state_inconn 
-2ba0 c3818000 rtnbit1 state_inpage 
-2ba1 6800c65a fetch 1 ,mem_ssp_enable 
-2ba2 203a2ba5 branch lpm_unconn_nossp ,blank 
-2ba3 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
-2ba4 207a0000 rtn blank 
-
-lpm_unconn_nossp:
-2ba5 44d64015 bpatch patch15_4 ,mem_patch15 
-2ba6 6800c36e fetch 1 ,mem_le_adv_enable 
-2ba7 243a2baa nbranch lpm_unconn_cont ,blank 
-2ba8 6800c093 fetch 1 ,mem_scan_mode 
-2ba9 207a0000 rtn blank 
-
-lpm_unconn_cont:
-2baa 68014154 fetch 2 ,mem_lpm_interval 
-2bab 207a0000 rtn blank 
-
-lpm_sleep_btclk:
-2bac 6808c156 fetcht 1 ,mem_lpm_overhead 
-2bad 98467e00 isub temp ,pdata 
-2bae d8401d4c arg 7500 ,temp 
-2baf 984ffe00 imul32 temp ,pdata 
-2bb0 20202b93 branch lpm_dispatch_sleep 
-
-lpm_set_mult:
-2bb1 44d6c015 bpatch patch15_5 ,mem_patch15 
-2bb2 7855fc00 disable wake 
-2bb3 68008030 fetch 1 ,mem_state 
-2bb4 c4008000 rtnbit0 state_insniff 
-2bb5 2436abd0 nbranch lpm_not_match ,match 
-2bb6 20402bcb call lpm_match 
-2bb7 680140c1 fetch 2 ,mem_rx_window_sniff 
-2bb8 6001003e store 2 ,mem_rx_window 
-2bb9 68008047 fetch 1 ,mem_arq 
-2bba c281abde bbit1 wack ,lpm_mult_short 
-2bbb c586abde bmark0 mark_lpm_mult_enable ,lpm_mult_short 
-2bbc 20405274 call l2cap_malloc_is_fifo_empty 
-2bbd 243a2bde nbranch lpm_mult_short ,blank 
-2bbe 6800c55c fetch 1 ,mem_classic_bt_flag 
-2bbf c280abde bbit1 short_mult_flag ,lpm_mult_short 
-
-lpm_mult_wait_timeout:
-2bc0 7000a000 jam 0 ,mem_lpm_current_mult 
-2bc1 c586abde bmark0 mark_lpm_mult_enable ,lpm_mult_short 
-2bc2 6800c174 fetch 1 ,mem_lpm_mult_cnt 
-2bc3 203a2be2 branch lpm_mult_long ,blank 
-2bc4 1fe0ffff increase -1 ,pdata 
-2bc5 6000c174 store 1 ,mem_lpm_mult_cnt 
-2bc6 20600000 rtn 
-
-classic_bt_set_mult_short_flag:
-2bc7 d8e00001 arg short_mult_flag ,queue 
-2bc8 202060cd branch classic_bluetooth_set_flag 
-
-classic_bt_clr_mult_short_flag:
-2bc9 d8e00001 arg short_mult_flag ,queue 
-2bca 202060d1 branch classic_bluetooth_clr_flag 
-
-lpm_match:
-2bcb 70415900 jam 0 ,mem_sniff_unint_lost 
-2bcc 6801c169 fetch 3 ,mem_sniff_rcv 
-2bcd 1fe0fe01 increase 1 ,pdata 
-2bce 6001c169 store 3 ,mem_sniff_rcv 
-2bcf 20600000 rtn 
-
-lpm_not_match:
-2bd0 44d74015 bpatch patch15_6 ,mem_patch15 
-2bd1 680940c1 fetcht 2 ,mem_rx_window_sniff 
-2bd2 18430400 rshift temp ,temp 
-2bd3 6801003e fetch 2 ,mem_rx_window 
-2bd4 9840fe00 iadd temp ,pdata 
-2bd5 6001003e store 2 ,mem_rx_window 
-
-lpm_lost:
-2bd6 7000a000 jam 0 ,mem_lpm_current_mult 
-2bd7 6801c16c fetch 3 ,mem_sniff_lost 
-2bd8 1fe0fe01 increase 1 ,pdata 
-2bd9 6001c16c store 3 ,mem_sniff_lost 
-2bda 6800c159 fetch 1 ,mem_sniff_unint_lost 
-2bdb 1fe0fe01 increase 1 ,pdata 
-2bdc 6000c159 store 1 ,mem_sniff_unint_lost 
-2bdd 20600000 rtn 
-
-lpm_mult_short:
-2bde 7000a000 jam 0 ,mem_lpm_current_mult 
-2bdf 6800c173 fetch 1 ,mem_lpm_mult_timeout 
-2be0 6000c174 store 1 ,mem_lpm_mult_cnt 
-2be1 20600000 rtn 
-
-lpm_mult_long:
-2be2 6808c172 fetcht 1 ,mem_lpm_mult 
-2be3 600880a0 storet 1 ,mem_lpm_current_mult 
-2be4 20600000 rtn 
-
-lpm_cal_xtal_startup:
-2be5 44d7c015 bpatch patch15_7 ,mem_patch15 
-2be6 6800c178 fetch 1 ,mem_lpm_xtalcnt 
-2be7 247a0000 nrtn blank 
-2be8 70804206 jam clksel_rc ,core_clksel 
-2be9 58000f0c setarg 0xf0c 
-2bea 20402c18 call lpm_write_config 
-2beb 58030d40 setarg 200000 
-2bec 20402a8f call sleep 
-2bed 37d98200 until null ,lpo_edge 
-2bee 1e226000 copy lpo_time ,alarm 
-2bef 204029e7 call xtal_fast_wake 
-2bf0 70804204 jam clksel_xtal ,core_clksel 
-2bf1 2000000a nop 10 
-2bf2 37d98200 until null ,lpo_edge 
-2bf3 1e227e00 deposit lpo_time 
-2bf4 9e067e00 isub alarm ,pdata 
-2bf5 1fe0fe30 increase 0x30 ,pdata 
-2bf6 d84000ff arg 0xff ,temp 
-2bf7 20407f91 call ceiling 
-2bf8 6000c178 store 1 ,mem_lpm_xtalcnt 
-2bf9 20007530 nop 30000 
-2bfa 20007530 nop 30000 
-2bfb 20007530 nop 30000 
-2bfc 20600000 rtn 
-
-lpm_cal_xtal_startup_by_snooze:
-2bfd 6800c178 fetch 1 ,mem_lpm_xtalcnt 
-2bfe 247a0000 nrtn blank 
-2bff 708044ff jam 0xff ,core_xtal_stable_time 
-2c00 70804206 jam clksel_rc ,core_clksel 
-2c01 204029e7 call xtal_fast_wake 
-2c02 580003e8 setarg 1000 
-2c03 9e20e000 iadd lpo_time ,alarm 
-2c04 07e00000 snooze 
-2c05 1e227e00 deposit lpo_time 
-2c06 20002ee0 nop 12000 
-2c07 20002ee0 nop 12000 
-2c08 20002ee0 nop 12000 
-2c09 20002ee0 nop 12000 
-2c0a 20002ee0 nop 12000 
-2c0b 20002ee0 nop 12000 
-2c0c 20002ee0 nop 12000 
-2c0d 20002ee0 nop 12000 
-2c0e 20002ee0 nop 12000 
-2c0f 9e067e00 isub alarm ,pdata 
-2c10 1fe0fe30 add pdata ,0x30 ,pdata 
-2c11 d84000ff arg 0xff ,temp 
-2c12 20407f91 call ceiling 
-2c13 6000c178 store 1 ,mem_lpm_xtalcnt 
-2c14 20007530 nop 30000 
-2c15 20007530 nop 30000 
-2c16 20007530 nop 30000 
-2c17 20600000 rtn 
-
-lpm_write_config:
-2c18 d8a00fff arg 0xfff ,contw 
-2c19 98a10a00 iand contw ,contw 
-2c1a 6800c175 fetch 1 ,mem_lpm_config 
-2c1b 1fe17ef0 and_into 0xf0 ,pdata 
-2c1c 1fed7e00 lshift8 pdata ,pdata 
-2c1d 98a1fe00 ior contw ,pdata 
-2c1e 6011004c hstore 2 ,core_lpm_reg 
-2c1f e8c10000 ifetch 2 ,contr 
-2c20 e0a10000 istore 2 ,contw 
-
-lpm_write_ctrl:
-2c21 58000001 setarg lpmreg_sel_ctrl 
-2c22 20202c24 branch lpm_write 
-
-lpm_write_ctrl2:
-2c23 58000002 setarg lpmreg_sel_ctrl2 
-
-lpm_write:
-2c24 37d98200 until null ,lpo_edge 
-2c25 60108005 hstore 1 ,core_lpm_wr 
-2c26 37d98200 until null ,lpo_edge 
-2c27 37d98200 until null ,lpo_edge 
-2c28 20600000 rtn 
-
-lpm_write_gpio_wakeup:
-2c29 44d84016 bpatch patch16_0 ,mem_patch16 
-2c2a 680200a1 fetch 4 ,mem_gpio_wakeup_low 
-2c2b 6012004c hstore 4 ,core_lpm_reg 
-2c2c 58000004 setarg lpmreg_sel_gpiolow 
-2c2d 20402c24 call lpm_write 
-2c2e 680200a5 fetch 4 ,mem_gpio_wakeup_high 
-2c2f 6012004c hstore 4 ,core_lpm_reg 
-2c30 58000008 setarg lpmreg_sel_gpiohigh 
-2c31 20202c24 branch lpm_write 
-
-lpm_get_wake_lock:
-2c32 68014152 fetch 2 ,mem_lpm_wake_lock 
-2c33 f9207e00 qset1 pdata 
-2c34 60014152 store 2 ,mem_lpm_wake_lock 
-2c35 20600000 rtn 
-
-lpm_put_wake_lock:
-2c36 68014152 fetch 2 ,mem_lpm_wake_lock 
-2c37 f93ffe00 qset0 pdata 
-2c38 60014152 store 2 ,mem_lpm_wake_lock 
-2c39 20600000 rtn 
-
-lpm_check_wake_lock:
-2c3a 44d8c016 bpatch patch16_1 ,mem_patch16 
-2c3b 20403326 call app_check_wake_lock 
-2c3c 68014152 fetch 2 ,mem_lpm_wake_lock 
-2c3d 1fe22200 copy pdata ,rega 
-2c3e 6800804c fetch 1 ,mem_state_map 
-2c3f 2feffe06 isolate1 smap_rxlmp ,pdata 
-2c40 7920a20b setflag true ,wake_lock_lmp_rx ,rega 
-2c41 68008078 fetch 1 ,mem_lmo_opcode1 
-2c42 6808807c fetcht 1 ,mem_lmo_opcode2 
-2c43 9840fe00 iadd temp ,pdata 
-2c44 68088048 fetcht 1 ,mem_lmp_to_send 
-2c45 9840fe00 iadd temp ,pdata 
-2c46 7d3a220a nsetflag blank ,wake_lock_lmp_tx ,rega 
-2c47 6800c4ff fetch 1 ,mem_le_tx_buff_used 
-2c48 7d3a2201 nsetflag blank ,wake_lock_ble_tx ,rega 
-2c49 6801025d fetch 2 ,mem_l2cap_rxbuff1_len 
-2c4a 6809025f fetcht 2 ,mem_l2cap_rxbuff2_len 
-2c4b 9840fe00 iadd temp ,pdata 
-2c4c 7d3a220d nsetflag blank ,wake_lock_l2cap_rx ,rega 
-2c4d 68044668 fetch util_fifo_len ,mem_ipc_fifo_bt2c51 
-2c4e 7d3a220f nsetflag blank ,wake_lock_ipc_bt2c51 ,rega 
-2c4f 68044670 fetch util_fifo_len ,mem_ipc_fifo_c512bt 
-2c50 7d3a220e nsetflag blank ,wake_lock_ipc_c512bt ,rega 
-2c51 6800c1ce fetch 1 ,mem_hci_cmd 
-2c52 7d3a2208 nsetflag blank ,wake_lock_cmd ,rega 
-2c53 6800c092 fetch 1 ,mem_device_option 
-2c54 2fe1fe0a compare dvc_op_module ,pdata ,0xff 
-2c55 2040ac5b call lpm_uart_wake_lock ,true 
-2c56 5ffffff8 setarg -8 
-2c57 9a212200 iand rega ,rega 
-2c58 1a227e00 copy rega ,pdata 
-2c59 60014152 store 2 ,mem_lpm_wake_lock 
-2c5a 20600000 rtn 
-
-lpm_uart_wake_lock:
-2c5b 68110112 hfetch 2 ,core_uart_rxitems 
-2c5c 7d3a2206 nsetflag blank ,wake_lock_uart_rx ,rega 
-2c5d 6811010e hfetch 2 ,core_uart_txitems 
-2c5e 7d3a2205 nsetflag blank ,wake_lock_uart_tx ,rega 
-2c5f 20600000 rtn 
-
-lpm_shut_down:
-2c60 68120138 hfetch 4 ,core_lpm_ctrl 
-2c61 793ffe1b set0 27 ,pdata 
-2c62 6012004c hstore 4 ,core_lpm_reg 
-2c63 20402c21 call lpm_write_ctrl 
-2c64 20202a8c branch assert 
-
-lpm_disable_exen_output:
-2c65 6812013c hfetch 4 ,core_lpm_xtalcnt 
-2c66 793ffe14 set0 20 ,pdata 
-2c67 6012004c hstore 4 ,core_lpm_reg 
-2c68 20202c23 branch lpm_write_ctrl2 
-
-check_bt_disabled:
-2c69 68014150 fetch 2 ,mem_chip_functions 
-2c6a c2802a8c bbit1 bt_disabled ,assert 
-2c6b 20600000 rtn 
-
-check_ble_disabled:
-2c6c 68014150 fetch 2 ,mem_chip_functions 
-2c6d c280aa8c bbit1 ble_disabled ,assert 
-2c6e 20600000 rtn 
-
-check_module_disabled:
-2c6f 68014150 fetch 2 ,mem_chip_functions 
-2c70 c2812a8c bbit1 module_disable ,assert 
-2c71 20600000 rtn 
-
-g24_dispatch:
-2c72 44d94016 bpatch patch16_2 ,mem_patch16 
-2c73 20402c7a call g24_head_ptr2regc 
-2c74 1a60a4cd add regc ,offset_24g_mode ,regb 
-2c75 ea408000 ifetch 1 ,regb 
-2c76 c1000000 rtneq disable_24g 
-2c77 c000ad06 beq tx_24g ,g24_transmit_process 
-2c78 c0012c7f beq rx_24g ,g24_receive_process 
-2c79 20600000 rtn 
-
-g24_head_ptr2regc:
-2c7a 68094241 fetcht 2 ,mem_24g_head_ptr 
-2c7b 18422600 copy temp ,regc 
-2c7c 20600000 rtn 
-
-g24_receive_process_init:
-2c7d 20402f3d call g24_receive_init 
-2c7e 2020307d branch g24_mode_switch_init 
-
-g24_receive_process:
-2c7f 20403084 call g24_mode_switch 
-2c80 2040305a call g24_dongle_work_mode_auto 
-2c81 2040305e call g24_dongle_bind_mode_auto 
-2c82 202030a2 branch g24_dongle_search_mode_auto 
-
-g24_pair_init:
-2c83 20403231 call g24_set0_mem_pid 
-2c84 5800004e setarg g24_pair_ch 
-2c85 2040322f call g24_store_mem_ch 
-2c86 204032ba call g24_store_mem_pair_txpower 
-2c87 1a60a292 add regc ,offset_24g_paring_addr ,rega 
-2c88 ea220000 ifetch 4 ,rega 
-2c89 2020322c branch g24_store_mem_addr 
-
-g24_ch:
-2c8a 20402c7a call g24_head_ptr2regc 
-2c8b 1a60a491 add regc ,offset_24g_current_ch_number ,regb 
-2c8c ea488000 ifetcht 1 ,regb 
-2c8d 20402c90 call g24_ch_temp_incre_size4 
-2c8e 1a608a91 add regc ,offset_24g_current_ch_number ,contw 
-2c8f 20202e56 branch g24_contw_istoret_1byte 
-
-g24_ch_temp_incre_size4:
-2c90 20402c94 call g24_ch_calc 
-2c91 18408401 increase 1 ,temp 
-2c92 18410403 and_into 3 ,temp 
-2c93 20600000 rtn 
-
-g24_ch_calc:
-2c94 1a60a4ae add regc ,offset_24g_addr ,regb 
-2c95 ea408000 ifetch 1 ,regb 
-2c96 1fe17e03 and_into 0x03 ,pdata 
-2c97 1fefa204 mul32 pdata ,4 ,rega 
-2c98 1a60fe97 add regc ,offset_24g_ch_map1 ,pdata 
-2c99 9a20fe00 iadd rega ,pdata 
-2c9a 98408c00 iadd temp ,contr 
-2c9b e8c08000 ifetch 1 ,contr 
-2c9c 2020322f branch g24_store_mem_ch 
-
-g24_set_device_addr:
-2c9d 2040326c call g24_store_mem_tx_power_temp 
-2c9e 2040666a call otp_enable_chgpump 
-2c9f 580007e2 setarg 0x7e2 
-2ca0 da200aa2 arg mem_temp ,rega 
-2ca1 d8400004 arg 4 ,temp 
-2ca2 204066b3 call otpd_read_data 
-2ca3 2040666d call otp_disable_chgpump 
-2ca4 68020aa2 fetch 4 ,mem_temp 
-2ca5 20403227 call g24_store_mem_device_addr 
-2ca6 247a0000 nrtn blank 
-2ca7 680240a0 fetch 4 ,mem_lap 
-2ca8 20203227 branch g24_store_mem_device_addr 
-
-g24_transmit_rf_sta_init:
-2ca9 20403241 call g24_set1_mem_rf_last_sta 
-2caa 58000000 setarg 0 
-2cab 2040323f call g24_store_mem_sync_cnt 
-
-g24_transmit_rf_ctrl_clear:
-2cac 2040323a call g24_fetch_mem_data_type 
-2cad 1fe17e07 and_into bits_data ,pdata 
-2cae 2020323c branch g24_store_mem_data_type 
-
-g24_hop_ch_enable:
-2caf 2040323a call g24_fetch_mem_data_type 
-2cb0 79207e04 set1 bit_hop ,pdata 
-2cb1 2040323c call g24_store_mem_data_type 
-2cb2 20203235 branch g24_store_mem_txpayload 
-
-g24_transmit_hop_pac_fail:
-2cb3 2040325d call g24_fetch_mem_rf_work_stage 
-2cb4 c000acb7 beq 1 ,g24_transmit_hop_pac_fail_wo_hop 
-2cb5 c0012cbc beq 2 ,g24_transmit_hop_pac_fail_hop_stage2 
-2cb6 20600000 rtn 
-
-g24_transmit_hop_pac_fail_wo_hop:
-2cb7 2040323e call g24_set2_mem_sync_cnt 
-
-g24_transmit_hop_pac_fail_stage1:
-2cb8 1a608ad1 add regc ,offset_24g_hop_pac_retry ,contw 
-2cb9 204032d6 call g24_mem_set0 
-2cba 20403242 call g24_store_mem_rf_last_sta 
-2cbb 20202cac branch g24_transmit_rf_ctrl_clear 
-
-g24_transmit_hop_pac_fail_hop_stage2:
-2cbc 2040325a call g24_set0_mem_rf_hop_ch 
-2cbd 20202cb8 branch g24_transmit_hop_pac_fail_stage1 
-
-g24_transmit_pac_fail_hop_stage3:
-2cbe 1a60a28c add regc ,offset_24g_txfail_cnt ,rega 
-2cbf ea208000 ifetch 1 ,rega 
-2cc0 1fe0fe01 increase 1 ,pdata 
-2cc1 1a608a8c add regc ,offset_24g_txfail_cnt ,contw 
-2cc2 e0a08000 istore 1 ,contw 
-2cc3 c0102dd2 beq 0x20 ,g24_tx_attempt_fail 
-2cc4 20403258 call g24_fetch_mem_rf_hop_ch 
-2cc5 c000acca beq 1 ,g24_rf_hop_fastly 
-2cc6 58000001 setarg 1 
-2cc7 2040325b call g24_store_mem_rf_hop_ch 
-
-g24_rf_hop_attemp_again:
-2cc8 20403258 call g24_fetch_mem_rf_hop_ch 
-2cc9 c080acac bne 1 ,g24_transmit_rf_ctrl_clear 
-
-g24_rf_hop_fastly:
-2cca 1a60a2d3 add regc ,offset_24g_hop_fastly_cnt ,rega 
-2ccb ea208000 ifetch 1 ,rega 
-2ccc 1fe0fe01 increase 1 ,pdata 
-2ccd 20402cd5 call g24_store_mem_hop_fastly_cnt 
-2cce c0022cd2 beq 4 ,g24_rf_hop_fastly_exit 
-2ccf 20402c8a call g24_ch 
-2cd0 20402d04 call g24_set2_mem_max_retry 
-2cd1 20202d8f branch g24_transmit_packet 
-
-g24_rf_hop_fastly_exit:
-2cd2 20402cd4 call g24_set0_mem_hop_fastly_cnt 
-2cd3 20202cac branch g24_transmit_rf_ctrl_clear 
-
-g24_set0_mem_hop_fastly_cnt:
-2cd4 58000000 setarg 0 
-
-g24_store_mem_hop_fastly_cnt:
-2cd5 1a608ad3 add regc ,offset_24g_hop_fastly_cnt ,contw 
-2cd6 202032b4 branch g24_contw_istore_1byte 
-
-g24_transmit_hop_pac_succ_wo_hop:
-2cd7 2040323e call g24_set2_mem_sync_cnt 
-
-g24_transmit_hop_pac_succ:
-2cd8 2040325a call g24_set0_mem_rf_hop_ch 
-2cd9 20403241 call g24_set1_mem_rf_last_sta 
-2cda 20202cac branch g24_transmit_rf_ctrl_clear 
-
-g24_transmit_succ_rf_config:
-2cdb 2040325d call g24_fetch_mem_rf_work_stage 
-2cdc c001acd8 beq 3 ,g24_transmit_hop_pac_succ 
-2cdd 2040323a call g24_fetch_mem_data_type 
-2cde 2fec0004 isolate0 bit_hop ,pdata 
-2cdf 2020aca9 branch g24_transmit_rf_sta_init ,true 
-2ce0 2040325d call g24_fetch_mem_rf_work_stage 
-2ce1 c000acd7 beq 1 ,g24_transmit_hop_pac_succ_wo_hop 
-2ce2 c0012cd8 beq 2 ,g24_transmit_hop_pac_succ 
-2ce3 20600000 rtn 
-
-g24_rf_sta_check:
-2ce4 20403253 call g24_fetch_mem_pairing_sm 
-2ce5 c1ff8000 rtnne state_24g_pairing_success 
-2ce6 20402ce9 call g24_rf_laststa_synccnt_check 
-2ce7 24562cf4 ncall g24_rf_sync_cnt_check ,user2 
-2ce8 20600000 rtn 
-
-g24_rf_laststa_synccnt_check:
-2ce9 78567c00 disable user2 
-2cea 1a60a2ce add regc ,offset_24g_rf_last_sta ,rega 
-2ceb ea208000 ifetch 1 ,rega 
-2cec c1808000 rtnne 1 
-2ced 1a60a2d0 add regc ,offset_24g_sync_cnt ,rega 
-2cee ea208000 ifetch 1 ,rega 
-2cef c1800000 rtnne 0 
-2cf0 58000001 setarg 1 
-2cf1 20402cfd call g24_store_mem_rf_work_stage 
-2cf2 20403237 call g24_set4_mem_max_retry 
-2cf3 20207feb branch enable_user2 
-
-g24_rf_sync_cnt_check:
-2cf4 1a60a2d0 add regc ,offset_24g_sync_cnt ,rega 
-2cf5 ea208000 ifetch 1 ,rega 
-2cf6 203a2cff branch g24_rf_hop_attemp ,blank 
-2cf7 1fe0ffff increase -1 ,pdata 
-2cf8 2040323f call g24_store_mem_sync_cnt 
-2cf9 58000002 setarg 2 
-2cfa 20402cfd call g24_store_mem_rf_work_stage 
-2cfb 20402c8a call g24_ch 
-2cfc 20203237 branch g24_set4_mem_max_retry 
-
-g24_store_mem_rf_work_stage:
-2cfd 1a608ad2 add regc ,offset_24g_rf_work_stage ,contw 
-2cfe 202032b4 branch g24_contw_istore_1byte 
-
-g24_rf_hop_attemp:
-2cff 58000003 setarg 3 
-2d00 20402cfd call g24_store_mem_rf_work_stage 
-2d01 20403258 call g24_fetch_mem_rf_hop_ch 
-2d02 243a2cc8 nbranch g24_rf_hop_attemp_again ,blank 
-2d03 20402c8a call g24_ch 
-
-g24_set2_mem_max_retry:
-2d04 58000002 setarg 2 
-2d05 20203238 branch g24_store_mem_max_retry 
-
-g24_transmit_process:
-2d06 c6930000 rtnmark0 mark_24g 
-2d07 79200027 set1 mark_24g_conext ,mark 
-2d08 44d9c016 bpatch patch16_3 ,mem_patch16 
-2d09 1a60a28e add regc ,offset_24g_tx_without_int ,rega 
-2d0a ea208000 ifetch 1 ,rega 
-2d0b c000ad0f beq 1 ,g24_transmit_without_int 
-2d0c 2040306a call g24_timer_check 
-2d0d 24342d16 nbranch g24_transmit_exit ,user 
-2d0e 20402d1b call g24_interval_calibrate 
-
-g24_transmit_without_int:
-2d0f 1a608a8e add regc ,offset_24g_tx_without_int ,contw 
-2d10 204032d6 call g24_mem_set0 
-2d11 20402d2c call g24_txdata_prep 
-2d12 24342d7d nbranch g24_enter_lpm ,user 
-2d13 20402ce4 call g24_rf_sta_check 
-
-g24_transmit_start:
-2d14 20402d8f call g24_transmit_packet 
-2d15 20402e7a call g24_power_ctrl 
-
-g24_transmit_exit:
-2d16 793f8027 set0 mark_24g_conext ,mark 
-2d17 20600000 rtn 
-
-g24_timer_timeout:
-2d18 20628000 rtn zero 
-2d19 79207e1c set1 28 ,pdata 
-2d1a 20600000 rtn 
-
-g24_interval_calibrate:
-2d1b 1a60a2c2 add regc ,offset_24g_pac_index ,rega 
-2d1c ea208000 ifetch 1 ,rega 
-2d1d 1fe0fe01 increase 1 ,pdata 
-2d1e 1a608ac2 add regc ,offset_24g_pac_index ,contw 
-2d1f e0a08000 istore 1 ,contw 
-2d20 c0022d23 beq 4 ,g24_interval_max 
-2d21 c002ad27 beq 5 ,g24_interval_min 
-2d22 20600000 rtn 
-
-g24_interval_max:
-2d23 1a60a2ad add regc ,offset_24g_interval_max ,rega 
-2d24 ea208000 ifetch 1 ,rega 
-
-g24_interval_update:
-2d25 1a608aab add regc ,offset_24g_interval ,contw 
-2d26 202032b4 branch g24_contw_istore_1byte 
-
-g24_interval_min:
-2d27 1a608ac2 add regc ,offset_24g_pac_index ,contw 
-2d28 204032d6 call g24_mem_set0 
-2d29 1a60a2ac add regc ,offset_24g_interval_min ,rega 
-2d2a ea208000 ifetch 1 ,rega 
-2d2b 20202d25 branch g24_interval_update 
-
-g24_txdata_prep:
-2d2c 20403253 call g24_fetch_mem_pairing_sm 
-2d2d c0ffaeb1 bne state_24g_pairing_success ,g24_pairing_sm 
-2d2e 44da4016 bpatch patch16_4 ,mem_patch16 
-2d2f 20402d3a call g24_package_data 
-2d30 24342d36 nbranch g24_txdata_last_pac ,user 
-2d31 20402d53 call g24_transmit_prep 
-2d32 20402e71 call g24_power_ctrl_pac_incrs 
-
-g24_txdata_enable_tx:
-2d33 58000001 setarg ensure_on_24g 
-
-g24_store_mem_ensure:
-2d34 1a608a8b add regc ,offset_24g_ensure ,contw 
-2d35 202032b4 branch g24_contw_istore_1byte 
-
-g24_txdata_last_pac:
-2d36 1a60a28b add regc ,offset_24g_ensure ,rega 
-2d37 ea208000 ifetch 1 ,rega 
-2d38 c000ffe7 beq ensure_on_24g ,enable_user 
-2d39 20600000 rtn 
-
-g24_package_data:
-2d3a 1a6084d8 add regc ,offset_24g_cb_data ,temp 
-2d3b e8410000 ifetch 2 ,temp 
-2d3c 20407f9c call callback_func 
-2d3d 24740000 nrtn user 
-2d3e 1a227e00 copy rega ,pdata 
-2d3f 60008aae store 1 ,mem_rega 
-2d40 1a608ab2 add regc ,offset_24g_abort_pac ,contw 
-2d41 204032d6 call g24_mem_set0 
-2d42 20402cac call g24_transmit_rf_ctrl_clear 
-2d43 6000919e store 1 ,mem_24g_common_temp 
-2d44 68008aae fetch 1 ,mem_rega 
-2d45 1fe22200 copy pdata ,rega 
-2d46 1a208401 add rega ,1 ,temp 
-2d47 d8a0119f arg mem_24g_common_temp + 1 ,contw 
-2d48 1a227200 copy rega ,loopcnt 
-2d49 1a420c00 copy regb ,contr 
-2d4a 20407f01 call memcpy 
-2d4b da20119e arg mem_24g_common_temp ,rega 
-
-g24_put_data_in_buff:
-2d4c c6938000 rtnmark0 mark_24g_conext 
-2d4d 1a608a86 add regc ,offset_24g_datalen ,contw 
-2d4e e0a88000 istoret 1 ,contw 
-2d4f 18427200 copy temp ,loopcnt 
-2d50 1a608a22 add regc ,offset_24g_txbuf ,contw 
-2d51 1a220c00 copy rega ,contr 
-2d52 20207f01 branch memcpy 
-
-g24_transmit_prep:
-2d53 1a60a286 add regc ,offset_24g_datalen ,rega 
-2d54 ea208000 ifetch 1 ,rega 
-2d55 1fe0fe02 increase 2 ,pdata 
-2d56 1a608a88 add regc ,offset_24g_txlen ,contw 
-2d57 e0a08000 istore 1 ,contw 
-2d58 2040323a call g24_fetch_mem_data_type 
-2d59 20403235 call g24_store_mem_txpayload 
-2d5a 1a60a286 add regc ,offset_24g_datalen ,rega 
-2d5b ea208000 ifetch 1 ,rega 
-2d5c 1fe9fe00 lshift3 pdata ,pdata 
-2d5d 1a60a285 add regc ,offset_24g_pid ,rega 
-2d5e ea288000 ifetcht 1 ,rega 
-2d5f 18410403 and temp ,0x03 ,temp 
-2d60 18438400 lshift temp ,temp 
-2d61 9841fe00 ior temp ,pdata 
-2d62 1a60a2c3 add regc ,offset_24g_no_ack ,rega 
-2d63 ea288000 ifetcht 1 ,rega 
-2d64 9840fe00 iadd temp ,pdata 
-2d65 e0a08000 istore 1 ,contw 
-2d66 1a60a286 add regc ,offset_24g_datalen ,rega 
-2d67 ea208000 ifetch 1 ,rega 
-2d68 98007200 iforce loopcnt 
-2d69 1a608c22 add regc ,offset_24g_txbuf ,contr 
-2d6a 20207f01 branch memcpy 
-
-g24_send_abort_packet:
-2d6b 2040324f call g24_set1_mem_abort_pac 
-2d6c 2040325a call g24_set0_mem_rf_hop_ch 
-2d6d 20402e6d call g24_power_ctrl_reinit 
-2d6e 20402cac call g24_transmit_rf_ctrl_clear 
-2d6f 6000919e store 1 ,mem_24g_common_temp 
-2d70 20402d77 call g24_put_data_in_buff_pre 
-2d71 2040323a call g24_fetch_mem_data_type 
-2d72 79207e03 set1 bit_abort ,pdata 
-2d73 2040323c call g24_store_mem_data_type 
-2d74 20402d53 call g24_transmit_prep 
-2d75 20402d33 call g24_txdata_enable_tx 
-2d76 20202d14 branch g24_transmit_start 
-
-g24_put_data_in_buff_pre:
-2d77 6000919f store 1 ,mem_24g_common_temp + 1 
-2d78 20403224 call g24_fetch_mem_device_addr 
-2d79 600211a0 store 4 ,mem_24g_common_temp + 2 
-2d7a d8400006 arg 6 ,temp 
-2d7b da20119e arg mem_24g_common_temp ,rega 
-2d7c 20202d4c branch g24_put_data_in_buff 
-
-g24_enter_lpm:
-2d7d 1a60a2b2 add regc ,offset_24g_abort_pac ,rega 
-2d7e ea208000 ifetch 1 ,rega 
-2d7f 203a2d6b branch g24_send_abort_packet ,blank 
-
-g24_enter_lpm_prepare:
-2d80 1a60a2da add regc ,offset_24g_cb_lpm_prepare ,rega 
-2d81 ea210000 ifetch 2 ,rega 
-2d82 20207f9c branch callback_func 
-
-g24_lpm_long_sleep:
-2d83 20402c7a call g24_head_ptr2regc 
-2d84 20402afa call lpo_calibration 
-2d85 6801c16f fetch 3 ,mem_clks_per_lpo 
-2d86 207a0000 rtn blank 
-2d87 1a6084dc add regc ,offset_24g_cb_lpm_before ,temp 
-2d88 e8410000 ifetch 2 ,temp 
-2d89 20407f9c call callback_func 
-2d8a 1a6084b6 add regc ,offset_24g_enter_hibernate ,temp 
-2d8b e8440000 ifetch 8 ,temp 
-2d8c 20407f49 call clk2lpo 
-2d8d 600a415b storet 4 ,mem_sleep_counter 
-2d8e 20202b2a branch lpm_sleep 
-
-g24_transmit_packet:
-2d8f 20402c7a call g24_head_ptr2regc 
-2d90 1a608a8f add regc ,offset_24g_retry ,contw 
-2d91 204032d6 call g24_mem_set0 
-
-g24_transmit_loop:
-2d92 20402da4 call g24_transmit_receive_ack 
-2d93 242c2dae nbranch g24_retransmit ,sync 
-2d94 2437adae nbranch g24_retransmit ,user3 
-2d95 20402dd6 call g24_ackpayload_parse 
-2d96 20402e75 call g24_power_ctrl_ack_incrs 
-
-g24_transmit_next_packet:
-2d97 20402c7a call g24_head_ptr2regc 
-2d98 1a60a285 add regc ,offset_24g_pid ,rega 
-2d99 ea208000 ifetch 1 ,rega 
-2d9a 1fe0fe01 increase 1 ,pdata 
-2d9b 20403232 call g24_store_mem_pid 
-2d9c 20403253 call g24_fetch_mem_pairing_sm 
-2d9d c0ffaed0 bne state_24g_pairing_success ,g24_paring_mode 
-2d9e 20402cdb call g24_transmit_succ_rf_config 
-
-g24_transmit_abandon:
-2d9f 58000000 setarg 0 
-2da0 1a608a8c add regc ,offset_24g_txfail_cnt ,contw 
-2da1 e0a10000 istore 2 ,contw 
-2da2 58000000 setarg ensure_off_24g 
-2da3 20202d34 branch g24_store_mem_ensure 
-
-g24_transmit_receive_ack:
-2da4 7857fc00 disable user3 
-2da5 20402df7 call g24_transmit 
-2da6 20402c7a call g24_head_ptr2regc 
-2da7 1a60a2c3 add regc ,offset_24g_no_ack ,rega 
-2da8 ea208000 ifetch 1 ,rega 
-2da9 c000adac beq no_ack_24g ,g24_transmit_no_ack 
-2daa 20402e11 call g24_receive_packet 
-2dab 20202e45 branch g24_end_of_packet 
-
-g24_transmit_no_ack:
-2dac 20402e45 call g24_end_of_packet 
-2dad 20202d97 branch g24_transmit_next_packet 
-
-g24_retransmit:
-2dae 44dac016 bpatch patch16_5 ,mem_patch16 
-2daf 1a60a28d add regc ,offset_24g_get_ack_fail ,rega 
-2db0 ea208000 ifetch 1 ,rega 
-2db1 1fe0fe01 increase 1 ,pdata 
-2db2 1a608a8d add regc ,offset_24g_get_ack_fail ,contw 
-2db3 e0a08000 istore 1 ,contw 
-2db4 20403253 call g24_fetch_mem_pairing_sm 
-2db5 c0ffadcc bne state_24g_pairing_success ,g24_tx_paring_retry 
-2db6 1a60a28f add regc ,offset_24g_retry ,rega 
-2db7 ea288000 ifetcht 1 ,rega 
-2db8 18408401 increase 1 ,temp 
-2db9 1a608a8f add regc ,offset_24g_retry ,contw 
-2dba e0a88000 istoret 1 ,contw 
-2dbb 1a60a2cc add regc ,offset_24g_max_retry ,rega 
-2dbc ea208000 ifetch 1 ,rega 
-2dbd 98467e00 isub temp ,pdata 
-2dbe 243a2d92 nbranch g24_transmit_loop ,blank 
-2dbf 44db4016 bpatch patch16_6 ,mem_patch16 
-2dc0 2040325d call g24_fetch_mem_rf_work_stage 
-2dc1 c001acbe beq 3 ,g24_transmit_pac_fail_hop_stage3 
-2dc2 1a60a2d1 add regc ,offset_24g_hop_pac_retry ,rega 
-2dc3 ea208000 ifetch 1 ,rega 
-2dc4 1fe0fe01 increase 1 ,pdata 
-2dc5 1a608ad1 add regc ,offset_24g_hop_pac_retry ,contw 
-2dc6 e0a08000 istore 1 ,contw 
-2dc7 c0012cb3 beq 2 ,g24_transmit_hop_pac_fail 
-2dc8 20402caf call g24_hop_ch_enable 
-2dc9 58000001 setarg 1 
-2dca 20403238 call g24_store_mem_max_retry 
-2dcb 20202d8f branch g24_transmit_packet 
-
-g24_tx_paring_retry:
-2dcc 1a60a28d add regc ,offset_24g_get_ack_fail ,rega 
-2dcd ea208000 ifetch 1 ,rega 
-2dce c1ff8000 rtnne 0xff 
-2dcf 1a608a8d add regc ,offset_24g_get_ack_fail ,contw 
-2dd0 204032d6 call g24_mem_set0 
-2dd1 20202dd4 branch g24_stop_24g_mode 
-
-g24_tx_attempt_fail:
-2dd2 1a608a8c add regc ,offset_24g_txfail_cnt ,contw 
-2dd3 204032d6 call g24_mem_set0 
-
-g24_stop_24g_mode:
-2dd4 700a993a jam bt_evt_24g_attempt_fail ,mem_fifo_temp 
-2dd5 20207d86 branch ui_ipc_send_event 
-
-g24_ackpayload_parse:
-2dd6 20402dde call g24_read_len_pid_crc 
-2dd7 1a60a284 add regc ,offset_24g_rxdata_length ,rega 
-2dd8 ea208000 ifetch 1 ,rega 
-2dd9 207a0000 rtn blank 
-2dda 98007200 iforce loopcnt 
-2ddb 1a608c02 add regc ,offset_24g_rxbuf_add2 ,contr 
-2ddc 1a608a64 add regc ,offset_24g_rxpayload ,contw 
-2ddd 20207f01 branch memcpy 
-
-g24_read_len_pid_crc:
-2dde 2040325f call g24_fetch_mem_rxbuf_add1 
-2ddf 1fe97e00 rshift3 pdata ,pdata 
-2de0 1a608a84 add regc ,offset_24g_rxdata_length ,contw 
-2de1 e0a08000 istore 1 ,contw 
-2de2 1fe0fe01 increase 1 ,pdata 
-2de3 1a608c01 add regc ,offset_24g_rxbuf_add1 ,contr 
-2de4 98c08c00 iadd contr ,contr 
-2de5 e8c18000 ifetch 3 ,contr 
-2de6 1a608ac4 add regc ,offset_24g_sta_crc ,contw 
-2de7 e0a18000 istore 3 ,contw 
-2de8 2040325f call g24_fetch_mem_rxbuf_add1 
-2de9 1fe37e00 rshift pdata ,pdata 
-2dea 1fe17e03 and pdata ,0x03 ,pdata 
-2deb 1a608aca add regc ,offset_24g_sta_pid ,contw 
-2dec e0a08000 istore 1 ,contw 
-2ded 20600000 rtn 
-
-g24_prep:
-2dee 7844fc00 disable enable_crc 
-2def 7843fc00 disable enable_white 
-2df0 58555555 setarg 0x555555 
-2df1 98001e00 iforce crc24_init 
-2df2 20600000 rtn 
-
-g24_set_freq_tx:
-2df3 20402918 call set_sync_on 
-2df4 1a60a290 add regc ,offset_24g_ch ,rega 
-2df5 ea288000 ifetcht 1 ,rega 
-2df6 20202933 branch set_freq_tx 
-
-g24_transmit:
-2df7 20402dee call g24_prep 
-2df8 20402df3 call g24_set_freq_tx 
-2df9 79202a00 set1 txgfsk ,radio_ctrl 
-2dfa 782efc00 enable encode_fec0 
-2dfb 78307c00 enable is_tx 
-2dfc 7850fc00 disable is_rx 
-2dfd 204053c4 call le_enable 
-2dfe 2040322a call g24_fetch_mem_addr 
-2dff 98001200 iforce access 
-2e00 08008620 inject mod ,32 
-2e01 7824fc00 enable enable_crc 
-2e02 1a60a288 add regc ,offset_24g_txlen ,rega 
-2e03 ea208000 ifetch 1 ,rega 
-2e04 98007200 iforce loopcnt 
-2e05 1a608c42 add regc ,offset_24g_txpayload ,contr 
-
-g24tr_loop:
-2e06 e8c08000 ifetch 1 ,contr 
-2e07 08008608 inject mod ,8 
-2e08 c2002e06 loop g24tr_loop 
-2e09 78247c00 enable enable_parity 
-2e0a 08008618 inject mod ,24 
-2e0b 78447c00 disable enable_parity 
-2e0c 37d38200 until null ,tx_clear 
-2e0d 44dbc016 bpatch patch16_7 ,mem_patch16 
-2e0e 20000064 nop 100 
-2e0f 784efc00 disable encode_fec0 
-2e10 20600000 rtn 
-
-g24_receive_packet:
-2e11 7857fc00 disable user3 
-2e12 18002a00 force 0 ,radio_ctrl 
-2e13 1a60a290 add regc ,offset_24g_ch ,rega 
-2e14 ea288000 ifetcht 1 ,rega 
-2e15 2040291f call set_freq_rx 
-2e16 20402924 call rf_rx_enable 
-
-g24_receive_rxon:
-2e17 20402dee call g24_prep 
-2e18 7826fc00 enable decode_fec0 
-2e19 7830fc00 enable is_rx 
-2e1a 78507c00 disable is_tx 
-2e1b 204053c4 call le_enable 
-2e1c 2040322a call g24_fetch_mem_addr 
-2e1d 98001200 iforce access 
-2e1e 78287c00 enable swfine 
-2e1f 1a60a289 add regc ,offset_24g_rx_window ,rega 
-2e20 ea210000 ifetch 2 ,rega 
-2e21 98003600 iforce stop_watch 
-2e22 37c18400 correlate null ,timeout 
-2e23 242c2e4d nbranch g24_sync_timeout ,sync 
-2e24 7824fc00 enable enable_crc 
-2e25 09800008 parse demod ,bucket ,8 
-2e26 19897e00 rshift3 pwindow ,pdata 
-2e27 1a608a00 add regc ,offset_24g_rxbuf ,contw 
-2e28 e0a08000 istore 1 ,contw 
-2e29 1a60a2cd add regc ,offset_24g_mode ,rega 
-2e2a ea208000 ifetch 1 ,rega 
-2e2b c0012e33 beq rx_24g ,g24_receive_skip 
-2e2c 44dc4017 bpatch patch17_0 ,mem_patch17 
-2e2d 1a60a200 add regc ,offset_24g_rxbuf ,rega 
-2e2e ea208000 ifetch 1 ,rega 
-2e2f 1a60a287 add regc ,offset_24g_data_type ,rega 
-2e30 ea288000 ifetcht 1 ,rega 
-2e31 a8400e00 icompare bits_data ,temp 
-2e32 2420ae45 nbranch g24_end_of_packet ,true 
-
-g24_receive_skip:
-2e33 09800008 parse demod ,bucket ,8 
-2e34 19897e00 rshift3 pwindow ,pdata 
-2e35 e0a08000 istore 1 ,contw 
-2e36 1fe97e00 rshift3 pdata ,pdata 
-2e37 1fe1721f and pdata ,0x1f ,loopcnt 
-2e38 2022ae3d branch g24rx_nopayload ,zero 
-
-g24rx_loop:
-2e39 09800008 parse demod ,bucket ,8 
-2e3a 19897e00 rshift3 pwindow ,pdata 
-2e3b e0a08000 istore 1 ,contw 
-2e3c c2002e39 loop g24rx_loop 
-
-g24rx_nopayload:
-2e3d 09800018 parse demod ,bucket ,24 
-2e3e 1fef7e00 rshift32 pdata ,pdata 
-2e3f 1ff17e00 rshift16 pdata ,pdata 
-2e40 e0a18000 istore 3 ,contw 
-2e41 20232e45 branch g24_end_of_packet ,crc_failed 
-2e42 7837fc00 enable user3 
-2e43 7846fc00 disable decode_fec0 
-2e44 20600000 rtn 
-
-g24_end_of_packet:
-2e45 784efc00 disable encode_fec0 
-2e46 7846fc00 disable decode_fec0 
-2e47 7844fc00 disable enable_crc 
-2e48 7843fc00 disable enable_white 
-2e49 2030a8f9 branch shutdown_radio ,is_rx 
-2e4a 37d38200 until null ,tx_clear 
-2e4b 20000064 nop 100 
-2e4c 202028f9 branch shutdown_radio 
-
-g24_sync_timeout:
-2e4d 20402e4f call rssi_noise 
-2e4e 20202e45 branch g24_end_of_packet 
-
-rssi_noise:
-2e4f 204029bb call save_rssi 
-2e50 207a0000 rtn blank 
-2e51 1a60a2ea add regc ,offset_rssi_noise_index ,rega 
-2e52 ea288000 ifetcht 1 ,rega 
-2e53 da200d9e arg mem_rssi_noise_buffer ,rega 
-2e54 20402e58 call rssi_noise_store 
-2e55 1a608aea add regc ,offset_rssi_noise_index ,contw 
-
-g24_contw_istoret_1byte:
-2e56 e0a88000 istoret 1 ,contw 
-2e57 20600000 rtn 
-
-rssi_noise_store:
-2e58 da4000ff arg rssi_buf_len_noise ,regb 
-2e59 20202e5a branch rssi_store 
-
-rssi_store:
-2e5a 1a227e00 copy rega ,pdata 
-2e5b 98408a00 iadd temp ,contw 
-2e5c 68008018 fetch 1 ,mem_rssi 
-2e5d e0a08000 istore 1 ,contw 
-2e5e 18408401 increase 1 ,temp 
-2e5f 1a427e00 copy regb ,pdata 
-2e60 98410400 iand_into temp 
-2e61 20600000 rtn 
-
-rssi_average:
-2e62 d8400000 arg 0 ,temp 
-2e63 1a220c00 copy rega ,contr 
-
-rssi_average_loop:
-2e64 e8c08000 ifetch 1 ,contr 
-2e65 98408400 iadd temp ,temp 
-2e66 c2002e64 loop rssi_average_loop 
-2e67 184c8400 rshift8 temp ,temp 
-2e68 20600000 rtn 
-
-g24_power_ctrl_init:
-2e69 20402c7a call g24_head_ptr2regc 
-2e6a 20402e9f call g24_power_ctrl_incrs_level1 
-2e6b 58000001 setarg 1 
-2e6c 20403272 call g24_store_mem_power_ctrl_level 
-
-g24_power_ctrl_reinit:
-2e6d 58000000 setarg 0 
-2e6e 20402e73 call g24_store_mem_power_ctrl_pac 
-2e6f e0a08000 istore 1 ,contw 
-2e70 20600000 rtn 
-
-g24_power_ctrl_pac_incrs:
-2e71 20403270 call g24_fetch_mem_power_ctrl_pac 
-2e72 1fe0fe01 increase 1 ,pdata 
-
-g24_store_mem_power_ctrl_pac:
-2e73 1a608afc add regc ,offset_power_ctrl_packet_cnt ,contw 
-2e74 202032b4 branch g24_contw_istore_1byte 
-
-g24_power_ctrl_ack_incrs:
-2e75 1a60a2fd add regc ,offset_power_ctrl_ack_cnt ,rega 
-2e76 ea208000 ifetch 1 ,rega 
-2e77 1fe0fe01 increase 1 ,pdata 
-2e78 1a608afd add regc ,offset_power_ctrl_ack_cnt ,contw 
-2e79 202032b4 branch g24_contw_istore_1byte 
-
-g24_power_ctrl:
-2e7a 44dcc017 bpatch patch17_1 ,mem_patch17 
-2e7b 20403270 call g24_fetch_mem_power_ctrl_pac 
-2e7c 1fe67c7c sub pdata ,power_ctrl_max_packet_cnt ,null 
-2e7d 20610000 rtn positive 
-2e7e 1a60a2fd add regc ,offset_power_ctrl_ack_cnt ,rega 
-2e7f ea288000 ifetcht 1 ,rega 
-2e80 98460400 isub temp ,temp 
-2e81 20402e6d call g24_power_ctrl_reinit 
-2e82 58000102 setarg offset_power_ctrl_threshold_up 
-2e83 9a60a200 iadd regc ,rega 
-2e84 ea208000 ifetch 1 ,rega 
-2e85 98467c00 isub temp ,null 
-2e86 24212e8d nbranch g24_power_ctrl_incrs ,positive 
-2e87 58000103 setarg offset_power_ctrl_threshold_down 
-2e88 9a60a200 iadd regc ,rega 
-2e89 ea208000 ifetch 1 ,rega 
-2e8a 98467c00 isub temp ,null 
-2e8b 20212e99 branch g24_power_ctrl_decrs ,positive 
-2e8c 20600000 rtn 
-
-g24_power_ctrl_incrs:
-2e8d 1a60a2fe add regc ,offset_power_ctrl_level ,rega 
-2e8e ea208000 ifetch 1 ,rega 
-2e8f c0012e93 beq 2 ,g24_power_ctrl_incrs_level2 
-2e90 1fe0fe01 increase 1 ,pdata 
-2e91 20403272 call g24_store_mem_power_ctrl_level 
-2e92 c000ae9f beq 1 ,g24_power_ctrl_incrs_level1 
-
-g24_power_ctrl_incrs_level2:
-2e93 5800000a setarg power_ctrl_losspac_thresh_up2 
-2e94 204032b0 call g24_store_mem_power_ctrl_threshold_up 
-2e95 58000000 setarg power_ctrl_losspac_thresh_down2 
-2e96 204032b2 call g24_store_mem_power_ctrl_threshold_down 
-2e97 1a60a2ff add regc ,offset_power_ctrl_txpwr_level2 ,rega 
-2e98 20202ea5 branch g24_ifetch_rega_store_mem_txpower 
-
-g24_power_ctrl_decrs:
-2e99 1a60a2fe add regc ,offset_power_ctrl_level ,rega 
-2e9a ea208000 ifetch 1 ,rega 
-2e9b c0002ea7 beq 0 ,g24_power_ctrl_decrs_level0 
-2e9c 1fe0ffff increase -1 ,pdata 
-2e9d 20403272 call g24_store_mem_power_ctrl_level 
-2e9e c0002ea7 beq 0 ,g24_power_ctrl_decrs_level0 
-
-g24_power_ctrl_decrs_level1:
-
-g24_power_ctrl_incrs_level1:
-2e9f 58000005 setarg power_ctrl_losspac_thresh_up1 
-2ea0 204032b0 call g24_store_mem_power_ctrl_threshold_up 
-2ea1 58000000 setarg power_ctrl_losspac_thresh_down1 
-2ea2 204032b2 call g24_store_mem_power_ctrl_threshold_down 
-2ea3 58000100 setarg offset_power_ctrl_txpwr_level1 
-
-g24_iadd_offset_mem_txpower:
-2ea4 9a60a200 iadd regc ,rega 
-
-g24_ifetch_rega_store_mem_txpower:
-2ea5 ea208000 ifetch 1 ,rega 
-2ea6 2020326a branch g24_store_mem_txpower 
-
-g24_power_ctrl_decrs_level0:
-2ea7 58000002 setarg power_ctrl_losspac_thresh_up0 
-2ea8 204032b0 call g24_store_mem_power_ctrl_threshold_up 
-2ea9 58000000 setarg power_ctrl_losspac_thresh_down0 
-2eaa 204032b2 call g24_store_mem_power_ctrl_threshold_down 
-2eab 58000101 setarg offset_power_ctrl_txpwr_level0 
-2eac 20202ea4 branch g24_iadd_offset_mem_txpower 
-
-g24_start_pairing_sm1:
-2ead 79200026 set1 mark_24g ,mark 
-2eae 20402c83 call g24_pair_init 
-
-g24_set_pairing_sm_1:
-2eaf 58000001 setarg state_24g_pairing_1 
-2eb0 20203256 branch g24_store_mem_pairing_sm 
-
-g24_pairing_sm:
-2eb1 1a60a28b add regc ,offset_24g_ensure ,rega 
-2eb2 ea208000 ifetch 1 ,rega 
-2eb3 c000ffe7 beq ensure_on_24g ,enable_user 
-2eb4 20403253 call g24_fetch_mem_pairing_sm 
-2eb5 c000aeb9 beq state_24g_pairing_1 ,g24_pairing_sm_1 
-2eb6 c0012ebd beq state_24g_pairing_2 ,g24_pairing_sm_2 
-2eb7 c001aec1 beq state_24g_pairing_3 ,g24_pairing_sm_3 
-2eb8 20202a8c branch assert 
-
-g24_pairing_sm_1:
-2eb9 58000011 setarg state_24g_pairing_1_waiting_ack 
-2eba 20403256 call g24_store_mem_pairing_sm 
-2ebb 70119eaa jam 0xaa ,mem_24g_common_temp 
-2ebc 20202ec4 branch g24_pairing_sm_common 
-
-g24_pairing_sm_2:
-2ebd 58000012 setarg state_24g_pairing_2_waiting_ack 
-2ebe 20403256 call g24_store_mem_pairing_sm 
-2ebf 70119e55 jam 0x55 ,mem_24g_common_temp 
-2ec0 20202ec4 branch g24_pairing_sm_common 
-
-g24_pairing_sm_3:
-2ec1 58000013 setarg state_24g_pairing_3_waiting_ack 
-2ec2 20403256 call g24_store_mem_pairing_sm 
-2ec3 70119e22 jam 0x22 ,mem_24g_common_temp 
-
-g24_pairing_sm_common:
-2ec4 2040323a call g24_fetch_mem_data_type 
-2ec5 1fe17e07 and_into bits_data ,pdata 
-2ec6 6000919f store 1 ,mem_24g_common_temp + 1 
-2ec7 20403224 call g24_fetch_mem_device_addr 
-2ec8 600211a0 store 4 ,mem_24g_common_temp + 2 
-
-g24_put_pairing_data_in_buff:
-2ec9 7011a400 jam 0 ,mem_24g_common_temp + 6 
-2eca da20119e arg mem_24g_common_temp ,rega 
-2ecb d8400007 arg 7 ,temp 
-2ecc 20402d4c call g24_put_data_in_buff 
-2ecd 20402d53 call g24_transmit_prep 
-2ece 20402d33 call g24_txdata_enable_tx 
-2ecf 20207fe7 branch enable_user 
-
-g24_paring_mode:
-2ed0 20403253 call g24_fetch_mem_pairing_sm 
-2ed1 c17f8000 rtneq state_24g_pairing_success 
-2ed2 c008aed6 beq state_24g_pairing_1_waiting_ack ,g24_pairing_sm_1_waiting_ack 
-2ed3 c0092ed9 beq state_24g_pairing_2_waiting_ack ,g24_pairing_sm_2_waiting_ack 
-2ed4 c009aedc beq state_24g_pairing_3_waiting_ack ,g24_pairing_sm_3_waiting_ack 
-2ed5 20600000 rtn 
-
-g24_pairing_sm_1_waiting_ack:
-2ed6 58000002 setarg state_24g_pairing_2 
-2ed7 20403256 call g24_store_mem_pairing_sm 
-2ed8 20202d9f branch g24_transmit_abandon 
-
-g24_pairing_sm_2_waiting_ack:
-2ed9 58000003 setarg state_24g_pairing_3 
-2eda 20403256 call g24_store_mem_pairing_sm 
-2edb 20202d9f branch g24_transmit_abandon 
-
-g24_pairing_sm_3_waiting_ack:
-2edc 580000ff setarg state_24g_pairing_success 
-2edd 20403256 call g24_store_mem_pairing_sm 
-2ede 700a9939 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
-2edf 20407d86 call ui_ipc_send_event 
-2ee0 1a60a266 add regc ,offset_24g_rxpayload_add2 ,rega 
-2ee1 ea220000 ifetch 4 ,rega 
-2ee2 2040322c call g24_store_mem_addr 
-2ee3 20202d9f branch g24_transmit_abandon 
-
-g24_auto_pair_start:
-2ee4 793f8026 set0 mark_24g ,mark 
-2ee5 20402f08 call g24_auto_pair_set_device_info 
-2ee6 20402f22 call g24_tx_attemp_data_prep 
-
-g24_auto_pair_restart:
-2ee7 20403263 call g24_set0_mem_check_dongle_times 
-
-g24_auto_pair_start_loop:
-2ee8 200007d0 nop 2000 
-2ee9 20403261 call g24_fetch_mem_check_dongle_times 
-2eea c07fadd4 beq 0xff ,g24_stop_24g_mode 
-2eeb 20402da4 call g24_transmit_receive_ack 
-2eec 242c2efa nbranch g24_auto_pair_retry ,sync 
-2eed 2437aefa nbranch g24_auto_pair_retry ,user3 
-2eee 20402dd6 call g24_ackpayload_parse 
-2eef 20402c7a call g24_head_ptr2regc 
-2ef0 1a60a292 add regc ,offset_24g_paring_addr ,rega 
-2ef1 ea2a0000 ifetcht 4 ,rega 
-2ef2 204030be call g24_fetch_mem_addr_isub_temp 
-2ef3 2022aead branch g24_start_pairing_sm1 ,zero 
-2ef4 20402c7a call g24_head_ptr2regc 
-2ef5 1a60a266 add regc ,offset_24g_rxpayload_add2 ,rega 
-2ef6 ea220000 ifetch 4 ,rega 
-2ef7 c0002ee7 beq 0 ,g24_auto_pair_restart 
-2ef8 2040322c call g24_store_mem_addr 
-2ef9 20202f1c branch g24_tx_attemp_dongle_succ 
-
-g24_auto_pair_retry:
-2efa 20403261 call g24_fetch_mem_check_dongle_times 
-2efb 1fe0fe01 increase 1 ,pdata 
-2efc 20403264 call g24_store_mem_check_dongle_times 
-2efd 20402f04 call g24_fetch_mem_auto_paring_switch 
-2efe 1fe0fe01 increase 1 ,pdata 
-2eff 1fe17e01 and_into 1 ,pdata 
-2f00 20402f06 call g24_store_mem_auto_paring_switch 
-2f01 c0002f0c beq 0 ,g24_auto_pair_device_attemp 
-2f02 c000af0e beq 1 ,g24_auto_pair_pair_attemp 
-2f03 20600000 rtn 
-
-g24_fetch_mem_auto_paring_switch:
-2f04 5800018b setarg offset_24g_auto_pair_switch 
-2f05 202032d0 branch g24_set_rega_ifetch_1byte 
-
-g24_store_mem_auto_paring_switch:
-2f06 da20018b arg offset_24g_auto_pair_switch ,rega 
-2f07 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_auto_pair_set_device_info:
-2f08 20403267 call g24_store_mem_tx_power 
-2f09 20403224 call g24_fetch_mem_device_addr 
-2f0a 2040322c call g24_store_mem_addr 
-2f0b 20202c8a branch g24_ch 
-
-g24_auto_pair_device_attemp:
-2f0c 20402f08 call g24_auto_pair_set_device_info 
-2f0d 20202ee8 branch g24_auto_pair_start_loop 
-
-g24_auto_pair_pair_attemp:
-2f0e 20402c83 call g24_pair_init 
-2f0f 20202ee8 branch g24_auto_pair_start_loop 
-
-g24_start_24g_mode:
-2f10 793f8026 set0 mark_24g ,mark 
-2f11 20402c8a call g24_ch 
-2f12 20403253 call g24_fetch_mem_pairing_sm 
-2f13 c1ff8000 rtnne state_24g_pairing_success 
-2f14 20402f22 call g24_tx_attemp_data_prep 
-2f15 20403263 call g24_set0_mem_check_dongle_times 
-
-g24_tx_attemp_dongle_loop:
-2f16 200007d0 nop 2000 
-2f17 20403261 call g24_fetch_mem_check_dongle_times 
-2f18 c07fadd4 beq 0xff ,g24_stop_24g_mode 
-2f19 20402da4 call g24_transmit_receive_ack 
-2f1a 242c2f27 nbranch g24_attemp_txdata_retry ,sync 
-2f1b 2437af27 nbranch g24_attemp_txdata_retry ,user3 
-
-g24_tx_attemp_dongle_succ:
-2f1c 79200026 set1 mark_24g ,mark 
-2f1d 20403263 call g24_set0_mem_check_dongle_times 
-2f1e 580000ff setarg state_24g_pairing_success 
-2f1f 20403256 call g24_store_mem_pairing_sm 
-
-g24_app_tx_attempt_success:
-2f20 700a993c jam bt_evt_24g_attempt_success ,mem_fifo_temp 
-2f21 20207d86 branch ui_ipc_send_event 
-
-g24_tx_attemp_data_prep:
-2f22 79200027 set1 mark_24g_conext ,mark 
-2f23 70119eff jam 0xff ,mem_24g_common_temp 
-2f24 2040323a call g24_fetch_mem_data_type 
-2f25 20402d77 call g24_put_data_in_buff_pre 
-2f26 20202d53 branch g24_transmit_prep 
-
-g24_attemp_txdata_retry:
-2f27 20403261 call g24_fetch_mem_check_dongle_times 
-2f28 1fe0fe01 increase 1 ,pdata 
-2f29 20403264 call g24_store_mem_check_dongle_times 
-2f2a 20402c8a call g24_ch 
-2f2b 20202f16 branch g24_tx_attemp_dongle_loop 
-
-g24_check_51cmd_start_24g:
-2f2c 20403267 call g24_store_mem_tx_power 
-2f2d 580000ff setarg state_24g_pairing_success 
-2f2e 20403256 call g24_store_mem_pairing_sm 
-2f2f 20202f10 branch g24_start_24g_mode 
-
-dongle_init:
-2f30 44dd4017 bpatch patch17_2 ,mem_patch17 
-2f31 20402c7a call g24_head_ptr2regc 
-2f32 580031b0 setarg dongle_rxdata_type1 
-2f33 1a608ade add regc ,offset_24g_cb_rxdata_type1 ,contw 
-2f34 e0a10000 istore 2 ,contw 
-2f35 20402f3d call g24_receive_init 
-2f36 204048ea call usb_init 
-2f37 204032b6 call g24_fetch_mem_pair_mode 
-2f38 44ddc017 bpatch patch17_3 ,mem_patch17 
-2f39 c0003055 beq 0x00 ,dongle_auto_bind 
-2f3a c000af45 beq 0x01 ,dongle_pc_bind 
-2f3b c007af41 beq 0x0f ,dongle_all_powerful 
-2f3c 20202a8c branch assert 
-
-g24_receive_init:
-2f3d 2040326c call g24_store_mem_tx_power_temp 
-2f3e df200080 arg 0x80 ,loopcnt 
-2f3f d8a00d9e arg mem_rssi_noise_buffer ,contw 
-2f40 20207ec6 branch memset0 
-
-dongle_all_powerful:
-2f41 20402f4c call dongle_check_mode 
-
-dongle_all_powerful_loop:
-2f42 20402f4f call g24_dongle_work_mode 
-2f43 204048d3 call usb_isr 
-2f44 20202f42 branch dongle_all_powerful_loop 
-
-dongle_pc_bind:
-2f45 44de4017 bpatch patch17_4 ,mem_patch17 
-2f46 20402f4c call dongle_check_mode 
-
-dongle_pc_bind_loop:
-2f47 20402f4f call g24_dongle_work_mode 
-2f48 20402fbd call g24_dongle_bind_mode 
-2f49 204048d3 call usb_isr 
-2f4a 20403019 call dongle_usb_dispatch 
-2f4b 20202f47 branch dongle_pc_bind_loop 
-
-dongle_check_mode:
-2f4c 20403291 call g24_set_work_mem_dongle_work_mode 
-2f4d 20403296 call g24_set0_mem_dongle_mode_init 
-2f4e 20203299 branch g24_set0_mem_ackpayload_enable 
-
-g24_dongle_work_mode:
-2f4f 2040328f call g24_fetch_mem_dongle_work_mode 
-2f50 c1800000 rtnne dongle_work 
-
-g24_dongle_work_mode_start:
-2f51 20402f55 call g24_dongle_work_init 
-2f52 20402f65 call g24_ch_process 
-2f53 2040316b call g24_receive_packet_start 
-2f54 20202f96 branch g24_blank_data_process 
-
-g24_dongle_work_init:
-2f55 20403294 call g24_fetch_mem_dongle_mode_init 
-2f56 c3800000 rtnbit1 dongle_work 
-2f57 79207e00 set1 dongle_work ,pdata 
-2f58 20403297 call g24_store_mem_dongle_mode_init 
-2f59 20403267 call g24_store_mem_tx_power 
-2f5a 20403299 call g24_set0_mem_ackpayload_enable 
-2f5b 700d3800 jam 0 ,mem_usb_tx_enable 
-2f5c 2040324f call g24_set1_mem_abort_pac 
-2f5d 20402f61 call g24_dongle_init 
-
-g24_rx_interrupt_clear:
-2f5e 1a608a00 add regc ,offset_24g_rxbuf ,contw 
-2f5f df200042 arg 66 ,loopcnt 
-2f60 20207ed4 branch clear_mem 
-
-g24_dongle_init:
-2f61 20403231 call g24_set0_mem_pid 
-2f62 2040327d call g24_fetch_mem_rx_addr 
-2f63 2040322c call g24_store_mem_addr 
-2f64 20202c8a branch g24_ch 
-
-g24_ch_process:
-2f65 44dec017 bpatch patch17_5 ,mem_patch17 
-2f66 2040324c call g24_fetch_mem_abort_pac 
-2f67 c000af8d beq 1 ,g24_noise_rssi 
-2f68 20403245 call g24_fetch_mem_hop_pac 
-2f69 c000ac8a beq 1 ,g24_ch 
-2f6a 58000136 setarg offset_24g_hop_btclk 
-2f6b 9a60a200 iadd regc ,rega 
-2f6c ea2a0000 ifetcht 4 ,rega 
-2f6d 1c427e00 copy clkn_bt ,pdata 
-2f6e 98467c00 isub temp ,null 
-2f6f 24412d18 ncall g24_timer_timeout ,positive 
-2f70 1fe22400 copy pdata ,regb 
-2f71 58000136 setarg offset_24g_hop_btclk 
-2f72 9a60a200 iadd regc ,rega 
-2f73 ea220000 ifetch 4 ,rega 
-2f74 1fe20400 copy pdata ,temp 
-2f75 5800013a setarg offset_24g_hop_interval 
-2f76 9a60a200 iadd regc ,rega 
-2f77 18427e00 copy temp ,pdata 
-2f78 ea288000 ifetcht 1 ,rega 
-2f79 98408400 iadd temp ,temp 
-2f7a 1a427e00 copy regb ,pdata 
-2f7b 98467c00 isub temp ,null 
-2f7c 24610000 nrtn positive 
-2f7d 793ffe1c set0 28 ,pdata 
-2f7e 58000136 setarg offset_24g_hop_btclk 
-2f7f 9a608a00 iadd regc ,contw 
-2f80 e0a20000 istore 4 ,contw 
-
-g24_ch_update:
-2f81 20402c8a call g24_ch 
-2f82 20403278 call g24_fetch_mem_rf_laststa 
-2f83 1fe0fe01 increase 1 ,pdata 
-2f84 2040327b call g24_store_mem_rf_laststa 
-2f85 c1810000 rtnne 2 
-2f86 2040327a call g24_set0_mem_rf_laststa 
-2f87 2020324f branch g24_set1_mem_abort_pac 
-
-g24_ch_timer_reinit:
-2f88 1c427e00 copy clkn_bt ,pdata 
-2f89 da200136 arg offset_24g_hop_btclk ,rega 
-2f8a 204032bf call g24_set_contw_with_temp 
-2f8b e0a20000 istore 4 ,contw 
-2f8c 2020327a branch g24_set0_mem_rf_laststa 
-
-g24_noise_rssi:
-2f8d da200d9e arg mem_rssi_noise_buffer ,rega 
-2f8e 20402f94 call g24_noise_rssi_average 
-2f8f 1a608aeb add regc ,offset_rssi_noise_avg ,contw 
-2f90 e0a88000 istoret 1 ,contw 
-2f91 18467c50 sub temp ,rssi_thresh_noise ,null 
-2f92 24610000 nrtn positive 
-2f93 20202c8a branch g24_ch 
-
-g24_noise_rssi_average:
-2f94 df200100 arg rssi_buf_len_noise + 1 ,loopcnt 
-2f95 20202e62 branch rssi_average 
-
-g24_blank_data_process:
-2f96 20402f99 call g24_ms_blank_data 
-2f97 20402fa5 call g24_kb_blank_data 
-2f98 20202fb1 branch g24_kb_mul_blank_data 
-
-g24_ms_blank_data:
-2f99 58000180 setarg offset_24g_ms_blank_data_enable 
-2f9a 204032d0 call g24_set_rega_ifetch_1byte 
-2f9b 207a0000 rtn blank 
-2f9c d8e0000b arg timer_ms_blank ,queue 
-2f9d 20407f16 call timer_check 
-2f9e 247a0000 nrtn blank 
-2f9f 204032a7 call g24_set0_mem_ms_blank_data_enable 
-
-g24_ms_blank_data_2usb:
-2fa0 58000001 setarg ms_report_id 
-2fa1 60008d54 store 1 ,mem_usb_mouse_data 
-2fa2 58000000 setarg 0 
-2fa3 e0a38000 istore 7 ,contw 
-2fa4 202031b8 branch g24_data_type1_usbtx_enable 
-
-g24_kb_blank_data:
-2fa5 5800017e setarg offset_24g_kb_blank_data_enable 
-2fa6 204032d0 call g24_set_rega_ifetch_1byte 
-2fa7 207a0000 rtn blank 
-2fa8 d8e0000e arg timer_kb_blank ,queue 
-2fa9 20407f16 call timer_check 
-2faa 247a0000 nrtn blank 
-2fab 204032aa call g24_set0_mem_kb_blank_data_enable 
-
-g24_kb_blank_data_2usb:
-2fac d8a00d64 arg mem_usb_kb_data ,contw 
-2fad df200002 arg 2 ,loopcnt 
-2fae 20407ec6 call memset0 
-2faf 700d6400 jam kb_normal_report_id ,mem_usb_kb_data 
-2fb0 202031ed branch g24_kb_data_into_ep1_fifo 
-
-g24_kb_mul_blank_data:
-2fb1 5800017f setarg offset_24g_kb_mul_blank_data_enable 
-2fb2 204032d0 call g24_set_rega_ifetch_1byte 
-2fb3 207a0000 rtn blank 
-2fb4 d8e0000c arg timer_kb_mul_blank ,queue 
-2fb5 20407f16 call timer_check 
-2fb6 247a0000 nrtn blank 
-2fb7 204032ad call g24_set0_mem_kb_mul_blank_data_enable 
-
-g24_kb_mul_blank_data_2usb:
-2fb8 d8a00d74 arg mem_usb_kb_multikey ,contw 
-2fb9 df200002 arg 2 ,loopcnt 
-2fba 20407ec6 call memset0 
-2fbb 700d7403 jam kb_multikey_report_id ,mem_usb_kb_multikey 
-2fbc 20203207 branch g24_kb_mul_data_into_ep2_fifo 
-
-g24_dongle_bind_mode:
-2fbd 2040328f call g24_fetch_mem_dongle_work_mode 
-2fbe c1808000 rtnne dongle_bind 
-2fbf 20402fc1 call g24_dongle_bind_init 
-2fc0 20202fcb branch g24_dongle_bind_data_process 
-
-g24_dongle_bind_init:
-2fc1 20403294 call g24_fetch_mem_dongle_mode_init 
-2fc2 c3808000 rtnbit1 dongle_bind 
-2fc3 79207e01 set1 dongle_bind ,pdata 
-2fc4 20403297 call g24_store_mem_dongle_mode_init 
-2fc5 2040329c call g24_set1_mem_ackpayload_enable 
-2fc6 20402c83 call g24_pair_init 
-2fc7 58000000 setarg 0 
-2fc8 da200106 arg offset_dongle_ms_bind_step ,rega 
-2fc9 204032bf call g24_set_contw_with_temp 
-2fca 202032c5 branch g24_contw_istore_3byte 
-
-g24_dongle_bind_data_process:
-2fcb 2040316e call g24_receive_transmit_ack 
-2fcc 2437af5e nbranch g24_rx_interrupt_clear ,user3 
-2fcd 1a608c00 add regc ,offset_24g_rxbuf ,contr 
-2fce 58000109 setarg offset_24g_rxdata_temp 
-2fcf 9a608a00 iadd regc ,contw 
-2fd0 df200008 arg 8 ,loopcnt 
-2fd1 20407f01 call memcpy 
-2fd2 5800010b setarg offset_24g_rxdata_temp_add2 
-2fd3 204032d0 call g24_set_rega_ifetch_1byte 
-2fd4 c0552fd9 beq datatype_bind ,g24_dongle_bind_first_step 
-2fd5 c02aafed beq datatype_config ,g24_dongle_bind_second_step 
-2fd6 c0113001 beq datatype_ok ,g24_dongle_bind_third_step 
-2fd7 c07fb212 beq 0xff ,g24_data_attemp 
-2fd8 20202f5e branch g24_rx_interrupt_clear 
-
-g24_dongle_bind_first_step:
-2fd9 204032bd call g24_fetch_mem_rxdata_temp_add3_1byte 
-2fda c000afdd beq bind_mouse ,g24_dongle_bind_first_step_mouse 
-2fdb c0012fe8 beq bind_keyboard ,g24_dongle_bind_first_step_keyboard 
-2fdc 20600000 rtn 
-
-g24_dongle_bind_first_step_mouse:
-2fdd 58000001 setarg 1 
-2fde 20402ff7 call g24_store_mem_ms_bind_step 
-
-g24_dongle_bind_ms_payload_cfg:
-2fdf 58000001 setarg datatype_mouse 
-2fe0 20403289 call g24_store_mem_bind_payload 
-
-g24_dongle_bind_payload_cfg:
-2fe1 58000080 setarg 0x80 
-2fe2 da200130 arg offset_24g_bind_payload_add1 ,rega 
-2fe3 204032b3 call g24_set_contw_with_regb_store_1byte 
-2fe4 2040327d call g24_fetch_mem_rx_addr 
-2fe5 da200131 arg offset_24g_bind_payload_add2 ,rega 
-2fe6 204032bf call g24_set_contw_with_temp 
-2fe7 2020322d branch g24_contw_istore_4byte 
-
-g24_dongle_bind_first_step_keyboard:
-2fe8 58000001 setarg 1 
-2fe9 20402fff call g24_store_mem_kb_bind_step 
-
-g24_dongle_bind_kb_payload_cfg:
-2fea 58000002 setarg datatype_keyboard 
-2feb 20403289 call g24_store_mem_bind_payload 
-2fec 20202fe1 branch g24_dongle_bind_payload_cfg 
-
-g24_dongle_bind_second_step:
-2fed 204032bd call g24_fetch_mem_rxdata_temp_add3_1byte 
-2fee c000aff1 beq bind_mouse ,g24_dongle_bind_second_step_mouse 
-2fef c0012ff9 beq bind_keyboard ,g24_dongle_bind_second_step_keyboard 
-2ff0 20600000 rtn 
-
-g24_dongle_bind_second_step_mouse:
-2ff1 20402fdf call g24_dongle_bind_ms_payload_cfg 
-2ff2 58000106 setarg offset_dongle_ms_bind_step 
-2ff3 204032d0 call g24_set_rega_ifetch_1byte 
-2ff4 c000aff6 beq 1 ,g24_dongle_ms_bind_step_set2 
-2ff5 20600000 rtn 
-
-g24_dongle_ms_bind_step_set2:
-2ff6 58000002 setarg 2 
-
-g24_store_mem_ms_bind_step:
-2ff7 da200106 arg offset_dongle_ms_bind_step ,rega 
-2ff8 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_dongle_bind_second_step_keyboard:
-2ff9 20402fea call g24_dongle_bind_kb_payload_cfg 
-2ffa 58000107 setarg offset_dongle_kb_bind_step 
-2ffb 204032d0 call g24_set_rega_ifetch_1byte 
-2ffc c000affe beq 1 ,g24_dongle_kb_bind_step_set2 
-2ffd 20600000 rtn 
-
-g24_dongle_kb_bind_step_set2:
-2ffe 58000002 setarg 2 
-
-g24_store_mem_kb_bind_step:
-2fff da200107 arg offset_dongle_kb_bind_step ,rega 
-3000 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_dongle_bind_third_step:
-3001 204032bd call g24_fetch_mem_rxdata_temp_add3_1byte 
-3002 c000b005 beq bind_mouse ,g24_dongle_bind_third_step_mouse 
-3003 c0013011 beq bind_keyboard ,g24_dongle_bind_third_step_keyboard 
-3004 20600000 rtn 
-
-g24_dongle_bind_third_step_mouse:
-3005 58000106 setarg offset_dongle_ms_bind_step 
-3006 204032d0 call g24_set_rega_ifetch_1byte 
-3007 c0013009 beq 2 ,g24_dongle_ms_bind_step_success 
-3008 20600000 rtn 
-
-g24_dongle_ms_bind_step_success:
-3009 2040328b call g24_fetch_mem_bind_device_status 
-300a 1fe1fe01 or_into 0x01 ,pdata 
-300b 2040328d call g24_store_mem_bind_device_status 
-
-g24_dongle_bind_exit:
-300c 58000000 setarg 0 
-300d 58000106 setarg offset_dongle_ms_bind_step 
-300e 9a608a00 iadd regc ,contw 
-300f e0a10000 istore 2 ,contw 
-3010 20202f5e branch g24_rx_interrupt_clear 
-
-g24_dongle_bind_third_step_keyboard:
-3011 58000107 setarg offset_dongle_kb_bind_step 
-3012 204032d0 call g24_set_rega_ifetch_1byte 
-3013 c0803015 bne 0 ,g24_dongle_kb_bind_step_success 
-3014 20600000 rtn 
-
-g24_dongle_kb_bind_step_success:
-3015 2040328b call g24_fetch_mem_bind_device_status 
-3016 1fe1fe02 or_into 0x02 ,pdata 
-3017 2040328d call g24_store_mem_bind_device_status 
-3018 2020300c branch g24_dongle_bind_exit 
-
-dongle_usb_dispatch:
-3019 68008d50 fetch 1 ,mem_usb0_get_set_report 
-301a 207a0000 rtn blank 
-301b 700d5000 jam 0 ,mem_usb0_get_set_report 
-301c 68010d4e fetch 2 ,mem_usb_setup_bvalue_temp 
-301d d84002ba arg pc_set_report ,temp 
-301e 98467c00 isub temp ,null 
-301f 24628000 nrtn zero 
-3020 68008cb6 fetch 1 ,mem_usb0_set_report_data 
-3021 c1dd0000 rtnne pc_report_id 
-3022 68008cb7 fetch 1 ,mem_usb0_set_report_data + 1 
-3023 44df4017 bpatch patch17_6 ,mem_patch17 
-3024 c050303b beq command_mode ,dongle_dispose_cmd_mode 
-3025 c050b02c beq command_bind ,dongle_dispose_cmd_bind 
-3026 c0533041 beq command_current_project ,dongle_dispose_cmd_current_project 
-3027 c053b043 beq command_current_mode ,dongle_dispose_cmd_current_mode 
-3028 c054b049 beq command_current_fw_version ,dongle_dispose_cmd_current_fw_version 
-3029 c058304d beq command_user_defined ,dongle_dispose_cmd_user_defined 
-
-usb0_data_ready_report_set0:
-302a 700d4200 jam 0 ,mem_usb0_data_ready_report 
-302b 20600000 rtn 
-
-dongle_dispose_cmd_bind:
-302c 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
-302d c000b031 beq com_bind_get ,dongle_dispose_cmd_get_bind 
-302e c0423034 beq com_bind_exit ,dongle_dispose_cmd_exit_bind 
-302f c053b039 beq com_read_mode ,dongle_dispose_cmd_read_mode 
-3030 2020302a branch usb0_data_ready_report_set0 
-
-dongle_dispose_cmd_get_bind:
-3031 2040328b call g24_fetch_mem_bind_device_status 
-3032 60008cf7 store 1 ,mem_usb0_get_report_data + 1 
-3033 2020303f branch usb0_data_ready_report_set1 
-
-dongle_dispose_cmd_exit_bind:
-3034 20403291 call g24_set_work_mem_dongle_work_mode 
-3035 20403296 call g24_set0_mem_dongle_mode_init 
-3036 2040328b call g24_fetch_mem_bind_device_status 
-3037 60008cf7 store 1 ,mem_usb0_get_report_data + 1 
-3038 2020303f branch usb0_data_ready_report_set1 
-
-dongle_dispose_cmd_read_mode:
-
-dongle_dispose_in_bind_mode:
-3039 700cf7a1 jam command_bind ,mem_usb0_get_report_data + 1 
-303a 2020303f branch usb0_data_ready_report_set1 
-
-dongle_dispose_cmd_mode:
-303b 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
-303c c040b03e beq com_mode_bind ,dongle_enter_bind_mode 
-303d 2020302a branch usb0_data_ready_report_set0 
-
-dongle_enter_bind_mode:
-303e 20403090 call g24_bind_mode_enable 
-
-usb0_data_ready_report_set1:
-303f 700d4201 jam 1 ,mem_usb0_data_ready_report 
-3040 20600000 rtn 
-
-dongle_dispose_cmd_current_project:
-3041 700cf715 jam product_id ,mem_usb0_get_report_data + 1 
-3042 2020303f branch usb0_data_ready_report_set1 
-
-dongle_dispose_cmd_current_mode:
-3043 2040328f call g24_fetch_mem_dongle_work_mode 
-3044 c0003047 beq dongle_work ,dongle_dispose_in_work_mode 
-3045 c000b039 beq dongle_bind ,dongle_dispose_in_bind_mode 
-3046 20600000 rtn 
-
-dongle_dispose_in_work_mode:
-3047 700cf7a0 jam command_mode ,mem_usb0_get_report_data + 1 
-3048 2020303f branch usb0_data_ready_report_set1 
-
-dongle_dispose_cmd_current_fw_version:
-3049 700cf700 jam fw_version0 ,mem_usb0_get_report_data + 1 
-304a 700cf800 jam fw_version1 ,mem_usb0_get_report_data + 2 
-304b 700cf901 jam fw_version2 ,mem_usb0_get_report_data + 3 
-304c 2020303f branch usb0_data_ready_report_set1 
-
-dongle_dispose_cmd_user_defined:
-304d 2040329c call g24_set1_mem_ackpayload_enable 
-304e 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
-304f 1fe0fe02 increase 2 ,pdata 
-3050 1fe27200 copy pdata ,loopcnt 
-3051 d8c00cb6 arg mem_usb0_set_report_data ,contr 
-3052 5800013c setarg offset_24g_ackpayload 
-3053 9a608a00 iadd regc ,contw 
-3054 20207f01 branch memcpy 
-
-dongle_auto_bind:
-3055 44dfc017 bpatch patch17_7 ,mem_patch17 
-3056 2040307d call g24_mode_switch_init 
-
-dongle_auto_bind_loop:
-3057 20402c7f call g24_receive_process 
-3058 204048d3 call usb_isr 
-3059 20203057 branch dongle_auto_bind_loop 
-
-g24_dongle_work_mode_auto:
-305a 2040328f call g24_fetch_mem_dongle_work_mode 
-305b c1800000 rtnne dongle_work 
-305c 20402f51 call g24_dongle_work_mode_start 
-305d 20203098 branch g24_rx_nodata_process 
-
-g24_dongle_bind_mode_auto:
-305e 2040328f call g24_fetch_mem_dongle_work_mode 
-305f c1808000 rtnne dongle_bind 
-3060 20402fc1 call g24_dongle_bind_init 
-3061 20402fcb call g24_dongle_bind_data_process 
-3062 2040328b call g24_fetch_mem_bind_device_status 
-3063 207a0000 rtn blank 
-3064 20403286 call g24_set0_mem_mode_switch 
-3065 20402f4c call dongle_check_mode 
-3066 20403093 call g24_enable_nodata_timer 
-
-g24_timer_init:
-3067 58000000 setarg 0 
-3068 1a608aa7 add regc ,offset_24g_tx_btclk ,contw 
-3069 2020322d branch g24_contw_istore_4byte 
-
-g24_timer_check:
-306a 20407fe9 call disable_user 
-306b 1a60a2a7 add regc ,offset_24g_tx_btclk ,rega 
-306c ea2a0000 ifetcht 4 ,rega 
-306d 1c427e00 copy clkn_bt ,pdata 
-306e 98467c00 isub temp ,null 
-306f 24412d18 ncall g24_timer_timeout ,positive 
-3070 1fe22400 copy pdata ,regb 
-3071 1a60a2a7 add regc ,offset_24g_tx_btclk ,rega 
-3072 ea220000 ifetch 4 ,rega 
-3073 1a60a2ab add regc ,offset_24g_interval ,rega 
-3074 ea288000 ifetcht 1 ,rega 
-3075 98408400 iadd temp ,temp 
-3076 1a427e00 copy regb ,pdata 
-3077 98467c00 isub temp ,null 
-3078 24610000 nrtn positive 
-3079 793ffe1c set0 28 ,pdata 
-307a 1a608aa7 add regc ,offset_24g_tx_btclk ,contw 
-307b e0a20000 istore 4 ,contw 
-307c 20207fe7 branch enable_user 
-
-g24_mode_switch_init:
-307d 58000001 setarg 1 
-307e 20403287 call g24_store_mem_mode_switch 
-307f 20403283 call g24_set0_mem_time_slice 
-3080 580000ff setarg 0xff 
-3081 1a608aab add regc ,offset_24g_interval ,contw 
-3082 e0a08000 istore 1 ,contw 
-3083 20203067 branch g24_timer_init 
-
-g24_mode_switch:
-3084 5800015c setarg offset_24g_mode_switch 
-3085 204032d0 call g24_set_rega_ifetch_1byte 
-3086 207a0000 rtn blank 
-3087 2040306a call g24_timer_check 
-3088 24740000 nrtn user 
-3089 20403281 call g24_fetch_mem_time_slice 
-308a 1fe0fe01 increase 1 ,pdata 
-308b 1fe17e01 and_into 1 ,pdata 
-308c 20403284 call g24_store_mem_time_slice 
-308d c0002f4c beq 0 ,dongle_check_mode 
-308e c000b090 beq 1 ,g24_bind_mode_enable 
-308f 20600000 rtn 
-
-g24_bind_mode_enable:
-3090 58000001 setarg dongle_bind 
-3091 20403292 call g24_store_mem_dongle_work_mode 
-3092 20203296 branch g24_set0_mem_dongle_mode_init 
-
-g24_enable_nodata_timer:
-3093 58000001 setarg 1 
-3094 204032a5 call g24_store_mem_nodata_timer_enable 
-
-g24_enable_nodata_timer_init:
-3095 58000280 setarg timer_nodata_delay 
-3096 d8e00008 arg timer_nodata ,queue 
-3097 20207f08 branch timer_init 
-
-g24_rx_nodata_process:
-3098 204032a2 call g24_fetch_mem_nodata_timer_enable 
-3099 207a0000 rtn blank 
-309a d8e00008 arg timer_nodata ,queue 
-309b 20407f16 call timer_check 
-309c 247a0000 nrtn blank 
-309d 204032a4 call g24_set0_mem_nodata_timer_enable 
-309e 58000007 setarg dongle_search 
-309f 20403292 call g24_store_mem_dongle_work_mode 
-30a0 20403296 call g24_set0_mem_dongle_mode_init 
-30a1 20202f5e branch g24_rx_interrupt_clear 
-
-g24_dongle_search_mode_auto:
-30a2 44e04018 bpatch patch18_0 ,mem_patch18 
-30a3 2040328f call g24_fetch_mem_dongle_work_mode 
-30a4 c1838000 rtnne dongle_search 
-30a5 204030cb call g24_dongle_search_mode_init 
-30a6 204030e0 call g24_rx_auto_addr_ch_search 
-30a7 2040316e call g24_receive_transmit_ack 
-30a8 2437af5e nbranch g24_rx_interrupt_clear ,user3 
-30a9 204030bc call g24_dongle_search_addr_check 
-30aa 2042b172 call g24_receive_packet_parse ,zero 
-30ab 20402f4c call dongle_check_mode 
-30ac 20403294 call g24_fetch_mem_dongle_mode_init 
-30ad 79207e00 set1 dongle_work ,pdata 
-30ae 20403297 call g24_store_mem_dongle_mode_init 
-30af 20402f5e call g24_rx_interrupt_clear 
-30b0 20403093 call g24_enable_nodata_timer 
-30b1 204030bc call g24_dongle_search_addr_check 
-30b2 2022b0c1 branch g24_dg_ch_num_reinit ,zero 
-30b3 58000164 setarg offset_24g_kb_addr 
-30b4 204032d3 call g24_set_rega_ifetcht_4byte 
-30b5 204030be call g24_fetch_mem_addr_isub_temp 
-30b6 2022b0c5 branch g24_kb_ch_num_reinit ,zero 
-30b7 58000160 setarg offset_24g_mouse_addr 
-30b8 204032d3 call g24_set_rega_ifetcht_4byte 
-30b9 204030be call g24_fetch_mem_addr_isub_temp 
-30ba 2022b0c8 branch g24_ms_ch_num_reinit ,zero 
-30bb 20600000 rtn 
-
-g24_dongle_search_addr_check:
-30bc 5800012b setarg offset_24g_rx_addr 
-30bd 204032d3 call g24_set_rega_ifetcht_4byte 
-
-g24_fetch_mem_addr_isub_temp:
-30be 2040322a call g24_fetch_mem_addr 
-30bf 98467c00 isub temp ,null 
-30c0 20600000 rtn 
-
-g24_dg_ch_num_reinit:
-30c1 58000182 setarg offset_24g_dg_ch_number 
-30c2 204032d0 call g24_set_rega_ifetch_1byte 
-
-g24_current_ch_num_reinit:
-30c3 1a608a91 add regc ,offset_24g_current_ch_number ,contw 
-30c4 202032b4 branch g24_contw_istore_1byte 
-
-g24_kb_ch_num_reinit:
-30c5 58000185 setarg offset_24g_kb_ch_number 
-30c6 204032d0 call g24_set_rega_ifetch_1byte 
-30c7 202030c3 branch g24_current_ch_num_reinit 
-
-g24_ms_ch_num_reinit:
-30c8 58000188 setarg offset_24g_ms_ch_number 
-30c9 204032d0 call g24_set_rega_ifetch_1byte 
-30ca 202030c3 branch g24_current_ch_num_reinit 
-
-g24_dongle_search_mode_init:
-30cb 20403294 call g24_fetch_mem_dongle_mode_init 
-30cc c3838000 rtnbit1 dongle_search 
-30cd 79207e07 set1 dongle_search ,pdata 
-30ce 20403297 call g24_store_mem_dongle_mode_init 
-30cf 20403283 call g24_set0_mem_time_slice 
-30d0 2040329c call g24_set1_mem_ackpayload_enable 
-30d1 58000000 setarg 0 
-30d2 1a608af5 add regc ,offset_rssi_noise_dg_index ,contw 
-30d3 e0a18000 istore 3 ,contw 
-30d4 da200183 arg offset_24g_dg_config_ch_once ,rega 
-30d5 204032bf call g24_set_contw_with_temp 
-30d6 e0a38000 istore 7 ,contw 
-30d7 204030bc call g24_dongle_search_addr_check 
-30d8 24628000 nrtn zero 
-30d9 1a60a291 add regc ,offset_24g_current_ch_number ,rega 
-30da ea208000 ifetch 1 ,rega 
-30db da200182 arg offset_24g_dg_ch_number ,rega 
-30dc 204032b3 call g24_set_contw_with_regb_store_1byte 
-30dd 1a60a290 add regc ,offset_24g_ch ,rega 
-30de ea208000 ifetch 1 ,rega 
-30df 2020314a branch g24_store_mem_dg_last_ch 
-
-g24_rx_auto_addr_ch_search:
-30e0 44e0c018 bpatch patch18_1 ,mem_patch18 
-30e1 20403281 call g24_fetch_mem_time_slice 
-30e2 1fe0fe01 increase 1 ,pdata 
-30e3 1fe17e03 and_into 3 ,pdata 
-30e4 20403284 call g24_store_mem_time_slice 
-30e5 c000310e beq 0 ,g24_rx_auto_bind_config_kb 
-30e6 c000b132 beq 1 ,g24_rx_auto_bind_config_dongle 
-30e7 c00130ea beq 2 ,g24_rx_auto_bind_config_mouse 
-30e8 c001b132 beq 3 ,g24_rx_auto_bind_config_dongle 
-30e9 20600000 rtn 
-
-g24_rx_auto_bind_config_mouse:
-30ea 20402fdf call g24_dongle_bind_ms_payload_cfg 
-30eb 58000160 setarg offset_24g_mouse_addr 
-30ec 2040327e call g24_set_rega_ifetch_4byte 
-30ed 203a30e0 branch g24_rx_auto_addr_ch_search ,blank 
-30ee 2040322c call g24_store_mem_addr 
-30ef 58000189 setarg offset_24g_ms_config_ch_once 
-30f0 204032d0 call g24_set_rega_ifetch_1byte 
-30f1 205a3108 call g24_ms_config_ch_once ,blank 
-30f2 58000187 setarg offset_24g_ms_last_ch 
-30f3 204032d0 call g24_set_rega_ifetch_1byte 
-30f4 2040322f call g24_store_mem_ch 
-30f5 1a60a2f7 add regc ,offset_rssi_noise_ms_index ,rega 
-30f6 ea288000 ifetcht 1 ,rega 
-30f7 da200f9e arg mem_rssi_noise_ms_buffer ,rega 
-30f8 20402e58 call rssi_noise_store 
-30f9 1a608af7 add regc ,offset_rssi_noise_ms_index ,contw 
-30fa e0a88000 istoret 1 ,contw 
-30fb 20402f94 call g24_noise_rssi_average 
-30fc 1a608afa add regc ,offset_rssi_noise_ms_avg ,contw 
-30fd e0a88000 istoret 1 ,contw 
-30fe 18467c50 sub temp ,rssi_thresh_noise ,null 
-30ff 24610000 nrtn positive 
-3100 58000188 setarg offset_24g_ms_ch_number 
-3101 20403275 call g24_set_rega_ifetcht_1byte 
-3102 20402c90 call g24_ch_temp_incre_size4 
-3103 da200188 arg offset_24g_ms_ch_number ,rega 
-3104 204032c8 call g24_set_contw_with_regb2 
-3105 e0a88000 istoret 1 ,contw 
-
-g24_store_mem_ms_last_ch:
-3106 da200187 arg offset_24g_ms_last_ch ,rega 
-3107 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_ms_config_ch_once:
-3108 58000001 setarg 1 
-3109 da200189 arg offset_24g_ms_config_ch_once ,rega 
-310a 204032b3 call g24_set_contw_with_regb_store_1byte 
-310b d8400000 arg 0 ,temp 
-310c 20402c94 call g24_ch_calc 
-310d 20203106 branch g24_store_mem_ms_last_ch 
-
-g24_rx_auto_bind_config_kb:
-310e 20402fea call g24_dongle_bind_kb_payload_cfg 
-310f 58000164 setarg offset_24g_kb_addr 
-3110 2040327e call g24_set_rega_ifetch_4byte 
-3111 203a30e0 branch g24_rx_auto_addr_ch_search ,blank 
-3112 2040322c call g24_store_mem_addr 
-3113 58000186 setarg offset_24g_kb_config_ch_once 
-3114 204032d0 call g24_set_rega_ifetch_1byte 
-3115 205a312c call g24_kb_config_ch_once ,blank 
-3116 58000184 setarg offset_24g_kb_last_ch 
-3117 204032d0 call g24_set_rega_ifetch_1byte 
-3118 2040322f call g24_store_mem_ch 
-3119 1a60a2f6 add regc ,offset_rssi_noise_kb_index ,rega 
-311a ea288000 ifetcht 1 ,rega 
-311b da20109e arg mem_rssi_noise_kb_buffer ,rega 
-311c 20402e58 call rssi_noise_store 
-311d 1a608af6 add regc ,offset_rssi_noise_kb_index ,contw 
-311e e0a88000 istoret 1 ,contw 
-311f 20402f94 call g24_noise_rssi_average 
-3120 1a608af9 add regc ,offset_rssi_noise_kb_avg ,contw 
-3121 e0a88000 istoret 1 ,contw 
-3122 18467c50 sub temp ,rssi_thresh_noise ,null 
-3123 24610000 nrtn positive 
-3124 58000185 setarg offset_24g_kb_ch_number 
-3125 20403275 call g24_set_rega_ifetcht_1byte 
-3126 20402c90 call g24_ch_temp_incre_size4 
-3127 da200185 arg offset_24g_kb_ch_number ,rega 
-3128 204032c8 call g24_set_contw_with_regb2 
-3129 e0a88000 istoret 1 ,contw 
-
-g24_store_mem_kb_last_ch:
-312a da200184 arg offset_24g_kb_last_ch ,rega 
-312b 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_kb_config_ch_once:
-312c 58000001 setarg 1 
-312d da200186 arg offset_24g_kb_config_ch_once ,rega 
-312e 204032b3 call g24_set_contw_with_regb_store_1byte 
-312f d8400000 arg 0 ,temp 
-3130 20402c94 call g24_ch_calc 
-3131 2020312a branch g24_store_mem_kb_last_ch 
-
-g24_rx_auto_bind_config_dongle:
-3132 20402fdf call g24_dongle_bind_ms_payload_cfg 
-3133 2040327d call g24_fetch_mem_rx_addr 
-3134 2040322c call g24_store_mem_addr 
-3135 58000183 setarg offset_24g_dg_config_ch_once 
-3136 204032d0 call g24_set_rega_ifetch_1byte 
-3137 205a314c call g24_dg_config_ch_once ,blank 
-3138 2040314f call g24_dg_store_config_ch 
-3139 1a60a2f5 add regc ,offset_rssi_noise_dg_index ,rega 
-313a ea288000 ifetcht 1 ,rega 
-313b da200e9e arg mem_rssi_noise_dg_buffer ,rega 
-313c 20402e58 call rssi_noise_store 
-313d 1a608af5 add regc ,offset_rssi_noise_dg_index ,contw 
-313e e0a88000 istoret 1 ,contw 
-313f 20402f94 call g24_noise_rssi_average 
-3140 1a608af8 add regc ,offset_rssi_noise_dg_avg ,contw 
-3141 e0a88000 istoret 1 ,contw 
-3142 18467c50 sub temp ,rssi_thresh_noise ,null 
-3143 24610000 nrtn positive 
-3144 58000182 setarg offset_24g_dg_ch_number 
-3145 20403275 call g24_set_rega_ifetcht_1byte 
-3146 20402c90 call g24_ch_temp_incre_size4 
-3147 da200182 arg offset_24g_dg_ch_number ,rega 
-3148 204032c8 call g24_set_contw_with_regb2 
-3149 e0a88000 istoret 1 ,contw 
-
-g24_store_mem_dg_last_ch:
-314a da200181 arg offset_24g_dg_last_ch ,rega 
-314b 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_dg_config_ch_once:
-314c 58000001 setarg 1 
-314d da200183 arg offset_24g_dg_config_ch_once ,rega 
-314e 204032b3 call g24_set_contw_with_regb_store_1byte 
-
-g24_dg_store_config_ch:
-314f 58000181 setarg offset_24g_dg_last_ch 
-3150 204032d0 call g24_set_rega_ifetch_1byte 
-3151 2020322f branch g24_store_mem_ch 
-
-g24_transmit_ack:
-3152 1a60a200 add regc ,offset_24g_rxbuf ,rega 
-3153 ea208000 ifetch 1 ,rega 
-3154 2040323c call g24_store_mem_data_type 
-3155 20402dde call g24_read_len_pid_crc 
-3156 2040325f call g24_fetch_mem_rxbuf_add1 
-3157 2feffe00 isolate1 bit_ack_24g ,pdata 
-3158 2020b15c branch g24tx_no_ack ,true 
-
-g24tx_with_ack:
-3159 2040315d call g24_ackpayload_prep 
-315a 20402d53 call g24_transmit_prep 
-315b 20402df7 call g24_transmit 
-
-g24tx_no_ack:
-315c 20202e45 branch g24_end_of_packet 
-
-g24_ackpayload_prep:
-315d 44e14018 bpatch patch18_2 ,mem_patch18 
-315e 1a608a86 add regc ,offset_24g_datalen ,contw 
-315f 204032d6 call g24_mem_set0 
-3160 5800013b setarg offset_24g_ackpayload_enable 
-3161 204032d0 call g24_set_rega_ifetch_1byte 
-3162 207a0000 rtn blank 
-3163 58000006 setarg 0x06 
-3164 1a608a86 add regc ,offset_24g_datalen ,contw 
-3165 e0a08000 istore 1 ,contw 
-3166 df200006 arg 0x06 ,loopcnt 
-3167 5800012f setarg offset_24g_bind_payload 
-3168 9a608c00 iadd regc ,contr 
-3169 1a608a22 add regc ,offset_24g_txbuf ,contw 
-316a 20207f01 branch memcpy 
-
-g24_receive_packet_start:
-316b 2040316e call g24_receive_transmit_ack 
-316c 2437af5e nbranch g24_rx_interrupt_clear ,user3 
-316d 20203172 branch g24_receive_packet_parse 
-
-g24_receive_transmit_ack:
-316e 20402f5e call g24_rx_interrupt_clear 
-316f 20402e11 call g24_receive_packet 
-3170 24778000 nrtn user3 
-3171 20203152 branch g24_transmit_ack 
-
-g24_receive_packet_parse:
-3172 44e1c018 bpatch patch18_3 ,mem_patch18 
-3173 20403188 call g24_receive_packet_parse_pid_crc 
-3174 24342f5e nbranch g24_rx_interrupt_clear ,user 
-3175 1a60a284 add regc ,offset_24g_rxdata_length ,rega 
-3176 ea208000 ifetch 1 ,rega 
-3177 203a2f5e branch g24_rx_interrupt_clear ,blank 
-3178 1fe0fe02 increase 2 ,pdata 
-3179 98007200 iforce loopcnt 
-317a 1a608c00 add regc ,offset_24g_rxbuf ,contr 
-317b 58000109 setarg offset_24g_rxdata_temp 
-317c 9a608a00 iadd regc ,contw 
-317d 20407f01 call memcpy 
-317e 20403286 call g24_set0_mem_mode_switch 
-317f 204032b6 call g24_fetch_mem_pair_mode 
-3180 205a3093 call g24_enable_nodata_timer ,blank 
-3181 5800010b setarg offset_24g_rxdata_temp_add2 
-3182 204032d0 call g24_set_rega_ifetch_1byte 
-3183 c000b19e beq 0x01 ,g24_data_type1 
-3184 c00131c6 beq 0x02 ,g24_data_type2 
-3185 c001b1f2 beq 0x03 ,g24_data_type3 
-3186 c07fb212 beq 0xff ,g24_data_attemp 
-3187 20202f5e branch g24_rx_interrupt_clear 
-
-g24_receive_packet_parse_pid_crc:
-3188 20402c7a call g24_head_ptr2regc 
-3189 20407fe9 call disable_user 
-318a 1a60a2ca add regc ,offset_24g_sta_pid ,rega 
-318b ea208000 ifetch 1 ,rega 
-318c 1a60a2cb add regc ,offset_24g_last_pid ,rega 
-318d ea288000 ifetcht 1 ,rega 
-318e 98467c00 isub temp ,null 
-318f 2442ffe7 ncall enable_user ,zero 
-3190 1a60a2ca add regc ,offset_24g_sta_pid ,rega 
-3191 ea208000 ifetch 1 ,rega 
-3192 1a608acb add regc ,offset_24g_last_pid ,contw 
-3193 e0a08000 istore 1 ,contw 
-3194 1a60a2c4 add regc ,offset_24g_sta_crc ,rega 
-3195 ea218000 ifetch 3 ,rega 
-3196 1a60a2c7 add regc ,offset_24g_last_crc ,rega 
-3197 ea298000 ifetcht 3 ,rega 
-3198 98467c00 isub temp ,null 
-3199 2442ffe7 ncall enable_user ,zero 
-319a 1a60a2c4 add regc ,offset_24g_sta_crc ,rega 
-319b ea218000 ifetch 3 ,rega 
-319c 1a608ac7 add regc ,offset_24g_last_crc ,contw 
-319d 202032c5 branch g24_contw_istore_3byte 
-
-g24_data_type1:
-319e 20402f88 call g24_ch_timer_reinit 
-319f 2040324c call g24_fetch_mem_abort_pac 
-31a0 60008aa2 store 1 ,mem_temp 
-31a1 20403274 call g24_fetcht_mem_rxdata_temp 
-31a2 68008aa2 fetch 1 ,mem_temp 
-31a3 284ffe03 isolate1 bit_abort ,temp 
-31a4 7920fe00 setflag true ,0 ,pdata 
-31a5 1a608ab2 add regc ,offset_24g_abort_pac ,contw 
-31a6 e0a08000 istore 1 ,contw 
-31a7 c000b216 beq 1 ,g24_data_attemp_mouse 
-31a8 20403245 call g24_fetch_mem_hop_pac 
-31a9 20403274 call g24_fetcht_mem_rxdata_temp 
-31aa 284ffe04 isolate1 bit_hop ,temp 
-31ab 7920fe00 setflag true ,0 ,pdata 
-31ac 20403249 call g24_store_mem_hop_pac 
-31ad 1a60a2de add regc ,offset_24g_cb_rxdata_type1 ,rega 
-31ae ea210000 ifetch 2 ,rega 
-31af 20207f9c branch callback_func 
-
-dongle_rxdata_type1:
-31b0 58000001 setarg ms_report_id 
-31b1 60008d54 store 1 ,mem_usb_mouse_data 
-31b2 2040329e call g24_fetch_mem_rxdata_temp_add3_7byte 
-31b3 e0a38000 istore 7 ,contw 
-31b4 2040329e call g24_fetch_mem_rxdata_temp_add3_7byte 
-31b5 245a31bd ncall g24_ms_enable_blank_data_forcibly ,blank 
-31b6 2040329e call g24_fetch_mem_rxdata_temp_add3_7byte 
-31b7 205a31c2 call g24_ms_disable_blank_data_forcibly ,blank 
-
-g24_data_type1_usbtx_enable:
-31b8 700d5220 jam usb_ep2_ms ,mem_usb_ep2_data 
-
-g24_data_type1_usbtx_enable_ep2:
-31b9 68008d38 fetch 1 ,mem_usb_tx_enable 
-31ba 79207e02 set1 2 ,pdata 
-31bb 60008d38 store 1 ,mem_usb_tx_enable 
-31bc 20600000 rtn 
-
-g24_ms_enable_blank_data_forcibly:
-31bd 58000001 setarg 1 
-31be 204032a8 call g24_store_mem_ms_blank_data_enable 
-
-g24_ms_enable_blank_data_timer:
-31bf 58000140 setarg timer_ms_blank_delay 
-31c0 d8e0000b arg timer_ms_blank ,queue 
-31c1 20207f08 branch timer_init 
-
-g24_ms_disable_blank_data_forcibly:
-31c2 204032a7 call g24_set0_mem_ms_blank_data_enable 
-
-g24_ms_disable_blank_data_timer:
-31c3 58000000 setarg 0 
-31c4 d8e0000b arg timer_ms_blank ,queue 
-31c5 20207f08 branch timer_init 
-
-g24_data_type2:
-31c6 20403274 call g24_fetcht_mem_rxdata_temp 
-31c7 284ffe03 isolate1 bit_abort ,temp 
-31c8 2020b21b branch g24_data_attemp_kbd ,true 
-31c9 d8a00d64 arg mem_usb_kb_data ,contw 
-31ca 204031e0 call g24_data_type2_reverse_data 
-31cb 68040d64 fetch 8 ,mem_usb_kb_data 
-31cc 245a31e4 ncall g24_kb_enable_blank_data_forcibly ,blank 
-31cd 68040d64 fetch 8 ,mem_usb_kb_data 
-31ce 205a31e9 call g24_kb_disable_blank_data_forcibly ,blank 
-31cf 20402c7a call g24_head_ptr2regc 
-31d0 68040d64 fetch 8 ,mem_usb_kb_data 
-31d1 da200168 arg offset_24g_kb_data_sta_data ,rega 
-31d2 204032bf call g24_set_contw_with_temp 
-31d3 e0a40000 istore 8 ,contw 
-31d4 58000170 setarg offset_24g_kb_data_last_data 
-31d5 9a60a200 iadd regc ,rega 
-31d6 ea2c0000 ifetcht 8 ,rega 
-31d7 98467c00 isub temp ,null 
-31d8 2442b1ed ncall g24_kb_data_dispose ,zero 
-31d9 58000168 setarg offset_24g_kb_data_sta_data 
-31da 9a60a200 iadd regc ,rega 
-31db ea240000 ifetch 8 ,rega 
-31dc da200170 arg offset_24g_kb_data_last_data ,rega 
-31dd 204032bf call g24_set_contw_with_temp 
-31de e0a40000 istore 8 ,contw 
-31df 20202f5e branch g24_rx_interrupt_clear 
-
-g24_data_type2_reverse_data:
-31e0 5800010b setarg offset_24g_rxdata_temp_add2 
-31e1 9a608c00 iadd regc ,contr 
-31e2 df200009 arg 9 ,loopcnt 
-31e3 20207ff3 branch reverse_byte 
-
-g24_kb_enable_blank_data_forcibly:
-31e4 58000001 setarg 1 
-31e5 204032ab call g24_store_mem_kb_blank_data_enable 
-
-g24_kb_enable_blank_data_timer:
-31e6 58000140 setarg timer_kb_blank_delay 
-31e7 d8e0000e arg timer_kb_blank ,queue 
-31e8 20207f08 branch timer_init 
-
-g24_kb_disable_blank_data_forcibly:
-31e9 204032aa call g24_set0_mem_kb_blank_data_enable 
-
-g24_kb_disable_blank_data_timer:
-31ea 58000000 setarg 0 
-31eb d8e0000e arg timer_kb_blank ,queue 
-31ec 20207f08 branch timer_init 
-
-g24_kb_data_dispose:
-
-g24_kb_data_into_ep1_fifo:
-31ed 700d5110 jam usb_ep1_kb ,mem_usb_ep1_data 
-31ee 68008d38 fetch 1 ,mem_usb_tx_enable 
-31ef 79207e01 set1 1 ,pdata 
-31f0 60008d38 store 1 ,mem_usb_tx_enable 
-31f1 20600000 rtn 
-
-g24_data_type3:
-31f2 d8a00d74 arg mem_usb_kb_multikey ,contw 
-31f3 204031e0 call g24_data_type2_reverse_data 
-31f4 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
-31f5 245a3209 ncall g24_kb_mul_enable_blank_data_forcibly ,blank 
-31f6 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
-31f7 205a320e call g24_kb_mul_disable_blank_data_forcibly ,blank 
-31f8 20402c7a call g24_head_ptr2regc 
-31f9 68018d74 fetch 3 ,mem_usb_kb_multikey 
-31fa da200178 arg offset_24g_kb_multikey_sta_data ,rega 
-31fb 204032c4 call g24_set_contw_with_temp_store_3byte 
-31fc 5800017b setarg offset_24g_kb_multikey_last_data 
-31fd 9a60a200 iadd regc ,rega 
-31fe ea298000 ifetcht 3 ,rega 
-31ff 98467c00 isub temp ,null 
-3200 2442b207 ncall g24_kb_mul_data_into_ep2_fifo ,zero 
-3201 58000178 setarg offset_24g_kb_multikey_sta_data 
-3202 9a60a200 iadd regc ,rega 
-3203 ea218000 ifetch 3 ,rega 
-3204 da20017b arg offset_24g_kb_multikey_last_data ,rega 
-3205 204032c4 call g24_set_contw_with_temp_store_3byte 
-3206 20202f5e branch g24_rx_interrupt_clear 
-
-g24_kb_mul_data_into_ep2_fifo:
-3207 700d5221 jam usb_ep2_multikey ,mem_usb_ep2_data 
-3208 202031b9 branch g24_data_type1_usbtx_enable_ep2 
-
-g24_kb_mul_enable_blank_data_forcibly:
-3209 58000001 setarg 1 
-320a 204032ae call g24_store_mem_kb_mul_blank_data_enable 
-
-g24_kb_mul_enable_blank_data_timer:
-320b 58000140 setarg timer_kb_mul_blank_delay 
-320c d8e0000c arg timer_kb_mul_blank ,queue 
-320d 20207f08 branch timer_init 
-
-g24_kb_mul_disable_blank_data_forcibly:
-320e 204032ad call g24_set0_mem_kb_mul_blank_data_enable 
-
-g24_kb_mul_disable_blank_data_timer:
-320f 58000000 setarg 0 
-3210 d8e0000c arg timer_kb_mul_blank ,queue 
-3211 20207f08 branch timer_init 
-
-g24_data_attemp:
-3212 204032bd call g24_fetch_mem_rxdata_temp_add3_1byte 
-3213 c000b216 beq datatype_mouse ,g24_data_attemp_mouse 
-3214 c001321b beq datatype_keyboard ,g24_data_attemp_kbd 
-3215 20600000 rtn 
-
-g24_data_attemp_mouse:
-3216 5800010d setarg offset_24g_rxdata_temp_add4 
-3217 2040327e call g24_set_rega_ifetch_4byte 
-3218 da200160 arg offset_24g_mouse_addr ,rega 
-3219 204032bf call g24_set_contw_with_temp 
-321a 2020322d branch g24_contw_istore_4byte 
-
-g24_data_attemp_kbd:
-321b 5800010d setarg offset_24g_rxdata_temp_add4 
-321c 2040327e call g24_set_rega_ifetch_4byte 
-321d da200164 arg offset_24g_kb_addr ,rega 
-321e 204032bf call g24_set_contw_with_temp 
-321f 2020322d branch g24_contw_istore_4byte 
-
-g24_store_mem_24g_mode:
-3220 20402c7a call g24_head_ptr2regc 
-3221 1a608acd add regc ,offset_24g_mode ,contw 
-3222 e0a08000 istore 1 ,contw 
-3223 20600000 rtn 
-
-g24_fetch_mem_device_addr:
-3224 20402c7a call g24_head_ptr2regc 
-3225 1a60a2be add regc ,offset_24g_device_addr ,rega 
-3226 2020327f branch g24_rega_ifetch_4byte 
-
-g24_store_mem_device_addr:
-3227 20402c7a call g24_head_ptr2regc 
-3228 1a608abe add regc ,offset_24g_device_addr ,contw 
-3229 2020322d branch g24_contw_istore_4byte 
-
-g24_fetch_mem_addr:
-322a 1a60a2ae add regc ,offset_24g_addr ,rega 
-322b 2020327f branch g24_rega_ifetch_4byte 
-
-g24_store_mem_addr:
-322c 1a608aae add regc ,offset_24g_addr ,contw 
-
-g24_contw_istore_4byte:
-322d e0a20000 istore 4 ,contw 
-322e 20600000 rtn 
-
-g24_store_mem_ch:
-322f 1a608a90 add regc ,offset_24g_ch ,contw 
-3230 202032b4 branch g24_contw_istore_1byte 
-
-g24_set0_mem_pid:
-3231 58000000 setarg 0 
-
-g24_store_mem_pid:
-3232 20402c7a call g24_head_ptr2regc 
-3233 1a608a85 add regc ,offset_24g_pid ,contw 
-3234 202032b4 branch g24_contw_istore_1byte 
-
-g24_store_mem_txpayload:
-3235 1a608a42 add regc ,offset_24g_txpayload ,contw 
-3236 202032b4 branch g24_contw_istore_1byte 
-
-g24_set4_mem_max_retry:
-3237 58000004 setarg 4 
-
-g24_store_mem_max_retry:
-3238 1a608acc add regc ,offset_24g_max_retry ,contw 
-3239 202032b4 branch g24_contw_istore_1byte 
-
-g24_fetch_mem_data_type:
-323a 1a60a287 add regc ,offset_24g_data_type ,rega 
-323b 202032d1 branch g24_rega_ifetch_1byte 
-
-g24_store_mem_data_type:
-323c 1a608a87 add regc ,offset_24g_data_type ,contw 
-323d 202032b4 branch g24_contw_istore_1byte 
-
-g24_set2_mem_sync_cnt:
-323e 58000002 setarg 2 
-
-g24_store_mem_sync_cnt:
-323f 1a608ad0 add regc ,offset_24g_sync_cnt ,contw 
-3240 202032b4 branch g24_contw_istore_1byte 
-
-g24_set1_mem_rf_last_sta:
-3241 58000001 setarg 1 
-
-g24_store_mem_rf_last_sta:
-3242 20402c7a call g24_head_ptr2regc 
-3243 1a608ace add regc ,offset_24g_rf_last_sta ,contw 
-3244 202032b4 branch g24_contw_istore_1byte 
-
-g24_fetch_mem_hop_pac:
-3245 20402c7a call g24_head_ptr2regc 
-3246 1a60a2b4 add regc ,offset_24g_hop_pac ,rega 
-3247 202032d1 branch g24_rega_ifetch_1byte 
-
-g24_set1_mem_hop_pac:
-3248 58000001 setarg 1 
-
-g24_store_mem_hop_pac:
-3249 20402c7a call g24_head_ptr2regc 
-324a 1a608ab4 add regc ,offset_24g_hop_pac ,contw 
-324b 202032b4 branch g24_contw_istore_1byte 
-
-g24_fetch_mem_abort_pac:
-324c 20402c7a call g24_head_ptr2regc 
-324d 1a60a2b2 add regc ,offset_24g_abort_pac ,rega 
-324e 202032d1 branch g24_rega_ifetch_1byte 
-
-g24_set1_mem_abort_pac:
-324f 58000001 setarg 1 
-
-g24_store_mem_abort_pac:
-3250 20402c7a call g24_head_ptr2regc 
-3251 1a608ab2 add regc ,offset_24g_abort_pac ,contw 
-3252 202032b4 branch g24_contw_istore_1byte 
-
-g24_fetch_mem_pairing_sm:
-3253 20402c7a call g24_head_ptr2regc 
-3254 1a60a296 add regc ,offset_24g_pairing_sm ,rega 
-3255 202032d1 branch g24_rega_ifetch_1byte 
-
-g24_store_mem_pairing_sm:
-3256 1a608a96 add regc ,offset_24g_pairing_sm ,contw 
-3257 202032b4 branch g24_contw_istore_1byte 
-
-g24_fetch_mem_rf_hop_ch:
-3258 1a60a2cf add regc ,offset_24g_rf_hop_ch ,rega 
-3259 202032d1 branch g24_rega_ifetch_1byte 
-
-g24_set0_mem_rf_hop_ch:
-325a 58000000 setarg 0 
-
-g24_store_mem_rf_hop_ch:
-325b 1a608acf add regc ,offset_24g_rf_hop_ch ,contw 
-325c 202032b4 branch g24_contw_istore_1byte 
-
-g24_fetch_mem_rf_work_stage:
-325d 1a60a2d2 add regc ,offset_24g_rf_work_stage ,rega 
-325e 202032d1 branch g24_rega_ifetch_1byte 
-
-g24_fetch_mem_rxbuf_add1:
-325f 1a60a201 add regc ,offset_24g_rxbuf_add1 ,rega 
-3260 202032d1 branch g24_rega_ifetch_1byte 
-
-g24_fetch_mem_check_dongle_times:
-3261 1a60a2b5 add regc ,offset_24g_check_dongle_times ,rega 
-3262 202032d1 branch g24_rega_ifetch_1byte 
-
-g24_set0_mem_check_dongle_times:
-3263 58000000 setarg 0 
-
-g24_store_mem_check_dongle_times:
-3264 20402c7a call g24_head_ptr2regc 
-3265 1a608ab5 add regc ,offset_24g_check_dongle_times ,contw 
-3266 202032b4 branch g24_contw_istore_1byte 
-
-g24_store_mem_tx_power:
-3267 20402c7a call g24_head_ptr2regc 
-3268 1a60a2fb add regc ,offset_tx_power_temp ,rega 
-3269 ea208000 ifetch 1 ,rega 
-
-g24_store_mem_txpower:
-326a 6000c1de store 1 ,mem_tx_power 
-326b 20600000 rtn 
-
-g24_store_mem_tx_power_temp:
-326c 20402c7a call g24_head_ptr2regc 
-326d 6800c1de fetch 1 ,mem_tx_power 
-326e 1a608afb add regc ,offset_tx_power_temp ,contw 
-326f 202032b4 branch g24_contw_istore_1byte 
-
-g24_fetch_mem_power_ctrl_pac:
-3270 1a60a2fc add regc ,offset_power_ctrl_packet_cnt ,rega 
-3271 202032d1 branch g24_rega_ifetch_1byte 
-
-g24_store_mem_power_ctrl_level:
-3272 1a608afe add regc ,offset_power_ctrl_level ,contw 
-3273 202032b4 branch g24_contw_istore_1byte 
-
-g24_fetcht_mem_rxdata_temp:
-3274 58000109 setarg offset_24g_rxdata_temp 
-
-g24_set_rega_ifetcht_1byte:
-3275 9a60a200 iadd regc ,rega 
-3276 ea288000 ifetcht 1 ,rega 
-3277 20600000 rtn 
-
-g24_fetch_mem_rf_laststa:
-3278 58000135 setarg offset_24g_rf_laststa 
-3279 202032d0 branch g24_set_rega_ifetch_1byte 
-
-g24_set0_mem_rf_laststa:
-327a 58000000 setarg 0 
-
-g24_store_mem_rf_laststa:
-327b da200135 arg offset_24g_rf_laststa ,rega 
-327c 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_fetch_mem_rx_addr:
-327d 5800012b setarg offset_24g_rx_addr 
-
-g24_set_rega_ifetch_4byte:
-327e 204032cd call g24_set_rega 
-
-g24_rega_ifetch_4byte:
-327f ea220000 ifetch 4 ,rega 
-3280 20600000 rtn 
-
-g24_fetch_mem_time_slice:
-3281 5800015f setarg offset_24g_time_slice 
-3282 202032d0 branch g24_set_rega_ifetch_1byte 
-
-g24_set0_mem_time_slice:
-3283 58000000 setarg 0 
-
-g24_store_mem_time_slice:
-3284 da20015f arg offset_24g_time_slice ,rega 
-3285 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_set0_mem_mode_switch:
-3286 58000000 setarg 0 
-
-g24_store_mem_mode_switch:
-3287 da20015c arg offset_24g_mode_switch ,rega 
-3288 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_store_mem_bind_payload:
-3289 da20012f arg offset_24g_bind_payload ,rega 
-328a 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_fetch_mem_bind_device_status:
-328b 58000108 setarg offset_dongle_bind_device_status 
-328c 202032d0 branch g24_set_rega_ifetch_1byte 
-
-g24_store_mem_bind_device_status:
-328d da200108 arg offset_dongle_bind_device_status ,rega 
-328e 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_fetch_mem_dongle_work_mode:
-328f 58000105 setarg offset_dongle_work_mode 
-3290 202032d0 branch g24_set_rega_ifetch_1byte 
-
-g24_set_work_mem_dongle_work_mode:
-3291 58000000 setarg dongle_work 
-
-g24_store_mem_dongle_work_mode:
-3292 da200105 arg offset_dongle_work_mode ,rega 
-3293 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_fetch_mem_dongle_mode_init:
-3294 58000104 setarg offset_dongle_mode_init 
-3295 202032d0 branch g24_set_rega_ifetch_1byte 
-
-g24_set0_mem_dongle_mode_init:
-3296 58000000 setarg clear_init 
-
-g24_store_mem_dongle_mode_init:
-3297 da200104 arg offset_dongle_mode_init ,rega 
-3298 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_set0_mem_ackpayload_enable:
-3299 58000000 setarg 0 
-
-g24_store_mem_ackpayload_enable:
-329a da20013b arg offset_24g_ackpayload_enable ,rega 
-329b 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_set1_mem_ackpayload_enable:
-329c 58000001 setarg 1 
-329d 2020329a branch g24_store_mem_ackpayload_enable 
-
-g24_fetch_mem_rxdata_temp_add3_7byte:
-329e 5800010c setarg offset_24g_rxdata_temp_add3 
-329f 204032cd call g24_set_rega 
-32a0 ea238000 ifetch 7 ,rega 
-32a1 20600000 rtn 
-
-g24_fetch_mem_nodata_timer_enable:
-32a2 5800015e setarg offset_24g_nodata_timer_enable 
-32a3 202032d0 branch g24_set_rega_ifetch_1byte 
-
-g24_set0_mem_nodata_timer_enable:
-32a4 58000000 setarg 0 
-
-g24_store_mem_nodata_timer_enable:
-32a5 da20015e arg offset_24g_nodata_timer_enable ,rega 
-32a6 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_set0_mem_ms_blank_data_enable:
-32a7 58000000 setarg 0 
-
-g24_store_mem_ms_blank_data_enable:
-32a8 da200180 arg offset_24g_ms_blank_data_enable ,rega 
-32a9 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_set0_mem_kb_blank_data_enable:
-32aa 58000000 setarg 0 
-
-g24_store_mem_kb_blank_data_enable:
-32ab da20017e arg offset_24g_kb_blank_data_enable ,rega 
-32ac 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_set0_mem_kb_mul_blank_data_enable:
-32ad 58000000 setarg 0 
-
-g24_store_mem_kb_mul_blank_data_enable:
-32ae da20017f arg offset_24g_kb_mul_blank_data_enable ,rega 
-32af 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_store_mem_power_ctrl_threshold_up:
-32b0 da200102 arg offset_power_ctrl_threshold_up ,rega 
-32b1 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_store_mem_power_ctrl_threshold_down:
-32b2 da200103 arg offset_power_ctrl_threshold_down ,rega 
-
-g24_set_contw_with_regb_store_1byte:
-32b3 204032c7 call g24_set_contw_with_regb 
-
-g24_contw_istore_1byte:
-32b4 e0a08000 istore 1 ,contw 
-32b5 20600000 rtn 
-
-g24_fetch_mem_pair_mode:
-32b6 5800015d setarg offset_24g_pair_mode 
-32b7 202032d0 branch g24_set_rega_ifetch_1byte 
-
-g24_store_mem_pair_mode:
-32b8 da20015d arg offset_24g_pair_mode ,rega 
-32b9 202032b3 branch g24_set_contw_with_regb_store_1byte 
-
-g24_store_mem_pair_txpower:
-32ba 5800018a setarg offset_24g_pair_txpower 
-32bb 204032d0 call g24_set_rega_ifetch_1byte 
-32bc 2020326a branch g24_store_mem_txpower 
-
-g24_fetch_mem_rxdata_temp_add3_1byte:
-32bd 5800010c setarg offset_24g_rxdata_temp_add3 
-32be 202032d0 branch g24_set_rega_ifetch_1byte 
-
-g24_set_contw_with_temp:
-32bf 1fe20400 copy pdata ,temp 
-32c0 1a227e00 copy rega ,pdata 
-32c1 9a608a00 iadd regc ,contw 
-32c2 18427e00 copy temp ,pdata 
-32c3 20600000 rtn 
-
-g24_set_contw_with_temp_store_3byte:
-32c4 204032bf call g24_set_contw_with_temp 
-
-g24_contw_istore_3byte:
-32c5 e0a18000 istore 3 ,contw 
-32c6 20600000 rtn 
-
-g24_set_contw_with_regb:
-32c7 20402c7a call g24_head_ptr2regc 
-
-g24_set_contw_with_regb2:
-32c8 1fe22400 copy pdata ,regb 
-32c9 1a227e00 copy rega ,pdata 
-32ca 9a608a00 iadd regc ,contw 
-32cb 1a427e00 copy regb ,pdata 
-32cc 20600000 rtn 
-
-g24_set_rega:
-32cd 20402c7a call g24_head_ptr2regc 
-32ce 9a60a200 iadd regc ,rega 
-32cf 20600000 rtn 
-
-g24_set_rega_ifetch_1byte:
-32d0 204032cd call g24_set_rega 
-
-g24_rega_ifetch_1byte:
-32d1 ea208000 ifetch 1 ,rega 
-32d2 20600000 rtn 
-
-g24_set_rega_ifetcht_4byte:
-32d3 204032cd call g24_set_rega 
-32d4 ea2a0000 ifetcht 4 ,rega 
-32d5 20600000 rtn 
-
-g24_mem_set0:
-32d6 58000000 setarg 0 
-32d7 202032b4 branch g24_contw_istore_1byte 
-
-app_init:
-32d8 44e24018 bpatch patch18_4 ,mem_patch18 
-32d9 6800c092 fetch 1 ,mem_device_option 
-32da 203a32d8 branch app_init ,blank 
-32db c0022f30 beq dvc_op_dongle ,dongle_init 
-32dc c007b436 beq dvc_op_antilost ,antilost_init 
-32dd c004c5de beq dvc_op_shutter ,shutter_init 
-32de c005392a beq dvc_op_module ,module_init 
-32df c00735bf beq dvc_op_car ,car_init 
-32e0 c00844a4 beq dvc_op_remote_car ,remote_car_init 
-32e1 c2833d00 bbit1 dvc_op_mouse ,mouse_init 
-32e2 20600000 rtn 
-
-app_lpm_init:
-32e3 44e2c018 bpatch patch18_5 ,mem_patch18 
-32e4 70015100 jam 0 ,mem_tester_emulate 
-32e5 70017f00 jam 0 ,mem_debug_config 
-32e6 70018000 jam 0 ,mem_lch_code 
-32e7 58000000 setarg 0 
-32e8 600289ae store 5 ,mem_sp_state_start 
-32e9 6800c092 fetch 1 ,mem_device_option 
-32ea 203a32e3 branch app_lpm_init ,blank 
-32eb c0053962 beq dvc_op_module ,module_lpm_init 
-
-app_lpm_init0:
-32ec 20600000 rtn 
-
-app_process_idle:
-32ed 20407cd1 call ui_dispatch 
-32ee 20407d9c call check_51cmd 
-32ef 204032f6 call app_process_bb_event 
-32f0 680141f3 fetch 2 ,mem_cb_idle_process 
-32f1 20207f9c branch callback_func 
-
-app_process_bt:
-32f2 680141f1 fetch 2 ,mem_cb_bt_process 
-32f3 20207f9c branch callback_func 
-
-app_process_ble:
-32f4 680141ef fetch 2 ,mem_cb_le_process 
-32f5 20207f9c branch callback_func 
-
-app_process_bb_event:
-32f6 44e34018 bpatch patch18_6 ,mem_patch18 
-32f7 da204668 arg mem_ipc_fifo_bt2c51 ,rega 
-32f8 20407fc4 call fifo_out 
-32f9 207a0000 rtn blank 
-32fa 1fe22600 copy pdata ,regc 
-32fb 204032ff call app_event_normal_process 
-32fc 20203324 branch app_process_bb_event_priority 
-
-app_discard_event:
-32fd da600000 arg 0 ,regc 
-32fe 20600000 rtn 
-
-app_event_normal_process:
-32ff c000b311 beq bt_evt_bb_connected ,app_evt_bt_conn 
-3300 c0083357 beq bt_evt_button_long_pressed ,app_evt_button_long_pressed 
-3301 c002b335 beq bt_evt_setup_complete ,app_evt_setup_complete 
-3302 c009333c beq bt_evt_hid_handshake ,app_evt_hid_handshake 
-3303 c0033353 beq bt_evt_hid_connected ,app_bb_event_hid_connected 
-3304 c0023394 beq bt_evt_reconn_failed ,app_bb_event_reconn_failed 
-3305 c0013399 beq bt_evt_bb_disconnected ,app_bb_event_bb_disconn 
-3306 c009b394 beq bt_evt_reconn_page_timeout ,app_bb_event_reconn_failed 
-3307 c00a334b beq bt_evt_le_connected ,app_le_event_bb_connected 
-3308 c00ab34f beq bt_evt_le_disconnected ,app_le_event_bb_disconn 
-3309 c001b32e beq bt_evt_reconn_started ,app_event_reconn_start 
-330a c005b340 beq bt_evt_enter_sniff ,app_event_enter_sniff 
-330b c0063347 beq bt_evt_exit_sniff ,app_event_exit_sniff 
-330c c00b335b beq bt_evt_ml2cap_conn_refused ,app_event_ml2cap_conn_refused 
-330d c00c332a beq bt_evt_linkkey_generate ,app_event_linkkey_generate 
-330e c015331a beq bt_evt_switch_fail_master ,app_event_switch_fail_master 
-330f c015b318 beq bt_evt_switch_success_master ,app_event_switch_success 
-3310 20600000 rtn 
-
-app_evt_bt_conn:
-3311 68014682 fetch 2 ,mem_ui_state_map 
-3312 79207e00 set1 ui_state_bt_connected ,pdata 
-3313 60014682 store 2 ,mem_ui_state_map 
-3314 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3315 793ffe00 set0 app_disc_by_button ,pdata 
-3316 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3317 20600000 rtn 
-
-app_event_switch_success:
-3318 70022900 jam 0 ,mem_switch_fail_master_count 
-3319 20600000 rtn 
-
-app_event_switch_fail_master:
-331a 68008229 fetch 1 ,mem_switch_fail_master_count 
-331b 1fe0fe01 increase 1 ,pdata 
-331c 60008229 store 1 ,mem_switch_fail_master_count 
-331d 1fe67c01 sub pdata ,1 ,null 
-331e 202133df branch app_bt_role_switch ,positive 
-331f 70022900 jam 0 ,mem_switch_fail_master_count 
-3320 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3321 79207e09 set1 app_disc_switch_fail ,pdata 
-3322 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3323 202033e9 branch app_bt_disconnect 
-
-app_process_bb_event_priority:
-3324 680141f5 fetch 2 ,mem_cb_bb_event_process 
-3325 20207f9c branch callback_func 
-
-app_check_wake_lock:
-3326 680141e9 fetch 2 ,mem_cb_check_wakelock 
-3327 20207f9c branch callback_func 
-
-app_will_enter_lpm:
-3328 680141ed fetch 2 ,mem_cb_before_lpm 
-3329 20207f9c branch callback_func 
-
-app_event_linkkey_generate:
-332a 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-332b 79207e01 set1 app_disc_after_pairing ,pdata 
-332c 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-332d 20203412 branch app_bt_store_reconn_info 
-
-app_event_reconn_start:
-332e 68014682 fetch 2 ,mem_ui_state_map 
-332f 79207e07 set1 ui_state_bt_reconnect ,pdata 
-3330 60014682 store 2 ,mem_ui_state_map 
-3331 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3332 79207e02 set1 app_disc_after_reconn ,pdata 
-3333 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3334 20600000 rtn 
-
-app_evt_setup_complete:
-3335 68014682 fetch 2 ,mem_ui_state_map 
-3336 79207e01 set1 ui_state_bt_setup_complete ,pdata 
-3337 60014682 store 2 ,mem_ui_state_map 
-3338 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3339 79207e04 set1 app_disc_after_setup_done ,pdata 
-333a 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-333b 20600000 rtn 
-
-app_evt_hid_handshake:
-333c 68014682 fetch 2 ,mem_ui_state_map 
-333d 79207e03 set1 ui_state_bt_hid_handshake ,pdata 
-333e 60014682 store 2 ,mem_ui_state_map 
-333f 20600000 rtn 
-
-app_event_enter_sniff:
-3340 68014682 fetch 2 ,mem_ui_state_map 
-3341 79207e05 set1 ui_state_bt_sniff ,pdata 
-3342 60014682 store 2 ,mem_ui_state_map 
-3343 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3344 79207e03 set1 app_disc_after_sniff ,pdata 
-3345 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3346 20600000 rtn 
-
-app_event_exit_sniff:
-3347 68014682 fetch 2 ,mem_ui_state_map 
-3348 793ffe05 set0 ui_state_bt_sniff ,pdata 
-3349 60014682 store 2 ,mem_ui_state_map 
-334a 20600000 rtn 
-
-app_le_event_bb_connected:
-334b 68014682 fetch 2 ,mem_ui_state_map 
-334c 79207e09 set1 ui_state_ble_connected ,pdata 
-334d 60014682 store 2 ,mem_ui_state_map 
-334e 20600000 rtn 
-
-app_le_event_bb_disconn:
-334f 68014682 fetch 2 ,mem_ui_state_map 
-3350 793ffe09 set0 ui_state_ble_connected ,pdata 
-3351 60014682 store 2 ,mem_ui_state_map 
-3352 20203418 branch app_lpm_mult_disable 
-
-app_bb_event_hid_connected:
-3353 68014682 fetch 2 ,mem_ui_state_map 
-3354 79207e02 set1 ui_state_bt_hid_conn ,pdata 
-3355 60014682 store 2 ,mem_ui_state_map 
-3356 20600000 rtn 
-
-app_evt_button_long_pressed:
-3357 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3358 79207e00 set1 app_disc_by_button ,pdata 
-3359 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-335a 20600000 rtn 
-
-app_event_ml2cap_conn_refused:
-335b 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-335c 79207e08 set1 app_disc_l2cap_refused ,pdata 
-335d 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-335e 202033e9 branch app_bt_disconnect 
-
-app_evt_timer:
-335f 44e3c018 bpatch patch18_7 ,mem_patch18 
-3360 6000822a store 1 ,mem_app_evt_timer_count 
-
-app_evt_100ms_loop:
-3361 6800822a fetch 1 ,mem_app_evt_timer_count 
-3362 207a0000 rtn blank 
-3363 1fe0ffff increase -1 ,pdata 
-3364 6000822a store 1 ,mem_app_evt_timer_count 
-3365 20407cdd call ui_button_polling 
-3366 204033d6 call app_lpm_wake_auto_lock_timer 
-3367 20403387 call app_unsniff_delay_timer 
-3368 2040338d call app_discovery_timer 
-3369 2040651b call flash_write_spi_sm_timer 
-336a 680141fd fetch 2 ,mem_cb_event_timer 
-336b 20407f9c call callback_func 
-336c 20203361 branch app_evt_100ms_loop 
-
-timer_single_step:
-336d ea608000 ifetch 1 ,regc 
-336e 207a0000 rtn blank 
-336f 1fe0ffff pincrease -1 
-3370 e2608000 istore 1 ,regc 
-3371 247a0000 nrtn blank 
-3372 1a427e00 copy regb ,pdata 
-3373 20207f9c branch callback_func 
-
-timer_single_step_2b:
-3374 ea610000 ifetch 2 ,regc 
-3375 207a0000 rtn blank 
-3376 1fe0ffff pincrease -1 
-3377 e2610000 istore 2 ,regc 
-3378 247a0000 nrtn blank 
-3379 1a427e00 copy regb ,pdata 
-337a 20207f9c branch callback_func 
-
-app_power_timer:
-337b 6809423f fetcht 2 ,mem_power_param_ptr 
-337c 1840a601 add temp ,power_timer_offset ,regc 
-337d da40337f arg app_power_timer_timeout ,regb 
-337e 2020336d branch timer_single_step 
-
-app_power_timer_timeout:
-337f 2040342d call app_got_power_state_common 
-3380 c000b382 beq power_starting ,app_enter_power_stanby_state 
-
-app_enter_power_off_state:
-3381 2020340a branch app_enter_hibernate 
-
-app_enter_power_stanby_state:
-3382 58000002 setarg power_standby 
-3383 e2608000 istore 1 ,regc 
-3384 1840a408 add temp ,power_standby_cb_offset ,regb 
-
-app_power_cb_common:
-3385 ea410000 ifetch 2 ,regb 
-3386 20207f9c branch callback_func 
-
-app_unsniff_delay_timer:
-3387 da604205 arg mem_unsniff2sniff_timer_count ,regc 
-3388 da40338a arg app_unsniff_delay_timeout ,regb 
-3389 2020336d branch timer_single_step 
-
-app_unsniff_delay_timeout:
-338a 20402252 call context_check_idle 
-338b 2022b40e branch app_bt_enter_sniff ,zero 
-338c 20600000 rtn 
-
-app_discovery_timer:
-338d da60467e arg mem_discovery_timeout_timer_count ,regc 
-338e da403390 arg app_discovery_timeout ,regb 
-338f 20203374 branch timer_single_step_2b 
-
-app_discovery_timeout:
-3390 204033f0 call app_bt_stop_discovery 
-3391 20403408 call app_led_off 
-3392 680141f7 fetch 2 ,mem_cb_discovry_timeout 
-3393 20207f9c branch callback_func 
-
-app_bb_event_reconn_failed:
-3394 204033ac call app_disconn_reason_flag_clear 
-
-app_clear_reconnect_flag:
-3395 68014682 fetch 2 ,mem_ui_state_map 
-3396 793ffe07 set0 ui_state_bt_reconnect ,pdata 
-3397 60014682 store 2 ,mem_ui_state_map 
-3398 20600000 rtn 
-
-app_bb_event_bb_disconn:
-3399 70420500 jam 0 ,mem_unsniff2sniff_timer_count 
-339a 68014682 fetch 2 ,mem_ui_state_map 
-339b c283b39e bbit1 ui_state_bt_reconnect ,app_bb_event_bb_reconn_disconn 
-339c 2fec0001 isolate0 ui_state_bt_setup_complete ,pdata 
-339d 2040b2fd call app_discard_event ,true 
-
-app_bb_event_bb_reconn_disconn:
-339e 44e44019 bpatch patch19_0 ,mem_patch19 
-339f 68014682 fetch 2 ,mem_ui_state_map 
-33a0 793ffe00 set0 ui_state_bt_connected ,pdata 
-33a1 793ffe01 set0 ui_state_bt_setup_complete ,pdata 
-33a2 793ffe02 set0 ui_state_bt_hid_conn ,pdata 
-33a3 793ffe03 set0 ui_state_bt_hid_handshake ,pdata 
-33a4 793ffe07 set0 ui_state_bt_reconnect ,pdata 
-33a5 60014682 store 2 ,mem_ui_state_map 
-33a6 20203418 branch app_lpm_mult_disable 
-
-app_bb_hibernate:
-33a7 204033a9 call app_disconn_reason_clear 
-33a8 2020340a branch app_enter_hibernate 
-
-app_disconn_reason_clear:
-33a9 58000000 setarg 0 
-33aa 60014208 store app_disc_rsn_size ,mem_app_disconn_reason 
-33ab 20600000 rtn 
-
-app_disconn_reason_flag_clear:
-33ac 58000000 setarg 0 
-33ad 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-33ae 20600000 rtn 
-
-app_disconn_reason_collect_bt:
-33af 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-33b0 60014208 store app_disc_rsn_size ,mem_app_disconn_reason 
-33b1 58000000 setarg 0 
-33b2 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-33b3 20600000 rtn 
-
-app_disconn_reason_collect_ble:
-33b4 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-33b5 79207e07 set1 app_disc_ble ,pdata 
-33b6 60014208 store app_disc_rsn_size ,mem_app_disconn_reason 
-33b7 58000000 setarg 0 
-33b8 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-33b9 20600000 rtn 
-
-app_check_sniff:
-33ba 6800c682 fetch 1 ,mem_ui_state_map 
-33bb 2feffe05 isolate1 ui_state_bt_sniff ,pdata 
-33bc 20600000 rtn 
-
-app_initflag_store:
-33bd 5800aa55 setarg eeprom_init_flag 
-
-app_flag_store:
-33be 60010aaa store 2 ,mem_timeup 
-33bf 44e4c019 bpatch patch19_1 ,mem_patch19 
-33c0 d8400002 arg 2 ,temp 
-33c1 da200aaa arg mem_timeup ,rega 
-33c2 da4000c3 arg eeprom_module_init_flag ,regb 
-33c3 20206606 branch iicd_write_eep_data 
-
-app_initflag_check:
-33c4 44e54019 bpatch patch19_2 ,mem_patch19 
-33c5 d8400002 arg 2 ,temp 
-33c6 da200a9a arg mem_pdatatemp ,rega 
-33c7 da4000c3 arg eeprom_module_init_flag ,regb 
-33c8 204065df call iicd_read_eep_data 
-33c9 68010a9a fetch 2 ,mem_pdatatemp 
-33ca d840aa55 arg eeprom_init_flag ,temp 
-33cb 98467c00 isub temp ,null 
-33cc 20600000 rtn 
-
-app_start_auto_sniff:
-33cd 6800c55a fetch 1 ,mem_unsniff2sniff_timer 
-33ce 6000c205 store 1 ,mem_unsniff2sniff_timer_count 
-33cf 20600000 rtn 
-
-app_get_lpm_wake_lock:
-33d0 d8e00009 arg wake_lock_app ,queue 
-33d1 20202c32 branch lpm_get_wake_lock 
-
-app_put_lpm_wake_lock:
-33d2 d8e00009 arg wake_lock_app ,queue 
-33d3 20202c36 branch lpm_put_wake_lock 
-
-app_lpm_wake_auto_lock:
-33d4 70420605 jam lpm_wake_up_delay_timer ,mem_wake_up_delay_timer 
-33d5 202033d0 branch app_get_lpm_wake_lock 
-
-app_lpm_wake_auto_lock_timer:
-33d6 da604206 arg mem_wake_up_delay_timer ,regc 
-33d7 da4033d2 arg app_put_lpm_wake_lock ,regb 
-33d8 2020336d branch timer_single_step 
-
-app_l2cap_flow_control_enable:
-33d9 70436301 jam l2cap_flow_ctrl_enable ,mem_l2cap_flow_ctrl_flag 
-33da 20600000 rtn 
-
-app_l2cap_flow_control_disable:
-33db 70436300 jam l2cap_flow_ctrl_disable ,mem_l2cap_flow_ctrl_flag 
-33dc 20600000 rtn 
-
-app_bt_set_pincode:
-33dd 700a990a jam bt_cmd_set_pin_code ,mem_fifo_temp 
-33de 20207d8f branch ui_ipc_send_cmd 
-
-app_bt_role_switch:
-33df 700a991d jam bt_cmd_role_switch ,mem_fifo_temp 
-33e0 20207d8f branch ui_ipc_send_cmd 
-
-app_bt_start_reconnect:
-33e1 44e5c019 bpatch patch19_3 ,mem_patch19 
-33e2 6800c207 fetch 1 ,mem_app_connection_options 
-33e3 6000816d store 1 ,mem_connection_options 
-33e4 70022801 jam app_flag_reconnect ,mem_reconnect_flag 
-33e5 700a9903 jam bt_cmd_reconnect ,mem_fifo_temp 
-33e6 20207d8f branch ui_ipc_send_cmd 
-
-app_bt_reconnect_cancel:
-33e7 700a991e jam bt_cmd_bb_reconn_cancel ,mem_fifo_temp 
-33e8 20207d8f branch ui_ipc_send_cmd 
-
-app_bt_disconnect:
-33e9 700a9904 jam bt_cmd_disconnect ,mem_fifo_temp 
-33ea 20207d8f branch ui_ipc_send_cmd 
-
-app_bt_start_discovery_short:
-33eb 68014687 fetch 2 ,mem_discovery_timeout 
-33ec 6001467e store 2 ,mem_discovery_timeout_timer_count 
-
-app_bt_start_discovery_led_blink:
-33ed 20403404 call app_led_start_blink 
-
-app_bt_start_discovery:
-33ee 700a9901 jam bt_cmd_start_discovery ,mem_fifo_temp 
-33ef 20207d8f branch ui_ipc_send_cmd 
-
-app_bt_stop_discovery:
-33f0 58000000 setarg 0 
-33f1 6001467e store 2 ,mem_discovery_timeout_timer_count 
-33f2 700a9902 jam bt_cmd_stop_discovery ,mem_fifo_temp 
-33f3 20207d8f branch ui_ipc_send_cmd 
-
-app_ble_start_direct_adv:
-33f4 700a990f jam bt_cmd_start_direct_adv ,mem_fifo_temp 
-33f5 20207d8f branch ui_ipc_send_cmd 
-
-app_ble_stop_direct_adv:
-33f6 700a9910 jam bt_cmd_stop_direct_adv ,mem_fifo_temp 
-33f7 20207d8f branch ui_ipc_send_cmd 
-
-app_ble_stop_adv:
-33f8 700a990e jam bt_cmd_stop_adv ,mem_fifo_temp 
-33f9 20207d8f branch ui_ipc_send_cmd 
-
-app_ble_start_adv:
-33fa 700a990d jam bt_cmd_start_adv ,mem_fifo_temp 
-33fb 20207d8f branch ui_ipc_send_cmd 
-
-app_ble_start_scan:
-33fc 700a9917 jam bt_cmd_le_start_scan ,mem_fifo_temp 
-33fd 20207d8f branch ui_ipc_send_cmd 
-
-app_ble_stop_scan:
-33fe 700a9918 jam bt_cmd_le_stop_scan ,mem_fifo_temp 
-33ff 20207d8f branch ui_ipc_send_cmd 
-
-app_ble_start_conn:
-3400 700a9916 jam bt_cmd_le_start_conn ,mem_fifo_temp 
-3401 20207d8f branch ui_ipc_send_cmd 
-
-app_ble_disconnect:
-3402 700a9911 jam bt_cmd_le_disconnect ,mem_fifo_temp 
-3403 20207d8f branch ui_ipc_send_cmd 
-
-app_led_start_blink:
-3404 700a9915 jam bt_cmd_led_blink ,mem_fifo_temp 
-3405 20207d8f branch ui_ipc_send_cmd 
-
-app_led_on:
-3406 700a9914 jam bt_cmd_led_on ,mem_fifo_temp 
-3407 20207d8f branch ui_ipc_send_cmd 
-
-app_led_stop_blink:
-
-app_led_off:
-3408 700a9913 jam bt_cmd_led_off ,mem_fifo_temp 
-3409 20207d8f branch ui_ipc_send_cmd 
-
-app_enter_hibernate:
-340a 700a9919 jam bt_cmd_enter_hibernate ,mem_fifo_temp 
-340b 20207d8f branch ui_ipc_send_cmd 
-
-app_bt_sniff_exit:
-340c 700a9906 jam bt_cmd_exit_sniff ,mem_fifo_temp 
-340d 20207d8f branch ui_ipc_send_cmd 
-
-app_bt_enter_sniff:
-340e 700a9905 jam bt_cmd_enter_sniff ,mem_fifo_temp 
-340f 20207d8f branch ui_ipc_send_cmd 
-
-app_ble_store_reconn_info:
-3410 700a991f jam bt_cmd_store_reconn_info_le ,mem_fifo_temp 
-3411 20207d8f branch ui_ipc_send_cmd 
-
-app_bt_store_reconn_info:
-3412 700a9920 jam bt_cmd_store_reconn_info_bt ,mem_fifo_temp 
-3413 20207d8f branch ui_ipc_send_cmd 
-
-app_store_reconn_info:
-3414 700a9925 jam bt_cmd_store_reconn_info ,mem_fifo_temp 
-3415 20207d8f branch ui_ipc_send_cmd 
-
-app_lpm_mult_enable:
-3416 7920000d set1 mark_lpm_mult_enable ,mark 
-3417 20600000 rtn 
-
-app_lpm_mult_disable:
-3418 793f800d set0 mark_lpm_mult_enable ,mark 
-3419 20600000 rtn 
-
-app_button_long_pressed:
-341a 2040342d call app_got_power_state_common 
-341b c0013424 beq power_standby ,app_power_shutting_down 
-
-app_power_starting:
-341c 58000001 setarg power_starting 
-341d e2608000 istore 1 ,regc 
-341e 1840a203 add temp ,power_starting_timeout_offset ,rega 
-341f 1840a406 add temp ,power_starting_cb_offset ,regb 
-
-app_power_common:
-3420 ea288000 ifetcht 1 ,rega 
-3421 1a60a601 increase 1 ,regc 
-3422 e2688000 istoret 1 ,regc 
-3423 20203385 branch app_power_cb_common 
-
-app_power_shutting_down:
-3424 58000000 setarg power_off 
-3425 e2608000 istore 1 ,regc 
-3426 68014682 fetch 2 ,mem_ui_state_map 
-3427 c304b429 bbit0 ui_state_ble_connected ,app_power_off_end 
-3428 20403402 call app_ble_disconnect 
-
-app_power_off_end:
-3429 6809423f fetcht 2 ,mem_power_param_ptr 
-342a 1840a202 add temp ,power_off_timeout_offset ,rega 
-342b 1840a404 add temp ,power_off_cb_offset ,regb 
-342c 20203420 branch app_power_common 
-
-app_got_power_state_common:
-342d 6809423f fetcht 2 ,mem_power_param_ptr 
-342e 1840a600 add temp ,power_state_offset ,regc 
-342f ea608000 ifetch 1 ,regc 
-3430 20600000 rtn 
-
-app_event_button_up:
-3431 2040342d call app_got_power_state_common 
-3432 c0803434 bne power_off ,app_power_release 
-3433 2020340a branch app_enter_hibernate 
-
-app_power_release:
-3434 1840a40a add temp ,ui_butten_up_cb_offset ,regb 
-3435 20203385 branch app_power_cb_common 
-
-antilost_init:
-3436 20758000 rtn wake 
-3437 70808100 jam 0x00 ,core_gpio_sel1 
-3438 58003463 setarg antilost_le_before_hibernate 
-3439 600141eb store 2 ,mem_cb_before_hibernate 
-343a 5800696c setarg keyscan_process_lpm_before 
-343b 600141ed store 2 ,mem_cb_before_lpm 
-343c 580034f5 setarg antilost_idle_process 
-343d 600141f3 store 2 ,mem_cb_idle_process 
-343e 580034f4 setarg antilost_le_conn_process 
-343f 600141ef store 2 ,mem_cb_le_process 
-3440 5800347e setarg antilost_bb_event_process 
-3441 600141f5 store 2 ,mem_cb_bb_event_process 
-3442 580034b2 setarg antilost_le_bb_event_timer 
-3443 600141fd store 2 ,mem_cb_event_timer 
-3444 58003465 setarg antilost_le_notification 
-3445 600141fb store 2 ,mem_cb_ble_transmit 
-3446 58003470 setarg antilost_lpm_lock_process 
-3447 600141e9 store 2 ,mem_cb_check_wakelock 
-3448 58003501 setarg antilost_le_receive_data_process 
-3449 600141f9 store 2 ,mem_cb_att_write 
-344a 44e64019 bpatch patch19_4 ,mem_patch19 
-344b 2040359b call antilost_buzzer_pwm_init 
-344c 20406948 call keyscan_key_init 
-344d 204035ad call antilost_adc_init 
-344e 20407d08 call ui_led_init_global 
-344f 20407cd3 call ui_button_init 
-3450 5800350b setarg antilost_key_up_down 
-3451 60014766 store 2 ,mem_cb_antl_key 
-3452 580034fc setarg antilost_power_off_cb 
-3453 6001475d store 2 ,mem_antl_power_off_cb 
-3454 580034f8 setarg antilost_power_starting_cb 
-3455 6001475f store 2 ,mem_antl_power_starting_cb 
-3456 5800346c setarg antilost_power_standby_cb 
-3457 60014761 store 2 ,mem_antl_power_standby_cb 
-3458 580035a2 setarg antilost_led_on_cb 
-3459 600146a9 store 2 ,mem_antl_led_cb_on 
-345a 580035a4 setarg antilost_led_off_cb 
-345b 600146ab store 2 ,mem_antl_led_cb_off 
-345c 580035a9 setarg antilost_buzzer_on 
-345d 600146b4 store 2 ,mem_antl_buzzer_cb_on 
-345e 580035a6 setarg antilost_buzzer_off 
-345f 600146b6 store 2 ,mem_antl_buzzer_cb_off 
-3460 68014682 fetch 2 ,mem_ui_state_map 
-3461 c3860000 rtnbit1 ui_state_btn_down 
-3462 2020340a branch app_enter_hibernate 
-
-antilost_le_before_hibernate:
-3463 20403586 call antilost_led_buzzer_stop_blink 
-3464 2020340a branch app_enter_hibernate 
-
-antilost_le_notification:
-3465 20405892 call le_fifo_check_nearly_full 
-3466 247a0000 nrtn blank 
-3467 da200b06 arg mem_temp_block5 ,rega 
-3468 20407e54 call queue_pop 
-3469 24740000 nrtn user 
-346a d8c00b06 arg mem_temp_block5 ,contr 
-346b 20204746 branch le_send_notify_from_list 
-
-antilost_power_standby_cb:
-346c 68014797 fetch 2 ,mem_antl_le_sleep_timeout 
-346d 60014791 store 2 ,mem_antl_le_sleep_timer 
-346e 70475301 jam 1 ,mem_antl_key_scan_enable 
-346f 2020358f branch antilost_fast_adv_start 
-
-antilost_lpm_lock_process:
-3470 6800c79d fetch 1 ,mem_antl_key_state 
-3471 c000b479 beq 1 ,antilost_lpm_ctrl_for_led_buzzer 
-3472 68014682 fetch 2 ,mem_ui_state_map 
-3473 c304b479 bbit0 ui_state_ble_connected ,antilost_lpm_ctrl_for_led_buzzer 
-3474 6800c79e fetch 1 ,mem_antl_lost_mode 
-3475 c000b3d0 beq 1 ,app_get_lpm_wake_lock 
-3476 6800c700 fetch 1 ,mem_antl_queue_curr_num 
-3477 243a33d0 nbranch app_get_lpm_wake_lock ,blank 
-3478 202033d2 branch app_put_lpm_wake_lock 
-
-antilost_lpm_ctrl_for_led_buzzer:
-3479 6800c79b fetch 1 ,mem_antl_led_state 
-347a 6808c79c fetcht 1 ,mem_antl_buzzer_state 
-347b 9841fe00 ior temp ,pdata 
-347c c000b3d0 beq 1 ,app_get_lpm_wake_lock 
-347d 202033d2 branch app_put_lpm_wake_lock 
-
-antilost_bb_event_process:
-347e 1a627e00 copy regc ,pdata 
-347f c016b431 beq bt_evt_button_up ,app_event_button_up 
-3480 c008341a beq bt_evt_button_long_pressed ,app_button_long_pressed 
-3481 c00a34df beq bt_evt_le_connected ,antilost_le_process_conn 
-3482 c00ab4e8 beq bt_evt_le_disconnected ,antilost_le_process_discon 
-3483 c0203485 beq bt_evt_le_parse_conn_papa_update_rsp ,antilost_le_conn_param_update_rsp_recieved 
-3484 20600000 rtn 
-
-antilost_le_conn_param_update_rsp_recieved:
-3485 68014509 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
-3486 c000b48c beq ble_signaling_connect_parameter_update_rejected ,antilost_le_conn_param_rejected 
-
-antilost_le_conn_param_accepted:
-3487 680143d8 fetch 2 ,mem_le_new_connslavelatency 
-3488 203a34a2 branch antilost_master_nonsupport_latency ,blank 
-
-antilost_le_conn_param_updata_procedure_sucsess:
-3489 70478a02 jam conn_param_updata_procedure_complete ,mem_antl_conn_updata_procedure_state 
-348a 70478f3c jam 60 ,mem_antl_conn_update_timer 
-348b 20600000 rtn 
-
-antilost_le_conn_param_rejected:
-348c 6801449a fetch 2 ,mem_le_latency 
-348d 203a34a0 branch antilost_conn_param_updata_procedure_faild ,blank 
-
-antilost_conn_param_retransimiting:
-348e 70478a01 jam conn_param_updata_procedure_starting ,mem_antl_conn_updata_procedure_state 
-348f 680947b4 fetcht 2 ,mem_interval_increment 
-3490 68014496 fetch 2 ,mem_le_interval_min 
-3491 9840fe00 iadd temp ,pdata 
-3492 60014496 store 2 ,mem_le_interval_min 
-3493 1fe22200 copy pdata ,rega 
-3494 68014498 fetch 2 ,mem_le_interval_max 
-3495 9840fe00 iadd temp ,pdata 
-3496 60014498 store 2 ,mem_le_interval_max 
-3497 9a20fe00 iadd rega ,pdata 
-3498 1fe30400 rshift pdata ,temp 
-3499 680147c0 fetch 2 ,mem_antl_le_unnormal_interval_max 
-349a 9846fc00 idiv temp 
-349b 20407f86 call wait_div_end 
-349c 1807fe00 quotient pdata 
-349d 6001449a store 2 ,mem_le_latency 
-349e 70479001 jam 1 ,mem_antl_send_updata_le_param_timer 
-349f 20600000 rtn 
-
-antilost_conn_param_updata_procedure_faild:
-34a0 70478a03 jam conn_param_updata_procedure_faild ,mem_antl_conn_updata_procedure_state 
-34a1 20600000 rtn 
-
-antilost_master_nonsupport_latency:
-34a2 70417200 jam 0 ,mem_lpm_mult 
-34a3 70479000 jam 0 ,mem_antl_send_updata_le_param_timer 
-34a4 680143d6 fetch 2 ,mem_le_new_conninterval 
-34a5 680947be fetcht 2 ,mem_antl_le_unnormal_interval_min 
-34a6 98467c00 isub temp ,null 
-34a7 79212200 setflag positive ,0 ,rega 
-34a8 680147c0 fetch 2 ,mem_antl_le_unnormal_interval_max 
-34a9 680943d6 fetcht 2 ,mem_le_new_conninterval 
-34aa 98467e00 isub temp ,pdata 
-34ab 79212201 setflag positive ,1 ,rega 
-34ac 2a200603 compare 0x03 ,rega ,0x03 
-34ad 20608000 rtn true 
-34ae 680447be fetch 8 ,mem_antl_le_unnormal_interval_min 
-34af 60044496 store 8 ,mem_le_interval_min 
-34b0 70479001 jam 1 ,mem_antl_send_updata_le_param_timer 
-34b1 20600000 rtn 
-
-antilost_le_bb_event_timer:
-34b2 2040337b call app_power_timer 
-34b3 204034b9 call antilost_double_click_timer 
-34b4 204034be call antilost_le_fast_adv_timer 
-34b5 204034d5 call antilost_le_sleep_timer 
-34b6 204034ca call antilost_app_updata_le_param_timer 
-34b7 204034c4 call antilost_conn_update_timer 
-34b8 202034d9 branch antilost_adc_check_timer 
-
-antilost_double_click_timer:
-34b9 da604799 arg mem_double_click_timer ,regc 
-34ba da4034bc arg antilost_double_click_timeout ,regb 
-34bb 2020336d branch timer_single_step 
-
-antilost_double_click_timeout:
-34bc 70479a00 jam 0 ,mem_butten_click_cnt 
-34bd 20600000 rtn 
-
-antilost_le_fast_adv_timer:
-34be da604793 arg mem_antl_fast_adv_timer ,regc 
-34bf da4034c1 arg antilost_le_fast_adv_timeout ,regb 
-34c0 20203374 branch timer_single_step_2b 
-
-antilost_le_fast_adv_timeout:
-34c1 da6046bf arg mem_antl_slow_adv_led_style ,regc 
-34c2 da40469e arg mem_antl_slow_adv_lpm_interval ,regb 
-34c3 20203591 branch antilost_adv_start_common 
-
-antilost_conn_update_timer:
-34c4 da60478f arg mem_antl_conn_update_timer ,regc 
-34c5 da4034c7 arg antilost_conn_update_timer_time_out ,regb 
-34c6 2020336d branch timer_single_step 
-
-antilost_conn_update_timer_time_out:
-34c7 6801449a fetch 2 ,mem_le_latency 
-34c8 6000c172 store 1 ,mem_lpm_mult 
-34c9 20600000 rtn 
-
-antilost_app_updata_le_param_timer:
-34ca da604790 arg mem_antl_send_updata_le_param_timer ,regc 
-34cb da4034cd arg antilost_app_updata_le_param_timeout ,regb 
-34cc 2020336d branch timer_single_step 
-
-antilost_app_updata_le_param_timeout:
-34cd 6800843f fetch 1 ,mem_le_state 
-34ce 2fe0c000 compare 0 ,pdata ,0x60 
-34cf 2420b4d3 nbranch antilost_wait_for_updata_param_instant_expire ,true 
-34d0 70478a01 jam conn_param_updata_procedure_starting ,mem_antl_conn_updata_procedure_state 
-34d1 20403416 call app_lpm_mult_enable 
-34d2 20205abf branch le_l2cap_tx_update_req 
-
-antilost_wait_for_updata_param_instant_expire:
-34d3 70479001 jam 1 ,mem_antl_send_updata_le_param_timer 
-34d4 20600000 rtn 
-
-antilost_le_sleep_timer:
-34d5 da604791 arg mem_antl_le_sleep_timer ,regc 
-34d6 da4034d8 arg antilost_le_sleep_timer_timeout ,regb 
-34d7 20203374 branch timer_single_step_2b 
-
-antilost_le_sleep_timer_timeout:
-34d8 2020341a branch app_button_long_pressed 
-
-antilost_adc_check_timer:
-34d9 da60478d arg mem_adc_timer ,regc 
-34da da4034dc arg antilost_adc_check_timer_timeout ,regb 
-34db 20203374 branch timer_single_step_2b 
-
-antilost_adc_check_timer_timeout:
-34dc 680147a7 fetch 2 ,mem_adc_timeout 
-34dd 6001478d store 2 ,mem_adc_timer 
-34de 202035af branch antilost_battery_process 
-
-antilost_le_process_conn:
-34df 680147a7 fetch 2 ,mem_adc_timeout 
-34e0 6001478d store 2 ,mem_adc_timer 
-34e1 58000000 setarg 0 
-34e2 60014793 store 2 ,mem_antl_fast_adv_timer 
-34e3 60014791 store 2 ,mem_antl_le_sleep_timer 
-34e4 2040355c call antilost_alert_off 
-34e5 20403586 call antilost_led_buzzer_stop_blink 
-34e6 70417200 jam 0 ,mem_lpm_mult 
-34e7 202033f8 branch app_ble_stop_adv 
-
-antilost_le_process_discon:
-34e8 58000000 setarg 0 
-34e9 6002478d store 4 ,mem_adc_timer 
-34ea 6001c78a store 3 ,mem_antl_conn_updata_procedure_state 
-34eb 60014509 store 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
-34ec 7047a001 jam 1 ,mem_alarm_config_notfy_cnt 
-34ed 68014797 fetch 2 ,mem_antl_le_sleep_timeout 
-34ee 60014791 store 2 ,mem_antl_le_sleep_timer 
-34ef 20407e38 call queue_init 
-34f0 6800c759 fetch 1 ,mem_antl_power_state 
-34f1 c1000000 rtneq power_off 
-34f2 2040358f call antilost_fast_adv_start 
-34f3 2020356e branch antilost_on_off_alarm_after_disconn 
-
-antilost_le_conn_process:
-34f4 20203508 branch antilost_key_process 
-
-antilost_idle_process:
-34f5 6800c759 fetch 1 ,mem_antl_power_state 
-34f6 c1810000 rtnne power_standby 
-34f7 20203508 branch antilost_key_process 
-
-antilost_power_starting_cb:
-34f8 da6046cd arg mem_antl_power_starting_buzzer_style ,regc 
-34f9 20403582 call antilost_buzzer_configuration 
-34fa da6046c6 arg mem_antl_power_starting_led_style ,regc 
-
-antilost_power_common:
-34fb 20203584 branch antilost_led_configuration 
-
-antilost_power_off_cb:
-34fc 70436e00 jam off ,mem_le_adv_enable 
-34fd da6046db arg mem_antl_power_off_buzzer_style ,regc 
-34fe 20403582 call antilost_buzzer_configuration 
-34ff da6046d4 arg mem_antl_power_off_led_style ,regc 
-3500 202034fb branch antilost_power_common 
-
-antilost_le_receive_data_process:
-3501 68008477 fetch 1 ,mem_le_att_opcode 
-3502 c0093504 beq attop_write_request ,antilost_le_parse_att_write_request 
-3503 20600000 rtn 
-
-antilost_le_parse_att_write_request:
-3504 68010478 fetch 2 ,mem_le_att_handle 
-3505 c006b536 beq new_spec_write_handle ,antilost_cmd_parse_for_application 
-3506 c005b571 beq new_spec_notification_enable_handle ,antilost_notify_alarm_config_first_time 
-3507 20600000 rtn 
-
-antilost_key_process:
-3508 6800c753 fetch 1 ,mem_antl_key_scan_enable 
-3509 207a0000 rtn blank 
-350a 20206978 branch keyscan_key_process 
-
-antilost_key_up_down:
-350b 1a227e00 copy rega ,pdata 
-350c 203a3510 branch antilost_key_is_up ,blank 
-
-antilost_key_is_down:
-350d 18e27e00 copy queue ,pdata 
-350e c0003513 beq 0 ,antilost_key0_down 
-350f 20600000 rtn 
-
-antilost_key_is_up:
-3510 18e27e00 copy queue ,pdata 
-3511 c000351b beq 0 ,antilost_key0_up 
-3512 20600000 rtn 
-
-antilost_key0_down:
-3513 70479d01 jam 1 ,mem_antl_key_state 
-3514 da6046f7 arg mem_antl_key_buzzer_style ,regc 
-3515 20403582 call antilost_buzzer_configuration 
-3516 da6046f0 arg mem_antl_key_led_style ,regc 
-3517 20403584 call antilost_led_configuration 
-3518 68014682 fetch 2 ,mem_ui_state_map 
-3519 c304b532 bbit0 ui_state_ble_connected ,antilost_butten_down_while_disconn 
-351a 20203521 branch antilost_butten_down_after_conn 
-
-antilost_key0_up:
-351b 70479d00 jam 0 ,mem_antl_key_state 
-351c 2020351d branch antilost_double_click_timer_init 
-
-antilost_double_click_timer_init:
-351d 6800c79a fetch 1 ,mem_butten_click_cnt 
-351e c1808000 rtnne 1 
-351f 70479905 jam 5 ,mem_double_click_timer 
-3520 20600000 rtn 
-
-antilost_butten_down_after_conn:
-3521 6800c79a fetch 1 ,mem_butten_click_cnt 
-3522 1fe0fe01 pincrease 1 
-3523 6000c79a store 1 ,mem_butten_click_cnt 
-3524 c000b527 beq 1 ,antilost_click_once 
-3525 c001352b beq 2 ,antilost_click_twice 
-3526 20600000 rtn 
-
-antilost_click_once:
-3527 2040355c call antilost_alert_off 
-3528 70477101 jam opcode1_butten_click_once ,mem_antl_key0_press + 5 
-3529 da60476c arg mem_antl_key0_press ,regc 
-352a 20203544 branch antilost_prepare_data_and_send 
-
-antilost_click_twice:
-352b 70479a00 jam 0 ,mem_butten_click_cnt 
-352c 70477102 jam opcode2_butten_double_click ,mem_antl_key0_press + 5 
-352d da60476c arg mem_antl_key0_press ,regc 
-352e 20403544 call antilost_prepare_data_and_send 
-352f 6800c79e fetch 1 ,mem_antl_lost_mode 
-3530 c000b551 beq 1 ,antilost_alert_on 
-3531 20600000 rtn 
-
-antilost_butten_down_while_disconn:
-3532 68014797 fetch 2 ,mem_antl_le_sleep_timeout 
-3533 60014791 store 2 ,mem_antl_le_sleep_timer 
-3534 2040355c call antilost_alert_off 
-3535 2020358f branch antilost_fast_adv_start 
-
-antilost_cmd_parse_for_application:
-3536 44e6c019 bpatch patch19_5 ,mem_patch19 
-3537 204036fc call le_app_receive_data 
-3538 ea208000 ifetch 1 ,rega 
-3539 c001b53c beq opcode3_antl_start_alram ,antilost_on_of_alram 
-353a c003b540 beq opcode7_antl_config_alram ,antilost_configuration_for_alram 
-353b 20600000 rtn 
-
-antilost_on_of_alram:
-353c 6800c79e fetch 1 ,mem_antl_lost_mode 
-353d c0003551 beq anti_le_alarm_off ,antilost_alert_on 
-353e c000b55c beq anti_le_alarm_on ,antilost_alert_off 
-353f 20600000 rtn 
-
-antilost_configuration_for_alram:
-3540 ea408000 ifetch 1 ,regb 
-3541 c000b564 beq 1 ,antilost_set_start_alarm_after_disconn 
-3542 c0003569 beq 0 ,antilost_set_no_alarm_after_disconn 
-3543 20600000 rtn 
-
-antilost_prepare_data_and_send:
-3544 44e74019 bpatch patch19_6 ,mem_patch19 
-3545 6800c78b fetch 1 ,mem_client_characteristic_configuration_descriptor 
-3546 2feffe00 isolate1 notification_enable_bit ,pdata 
-3547 24608000 nrtn true 
-3548 1a608c06 add regc ,6 ,contr 
-3549 e8c10000 ifetch 2 ,contr 
-354a 1ff0fe00 byteswap pdata ,pdata 
-354b 1fe0f205 add pdata ,5 ,loopcnt 
-354c 1a608c03 add regc ,3 ,contr 
-354d 204036f0 call calc_check_sum_start 
-354e e0c08000 istore 1 ,contr 
-354f 1a622200 copy regc ,rega 
-3550 20207e3d branch queue_push 
-
-antilost_alert_on:
-3551 6800c759 fetch 1 ,mem_antl_power_state 
-3552 207a0000 rtn blank 
-3553 70479e01 jam 1 ,mem_antl_lost_mode 
-3554 da6046e9 arg mem_antl_alert_buzzer_stlye ,regc 
-3555 20403582 call antilost_buzzer_configuration 
-3556 da6046e2 arg mem_antl_alert_led_stlye ,regc 
-3557 20403584 call antilost_led_configuration 
-3558 70478004 jam opcode4_current_alarm_state ,mem_antl_key0_release + 5 
-3559 70478301 jam 1 ,mem_antl_key0_release + 8 
-355a da60477b arg mem_antl_key0_release ,regc 
-355b 20203544 branch antilost_prepare_data_and_send 
-
-antilost_alert_off:
-355c 6800c79e fetch 1 ,mem_antl_lost_mode 
-355d 207a0000 rtn blank 
-355e 70479e00 jam 0 ,mem_antl_lost_mode 
-355f 20403586 call antilost_led_buzzer_stop_blink 
-3560 70478004 jam opcode4_current_alarm_state ,mem_antl_key0_release + 5 
-3561 70478300 jam 0 ,mem_antl_key0_release + 8 
-3562 da60477b arg mem_antl_key0_release ,regc 
-3563 20203544 branch antilost_prepare_data_and_send 
-
-antilost_set_start_alarm_after_disconn:
-3564 70479f01 jam 1 ,mem_alarm_config 
-3565 70478007 jam opcode7_antl_config_alram ,mem_antl_key0_release + 5 
-3566 70478301 jam 1 ,mem_antl_key0_release + 8 
-3567 da60477b arg mem_antl_key0_release ,regc 
-3568 20203544 branch antilost_prepare_data_and_send 
-
-antilost_set_no_alarm_after_disconn:
-3569 70479f00 jam 0 ,mem_alarm_config 
-356a 70478007 jam opcode7_antl_config_alram ,mem_antl_key0_release + 5 
-356b 70478300 jam 0 ,mem_antl_key0_release + 8 
-356c da60477b arg mem_antl_key0_release ,regc 
-356d 20203544 branch antilost_prepare_data_and_send 
-
-antilost_on_off_alarm_after_disconn:
-356e 6800c79f fetch 1 ,mem_alarm_config 
-356f 207a0000 rtn blank 
-3570 20203551 branch antilost_alert_on 
-
-antilost_notify_alarm_config_first_time:
-3571 ea210000 ifetch 2 ,rega 
-3572 6001478b store 2 ,mem_client_characteristic_configuration_descriptor 
-3573 2feffe00 isolate1 notification_enable_bit ,pdata 
-3574 24608000 nrtn true 
-3575 6800c7a0 fetch 1 ,mem_alarm_config_notfy_cnt 
-3576 207a0000 rtn blank 
-3577 7047a000 jam 0 ,mem_alarm_config_notfy_cnt 
-3578 680447b6 fetch 8 ,mem_antl_le_interval_min 
-3579 60044496 store 8 ,mem_le_interval_min 
-357a 70479002 jam 2 ,mem_antl_send_updata_le_param_timer 
-357b 204035af call antilost_battery_process 
-357c 204035b9 call antilost_battery_calculate_end 
-357d 70478007 jam opcode7_antl_config_alram ,mem_antl_key0_release + 5 
-357e 6800c79f fetch 1 ,mem_alarm_config 
-357f 6000c783 store 1 ,mem_antl_key0_release + 8 
-3580 da60477b arg mem_antl_key0_release ,regc 
-3581 20203544 branch antilost_prepare_data_and_send 
-
-antilost_buzzer_configuration:
-3582 da200001 arg 1 ,rega 
-3583 20203585 branch antilost_configuration_common 
-
-antilost_led_configuration:
-3584 da200000 arg 0 ,rega 
-
-antilost_configuration_common:
-3585 2020358c branch antilost_led_buzzer_style_configuration 
-
-antilost_led_buzzer_stop_blink:
-3586 da200000 arg 0 ,rega 
-3587 20407d19 call ui_led_blink_stop_global 
-3588 da200001 arg 1 ,rega 
-3589 20407d19 call ui_led_blink_stop_global 
-358a 6800c7a1 fetch 1 ,mem_buzzer_pwm_conf 
-358b 202069d7 branch pwm_disable 
-
-antilost_led_buzzer_style_configuration:
-358c 20407d04 call calc_curr_struct_prt 
-358d df200007 arg 7 ,loopcnt 
-358e 20207d26 branch ui_led_set_style_global + 2 
-
-antilost_fast_adv_start:
-358f da6046b8 arg mem_antl_fast_adv_led_style ,regc 
-3590 da40469a arg mem_antl_lpm_interval ,regb 
-
-antilost_adv_start_common:
-3591 20403596 call antilost_adv_interval_lpm_interval_set 
-3592 20403584 call antilost_led_configuration 
-3593 68014795 fetch 2 ,mem_antl_fast_adv_timeout 
-3594 60014793 store 2 ,mem_antl_fast_adv_timer 
-3595 202033fa branch app_ble_start_adv 
-
-antilost_adv_interval_lpm_interval_set:
-3596 ea410000 ifetch 2 ,regb 
-3597 60014154 store 2 ,mem_lpm_interval 
-3598 e8c10000 ifetch 2 ,contr 
-3599 60014482 store 2 ,mem_le_adv_interval 
-359a 20600000 rtn 
-
-antilost_buzzer_pwm_init:
-359b da200000 arg 0 ,rega 
-359c 204069a6 call pwm_init 
-359d 680347a1 fetch 6 ,mem_buzzer_pwm_conf 
-359e 60030a9a store 6 ,mem_pdatatemp 
-359f 204069ae call pwm_out_set 
-35a0 6800c7a1 fetch 1 ,mem_buzzer_pwm_conf 
-35a1 202069d7 branch pwm_disable 
-
-antilost_led_on_cb:
-35a2 70479b01 jam 1 ,mem_antl_led_state 
-35a3 20600000 rtn 
-
-antilost_led_off_cb:
-35a4 70479b00 jam 0 ,mem_antl_led_state 
-35a5 20600000 rtn 
-
-antilost_buzzer_off:
-35a6 70479c00 jam 0 ,mem_antl_buzzer_state 
-35a7 6800c7a1 fetch 1 ,mem_buzzer_pwm_conf 
-35a8 202069d7 branch pwm_disable 
-
-antilost_buzzer_on:
-35a9 70479c01 jam 1 ,mem_antl_buzzer_state 
-35aa 680347a1 fetch 6 ,mem_buzzer_pwm_conf 
-35ab 60030a9a store 6 ,mem_pdatatemp 
-35ac 202069ae branch pwm_out_set 
-
-antilost_adc_init:
-35ad 70422d00 jam 0 ,mem_adc_config_flag 
-35ae 202068a8 branch adc_init_data 
-
-antilost_battery_process:
-35af 204068eb call adc_set_mode 
-35b0 20406908 call vdd_calculate_by_mode 
-35b1 600147b0 store 2 ,mem_battery_current_voltage 
-35b2 da2047aa arg mem_battery_calculate_set ,rega 
-35b3 20406930 call adc_bat_percent_lowpower_out 
-35b4 6000c7a9 store 1 ,mem_voltage_remain_percent 
-35b5 c00035be beq 0 ,antilost_low_battery 
-35b6 1fe67c64 sub pdata ,0x64 ,null 
-35b7 242135bc nbranch antilost_full_battery ,positive 
-35b8 6000c783 store 1 ,mem_antl_key0_release + 8 
-
-antilost_battery_calculate_end:
-35b9 70478005 jam opcode5_batter_information ,mem_antl_key0_release + 5 
-35ba da60477b arg mem_antl_key0_release ,regc 
-35bb 20203544 branch antilost_prepare_data_and_send 
-
-antilost_full_battery:
-35bc 70478364 jam 100 ,mem_antl_key0_release + 8 
-35bd 202035b9 branch antilost_battery_calculate_end 
-
-antilost_low_battery:
-35be 2020341a branch app_button_long_pressed 
-
-car_init:
-35bf 20758000 rtn wake 
-35c0 68108081 hfetch 1 ,core_gpio_sel1 
-35c1 1fe17ef0 and_into 0xf0 ,pdata 
-35c2 60108081 hstore 1 ,core_gpio_sel1 
-35c3 58003631 setarg car_le_before_hibernate 
-35c4 600141eb store 2 ,mem_cb_before_hibernate 
-35c5 58003633 setarg car_le_process_lpm_before 
-35c6 600141ed store 2 ,mem_cb_before_lpm 
-35c7 5800340a setarg app_enter_hibernate 
-35c8 600141f7 store 2 ,mem_cb_discovry_timeout 
-35c9 58003635 setarg car_scale_process_idle 
-35ca 600141f3 store 2 ,mem_cb_idle_process 
-35cb 5800364b setarg car_scale_process_bb_event 
-35cc 600141f5 store 2 ,mem_cb_bb_event_process 
-35cd 580033d0 setarg app_get_lpm_wake_lock 
-35ce 600141e9 store 2 ,mem_cb_check_wakelock 
-35cf 580036f6 setarg car_le_receive_data 
-35d0 600141f9 store 2 ,mem_cb_att_write 
-35d1 5800367a setarg car_le_bb_event_timer 
-35d2 600141fd store 2 ,mem_cb_event_timer 
-35d3 20402c7a call g24_head_ptr2regc 
-35d4 58003722 setarg car_24g_receive_data 
-35d5 1a608ade add regc ,offset_24g_cb_rxdata_type1 ,contw 
-35d6 e0a10000 istore 2 ,contw 
-35d7 580035ed setarg car_power_off_signal 
-35d8 6001475b store 2 ,mem_remote_car_power_off_cb 
-35d9 580035ef setarg car_soft_switch_power_on_signal 
-35da 6001475f store 2 ,mem_remote_car_power_standby_cb 
-35db 44e7c019 bpatch patch19_7 ,mem_patch19 
-35dc 20403628 call car_init_environment 
-35dd 20407e38 call queue_init 
-35de 70417202 jam 2 ,mem_lpm_mult 
-35df 7049f600 jam power_on ,mem_car_24g_received_pac 
-35e0 6800c7cb fetch 1 ,mem_car_config_soft_switch_enable 
-35e1 6000c69a store 1 ,mem_car_hard_soft_switch 
-35e2 c00035ee beq hard_switch ,car_hard_switch_power_on_signal 
-35e3 6800c7cc fetch 1 ,mem_car_config_soft_switch_gpio 
-35e4 6000c686 store 1 ,mem_ui_button_gpio 
-35e5 70436e00 jam off ,mem_le_adv_enable 
-
-car_soft_switch_power_on_init:
-35e6 2040360f call car_ui_led_init 
-35e7 20407cd3 call ui_button_init 
-35e8 20407cdd call ui_button_polling 
-35e9 7047f301 jam power_starting ,mem_car_power_state 
-35ea 68014682 fetch 2 ,mem_ui_state_map 
-35eb c3860000 rtnbit1 ui_state_btn_down 
-35ec 2020340a branch app_enter_hibernate 
-
-car_power_off_signal:
-35ed 2020360f branch car_ui_led_init 
-
-car_hard_switch_power_on_signal:
-35ee 7047f302 jam power_standby ,mem_car_power_state 
-
-car_soft_switch_power_on_signal:
-35ef 70436e01 jam on ,mem_le_adv_enable 
-35f0 2040360f call car_ui_led_init 
-35f1 da200000 arg 0 ,rega 
-35f2 20407d1e call ui_led_blink_start_global 
-35f3 58000020 setarg fast_adv_interval_value_car 
-35f4 204046f0 call shutter_ble_adv_interval_set 
-
-car_le_modified_name_adv:
-35f5 d8a043b7 arg mem_le_name + 7 ,contw 
-35f6 6800c4a0 fetch 1 ,mem_le_lap 
-
-car_name_loop:
-35f7 1fe104f0 and pdata ,0xF0 ,temp 
-35f8 18518400 rshift4 temp ,temp 
-35f9 20403609 call car_hex_to_ascii 
-35fa e0a88000 istoret 1 ,contw 
-35fb 1fe1040f and pdata ,0x0F ,temp 
-35fc 20403609 call car_hex_to_ascii 
-35fd e0a88000 istoret 1 ,contw 
-35fe 204057a6 call le_modified_name_att_list 
-35ff 6808c3af fetcht 1 ,mem_le_name_len 
-3600 18427200 copy temp ,loopcnt 
-3601 d8a04372 arg mem_le_adv_data + 2 ,contw 
-3602 d8c043b0 arg mem_le_name ,contr 
-3603 20407f01 call memcpy 
-
-car_le_modified_name_scan:
-3604 6808c3af fetcht 1 ,mem_le_name_len 
-3605 18427200 copy temp ,loopcnt 
-3606 d8a04392 arg mem_le_scan_data + 2 ,contw 
-3607 d8c043b0 arg mem_le_name ,contr 
-3608 20207f01 branch memcpy 
-
-car_hex_to_ascii:
-3609 18467c09 sub temp ,9 ,null 
-360a 2021360d branch car_hex_num ,positive 
-360b 18408437 add temp ,55 ,temp 
-360c 20600000 rtn 
-
-car_hex_num:
-360d 18408430 add temp ,48 ,temp 
-360e 20600000 rtn 
-
-car_ui_led_init:
-360f 6800c7c0 fetch 1 ,mem_car_config_blood_led1_gpio 
-3610 c0ffb621 bne invalid_pin_num ,car_blood_led_gpio_set 
-
-car_ui_led_init_1:
-3611 6800c7be fetch 1 ,mem_car_config_pairing_led_gpio 
-3612 c0ffb624 bne invalid_pin_num ,car_pairing_led_gpio_set 
-
-car_ui_led_init_2:
-3613 6800c7c9 fetch 1 ,mem_car_config_low_voltage_led_gpio 
-3614 c0ffb626 bne invalid_pin_num ,car_low_voltage_led_gpio_set 
-
-car_ui_led_init_3:
-3615 6800c72c fetch 1 ,mem_car_led_num 
-3616 1fe27200 copy pdata ,loopcnt 
-3617 5800472d setarg mem_car_led_map 
-3618 1fe22200 copy pdata ,rega 
-
-car_in_lp1:
-3619 1a220c00 copy rega ,contr 
-361a e8c08000 ifetch 1 ,contr 
-361b 18c22200 copy contr ,rega 
-361c c07fb61f beq invalid_pin_num ,car_in_lp1_end 
-361d 1fe20400 copy pdata ,temp 
-361e 2040680e call gpio_config_output 
-
-car_in_lp1_end:
-361f c2003619 loop car_in_lp1 
-
-car_ui_led_init_end:
-3620 20600000 rtn 
-
-car_blood_led_gpio_set:
-3621 680447c0 fetch 8 ,mem_car_config_blood_led1_gpio 
-3622 6004472f store 8 ,mem_car_led_map + 2 
-3623 20203611 branch car_ui_led_init_1 
-
-car_pairing_led_gpio_set:
-3624 6000c72d store 1 ,mem_car_led_map 
-3625 20203613 branch car_ui_led_init_2 
-
-car_low_voltage_led_gpio_set:
-3626 6000c72e store 1 ,mem_car_led_map + 1 
-3627 20203615 branch car_ui_led_init_3 
-
-car_init_environment:
-3628 da200000 arg 0 ,rega 
-3629 204069a6 call pwm_init 
-362a 204037e4 call car_ir_rx_init 
-362b 20402c7d call g24_receive_process_init 
-362c 2020362d branch car_init_adc_hvin 
-
-car_init_adc_hvin:
-362d 7047cf64 jam 100 ,mem_car_notify_vdd_value_last 
-362e 6800c7c9 fetch 1 ,mem_car_config_low_voltage_led_gpio 
-362f 6000c744 store 1 ,mem_car_style2_struct_led_gpio 
-3630 202068a8 branch adc_init_data 
-
-car_le_before_hibernate:
-3631 20406835 call gpio_set_before_lpm_common 
-3632 2020696c branch keyscan_process_lpm_before 
-
-car_le_process_lpm_before:
-3633 2020696c branch keyscan_process_lpm_before 
-
-car_key_scan_process:
-3634 20206978 branch keyscan_key_process 
-
-car_scale_process_idle:
-3635 20403642 call car_le_send_packet 
-3636 204037ee call car_ir_receive_process 
-3637 20403639 call car_g24_status_process 
-3638 20203634 branch car_key_scan_process 
-
-car_g24_status_process:
-3639 68014682 fetch 2 ,mem_ui_state_map 
-363a c3848000 rtnbit1 ui_state_ble_connected 
-363b 6800c9f6 fetch 1 ,mem_car_24g_received_pac 
-363c c000b63e beq work_paired ,car_g24_connected_event 
-363d 20600000 rtn 
-
-car_g24_connected_event:
-363e 6800c7ea fetch 1 ,mem_car_24g_status 
-363f c1008000 rtneq work_paired 
-3640 7047ea01 jam work_paired ,mem_car_24g_status 
-3641 20203654 branch car_g24_connected 
-
-car_le_send_packet:
-3642 68014682 fetch 2 ,mem_ui_state_map 
-3643 c4048000 rtnbit0 ui_state_ble_connected 
-3644 20405892 call le_fifo_check_nearly_full 
-3645 247a0000 nrtn blank 
-3646 da204718 arg mem_car_pop_queue_buff ,rega 
-3647 20407e54 call queue_pop 
-3648 24740000 nrtn user 
-3649 d8c04718 arg mem_car_pop_queue_buff ,contr 
-364a 20204746 branch le_send_notify_from_list 
-
-car_scale_process_bb_event:
-364b 1a627e00 copy regc ,pdata 
-364c c016b431 beq bt_evt_button_up ,app_event_button_up 
-364d c008341a beq bt_evt_button_long_pressed ,app_button_long_pressed 
-364e c00a3651 beq bt_evt_le_connected ,car_scale_event_le_conn 
-364f c00ab660 beq bt_evt_le_disconnected ,car_scale_event_le_discon 
-3650 20600000 rtn 
-
-car_scale_event_le_conn:
-3651 58000000 setarg disable_24g 
-3652 20403220 call g24_store_mem_24g_mode 
-3653 20203656 branch car_scale_process_conn 
-
-car_g24_connected:
-3654 680147eb fetch 2 ,mem_car_24g_no_data_timeout_count 
-3655 600147ed store 2 ,mem_car_24g_no_data_timeout_timer 
-
-car_scale_process_conn:
-3656 7047ce14 jam 0x14 ,mem_car_notify_vdd_timer 
-3657 70409100 jam 0 ,mem_lpm_mode 
-3658 204033f8 call app_ble_stop_adv 
-3659 20403416 call app_lpm_mult_enable 
-365a 6800c7bd fetch 1 ,mem_car_config_pairing_led_conn_status 
-365b c000b65e beq 0x01 ,car_pairing_led_conn_status_setting 
-
-car_scale_process_conn_next:
-365c da200000 arg 0 ,rega 
-365d 20207d14 branch ui_led_on_global 
-
-car_pairing_led_conn_status_setting:
-365e da200000 arg 0 ,rega 
-365f 20207d19 branch ui_led_blink_stop_global 
-
-car_scale_event_le_discon:
-3660 58000002 setarg rx_24g 
-3661 20403220 call g24_store_mem_24g_mode 
-
-car_g24_disconnect:
-3662 58000000 setarg 0 
-3663 6002c79c store 5 ,mem_car_led_control 
-3664 58000004 setarg 4 
-3665 204069d7 call pwm_disable 
-3666 58000005 setarg 5 
-3667 204069d7 call pwm_disable 
-3668 58000014 setarg 20 
-3669 204069d7 call pwm_disable 
-366a 58000015 setarg 21 
-366b 204069d7 call pwm_disable 
-366c 58000016 setarg 22 
-366d 204069d7 call pwm_disable 
-366e 58000007 setarg 7 
-366f 204069d7 call pwm_disable 
-3670 20407e38 call queue_init 
-3671 70475e0a jam 10 ,mem_motor1_speed 
-3672 7047600a jam 10 ,mem_motor2_speed 
-3673 7047620a jam 10 ,mem_motor3_speed 
-3674 70417202 jam 2 ,mem_lpm_mult 
-3675 da200000 arg 0 ,rega 
-3676 20407d1e call ui_led_blink_start_global 
-3677 58000020 setarg fast_adv_interval_value_car 
-3678 204046f0 call shutter_ble_adv_interval_set 
-3679 202033fa branch app_ble_start_adv 
-
-car_le_bb_event_timer:
-367a 2040373b call car_moto1_blank_data_timer 
-367b 2040373e call car_moto2_blank_data_timer 
-367c 20403741 call car_moto3_blank_data_timer 
-367d 2040337b call app_power_timer 
-367e 204036c8 call car_led_control_timer 
-367f 204036a1 call car_notify_vdd_timer 
-3680 2040368a call car_24g_no_data_timeout_timer 
-3681 20403683 call car_ir_breakdown_timer 
-3682 2020368f branch car_attack_shake_timer 
-
-car_ir_breakdown_timer:
-3683 da60479a arg mem_car_ir_breakdown_check_timer ,regc 
-3684 da403686 arg car_ir_breakdown_timeout ,regb 
-3685 2020336d branch timer_single_step 
-
-car_ir_breakdown_timeout:
-3686 20403847 call car_ir_gpio_get_status 
-3687 24608000 nrtn true 
-3688 70479b01 jam 1 ,mem_car_ir_breakdown_flag 
-3689 20600000 rtn 
-
-car_24g_no_data_timeout_timer:
-368a da6047ed arg mem_car_24g_no_data_timeout_timer ,regc 
-368b da40368d arg car_24g_no_data_timer_timeout ,regb 
-368c 20203374 branch timer_single_step_2b 
-
-car_24g_no_data_timer_timeout:
-368d 7047ea02 jam work_search ,mem_car_24g_status 
-368e 20203662 branch car_g24_disconnect 
-
-car_attack_shake_timer:
-368f da6047f1 arg mem_car_attack_shake_timer ,regc 
-3690 da403692 arg car_attack_shake ,regb 
-3691 2020336d branch timer_single_step 
-
-car_attack_shake:
-3692 6800c7f2 fetch 1 ,mem_car_attack_shake_flag 
-3693 203a369e branch car_attack_shake_stop ,blank 
-3694 7047f102 jam 2 ,mem_car_attack_shake_timer 
-3695 7047f200 jam 0 ,mem_car_attack_shake_flag 
-3696 58000a02 setarg 0x0a02 
-3697 60014752 store 2 ,mem_le_receive_payload 
-3698 6800c7b9 fetch 1 ,mem_car_config_device_select 
-3699 c001b69b beq device_battle_tank ,car_attack_shake_front_battle_tank 
-
-car_attack_shake_front_battle_car:
-369a 20203762 branch car_motor_control 
-
-car_attack_shake_front_battle_tank:
-369b 58000a02 setarg 0x0a02 
-369c 60014754 store 2 ,mem_le_receive_payload + 2 
-369d 20203762 branch car_motor_control 
-
-car_attack_shake_stop:
-369e 58000000 setarg 0 
-369f 60024752 store 4 ,mem_le_receive_payload 
-36a0 20203762 branch car_motor_control 
-
-car_notify_vdd_timer:
-36a1 6800c7c8 fetch 1 ,mem_car_config_bat_notify_enable 
-36a2 207a0000 rtn blank 
-36a3 68014682 fetch 2 ,mem_ui_state_map 
-36a4 c304b6c6 bbit0 ui_state_ble_connected ,car_low_bat_led_off 
-36a5 da6047ce arg mem_car_notify_vdd_timer ,regc 
-36a6 da4036a8 arg car_notify_vdd ,regb 
-36a7 2020336d branch timer_single_step 
-
-car_notify_vdd:
-36a8 6800c7cd fetch 1 ,mem_car_notify_vdd_count 
-36a9 6000c7ce store 1 ,mem_car_notify_vdd_timer 
-36aa 6800c7d1 fetch 1 ,mem_car_working_flag 
-36ab 247a0000 nrtn blank 
-
-car_read_hvin:
-36ac 204068eb call adc_set_mode 
-36ad 20406908 call vdd_calculate_by_mode 
-36ae 600147e8 store 2 ,mem_vdd_now_vol 
-36af da2047e2 arg mem_vdd_calculate_set ,rega 
-36b0 20406930 call adc_bat_percent_lowpower_out 
-36b1 6808c7cf fetcht 1 ,mem_car_notify_vdd_value_last 
-36b2 98467c00 isub temp ,null 
-36b3 202136b6 branch car_notify_vdd_next2 ,positive 
-36b4 6000c7cf store 1 ,mem_car_notify_vdd_value_last 
-36b5 1fe20400 copy pdata ,temp 
-
-car_notify_vdd_next2:
-36b6 6008c7d0 storet 1 ,mem_car_notify_vdd_percent 
-36b7 6800c7ca fetch 1 ,mem_car_config_low_voltage_percent 
-36b8 98467c00 isub temp ,null 
-36b9 204136c1 call car_enter_low_bat ,positive 
-36ba 6008c7db storet 1 ,mem_notify_bat_payload 
-36bb df200006 arg 6 ,loopcnt 
-36bc d8c047d6 arg mem_notify_bat_head ,contr 
-36bd 204036f0 call calc_check_sum_start 
-36be 6000c7dc store 1 ,mem_notify_bat_check_sum 
-36bf da2047d3 arg mem_notify_bat_packet ,rega 
-36c0 20207e3d branch queue_push 
-
-car_enter_low_bat:
-36c1 6800c7d2 fetch 1 ,mem_low_bat_flag 
-36c2 247a0000 nrtn blank 
-36c3 7047d201 jam 1 ,mem_low_bat_flag 
-36c4 da200001 arg 1 ,rega 
-36c5 20207d1e branch ui_led_blink_start_global 
-
-car_low_bat_led_off:
-36c6 da200001 arg 1 ,rega 
-36c7 20207d19 branch ui_led_blink_stop_global 
-
-car_led_control_timer:
-36c8 da6047a4 arg mem_car_led_control_timer ,regc 
-36c9 da4036cb arg car_led_control ,regb 
-36ca 2020336d branch timer_single_step 
-
-car_led_control:
-36cb 7047a405 jam 5 ,mem_car_led_control_timer 
-36cc 7047a600 jam 0 ,mem_car_led_no 
-36cd 6800c7a5 fetch 1 ,mem_car_led_blink_status 
-36ce c000b6ee beq led_on ,car_led_control_blink_off 
-36cf c00036ec beq led_off ,car_led_control_blink_on 
-
-car_led_control_set:
-36d0 d8c0479c arg mem_car_led_control ,contr 
-36d1 18c22200 copy contr ,rega 
-36d2 df200008 arg 8 ,loopcnt 
-
-car_led_control_timer_next:
-36d3 1a220c00 copy rega ,contr 
-36d4 e8c08000 ifetch 1 ,contr 
-36d5 18c22200 copy contr ,rega 
-36d6 c00036e3 beq led_off ,car_led_control_off 
-36d7 c000b6e6 beq led_on ,car_led_control_on 
-36d8 c00136e9 beq led_blink ,car_led_control_blink 
-
-car_led_control_timer_next_2:
-36d9 6800c7a6 fetch 1 ,mem_car_led_no 
-36da 1fe0fe01 increase 1 ,pdata 
-36db 6000c7a6 store 1 ,mem_car_led_no 
-36dc c20036d3 loop car_led_control_timer_next 
-36dd 20600000 rtn 
-
-car_led_switch:
-36de 6800c7a6 fetch 1 ,mem_car_led_no 
-36df da4047c0 arg mem_car_config_blood_led_gpio ,regb 
-36e0 9a40a400 iadd regb ,regb 
-36e1 ea488000 ifetcht 1 ,regb 
-36e2 20600000 rtn 
-
-car_led_control_off:
-36e3 204036de call car_led_switch 
-36e4 20406825 call gpio_out_inactive 
-36e5 202036d9 branch car_led_control_timer_next_2 
-
-car_led_control_on:
-36e6 204036de call car_led_switch 
-36e7 20406829 call gpio_out_active 
-36e8 202036d9 branch car_led_control_timer_next_2 
-
-car_led_control_blink:
-36e9 6800c7a5 fetch 1 ,mem_car_led_blink_status 
-36ea c000b6e3 beq led_on ,car_led_control_off 
-36eb 202036e6 branch car_led_control_on 
-
-car_led_control_blink_on:
-36ec 7047a501 jam led_on ,mem_car_led_blink_status 
-36ed 202036d0 branch car_led_control_set 
-
-car_led_control_blink_off:
-36ee 7047a500 jam led_off ,mem_car_led_blink_status 
-36ef 202036d0 branch car_led_control_set 
-
-calc_check_sum_start:
-36f0 da200000 arg 0 ,rega 
-
-calc_check_sum_loop:
-36f1 e8c08000 ifetch 1 ,contr 
-36f2 9a20a200 iadd rega ,rega 
-36f3 c20036f1 loop calc_check_sum_loop 
-
-calc_check_sum_and:
-36f4 1a217eff and rega ,0xff ,pdata 
-36f5 20600000 rtn 
-
-car_le_receive_data:
-36f6 68008477 fetch 1 ,mem_le_att_opcode 
-36f7 c00936f9 beq attop_write_request ,car_le_parse_att_write_request 
-36f8 20600000 rtn 
-
-car_le_parse_att_write_request:
-36f9 68010478 fetch 2 ,mem_le_att_handle 
-36fa c00a3710 beq att_car_control_handle ,car_control_le_receive 
-36fb 20600000 rtn 
-
-le_app_receive_data:
-36fc 44e8401a bpatch patch1a_0 ,mem_patch1a 
-36fd ea228000 ifetch 5 ,rega 
-36fe 60028b12 store 5 ,mem_app_receive_temp 
-36ff 68010b12 fetch 2 ,mem_app_receive_temp 
-3700 d8406b5a arg le_receive_packet_head ,temp 
-3701 98467c00 isub temp ,null 
-3702 24628000 nrtn zero 
-3703 68010b15 fetch 2 ,mem_app_receive_temp + 3 
-3704 1ff0fe00 byteswap pdata ,pdata 
-3705 60010b15 store 2 ,mem_app_receive_temp + 3 
-3706 1fe27200 copy pdata ,loopcnt 
-3707 1a20a205 increase 5 ,rega 
-3708 1a220c00 copy rega ,contr 
-3709 d8a00b17 arg mem_app_receive_temp + 5 ,contw 
-370a 20407f01 call memcpy 
-370b e8c08000 ifetch 1 ,contr 
-370c 60008b21 store 1 ,mem_app_receive_temp + 15 
-370d da200b14 arg mem_app_receive_temp + 2 ,rega 
-370e da400b17 arg mem_app_receive_temp + 5 ,regb 
-370f 20600000 rtn 
-
-car_control_le_receive:
-3710 58000000 setarg 0 
-3711 6002c752 store 5 ,mem_le_receive_payload 
-3712 6002c757 store 5 ,mem_le_receive_payload + 5 
-3713 204036fc call le_app_receive_data 
-3714 1a420c00 copy regb ,contr 
-3715 d8a04752 arg mem_le_receive_payload ,contw 
-3716 df20000a arg 10 ,loopcnt 
-3717 20407f01 call memcpy 
-
-car_receive_cmd_select:
-3718 44e8c01a bpatch patch1a_1 ,mem_patch1a 
-3719 ea208000 ifetch 1 ,rega 
-371a c001374a beq car_cmd_old_car_control ,car_drive_old 
-371b c001b75c beq car_cmd_old_speed_control ,car_speed_set_old 
-371c c0023762 beq car_cmd_l_r_motor_control ,car_motor_control 
-371d c002b762 beq car_cmd_f_b_motor_control ,car_motor_control 
-371e c00337b1 beq car_cmd_ir_control ,car_ir_data_rx_from_app 
-371f c003b849 beq car_cmd_led_control ,car_led_control_receive 
-3720 c004384c beq car_cmd_device_info ,car_info_request 
-3721 20600000 rtn 
-
-car_24g_receive_data:
-3722 68014682 fetch 2 ,mem_ui_state_map 
-3723 c3848000 rtnbit1 ui_state_ble_connected 
-3724 680147eb fetch 2 ,mem_car_24g_no_data_timeout_count 
-3725 600147ed store 2 ,mem_car_24g_no_data_timeout_timer 
-3726 7049f601 jam work_paired ,mem_car_24g_received_pac 
-3727 5800010c setarg offset_24g_rxdata_temp_add3 
-3728 204032cd call g24_set_rega 
-3729 20403710 call car_control_le_receive 
-372a 68008b14 fetch 1 ,mem_app_receive_temp + 2 
-372b c002372e beq car_cmd_l_r_motor_control ,car_24g_receive_data_next 
-372c c002b72e beq car_cmd_f_b_motor_control ,car_24g_receive_data_next 
-372d 20600000 rtn 
-
-car_24g_receive_data_next:
-372e 6800c752 fetch 1 ,mem_le_receive_payload 
-372f 245a3735 ncall car_moto1_enable_blank_data_timer ,blank 
-3730 6800c754 fetch 1 ,mem_le_receive_payload + 2 
-3731 245a3737 ncall car_moto2_enable_blank_data_timer ,blank 
-3732 6800c756 fetch 1 ,mem_le_receive_payload + 4 
-3733 245a3739 ncall car_moto3_enable_blank_data_timer ,blank 
-3734 20600000 rtn 
-
-car_moto1_enable_blank_data_timer:
-3735 7049f305 jam 5 ,mem_car_moto1_blank_timer 
-3736 20600000 rtn 
-
-car_moto2_enable_blank_data_timer:
-3737 7049f405 jam 5 ,mem_car_moto2_blank_timer 
-3738 20600000 rtn 
-
-car_moto3_enable_blank_data_timer:
-3739 7049f505 jam 5 ,mem_car_moto3_blank_timer 
-373a 20600000 rtn 
-
-car_moto1_blank_data_timer:
-373b da6049f3 arg mem_car_moto1_blank_timer ,regc 
-373c da403744 arg car_moto1_blank_data ,regb 
-373d 2020336d branch timer_single_step 
-
-car_moto2_blank_data_timer:
-373e da6049f4 arg mem_car_moto2_blank_timer ,regc 
-373f da403746 arg car_moto2_blank_data ,regb 
-3740 2020336d branch timer_single_step 
-
-car_moto3_blank_data_timer:
-3741 da6049f5 arg mem_car_moto3_blank_timer ,regc 
-3742 da403748 arg car_moto3_blank_data ,regb 
-3743 2020336d branch timer_single_step 
-
-car_moto1_blank_data:
-3744 70475200 jam 0 ,mem_le_receive_payload 
-3745 20203762 branch car_motor_control 
-
-car_moto2_blank_data:
-3746 70475400 jam 0 ,mem_le_receive_payload + 2 
-3747 20203762 branch car_motor_control 
-
-car_moto3_blank_data:
-3748 70475600 jam 0 ,mem_le_receive_payload + 4 
-3749 20203762 branch car_motor_control 
-
-car_drive_old:
-374a 2040374c call car_left_right_control_old 
-374b 2020374f branch car_front_back_control_old 
-
-car_left_right_control_old:
-374c 6800c752 fetch 1 ,mem_le_receive_payload 
-374d 6000c75f store 1 ,mem_motor2_status 
-374e 20203773 branch car_motor2_control 
-
-car_front_back_control_old:
-374f 6800c75e fetch 1 ,mem_motor1_speed 
-3750 20403754 call car_reset_old_speed 
-3751 6800c753 fetch 1 ,mem_le_receive_payload + 1 
-3752 6000c75d store 1 ,mem_motor1_status 
-3753 20203770 branch car_motor1_control 
-
-car_reset_old_speed:
-3754 c0013758 beq speed_level_2 ,car_reset_old_speed2 
-3755 c001b75a beq speed_level_3 ,car_reset_old_speed3 
-3756 6000c75e store 1 ,mem_motor1_speed 
-3757 20600000 rtn 
-
-car_reset_old_speed2:
-3758 70475e05 jam speed_level_5 ,mem_motor1_speed 
-3759 20600000 rtn 
-
-car_reset_old_speed3:
-375a 70475e0a jam speed_level_10 ,mem_motor1_speed 
-375b 20600000 rtn 
-
-car_speed_set_old:
-375c 6800c752 fetch 1 ,mem_le_receive_payload 
-375d 20403754 call car_reset_old_speed 
-375e 6800c75e fetch 1 ,mem_motor1_speed 
-375f 2040379e call car_motor_speed_duty_setting 
-3760 204037a1 call car_motor_speed_duty_transform 
-3761 202069c4 branch pwm_pwm0_duty_set 
-
-car_motor_control:
-3762 6800c7f0 fetch 1 ,mem_car_24g_go_die_flag 
-3763 247a0000 nrtn blank 
-3764 68034752 fetch 6 ,mem_le_receive_payload 
-3765 6003475d store 6 ,mem_motor1_status 
-3766 6800c75e fetch 1 ,mem_motor1_speed 
-3767 6808c760 fetcht 1 ,mem_motor2_speed 
-3768 98417e00 iand temp ,pdata 
-3769 6808c762 fetcht 1 ,mem_motor3_speed 
-376a 98417e00 iand temp ,pdata 
-376b 205a3779 call car_motor_working_flag ,blank 
-376c 44e9401a bpatch patch1a_2 ,mem_patch1a 
-376d 20403770 call car_motor1_control 
-376e 20403773 call car_motor2_control 
-376f 20203776 branch car_motor3_control 
-
-car_motor1_control:
-3770 da404763 arg mem_motor1_pwm_set ,regb 
-3771 d8c0475d arg mem_motor1_status ,contr 
-3772 2020377b branch car_motor_status_select 
-
-car_motor2_control:
-3773 da40476b arg mem_motor2_pwm_set ,regb 
-3774 d8c0475f arg mem_motor2_status ,contr 
-3775 2020377b branch car_motor_status_select 
-
-car_motor3_control:
-3776 da404773 arg mem_motor3_pwm_set ,regb 
-3777 d8c04761 arg mem_motor3_status ,contr 
-3778 2020377b branch car_motor_status_select 
-
-car_motor_working_flag:
-3779 7047d100 jam 0 ,mem_car_working_flag 
-377a 20600000 rtn 
-
-car_motor_status_select:
-377b e8c08000 ifetch 1 ,contr 
-377c c0003787 beq motor_stop ,car_motor_stop 
-377d c000b780 beq go_front ,car_motor_positive 
-377e c0013782 beq go_back ,car_motor_negative 
-377f 20600000 rtn 
-
-car_motor_positive:
-3780 70477b00 jam 0 ,mem_motor_select_p_n 
-3781 20203783 branch car_motor_negative + 1 
-
-car_motor_negative:
-3782 70477b01 jam 1 ,mem_motor_select_p_n 
-3783 e8c08000 ifetch 1 ,contr 
-3784 6000c77d store 1 ,mem_car_motor_speed 
-3785 ea440000 ifetch 8 ,regb 
-3786 2020378c branch car_motor_work 
-
-car_motor_stop:
-3787 ea408000 ifetch 1 ,regb 
-3788 204069d7 call pwm_disable 
-3789 1a40a401 increase 1 ,regb 
-378a ea408000 ifetch 1 ,regb 
-378b 202069d7 branch pwm_disable 
-
-car_motor_work:
-378c 6004477e store 8 ,mem_motor_pwm_pin1_set 
-378d 7047d101 jam 1 ,mem_car_working_flag 
-378e 6800c77b fetch 1 ,mem_motor_select_p_n 
-378f c000379a beq 0 ,car_motor_select_positive 
-
-car_motor_select_negative:
-3790 6800c77f fetch 1 ,mem_motor_pwm_pin2_set 
-3791 6000c780 store 1 ,mem_motor_pwm_pin_set 
-3792 6800c77e fetch 1 ,mem_motor_pwm_pin1_set 
-
-car_motor_work_next:
-3793 204069d7 call pwm_disable 
-3794 6800c77d fetch 1 ,mem_car_motor_speed 
-3795 2040379e call car_motor_speed_duty_setting 
-3796 6000c785 store 1 ,mem_motor_pwm_dute_set 
-3797 68034780 fetch 6 ,mem_motor_pwm_pin_set 
-3798 60030a9a store 6 ,mem_pdatatemp 
-3799 202069ae branch pwm_out_set 
-
-car_motor_select_positive:
-379a 6800c77e fetch 1 ,mem_motor_pwm_pin1_set 
-379b 6000c780 store 1 ,mem_motor_pwm_pin_set 
-379c 6800c77f fetch 1 ,mem_motor_pwm_pin2_set 
-379d 20203793 branch car_motor_work_next 
-
-car_motor_speed_duty_setting:
-379e 1feffe05 mul32 pdata ,5 ,pdata 
-379f 1fe0fe32 add pdata ,50 ,pdata 
-37a0 20600000 rtn 
-
-car_motor_speed_duty_transform:
-37a1 d8402ee0 arg 12000 ,temp 
-37a2 984ffe00 imul32 temp ,pdata 
-37a3 1fe6fc64 div pdata ,100 
-37a4 20407f86 call wait_div_end 
-37a5 18078400 quotient temp 
-37a6 18422200 copy temp ,rega 
-37a7 58002ee0 setarg 12000 
-37a8 98462400 isub temp ,regb 
-37a9 20600000 rtn 
-
-car_ir_init:
-37aa 68108082 hfetch 1 ,core_gpio_sel2 
-37ab 79207e02 set1 2 ,pdata 
-37ac 60108082 hstore 1 ,core_gpio_sel2 
-37ad 5800009e setarg 158 
-37ae 60110068 hstore 2 ,core_pwm_pcnt4 
-37af 6011006a hstore 2 ,core_pwm_ncnt4 
-37b0 20600000 rtn 
-
-car_ir_data_rx_from_app:
-37b1 6800c7f0 fetch 1 ,mem_car_24g_go_die_flag 
-37b2 247a0000 nrtn blank 
-37b3 68014752 fetch 2 ,mem_le_receive_payload 
-37b4 60014787 store 2 ,mem_ir_data 
-37b5 6800c7ea fetch 1 ,mem_car_24g_status 
-37b6 c080b7b9 bne work_paired ,car_ir_data_tx 
-37b7 680144a0 fetch 2 ,mem_le_lap 
-37b8 60014787 store 2 ,mem_ir_data 
-
-car_ir_data_tx:
-37b9 44e9c01a bpatch patch1a_3 ,mem_patch1a 
-37ba 204037aa call car_ir_init 
-37bb 204037dc call car_ir_enable 
-37bc 5800bb80 setarg 48000 
-37bd 20402a8f call sleep 
-37be 204037e0 call car_ir_disable 
-37bf 58001c20 setarg 7200 
-37c0 20402a8f call sleep 
-37c1 df200010 arg 16 ,loopcnt 
-
-car_ir_send_loop:
-37c2 204037dc call car_ir_enable 
-37c3 68014787 fetch 2 ,mem_ir_data 
-37c4 c28037c9 bbit1 0 ,car_ir_is_bit1 
-37c5 58001c20 setarg 7200 
-37c6 20402a8f call sleep 
-37c7 204037e0 call car_ir_disable 
-37c8 202037cc branch car_ir_wait_finish 
-
-car_ir_is_bit1:
-37c9 58003840 setarg 14400 
-37ca 20402a8f call sleep 
-37cb 204037e0 call car_ir_disable 
-
-car_ir_wait_finish:
-37cc 58001c20 setarg 7200 
-37cd 20402a8f call sleep 
-37ce 68014787 fetch 2 ,mem_ir_data 
-37cf 1fe37e00 rshift pdata ,pdata 
-37d0 60014787 store 2 ,mem_ir_data 
-37d1 c20037c2 loop car_ir_send_loop 
-37d2 7047f102 jam 2 ,mem_car_attack_shake_timer 
-37d3 7047f201 jam 1 ,mem_car_attack_shake_flag 
-37d4 58000a01 setarg 0x0a01 
-37d5 60014752 store 2 ,mem_le_receive_payload 
-37d6 6800c7b9 fetch 1 ,mem_car_config_device_select 
-37d7 c001b7d9 beq device_battle_tank ,car_attack_shake_back_battle_tank 
-
-car_attack_shake_back_battle_car:
-37d8 20203762 branch car_motor_control 
-
-car_attack_shake_back_battle_tank:
-37d9 58000a01 setarg 0x0a01 
-37da 60014754 store 2 ,mem_le_receive_payload + 2 
-37db 20203762 branch car_motor_control 
-
-car_ir_enable:
-37dc 68108085 hfetch 1 ,core_gpio_key2 
-37dd 1fe1fe40 or_into 0x40 ,pdata 
-37de 60108085 hstore 1 ,core_gpio_key2 
-37df 20600000 rtn 
-
-car_ir_disable:
-37e0 68108085 hfetch 1 ,core_gpio_key2 
-37e1 1fe17ebf and_into 0xbf ,pdata 
-37e2 60108085 hstore 1 ,core_gpio_key2 
-37e3 20600000 rtn 
-
-car_ir_rx_init:
-37e4 6800c7bb fetch 1 ,mem_car_config_ir_enable 
-37e5 c1000000 rtneq 0x00 
-37e6 20402c65 call lpm_disable_exen_output 
-37e7 6808c7bc fetcht 1 ,mem_car_config_ir_rx_gpio 
-37e8 6008c786 storet 1 ,mem_ir_rx_gpio 
-37e9 204067fb call gpio_config_input 
-37ea 20403847 call car_ir_gpio_get_status 
-37eb 24608000 nrtn true 
-37ec 70479a01 jam 1 ,mem_car_ir_breakdown_check_timer 
-37ed 20600000 rtn 
-
-car_ir_receive_process:
-37ee 6800c7bb fetch 1 ,mem_car_config_ir_enable 
-37ef c1000000 rtneq flag_ir_disable 
-37f0 6800c79b fetch 1 ,mem_car_ir_breakdown_flag 
-37f1 247a0000 nrtn blank 
-37f2 68014682 fetch 2 ,mem_ui_state_map 
-37f3 c284b7f6 bbit1 ui_state_ble_connected ,car_ir_receive_process_next 
-37f4 6800c7ea fetch 1 ,mem_car_24g_status 
-37f5 c1808000 rtnne work_paired 
-
-car_ir_receive_process_next:
-37f6 44ea401a bpatch patch1a_4 ,mem_patch1a 
-37f7 20403847 call car_ir_gpio_get_status 
-37f8 24608000 nrtn true 
-37f9 58008ca0 setarg 36000 
-37fa 20402a8f call sleep 
-37fb 20403847 call car_ir_gpio_get_status 
-37fc 24608000 nrtn true 
-37fd 2040383f call car_ir_clk_get 
-
-car_ir_packet_head_wait_end:
-37fe 20403842 call car_ir_clk_check 
-37ff 24610000 nrtn positive 
-3800 20403847 call car_ir_gpio_get_status 
-3801 2020b7fe branch car_ir_packet_head_wait_end ,true 
-3802 da200000 arg 0 ,rega 
-3803 df200010 arg 16 ,loopcnt 
-3804 2040383f call car_ir_clk_get 
-
-car_ir_receive_process_loop:
-3805 20403842 call car_ir_clk_check 
-3806 24610000 nrtn positive 
-3807 20403847 call car_ir_gpio_get_status 
-3808 2420b805 nbranch car_ir_receive_process_loop ,true 
-3809 58002a30 setarg 10800 
-380a 20402a8f call sleep 
-380b 20403847 call car_ir_gpio_get_status 
-380c 2020b812 branch car_ir_get_bit1 ,true 
-
-car_ir_get_bit0:
-380d 58000000 setarg 0 
-380e 1a232200 rshift rega ,rega 
-380f 9a21a200 ior rega ,rega 
-3810 c2003805 loop car_ir_receive_process_loop 
-3811 2020381b branch car_ir_receive_process_end 
-
-car_ir_get_bit1:
-3812 58008000 setarg 0x8000 
-3813 1a232200 rshift rega ,rega 
-3814 9a21a200 ior rega ,rega 
-3815 2040383f call car_ir_clk_get 
-
-car_ir_get_bit1_wait_low_end:
-3816 20403842 call car_ir_clk_check 
-3817 24610000 nrtn positive 
-3818 20403847 call car_ir_gpio_get_status 
-3819 2020b816 branch car_ir_get_bit1_wait_low_end ,true 
-381a c2003805 loop car_ir_receive_process_loop 
-
-car_ir_receive_process_end:
-381b 44eac01a bpatch patch1a_5 ,mem_patch1a 
-381c 1a227e00 copy rega ,pdata 
-381d 60014789 store 2 ,mem_ir_rx_buf 
-381e 60014797 store 2 ,mem_ir_notify_data + 8 
-381f 6800c7ea fetch 1 ,mem_car_24g_status 
-3820 c000b827 beq work_paired ,car_ir_24g_receive_attack 
-
-car_ir_data_notify:
-3821 df200007 arg 0x07 ,loopcnt 
-3822 d8c04792 arg mem_ir_notify_data_head ,contr 
-3823 204036f0 call calc_check_sum_start 
-3824 6000c799 store 1 ,mem_ir_notify_data_check_sum 
-3825 da20478f arg mem_ir_notify_data ,rega 
-3826 20207e3d branch queue_push 
-
-car_ir_24g_receive_attack:
-3827 6800c7ef fetch 1 ,mem_car_24g_ir_receive_attack_count 
-3828 1fe0fe01 increase 1 ,pdata 
-3829 6000c7ef store 1 ,mem_car_24g_ir_receive_attack_count 
-382a 1fe6fc02 div pdata ,2 
-382b 20407f86 call wait_div_end 
-382c 18078400 quotient temp 
-382d 18077e00 remainder pdata 
-382e 243a3838 nbranch car_ir_24g_receive_attack_blink ,blank 
-
-car_ir_24g_receive_attack_off:
-382f 6800c7bf fetch 1 ,mem_car_config_led_num 
-3830 98467c00 isub temp ,null 
-3831 2042b83d call car_ir_24g_go_die ,zero 
-3832 dfe0479c arg mem_car_led_control ,pdata 
-3833 184085ff increase -1 ,temp 
-3834 9840a200 iadd temp ,rega 
-3835 dfe00000 arg 0 ,pdata 
-3836 e2208000 istore 1 ,rega 
-3837 20600000 rtn 
-
-car_ir_24g_receive_attack_blink:
-3838 dfe0479c arg mem_car_led_control ,pdata 
-3839 9840a200 iadd temp ,rega 
-383a dfe00002 arg 2 ,pdata 
-383b e2208000 istore 1 ,rega 
-383c 20600000 rtn 
-
-car_ir_24g_go_die:
-383d 7047f001 jam 1 ,mem_car_24g_go_die_flag 
-383e 20600000 rtn 
-
-car_ir_clk_get:
-383f 1c427e00 copy clkn_bt ,pdata 
-3840 6002478b store 4 ,mem_ir_receive_clkn 
-3841 20600000 rtn 
-
-car_ir_clk_check:
-3842 1c427e00 copy clkn_bt ,pdata 
-3843 680a478b fetcht 4 ,mem_ir_receive_clkn 
-3844 98467e00 isub temp ,pdata 
-3845 1fe67cc8 sub pdata ,200 ,null 
-3846 20600000 rtn 
-
-car_ir_gpio_get_status:
-3847 6808c786 fetcht 1 ,mem_ir_rx_gpio 
-3848 2020681d branch gpio_get_bit 
-
-car_led_control_receive:
-3849 68044752 fetch 8 ,mem_le_receive_payload 
-384a 6004479c store 8 ,mem_car_led_control 
-384b 20600000 rtn 
-
-car_info_request:
-384c 6800c7b9 fetch 1 ,mem_car_config_device_select 
-384d 6000c7af store 1 ,mem_car_info_request_payload 
-384e 6800c7ba fetch 1 ,mem_car_config_motor_layout 
-384f 6000c7b0 store 1 ,mem_car_info_request_payload + 1 
-3850 6800c7bb fetch 1 ,mem_car_config_ir_enable 
-3851 6000c7b1 store 1 ,mem_car_info_request_payload + 2 
-3852 df20000d arg 13 ,loopcnt 
-3853 d8c047aa arg mem_car_info_request_head ,contr 
-3854 204036f0 call calc_check_sum_start 
-3855 6000c7b7 store 1 ,mem_car_info_request_checksum 
-3856 da2047a7 arg mem_car_info_request ,rega 
-3857 20207e3d branch queue_push 
-
-light_init:
-3858 204065c2 call clear_eeprom_size_2k 
-3859 7046f67a jam 0x7a ,mem_curr_packet_num 
-385a 2040386d call light_load_controler_list 
-385b 20403867 call light_init_crr_cmd_count 
-385c 58003860 setarg light_pairing_timer 
-385d 600141fd store 2 ,mem_cb_event_timer 
-385e da200000 arg 0 ,rega 
-385f 202069a6 branch pwm_init 
-
-light_pairing_timer:
-3860 680146a1 fetch 2 ,mem_light_pairing_timer 
-3861 207a0000 rtn blank 
-3862 1fe0ffff increase -1 ,pdata 
-3863 600146a1 store 2 ,mem_light_pairing_timer 
-3864 c1800000 rtnne 0 
-3865 7046a000 jam 0 ,mem_light_pairing_enable 
-3866 20600000 rtn 
-
-light_init_crr_cmd_count:
-3867 44eb401a bpatch patch1a_6 ,mem_patch1a 
-3868 6800c6a4 fetch 1 ,mem_light_next_record 
-3869 1fe67c28 sub pdata ,40 ,null 
-386a 20610000 rtn positive 
-386b 7046a400 jam 0 ,mem_light_next_record 
-386c 20600000 rtn 
-
-light_load_controler_list:
-386d da2046a4 arg mem_light_next_record ,rega 
-386e da400000 arg 0 ,regb 
-386f d8400051 arg 81 ,temp 
-3870 202065df branch iicd_read_eep_data 
-
-light_find_controler_pairing:
-3871 78547c00 disable user 
-3872 6800c6a3 fetch 1 ,mem_light_cnum 
-3873 1fe27200 copy pdata ,loopcnt 
-3874 da2046a5 arg mem_light_clist ,rega 
-3875 1a622400 copy regc ,regb 
-
-light_find_controler_pairing_loop:
-3876 44ebc01a bpatch patch1a_7 ,mem_patch1a 
-3877 2040387c call light_compare_addr_record 
-3878 2022ffe7 branch enable_user ,zero 
-
-light_find_single_pairing_diff:
-3879 1a20a204 increase 4 ,rega 
-387a c2003876 loop light_find_controler_pairing_loop 
-387b 20600000 rtn 
-
-light_compare_addr_record:
-387c 44ec401b bpatch patch1b_0 ,mem_patch1b 
-387d ea218000 ifetch 3 ,rega 
-387e ea498000 ifetcht 3 ,regb 
-387f 98467c00 isub temp ,null 
-3880 20600000 rtn 
-
-light_compare_single_record:
-3881 44ecc01b bpatch patch1b_1 ,mem_patch1b 
-3882 ea218000 ifetch 3 ,rega 
-3883 ea498000 ifetcht 3 ,regb 
-3884 98467c00 isub temp ,null 
-3885 24628000 nrtn zero 
-3886 e8c08000 ifetch 1 ,contr 
-3887 1fe67c00 sub pdata ,0 ,null 
-3888 20628000 rtn zero 
-3889 1a208c03 add rega ,3 ,contr 
-388a e8c88000 ifetcht 1 ,contr 
-388b 98467c00 isub temp ,null 
-388c 20600000 rtn 
-
-light_find_controler_cmd:
-388d 44ed401b bpatch patch1b_2 ,mem_patch1b 
-388e 78547c00 disable user 
-388f 6800c6a3 fetch 1 ,mem_light_cnum 
-3890 1fe27200 copy pdata ,loopcnt 
-3891 da2046a5 arg mem_light_clist ,rega 
-3892 1a622400 copy regc ,regb 
-
-light_find_controler_cmd_loop:
-3893 20403881 call light_compare_single_record 
-3894 2022ffe7 branch enable_user ,zero 
-3895 1a20a204 increase 4 ,rega 
-3896 c2003893 loop light_find_controler_cmd_loop 
-3897 20600000 rtn 
-
-light_recv_adv:
-3898 68008004 fetch 1 ,mem_le_scanrsp_rcv 
-3899 1fe0fe01 increase 1 ,pdata 
-389a 60008004 store 1 ,mem_le_scanrsp_rcv 
-389b da6002e5 arg mem_le_rxbuf + 12 ,regc 
-
-light_anylize_command:
-389c ea610000 ifetch 2 ,regc 
-389d d84055aa arg 0x55aa ,temp 
-389e 98467c00 isub temp ,null 
-389f 24628000 nrtn zero 
-38a0 18c22600 copy contr ,regc 
-38a1 ea698000 ifetcht 3 ,regc 
-38a2 58ffffff setarg 0xffffff 
-38a3 98467c00 isub temp ,null 
-38a4 2022b8a8 branch light_parse_cmd ,zero 
-38a5 2040388d call light_find_controler_cmd 
-38a6 203438a8 branch light_parse_cmd ,user 
-38a7 20600000 rtn 
-
-light_parse_cmd:
-38a8 44edc01b bpatch patch1b_3 ,mem_patch1b 
-38a9 1a60a604 increase 4 ,regc 
-38aa ea608000 ifetch 1 ,regc 
-38ab 6808c6f6 fetcht 1 ,mem_curr_packet_num 
-38ac 98467c00 isub temp ,null 
-38ad 20628000 rtn zero 
-38ae 6000c6f6 store 1 ,mem_curr_packet_num 
-38af 68008003 fetch 1 ,mem_le_req_rcv 
-38b0 1fe0fe01 increase 1 ,pdata 
-38b1 60008003 store 1 ,mem_le_req_rcv 
-38b2 1a60a601 increase 1 ,regc 
-38b3 ea608000 ifetch 1 ,regc 
-38b4 6000c6f5 store 1 ,mem_light_crr_cmd_count 
-38b5 1fe27200 copy pdata ,loopcnt 
-38b6 207a0000 rtn blank 
-
-light_parse_cmd_loop:
-38b7 e8c08000 ifetch 1 ,contr 
-38b8 c00038c2 beq light_cmd_pwm0 ,light_parse_cmd_pwm0 
-38b9 c000b8cf beq light_cmd_pwm1 ,light_parse_cmd_pwm1 
-38ba c00138d4 beq light_cmd_pwm2 ,light_parse_cmd_pwm2 
-38bb c001b8d9 beq light_cmd_pwm3 ,light_parse_cmd_pwm3 
-38bc c00238de beq light_cmd_pwm4 ,light_parse_cmd_pwm4 
-38bd c002b8e3 beq light_cmd_pwm5 ,light_parse_cmd_pwm5 
-38be c00338e8 beq light_cmd_auto_mode ,light_parse_auto_mode 
-38bf c07fb8ea beq light_cmd_pairing ,light_parse_pairing 
-38c0 c20038b7 loop light_parse_cmd_loop 
-38c1 20600000 rtn 
-
-light_parse_cmd_pwm0:
-38c2 18c22600 copy contr ,regc 
-38c3 6800c69a fetch 1 ,mem_light_pwm0 
-38c4 60008a9a store 1 ,mem_pdatatemp 
-38c5 d8400000 arg 0 ,temp 
-
-light_parse_cmd_pwm_common:
-38c6 60088a9b storet 1 ,mem_pdatatemp + 1 
-38c7 58002710 setarg 10000 
-38c8 60018a9c store 3 ,mem_pdatatemp + 2 
-38c9 ea608000 ifetch 1 ,regc 
-38ca 60008a9f store 1 ,mem_pdatatemp + 5 
-38cb 204069ae call pwm_out_set 
-38cc 1a610c01 and regc ,1 ,contr 
-38cd c20038b7 loop light_parse_cmd_loop 
-38ce 20600000 rtn 
-
-light_parse_cmd_pwm1:
-38cf 1a620c00 copy regc ,contr 
-38d0 6800c69b fetch 1 ,mem_light_pwm1 
-38d1 60008a9a store 1 ,mem_pdatatemp 
-38d2 d8400001 arg 1 ,temp 
-38d3 202038c6 branch light_parse_cmd_pwm_common 
-
-light_parse_cmd_pwm2:
-38d4 1a620c00 copy regc ,contr 
-38d5 6800c69c fetch 1 ,mem_light_pwm2 
-38d6 60008a9a store 1 ,mem_pdatatemp 
-38d7 d8400002 arg 2 ,temp 
-38d8 202038c6 branch light_parse_cmd_pwm_common 
-
-light_parse_cmd_pwm3:
-38d9 1a620c00 copy regc ,contr 
-38da 6800c69d fetch 1 ,mem_light_pwm3 
-38db 60008a9a store 1 ,mem_pdatatemp 
-38dc d8400003 arg 3 ,temp 
-38dd 202038c6 branch light_parse_cmd_pwm_common 
-
-light_parse_cmd_pwm4:
-38de 1a620c00 copy regc ,contr 
-38df 6800c69e fetch 1 ,mem_light_pwm4 
-38e0 60008a9a store 1 ,mem_pdatatemp 
-38e1 d8400004 arg 4 ,temp 
-38e2 202038c6 branch light_parse_cmd_pwm_common 
-
-light_parse_cmd_pwm5:
-38e3 1a620c00 copy regc ,contr 
-38e4 6800c69f fetch 1 ,mem_light_pwm5 
-38e5 60008a9a store 1 ,mem_pdatatemp 
-38e6 d8400005 arg 5 ,temp 
-38e7 202038c6 branch light_parse_cmd_pwm_common 
-
-light_parse_auto_mode:
-38e8 e8c08000 ifetch 1 ,contr 
-38e9 20600000 rtn 
-
-light_parse_pairing:
-38ea 18c22600 copy contr ,regc 
-38eb 6800c6a0 fetch 1 ,mem_light_pairing_enable 
-38ec c080b8ee bne 1 ,light_parse_pairing_abandon 
-38ed 204038f0 call update_controler_list 
-
-light_parse_pairing_abandon:
-38ee 1a610c04 and regc ,4 ,contr 
-38ef 20600000 rtn 
-
-update_controler_list:
-38f0 44ee401b bpatch patch1b_4 ,mem_patch1b 
-38f1 20403871 call light_find_controler_pairing 
-38f2 203438fe branch update_conrtoler_list_found ,user 
-38f3 6800c6a4 fetch 1 ,mem_light_next_record 
-38f4 1fe20400 copy pdata ,temp 
-38f5 1fe0fe01 increase 1 ,pdata 
-38f6 6000c6a4 store 1 ,mem_light_next_record 
-38f7 20403867 call light_init_crr_cmd_count 
-38f8 184b8400 lshift2 temp ,temp 
-38f9 580046a5 setarg mem_light_clist 
-38fa 98408a00 iadd temp ,contw 
-38fb ea620000 ifetch 4 ,regc 
-38fc e0a20000 istore 4 ,contw 
-38fd 20203903 branch update_conrtoler_store_list 
-
-update_conrtoler_list_found:
-38fe 1a608c03 add regc ,3 ,contr 
-38ff e8c08000 ifetch 1 ,contr 
-3900 207a0000 rtn blank 
-3901 ea620000 ifetch 4 ,regc 
-3902 e2220000 istore 4 ,rega 
-
-update_conrtoler_store_list:
-3903 da2046a4 arg mem_light_next_record ,rega 
-3904 da400000 arg 0 ,regb 
-3905 d8400051 arg 81 ,temp 
-3906 20206606 branch iicd_write_eep_data 
-
-lightc_init:
-3907 6808c69a fetcht 1 ,mem_lightc_led_gpio 
-3908 20406825 call gpio_out_inactive 
-3909 20600000 rtn 
-
-lightc_dispatch:
-390a 6808c69a fetcht 1 ,mem_lightc_led_gpio 
-390b 20406829 call gpio_out_active 
-390c 6808c69a fetcht 1 ,mem_lightc_led_gpio 
-390d 20406825 call gpio_out_inactive 
-390e 2040391d call lightc_start_adv 
-390f 6800c6a7 fetch 1 ,mem_adv_time 
-3910 247a0000 nrtn blank 
-3911 20402c29 call lpm_write_gpio_wakeup 
-3912 68120138 hfetch 4 ,core_lpm_ctrl 
-3913 793ffe0f set0 15 ,pdata 
-3914 6012004c hstore 4 ,core_lpm_reg 
-3915 20402c21 call lpm_write_ctrl 
-3916 d85fffff arg param_hibernate_clks ,temp 
-3917 20202b2a branch lpm_sleep 
-
-lightc_adv:
-3918 6800c6a7 fetch 1 ,mem_adv_time 
-3919 203a56f9 branch le_adv_loop_tx ,blank 
-391a 1fe0ffff increase -1 ,pdata 
-391b 6000c6a7 store 1 ,mem_adv_time 
-391c 202056f9 branch le_adv_loop_tx 
-
-lightc_start_adv:
-391d 1feffe14 mul32 pdata ,20 ,pdata 
-391e d8c046a8 arg mem_cmd0_string ,contr 
-391f 98c08c00 iadd contr ,contr 
-3920 e8c08000 ifetch 1 ,contr 
-3921 207a0000 rtn blank 
-3922 1fe22200 copy pdata ,rega 
-3923 1a227200 copy rega ,loopcnt 
-3924 d8a04372 arg mem_le_adv_data + 2 ,contw 
-3925 20407f01 call memcpy 
-3926 1a227e00 copy rega ,pdata 
-3927 1fe0fe02 increase 2 ,pdata 
-3928 6000c36f store 1 ,mem_le_adv_data_len 
-3929 20600000 rtn 
-
-module_init:
-392a 20758000 rtn wake 
-392b 204057a3 call le_modified_name 
-392c 204068a8 call adc_init_data 
-392d 58003982 setarg module_process_idle 
-392e 600141f3 store 2 ,mem_cb_idle_process 
-392f 5800396e setarg module_bt_conn_process 
-3930 600141f1 store 2 ,mem_cb_bt_process 
-3931 58003986 setarg module_process_bb_event 
-3932 600141f5 store 2 ,mem_cb_bb_event_process 
-3933 5800396d setarg module_le_conn_process 
-3934 600141ef store 2 ,mem_cb_le_process 
-3935 58003969 setarg module_lpm_lock 
-3936 600141e9 store 2 ,mem_cb_check_wakelock 
-3937 58003ab7 setarg module_hci_cmd_transmit_le_notify 
-3938 600141fb store 2 ,mem_cb_ble_transmit 
-3939 58003c32 setarg module_hci_event_receive_spp_data 
-393a 6001456f store 2 ,mem_cb_receive_spp_data 
-393b 58003cc2 setarg module_le_receive_data 
-393c 600141f9 store 2 ,mem_cb_att_write 
-393d 58003cd7 setarg module_bb_event_timer 
-393e 600141fd store 2 ,mem_cb_event_timer 
-393f 2040397f call module_spp_clear_last_transmite_clock 
-3940 44eec01b bpatch patch1b_5 ,mem_patch1b 
-3941 20403945 call module_lpm_uart_init 
-3942 20403964 call module_gpio_init 
-3943 20402c6f call check_module_disabled 
-3944 20203c48 branch module_hci_event_enter_standby_mode 
-
-module_lpm_uart_init:
-3945 680246aa fetch 4 ,mem_module_uart_rx_buffer 
-3946 60120054 hstore 4 ,core_uart_rsaddr 
-3947 680246ae fetch 4 ,mem_module_uart_tx_buffer 
-3948 6012005a hstore 4 ,core_uart_tsaddr 
-3949 68108081 hfetch 1 ,core_gpio_sel1 
-394a 1fe1fe04 or_into 0x04 ,pdata 
-394b 1fe17efc and_into 0xfc ,pdata 
-394c 60108081 hstore 1 ,core_gpio_sel1 
-394d 70806200 jam 0x00 ,core_uart_ctrl 
-394e 680146aa fetch 2 ,mem_module_uart_rx_buffer 
-394f 60110058 hstore 2 ,core_uart_rrptr 
-3950 680146ae fetch 2 ,mem_module_uart_tx_buffer 
-3951 6011005e hstore 2 ,core_uart_twptr 
-3952 60110060 hstore 2 ,core_uart_trptrp 
-3953 68120078 hfetch 4 ,core_gpio_pu0 
-3954 79207e07 set1 7 ,pdata 
-3955 60120078 hstore 4 ,core_gpio_pu0 
-3956 68110050 hfetch 2 ,core_clkoff 
-3957 793ffe0f set0 clock_off_uart ,pdata 
-3958 60110050 hstore 2 ,core_clkoff 
-3959 204066ce call uart_set_baud_by_mem 
-395a 70804300 jam uartclk_crystal ,core_uart_clksel 
-395b 70806281 jam uart_ctrl_h4 ,core_uart_ctrl 
-395c 6800c6bf fetch 1 ,mem_module_flag 
-395d 2feffe00 isolate1 module_flag_uart_flow_control ,pdata 
-395e 68188062 hfetcht 1 ,core_uart_ctrl 
-395f 79208404 setflag true ,4 ,temp 
-3960 60188062 hstoret 1 ,core_uart_ctrl 
-3961 20600000 rtn 
-
-module_lpm_init:
-3962 2040397f call module_spp_clear_last_transmite_clock 
-3963 20203945 branch module_lpm_uart_init 
-
-module_gpio_init:
-3964 6808c69e fetcht 1 ,mem_module_connect_state_gpio 
-3965 2040680e call gpio_config_output 
-3966 204039e6 call module_set_conn_pin_low 
-3967 6808c69c fetcht 1 ,mem_module_wake_up_gpio 
-3968 202067fb branch gpio_config_input 
-
-module_lpm_lock:
-3969 6808c69c fetcht 1 ,mem_module_wake_up_gpio 
-396a 2040681d call gpio_get_bit 
-396b 2420b3d2 nbranch app_put_lpm_wake_lock ,true 
-396c 202033d0 branch app_get_lpm_wake_lock 
-
-module_le_conn_process:
-396d 20600000 rtn 
-
-module_bt_conn_process:
-396e 20403970 call module_spp_enter_sniff 
-396f 20203ce9 branch module_control_air_flow 
-
-module_spp_enter_sniff:
-3970 6800c682 fetch 1 ,mem_ui_state_map 
-3971 c302397f bbit0 ui_state_bt_spp_conn ,module_spp_clear_last_transmite_clock 
-3972 44ef401b bpatch patch1b_6 ,mem_patch1b 
-3973 58003eff setarg 0x3eff 
-3974 680a46c5 fetcht 4 ,mem_last_transmite_clock 
-3975 98408400 iadd temp ,temp 
-3976 1c427e00 copy clkn_bt ,pdata 
-3977 98467c00 isub temp ,null 
-3978 24610000 nrtn positive 
-3979 68014682 fetch 2 ,mem_ui_state_map 
-397a c282b97f bbit1 ui_state_bt_sniff ,module_spp_clear_last_transmite_clock 
-397b 6800c6bf fetch 1 ,mem_module_flag 
-397c c3830000 rtnbit1 moudle_task_sniff 
-397d 20403cec call module_set_sniff_task_flag 
-397e 2040340e call app_bt_enter_sniff 
-
-module_spp_clear_last_transmite_clock:
-397f 1c427e00 copy clkn_bt ,pdata 
-3980 600246c5 store 4 ,mem_last_transmite_clock 
-3981 20600000 rtn 
-
-module_process_idle:
-3982 20403ce9 call module_control_air_flow 
-3983 2040526e call l2cap_malloc_is_fifo_full 
-3984 247a0000 nrtn blank 
-3985 202039eb branch module_process 
-
-module_process_bb_event:
-3986 1a627e00 copy regc ,pdata 
-3987 c000b9d4 beq bt_evt_bb_connected ,module_process_bb_conn 
-3988 c00139a3 beq bt_evt_bb_disconnected ,module_process_bb_event_disconned 
-3989 c00239d7 beq bt_evt_reconn_failed ,module_process_reconn_fail 
-398a c002b9c4 beq bt_evt_setup_complete ,module_process_setup_complete 
-398b c00439aa beq bt_evt_spp_connected ,module_process_spp_connected 
-398c c004b9b1 beq bt_evt_spp_disconnected ,module_process_spp_disconnected 
-398d c00539c9 beq bt_evt_pincode_req ,module_process_evt_pincode_req 
-398e c005b9b6 beq bt_evt_enter_sniff ,module_process_enter_sniff 
-398f c00639c2 beq bt_evt_exit_sniff ,module_process_exit_sniff 
-3990 c009b9d7 beq bt_evt_reconn_page_timeout ,module_process_page_time_out 
-3991 c00a39cf beq bt_evt_le_connected ,module_process_le_conn 
-3992 c00ab9c6 beq bt_evt_le_disconnected ,module_process_bb_even_le_disconn 
-3993 c010b9ca beq bt_evt_sniff_not_accept ,module_process_sniff_not_accept 
-3994 c011b9cb beq bt_evt_unsniff_accept ,module_process_unsniff_accept 
-3995 c01239ce beq bt_evt_unsniff_not_accept ,module_process_unsniff_not_accept 
-3996 c0183c8a beq bt_evt_le_pairing_fail ,module_hci_event_le_pairing_fail 
-3997 c018bc8c beq bt_evt_le_pairing_success ,module_hci_event_le_pairing_success 
-3998 c0193c9a beq bt_evt_le_start_enc ,module_hci_event_start_enc 
-3999 c019bc98 beq bt_evt_le_pause_enc ,module_hci_event_pause_enc 
-399a c01a3c84 beq bt_evt_le_tk_generate ,module_hci_event_le_tk 
-399b c01abc73 beq bt_evt_bt_gkey_generate ,module_hci_event_gkey_generate 
-399c c01b3c82 beq bt_evt_bt_get_passkey ,module_hci_event_passkey_entry_mode 
-399d c01bbc8e beq bt_evt_bt_pairing_fail ,module_hci_event_bt_pairing_fail 
-399e c01c3c90 beq bt_evt_bt_pairing_success ,module_hci_event_bt_pairing_success 
-399f c01dbca1 beq bt_evt_le_gkey_generate ,module_hci_event_le_gkey 
-39a0 c01ebc6a beq bt_evt_store_nvram ,module_hci_event_store_device 
-39a1 c020b9d9 beq bt_evt_le_ltk_lost ,module_process_ble_ltk_lost 
-39a2 20600000 rtn 
-
-module_process_bb_event_disconned:
-39a3 2040397f call module_spp_clear_last_transmite_clock 
-39a4 6800c665 fetch 1 ,mem_flag_pairing_state 
-39a5 245a3c8e ncall module_hci_event_bt_pairing_fail ,blank 
-39a6 204039d7 call module_disconn_start 
-39a7 68014682 fetch 2 ,mem_ui_state_map 
-39a8 c4020000 rtnbit0 ui_state_bt_spp_conn 
-39a9 202039b1 branch module_spp_disconnected 
-
-module_process_spp_connected:
-39aa 68014682 fetch 2 ,mem_ui_state_map 
-39ab 79207e04 set1 ui_state_bt_spp_conn ,pdata 
-39ac 60014682 store 2 ,mem_ui_state_map 
-39ad 6800c6a7 fetch 1 ,mem_module_spp_lpm_mult 
-39ae 6000c172 store 1 ,mem_lpm_mult 
-39af 204039e6 call module_set_conn_pin_low 
-39b0 20203c1d branch module_hci_event_spp_connect 
-
-module_process_spp_disconnected:
-
-module_spp_disconnected:
-39b1 68014682 fetch 2 ,mem_ui_state_map 
-39b2 c4020000 rtnbit0 ui_state_bt_spp_conn 
-39b3 793ffe04 set0 ui_state_bt_spp_conn ,pdata 
-39b4 60014682 store 2 ,mem_ui_state_map 
-39b5 20203c21 branch module_hci_event_spp_disconnect 
-
-module_process_enter_sniff:
-
-module_sniff_param_check:
-39b6 2040397f call module_spp_clear_last_transmite_clock 
-39b7 68014042 fetch 2 ,mem_context + coffset_tsniff 
-39b8 1fe37e00 rshift pdata ,pdata 
-39b9 680941e3 fetcht 2 ,mem_sniff_param_interval 
-39ba 98467c00 isub temp ,null 
-39bb 2422b9bd nbranch module_sniff_param_check_unsniff ,zero 
-39bc 20203416 branch app_lpm_mult_enable 
-
-module_sniff_param_check_unsniff:
-39bd 6800c6bf fetch 1 ,mem_module_flag 
-39be c3828000 rtnbit1 moudle_task_unsniff 
-39bf 68110112 hfetch 2 ,core_uart_rxitems 
-39c0 245a3cf0 ncall module_set_unsniff_task_flag ,blank 
-39c1 2020340c branch app_bt_sniff_exit 
-
-module_process_exit_sniff:
-39c2 20403cee call module_clear_sniff_task_flag 
-39c3 20203418 branch app_lpm_mult_disable 
-
-module_process_setup_complete:
-39c4 2040397f call module_spp_clear_last_transmite_clock 
-39c5 202039dd branch module_conn_start 
-
-module_process_bb_even_le_disconn:
-39c6 20405816 call le_clr_config_more_data 
-39c7 204039d7 call module_disconn_start 
-39c8 20203c23 branch module_hci_event_le_disconnect 
-
-module_process_evt_pincode_req:
-39c9 202033dd branch app_bt_set_pincode 
-
-module_process_sniff_not_accept:
-39ca 20203cee branch module_clear_sniff_task_flag 
-
-module_process_unsniff_accept:
-39cb 6800c6bf fetch 1 ,mem_module_flag 
-39cc c302b40e bbit0 moudle_task_unsniff ,app_bt_enter_sniff 
-39cd 20203cf2 branch module_clear_unsniff_task_flag 
-
-module_process_unsniff_not_accept:
-39ce 20203cf2 branch module_clear_unsniff_task_flag 
-
-module_process_le_conn:
-39cf 204058ba call le_send_att_exchange_mtu_requset 
-39d0 204039dd call module_conn_start 
-39d1 6800c6a8 fetch 1 ,mem_module_le_lpm_mult 
-39d2 6000c172 store 1 ,mem_lpm_mult 
-39d3 20203c1f branch module_hci_event_le_connect 
-
-module_process_bb_conn:
-39d4 70466100 jam 0 ,mem_flag_mode_ssp_pin 
-39d5 20403cee call module_clear_sniff_task_flag 
-39d6 20203cf2 branch module_clear_unsniff_task_flag 
-
-module_process_page_time_out:
-
-module_process_reconn_fail:
-
-module_disconn_start:
-39d7 20403a52 call module_start_adv_discovery_by_command 
-39d8 202039db branch module_set_conn_pin_high 
-
-module_process_ble_ltk_lost:
-39d9 20405cc9 call le_send_reject_ind 
-39da 20205b02 branch le_send_smp_security_request 
-
-module_set_conn_pin_high:
-39db 6808c69e fetcht 1 ,mem_module_connect_state_gpio 
-39dc 20206829 branch gpio_out_active 
-
-module_conn_start:
-39dd 204039df call module_stop_adv_discovery 
-39de 202039e6 branch module_set_conn_pin_low 
-
-module_stop_adv_discovery:
-39df 6800c6a1 fetch 1 ,mem_module_state 
-39e0 2feffe00 isolate1 moudle_state_bt_bit ,pdata 
-39e1 2040b3f0 call app_bt_stop_discovery ,true 
-39e2 6800c6a1 fetch 1 ,mem_module_state 
-39e3 2feffe01 isolate1 moudle_state_ble_bit ,pdata 
-39e4 2040b3f8 call app_ble_stop_adv ,true 
-39e5 20600000 rtn 
-
-module_set_conn_pin_low:
-39e6 6808c69e fetcht 1 ,mem_module_connect_state_gpio 
-39e7 20206825 branch gpio_out_inactive 
-
-module_process_with_credit:
-39e8 6800c56b fetch 1 ,mem_credit_flag 
-39e9 c1000000 rtneq credit_disable 
-39ea 20206c28 branch rfcomm_send_uih_without_payload 
-
-module_process:
-39eb 6810810c hfetch 1 ,core_uart_status 
-39ec c281b9e8 bbit1 uart_status_rx_fifo_empty ,module_process_with_credit 
-39ed 204066cb call uartd_prepare_rx 
-39ee e8608000 ifetch 1 ,contru 
-39ef c080ba01 bne 0x01 ,module_hci_in_excp 
-39f0 68110112 hfetch 2 ,core_uart_rxitems 
-39f1 1fe67c02 sub pdata ,2 ,null 
-39f2 20610000 rtn positive 
-39f3 e8608000 ifetch 1 ,contru 
-39f4 60008b03 store 1 ,mem_module_uart_opcode 
-39f5 e8688000 ifetcht 1 ,contru 
-39f6 18622200 copy contru ,rega 
-39f7 60088b04 storet 1 ,mem_module_uart_len 
-39f8 18408403 add temp ,3 ,temp 
-39f9 68110112 hfetch 2 ,core_uart_rxitems 
-39fa 98460400 isub temp ,temp 
-39fb 24610000 nrtn positive 
-39fc 700b0501 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
-39fd 20403a17 call module_hci_cmd_control 
-39fe 68008b05 fetch 1 ,mem_module_temp_nl_discard_packet 
-39ff c1000000 rtneq hci_not_discard_packet 
-3a00 20203a12 branch module_hci_dicard_packet 
-
-module_hci_in_excp:
-3a01 20407ec1 call delay_10ms 
-3a02 20403c79 call module_hci_event_invalid_packet 
-3a03 20203a04 branch module_hci_release_except 
-
-module_hci_release_except:
-3a04 44efc01b bpatch patch1b_7 ,mem_patch1b 
-3a05 68110112 hfetch 2 ,core_uart_rxitems 
-3a06 207a0000 rtn blank 
-3a07 204066cb call uartd_prepare_rx 
-3a08 e8608000 ifetch 1 ,contru 
-3a09 1fe67c01 sub pdata ,0x01 ,null 
-3a0a 2442ba16 ncall module_hci_dicard_bytes ,zero 
-3a0b 2422ba04 nbranch module_hci_release_except ,zero 
-3a0c e8608000 ifetch 1 ,contru 
-3a0d c1028000 rtneq hci_cmd_spp_data_req 
-3a0e c1148000 rtneq hci_cmd_set_credit_given 
-3a0f 186087ff increase -1 ,contru 
-3a10 20403a16 call module_hci_dicard_bytes 
-3a11 20203a04 branch module_hci_release_except 
-
-module_hci_dicard_packet:
-3a12 204066cb call uartd_prepare_rx 
-3a13 18608602 increase 2 ,contru 
-3a14 e8608000 ifetch 1 ,contru 
-3a15 98608600 iadd contru ,contru 
-
-module_hci_dicard_bytes:
-3a16 202066c8 branch uartd_rxdone 
-
-module_hci_cmd_control:
-3a17 44f0401c bpatch patch1c_0 ,mem_patch1c 
-3a18 68008b03 fetch 1 ,mem_module_uart_opcode 
-3a19 c0003a3f beq hci_cmd_set_bt_addr_req ,module_hci_cmd_set_bt_addr 
-3a1a c000ba44 beq hci_cmd_set_le_addr_req ,module_hci_cmd_set_le_addr 
-3a1b c0013a49 beq hci_cmd_set_visibility_req ,module_hci_cmd_set_visibility 
-3a1c c001ba5f beq hci_cmd_set_bt_name_req ,module_hci_cmd_set_bt_name 
-3a1d c0023a6b beq hci_cmd_set_le_name_req ,module_hci_cmd_set_le_name 
-3a1e c002ba75 beq hci_cmd_spp_data_req ,module_hci_cmd_receive_spp_data 
-3a1f c004ba9a beq hci_cmd_le_data_req ,module_hci_cmd_receive_le_data 
-3a20 c005bad7 beq hci_cmd_status_irq ,module_hci_cmd_inquire_status 
-3a21 c0063ad8 beq hci_cmd_set_pairing_req ,module_hci_cmd_set_pairing_mode 
-3a22 c006baec beq hci_cmd_set_pincode_req ,module_hci_cmd_set_pincode 
-3a23 c0073af4 beq hci_cmd_set_uartcontrol_req ,module_hci_cmd_set_uart_control_mode 
-3a24 c007bafa beq hci_cmd_set_uart_baud_req ,module_hci_cmd_set_uart_baud 
-3a25 c0083b06 beq hci_cmd_version_req ,module_hci_cmd_version_request 
-3a26 c008bb0e beq hci_cmd_bt_disconnect ,module_hci_cmd_bt_disconnect 
-3a27 c0093b12 beq hci_cmd_ble_disconnect ,module_hci_cmd_ble_disconnect 
-3a28 c0133b16 beq hci_cmd_set_nvram_req ,module_hci_cmd_set_nvram 
-3a29 c0143b1d beq hci_cmd_confirm_gkey ,module_hci_cmd_confirm_gkey 
-3a2a c014bb2d beq hci_cmd_set_credit_given ,module_hci_cmd_set_credit_given 
-3a2b c0153b36 beq hci_cmd_auto_adv_scan ,module_hci_cmd_auto_adv 
-3a2c c015bb69 beq hci_cmd_power_req ,module_hci_cmd_power_request 
-3a2d c0163b6f beq hci_cmd_power_set ,module_hci_cmd_power_set 
-3a2e c0183b76 beq hci_cmd_passkey_entry ,module_hci_cmd_passkey_entry 
-3a2f c018bb7c beq hci_cmd_set_gpio ,module_hci_cmd_set_gpio 
-3a30 c0193b90 beq hci_cmd_read_gpio ,module_hci_cmd_read_gpio 
-3a31 c019bb98 beq hci_cmd_le_set_pairing ,module_hci_cmd_le_set_pairing_mode 
-3a32 c01a3bbb beq hci_cmd_le_set_adv_data ,module_hci_cmd_le_set_adv_data 
-3a33 c01abbc4 beq hci_cmd_le_set_scan_data ,module_hci_cmd_le_set_scan_data 
-3a34 c01b3bcd beq hci_cmd_le_send_conn_update_req ,module_hci_cmd_le_send_conn_update_req 
-3a35 c01bbbd7 beq hci_cmd_le_set_adv_parm ,module_hci_cmd_set_le_adv_parameter 
-3a36 c01c3bda beq hci_cmd_le_start_pairing ,module_hci_cmd_le_start_pairing 
-3a37 c0203be2 beq hci_cmd_set_wake_gpio ,module_hci_cmd_set_wake_gpio 
-3a38 c0213bec beq hci_cmd_set_tx_power ,module_hci_cmd_set_tx_power 
-3a39 c0243bf1 beq hci_cmd_le_confirm_gkey ,module_hci_cmd_le_confirm_gkey 
-3a3a c024bbfc beq hci_cmd_reject_justwork ,module_hci_cmd_set_reject_justwork_flag 
-3a3b c028bc02 beq hci_cmd_reset_chip_req ,module_hci_cmd_reset_chip 
-3a3c c030bc06 beq hci_cmd_le_set_fixed_passkey ,module_hci_cmd_le_set_fixed_passkey 
-3a3d c07fbc15 beq hci_test_cmd_close_lpm ,module_hci_test_cmde_close_lpm 
-3a3e 20203c17 branch module_hci_event_receive_invalid_cmd 
-
-module_hci_cmd_set_bt_addr:
-3a3f 68008b04 fetch 1 ,mem_module_uart_len 
-3a40 c0833c17 bne 6 ,module_hci_event_receive_invalid_cmd 
-3a41 e8630000 ifetch 6 ,contru 
-3a42 600340a0 store 6 ,mem_lap 
-3a43 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_le_addr:
-3a44 68008b04 fetch 1 ,mem_module_uart_len 
-3a45 c0833c17 bne 6 ,module_hci_event_receive_invalid_cmd 
-3a46 e8630000 ifetch 6 ,contru 
-3a47 600344a0 store 6 ,mem_le_lap 
-3a48 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_visibility:
-3a49 68008b04 fetch 1 ,mem_module_uart_len 
-3a4a c080bc17 bne 1 ,module_hci_event_receive_invalid_cmd 
-3a4b 1a220600 copy rega ,contru 
-3a4c 20403c1a call module_hci_event_receive_valid_cmd 
-3a4d e8688000 ifetcht 1 ,contru 
-3a4e 6008c6a9 storet 1 ,mem_module_bluetooth_stauts_by_command 
-3a4f 68014682 fetch 2 ,mem_ui_state_map 
-3a50 c3848000 rtnbit1 ui_state_ble_connected 
-3a51 c3800000 rtnbit1 ui_state_bt_connected 
-
-module_start_adv_discovery_by_command:
-3a52 6800c6a1 fetch 1 ,mem_module_state 
-3a53 2feffe00 isolate1 moudle_state_bt_bit ,pdata 
-3a54 2420ba58 nbranch moudle_start_adv_by_command ,true 
-3a55 6808c6a9 fetcht 1 ,mem_module_bluetooth_stauts_by_command 
-3a56 18417e03 and temp ,0x03 ,pdata 
-3a57 6000c093 store 1 ,mem_scan_mode 
-
-moudle_start_adv_by_command:
-3a58 6800c6a1 fetch 1 ,mem_module_state 
-3a59 2feffe01 isolate1 moudle_state_ble_bit ,pdata 
-3a5a 24608000 nrtn true 
-3a5b 6808c6a9 fetcht 1 ,mem_module_bluetooth_stauts_by_command 
-3a5c 284ffe02 isolate1 2 ,temp 
-3a5d 2020b3fa branch app_ble_start_adv ,true 
-3a5e 202033f8 branch app_ble_stop_adv 
-
-module_hci_cmd_set_bt_name:
-3a5f 68008b04 fetch 1 ,mem_module_uart_len 
-3a60 1fe67c43 sub pdata ,67 ,null 
-3a61 24213c17 nbranch module_hci_event_receive_invalid_cmd ,positive 
-3a62 6000c515 store 1 ,mem_local_name_length 
-3a63 df200008 arg 8 ,loopcnt 
-3a64 20407ec6 call memset0 
-3a65 68008b04 fetch 1 ,mem_module_uart_len 
-3a66 1fe27200 copy pdata ,loopcnt 
-3a67 1a220600 copy rega ,contru 
-3a68 d8a04516 arg mem_local_name ,contw 
-3a69 204066ea call uart_copy_rx_bytes_fast 
-3a6a 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_le_name:
-3a6b 68008b04 fetch 1 ,mem_module_uart_len 
-3a6c 1fe67c1d sub pdata ,29 ,null 
-3a6d 24213c17 nbranch module_hci_event_receive_invalid_cmd ,positive 
-3a6e 6000c3af store 1 ,mem_le_name_len 
-3a6f 1fe27200 copy pdata ,loopcnt 
-3a70 1a220600 copy rega ,contru 
-3a71 d8a043b0 arg mem_le_name ,contw 
-3a72 204066ea call uart_copy_rx_bytes_fast 
-3a73 204057a3 call le_modified_name 
-3a74 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_receive_spp_data:
-3a75 6800c682 fetch 1 ,mem_ui_state_map 
-3a76 c3023c17 bbit0 ui_state_bt_spp_conn ,module_hci_event_receive_invalid_cmd 
-3a77 204033ba call app_check_sniff 
-3a78 2020ba86 branch module_hci_cmd_spp_exit_sniff ,true 
-3a79 700b0500 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
-3a7a 2040397f call module_spp_clear_last_transmite_clock 
-3a7b 6800c568 fetch 1 ,mem_remote_credits 
-3a7c 207a0000 rtn blank 
-3a7d 68014573 fetch 2 ,mem_nl_rx_len_all 
-3a7e c0803a84 bne 0 ,module_hci_cmd_pass_init_ng_rx_len_all 
-3a7f 68008b04 fetch 1 ,mem_module_uart_len 
-3a80 60014573 store 2 ,mem_nl_rx_len_all 
-3a81 1a220600 copy rega ,contru 
-3a82 18627e00 copy contru ,pdata 
-3a83 60014571 store 2 ,mem_nl_rx_data_src 
-
-module_hci_cmd_pass_init_ng_rx_len_all:
-3a84 20403a88 call module_hci_cmd_get_current_packet_len_and_remain_len 
-3a85 20206c4d branch spp_tx_rfcomm_packet 
-
-module_hci_cmd_spp_exit_sniff:
-3a86 700b0500 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
-3a87 20203cd1 branch module_exit_sniff 
-
-module_hci_cmd_get_current_packet_len_and_remain_len:
-3a88 20403a8e call module_hci_cmd_get_current_patcket_len 
-3a89 68014573 fetch 2 ,mem_nl_rx_len_all 
-3a8a 6809469f fetcht 2 ,mem_current_packet_length 
-3a8b 98467e00 isub temp ,pdata 
-3a8c 60014573 store 2 ,mem_nl_rx_len_all 
-3a8d 20600000 rtn 
-
-module_hci_cmd_get_current_patcket_len:
-3a8e 68014573 fetch 2 ,mem_nl_rx_len_all 
-3a8f d840006e arg dm_refcom_buff_len ,temp 
-3a90 20407fdd call not_greater_than 
-3a91 6809456c fetcht 2 ,mem_rfcomm_max_frame_size 
-3a92 20407fdd call not_greater_than 
-3a93 6809455e fetcht 2 ,mem_pn_max_frame_size 
-3a94 20407fdd call not_greater_than 
-3a95 6001469f store 2 ,mem_current_packet_length 
-3a96 20600000 rtn 
-
-module_hci_command_tx_spp_tx_complete:
-3a97 700b0501 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
-3a98 700b0305 jam hci_cmd_spp_data_req ,mem_module_uart_opcode 
-3a99 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_receive_le_data:
-3a9a 68014682 fetch 2 ,mem_ui_state_map 
-3a9b c304bc17 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
-3a9c 20403ad4 call module_check_ble_encrypt_state 
-3a9d 20343c17 branch module_hci_event_receive_invalid_cmd ,user 
-3a9e 700b0500 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
-3a9f 6800c6bf fetch 1 ,mem_module_flag 
-3aa0 c2823ab4 bbit1 module_flag_ble_data_finish ,module_hci_cmd_receive_le_data_finish 
-3aa1 6800c6c0 fetch 1 ,mem_module_hci_notify_len 
-3aa2 247a0000 nrtn blank 
-3aa3 700b0501 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
-3aa4 e8610000 ifetch 2 ,contru 
-3aa5 600146c1 store 2 ,mem_module_hci_notify_handle 
-3aa6 18627e00 copy contru ,pdata 
-3aa7 600146c3 store 2 ,mem_module_hci_nofiy_addr 
-3aa8 68008b04 fetch 1 ,mem_module_uart_len 
-3aa9 1fe0fffe pincrease -2 
-3aaa 24213c17 nbranch module_hci_event_receive_invalid_cmd ,positive 
-3aab 2022bc17 branch module_hci_event_receive_invalid_cmd ,zero 
-3aac 6000c6c0 store 1 ,mem_module_hci_notify_len 
-3aad 700b0500 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
-3aae 20405814 call le_set_config_more_data 
-3aaf 20403ab7 call module_hci_cmd_transmit_le_notify 
-3ab0 20403ab7 call module_hci_cmd_transmit_le_notify 
-3ab1 20403ab7 call module_hci_cmd_transmit_le_notify 
-3ab2 6800c6bf fetch 1 ,mem_module_flag 
-3ab3 c4020000 rtnbit0 module_flag_ble_data_finish 
-
-module_hci_cmd_receive_le_data_finish:
-3ab4 700b0501 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
-3ab5 20403cf6 call module_clear_le_tx_data_flag 
-3ab6 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_transmit_le_notify:
-3ab7 6800c6c0 fetch 1 ,mem_module_hci_notify_len 
-3ab8 207a0000 rtn blank 
-3ab9 20405892 call le_fifo_check_nearly_full 
-3aba 247a0000 nrtn blank 
-3abb 20403acf call module_get_le_remote_mtu 
-3abc 44f0c01c bpatch patch1c_1 ,mem_patch1c 
-3abd 1840fffd add temp ,-3 ,pdata 
-3abe 6808c6c0 fetcht 1 ,mem_module_hci_notify_len 
-3abf 20407fdd call not_greater_than 
-3ac0 1fe22200 copy pdata ,rega 
-3ac1 18427e00 copy temp ,pdata 
-3ac2 9a267e00 isub rega ,pdata 
-3ac3 6000c6c0 store 1 ,mem_module_hci_notify_len 
-3ac4 680946c1 fetcht 2 ,mem_module_hci_notify_handle 
-3ac5 20405a64 call le_att_malloc_tx_notify 
-3ac6 680146c3 fetch 2 ,mem_module_hci_nofiy_addr 
-3ac7 1fe20600 copy pdata ,contru 
-3ac8 1a227200 copy rega ,loopcnt 
-3ac9 204066ea call uart_copy_rx_bytes_fast 
-3aca 18627e00 copy contru ,pdata 
-3acb 600146c3 store 2 ,mem_module_hci_nofiy_addr 
-3acc 6800c6c0 fetch 1 ,mem_module_hci_notify_len 
-3acd 247a0000 nrtn blank 
-3ace 20203cf4 branch module_set_le_tx_data_flag 
-
-module_get_le_remote_mtu:
-3acf d8400017 arg 0x17 ,temp 
-3ad0 6800c6bf fetch 1 ,mem_module_flag 
-3ad1 c3808000 rtnbit1 module_flag_ble_send_mtu23 
-3ad2 680944a8 fetcht 2 ,mem_le_remote_mtu 
-3ad3 20600000 rtn 
-
-module_check_ble_encrypt_state:
-3ad4 6800c6bf fetch 1 ,mem_module_flag 
-3ad5 c2815a42 bbit1 module_flag_ble_data_encrypt ,le_check_encrypt_state 
-3ad6 20207fe9 branch disable_user 
-
-module_hci_cmd_inquire_status:
-3ad7 20203c4c branch module_hci_event_status_res 
-
-module_hci_cmd_set_pairing_mode:
-3ad8 1a220600 copy rega ,contru 
-3ad9 e8608000 ifetch 1 ,contru 
-3ada c0003adf beq pairing_pincode ,module_hci_pairing_pincode_mode 
-3adb c000bae2 beq pairing_justwork ,module_hci_pairing_just_work_mode 
-3adc c0013ae8 beq pairing_passkey ,module_hci_pairing_passkey 
-3add c001baea beq pairing_confirm ,module_hci_pairing_numeric_comparison 
-3ade 20203c17 branch module_hci_event_receive_invalid_cmd 
-
-module_hci_pairing_pincode_mode:
-3adf 2040612b call ssp_disable 
-3ae0 70465a00 jam 0 ,mem_ssp_enable 
-3ae1 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_pairing_just_work_mode:
-3ae2 58040003 setarg ssp_mode_just_work_io_cap_data 
-
-module_hci_sspairing_mode:
-3ae3 6001c65b store 3 ,mem_sp_iocap_local 
-3ae4 6000c662 store 1 ,mem_ssp_mode_flag 
-3ae5 20406124 call ssp_enable 
-3ae6 70465a01 jam 1 ,mem_ssp_enable 
-3ae7 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_pairing_passkey:
-3ae8 58040002 setarg ssp_mode_passkey_io_cap_data 
-3ae9 20203ae3 branch module_hci_sspairing_mode 
-
-module_hci_pairing_numeric_comparison:
-3aea 58040001 setarg ssp_mode_ssp_pin_io_cap_data 
-3aeb 20203ae3 branch module_hci_sspairing_mode 
-
-module_hci_cmd_set_pincode:
-3aec 68008b04 fetch 1 ,mem_module_uart_len 
-3aed 1fe67c10 sub pdata ,16 ,null 
-3aee 24213c17 nbranch module_hci_event_receive_invalid_cmd ,positive 
-3aef 6000c689 store 1 ,mem_pin_length 
-3af0 1fe27200 copy pdata ,loopcnt 
-3af1 d8a0468a arg mem_pin ,contw 
-3af2 204066fd call uart_copy_rx_bytes 
-3af3 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_uart_control_mode:
-3af4 1a220600 copy rega ,contru 
-3af5 e8608000 ifetch 1 ,contru 
-3af6 68188062 hfetcht 1 ,core_uart_ctrl 
-3af7 7d3a0404 nsetflag blank ,4 ,temp 
-3af8 60188062 hstoret 1 ,core_uart_ctrl 
-3af9 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_uart_baud:
-3afa 68008b04 fetch 1 ,mem_module_uart_len 
-3afb 1fe27200 copy pdata ,loopcnt 
-3afc 1a220600 copy rega ,contru 
-3afd 20407f58 call string2dec_from_uart 
-3afe 596e3600 setarg uart_clk_24 
-3aff 9846fc00 idiv temp 
-3b00 20407f86 call wait_div_end 
-3b01 1807fe00 quotient pdata 
-
-module_hci_cmd_set_uart_baud_ok:
-3b02 60014243 store uart_baud_len ,mem_baud 
-3b03 20403c1a call module_hci_event_receive_valid_cmd 
-3b04 20407f9e call wait_uarttx 
-3b05 202066ce branch uart_set_baud_by_mem 
-
-module_hci_cmd_version_request:
-3b06 da200002 arg 2 ,rega 
-3b07 da40469a arg mem_soft_version_num ,regb 
-3b08 d8400000 arg 0 ,temp 
-3b09 20203c25 branch module_hci_event_set_cmd 
-
-module_hci_event_set_cmd_send_response:
-3b0a 60010ac2 store 2 ,mem_event_cmd_response_content 
-3b0b da400ac2 arg mem_event_cmd_response_content ,regb 
-3b0c d8400000 arg 0 ,temp 
-3b0d 20203c25 branch module_hci_event_set_cmd 
-
-module_hci_cmd_bt_disconnect:
-3b0e 68014682 fetch 2 ,mem_ui_state_map 
-3b0f c3003c17 bbit0 ui_state_bt_connected ,module_hci_event_receive_invalid_cmd 
-
-module_hci_cmd_bt_disconnect_doing:
-3b10 20403c1a call module_hci_event_receive_valid_cmd 
-3b11 202033e9 branch app_bt_disconnect 
-
-module_hci_cmd_ble_disconnect:
-3b12 68014682 fetch 2 ,mem_ui_state_map 
-3b13 c304bc17 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
-
-module_hci_cmd_ble_disconnect_doing:
-3b14 20403c1a call module_hci_event_receive_valid_cmd 
-3b15 20203402 branch app_ble_disconnect 
-
-module_hci_cmd_set_nvram:
-3b16 68008b04 fetch 1 ,mem_module_uart_len 
-3b17 1fe27200 copy pdata ,loopcnt 
-3b18 1a220600 copy rega ,contru 
-3b19 68014215 fetch 2 ,mem_nv_data_ptr 
-3b1a 1fe20a00 icopy contw 
-3b1b 204066ea call uart_copy_rx_bytes_fast 
-3b1c 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_confirm_gkey:
-3b1d 6800c682 fetch 1 ,mem_ui_state_map 
-3b1e c3003c17 bbit0 ui_state_bt_connected ,module_hci_event_receive_invalid_cmd 
-3b1f e8608000 ifetch 1 ,contru 
-3b20 6808c661 fetcht 1 ,mem_flag_mode_ssp_pin 
-3b21 793a0400 setflag blank ,flag_mode_ssp_pin_comparison_result_bit ,temp 
-3b22 79200407 set1 flag_mode_ssp_pin_reviceve_comparison_bit ,temp 
-3b23 6008c661 storet 1 ,mem_flag_mode_ssp_pin 
-3b24 20403c1a call module_hci_event_receive_valid_cmd 
-3b25 6800c661 fetch 1 ,mem_flag_mode_ssp_pin 
-3b26 c2833b2b bbit1 flag_mode_ssp_pin_recieve_dhkey_bit ,module_hci_cmd_spp_number_comparison_result_is1 
-3b27 20600000 rtn 
-
-dhkey_not_accept:
-3b28 70466100 jam 0 ,mem_flag_mode_ssp_pin 
-3b29 700a9921 jam bt_cmd_dhkey_not_accept ,mem_fifo_temp 
-3b2a 20207d8f branch ui_ipc_send_cmd 
-
-module_hci_cmd_spp_number_comparison_result_is1:
-3b2b c2805f95 bbit1 flag_mode_ssp_pin_comparison_result_bit ,number_comparison_successed 
-3b2c 20203b28 branch dhkey_not_accept 
-
-module_hci_cmd_set_credit_given:
-3b2d 6800c682 fetch 1 ,mem_ui_state_map 
-3b2e c4020000 rtnbit0 ui_state_bt_spp_conn 
-3b2f 6800c56b fetch 1 ,mem_credit_flag 
-3b30 c1000000 rtneq credit_disable 
-3b31 e8608000 ifetch 1 ,contru 
-3b32 6808c569 fetcht 1 ,mem_credit_given 
-3b33 98408400 iadd temp ,temp 
-3b34 6008c569 storet 1 ,mem_credit_given 
-3b35 20600000 rtn 
-
-module_hci_cmd_auto_adv:
-3b36 df200040 arg 0x40 ,loopcnt 
-3b37 d8a0436f arg mem_le_adv_data_len ,contw 
-3b38 20407ed4 call clear_mem 
-3b39 58000000 setarg 0 
-3b3a 60008ab2 store 1 ,mem_regb 
-3b3b 1a220600 copy rega ,contru 
-
-module_hci_cmd_auto_adv_loop:
-3b3c 18627e00 copy contru ,pdata 
-3b3d 60010ab6 store 2 ,mem_regc 
-3b3e 20403b64 call module_hci_cmd_auto_adv_adv_analys 
-3b3f 68008ab2 fetch 1 ,mem_regb 
-3b40 68088aa2 fetcht 1 ,mem_temp 
-3b41 18408401 increase 1 ,temp 
-3b42 9840fe00 iadd temp ,pdata 
-3b43 60008ab2 store 1 ,mem_regb 
-3b44 1fe67c1f sub pdata ,31 ,null 
-3b45 24213b50 nbranch module_hci_cmd_auto_adv_store_scan ,positive 
-
-module_hci_cmd_auto_adv_store_adv:
-3b46 6808c36f fetcht 1 ,mem_le_adv_data_len 
-3b47 58004370 setarg mem_le_adv_data 
-3b48 9840fe00 iadd temp ,pdata 
-3b49 60010abb store 2 ,mem_contw 
-3b4a 68088aa2 fetcht 1 ,mem_temp 
-3b4b 18408401 increase 1 ,temp 
-3b4c 6800c36f fetch 1 ,mem_le_adv_data_len 
-3b4d 9840fe00 iadd temp ,pdata 
-3b4e 6000c36f store 1 ,mem_le_adv_data_len 
-3b4f 20203b59 branch module_hci_cmd_auto_adv_store_common 
-
-module_hci_cmd_auto_adv_store_scan:
-3b50 6808c38f fetcht 1 ,mem_le_scan_data_len 
-3b51 58004390 setarg mem_le_scan_data 
-3b52 9840fe00 iadd temp ,pdata 
-3b53 60010abb store 2 ,mem_contw 
-3b54 68088aa2 fetcht 1 ,mem_temp 
-3b55 18408401 increase 1 ,temp 
-3b56 6800c38f fetch 1 ,mem_le_scan_data_len 
-3b57 9840fe00 iadd temp ,pdata 
-3b58 6000c38f store 1 ,mem_le_scan_data_len 
-
-module_hci_cmd_auto_adv_store_common:
-3b59 68010abb fetch 2 ,mem_contw 
-3b5a 1fe20a00 copy pdata ,contw 
-3b5b 68010ab6 fetch 2 ,mem_regc 
-3b5c 1fe20600 copy pdata ,contru 
-3b5d 18427200 copy temp ,loopcnt 
-3b5e 204066ea call uart_copy_rx_bytes_fast 
-3b5f 68008b04 fetch 1 ,mem_module_uart_len 
-3b60 68088ab2 fetcht 1 ,mem_regb 
-3b61 98467c00 isub temp ,null 
-3b62 2422bb3c nbranch module_hci_cmd_auto_adv_loop ,zero 
-3b63 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_auto_adv_adv_analys:
-3b64 e8608000 ifetch 1 ,contru 
-3b65 60008aa2 store 1 ,mem_temp 
-3b66 e8608000 ifetch 1 ,contru 
-3b67 60008aae store 1 ,mem_rega 
-3b68 20600000 rtn 
-
-module_hci_cmd_power_request:
-3b69 d8400000 arg 0 ,temp 
-3b6a da200002 arg 2 ,rega 
-3b6b 680146b4 fetch 2 ,mem_module_vdd_quotient 
-3b6c 60010ac2 store 2 ,mem_event_cmd_response_content 
-3b6d da400ac2 arg mem_event_cmd_response_content ,regb 
-3b6e 20203c25 branch module_hci_event_set_cmd 
-
-module_hci_cmd_power_set:
-3b6f 68008b04 fetch 1 ,mem_module_uart_len 
-3b70 c080bc17 bne 1 ,module_hci_event_receive_invalid_cmd 
-3b71 e8608000 ifetch 1 ,contru 
-3b72 6000c6b2 store 1 ,mem_module_read_vdd_flag 
-3b73 58000000 setarg 0x00 
-3b74 600146b4 store 2 ,mem_module_vdd_quotient 
-3b75 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_passkey_entry:
-3b76 e8620000 ifetch 4 ,contru 
-3b77 6002468a store 4 ,mem_pin 
-3b78 70468904 jam 4 ,mem_pin_length 
-3b79 70466300 jam 0 ,mem_authentication_passkey_times 
-3b7a 20403c1a call module_hci_event_receive_valid_cmd 
-3b7b 20205f31 branch authentication_passkey 
-
-module_hci_cmd_set_gpio:
-3b7c 68008b04 fetch 1 ,mem_module_uart_len 
-3b7d c081bc17 bne 3 ,module_hci_event_receive_invalid_cmd 
-3b7e e8608000 ifetch 1 ,contru 
-3b7f c0003b82 beq hci_cmd_config_gpio_input ,module_set_gpio_input 
-3b80 c000bb8a beq hci_cmd_config_gpio_output ,module_set_gpio_output 
-3b81 20203c17 branch module_hci_event_receive_invalid_cmd 
-
-module_set_gpio_input:
-3b82 e8688000 ifetcht 1 ,contru 
-3b83 e8608000 ifetch 1 ,contru 
-3b84 c0013b88 beq gpio_input_high_impedance ,module_set_gpio_high_impedance 
-3b85 7d3a0407 nsetflag blank ,7 ,temp 
-3b86 204067fb call gpio_config_input 
-3b87 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_set_gpio_high_impedance:
-3b88 20406806 call gpio_set_high_impedance 
-3b89 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_set_gpio_output:
-3b8a e8688000 ifetcht 1 ,contru 
-3b8b 20406812 call gpio_config_output0 
-3b8c e8608000 ifetch 1 ,contru 
-3b8d 2feffe00 isolate1 0 ,pdata 
-3b8e 2040682c call gpio_out_flag 
-3b8f 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_read_gpio:
-3b90 68008b04 fetch 1 ,mem_module_uart_len 
-3b91 c080bc17 bne 1 ,module_hci_event_receive_invalid_cmd 
-3b92 e8688000 ifetcht 1 ,contru 
-3b93 2040681d call gpio_get_bit 
-3b94 58000000 setarg 0x0 
-3b95 7d20fe00 nsetflag true ,0 ,pdata 
-3b96 da200001 arg 1 ,rega 
-3b97 20203b0a branch module_hci_event_set_cmd_send_response 
-
-module_hci_cmd_le_set_pairing_mode:
-3b98 1a220600 copy rega ,contru 
-3b99 e8608000 ifetch 1 ,contru 
-3b9a 1fe20400 copy pdata ,temp 
-3b9b c040bba3 beq le_pairing_mode_secure_connect_justwork ,module_le_set_pairing_mode_secure_justwork 
-3b9c c0413ba8 beq le_pairing_mode_secure_connect_numeric ,module_le_set_pairing_mode_secure_numeric 
-3b9d c041bbae beq le_pairing_mode_secure_connect_passkey ,module_le_set_pairing_mode_secure_passkey 
-3b9e 6000c4c6 store 1 ,mem_le_pairing_mode 
-3b9f c0003bb3 beq le_pairing_mode_none ,module_le_set_no_pairing 
-3ba0 c000bbb6 beq le_pairing_mode_lagacy_justwork ,module_le_set_pairing_mode_lagacy_just_work 
-3ba1 c0013bb8 beq le_pairing_mode_lagacy_passkey ,module_le_set_pairing_mode_lagacy_passkey 
-3ba2 20203c17 branch module_hci_event_receive_invalid_cmd 
-
-module_le_set_pairing_mode_secure_justwork:
-3ba3 6800c4be fetch 1 ,mem_le_secure_connect_enable 
-3ba4 203a3c17 branch module_hci_event_receive_invalid_cmd ,blank 
-3ba5 6008c4c6 storet 1 ,mem_le_pairing_mode 
-3ba6 7044560d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-3ba7 20203bb4 branch module_le_set_noinputnooutput 
-
-module_le_set_pairing_mode_secure_numeric:
-3ba8 6800c4be fetch 1 ,mem_le_secure_connect_enable 
-3ba9 203a3c17 branch module_hci_event_receive_invalid_cmd ,blank 
-3baa 6008c4c6 storet 1 ,mem_le_pairing_mode 
-3bab 7044560d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-3bac 70445401 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
-3bad 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_le_set_pairing_mode_secure_passkey:
-3bae 6800c4be fetch 1 ,mem_le_secure_connect_enable 
-3baf 203a3c17 branch module_hci_event_receive_invalid_cmd ,blank 
-3bb0 6008c4c6 storet 1 ,mem_le_pairing_mode 
-3bb1 7044560d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-3bb2 20203bb9 branch module_le_set_displayonly 
-
-module_le_set_no_pairing:
-3bb3 70445600 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
-
-module_le_set_noinputnooutput:
-3bb4 70445403 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
-3bb5 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_le_set_pairing_mode_lagacy_just_work:
-3bb6 70445605 jam flag_le_bonding_mitm ,mem_le_pres_auth 
-3bb7 20203bb4 branch module_le_set_noinputnooutput 
-
-module_le_set_pairing_mode_lagacy_passkey:
-3bb8 70445605 jam flag_le_bonding_mitm ,mem_le_pres_auth 
-
-module_le_set_displayonly:
-3bb9 70445400 jam flag_iocap_displayonly ,mem_le_pres_iocap 
-3bba 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_le_set_adv_data:
-3bbb 68008b04 fetch 1 ,mem_module_uart_len 
-3bbc 1fe67c1f sub pdata ,31 ,null 
-3bbd 24213c17 nbranch module_hci_event_receive_invalid_cmd ,positive 
-3bbe 6000c36f store 1 ,mem_le_adv_data_len 
-3bbf 1fe27200 copy pdata ,loopcnt 
-3bc0 1a220600 copy rega ,contru 
-3bc1 d8a04370 arg mem_le_adv_data ,contw 
-3bc2 204066ea call uart_copy_rx_bytes_fast 
-3bc3 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_le_set_scan_data:
-3bc4 68008b04 fetch 1 ,mem_module_uart_len 
-3bc5 1fe67c1f sub pdata ,31 ,null 
-3bc6 24213c17 nbranch module_hci_event_receive_invalid_cmd ,positive 
-3bc7 6000c38f store 1 ,mem_le_scan_data_len 
-3bc8 1fe27200 copy pdata ,loopcnt 
-3bc9 1a220600 copy rega ,contru 
-3bca d8a04390 arg mem_le_scan_data ,contw 
-3bcb 204066ea call uart_copy_rx_bytes_fast 
-3bcc 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_le_send_conn_update_req:
-3bcd 68014682 fetch 2 ,mem_ui_state_map 
-3bce c304bc17 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
-3bcf 68008b04 fetch 1 ,mem_module_uart_len 
-3bd0 c0843c17 bne 0x08 ,module_hci_event_receive_invalid_cmd 
-3bd1 1a220600 copy rega ,contru 
-3bd2 e8640000 ifetch 8 ,contru 
-3bd3 60044496 store 8 ,mem_le_interval_min 
-3bd4 700a9912 jam bt_cmd_le_update_conn ,mem_fifo_temp 
-3bd5 20407d8f call ui_ipc_send_cmd 
-3bd6 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_le_adv_parameter:
-3bd7 e8610000 ifetch 2 ,contru 
-3bd8 60014482 store 2 ,mem_le_adv_interval 
-3bd9 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_le_start_pairing:
-3bda 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-3bdb 203a3c17 branch module_hci_event_receive_invalid_cmd ,blank 
-3bdc 6800c4c4 fetch 1 ,mem_le_pairing_state 
-3bdd c0803c17 bne flag_le_pairing_null ,module_hci_event_receive_invalid_cmd 
-3bde 6800c4c5 fetch 1 ,mem_le_enc_state 
-3bdf c0803c17 bne flag_le_enc_null ,module_hci_event_receive_invalid_cmd 
-3be0 20407e25 call check_51cmd_le_smp_sec_req 
-3be1 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_wake_gpio:
-3be2 68008b04 fetch 1 ,mem_module_uart_len 
-3be3 c082bc17 bne 5 ,module_hci_event_receive_invalid_cmd 
-3be4 e8608000 ifetch 1 ,contru 
-3be5 6000c6a2 store 1 ,mem_module_mcu_wake_pin 
-3be6 e8620000 ifetch 4 ,contru 
-3be7 600246a3 store 4 ,mem_module_mcu_wake_delay_us 
-3be8 6808c6a2 fetcht 1 ,mem_module_mcu_wake_pin 
-3be9 2040680e call gpio_config_output 
-3bea 20403cbc call module_set_mcu_wake_pin_low 
-3beb 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_tx_power:
-3bec 68008b04 fetch 1 ,mem_module_uart_len 
-3bed c080bc17 bne 0x01 ,module_hci_event_receive_invalid_cmd 
-3bee e8608000 ifetch 1 ,contru 
-3bef 6000c1de store 1 ,mem_tx_power 
-3bf0 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_le_confirm_gkey:
-3bf1 e8608000 ifetch 1 ,contru 
-3bf2 c000bbfa beq 0x01 ,module_hci_cmd_le_confirm_gkey_fail 
-3bf3 6800c4c1 fetch 1 ,mem_le_secure_connect_state 
-3bf4 c001bbf8 beq le_sc_stat_send_public_key ,module_hci_cmd_le_confirm_gkey_ok 
-3bf5 c0033bf8 beq le_sc_stat_receive_dhkey ,module_hci_cmd_le_confirm_gkey_ok 
-3bf6 c003bbf8 beq le_sc_stat_wait_confirm_gkey ,module_hci_cmd_le_confirm_gkey_ok 
-3bf7 20203c17 branch module_hci_event_receive_invalid_cmd 
-
-module_hci_cmd_le_confirm_gkey_ok:
-3bf8 7044c201 jam flag_le_sc_confrim_gkey_ok ,mem_le_sc_confirm_gkey_flag 
-3bf9 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_le_confirm_gkey_fail:
-3bfa 20405b53 call le_send_pairing_confirm_value_failed 
-3bfb 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_reject_justwork_flag:
-3bfc 68008b04 fetch 1 ,mem_module_uart_len 
-3bfd c080bc17 bne 0x01 ,module_hci_event_receive_invalid_cmd 
-3bfe 20403c1a call module_hci_event_receive_valid_cmd 
-3bff e8608000 ifetch 1 ,contru 
-3c00 203a60cb branch classic_bt_clr_reject_justwork_flag ,blank 
-3c01 202060c9 branch classic_bt_set_reject_justwork_flag 
-
-module_hci_cmd_reset_chip:
-3c02 20403c1a call module_hci_event_receive_valid_cmd 
-3c03 20407f9e call wait_uarttx 
-3c04 70801001 jam 0x01 ,core_reset 
-3c05 20202a8e branch loop 
-
-module_hci_cmd_le_set_fixed_passkey:
-3c06 68008b04 fetch 1 ,mem_module_uart_len 
-3c07 c0003c17 beq 0 ,module_hci_event_receive_invalid_cmd 
-3c08 e8608000 ifetch 1 ,contru 
-3c09 203a3c13 branch module_hci_cmd_le_set_random_passkey ,blank 
-3c0a 68008b04 fetch 1 ,mem_module_uart_len 
-3c0b c082bc17 bne 5 ,module_hci_event_receive_invalid_cmd 
-3c0c e8620000 ifetch 4 ,contru 
-3c0d d84f4240 arg 1000000 ,temp 
-3c0e 98467c00 isub temp ,null 
-3c0f 20213c17 branch module_hci_event_receive_invalid_cmd ,positive 
-3c10 600244c7 store 4 ,mem_le_tk 
-3c11 2040580c call le_set_config_fixed_tk 
-3c12 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_le_set_random_passkey:
-3c13 2040580e call le_clr_config_fixed_tk 
-3c14 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_test_cmde_close_lpm:
-3c15 70409100 jam 0 ,mem_lpm_mode 
-3c16 20203c1a branch module_hci_event_receive_valid_cmd 
-
-module_hci_event_receive_invalid_cmd:
-3c17 d8400001 arg 1 ,temp 
-3c18 da200000 arg 0 ,rega 
-3c19 20203c25 branch module_hci_event_set_cmd 
-
-module_hci_event_receive_valid_cmd:
-3c1a d8400000 arg 0 ,temp 
-3c1b da200000 arg 0 ,rega 
-3c1c 20203c25 branch module_hci_event_set_cmd 
-
-module_hci_event_spp_connect:
-3c1d 700b0300 jam hci_event_spp_conn_rep ,mem_module_uart_opcode 
-3c1e 20203c49 branch module_hci_event_enter_standby_mode_len0 
-
-module_hci_event_le_connect:
-3c1f 700b0302 jam hci_event_le_conn_rep ,mem_module_uart_opcode 
-3c20 20203c49 branch module_hci_event_enter_standby_mode_len0 
-
-module_hci_event_spp_disconnect:
-3c21 700b0303 jam hci_event_spp_dis_rep ,mem_module_uart_opcode 
-3c22 20203c49 branch module_hci_event_enter_standby_mode_len0 
-
-module_hci_event_le_disconnect:
-3c23 700b0305 jam hci_event_le_dis_rep ,mem_module_uart_opcode 
-3c24 20203c49 branch module_hci_event_enter_standby_mode_len0 
-
-module_hci_event_set_cmd:
-3c25 68008b03 fetch 1 ,mem_module_uart_opcode 
-3c26 1fe22600 copy pdata ,regc 
-3c27 700b0306 jam hci_event_cmd_res ,mem_module_uart_opcode 
-3c28 58000002 setarg 2 
-3c29 9a20fe00 iadd rega ,pdata 
-3c2a 20403ca7 call module_hci_prepare_tx 
-3c2b 1a627e00 copy regc ,pdata 
-3c2c e1408000 istore 1 ,contwu 
-3c2d e1488000 istoret 1 ,contwu 
-3c2e 1a227200 copy rega ,loopcnt 
-3c2f 1a420c00 copy regb ,contr 
-3c30 204066e4 call uart_copy_tx_bytes 
-3c31 202066c5 branch uartd_send 
-
-module_hci_event_receive_spp_data:
-3c32 2040397f call module_spp_clear_last_transmite_clock 
-3c33 700b0307 jam hci_event_spp_data_rep ,mem_module_uart_opcode 
-3c34 680084ff fetch 1 ,mem_current_length 
-3c35 207a0000 rtn blank 
-3c36 20403ca7 call module_hci_prepare_tx 
-3c37 680084ff fetch 1 ,mem_current_length 
-3c38 1fe27200 copy pdata ,loopcnt 
-3c39 68010501 fetch 2 ,mem_rfcomm_uih_payload_ptr 
-3c3a 1fe20c00 copy pdata ,contr 
-3c3b 204066d1 call uart_copy_tx_bytes_fast 
-3c3c 202066c5 branch uartd_send 
-
-module_hci_event_receive_le_data:
-3c3d 700b0308 jam hci_event_le_data_rep ,mem_module_uart_opcode 
-3c3e 6800c6b6 fetch 1 ,mem_module_le_rx_data_len 
-3c3f 1fe27200 icopy loopcnt 
-3c40 1fe0fe02 increase 2 ,pdata 
-3c41 20403ca7 call module_hci_prepare_tx 
-3c42 680146b9 fetch 2 ,mem_module_le_rx_data_handle 
-3c43 e1410000 istore 2 ,contwu 
-3c44 680146b7 fetch 2 ,mem_module_le_rx_data_address 
-3c45 1fe20c00 icopy contr 
-3c46 204066d1 call uart_copy_tx_bytes_fast 
-3c47 202066c5 branch uartd_send 
-
-module_hci_event_enter_standby_mode:
-3c48 700b0309 jam hci_event_standby_rep ,mem_module_uart_opcode 
-
-module_hci_event_enter_standby_mode_len0:
-3c49 58000000 setarg 0 
-3c4a 20403ca7 call module_hci_prepare_tx 
-3c4b 202066c5 branch uartd_send 
-
-module_hci_event_status_res:
-3c4c 700b030a jam hci_event_status_res ,mem_module_uart_opcode 
-3c4d 58000001 setarg 1 
-3c4e 20403ca7 call module_hci_prepare_tx 
-3c4f 20403c5d call module_hci_read_bt_status 
-3c50 68014682 fetch 2 ,mem_ui_state_map 
-3c51 d8e00002 arg ui_state_bt_hid_conn ,queue 
-3c52 afefffff qisolate1 pdata 
-3c53 79208403 setflag true ,3 ,temp 
-3c54 d8e00009 arg ui_state_ble_connected ,queue 
-3c55 afefffff qisolate1 pdata 
-3c56 79208405 setflag true ,5 ,temp 
-3c57 6800c682 fetch 1 ,mem_ui_state_map 
-3c58 d8e00004 arg ui_state_bt_spp_conn ,queue 
-3c59 afefffff qisolate1 pdata 
-3c5a 79208404 setflag true ,4 ,temp 
-3c5b e1488000 istoret 1 ,contwu 
-3c5c 202066c5 branch uartd_send 
-
-module_hci_read_bt_status:
-3c5d d8400000 arg 0 ,temp 
-3c5e 6800c093 fetch 1 ,mem_scan_mode 
-3c5f d8e00000 arg inq_scan_mode ,queue 
-3c60 afefffff qisolate1 pdata 
-3c61 79208400 setflag true ,0 ,temp 
-3c62 d8e00001 arg page_scan_mode ,queue 
-3c63 afefffff qisolate1 pdata 
-3c64 79208401 setflag true ,1 ,temp 
-3c65 6800c36e fetch 1 ,mem_le_adv_enable 
-3c66 d8e00000 arg 0 ,queue 
-3c67 afefffff qisolate1 pdata 
-3c68 79208402 setflag true ,2 ,temp 
-3c69 20600000 rtn 
-
-module_hci_event_store_device:
-3c6a 700b030d jam hci_event_nvram_rep ,mem_module_uart_opcode 
-3c6b 6800c217 fetch 1 ,mem_nv_data_number 
-3c6c 1feffe22 mul32 pdata ,34 ,pdata 
-3c6d 1fe27200 icopy loopcnt 
-3c6e 20403ca7 call module_hci_prepare_tx 
-3c6f 68014215 fetch 2 ,mem_nv_data_ptr 
-3c70 1fe20c00 icopy contr 
-3c71 204066d1 call uart_copy_tx_bytes_fast 
-3c72 202066c5 branch uartd_send 
-
-module_hci_event_gkey_generate:
-3c73 700b030e jam hci_event_gkey ,mem_module_uart_opcode 
-3c74 58000004 setarg 4 
-3c75 20403ca7 call module_hci_prepare_tx 
-3c76 680209ba fetch 4 ,mem_gkey 
-3c77 e1420000 istore 4 ,contwu 
-3c78 202066c5 branch uartd_send 
-
-module_hci_event_invalid_packet:
-3c79 700b030f jam hci_event_invalid_packet ,mem_module_uart_opcode 
-3c7a 68110112 hfetch 2 ,core_uart_rxitems 
-3c7b d84000ff arg 0xff ,temp 
-3c7c 20407fdd call not_greater_than 
-3c7d 1fe27200 copy pdata ,loopcnt 
-3c7e 20403ca7 call module_hci_prepare_tx 
-3c7f 204066cb call uartd_prepare_rx 
-3c80 20406703 call uart_copy_rx2tx 
-3c81 202066c5 branch uartd_send 
-
-module_hci_event_passkey_entry_mode:
-3c82 700b0310 jam hci_event_get_passkey ,mem_module_uart_opcode 
-3c83 20203c49 branch module_hci_event_enter_standby_mode_len0 
-
-module_hci_event_le_tk:
-3c84 700b0311 jam hci_event_le_tk ,mem_module_uart_opcode 
-3c85 58000004 setarg 4 
-3c86 20403ca7 call module_hci_prepare_tx 
-3c87 680244c7 fetch 4 ,mem_le_tk 
-3c88 e1420000 istore 4 ,contwu 
-3c89 202066c5 branch uartd_send 
-
-module_hci_event_le_pairing_fail:
-3c8a da200180 arg flag_ble_pairing_fail ,rega 
-3c8b 20203c91 branch module_hci_event_pairing_completed 
-
-module_hci_event_le_pairing_success:
-3c8c da200080 arg flag_ble_pairing_success ,rega 
-3c8d 20203c91 branch module_hci_event_pairing_completed 
-
-module_hci_event_bt_pairing_fail:
-3c8e da200101 arg flag_bt_pairing_fail ,rega 
-3c8f 20203c91 branch module_hci_event_pairing_completed 
-
-module_hci_event_bt_pairing_success:
-3c90 da200001 arg flag_bt_pairing_success ,rega 
-
-module_hci_event_pairing_completed:
-3c91 70466100 jam 0 ,mem_flag_mode_ssp_pin 
-3c92 700b0314 jam hci_event_le_pairing_state ,mem_module_uart_opcode 
-3c93 58000002 setarg 2 
-3c94 20403ca7 call module_hci_prepare_tx 
-3c95 1a227e00 copy rega ,pdata 
-3c96 e1410000 istore 2 ,contwu 
-3c97 202066c5 branch uartd_send 
-
-module_hci_event_pause_enc:
-3c98 da600000 arg flag_event_pause_enc ,regc 
-3c99 20203c9b branch module_hci_event_enc 
-
-module_hci_event_start_enc:
-3c9a da600001 arg flag_event_start_enc ,regc 
-
-module_hci_event_enc:
-3c9b 700b0315 jam hci_event_le_encryption_state ,mem_module_uart_opcode 
-3c9c 58000001 setarg 1 
-3c9d 20403ca7 call module_hci_prepare_tx 
-3c9e 1a627e00 copy regc ,pdata 
-3c9f e1408000 istore 1 ,contwu 
-3ca0 202066c5 branch uartd_send 
-
-module_hci_event_le_gkey:
-3ca1 700b031d jam hci_event_le_gkey ,mem_module_uart_opcode 
-3ca2 58000004 setarg 4 
-3ca3 20403ca7 call module_hci_prepare_tx 
-3ca4 680209ba fetch 4 ,mem_gkey 
-3ca5 e1420000 istore 4 ,contwu 
-3ca6 202066c5 branch uartd_send 
-
-module_hci_prepare_tx:
-3ca7 700b0202 jam 0x02 ,mem_module_uart_cmd 
-3ca8 60008b04 store 1 ,mem_module_uart_len 
-3ca9 600c0aa2 storet 8 ,mem_temp 
-3caa 44f1401c bpatch patch1c_2 ,mem_patch1c 
-3cab 20403cb1 call module_set_mcu_wake_pin_high_delay 
-3cac 680c0aa2 fetcht 8 ,mem_temp 
-3cad 204066c2 call uartd_prepare_tx 
-3cae 68018b02 fetch 3 ,mem_module_uart_cmd 
-3caf e1418000 istore 3 ,contwu 
-3cb0 20600000 rtn 
-
-module_set_mcu_wake_pin_high_delay:
-3cb1 20403cba call module_check_mcu_wake_pin_high 
-3cb2 20608000 rtn true 
-
-module_set_mcu_wake_pin_h_delay:
-3cb3 20403cb8 call module_set_mcu_wake_pin_high 
-3cb4 680246a3 fetch 4 ,mem_module_mcu_wake_delay_us 
-3cb5 1feb7e00 rshift2 pdata ,pdata 
-3cb6 207a0000 rtn blank 
-3cb7 20203cbe branch delay 
-
-module_set_mcu_wake_pin_high:
-3cb8 6808c6a2 fetcht 1 ,mem_module_mcu_wake_pin 
-3cb9 20206829 branch gpio_out_active 
-
-module_check_mcu_wake_pin_high:
-3cba 6808c6a2 fetcht 1 ,mem_module_mcu_wake_pin 
-3cbb 2020681b branch gpio_check_active 
-
-module_set_mcu_wake_pin_low:
-3cbc 6808c6a2 fetcht 1 ,mem_module_mcu_wake_pin 
-3cbd 20206825 branch gpio_out_inactive 
-
-delay:
-3cbe 1fe0ffff increase -1 ,pdata 
-3cbf 20000026 nop 38 
-3cc0 243a3cbe nbranch delay ,blank 
-3cc1 20600000 rtn 
-
-module_le_receive_data:
-3cc2 20403ad4 call module_check_ble_encrypt_state 
-3cc3 20740000 rtn user 
-3cc4 1a227e00 copy rega ,pdata 
-3cc5 600146b7 store 2 ,mem_module_le_rx_data_address 
-3cc6 1a427e00 copy regb ,pdata 
-3cc7 6000c6b6 store 1 ,mem_module_le_rx_data_len 
-3cc8 68010478 fetch 2 ,mem_le_att_handle 
-3cc9 680946bb fetcht 2 ,mem_module_data_write_handle 
-3cca 98467c00 isub temp ,null 
-3ccb 2022bccf branch module_le_receive_data_ok ,zero 
-3ccc 680946bd fetcht 2 ,mem_module_data_write_handle2 
-3ccd 98467c00 isub temp ,null 
-3cce 24628000 nrtn zero 
-
-module_le_receive_data_ok:
-3ccf 600146b9 store 2 ,mem_module_le_rx_data_handle 
-3cd0 20203c3d branch module_hci_event_receive_le_data 
-
-module_exit_sniff:
-3cd1 6800c6bf fetch 1 ,mem_module_flag 
-3cd2 c3828000 rtnbit1 moudle_task_unsniff 
-3cd3 20403cf0 call module_set_unsniff_task_flag 
-3cd4 2020340c branch app_bt_sniff_exit 
-
-module_set_lpm_mult_2:
-3cd5 70417202 jam 2 ,mem_lpm_mult 
-3cd6 20600000 rtn 
-
-module_bb_event_timer:
-3cd7 20203cd8 branch module_read_vdd_timer 
-
-module_read_vdd_timer:
-3cd8 6800c6b2 fetch 1 ,mem_module_read_vdd_flag 
-3cd9 207a0000 rtn blank 
-3cda 6800c6b3 fetch 1 ,mem_module_read_vdd_count 
-3cdb 207a0000 rtn blank 
-3cdc 1fe0ffff increase -1 ,pdata 
-3cdd 6000c6b3 store 1 ,mem_module_read_vdd_count 
-3cde 247a0000 nrtn blank 
-3cdf 7046b30a jam flag_module_read_vdd_count ,mem_module_read_vdd_count 
-3ce0 204068eb call adc_set_mode 
-3ce1 20406908 call vdd_calculate_by_mode 
-3ce2 1fe6fc64 div pdata ,0x64 
-3ce3 20407f86 call wait_div_end 
-3ce4 1807fe00 quotient pdata 
-3ce5 18070400 remainder temp 
-3ce6 6000c6b4 store 1 ,mem_module_vdd_quotient 
-3ce7 6008c6b5 storet 1 ,mem_module_vdd_remainder 
-3ce8 20600000 rtn 
-
-module_control_air_flow:
-3ce9 20407fb4 call check_uart_tx_buff 
-3cea 202133d9 branch app_l2cap_flow_control_enable ,positive 
-3ceb 202033db branch app_l2cap_flow_control_disable 
-
-module_set_sniff_task_flag:
-3cec d8e00006 arg moudle_task_sniff ,queue 
-3ced 20203cfc branch module_set_state 
-
-module_clear_sniff_task_flag:
-3cee d8e00006 arg moudle_task_sniff ,queue 
-3cef 20203cf8 branch module_clr_state 
-
-module_set_unsniff_task_flag:
-3cf0 d8e00005 arg moudle_task_unsniff ,queue 
-3cf1 20203cfc branch module_set_state 
-
-module_clear_unsniff_task_flag:
-3cf2 d8e00005 arg moudle_task_unsniff ,queue 
-3cf3 20203cf8 branch module_clr_state 
-
-module_set_le_tx_data_flag:
-3cf4 d8e00004 arg module_flag_ble_data_finish ,queue 
-3cf5 20203cfc branch module_set_state 
-
-module_clear_le_tx_data_flag:
-3cf6 d8e00004 arg module_flag_ble_data_finish ,queue 
-3cf7 20203cf8 branch module_clr_state 
-
-module_clr_state:
-3cf8 6800c6bf fetch 1 ,mem_module_flag 
-3cf9 f93ffe00 qset0 pdata 
-3cfa 6000c6bf store 1 ,mem_module_flag 
-3cfb 20600000 rtn 
-
-module_set_state:
-3cfc 6800c6bf fetch 1 ,mem_module_flag 
-3cfd f9207e00 qset1 pdata 
-3cfe 6000c6bf store 1 ,mem_module_flag 
-3cff 20600000 rtn 
-
-mouse_init:
-3d00 20403d39 call mouse_setting_config 
-3d01 2040640f call spi_ncs_enable 
-3d02 204040c6 call mouse_init_sunt 
-3d03 20403d66 call mouse_dpi_config 
-3d04 20406411 call spi_ncs_disable 
-3d05 20758000 rtn wake 
-3d06 20403d16 call mouse_cheak_enable_usb 
-3d07 20403d19 call mouse_cb_fuction 
-3d08 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3d09 c3880000 rtnbit1 mouse_enable_usb 
-3d0a 20403d4e call mouse_wakeup_from_power 
-3d0b c6130000 rtnmark1 mark_24g 
-3d0c 68014682 fetch 2 ,mem_ui_state_map 
-3d0d c28642b0 bbit1 ui_state_btn_down ,mouse_start_discovery 
-3d0e 202042a2 branch mouse_check_reconn_target 
-
-mouse_delay_4s:
-3d0f 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3d10 c40d8000 rtnbit0 mouse_enable_init_delay 
-3d11 df200014 arg 20 ,loopcnt 
-
-mouse_delay_20ms:
-3d12 58030d40 setarg 200000 
-3d13 20402a8f call sleep 
-3d14 c2007ec1 loop delay_10ms 
-3d15 20600000 rtn 
-
-mouse_cheak_enable_usb:
-3d16 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3d17 c4080000 rtnbit0 mouse_enable_usb 
-3d18 202048ea branch usb_init 
-
-mouse_cb_fuction:
-3d19 5800416d setarg mouse_le 
-3d1a 600141ef store 2 ,mem_cb_le_process 
-3d1b 58003f77 setarg mouse_send_process 
-3d1c 600141f1 store 2 ,mem_cb_bt_process 
-3d1d 58003ebb setarg mouse_process_lpm_before 
-3d1e 600141ed store 2 ,mem_cb_before_lpm 
-3d1f 5800417c setarg mouse_priority_bb_event 
-3d20 600141f5 store 2 ,mem_cb_bb_event_process 
-3d21 58003de3 setarg mouse_idle 
-3d22 600141f3 store 2 ,mem_cb_idle_process 
-3d23 58003eb3 setarg mouse_before_hibernate 
-3d24 600141eb store 2 ,mem_cb_before_hibernate 
-3d25 58003d5b setarg le_mouse_bb_event_connect_complete 
-3d26 600141f9 store 2 ,mem_cb_att_write 
-3d27 20402c7a call g24_head_ptr2regc 
-3d28 58004401 setarg mouse_g24_package_data 
-3d29 1a608ad8 add regc ,offset_24g_cb_data ,contw 
-3d2a e0a10000 istore 2 ,contw 
-3d2b 58004406 setarg mouse_g24_enter_lpm 
-3d2c 1a608ada add regc ,offset_24g_cb_lpm_prepare ,contw 
-3d2d e0a10000 istore 2 ,contw 
-3d2e 58003ebf setarg mouse_lpm_before_common 
-3d2f 1a608adc add regc ,offset_24g_cb_lpm_before ,contw 
-3d30 e0a10000 istore 2 ,contw 
-3d31 580041f9 setarg mouse_bb_event_timer 
-3d32 600141fd store 2 ,mem_cb_event_timer 
-3d33 58003d36 setarg mouse_spi_write_flash_cb 
-3d34 60014201 store 2 ,mem_cb_spi_flash_write_complate 
-3d35 20600000 rtn 
-
-mouse_spi_write_flash_cb:
-
-mouse_spi_init:
-3d36 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3d37 c30964d7 bbit0 mouse_enable_spi2 ,spid_init 
-3d38 202064da branch spid_init2 
-
-mouse_setting_config:
-3d39 20758000 rtn wake 
-3d3a 20402c9d call g24_set_device_addr 
-3d3b 20403e6e call mouse_gpio_init 
-3d3c 20403e1e call mouse_param_init 
-3d3d 20403e54 call mouse_adc_init 
-3d3e 20405810 call le_set_config_fixed_ltk 
-3d3f 20405839 call le_set_justwork 
-3d40 2040582c call le_set_fixed_ltk 
-3d41 20405818 call le_set_config_read_authentication 
-3d42 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3d43 c28a3d46 bbit1 mouse_enable_eeprom ,mouse_init_iic 
-3d44 c289c414 bbit1 mouse_enable_flash ,mouse_load_flash_info_cheak 
-3d45 20600000 rtn 
-
-mouse_init_iic:
-3d46 2040659c call iic_init_390k 
-3d47 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3d48 2feffe19 isolate1 mouse_enable_2k_eeprom ,pdata 
-3d49 2440e5c2 ncall clear_eeprom_size_2k ,true 
-3d4a 2040443f call mouse_load_eeprom_dpi 
-3d4b 20403dc9 call mouse_init_environment 
-3d4c 204041aa call mouse_set_24g_addr_eeprom 
-3d4d 202065df branch iicd_read_eep_data 
-
-mouse_wakeup_from_power:
-3d4e 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3d4f c30f3d53 bbit0 mouse_enable_wakeup_from_power ,mouse_wakeup_no_from_power 
-3d50 68008abd fetch 1 ,mem_wakup_from_power_flag 
-3d51 2fec0003 isolate0 gpio_latch ,pdata 
-3d52 24608000 nrtn true 
-
-mouse_wakeup_no_from_power:
-3d53 6800c71f fetch 1 ,mem_reconn_times_init 
-3d54 6000c71e store 1 ,mem_reconn_times 
-3d55 6800c6f5 fetch 1 ,mem_config_function_enable 
-3d56 c3830000 rtnbit1 enable_select_device_by_switch 
-
-mouse_start_24g_mode:
-3d57 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3d58 c4088000 rtnbit0 mouse_enable_24g 
-3d59 c28eaee4 bbit1 mouse_enable_auto_24g_paring ,g24_auto_pair_start 
-3d5a 20202f2c branch g24_check_51cmd_start_24g 
-
-le_mouse_bb_event_connect_complete:
-3d5b 68008478 fetch 1 ,mem_le_att_handle 
-3d5c 1fe67e1a sub pdata ,26 ,pdata 
-3d5d 24628000 nrtn zero 
-3d5e 700a9912 jam bt_cmd_le_update_conn ,mem_fifo_temp 
-3d5f 20407d8f call ui_ipc_send_cmd 
-
-mouse_le_write_enable:
-3d60 d8e00000 arg write_req_enable_flag ,queue 
-3d61 202041b9 branch mouse_le_enable_connect_flag 
-
-mouse_dpi_up:
-3d62 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
-3d63 c1008000 rtneq dpi_button_state_up 
-3d64 7046b601 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
-3d65 20600000 rtn 
-
-mouse_dpi_config:
-3d66 6800c6e1 fetch 1 ,mem_config_sensor_motion 
-3d67 1fe17e0f and pdata ,0x0f ,pdata 
-3d68 6000c77a store 1 ,mem_mouse_dpi 
-3d69 20203d80 branch mouse_seting_dpi + 2 
-
-mouse_dpi_cheak:
-3d6a 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
-3d6b 2040681d call gpio_get_bit 
-3d6c 2420bd62 nbranch mouse_dpi_up ,true 
-
-mouse_dpi_down:
-3d6d 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
-3d6e c1000000 rtneq dpi_button_state_down 
-3d6f 7046b600 jam dpi_button_state_down ,mem_mouse_dpi_button_state 
-
-mouse_dpi_down_setting:
-3d70 6800c77a fetch 1 ,mem_mouse_dpi 
-3d71 1fe0fe01 increase 1 ,pdata 
-3d72 1fe17e03 and pdata ,0x03 ,pdata 
-3d73 6000c77a store 1 ,mem_mouse_dpi 
-3d74 20403d7e call mouse_seting_dpi 
-3d75 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3d76 c28a443b bbit1 mouse_enable_eeprom ,mouse_store_eerpom_dpi 
-3d77 c289bd79 bbit1 mouse_enable_flash ,mouse_before_store_flash_cpi 
-3d78 20600000 rtn 
-
-mouse_before_store_flash_cpi:
-3d79 d840001e arg mouse_spi2_clk_gpio ,temp 
-3d7a 2040680e call gpio_config_output 
-3d7b d840001f arg mouse_spi2_sdio_gpio ,temp 
-3d7c 2040680e call gpio_config_output 
-3d7d 20204435 branch mouse_store_flash_device_info 
-
-mouse_seting_dpi:
-3d7e 44f1c01c bpatch patch1c_3 ,mem_patch1c 
-3d7f 2040424a call mosue_dpi_led_blink_init 
-3d80 6800c6e0 fetch 1 ,mem_config_sensor_type 
-3d81 c002bdaa beq p3610 ,mouse_seting_3610_dpi 
-3d82 c0023d96 beq p3212 ,mouse_seting_3212_dpi 
-3d83 6800c77a fetch 1 ,mem_mouse_dpi 
-3d84 c0003d8a beq mouse_dpi_level1 ,mouse_set_cpi1 
-3d85 c000bd88 beq mouse_dpi_level2 ,mouse_set_cpi2 
-3d86 c0013d8c beq mouse_dpi_level3 ,mouse_set_cpi3 
-3d87 c001bd8e beq mouse_dpi_level4 ,mouse_set_cpi4 
-
-mouse_set_cpi2:
-3d88 6800c780 fetch 1 ,mem_320x_dpi_2 
-3d89 20203dbe branch mouse_p3205_dpi 
-
-mouse_set_cpi1:
-3d8a 6800c77f fetch 1 ,mem_320x_dpi_1 
-3d8b 20203dbe branch mouse_p3205_dpi 
-
-mouse_set_cpi3:
-3d8c 6800c781 fetch 1 ,mem_320x_dpi_3 
-3d8d 20203dbe branch mouse_p3205_dpi 
-
-mouse_set_cpi4:
-3d8e 6800c782 fetch 1 ,mem_320x_dpi_4 
-3d8f 20203dbe branch mouse_p3205_dpi 
-
-moue_seting_cpi_count:
-3d90 6800c6e0 fetch 1 ,mem_config_sensor_type 
-3d91 c1030000 rtneq p3065_xy 
-3d92 6800c6b5 fetch 1 ,mem_mouse_cpi_count 
-3d93 1fe0fe01 increase 1 ,pdata 
-3d94 6000c6b5 store 1 ,mem_mouse_cpi_count 
-3d95 20600000 rtn 
-
-mouse_seting_3212_dpi:
-3d96 6800c77a fetch 1 ,mem_mouse_dpi 
-3d97 c0003d9d beq mouse_dpi_level1 ,mouse_set_p3212_cpi1 
-3d98 c000bd9b beq mouse_dpi_level2 ,mouse_set_p3212_cpi2 
-3d99 c0013d9f beq mouse_dpi_level3 ,mouse_set_p3212_cpi3 
-3d9a c001bda1 beq mouse_dpi_level4 ,mouse_set_p3212_cpi4 
-
-mouse_set_p3212_cpi2:
-3d9b 6800c784 fetch 1 ,mem_3212_dpi_2 
-3d9c 20203da2 branch mouse_p3212_dpi 
-
-mouse_set_p3212_cpi1:
-3d9d 6800c783 fetch 1 ,mem_3212_dpi_1 
-3d9e 20203da2 branch mouse_p3212_dpi 
-
-mouse_set_p3212_cpi3:
-3d9f 6800c785 fetch 1 ,mem_3212_dpi_3 
-3da0 20203da2 branch mouse_p3212_dpi 
-
-mouse_set_p3212_cpi4:
-3da1 6800c786 fetch 1 ,mem_3212_dpi_4 
-
-mouse_p3212_dpi:
-3da2 6000c6b5 store 1 ,mem_mouse_cpi_count 
-3da3 1fed7e00 lshift8 pdata ,pdata 
-3da4 1fe22200 copy pdata ,rega 
-3da5 1fe0fe0d add pdata ,mouse_p3212_dpi_xaddress ,pdata 
-3da6 20406413 call twspi_write 
-3da7 1a227e00 copy rega ,pdata 
-3da8 1fe0fe0e add pdata ,mouse_p3212_dpi_yaddress ,pdata 
-3da9 20206413 branch twspi_write 
-
-mouse_seting_3610_dpi:
-3daa 6800c77a fetch 1 ,mem_mouse_dpi 
-3dab c0003db1 beq mouse_dpi_level1 ,mouse_set_p3610_cpi1 
-3dac c000bdaf beq mouse_dpi_level2 ,mouse_set_p3610_cpi2 
-3dad c0013db3 beq mouse_dpi_level3 ,mouse_set_p3610_cpi3 
-3dae c001bdb5 beq mouse_dpi_level4 ,mouse_set_p3610_cpi4 
-
-mouse_set_p3610_cpi2:
-3daf 6800c788 fetch 1 ,mem_3610_dpi_2 
-3db0 20203db6 branch mouse_p3610_dpi 
-
-mouse_set_p3610_cpi1:
-3db1 6800c787 fetch 1 ,mem_3610_dpi_1 
-3db2 20203db6 branch mouse_p3610_dpi 
-
-mouse_set_p3610_cpi3:
-3db3 6800c789 fetch 1 ,mem_3610_dpi_3 
-3db4 20203db6 branch mouse_p3610_dpi 
-
-mouse_set_p3610_cpi4:
-3db5 6800c78a fetch 1 ,mem_3610_dpi_4 
-
-mouse_p3610_dpi:
-3db6 6000c6b5 store 1 ,mem_mouse_cpi_count 
-3db7 204040c0 call mouse_spi_sdio_gpio_pollup 
-3db8 6800c6b5 fetch 1 ,mem_mouse_cpi_count 
-
-mouse_reset_p3610_dpi:
-3db9 1fe0fe80 add pdata ,0x80 ,pdata 
-3dba 1fed7e00 lshift8 pdata ,pdata 
-3dbb 1fe0fe05 add pdata ,mouse_p3610_dpi_address ,pdata 
-3dbc 1fe22200 copy pdata ,rega 
-3dbd 2020415a branch mouse_set_sensor_reg 
-
-mouse_p3205_dpi:
-3dbe 6000c6b5 store 1 ,mem_mouse_cpi_count 
-3dbf 20403d90 call moue_seting_cpi_count 
-3dc0 6800c6b5 fetch 1 ,mem_mouse_cpi_count 
-3dc1 58000006 setarg mouse_dpi_address 
-3dc2 20406414 call twspi_read 
-3dc3 1fe104f8 and pdata ,0xf8 ,temp 
-3dc4 6800c6b5 fetch 1 ,mem_mouse_cpi_count 
-3dc5 9840fe00 iadd temp ,pdata 
-3dc6 1fed7e00 lshift8 pdata ,pdata 
-3dc7 1fe0fe06 add pdata ,mouse_dpi_address ,pdata 
-3dc8 20206413 branch twspi_write 
-
-mouse_init_environment:
-3dc9 204033c4 call app_initflag_check 
-3dca 2022c316 branch mouse_eeprom_load_recon_info ,zero 
-3dcb 2040441c call mouse_ble_init_address 
-3dcc 204042e4 call mouse_store_eeprom_device_info 
-3dcd 202033bd branch app_initflag_store 
-
-mouse_24g_pairing_button:
-3dce 68014707 fetch 2 ,mem_24g_pairing_timer_count 
-3dcf 207a0000 rtn blank 
-3dd0 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3dd1 c4088000 rtnbit0 mouse_enable_24g 
-3dd2 c3818000 rtnbit1 mosue_24g_pairing_flag 
-3dd3 c6130000 rtnmark1 mark_24g 
-3dd4 20404083 call mouse_check_key_gpio 
-3dd5 c1838000 rtnne mouse_lmr_button 
-3dd6 20404482 call mouse_devce_led_off 
-3dd7 d8e00003 arg mosue_24g_pairing_flag ,queue 
-3dd8 204043ce call mouse_enable_function_flag 
-3dd9 58000000 setarg 0 
-3dda 600146ae store 2 ,mem_mouse_direct_timer 
-3ddb 6000c6b4 store 1 ,mem_mouse_send_blank_timer 
-3ddc 20403263 call g24_set0_mem_check_dongle_times 
-3ddd 68014682 fetch 2 ,mem_ui_state_map 
-3dde c283c392 bbit1 ui_state_bt_reconnect ,mouse_cancel_reconnect 
-3ddf c284b402 bbit1 ui_state_ble_connected ,app_ble_disconnect 
-3de0 c28033e9 bbit1 ui_state_bt_connected ,app_bt_disconnect 
-3de1 204042ca call mouse_stop_discovery 
-3de2 20202ead branch g24_start_pairing_sm1 
-
-mouse_idle:
-3de3 20403dce call mouse_24g_pairing_button 
-3de4 20407e34 call ui_check_paring_button 
-3de5 20403d6a call mouse_dpi_cheak 
-3de6 20403de9 call mouse_usb_isr 
-3de7 20403ee0 call mouse_wheel_check 
-3de8 20203df7 branch mouse_usb_mode 
-
-mouse_usb_isr:
-3de9 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3dea c4080000 rtnbit0 mouse_enable_usb 
-3deb 204048d3 call usb_isr 
-3dec 202048fd branch usb_offline_state 
-
-mouse_cheak_usb:
-3ded 68108a04 hfetch 1 ,core_usb_addr 
-3dee c303bdf1 bbit0 7 ,mouse_usb_no_exsit 
-3def c283bdf4 bbit1 7 ,mouse_usb_exsit 
-3df0 20600000 rtn 
-
-mouse_usb_no_exsit:
-3df1 6800c6ff fetch 1 ,mem_usb_addr 
-3df2 c4038000 rtnbit0 7 
-3df3 2020659a branch soft_reset_chip 
-
-mouse_usb_exsit:
-3df4 6800c6ff fetch 1 ,mem_usb_addr 
-3df5 c3838000 rtnbit1 7 
-3df6 20204381 branch mouse_stop_bluetooth_mode 
-
-mouse_usb_mode:
-3df7 20403ded call mouse_cheak_usb 
-3df8 68108a04 hfetch 1 ,core_usb_addr 
-3df9 6000c6ff store 1 ,mem_usb_addr 
-3dfa c4038000 rtnbit0 7 
-3dfb 20403e07 call mouse_clkn_check 
-3dfc 680246f9 fetch 4 ,mem_btclk_sensor 
-3dfd 6808c6fd fetcht 1 ,mem_wire_usb_interval 
-3dfe 98408400 iadd temp ,temp 
-3dff 1c427e00 copy clkn_bt ,pdata 
-3e00 98467c00 isub temp ,null 
-3e01 24610000 nrtn positive 
-3e02 600246f9 store 4 ,mem_btclk_sensor 
-3e03 20403f97 call mouse_motion 
-3e04 24740000 nrtn user 
-3e05 700d3804 jam 4 ,mem_usb_tx_enable 
-3e06 20203e0f branch mouse_wired_to_usb 
-
-mouse_clkn_check:
-3e07 680a46f9 fetcht 4 ,mem_btclk_sensor 
-3e08 1c427e00 copy clkn_bt ,pdata 
-3e09 98467c00 isub temp ,null 
-3e0a 24413e0c ncall mouse_clkn_timeout ,positive 
-3e0b 20600000 rtn 
-
-mouse_clkn_timeout:
-3e0c 58000000 setarg 0 
-3e0d 600246f9 store 4 ,mem_btclk_sensor 
-3e0e 20600000 rtn 
-
-mouse_wired_to_usb:
-3e0f 68008d38 fetch 1 ,mem_usb_tx_enable 
-3e10 c4010000 rtnbit0 2 
-3e11 20203e12 branch mouse_data_push 
-
-mouse_data_push:
-3e12 68108a04 hfetch 1 ,core_usb_addr 
-3e13 c4038000 rtnbit0 7 
-3e14 700d5220 jam usb_ep2_ms ,mem_usb_ep2_data 
-3e15 58000001 setarg ms_report_id 
-3e16 60008d54 store 1 ,mem_usb_mouse_data 
-3e17 6803c69a fetch 7 ,mem_mouse_key 
-3e18 e0a38000 istore 7 ,contw 
-3e19 20600000 rtn 
-
-mouse_enable_clock_qdecoder:
-3e1a 68110050 hfetch 2 ,core_clkoff 
-3e1b 793ffe0b set0 clock_off_qdecoder ,pdata 
-3e1c 60110050 hstore 2 ,core_clkoff 
-3e1d 20600000 rtn 
-
-mouse_param_init:
-3e1e 58008c00 setarg 0x8c00 
-3e1f 60014575 store 2 ,mem_ui_uuid_table 
-3e20 58008e7a setarg 0x8e7a 
-3e21 600144bc store 2 ,mem_ui_le_uuid_table 
-3e22 58002402 setarg 0x2402 
-3e23 600140bd store 2 ,mem_fcomp_mul 
-3e24 58002580 setarg 0x2580 
-3e25 6001c0aa store 3 ,mem_class 
-3e26 70417303 jam 3 ,mem_lpm_mult_timeout 
-3e27 70415608 jam 8 ,mem_lpm_overhead 
-3e28 7046d901 jam dpi_button_state_up ,mem_select_device_button_statue 
-3e29 58000200 setarg 0x0200 
-3e2a 60014154 store 2 ,mem_lpm_interval 
-3e2b 7044a617 jam 0x17 ,mem_le_local_mtu 
-3e2c 7044a817 jam 0x17 ,mem_le_remote_mtu 
-3e2d 58000a77 setarg 0x0a77 
-3e2e 60014212 store 2 ,mem_spi_init_clk 
-3e2f 38000306 setsect 0 ,0x306 
-3e30 38044440 setsect 1 ,0x4440 
-3e31 38090000 setsect 2 ,0x10000 
-3e32 380c4408 setsect 3 ,0x4408 
-3e33 6004c577 store 9 ,mem_all_uuid_16bits 
-3e34 38001224 setsect 0 ,0x1224 
-3e35 38044000 setsect 1 ,0x4000 
-3e36 38080000 setsect 2 ,0x0 
-3e37 e0a28000 istore 5 ,contw 
-3e38 3803ffff setsect 0 ,0x3ffff 
-3e39 3806fe23 setsect 1 ,0x2fe23 
-3e3a 380999d9 setsect 2 ,0x199d9 
-3e3b 380c020d setsect 3 ,0x20d 
-3e3c 60044098 store 8 ,mem_features 
-3e3d 5800012c setarg 0x012c 
-3e3e 60014707 store 2 ,mem_24g_pairing_timer_count 
-3e3f 204057a3 call le_modified_name 
-3e40 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3e41 c40f8000 rtnbit0 mouse_enable_gpio_control_adc_sensor 
-3e42 20403e44 call mouse_sensor_set_angle 
-3e43 20203e4c branch mouse_select_adc 
-
-mouse_sensor_set_angle:
-3e44 6808c6f7 fetcht 1 ,mem_select_sensor_angle_gpio 
-3e45 204067fb call gpio_config_input 
-3e46 6808c6f7 fetcht 1 ,mem_select_sensor_angle_gpio 
-3e47 2040681d call gpio_get_bit 
-3e48 7046f603 jam mouse_3clk_angle ,mem_config_sensor_angle 
-3e49 20608000 rtn true 
-3e4a 7046f602 jam mouse_12clk_angle ,mem_config_sensor_angle 
-3e4b 20600000 rtn 
-
-mouse_select_adc:
-3e4c 6808c6f8 fetcht 1 ,mem_select_adc_gpio 
-3e4d 204067fb call gpio_config_input 
-3e4e 6808c6f8 fetcht 1 ,mem_select_adc_gpio 
-3e4f 2040681d call gpio_get_bit 
-3e50 70422d00 jam adc_config_vinlpm ,mem_adc_config_flag 
-3e51 20608000 rtn true 
-3e52 70422d02 jam adc_config_gpio ,mem_adc_config_flag 
-3e53 20600000 rtn 
-
-mouse_adc_init:
-3e54 6800c22d fetch 1 ,mem_adc_config_flag 
-3e55 c0003e59 beq adc_config_vinlpm ,mouse_adc_init_data_vinlpm 
-3e56 c000be62 beq adc_config_hvin ,mouse_adc_init_data_hvin 
-3e57 c0013e6b beq adc_config_gpio ,mouse_adc_init_data_io 
-3e58 20203e59 branch mouse_adc_init_data_vinlpm 
-
-mouse_adc_init_data_vinlpm:
-3e59 68094221 fetcht 2 ,mem_2v_adc_vinlpm_data 
-3e5a 68014227 fetch 2 ,mem_3v_adc_vinlpm_data 
-3e5b 98467e00 isub temp ,pdata 
-3e5c 1feffe14 mul32 pdata ,20 ,pdata 
-3e5d 1fe6fc64 div pdata ,100 
-3e5e 20407f86 call wait_div_end 
-3e5f 1807fe00 quotient pdata 
-3e60 600146d0 store 2 ,mem_adc_reference_voltage 
-3e61 20600000 rtn 
-
-mouse_adc_init_data_hvin:
-3e62 6809421f fetcht 2 ,mem_1v_adc_hvin_data 
-3e63 68014225 fetch 2 ,mem_5v_adc_hvin_data 
-3e64 98467e00 isub temp ,pdata 
-3e65 1feffee6 mul32 pdata ,230 ,pdata 
-3e66 1fe6fd90 div pdata ,400 
-3e67 20407f86 call wait_div_end 
-3e68 1807fe00 quotient pdata 
-3e69 600146d0 store 2 ,mem_adc_reference_voltage 
-3e6a 20600000 rtn 
-
-mouse_adc_init_data_io:
-3e6b 68014223 fetch 2 ,mem_1v_adc_io_data 
-3e6c 600146d0 store 2 ,mem_adc_reference_voltage 
-3e6d 20600000 rtn 
-
-mouse_gpio_init:
-3e6e 6808c23a fetcht 1 ,mem_eeprom_wp_gpio 
-3e6f 2040680e call gpio_config_output 
-3e70 204048fb call usb_offline_check_init 
-3e71 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
-3e72 204067fb call gpio_config_input 
-3e73 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
-3e74 204067fb call gpio_config_input 
-3e75 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
-3e76 204067fb call gpio_config_input 
-3e77 6808c6f3 fetcht 1 ,mem_sensor_data_gpio 
-3e78 204067fb call gpio_config_input 
-3e79 6808c6dc fetcht 1 ,mem_sensor_reset_gpio 
-3e7a 2040680e call gpio_config_output 
-3e7b 6808c6e8 fetcht 1 ,mem_whee_a_data_gpio 
-3e7c 204067fb call gpio_config_input 
-3e7d 6808c6e9 fetcht 1 ,mem_whee_b_data_gpio 
-3e7e 204067fb call gpio_config_input 
-3e7f 6808c6ea fetcht 1 ,mem_whee_ta_data_gpio 
-3e80 204067fb call gpio_config_input 
-3e81 6808c6eb fetcht 1 ,mem_whee_tb_data_gpio 
-3e82 204067fb call gpio_config_input 
-3e83 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
-3e84 204067fb call gpio_config_input 
-3e85 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
-3e86 204067fb call gpio_config_input 
-3e87 6808c6ef fetcht 1 ,mem_config_low_voltage_alarm_gpio 
-3e88 2040680e call gpio_config_output 
-3e89 6808c6f0 fetcht 1 ,mem_config_device1_led_gpio 
-3e8a 2040680e call gpio_config_output 
-3e8b 6808c6f1 fetcht 1 ,mem_config_device2_led_gpio 
-3e8c 2040680e call gpio_config_output 
-3e8d 6808c6f2 fetcht 1 ,mem_config_device3_led_gpio 
-3e8e 2040680e call gpio_config_output 
-3e8f 6808c6f4 fetcht 1 ,mem_dpi_led_gpio 
-3e90 2040680e call gpio_config_output 
-3e91 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
-3e92 204067fb call gpio_config_input 
-3e93 6808c6ec fetcht 1 ,mem_config_bt_button_gpio 
-3e94 204067fb call gpio_config_input 
-3e95 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
-3e96 202067fb branch gpio_config_input 
-
-mouse_wheel_gpio_set_wake:
-3e97 6808c6e8 fetcht 1 ,mem_whee_a_data_gpio 
-3e98 204067dd call gpio_set_wake_by_current_state 
-3e99 6808c6e9 fetcht 1 ,mem_whee_b_data_gpio 
-3e9a 204067dd call gpio_set_wake_by_current_state 
-3e9b 6808c6ea fetcht 1 ,mem_whee_ta_data_gpio 
-3e9c 204067dd call gpio_set_wake_by_current_state 
-3e9d 6808c6eb fetcht 1 ,mem_whee_tb_data_gpio 
-3e9e 202067dd branch gpio_set_wake_by_current_state 
-
-mouse_before_hibernate_wheel_gpio_set:
-3e9f 6808c6e8 fetcht 1 ,mem_whee_a_data_gpio 
-3ea0 20403ea7 call mouse_gpio_set_pupd_by_input 
-3ea1 6808c6e9 fetcht 1 ,mem_whee_b_data_gpio 
-3ea2 20403ea7 call mouse_gpio_set_pupd_by_input 
-3ea3 6808c6ea fetcht 1 ,mem_whee_ta_data_gpio 
-3ea4 20403ea7 call mouse_gpio_set_pupd_by_input 
-3ea5 6808c6eb fetcht 1 ,mem_whee_tb_data_gpio 
-3ea6 20203ea7 branch mouse_gpio_set_pupd_by_input 
-
-mouse_gpio_set_pupd_by_input:
-3ea7 18467cff sub temp ,ui_button_gpio_disable ,null 
-3ea8 20628000 rtn zero 
-3ea9 18410e7f and temp ,0x7f ,queue 
-3eaa 6812011c hfetch 4 ,core_gpio_in 
-3eab afefffff qisolate1 pdata 
-3eac 68120078 hfetch 4 ,core_gpio_pu0 
-3ead f920fe00 qsetflag true ,pdata 
-3eae 60120078 hstore 4 ,core_gpio_pu0 
-3eaf 6812007c hfetch 4 ,core_gpio_pd0 
-3eb0 fd20fe00 nqsetflag true ,pdata 
-3eb1 6012007c hstore 4 ,core_gpio_pd0 
-3eb2 20600000 rtn 
-
-mouse_before_hibernate:
-3eb3 78347c00 enable user 
-3eb4 68120138 hfetch 4 ,0x8138 
-3eb5 79347e1a setflag user ,26 ,pdata 
-3eb6 6012004c hstore 4 ,core_lpm_reg 
-3eb7 20402c21 call lpm_write_ctrl 
-3eb8 20404482 call mouse_devce_led_off 
-3eb9 20403e9f call mouse_before_hibernate_wheel_gpio_set 
-3eba 20203ebf branch mouse_lpm_before_common 
-
-mouse_process_lpm_before:
-3ebb 20403ebf call mouse_lpm_before_common 
-3ebc 680080a0 fetch 1 ,mem_lpm_current_mult 
-3ebd 247a0000 nrtn blank 
-3ebe 202067ed branch gpio_clr_wake 
-
-mouse_lpm_before_common:
-3ebf 20403ee0 call mouse_wheel_check 
-3ec0 d8400019 arg mouse_spi1_clk_gpio ,temp 
-3ec1 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3ec2 2feffe12 isolate1 mouse_enable_spi2 ,pdata 
-3ec3 2040bede call mouse_spi_clk_gpio ,true 
-3ec4 2040680e call gpio_config_output 
-3ec5 204063ee call twspi_disable 
-3ec6 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
-3ec7 204067dd call gpio_set_wake_by_current_state 
-3ec8 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
-3ec9 204067dd call gpio_set_wake_by_current_state 
-3eca 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
-3ecb 204067dd call gpio_set_wake_by_current_state 
-3ecc 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
-3ecd 204067dd call gpio_set_wake_by_current_state 
-3ece 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
-3ecf 204067dd call gpio_set_wake_by_current_state 
-3ed0 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
-3ed1 204067dd call gpio_set_wake_by_current_state 
-3ed2 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
-3ed3 204067dd call gpio_set_wake_by_current_state 
-3ed4 6808c6e8 fetcht 1 ,mem_whee_a_data_gpio 
-3ed5 204067dd call gpio_set_wake_by_current_state 
-3ed6 6808c6e9 fetcht 1 ,mem_whee_b_data_gpio 
-3ed7 204067dd call gpio_set_wake_by_current_state 
-3ed8 6808c6ea fetcht 1 ,mem_whee_ta_data_gpio 
-3ed9 204067dd call gpio_set_wake_by_current_state 
-3eda 6808c6eb fetcht 1 ,mem_whee_tb_data_gpio 
-3edb 204067dd call gpio_set_wake_by_current_state 
-3edc 6808c6f3 fetcht 1 ,mem_sensor_data_gpio 
-3edd 202067e1 branch gpio_set_wake 
-
-mouse_spi_clk_gpio:
-3ede d840001e arg mouse_spi2_clk_gpio ,temp 
-3edf 20600000 rtn 
-
-mouse_wheel_check:
-3ee0 44f2401c bpatch patch1c_4 ,mem_patch1c 
-3ee1 20403eee call mouse_t_wheel_scan 
-3ee2 20403f36 call mouse_wheel_scan 
-3ee3 6800c6b8 fetch 1 ,mem_wheel_tb_new_pinlevel 
-3ee4 6808c6b7 fetcht 1 ,mem_wheel_tb_old_pinlevel 
-3ee5 6000c6b7 store 1 ,mem_wheel_tb_old_pinlevel 
-3ee6 98467c00 isub temp ,null 
-3ee7 2422b3d4 nbranch app_lpm_wake_auto_lock ,zero 
-3ee8 6800c6be fetch 1 ,mem_mwheel_b_new_pinlevel 
-3ee9 6808c6bd fetcht 1 ,mem_mwheel_b_old_pinlevel 
-3eea 6000c6bd store 1 ,mem_mwheel_b_old_pinlevel 
-3eeb 98467c00 isub temp ,null 
-3eec 2422b3d4 nbranch app_lpm_wake_auto_lock ,zero 
-3eed 20600000 rtn 
-
-mouse_t_wheel_scan:
-3eee 6800c6ea fetch 1 ,mem_whee_ta_data_gpio 
-3eef c17f8000 rtneq gpio_disable 
-3ef0 da200000 arg 0 ,rega 
-3ef1 6808c6ea fetcht 1 ,mem_whee_ta_data_gpio 
-3ef2 2040681d call gpio_get_bit 
-3ef3 7920a200 setflag true ,0 ,rega 
-3ef4 6808c6eb fetcht 1 ,mem_whee_tb_data_gpio 
-3ef5 2040681d call gpio_get_bit 
-3ef6 7920a201 setflag true ,1 ,rega 
-3ef7 1a227e00 copy rega ,pdata 
-3ef8 6000c6b8 store 1 ,mem_wheel_tb_new_pinlevel 
-3ef9 c000befe beq 0x01 ,mouse_t_wheel_scan_judge1 
-3efa c0013f02 beq 0x02 ,mouse_t_wheel_scan_judge2 
-3efb 6800c6b9 fetch 1 ,mem_wheel_tog 
-3efc c283bf0e bbit1 7 ,mouse_t_wheel_scan_judge3 
-3efd 20600000 rtn 
-
-mouse_t_wheel_scan_judge1:
-3efe 6800c6b7 fetch 1 ,mem_wheel_tb_old_pinlevel 
-3eff c0003f06 beq 0 ,mouse_t_wheel_scan_judge11 
-3f00 c001bf08 beq 3 ,mouse_t_wheel_scan_judge12 
-3f01 20600000 rtn 
-
-mouse_t_wheel_scan_judge2:
-3f02 6800c6b7 fetch 1 ,mem_wheel_tb_old_pinlevel 
-3f03 c0003f0a beq 0 ,mouse_t_wheel_scan_judge21 
-3f04 c001bf0c beq 3 ,mouse_t_wheel_scan_judge22 
-3f05 20600000 rtn 
-
-mouse_t_wheel_scan_judge11:
-3f06 7046b982 jam 0x82 ,mem_wheel_tog 
-3f07 20600000 rtn 
-
-mouse_t_wheel_scan_judge12:
-3f08 7046b981 jam 0x81 ,mem_wheel_tog 
-3f09 20600000 rtn 
-
-mouse_t_wheel_scan_judge21:
-3f0a 7046b980 jam 0x80 ,mem_wheel_tog 
-3f0b 20600000 rtn 
-
-mouse_t_wheel_scan_judge22:
-3f0c 7046b983 jam 0x83 ,mem_wheel_tog 
-3f0d 20600000 rtn 
-
-mouse_t_wheel_scan_judge3:
-3f0e 6800c6b9 fetch 1 ,mem_wheel_tog 
-3f0f 793ffe07 set0 7 ,pdata 
-3f10 6000c6b9 store 1 ,mem_wheel_tog 
-3f11 c0003f16 beq 0 ,mouse_t_wheel_scan_judge30 
-3f12 c000bf19 beq 1 ,mouse_t_wheel_scan_judge31 
-3f13 c0013f1c beq 2 ,mouse_t_wheel_scan_judge32 
-3f14 c001bf1f beq 3 ,mouse_t_wheel_scan_judge33 
-3f15 20600000 rtn 
-
-mouse_t_wheel_scan_judge30:
-3f16 6800c6b8 fetch 1 ,mem_wheel_tb_new_pinlevel 
-3f17 c001bf22 beq 3 ,mouse_wheel_t_forward 
-3f18 20600000 rtn 
-
-mouse_t_wheel_scan_judge31:
-3f19 6800c6b8 fetch 1 ,mem_wheel_tb_new_pinlevel 
-3f1a c0003f22 beq 0 ,mouse_wheel_t_forward 
-3f1b 20600000 rtn 
-
-mouse_t_wheel_scan_judge32:
-3f1c 6800c6b8 fetch 1 ,mem_wheel_tb_new_pinlevel 
-3f1d c001bf2c beq 3 ,mouse_wheel_t_back 
-3f1e 20600000 rtn 
-
-mouse_t_wheel_scan_judge33:
-3f1f 6800c6b8 fetch 1 ,mem_wheel_tb_new_pinlevel 
-3f20 c0003f2c beq 0 ,mouse_wheel_t_back 
-3f21 20600000 rtn 
-
-mouse_wheel_t_forward:
-3f22 6800c6bc fetch 1 ,mem_mouse_tz_data_count1 
-3f23 1fe0fe01 increase 1 ,pdata 
-3f24 6000c6bc store 1 ,mem_mouse_tz_data_count1 
-3f25 1fe67c01 sub pdata ,1 ,null 
-3f26 20610000 rtn positive 
-3f27 7046bc00 jam 0 ,mem_mouse_tz_data_count1 
-3f28 6800c6ba fetch 1 ,mem_mouse_tz_data 
-3f29 1fe0fe01 increase 1 ,pdata 
-3f2a 6000c6ba store 1 ,mem_mouse_tz_data 
-3f2b 20600000 rtn 
-
-mouse_wheel_t_back:
-3f2c 6800c6bb fetch 1 ,mem_mouse_tz_data_count 
-3f2d 1fe0fe01 increase 1 ,pdata 
-3f2e 6000c6bb store 1 ,mem_mouse_tz_data_count 
-3f2f 1fe67c01 sub pdata ,1 ,null 
-3f30 20610000 rtn positive 
-3f31 7046bb00 jam 0 ,mem_mouse_tz_data_count 
-3f32 6800c6ba fetch 1 ,mem_mouse_tz_data 
-3f33 1fe0ffff increase -1 ,pdata 
-3f34 6000c6ba store 1 ,mem_mouse_tz_data 
-3f35 20600000 rtn 
-
-mouse_wheel_scan:
-3f36 6800c6e8 fetch 1 ,mem_whee_a_data_gpio 
-3f37 c17f8000 rtneq gpio_disable 
-3f38 da200000 arg 0 ,rega 
-3f39 6808c6e8 fetcht 1 ,mem_whee_a_data_gpio 
-3f3a 2040681d call gpio_get_bit 
-3f3b 7920a200 setflag true ,0 ,rega 
-3f3c 6808c6e9 fetcht 1 ,mem_whee_b_data_gpio 
-3f3d 2040681d call gpio_get_bit 
-3f3e 7920a201 setflag true ,1 ,rega 
-3f3f 1a227e00 copy rega ,pdata 
-3f40 6000c6be store 1 ,mem_mwheel_b_new_pinlevel 
-3f41 c000bf46 beq 0x01 ,mouse_wheel_scan_judge1 
-3f42 c0013f4a beq 0x02 ,mouse_wheel_scan_judge2 
-3f43 6800c6bf fetch 1 ,mem_mwheel_tog 
-3f44 c283bf56 bbit1 7 ,mouse_wheel_scan_judge3 
-3f45 20600000 rtn 
-
-mouse_wheel_scan_judge1:
-3f46 6800c6bd fetch 1 ,mem_mwheel_b_old_pinlevel 
-3f47 c0003f4e beq 0 ,mouse_wheel_scan_judge11 
-3f48 c001bf50 beq 3 ,mouse_wheel_scan_judge12 
-3f49 20600000 rtn 
-
-mouse_wheel_scan_judge2:
-3f4a 6800c6bd fetch 1 ,mem_mwheel_b_old_pinlevel 
-3f4b c0003f52 beq 0 ,mouse_wheel_scan_judge21 
-3f4c c001bf54 beq 3 ,mouse_wheel_scan_judge22 
-3f4d 20600000 rtn 
-
-mouse_wheel_scan_judge11:
-3f4e 7046bf82 jam 0x82 ,mem_mwheel_tog 
-3f4f 20600000 rtn 
-
-mouse_wheel_scan_judge12:
-3f50 7046bf81 jam 0x81 ,mem_mwheel_tog 
-3f51 20600000 rtn 
-
-mouse_wheel_scan_judge21:
-3f52 7046bf80 jam 0x80 ,mem_mwheel_tog 
-3f53 20600000 rtn 
-
-mouse_wheel_scan_judge22:
-3f54 7046bf83 jam 0x83 ,mem_mwheel_tog 
-3f55 20600000 rtn 
-
-mouse_wheel_scan_judge3:
-3f56 6800c6bf fetch 1 ,mem_mwheel_tog 
-3f57 793ffe07 set0 7 ,pdata 
-3f58 6000c6bf store 1 ,mem_mwheel_tog 
-3f59 c0003f5e beq 0 ,mouse_wheel_scan_judge30 
-3f5a c000bf61 beq 1 ,mouse_wheel_scan_judge31 
-3f5b c0013f64 beq 2 ,mouse_wheel_scan_judge32 
-3f5c c001bf67 beq 3 ,mouse_wheel_scan_judge33 
-3f5d 20600000 rtn 
-
-mouse_wheel_scan_judge30:
-3f5e 6800c6be fetch 1 ,mem_mwheel_b_new_pinlevel 
-3f5f c001bf6a beq 3 ,mouse_wheel_forward 
-3f60 20600000 rtn 
-
-mouse_wheel_scan_judge31:
-3f61 6800c6be fetch 1 ,mem_mwheel_b_new_pinlevel 
-3f62 c0003f6a beq 0 ,mouse_wheel_forward 
-3f63 20600000 rtn 
-
-mouse_wheel_scan_judge32:
-3f64 6800c6be fetch 1 ,mem_mwheel_b_new_pinlevel 
-3f65 c001bf6f beq 3 ,mouse_wheel_back 
-3f66 20600000 rtn 
-
-mouse_wheel_scan_judge33:
-3f67 6800c6be fetch 1 ,mem_mwheel_b_new_pinlevel 
-3f68 c0003f6f beq 0 ,mouse_wheel_back 
-3f69 20600000 rtn 
-
-mouse_wheel_forward:
-3f6a 7046c200 jam 0 ,mem_mouse_z_data_count1 
-3f6b 6800c6c0 fetch 1 ,mem_mouse_z_data 
-3f6c 1fe0fe01 increase 1 ,pdata 
-3f6d 6000c6c0 store 1 ,mem_mouse_z_data 
-3f6e 20600000 rtn 
-
-mouse_wheel_back:
-3f6f 7046c100 jam 0 ,mem_mouse_z_data_count 
-3f70 6800c6c0 fetch 1 ,mem_mouse_z_data 
-3f71 1fe0ffff increase -1 ,pdata 
-3f72 6000c6c0 store 1 ,mem_mouse_z_data 
-3f73 20600000 rtn 
-
-mouse_hid_connected:
-3f74 58000002 setarg hid_handshake_timeout 
-3f75 6000c680 store 1 ,mem_hid_handshake_timer_count 
-3f76 20600000 rtn 
-
-mouse_send_process:
-3f77 6800c1e2 fetch 1 ,mem_app_handshake_flag 
-3f78 207a0000 rtn blank 
-3f79 20405271 call l2cap_malloc_is_fifo_nearly_full 
-3f7a 247a0000 nrtn blank 
-3f7b 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-3f7c c281bf8a bbit1 mosue_24g_pairing_flag ,mouse_send_empty_data 
-3f7d c2803f8a bbit1 mouse_select_device_flag ,mouse_send_empty_data 
-3f7e c282bf8a bbit1 mouse_bt_discovery_button_down_flag ,mouse_send_empty_data 
-3f7f 20403f97 call mouse_motion 
-3f80 24740000 nrtn user 
-
-mouse_send_data:
-3f81 da200009 arg 9 ,rega 
-3f82 20404d63 call hid_malloc_tx_buff 
-3f83 6801424e fetch 2 ,mem_hid_int_remote_cid 
-3f84 e0a10000 istore 2 ,contw 
-3f85 580002a1 setarg 0x02a1 
-3f86 e0a10000 istore 2 ,contw 
-3f87 6803c69a fetch 7 ,mem_mouse_key 
-3f88 e0a38000 istore 7 ,contw 
-3f89 20600000 rtn 
-
-mouse_send_empty_data:
-3f8a 58000000 setarg 0 
-3f8b 6003c69a store 7 ,mem_mouse_key 
-3f8c 20203f81 branch mouse_send_data 
-
-mouse_no_data_timer_init:
-3f8d 680146aa fetch 2 ,mem_mouse_no_data_timeout 
-3f8e 600146b0 store 2 ,mem_mouse_no_data_timer 
-3f8f 20600000 rtn 
-
-mouse_fill_data_le:
-3f90 44f2c01c bpatch patch1c_5 ,mem_patch1c 
-3f91 da200007 arg 7 ,rega 
-3f92 6809446f fetcht 2 ,mem_le_notify_handle 
-3f93 20405a64 call le_att_malloc_tx_notify 
-3f94 6803c69a fetch 7 ,mem_mouse_key 
-3f95 e0a38000 istore 7 ,contw 
-3f96 20600000 rtn 
-
-mouse_motion:
-3f97 44f3401c bpatch patch1c_6 ,mem_patch1c 
-3f98 78547c00 disable user 
-3f99 58000000 setarg 0 
-3f9a 6003469b store 6 ,mem_mouse_x 
-3f9b 20403fb5 call mouse_cheak_sensor_data 
-3f9c 20404079 call mouse_zwheel 
-3f9d 2040407e call mouse_t_zwheel 
-3f9e 20404099 call mouse_key 
-3f9f 24740000 nrtn user 
-3fa0 20403f8d call mouse_no_data_timer_init 
-3fa1 d8e00008 arg mouse_statue_up_flag ,queue 
-3fa2 202043ce branch mouse_enable_function_flag 
-
-motion_6clk_direction_dispose:
-3fa3 6801469b fetch 2 ,mem_mouse_x 
-3fa4 1fe67e00 sub pdata ,0 ,pdata 
-3fa5 6001469b store 2 ,mem_mouse_x 
-3fa6 20207fe7 branch enable_user 
-
-motion_12clk_direction_dispose:
-3fa7 6801469d fetch 2 ,mem_mouse_y 
-3fa8 1fe67e00 sub pdata ,0 ,pdata 
-3fa9 6001469d store 2 ,mem_mouse_y 
-3faa 20207fe7 branch enable_user 
-
-motion_9clk_direction_dispose:
-3fab 6801469d fetch 2 ,mem_mouse_y 
-3fac 1fe67e00 sub pdata ,0 ,pdata 
-3fad 6001469d store 2 ,mem_mouse_y 
-3fae 6801469b fetch 2 ,mem_mouse_x 
-3faf 1fe67e00 sub pdata ,0 ,pdata 
-3fb0 6001469b store 2 ,mem_mouse_x 
-3fb1 20404002 call mouse_sensor_data_swap_places 
-3fb2 20207fe7 branch enable_user 
-
-motion_3clk_direction_dispose:
-3fb3 20404002 call mouse_sensor_data_swap_places 
-3fb4 20207fe7 branch enable_user 
-
-mouse_cheak_sensor_data:
-3fb5 6800c239 fetch 1 ,mem_spi_write_flash_sm 
-3fb6 c1800000 rtnne flash_sm_no_buys 
-3fb7 6800c6e0 fetch 1 ,mem_config_sensor_type 
-3fb8 c0003fe2 beq p3205 ,mouse_p32xx_sensor_motion 
-3fb9 c000bfe2 beq p3065 ,mouse_p32xx_sensor_motion 
-3fba c0013fe2 beq ka8 ,mouse_p32xx_sensor_motion 
-3fbb c001bfe2 beq p3204 ,mouse_p32xx_sensor_motion 
-3fbc c0023fc4 beq p3212 ,mouse_p3212_sensor_motion 
-3fbd c002c010 beq p3610 ,mouse_p3610_sensor_motion 
-3fbe c0033fe2 beq p3065_xy ,mouse_p32xx_sensor_motion 
-3fbf 20203fe2 branch mouse_p32xx_sensor_motion 
-
-mouse_clear_sensor_data:
-3fc0 6800c6a7 fetch 1 ,mem_mouse_move_flag 
-3fc1 205a405d call mouse_read_sensor_common ,blank 
-3fc2 7046a701 jam 1 ,mem_mouse_move_flag 
-3fc3 20600000 rtn 
-
-mouse_p3212_sensor_motion:
-3fc4 20403fc0 call mouse_clear_sensor_data 
-3fc5 6808c6f3 fetcht 1 ,mem_sensor_data_gpio 
-3fc6 2040681d call gpio_get_bit 
-3fc7 24608000 nrtn true 
-
-mouse_p3212_sensor_motion_1:
-3fc8 58000000 setarg pan_reg_pid_l 
-3fc9 20406414 call twspi_read 
-3fca c09840d1 bne p32xx_id1 ,mouse_twspi_reset 
-3fcb 58000002 setarg pan_reg_motion_staus 
-3fcc 20406414 call twspi_read 
-3fcd c4038000 rtnbit0 7 
-3fce 2040405d call mouse_read_sensor_common 
-3fcf 20403fde call mouse_read_3212sensor_xy_high 
-3fd0 6000c6a1 store 1 ,mem_mouse_xy_h 
-3fd1 1ff1fe00 rshift4 pdata ,pdata 
-3fd2 20404169 call extsign_bit3 
-3fd3 6000c69c store 1 ,mem_mouse_x + 1 
-3fd4 6800c6a1 fetch 1 ,mem_mouse_xy_h 
-3fd5 1fe17e0f and pdata ,0x0f ,pdata 
-3fd6 20404169 call extsign_bit3 
-3fd7 6000c69e store 1 ,mem_mouse_y + 1 
-3fd8 6800c6f6 fetch 1 ,mem_config_sensor_angle 
-3fd9 c0003fa3 beq mouse_6clk_angle ,motion_6clk_direction_dispose 
-3fda c000bfab beq mouse_9clk_angle ,motion_9clk_direction_dispose 
-3fdb c0013fa7 beq mouse_12clk_angle ,motion_12clk_direction_dispose 
-3fdc c001bfb3 beq mouse_3clk_angle ,motion_3clk_direction_dispose 
-3fdd 20600000 rtn 
-
-mouse_read_3212sensor_xy_high:
-3fde 58000012 setarg 0x12 
-3fdf 20206414 branch twspi_read 
-
-mouse_p3065_judge:
-3fe0 c018bfea beq p3065_id1 ,mouse_p32xx_sensor_motion_1 
-3fe1 202040d1 branch mouse_twspi_reset 
-
-mouse_p32xx_sensor_motion:
-3fe2 20403fc0 call mouse_clear_sensor_data 
-3fe3 78547c00 disable user 
-3fe4 6808c6f3 fetcht 1 ,mem_sensor_data_gpio 
-3fe5 2040681d call gpio_get_bit 
-3fe6 24608000 nrtn true 
-
-mouse_p32xx_sensor_motion_2:
-3fe7 58000000 setarg pan_reg_pid_l 
-3fe8 20406414 call twspi_read 
-3fe9 c0983fe0 bne p32xx_id1 ,mouse_p3065_judge 
-
-mouse_p32xx_sensor_motion_1:
-3fea 58000002 setarg pan_reg_motion_staus 
-3feb 20406414 call twspi_read 
-3fec c4038000 rtnbit0 7 
-3fed 2040405d call mouse_read_sensor_common 
-3fee 6800c69b fetch 1 ,mem_mouse_x 
-3fef 20404165 call extsign 
-3ff0 6001469b store 2 ,mem_mouse_x 
-3ff1 6800c69d fetch 1 ,mem_mouse_y 
-3ff2 20404165 call extsign 
-3ff3 6001469d store 2 ,mem_mouse_y 
-3ff4 6800c6f6 fetch 1 ,mem_config_sensor_angle 
-3ff5 c0003ffa beq mouse_6clk_angle ,motion32xx_6clk_direction_selection 
-3ff6 c000bffc beq mouse_9clk_angle ,motion32xx_9clk_direction_selection 
-3ff7 c0013ffe beq mouse_12clk_angle ,motion32xx_12clk_direction_selection 
-3ff8 c001c000 beq mouse_3clk_angle ,motion32xx_3clk_direction_selection 
-3ff9 20600000 rtn 
-
-motion32xx_6clk_direction_selection:
-3ffa 20403fa3 call motion_6clk_direction_dispose 
-3ffb 202040b3 branch mouse_sensor_sdio_low 
-
-motion32xx_9clk_direction_selection:
-3ffc 20403fab call motion_9clk_direction_dispose 
-3ffd 202040b3 branch mouse_sensor_sdio_low 
-
-motion32xx_12clk_direction_selection:
-3ffe 20403fa7 call motion_12clk_direction_dispose 
-3fff 202040b3 branch mouse_sensor_sdio_low 
-
-motion32xx_3clk_direction_selection:
-4000 20403fb3 call motion_3clk_direction_dispose 
-4001 202040b3 branch mouse_sensor_sdio_low 
-
-mouse_sensor_data_swap_places:
-4002 6801469d fetch 2 ,mem_mouse_y 
-4003 6809469b fetcht 2 ,mem_mouse_x 
-4004 6001469b store 2 ,mem_mouse_x 
-4005 6009469d storet 2 ,mem_mouse_y 
-4006 20600000 rtn 
-
-mouse_p3610sensor_read:
-4007 2040640f call spi_ncs_enable 
-4008 20000064 nop 100 
-4009 1a427e00 copy regb ,pdata 
-400a 20406414 call twspi_read 
-400b 1fe22400 copy pdata ,regb 
-400c 20406411 call spi_ncs_disable 
-400d 20000064 nop 100 
-400e 1a427e00 copy regb ,pdata 
-400f 20600000 rtn 
-
-mouse_p3610_sensor_motion:
-4010 78547c00 disable user 
-4011 6808c6f3 fetcht 1 ,mem_sensor_data_gpio 
-4012 2040681d call gpio_get_bit 
-4013 24608000 nrtn true 
-4014 da400002 arg pan_reg_motion_staus ,regb 
-4015 20404007 call mouse_p3610sensor_read 
-4016 c4038000 rtnbit0 7 
-4017 da400000 arg pan_reg_pid_l ,regb 
-4018 20404007 call mouse_p3610sensor_read 
-4019 6000c6dd store 1 ,mem_sensor_id1 
-401a c09f4145 bne p3610_id1 ,mouse_init_3610sensor_reset 
-401b 6800c6a7 fetch 1 ,mem_mouse_move_flag 
-401c 205a4039 call mouse_read_sensor3610_data ,blank 
-401d 7046a701 jam 1 ,mem_mouse_move_flag 
-401e 20404039 call mouse_read_sensor3610_data 
-401f 6800c6a1 fetch 1 ,mem_mouse_xy_h 
-4020 1ff1fe00 rshift4 pdata ,pdata 
-4021 20404169 call extsign_bit3 
-4022 6000c69c store 1 ,mem_mouse_x + 1 
-4023 6800c6a1 fetch 1 ,mem_mouse_xy_h 
-4024 1fe17e0f and pdata ,0x0f ,pdata 
-4025 20404169 call extsign_bit3 
-4026 6000c69e store 1 ,mem_mouse_y + 1 
-4027 6800c6f6 fetch 1 ,mem_config_sensor_angle 
-4028 c0004031 beq 0 ,motion3610_6clk_direction_selection 
-4029 c000c035 beq 1 ,motion3610_9clk_direction_selection 
-402a c0014033 beq 2 ,motion3610_12clk_direction_selection 
-402b c001c037 beq 3 ,motion3610_3clk_direction_selection 
-402c 20600000 rtn 
-
-mouse_3610_smart_select:
-402d 6800c6a4 fetch 1 ,mem_sensor_smart_flag 
-402e c0004051 beq p3610_smart_enable ,mouse_3610_smart_disable 
-402f c000c045 beq p3610_smart_disable ,mouse_3610_smart_enable 
-4030 20600000 rtn 
-
-motion3610_6clk_direction_selection:
-4031 20403fa3 call motion_6clk_direction_dispose 
-4032 2020402d branch mouse_3610_smart_select 
-
-motion3610_12clk_direction_selection:
-4033 20403fa7 call motion_12clk_direction_dispose 
-4034 2020402d branch mouse_3610_smart_select 
-
-motion3610_9clk_direction_selection:
-4035 20403fab call motion_9clk_direction_dispose 
-4036 2020402d branch mouse_3610_smart_select 
-
-motion3610_3clk_direction_selection:
-4037 20403fb3 call motion_3clk_direction_dispose 
-4038 2020402d branch mouse_3610_smart_select 
-
-mouse_read_sensor3610_data:
-4039 2040640f call spi_ncs_enable 
-403a 2040405d call mouse_read_sensor_common 
-403b dfe00005 arg 5 ,pdata 
-403c 20406414 call twspi_read 
-403d 6000c6a1 store 1 ,mem_mouse_xy_h 
-403e dfe00007 arg 7 ,pdata 
-403f 20406414 call twspi_read 
-4040 6000c6a2 store 1 ,mem_sensor_shutter_hi 
-4041 dfe00008 arg 8 ,pdata 
-4042 20406414 call twspi_read 
-4043 6000c6a3 store 1 ,mem_sensor_shutter_lo 
-4044 20206411 branch spi_ncs_disable 
-
-mouse_3610_smart_enable:
-4045 6800c6a2 fetch 1 ,mem_sensor_shutter_hi 
-4046 c1800000 rtnne 0 
-4047 6800c6a3 fetch 1 ,mem_sensor_shutter_lo 
-4048 1fe67c2d sub pdata ,45 ,null 
-4049 20610000 rtn positive 
-404a 7046a400 jam p3610_smart_enable ,mem_sensor_smart_flag 
-404b 5800ba41 setarg 0xba41 
-404c 20406405 call sensor_write 
-404d 58000032 setarg 0x0032 
-404e 20406405 call sensor_write 
-404f 5800b541 setarg 0xb541 
-4050 20206405 branch sensor_write 
-
-mouse_3610_smart_disable:
-4051 6800c6a2 fetch 1 ,mem_sensor_shutter_hi 
-4052 c1800000 rtnne 0 
-4053 6800c6a3 fetch 1 ,mem_sensor_shutter_lo 
-4054 1fe67c2d sub pdata ,45 ,null 
-4055 24610000 nrtn positive 
-4056 7046a401 jam p3610_smart_disable ,mem_sensor_smart_flag 
-4057 5800ba41 setarg 0xba41 
-4058 20406405 call sensor_write 
-4059 58008032 setarg 0x8032 
-405a 20406405 call sensor_write 
-405b 5800b541 setarg 0xb541 
-405c 20206405 branch sensor_write 
-
-mouse_read_sensor_common:
-405d dfe00003 arg pan_reg_delta_x ,pdata 
-405e 20406414 call twspi_read 
-405f 6001469b store 2 ,mem_mouse_x 
-4060 dfe00004 arg pan_reg_delta_y ,pdata 
-4061 20406414 call twspi_read 
-4062 6001469d store 2 ,mem_mouse_y 
-4063 20600000 rtn 
-
-mouse_set_qdecoder_x:
-4064 d840001b arg mouse_default_xa_gpio ,temp 
-4065 204067fb call gpio_config_input 
-4066 d840001b arg mouse_default_xa_gpio ,temp 
-4067 2040681d call gpio_get_bit 
-4068 20608000 rtn true 
-4069 68108109 hfetch 1 ,core_qdec_cntx 
-406a 79207e04 set1 4 ,pdata 
-406b 60108109 hstore 1 ,core_qdec_cntx 
-406c 20600000 rtn 
-
-mouse_hardware_zwheel:
-406d 6808c6c0 fetcht 1 ,mem_mouse_z_data 
-406e 68108109 hfetch 1 ,core_qdec_cntx 
-406f 9840fe00 iadd temp ,pdata 
-4070 207a0000 rtn blank 
-4071 6000c69f store 1 ,mem_mouse_z 
-4072 7046c000 jam 0 ,mem_mouse_z_data 
-4073 20207fe7 branch enable_user 
-
-mouse_hardware_zwheel_beforelpm:
-4074 6808c6c0 fetcht 1 ,mem_mouse_z_data 
-4075 68108109 hfetch 1 ,core_qdec_cntx 
-4076 9840fe00 iadd temp ,pdata 
-4077 6000c6c0 store 1 ,mem_mouse_z_data 
-4078 20600000 rtn 
-
-mouse_zwheel:
-4079 6800c6c0 fetch 1 ,mem_mouse_z_data 
-407a 207a0000 rtn blank 
-407b 6000c69f store 1 ,mem_mouse_z 
-407c 7046c000 jam 0 ,mem_mouse_z_data 
-407d 20207fe7 branch enable_user 
-
-mouse_t_zwheel:
-407e 6800c6ba fetch 1 ,mem_mouse_tz_data 
-407f 207a0000 rtn blank 
-4080 6000c6a0 store 1 ,mem_mouse_tz 
-4081 7046ba00 jam 0 ,mem_mouse_tz_data 
-4082 20207fe7 branch enable_user 
-
-mouse_check_key_gpio:
-4083 da200000 arg 0 ,rega 
-4084 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
-4085 2040681d call gpio_get_bit 
-4086 7920a200 setflag true ,0 ,rega 
-4087 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
-4088 2040681d call gpio_get_bit 
-4089 7920a201 setflag true ,1 ,rega 
-408a 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
-408b 2040681d call gpio_get_bit 
-408c 7920a202 setflag true ,2 ,rega 
-408d 20404090 call mouse_check_s_key_gpio 
-
-mouse_check_key_gpio_output:
-408e 1a227e00 copy rega ,pdata 
-408f 20600000 rtn 
-
-mouse_check_s_key_gpio:
-4090 6800c6e5 fetch 1 ,mem_bk_button_gpio 
-4091 c17f8000 rtneq gpio_disable 
-4092 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
-4093 2040681d call gpio_get_bit 
-4094 7920a203 setflag true ,3 ,rega 
-4095 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
-4096 2040681d call gpio_get_bit 
-4097 7920a204 setflag true ,4 ,rega 
-4098 20600000 rtn 
-
-mouse_key:
-4099 20404083 call mouse_check_key_gpio 
-409a 204040a8 call mouse_set_mult 
-409b 204040a3 call mouse_24g_key 
-409c 1a227e00 copy rega ,pdata 
-409d 6808c69a fetcht 1 ,mem_mouse_key 
-409e 6000c69a store 1 ,mem_mouse_key 
-409f 9842fe00 ixor temp ,pdata 
-40a0 1fe67c00 sub pdata ,0 ,null 
-40a1 20628000 rtn zero 
-40a2 20207fe7 branch enable_user 
-
-mouse_24g_key:
-40a3 c6930000 rtnmark0 mark_24g 
-40a4 1a227e00 copy rega ,pdata 
-40a5 207a0000 rtn blank 
-40a6 6000c69a store 1 ,mem_mouse_key 
-40a7 20207fe7 branch enable_user 
-
-mouse_set_mult:
-40a8 68014682 fetch 2 ,mem_ui_state_map 
-40a9 c284c0ad bbit1 ui_state_ble_connected ,mouse_set_ble_mult 
-40aa 68014682 fetch 2 ,mem_ui_state_map 
-40ab c28040b0 bbit1 ui_state_bt_connected ,mouse_set_bt_mult 
-40ac 20600000 rtn 
-
-mouse_set_ble_mult:
-40ad 1a227e00 copy rega ,pdata 
-40ae 243a5820 nbranch le_set_config_short_mult ,blank 
-40af 20205822 branch le_clr_config_short_mult 
-
-mouse_set_bt_mult:
-40b0 1a227e00 copy rega ,pdata 
-40b1 243a2bc7 nbranch classic_bt_set_mult_short_flag ,blank 
-40b2 20202bc9 branch classic_bt_clr_mult_short_flag 
-
-mouse_sensor_sdio_low:
-40b3 44f3c01c bpatch patch1c_7 ,mem_patch1c 
-40b4 d840001a arg mouse_spi1_sdio_gpio ,temp 
-40b5 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-40b6 2feffe12 isolate1 mouse_enable_spi2 ,pdata 
-40b7 2040c0be call mouse_sensor_sdio_low2 ,true 
-40b8 2040681d call gpio_get_bit 
-40b9 20608000 rtn true 
-40ba 5800000a setarg 0x0a 
-40bb 20406414 call twspi_read 
-40bc 200003e8 nop 1000 
-40bd 202040b3 branch mouse_sensor_sdio_low 
-
-mouse_sensor_sdio_low2:
-40be d840001f arg mouse_spi2_sdio_gpio ,temp 
-40bf 20600000 rtn 
-
-mouse_spi_sdio_gpio_pollup:
-40c0 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-40c1 c28940c4 bbit1 mouse_enable_spi2 ,mouse_spi2_sdio_gpio_pollup 
-
-mouse_spi1_sdio_gpio_pollup:
-40c2 d840001a arg mouse_spi1_sdio_gpio ,temp 
-40c3 202067fe branch gpio_config_input_without_wake 
-
-mouse_spi2_sdio_gpio_pollup:
-40c4 d840001f arg mouse_spi2_sdio_gpio ,temp 
-40c5 202067fe branch gpio_config_input_without_wake 
-
-mouse_init_sunt:
-40c6 20403d36 call mouse_spi_init 
-40c7 20758000 rtn wake 
-40c8 204040c0 call mouse_spi_sdio_gpio_pollup 
-40c9 6800c6e0 fetch 1 ,mem_config_sensor_type 
-40ca c002c0d5 beq p3610 ,mouse_init_3610sensor 
-
-mouse_init_sensor:
-40cb 204040d9 call mouse_read_sensor_id 
-40cc c01840e0 beq p32xx_id1 ,mouse_init_p32xx_id2_judge 
-40cd c018c0ea beq p3065_id1 ,mouse_p3065_init_param 
-40ce 204040d1 call mouse_twspi_reset 
-40cf 200003e8 nop 1000 
-40d0 202040cb branch mouse_init_sensor 
-
-mouse_twspi_reset:
-40d1 44f4401d bpatch patch1d_0 ,mem_patch1d 
-40d2 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-40d3 c28963e0 bbit1 mouse_enable_spi2 ,twspi_reset2 
-40d4 202063d1 branch twspi_reset 
-
-mouse_init_3610sensor:
-40d5 204040d9 call mouse_read_sensor_id 
-40d6 c01f414b beq p3610_id1 ,mouse_init_p3610 
-40d7 20404145 call mouse_init_3610sensor_reset 
-40d8 202040d5 branch mouse_init_3610sensor 
-
-mouse_read_sensor_id:
-40d9 58000001 setarg pan_reg_pid_h 
-40da 20406414 call twspi_read 
-40db 6000c6de store 1 ,mem_sensor_id2 
-40dc 58000000 setarg pan_reg_pid_l 
-40dd 20406414 call twspi_read 
-40de 6000c6dd store 1 ,mem_sensor_id1 
-40df 20600000 rtn 
-
-mouse_init_p32xx_id2_judge:
-40e0 6800c6de fetch 1 ,mem_sensor_id2 
-40e1 c068c139 beq p3205_tj3t_id2 ,mouse_3205_3t_init_param 
-40e2 c06940f8 beq p3204_tj3l_id2 ,mouse_3204_3l_init_param 
-40e3 c00140ee beq p3212_id2 ,mouse_3212_init_param 
-40e4 c02a40e6 beq pka8_id2 ,mouse_ka8_init_param 
-40e5 20600000 rtn 
-
-mouse_ka8_init_param:
-40e6 7046e002 jam ka8 ,mem_config_sensor_type 
-40e7 20600000 rtn 
-
-mouse_p3065xy_init_param:
-40e8 7046e006 jam p3065_xy ,mem_config_sensor_type 
-40e9 20600000 rtn 
-
-mouse_p3065_init_param:
-40ea 6800c6de fetch 1 ,mem_sensor_id2 
-40eb c03840e8 beq p3065_xy_id2 ,mouse_p3065xy_init_param 
-40ec 7046e001 jam p3065 ,mem_config_sensor_type 
-40ed 20600000 rtn 
-
-mouse_3212_init_param:
-40ee 7046e004 jam p3212 ,mem_config_sensor_type 
-40ef 204040f6 call mouse_sensor_disable_wp 
-40f0 58003426 setarg 0x3426 
-40f1 20406413 call twspi_write 
-40f2 58000419 setarg 0x0419 
-40f3 20406413 call twspi_write 
-
-mouse_sensor_enable_wp:
-40f4 58000009 setarg 0x0009 
-40f5 20206413 branch twspi_write 
-
-mouse_sensor_disable_wp:
-40f6 58005a09 setarg 0x5a09 
-40f7 20206413 branch twspi_write 
-
-mouse_3204_3l_init_param:
-40f8 7046e003 jam p3204 ,mem_config_sensor_type 
-40f9 204040f6 call mouse_sensor_disable_wp 
-40fa 58000f0d setarg 0x0f0d 
-40fb 20406413 call twspi_write 
-40fc 5800e31d setarg 0xe31d 
-40fd 20406413 call twspi_write 
-40fe 5800d27d setarg 0xd27d 
-40ff 20406413 call twspi_write 
-4100 20404102 call mouse_32xx_init_param 
-4101 2020411a branch mouse_32xx_init_param_1 
-
-mouse_32xx_init_param:
-4102 5800351b setarg 0x351b 
-4103 20406413 call twspi_write 
-4104 5800b428 setarg 0xb428 
-4105 20406413 call twspi_write 
-4106 58004629 setarg 0x4629 
-4107 20406413 call twspi_write 
-4108 5800962a setarg 0x962a 
-4109 20406413 call twspi_write 
-410a 58008c2b setarg 0x8c2b 
-410b 20406413 call twspi_write 
-410c 58006e2c setarg 0x6e2c 
-410d 20406413 call twspi_write 
-410e 5800642d setarg 0x642d 
-410f 20406413 call twspi_write 
-4110 58005f38 setarg 0x5f38 
-4111 20406413 call twspi_write 
-4112 58000f39 setarg 0x0f39 
-4113 20406413 call twspi_write 
-4114 5800323a setarg 0x323a 
-4115 20406413 call twspi_write 
-4116 5800473b setarg 0x473b 
-4117 20406413 call twspi_write 
-4118 58001042 setarg 0x1042 
-4119 20206413 branch twspi_write 
-
-mouse_32xx_init_param_1:
-411a 58002e54 setarg 0x2e54 
-411b 20406413 call twspi_write 
-411c 5800f255 setarg 0xf255 
-411d 20406413 call twspi_write 
-411e 5800f461 setarg 0xf461 
-411f 20406413 call twspi_write 
-4120 58007063 setarg 0x7063 
-4121 20406413 call twspi_write 
-4122 58005275 setarg 0x5275 
-4123 20406413 call twspi_write 
-4124 58004176 setarg 0x4176 
-4125 20406413 call twspi_write 
-4126 5800ed77 setarg 0xed77 
-4127 20406413 call twspi_write 
-4128 58002378 setarg 0x2378 
-4129 20406413 call twspi_write 
-412a 58004679 setarg 0x4679 
-412b 20406413 call twspi_write 
-412c 5800e57a setarg 0xe57a 
-412d 20406413 call twspi_write 
-412e 5800487c setarg 0x487c 
-412f 20406413 call twspi_write 
-4130 5800777e setarg 0x777e 
-4131 20406413 call twspi_write 
-4132 5800017f setarg 0x017f 
-4133 20406413 call twspi_write 
-4134 5800000b setarg 0x000b 
-4135 20406413 call twspi_write 
-4136 5800007f setarg 0x007f 
-4137 20406413 call twspi_write 
-4138 202040f4 branch mouse_sensor_enable_wp 
-
-mouse_3205_3t_init_param:
-4139 7046e000 jam p3205 ,mem_config_sensor_type 
-413a 204040f6 call mouse_sensor_disable_wp 
-413b 5800100d setarg 0x100d 
-413c 20406413 call twspi_write 
-413d 5800ed1d setarg 0xed1d 
-413e 20406413 call twspi_write 
-413f 5800807d setarg 0x807d 
-4140 20406413 call twspi_write 
-4141 20404102 call mouse_32xx_init_param 
-4142 58000943 setarg 0x0943 
-4143 20406413 call twspi_write 
-4144 2020411a branch mouse_32xx_init_param_1 
-
-mouse_init_3610sensor_reset:
-4145 6808c6dc fetcht 1 ,mem_sensor_reset_gpio 
-4146 20406829 call gpio_out_active 
-4147 20407ec1 call delay_10ms 
-4148 6808c6dc fetcht 1 ,mem_sensor_reset_gpio 
-4149 20406825 call gpio_out_inactive 
-414a 20207ec1 branch delay_10ms 
-
-mouse_init_p3610:
-414b 7046e005 jam p3610 ,mem_config_sensor_type 
-414c 5800ba41 setarg 0xba41 
-414d 20406405 call sensor_write 
-414e 58000d11 setarg 0x0d11 
-414f 20406405 call sensor_write 
-4150 5800041b setarg 0x041b 
-4151 20406405 call sensor_write 
-4152 5800041c setarg 0x041c 
-4153 20406405 call sensor_write 
-4154 58000f1d setarg 0x0f1d 
-4155 20406405 call sensor_write 
-4156 58000032 setarg 0x0032 
-4157 20406405 call sensor_write 
-4158 5800b541 setarg 0xb541 
-4159 20206405 branch sensor_write 
-
-mouse_set_sensor_reg:
-415a 5800ba41 setarg 0xba41 
-415b 20406405 call sensor_write 
-415c 20000fa0 nop 4000 
-415d 5800ff7f setarg 0xff7f 
-415e 20406405 call sensor_write 
-415f 1a227e00 copy rega ,pdata 
-4160 20406405 call sensor_write 
-4161 5800007f setarg 0x007f 
-4162 20406405 call sensor_write 
-4163 5800b541 setarg 0xb541 
-4164 20206405 branch sensor_write 
-
-extsign:
-4165 c4038000 rtnbit0 7 
-4166 d840ff00 arg 0xff00 ,temp 
-4167 9841fe00 ior temp ,pdata 
-4168 20600000 rtn 
-
-extsign_bit3:
-4169 c4018000 rtnbit0 3 
-416a d84000f0 arg 0xf0 ,temp 
-416b 9841fe00 ior temp ,pdata 
-416c 20600000 rtn 
-
-mouse_le:
-416d 20405892 call le_fifo_check_nearly_full 
-416e 247a0000 nrtn blank 
-416f 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-4170 1fe17e03 and pdata ,0x03 ,pdata 
-4171 c1818000 rtnne 0x03 
-4172 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-4173 c281c179 bbit1 mosue_24g_pairing_flag ,mouse_le_send_empty_packet 
-4174 c2804179 bbit1 mouse_select_device_flag ,mouse_le_send_empty_packet 
-4175 c282c179 bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
-4176 20403f97 call mouse_motion 
-4177 24740000 nrtn user 
-4178 20203f90 branch mouse_fill_data_le 
-
-mouse_le_send_empty_packet:
-4179 58000000 setarg 0 
-417a 6003c69a store 7 ,mem_mouse_key 
-417b 20203f90 branch mouse_fill_data_le 
-
-mouse_priority_bb_event:
-417c 1a627e00 copy regc ,pdata 
-417d c00a41c3 beq bt_evt_le_connected ,mouse_le_bb_event_connected 
-417e c000c2ca beq bt_evt_bb_connected ,mouse_stop_discovery 
-417f c00ac1d9 beq bt_evt_le_disconnected ,mouse_bb_disconnected 
-4180 c00141d9 beq bt_evt_bb_disconnected ,mouse_bb_disconnected 
-4181 c002c1d6 beq bt_evt_setup_complete ,mouse_bt_event_setup_complete 
-4182 c008426c beq bt_evt_button_long_pressed ,mouse_bb_event_discovery_btn 
-4183 c009429b beq bt_evt_hid_handshake ,mouse_bt_hid_handshake 
-4184 c00341d5 beq bt_evt_hid_connected ,mouse_bt_hid_connected 
-4185 c00241cc beq bt_evt_reconn_failed ,mouse_bb_event_reconn_failed 
-4186 c009c1cc beq bt_evt_reconn_page_timeout ,mouse_bb_event_reconn_timeout 
-4187 c00541ca beq bt_evt_pincode_req ,mouse_bb_event_pincode 
-4188 c01733cd beq bt_evt_remote_unsniff ,app_start_auto_sniff 
-4189 c018c1b4 beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
-418a c01941b6 beq bt_evt_le_start_enc ,mouse_le_ll_start_encryt 
-418b c01f4191 beq bt_evt_le_pairing_complete ,mouse_le_pairing_complete 
-418c c013c38e beq bt_evt_virtual_cable_unplug ,mouse_irtual_cable_unplug 
-418d c01cc19c beq bt_evt_24g_pairing_complete ,mouse_24g_pairing_complete 
-418e c01d4192 beq bt_evt_24g_attempt_fail ,mouse_24g_attempt_fail 
-418f c01e419a beq bt_evt_24g_attempt_success ,mouse_24g_attempt_success 
-4190 20600000 rtn 
-
-mouse_le_pairing_complete:
-4191 20203410 branch app_ble_store_reconn_info 
-
-mouse_24g_attempt_fail:
-4192 70478b01 jam 1 ,mem_mouse_24g_enter_lpm_enable 
-4193 6800c71e fetch 1 ,mem_reconn_times 
-4194 243a4492 nbranch mouse_polling_device ,blank 
-4195 6800c720 fetch 1 ,mem_device_flag 
-4196 6808c703 fetcht 1 ,mem_24g_device_number 
-4197 98467c00 isub temp ,null 
-4198 2022b40a branch app_enter_hibernate ,zero 
-4199 20600000 rtn 
-
-mouse_24g_attempt_success:
-419a 70478b01 jam 1 ,mem_mouse_24g_enter_lpm_enable 
-419b 20600000 rtn 
-
-mouse_24g_pairing_complete:
-419c 70478b01 jam 1 ,mem_mouse_24g_enter_lpm_enable 
-419d d8e00003 arg mosue_24g_pairing_flag ,queue 
-419e 204043d2 call mouse_disable_function_flag 
-419f 58000000 setarg 0 
-41a0 60014707 store 2 ,mem_24g_pairing_timer_count 
-41a1 7046a700 jam 0 ,mem_mouse_move_flag 
-41a2 6800c6e0 fetch 1 ,mem_config_sensor_type 
-41a3 1fe67c05 sub pdata ,p3610 ,null 
-41a4 2042c039 call mouse_read_sensor3610_data ,zero 
-41a5 2442c05d ncall mouse_read_sensor_common ,zero 
-41a6 68008004 fetch 1 ,mouse_flag_len ,mem_mouse_flag 
-41a7 c289c1af bbit1 mouse_enable_flash ,mouse_store_flash_24g_address 
-41a8 204041aa call mouse_set_24g_addr_eeprom 
-41a9 202065d1 branch iicd_write_protect_eep_data 
-
-mouse_set_24g_addr_eeprom:
-41aa 20402c7a call g24_head_ptr2regc 
-41ab 1a60a2ae add regc ,offset_24g_addr ,rega 
-41ac da40005b arg mouse_g24_addr_eeprom_offect ,regb 
-41ad d8400004 arg 4 ,temp 
-41ae 20600000 rtn 
-
-mouse_store_flash_24g_address:
-41af 20402c7a call g24_head_ptr2regc 
-41b0 1a60a4ae add regc ,offset_24g_addr ,regb 
-41b1 ea408000 ifetch 1 ,regb 
-41b2 6000c77b store 1 ,mem_mouse_24g_addr 
-41b3 20204435 branch mouse_store_flash_device_info 
-
-mouse_le_pairing_success:
-41b4 d8e00002 arg ll_pairing_success_flag ,queue 
-41b5 202041b9 branch mouse_le_enable_connect_flag 
-
-mouse_le_ll_start_encryt:
-41b6 7046c602 jam 2 ,mem_le_start_encrypt_timer 
-41b7 d8e00001 arg ll_start_enc_flag ,queue 
-41b8 202041b9 branch mouse_le_enable_connect_flag 
-
-mouse_le_enable_connect_flag:
-41b9 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-41ba f9207e00 qset1 pdata 
-41bb 6000c6c5 store 1 ,mem_le_connect_status_flag 
-41bc 20600000 rtn 
-
-mouse_le_disable_connect_flag:
-41bd 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-41be f93ffe00 qset0 pdata 
-41bf 6000c6c5 store 1 ,mem_le_connect_status_flag 
-41c0 20600000 rtn 
-
-mouse_le_clean_connect_flag:
-41c1 7046c500 jam 0 ,mem_le_connect_status_flag 
-41c2 20600000 rtn 
-
-mouse_le_bb_event_connected:
-41c3 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-41c4 793ffe00 set0 app_disc_by_button ,pdata 
-41c5 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-41c6 58000000 setarg 0 
-41c7 600146ae store 2 ,mem_mouse_direct_timer 
-41c8 20403f8d call mouse_no_data_timer_init 
-41c9 202042ca branch mouse_stop_discovery 
-
-mouse_bb_event_pincode:
-41ca 204063cb call pincode_reinit 
-41cb 202033dd branch app_bt_set_pincode 
-
-mouse_bb_event_reconn_timeout:
-
-mouse_bb_event_reconn_failed:
-41cc 6800c71e fetch 1 ,mem_reconn_times 
-41cd 243a4492 nbranch mouse_polling_device ,blank 
-41ce 68014682 fetch 2 ,mem_ui_state_map 
-41cf c28642b0 bbit1 ui_state_btn_down ,mouse_start_discovery 
-41d0 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-41d1 c28041d7 bbit1 mouse_select_device_flag ,mouse_soft_reset 
-41d2 c282c2b0 bbit1 mouse_bt_discovery_button_down_flag ,mouse_start_discovery 
-41d3 c281aead bbit1 mosue_24g_pairing_flag ,g24_start_pairing_sm1 
-41d4 202033a7 branch app_bb_hibernate 
-
-mouse_bt_hid_connected:
-41d5 20203f74 branch mouse_hid_connected 
-
-mouse_bt_event_setup_complete:
-41d6 20600000 rtn 
-
-mouse_soft_reset:
-41d7 204043c0 call mouse_select_device_enable 
-41d8 2020659a branch soft_reset_chip 
-
-mouse_bb_disconnected:
-41d9 44f4c01d bpatch patch1d_1 ,mem_patch1d 
-41da 204041e7 call mouse_bb_discon_clear_stack 
-41db 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-41dc c28041d7 bbit1 mouse_select_device_flag ,mouse_soft_reset 
-41dd c281aead bbit1 mosue_24g_pairing_flag ,g24_start_pairing_sm1 
-41de 6800c71e fetch 1 ,mem_reconn_times 
-41df 243a4492 nbranch mouse_polling_device ,blank 
-41e0 68014208 fetch app_disc_rsn_size ,mem_app_disconn_reason 
-41e1 c283c1f5 bbit1 app_disc_ble ,mouse4_0_event_bb_disconn 
-41e2 c28033a9 bbit1 app_disc_by_button ,app_disconn_reason_clear 
-41e3 c280c1ef bbit1 app_disc_after_pairing ,mouse_event_light_state_pairing 
-41e4 c28141f2 bbit1 app_disc_after_reconn ,mouse_event_light_state_hibernate 
-41e5 c281c1f2 bbit1 app_disc_after_sniff ,mouse_event_light_state_hibernate 
-41e6 202042b0 branch mouse_start_discovery 
-
-mouse_bb_discon_clear_stack:
-41e7 58000000 setarg 0 
-41e8 600446b7 store 8 ,mem_wheel_tb_old_pinlevel 
-41e9 e0a20000 istore 4 ,contw 
-41ea 7046b400 jam 0 ,mem_mouse_send_blank_timer 
-41eb 7046a700 jam 0 ,mem_mouse_move_flag 
-41ec 7041e200 jam app_handshake_null ,mem_app_handshake_flag 
-41ed 70442900 jam 0 ,mem_ltk_exists 
-41ee 20600000 rtn 
-
-mouse_event_light_state_pairing:
-41ef c282c1f2 bbit1 app_disc_after_handshake ,mouse_event_light_state_hibernate 
-41f0 c281c1f2 bbit1 app_disc_after_sniff ,mouse_event_light_state_hibernate 
-41f1 202042b0 branch mouse_start_discovery 
-
-mouse_event_light_state_hibernate:
-41f2 68014682 fetch 2 ,mem_ui_state_map 
-41f3 c28642b0 bbit1 ui_state_btn_down ,mouse_start_discovery 
-41f4 202033a7 branch app_bb_hibernate 
-
-mouse4_0_event_bb_disconn:
-41f5 204041c1 call mouse_le_clean_connect_flag 
-41f6 68014208 fetch app_disc_rsn_size ,mem_app_disconn_reason 
-41f7 c28033a9 bbit1 app_disc_by_button ,app_disconn_reason_clear 
-41f8 202033a7 branch app_bb_hibernate 
-
-mouse_bb_event_timer:
-41f9 204043d6 call mouse_adc_read 
-41fa 20404243 call mouse_24g_delay_timer 
-41fb 20404246 call mouse_ban_24g_pairing_timer 
-41fc 20404250 call mouse_dpi_led_blink_delay_timer 
-41fd 2040445d call mouse_statue_up_timer 
-41fe 20404443 call mouse_statue_cheak_timer 
-41ff 20404333 call mouse_select_device 
-4200 204043a5 call mouse_bt_discovery_cheak 
-4201 204043eb call mouse_low_voltage_led_timer 
-4202 20404209 call mouse_sensor_led_contrl_timer 
-4203 20404231 call mouse_check_hid_handshake_timer 
-4204 20404234 call mouse_check_discovery_timeout_timer 
-4205 20404237 call mouse_check_direct_timeout_timer 
-4206 2040423a call mouse_check_no_data_timeout_timer 
-4207 2040423d call mouse_check_mouse_state_timer 
-4208 20204240 branch mouse_le_enable_att_list_timer 
-
-mouse_sensor_led_contrl_timer:
-4209 6800c711 fetch 1 ,mem_mouse_sensor_timer_count 
-420a 207a0000 rtn blank 
-420b 1fe0ffff increase -1 ,pdata 
-420c 6000c711 store 1 ,mem_mouse_sensor_timer_count 
-420d 247a0000 nrtn blank 
-420e 2020420f branch mouse_sensor_led_contrl 
-
-mouse_sensor_led_contrl:
-420f 6800c712 fetch 1 ,mem_sensor_led_style 
-4210 c1000000 rtneq ui_led_state_blink_stop 
-4211 c002c216 beq ui_led_state_blink_darking ,mouse_sensor_led_blink_state_darking 
-
-mouse_sensor_led_blink_state_lighting:
-4212 20404225 call mouse_sensor_led_on 
-4213 70471205 jam ui_led_state_blink_darking ,mem_sensor_led_style 
-4214 70471105 jam led_sensor_blink_cnt ,mem_mouse_sensor_timer_count 
-4215 20600000 rtn 
-
-mouse_sensor_led_blink_state_darking:
-4216 2040422c call mouse_sensor_led_off 
-4217 70471204 jam ui_led_state_blink_lighting ,mem_sensor_led_style 
-4218 70471105 jam led_sensor_blink_cnt ,mem_mouse_sensor_timer_count 
-4219 20600000 rtn 
-
-mouse_sensor_led_blink_stop:
-
-mouse_sensor_reset:
-421a 58008006 setarg 0x8006 
-421b 20406413 call twspi_write 
-421c 200003e8 nop 1000 
-421d 70471100 jam 0x00 ,mem_mouse_sensor_timer_count 
-421e 70471200 jam ui_led_state_blink_stop ,mem_sensor_led_style 
-421f 202040e0 branch mouse_init_p32xx_id2_judge 
-
-mouse_p3212sensor_led_on:
-4220 5800a006 setarg 0xa006 
-4221 20406413 call twspi_write 
-4222 5800a005 setarg 0xa005 
-4223 20206413 branch twspi_write 
-
-mouse_sensor_led_on_global:
-4224 70471100 jam 0 ,mem_mouse_sensor_timer_count 
-
-mouse_sensor_led_on:
-4225 6800c6e0 fetch 1 ,mem_config_sensor_type 
-4226 c0024220 beq p3212 ,mouse_p3212sensor_led_on 
-4227 58000106 setarg 0x0106 
-4228 20406413 call twspi_write 
-4229 5800a105 setarg 0xa105 
-422a 20206413 branch twspi_write 
-
-mouse_sensor_led_off_global:
-422b 70471100 jam 0 ,mem_mouse_sensor_timer_count 
-
-mouse_sensor_led_off:
-422c 58000906 setarg 0x0906 
-422d 20206413 branch twspi_write 
-
-mouse_sensor_start_blink:
-422e 70471105 jam led_sensor_blink_cnt ,mem_mouse_sensor_timer_count 
-422f 70471201 jam ui_led_state_blink_start ,mem_sensor_led_style 
-4230 20600000 rtn 
-
-mouse_check_hid_handshake_timer:
-4231 da604680 arg mem_hid_handshake_timer_count ,regc 
-4232 da40429b arg mouse_bt_hid_handshake ,regb 
-4233 2020336d branch timer_single_step 
-
-mouse_check_discovery_timeout_timer:
-4234 da6046ac arg mem_mouse_discovery_timer ,regc 
-4235 da404264 arg mouse_check_discovery_timeout ,regb 
-4236 20203374 branch timer_single_step_2b 
-
-mouse_check_direct_timeout_timer:
-4237 da6046ae arg mem_mouse_direct_timer ,regc 
-4238 da404266 arg mouse_check_direct_timeout ,regb 
-4239 20203374 branch timer_single_step_2b 
-
-mouse_check_no_data_timeout_timer:
-423a da6046b0 arg mem_mouse_no_data_timer ,regc 
-423b da40426a arg mouse_check_no_data_timeout ,regb 
-423c 20203374 branch timer_single_step_2b 
-
-mouse_check_mouse_state_timer:
-423d da6046c4 arg mem_mouse_statue_led_timer ,regc 
-423e da404478 arg mouse_statue_led_off ,regb 
-423f 2020336d branch timer_single_step 
-
-mouse_le_enable_att_list_timer:
-4240 da6046c6 arg mem_le_start_encrypt_timer ,regc 
-4241 da40425e arg mouse_le_enable_att_list ,regb 
-4242 2020336d branch timer_single_step 
-
-mouse_24g_delay_timer:
-4243 da604704 arg mem_24g_enter_lpm_timer ,regc 
-4244 da404249 arg mouse_24g_delay ,regb 
-4245 2020336d branch timer_single_step 
-
-mouse_ban_24g_pairing_timer:
-4246 da604707 arg mem_24g_pairing_timer_count ,regc 
-4247 da404249 arg mouse_ban_24g_pairing ,regb 
-4248 20203374 branch timer_single_step_2b 
-
-mouse_ban_24g_pairing:
-
-mouse_24g_delay:
-4249 20600000 rtn 
-
-mosue_dpi_led_blink_init:
-424a 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-424b c40b8000 rtnbit0 mouse_enable_dpi_led_blink 
-424c 7046df0a jam 10 ,mem_mouse_dpi_led_delay_count 
-424d 6800c6f4 fetch 1 ,mem_dpi_led_gpio 
-424e 6000c715 store 1 ,mem_mouse_struct_led_gpio 
-424f 20600000 rtn 
-
-mouse_dpi_led_blink_delay_timer:
-4250 da6046df arg mem_mouse_dpi_led_delay_count ,regc 
-4251 da404253 arg mouse_dpi_led_setting ,regb 
-4252 2020336d branch timer_single_step 
-
-mouse_dpi_led_setting:
-4253 6800c6f4 fetch 1 ,mem_dpi_led_gpio 
-4254 6000c715 store 1 ,mem_mouse_struct_led_gpio 
-4255 58000190 setarg led_dpi_blink 
-4256 60014716 store 2 ,mem_mouse_on_time 
-4257 60014718 store 2 ,mem_mouse_off_time 
-4258 da200000 arg 0 ,rega 
-4259 6808c77a fetcht 1 ,mem_mouse_dpi 
-425a 18408401 increase 1 ,temp 
-425b 6008c714 storet 1 ,mem_mouse_blink_count 
-425c 70471301 jam ui_led_state_blink_start ,mem_mouse_led_type 
-425d 20600000 rtn 
-
-mouse_le_enable_att_list:
-425e 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-425f c3810000 rtnbit1 ll_pairing_success_flag 
-4260 700a9912 jam bt_cmd_le_update_conn ,mem_fifo_temp 
-4261 20407d8f call ui_ipc_send_cmd 
-4262 d8e00000 arg write_req_enable_flag ,queue 
-4263 202041b9 branch mouse_le_enable_connect_flag 
-
-mouse_check_discovery_timeout:
-4264 204042ca call mouse_stop_discovery 
-4265 2020340a branch app_enter_hibernate 
-
-mouse_check_direct_timeout:
-4266 204033f6 call app_ble_stop_direct_adv 
-4267 6800c71e fetch 1 ,mem_reconn_times 
-4268 243a4492 nbranch mouse_polling_device ,blank 
-4269 2020340a branch app_enter_hibernate 
-
-mouse_check_no_data_timeout:
-426a c5137e1d bmark1 mark_24g ,check_51cmd_hibernate 
-426b 20204386 branch mouse_disconnect 
-
-mouse_bb_event_discovery_btn:
-426c 44f5401d bpatch patch1d_2 ,mem_patch1d 
-426d 7046b400 jam 0 ,mem_mouse_send_blank_timer 
-426e 20404386 call mouse_disconnect 
-426f 204041c1 call mouse_le_clean_connect_flag 
-4270 202042b0 branch mouse_start_discovery 
-
-mouse3_0_check_reconn_target:
-4271 680341d0 fetch 6 ,mem_hci_plap 
-4272 203a33eb branch app_bt_start_discovery_short ,blank 
-4273 2040427e call mouse_reconn_setting_led_gpio 
-4274 70016d17 jam 0x17 ,mem_connection_options 
-4275 6800c65a fetch 1 ,mem_ssp_enable 
-4276 243a33e1 nbranch app_bt_start_reconnect ,blank 
-4277 70016d04 jam 0x04 ,mem_connection_options 
-4278 202033e1 branch app_bt_start_reconnect 
-
-mouse4_0_check_reconn_target:
-4279 680146a8 fetch 2 ,mem_mouse_direct_timeout 
-427a 600146ae store 2 ,mem_mouse_direct_timer 
-427b 2040427e call mouse_reconn_setting_led_gpio 
-427c 20403418 call app_lpm_mult_disable 
-427d 20207df4 branch check_51cmd_adv 
-
-mouse_reconn_setting_led_gpio:
-427e 580000c8 setarg led_reconnect_blink 
-427f 60014716 store 2 ,mem_mouse_on_time 
-4280 60014718 store 2 ,mem_mouse_off_time 
-4281 20204285 branch mouse_setting_led_gpio_comman 
-
-mouse_discover_setting_led_gpio:
-4282 580003e8 setarg led_discovery_blink 
-4283 60014716 store 2 ,mem_mouse_on_time 
-4284 60014718 store 2 ,mem_mouse_off_time 
-
-mouse_setting_led_gpio_comman:
-4285 6800c720 fetch 1 ,mem_device_flag 
-4286 c000c28a beq mode_bt_device1 ,mouse_device_led1 
-4287 c001428c beq mode_bt_device2 ,mouse_device_led2 
-4288 c001c28e beq mode_bt_device3 ,mouse_device_led3 
-4289 20600000 rtn 
-
-mouse_device_led1:
-428a 6800c6f0 fetch 1 ,mem_config_device1_led_gpio 
-428b 2020428f branch mouse_led_blink 
-
-mouse_device_led2:
-428c 6800c6f1 fetch 1 ,mem_config_device2_led_gpio 
-428d 2020428f branch mouse_led_blink 
-
-mouse_device_led3:
-428e 6800c6f2 fetch 1 ,mem_config_device3_led_gpio 
-
-mouse_led_blink:
-428f 60008aa2 store 1 ,mem_temp 
-4290 20404482 call mouse_devce_led_off 
-4291 68008aa2 fetch 1 ,mem_temp 
-4292 6000c715 store 1 ,mem_mouse_struct_led_gpio 
-4293 da200000 arg 0 ,rega 
-4294 70471301 jam ui_led_state_blink_start ,mem_mouse_led_type 
-4295 20207d1e branch ui_led_blink_start_global 
-
-mouse_led_off:
-4296 da200000 arg 0 ,rega 
-4297 20207d19 branch ui_led_off_global 
-
-mouse_led_on:
-4298 da200000 arg 0 ,rega 
-4299 20207d14 branch ui_led_on_global 
-
-mouse4_0_bb_event_discovery_btn:
-429a 202041c1 branch mouse_le_clean_connect_flag 
-
-mouse_bt_hid_handshake:
-429b 7041e201 jam app_handshake_done ,mem_app_handshake_flag 
-429c 20403416 call app_lpm_mult_enable 
-429d 20403412 call app_bt_store_reconn_info 
-429e 58000000 setarg 0 
-429f 6001467e store 2 ,mem_discovery_timeout_timer_count 
-42a0 6000c680 store 1 ,mem_hid_handshake_timer_count 
-42a1 2020340e branch app_bt_enter_sniff 
-
-mouse_check_reconn_target:
-42a2 2040435f call mouse_cheak_select_device_by_switch 
-42a3 6800c720 fetch 1 ,mem_device_flag 
-42a4 6808c703 fetcht 1 ,mem_24g_device_number 
-42a5 98467c00 isub temp ,null 
-42a6 2022c2ab branch mouse_connect_24g_mode ,zero 
-42a7 6800c210 fetch 1 ,mem_xrecord_mode 
-42a8 c019c271 beq rec_3_mode ,mouse3_0_check_reconn_target 
-42a9 c01a4279 beq rec_4_mode ,mouse4_0_check_reconn_target 
-42aa 202042b0 branch mouse_start_discovery 
-
-mouse_connect_24g_mode:
-42ab 20403d57 call mouse_start_24g_mode 
-42ac c6130000 rtnmark1 mark_24g 
-42ad 6800c71e fetch 1 ,mem_reconn_times 
-42ae 243a4492 nbranch mouse_polling_device ,blank 
-42af 20600000 rtn 
-
-mouse_start_discovery:
-42b0 44f5c01d bpatch patch1d_3 ,mem_patch1d 
-42b1 68014682 fetch 2 ,mem_ui_state_map 
-42b2 c285c2b7 bbit1 ui_state_ble_adv ,mouse_start_discovery_norandom 
-42b3 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-42b4 c30c42b7 bbit0 mouse_enable_ble_random_addre ,mouse_start_discovery_norandom 
-42b5 180a7e00 random pdata 
-42b6 6000c4a1 store 1 ,mem_le_lap + 1 
-
-mouse_start_discovery_norandom:
-42b7 20403418 call app_lpm_mult_disable 
-42b8 68014687 fetch 2 ,mem_discovery_timeout 
-42b9 600146ac store 2 ,mem_mouse_discovery_timer 
-42ba 70016d06 jam 6 ,mem_connection_options 
-42bb 58000000 setarg 0 
-42bc 600146b0 store 2 ,mem_mouse_no_data_timer 
-42bd 600146ae store 2 ,mem_mouse_direct_timer 
-42be d8e00007 arg mouse_store_eeprom_flag ,queue 
-42bf 204043ce call mouse_enable_function_flag 
-42c0 204043ca call mouse_bt_discovery_button_down_disable 
-42c1 6800c092 fetch 1 ,mem_device_option 
-42c2 2feffe01 isolate1 mode_4_mouse ,pdata 
-42c3 2040fdf4 call check_51cmd_adv ,true 
-42c4 6800c092 fetch 1 ,mem_device_option 
-42c5 2feffe00 isolate1 mode_3_mouse ,pdata 
-42c6 2040fddd call check_51cmd_start_discovery ,true 
-42c7 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-42c8 c28e422e bbit1 mouse_enable_discovery_sensor_led ,mouse_sensor_start_blink 
-42c9 20204282 branch mouse_discover_setting_led_gpio 
-
-mouse_stop_discovery:
-42ca 44f6401d bpatch patch1d_4 ,mem_patch1d 
-42cb 6800c092 fetch 1 ,mem_device_option 
-42cc 2feffe01 isolate1 mode_4_mouse ,pdata 
-42cd 2040c2d4 call mouse_stop_le_adv ,true 
-42ce 6800c092 fetch 1 ,mem_device_option 
-42cf 2feffe00 isolate1 mode_3_mouse ,pdata 
-42d0 2040c2d7 call mouse_stop_bt3_discovery ,true 
-42d1 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-42d2 c28e421a bbit1 mouse_enable_discovery_sensor_led ,mouse_sensor_led_blink_stop 
-42d3 20204482 branch mouse_devce_led_off 
-
-mouse_stop_le_adv:
-42d4 58000000 setarg 0 
-42d5 600146ae store 2 ,mem_mouse_direct_timer 
-42d6 20207dfa branch check_51cmd_stop_adv 
-
-mouse_stop_bt3_discovery:
-42d7 58000000 setarg 0 
-42d8 600146ac store 2 ,mem_mouse_discovery_timer 
-42d9 20207de2 branch check_51cmd_stop_discovery 
-
-mouse_store_remote_bdaddr:
-42da 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-42db c4038000 rtnbit0 mouse_store_eeprom_flag 
-42dc d8e00007 arg mouse_store_eeprom_flag ,queue 
-42dd 204043d2 call mouse_disable_function_flag 
-42de 204042e8 call mouse_check_device_addr 
-
-mouse_unplug_clean_bdaddr:
-42df 204042fb call mouse_before_store_reconn_info 
-42e0 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-42e1 c289c435 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
-42e2 c28a42e4 bbit1 mouse_enable_eeprom ,mouse_store_eeprom_device_info 
-42e3 20600000 rtn 
-
-mouse_store_eeprom_device_info:
-42e4 d8400058 arg 88 ,temp 
-42e5 da204720 arg mem_device_flag ,rega 
-42e6 da400000 arg mouse_info_eeprom_offect ,regb 
-42e7 202065d1 branch iicd_write_protect_eep_data 
-
-mouse_check_device_addr:
-42e8 68008185 fetch 1 ,mem_record_bt_mode 
-42e9 c01a42ec beq rec_4_mode ,mouse_check_le_device_addr 
-42ea c019c2ef beq rec_3_mode ,mouse_check_bt_device_addr 
-42eb 20600000 rtn 
-
-mouse_check_le_device_addr:
-42ec 6000c6c7 store 1 ,mem_device_addr_temp 
-42ed 6803044f fetch 6 ,mem_le_plap 
-42ee 202042f1 branch mouse_check_bt_device_addr_common 
-
-mouse_check_bt_device_addr:
-42ef 6000c6c7 store 1 ,mem_device_addr_temp 
-42f0 68030040 fetch 6 ,mem_plap 
-
-mouse_check_bt_device_addr_common:
-42f1 600346c8 store 6 ,mem_device_addr_temp + 1 
-42f2 6803c6c7 fetch 7 ,mem_device_addr_temp 
-42f3 d8c04721 arg mem_device1_type ,contr 
-42f4 df200003 arg 3 ,loopcnt 
-
-mouse_check_device_addr_end:
-42f5 e8cb8000 ifetcht 7 ,contr 
-42f6 98467c00 isub temp ,null 
-42f7 2022c310 branch mouse_clean_addr ,zero 
-42f8 18c08c16 increase 22 ,contr 
-42f9 c20042f5 loop mouse_check_device_addr_end 
-42fa 20600000 rtn 
-
-mouse_before_store_reconn_info:
-42fb da204721 arg mem_device1_type ,rega 
-42fc 6800c720 fetch 1 ,mem_device_flag 
-42fd 1fe0ffff increase -1 ,pdata 
-42fe 1feffe1d mul32 pdata ,29 ,pdata 
-42ff 9a20a200 iadd rega ,rega 
-4300 68008185 fetch 1 ,mem_record_bt_mode 
-4301 e2208000 istore 1 ,rega 
-4302 c01a4305 beq rec_4_mode ,mouse_store_le_device 
-4303 c019c30c beq rec_3_mode ,mouse_store_bt_device 
-4304 20600000 rtn 
-
-mouse_store_le_device:
-4305 6803044f fetch 6 ,mem_le_plap 
-4306 e0a30000 istore 6 ,contw 
-4307 d8c04419 arg mem_le_ltk ,contr 
-4308 20407ebf call memcpy16 
-4309 680344a0 fetch 6 ,mem_le_lap 
-430a e0a30000 istore 6 ,contw 
-430b 20600000 rtn 
-
-mouse_store_bt_device:
-430c 68030040 fetch 6 ,mem_plap 
-430d e0a30000 istore 6 ,contw 
-430e d8c041be arg mem_link_key ,contr 
-430f 20207ebf branch memcpy16 
-
-mouse_clean_addr:
-4310 18c08dfa increase -6 ,contr 
-4311 18c20a00 copy contr ,contw 
-4312 680b46c8 fetcht 6 ,mem_device_addr_temp + 1 
-4313 18408403 increase 3 ,temp 
-4314 e0ab0000 istoret 6 ,contw 
-4315 20600000 rtn 
-
-mouse_eeprom_load_recon_info:
-4316 d8400058 arg 88 ,temp 
-4317 da204720 arg mem_device_flag ,rega 
-4318 da400000 arg mouse_info_eeprom_offect ,regb 
-4319 204065df call iicd_read_eep_data 
-
-mouse_select_reconn_device:
-431a da204721 arg mem_device1_type ,rega 
-431b 6800c720 fetch 1 ,mem_device_flag 
-431c 6808c703 fetcht 1 ,mem_24g_device_number 
-431d 98467c00 isub temp ,null 
-431e 20628000 rtn zero 
-431f 1fe0ffff increase -1 ,pdata 
-4320 1feffe1d mul32 pdata ,29 ,pdata 
-4321 9a20a200 iadd rega ,rega 
-4322 ea208000 ifetch 1 ,rega 
-4323 6000c210 store 1 ,mem_xrecord_mode 
-4324 c019c327 beq rec_3_mode ,mouse_load_bt_device 
-4325 c01a432c beq rec_4_mode ,mouse_load_le_device 
-4326 20600000 rtn 
-
-mouse_load_bt_device:
-4327 e8c30000 ifetch 6 ,contr 
-
-mouse_load_bt_device_end:
-4328 600341d0 store 6 ,mem_hci_plap 
-4329 d8a041be arg mem_link_key ,contw 
-432a 20407ebf call memcpy16 
-432b 202067d7 branch check_link_key_load 
-
-mouse_load_le_device:
-432c e8c30000 ifetch 6 ,contr 
-
-mouse_load_le_device_end:
-432d 600341d0 store 6 ,mem_hci_plap 
-432e d8a04419 arg mem_le_ltk ,contw 
-432f 20407ebf call memcpy16 
-4330 e8c30000 ifetch 6 ,contr 
-4331 600344a0 store 6 ,mem_le_lap 
-4332 20600000 rtn 
-
-mouse_select_device:
-4333 6800c6f5 fetch 1 ,mem_config_function_enable 
-4334 c282c349 bbit1 enable_select_device_by_gpio_button ,mouse_select_device_by_button 
-4335 c2834359 bbit1 enable_select_device_by_switch ,mouse_select_device_by_switch 
-4336 20204337 branch mouse_select_device_by_combination_key 
-
-mouse_select_device_by_combination_key:
-4337 20404083 call mouse_check_key_gpio 
-4338 c003433e beq mouse_rm_button ,mouse_select_device_commbination_key_down 
-
-mouse_select_device_commbination_key_up:
-4339 7046d81e jam 30 ,mem_combination_select_device_count 
-433a 6800c6d9 fetch 1 ,mem_select_device_button_statue 
-433b c1008000 rtneq dpi_button_state_up 
-433c 7046d901 jam dpi_button_state_up ,mem_select_device_button_statue 
-433d 20600000 rtn 
-
-mouse_select_device_commbination_key_down:
-433e 20404343 call mouse_combination_select_device_timer 
-433f 6800c6d9 fetch 1 ,mem_select_device_button_statue 
-4340 c1000000 rtneq dpi_button_state_down 
-4341 7046d900 jam dpi_button_state_down ,mem_select_device_button_statue 
-4342 202043c0 branch mouse_select_device_enable 
-
-mouse_combination_select_device_timer:
-4343 6800c6d8 fetch 1 ,mem_combination_select_device_count 
-4344 207a0000 rtn blank 
-4345 1fe0ffff pincrease -1 
-4346 6000c6d8 store 1 ,mem_combination_select_device_count 
-4347 247a0000 nrtn blank 
-4348 20204370 branch mouse_ready_reconnection_by_button 
-
-mouse_select_device_by_button:
-4349 6800c6ed fetch 1 ,mem_config_select_device_button_gpio 
-434a c17f8000 rtneq gpio_disable 
-434b 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
-434c 2040681d call gpio_get_bit 
-434d 2020c354 branch mouse_select_device_button_down ,true 
-
-mouse_select_device_button_up:
-434e 6800c6d9 fetch 1 ,mem_select_device_button_statue 
-434f c1008000 rtneq dpi_button_state_up 
-4350 7046d901 jam dpi_button_state_up ,mem_select_device_button_statue 
-4351 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-4352 c3830000 rtnbit1 mouse_long_bt_button_flag 
-4353 20204370 branch mouse_ready_reconnection_by_button 
-
-mouse_select_device_button_down:
-4354 6800c6d9 fetch 1 ,mem_select_device_button_statue 
-4355 c1000000 rtneq dpi_button_state_down 
-4356 7046d900 jam dpi_button_state_down ,mem_select_device_button_statue 
-4357 d8e00006 arg mouse_long_bt_button_flag ,queue 
-4358 202043d2 branch mouse_disable_function_flag 
-
-mouse_select_device_by_switch:
-4359 68008004 fetch 1 ,mouse_flag_len ,mem_mouse_flag 
-435a c4030000 rtnbit0 enable_select_device_by_switch 
-435b 6800c720 fetch 1 ,mem_device_flag 
-435c c000c369 beq mode_bt_device1 ,mouse_select1_device 
-435d c001436c beq mode_24g_device ,mouse_select2_device 
-435e 20600000 rtn 
-
-mouse_cheak_select_device_by_switch:
-435f 68008004 fetch 1 ,mouse_flag_len ,mem_mouse_flag 
-4360 c4030000 rtnbit0 enable_select_device_by_switch 
-4361 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
-4362 2040681d call gpio_get_bit 
-4363 2020c366 branch mouse_cheak_select_24gdevice ,true 
-
-mouse_select_btdevice:
-4364 70472001 jam mode_bt_device1 ,mem_device_flag 
-4365 20600000 rtn 
-
-mouse_cheak_select_24gdevice:
-4366 6800c703 fetch 1 ,mem_24g_device_number 
-4367 6000c720 store 1 ,mem_device_flag 
-4368 20600000 rtn 
-
-mouse_select1_device:
-4369 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
-436a 2420c370 nbranch mouse_ready_reconnection_by_button ,true 
-436b 20600000 rtn 
-
-mouse_select2_device:
-436c 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
-436d 2040681d call gpio_get_bit 
-436e 2020c354 branch mouse_select_device_button_down ,true 
-436f 20600000 rtn 
-
-mouse_ready_reconnection_by_button:
-4370 6808c720 fetcht 1 ,mem_device_flag 
-4371 18408401 increase 1 ,temp 
-4372 6800c6d2 fetch 1 ,mem_device_number 
-4373 98467c00 isub temp ,null 
-4374 244143cc ncall mouse_select_device_count_clean ,positive 
-4375 6008c720 storet 1 ,mem_device_flag 
-4376 7041bd00 jam 0 ,mem_link_key_exists 
-4377 2040437a call mouse_store_device_number2eeprom 
-4378 204043c0 call mouse_select_device_enable 
-4379 2020437e branch mouse_set_reconnection 
-
-mouse_store_device_number2eeprom:
-437a d8400001 arg 1 ,temp 
-437b da204720 arg mem_device_flag ,rega 
-437c da400000 arg 0 ,regb 
-437d 20206606 branch iicd_write_eep_data 
-
-mouse_set_reconnection:
-437e 20404381 call mouse_stop_bluetooth_mode 
-437f 204043c2 call mouse_select_device_disable 
-4380 202041d7 branch mouse_soft_reset 
-
-mouse_stop_bluetooth_mode:
-4381 68014682 fetch 2 ,mem_ui_state_map 
-4382 c283c392 bbit1 ui_state_bt_reconnect ,mouse_cancel_reconnect 
-4383 c284b402 bbit1 ui_state_ble_connected ,app_ble_disconnect 
-4384 c28033e9 bbit1 ui_state_bt_connected ,app_bt_disconnect 
-4385 202042ca branch mouse_stop_discovery 
-
-mouse_disconnect:
-4386 44f6c01d bpatch patch1d_5 ,mem_patch1d 
-4387 58000000 setarg 0 
-4388 600146b0 store 2 ,mem_mouse_no_data_timer 
-4389 68014682 fetch 2 ,mem_ui_state_map 
-438a c284b402 bbit1 ui_state_ble_connected ,app_ble_disconnect 
-438b 68014682 fetch 2 ,mem_ui_state_map 
-438c c28033e9 bbit1 ui_state_bt_connected ,app_bt_disconnect 
-438d 20600000 rtn 
-
-mouse_irtual_cable_unplug:
-438e 58000001 setarg 0x01 
-438f 60030040 store 6 ,mem_plap 
-4390 70018533 jam rec_3_mode ,mem_record_bt_mode 
-4391 202042df branch mouse_unplug_clean_bdaddr 
-
-mouse_cancel_reconnect:
-4392 204043c4 call mouse_bt_cannel_reconn_enable 
-4393 20207e2f branch check_51cmd_bb_reconn_cancel 
-
-mouse_bt_discovery_by_button:
-4394 6800c6ec fetch 1 ,mem_config_bt_button_gpio 
-4395 c17f8000 rtneq gpio_disable 
-4396 6808c6ec fetcht 1 ,mem_config_bt_button_gpio 
-4397 2040681d call gpio_get_bit 
-4398 2020c39f branch mouse_bt_discovery_button_down ,true 
-
-mouse_bt_discovery_button_up:
-4399 6800c685 fetch 1 ,mem_ui_button_timeout 
-439a 6000c6da store 1 ,mem_combination_ui_button_count 
-439b 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
-439c c1008000 rtneq dpi_button_state_up 
-439d 7046db01 jam dpi_button_state_up ,mem_bt_discovey_button_statue 
-439e 202043ca branch mouse_bt_discovery_button_down_disable 
-
-mouse_bt_discovery_button_down:
-439f 204043b5 call mouse_bt_discovry_timer 
-43a0 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
-43a1 c1000000 rtneq dpi_button_state_down 
-43a2 7046db00 jam dpi_button_state_down ,mem_bt_discovey_button_statue 
-43a3 20407e2f call check_51cmd_bb_reconn_cancel 
-43a4 202043c8 branch mouse_bt_discovery_button_down_enable 
-
-mouse_bt_discovery_cheak:
-43a5 6800c6f5 fetch 1 ,mem_config_function_enable 
-43a6 c2824394 bbit1 enable_bt_button ,mouse_bt_discovery_by_button 
-
-mouse_bt_discovery_commbination_key:
-43a7 20404083 call mouse_check_key_gpio 
-43a8 c003c3af beq mouse_lmr_button ,mouse_bt_discovery_commbination_key_down 
-
-mouse_bt_discovery_commbination_key_up:
-43a9 6800c685 fetch 1 ,mem_ui_button_timeout 
-43aa 6000c6da store 1 ,mem_combination_ui_button_count 
-43ab 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
-43ac c1008000 rtneq dpi_button_state_up 
-43ad 7046db01 jam dpi_button_state_up ,mem_bt_discovey_button_statue 
-43ae 202043ca branch mouse_bt_discovery_button_down_disable 
-
-mouse_bt_discovery_commbination_key_down:
-43af 204043b5 call mouse_bt_discovry_timer 
-43b0 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
-43b1 c1000000 rtneq dpi_button_state_down 
-43b2 7046db00 jam dpi_button_state_down ,mem_bt_discovey_button_statue 
-43b3 20407e2f call check_51cmd_bb_reconn_cancel 
-43b4 202043c8 branch mouse_bt_discovery_button_down_enable 
-
-mouse_bt_discovry_timer:
-43b5 da6046da arg mem_combination_ui_button_count ,regc 
-43b6 da4043b8 arg mouse_long_button_bt_discovry ,regb 
-43b7 2020336d branch timer_single_step 
-
-mouse_long_button_bt_discovry:
-43b8 d8e00006 arg mouse_long_bt_button_flag ,queue 
-43b9 204043ce call mouse_enable_function_flag 
-43ba 20403357 call app_evt_button_long_pressed 
-43bb 2020426c branch mouse_bb_event_discovery_btn 
-
-mouse_cpi_enable:
-43bc d8e00001 arg mouse_cpi_flag ,queue 
-43bd 202043ce branch mouse_enable_function_flag 
-
-mouse_cpi_disable:
-43be d8e00001 arg mouse_cpi_flag ,queue 
-43bf 202043d2 branch mouse_disable_function_flag 
-
-mouse_select_device_enable:
-43c0 d8e00000 arg mouse_select_device_flag ,queue 
-43c1 202043ce branch mouse_enable_function_flag 
-
-mouse_select_device_disable:
-43c2 d8e00000 arg mouse_select_device_flag ,queue 
-43c3 202043d2 branch mouse_disable_function_flag 
-
-mouse_bt_cannel_reconn_enable:
-43c4 d8e00002 arg mouse_bt_cannel_reconn_flag ,queue 
-43c5 202043ce branch mouse_enable_function_flag 
-
-mouse_bt_cannel_reconn_disable:
-43c6 d8e00002 arg mouse_bt_cannel_reconn_flag ,queue 
-43c7 202043d2 branch mouse_disable_function_flag 
-
-mouse_bt_discovery_button_down_enable:
-43c8 d8e00005 arg mouse_bt_discovery_button_down_flag ,queue 
-43c9 202043ce branch mouse_enable_function_flag 
-
-mouse_bt_discovery_button_down_disable:
-43ca d8e00005 arg mouse_bt_discovery_button_down_flag ,queue 
-43cb 202043d2 branch mouse_disable_function_flag 
-
-mouse_select_device_count_clean:
-43cc d8400001 arg 1 ,temp 
-43cd 20600000 rtn 
-
-mouse_enable_function_flag:
-43ce 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-43cf f9207e00 qset1 pdata 
-43d0 600246d3 store mouse_flag_len ,mem_mouse_flag 
-43d1 20600000 rtn 
-
-mouse_disable_function_flag:
-43d2 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-43d3 f93ffe00 qset0 pdata 
-43d4 600246d3 store mouse_flag_len ,mem_mouse_flag 
-43d5 20600000 rtn 
-
-mouse_adc_read:
-43d6 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-43d7 c40d0000 rtnbit0 mouse_enable_adc 
-43d8 6800c6ce fetch 1 ,mem_adc_read_timer 
-43d9 1fe0fe01 increase 1 ,pdata 
-43da 6000c6ce store 1 ,mem_adc_read_timer 
-43db 1fe67c0a sub pdata ,10 ,null 
-43dc 20610000 rtn positive 
-43dd 7046ce00 jam 0 ,mem_adc_read_timer 
-43de 204068eb call adc_set_mode 
-43df 20406908 call vdd_calculate_by_mode 
-43e0 6001470f store 2 ,mem_mouse_vdd_now_vol 
-43e1 da204709 arg mem_mouse_vdd_calculate_set ,rega 
-43e2 20406930 call adc_bat_percent_lowpower_out 
-43e3 6800c231 fetch 1 ,mem_adc_power_flag 
-43e4 c280c4a0 bbit1 1 ,mouse_power_down 
-43e5 c30043e9 bbit0 0 ,mouse_adc_no_low_voltage 
-43e6 202043e7 branch mouse_adc_low_voltage 
-
-mouse_adc_low_voltage:
-43e7 d8e00004 arg mouse_low_voltage_flag ,queue 
-43e8 202043ce branch mouse_enable_function_flag 
-
-mouse_adc_no_low_voltage:
-43e9 d8e00004 arg mouse_low_voltage_flag ,queue 
-43ea 202043d2 branch mouse_disable_function_flag 
-
-mouse_low_voltage_led_timer:
-43eb 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-43ec c4020000 rtnbit0 mouse_low_voltage_flag 
-43ed 6800c6ef fetch 1 ,mem_config_low_voltage_alarm_gpio 
-43ee 6000c715 store 1 ,mem_mouse_struct_led_gpio 
-43ef 6800c6cf fetch 1 ,mem_adc_low_volatage_led_timer_count 
-43f0 1fe0fe01 pincrease 1 
-43f1 6000c6cf store 1 ,mem_adc_low_volatage_led_timer_count 
-43f2 1fe67c14 sub pdata ,20 ,null 
-43f3 244143f9 ncall mouse_adc_low_volatage_led_timer_count_clean ,positive 
-43f4 c00143fb beq 2 ,mouse_low_voltage_led_on 
-43f5 c00243fe beq 4 ,mouse_low_voltage_led_off 
-43f6 c00343fb beq 6 ,mouse_low_voltage_led_on 
-43f7 c00443fe beq 8 ,mouse_low_voltage_led_off 
-43f8 20600000 rtn 
-
-mouse_adc_low_volatage_led_timer_count_clean:
-43f9 7046cf01 jam 1 ,mem_adc_low_volatage_led_timer_count 
-43fa 202043fe branch mouse_low_voltage_led_off 
-
-mouse_low_voltage_led_on:
-43fb da200000 arg 0 ,rega 
-43fc 70471302 jam ui_led_state_lighting ,mem_mouse_led_type 
-43fd 20207d14 branch ui_led_on_global 
-
-mouse_low_voltage_led_off:
-43fe da200000 arg 0 ,rega 
-43ff 70471302 jam ui_led_state_lighting ,mem_mouse_led_type 
-4400 20207d19 branch ui_led_off_global 
-
-mouse_g24_package_data:
-4401 20403f97 call mouse_motion 
-4402 24740000 nrtn user 
-4403 da200007 arg 7 ,rega 
-4404 da40469a arg mem_mouse_key ,regb 
-4405 20600000 rtn 
-
-mouse_g24_enter_lpm:
-4406 6800c78b fetch 1 ,mem_mouse_24g_enter_lpm_enable 
-4407 207a0000 rtn blank 
-4408 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
-4409 2040681d call gpio_get_bit 
-440a 2040c410 call mouse_24g_dpi_delay_init ,true 
-440b 6800c704 fetch 1 ,mem_24g_enter_lpm_timer 
-440c 247a0000 nrtn blank 
-440d 20404083 call mouse_check_key_gpio 
-440e 247a0000 nrtn blank 
-440f 20202d83 branch g24_lpm_long_sleep 
-
-mouse_24g_dpi_delay_init:
-4410 6800c6e7 fetch 1 ,mem_dpi_button_gpio 
-4411 c17f8000 rtneq ui_button_gpio_disable 
-4412 7047040a jam 10 ,mem_24g_enter_lpm_timer 
-4413 20600000 rtn 
-
-mouse_load_flash_info_cheak:
-4414 20404423 call mouse_load_flash_flag 
-4415 68014778 fetch 2 ,mem_store_flag 
-4416 d840aa55 arg eeprom_init_flag ,temp 
-4417 98467c00 isub temp ,null 
-4418 2022c42b branch mouse_load_flash_device_info ,zero 
-4419 60094778 storet 2 ,mem_store_flag 
-441a 2040441c call mouse_ble_init_address 
-441b 20204435 branch mouse_store_flash_device_info 
-
-mouse_ble_init_address:
-441c 680344a0 fetch 6 ,mem_le_lap 
-441d 60034738 store 6 ,mem_device1_locall_addr 
-441e 1fe0ff00 add pdata ,0x0100 ,pdata 
-441f 60034755 store 6 ,mem_device2_locall_addr 
-4420 1fe0ff00 add pdata ,0x0100 ,pdata 
-4421 60034772 store 6 ,mem_device3_locall_addr 
-4422 20600000 rtn 
-
-mouse_load_flash_flag:
-4423 58004778 setarg mem_store_flag 
-4424 d8404720 arg mem_mouse_information_start ,temp 
-4425 98460400 isub temp ,temp 
-4426 6801c700 fetch 3 ,mem_flash_base 
-4427 9840fe00 iadd temp ,pdata 
-4428 d8400002 arg 2 ,temp 
-4429 da204778 arg mem_store_flag ,rega 
-442a 20206562 branch spid_read_flash 
-
-mouse_load_flash_device_info:
-442b 5800477f setarg mem_mouse_information_end 
-442c d8404720 arg mem_mouse_information_start ,temp 
-442d 98460400 isub temp ,temp 
-442e 6801c700 fetch 3 ,mem_flash_base 
-442f da204720 arg mem_mouse_information_start ,rega 
-4430 20406562 call spid_read_flash 
-4431 2040431a call mouse_select_reconn_device 
-4432 6802477b fetch 4 ,mem_mouse_24g_addr 
-4433 20402c7a call g24_head_ptr2regc 
-4434 2020322c branch g24_store_mem_addr 
-
-mouse_store_flash_device_info:
-4435 5800477f setarg mem_mouse_information_end 
-4436 d8404720 arg mem_mouse_information_start ,temp 
-4437 98460400 isub temp ,temp 
-4438 da204720 arg mem_mouse_information_start ,rega 
-4439 6801c700 fetch 3 ,mem_flash_base 
-443a 20206514 branch flash_write 
-
-mouse_store_eerpom_dpi:
-443b d8400001 arg 1 ,temp 
-443c da20477a arg mem_mouse_dpi ,rega 
-443d da40005a arg mouse_dpi_eeprom_offect ,regb 
-443e 202065d1 branch iicd_write_protect_eep_data 
-
-mouse_load_eeprom_dpi:
-443f d8400001 arg 1 ,temp 
-4440 da20477a arg mem_mouse_dpi ,rega 
-4441 da40005a arg mouse_dpi_eeprom_offect ,regb 
-4442 202065df branch iicd_read_eep_data 
-
-mouse_statue_cheak_timer:
-4443 c6130000 rtnmark1 mark_24g 
-4444 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-4445 c40b0000 rtnbit0 mouse_enable_statue_up 
-4446 6800c705 fetch 1 ,mem_mouse_1step_up_count 
-4447 1fe0fe01 pincrease 1 
-4448 1fe17e07 and pdata ,0x07 ,pdata 
-4449 6000c705 store 1 ,mem_mouse_1step_up_count 
-444a c1838000 rtnne 0x07 
-444b 68014682 fetch 2 ,mem_ui_state_map 
-444c c280444f bbit1 ui_state_bt_connected ,mouse_check_statue_up 
-444d c284c44f bbit1 ui_state_ble_connected ,mouse_check_statue_up 
-444e 20600000 rtn 
-
-mouse_check_statue_up:
-444f 44f7401d bpatch patch1d_6 ,mem_patch1d 
-4450 6800c706 fetch 1 ,mem_mouse_2step_up_count 
-4451 247a0000 nrtn blank 
-4452 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-4453 c4040000 rtnbit0 mouse_statue_up_flag 
-4454 6800c6a5 fetch 1 ,mem_sensor_squal_reg 
-4455 204063fb call sensor_read 
-4456 6000c6a6 store 1 ,mem_sensor_iqc 
-4457 1fe67c10 sub pdata ,0x10 ,null 
-4458 2021445b branch mouse_statue_up_timer_init ,positive 
-4459 70470600 jam 0 ,mem_mouse_2step_up_count 
-445a 20600000 rtn 
-
-mouse_statue_up_timer_init:
-445b 7047061e jam 30 ,mem_mouse_2step_up_count 
-445c 20600000 rtn 
-
-mouse_statue_up_timer:
-445d da604706 arg mem_mouse_2step_up_count ,regc 
-445e da404460 arg mouse_statue_up ,regb 
-445f 2020336d branch timer_single_step 
-
-mouse_statue_up:
-4460 6800c6a5 fetch 1 ,mem_sensor_squal_reg 
-4461 20406414 call twspi_read 
-4462 1fe67c10 sub pdata ,0x10 ,null 
-4463 24610000 nrtn positive 
-4464 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-4465 c4040000 rtnbit0 mouse_statue_up_flag 
-4466 d8e00008 arg mouse_statue_up_flag ,queue 
-4467 204043d2 call mouse_disable_function_flag 
-4468 70417200 jam 0 ,mem_lpm_mult 
-4469 7046c41e jam 30 ,mem_mouse_statue_led_timer 
-446a 20404482 call mouse_devce_led_off 
-446b 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-446c c28ac471 bbit1 mouse_enable_statue_up_three_led ,mouse_three_device_statue_up 
-
-mouse_two_device_statue_up:
-446d 6800c720 fetch 1 ,mem_device_flag 
-446e c000c489 beq mode_bt_device1 ,mouse_device1_led_on 
-446f c0014476 beq mode_bt_device2 ,mouse_device_blink_led_init 
-4470 20600000 rtn 
-
-mouse_three_device_statue_up:
-4471 6800c720 fetch 1 ,mem_device_flag 
-4472 c000c489 beq mode_bt_device1 ,mouse_device1_led_on 
-4473 c001448c beq mode_bt_device2 ,mouse_device2_led_on 
-4474 c001c48f beq mode_bt_device3 ,mouse_device3_led_on 
-4475 20600000 rtn 
-
-mouse_device_blink_led_init:
-4476 6800c6f0 fetch 1 ,mem_config_device1_led_gpio 
-4477 2020428f branch mouse_led_blink 
-
-mouse_statue_led_off:
-4478 70417220 jam 0x20 ,mem_lpm_mult 
-4479 20204482 branch mouse_devce_led_off 
-
-mouse_devce1_led_off:
-447a 6800c6f0 fetch 1 ,mem_config_device1_led_gpio 
-447b c17f8000 rtneq gpio_disable 
-447c 6000c715 store 1 ,mem_mouse_struct_led_gpio 
-447d 20204296 branch mouse_led_off 
-
-mouse_devce2_led_off:
-447e 6800c6f1 fetch 1 ,mem_config_device2_led_gpio 
-447f c17f8000 rtneq gpio_disable 
-4480 6000c715 store 1 ,mem_mouse_struct_led_gpio 
-4481 20204296 branch mouse_led_off 
-
-mouse_devce_led_off:
-4482 20404296 call mouse_led_off 
-4483 2040447a call mouse_devce1_led_off 
-4484 2040447e call mouse_devce2_led_off 
-
-mouse_devce3_led_off:
-4485 6800c6f2 fetch 1 ,mem_config_device3_led_gpio 
-4486 c17f8000 rtneq gpio_disable 
-4487 6000c715 store 1 ,mem_mouse_struct_led_gpio 
-4488 20204296 branch mouse_led_off 
-
-mouse_device1_led_on:
-4489 6800c6f0 fetch 1 ,mem_config_device1_led_gpio 
-448a 6000c715 store 1 ,mem_mouse_struct_led_gpio 
-448b 20204298 branch mouse_led_on 
-
-mouse_device2_led_on:
-448c 6800c6f1 fetch 1 ,mem_config_device2_led_gpio 
-448d 6000c715 store 1 ,mem_mouse_struct_led_gpio 
-448e 20204298 branch mouse_led_on 
-
-mouse_device3_led_on:
-448f 6800c6f2 fetch 1 ,mem_config_device3_led_gpio 
-4490 6000c715 store 1 ,mem_mouse_struct_led_gpio 
-4491 20204298 branch mouse_led_on 
-
-mouse_polling_device:
-4492 44f7c01d bpatch patch1d_7 ,mem_patch1d 
-4493 6800c71e fetch 1 ,mem_reconn_times 
-4494 1fe0ffff increase -1 ,pdata 
-4495 6000c71e store 1 ,mem_reconn_times 
-4496 6808c720 fetcht 1 ,mem_device_flag 
-4497 18408401 increase 1 ,temp 
-4498 6800c6d2 fetch 1 ,mem_device_number 
-4499 98467c00 isub temp ,null 
-449a 244143cc ncall mouse_select_device_count_clean ,positive 
-449b 6008c720 storet 1 ,mem_device_flag 
-449c 7041bd00 jam 0 ,mem_link_key_exists 
-449d 2040437a call mouse_store_device_number2eeprom 
-449e 204042fb call mouse_before_store_reconn_info 
-449f 202042a2 branch mouse_check_reconn_target 
-
-mouse_power_down:
-44a0 20404482 call mouse_devce_led_off 
-44a1 58000000 setarg 0 
-44a2 600400a1 store 8 ,mem_gpio_wakeup_low 
-44a3 20202b1f branch lpm_hibernate 
-
-remote_car_init:
-44a4 20758000 rtn wake 
-44a5 68108081 hfetch 1 ,core_gpio_sel1 
-44a6 1fe17ef0 and_into 0xf0 ,pdata 
-44a7 60108081 hstore 1 ,core_gpio_sel1 
-44a8 20406948 call keyscan_key_init 
-44a9 580044e6 setarg remote_car_le_before_hibernate 
-44aa 600141eb store 2 ,mem_cb_before_hibernate 
-44ab 580044e9 setarg remote_car_process_lpm_before 
-44ac 600141ed store 2 ,mem_cb_before_lpm 
-44ad 580044ef setarg remote_car_scale_process_idle 
-44ae 600141f3 store 2 ,mem_cb_idle_process 
-44af 580044f2 setarg remote_car_scale_process_bb_event 
-44b0 600141f5 store 2 ,mem_cb_bb_event_process 
-44b1 580033d0 setarg app_get_lpm_wake_lock 
-44b2 600141e9 store 2 ,mem_cb_check_wakelock 
-44b3 20402c7a call g24_head_ptr2regc 
-44b4 580045c2 setarg remote_car_g24_package_data 
-44b5 1a608ad8 add regc ,offset_24g_cb_data ,contw 
-44b6 e0a10000 istore 2 ,contw 
-44b7 580044ea setarg remote_car_g24_enter_lpm 
-44b8 1a608ada add regc ,offset_24g_cb_lpm_prepare ,contw 
-44b9 e0a10000 istore 2 ,contw 
-44ba 580044e9 setarg remote_car_process_lpm_before 
-44bb 1a608adc add regc ,offset_24g_cb_lpm_before ,contw 
-44bc e0a10000 istore 2 ,contw 
-44bd 5800450e setarg remote_car_event_timer 
-44be 600141fd store 2 ,mem_cb_event_timer 
-44bf 580044da setarg remote_car_power_off_signal 
-44c0 6001475b store 2 ,mem_remote_car_power_off_cb 
-44c1 580044d6 setarg remote_car_soft_switch_power_on_signal 
-44c2 6001475f store 2 ,mem_remote_car_power_standby_cb 
-44c3 58004560 setarg remote_car_send_key_data 
-44c4 6001470f store 2 ,mem_cb_remote_car_keyscan 
-44c5 44f8401e bpatch patch1e_0 ,mem_patch1e 
-44c6 204044e2 call remote_car_init_environment 
-44c7 20407e38 call queue_init 
-44c8 70417202 jam 2 ,mem_lpm_mult 
-44c9 6800c72b fetch 1 ,mem_remote_car_config_soft_switch_enable 
-44ca 6000c69a store 1 ,mem_remote_car_hard_soft_switch 
-44cb c00044d5 beq hard_switch ,remote_car_hard_switch_power_on_signal 
-44cc 6800c72c fetch 1 ,mem_remote_car_config_soft_switch_gpio 
-44cd 6000c686 store 1 ,mem_ui_button_gpio 
-
-remote_car_soft_switch_power_on_init:
-44ce 204044db call remote_car_ui_led_init 
-44cf 20407cd3 call ui_button_init 
-44d0 20407cdd call ui_button_polling 
-44d1 70475701 jam power_starting ,mem_remote_car_power_state 
-44d2 68014682 fetch 2 ,mem_ui_state_map 
-44d3 c3860000 rtnbit1 ui_state_btn_down 
-44d4 2020340a branch app_enter_hibernate 
-
-remote_car_hard_switch_power_on_signal:
-44d5 70475702 jam power_standby ,mem_remote_car_power_state 
-
-remote_car_soft_switch_power_on_signal:
-44d6 204044db call remote_car_ui_led_init 
-44d7 da200000 arg 0 ,rega 
-44d8 20407d1e call ui_led_blink_start_global 
-
-remote_car_connect_24g_mode:
-44d9 20202ee4 branch g24_auto_pair_start 
-
-remote_car_power_off_signal:
-44da 202044db branch remote_car_ui_led_init 
-
-remote_car_ui_led_init:
-44db 44f8c01e bpatch patch1e_1 ,mem_patch1e 
-44dc 6800c729 fetch 1 ,mem_remote_car_config_connect_led_gpio 
-44dd c0ffc4e0 bne invalid_pin_num ,remote_car_pairing_led_gpio_set 
-
-remote_car_ui_led_init_1:
-44de 6808c706 fetcht 1 ,mem_remote_car_led_map 
-44df 2020680e branch gpio_config_output 
-
-remote_car_pairing_led_gpio_set:
-44e0 6000c706 store 1 ,mem_remote_car_led_map 
-44e1 202044de branch remote_car_ui_led_init_1 
-
-remote_car_init_environment:
-44e2 20402c9d call g24_set_device_addr 
-44e3 68014753 fetch 2 ,mem_remote_car_no_data_timeout 
-44e4 60014755 store 2 ,mem_remote_car_no_data_timer 
-44e5 20204515 branch remote_car_get_adc_default_data 
-
-remote_car_le_before_hibernate:
-
-remote_car_in_enter_hibernate:
-44e6 20406835 call gpio_set_before_lpm_common 
-44e7 204044e9 call remote_car_process_lpm_before 
-44e8 2020340a branch app_enter_hibernate 
-
-remote_car_process_lpm_before:
-44e9 2020696c branch keyscan_process_lpm_before 
-
-remote_car_g24_enter_lpm:
-44ea 6800c765 fetch 1 ,mem_remote_car_24g_enter_lpm_enable 
-44eb 207a0000 rtn blank 
-44ec 20202d83 branch g24_lpm_long_sleep 
-
-remote_car_process_auto_pair_exit:
-44ed 20600000 rtn 
-
-remote_car_key_scan_process:
-44ee 20206978 branch keyscan_key_process 
-
-remote_car_scale_process_idle:
-44ef 20404544 call remote_car_rocker_process 
-44f0 20404503 call remote_car_24g_status_process 
-44f1 202044ee branch remote_car_key_scan_process 
-
-remote_car_scale_process_bb_event:
-44f2 1a627e00 copy regc ,pdata 
-44f3 c016b431 beq bt_evt_button_up ,app_event_button_up 
-44f4 c008341a beq bt_evt_button_long_pressed ,app_button_long_pressed 
-44f5 c01cc4fb beq bt_evt_24g_pairing_complete ,remote_car_24g_pairing_complete 
-44f6 c01e44ff beq bt_evt_24g_attempt_success ,remote_car_24g_attempt_success 
-44f7 c01d44f9 beq bt_evt_24g_attempt_fail ,remote_car_24g_attempt_fail 
-44f8 20600000 rtn 
-
-remote_car_24g_attempt_fail:
-44f9 70476501 jam 1 ,mem_remote_car_24g_enter_lpm_enable 
-44fa 20600000 rtn 
-
-remote_car_24g_pairing_complete:
-44fb 70476501 jam 1 ,mem_remote_car_24g_enter_lpm_enable 
-44fc 70476301 jam work_paired ,mem_remote_car_24g_auto_work_step 
-44fd 70476401 jam work_paired ,mem_remote_car_24g_pair_success_flag 
-44fe 20600000 rtn 
-
-remote_car_24g_attempt_success:
-44ff 70476501 jam 1 ,mem_remote_car_24g_enter_lpm_enable 
-4500 70476301 jam work_paired ,mem_remote_car_24g_auto_work_step 
-4501 70476401 jam work_paired ,mem_remote_car_24g_pair_success_flag 
-4502 20600000 rtn 
-
-remote_car_24g_status_process:
-4503 6800c763 fetch 1 ,mem_remote_car_24g_auto_work_step 
-4504 c1000000 rtneq power_on 
-4505 6800c762 fetch 1 ,mem_remote_car_24g_status 
-4506 c1008000 rtneq work_paired 
-4507 70476201 jam work_paired ,mem_remote_car_24g_status 
-
-remote_car_scale_process_paired:
-4508 da200000 arg 0 ,rega 
-4509 20207d19 branch ui_led_off_global 
-
-remote_car_scale_process_shutdown:
-450a da200000 arg 0 ,rega 
-450b 20407d19 call ui_led_off_global 
-450c 204044db call remote_car_ui_led_init 
-450d 2020340a branch app_enter_hibernate 
-
-remote_car_event_timer:
-450e 2040337b call app_power_timer 
-450f 20204510 branch remote_car_no_data_timer 
-
-remote_car_no_data_timer:
-4510 6800c72d fetch 1 ,mem_remote_car_config_timeout_shutdown_enable 
-4511 207a0000 rtn blank 
-4512 da604755 arg mem_remote_car_no_data_timer ,regc 
-4513 da40450a arg remote_car_scale_process_shutdown ,regb 
-4514 20203374 branch timer_single_step_2b 
-
-remote_car_get_adc_default_data:
-4515 2040451a call remote_car_rocker_get_x 
-4516 6009471a storet 2 ,mem_current_vdd_value_default_mid_x 
-4517 2040451f call remote_car_rocker_get_y 
-4518 6009471c storet 2 ,mem_current_vdd_value_default_mid_y 
-4519 20600000 rtn 
-
-remote_car_rocker_data_get:
-
-remote_car_rocker_get_x:
-451a 6801471a fetch 2 ,mem_current_vdd_value_default_mid_x 
-451b 6001471e store 2 ,mem_current_vdd_value_default_mid_temp 
-451c 20404540 call remote_car_get_adc_from_gpio6 
-451d 20404525 call remote_car_rocker_get_value 
-451e 6000c724 store 1 ,mem_rocker_status 
-
-remote_car_rocker_get_y:
-451f 6801471c fetch 2 ,mem_current_vdd_value_default_mid_y 
-4520 6001471e store 2 ,mem_current_vdd_value_default_mid_temp 
-4521 20404542 call remote_car_get_adc_from_gpio7 
-4522 20404525 call remote_car_rocker_get_value 
-4523 6000c725 store 1 ,mem_rocker_status + 1 
-4524 20600000 rtn 
-
-remote_car_rocker_get_value:
-4525 68014720 fetch 2 ,mem_current_vdd_default_range 
-4526 1fe22200 copy pdata ,rega 
-4527 6801471e fetch 2 ,mem_current_vdd_value_default_mid_temp 
-4528 2040452e call remote_car_rocker_mid_value_adjust 
-4529 6800c719 fetch 1 ,mem_rocker_work_status 
-452a 243a4537 nbranch remote_car_rocker_translate_key ,blank 
-452b 24610000 nrtn positive 
-452c 6809471e fetcht 2 ,mem_current_vdd_value_default_mid_temp 
-452d 20600000 rtn 
-
-remote_car_rocker_mid_value_adjust:
-452e 98467e00 isub temp ,pdata 
-452f 20214534 branch remote_car_rocker_mid_adjust_positive ,positive 
-4530 1fe67e00 sub pdata ,0 ,pdata 
-4531 70471801 jam 1 ,mem_rocker_negative_flag 
-4532 9a267c00 isub rega ,null 
-4533 20600000 rtn 
-
-remote_car_rocker_mid_adjust_positive:
-4534 70471800 jam 0 ,mem_rocker_negative_flag 
-4535 9a267c00 isub rega ,null 
-4536 20600000 rtn 
-
-remote_car_rocker_translate_key:
-4537 2421453e nbranch remote_car_rocker_middle_key ,positive 
-4538 6800c718 fetch 1 ,mem_rocker_negative_flag 
-4539 243a453c nbranch remote_car_rocker_negative_key ,blank 
-
-remote_car_rocker_positive_key:
-453a 58000001 setarg rocker_positive_key 
-453b 20600000 rtn 
-
-remote_car_rocker_negative_key:
-453c 58000002 setarg rocker_negative_key 
-453d 20600000 rtn 
-
-remote_car_rocker_middle_key:
-453e 58000000 setarg rocker_middle_key 
-453f 20600000 rtn 
-
-remote_car_get_adc_from_gpio6:
-4540 70422e33 jam 0x33 ,mem_adc_channel 
-4541 202068eb branch adc_set_mode 
-
-remote_car_get_adc_from_gpio7:
-4542 70422e34 jam 0x34 ,mem_adc_channel 
-4543 202068eb branch adc_set_mode 
-
-remote_car_rocker_process:
-4544 6800c72a fetch 1 ,mem_remote_car_config_check_way 
-4545 c1808000 rtnne car_remote_check_rocker 
-
-remote_car_read_rocker_check_start:
-4546 44f9401e bpatch patch1e_2 ,mem_patch1e 
-4547 70471901 jam 1 ,mem_rocker_work_status 
-4548 2040451a call remote_car_rocker_data_get 
-4549 68014724 fetch 2 ,mem_rocker_status 
-454a 68094722 fetcht 2 ,mem_rocker_last_status 
-454b 98467c00 isub temp ,null 
-454c 20628000 rtn zero 
-454d 60014722 store 2 ,mem_rocker_last_status 
-454e 20404550 call remote_car_rocker_x_to_key 
-454f 20204554 branch remote_car_rocker_y_to_key 
-
-remote_car_rocker_x_to_key:
-4550 6800c724 fetch 1 ,mem_rocker_x_status 
-4551 203a455a branch rocker_to_queue_set_0 ,blank 
-4552 1fe0ffff increase -1 ,pdata 
-4553 20204557 branch remote_car_rocker_to_key 
-
-remote_car_rocker_y_to_key:
-4554 6800c725 fetch 1 ,mem_rocker_y_status 
-4555 203a455d branch rocker_to_queue_set_2 ,blank 
-4556 1fe0fe01 increase 1 ,pdata 
-
-remote_car_rocker_to_key:
-4557 1fe20e00 copy pdata ,queue 
-4558 da200001 arg 1 ,rega 
-4559 20204560 branch remote_car_send_key_data 
-
-rocker_to_queue_set_0:
-455a d8e00000 arg 0 ,queue 
-455b da200000 arg 0 ,rega 
-455c 20204560 branch remote_car_send_key_data 
-
-rocker_to_queue_set_2:
-455d d8e00002 arg 2 ,queue 
-455e da200000 arg 0 ,rega 
-455f 20204560 branch remote_car_send_key_data 
-
-remote_car_send_key_data:
-4560 1a227e00 copy rega ,pdata 
-4561 6000c761 store 1 ,mem_remote_key_status 
-4562 6800c763 fetch 1 ,mem_remote_car_24g_auto_work_step 
-4563 c0002ee4 beq power_on ,g24_auto_pair_start 
-4564 68014753 fetch 2 ,mem_remote_car_no_data_timeout 
-4565 60014755 store 2 ,mem_remote_car_no_data_timer 
-4566 6800c761 fetch 1 ,mem_remote_key_status 
-4567 203a4580 branch remote_car_key_is_release ,blank 
-
-remote_car_key_is_press:
-4568 44f9c01e bpatch patch1e_3 ,mem_patch1e 
-4569 da200000 arg 0 ,rega 
-456a 20407d14 call ui_led_on_global 
-
-remote_car_attack_key_press:
-456b 18e27e00 copy queue ,pdata 
-456c c00245a3 beq 4 ,remote_car_send_attack_key4_press 
-456d c002c5a5 beq 5 ,remote_car_send_attack_key5_press 
-456e c00345a7 beq 6 ,remote_car_send_fire_key6_press 
-
-remote_car_motor_key_press:
-456f 2040458b call remote_car_device_layout_select 
-4570 c0004574 beq control_f_b_ten ,remote_car_single_motor_key_is_press 
-4571 c001457a beq control_l_r_ten ,remote_car_double_motor_key_press 
-4572 c001c574 beq control_l_r_lr ,remote_car_single_motor_key_is_press 
-4573 20600000 rtn 
-
-remote_car_single_motor_key_is_press:
-4574 18e27e00 copy queue ,pdata 
-4575 c000458f beq 0 ,remote_car_send_motor1_key0_press 
-4576 c000c591 beq 1 ,remote_car_send_motor1_key1_press 
-4577 c0014593 beq 2 ,remote_car_send_motor2_key2_press 
-4578 c001c595 beq 3 ,remote_car_send_motor2_key3_press 
-4579 20600000 rtn 
-
-remote_car_double_motor_key_press:
-457a 18e27e00 copy queue ,pdata 
-457b c0004597 beq 0 ,remote_car_send_double_motor_key0_press 
-457c c000c59a beq 1 ,remote_car_send_double_motor_key1_press 
-457d c001459d beq 2 ,remote_car_send_double_motor_key2_press 
-457e c001c5a0 beq 3 ,remote_car_send_double_motor_key3_press 
-457f 20600000 rtn 
-
-remote_car_key_is_release:
-4580 44fa401e bpatch patch1e_4 ,mem_patch1e 
-4581 da200000 arg 0 ,rega 
-4582 20407d19 call ui_led_off_global 
-
-remote_car_attack_key_release:
-4583 18e27e00 copy queue ,pdata 
-4584 c00245bc beq 4 ,remote_car_send_attack_key4_rel 
-4585 c002c5bc beq 5 ,remote_car_send_attack_key5_rel 
-
-remote_car_motor_key_release:
-4586 2040458b call remote_car_device_layout_select 
-4587 c00045a9 beq control_f_b_ten ,remote_car_single_motor_key_rel 
-4588 c00145af beq control_l_r_ten ,remote_car_double_motor_key_rel 
-4589 c001c5a9 beq control_l_r_lr ,remote_car_single_motor_key_rel 
-458a 20600000 rtn 
-
-remote_car_device_layout_select:
-458b 6800c728 fetch 1 ,mem_remote_car_config_layout 
-458c 6808c727 fetcht 1 ,mem_remote_car_config_key_map 
-458d 9841fe00 ior temp ,pdata 
-458e 20600000 rtn 
-
-remote_car_send_motor1_key0_press:
-458f 70473401 jam motor_positive ,mem_remote_car_24g_motor1_payload 
-4590 202045be branch remote_car_send_key 
-
-remote_car_send_motor1_key1_press:
-4591 70473402 jam motor_negative ,mem_remote_car_24g_motor1_payload 
-4592 202045be branch remote_car_send_key 
-
-remote_car_send_motor2_key2_press:
-4593 70473601 jam motor_positive ,mem_remote_car_24g_motor2_payload 
-4594 202045be branch remote_car_send_key 
-
-remote_car_send_motor2_key3_press:
-4595 70473602 jam motor_negative ,mem_remote_car_24g_motor2_payload 
-4596 202045be branch remote_car_send_key 
-
-remote_car_send_double_motor_key0_press:
-4597 70473401 jam motor_positive ,mem_remote_car_24g_motor1_payload 
-4598 70473601 jam motor_positive ,mem_remote_car_24g_motor2_payload 
-4599 202045be branch remote_car_send_key 
-
-remote_car_send_double_motor_key1_press:
-459a 70473402 jam motor_negative ,mem_remote_car_24g_motor1_payload 
-459b 70473602 jam motor_negative ,mem_remote_car_24g_motor2_payload 
-459c 202045be branch remote_car_send_key 
-
-remote_car_send_double_motor_key2_press:
-459d 70473402 jam motor_negative ,mem_remote_car_24g_motor1_payload 
-459e 70473601 jam motor_positive ,mem_remote_car_24g_motor2_payload 
-459f 202045be branch remote_car_send_key 
-
-remote_car_send_double_motor_key3_press:
-45a0 70473401 jam motor_positive ,mem_remote_car_24g_motor1_payload 
-45a1 70473602 jam motor_negative ,mem_remote_car_24g_motor2_payload 
-45a2 202045be branch remote_car_send_key 
-
-remote_car_send_attack_key4_press:
-45a3 70473801 jam motor_positive ,mem_remote_car_24g_motor3_payload 
-45a4 202045be branch remote_car_send_key 
-
-remote_car_send_attack_key5_press:
-45a5 70473802 jam motor_negative ,mem_remote_car_24g_motor3_payload 
-45a6 202045be branch remote_car_send_key 
-
-remote_car_send_fire_key6_press:
-45a7 70474101 jam 0x01 ,mem_remote_car_24g_fire_send_payload 
-45a8 202045c0 branch remote_car_send_attack 
-
-remote_car_single_motor_key_rel:
-45a9 18e27e00 copy queue ,pdata 
-45aa c00045b5 beq 0 ,remote_car_send_motor1_key0_rel 
-45ab c000c5b5 beq 1 ,remote_car_send_motor1_key1_rel 
-45ac c00145b7 beq 2 ,remote_car_send_motor2_key2_rel 
-45ad c001c5b7 beq 3 ,remote_car_send_motor2_key3_rel 
-45ae 20600000 rtn 
-
-remote_car_double_motor_key_rel:
-45af 18e27e00 copy queue ,pdata 
-45b0 c00045b9 beq 0 ,remote_car_send_double_motor_key0_rel 
-45b1 c000c5b9 beq 1 ,remote_car_send_double_motor_key1_rel 
-45b2 c00145b9 beq 2 ,remote_car_send_double_motor_key2_rel 
-45b3 c001c5b9 beq 3 ,remote_car_send_double_motor_key3_rel 
-45b4 20600000 rtn 
-
-remote_car_send_motor1_key0_rel:
-
-remote_car_send_motor1_key1_rel:
-45b5 70473400 jam motor_stop ,mem_remote_car_24g_motor1_payload 
-45b6 202045be branch remote_car_send_key 
-
-remote_car_send_motor2_key2_rel:
-
-remote_car_send_motor2_key3_rel:
-45b7 70473600 jam motor_stop ,mem_remote_car_24g_motor2_payload 
-45b8 202045be branch remote_car_send_key 
-
-remote_car_send_double_motor_key0_rel:
-
-remote_car_send_double_motor_key1_rel:
-
-remote_car_send_double_motor_key2_rel:
-
-remote_car_send_double_motor_key3_rel:
-45b9 70473400 jam motor_stop ,mem_remote_car_24g_motor1_payload 
-45ba 70473600 jam motor_stop ,mem_remote_car_24g_motor2_payload 
-45bb 202045be branch remote_car_send_key 
-
-remote_car_send_attack_key4_rel:
-
-remote_car_send_attack_key5_rel:
-45bc 70473800 jam motor_stop ,mem_remote_car_24g_motor3_payload 
-45bd 202045be branch remote_car_send_key 
-
-remote_car_send_key:
-45be da20472e arg mem_remote_car_24g_motor_packet ,rega 
-45bf 20207e3d branch queue_push 
-
-remote_car_send_attack:
-45c0 da20473b arg mem_remote_car_24g_fire_packet ,rega 
-45c1 20207e3d branch queue_push 
-
-remote_car_g24_package_data:
-45c2 6800c764 fetch 1 ,mem_remote_car_24g_pair_success_flag 
-45c3 c000c5cc beq work_paired ,remote_car_g24_send_empty 
-45c4 da204744 arg mem_remote_car_24g_tx_temp ,rega 
-45c5 20407e54 call queue_pop 
-45c6 243445d1 nbranch remote_car_moto_data ,user 
-
-remote_car_g24_package_data_continue:
-45c7 d8c04744 arg mem_remote_car_24g_tx_temp ,contr 
-45c8 e8c08000 ifetch 1 ,contr 
-45c9 1fe22200 copy pdata ,rega 
-45ca da404745 arg mem_remote_car_24g_tx_temp + 1 ,regb 
-45cb 20600000 rtn 
-
-remote_car_g24_send_empty:
-45cc 70476400 jam 0 ,mem_remote_car_24g_pair_success_flag 
-45cd 78347c00 enable user 
-45ce da200001 arg 1 ,rega 
-45cf da404766 arg mem_remote_car_empty_packet ,regb 
-45d0 20600000 rtn 
-
-remote_car_moto_data:
-45d1 6800c747 fetch 1 ,mem_remote_car_24g_tx_temp + 3 
-45d2 c00245d5 beq car_cmd_l_r_motor_control ,remote_car_moto_data_next 
-45d3 c002c5d5 beq car_cmd_f_b_motor_control ,remote_car_moto_data_next 
-45d4 20600000 rtn 
-
-remote_car_moto_data_next:
-45d5 6800c74a fetch 1 ,mem_remote_car_24g_tx_temp + 6 
-45d6 243a45dc nbranch remote_car_moto_data_enable_user ,blank 
-45d7 6800c74c fetch 1 ,mem_remote_car_24g_tx_temp + 8 
-45d8 243a45dc nbranch remote_car_moto_data_enable_user ,blank 
-45d9 6800c74e fetch 1 ,mem_remote_car_24g_tx_temp + 10 
-45da 243a45dc nbranch remote_car_moto_data_enable_user ,blank 
-45db 20600000 rtn 
-
-remote_car_moto_data_enable_user:
-45dc 78347c00 enable user 
-45dd 202045c7 branch remote_car_g24_package_data_continue 
-
-shutter_init:
-45de 20758000 rtn wake 
-45df 68108081 hfetch 1 ,core_gpio_sel1 
-45e0 1fe17efc and_into 0xfc ,pdata 
-45e1 60108081 hstore 1 ,core_gpio_sel1 
-45e2 580046b4 setarg shutter_le_before_hibernate 
-45e3 600141eb store 2 ,mem_cb_before_hibernate 
-45e4 580046b3 setarg shutter_process_lpm_before 
-45e5 600141ed store 2 ,mem_cb_before_lpm 
-45e6 5800340a setarg app_enter_hibernate 
-45e7 600141f7 store 2 ,mem_cb_discovry_timeout 
-45e8 580046b1 setarg shutter_process_idle 
-45e9 600141f3 store 2 ,mem_cb_idle_process 
-45ea 58004612 setarg shutter_process_bb_event 
-45eb 600141f5 store 2 ,mem_cb_bb_event_process 
-45ec 5800460c setarg shutter_le_scale_lpm_lock 
-45ed 600141e9 store 2 ,mem_cb_check_wakelock 
-45ee 5800476a setarg ble_shutter_receive_data 
-45ef 600141f9 store 2 ,mem_cb_att_write 
-45f0 58004686 setarg shutter_le_bb_event_timer 
-45f1 600141fd store 2 ,mem_cb_event_timer 
-45f2 58004729 setarg shutter_key_change 
-45f3 600146e7 store 2 ,mem_cb_shutter_keycan 
-45f4 58004806 setarg shutter_soft_swtich_power_on 
-45f5 600146e2 store 2 ,mem_shutter_soft_switch_poweron_callback_function 
-45f6 58004807 setarg shutter_soft_swtich_power_off 
-45f7 600146e4 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
-45f8 204057a3 call le_modified_name 
-45f9 204047da call shutter_load_bluetooth_config_by_user_config 
-45fa 20404788 call shutter_init_bluetooth_config 
-45fb 2040476d call shutter_init_param 
-45fc 20406948 call keyscan_key_init 
-45fd 2040477a call shutter_load_buffer_config_form_datarom 
-45fe 20407e38 call queue_init 
-45ff 20407d08 call ui_led_init_global 
-4600 20404793 call shutter_load_bluetooth_config 
-4601 204047c7 call shutter_load_bluetooth_config_by_eeprom 
-4602 44fac01e bpatch patch1e_5 ,mem_patch1e 
-4603 2040464f call classic_shutter_load_reconn_info 
-4604 6800c6dd fetch 1 ,mem_shutter_hard_soft_switch_case 
-4605 c0004609 beq hard_switch ,shutter_hart_swtich_power_on 
-4606 6800c6de fetch 1 ,mem_shutter_soft_switch_button_gpio 
-4607 6000c686 store 1 ,mem_ui_button_gpio 
-4608 2020480e branch ui_soft_swtich_init 
-
-shutter_hart_swtich_power_on:
-4609 704686ff jam ui_button_gpio_disable ,mem_ui_button_gpio 
-460a 7046df01 jam ss_state_power_on ,mem_shutter_soft_switch_power_state 
-460b 202046d9 branch shutter_start_reconnect 
-
-shutter_le_scale_lpm_lock:
-460c 6800c6df fetch 1 ,mem_shutter_soft_switch_power_state 
-460d c00133d0 beq ss_state_power_off ,app_get_lpm_wake_lock 
-460e 2040527e call l2cap_malloc_get_full_map 
-460f 6800c256 fetch 1 ,mem_used_map 
-4610 243a33d0 nbranch app_get_lpm_wake_lock ,blank 
-4611 202033d2 branch app_put_lpm_wake_lock 
-
-shutter_process_bb_event:
-4612 1a627e00 copy regc ,pdata 
-4613 c000c626 beq bt_evt_bb_connected ,classic_shutter_process_baseband_connect 
-4614 c0014629 beq bt_evt_bb_disconnected ,classic_shutter_process_baseband_disconnect 
-4615 c0024631 beq bt_evt_reconn_failed ,classic_shutter_process_reconnect_failed 
-4616 c002c633 beq bt_evt_setup_complete ,classic_shutter_process_setup_complete 
-4617 c0034635 beq bt_evt_hid_connected ,classic_shutter_process_hid_connect 
-4618 c003c638 beq bt_evt_hid_disconnected ,classic_shutter_process_hid_disconnect 
-4619 c009463c beq bt_evt_hid_handshake ,classic_shutter_process_hid_handshake 
-461a c009c644 beq bt_evt_reconn_page_timeout ,classic_shutter_process_reconnect_page_timeout 
-461b c013c645 beq bt_evt_virtual_cable_unplug ,classic_shutter_process_virtual_cable_unplug 
-461c c0174648 beq bt_evt_remote_unsniff ,classic_shutter_process_remote_unsniff 
-461d c01ec649 beq bt_evt_store_nvram ,classic_shutter_process_store_reconnect_information 
-461e c00a4658 beq bt_evt_le_connected ,ble_shutter_process_baseband_connect 
-461f c00ac65c beq bt_evt_le_disconnected ,ble_shutter_process_baseband_disconnect 
-4620 c01fc65f beq bt_evt_le_reconnect_complete ,ble_shutter_process_reconnect_complete 
-4621 c0204665 beq bt_evt_le_parse_conn_papa_update_rsp ,ble_shutter_process_parse_connect_parameter_update_response 
-4622 c008466b beq bt_evt_button_long_pressed ,shutter_process_soft_swtich_button_long_press 
-4623 c016466c beq bt_evt_button_down ,shutter_process_soft_swtich_button_down 
-4624 c016c677 beq bt_evt_button_up ,shutter_process_soft_swtich_button_up 
-4625 20600000 rtn 
-
-classic_shutter_process_baseband_connect:
-4626 7046ad00 jam 0 ,mem_classic_shutter_hid_disconn_count 
-4627 7046ac00 jam 0 ,mem_classic_shutter_cable_unplug_conut 
-4628 20600000 rtn 
-
-classic_shutter_process_baseband_disconnect:
-4629 2040462b call classic_shutter_disconnect_clear_flag 
-462a 20204631 branch classic_shutter_process_reconnect_failed 
-
-classic_shutter_disconnect_clear_flag:
-462b 7041e200 jam app_handshake_null ,mem_app_handshake_flag 
-462c 70468000 jam 0 ,mem_hid_handshake_timer_count 
-462d 70420500 jam 0 ,mem_unsniff2sniff_timer_count 
-462e 7046ac00 jam 0 ,mem_classic_shutter_cable_unplug_conut 
-462f 7046ad00 jam 0 ,mem_classic_shutter_hid_disconn_count 
-4630 20207e38 branch queue_init 
-
-classic_shutter_process_reconnect_failed:
-4631 204033a9 call app_disconn_reason_clear 
-4632 202046c2 branch shutter_start_bluetooth_discovery 
-
-classic_shutter_process_setup_complete:
-4633 204046b6 call shutter_stop_bluetooth_discovery 
-4634 20203408 branch app_led_stop_blink 
-
-classic_shutter_process_hid_connect:
-4635 58000002 setarg hid_handshake_timeout 
-4636 6000c680 store 1 ,mem_hid_handshake_timer_count 
-4637 20600000 rtn 
-
-classic_shutter_process_hid_disconnect:
-4638 7046ac00 jam 0 ,mem_classic_shutter_cable_unplug_conut 
-4639 58000001 setarg flag_shutter_hid_disconn_timeout 
-463a 6000c6ad store 1 ,mem_classic_shutter_hid_disconn_count 
-463b 20600000 rtn 
-
-classic_shutter_process_hid_handshake:
-463c 6800c1e2 fetch 1 ,mem_app_handshake_flag 
-463d c1008000 rtneq app_handshake_done 
-463e 7041e201 jam app_handshake_done ,mem_app_handshake_flag 
-463f 20403416 call app_lpm_mult_enable 
-4640 20403414 call app_store_reconn_info 
-4641 204046b6 call shutter_stop_bluetooth_discovery 
-4642 20403408 call app_led_off 
-4643 2020340e branch app_bt_enter_sniff 
-
-classic_shutter_process_reconnect_page_timeout:
-4644 20204631 branch classic_shutter_process_reconnect_failed 
-
-classic_shutter_process_virtual_cable_unplug:
-4645 58000005 setarg flag_shutter_cable_unplug_timeout 
-4646 6000c6ac store 1 ,mem_classic_shutter_cable_unplug_conut 
-4647 20600000 rtn 
-
-classic_shutter_process_remote_unsniff:
-4648 202033cd branch app_start_auto_sniff 
-
-classic_shutter_process_store_reconnect_information:
-4649 da400000 arg nvram_eeprom_offset ,regb 
-464a 6800c217 fetch 1 ,mem_nv_data_number 
-464b 1fef8422 mul32 pdata ,34 ,temp 
-464c 68014215 fetch 2 ,mem_nv_data_ptr 
-464d 1fe22200 copy pdata ,rega 
-464e 20206606 branch iicd_write_eep_data 
-
-classic_shutter_load_reconn_info:
-464f da400000 arg nvram_eeprom_offset ,regb 
-4650 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
-4651 c4008000 rtnbit0 classic_shutter 
-4652 6800c217 fetch 1 ,mem_nv_data_number 
-4653 207a0000 rtn blank 
-4654 1fef8422 mul32 pdata ,34 ,temp 
-4655 68014215 fetch 2 ,mem_nv_data_ptr 
-4656 1fe22200 copy pdata ,rega 
-4657 202065df branch iicd_read_eep_data 
-
-ble_shutter_process_baseband_connect:
-4658 204046b6 call shutter_stop_bluetooth_discovery 
-4659 58000000 setarg 0 
-465a 600146b7 store 2 ,mem_ble_shutter_reconn_timer 
-465b 20203408 branch app_led_off 
-
-ble_shutter_process_baseband_disconnect:
-465c 20407e38 call queue_init 
-465d 7046b000 jam 0 ,mem_ble_shutter_enable_notify 
-465e 202046d9 branch shutter_start_reconnect 
-
-ble_shutter_process_reconnect_complete:
-465f 20407e38 call queue_init 
-4660 7046b001 jam 1 ,mem_ble_shutter_enable_notify 
-4661 680446c1 fetch 8 ,mem_ble_shutter_interval_min 
-4662 60044496 store 8 ,mem_le_interval_min 
-4663 20403416 call app_lpm_mult_enable 
-4664 20205abf branch le_l2cap_tx_update_req 
-
-ble_shutter_process_parse_connect_parameter_update_response:
-4665 68014509 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
-4666 c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
-4667 680446c9 fetch 8 ,mem_ble_shutter_interval_min_new 
-4668 207a0000 rtn blank 
-4669 60044496 store 8 ,mem_le_interval_min 
-466a 20205abf branch le_l2cap_tx_update_req 
-
-shutter_process_soft_swtich_button_long_press:
-466b 2020481f branch ui_soft_switch_botton_long_press 
-
-shutter_process_soft_swtich_button_down:
-466c 6800c6dd fetch 1 ,mem_shutter_hard_soft_switch_case 
-466d c1000000 rtneq hard_switch 
-466e 6800c6df fetch 1 ,mem_shutter_soft_switch_power_state 
-466f c1808000 rtnne ss_state_power_on 
-4670 20404672 call shutter_store_currenct_led_state 
-4671 20203406 branch app_led_on 
-
-shutter_store_currenct_led_state:
-4672 7048df01 jam 1 ,mem_shutter_soft_swtich_botton_down 
-4673 df20000b arg 11 ,loopcnt 
-4674 d8a048e0 arg mem_shutter_soft_swtich_led_struct_temp ,contw 
-4675 d8c048c9 arg mem_shutter_led_struct_app_led ,contr 
-4676 20207f01 branch memcpy 
-
-shutter_process_soft_swtich_button_up:
-4677 6800c6dd fetch 1 ,mem_shutter_hard_soft_switch_case 
-4678 c1000000 rtneq hard_switch 
-4679 6800c6df fetch 1 ,mem_shutter_soft_switch_power_state 
-467a c000c67c beq ss_state_power_on ,shutter_load_currenct_led_state 
-467b 2020481b branch ui_soft_switch_botton_up 
-
-shutter_load_currenct_led_state:
-467c 6800c8df fetch 1 ,mem_shutter_soft_swtich_botton_down 
-467d c1808000 rtnne 1 
-467e 7048df00 jam 0 ,mem_shutter_soft_swtich_botton_down 
-467f 68014682 fetch 2 ,mem_ui_state_map 
-4680 c2803408 bbit1 ui_state_bt_connected ,app_led_off 
-4681 c284b408 bbit1 ui_state_ble_connected ,app_led_off 
-4682 df20000b arg 11 ,loopcnt 
-4683 d8c048e0 arg mem_shutter_soft_swtich_led_struct_temp ,contr 
-4684 d8a048c9 arg mem_shutter_led_struct_app_led ,contw 
-4685 20207f01 branch memcpy 
-
-shutter_le_bb_event_timer:
-4686 2040468c call shutter_check_sleep_timer 
-4687 20404693 call shutter_check_power_off_timer 
-4688 2040469e call classic_shutter_check_unplug_timer 
-4689 204046a6 call classic_shutter_hid_handshake_timer 
-468a 204046a9 call classic_shutter_hid_disconn_timer 
-468b 202046ac branch ble_shutter_reconn_timer 
-
-shutter_check_sleep_timer:
-468c da6046db arg mem_shutter_sleep_timer ,regc 
-468d da40468f arg shutter_sleep_timeout ,regb 
-468e 20203374 branch timer_single_step_2b 
-
-shutter_sleep_timeout:
-468f 7046df02 jam ss_state_power_off ,mem_shutter_soft_switch_power_state 
-4690 20403408 call app_led_off 
-4691 204046f4 call shutter_disconnect_current_connection 
-4692 2020480b branch shutter_wait_power_off 
-
-shutter_check_power_off_timer:
-4693 da6048ec arg mem_shutter_power_off_timer ,regc 
-4694 da404696 arg shutter_check_power_off_timeout ,regb 
-4695 2020336d branch timer_single_step 
-
-shutter_check_power_off_timeout:
-4696 68014682 fetch 2 ,mem_ui_state_map 
-4697 c284c80b bbit1 ui_state_ble_connected ,shutter_wait_power_off 
-4698 c280480b bbit1 ui_state_bt_connected ,shutter_wait_power_off 
-4699 6800c8c9 fetch 1 ,mem_shutter_led_struct_app_led_type 
-469a c000c80b beq ui_led_state_blink_start ,shutter_wait_power_off 
-469b c002480b beq ui_led_state_blink_lighting ,shutter_wait_power_off 
-469c c002c80b beq ui_led_state_blink_darking ,shutter_wait_power_off 
-469d 2020340a branch app_enter_hibernate 
-
-classic_shutter_check_unplug_timer:
-469e da6046ac arg mem_classic_shutter_cable_unplug_conut ,regc 
-469f da4046a1 arg classic_shutter_unplug_timeout ,regb 
-46a0 2020336d branch timer_single_step 
-
-classic_shutter_unplug_timeout:
-46a1 6800827f fetch 1 ,mem_control_tasks 
-46a2 79207e00 set1 l2cap_disconnect_interrupt ,pdata 
-46a3 79207e07 set1 l2cap_disconnect_control ,pdata 
-46a4 6000827f store 1 ,mem_control_tasks 
-46a5 20600000 rtn 
-
-classic_shutter_hid_handshake_timer:
-46a6 da604680 arg mem_hid_handshake_timer_count ,regc 
-46a7 da40463c arg classic_shutter_process_hid_handshake ,regb 
-46a8 2020336d branch timer_single_step 
-
-classic_shutter_hid_disconn_timer:
-46a9 da6046ad arg mem_classic_shutter_hid_disconn_count ,regc 
-46aa da4033e9 arg app_bt_disconnect ,regb 
-46ab 2020336d branch timer_single_step 
-
-ble_shutter_reconn_timer:
-46ac 6800c6df fetch 1 ,mem_shutter_soft_switch_power_state 
-46ad c1808000 rtnne ss_state_power_on 
-46ae da6046b7 arg mem_ble_shutter_reconn_timer ,regc 
-46af da4046c2 arg shutter_start_bluetooth_discovery ,regb 
-46b0 20203374 branch timer_single_step_2b 
-
-shutter_process_idle:
-46b1 2040473a call shutter_send_data_to_master 
-46b2 20206978 branch keyscan_key_process 
-
-shutter_process_lpm_before:
-46b3 2020696c branch keyscan_process_lpm_before 
-
-shutter_le_before_hibernate:
-46b4 20406835 call gpio_set_before_lpm_common 
-46b5 202046b3 branch shutter_process_lpm_before 
-
-shutter_stop_bluetooth_discovery:
-46b6 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
-46b7 c280c6be bbit1 classic_shutter ,classic_shutter_stop_bluetooth_discovery 
-46b8 c28046ba bbit1 ble_shutter ,ble_shutter_stop_bluetooth_discovery 
-46b9 20600000 rtn 
-
-ble_shutter_stop_bluetooth_discovery:
-46ba 680146d7 fetch 2 ,mem_ble_shutter_connect_timeout 
-46bb 600146d9 store 2 ,mem_shutter_sleep_timeout 
-46bc 600146db store 2 ,mem_shutter_sleep_timer 
-46bd 202033f8 branch app_ble_stop_adv 
-
-classic_shutter_stop_bluetooth_discovery:
-46be 680146d3 fetch 2 ,mem_classic_shutter_connect_timeout 
-46bf 600146d9 store 2 ,mem_shutter_sleep_timeout 
-46c0 600146db store 2 ,mem_shutter_sleep_timer 
-46c1 202033f0 branch app_bt_stop_discovery 
-
-shutter_start_bluetooth_discovery:
-46c2 6800c6df fetch 1 ,mem_shutter_soft_switch_power_state 
-46c3 c1808000 rtnne ss_state_power_on 
-46c4 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
-46c5 c280c6c8 bbit1 classic_shutter ,classic_shutter_start_discovery 
-46c6 c28046cc bbit1 ble_shutter ,ble_shutter_start_discovery 
-46c7 20600000 rtn 
-
-classic_shutter_start_discovery:
-46c8 680146d1 fetch 2 ,mem_classic_shutter_discovery_timeout ,
-46c9 600146d9 store 2 ,mem_shutter_sleep_timeout 
-46ca 600146db store 2 ,mem_shutter_sleep_timer 
-46cb 202033eb branch app_bt_start_discovery_short 
-
-ble_shutter_start_discovery:
-46cc 68014682 fetch 2 ,mem_ui_state_map 
-46cd c3848000 rtnbit1 ui_state_ble_connected 
-46ce 680146d5 fetch 2 ,mem_ble_shutter_discovery_timeout 
-46cf 600146d9 store 2 ,mem_shutter_sleep_timeout 
-46d0 600146db store 2 ,mem_shutter_sleep_timer 
-46d1 680146b3 fetch 2 ,mem_ble_shutter_discovery_adv_interval 
-46d2 204046f0 call shutter_ble_adv_interval_set 
-46d3 20403404 call app_led_start_blink 
-46d4 680246bd fetch 4 ,mem_ble_shutter_discovery_blink_on_time 
-46d5 600248cc store 4 ,mem_shutter_led_struct_app_led_on_time 
-46d6 68014682 fetch 2 ,mem_ui_state_map 
-46d7 c3858000 rtnbit1 ui_state_ble_adv 
-46d8 202033fa branch app_ble_start_adv 
-
-shutter_start_reconnect:
-46d9 6800c6df fetch 1 ,mem_shutter_soft_switch_power_state 
-46da c1808000 rtnne ss_state_power_on 
-46db 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
-46dc c280c6df bbit1 classic_shutter ,classic_shutter_start_reconnect 
-46dd c28046e4 bbit1 ble_shutter ,ble_shutter_start_reconnect 
-46de 20600000 rtn 
-
-classic_shutter_start_reconnect:
-46df 204046f8 call app_check_reconn_target 
-46e0 203a46c2 branch shutter_start_bluetooth_discovery ,blank 
-46e1 20403406 call app_led_on 
-46e2 204033f0 call app_bt_stop_discovery 
-46e3 202033e1 branch app_bt_start_reconnect 
-
-ble_shutter_start_reconnect:
-46e4 680146b7 fetch 2 ,mem_ble_shutter_reconn_timer 
-46e5 680946b5 fetcht 2 ,mem_ble_shutter_reconn_timeout 
-46e6 600946b7 storet 2 ,mem_ble_shutter_reconn_timer 
-46e7 247a0000 nrtn blank 
-46e8 680146b1 fetch 2 ,mem_ble_shutter_reconn_dav_interval 
-46e9 204046f0 call shutter_ble_adv_interval_set 
-46ea 20403404 call app_led_start_blink 
-46eb 680246b9 fetch 4 ,mem_ble_shutter_reconn_blink_on_time 
-46ec 600248cc store 4 ,mem_shutter_led_struct_app_led_on_time 
-46ed 68014682 fetch 2 ,mem_ui_state_map 
-46ee c3858000 rtnbit1 ui_state_ble_adv 
-46ef 202033fa branch app_ble_start_adv 
-
-shutter_ble_adv_interval_set:
-46f0 60014154 store 2 ,mem_lpm_interval 
-46f1 1fe0fffc increase -4 ,pdata 
-46f2 60014482 store 2 ,mem_le_adv_interval 
-46f3 20600000 rtn 
-
-shutter_disconnect_current_connection:
-46f4 68014682 fetch 2 ,mem_ui_state_map 
-46f5 c284b402 bbit1 ui_state_ble_connected ,app_ble_disconnect 
-46f6 c28033e9 bbit1 ui_state_bt_connected ,app_bt_disconnect 
-46f7 202046b6 branch shutter_stop_bluetooth_discovery 
-
-app_check_reconn_target:
-46f8 6800c217 fetch 1 ,mem_nv_data_number 
-46f9 1fe27200 copy pdata ,loopcnt 
-46fa 68014215 fetch 2 ,mem_nv_data_ptr 
-46fb 1fe22200 copy pdata ,rega 
-
-app_check_reconn_target_loop:
-46fc ea210000 ifetch 2 ,rega 
-46fd c0004701 beq 0 ,found_reconn_device 
-46fe 1a20a222 increase nv_data_len ,rega 
-46ff c20046fc loop app_check_reconn_target_loop 
-4700 20207ff1 branch enable_blank 
-
-found_reconn_device:
-4701 e8c30000 ifetch 6 ,contr 
-4702 600341d0 store 6 ,mem_hci_plap 
-4703 18c08c0a increase 10 ,contr 
-4704 d8a041be arg mem_link_key ,contw 
-4705 20407ebf call memcpy16 
-4706 204067d7 call check_link_key_load 
-4707 20207fef branch disable_blank 
-
-shutter_check_data_enable:
-4708 20407fe9 call disable_user 
-4709 68014682 fetch 2 ,mem_ui_state_map 
-470a c280470d bbit1 ui_state_bt_connected ,shutter_check_bt_data_enable 
-470b c284c710 bbit1 ui_state_ble_connected ,shutter_check_ble_data_enable 
-470c 20600000 rtn 
-
-shutter_check_bt_data_enable:
-470d 6800c253 fetch 1 ,mem_hid_interrupt_state 
-470e c19f8000 rtnne 0x3f 
-470f 20207fe7 branch enable_user 
-
-shutter_check_ble_data_enable:
-4710 6800c6b0 fetch 1 ,mem_ble_shutter_enable_notify 
-4711 207a0000 rtn blank 
-4712 20207fe7 branch enable_user 
-
-shutter_check_bluetooth_conn:
-4713 20407fe9 call disable_user 
-4714 68014682 fetch 2 ,mem_ui_state_map 
-4715 c3800000 rtnbit1 ui_state_bt_connected 
-4716 c3848000 rtnbit1 ui_state_ble_connected 
-4717 20207fe7 branch enable_user 
-
-shutter_change_bluetooth_status_bt_disconn:
-4718 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
-4719 c280c71c bbit1 classic_shutter ,classic_shutter_change_bluetooth_status_bt_disconn 
-471a c280471f bbit1 ble_shutter ,ble_shutter_change_bluetooth_status_bt_disconn 
-471b 20600000 rtn 
-
-classic_shutter_change_bluetooth_status_bt_disconn:
-471c 6800c093 fetch 1 ,mem_scan_mode 
-471d c1818000 rtnne 0x03 
-471e 202046d9 branch shutter_start_reconnect 
-
-ble_shutter_change_bluetooth_status_bt_disconn:
-471f 202046d9 branch shutter_start_reconnect 
-
-shutter_check_send_data:
-4720 78567c00 disable user2 
-4721 680146d9 fetch 2 ,mem_shutter_sleep_timeout 
-4722 600146db store 2 ,mem_shutter_sleep_timer 
-4723 20404713 call shutter_check_bluetooth_conn 
-4724 20344718 branch shutter_change_bluetooth_status_bt_disconn ,user 
-4725 20404708 call shutter_check_data_enable 
-4726 24740000 nrtn user 
-4727 78367c00 enable user2 
-4728 20600000 rtn 
-
-shutter_key_change:
-4729 20404720 call shutter_check_send_data 
-472a 24760000 nrtn user2 
-472b 1a227e00 deposit rega 
-472c 203a4730 branch shutter_key_release ,blank 
-
-shutter_key_press:
-472d 20403406 call app_led_on 
-472e da6046f1 arg mem_key0_press ,regc 
-472f 20204732 branch push_queue_press_or_release 
-
-shutter_key_release:
-4730 20403408 call app_led_off 
-4731 da604719 arg mem_key0_release ,regc 
-
-push_queue_press_or_release:
-4732 dfe00005 arg max_queue_num ,pdata 
-4733 98effe00 imul32 queue ,pdata 
-4734 9a60a600 iadd regc ,regc 
-
-push_buffer_in_queue:
-4735 ea608000 ifetch 1 ,regc 
-4736 207a0000 rtn blank 
-4737 20404762 call queue_push_one_byte 
-4738 1a60a601 increase 1 ,regc 
-4739 20204735 branch push_buffer_in_queue 
-
-shutter_send_data_to_master:
-473a 68014682 fetch 2 ,mem_ui_state_map 
-473b c284c73e bbit1 ui_state_ble_connected ,pop_queue_to_ble_data 
-473c c280474e bbit1 ui_state_bt_connected ,pop_queue_to_classic_data 
-473d 20600000 rtn 
-
-pop_queue_to_ble_data:
-473e 20405892 call le_fifo_check_nearly_full 
-473f 247a0000 nrtn blank 
-4740 20404765 call queue_pop_one_byte 
-4741 24740000 nrtn user 
-4742 1fe0ffff pincrease -1 
-4743 1feffe05 mul32 pdata ,shutter_ble_data_buffer ,pdata 
-4744 d8404741 arg mem_ble_data_buffer1 ,temp 
-4745 98408c00 iadd temp ,contr 
-
-le_send_notify_from_list:
-4746 e8c08000 ifetch 1 ,contr 
-4747 1fe22200 copy pdata ,rega 
-4748 e8c90000 ifetcht 2 ,contr 
-4749 20407ea5 call store_contr 
-474a 20405a64 call le_att_malloc_tx_notify 
-474b 1a227200 copy rega ,loopcnt 
-474c 20407e9f call get_contr 
-474d 20207f01 branch memcpy 
-
-pop_queue_to_classic_data:
-474e 20405271 call l2cap_malloc_is_fifo_nearly_full 
-474f 247a0000 nrtn blank 
-4750 20404765 call queue_pop_one_byte 
-4751 24740000 nrtn user 
-4752 1fe0ffff pincrease -1 
-4753 1feffe05 mul32 pdata ,shutter_classic_data_buffer ,pdata 
-4754 d84047a0 arg mem_classic_data_buffer1 ,temp 
-4755 98408c00 iadd temp ,contr 
-4756 e8c28000 ifetch 5 ,contr 
-4757 6002c79b store 5 ,mem_classic_data_buffer 
-
-classic_send_hid_data:
-4758 6800c79b fetch 1 ,mem_classic_data_buffer 
-4759 1fe22200 copy pdata ,rega 
-475a 20404d63 call hid_malloc_tx_buff 
-475b 6801424e fetch 2 ,mem_hid_int_remote_cid 
-475c e0a10000 istore 2 ,contw 
-475d 580000a1 setarg 0xa1 
-475e e0a08000 istore 1 ,contw 
-475f 6802479c fetch 4 ,mem_classic_data_buffer + 1 
-4760 e0a48000 istore 9 ,contw 
-4761 20600000 rtn 
-
-queue_push_one_byte:
-4762 60008a9a store 1 ,mem_pdatatemp 
-4763 da200a9a arg mem_pdatatemp ,rega 
-4764 20207e3d branch queue_push 
-
-queue_pop_one_byte:
-4765 da200a9a arg mem_pdatatemp ,rega 
-4766 20407e54 call queue_pop 
-4767 24740000 nrtn user 
-4768 68008a9a fetch 1 ,mem_pdatatemp 
-4769 20600000 rtn 
-
-ble_shutter_receive_data:
-476a 68010478 fetch 2 ,mem_le_att_handle 
-476b c00c465f beq gatt_keyboard_write_handle ,ble_shutter_process_reconnect_complete 
-476c 20600000 rtn 
-
-shutter_init_param:
-476d 58000002 setarg 0x02 
-476e 6000c8eb store 1 ,mem_shutter_power_off_timeout 
-476f 58200008 setarg 0x00200008 
-4770 600246c1 store 4 ,mem_ble_shutter_interval_min 
-4771 592c0005 setarg 0x012c0005 
-4772 e0a20000 istore 4 ,contw 
-4773 7044a617 jam 0x17 ,mem_le_local_mtu 
-4774 5800001b setarg 0x1b 
-4775 600144fa store 2 ,mem_le_pairing_handle 
-4776 20405810 call le_set_config_fixed_ltk 
-4777 2040582c call le_set_fixed_ltk 
-4778 20405839 call le_set_justwork 
-4779 20205818 branch le_set_config_read_authentication 
-
-shutter_load_buffer_config_form_datarom:
-477a df200028 arg ble_key_value_list_size ,loopcnt 
-477b d8a04741 arg mem_ble_data_buffer1 ,contw 
-477c d8c0949f arg ble_shutter_key_value_list ,contr 
-477d 20407ef4 call memcpy_fast 
-477e df200028 arg bt_key_value_list_size ,loopcnt 
-477f d8a047a0 arg mem_classic_data_buffer1 ,contw 
-4780 d8c094c7 arg classic_shutter_key_value_list ,contr 
-4781 20207ef4 branch memcpy_fast 
-
-shutter_load_ble_gatt_form_datarom:
-4782 df20017e arg ble_gatt_list_size ,loopcnt 
-4783 d8c0913a arg ble_shutter_gatt_list ,contr 
-4784 20207ef4 branch memcpy_fast 
-
-shutter_load_bt_sdp_form_datarom:
-4785 df2001e7 arg bt_sdp_list_size ,loopcnt 
-4786 d8c092b8 arg classic_shutter_sdp_list ,contr 
-4787 20207ef4 branch memcpy_fast 
-
-shutter_init_bluetooth_config:
-4788 204047ae call shutter_check_load_config_flag 
-4789 24740000 nrtn user 
-478a 6800c69f fetch 1 ,mem_shutter_config_select_gpio1 
-478b 20404790 call shutter_init_bluetooth_config_gpio_input 
-478c 6800c6a0 fetch 1 ,mem_shutter_config_select_gpio2 
-478d 20404790 call shutter_init_bluetooth_config_gpio_input 
-478e 6800c6a1 fetch 1 ,mem_shutter_config_select_gpio3 
-478f 20204790 branch shutter_init_bluetooth_config_gpio_input 
-
-shutter_init_bluetooth_config_gpio_input:
-4790 207a0000 rtn blank 
-4791 1fe18480 or pdata ,0x80 ,temp 
-4792 202067f9 branch gpio_config_input_nowake 
-
-shutter_load_bluetooth_config:
-4793 204047ae call shutter_check_load_config_flag 
-4794 24740000 nrtn user 
-4795 20404797 call shutter_load_bluetooth_config_label 
-4796 202047b4 branch shutter_load_bluetooth_config_by_otp 
-
-shutter_load_bluetooth_config_label:
-4797 da200000 arg 0 ,rega 
-4798 6800c69f fetch 1 ,mem_shutter_config_select_gpio1 
-4799 204047a9 call shutter_load_bluetooth_config_read_gpio_input 
-479a 7d3a2200 nsetflag blank ,0 ,rega 
-479b 6800c6a0 fetch 1 ,mem_shutter_config_select_gpio2 
-479c 204047a9 call shutter_load_bluetooth_config_read_gpio_input 
-479d 7d3a2201 nsetflag blank ,1 ,rega 
-479e 6800c6a1 fetch 1 ,mem_shutter_config_select_gpio3 
-479f 204047a9 call shutter_load_bluetooth_config_read_gpio_input 
-47a0 7d3a2202 nsetflag blank ,2 ,rega 
-47a1 1a227e00 copy rega ,pdata 
-47a2 6000c6a9 store 1 ,mem_shutter_config_label 
-47a3 6800c69e fetch 1 ,mem_shutter_config_size 
-47a4 9a2ffe00 imul32 rega ,pdata 
-47a5 6809469c fetcht 2 ,mem_shutter_config_otp_base_address 
-47a6 9840fe00 iadd temp ,pdata 
-47a7 600146aa store 2 ,mem_shutter_config_otp_addr 
-47a8 20600000 rtn 
-
-shutter_load_bluetooth_config_read_gpio_input:
-47a9 207a0000 rtn blank 
-47aa 1fe18480 or pdata ,0x80 ,temp 
-47ab 2040681d call gpio_get_bit 
-47ac 2420fff1 nbranch enable_blank ,true 
-47ad 20207fef branch disable_blank 
-
-shutter_check_load_config_flag:
-47ae 20407fe9 call disable_user 
-47af 6800c6a8 fetch 1 ,mem_shutter_config_user_size 
-47b0 247a0000 nrtn blank 
-47b1 6800c69b fetch 1 ,mem_shutter_config_enable 
-47b2 207a0000 rtn blank 
-47b3 20207fe7 branch enable_user 
-
-shutter_load_bluetooth_config_by_otp:
-47b4 2040666a call otp_enable_chgpump 
-47b5 680146aa fetch 2 ,mem_shutter_config_otp_addr 
-47b6 da200ac2 arg mem_shutter_config_data_temp ,rega 
-47b7 6808c69e fetcht 1 ,mem_shutter_config_size 
-47b8 204066b3 call otpd_read_data 
-47b9 2040666d call otp_disable_chgpump 
-
-shutter_load_bluetooth_config_store_name:
-47ba 68008ac2 fetch 1 ,mem_shutter_config_data_temp 
-47bb 1fe27200 copy pdata ,loopcnt 
-47bc 6000c3af store 1 ,mem_le_name_len 
-47bd 20407ef4 call memcpy_fast 
-47be 68008ac2 fetch 1 ,mem_shutter_config_data_temp 
-47bf 1fe27200 copy pdata ,loopcnt 
-47c0 6000c515 store 1 ,mem_local_name_length 
-47c1 20407ef4 call memcpy_fast 
-47c2 e8c08000 ifetch 1 ,contr 
-47c3 6000c6e6 store 1 ,mem_shutter_key_num 
-47c4 e8c08000 ifetch 1 ,contr 
-47c5 6000c6dd store 1 ,mem_shutter_hard_soft_switch_case 
-47c6 20600000 rtn 
-
-shutter_load_bluetooth_config_by_eeprom:
-47c7 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
-47c8 c4008000 rtnbit0 classic_shutter 
-47c9 d8400003 arg 3 ,temp 
-47ca 680146a4 fetch 2 ,mem_shutter_config_eeprom_offset_addr 
-47cb 1fe22400 copy pdata ,regb 
-47cc da2046a6 arg mem_shutter_config_eeprom_start_flag ,rega 
-47cd 204065df call iicd_read_eep_data 
-47ce 680946a6 fetcht 2 ,mem_shutter_config_eeprom_start_flag 
-47cf 58001b3a setarg shutter_eeprom_config_crc 
-47d0 98467c00 isub temp ,null 
-47d1 24628000 nrtn zero 
-47d2 6800c6a8 fetch 1 ,mem_shutter_config_user_size 
-47d3 207a0000 rtn blank 
-47d4 1fe20400 copy pdata ,temp 
-47d5 680146a4 fetch 2 ,mem_shutter_config_eeprom_offset_addr 
-47d6 1fe0a403 add pdata ,3 ,regb 
-47d7 da200ac2 arg mem_shutter_config_data_temp ,rega 
-47d8 204065df call iicd_read_eep_data 
-47d9 202047e8 branch shutter_store_config 
-
-shutter_load_bluetooth_config_by_user_config:
-47da 680146a2 fetch 2 ,mem_shutter_config_user_otp_address 
-47db 207a0000 rtn blank 
-47dc 2040666a call otp_enable_chgpump 
-47dd d8400001 arg 1 ,temp 
-47de da2046a8 arg mem_shutter_config_user_size ,rega 
-47df 204066b3 call otpd_read_data 
-47e0 6800c6a8 fetch 1 ,mem_shutter_config_user_size 
-47e1 207a0000 rtn blank 
-47e2 680146a2 fetch 2 ,mem_shutter_config_user_otp_address 
-47e3 1fe0fe01 pincrease 1 
-47e4 da200ac2 arg mem_shutter_config_data_temp ,rega 
-47e5 6808c6a8 fetcht 1 ,mem_shutter_config_user_size 
-47e6 204066b3 call otpd_read_data 
-47e7 2040666d call otp_disable_chgpump 
-
-shutter_store_config:
-47e8 204047ba call shutter_load_bluetooth_config_store_name 
-
-shutter_load_bluetooth_config_custom:
-47e9 e8c10000 ifetch 2 ,contr 
-47ea 207a0000 rtn blank 
-47eb 1fe20a00 copy pdata ,contw 
-47ec e8c88000 ifetcht 1 ,contr 
-47ed 18427200 copy temp ,loopcnt 
-47ee 20407f01 call memcpy 
-47ef 202047e9 branch shutter_load_bluetooth_config_custom 
-
-shutter_random_mac_addr:
-47f0 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
-47f1 c4008000 rtnbit0 classic_shutter 
-47f2 680146ae fetch 2 ,mem_classic_shutter_random_mac_offset_addr 
-47f3 1fe22400 copy pdata ,regb 
-47f4 d8400004 arg 4 ,temp 
-47f5 da200ac2 arg mem_shutter_random_mac_data_temp ,rega 
-47f6 204065df call iicd_read_eep_data 
-47f7 68008ac2 fetch 1 ,mem_shutter_random_mac_data_temp 
-47f8 c080c7f9 bne 1 ,shutter_write_random_mac_addr_to_eeprom 
-
-shutter_write_random_mac_addr_to_eeprom:
-47f9 58000001 setarg 1 
-47fa 60008ac2 store 1 ,mem_shutter_random_mac_data_temp 
-47fb 18007203 force 3 ,loopcnt 
-47fc 2040630d call generate_random_loop 
-47fd 680146ae fetch 2 ,mem_classic_shutter_random_mac_offset_addr 
-47fe 1fe22400 copy pdata ,regb 
-47ff d8400004 arg 4 ,temp 
-4800 da200ac2 arg mem_shutter_random_mac_data_temp ,rega 
-4801 20406606 call iicd_write_eep_data 
-
-shutter_write_random_mac_addr:
-4802 68018ac3 fetch 3 ,mem_shutter_random_mac_data_temp + 1 
-4803 6001c0a0 store 3 ,mem_lap 
-4804 6001c4a0 store 3 ,mem_le_lap 
-4805 20600000 rtn 
-
-shutter_soft_swtich_power_on:
-4806 202046d9 branch shutter_start_reconnect 
-
-shutter_soft_swtich_power_off:
-4807 da200000 arg 0 ,rega 
-4808 da6048d4 arg mem_shutter_power_off_led_style ,regc 
-4809 20407d24 call ui_led_set_style_global 
-480a 204046f4 call shutter_disconnect_current_connection 
-
-shutter_wait_power_off:
-480b 6800c8eb fetch 1 ,mem_shutter_power_off_timeout 
-480c 6000c8ec store 1 ,mem_shutter_power_off_timer 
-480d 20600000 rtn 
-
-ui_soft_swtich_init:
-480e 58000000 setarg ss_state_power_up 
-480f 20404816 call ui_soft_swtich_init_power_on_time 
-4810 70467901 jam ui_button_state_up ,mem_ui_button_last_state 
-4811 20407cd3 call ui_button_init 
-4812 20407cdd call ui_button_polling 
-4813 68014682 fetch 2 ,mem_ui_state_map 
-4814 c3860000 rtnbit1 ui_state_btn_down 
-4815 2020340a branch app_enter_hibernate 
-
-ui_soft_swtich_init_power_on_time:
-4816 6809423f fetcht 2 ,mem_power_param_ptr 
-4817 e0408000 istore 1 ,temp 
-4818 e8a08000 ifetch 1 ,contw 
-4819 6000c685 store 1 ,mem_ui_button_timeout 
-481a 20600000 rtn 
-
-ui_soft_switch_botton_up:
-481b 6801423f fetch 2 ,mem_power_param_ptr 
-481c efe08000 ifetch 1 ,pdata 
-481d c1800000 rtnne ss_state_power_up 
-481e 2020340a branch app_enter_hibernate 
-
-ui_soft_switch_botton_long_press:
-481f 6809423f fetcht 2 ,mem_power_param_ptr 
-4820 e8408000 ifetch 1 ,temp 
-4821 c000c82a beq ss_state_power_on ,ui_soft_switch_power_off 
-
-ui_soft_switch_power_on:
-4822 58000001 setarg ss_state_power_on 
-4823 6809423f fetcht 2 ,mem_power_param_ptr 
-4824 e0408000 istore 1 ,temp 
-4825 18408c02 add temp ,ss_power_off_time ,contr 
-4826 e8c08000 ifetch 1 ,contr 
-4827 e0a08000 istore 1 ,mem_ui_button_timeout 
-4828 e8c10000 ifetch 2 ,contr 
-4829 20207f9c branch callback_func 
-
-ui_soft_switch_power_off:
-482a 58000002 setarg ss_state_power_off 
-482b 20404816 call ui_soft_swtich_init_power_on_time 
-482c 18408c05 add temp ,ss_power_off_cb ,contr 
-482d e8c10000 ifetch 2 ,contr 
-482e 203a340a branch app_enter_hibernate ,blank 
-482f 20207f9c branch callback_func 
-
-shutter_byteswap:
-4830 60030101 store 6 ,mem_tmp_buffer 
-4831 68008101 fetch 1 ,mem_tmp_buffer 
-4832 6000810c store 1 ,mem_tmp_buffer + 11 
-4833 e8c08000 ifetch 1 ,contr 
-4834 6000810b store 1 ,mem_tmp_buffer + 10 
-4835 e8c08000 ifetch 1 ,contr 
-4836 6000810a store 1 ,mem_tmp_buffer + 9 
-4837 e8c08000 ifetch 1 ,contr 
-4838 60008109 store 1 ,mem_tmp_buffer + 8 
-4839 e8c08000 ifetch 1 ,contr 
-483a 60008108 store 1 ,mem_tmp_buffer + 7 
-483b e8c08000 ifetch 1 ,contr 
-483c 60008107 store 1 ,mem_tmp_buffer + 6 
-483d 68030107 fetch 6 ,mem_tmp_buffer + 6 
-483e 20600000 rtn 
-
-shutter_random_addr_by_otp:
-483f 204068a2 call load_adc_init 
-4840 6800c223 fetch 1 ,mem_1v_adc_io_data 
-4841 6000c4a0 store 1 ,mem_le_lap 
-4842 6800c225 fetch 1 ,mem_5v_adc_hvin_data 
-4843 e0a08000 istore 1 ,contw 
-4844 6800c227 fetch 1 ,mem_3v_adc_vinlpm_data 
-4845 e0a08000 istore 1 ,contw 
-4846 6801c4a0 fetch 3 ,mem_le_lap 
-4847 6001c0a0 store 3 ,mem_lap 
-4848 20600000 rtn 
-
-sim_iic_read_eep_data:
-4849 68014203 fetch 2 ,mem_eeprom_base 
-484a 9a40fe00 iadd regb ,pdata 
-484b 1ff0fe00 byteswap pdata ,pdata 
-484c 600101f7 store 2 ,mem_addr_mi 
-484d 18422400 copy temp ,regb 
-484e 2040489b call sim_iic_start 
-484f 580000a0 setarg 0xa0 
-4850 2040488d call sim_iic_send_byte 
-4851 680081f7 fetch 1 ,mem_addr_mi 
-4852 2040488d call sim_iic_send_byte 
-4853 c5144856 bmark1 mark_eeprom_size ,sim_iic_read_eep_data_2k 
-4854 680081f8 fetch 1 ,mem_addr_mi + 1 
-4855 2040488d call sim_iic_send_byte 
-
-sim_iic_read_eep_data_2k:
-4856 204048a1 call sim_iic_stop 
-4857 2040489b call sim_iic_start 
-4858 580000a1 setarg 0xa1 
-4859 2040488d call sim_iic_send_byte 
-
-sim_iic_read_eep_data_loop:
-485a 2040487f call sim_iic_read_byte 
-485b e2208000 istore 1 ,rega 
-485c 1a20a201 increase 1 ,rega 
-485d 1a40a5ff increase -1 ,regb 
-485e 2422c85a nbranch sim_iic_read_eep_data_loop ,zero 
-485f 202048a1 branch sim_iic_stop 
-
-sim_iic_write_eep_data:
-4860 1a50fe00 byteswap regb ,pdata 
-4861 600101f7 store 2 ,mem_addr_mi 
-4862 18422400 copy temp ,regb 
-4863 2040489b call sim_iic_start 
-4864 580000a0 setarg 0xa0 
-4865 2040488d call sim_iic_send_byte 
-4866 680081f7 fetch 1 ,mem_addr_mi 
-4867 2040488d call sim_iic_send_byte 
-4868 c514486b bmark1 mark_eeprom_size ,sim_iic_write_eep_data_loop 
-4869 680081f8 fetch 1 ,mem_addr_mi + 1 
-486a 2040488d call sim_iic_send_byte 
-
-sim_iic_write_eep_data_loop:
-486b ea208000 ifetch 1 ,rega 
-486c 2040488d call sim_iic_send_byte 
-486d 1a20a201 increase 1 ,rega 
-486e 1a40a5ff increase -1 ,regb 
-486f 2422c86b nbranch sim_iic_write_eep_data_loop ,zero 
-4870 202048a1 branch sim_iic_stop 
-
-sim_iic_wait_ack:
-4871 df20000a arg 10 ,loopcnt 
-4872 204048be call sim_iic_release_sda 
-4873 204048a6 call sim_iic_scl_output_high 
-4874 204048d2 call sim_iic_delay 
-
-sim_iic_wait_ack_loop:
-4875 204048c7 call sim_iic_read_sda_level 
-4876 203a48a9 branch sim_iic_scl_output_low ,blank 
-4877 c2004875 loop sim_iic_wait_ack_loop 
-4878 202048a9 branch sim_iic_scl_output_low 
-
-sim_iic_ack_slave:
-4879 204048a9 call sim_iic_scl_output_low 
-487a 204048af call sim_iic_sda_output_low 
-487b 204048d2 call sim_iic_delay 
-487c 204048a6 call sim_iic_scl_output_high 
-487d 204048d2 call sim_iic_delay 
-487e 202048a9 branch sim_iic_scl_output_low 
-
-sim_iic_read_byte:
-487f df200008 arg 8 ,loopcnt 
-4880 da600000 arg 0 ,regc 
-4881 204048be call sim_iic_release_sda 
-
-sim_iic_read_byte_loop:
-4882 204048a6 call sim_iic_scl_output_high 
-4883 204048d2 call sim_iic_delay 
-4884 1a63a600 lshift regc ,regc 
-4885 204048c7 call sim_iic_read_sda_level 
-4886 9a60a600 iadd regc ,regc 
-4887 204048d2 call sim_iic_delay 
-4888 204048a9 call sim_iic_scl_output_low 
-4889 c2004882 loop sim_iic_read_byte_loop 
-488a 20404879 call sim_iic_ack_slave 
-488b 1a627e00 copy regc ,pdata 
-488c 20600000 rtn 
-
-sim_iic_send_byte:
-488d df200008 arg 8 ,loopcnt 
-488e 1fe22600 copy pdata ,regc 
-488f 204048a9 call sim_iic_scl_output_low 
-
-sim_iic_send_byte_loop:
-4890 2a6ffe07 isolate1 7 ,regc 
-4891 2040c8ac call sim_iic_sda_output_high ,true 
-4892 2440c8af ncall sim_iic_sda_output_low ,true 
-4893 1a63a600 lshift regc ,regc 
-4894 204048d2 call sim_iic_delay 
-4895 204048a6 call sim_iic_scl_output_high 
-4896 204048d2 call sim_iic_delay 
-4897 204048a9 call sim_iic_scl_output_low 
-4898 204048d2 call sim_iic_delay 
-4899 c2004890 loop sim_iic_send_byte_loop 
-489a 20204871 branch sim_iic_wait_ack 
-
-sim_iic_start:
-489b 204048ac call sim_iic_sda_output_high 
-489c 204048a6 call sim_iic_scl_output_high 
-489d 204048d2 call sim_iic_delay 
-489e 204048af call sim_iic_sda_output_low 
-489f 204048d2 call sim_iic_delay 
-48a0 202048a9 branch sim_iic_scl_output_low 
-
-sim_iic_stop:
-48a1 204048af call sim_iic_sda_output_low 
-48a2 204048a6 call sim_iic_scl_output_high 
-48a3 204048d2 call sim_iic_delay 
-48a4 204048ac call sim_iic_sda_output_high 
-48a5 202048d2 branch sim_iic_delay 
-
-sim_iic_scl_output_high:
-48a6 78347c00 enable user 
-48a7 6800cffe fetch 1 ,sim_iic_scl_gpio_num 
-48a8 202048b2 branch sim_iic_config_gpio 
-
-sim_iic_scl_output_low:
-48a9 78547c00 disable user 
-48aa 6800cffe fetch 1 ,sim_iic_scl_gpio_num 
-48ab 202048b2 branch sim_iic_config_gpio 
-
-sim_iic_sda_output_high:
-48ac 78347c00 enable user 
-48ad 6800cfff fetch 1 ,sim_iic_sda_gpio_num 
-48ae 202048b2 branch sim_iic_config_gpio 
-
-sim_iic_sda_output_low:
-48af 78547c00 disable user 
-48b0 6800cfff fetch 1 ,sim_iic_sda_gpio_num 
-48b1 202048b2 branch sim_iic_config_gpio 
-
-sim_iic_config_gpio:
-48b2 1fe10e07 and pdata ,0x07 ,queue 
-48b3 1fe97e00 rshift3 pdata ,pdata 
-48b4 d8408070 arg core_gpio_oe0 ,temp 
-48b5 98408400 iadd temp ,temp 
-48b6 e8408000 ifetch 1 ,temp 
-48b7 f9207e00 qset1 pdata 
-48b8 e0408000 istore 1 ,temp 
-48b9 18408404 increase 4 ,temp 
-48ba e8408000 ifetch 1 ,temp 
-48bb f9347e00 qsetflag user ,pdata 
-48bc e0408000 istore 1 ,temp 
-48bd 20600000 rtn 
-
-sim_iic_release_sda:
-48be 6800cfff fetch 1 ,sim_iic_sda_gpio_num 
-48bf 1fe10e07 and pdata ,0x07 ,queue 
-48c0 1fe97e00 rshift3 pdata ,pdata 
-48c1 d8408070 arg core_gpio_oe0 ,temp 
-48c2 98408400 iadd temp ,temp 
-48c3 e8408000 ifetch 1 ,temp 
-48c4 f93ffe00 qset0 pdata 
-48c5 e0408000 istore 1 ,temp 
-48c6 20600000 rtn 
-
-sim_iic_read_sda_level:
-48c7 20000004 nop 4 
-48c8 6800cfff fetch 1 ,sim_iic_sda_gpio_num 
-48c9 1fe10e07 and pdata ,0x07 ,queue 
-48ca 1fe97e00 rshift3 pdata ,pdata 
-48cb d840811c arg core_gpio_in ,temp 
-48cc 98408400 iadd temp ,temp 
-48cd 58000000 setarg 0 
-48ce e8488000 ifetcht 1 ,temp 
-48cf a84fffff qisolate1 temp 
-48d0 7920fe00 setflag true ,0 ,pdata 
-48d1 20600000 rtn 
-
-sim_iic_delay:
-48d2 20600000 rtn 
-
-usb_isr:
-48d3 44fb401e bpatch patch1e_6 ,mem_patch1e 
-48d4 68108a26 hfetch 1 ,core_usb_status 
-48d5 2feffe07 isolate1 7 ,pdata 
-48d6 2040c8ea call usb_init ,true 
-48d7 2040492e call usb_nak_state_judge 
-48d8 68108a26 hfetch 1 ,core_usb_status 
-48d9 60008b22 store 1 ,mem_usb_status 
-48da 68108a27 hfetch 1 ,core_usb_fifo_empty 
-48db 60008b23 store 1 ,mem_usb_fifo_empty 
-48dc 60108a27 hstore 1 ,core_usb_fifo_empty 
-48dd 1fe47e00 pinvert 
-48de 68088d37 fetcht 1 ,mem_usb_tx_wait 
-48df 98417e00 iand temp ,pdata 
-48e0 60008d37 store 1 ,mem_usb_tx_wait 
-48e1 708a26e0 jam 0xe0 ,core_usb_status 
-48e2 68008b23 fetch 1 ,mem_usb_fifo_empty 
-48e3 2fe00201 compare 0x1 ,pdata ,0x1 
-48e4 2040c941 call usb0_fifo_empty ,true 
-48e5 68008b22 fetch 1 ,mem_usb_status 
-48e6 2fe00201 compare 0x1 ,pdata ,0x1 
-48e7 2040c94a call usb_status1 ,true 
-48e8 20404b61 call usb_tx 
-48e9 20204903 branch usb_nak_state 
-
-usb_init:
-48ea 44fbc01e bpatch patch1e_7 ,mem_patch1e 
-48eb 20404919 call usb_init_param 
-48ec 708a0000 jam 0x00 ,core_usb_config 
-48ed 20002710 nop 10000 
-48ee 708a10c0 jam 0xc0 ,core_usb_trig 
-48ef 68110050 hfetch 2 ,core_clkoff 
-48f0 793ffe0a set0 clock_off_usb ,pdata 
-48f1 60110050 hstore 2 ,core_clkoff 
-48f2 708a003c jam 0x3c ,core_usb_config 
-48f3 708a26ff jam 0xff ,core_usb_status 
-48f4 708a27ff jam 0xff ,core_usb_fifo_empty 
-48f5 708a0400 jam 0 ,core_usb_addr 
-48f6 700c6b02 jam dev_default ,mem_usb0_state 
-48f7 58000d9d setarg mem_usb_clear_mem_end 
-48f8 d8a00c6e arg mem_usb_clear_mem_start ,contw 
-48f9 98a67200 isub contw ,loopcnt 
-48fa 20207ed4 branch clear_mem 
-
-usb_offline_check_init:
-48fb 68088c6c fetcht 1 ,mem_usb_offline_check_gpio 
-48fc 202067fb branch gpio_config_input 
-
-usb_offline_state:
-48fd 68008d45 fetch 1 ,mem_usb_device_enumeration_endflag 
-48fe 207a0000 rtn blank 
-48ff 68088c6c fetcht 1 ,mem_usb_offline_check_gpio 
-4900 2040681d call gpio_get_bit 
-4901 2020c8ea branch usb_init ,true 
-4902 20600000 rtn 
-
-usb_nak_state:
-4903 d8e00000 arg timer_nak ,queue 
-4904 20407f16 call timer_check 
-4905 247a0000 nrtn blank 
-4906 68008d46 fetch 1 ,mem_usb_wakestate_onetime_flag 
-4907 247a0000 nrtn blank 
-4908 68008d45 fetch 1 ,mem_usb_device_enumeration_endflag 
-4909 245a4bb7 ncall usb_mac_wakeup_judge ,blank 
-490a 20600000 rtn 
-
-usb_mem_devicedesc_init:
-490b d8a00b68 arg mem_devicedesc ,contw 
-490c 38011212 setsect 0 ,0x11212 
-490d 38048000 setsect 1 ,0x8000 
-490e 38080000 setsect 2 ,0x0 
-490f 380d0000 setsect 3 ,0x10000 
-4910 e0a48000 istore 9 ,contw 
-4911 38022412 setsect 0 ,0x22412 
-4912 38048604 setsect 1 ,0x8604 
-4913 38081000 setsect 2 ,0x1000 
-4914 380c0008 setsect 3 ,0x8 
-4915 e0a48000 istore 9 ,contw 
-4916 38000001 setsect 0 ,0x1 
-4917 e0a08000 istore 1 ,contw 
-4918 20600000 rtn 
-
-usb_init_param:
-4919 700c6b02 jam 2 ,mem_usb0_state 
-491a 58000000 setarg 0x0 
-491b 60008b67 store 1 ,mem_remain 
-491c 60010c65 store 2 ,mem_usb_zero_packet 
-491d 1fe0fe01 pincrease 1 
-491e 60010c67 store 2 ,mem_usb_ones_packet 
-491f 1fe0fe01 pincrease 1 
-4920 60010c69 store 2 ,mem_usb_two_packet 
-4921 58008ffa setarg hid_kbdata_addr 
-4922 60010b7c store 2 ,mem_hidreportdesc_kb 
-4923 5800903a setarg hid_msdata_addr 
-4924 60010b7e store 2 ,mem_hidreportdesc_m 
-4925 d8a00b80 arg mem_confdesc ,contw 
-4926 d8c090fe arg hid_confdata_addr ,contr 
-4927 20407eb3 call memcpy64 
-4928 68008c6d fetch 1 ,mem_usb_tx_interval 
-4929 245a492b ncall usb_tx_interval_config ,blank 
-492a 2020490b branch usb_mem_devicedesc_init 
-
-usb_tx_interval_config:
-492b 60008ba2 store 1 ,mem_confdesc + 34 
-492c 60008bbb store 1 ,mem_confdesc + 59 
-492d 20600000 rtn 
-
-usb_nak_state_judge:
-492e 68108a26 hfetch 1 ,core_usb_status 
-492f c2834931 bbit1 usb_status_nak ,usb_nak_state_timer_init 
-4930 20600000 rtn 
-
-usb_nak_state_timer_init:
-4931 20404936 call usb0_attached_state_judge 
-4932 20407f15 call timer_reinit 
-4933 58000280 setarg timer_nak_delay 
-4934 d8e00000 arg timer_nak ,queue 
-4935 20207f08 branch timer_init 
-
-usb0_attached_state_judge:
-4936 68008d36 fetch 1 ,mem_usb_state 
-4937 c081493b bne usb_connected ,usb_clear_halt_dispose 
-4938 700d4600 jam 0 ,mem_usb_wakestate_onetime_flag 
-4939 700d4700 jam 0 ,mem_usb_mac_wakeup_trig 
-493a 20600000 rtn 
-
-usb_clear_halt_dispose:
-493b 68008d53 fetch 1 ,mem_usb_clear_halt 
-493c 207a0000 rtn blank 
-493d 700d5300 jam 0 ,mem_usb_clear_halt 
-493e 700d3602 jam usb_connected ,mem_usb_state 
-493f 700d4501 jam 1 ,mem_usb_device_enumeration_endflag 
-4940 20600000 rtn 
-
-usb0_fifo_empty:
-4941 708a2701 jam 0x1 ,core_usb_fifo_empty 
-4942 20204b37 branch usb0_tx 
-
-usb_rx_no_data:
-4943 68008b22 fetch 1 ,mem_usb_status 
-4944 c2824955 bbit1 usb_status_setup ,usb_class_type 
-4945 20600000 rtn 
-
-usb_rx_read:
-4946 68108a18 hfetch 1 ,core_usb_ep 
-4947 e0a08000 istore 1 ,contw 
-4948 c2004946 loop usb_rx_read 
-4949 20600000 rtn 
-
-usb_status1:
-494a 44fc401f bpatch patch1f_0 ,mem_patch1f 
-494b 708a2611 jam 0x11 ,core_usb_status 
-494c 68108a20 hfetch 1 ,core_usb_ep_len 
-494d 60008b24 store 1 ,mem_usb_read_len 
-494e 1fe27200 copy pdata ,loopcnt 
-494f 203a4943 branch usb_rx_no_data ,blank 
-4950 d8a00c6e arg mem_usb_setup ,contw 
-4951 20404946 call usb_rx_read 
-4952 68008b24 fetch 1 ,mem_usb_read_len 
-4953 1fe67c07 sub pdata ,7 ,null 
-4954 20610000 rtn positive 
-
-usb_class_type:
-4955 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-4956 1fe17e80 and_into 0x80 ,pdata 
-4957 c040495a beq in_device ,usb_in_device 
-4958 c0004962 beq out_device ,usb_out_device 
-4959 20202a8c branch assert 
-
-usb_in_device:
-495a 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-495b 1ff1fe00 rshift4 pdata ,pdata 
-495c 1fe37e00 rshift pdata ,pdata 
-495d 1fe17e03 and_into 0x03 ,pdata 
-495e c000496a beq standard_req ,usb_in_standard_req 
-495f c000c970 beq class_req ,usb_in_class_req 
-4960 c0014975 beq manufacturer_req ,usb_in_manufacturer_req 
-4961 20202a8c branch assert 
-
-usb_out_device:
-4962 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-4963 1ff1fe00 rshift4 pdata ,pdata 
-4964 1fe37e00 rshift pdata ,pdata 
-4965 1fe17e03 and_into 0x03 ,pdata 
-4966 c0004976 beq standard_req ,usb_out_standard_req 
-4967 c000c97e beq class_req ,usb_out_class_req 
-4968 c0014983 beq manufacturer_req ,usb_out_manufacturer_req 
-4969 20202a8c branch assert 
-
-usb_in_standard_req:
-496a 68008c6f fetch 1 ,mem_usb_setup_brequest 
-496b c004498a beq get_configuration ,usb0_request_get_configuration 
-496c c00349a0 beq get_descriptor ,usb0_request_get_descriptor 
-496d c00549ea beq get_interface ,usb0_request_get_interface 
-496e c00049fc beq get_status ,usb0_request_get_status 
-496f 20204984 branch usb0_force_stall 
-
-usb_in_class_req:
-4970 68008c6f fetch 1 ,mem_usb_setup_brequest 
-4971 c0014a2f beq get_idle ,usb_get_idle 
-4972 c000ca33 beq get_report ,usb_get_report 
-4973 c001ca45 beq get_protocol ,usb_get_protocol_req 
-4974 20204984 branch usb0_force_stall 
-
-usb_in_manufacturer_req:
-4975 20204984 branch usb0_force_stall 
-
-usb_out_standard_req:
-4976 68008c6f fetch 1 ,mem_usb_setup_brequest 
-4977 c000ca4f beq clear_feature ,usb0_request_clear_feature 
-4978 c001ca79 beq set_feature ,usb0_request_set_feature 
-4979 c002caa3 beq set_address ,usb0_request_set_address 
-497a c004cabc beq set_configuration ,usb0_request_set_configuration 
-497b c005cad7 beq set_interface ,usb0_request_set_interface 
-497c c003c984 beq set_descriptor ,usb0_force_stall 
-497d 20204984 branch usb0_force_stall 
-
-usb_out_class_req:
-497e 68008c6f fetch 1 ,mem_usb_setup_brequest 
-497f c0054ae8 beq set_idle ,usb_set_idle 
-4980 c004caf9 beq set_report ,usb_set_report 
-4981 c005cb11 beq set_protocol ,usb_set_protocol_req 
-4982 20204984 branch usb0_force_stall 
-
-usb_out_manufacturer_req:
-4983 20204984 branch usb0_force_stall 
-
-usb0_force_stall:
-4984 68108a11 hfetch 1 ,core_usb_stall 
-4985 79207e00 set1 0 ,pdata 
-4986 60108a11 hstore 1 ,core_usb_stall 
-4987 20204988 branch usb0_reply_zerolen 
-
-usb0_reply_zerolen:
-4988 708a1240 jam 0x40 ,core_usb_clear 
-4989 20600000 rtn 
-
-usb0_request_get_configuration:
-498a 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-498b c0c04984 bne in_device ,usb0_force_stall 
-498c 68008c72 fetch 1 ,mem_usb_setup_windex 
-498d c0804984 bne 0 ,usb0_force_stall 
-498e 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
-498f c0804984 bne 0 ,usb0_force_stall 
-4990 68008c74 fetch 1 ,mem_usb_setup_blength 
-4991 c080c984 bne 1 ,usb0_force_stall 
-4992 68008c75 fetch 1 ,mem_usb_setup_blengthh 
-4993 c0804984 bne 0 ,usb0_force_stall 
-4994 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-4995 c0804984 bne 0 ,usb0_force_stall 
-4996 68008c71 fetch 1 ,mem_usb_setup_bvalue + 1 
-4997 c0804984 bne 0 ,usb0_force_stall 
-4998 68008c6b fetch 1 ,mem_usb0_state 
-4999 c002499c beq dev_configured ,usb0_request_get_cfg_dev_cfg 
-499a c001c99e beq dev_address ,usb0_request_get_cfg_dev_addr 
-499b 20204984 branch usb0_force_stall 
-
-usb0_request_get_cfg_dev_cfg:
-499c da400001 arg 1 ,regb 
-499d 20204a14 branch usb_send_ones_packet 
-
-usb0_request_get_cfg_dev_addr:
-499e da400001 arg 1 ,regb 
-499f 20204a12 branch usb_send_zero_packet 
-
-usb0_request_get_descriptor:
-49a0 44fcc01f bpatch patch1f_1 ,mem_patch1f 
-49a1 793f8023 set0 mark_isstr ,mark 
-49a2 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
-49a3 c000c9b6 beq dsc_device ,dsc_device_info 
-49a4 c00149cf beq dsc_config ,dsc_config_info 
-49a5 c001c9d2 beq dsc_string ,dsc_string_info 
-49a6 c010c9a9 beq dsc_hid ,dsc_hid_info 
-49a7 c01149e0 beq dsc_hid_report ,dsc_hid_report_info 
-49a8 20204984 branch usb0_force_stall 
-
-dsc_hid_info:
-49a9 700d4b00 jam 0 ,mem_usb_get_protocol_flag 
-49aa 68008c72 fetch 1 ,mem_usb_setup_windex 
-49ab c00049ae beq 0 ,dsc_hid_info_interface0 
-49ac c000c9b2 beq 1 ,dsc_hid_info_interface1 
-49ad 20204984 branch usb0_force_stall 
-
-dsc_hid_info_interface0:
-49ae da200b93 arg mem_confdesc + 19 ,rega 
-49af ea208000 ifetch 1 ,rega 
-49b0 98002400 iforce regb 
-49b1 20204b21 branch usb0_respond 
-
-dsc_hid_info_interface1:
-49b2 da200bac arg mem_confdesc + 44 ,rega 
-49b3 ea208000 ifetch 1 ,rega 
-49b4 98002400 iforce regb 
-49b5 20204b21 branch usb0_respond 
-
-dsc_device_info:
-49b6 68008d48 fetch 1 ,mem_usb_set_high_addr_flag 
-49b7 245a49c7 ncall usb_set_high_addr ,blank 
-49b8 58000b68 setarg mem_devicedesc 
-49b9 68088b68 fetcht 1 ,mem_devicedesc 
-
-dsc_info_set_data_len:
-49ba 60010d3f store 2 ,mem_dsc_info_data_pointer 
-49bb 60088d41 storet 1 ,mem_dsc_info_len 
-49bc 68008c74 fetch 1 ,mem_usb_setup_blength 
-49bd 98467c00 isub temp ,null 
-49be 242149c5 nbranch dsc_info_set_current_data_len ,positive 
-
-dsc_info_set_initial_data_len:
-49bf 68008d41 fetch 1 ,mem_dsc_info_len 
-
-dsc_info_set_data_size_completed:
-49c0 98002400 iforce regb 
-49c1 68010d3f fetch 2 ,mem_dsc_info_data_pointer 
-49c2 1fe0fe01 add pdata ,1 ,pdata 
-49c3 98002200 iforce rega 
-49c4 20204b21 branch usb0_respond 
-
-dsc_info_set_current_data_len:
-49c5 68008c74 fetch 1 ,mem_usb_setup_blength 
-49c6 202049c0 branch dsc_info_set_data_size_completed 
-
-usb_set_high_addr:
-49c7 68108a04 hfetch 1 ,core_usb_addr 
-49c8 245a49cb ncall usb0_set_addr ,blank 
-49c9 700d4800 jam 0 ,mem_usb_set_high_addr_flag 
-49ca 20600000 rtn 
-
-usb0_set_addr:
-49cb 68108a04 hfetch 1 ,core_usb_addr 
-49cc 79207e07 set1 7 ,pdata 
-49cd 60108a04 hstore 1 ,core_usb_addr 
-49ce 20600000 rtn 
-
-dsc_config_info:
-49cf 58000b80 setarg mem_confdesc 
-49d0 68088b80 fetcht 1 ,mem_confdesc 
-49d1 202049ba branch dsc_info_set_data_len 
-
-dsc_string_info:
-49d2 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-49d3 1fe67c03 sub pdata ,3 ,null 
-49d4 24214984 nbranch usb0_force_stall ,positive 
-49d5 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-49d6 da200be4 arg mem_string0 ,rega 
-49d7 c0004b1e beq 0 ,usb0_respond_length 
-49d8 79200023 set1 mark_isstr ,mark 
-49d9 da200be9 arg mem_string1 ,rega 
-49da c000cb1e beq 1 ,usb0_respond_length 
-49db da200c07 arg mem_string2 ,rega 
-49dc c0014b1e beq 2 ,usb0_respond_length 
-49dd da200c47 arg mem_string3 ,rega 
-49de c001cb1e beq 3 ,usb0_respond_length 
-49df 20600000 rtn 
-
-dsc_hid_report_info:
-49e0 68010c72 fetch 2 ,mem_usb_setup_windex 
-49e1 c000c9e5 beq 1 ,dsc_hid_report_info0 
-49e2 68010b7c fetch 2 ,mem_hidreportdesc_kb 
-49e3 1fe22200 copy pdata ,rega 
-49e4 20204b1e branch usb0_respond_length 
-
-dsc_hid_report_info0:
-49e5 700d4501 jam 1 ,mem_usb_device_enumeration_endflag 
-49e6 700d3601 jam usb_got_report_req ,mem_usb_state 
-49e7 68010b7e fetch 2 ,mem_hidreportdesc_m 
-49e8 1fe22200 copy pdata ,rega 
-49e9 20204b1e branch usb0_respond_length 
-
-usb0_request_get_interface:
-49ea 68008c6b fetch 1 ,mem_usb0_state 
-49eb c0824984 bne dev_configured ,usb0_force_stall 
-49ec 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-49ed c0c0c984 bne in_interface ,usb0_force_stall 
-49ee 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-49ef c0804984 bne 0 ,usb0_force_stall 
-49f0 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
-49f1 c0804984 bne 0 ,usb0_force_stall 
-49f2 68008c74 fetch 1 ,mem_usb_setup_blength 
-49f3 c080c984 bne 1 ,usb0_force_stall 
-49f4 68008c75 fetch 1 ,mem_usb_setup_blengthh 
-49f5 c0804984 bne 0 ,usb0_force_stall 
-49f6 68008c72 fetch 1 ,mem_usb_setup_windex 
-49f7 c0804984 bne 0 ,usb0_force_stall 
-49f8 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
-49f9 c0804984 bne 0 ,usb0_force_stall 
-49fa da400001 arg 1 ,regb 
-49fb 20204a12 branch usb_send_zero_packet 
-
-usb0_request_get_status:
-49fc 68008c6b fetch 1 ,mem_usb0_state 
-49fd c0014984 beq dev_default ,usb0_force_stall 
-49fe 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-49ff c0804984 bne 0 ,usb0_force_stall 
-4a00 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
-4a01 c0804984 bne 0 ,usb0_force_stall 
-4a02 68008c74 fetch 1 ,mem_usb_setup_blength 
-4a03 c0814984 bne 2 ,usb0_force_stall 
-4a04 68008c75 fetch 1 ,mem_usb_setup_blengthh 
-4a05 c0804984 bne 0 ,usb0_force_stall 
-4a06 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
-4a07 c0804984 bne 0 ,usb0_force_stall 
-4a08 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-4a09 c0404a0d beq in_device ,usb0_get_status_in_device 
-4a0a c040ca18 beq in_interface ,usb0_get_status_in_interface 
-4a0b c0414a1c beq in_endpoint ,usb0_get_status_in_endpoint 
-4a0c 20204984 branch usb0_force_stall 
-
-usb0_get_status_in_device:
-4a0d 68008c72 fetch 1 ,mem_usb_setup_windex 
-4a0e c0804984 bne 0 ,usb0_force_stall 
-4a0f da400002 arg 2 ,regb 
-4a10 68008d39 fetch 1 ,mem_usb_remote_wakeup 
-4a11 c000ca16 beq 0x01 ,usb_send_two_packet 
-
-usb_send_zero_packet:
-4a12 da200c65 arg mem_usb_zero_packet ,rega 
-4a13 20204b21 branch usb0_respond 
-
-usb_send_ones_packet:
-4a14 da200c67 arg mem_usb_ones_packet ,rega 
-4a15 20204b21 branch usb0_respond 
-
-usb_send_two_packet:
-4a16 da200c69 arg mem_usb_two_packet ,rega 
-4a17 20204b21 branch usb0_respond 
-
-usb0_get_status_in_interface:
-4a18 68008c6b fetch 1 ,mem_usb0_state 
-4a19 c0824984 bne dev_configured ,usb0_force_stall 
-4a1a da400002 arg 2 ,regb 
-4a1b 20204a12 branch usb_send_zero_packet 
-
-usb0_get_status_in_endpoint:
-4a1c 68008c6b fetch 1 ,mem_usb0_state 
-4a1d c0824984 bne dev_configured ,usb0_force_stall 
-4a1e 68008c72 fetch 1 ,mem_usb_setup_windex 
-4a1f c040ca29 beq in_ep1 ,usb0_get_status_in_ep_in_ep1 
-4a20 c0414a2b beq in_ep2 ,usb0_get_status_in_ep_in_ep2 
-4a21 c041ca2d beq in_ep3 ,usb0_get_status_in_ep_in_ep3 
-4a22 1fe17e7f and_into 0x7f ,pdata 
-4a23 c0004a25 beq 0x00 ,usb0_get_status_in_ep_in_ep0 
-4a24 20204984 branch usb0_force_stall 
-
-usb0_get_status_in_ep_in_ep0:
-4a25 68008d3b fetch 1 ,mem_usb_ep0_stall_status 
-
-usb0_get_status_in_ep_in_ack:
-4a26 da400002 arg 2 ,regb 
-4a27 c000ca14 beq 1 ,usb_send_ones_packet 
-4a28 20204a12 branch usb_send_zero_packet 
-
-usb0_get_status_in_ep_in_ep1:
-4a29 68008d3c fetch 1 ,mem_usb_ep1_stall_status 
-4a2a 20204a26 branch usb0_get_status_in_ep_in_ack 
-
-usb0_get_status_in_ep_in_ep2:
-4a2b 68008d3d fetch 1 ,mem_usb_ep2_stall_status 
-4a2c 20204a26 branch usb0_get_status_in_ep_in_ack 
-
-usb0_get_status_in_ep_in_ep3:
-4a2d 68008d3e fetch 1 ,mem_usb_ep3_stall_status 
-4a2e 20204a26 branch usb0_get_status_in_ep_in_ack 
-
-usb_get_idle:
-4a2f 700d4c01 jam 1 ,mem_usb_idle_flag 
-4a30 da200d4d arg mem_usb_idle_rate ,rega 
-4a31 da400001 arg 1 ,regb 
-4a32 20204b21 branch usb0_respond 
-
-usb_get_report:
-4a33 68010c70 fetch 2 ,mem_usb_setup_bvalue 
-4a34 d84001ba arg pc_get_report ,temp 
-4a35 98467c00 isub temp ,null 
-4a36 2422c984 nbranch usb0_force_stall ,zero 
-4a37 793f8023 set0 mark_isstr ,mark 
-
-usb_get_report_dispose:
-4a38 68008d42 fetch 1 ,mem_usb0_data_ready_report 
-4a39 243a4a42 nbranch usb_get_report_data_success ,blank 
-4a3a 700cf600 jam pc_get_nondata ,mem_usb0_get_report_data 
-
-usb_get_report_send_data:
-4a3b 68008c74 fetch 1 ,mem_usb_setup_blength 
-4a3c 98002400 iforce regb 
-4a3d da200cf6 arg mem_usb0_get_report_data ,rega 
-4a3e 20404b21 call usb0_respond 
-
-usb_get_report_data_release:
-4a3f d8a00cf6 arg mem_usb0_get_report_data ,contw 
-4a40 df200008 arg 8 ,loopcnt 
-4a41 20207ec6 branch memset0 
-
-usb_get_report_data_success:
-4a42 700d4200 jam 0 ,mem_usb0_data_ready_report 
-4a43 700cf601 jam pc_get_data ,mem_usb0_get_report_data 
-4a44 20204a3b branch usb_get_report_send_data 
-
-usb_get_protocol_req:
-4a45 68008c74 fetch 1 ,mem_usb_setup_blength 
-4a46 c080c984 bne 1 ,usb0_force_stall 
-4a47 700d4b01 jam 1 ,mem_usb_get_protocol_flag 
-4a48 da400001 arg 1 ,regb 
-4a49 68008d49 fetch 1 ,mem_usb_set_protocol_value 
-4a4a c0004a4d beq 0 ,usb_get_report_protocol 
-4a4b c000ca4e beq 1 ,usb_get_boot_protocol 
-4a4c 20204a12 branch usb_send_zero_packet 
-
-usb_get_report_protocol:
-4a4d 20204a14 branch usb_send_ones_packet 
-
-usb_get_boot_protocol:
-4a4e 20204a12 branch usb_send_zero_packet 
-
-usb0_request_clear_feature:
-4a4f 68008c6b fetch 1 ,mem_usb0_state 
-4a50 c0824984 bne dev_configured ,usb0_force_stall 
-4a51 68008c74 fetch 1 ,mem_usb_setup_blength 
-4a52 c0804984 bne 0 ,usb0_force_stall 
-4a53 68008c75 fetch 1 ,mem_usb_setup_blengthh 
-4a54 c0804984 bne 0 ,usb0_force_stall 
-4a55 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
-4a56 c0804984 bne 0 ,usb0_force_stall 
-4a57 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
-4a58 c0804984 bne 0 ,usb0_force_stall 
-4a59 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-4a5a c0004a5e beq out_device ,usb0_request_clear_feature_out_device 
-4a5b c000ca66 beq out_interface ,usb0_request_clear_feature_out_interface 
-4a5c c0014a67 beq out_endpoint ,usb0_request_clear_feature_out_endpoint 
-4a5d 20204984 branch usb0_force_stall 
-
-usb0_request_clear_feature_out_device:
-4a5e 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-4a5f c080c984 bne device_remote_wakeup ,usb0_force_stall 
-4a60 68108a00 hfetch 1 ,core_usb_config 
-4a61 793ffe07 set0 7 ,pdata 
-4a62 60108a00 hstore 1 ,core_usb_config 
-4a63 700d3900 jam 0 ,mem_usb_remote_wakeup 
-4a64 700d3a01 jam 1 ,mem_usb_clear_remote_wakeup 
-4a65 20204988 branch usb0_reply_zerolen 
-
-usb0_request_clear_feature_out_interface:
-4a66 20204984 branch usb0_force_stall 
-
-usb0_request_clear_feature_out_endpoint:
-4a67 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-4a68 c0804984 bne endpoint_halt ,usb0_force_stall 
-4a69 68008c72 fetch 1 ,mem_usb_setup_windex 
-4a6a c040ca72 beq in_ep1 ,usb0_force_stall_ep1_in_off 
-4a6b c0414a75 beq in_ep2 ,usb0_force_stall_ep2_in_off 
-4a6c c041ca77 beq in_ep3 ,usb0_force_stall_ep3_in_off 
-4a6d 1fe17e7f and_into 0x7f ,pdata 
-4a6e c0004a70 beq 0x00 ,usb0_force_stall_ep0_in_off 
-4a6f 20204984 branch usb0_force_stall 
-
-usb0_force_stall_ep0_in_off:
-4a70 700d3b00 jam 0 ,mem_usb_ep0_stall_status 
-4a71 20204988 branch usb0_reply_zerolen 
-
-usb0_force_stall_ep1_in_off:
-4a72 700d3c00 jam 0 ,mem_usb_ep1_stall_status 
-
-usb0_force_stall_ep1_in_off_reply:
-4a73 700d5301 jam 1 ,mem_usb_clear_halt 
-4a74 20204988 branch usb0_reply_zerolen 
-
-usb0_force_stall_ep2_in_off:
-4a75 700d3d00 jam 0 ,mem_usb_ep2_stall_status 
-4a76 20204a73 branch usb0_force_stall_ep1_in_off_reply 
-
-usb0_force_stall_ep3_in_off:
-4a77 700d3e00 jam 0 ,mem_usb_ep3_stall_status 
-4a78 20204a73 branch usb0_force_stall_ep1_in_off_reply 
-
-usb0_request_set_feature:
-4a79 68008c74 fetch 1 ,mem_usb_setup_blength 
-4a7a c0804984 bne 0 ,usb0_force_stall 
-4a7b 68008c75 fetch 1 ,mem_usb_setup_blengthh 
-4a7c c0804984 bne 0 ,usb0_force_stall 
-4a7d 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-4a7e c0004a82 beq out_device ,usb0_request_set_feature_out_device 
-4a7f c000ca8f beq out_interface ,usb0_request_set_feature_out_interface 
-4a80 c0014a90 beq out_endpoint ,usb0_request_set_feature_out_endpoint 
-4a81 20204984 branch usb0_force_stall 
-
-usb0_request_set_feature_out_device:
-4a82 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-4a83 c080c984 bne device_remote_wakeup ,usb0_force_stall 
-4a84 68108a00 hfetch 1 ,core_usb_config 
-4a85 79207e07 set1 7 ,pdata 
-4a86 60108a00 hstore 1 ,core_usb_config 
-4a87 700d3901 jam 1 ,mem_usb_remote_wakeup 
-4a88 700d3603 jam usb_sleep ,mem_usb_state 
-4a89 700d4300 jam 0 ,mem_usb_tx_win_enable 
-4a8a 20404988 call usb0_reply_zerolen 
-
-usb_wakeup_timer_reinit:
-4a8b 20407f15 call timer_reinit 
-4a8c 58001388 setarg timer_wakeup_delay 
-4a8d d8e0000f arg timer_wakeup ,queue 
-4a8e 20207f08 branch timer_init 
-
-usb0_request_set_feature_out_interface:
-4a8f 20204984 branch usb0_force_stall 
-
-usb0_request_set_feature_out_endpoint:
-4a90 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-4a91 c0804984 bne endpoint_halt ,usb0_force_stall 
-4a92 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
-4a93 c0804984 bne 0 ,usb0_force_stall 
-4a94 68008c72 fetch 1 ,mem_usb_setup_windex 
-4a95 c040ca9d beq in_ep1 ,usb0_force_stall_ep1_in_on 
-4a96 c0414a9f beq in_ep2 ,usb0_force_stall_ep2_in_on 
-4a97 c041caa1 beq in_ep3 ,usb0_force_stall_ep3_in_on 
-4a98 1fe17e7f and_into 0x7f ,pdata 
-4a99 c0004a9b beq 0x00 ,usb0_force_stall_ep0_in_on 
-4a9a 20204984 branch usb0_force_stall 
-
-usb0_force_stall_ep0_in_on:
-4a9b 700d3b01 jam 1 ,mem_usb_ep0_stall_status 
-4a9c 20204988 branch usb0_reply_zerolen 
-
-usb0_force_stall_ep1_in_on:
-4a9d 700d3c01 jam 1 ,mem_usb_ep1_stall_status 
-4a9e 20204988 branch usb0_reply_zerolen 
-
-usb0_force_stall_ep2_in_on:
-4a9f 700d3d01 jam 1 ,mem_usb_ep2_stall_status 
-4aa0 20204988 branch usb0_reply_zerolen 
-
-usb0_force_stall_ep3_in_on:
-4aa1 700d3e01 jam 1 ,mem_usb_ep3_stall_status 
-4aa2 20204988 branch usb0_reply_zerolen 
-
-usb0_request_set_address:
-4aa3 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-4aa4 c0804984 bne out_device ,usb0_force_stall 
-4aa5 68008c72 fetch 1 ,mem_usb_setup_windex 
-4aa6 c0804984 bne 0 ,usb0_force_stall 
-4aa7 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
-4aa8 c0804984 bne 0 ,usb0_force_stall 
-4aa9 68008c74 fetch 1 ,mem_usb_setup_blength 
-4aaa c0804984 bne 0 ,usb0_force_stall 
-4aab 68008c75 fetch 1 ,mem_usb_setup_blengthh 
-4aac c0804984 bne 0 ,usb0_force_stall 
-4aad 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
-4aae c0804984 bne 0 ,usb0_force_stall 
-4aaf 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-4ab0 1fe17e80 and_into 0x80 ,pdata 
-4ab1 c0804984 bne 0 ,usb0_force_stall 
-4ab2 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-4ab3 c0804aba bne 0 ,usb_usb0_state_set_dev_addr 
-
-usb_usb0_state_set_dev_default:
-4ab4 700c6b02 jam dev_default ,mem_usb0_state 
-
-usb0_request_set_wait_address:
-4ab5 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-4ab6 60108a04 hstore 1 ,core_usb_addr 
-4ab7 20404988 call usb0_reply_zerolen 
-4ab8 700d4801 jam 1 ,mem_usb_set_high_addr_flag 
-4ab9 20600000 rtn 
-
-usb_usb0_state_set_dev_addr:
-4aba 700c6b03 jam dev_address ,mem_usb0_state 
-4abb 20204ab5 branch usb0_request_set_wait_address 
-
-usb0_request_set_configuration:
-4abc 68008c6b fetch 1 ,mem_usb0_state 
-4abd c0014984 beq dev_default ,usb0_force_stall 
-4abe 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-4abf c0804984 bne out_device ,usb0_force_stall 
-4ac0 68008c72 fetch 1 ,mem_usb_setup_windex 
-4ac1 c0804984 bne 0 ,usb0_force_stall 
-4ac2 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
-4ac3 c0804984 bne 0 ,usb0_force_stall 
-4ac4 68008c74 fetch 1 ,mem_usb_setup_blength 
-4ac5 c0804984 bne 0 ,usb0_force_stall 
-4ac6 68008c75 fetch 1 ,mem_usb_setup_blengthh 
-4ac7 c0804984 bne 0 ,usb0_force_stall 
-4ac8 68008c71 fetch 1 ,mem_usb_setup_bvalue + 1 
-4ac9 c0804984 bne 0 ,usb0_force_stall 
-4aca 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-4acb 1fe67c01 sub pdata ,usb_max_num_cfg ,null 
-4acc 24214984 nbranch usb0_force_stall ,positive 
-4acd 68008c6b fetch 1 ,mem_usb0_state 
-4ace c001cad1 beq dev_address ,usb0_request_set_cfg_addr_state 
-4acf c0024ad1 beq dev_configured ,usb0_request_set_cfg_cfg_state 
-4ad0 20204984 branch usb0_force_stall 
-
-usb0_request_set_cfg_addr_state:
-
-usb0_request_set_cfg_cfg_state:
-4ad1 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-4ad2 c0004ad5 beq 0 ,usb0_request_set_cfg_stay_addr_state 
-4ad3 700c6b04 jam dev_configured ,mem_usb0_state 
-4ad4 20204988 branch usb0_reply_zerolen 
-
-usb0_request_set_cfg_stay_addr_state:
-4ad5 700c6b03 jam dev_address ,mem_usb0_state 
-4ad6 20204988 branch usb0_reply_zerolen 
-
-usb0_request_set_interface:
-4ad7 68008c6b fetch 1 ,mem_usb0_state 
-4ad8 c0824984 bne dev_configured ,usb0_force_stall 
-4ad9 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-4ada c080c984 bne out_interface ,usb0_force_stall 
-4adb 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-4adc c0804984 bne 0 ,usb0_force_stall 
-4add 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
-4ade c0804984 bne 0 ,usb0_force_stall 
-4adf 68008c74 fetch 1 ,mem_usb_setup_blength 
-4ae0 c0804984 bne 0 ,usb0_force_stall 
-4ae1 68008c75 fetch 1 ,mem_usb_setup_blengthh 
-4ae2 c0804984 bne 0 ,usb0_force_stall 
-4ae3 68008c72 fetch 1 ,mem_usb_setup_windex 
-4ae4 c0804984 bne 0 ,usb0_force_stall 
-4ae5 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
-4ae6 c0804984 bne 0 ,usb0_force_stall 
-4ae7 20204988 branch usb0_reply_zerolen 
-
-usb_set_idle:
-4ae8 700d4c01 jam 1 ,mem_usb_idle_flag 
-4ae9 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
-4aea 60008d4d store 1 ,mem_usb_idle_rate 
-4aeb 68008c72 fetch 1 ,mem_usb_setup_windex 
-4aec 1fe67c01 sub pdata ,1 ,null 
-4aed 2042caf5 call usb_clear_remote_wakeup_set0 ,zero 
-4aee 68008d36 fetch 1 ,mem_usb_state 
-4aef c0824988 bne usb_resume ,usb0_reply_zerolen 
-4af0 700d3602 jam usb_connected ,mem_usb_state 
-4af1 20404988 call usb0_reply_zerolen 
-4af2 20007530 nop 30000 
-4af3 20007530 nop 30000 
-4af4 20600000 rtn 
-
-usb_clear_remote_wakeup_set0:
-4af5 700d4501 jam 1 ,mem_usb_device_enumeration_endflag 
-4af6 700d3a00 jam 0 ,mem_usb_clear_remote_wakeup 
-4af7 700d3604 jam usb_resume ,mem_usb_state 
-4af8 20600000 rtn 
-
-usb_set_report:
-4af9 700d5001 jam 1 ,mem_usb0_get_set_report 
-4afa 20404b03 call usb_set_report_resume_judge 
-4afb 68010c70 fetch 2 ,mem_usb_setup_bvalue 
-4afc 60010d4e store 2 ,mem_usb_setup_bvalue_temp 
-4afd 68008c74 fetch 1 ,mem_usb_setup_blength 
-4afe 98007200 iforce loopcnt 
-4aff d8c00c76 arg mem_usb0_setup ,contr 
-4b00 d8a00cb6 arg mem_usb0_set_report_data ,contw 
-4b01 20407f01 call memcpy 
-4b02 20204988 branch usb0_reply_zerolen 
-
-usb_set_report_resume_judge:
-4b03 68010c70 fetch 2 ,mem_usb_setup_bvalue 
-4b04 d8400200 arg pc_set_report_bvalue ,temp 
-4b05 98467c00 isub temp ,null 
-4b06 24628000 nrtn zero 
-4b07 68010c72 fetch 2 ,mem_usb_setup_windex 
-4b08 d8400000 arg pc_set_report_windex ,temp 
-4b09 98467c00 isub temp ,null 
-4b0a 24628000 nrtn zero 
-4b0b 68010c74 fetch 2 ,mem_usb_setup_blength 
-4b0c d8400001 arg pc_set_report_blength ,temp 
-4b0d 98467c00 isub temp ,null 
-4b0e 24628000 nrtn zero 
-4b0f 700d4301 jam 1 ,mem_usb_tx_win_enable 
-4b10 20600000 rtn 
-
-usb_set_protocol_req:
-4b11 68008c74 fetch 1 ,mem_usb_setup_blength 
-4b12 c0804984 bne 0 ,usb0_force_stall 
-4b13 68008c70 fetch 1 ,mem_usb_setup_bvalue 
-4b14 c0004b17 beq boot_protocol ,usb_set_boot_protocol 
-4b15 c000cb1a beq report_protocol ,usb_set_report_protocol 
-4b16 20204984 branch usb0_force_stall 
-
-usb_set_boot_protocol:
-4b17 700d4a00 jam 0 ,mem_usb_set_protocol_status 
-4b18 700d4901 jam 1 ,mem_usb_set_protocol_value 
-4b19 20204988 branch usb0_reply_zerolen 
-
-usb_set_report_protocol:
-4b1a 700d4401 jam 1 ,mem_usb_tx_mac_enable 
-4b1b 700d4a01 jam 1 ,mem_usb_set_protocol_status 
-4b1c 700d4900 jam 0 ,mem_usb_set_protocol_value 
-4b1d 20204988 branch usb0_reply_zerolen 
-
-usb0_respond_length:
-4b1e ea208000 ifetch 1 ,rega 
-4b1f 98002400 iforce regb 
-4b20 1a20a201 increase 1 ,rega 
-
-usb0_respond:
-4b21 44fd401f bpatch patch1f_2 ,mem_patch1f 
-4b22 c591cb2c bmark0 mark_isstr ,usb0_respond0 
-4b23 1a40fe01 add regb ,1 ,pdata 
-4b24 1fe3fe00 lshift pdata ,pdata 
-4b25 60108a18 hstore 1 ,core_usb_dfifo0 
-4b26 708a1803 jam 3 ,core_usb_dfifo0 
-4b27 68008c74 fetch 1 ,mem_usb_setup_blength 
-4b28 1fe0fffe increase -2 ,pdata 
-4b29 1fe37e00 rshift pdata ,pdata 
-4b2a 60008c74 store 1 ,mem_usb_setup_blength 
-4b2b c0004b35 beq 0 ,usb_no_respond_data 
-
-usb0_respond0:
-4b2c 68010c74 fetch 2 ,mem_usb_setup_blength 
-4b2d 9a467c00 isub regb ,null 
-4b2e 20214b30 branch usb0_respond1 ,positive 
-4b2f 1fe22400 copy pdata ,regb 
-
-usb0_respond1:
-4b30 1a227e00 deposit rega 
-4b31 60010b65 store 2 ,mem_bufptr 
-4b32 1a427e00 deposit regb 
-4b33 60008b67 store 1 ,mem_remain 
-4b34 20204b37 branch usb0_tx 
-
-usb_no_respond_data:
-4b35 d8e00000 arg 0 ,queue 
-4b36 20204b57 branch usb_trig 
-
-usb0_tx:
-4b37 44fdc01f bpatch patch1f_3 ,mem_patch1f 
-4b38 68008b67 fetch 1 ,mem_remain 
-4b39 207a0000 rtn blank 
-4b3a 1fe27200 copy pdata ,loopcnt 
-4b3b 1fe67c40 sub pdata ,ep0_packet_size ,null 
-4b3c 20214b3e branch usb0_tx_info ,positive 
-4b3d df200040 arg ep0_packet_size ,loopcnt 
-
-usb0_tx_info:
-4b3e 68008b67 fetch 1 ,mem_remain 
-4b3f 9f267e00 isub loopcnt ,pdata 
-4b40 60008b67 store 1 ,mem_remain 
-4b41 68010b65 fetch 2 ,mem_bufptr 
-4b42 1fe20c00 copy pdata ,contr 
-
-usb0_tx0:
-4b43 e8c08000 ifetch 1 ,contr 
-4b44 60108a18 hstore 1 ,core_usb_dfifo0 
-4b45 c591cb47 bmark0 mark_isstr ,usb0_tx1 
-4b46 708a1800 jam 0 ,core_usb_dfifo0 
-
-usb0_tx1:
-4b47 c2004b43 loop usb0_tx0 
-4b48 18c27e00 copy contr ,pdata 
-4b49 60010b65 store 2 ,mem_bufptr 
-4b4a d8e00000 arg 0 ,queue 
-4b4b 20404b57 call usb_trig 
-4b4c 68008b67 fetch 1 ,mem_remain 
-4b4d 247a0000 nrtn blank 
-4b4e 68008d36 fetch 1 ,mem_usb_state 
-4b4f c1808000 rtnne usb_got_report_req 
-4b50 700d3602 jam usb_connected ,mem_usb_state 
-4b51 20600000 rtn 
-
-usb_tx_ep1:
-4b52 da208a19 arg core_usb_dfifo1 ,rega 
-4b53 d8e00001 arg 1 ,queue 
-
-usb_tx_loop:
-4b54 e8c08000 ifetch 1 ,contr 
-4b55 e2208000 istore 1 ,rega 
-4b56 c2004b54 loop usb_tx_loop 
-
-usb_trig:
-4b57 58000000 setarg 0 
-4b58 f9207e00 qset1 pdata 
-4b59 60108a10 hstore 1 ,core_usb_trig 
-4b5a 68088d37 fetcht 1 ,mem_usb_tx_wait 
-4b5b 9841fe00 ior temp ,pdata 
-4b5c 60008d37 store 1 ,mem_usb_tx_wait 
-4b5d 20600000 rtn 
-
-usb_tx_ep2:
-4b5e d8e00002 arg 2 ,queue 
-4b5f da208a1a arg core_usb_dfifo2 ,rega 
-4b60 20204b54 branch usb_tx_loop 
-
-usb_tx:
-4b61 44fe401f bpatch patch1f_4 ,mem_patch1f 
-4b62 68008d38 fetch 1 ,mem_usb_tx_enable 
-4b63 207a0000 rtn blank 
-4b64 68008d37 fetch 1 ,mem_usb_tx_wait 
-4b65 243a4bac nbranch usb_inwake_state_tx_dispose ,blank 
-4b66 68008d45 fetch 1 ,mem_usb_device_enumeration_endflag 
-4b67 203a4b86 branch usb_tx_fifo_release ,blank 
-4b68 68008d36 fetch 1 ,mem_usb_state 
-4b69 c001cbbf beq usb_sleep ,usb_windows_wakeup 
-4b6a c0814b86 bne usb_connected ,usb_tx_fifo_release 
-4b6b 68008d3a fetch 1 ,mem_usb_clear_remote_wakeup 
-4b6c 243a4b86 nbranch usb_tx_fifo_release ,blank 
-4b6d 20404b6f call usb_tx_data_ep1 
-4b6e 20204b7a branch usb_tx_data_ep2 
-
-usb_tx_data_ep1:
-4b6f 68008d38 fetch 1 ,mem_usb_tx_enable 
-4b70 c4008000 rtnbit0 1 
-4b71 68008d37 fetch 1 ,mem_usb_tx_wait 
-4b72 c3808000 rtnbit1 1 
-4b73 68008d38 fetch 1 ,mem_usb_tx_enable 
-4b74 793ffe01 set0 1 ,pdata 
-4b75 60008d38 store 1 ,mem_usb_tx_enable 
-4b76 68008d51 fetch 1 ,mem_usb_ep1_data 
-4b77 207a0000 rtn blank 
-4b78 c0084ba8 beq usb_ep1_kb ,usb_tx_kb_normal_data 
-4b79 20202a8c branch assert 
-
-usb_tx_data_ep2:
-4b7a 68008d38 fetch 1 ,mem_usb_tx_enable 
-4b7b c4010000 rtnbit0 2 
-4b7c 68008d37 fetch 1 ,mem_usb_tx_wait 
-4b7d c3810000 rtnbit1 2 
-4b7e 68008d38 fetch 1 ,mem_usb_tx_enable 
-4b7f 793ffe02 set0 2 ,pdata 
-4b80 60008d38 store 1 ,mem_usb_tx_enable 
-4b81 68008d52 fetch 1 ,mem_usb_ep2_data 
-4b82 207a0000 rtn blank 
-4b83 c0104b89 beq usb_ep2_ms ,usb_tx_ms_data 
-4b84 c010cba4 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
-4b85 20202a8c branch assert 
-
-usb_tx_fifo_release:
-4b86 d8a00d54 arg mem_usb_mouse_data ,contw 
-4b87 df200006 arg 6 ,loopcnt 
-4b88 20207ec6 branch memset0 
-
-usb_tx_ms_data:
-4b89 68008d4c fetch 1 ,mem_usb_idle_flag 
-4b8a 68088d4b fetcht 1 ,mem_usb_get_protocol_flag 
-4b8b 98417e00 iand temp ,pdata 
-4b8c 203a4ba0 branch usb_tx_ms_data_normal_mode ,blank 
-4b8d 68088d4a fetcht 1 ,mem_usb_set_protocol_status 
-4b8e 9840fe00 iadd temp ,pdata 
-4b8f c000cb91 beq mac_boot_mode ,usb_tx_ms_data_mac_boot_mode 
-4b90 20204ba0 branch usb_tx_ms_data_normal_mode 
-
-usb_tx_ms_data_mac_boot_mode:
-4b91 700d5200 jam 0 ,mem_usb_ep2_data 
-
-usb_tx_ms_data_mac_boot_regroup:
-4b92 68008d55 fetch 1 ,mem_usb_mouse_data + 1 
-4b93 c0014ba1 beq r_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
-4b94 c001cba1 beq lr_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
-4b95 68008d55 fetch 1 ,mem_usb_mouse_data + 1 
-4b96 60008d54 store 1 ,mem_usb_mouse_data 
-4b97 68008d56 fetch 1 ,mem_usb_mouse_data + 2 
-4b98 e0a08000 istore 1 ,contw 
-4b99 68008d58 fetch 1 ,mem_usb_mouse_data + 4 
-4b9a e0a08000 istore 1 ,contw 
-4b9b 68008d5a fetch 1 ,mem_usb_mouse_data + 6 
-4b9c e0a08000 istore 1 ,contw 
-4b9d df200004 arg 4 ,loopcnt 
-4b9e d8c00d54 arg mem_usb_mouse_data ,contr 
-4b9f 20204b5e branch usb_tx_ep2 
-
-usb_tx_ms_data_normal_mode:
-4ba0 700d5200 jam 0 ,mem_usb_ep2_data 
-
-usb_tx_mac_boot_ms_regroup_r_or_lrkey:
-4ba1 df200008 arg 8 ,loopcnt 
-4ba2 d8c00d54 arg mem_usb_mouse_data ,contr 
-4ba3 20204b5e branch usb_tx_ep2 
-
-usb_tx_kb_multikey_data:
-4ba4 700d5200 jam 0 ,mem_usb_ep2_data 
-4ba5 df200003 arg 3 ,loopcnt 
-4ba6 d8c00d74 arg mem_usb_kb_multikey ,contr 
-4ba7 20204b5e branch usb_tx_ep2 
-
-usb_tx_kb_normal_data:
-4ba8 700d5100 jam 0 ,mem_usb_ep1_data 
-4ba9 df200008 arg 8 ,loopcnt 
-4baa d8c00d64 arg mem_usb_kb_data ,contr 
-4bab 20204b52 branch usb_tx_ep1 
-
-usb_inwake_state_tx_dispose:
-4bac 68008d36 fetch 1 ,mem_usb_state 
-4bad c001cbb0 beq usb_sleep ,usb_clear_tx_wait 
-4bae c0014bb2 beq usb_connected ,usb_mac_wakeup_trig 
-4baf 20600000 rtn 
-
-usb_clear_tx_wait:
-4bb0 700d3700 jam 0 ,mem_usb_tx_wait 
-4bb1 20600000 rtn 
-
-usb_mac_wakeup_trig:
-4bb2 68108a00 hfetch 1 ,core_usb_config 
-4bb3 79207e07 set1 7 ,pdata 
-4bb4 60108a00 hstore 1 ,core_usb_config 
-4bb5 700d4701 jam 1 ,mem_usb_mac_wakeup_trig 
-4bb6 20600000 rtn 
-
-usb_mac_wakeup_judge:
-4bb7 68008d36 fetch 1 ,mem_usb_state 
-4bb8 c1018000 rtneq usb_sleep 
-4bb9 c0014bbb beq usb_connected ,usb_mac_wakeup 
-4bba 20600000 rtn 
-
-usb_mac_wakeup:
-4bbb 68008d47 fetch 1 ,mem_usb_mac_wakeup_trig 
-4bbc 207a0000 rtn blank 
-4bbd 700d4601 jam 1 ,mem_usb_wakestate_onetime_flag 
-4bbe 20204bc2 branch usb_wakeup 
-
-usb_windows_wakeup:
-4bbf d8e0000f arg timer_wakeup ,queue 
-4bc0 20407f16 call timer_check 
-4bc1 247a0000 nrtn blank 
-
-usb_wakeup:
-4bc2 68108a00 hfetch 1 ,core_usb_config 
-4bc3 c4038000 rtnbit0 7 
-4bc4 708a00fc jam 0xfc ,core_usb_config 
-4bc5 20007530 nop 30000 
-4bc6 708a003c jam 0x3c ,core_usb_config 
-4bc7 20600000 rtn 
-
-hci_rx_h4:
-4bc8 44fec01f bpatch patch1f_5 ,mem_patch1f 
-4bc9 6800c1ce fetch 1 ,mem_hci_cmd 
-4bca 247a0000 nrtn blank 
-
-hci_rx_h4_1:
-4bcb 20404bce call hci_h4_parse_packet 
-4bcc 24544be6 ncall h4_rx_discard_packet ,user 
-4bcd 20600000 rtn 
-
-hci_h4_parse_packet:
-4bce 44ff401f bpatch patch1f_6 ,mem_patch1f 
-4bcf 18622200 copy contru ,rega 
-4bd0 d8400004 arg 4 ,temp 
-4bd1 e8608000 ifetch 1 ,contru 
-4bd2 c000cbd8 beq hci_h4_type_cmd ,hci_h4_parse_packet_wait_len 
-4bd3 18408401 increase 1 ,temp 
-4bd4 c0014bd8 beq hci_h4_type_acl ,hci_h4_parse_packet_wait_len 
-4bd5 18627e00 copy contru ,pdata 
-4bd6 60110058 hstore 2 ,core_uart_rrptr 
-4bd7 20600000 rtn 
-
-hci_h4_parse_packet_wait_len:
-4bd8 68110112 hfetch 2 ,core_uart_rxitems 
-4bd9 98467c00 isub temp ,null 
-4bda 24214bd8 nbranch hci_h4_parse_packet_wait_len ,positive 
-4bdb 78547c00 disable user 
-4bdc 1a220600 copy rega ,contru 
-4bdd 20404bee call h4_get_rx_payload_len 
-4bde 98408400 iadd temp ,temp 
-
-hci_h4_parse_packet_wait:
-4bdf 68110112 hfetch 2 ,core_uart_rxitems 
-4be0 98467c00 isub temp ,null 
-4be1 24214bdf nbranch hci_h4_parse_packet_wait ,positive 
-4be2 1a220600 copy rega ,contru 
-4be3 e8608000 ifetch 1 ,contru 
-4be4 c000cc3f beq hci_h4_type_cmd ,process_hci_cmd 
-4be5 20202a8c branch assert 
-
-h4_rx_discard_packet:
-4be6 44ffc01f bpatch patch1f_7 ,mem_patch1f 
-4be7 68110058 hfetch 2 ,core_uart_rrptr 
-4be8 98000600 iforce contru 
-4be9 20404bee call h4_get_rx_payload_len 
-4bea 98608600 iadd contru ,contru 
-4beb 18627e00 deposit contru 
-4bec 60110058 hstore 2 ,core_uart_rrptr 
-4bed 20600000 rtn 
-
-h4_get_rx_payload_len:
-4bee e8608000 ifetch 1 ,contru 
-4bef 18608602 increase 2 ,contru 
-4bf0 c0014bf3 beq hci_h4_type_acl ,h4_get_rx_payload_len_acl 
-4bf1 e8608000 ifetch 1 ,contru 
-4bf2 20600000 rtn 
-
-h4_get_rx_payload_len_acl:
-4bf3 e8610000 ifetch 2 ,contru 
-4bf4 20600000 rtn 
-
-h4_get_tx_ptr:
-4bf5 6811005e hfetch 2 ,core_uart_twptr 
-4bf6 194095fb increase -5 ,contwu 
-4bf7 99409400 iadd contwu ,contwu 
-4bf8 20600000 rtn 
-
-h4_send_packet_event:
-4bf9 d8400004 arg hci_h4_type_event ,temp 
-4bfa 20204bfc branch h4_send_packet 
-
-h4_send_packet_acl:
-4bfb d8400002 arg hci_h4_type_acl ,temp 
-
-h4_send_packet:
-4bfc 47004020 bpatchx patch20_0 ,mem_patch20 
-4bfd 1f20f201 increase 1 ,loopcnt 
-4bfe 6811005e hfetch 2 ,core_uart_twptr 
-4bff 1fe21400 copy pdata ,contwu 
-4c00 1f227e00 copy loopcnt ,pdata 
-4c01 e1488000 istoret 1 ,contwu 
-4c02 1fe0ffff increase -1 ,pdata 
-4c03 99409400 iadd contwu ,contwu 
-4c04 19427e00 copy contwu ,pdata 
-4c05 60010258 store 2 ,mem_hci_acl_tx_trigger_wptr 
-4c06 18427e00 copy temp ,pdata 
-4c07 c1010000 rtneq hci_h4_type_acl 
-4c08 68010258 fetch 2 ,mem_hci_acl_tx_trigger_wptr 
-4c09 6011005e hstore 2 ,core_uart_twptr 
-4c0a 20204c0b branch h4_send_acl_trigger_clear 
-
-h4_send_acl_trigger_clear:
-4c0b 58000000 setarg 0 
-4c0c 60010258 store 2 ,mem_hci_acl_tx_trigger_wptr 
-4c0d 20600000 rtn 
-
-hci_init:
-4c0e 20758000 rtn wake 
-4c0f 58004d28 setarg hci_idle_dispatch 
-4c10 600141f3 store 2 ,mem_cb_idle_process 
-4c11 580001a0 setarg uart_baud_115200 
-4c12 60014243 store uart_baud_len ,mem_baud 
-
-hci_lpm_init:
-4c13 58001800 setarg mem_h5rx_buf 
-4c14 60110054 hstore 2 ,core_uart_rsaddr 
-4c15 58001bff setarg mem_h5rx_buf_end 
-4c16 60110056 hstore 2 ,core_uart_readdr 
-4c17 58001c00 setarg mem_h5tx_buf 
-4c18 6011005a hstore 2 ,core_uart_tsaddr 
-4c19 20404c28 call hci_sel_init 
-
-hci_reinit:
-4c1a 70806200 jam 0x0 ,core_uart_ctrl 
-4c1b 58001c00 setarg mem_h5tx_buf 
-4c1c 6011005e hstore 2 ,core_uart_twptr 
-4c1d 60110060 hstore 2 ,core_uart_trptrp 
-4c1e 58001800 setarg mem_h5rx_buf 
-4c1f 60110058 hstore 2 ,core_uart_rrptr 
-4c20 60010244 store 2 ,mem_h5rx_rptr 
-
-hci_init_common:
-4c21 68110050 hfetch 2 ,core_clkoff 
-4c22 793ffe0f set0 clock_off_uart ,pdata 
-4c23 60110050 hstore 2 ,core_clkoff 
-4c24 204066ce call uart_set_baud_by_mem 
-4c25 70804301 jam uartclk_dpll ,core_uart_clksel 
-4c26 70806281 jam uart_ctrl_h4 ,core_uart_ctrl 
-4c27 20600000 rtn 
-
-hci_sel_init:
-4c28 58001fff setarg mem_h5tx_buf_end 
-4c29 6011005c hstore 2 ,core_uart_teaddr 
-4c2a 68108081 hfetch 1 ,core_gpio_sel1 
-4c2b 1fe1fe07 or_into 0x07 ,pdata 
-4c2c 60108081 hstore 1 ,core_gpio_sel1 
-4c2d 20600000 rtn 
-
-hci_rx_packet:
-4c2e 4700c020 bpatchx patch20_1 ,mem_patch20 
-4c2f 6810810c hfetch 1 ,core_uart_status 
-4c30 98002400 iforce regb 
-4c31 c301cc37 bbit0 uart_status_rx_fifo_empty ,hci_rx_packet_cont 
-4c32 68110112 hfetch 2 ,core_uart_rxitems 
-4c33 98002600 iforce regc 
-4c34 d840044f arg 0x44f ,temp 
-4c35 98467c00 isub temp ,null 
-4c36 24628000 nrtn zero 
-
-hci_rx_packet_cont:
-4c37 68110058 hfetch 2 ,core_uart_rrptr 
-4c38 98000600 iforce contru 
-4c39 20204bc8 branch hci_rx_h4 
-
-uart_send_byte:
-4c3a 6818810c hfetcht 1 ,core_uart_status 
-4c3b 284ffe06 isolate1 6 ,temp 
-4c3c 2020cc3a branch uart_send_byte ,true 
-4c3d 60108015 hstore 1 ,core_uart_txd 
-4c3e 20600000 rtn 
-
-process_hci_cmd:
-4c3f 47014020 bpatchx patch20_2 ,mem_patch20 
-4c40 6800c1ce fetch 1 ,mem_hci_cmd 
-4c41 203a4c44 branch process_hci_cmd_cont ,blank 
-4c42 78347c00 enable user 
-4c43 20600000 rtn 
-
-process_hci_cmd_cont:
-4c44 e8610000 ifetch 2 ,contru 
-4c45 98006000 iforce alarm 
-4c46 98000e00 iforce queue 
-4c47 e8608000 ifetch 1 ,contru 
-4c48 98000400 iforce temp 
-4c49 1e0b7e00 rshift2 alarm ,pdata 
-4c4a 1fecfe00 rshift8 pdata ,pdata 
-4c4b c01fcc4d beq hci_ogf_vendor_specific ,phci_grp_vendor_specific 
-4c4c 20600000 rtn 
-
-phci_grp_vendor_specific:
-4c4d 4701c020 bpatchx patch20_3 ,mem_patch20 
-4c4e 18e27e00 deposit queue 
-4c4f c0004cdc beq hci_vendor_cmd_reset ,hci_normal_reply 
-4c50 c000cc66 beq hci_vendor_cmd_chipid ,phci_grp_vendor_chipid 
-4c51 c0014c6b beq hci_vendor_cmd_baud ,phci_grp_vendor_baud 
-4c52 c001cc7a beq hci_vendor_cmd_patch ,phci_grp_vendor_patch 
-4c53 c0024cb3 beq hci_vendor_cmd_patch_done ,phci_grp_vendor_done 
-4c54 c002ccdc beq hci_vendor_cmd_echo ,hci_normal_reply 
-4c55 c0034cc6 beq hci_vendor_cmd_bdaddr ,phci_grp_vendor_bdaddr 
-4c56 c003cc5c beq hci_vendor_cmd_enter_lpm ,phci_grp_vendor_enter_lpm 
-4c57 c0084cc9 beq hci_vendor_cmd_mem ,phci_grp_vendor_mem 
-4c58 c008ccd1 beq hci_vendor_cmd_eep ,phci_grp_vendor_eep 
-4c59 c0094ca5 beq hci_vendor_cmd_patch_sec_init ,phci_grp_vendor_patch_sec_init 
-4c5a c009cc85 beq hci_vendor_cmd_patch_sec ,phci_grp_vendor_patch_sec 
-4c5b 20204cdc branch hci_normal_reply 
-
-phci_grp_vendor_enter_lpm:
-4c5c 20404cdc call hci_normal_reply 
-4c5d 20407f9e call wait_uarttx 
-4c5e 2040688c call gpio_pu_uart_tx 
-
-hci_enter_lpm:
-4c5f 204033d2 call app_put_lpm_wake_lock 
-4c60 204033d9 call app_l2cap_flow_control_enable 
-4c61 2020688f branch gpio_rx_config_input_with_pu 
-
-hci_exit_lpm:
-4c62 70424500 jam hci_rx_ready ,mem_hci_lt_rx_state 
-4c63 204033d0 call app_get_lpm_wake_lock 
-4c64 20404c13 call hci_lpm_init 
-4c65 202033db branch app_l2cap_flow_control_disable 
-
-phci_grp_vendor_chipid:
-4c66 20404cf2 call hci_get_cmd_complete_ptr 
-4c67 68110000 hfetch 2 ,core_chipid 
-4c68 e1410000 istore 2 ,contwu 
-4c69 18007206 force 6 ,loopcnt 
-4c6a 20204cdd branch hci_command_complete 
-
-phci_grp_vendor_baud:
-4c6b e8610000 ifetch 2 ,contru 
-4c6c 60014243 store 2 ,mem_baud 
-4c6d 60110052 hstore 2 ,core_uart_baud 
-4c6e 20600000 rtn 
-
-phci_grp_vendor_patch_common:
-4c6f e8608000 ifetch 1 ,contru 
-4c70 1fe20400 copy pdata ,temp 
-4c71 60108024 hstore 1 ,core_ucode_low 
-4c72 e8608000 ifetch 1 ,contru 
-4c73 98408400 iadd temp ,temp 
-4c74 79207e07 set1 7 ,pdata 
-4c75 60108023 hstore 1 ,core_ucode_ctrl 
-4c76 e8608000 ifetch 1 ,contru 
-4c77 98408400 iadd temp ,temp 
-4c78 1fe27200 copy pdata ,loopcnt 
-4c79 20600000 rtn 
-
-phci_grp_vendor_patch:
-4c7a c515ccc4 bmark1 mark_otp_encrypt ,phci_grp_vendor_patch_bad 
-4c7b 20404c6f call phci_grp_vendor_patch_common 
-
-phci_grp_vendor_patch_loop:
-4c7c e8608000 ifetch 1 ,contru 
-4c7d 60108025 hstore 1 ,core_ucode_data 
-4c7e 98408400 iadd temp ,temp 
-4c7f c2004c7c loop phci_grp_vendor_patch_loop 
-
-phci_grp_vendor_patch_check_sum:
-4c80 184104ff and temp ,0xff ,temp 
-4c81 e8608000 ifetch 1 ,contru 
-4c82 98467c00 isub temp ,null 
-4c83 2422ccc4 nbranch phci_grp_vendor_patch_bad ,zero 
-4c84 20204cdc branch hci_normal_reply 
-
-phci_grp_vendor_patch_sec:
-4c85 c595ccc4 bmark0 mark_otp_encrypt ,phci_grp_vendor_patch_bad 
-4c86 20404c6f call phci_grp_vendor_patch_common 
-4c87 60040a9a store 8 ,mem_pdatatemp 
-
-phci_grp_vendor_patch_sec_loop:
-4c88 20407422 call do_aes_cbc 
-4c89 df200010 arg 16 ,loopcnt 
-4c8a d8a00ac2 arg mem_temp_block0 ,contw 
-4c8b 20404ca0 call load_uart_sum_loop 
-4c8c 600c0aa2 storet 8 ,mem_temp 
-4c8d d8a00ad2 arg mem_temp_block2 ,contw 
-4c8e 20407497 call store_aes_result 
-4c8f da200ad2 arg mem_temp_block2 ,rega 
-4c90 da400ac2 arg mem_temp_block0 ,regb 
-4c91 d8a00ae2 arg mem_temp_block3 ,contw 
-4c92 20407352 call xor16 
-4c93 df200010 arg 16 ,loopcnt 
-4c94 d8c00ae2 arg mem_temp_block3 ,contr 
-4c95 20404c9c call load_ucode_only_loop 
-4c96 680c0aa2 fetcht 8 ,mem_temp 
-4c97 68040a9a fetch 8 ,mem_pdatatemp 
-4c98 1fe0fff0 increase -16 ,pdata 
-4c99 60040a9a store 8 ,mem_pdatatemp 
-4c9a 243a4c88 nbranch phci_grp_vendor_patch_sec_loop ,blank 
-4c9b 20204c80 branch phci_grp_vendor_patch_check_sum 
-
-load_ucode_only_loop:
-4c9c e8c08000 ifetch 1 ,contr 
-4c9d 60108025 hstore 1 ,core_ucode_data 
-4c9e c2004c9c loop load_ucode_only_loop 
-4c9f 20600000 rtn 
-
-load_uart_sum_loop:
-4ca0 e8608000 ifetch 1 ,contru 
-4ca1 e0a08000 istore 1 ,contw 
-4ca2 98408400 iadd temp ,temp 
-4ca3 c2004ca0 loop load_uart_sum_loop 
-4ca4 20600000 rtn 
-
-phci_grp_vendor_patch_sec_init:
-4ca5 c595ccc4 bmark0 mark_otp_encrypt ,phci_grp_vendor_patch_bad 
-4ca6 d8400000 arg 0 ,temp 
-4ca7 df200010 arg 16 ,loopcnt 
-4ca8 d8a00ac2 arg mem_temp_block0 ,contw 
-4ca9 20404ca0 call load_uart_sum_loop 
-4caa 68108085 hfetch 1 ,core_gpio_key2 
-4cab 1fe17efd and_into 0xfd ,pdata 
-4cac 60108085 hstore 1 ,core_gpio_key2 
-4cad d8c00ac2 arg mem_temp_block0 ,contr 
-4cae df200010 arg 16 ,loopcnt 
-4caf 20407478 call aes_load_data 
-4cb0 20407428 call aes_init 
-4cb1 20407491 call aes_clear_data 
-4cb2 20204c80 branch phci_grp_vendor_patch_check_sum 
-
-phci_grp_vendor_done:
-4cb3 df200020 arg 0x20 ,loopcnt 
-4cb4 d8a04000 arg mem_patch00 ,contw 
-4cb5 d8400000 arg 0 ,temp 
-
-phci_grp_vendor_done_loop:
-4cb6 e8608000 ifetch 1 ,contru 
-4cb7 e0a08000 istore 1 ,contw 
-4cb8 98408400 iadd temp ,temp 
-4cb9 c2004cb6 loop phci_grp_vendor_done_loop 
-4cba 184104ff and temp ,0xff ,temp 
-4cbb e8608000 ifetch 1 ,contru 
-4cbc 98467c00 isub temp ,null 
-4cbd 2422ccc4 nbranch phci_grp_vendor_patch_bad ,zero 
-4cbe 70802300 jam 0 ,core_ucode_ctrl 
-4cbf 20404cdc call hci_normal_reply 
-4cc0 20404be6 call h4_rx_discard_packet 
-4cc1 204064a3 call clear_key_buf 
-4cc2 20407f9e call wait_uarttx 
-4cc3 20202001 branch soft_reset 
-
-phci_grp_vendor_patch_bad:
-4cc4 70802300 jam 0 ,core_ucode_ctrl 
-4cc5 20202000 branch start 
-
-phci_grp_vendor_bdaddr:
-4cc6 e8630000 ifetch 6 ,contru 
-4cc7 600340a0 store 6 ,mem_lap 
-4cc8 20204cdc branch hci_normal_reply 
-
-phci_grp_vendor_mem:
-4cc9 e8608000 ifetch 1 ,contru 
-4cca 6000825a store 1 ,mem_hci_curr_len 
-4ccb 1fe27200 copy pdata ,loopcnt 
-4ccc e8610000 ifetch 2 ,contru 
-4ccd 6001025b store 2 ,mem_hci_curr_target 
-4cce 1fe20a00 copy pdata ,contw 
-4ccf 204066fd call uart_copy_rx_bytes 
-4cd0 20204cdc branch hci_normal_reply 
-
-phci_grp_vendor_eep:
-4cd1 e8608000 ifetch 1 ,contru 
-4cd2 6000825a store 1 ,mem_hci_curr_len 
-4cd3 1fe27200 copy pdata ,loopcnt 
-4cd4 e8610000 ifetch 2 ,contru 
-4cd5 6001025b store 2 ,mem_hci_curr_target 
-4cd6 d8a01000 arg mem_l2cap_rxbuff1 ,contw 
-4cd7 204066fd call uart_copy_rx_bytes 
-4cd8 6808825a fetcht 1 ,mem_hci_curr_len 
-4cd9 da201000 arg mem_l2cap_rxbuff1 ,rega 
-4cda 6801025b fetch 2 ,mem_hci_curr_target 
-4cdb 20206608 branch iicd_write_ota_data 
-
-hci_normal_reply:
-4cdc 18007204 force 4 ,loopcnt 
-
-hci_command_complete:
-4cdd 20404cf4 call hci_get_payload_ptr 
-4cde 18007e01 force 0x1 ,pdata 
-4cdf e1408000 istore 1 ,contwu 
-4ce0 1e027e00 deposit alarm 
-4ce1 e1418000 istore 3 ,contwu 
-4ce2 18000e0e force hci_event_command_complete ,queue 
-
-hci_send_event:
-4ce3 47024020 bpatchx patch20_4 ,mem_patch20 
-4ce4 20404cf6 call hci_get_packet_ptr 
-4ce5 18e27e00 deposit queue 
-4ce6 e1408000 istore 1 ,contwu 
-4ce7 1f227e00 deposit loopcnt 
-4ce8 e1408000 istore 1 ,contwu 
-
-hci_send_event_raw:
-4ce9 18000e05 force 5 ,queue 
-4cea 1f20f202 increase 2 ,loopcnt 
-
-hci_send_packet:
-4ceb 20204bf9 branch h4_send_packet_event 
-
-hci_send_commu_ready_event:
-4cec 18000eff force hci_event_vendor_specific ,queue 
-4ced 20404cf4 call hci_get_payload_ptr 
-4cee 58000001 setarg hci_vendor_event_commu_ready 
-4cef e1408000 istore 1 ,contwu 
-4cf0 18007201 force 1 ,loopcnt 
-4cf1 20204ce3 branch hci_send_event 
-
-hci_get_cmd_complete_ptr:
-4cf2 1800140c force 12 ,contwu 
-4cf3 20204cf7 branch hci_get_tx_ptr 
-
-hci_get_payload_ptr:
-4cf4 18001408 force 8 ,contwu 
-4cf5 20204cf7 branch hci_get_tx_ptr 
-
-hci_get_packet_ptr:
-4cf6 18001406 force 6 ,contwu 
-
-hci_get_tx_ptr:
-4cf7 20204bf5 branch h4_get_tx_ptr 
-
-calc_tx_crc16:
-4cf8 7827fc00 pulse crc16 
-4cf9 7824fc00 enable enable_crc 
-
-crcloop:
-4cfa e9408000 ifetch 1 ,contwu 
-4cfb 08008008 inject bucket ,8 
-4cfc c2004cfa loop crcloop 
-4cfd 78247c00 enable enable_parity 
-4cfe 08008010 inject bucket ,16 
-4cff 78447c00 disable enable_parity 
-4d00 7844fc00 disable enable_crc 
-4d01 7847fc00 disable crc16 
-4d02 1ff0fe00 byteswap pdata ,pdata 
-4d03 20600000 rtn 
-
-cmd_exit:
-4d04 7041ce00 jam 0 ,mem_hci_cmd 
-4d05 20600000 rtn 
-
-cmd_check_plap:
-4d06 680341d0 fetch 6 ,mem_hci_plap 
-4d07 680b0040 fetcht 6 ,mem_plap 
-4d08 98467c00 isub temp ,null 
-4d09 20600000 rtn 
-
-cmd_pair:
-4d0a 6800804b fetch 1 ,mem_op 
-4d0b c2814d0f bbit1 op_inrand_req ,cmd_pair_passive 
-4d0c 204062ef call tid_initiate 
-4d0d 70007c08 jam lmp_in_rand ,mem_lmo_opcode2 
-4d0e 20204d04 branch cmd_exit 
-
-cmd_pair_passive:
-4d0f 793ffe02 set0 op_inrand_req ,pdata 
-4d10 6000804b store 1 ,mem_op 
-4d11 20406001 call lmp_accept_inrand 
-4d12 58000000 setarg 0 
-4d13 7934fe01 setflag master ,smap_lmptid ,pdata 
-4d14 6000807f store 1 ,mem_lmo_tid2 
-4d15 20204d04 branch cmd_exit 
-4d16 20600000 rtn 
-
-cmd_in_sniff:
-4d17 70007c17 jam lmp_sniff_req ,mem_lmo_opcode2 
-4d18 d8a004d9 arg mem_sniff_payload ,contw 
-4d19 58000000 setarg 0 
-4d1a 2d0ffe1b isolate1 27 ,clke_bt 
-4d1b 7920fe01 setflag true ,1 ,pdata 
-4d1c e0a08000 istore 1 ,contw 
-4d1d 58000000 setarg 0 
-4d1e e0a10000 istore 2 ,contw 
-4d1f 680141e3 fetch 2 ,mem_sniff_param_interval 
-4d20 e0a10000 istore 2 ,contw 
-4d21 6800c1e5 fetch 1 ,mem_sniff_param_attempt 
-4d22 e0a10000 istore 2 ,contw 
-4d23 6800c1e7 fetch 1 ,mem_sniff_param_timeout 
-4d24 e0a10000 istore 2 ,contw 
-4d25 20204d04 branch cmd_exit 
-
-cmd_exit_sniff:
-4d26 70007c18 jam lmp_unsniff_req ,mem_lmo_opcode2 
-4d27 20204d04 branch cmd_exit 
-
-hci_idle_dispatch:
-4d28 20406899 call gpio_check_uart_state 
-4d29 20608000 rtn true 
-4d2a d8400007 arg uart_wakeup_rx ,temp 
-4d2b 2040681d call gpio_get_bit 
-4d2c 2420cd2f nbranch uart_wake_up ,true 
-4d2d 70424501 jam hci_rx_wake ,mem_hci_lt_rx_state 
-4d2e 20600000 rtn 
-
-uart_wake_up:
-4d2f 6800c245 fetch 1 ,mem_hci_lt_rx_state 
-4d30 c1808000 rtnne hci_rx_wake 
-4d31 20404c62 call hci_exit_lpm 
-4d32 20204cec branch hci_send_commu_ready_event 
-
-hid_rx_process:
-4d33 4702c020 bpatchx patch20_5 ,mem_patch20 
-4d34 68010264 fetch 2 ,mem_l2cap_payload_ptr 
-4d35 1fe20c00 copy pdata ,contr 
-4d36 e8c08000 ifetch 1 ,contr 
-4d37 1fe1040f and pdata ,0x0f ,temp 
-4d38 1ff1fe00 rshift4 pdata ,pdata 
-4d39 c004cd53 beq hid_type_set_idle ,hid_rx_process_handshake 
-4d3a c003cd53 beq hid_type_set_protocol ,hid_rx_process_handshake 
-4d3b c0054d5f beq hid_type_data ,hid_rx_process_data 
-4d3c c002cd4b beq hid_type_set_report ,hid_rx_process_set_report 
-4d3d c000cd3f beq hid_type_control ,hid_rx_process_hid_control 
-4d3e 20600000 rtn 
-
-hid_rx_process_hid_control:
-4d3f 18427e00 copy temp ,pdata 
-4d40 c002cd43 beq hid_control_p_virtualcableunplug ,hid_rx_process_virtual_cable_unplug 
-4d41 c001cd4a beq hid_control_p_suspend ,hid_rx_process_suspend 
-4d42 20600000 rtn 
-
-hid_rx_process_virtual_cable_unplug:
-4d43 700a9927 jam bt_evt_virtual_cable_unplug ,mem_fifo_temp 
-4d44 20407d86 call ui_ipc_send_event 
-4d45 6800c092 fetch 1 ,mem_device_option 
-4d46 c4030000 rtnbit0 dvc_op_mouse 
-4d47 18427e00 copy temp ,pdata 
-4d48 c002c38e beq hid_control_p_virtualcableunplug ,mouse_irtual_cable_unplug 
-4d49 20600000 rtn 
-
-hid_rx_process_suspend:
-4d4a 20600000 rtn 
-
-hid_rx_process_set_report:
-4d4b 20404d5f call hid_rx_process_data 
-4d4c da200001 arg 0x01 ,rega 
-4d4d 20404d63 call hid_malloc_tx_buff 
-4d4e 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
-4d4f e0a10000 istore 2 ,contw 
-4d50 58000000 setarg 0x00 
-4d51 e0a08000 istore 1 ,contw 
-4d52 20600000 rtn 
-
-hid_rx_process_handshake:
-4d53 da200001 arg 1 ,rega 
-4d54 20404d63 call hid_malloc_tx_buff 
-4d55 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
-4d56 e0a10000 istore 2 ,contw 
-4d57 58000000 setarg 0 
-4d58 e0a08000 istore 1 ,contw 
-4d59 700a8e01 jam 1 ,mem_ui_data_txbuff_length 
-4d5a 6800c252 fetch 1 ,mem_hid_control_state 
-4d5b 79207e06 set1 l2cap_channel_hid_handshake_done 
-4d5c 6000c252 store 1 ,mem_hid_control_state 
-4d5d 700a9912 jam bt_evt_hid_handshake ,mem_fifo_temp 
-4d5e 20207d86 branch ui_ipc_send_event 
-
-hid_rx_process_data:
-4d5f e8c08000 ifetch 1 ,contr 
-4d60 c000cd62 beq hid_report_id_kb ,hid_rx_process_data_hid_kb 
-4d61 20600000 rtn 
-
-hid_rx_process_data_hid_kb:
-4d62 20600000 rtn 
-
-hid_malloc_tx_buff:
-4d63 20405240 call l2cap_malloc 
-4d64 1a220400 copy rega ,temp 
-4d65 60088a8e storet 1 ,mem_ui_data_txbuff_length 
-4d66 1fe20a00 copy pdata ,contw 
-4d67 1a227e00 copy rega ,pdata 
-4d68 e0a10000 istore 2 ,contw 
-4d69 20600000 rtn 
-
-l2cap_init:
-4d6a 2035cd6f branch l2cap_init_wake ,wake 
-
-l2cap_init_work:
-4d6b 58004365 setarg mem_l2cap_xmem_end 
-4d6c d8a04246 arg mem_l2cap_xmem_start ,contw 
-4d6d 98a67200 isub contw ,loopcnt 
-4d6e 20407ed4 call clear_mem 
-
-l2cap_init_wake:
-4d6f 47034020 bpatchx patch20_6 ,mem_patch20 
-4d70 58000551 setarg mem_sdp_mem_end 
-4d71 d8a00511 arg mem_sdp_mem_start ,contw 
-4d72 98a67200 isub contw ,loopcnt 
-4d73 20407ed4 call clear_mem 
-4d74 580002c9 setarg mem_l2cap_mem_end 
-4d75 d8a0025d arg mem_l2cap_mem_start ,contw 
-4d76 98a67200 isub contw ,loopcnt 
-4d77 20407ed4 call clear_mem 
-4d78 20205318 branch l2cap_lpm_load_txbuf 
-
-process_rx_l2cap_pkt:
-4d79 4703c020 bpatchx patch20_7 ,mem_patch20 
-4d7a 18c20400 copy contr ,temp 
-4d7b 18420c00 copy temp ,contr 
-4d7c e8c10000 ifetch 2 ,contr 
-4d7d 60010266 store 2 ,mem_l2cap_rx_pkt_length 
-4d7e e8c10000 ifetch 2 ,contr 
-4d7f 60010268 store 2 ,mem_l2cap_rx_cid 
-4d80 18c27e00 deposit contr 
-4d81 60010264 store 2 ,mem_l2cap_payload_ptr 
-4d82 6800c681 fetch 1 ,memui_reconnect_mode 
-4d83 c0004d85 beq no_reconnection ,l2cap_rx_multiplexing 
-4d84 202050ef branch ml2cap_rx_multiplexing 
-
-l2cap_rx_multiplexing:
-4d85 68010266 fetch 2 ,mem_l2cap_rx_pkt_length 
-4d86 203a4dfc branch l2cap_rx_reset_state ,blank 
-4d87 47044021 bpatchx patch21_0 ,mem_patch21 
-4d88 68008268 fetch 1 ,mem_l2cap_rx_cid 
-4d89 c000cd9d beq l2cap_signal_channel ,l2cap_call_proc_signal 
-
-l2cap_rx_multiplexing0:
-4d8a c0284de0 beq l2cap_sdp_channel ,l2cap_call_proc_sdp 
-4d8b c028cdf5 beq l2cap_rfcomm_channel ,l2cap_call_proc_rfcomm 
-4d8c c0294df3 beq l2cap_hid_control_channel ,l2cap_call_proc_hid 
-4d8d c029cdf3 beq l2cap_hid_interrupt_channel ,l2cap_call_proc_hid 
-4d8e 20204dfc branch l2cap_rx_reset_state 
-
-l2cap_check_map:
-4d8f 4704c021 bpatchx patch21_1 ,mem_patch21 
-4d90 2040527e call l2cap_malloc_get_full_map 
-4d91 6800c256 fetch 1 ,mem_used_map 
-4d92 c0004d9b beq 0 ,set_pdata_0 
-4d93 c000cd9b beq 1 ,set_pdata_0 
-4d94 c0014d9b beq 2 ,set_pdata_0 
-4d95 c001cd9b beq 3 ,set_pdata_0 
-4d96 c040cd9b beq 0x81 ,set_pdata_0 
-4d97 c0604d9b beq 0xc0 ,set_pdata_0 
-4d98 c0404d9b beq 0x80 ,set_pdata_0 
-4d99 c0204d9b beq 0x40 ,set_pdata_0 
-4d9a 20600000 rtn 
-
-set_pdata_0:
-4d9b 58000000 setarg 0 
-4d9c 20600000 rtn 
-
-l2cap_call_proc_signal:
-4d9d 20404d8f call l2cap_check_map 
-4d9e 247a0000 nrtn blank 
-
-l2cap_call_proc_signal0:
-4d9f 204052b8 call l2cap_malloc_signal_channel 
-4da0 20404e01 call l2cap_process_signal_pkt 
-4da1 6809026f fetcht 2 ,mem_l2cap_signal_tx_length 
-4da2 203a4dfb branch l2cap_call_proc_no_reply ,blank 
-4da3 204052c1 call l2cap_get_signal_tx_buff 
-4da4 6801026f fetch 2 ,mem_l2cap_signal_tx_length 
-4da5 e0a10000 istore 2 ,contw 
-4da6 18007e01 force l2cap_signal_channel ,pdata 
-4da7 e0a10000 istore 2 ,contw 
-4da8 20204dfc branch l2cap_rx_reset_state 
-
-l2cap_call_proc_sigal_pending:
-4da9 6800c364 fetch 1 ,mem_l2cap_pending_item 
-4daa 207a0000 rtn blank 
-4dab 1fe22200 copy pdata ,rega 
-4dac 47054021 bpatchx patch21_2 ,mem_patch21 
-4dad 680202d5 fetch 4 ,mem_l2cap_sdpres_delay_time 
-4dae d8400100 arg 0x100 ,temp 
-4daf 98408400 iadd temp ,temp 
-4db0 1c427e00 copy clkn_bt ,pdata 
-4db1 98467c00 isub temp ,null 
-4db2 24610000 nrtn positive 
-4db3 70436400 jam 0 ,mem_l2cap_pending_item 
-4db4 1a227e00 copy rega ,pdata 
-4db5 c0284db7 beq l2cap_sdp_channel ,l2cap_sdp_conn_succ 
-4db6 20202a8c branch assert 
-
-l2cap_sdp_conn_succ:
-4db7 d9000000 arg 0 ,debug 
-4db8 204052b8 call l2cap_malloc_signal_channel 
-4db9 20404e7a call restore_l2cap_req_param 
-4dba 204052c3 call l2cap_get_signal_tx_payload 
-4dbb 20407ea8 call save_cont_pointers 
-4dbc 20404ead call send_connection_sdp_res 
-4dbd 204052c1 call l2cap_get_signal_tx_buff 
-4dbe 5800000c setarg 0x000c 
-4dbf e0a10000 istore 2 ,contw 
-4dc0 18007e01 force l2cap_signal_channel ,pdata 
-4dc1 e0a10000 istore 2 ,contw 
-4dc2 20204dfc branch l2cap_rx_reset_state 
-
-l2cap_reset_sdp_map:
-4dc3 4705c021 bpatchx patch21_3 ,mem_patch21 
-4dc4 68010275 fetch 2 ,mem_sdp_tx_pkt_length 
-4dc5 1fe0fe04 increase 4 ,pdata 
-4dc6 1ff1fe00 rshift4 pdata ,pdata 
-4dc7 1fe97e00 rshift3 pdata ,pdata 
-4dc8 1fe08401 add pdata ,1 ,temp 
-4dc9 d8c04260 arg mem_tx_fifo3 ,contr 
-4dca e8c18000 ifetch 3 ,contr 
-4dcb 207a0000 rtn blank 
-4dcc 60018ac2 store 3 ,mem_tx_fifo_map_temp 
-4dcd 68008ac2 fetch 1 ,mem_tx_fifo_map_temp 
-4dce 1fe22200 copy pdata ,rega 
-4dcf 20404dd3 call check_l2cap_map 
-4dd0 1a427e00 copy regb ,pdata 
-4dd1 6000c260 store 1 ,mem_tx_fifo3 
-4dd2 20600000 rtn 
-
-check_l2cap_map:
-4dd3 d8e00000 arg 0 ,queue 
-4dd4 da400000 arg 0 ,regb 
-
-check_l2cap_map_loop:
-4dd5 18e67c07 sub queue ,7 ,null 
-4dd6 24610000 nrtn positive 
-4dd7 aa2fffff qisolate1 rega 
-4dd8 2020cdda branch check_l2cap_map_used ,true 
-4dd9 20204dde branch check_l2cap_map_used2 
-
-check_l2cap_map_used:
-4dda 18427e00 copy temp ,pdata 
-4ddb 203a4dde branch check_l2cap_map_used2 ,blank 
-4ddc f9202400 qset1 regb 
-4ddd 184085ff increase -1 ,temp 
-
-check_l2cap_map_used2:
-4dde 18e08e01 increase 1 ,queue 
-4ddf 20204dd5 branch check_l2cap_map_loop 
-
-l2cap_call_proc_sdp:
-4de0 20405274 call l2cap_malloc_is_fifo_empty 
-4de1 247a0000 nrtn blank 
-4de2 20404d8f call l2cap_check_map 
-4de3 247a0000 nrtn blank 
-4de4 204052c5 call l2cap_malloc_sdp_channel 
-4de5 20406e11 call sdp_process 
-4de6 20404dc3 call l2cap_reset_sdp_map 
-4de7 20204dec branch l2cap_call_proc_sdp_common 
-
-ml2cap_call_proc_sdp:
-4de8 20405274 call l2cap_malloc_is_fifo_empty 
-4de9 247a0000 nrtn blank 
-4dea 204052c5 call l2cap_malloc_sdp_channel 
-4deb 20406e11 call sdp_process 
-
-l2cap_call_proc_sdp_common:
-4dec 204052ce call l2cap_get_sdp_tx_buff 
-4ded 68010275 fetch 2 ,mem_sdp_tx_pkt_length 
-4dee 203a4dfb branch l2cap_call_proc_no_reply ,blank 
-4def e0a10000 istore 2 ,contw 
-4df0 68014248 fetch 2 ,mem_sdp_remote_cid 
-4df1 e0a10000 istore 2 ,contw 
-4df2 20204dfc branch l2cap_rx_reset_state 
-
-l2cap_call_proc_hid:
-4df3 20404d33 call hid_rx_process 
-4df4 20204dfc branch l2cap_rx_reset_state 
-
-l2cap_call_proc_rfcomm:
-4df5 47064021 bpatchx patch21_4 ,mem_patch21 
-4df6 70028400 jam rfcomm_malloc_succeed ,mem_rfcomm_malloc_fail_flag 
-4df7 20406a8a call rfcomm_rx_process 
-4df8 68008284 fetch 1 ,mem_rfcomm_malloc_fail_flag 
-4df9 c1008000 rtneq rfcomm_malloc_fail 
-4dfa 20204dfc branch l2cap_rx_reset_state 
-
-l2cap_call_proc_no_reply:
-4dfb 20405264 call l2cap_malloc_discard 
-
-l2cap_rx_reset_state:
-4dfc 58000000 setarg 0 
-4dfd 60010266 store 2 ,mem_l2cap_rx_pkt_length 
-4dfe 60010268 store 2 ,mem_l2cap_rx_cid 
-4dff 70026a01 jam l2cap_rx_done ,mem_l2cap_rx_done 
-4e00 20600000 rtn 
-
-l2cap_process_signal_pkt:
-4e01 4706c021 bpatchx patch21_5 ,mem_patch21 
-4e02 204052c3 call l2cap_get_signal_tx_payload 
-4e03 18002400 force 0 ,regb 
-4e04 68010266 fetch 2 ,mem_l2cap_rx_pkt_length 
-4e05 1fe22600 copy pdata ,regc 
-4e06 68010264 fetch 2 ,mem_l2cap_payload_ptr 
-4e07 98000c00 iforce contr 
-
-l2cap_process_signal_pkt_loop:
-4e08 20404e10 call l2cap_process_one_signal 
-4e09 1a627e00 deposit regc 
-4e0a 1a60a7fc increase -4 ,regc 
-4e0b 1fe0fffc increase -4 ,pdata 
-4e0c 243a4e08 nbranch l2cap_process_signal_pkt_loop ,blank 
-4e0d 1a427e00 copy regb ,pdata 
-4e0e 6001026f store 2 ,mem_l2cap_signal_tx_length 
-4e0f 20600000 rtn 
-
-l2cap_process_one_signal:
-4e10 47074021 bpatchx patch21_6 ,mem_patch21 
-4e11 e8c08000 ifetch 1 ,contr 
-4e12 c000ce49 beq signal_cmd_reject ,l2cap_proc_signal_cmd_reject 
-4e13 c0014e51 beq signal_connect_req ,l2cap_proc_signal_connect_req 
-4e14 c001ced5 beq signal_connect_rsp ,l2cap_proc_signal_connect_rsp 
-4e15 c0024f05 beq signal_config_req ,l2cap_proc_signal_config_req 
-4e16 c002cfa2 beq signal_config_rsp ,l2cap_proc_signal_config_rsp 
-4e17 c0034fcb beq signal_disconnect_req ,l2cap_proc_signal_disconnect_req 
-4e18 c003d01b beq signal_disconnect_rsp ,l2cap_proc_signal_disconnect_rsp 
-4e19 c0045050 beq signal_echo_req ,l2cap_proc_signal_echo_req 
-4e1a c004d060 beq signal_echo_rsp ,l2cap_proc_signal_echo_rsp 
-4e1b c0054e1f beq signal_info_req ,l2cap_proc_signal_info_req 
-4e1c c005d061 beq signal_info_rsp ,l2cap_proc_signal_info_rsp 
-4e1d 20405062 call l2cap_reject_command 
-
-l2cap_process_one_signal_rtn:
-4e1e 20600000 rtn 
-
-l2cap_proc_signal_info_req:
-4e1f e8c08000 ifetch 1 ,contr 
-4e20 1fe20e00 copy pdata ,queue 
-4e21 e8c10000 ifetch 2 ,contr 
-4e22 1fe22200 copy pdata ,rega 
-4e23 1a627e00 copy regc ,pdata 
-4e24 9a262600 isub rega ,regc 
-4e25 5800000b setarg signal_info_rsp 
-4e26 e0a08000 istore 1 ,contw 
-4e27 18e27e00 copy queue ,pdata 
-4e28 e0a08000 istore 1 ,contw 
-4e29 e8c10000 ifetch 2 ,contr 
-
-l2cap_proc_signal_info_req_reply:
-4e2a c0014e2d beq l2cap_sig_ext_featrue ,l2cap_proc_signal_info_req_ext 
-4e2b c001ce33 beq l2cap_sig_fix_featrue ,l2cap_proc_signal_info_req_fix 
-4e2c 20600000 rtn 
-
-l2cap_proc_signal_info_req_ext:
-4e2d 58020008 setarg 0x020008 
-4e2e e0a30000 istore 6 ,contw 
-4e2f 58000280 setarg 0x0280 
-4e30 e0a20000 istore 4 ,contw 
-4e31 18007e0c force 12 ,pdata 
-4e32 20204e38 branch l2cap_proc_signal_info_req_common 
-
-l2cap_proc_signal_info_req_fix:
-4e33 5803000c setarg 0x3000c 
-4e34 e0a30000 istore 6 ,contw 
-4e35 58000006 setarg 0x0006 
-4e36 e0a40000 istore 8 ,contw 
-4e37 18007e10 force 16 ,pdata 
-
-l2cap_proc_signal_info_req_common:
-4e38 9a40a400 iadd regb ,regb 
-4e39 20204e1e branch l2cap_process_one_signal_rtn 
-
-ml2cap_proc_signal_info_req:
-4e3a e8c08000 ifetch 1 ,contr 
-4e3b 1fe20e00 copy pdata ,queue 
-4e3c e8c10000 ifetch 2 ,contr 
-4e3d 1fe22200 copy pdata ,rega 
-4e3e e8c10000 ifetch 2 ,contr 
-4e3f 60010aa2 store 2 ,mem_temp 
-4e40 1a627e00 copy regc ,pdata 
-4e41 9a262600 isub rega ,regc 
-4e42 204052c3 call l2cap_get_signal_tx_payload 
-4e43 5800000b setarg signal_info_rsp 
-4e44 e0a08000 istore 1 ,contw 
-4e45 18e27e00 copy queue ,pdata 
-4e46 e0a08000 istore 1 ,contw 
-4e47 68010aa2 fetch 2 ,mem_temp 
-4e48 20204e2a branch l2cap_proc_signal_info_req_reply 
-
-l2cap_proc_signal_cmd_reject:
-4e49 e8c08000 ifetch 1 ,contr 
-4e4a 1fe20e00 copy pdata ,queue 
-4e4b e8c10000 ifetch 2 ,contr 
-4e4c 1fe22200 copy pdata ,rega 
-4e4d 98c08c00 iadd contr ,contr 
-4e4e 1a627e00 copy regc ,pdata 
-4e4f 9a262600 isub rega ,regc 
-
-l2cap_proc_signal_cmd_reject_rtn:
-4e50 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_connect_req:
-4e51 20407ea8 call save_cont_pointers 
-4e52 20407ead call load_cont_pointers 
-4e53 d9000000 arg 0 ,debug 
-4e54 e8c08000 ifetch 1 ,contr 
-4e55 1fe20e00 copy pdata ,queue 
-4e56 e8c10000 ifetch 2 ,contr 
-4e57 1fe22200 copy pdata ,rega 
-4e58 e8c10000 ifetch 2 ,contr 
-4e59 1fe20400 copy pdata ,temp 
-4e5a e8c10000 ifetch 2 ,contr 
-4e5b 1fe21600 copy pdata ,timeup 
-4e5c 4707c021 bpatchx patch21_7 ,mem_patch21 
-4e5d 18427e00 copy temp ,pdata 
-4e5e c000ce64 beq psm_sdp ,l2cap_proc_signal_connect_req_sdp 
-4e5f c001ce86 beq psm_rfcomm ,l2cap_proc_signal_connect_req_rfcomm 
-4e60 c008ce92 beq psm_hid_control ,l2cap_proc_signal_connect_req_hid_ctrl 
-4e61 c009ce9d beq psm_hid_interrupt ,l2cap_proc_signal_connect_req_hid_int 
-4e62 20405062 call l2cap_reject_command 
-4e63 20204ed4 branch l2cap_proc_signal_connect_req_rtn 
-
-l2cap_proc_signal_connect_req_sdp:
-4e64 20407ea8 call save_cont_pointers 
-4e65 d8400050 arg l2cap_sdp_channel ,temp 
-4e66 68014248 fetch 2 ,mem_sdp_remote_cid 
-4e67 243a4ece nbranch already_connected ,blank 
-4e68 19627e00 copy timeup ,pdata 
-4e69 60014248 store 2 ,mem_sdp_remote_cid 
-4e6a 1c427e00 copy clkn_bt ,pdata 
-4e6b 600202d5 store 4 ,mem_l2cap_sdpres_delay_time 
-4e6c 20404e6e call store_l2cap_req_param 
-4e6d 20204ea9 branch send_connection_pending 
-
-store_l2cap_req_param:
-4e6e 600902d3 storet 2 ,mem_psm 
-4e6f 19627e00 deposit timeup 
-4e70 600102c9 store 2 ,mem_scid 
-4e71 1a227e00 deposit rega 
-4e72 600102cb store 2 ,mem_cmd_length 
-4e73 1a427e00 deposit regb 
-4e74 600102cd store 2 ,mem_tt2 
-4e75 1a627e00 deposit regc 
-4e76 600102cf store 2 ,mem_tt3 
-4e77 18e27e00 deposit queue 
-4e78 600102d1 store 2 ,mem_id 
-4e79 20600000 rtn 
-
-restore_l2cap_req_param:
-4e7a 680902d3 fetcht 2 ,mem_psm 
-4e7b 680102c9 fetch 2 ,mem_scid 
-4e7c 1fe21600 copy pdata ,timeup 
-4e7d 680102cb fetch 2 ,mem_cmd_length 
-4e7e 1fe22200 copy pdata ,rega 
-4e7f 680102cd fetch 2 ,mem_tt2 
-4e80 1fe22400 copy pdata ,regb 
-4e81 680102cf fetch 2 ,mem_tt3 
-4e82 1fe22600 copy pdata ,regc 
-4e83 680102d1 fetch 2 ,mem_id 
-4e84 1fe20e00 copy pdata ,queue 
-4e85 20600000 rtn 
-
-l2cap_proc_signal_connect_req_rfcomm:
-4e86 20407ea8 call save_cont_pointers 
-4e87 58000051 setarg l2cap_rfcomm_channel 
-4e88 d8400051 arg l2cap_rfcomm_channel ,temp 
-4e89 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-4e8a 243a4ece nbranch already_connected ,blank 
-4e8b 19627e00 copy timeup ,pdata 
-4e8c 6001424a store 2 ,mem_rfcomm_remote_cid 
-4e8d 6800c251 fetch 1 ,mem_rfcomm_state 
-4e8e 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
-4e8f 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
-4e90 6000c251 store 1 ,mem_rfcomm_state 
-4e91 20204eb1 branch send_connection_res 
-
-l2cap_proc_signal_connect_req_hid_ctrl:
-4e92 20407ea8 call save_cont_pointers 
-4e93 d8400052 arg l2cap_hid_control_channel ,temp 
-4e94 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
-4e95 243a4ece nbranch already_connected ,blank 
-4e96 19627e00 copy timeup ,pdata 
-4e97 6001424c store 2 ,mem_hid_ctrl_remote_cid 
-4e98 6800c252 fetch 1 ,mem_hid_control_state 
-4e99 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
-4e9a 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
-4e9b 6000c252 store 1 ,mem_hid_control_state 
-4e9c 20204eb1 branch send_connection_res 
-
-l2cap_proc_signal_connect_req_hid_int:
-4e9d 20407ea8 call save_cont_pointers 
-4e9e 1b427e00 deposit clke 
-4e9f d8400053 arg l2cap_hid_interrupt_channel ,temp 
-4ea0 6801424e fetch 2 ,mem_hid_int_remote_cid 
-4ea1 243a4ece nbranch already_connected ,blank 
-4ea2 19627e00 copy timeup ,pdata 
-4ea3 6001424e store 2 ,mem_hid_int_remote_cid 
-4ea4 6800c253 fetch 1 ,mem_hid_interrupt_state 
-4ea5 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
-4ea6 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
-4ea7 6000c253 store 1 ,mem_hid_interrupt_state 
-4ea8 20204eb1 branch send_connection_res 
-
-send_connection_pending:
-4ea9 58000001 setarg l2cap_connect_pending 
-4eaa 6001027d store 2 ,meml2cap_t1 
-4eab 70436450 jam l2cap_sdp_channel ,mem_l2cap_pending_item 
-4eac 20204eb3 branch send_connection_res0 
-
-send_connection_sdp_res:
-4ead 6800c250 fetch 1 ,mem_sdp_state 
-4eae 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
-4eaf 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
-4eb0 6000c250 store 1 ,mem_sdp_state 
-
-send_connection_res:
-4eb1 58000000 setarg l2cap_connect_successful 
-4eb2 6001027d store 2 ,meml2cap_t1 
-
-send_connection_res0:
-4eb3 47084022 bpatchx patch22_0 ,mem_patch22 
-4eb4 20407ead call load_cont_pointers 
-4eb5 58000003 setarg signal_connect_rsp 
-4eb6 e0a08000 istore 1 ,contw 
-4eb7 18e27e00 copy queue ,pdata 
-4eb8 e0a08000 istore 1 ,contw 
-4eb9 58000008 setarg 0x0008 
-4eba e0a10000 istore 2 ,contw 
-4ebb 18427e00 copy temp ,pdata 
-4ebc e0a10000 istore 2 ,contw 
-4ebd 19627e00 copy timeup ,pdata 
-4ebe e0a10000 istore 2 ,contw 
-4ebf 6801027d fetch 2 ,meml2cap_t1 
-4ec0 c000cec9 beq l2cap_connect_pending ,connect_pending 
-4ec1 290c0000 isolate0 0 ,debug 
-4ec2 2020cec4 branch connect_suc ,true 
-4ec3 58000004 setarg l2cap_connect_refused_no_resources 
-
-connect_suc:
-4ec4 e0a10000 istore 2 ,contw 
-4ec5 18007e00 force 0x0000 ,pdata 
-4ec6 e0a10000 istore 2 ,contw 
-4ec7 5800000c setarg 12 
-4ec8 20204ed0 branch connect_req_update_byte_counts 
-
-connect_pending:
-4ec9 e0a10000 istore 2 ,contw 
-4eca 18007e02 force 0x0002 ,pdata 
-4ecb e0a10000 istore 2 ,contw 
-4ecc 5800000c setarg 12 
-4ecd 20204ed0 branch connect_req_update_byte_counts 
-
-already_connected:
-4ece 79201000 set1 0 ,debug 
-4ecf 20204eb1 branch send_connection_res 
-
-connect_req_update_byte_counts:
-4ed0 9a40a400 iadd regb ,regb 
-4ed1 1a627e00 copy regc ,pdata 
-4ed2 9a262600 isub rega ,regc 
-4ed3 20204ed4 branch l2cap_proc_signal_connect_req_rtn 
-
-l2cap_proc_signal_connect_req_rtn:
-4ed4 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_connect_rsp:
-4ed5 e8c08000 ifetch 1 ,contr 
-4ed6 1fe20e00 copy pdata ,queue 
-4ed7 e8c10000 ifetch 2 ,contr 
-4ed8 1fe22200 copy pdata ,rega 
-4ed9 1a627e00 copy regc ,pdata 
-4eda 9a262600 isub rega ,regc 
-4edb e8c10000 ifetch 2 ,contr 
-4edc 1fe21600 copy pdata ,timeup 
-4edd e8c10000 ifetch 2 ,contr 
-4ede 1fe20400 copy pdata ,temp 
-4edf 4708c022 bpatchx patch22_1 ,mem_patch22 
-4ee0 58000050 setarg l2cap_sdp_channel 
-4ee1 98467c00 isub temp ,null 
-4ee2 2022ceed branch l2cap_proc_signal_connect_rsp_sdp ,zero 
-4ee3 58000051 setarg l2cap_rfcomm_channel 
-4ee4 98467c00 isub temp ,null 
-4ee5 2022cef3 branch l2cap_proc_signal_connect_rsp_rfcomm ,zero 
-4ee6 58000052 setarg l2cap_hid_control_channel 
-4ee7 98467c00 isub temp ,null 
-4ee8 2022ceff branch l2cap_proc_signal_connect_rsp_hid_ctrl ,zero 
-4ee9 58000053 setarg l2cap_hid_interrupt_channel 
-4eea 98467c00 isub temp ,null 
-4eeb 2022cef9 branch l2cap_proc_signal_connect_rsp_hid_int ,zero 
-4eec 20600000 rtn 
-
-l2cap_proc_signal_connect_rsp_sdp:
-4eed 19627e00 copy timeup ,pdata 
-4eee 60014248 store 2 ,mem_sdp_remote_cid 
-4eef 6800c250 fetch 1 ,mem_sdp_state 
-4ef0 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
-4ef1 6000c250 store 1 ,mem_sdp_state 
-4ef2 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_connect_rsp_rfcomm:
-4ef3 19627e00 copy timeup ,pdata 
-4ef4 6001424a store 2 ,mem_rfcomm_remote_cid 
-4ef5 6800c251 fetch 1 ,mem_rfcomm_state 
-4ef6 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
-4ef7 6000c251 store 1 ,mem_rfcomm_state 
-4ef8 20600000 rtn 
-
-l2cap_proc_signal_connect_rsp_hid_int:
-4ef9 19627e00 copy timeup ,pdata 
-4efa 6001424c store 2 ,mem_hid_ctrl_remote_cid 
-4efb 6800c253 fetch 1 ,mem_hid_interrupt_state 
-4efc 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
-4efd 6000c253 store 1 ,mem_hid_interrupt_state 
-4efe 20600000 rtn 
-
-l2cap_proc_signal_connect_rsp_hid_ctrl:
-4eff 19627e00 copy timeup ,pdata 
-4f00 6001424e store 2 ,mem_hid_int_remote_cid 
-4f01 6800c252 fetch 1 ,mem_hid_control_state 
-4f02 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
-4f03 6000c252 store 1 ,mem_hid_control_state 
-4f04 20600000 rtn 
-
-l2cap_proc_signal_config_req:
-4f05 e8c08000 ifetch 1 ,contr 
-4f06 1fe20e00 copy pdata ,queue 
-4f07 e8c10000 ifetch 2 ,contr 
-4f08 1fe22200 copy pdata ,rega 
-4f09 1a627e00 copy regc ,pdata 
-4f0a 9a262600 isub rega ,regc 
-4f0b e8c10000 ifetch 2 ,contr 
-4f0c 1fe20400 copy pdata ,temp 
-4f0d 18422200 copy temp ,rega 
-4f0e 47094022 bpatchx patch22_2 ,mem_patch22 
-4f0f 58000050 setarg l2cap_sdp_channel 
-4f10 98467c00 isub temp ,null 
-4f11 2022cf1c branch l2cap_proc_signal_config_req_sdp ,zero 
-4f12 58000051 setarg l2cap_rfcomm_channel 
-4f13 98467c00 isub temp ,null 
-4f14 2022cf3a branch l2cap_proc_signal_config_req_rfcomm ,zero 
-4f15 58000052 setarg l2cap_hid_control_channel 
-4f16 98467c00 isub temp ,null 
-4f17 2022cf26 branch l2cap_proc_signal_config_req_hid_ctrl ,zero 
-4f18 58000053 setarg l2cap_hid_interrupt_channel 
-4f19 98467c00 isub temp ,null 
-4f1a 2022cf30 branch l2cap_proc_signal_config_req_hid_int ,zero 
-4f1b 20205062 branch l2cap_reject_command 
-
-l2cap_proc_signal_config_req_sdp:
-4f1c 18a21600 copy contw ,timeup 
-4f1d 6800c250 fetch 1 ,mem_sdp_state 
-4f1e 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
-4f1f 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
-4f20 6000c250 store 1 ,mem_sdp_state 
-4f21 19620a00 copy timeup ,contw 
-4f22 d9600050 arg l2cap_sdp_channel ,timeup 
-4f23 68014248 fetch 2 ,mem_sdp_remote_cid 
-4f24 1fe20400 copy pdata ,temp 
-4f25 20204f43 branch l2cap_send_config_rsp 
-
-l2cap_proc_signal_config_req_hid_ctrl:
-4f26 18a21600 copy contw ,timeup 
-4f27 6800c252 fetch 1 ,mem_hid_control_state 
-4f28 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
-4f29 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
-4f2a 6000c252 store 1 ,mem_hid_control_state 
-4f2b 19620a00 copy timeup ,contw 
-4f2c d9600052 arg l2cap_hid_control_channel ,timeup 
-4f2d 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
-4f2e 1fe20400 copy pdata ,temp 
-4f2f 20204f43 branch l2cap_send_config_rsp 
-
-l2cap_proc_signal_config_req_hid_int:
-4f30 18a21600 copy contw ,timeup 
-4f31 6800c253 fetch 1 ,mem_hid_interrupt_state 
-4f32 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
-4f33 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
-4f34 6000c253 store 1 ,mem_hid_interrupt_state 
-4f35 19620a00 copy timeup ,contw 
-4f36 d9600053 arg l2cap_hid_interrupt_channel ,timeup 
-4f37 6801424e fetch 2 ,mem_hid_int_remote_cid 
-4f38 1fe20400 copy pdata ,temp 
-4f39 20204f43 branch l2cap_send_config_rsp 
-
-l2cap_proc_signal_config_req_rfcomm:
-4f3a 18a21600 copy contw ,timeup 
-4f3b 6800c251 fetch 1 ,mem_rfcomm_state 
-4f3c 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
-4f3d 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
-4f3e 6000c251 store 1 ,mem_rfcomm_state 
-4f3f 19620a00 copy timeup ,contw 
-4f40 d9600051 arg l2cap_rfcomm_channel ,timeup 
-4f41 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-4f42 1fe20400 copy pdata ,temp 
-
-l2cap_send_config_rsp:
-4f43 4709c022 bpatchx patch22_3 ,mem_patch22 
-4f44 58000005 setarg signal_config_rsp 
-4f45 e0a08000 istore 1 ,contw 
-4f46 18e27e00 copy queue ,pdata 
-4f47 e0a08000 istore 1 ,contw 
-4f48 58000006 setarg 0x0006 
-4f49 e0a10000 istore 2 ,contw 
-4f4a 18427e00 copy temp ,pdata 
-4f4b e0a10000 istore 2 ,contw 
-4f4c 18007e00 force 0x00 ,pdata 
-4f4d e0a10000 istore 2 ,contw 
-4f4e 18007e00 force l2cap_config_success ,pdata 
-4f4f e0a10000 istore 2 ,contw 
-4f50 18007e0a force 10 ,pdata 
-4f51 9a40a400 iadd regb ,regb 
-4f52 60090282 storet 2 ,mem_config_req_dest_cid 
-4f53 18e27e00 copy queue ,pdata 
-4f54 60008281 store 1 ,mem_config_identifier 
-4f55 18007e50 force l2cap_sdp_channel ,pdata 
-4f56 a961fe00 icompare 0xff ,timeup 
-4f57 2020cf59 branch l2cap_send_config_rsp_is_sdp ,true 
-4f58 1fe0fe01 increase 1 ,pdata 
-
-l2cap_send_config_rsp_is_sdp:
-4f59 20600000 rtn 
-
-l2cap_check_channel_state:
-4f5a 78547c00 disable user 
-4f5b c3810000 rtnbit1 l2cap_channel_state_snd_cfg_req ,pdata 
-4f5c c4000000 rtnbit0 l2cap_channel_state_conn_req ,pdata 
-4f5d c4008000 rtnbit0 l2cap_channel_state_conn_res ,pdata 
-4f5e 79207e02 set1 l2cap_channel_state_snd_cfg_req ,pdata 
-4f5f 18c20a00 copy contr ,contw 
-4f60 18a08bff increase -1 ,contw 
-4f61 e0a08000 istore 1 ,contw 
-4f62 78347c00 enable user 
-4f63 20600000 rtn 
-
-l2cap_send_config_req:
-
-l2cap_send_config_req_sdp:
-4f64 6800c250 fetch 1 ,mem_sdp_state 
-4f65 20404f5a call l2cap_check_channel_state 
-4f66 24344f6b nbranch l2cap_send_config_req_rfcomm ,user 
-4f67 70028050 jam l2cap_sdp_channel ,mem_send_config_req 
-4f68 68014248 fetch 2 ,mem_sdp_remote_cid 
-4f69 60010282 store 2 ,mem_config_req_dest_cid 
-4f6a 20204f7f branch l2cap_generate_config_req 
-
-l2cap_send_config_req_rfcomm:
-4f6b 6800c251 fetch 1 ,mem_rfcomm_state 
-4f6c 20404f5a call l2cap_check_channel_state 
-4f6d 24344f72 nbranch l2cap_send_config_req_hid_ctrl ,user 
-4f6e 70028051 jam l2cap_rfcomm_channel ,mem_send_config_req 
-4f6f 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-4f70 60010282 store 2 ,mem_config_req_dest_cid 
-4f71 20204f7f branch l2cap_generate_config_req 
-
-l2cap_send_config_req_hid_ctrl:
-4f72 6800c252 fetch 1 ,mem_hid_control_state 
-4f73 20404f5a call l2cap_check_channel_state 
-4f74 24344f79 nbranch l2cap_send_config_req_hid_int ,user 
-4f75 70028052 jam l2cap_hid_control_channel ,mem_send_config_req 
-4f76 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
-4f77 60010282 store 2 ,mem_config_req_dest_cid 
-4f78 20204f7f branch l2cap_generate_config_req 
-
-l2cap_send_config_req_hid_int:
-4f79 6800c253 fetch 1 ,mem_hid_interrupt_state 
-4f7a 20404f5a call l2cap_check_channel_state 
-4f7b 24740000 nrtn user 
-4f7c 70028053 jam l2cap_hid_interrupt_channel ,mem_send_config_req 
-4f7d 6801424e fetch 2 ,mem_hid_int_remote_cid 
-4f7e 60010282 store 2 ,mem_config_req_dest_cid 
-
-l2cap_generate_config_req:
-4f7f 470a4022 bpatchx patch22_4 ,mem_patch22 
-4f80 2040523a call l2cap_get_req_id 
-4f81 204052b8 call l2cap_malloc_signal_channel 
-4f82 18002400 force 0 ,regb 
-4f83 204052c3 call l2cap_get_signal_tx_payload 
-4f84 18007e04 force signal_config_req ,pdata 
-4f85 e0a08000 istore 1 ,contw 
-4f86 6800c255 fetch 1 ,mem_ml2cap_comm_id 
-4f87 e0a08000 istore 1 ,contw 
-4f88 58000008 setarg 0x0008 
-4f89 e0a10000 istore 2 ,contw 
-4f8a 68010282 fetch 2 ,mem_config_req_dest_cid 
-4f8b e0a10000 istore 2 ,contw 
-4f8c 58000000 setarg 0x0000 
-4f8d e0a10000 istore 2 ,contw 
-4f8e 18007e01 force 1 ,pdata 
-4f8f e0a08000 istore 1 ,contw 
-4f90 18007e02 force 2 ,pdata 
-4f91 e0a08000 istore 1 ,contw 
-4f92 68008280 fetch 1 ,mem_send_config_req 
-4f93 c028cf97 beq l2cap_rfcomm_channel ,l2cap_generate_config_req_rfcomm 
-4f94 58000030 setarg l2cap_config_mtu_sdp 
-4f95 e0a10000 istore 2 ,contw 
-4f96 20204f99 branch l2cap_generate_config_req_done 
-
-l2cap_generate_config_req_rfcomm:
-4f97 580003e3 setarg l2cap_config_mtu_rfcomm 
-4f98 e0a10000 istore 2 ,contw 
-
-l2cap_generate_config_req_done:
-4f99 d840000c arg 0x0c ,temp 
-4f9a 6009026f storet 2 ,mem_l2cap_signal_tx_length 
-4f9b 204052c1 call l2cap_get_signal_tx_buff 
-4f9c 6801026f fetch 2 ,mem_l2cap_signal_tx_length 
-4f9d e0a10000 istore 2 ,contw 
-4f9e 18007e01 force l2cap_signal_channel ,pdata 
-4f9f e0a10000 istore 2 ,contw 
-4fa0 70028000 jam 0 ,mem_send_config_req 
-
-l2cap_proc_signal_config_req_rtn:
-4fa1 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_config_rsp:
-4fa2 18c08c01 increase 1 ,contr 
-4fa3 e8c10000 ifetch 2 ,contr 
-4fa4 1fe22200 copy pdata ,rega 
-4fa5 1a627e00 copy regc ,pdata 
-4fa6 9a262600 isub rega ,regc 
-4fa7 e8c10000 ifetch 2 ,contr 
-4fa8 1fe22200 copy pdata ,rega 
-4fa9 470ac022 bpatchx patch22_5 ,mem_patch22 
-4faa 58000050 setarg l2cap_sdp_channel 
-4fab 9a267c00 isub rega ,null 
-4fac 2022cfba branch l2cap_proc_signal_config_rsp_sdp ,zero 
-4fad 58000051 setarg l2cap_rfcomm_channel 
-4fae 9a267c00 isub rega ,null 
-4faf 2022cfbe branch l2cap_proc_signal_config_rsp_rfcomm ,zero 
-4fb0 58000052 setarg l2cap_hid_control_channel 
-4fb1 9a267c00 isub rega ,null 
-4fb2 2022cfc2 branch l2cap_proc_signal_config_rsp_hid_ctrl ,zero 
-4fb3 58000053 setarg l2cap_hid_interrupt_channel 
-4fb4 9a267c00 isub rega ,null 
-4fb5 2022cfc6 branch l2cap_proc_signal_config_rsp_hid_int ,zero 
-4fb6 18c08c02 increase 2 ,contr 
-4fb7 e8c10000 ifetch 2 ,contr 
-4fb8 98007c00 iforce null 
-4fb9 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_config_rsp_sdp:
-4fba 6800c250 fetch 1 ,mem_sdp_state 
-4fbb 79207e05 set1 l2cap_channel_state_rcv_cfg_res ,pdata 
-4fbc 6000c250 store 1 ,mem_sdp_state 
-4fbd 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_config_rsp_rfcomm:
-4fbe 6800c251 fetch 1 ,mem_rfcomm_state 
-4fbf 79207e05 set1 l2cap_channel_state_rcv_cfg_res ,pdata 
-4fc0 6000c251 store 1 ,mem_rfcomm_state 
-4fc1 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_config_rsp_hid_ctrl:
-4fc2 6800c252 fetch 1 ,mem_hid_control_state 
-4fc3 79207e05 set1 l2cap_channel_state_rcv_cfg_res ,pdata 
-4fc4 6000c252 store 1 ,mem_hid_control_state 
-4fc5 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_config_rsp_hid_int:
-4fc6 6800c253 fetch 1 ,mem_hid_interrupt_state 
-4fc7 79207e05 set1 l2cap_channel_state_rcv_cfg_res ,pdata 
-4fc8 6000c253 store 1 ,mem_hid_interrupt_state 
-4fc9 700a9906 jam bt_evt_hid_connected ,mem_fifo_temp 
-4fca 20207d86 branch ui_ipc_send_event 
-
-l2cap_proc_signal_disconnect_req:
-4fcb e8c08000 ifetch 1 ,contr 
-4fcc 1fe20e00 copy pdata ,queue 
-4fcd e8c10000 ifetch 2 ,contr 
-4fce 1fe22200 copy pdata ,rega 
-4fcf 1a627e00 copy regc ,pdata 
-4fd0 9a262600 isub rega ,regc 
-4fd1 e8c10000 ifetch 2 ,contr 
-4fd2 1fe22200 copy pdata ,rega 
-4fd3 e8c10000 ifetch 2 ,contr 
-4fd4 1fe21600 copy pdata ,timeup 
-4fd5 1a220400 copy rega ,temp 
-4fd6 20407ea8 call save_cont_pointers 
-4fd7 470b4022 bpatchx patch22_6 ,mem_patch22 
-4fd8 58000050 setarg l2cap_sdp_channel 
-4fd9 98467c00 isub temp ,null 
-4fda 2022cff2 branch l2cap_proc_signal_disconnect_req_sdp ,zero 
-4fdb 58000051 setarg l2cap_rfcomm_channel 
-4fdc 98467c00 isub temp ,null 
-4fdd 2022d002 branch l2cap_proc_signal_disconnect_req_rfcomm ,zero 
-4fde 58000052 setarg l2cap_hid_control_channel 
-4fdf 98467c00 isub temp ,null 
-4fe0 2022cfe6 branch l2cap_proc_signal_disconnect_req_hid_ctrl ,zero 
-4fe1 58000053 setarg l2cap_hid_interrupt_channel 
-4fe2 98467c00 isub temp ,null 
-4fe3 2022cfec branch l2cap_proc_signal_disconnect_req_hid_int ,zero 
-4fe4 20405062 call l2cap_reject_command 
-4fe5 20205017 branch l2cap_proc_signal_disconnect_req_err_rtn 
-
-l2cap_proc_signal_disconnect_req_hid_ctrl:
-4fe6 19620400 copy timeup ,temp 
-4fe7 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
-4fe8 98467c00 isub temp ,null 
-4fe9 2022cff8 branch l2cap_disconnect_hid_control_now ,zero 
-4fea 20405062 call l2cap_reject_command 
-4feb 20205017 branch l2cap_proc_signal_disconnect_req_err_rtn 
-
-l2cap_proc_signal_disconnect_req_hid_int:
-4fec 19620400 copy timeup ,temp 
-4fed 6801424e fetch 2 ,mem_hid_int_remote_cid 
-4fee 98467c00 isub temp ,null 
-4fef 2022cffa branch l2cap_disconnect_hid_interrupt_now ,zero 
-4ff0 20405062 call l2cap_reject_command 
-4ff1 20205017 branch l2cap_proc_signal_disconnect_req_err_rtn 
-
-l2cap_proc_signal_disconnect_req_sdp:
-4ff2 19620400 copy timeup ,temp 
-4ff3 68014248 fetch 2 ,mem_sdp_remote_cid 
-4ff4 98467c00 isub temp ,null 
-4ff5 2022cffe branch l2cap_disconnect_sdp_now ,zero 
-4ff6 20405062 call l2cap_reject_command 
-4ff7 20205017 branch l2cap_proc_signal_disconnect_req_err_rtn 
-
-l2cap_disconnect_hid_control_now:
-4ff8 20405079 call l2cap_reset_hid_ctrl_state 
-4ff9 2020500a branch l2cap_send_disconnect_rsp_pkt 
-
-l2cap_disconnect_hid_interrupt_now:
-4ffa 2040507f call l2cap_reset_hid_int_state 
-4ffb 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
-4ffc 203a500a branch l2cap_send_disconnect_rsp_pkt ,blank 
-4ffd 2020500a branch l2cap_send_disconnect_rsp_pkt 
-
-l2cap_disconnect_sdp_now:
-4ffe 20405074 call l2cap_reset_sdp_channel_state 
-4fff 68008288 fetch 1 ,mem_upper_sm_ss 
-5000 243a500a nbranch l2cap_send_disconnect_rsp_pkt ,blank 
-5001 2020500a branch l2cap_send_disconnect_rsp_pkt 
-
-l2cap_proc_signal_disconnect_req_rfcomm:
-5002 19620400 copy timeup ,temp 
-5003 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-5004 98467c00 isub temp ,null 
-5005 2022d008 branch l2cap_disconnect_rfcomm_now ,zero 
-5006 20405062 call l2cap_reject_command 
-5007 20205017 branch l2cap_proc_signal_disconnect_req_err_rtn 
-
-l2cap_disconnect_rfcomm_now:
-5008 2040506f call l2cap_reset_rfcomm_channel_state 
-5009 2020500a branch l2cap_send_disconnect_rsp_pkt 
-
-l2cap_send_disconnect_rsp_pkt:
-500a 20407ead call load_cont_pointers 
-500b 58000007 setarg signal_disconnect_rsp 
-500c e0a08000 istore 1 ,contw 
-500d 18e27e00 copy queue ,pdata 
-500e e0a08000 istore 1 ,contw 
-500f 58000004 setarg 0x0004 
-5010 e0a10000 istore 2 ,contw 
-5011 1a227e00 copy rega ,pdata 
-5012 e0a10000 istore 2 ,contw 
-5013 19627e00 copy timeup ,pdata 
-5014 e0a10000 istore 2 ,contw 
-5015 18007e08 force 8 ,pdata 
-5016 20205019 branch l2cap_proc_signal_disconnect_req_rtn 
-
-l2cap_proc_signal_disconnect_req_err_rtn:
-5017 20407ead call load_cont_pointers 
-5018 20205019 branch l2cap_proc_signal_disconnect_req_rtn 
-
-l2cap_proc_signal_disconnect_req_rtn:
-5019 9a40a400 iadd regb ,regb 
-501a 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_disconnect_rsp:
-501b e8c08000 ifetch 1 ,contr 
-501c 1fe20e00 copy pdata ,queue 
-501d e8c10000 ifetch 2 ,contr 
-501e 1fe22200 copy pdata ,rega 
-501f 1a627e00 copy regc ,pdata 
-5020 9a262600 isub rega ,regc 
-5021 e8c10000 ifetch 2 ,contr 
-5022 1fe21600 copy pdata ,timeup 
-5023 e8c10000 ifetch 2 ,contr 
-5024 1fe20400 copy pdata ,temp 
-5025 20407ea8 call save_cont_pointers 
-5026 470bc022 bpatchx patch22_7 ,mem_patch22 
-5027 58000050 setarg l2cap_sdp_channel 
-5028 98467c00 isub temp ,null 
-5029 2022d035 branch l2cap_proc_signal_disconnect_rsp_sdp ,zero 
-502a 58000051 setarg l2cap_rfcomm_channel 
-502b 98467c00 isub temp ,null 
-502c 2022d03b branch l2cap_proc_signal_disconnect_rsp_rfcomm ,zero 
-502d 58000052 setarg l2cap_hid_control_channel 
-502e 98467c00 isub temp ,null 
-502f 2022d041 branch l2cap_proc_signal_disconnect_rsp_hid_ctrl ,zero 
-5030 58000053 setarg l2cap_hid_interrupt_channel 
-5031 98467c00 isub temp ,null 
-5032 2022d047 branch l2cap_proc_signal_disconnect_rsp_hid_int ,zero 
-5033 20405062 call l2cap_reject_command 
-5034 2020504f branch l2cap_proc_signal_disconnect_rsp_err_rtn 
-
-l2cap_proc_signal_disconnect_rsp_sdp:
-5035 18422200 copy temp ,rega 
-5036 19620400 copy timeup ,temp 
-5037 68014248 fetch 2 ,mem_sdp_remote_cid 
-5038 98467c00 isub temp ,null 
-5039 2042d074 call l2cap_reset_sdp_channel_state ,zero 
-503a 2020504d branch l2cap_proc_signal_disconnect_rsp_rtn 
-
-l2cap_proc_signal_disconnect_rsp_rfcomm:
-503b 18422200 copy temp ,rega 
-503c 19620400 copy timeup ,temp 
-503d 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-503e 98467c00 isub temp ,null 
-503f 2042d06f call l2cap_reset_rfcomm_channel_state ,zero 
-5040 2020504d branch l2cap_proc_signal_disconnect_rsp_rtn 
-
-l2cap_proc_signal_disconnect_rsp_hid_ctrl:
-5041 18422200 copy temp ,rega 
-5042 19620400 copy timeup ,temp 
-5043 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
-5044 98467c00 isub temp ,null 
-5045 2042d079 call l2cap_reset_hid_ctrl_state ,zero 
-5046 2020504d branch l2cap_proc_signal_disconnect_rsp_rtn 
-
-l2cap_proc_signal_disconnect_rsp_hid_int:
-5047 18422200 copy temp ,rega 
-5048 19620400 copy timeup ,temp 
-5049 6801424e fetch 2 ,mem_hid_int_remote_cid 
-504a 98467c00 isub temp ,null 
-504b 2042d07f call l2cap_reset_hid_int_state ,zero 
-504c 2020504d branch l2cap_proc_signal_disconnect_rsp_rtn 
-
-l2cap_proc_signal_disconnect_rsp_rtn:
-504d 20407ead call load_cont_pointers 
-504e 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_disconnect_rsp_err_rtn:
-504f 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_echo_req:
-5050 e8c08000 ifetch 1 ,contr 
-5051 1fe20e00 copy pdata ,queue 
-5052 e8c10000 ifetch 2 ,contr 
-5053 1fe22200 copy pdata ,rega 
-5054 98c08c00 iadd contr ,contr 
-5055 58000009 setarg 9 
-5056 e0a08000 istore 1 ,contw 
-5057 18e27e00 copy queue ,pdata 
-5058 e0a08000 istore 1 ,contw 
-5059 18007e00 force 0x0000 ,pdata 
-505a e0a10000 istore 2 ,contw 
-505b 18007e04 force 4 ,pdata 
-505c 9a40a400 iadd regb ,regb 
-505d 1a627e00 copy regc ,pdata 
-505e 9a262600 isub rega ,regc 
-505f 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_echo_rsp:
-5060 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_proc_signal_info_rsp:
-5061 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_reject_command:
-5062 18002400 force 0 ,regb 
-5063 204052c3 call l2cap_get_signal_tx_payload 
-5064 58000001 setarg signal_cmd_reject 
-5065 e0a08000 istore 1 ,contw 
-5066 18e27e00 copy queue ,pdata 
-5067 e0a08000 istore 1 ,contw 
-5068 58000002 setarg 2 
-5069 e0a10000 istore 2 ,contw 
-506a 58000000 setarg cmd_not_understood 
-506b e0a10000 istore 2 ,contw 
-506c 1a40a406 increase 6 ,regb 
-506d da600004 arg 4 ,regc 
-506e 20204e1e branch l2cap_process_one_signal_rtn 
-
-l2cap_reset_rfcomm_channel_state:
-506f 58000000 setarg 0 
-5070 6001027b store 2 ,mem_rfcomm_tx_pkt_length 
-5071 6001424a store 2 ,mem_rfcomm_remote_cid 
-5072 70425100 jam 0 ,mem_rfcomm_state 
-5073 20600000 rtn 
-
-l2cap_reset_sdp_channel_state:
-5074 58000000 setarg 0 
-5075 60010275 store 2 ,mem_sdp_tx_pkt_length 
-5076 60014248 store 2 ,mem_sdp_remote_cid 
-5077 70425000 jam 0 ,mem_sdp_state 
-5078 20600000 rtn 
-
-l2cap_reset_hid_ctrl_state:
-5079 58000000 setarg 0 
-507a 6001424c store 2 ,mem_hid_ctrl_remote_cid 
-507b 70425200 jam 0 ,mem_hid_control_state 
-507c 6800c253 fetch 1 ,mem_hid_interrupt_state 
-507d c0005085 beq 0 ,l2cap_reset_hid_disconnected 
-507e 20600000 rtn 
-
-l2cap_reset_hid_int_state:
-507f 58000000 setarg 0 
-5080 6001424e store 2 ,mem_hid_int_remote_cid 
-5081 70425300 jam 0 ,mem_hid_interrupt_state 
-5082 6800c252 fetch 1 ,mem_hid_control_state 
-5083 c0005085 beq 0 ,l2cap_reset_hid_disconnected 
-5084 20600000 rtn 
-
-l2cap_reset_hid_disconnected:
-5085 700a9907 jam bt_evt_hid_disconnected ,mem_fifo_temp 
-5086 20207d86 branch ui_ipc_send_event 
-
-l2cap_disconnect_interrupt_req:
-5087 6800827f fetch 1 ,mem_control_tasks 
-5088 793ffe00 set0 l2cap_disconnect_interrupt ,pdata 
-5089 6000827f store 1 ,mem_control_tasks 
-508a 6801424e fetch 2 ,mem_hid_int_remote_cid 
-508b 207a0000 rtn blank 
-508c 204052b8 call l2cap_malloc_signal_channel 
-508d 6801424e fetch 2 ,mem_hid_int_remote_cid 
-508e 1fe22200 copy pdata ,rega 
-508f 18002453 force l2cap_hid_interrupt_channel ,regb 
-5090 2020509a branch l2cap_generate_disconnect_req 
-
-l2cap_disconnect_control_req:
-5091 6800827f fetch 1 ,mem_control_tasks 
-5092 793ffe07 set0 l2cap_disconnect_control ,pdata 
-5093 6000827f store 1 ,mem_control_tasks 
-5094 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
-5095 207a0000 rtn blank 
-5096 204052b8 call l2cap_malloc_signal_channel 
-5097 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
-5098 1fe22200 copy pdata ,rega 
-5099 18002452 force l2cap_hid_control_channel ,regb 
-
-l2cap_generate_disconnect_req:
-509a 2040523a call l2cap_get_req_id 
-509b 204052c3 call l2cap_get_signal_tx_payload 
-509c 18007e06 force signal_disconnect_req ,pdata 
-509d e0a08000 istore 1 ,contw 
-509e 6800c255 fetch 1 ,mem_ml2cap_comm_id 
-509f e0a08000 istore 1 ,contw 
-50a0 58000004 setarg 0x0004 
-50a1 e0a10000 istore 2 ,contw 
-50a2 1a227e00 copy rega ,pdata 
-50a3 e0a10000 istore 2 ,contw 
-50a4 1a427e00 copy regb ,pdata 
-50a5 e0a10000 istore 2 ,contw 
-50a6 18000408 force 0x08 ,temp 
-50a7 202050de branch ml2cap_send_signal 
-
-ml2cap_send_signal_connect_req:
-50a8 470c4023 bpatchx patch23_0 ,mem_patch23 
-50a9 2040523a call l2cap_get_req_id 
-50aa 204052c3 call l2cap_get_signal_tx_payload 
-50ab 58000002 setarg signal_connect_req 
-50ac e0a08000 istore 1 ,contw 
-50ad 6800c255 fetch 1 ,mem_ml2cap_comm_id 
-50ae e0a08000 istore 1 ,contw 
-50af 58000004 setarg 0x0004 
-50b0 e0a10000 istore 2 ,contw 
-50b1 18427e00 copy temp ,pdata 
-50b2 e0a10000 istore 2 ,contw 
-50b3 19627e00 copy timeup ,pdata 
-50b4 e0a10000 istore 2 ,contw 
-50b5 d8400008 arg 8 ,temp 
-50b6 202050de branch ml2cap_send_signal 
-
-ml2cap_send_signal_config_req:
-50b7 470cc023 bpatchx patch23_1 ,mem_patch23 
-50b8 2040523a call l2cap_get_req_id 
-50b9 204052c3 call l2cap_get_signal_tx_payload 
-50ba 58000004 setarg signal_config_req 
-50bb e0a08000 istore 1 ,contw 
-50bc 6800c255 fetch 1 ,mem_ml2cap_comm_id 
-50bd e0a08000 istore 1 ,contw 
-50be 58000008 setarg 0x0008 
-50bf e0a10000 istore 2 ,contw 
-50c0 18427e00 copy temp ,pdata 
-50c1 e0a10000 istore 2 ,contw 
-50c2 58000000 setarg 0x0000 
-50c3 e0a10000 istore 2 ,contw 
-50c4 58000001 setarg 0x01 
-50c5 e0a08000 istore 1 ,contw 
-50c6 58000002 setarg 0x02 
-50c7 e0a08000 istore 1 ,contw 
-50c8 580003e3 setarg l2cap_config_mtu_rfcomm 
-50c9 e0a10000 istore 2 ,contw 
-50ca d840000c arg 0xc ,temp 
-50cb 202050de branch ml2cap_send_signal 
-
-ml2cap_send_signal_disconn_req:
-50cc 470d4023 bpatchx patch23_2 ,mem_patch23 
-50cd 2040523a call l2cap_get_req_id 
-50ce 204052c3 call l2cap_get_signal_tx_payload 
-50cf 58000006 setarg signal_disconnect_req 
-50d0 e0a08000 istore 1 ,contw 
-50d1 6800c255 fetch 1 ,mem_ml2cap_comm_id 
-50d2 1fe0fe01 increase 1 ,pdata 
-50d3 18a22200 copy contw ,rega 
-50d4 6000c255 store 1 ,mem_ml2cap_comm_id 
-50d5 1a220a00 copy rega ,contw 
-50d6 e0a08000 istore 1 ,contw 
-50d7 58000004 setarg 0x0004 
-50d8 e0a10000 istore 2 ,contw 
-50d9 18427e00 copy temp ,pdata 
-50da e0a10000 istore 2 ,contw 
-50db 19627e00 copy timeup ,pdata 
-50dc e0a10000 istore 2 ,contw 
-50dd d8400008 arg 0x8 ,temp 
-
-ml2cap_send_signal:
-50de 6009026f storet 2 ,mem_l2cap_signal_tx_length 
-50df 18427e00 copy temp ,pdata 
-50e0 203a5264 branch l2cap_malloc_discard ,blank 
-50e1 204052c1 call l2cap_get_signal_tx_buff 
-50e2 6801026f fetch 2 ,mem_l2cap_signal_tx_length 
-50e3 e0a10000 istore 2 ,contw 
-50e4 18007e01 force l2cap_signal_channel ,pdata 
-50e5 e0a10000 istore 2 ,contw 
-50e6 20600000 rtn 
-
-msdp_send_req_done:
-50e7 68010275 fetch 2 ,mem_sdp_tx_pkt_length 
-50e8 203a2a8c branch assert ,blank 
-50e9 204052ce call l2cap_get_sdp_tx_buff 
-50ea 68010275 fetch 2 ,mem_sdp_tx_pkt_length 
-50eb e0a10000 istore 2 ,contw 
-50ec 68014248 fetch 2 ,mem_sdp_remote_cid 
-50ed e0a10000 istore 2 ,contw 
-50ee 20600000 rtn 
-
-ml2cap_rx_multiplexing:
-50ef 68010266 fetch 2 ,mem_l2cap_rx_pkt_length 
-50f0 203a4dfc branch l2cap_rx_reset_state ,blank 
-50f1 470dc023 bpatchx patch23_3 ,mem_patch23 
-50f2 68008268 fetch 1 ,mem_l2cap_rx_cid 
-50f3 c000d0f9 beq l2cap_signal_channel ,ml2cap_call_proc_signal 
-50f4 c0284de8 beq l2cap_sdp_channel ,ml2cap_call_proc_sdp 
-50f5 c028cdf5 beq l2cap_rfcomm_channel ,l2cap_call_proc_rfcomm 
-50f6 c0294df3 beq l2cap_hid_control_channel ,l2cap_call_proc_hid 
-50f7 c029cdf3 beq l2cap_hid_interrupt_channel ,l2cap_call_proc_hid 
-50f8 20204dfc branch l2cap_rx_reset_state 
-
-ml2cap_call_proc_signal:
-50f9 470e4023 bpatchx patch23_4 ,mem_patch23 
-50fa 204052b8 call l2cap_malloc_signal_channel 
-50fb 18002400 force 0 ,regb 
-50fc 204052c3 call l2cap_get_signal_tx_payload 
-50fd 1fe20a00 copy pdata ,contw 
-50fe 68010266 fetch 2 ,mem_l2cap_rx_pkt_length 
-50ff 1fe22600 copy pdata ,regc 
-5100 68010264 fetch 2 ,mem_l2cap_payload_ptr 
-5101 98000c00 iforce contr 
-
-ml2cap_proc_one_comm_loop:
-5102 20405108 call ml2cap_proc_one_comm 
-5103 1a60a7fc increase -4 ,regc 
-5104 2422d102 nbranch ml2cap_proc_one_comm_loop ,zero 
-5105 1a420400 copy regb ,temp 
-5106 204050de call ml2cap_send_signal 
-5107 20204dfc branch l2cap_rx_reset_state 
-
-ml2cap_proc_one_comm:
-5108 e8c08000 ifetch 1 ,contr 
-5109 c0015113 beq signal_connect_req ,ml2cap_proc_signal_connect_req 
-510a c000d116 beq signal_cmd_reject ,ml2cap_proc_signal_cmd_reject 
-510b c001d120 beq signal_connect_rsp ,ml2cap_proc_signal_connect_rsp 
-510c c002d15c beq signal_config_rsp ,ml2cap_proc_signal_config_rsp 
-510d c002518e beq signal_config_req ,ml2cap_proc_signal_config_req 
-510e c003d213 beq signal_disconnect_rsp ,ml2cap_proc_signal_disconn_rsp 
-510f c00351e1 beq signal_disconnect_req ,ml2cap_proc_signal_disconn_req 
-5110 c0045050 beq signal_echo_req ,l2cap_proc_signal_echo_req 
-5111 c0054e3a beq signal_info_req ,ml2cap_proc_signal_info_req 
-5112 2020522e branch ml2cap_proc_send_reject 
-
-ml2cap_proc_signal_connect_req:
-5113 20407ea8 call save_cont_pointers 
-5114 20407ead call load_cont_pointers 
-5115 20204e51 branch l2cap_proc_signal_connect_req 
-
-ml2cap_proc_signal_cmd_reject:
-5116 e8c08000 ifetch 1 ,contr 
-5117 1fe20e00 copy pdata ,queue 
-5118 e8c10000 ifetch 2 ,contr 
-5119 1fe22200 copy pdata ,rega 
-511a 1a627e00 copy regc ,pdata 
-511b 9a262600 isub rega ,regc 
-
-mvptr:
-511c e8c08000 ifetch 1 ,contr 
-511d 1a20a3ff increase -1 ,rega 
-511e 2422d11c nbranch mvptr ,zero 
-511f 20600000 rtn 
-
-ml2cap_proc_signal_connect_rsp:
-5120 e8c08000 ifetch 1 ,contr 
-5121 1fe20e00 copy pdata ,queue 
-5122 e8c10000 ifetch 2 ,contr 
-5123 1fe22200 copy pdata ,rega 
-5124 e8c10000 ifetch 2 ,contr 
-5125 1fe21600 copy pdata ,timeup 
-5126 e8c10000 ifetch 2 ,contr 
-5127 1fe20400 copy pdata ,temp 
-5128 e8c10000 ifetch 2 ,contr 
-5129 1fe67c00 sub pdata ,0 ,null 
-512a 2022d132 branch ml2cap_proc_signal_connect_rsp_sucessful ,zero 
-512b c001512e beq l2cap_connect_refused_psm_unsupported ,ml2cap_proc_signal_connect_refused_result 
-512c c002512e beq l2cap_connect_refused_no_resources ,ml2cap_proc_signal_connect_refused_result 
-512d 20205130 branch ml2cap_proc_signal_connect_rsp_mnosucc 
-
-ml2cap_proc_signal_connect_refused_result:
-512e 700a9916 jam bt_evt_ml2cap_conn_refused ,mem_fifo_temp 
-512f 20407d86 call ui_ipc_send_event 
-
-ml2cap_proc_signal_connect_rsp_mnosucc:
-5130 e8c10000 ifetch 2 ,contr 
-5131 20205159 branch mnosucc 
-
-ml2cap_proc_signal_connect_rsp_sucessful:
-5132 20407ea8 call save_cont_pointers 
-5133 470ec023 bpatchx patch23_5 ,mem_patch23 
-5134 58000050 setarg l2cap_sdp_channel 
-5135 98467c00 isub temp ,null 
-5136 2022d141 branch ml2cap_proc_signal_connect_rsp_sdp ,zero 
-5137 58000051 setarg l2cap_rfcomm_channel 
-5138 98467c00 isub temp ,null 
-5139 2022d147 branch ml2cap_proc_signal_connect_rsp_rfcomm ,zero 
-513a 58000053 setarg l2cap_hid_interrupt_channel 
-513b 98467c00 isub temp ,null 
-513c 2022d153 branch ml2cap_proc_signal_connect_rsp_hid_int ,zero 
-513d 58000052 setarg l2cap_hid_control_channel 
-513e 98467c00 isub temp ,null 
-513f 2022d14d branch ml2cap_proc_signal_connect_rsp_hid_ctrl ,zero 
-5140 20205159 branch mnosucc 
-
-ml2cap_proc_signal_connect_rsp_sdp:
-5141 19627e00 copy timeup ,pdata 
-5142 60014248 store 2 ,mem_sdp_remote_cid 
-5143 6800c250 fetch 1 ,mem_sdp_state 
-5144 79207e01 set1 l2cap_channel_state_conn_res 
-5145 6000c250 store 1 ,mem_sdp_state 
-5146 20205158 branch mnosucc1 
-
-ml2cap_proc_signal_connect_rsp_rfcomm:
-5147 19627e00 copy timeup ,pdata 
-5148 6001424a store 2 ,mem_rfcomm_remote_cid 
-5149 6800c251 fetch 1 ,mem_rfcomm_state 
-514a 79207e01 set1 l2cap_channel_state_conn_res 
-514b 6000c251 store 1 ,mem_rfcomm_state 
-514c 20205158 branch mnosucc1 
-
-ml2cap_proc_signal_connect_rsp_hid_ctrl:
-514d 19627e00 copy timeup ,pdata 
-514e 6001424c store 2 ,mem_hid_ctrl_remote_cid 
-514f 6800c252 fetch 1 ,mem_hid_control_state 
-5150 79207e01 set1 l2cap_channel_state_conn_res 
-5151 6000c252 store 1 ,mem_hid_control_state 
-5152 20205158 branch mnosucc1 
-
-ml2cap_proc_signal_connect_rsp_hid_int:
-5153 19627e00 copy timeup ,pdata 
-5154 6001424e store 2 ,mem_hid_int_remote_cid 
-5155 6800c253 fetch 1 ,mem_hid_interrupt_state 
-5156 79207e01 set1 l2cap_channel_state_conn_res 
-5157 6000c253 store 1 ,mem_hid_interrupt_state 
-
-mnosucc1:
-5158 20407ead call load_cont_pointers 
-
-mnosucc:
-5159 1a627e00 copy regc ,pdata 
-515a 9a262600 isub rega ,regc 
-515b 20600000 rtn 
-
-ml2cap_proc_signal_config_rsp:
-515c e8c08000 ifetch 1 ,contr 
-515d 1fe20e00 copy pdata ,queue 
-515e e8c10000 ifetch 2 ,contr 
-515f 1fe22200 copy pdata ,rega 
-5160 1a627e00 copy regc ,pdata 
-5161 9a262600 isub rega ,regc 
-5162 e8c10000 ifetch 2 ,contr 
-5163 1fe21600 copy pdata ,timeup 
-5164 e8c10000 ifetch 2 ,contr 
-5165 e8c10000 ifetch 2 ,contr 
-5166 243a5188 nbranch mcrsdone1 ,blank 
-5167 20407ea8 call save_cont_pointers 
-5168 19620400 copy timeup ,temp 
-5169 470f4023 bpatchx patch23_6 ,mem_patch23 
-516a 58000050 setarg l2cap_sdp_channel 
-516b 98467c00 isub temp ,null 
-516c 2022d176 branch ml2cap_proc_signal_config_rsp_sdp ,zero 
-516d 58000051 setarg l2cap_rfcomm_channel 
-516e 98467c00 isub temp ,null 
-516f 2022d17a branch ml2cap_proc_signal_config_rsp_rfcomm ,zero 
-5170 58000052 setarg l2cap_hid_control_channel 
-5171 98467c00 isub temp ,null 
-5172 2022d17e branch ml2cap_proc_signal_config_rsp_hid_ctrl ,zero 
-5173 58000053 setarg l2cap_hid_interrupt_channel 
-5174 98467c00 isub temp ,null 
-5175 2022d182 branch ml2cap_proc_signal_config_rsp_hid_int ,zero 
-
-ml2cap_proc_signal_config_rsp_sdp:
-5176 6800c250 fetch 1 ,mem_sdp_state 
-5177 79207e05 set1 l2cap_channel_state_rcv_cfg_res 
-5178 6000c250 store 1 ,mem_sdp_state 
-5179 20600000 rtn 
-
-ml2cap_proc_signal_config_rsp_rfcomm:
-517a 6800c251 fetch 1 ,mem_rfcomm_state 
-517b 79207e05 set1 l2cap_channel_state_rcv_cfg_res 
-517c 6000c251 store 1 ,mem_rfcomm_state 
-517d 20600000 rtn 
-
-ml2cap_proc_signal_config_rsp_hid_ctrl:
-517e 6800c252 fetch 1 ,mem_hid_control_state 
-517f 79207e05 set1 l2cap_channel_state_rcv_cfg_res 
-5180 6000c252 store 1 ,mem_hid_control_state 
-5181 20600000 rtn 
-
-ml2cap_proc_signal_config_rsp_hid_int:
-5182 6800c253 fetch 1 ,mem_hid_interrupt_state 
-5183 79207e05 set1 l2cap_channel_state_rcv_cfg_res 
-5184 6000c253 store 1 ,mem_hid_interrupt_state 
-5185 700a9906 jam bt_evt_hid_connected ,mem_fifo_temp 
-5186 20207d86 branch ui_ipc_send_event 
-
-mcfrsdone:
-5187 20407ead call load_cont_pointers 
-
-mcrsdone1:
-5188 1a20a3fa increase -6 ,rega 
-
-mloop2:
-5189 2022d18d branch mcrsdone ,zero 
-518a 18c08c01 increase 1 ,contr 
-518b 1a20a3ff increase -1 ,rega 
-518c 20205189 branch mloop2 
-
-mcrsdone:
-518d 20600000 rtn 
-
-ml2cap_proc_signal_config_req:
-518e e8c08000 ifetch 1 ,contr 
-518f 1fe20e00 copy pdata ,queue 
-5190 e8c10000 ifetch 2 ,contr 
-5191 1fe22200 copy pdata ,rega 
-5192 1a627e00 copy regc ,pdata 
-5193 9a262600 isub rega ,regc 
-5194 e8c10000 ifetch 2 ,contr 
-5195 18c08c02 increase 2 ,contr 
-5196 1fe20400 copy pdata ,temp 
-5197 58000005 setarg signal_config_rsp 
-5198 e0a08000 istore 1 ,contw 
-5199 18e27e00 copy queue ,pdata 
-519a e0a08000 istore 1 ,contw 
-519b 1a20a202 increase 2 ,rega 
-519c 1a227e00 copy rega ,pdata 
-519d e0a10000 istore 2 ,contw 
-519e 20407ea8 call save_cont_pointers 
-519f 470fc023 bpatchx patch23_7 ,mem_patch23 
-51a0 58000050 setarg l2cap_sdp_channel 
-51a1 98467c00 isub temp ,null 
-51a2 2022d1ad branch ml2cap_proc_signal_config_req_sdp ,zero 
-51a3 58000051 setarg l2cap_rfcomm_channel 
-51a4 98467c00 isub temp ,null 
-51a5 2022d1be branch ml2cap_proc_signal_config_req_rfcomm ,zero 
-51a6 58000052 setarg l2cap_hid_control_channel 
-51a7 98467c00 isub temp ,null 
-51a8 2022d1c4 branch ml2cap_proc_signal_config_req_hid_ctrl ,zero 
-51a9 58000053 setarg l2cap_hid_interrupt_channel 
-51aa 98467c00 isub temp ,null 
-51ab 2022d1ca branch ml2cap_proc_signal_config_req_hid_int ,zero 
-51ac 202051cf branch mcfgrq_done 
-
-ml2cap_proc_signal_config_req_sdp:
-51ad 6800c250 fetch 1 ,mem_sdp_state 
-51ae 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
-51af 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
-51b0 6000c250 store 1 ,mem_sdp_state 
-51b1 c28151bb bbit1 l2cap_channel_state_snd_cfg_req ,ml2cap_proc_signal_config_req_sdp_nsndreq 
-51b2 6808827f fetcht 1 ,mem_control_tasks 
-51b3 79200406 set1 l2cap_init_config_req ,temp 
-51b4 6008827f storet 1 ,mem_control_tasks 
-51b5 18e27e00 copy queue ,pdata 
-51b6 1fe0fe01 increase 1 ,pdata 
-51b7 60008281 store 1 ,mem_config_identifier 
-51b8 6800c250 fetch 1 ,mem_sdp_state 
-51b9 79207e02 set1 l2cap_channel_state_snd_cfg_req ,pdata 
-51ba 6000c250 store 1 ,mem_sdp_state 
-
-ml2cap_proc_signal_config_req_sdp_nsndreq:
-51bb 68014248 fetch 2 ,mem_sdp_remote_cid 
-51bc 60010282 store 2 ,mem_config_req_dest_cid 
-51bd 202051cf branch mcfgrq_done 
-
-ml2cap_proc_signal_config_req_rfcomm:
-51be 6800c251 fetch 1 ,mem_rfcomm_state 
-51bf 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
-51c0 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
-51c1 6000c251 store 1 ,mem_rfcomm_state 
-51c2 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-51c3 202051cf branch mcfgrq_done 
-
-ml2cap_proc_signal_config_req_hid_ctrl:
-51c4 6800c252 fetch 1 ,mem_hid_control_state 
-51c5 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
-51c6 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
-51c7 6000c252 store 1 ,mem_hid_control_state 
-51c8 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
-51c9 202051cf branch mcfgrq_done 
-
-ml2cap_proc_signal_config_req_hid_int:
-51ca 6800c253 fetch 1 ,mem_hid_interrupt_state 
-51cb 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
-51cc 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
-51cd 6000c253 store 1 ,mem_hid_interrupt_state 
-51ce 6801424e fetch 2 ,mem_hid_int_remote_cid 
-
-mcfgrq_done:
-51cf 1fe21600 copy pdata ,timeup 
-51d0 20407ead call load_cont_pointers 
-51d1 19627e00 copy timeup ,pdata 
-51d2 e0a10000 istore 2 ,contw 
-51d3 18007e00 force 0x0000 ,pdata 
-51d4 e0a10000 istore 2 ,contw 
-51d5 18007e00 force 0x0000 ,pdata 
-51d6 e0a10000 istore 2 ,contw 
-51d7 18007e0a force 10 ,pdata 
-51d8 9a40a400 iadd regb ,regb 
-51d9 1a20a3fa increase -6 ,rega 
-
-mloop1:
-51da 2022d1e0 branch mcrqdone ,zero 
-51db e8c08000 ifetch 1 ,contr 
-51dc e0a08000 istore 1 ,contw 
-51dd 1a40a401 increase 1 ,regb 
-51de 1a20a3ff increase -1 ,rega 
-51df 202051da branch mloop1 
-
-mcrqdone:
-51e0 20600000 rtn 
-
-ml2cap_proc_signal_disconn_req:
-51e1 e8c08000 ifetch 1 ,contr 
-51e2 1fe20e00 copy pdata ,queue 
-51e3 e8c10000 ifetch 2 ,contr 
-51e4 1fe22200 copy pdata ,rega 
-51e5 1a627e00 copy regc ,pdata 
-51e6 9a262600 isub rega ,regc 
-51e7 e8c10000 ifetch 2 ,contr 
-51e8 1fe22200 copy pdata ,rega 
-51e9 e8c10000 ifetch 2 ,contr 
-51ea 1fe21600 copy pdata ,timeup 
-51eb 20407ea8 call save_cont_pointers 
-51ec 47104024 bpatchx patch24_0 ,mem_patch24 
-51ed 58000050 setarg l2cap_sdp_channel 
-51ee 1a220400 copy rega ,temp 
-51ef 98467c00 isub temp ,null 
-51f0 2022d1fa branch ml2cap_proc_signal_disconn_sdp ,zero 
-51f1 58000052 setarg l2cap_hid_control_channel 
-51f2 1a220400 copy rega ,temp 
-51f3 98467c00 isub temp ,null 
-51f4 2022d1ff branch ml2cap_proc_signal_disconn_hid_ctrl ,zero 
-51f5 58000053 setarg l2cap_hid_interrupt_channel 
-51f6 1a220400 copy rega ,temp 
-51f7 98467c00 isub temp ,null 
-51f8 2022d201 branch ml2cap_proc_signal_disconn_hid_int ,zero 
-51f9 20205203 branch mclsrfc 
-
-ml2cap_proc_signal_disconn_sdp:
-51fa 58000000 setarg 0x0000 
-51fb 60010275 store 2 ,mem_sdp_tx_pkt_length 
-51fc 60014248 store 2 ,mem_sdp_remote_cid 
-51fd 6000c250 store 1 ,mem_sdp_state 
-51fe 20205205 branch mclssdp 
-
-ml2cap_proc_signal_disconn_hid_ctrl:
-51ff 20405079 call l2cap_reset_hid_ctrl_state 
-5200 20205205 branch mclssdp 
-
-ml2cap_proc_signal_disconn_hid_int:
-5201 2040507f call l2cap_reset_hid_int_state 
-5202 20205205 branch mclssdp 
-
-mclsrfc:
-5203 58000000 setarg 0x0000 
-5204 6001027b store 2 ,mem_rfcomm_tx_pkt_length 
-
-mclssdp:
-5205 20407ead call load_cont_pointers 
-5206 58000007 setarg signal_disconnect_rsp 
-5207 e0a08000 istore 1 ,contw 
-5208 18e27e00 copy queue ,pdata 
-5209 e0a08000 istore 1 ,contw 
-520a 58000004 setarg 0x0004 
-520b e0a10000 istore 2 ,contw 
-520c 1a227e00 copy rega ,pdata 
-520d e0a10000 istore 2 ,contw 
-520e 19627e00 copy timeup ,pdata 
-520f e0a10000 istore 2 ,contw 
-5210 18007e08 force 8 ,pdata 
-5211 9a40a400 iadd regb ,regb 
-5212 20600000 rtn 
-
-ml2cap_proc_signal_disconn_rsp:
-5213 e8c08000 ifetch 1 ,contr 
-5214 1fe20e00 copy pdata ,queue 
-5215 e8c10000 ifetch 2 ,contr 
-5216 1fe22200 copy pdata ,rega 
-5217 e8c10000 ifetch 2 ,contr 
-5218 1fe21600 copy pdata ,timeup 
-5219 e8c10000 ifetch 2 ,contr 
-521a 1fe20400 copy pdata ,temp 
-521b 20407ea8 call save_cont_pointers 
-521c 4710c024 bpatchx patch24_1 ,mem_patch24 
-521d 6800c255 fetch 1 ,mem_ml2cap_comm_id 
-521e a8e1fe00 icompare 0xff ,queue 
-521f 2420d22a nbranch mdisdone ,true 
-5220 58000050 setarg l2cap_sdp_channel 
-5221 98467c00 isub temp ,null 
-5222 2022d227 branch ml2cap_proc_signal_disconn_rsp_sdp ,zero 
-5223 58000051 setarg l2cap_rfcomm_channel 
-5224 98467c00 isub temp ,null 
-5225 2022d22a branch ml2cap_proc_signal_disconn_rsp_rfcomm ,zero 
-5226 2020522a branch mdisdone 
-
-ml2cap_proc_signal_disconn_rsp_sdp:
-5227 70424800 jam 0 ,mem_sdp_remote_cid 
-5228 70425000 jam 0 ,mem_sdp_state 
-5229 2020522a branch mdisdone 
-
-ml2cap_proc_signal_disconn_rsp_rfcomm:
-
-mdisdone:
-522a 20407ead call load_cont_pointers 
-522b 1a627e00 copy regc ,pdata 
-522c 9a262600 isub rega ,regc 
-522d 20600000 rtn 
-
-ml2cap_proc_send_reject:
-522e 58000001 setarg signal_cmd_reject 
-522f e0a08000 istore 1 ,contw 
-5230 e8c08000 ifetch 1 ,contr 
-5231 e0a08000 istore 1 ,contw 
-5232 58000002 setarg 0x0002 
-5233 e0a10000 istore 2 ,contw 
-5234 58000000 setarg 0x0000 
-5235 e0a10000 istore 2 ,contw 
-5236 58000006 setarg 0x0006 
-5237 9a40a400 iadd regb ,regb 
-5238 18002604 force 4 ,regc 
-5239 20600000 rtn 
-
-l2cap_get_req_id:
-523a 6800c255 fetch 1 ,mem_ml2cap_comm_id 
-523b 1fe0fe01 increase 1 ,pdata 
-523c c080523e bne 0 ,l2cap_get_req_id_ok 
-523d 1fe0fe01 increase 1 ,pdata 
-
-l2cap_get_req_id_ok:
-523e 6000c255 store 1 ,mem_ml2cap_comm_id 
-523f 20600000 rtn 
-
-l2cap_malloc:
-5240 47114024 bpatchx patch24_2 ,mem_patch24 
-5241 da400000 arg 0 ,regb 
-5242 2040526e call l2cap_malloc_is_fifo_full 
-5243 243a2a8c nbranch assert ,blank 
-5244 2040527e call l2cap_malloc_get_full_map 
-5245 da401800 arg mem_tx_buff0 ,regb 
-5246 d8e00000 arg 0 ,queue 
-
-l2cap_malloc_loop:
-5247 6808c256 fetcht 1 ,mem_used_map 
-5248 a84fffff qisolate1 temp 
-5249 2020d24f branch l2cap_malloc_next ,true 
-524a 204052a0 call l2cap_malloc_enough 
-524b 19667c00 sub timeup ,0 ,null 
-524c 2021524f branch l2cap_malloc_next ,positive 
-524d 20405288 call l2cap_malloc_into_fifo 
-524e 20205255 branch l2cap_malloc_rtn 
-
-l2cap_malloc_next:
-524f 1a40a480 increase 128 ,regb 
-5250 18e08e01 increase 1 ,queue 
-5251 58000008 setarg 8 
-5252 98e67c00 isub queue ,null 
-5253 20215247 branch l2cap_malloc_loop ,positive 
-5254 da400000 arg 0 ,regb 
-
-l2cap_malloc_rtn:
-5255 1a427e00 copy regb ,pdata 
-5256 203a2a8c branch assert ,blank 
-5257 20600000 rtn 
-
-l2cap_malloc_fifo_out:
-5258 4711c024 bpatchx patch24_3 ,mem_patch24 
-5259 20405277 call l2cap_malloc_fifo_get_first_ptr 
-525a 18c08c01 increase 1 ,contr 
-525b e8c10000 ifetch 2 ,contr 
-525c 20600000 rtn 
-
-l2cap_malloc_free:
-525d 47124024 bpatchx patch24_4 ,mem_patch24 
-525e 20405277 call l2cap_malloc_fifo_get_first_ptr 
-525f 18c20a00 copy contr ,contw 
-5260 18c20400 copy contr ,temp 
-5261 58000000 setarg 0 
-5262 e0a18000 istore 3 ,contw 
-5263 20600000 rtn 
-
-l2cap_malloc_discard:
-5264 4712c024 bpatchx patch24_5 ,mem_patch24 
-5265 20405274 call l2cap_malloc_is_fifo_empty 
-5266 203a2a8c branch assert ,blank 
-5267 6801c25d fetch 3 ,mem_tx_fifo2 
-5268 6001c260 store 3 ,mem_tx_fifo3 
-5269 6801c25a fetch 3 ,mem_tx_fifo1 
-526a 6001c25d store 3 ,mem_tx_fifo2 
-526b 6801c257 fetch 3 ,mem_tx_fifo0 
-526c 6001c25a store 3 ,mem_tx_fifo1 
-526d 20600000 rtn 
-
-l2cap_malloc_is_fifo_full:
-526e 47134024 bpatchx patch24_6 ,mem_patch24 
-526f 6801c257 fetch 3 ,mem_tx_fifo0 
-5270 20600000 rtn 
-
-l2cap_malloc_is_fifo_nearly_full:
-5271 4713c024 bpatchx patch24_7 ,mem_patch24 
-5272 6801c25a fetch 3 ,mem_tx_fifo1 
-5273 20600000 rtn 
-
-l2cap_malloc_is_fifo_empty:
-5274 47144025 bpatchx patch25_0 ,mem_patch25 
-5275 6801c260 fetch 3 ,mem_tx_fifo3 
-5276 20600000 rtn 
-
-l2cap_malloc_fifo_get_first_ptr:
-5277 20405274 call l2cap_malloc_is_fifo_empty 
-5278 203a2a8c branch assert ,blank 
-5279 d8c04257 arg mem_tx_fifo0 ,contr 
-
-l2cap_malloc_free_loop:
-527a e8c18000 ifetch 3 ,contr 
-527b 203a527a branch l2cap_malloc_free_loop ,blank 
-527c 18c08dfd increase -3 ,contr 
-527d 20600000 rtn 
-
-l2cap_malloc_get_full_map:
-527e 4714c025 bpatchx patch25_1 ,mem_patch25 
-527f df200004 arg 4 ,loopcnt 
-5280 d8c04257 arg mem_tx_fifo0_map ,contr 
-5281 d8400000 arg 0 ,temp 
-
-l2cap_malloc_get_full_map_loop:
-5282 e8c18000 ifetch 3 ,contr 
-5283 1fe17eff and pdata ,0xff ,pdata 
-5284 98418400 ior temp ,temp 
-5285 c2005282 loop l2cap_malloc_get_full_map_loop 
-5286 6008c256 storet 1 ,mem_used_map 
-5287 20600000 rtn 
-
-l2cap_malloc_into_fifo:
-5288 47154025 bpatchx patch25_2 ,mem_patch25 
-5289 2040526e call l2cap_malloc_is_fifo_full 
-528a 243a2a8c nbranch assert ,blank 
-528b 20405274 call l2cap_malloc_is_fifo_empty 
-528c 203a5295 branch l2cap_malloc_into_fifo_no_push ,blank 
-528d 6801c25a fetch 3 ,mem_tx_fifo1 
-528e 6001c257 store 3 ,mem_tx_fifo0 
-528f e8c18000 ifetch 3 ,contr 
-5290 e0a18000 istore 3 ,contw 
-5291 e8c18000 ifetch 3 ,contr 
-5292 e0a18000 istore 3 ,contw 
-5293 58000000 setarg 0 
-5294 e0a18000 istore 3 ,contw 
-
-l2cap_malloc_into_fifo_no_push:
-5295 d8400000 arg 0 ,temp 
-5296 19627e00 copy timeup ,pdata 
-5297 98e0fe00 iadd queue ,pdata 
-
-l2cap_malloc_into_fifo_loop:
-5298 f9200400 qset1 temp 
-5299 18e08e01 increase 1 ,queue 
-529a 98e67c00 isub queue ,null 
-529b 2422d298 nbranch l2cap_malloc_into_fifo_loop ,zero 
-529c 1a4d7e00 lshift8 regb ,pdata 
-529d 9841fe00 ior temp ,pdata 
-529e 6001c260 store 3 ,mem_tx_fifo3 
-529f 20600000 rtn 
-
-l2cap_malloc_enough:
-52a0 4715c025 bpatchx patch25_3 ,mem_patch25 
-52a1 2040527e call l2cap_malloc_get_full_map 
-52a2 18e22600 copy queue ,regc 
-52a3 d8400000 arg 0 ,temp 
-52a4 d9600000 arg 0 ,timeup 
-
-l2cap_malloc_enough_loop:
-52a5 18e27e00 copy queue ,pdata 
-52a6 c00452b0 beq 8 ,l2cap_malloc_enough_end 
-52a7 6800c256 fetch 1 ,mem_used_map 
-52a8 afefffff qisolate1 pdata 
-52a9 2020d2b0 branch l2cap_malloc_enough_end ,true 
-52aa 18408480 increase 128 ,temp 
-52ab 18e08e01 increase 1 ,queue 
-52ac 1a227e00 copy rega ,pdata 
-52ad 98467c00 isub temp ,null 
-52ae 2022d2b0 branch l2cap_malloc_enough_end ,zero 
-52af 202152a5 branch l2cap_malloc_enough_loop ,positive 
-
-l2cap_malloc_enough_end:
-52b0 18427e00 copy temp ,pdata 
-52b1 9a267c00 isub rega ,null 
-52b2 242152b6 nbranch l2cap_malloc_enough_rtn ,positive 
-52b3 18e27e00 copy queue ,pdata 
-52b4 1a620400 copy regc ,temp 
-52b5 98461600 isub temp ,timeup 
-
-l2cap_malloc_enough_rtn:
-52b6 1a620e00 copy regc ,queue 
-52b7 20600000 rtn 
-
-l2cap_malloc_signal_channel:
-52b8 47164025 bpatchx patch25_4 ,mem_patch25 
-52b9 da20007f arg l2cap_signal_malloc_size ,rega 
-52ba 20405240 call l2cap_malloc 
-52bb 6001026b store 2 ,mem_l2cap_signal_tx_buff_ptr 
-52bc 1fe0fe04 increase 4 ,pdata 
-52bd 6001026d store 2 ,mem_l2cap_signal_tx_payload_ptr 
-52be 58000000 setarg 0 
-52bf 6001026f store 2 ,mem_l2cap_signal_tx_length 
-52c0 20600000 rtn 
-
-l2cap_get_signal_tx_buff:
-52c1 6801026b fetch 2 ,mem_l2cap_signal_tx_buff_ptr 
-52c2 202052e2 branch l2cap_util_pdata_to_contw 
-
-l2cap_get_signal_tx_payload:
-52c3 6801026d fetch 2 ,mem_l2cap_signal_tx_payload_ptr 
-52c4 202052e2 branch l2cap_util_pdata_to_contw 
-
-l2cap_malloc_sdp_channel:
-52c5 4716c025 bpatchx patch25_5 ,mem_patch25 
-52c6 da2000fa arg sdp_malloc_size ,rega 
-52c7 20405240 call l2cap_malloc 
-52c8 60010271 store 2 ,mem_sdp_tx_buff_ptr 
-52c9 1fe0fe04 increase 4 ,pdata 
-52ca 60010273 store 2 ,mem_sdp_tx_payload_ptr 
-52cb 58000000 setarg 0 
-52cc 60010275 store 2 ,mem_sdp_tx_pkt_length 
-52cd 20600000 rtn 
-
-l2cap_get_sdp_tx_buff:
-52ce 68010271 fetch 2 ,mem_sdp_tx_buff_ptr 
-52cf 202052e2 branch l2cap_util_pdata_to_contw 
-
-l2cap_get_sdp_tx_payload:
-52d0 68010273 fetch 2 ,mem_sdp_tx_payload_ptr 
-52d1 202052e2 branch l2cap_util_pdata_to_contw 
-
-l2cap_malloc_rfcomm_channel:
-52d2 47174025 bpatchx patch25_6 ,mem_patch25 
-52d3 20407e7c call push_stack 
-52d4 70028401 jam rfcomm_malloc_fail ,mem_rfcomm_malloc_fail_flag 
-52d5 2040526e call l2cap_malloc_is_fifo_full 
-52d6 247a0000 nrtn blank 
-52d7 da20007f arg rfcomm_malloc_size ,rega 
-52d8 20405240 call l2cap_malloc 
-52d9 60010277 store 2 ,mem_rfcomm_tx_buff_ptr 
-52da 1fe0fe04 increase 4 ,pdata 
-52db 60010279 store 2 ,mem_rfcomm_tx_payload_ptr 
-52dc 58000000 setarg 0 
-52dd 6001027b store 2 ,mem_rfcomm_tx_pkt_length 
-52de 70028400 jam rfcomm_malloc_succeed ,mem_rfcomm_malloc_fail_flag 
-52df 20207e8c branch pop_stack 
-
-l2cap_get_rfcomm_tx_buff:
-52e0 68010277 fetch 2 ,mem_rfcomm_tx_buff_ptr 
-52e1 202052e2 branch l2cap_util_pdata_to_contw 
-
-l2cap_util_pdata_to_contw:
-52e2 203a2a8c branch assert ,blank 
-52e3 1fe20a00 copy pdata ,contw 
-52e4 20600000 rtn 
-
-l2cap_lpm_save_calc_len:
-52e5 4717c025 bpatchx patch25_7 ,mem_patch25 
-52e6 da400000 arg 0 ,regb 
-52e7 da204257 arg mem_tx_fifo0_map ,rega 
-52e8 1a20a3fe increase -2 ,rega 
-
-l2cap_lpm_save_calc_len_loop:
-52e9 1a20a202 increase 2 ,rega 
-52ea 58004263 setarg mem_tx_fifo_end 
-52eb 9a267c00 isub rega ,null 
-52ec 2022d2f5 branch l2cap_lpm_save_calc_len_end ,zero 
-52ed ea208000 ifetch 1 ,rega 
-52ee 1a20a201 increase 1 ,rega 
-52ef 203a52e9 branch l2cap_lpm_save_calc_len_loop ,blank 
-52f0 ea290000 ifetcht 2 ,rega 
-52f1 e8410000 ifetch 2 ,temp 
-52f2 9a40a400 iadd regb ,regb 
-52f3 1a40a404 increase 4 ,regb 
-52f4 202052e9 branch l2cap_lpm_save_calc_len_loop 
-
-l2cap_lpm_save_calc_len_end:
-52f5 1a427e00 copy regb ,pdata 
-52f6 20600000 rtn 
-
-l2cap_lpm_get_wake_lock:
-52f7 d8e0000c arg wake_lock_l2cap_tx ,queue 
-52f8 20202c32 branch lpm_get_wake_lock 
-
-l2cap_lpm_put_wake_lock:
-52f9 d8e0000c arg wake_lock_l2cap_tx ,queue 
-52fa 20202c36 branch lpm_put_wake_lock 
-
-l2cap_lpm_save_txbuf:
-52fb 47184026 bpatchx patch26_0 ,mem_patch26 
-52fc 2040527e call l2cap_malloc_get_full_map 
-52fd 6800c256 fetch 1 ,mem_used_map 
-52fe 207a0000 rtn blank 
-52ff 204052e5 call l2cap_lpm_save_calc_len 
-5300 d8400100 arg l2cap_lpm_txbuf_len ,temp 
-5301 98467c00 isub temp ,null 
-5302 202152f7 branch l2cap_lpm_get_wake_lock ,positive 
-5303 204052f9 call l2cap_lpm_put_wake_lock 
-5304 d8a04263 arg mem_l2cap_lpm_txbuf ,contw 
-5305 da204257 arg mem_tx_fifo0 ,rega 
-
-l2cap_lpm_save_txbuf_loop:
-5306 58004263 setarg mem_tx_fifo_end 
-5307 9a267c00 isub rega ,null 
-5308 20628000 rtn zero 
-5309 ea208000 ifetch 1 ,rega 
-530a 1a20a201 increase 1 ,rega 
-530b 243a530f nbranch l2cap_lpm_save_txbuf_nempty ,blank 
-530c e0a10000 istore 2 ,contw 
-530d 1a20a202 increase 2 ,rega 
-530e 20205306 branch l2cap_lpm_save_txbuf_loop 
-
-l2cap_lpm_save_txbuf_nempty:
-530f ea210000 ifetch 2 ,rega 
-5310 1a20a202 increase 2 ,rega 
-5311 1fe20c00 copy pdata ,contr 
-5312 e8c10000 ifetch 2 ,contr 
-5313 e0a10000 istore 2 ,contw 
-5314 1fe27200 copy pdata ,loopcnt 
-5315 1f20f202 increase 2 ,loopcnt 
-5316 20407f01 call memcpy 
-5317 20205306 branch l2cap_lpm_save_txbuf_loop 
-
-l2cap_lpm_load_txbuf:
-5318 4718c026 bpatchx patch26_1 ,mem_patch26 
-5319 2040527e call l2cap_malloc_get_full_map 
-531a 6800c256 fetch 1 ,mem_used_map 
-531b 207a0000 rtn blank 
-531c da204258 arg mem_tx_fifo0_ptr ,rega 
-531d 1a20a3fd increase -3 ,rega 
-531e d8c04263 arg mem_l2cap_lpm_txbuf ,contr 
-
-l2cap_lpm_load_txbuf_loop:
-531f 1a20a203 increase 3 ,rega 
-5320 58004264 setarg mem_tx_fifo_end + 1 
-5321 9a267c00 isub rega ,null 
-5322 20628000 rtn zero 
-5323 e8c10000 ifetch 2 ,contr 
-5324 203a531f branch l2cap_lpm_load_txbuf_loop ,blank 
-5325 1fe0fe04 increase 4 ,pdata 
-5326 1fe27200 copy pdata ,loopcnt 
-5327 18c22400 copy contr ,regb 
-5328 ea210000 ifetch 2 ,rega 
-5329 1fe20a00 copy pdata ,contw 
-532a 1a420c00 copy regb ,contr 
-532b 18c08dfe increase -2 ,contr 
-532c 20407f01 call memcpy 
-532d 2020531f branch l2cap_lpm_load_txbuf_loop 
-
-le_init_conn:
-532e 47194026 bpatchx patch26_2 ,mem_patch26 
-532f 7855fc00 disable wake 
-5330 70045501 jam 1 ,mem_le_conn_handle 
-5331 70043f03 jam 3 ,mem_le_state 
-5332 70045601 jam 1 ,mem_le_arq 
-5333 5fffffff setarg -1 
-5334 60010459 store 2 ,mem_le_event_count 
-5335 18007e00 force 0 ,pdata 
-5336 60008457 store 1 ,mem_le_ch 
-5337 60008462 store 1 ,mem_le_op 
-5338 6001c169 store 3 ,mem_sniff_rcv 
-5339 6001c16c store 3 ,mem_sniff_lost 
-533a 6002c403 store 5 ,mem_le_pcnt_tx 
-533b 79207e27 set1 39 ,pdata 
-533c 6002c408 store 5 ,mem_le_pcnt_rx 
-533d 7043dc01 jam 1 ,mem_le_txheader 
-533e 7043dd00 jam 0 ,mem_le_txlen 
-533f 202056ed branch le_supervision_flush 
-
-le_init_master:
-5340 4719c026 bpatchx patch26_3 ,mem_patch26 
-5341 7834fc00 enable master 
-5342 70044003 jam lemode_master ,mem_le_mode 
-5343 70047801 jam 1 ,mem_le_att_handle 
-5344 70445a01 jam 1 ,mem_le_search_handle_start 
-5345 5800ffff setarg 0xffff 
-5346 6001445c store 2 ,mem_le_search_handle_end 
-5347 18007e00 force 0 ,pdata 
-5348 6002c408 store 5 ,mem_le_pcnt_rx 
-5349 79207e27 set1 39 ,pdata 
-534a 6002c403 store 5 ,mem_le_pcnt_tx 
-534b 2020532e branch le_init_conn 
-
-le_init_slave:
-534c 471a4026 bpatchx patch26_4 ,mem_patch26 
-534d 7854fc00 disable master 
-534e 58000017 setarg 0x17 
-534f 600144a8 store 2 ,mem_le_remote_mtu 
-5350 70044001 jam lemode_slave ,mem_le_mode 
-5351 70436e00 jam 0 ,mem_le_adv_enable 
-5352 7000a000 jam 0 ,mem_lpm_current_mult 
-5353 7044c400 jam flag_le_pairing_null ,mem_le_pairing_state 
-5354 7044c500 jam flag_le_enc_null ,mem_le_enc_state 
-5355 6801046d fetch 2 ,mem_le_superto 
-5356 600144ba store 2 ,mem_le_init_superto 
-5357 68010441 fetch 2 ,mem_le_tsniff 
-5358 1feffe05 mul32 pdata ,5 ,pdata 
-5359 1ff1fe00 rshift4 pdata ,pdata 
-535a 6001046d store 2 ,mem_le_superto 
-535b 2020532e branch le_init_conn 
-
-le_dispatch:
-535c 204053c4 call le_enable 
-535d 204055e8 call le_scan 
-535e 204056f0 call le_adv 
-535f 202053ce branch le_disable 
-
-le_conn_dispatch:
-5360 471ac026 bpatchx patch26_5 ,mem_patch26 
-5361 204053c4 call le_enable 
-5362 204032f4 call app_process_ble 
-5363 68008440 fetch 1 ,mem_le_mode 
-5364 c001d366 beq lemode_master ,le_master_dispatch 
-5365 2020537a branch le_slave_dispatch 
-
-le_master_dispatch:
-5366 471b4026 bpatchx patch26_6 ,mem_patch26 
-5367 7834fc00 enable master 
-5368 204056e4 call le_supervision_update 
-5369 20215377 branch le_master_disconn ,positive 
-536a 20402c6c call check_ble_disabled 
-536b 20405413 call le_setup 
-536c 2040561e call le_prepare_tx 
-536d 7856fc00 disable match 
-536e 204054bf call le_transmit_receive_sifs 
-536f 24768000 nrtn match 
-5370 471bc026 bpatchx patch26_7 ,mem_patch26 
-5371 68008005 fetch 1 ,mem_le_conn_rcv 
-5372 1fe0fe01 increase 1 ,pdata 
-5373 60008005 store 1 ,mem_le_conn_rcv 
-5374 204055aa call le_acknowledge 
-5375 7854fc00 disable master 
-5376 20600000 rtn 
-
-le_master_disconn:
-5377 204053a9 call le_disconnect 
-5378 7854fc00 disable master 
-5379 20600000 rtn 
-
-le_slave_dispatch:
-537a 471c4027 bpatchx patch27_0 ,mem_patch27 
-537b 70450f00 jam 0 ,mem_le_md_count 
-537c 20407aaf call sp_calc_sequence_256 
-537d 20405c18 call le_secure_connect_sm 
-537e 78577c00 disable attempt 
-537f 204056e4 call le_supervision_update 
-5380 202153a9 branch le_slave_disconn ,positive 
-5381 20402c6c call check_ble_disabled 
-5382 20405413 call le_setup 
-5383 20405489 call le_receive_slave 
-5384 242c539b nbranch le_slave_unsync ,sync 
-5385 204053b7 call le_got_first_packet 
-5386 2036d388 branch le_slave_match ,match 
-5387 20205395 branch le_slave_cont 
-
-le_slave_match:
-5388 471cc027 bpatchx patch27_1 ,mem_patch27 
-5389 6800c50f fetch 1 ,mem_le_md_count 
-538a 1fe0fe01 pincrease 1 
-538b 6000c50f store 1 ,mem_le_md_count 
-538c c0065395 beq le_md_max_count ,le_slave_cont 
-538d 204055aa call le_acknowledge 
-538e 2040561e call le_prepare_tx 
-538f 204054c7 call le_transmit_norx 
-5390 2040567e call le_parse 
-5391 680141fb fetch 2 ,mem_cb_ble_transmit 
-5392 20407f9c call callback_func 
-5393 204053a0 call le_check_md 
-5394 203453a4 branch le_slave_more_data ,user 
-
-le_slave_cont:
-5395 471d4027 bpatchx patch27_2 ,mem_patch27 
-5396 20405be4 call le_pairing_sm 
-5397 20405bdb call le_check_paring_time 
-5398 20407d9c call check_51cmd 
-5399 68008462 fetch 1 ,mem_le_op 
-539a c281d3a9 bbit1 op_disconn ,le_slave_disconn 
-
-le_slave_unsync:
-539b 471dc027 bpatchx patch27_3 ,mem_patch27 
-539c 204057f4 call le_lpm_set_mult 
-539d 2040559d call le_update_channel_map 
-539e 20405575 call le_update_param 
-539f 20202841 branch calc_clke_offset 
-
-le_check_md:
-53a0 78547c00 disable user 
-53a1 c5157fe7 bmark1 mark_ble_rx_md ,enable_user 
-53a2 c514ffe7 bmark1 mark_ble_tx_md ,enable_user 
-53a3 20600000 rtn 
-
-le_slave_more_data:
-53a4 471e4027 bpatchx patch27_4 ,mem_patch27 
-53a5 78377c00 enable attempt 
-53a6 204054c1 call le_transmit_receive_sifs_notx 
-53a7 2036d388 branch le_slave_match ,match 
-53a8 20205395 branch le_slave_cont 
-
-le_slave_disconn:
-
-le_disconnect:
-53a9 471ec027 bpatchx patch27_5 ,mem_patch27 
-53aa 204053af call le_clear_connection_info 
-53ab 204033b4 call app_disconn_reason_collect_ble 
-53ac 20407a77 call sp_initialize_256 
-53ad 700a9915 jam bt_evt_le_disconnected ,mem_fifo_temp 
-53ae 20207d86 branch ui_ipc_send_event 
-
-le_clear_connection_info:
-53af 58000000 setarg 0 
-53b0 6004c4ff store 9 ,mem_le_tx_buff_used 
-53b1 70045500 jam 0 ,mem_le_conn_handle 
-53b2 70044000 jam lemode_idle ,mem_le_mode 
-53b3 70043f00 jam 0 ,mem_le_state 
-53b4 7044c500 jam flag_le_enc_null ,mem_le_enc_state 
-53b5 7044c400 jam flag_le_pairing_null ,mem_le_pairing_state 
-53b6 20600000 rtn 
-
-le_got_first_packet:
-53b7 471f4027 bpatchx patch27_6 ,mem_patch27 
-53b8 68008005 fetch 1 ,mem_le_conn_rcv 
-53b9 1fe0fe01 increase 1 ,pdata 
-53ba 60008005 store 1 ,mem_le_conn_rcv 
-53bb 6800843f fetch 1 ,mem_le_state 
-53bc c3818000 rtnbit1 lestate_got_first_packet 
-53bd 79207e03 set1 lestate_got_first_packet 
-53be 6000843f store 1 ,mem_le_state 
-53bf 680144ba fetch 2 ,mem_le_init_superto 
-53c0 6001046d store 2 ,mem_le_superto 
-53c1 58000000 setarg 0 
-53c2 600244e5 store 4 ,mem_le_transmit_window 
-53c3 20600000 rtn 
-
-le_enable:
-53c4 471fc027 bpatchx patch27_7 ,mem_patch27 
-53c5 70890f36 jam 0x36 ,rf_adc_goff 
-53c6 70890b5f jam 0x5f ,rf_agc_nsat 
-53c7 783b7c00 enable le 
-53c8 70891407 jam 7 ,rfen_ulp 
-53c9 20402c6c call check_ble_disabled 
-53ca 6800c1e0 fetch 1 ,mem_250k_freq_enable 
-53cb 207a0000 rtn blank 
-53cc 70890ab8 jam 0xb8 ,rf_iq_gain 
-53cd 20600000 rtn 
-
-le_disable:
-53ce 47204028 bpatchx patch28_0 ,mem_patch28 
-53cf 70890f2e jam 0x2e ,rf_adc_goff 
-53d0 70890bff jam 0xff ,rf_agc_nsat 
-53d1 785b7c00 disable le 
-53d2 70891403 jam 3 ,rfen_ulp 
-53d3 db600000 arg 0 ,stop_watch 
-53d4 20600000 rtn 
-
-le_prep:
-53d5 7844fc00 disable enable_crc 
-53d6 7843fc00 disable enable_white 
-53d7 68018467 fetch 3 ,mem_le_crcinit 
-53d8 98001e00 iforce crc24_init 
-53d9 68008016 fetch 1 ,mem_le_ch_mapped 
-53da 1fed8400 reverse pdata ,temp 
-53db 79200401 set1 1 ,temp 
-53dc 18431c00 rshift temp ,white_init 
-53dd 20600000 rtn 
-
-lerx_setfreq:
-53de 204053e6 call le_setfreq 
-53df 2040291f call set_freq_rx 
-53e0 58000500 setarg param_pll_setup 
-53e1 20402a8f call sleep 
-53e2 20202924 branch rf_rx_enable 
-
-letx_setfreq:
-53e3 2036a939 branch txon ,match 
-
-letx_setfreq0:
-53e4 204053e6 call le_setfreq 
-53e5 20202933 branch set_freq_tx 
-
-le_setfreq:
-53e6 4720c028 bpatchx patch28_1 ,mem_patch28 
-53e7 20402918 call set_sync_on 
-53e8 6800848c fetch 1 ,mem_le_testtype 
-53e9 243a53f9 nbranch le_ctf_test ,blank 
-53ea 68008016 fetch 1 ,mem_le_ch_mapped 
-53eb 1fe67c24 sub pdata ,36 ,null 
-53ec 202153f3 branch le_ctf_normal ,positive 
-53ed 18000400 force 0 ,temp 
-53ee c1128000 rtneq 37 
-53ef 18000418 force 24 ,temp 
-53f0 c1130000 rtneq 38 
-53f1 1800044e force 78 ,temp 
-53f2 20600000 rtn 
-
-le_ctf_normal:
-53f3 1fe67c0a sub pdata ,10 ,null 
-53f4 202153f6 branch le_ctf_low ,positive 
-53f5 1fe0fe01 increase 1 ,pdata 
-
-le_ctf_low:
-53f6 1fe3fe00 lshift pdata ,pdata 
-53f7 1fe08402 add pdata ,2 ,temp 
-53f8 20600000 rtn 
-
-le_ctf_test:
-53f9 68008016 fetch 1 ,mem_le_ch_mapped 
-53fa 1fe38400 lshift pdata ,temp 
-53fb 20600000 rtn 
-
-le_sca_map:
-53fc d84001f4 arg 500 ,temp 
-53fd 207a0000 rtn blank 
-53fe d84000fa arg 250 ,temp 
-53ff c1008000 rtneq 1 
-5400 d8400096 arg 150 ,temp 
-5401 c1010000 rtneq 2 
-5402 d8400064 arg 100 ,temp 
-5403 c1018000 rtneq 3 
-5404 d840004b arg 75 ,temp 
-5405 c1020000 rtneq 4 
-5406 d8400032 arg 50 ,temp 
-5407 c1028000 rtneq 5 
-5408 d8400028 arg 40 ,temp 
-5409 c1030000 rtneq 6 
-540a d8400014 arg 20 ,temp 
-540b 20600000 rtn 
-
-le_adv_access:
-540c 588e89be setarg 0x8e89be 
-540d 1fed7e00 lshift8 pdata ,pdata 
-540e 1fe1fed6 or_into 0xd6 ,pdata 
-540f 98001200 iforce access 
-5410 58555555 setarg 0x555555 
-5411 60018467 store 3 ,mem_le_crcinit 
-5412 20600000 rtn 
-
-le_setup:
-5413 47214028 bpatchx patch28_2 ,mem_patch28 
-5414 78287c00 enable swfine 
-5415 68020463 fetch 4 ,mem_le_access 
-5416 98001200 iforce access 
-5417 20405466 call le_map_channel 
-5418 58000200 setarg 0x200 
-5419 2034d41c branch le_setup_master ,master 
-541a 6801044d fetch 2 ,mem_le_receive_window 
-541b 1fe37e00 rshift pdata ,pdata 
-
-le_setup_master:
-541c d8400500 arg param_pll_setup ,temp 
-541d 9840fe00 iadd temp ,pdata 
-541e 20402a24 call ahead_window 
-541f 1b427e00 deposit clke 
-5420 60030491 store 6 ,mem_le_rxon_ts 
-5421 20600000 rtn 
-
-le_next_adv_channel:
-5422 4721c028 bpatchx patch28_3 ,mem_patch28 
-5423 68008016 fetch 1 ,mem_le_ch_mapped 
-5424 c012d428 beq 37 ,le_next_adv_channel_curr_channel_37 
-5425 c013542e beq 38 ,le_next_adv_channel_curr_channel_38 
-5426 c013d434 beq 39 ,le_next_adv_channel_curr_channel_39 
-5427 20205434 branch le_next_adv_channel_curr_channel_39 
-
-le_next_adv_channel_curr_channel_37:
-5428 6808c48d fetcht 1 ,mem_le_adv_channel_map 
-5429 284ffe01 isolate1 bit_adv_channel_map_38 ,temp 
-542a 2020d43f branch set_le_next_adv_channel_38 ,true 
-542b 284ffe02 isolate1 bit_adv_channel_map_39 ,temp 
-542c 2020d444 branch set_le_next_adv_channel_39 ,true 
-542d 2020543a branch set_le_next_adv_channel_37 
-
-le_next_adv_channel_curr_channel_38:
-542e 6808c48d fetcht 1 ,mem_le_adv_channel_map 
-542f 284ffe02 isolate1 bit_adv_channel_map_39 ,temp 
-5430 2020d444 branch set_le_next_adv_channel_39 ,true 
-5431 284ffe00 isolate1 bit_adv_channel_map_37 ,temp 
-5432 2020d43a branch set_le_next_adv_channel_37 ,true 
-5433 2020543f branch set_le_next_adv_channel_38 
-
-le_next_adv_channel_curr_channel_39:
-5434 6808c48d fetcht 1 ,mem_le_adv_channel_map 
-5435 284ffe00 isolate1 bit_adv_channel_map_37 ,temp 
-5436 2020d43a branch set_le_next_adv_channel_37 ,true 
-5437 284ffe01 isolate1 bit_adv_channel_map_38 ,temp 
-5438 2020d43f branch set_le_next_adv_channel_38 ,true 
-5439 20205444 branch set_le_next_adv_channel_39 
-
-set_le_next_adv_channel_37:
-543a 70001625 jam 37 ,mem_le_ch_mapped 
-543b 68008ac2 fetch 1 ,mem_le_adv_channel_map_temp 
-543c 79207e00 set1 bit_adv_channel_map_37 ,pdata 
-543d 60008ac2 store 1 ,mem_le_adv_channel_map_temp 
-543e 20600000 rtn 
-
-set_le_next_adv_channel_38:
-543f 70001626 jam 38 ,mem_le_ch_mapped 
-5440 68008ac2 fetch 1 ,mem_le_adv_channel_map_temp 
-5441 79207e01 set1 bit_adv_channel_map_38 ,pdata 
-5442 60008ac2 store 1 ,mem_le_adv_channel_map_temp 
-5443 20600000 rtn 
-
-set_le_next_adv_channel_39:
-5444 70001627 jam 39 ,mem_le_ch_mapped 
-5445 68008ac2 fetch 1 ,mem_le_adv_channel_map_temp 
-5446 79207e02 set1 bit_adv_channel_map_39 ,pdata 
-5447 60008ac2 store 1 ,mem_le_adv_channel_map_temp 
-5448 20600000 rtn 
-
-le_context_nexthop:
-5449 47224028 bpatchx patch28_4 ,mem_patch28 
-544a 1a208c01 add rega ,coffset_mode ,contr 
-544b e8c08000 ifetch 1 ,contr 
-544c c4000000 rtnbit0 mode_le 
-544d 1a208a1a add rega ,coffset_le_event_cnt ,contw 
-544e e8a10000 ifetch 2 ,contw 
-544f 1fe0fe01 increase 1 ,pdata 
-5450 e0a10000 istore 2 ,contw 
-5451 1a208c19 add rega ,coffset_le_hop ,contr 
-5452 e8c08000 ifetch 1 ,contr 
-5453 1a208a18 add rega ,coffset_le_ch ,contw 
-5454 e8a88000 ifetcht 1 ,contw 
-5455 9840fe00 iadd temp ,pdata 
-5456 1fe67c24 sub pdata ,36 ,null 
-5457 20215459 branch le_nexthop_nowrap ,positive 
-5458 1fe0ffdb increase -37 ,pdata 
-
-le_nexthop_nowrap:
-5459 e0a08000 istore 1 ,contw 
-545a 20600000 rtn 
-
-le_calc_channel_map:
-545b 4722c028 bpatchx patch28_5 ,mem_patch28 
-545c 6802846f fetch 5 ,mem_le_channel_map 
-545d 18000400 force 0 ,temp 
-545e 18007225 force 37 ,loopcnt 
-
-le_count_channels_loop:
-545f c3005461 bbit0 0 ,le_count_channels_notused 
-5460 18408401 increase 1 ,temp 
-
-le_count_channels_notused:
-5461 1fe37e00 rshift pdata ,pdata 
-5462 c200545f loop le_count_channels_loop 
-5463 1840ffff add temp ,-1 ,pdata 
-5464 60008461 store 1 ,mem_le_channels 
-5465 20600000 rtn 
-
-le_map_channel:
-5466 47234028 bpatchx patch28_6 ,mem_patch28 
-5467 68008457 fetch 1 ,mem_le_ch 
-5468 98000e00 iforce queue 
-5469 680a846f fetcht 5 ,mem_le_channel_map 
-546a a84fffff qisolate1 temp 
-546b 2020d47c branch le_map_channel_end ,true 
-
-le_map_channel_next:
-546c 4723c028 bpatchx patch28_7 ,mem_patch28 
-546d 68008461 fetch 1 ,mem_le_channels 
-546e 98e67e00 isub queue ,pdata 
-546f 20215472 branch le_map_channel_cont ,positive 
-5470 1fe60fff sub pdata ,-1 ,queue 
-5471 2020546c branch le_map_channel_next 
-
-le_map_channel_cont:
-5472 18e27200 copy queue ,loopcnt 
-5473 18000e00 force 0 ,queue 
-
-le_map_channel_loop:
-5474 a84fffff qisolate1 temp 
-5475 2020d477 branch le_map_channel_skip ,true 
-5476 1f20f201 increase 1 ,loopcnt 
-
-le_map_channel_skip:
-5477 1f227e00 deposit loopcnt 
-5478 203a547c branch le_map_channel_end ,blank 
-5479 18e08e01 increase 1 ,queue 
-547a 1f20f3ff increase -1 ,loopcnt 
-547b 20205474 branch le_map_channel_loop 
-
-le_map_channel_end:
-547c 18e27e00 deposit queue 
-547d 60008016 store 1 ,mem_le_ch_mapped 
-547e 20600000 rtn 
-
-le_wait_tx:
-547f 2034d482 branch le_wait_master ,master 
-5480 37c18200 until null ,timeout 
-5481 20600000 rtn 
-
-le_wait_master:
-5482 d9600ea0 arg 0xea0 ,timeup 
-5483 34730200 until clkn_rt ,meet 
-5484 20600000 rtn 
-
-le_receive_adv:
-5485 78487c00 disable swfine 
-5486 6801436c fetch 2 ,mem_le_scan_window 
-5487 1fe21600 copy pdata ,timeup 
-5488 2020548e branch le_receive_packet 
-
-le_receive_slave:
-5489 47244029 bpatchx patch29_0 ,mem_patch29 
-548a 78287c00 enable swfine 
-548b 6801044d fetch 2 ,mem_le_receive_window 
-548c 680a44e5 fetcht 4 ,mem_le_transmit_window 
-548d 98409600 iadd temp ,timeup 
-
-le_receive_packet:
-548e 204053de call lerx_setfreq 
-
-le_receive_rxon:
-548f 4724c029 bpatchx patch29_1 ,mem_patch29 
-5490 204053d5 call le_prep 
-5491 7856fc00 disable match 
-5492 7826fc00 enable decode_fec0 
-5493 7830fc00 enable is_rx 
-5494 78507c00 disable is_tx 
-5495 19623600 copy timeup ,stop_watch 
-5496 37c18400 correlate null ,timeout 
-5497 2037549a branch le_receive_on_attempt ,attempt 
-5498 1b420400 copy clke ,temp 
-5499 600b009a storet 6 ,mem_sync_clke 
-
-le_receive_on_attempt:
-549a 242c264d nbranch end_of_packet ,sync 
-549b 203754a1 branch le_receive_skip ,attempt 
-549c dd2001e0 arg param_clke_cal_le ,clke_rt 
-549d 1c225000 copy bt_clk ,clke_bt 
-549e 6800843f fetch 1 ,mem_le_state 
-549f c301d4a1 bbit0 lestate_got_first_packet ,le_receive_skip 
-54a0 2055ab05 call lpm_adjust_clk ,wake 
-
-le_receive_skip:
-54a1 47254029 bpatchx patch29_2 ,mem_patch29 
-54a2 204029bb call save_rssi 
-54a3 7823fc00 enable enable_white 
-54a4 7824fc00 enable enable_crc 
-54a5 09800008 parse demod ,bucket ,8 
-54a6 19897e00 rshift3 pwindow ,pdata 
-54a7 600082d9 store 1 ,mem_le_rxbuf 
-54a8 09800008 parse demod ,bucket ,8 
-54a9 19897e00 rshift3 pwindow ,pdata 
-54aa e0a08000 istore 1 ,contw 
-54ab 1fe1723f and pdata ,0x3f ,loopcnt 
-54ac 2022d4b1 branch lerx_nopayload ,zero 
-
-lerx_loop:
-54ad 09800008 parse demod ,bucket ,8 
-54ae 19897e00 rshift3 pwindow ,pdata 
-54af e0a08000 istore 1 ,contw 
-54b0 c20054ad loop lerx_loop 
-
-lerx_nopayload:
-54b1 4725c029 bpatchx patch29_3 ,mem_patch29 
-54b2 09800018 parse demod ,bucket ,24 
-54b3 78287c00 enable swfine 
-54b4 db600664 arg param_sifs ,stop_watch 
-54b5 1fef7e00 rshift32 pdata ,pdata 
-54b6 1ff17e00 rshift16 pdata ,pdata 
-54b7 e0a18000 istore 3 ,contw 
-54b8 2023264d branch end_of_packet ,crc_failed 
-54b9 7836fc00 enable match 
-54ba 68008017 fetch 1 ,mem_last_freq 
-54bb 1fe0a200 add pdata ,0 ,rega 
-54bc 20402981 call rf_write_freq 
-54bd 7846fc00 disable decode_fec0 
-54be 20202918 branch set_sync_on 
-
-le_transmit_receive_sifs:
-54bf 47264029 bpatchx patch29_4 ,mem_patch29 
-54c0 204054c9 call le_transmit 
-
-le_transmit_receive_sifs_notx:
-54c1 68088017 fetcht 1 ,mem_last_freq 
-54c2 2040291f call set_freq_rx 
-54c3 20402924 call rf_rx_enable 
-54c4 78287c00 enable swfine 
-54c5 d960157c arg 5500 ,timeup 
-54c6 2020548f branch le_receive_rxon 
-
-le_transmit_norx:
-54c7 204054c9 call le_transmit 
-54c8 2020264d branch end_of_packet 
-
-le_transmit:
-54c9 4726c029 bpatchx patch29_5 ,mem_patch29 
-54ca 204053d5 call le_prep 
-54cb 204053e3 call letx_setfreq 
-54cc 202054cd branch le_transmit0 
-
-le_transmit0:
-54cd 79202a00 set1 txgfsk ,radio_ctrl 
-54ce 782efc00 enable encode_fec0 
-54cf 78307c00 enable is_tx 
-54d0 7850fc00 disable is_rx 
-54d1 2040547f call le_wait_tx 
-54d2 19317e00 rshift16 access ,pdata 
-54d3 1fecfe00 rshift8 pdata ,pdata 
-54d4 1ff1fe00 rshift4 pdata ,pdata 
-54d5 08008628 inject mod ,40 
-54d6 7823fc00 enable enable_white 
-54d7 7824fc00 enable enable_crc 
-54d8 47274029 bpatchx patch29_6 ,mem_patch29 
-54d9 6800c3dc fetch 1 ,mem_le_txheader 
-54da 08008608 inject mod ,8 
-54db e8c08000 ifetch 1 ,contr 
-54dc 1fe1723f and pdata ,0x3f ,loopcnt 
-54dd 08008608 inject mod ,8 
-54de 2022d4e2 branch letr_nopayload ,zero 
-
-letr_loop:
-54df e8c08000 ifetch 1 ,contr 
-54e0 08008608 inject mod ,8 
-54e1 c20054df loop letr_loop 
-
-letr_nopayload:
-54e2 78247c00 enable enable_parity 
-54e3 08008618 inject mod ,24 
-54e4 78447c00 disable enable_parity 
-54e5 37d38200 until null ,tx_clear 
-54e6 20000064 nop 100 
-54e7 784efc00 disable encode_fec0 
-54e8 20600000 rtn 
-
-le_send_adv_ind:
-54e9 4727c029 bpatchx patch29_7 ,mem_patch29 
-54ea 6800c484 fetch 1 ,mem_le_adv_type 
-54eb c000d4f9 beq adv_direct_ind ,le_send_adv_direct_ind 
-54ec 6800c485 fetch 1 ,mem_le_adv_own_addr_type 
-54ed 1ff27e00 lshift4 pdata ,pdata 
-54ee 1febfe00 lshift2 pdata ,pdata 
-54ef 6000c3dc store 1 ,mem_le_txheader 
-54f0 6808c36f fetcht 1 ,mem_le_adv_data_len 
-54f1 1840fe06 add temp ,6 ,pdata 
-54f2 6000c3dd store 1 ,mem_le_txlen 
-54f3 680344a0 fetch 6 ,mem_le_lap 
-54f4 600343de store 6 ,mem_le_txpayload 
-54f5 18427200 copy temp ,loopcnt 
-54f6 d8c04370 arg mem_le_adv_data ,contr 
-54f7 20407ef4 call memcpy_fast 
-54f8 20205504 branch le_send_adv_transmit 
-
-le_send_adv_direct_ind:
-54f9 6800c486 fetch 1 ,mem_le_adv_direct_addr_type 
-54fa 1ff27e00 lshift4 pdata ,pdata 
-54fb 1febfe00 lshift2 pdata ,pdata 
-54fc 1fe0fe01 increase 1 ,pdata 
-54fd 6000c3dc store 1 ,mem_le_txheader 
-54fe 5800000c setarg 12 
-54ff 6000c3dd store 1 ,mem_le_txlen 
-5500 680344a0 fetch 6 ,mem_le_lap 
-5501 600343de store 6 ,mem_le_txpayload 
-5502 680341d0 fetch 6 ,mem_hci_plap 
-5503 e0a30000 istore 6 ,contw 
-
-le_send_adv_transmit:
-5504 4728402a bpatchx patch2a_0 ,mem_patch2a 
-5505 68008000 fetch 1 ,mem_le_adv_transmit 
-5506 1fe0fe01 increase 1 ,pdata 
-5507 60008000 store 1 ,mem_le_adv_transmit 
-5508 db600708 arg 1800 ,stop_watch 
-5509 7856fc00 disable match 
-550a 202054bf branch le_transmit_receive_sifs 
-
-le_send_scan_request:
-550b 4728c02a bpatchx patch2a_1 ,mem_patch2a 
-550c 6800c49e fetch 1 ,mem_le_scan_type 
-550d c1808000 rtnne le_scan_type_active 
-550e 68008000 fetch 1 ,mem_le_adv_transmit 
-550f 1fe0fe01 increase 1 ,pdata 
-5510 60008000 store 1 ,mem_le_adv_transmit 
-5511 d8400c03 arg 0x0c03 ,temp 
-5512 6800c49f fetch 1 ,mem_le_scan_own_addr_type 
-5513 7d3a0406 nsetflag blank ,le_sender_addr_bit ,temp 
-5514 1a227e00 copy rega ,pdata 
-5515 7d3a0407 nsetflag blank ,le_receiver_addr_bit ,temp 
-5516 600943dc storet 2 ,mem_le_txheader 
-5517 680344a0 fetch 6 ,mem_le_lap 
-5518 e0a30000 istore 6 ,contw 
-5519 6803044f fetch 6 ,mem_le_plap 
-551a e0a30000 istore 6 ,contw 
-551b 202054bf branch le_transmit_receive_sifs 
-
-le_send_scan_response:
-551c 4729402a bpatchx patch2a_2 ,mem_patch2a 
-551d d8400004 arg scan_rsp ,temp 
-551e 6800c485 fetch 1 ,mem_le_adv_own_addr_type 
-551f 7d3a0406 nsetflag blank ,le_sender_addr_bit ,temp 
-5520 6008c3dc storet 1 ,mem_le_txheader 
-5521 6808c38f fetcht 1 ,mem_le_scan_data_len 
-5522 1840fe06 add temp ,6 ,pdata 
-5523 6000c3dd store 1 ,mem_le_txlen 
-5524 680344a0 fetch 6 ,mem_le_lap 
-5525 600343de store 6 ,mem_le_txpayload 
-5526 d8c04390 arg mem_le_scan_data ,contr 
-5527 18427200 copy temp ,loopcnt 
-5528 20407ef4 call memcpy_fast 
-5529 204054c7 call le_transmit_norx 
-552a 20205706 branch le_adv_not_match 
-
-le_connect_request:
-552b 4729c02a bpatchx patch2a_3 ,mem_patch2a 
-552c 18007fff force -1 ,pdata 
-552d 38080001 setsect 2 ,1 
-552e 6002846f store 5 ,mem_le_channel_map 
-552f 2040545b call le_calc_channel_map 
-5530 18007204 force 4 ,loopcnt 
-5531 d8a00463 arg mem_le_access ,contw 
-5532 2040630d call generate_random_loop 
-5533 6801449c fetch 2 ,mem_le_timeout 
-5534 6001046d store 2 ,mem_le_superto 
-
-le_con_req_hop_retry:
-5535 180a7e00 random pdata 
-5536 1fe17e0f and_into 0xf ,pdata 
-5537 1fe67c04 sub pdata ,4 ,null 
-5538 20215535 branch le_con_req_hop_retry ,positive 
-5539 60008458 store 1 ,mem_le_hop 
-553a 600086e6 store 1 ,mem_tmp1 
-553b 472a402a bpatchx patch2a_4 ,mem_patch2a 
-553c 68094367 fetcht 2 ,mem_le_conn_interval 
-553d 60090441 storet 2 ,mem_le_tsniff 
-553e 18422600 copy temp ,regc 
-553f 1c40fe07 add clkn_bt ,7 ,pdata 
-5540 9a66fc00 idiv regc 
-5541 20407f86 call wait_div_end 
-5542 18072200 remainder rega 
-5543 9a267e00 isub rega ,pdata 
-5544 9a60fe00 iadd regc ,pdata 
-5545 68094365 fetcht 2 ,mem_le_dsniff 
-5546 9840fe00 iadd temp ,pdata 
-5547 60020443 store 4 ,mem_le_anchor 
-5548 9c462200 isub clkn_bt ,rega 
-5549 1a20a3fa increase -6 ,rega 
-554a da402205 arg 0x2205 ,regb 
-554b 6800c495 fetch 1 ,mem_le_conn_own_addr_type 
-554c 7d3a2406 nsetflag blank ,le_sender_addr_bit ,regb 
-554d 6800c48e fetch 1 ,mem_le_conn_peer_addr_type 
-554e 7d3a2407 nsetflag blank ,le_receiver_addr_bit ,regb 
-554f 1a427e00 copy regb ,pdata 
-5550 600143dc store 2 ,mem_le_txheader 
-5551 680344a0 fetch 6 ,mem_le_lap 
-5552 e0a30000 istore 6 ,contw 
-5553 6803044f fetch 6 ,mem_le_plap 
-5554 e0a30000 istore 6 ,contw 
-5555 68020463 fetch 4 ,mem_le_access 
-5556 e0a20000 istore 4 ,contw 
-5557 180a7e00 random pdata 
-5558 e0a10000 istore 2 ,contw 
-5559 180a7e00 random pdata 
-555a e0a08000 istore 1 ,contw 
-555b 18007e02 force 2 ,pdata 
-555c e0a08000 istore 1 ,contw 
-555d 1a2b7e00 rshift2 rega ,pdata 
-555e e0a10000 istore 2 ,contw 
-555f 1a6b7e00 rshift2 regc ,pdata 
-5560 e0a10000 istore 2 ,contw 
-5561 472ac02a bpatchx patch2a_5 ,mem_patch2a 
-5562 58000000 setarg 0 
-5563 e0a10000 istore 2 ,contw 
-5564 6801449c fetch 2 ,mem_le_timeout 
-5565 e0a10000 istore 2 ,contw 
-5566 6802846f fetch 5 ,mem_le_channel_map 
-5567 e0a28000 istore 5 ,contw 
-5568 68008458 fetch 1 ,mem_le_hop 
-5569 d84000a0 arg param_le_sca ,temp 
-556a 9841fe00 ior temp ,pdata 
-556b e0a08000 istore 1 ,contw 
-556c 204054c7 call le_transmit_norx 
-556d 580043dc setarg mem_le_txheader 
-556e 1fe08c12 add pdata ,18 ,contr 
-556f e8c18000 ifetch 3 ,contr 
-5570 60018467 store 3 ,mem_le_crcinit 
-5571 20600000 rtn 
-
-le_init_adv:
-5572 472b402a bpatchx patch2a_6 ,mem_patch2a 
-5573 7854fc00 disable master 
-5574 2020540c branch le_adv_access 
-
-le_update_param:
-5575 6800843f fetch 1 ,mem_le_state 
-5576 c4028000 rtnbit0 lestate_update_param 
-5577 68010459 fetch 2 ,mem_le_event_count 
-5578 6809045f fetcht 2 ,mem_le_instant 
-5579 98467e00 isub temp ,pdata 
-557a 24610000 nrtn positive 
-557b 60010a9a store 2 ,mem_pdatatemp 
-557c 472bc02a bpatchx patch2a_7 ,mem_patch2a 
-557d 6800843f fetch 1 ,mem_le_state 
-557e 793ffe05 set0 lestate_update_param ,pdata 
-557f 793ffe03 set0 lestate_got_first_packet ,pdata 
-5580 6000843f store 1 ,mem_le_state 
-5581 68020443 fetch 4 ,mem_le_anchor 
-5582 68090441 fetcht 2 ,mem_le_tsniff 
-5583 60090aa2 storet 2 ,mem_temp 
-5584 98462200 isub temp ,rega 
-5585 472c402b bpatchx patch2b_0 ,mem_patch2b 
-5586 6800c3d3 fetch 1 ,mem_le_new_param 
-5587 6000846a store 1 ,mem_le_window_size 
-5588 e8c90000 ifetcht 2 ,contr 
-5589 e8c10000 ifetch 2 ,contr 
-558a 1febfe00 lshift2 pdata ,pdata 
-558b 60010441 store 2 ,mem_le_tsniff 
-558c 184b8400 lshift2 temp ,temp 
-558d 9840fe00 iadd temp ,pdata 
-558e e8ca0000 ifetcht 4 ,contr 
-558f 600a046b storet 4 ,mem_le_slave_latency 
-5590 9a20fe00 iadd rega ,pdata 
-5591 1fe22800 copy pdata ,regab 
-5592 68010441 fetch 2 ,mem_le_tsniff 
-5593 68090aa2 fetcht 2 ,mem_temp 
-5594 98467e00 isub temp ,pdata 
-5595 68090a9a fetcht 2 ,mem_pdatatemp 
-5596 984ffe00 imul32 temp ,pdata 
-5597 9a80fe00 iadd regab ,pdata 
-5598 60020443 store 4 ,mem_le_anchor 
-5599 20405713 call le_receive_window_size 
-559a 6801046d fetch 2 ,mem_le_superto 
-559b 600144ba store 2 ,mem_le_init_superto 
-559c 20600000 rtn 
-
-le_update_channel_map:
-559d 472cc02b bpatchx patch2b_1 ,mem_patch2b 
-559e 6800843f fetch 1 ,mem_le_state 
-559f c4030000 rtnbit0 lestate_update_map 
-55a0 68010459 fetch 2 ,mem_le_event_count 
-55a1 6809045f fetcht 2 ,mem_le_instant 
-55a2 98467e00 isub temp ,pdata 
-55a3 24610000 nrtn positive 
-55a4 6800843f fetch 1 ,mem_le_state 
-55a5 793ffe06 set0 lestate_update_map ,pdata 
-55a6 6000843f store 1 ,mem_le_state 
-55a7 6802c3ce fetch 5 ,mem_le_new_map 
-55a8 6002846f store 5 ,mem_le_channel_map 
-55a9 2020545b branch le_calc_channel_map 
-
-le_acknowledge:
-55aa 472d402b bpatchx patch2b_2 ,mem_patch2b 
-55ab 204056ed call le_supervision_flush 
-55ac 204055c0 call le_check_wak 
-55ad 680082d9 fetch 1 ,mem_le_rxbuf 
-55ae 2feffe04 isolate1 md ,pdata 
-55af 7920802a setflag true ,mark_ble_rx_md ,mark 
-55b0 1fe37e00 rshift pdata ,pdata 
-55b1 9842fe00 ixor temp ,pdata 
-55b2 2feffe02 isolate1 nesn ,pdata 
-55b3 7920800f setflag true ,mark_old_packet ,mark 
-55b4 c6078000 rtnmark1 mark_old_packet 
-55b5 680082da fetch 1 ,mem_le_rxbuf + 1 
-55b6 203a55bc branch le_ack_unenc ,blank 
-55b7 6800843f fetch 1 ,mem_le_state 
-55b8 c30255bc bbit0 lestate_encryption ,le_ack_unenc 
-55b9 2040748d call load_sk 
-55ba 204073fb call le_decrypt 
-55bb 247a0000 nrtn blank 
-
-le_ack_unenc:
-55bc 68088456 fetcht 1 ,mem_le_arq 
-55bd 79400402 setflip nesn ,temp 
-55be 60088456 storet 1 ,mem_le_arq 
-55bf 20600000 rtn 
-
-le_check_wak:
-55c0 472dc02b bpatchx patch2b_3 ,mem_patch2b 
-55c1 68088456 fetcht 1 ,mem_le_arq 
-55c2 284c0005 isolate0 wak ,temp 
-55c3 20608000 rtn true 
-55c4 680082d9 fetch 1 ,mem_le_rxbuf 
-55c5 1fe3fe00 lshift pdata ,pdata 
-55c6 9842fe00 ixor temp ,pdata 
-55c7 c4018000 rtnbit0 sn 
-55c8 793f8405 set0 wak ,temp 
-55c9 79400403 setflip sn ,temp 
-55ca 60088456 storet 1 ,mem_le_arq 
-55cb 28400603 compare 3 ,temp ,3 
-55cc 24608000 nrtn true 
-55cd 6800c3de fetch 1 ,mem_le_txpayload 
-55ce c002d5d2 beq ll_start_enc_req ,le_set_enc 
-55cf 6800c4c5 fetch 1 ,mem_le_enc_state 
-55d0 c00155d6 beq flag_le_enc_pause ,le_clear_enc 
-55d1 20600000 rtn 
-
-le_set_enc:
-55d2 6800843f fetch 1 ,mem_le_state 
-55d3 79207e04 set1 lestate_encryption ,pdata 
-55d4 6000843f store 1 ,mem_le_state 
-55d5 20600000 rtn 
-
-le_clear_enc:
-55d6 472e402b bpatchx patch2b_4 ,mem_patch2b 
-55d7 7044c500 jam flag_le_enc_null ,mem_le_enc_state 
-55d8 dfe00000 arg 0 ,pdata 
-55d9 6002440d store 4 ,mem_le_last_mic 
-55da 6002c403 store 5 ,mem_le_pcnt_tx 
-55db 79207e27 set1 39 ,pdata 
-55dc 6002c408 store 5 ,mem_le_pcnt_rx 
-55dd 6800843f fetch 1 ,mem_le_state 
-55de 793ffe04 set0 lestate_encryption ,pdata 
-55df 6000843f store 1 ,mem_le_state 
-55e0 20600000 rtn 
-
-le_wait_adv:
-55e1 472ec02b bpatchx patch2b_5 ,mem_patch2b 
-55e2 20405422 call le_next_adv_channel 
-55e3 20405485 call le_receive_adv 
-55e4 68008001 fetch 1 ,mem_le_adv_waitcnt 
-55e5 1fe0fe01 increase 1 ,pdata 
-55e6 60008001 store 1 ,mem_le_adv_waitcnt 
-55e7 20600000 rtn 
-
-le_scan:
-55e8 472f402b bpatchx patch2b_6 ,mem_patch2b 
-55e9 6800c369 fetch 1 ,mem_le_scan_enable 
-55ea c1808000 rtnne le_scan_enable 
-55eb d8e00002 arg le_scan_interval_timer ,queue 
-55ec 20407f16 call timer_check 
-55ed 247a0000 nrtn blank 
-55ee 6801436a fetch 2 ,mem_le_scan_interval 
-55ef 6809436c fetcht 2 ,mem_le_scan_window 
-55f0 98467e00 isub temp ,pdata 
-55f1 d8e00002 arg le_scan_interval_timer ,queue 
-55f2 20407f08 call timer_init 
-55f3 7854fc00 disable master 
-55f4 20405572 call le_init_adv 
-55f5 204055e1 call le_wait_adv 
-55f6 24768000 nrtn match 
-55f7 472fc02b bpatchx patch2b_7 ,mem_patch2b 
-55f8 680302db fetch 6 ,mem_le_rxbuf + 2 
-55f9 6003044f store 6 ,mem_le_plap 
-55fa 68008002 fetch 1 ,mem_le_adv_rcv 
-55fb 1fe0fe01 increase 1 ,pdata 
-55fc 60008002 store 1 ,mem_le_adv_rcv 
-55fd 20405608 call le_create_conn 
-55fe 20748000 rtn master 
-55ff 2040550b call le_send_scan_request 
-5600 24768000 nrtn match 
-5601 4730402c bpatchx patch2c_0 ,mem_patch2c 
-5602 68008004 fetch 1 ,mem_le_scanrsp_rcv 
-5603 1fe0fe01 increase 1 ,pdata 
-5604 60008004 store 1 ,mem_le_scanrsp_rcv 
-5605 680482e1 fetch 9 ,mem_le_rxbuf + 8 
-5606 60048101 store 9 ,mem_tmp_buffer 
-5607 20600000 rtn 
-
-le_create_conn:
-5608 4730c02c bpatchx patch2c_1 ,mem_patch2c 
-5609 6800849b fetch 1 ,mem_cmd_le_create_conn 
-560a c18d8000 rtnne hci_cmd_le_create_conn 
-560b 6803044f fetch 6 ,mem_le_plap 
-560c 680b448f fetcht 6 ,mem_le_conn_peer_addr 
-560d 98467c00 isub temp ,null 
-560e 24628000 nrtn zero 
-560f 2040223b call context_new 
-5610 24628000 nrtn zero 
-5611 2040552b call le_connect_request 
-5612 20405340 call le_init_master 
-5613 4731402c bpatchx patch2c_2 ,mem_patch2c 
-5614 7041ce00 jam 0 ,mem_hci_cmd 
-5615 70047600 jam 0 ,mem_le_peer_sca 
-5616 70436900 jam 0 ,mem_le_scan_enable 
-5617 70049b00 jam 0 ,mem_cmd_le_create_conn 
-5618 20202223 branch context_save 
-
-le_scan_check_sender_addr_type:
-5619 da200001 arg 1 ,rega 
-561a 680082d9 fetch 1 ,mem_le_rxbuf 
-561b c3830000 rtnbit1 le_sender_addr_bit 
-561c da200000 arg 0 ,rega 
-561d 20600000 rtn 
-
-le_prepare_tx:
-561e 4731c02c bpatchx patch2c_3 ,mem_patch2c 
-561f 68008456 fetch 1 ,mem_le_arq 
-5620 c3828000 rtnbit1 wak 
-5621 20405642 call le_check_tx_md 
-5622 20405873 call le_fifo_get_first_tx_ptr 
-5623 203a5664 branch le_send_empty ,blank 
-5624 e8c08000 ifetch 1 ,contr 
-5625 e8c88000 ifetcht 1 ,contr 
-5626 18422200 copy temp ,rega 
-5627 9a267e00 isub rega ,pdata 
-5628 d840001b arg le_max_paket_len ,temp 
-5629 20407fdd call not_greater_than 
-562a 1fe20400 copy pdata ,temp 
-562b e8c08000 ifetch 1 ,contr 
-562c 1fe20200 copy pdata ,type 
-562d 1a227e00 copy rega ,pdata 
-562e 98c08c00 iadd contr ,contr 
-562f d8a043de arg mem_le_txpayload ,contw 
-5630 18427200 copy temp ,loopcnt 
-5631 20407f01 call memcpy 
-5632 20405654 call le_update_tx_type 
-5633 20405666 call le_send_packet 
-5634 20405873 call le_fifo_get_first_tx_ptr 
-5635 e8c08000 ifetch 1 ,contr 
-5636 1fe22200 copy pdata ,rega 
-5637 18c22600 copy contr ,regc 
-5638 e8c88000 ifetcht 1 ,contr 
-5639 18422400 copy temp ,regb 
-563a 9a467e00 isub regb ,pdata 
-563b d840001b arg le_max_paket_len ,temp 
-563c 20407fdd call not_greater_than 
-563d 9a40fe00 iadd regb ,pdata 
-563e e2608000 istore 1 ,regc 
-563f 9a267c00 isub rega ,null 
-5640 24628000 nrtn zero 
-5641 20205896 branch le_fifo_release_first_node 
-
-le_check_tx_md:
-5642 20405649 call le_check_continue 
-5643 c6148000 rtnmark1 mark_ble_tx_md 
-5644 6800c4e9 fetch 1 ,mem_le_configuration 
-5645 c3015652 bbit0 bit_ble_transmit_packet_by_md ,le_clear_md 
-5646 20405876 call le_fifo_get_second_tx_ptr 
-5647 203a5652 branch le_clear_md ,blank 
-5648 20205650 branch le_set_md 
-
-le_check_continue:
-5649 20405873 call le_fifo_get_first_tx_ptr 
-564a 203a5652 branch le_clear_md ,blank 
-564b e8c08000 ifetch 1 ,contr 
-564c e8c88000 ifetcht 1 ,contr 
-564d 98467e00 isub temp ,pdata 
-564e 1fe67c1b sub pdata ,le_max_paket_len ,null 
-564f 20215652 branch le_clear_md ,positive 
-
-le_set_md:
-5650 79200029 set1 mark_ble_tx_md ,mark 
-5651 20600000 rtn 
-
-le_clear_md:
-5652 793f8029 set0 mark_ble_tx_md ,mark 
-5653 20600000 rtn 
-
-le_update_tx_type:
-5654 1a227e00 copy rega ,pdata 
-5655 207a0000 rtn blank 
-5656 d8200001 arg llid_continue ,type 
-5657 20600000 rtn 
-
-le_att_check_notification_enable:
-5658 4732402c bpatchx patch2c_4 ,mem_patch2c 
-5659 18408401 increase 1 ,temp 
-565a 2040576a call le_att_get_handle_ptr 
-565b 18c08dfe increase -2 ,contr 
-565c e8c10000 ifetch 2 ,contr 
-565d d8402902 arg client_charactertic_configuration ,temp 
-565e 98467c00 isub temp ,null 
-565f 24628000 nrtn zero 
-5660 18c08c01 increase 1 ,contr 
-5661 18c22200 copy contr ,rega 
-5662 e8c08000 ifetch 1 ,contr 
-5663 20600000 rtn 
-
-le_send_empty:
-5664 18000400 force 0 ,temp 
-5665 18000201 force 1 ,type 
-
-le_send_packet:
-5666 4732c02c bpatchx patch2c_5 ,mem_patch2c 
-5667 6008c3dd storet 1 ,mem_le_txlen 
-5668 68088456 fetcht 1 ,mem_le_arq 
-5669 79200405 set1 wak ,temp 
-566a 18417efc and temp ,0xfc ,pdata 
-566b 9821fe00 ior type ,pdata 
-566c 60008456 store 1 ,mem_le_arq 
-566d 1fe17e1f and_into 0x1f ,pdata 
-566e 280ffe29 isolate1 mark_ble_tx_md ,mark 
-566f 7920fe04 setflag true ,md ,pdata 
-5670 6000c3dc store 1 ,mem_le_txheader 
-5671 6800c3dc fetch 1 ,mem_le_txheader 
-5672 28200601 compare 1 ,type ,3 
-5673 2420d676 nbranch le_send_no_txlen ,true 
-5674 6800c3dd fetch 1 ,mem_le_txlen 
-5675 207a0000 rtn blank 
-
-le_send_no_txlen:
-5676 6800843f fetch 1 ,mem_le_state 
-5677 c4020000 rtnbit0 lestate_encryption 
-5678 2040748d call load_sk 
-5679 202073e3 branch le_encrypt 
-
-get_lpm_wake_ble_rx_lock:
-567a d8e00000 arg wake_lock_ble_rx ,queue 
-567b 20202c32 branch lpm_get_wake_lock 
-
-put_lpm_wake_ble_rx_lock:
-567c d8e00000 arg wake_lock_ble_rx ,queue 
-567d 20202c36 branch lpm_put_wake_lock 
-
-le_parse:
-567e 4733402c bpatchx patch2c_6 ,mem_patch2c 
-567f c6078000 rtnmark1 mark_old_packet 
-5680 20405890 call le_fifo_check_full 
-5681 247a0000 nrtn blank 
-5682 680082d9 fetch 1 ,mem_le_rxbuf 
-5683 1fe17e03 and pdata ,0x3 ,pdata 
-5684 6000c50c store 1 ,mem_le_packet_llid 
-5685 e8c08000 ifetch 1 ,contr 
-5686 1fe17e1f and pdata ,0x1f ,pdata 
-5687 6000c50b store 1 ,mem_le_packet_size 
-5688 207a0000 rtn blank 
-5689 18c27e00 copy contr ,pdata 
-568a 6001450d store 2 ,mem_le_payload_ptr 
-568b 6800c50c fetch 1 ,mem_le_packet_llid 
-568c c001dc64 beq llid_le_ll ,le_parse_ll 
-
-le_parse_l2cap:
-568d 2040569a call le_check_l2cap_complete 
-568e 2434567a nbranch get_lpm_wake_ble_rx_lock ,user 
-568f 2040567c call put_lpm_wake_ble_rx_lock 
-5690 6801450d fetch 2 ,mem_le_payload_ptr 
-5691 1fe20c00 copy pdata ,contr 
-5692 e8c10000 ifetch 2 ,contr 
-5693 600144fc store 2 ,mem_le_l2cap_size 
-5694 4733c02c bpatchx patch2c_7 ,mem_patch2c 
-5695 e8c10000 ifetch 2 ,contr 
-5696 c00258ab beq le_l2cap_cid_att ,le_parse_att 
-5697 c0035af4 beq le_l2cap_cid_smp ,le_parse_smp 
-5698 c002dab6 beq le_l2cap_cid_signal ,le_parse_signaling 
-5699 20600000 rtn 
-
-le_check_l2cap_complete:
-569a 6800c50c fetch 1 ,mem_le_packet_llid 
-569b c00156a9 beq llid_start ,le_check_l2cap_llid_start 
-569c c000d6c1 beq llid_continue ,le_check_l2cap_llid_continue 
-569d 20600000 rtn 
-
-le_check_l2cap_cid_legal:
-569e 20407fe7 call enable_user 
-569f d8400004 arg le_l2cap_cid_att ,temp 
-56a0 9fe67c00 isub pdata ,null 
-56a1 20628000 rtn zero 
-56a2 d8400005 arg le_l2cap_cid_signal ,temp 
-56a3 9fe67c00 isub pdata ,null 
-56a4 20628000 rtn zero 
-56a5 d8400006 arg le_l2cap_cid_smp ,temp 
-56a6 9fe67c00 isub pdata ,null 
-56a7 20628000 rtn zero 
-56a8 20207fe9 branch disable_user 
-
-le_check_l2cap_llid_start:
-56a9 6801450d fetch 2 ,mem_le_payload_ptr 
-56aa 1fe20c00 copy pdata ,contr 
-56ab e8c10000 ifetch 2 ,contr 
-56ac 600144fc store 2 ,mem_le_l2cap_size 
-56ad e8c10000 ifetch 2 ,contr 
-56ae 2040569e call le_check_l2cap_cid_legal 
-56af 24740000 nrtn user 
-56b0 6808c50b fetcht 1 ,mem_le_packet_size 
-56b1 6008c4fe storet 1 ,mem_le_packet_len_recved 
-56b2 680144fc fetch 2 ,mem_le_l2cap_size 
-56b3 1fe0fe04 increase 4 ,pdata 
-56b4 98467c00 isub temp ,null 
-56b5 2022ffe7 branch enable_user ,zero 
-56b6 6800c50b fetch 1 ,mem_le_packet_size 
-56b7 1fe27200 copy pdata ,loopcnt 
-56b8 d8a00311 arg mem_le_l2capbuf ,contw 
-56b9 6801450d fetch 2 ,mem_le_payload_ptr 
-56ba 1fe20c00 copy pdata ,contr 
-56bb 20407f01 call memcpy 
-56bc 20207fe9 branch disable_user 
-
-le_check_l2cap_continue_legal:
-56bd 20407fe7 call enable_user 
-56be 6800c4fe fetch 1 ,mem_le_packet_len_recved 
-56bf 247a0000 nrtn blank 
-56c0 20207fe9 branch disable_user 
-
-le_check_l2cap_llid_continue:
-56c1 204056bd call le_check_l2cap_continue_legal 
-56c2 24740000 nrtn user 
-56c3 6800c4fe fetch 1 ,mem_le_packet_len_recved 
-56c4 d8a00311 arg mem_le_l2capbuf ,contw 
-56c5 98a0a200 iadd contw ,rega 
-56c6 6808c50b fetcht 1 ,mem_le_packet_size 
-56c7 9840fe00 iadd temp ,pdata 
-56c8 6000c4fe store 1 ,mem_le_packet_len_recved 
-56c9 6800c50b fetch 1 ,mem_le_packet_size 
-56ca 1fe27200 copy pdata ,loopcnt 
-56cb 1a220a00 copy rega ,contw 
-56cc 6801450d fetch 2 ,mem_le_payload_ptr 
-56cd 1fe20c00 copy pdata ,contr 
-56ce 20407ef4 call memcpy_fast 
-56cf 58000311 setarg mem_le_l2capbuf 
-56d0 6001450d store 2 ,mem_le_payload_ptr 
-56d1 680144fc fetch 2 ,mem_le_l2cap_size 
-56d2 1fe0fe04 increase 4 ,pdata 
-56d3 6808c4fe fetcht 1 ,mem_le_packet_len_recved 
-56d4 98467c00 isub temp ,null 
-56d5 2022ffe7 branch enable_user ,zero 
-56d6 20207fe9 branch disable_user 
-
-le_get_search_att_type:
-56d7 20407ea5 call store_contr 
-56d8 d8a0445e arg mem_le_search_att_type_length ,contw 
-
-le_get_search_common:
-56d9 680144fc fetch 2 ,mem_le_l2cap_size 
-56da 1fe0fffb increase -5 ,pdata 
-
-le_get_search_common2:
-56db e0a08000 istore 1 ,contw 
-56dc 1fe27200 copy pdata ,loopcnt 
-56dd 20407e9f call get_contr 
-56de 20207ef4 branch memcpy_fast 
-
-le_get_search_att_uuid:
-56df 20407ea5 call store_contr 
-56e0 d8a04471 arg mem_le_search_uuid_length ,contw 
-56e1 202056d9 branch le_get_search_common 
-
-le_writeatt_cb:
-56e2 680141f9 fetch 2 ,mem_cb_att_write 
-56e3 20207f9c branch callback_func 
-
-le_supervision_update:
-56e4 680a045b fetcht 4 ,mem_le_supervision_timer 
-56e5 20402a7b call get_clkbt 
-56e6 98461600 isub temp ,timeup 
-56e7 19627e00 deposit timeup 
-56e8 6809046d fetcht 2 ,mem_le_superto 
-56e9 18520400 lshift4 temp ,temp 
-56ea 18438400 lshift temp ,temp 
-56eb 98467e00 isub temp ,pdata 
-56ec 20600000 rtn 
-
-le_supervision_flush:
-56ed 20402a7b call get_clkbt 
-56ee 6002045b store 4 ,mem_le_supervision_timer 
-56ef 20600000 rtn 
-
-le_adv:
-56f0 70001624 jam 36 ,mem_le_ch_mapped 
-56f1 700ac200 jam 0 ,mem_le_adv_channel_map_temp 
-
-le_adv_loop:
-56f2 4734402d bpatchx patch2d_0 ,mem_patch2d 
-56f3 6800c36e fetch 1 ,mem_le_adv_enable 
-56f4 207a0000 rtn blank 
-56f5 d8e00000 arg le_adv_interval_timer ,queue 
-56f6 20407f16 call timer_check 
-56f7 247a0000 nrtn blank 
-56f8 4734c02d bpatchx patch2d_1 ,mem_patch2d 
-
-le_adv_loop_tx:
-56f9 7854fc00 disable master 
-56fa 78287c00 enable swfine 
-56fb 20405572 call le_init_adv 
-56fc 20405422 call le_next_adv_channel 
-56fd 204054e9 call le_send_adv_ind 
-56fe 2436d706 nbranch le_adv_not_match ,match 
-56ff 68008003 fetch 1 ,mem_le_req_rcv 
-5700 1fe0fe01 increase 1 ,pdata 
-5701 60008003 store 1 ,mem_le_req_rcv 
-5702 680082d9 fetch 1 ,mem_le_rxbuf 
-5703 1fe17e0f and pdata ,0x0f ,pdata 
-5704 c001d51c beq scan_req ,le_send_scan_response 
-5705 c002d728 beq connect_req ,le_parse_connect_req 
-
-le_adv_not_match:
-5706 4735402d bpatchx patch2d_2 ,mem_patch2d 
-5707 180a7e00 random pdata 
-5708 d84001ff arg 0x1ff ,temp 
-5709 98417e00 iand temp ,pdata 
-570a 1fe0fefa add pdata ,250 ,pdata 
-570b 20403cbe call delay 
-570c 68008ac2 fetch 1 ,mem_le_adv_channel_map_temp 
-570d 6808c48d fetcht 1 ,mem_le_adv_channel_map 
-570e 98467c00 isub temp ,null 
-570f 2422d6f2 nbranch le_adv_loop ,zero 
-5710 d8e00000 arg le_adv_interval_timer ,queue 
-5711 68014482 fetch 2 ,mem_le_adv_interval 
-5712 20207f08 branch timer_init 
-
-le_receive_window_size:
-5713 4735c02d bpatchx patch2d_3 ,mem_patch2d 
-5714 68008476 fetch 1 ,mem_le_peer_sca 
-5715 204053fc call le_sca_map 
-5716 68010441 fetch 2 ,mem_le_tsniff 
-5717 984ffe00 imul32 temp ,pdata 
-5718 d8400177 arg 375 ,temp 
-5719 984ffe00 imul32 temp ,pdata 
-571a d84186a0 arg 100000 ,temp 
-571b 9846fc00 idiv temp 
-571c 6800846a fetch 1 ,mem_le_window_size 
-571d d8404e20 arg 20000 ,temp 
-571e 984ffe00 imul32 temp ,pdata 
-571f 9840fe00 iadd temp ,pdata 
-5720 600244e5 store 4 ,mem_le_transmit_window 
-5721 4736402d bpatchx patch2d_4 ,mem_patch2d 
-5722 680140c1 fetch 2 ,mem_rx_window_sniff 
-5723 20407f86 call wait_div_end 
-5724 18078400 quotient temp 
-5725 9840fe00 iadd temp ,pdata 
-5726 6001044d store 2 ,mem_le_receive_window 
-5727 20600000 rtn 
-
-le_parse_connect_req:
-5728 4736c02d bpatchx patch2d_5 ,mem_patch2d 
-5729 680302e1 fetch 6 ,mem_le_rxbuf + 8 
-572a 680b44a0 fetcht 6 ,mem_le_lap 
-572b 98467c00 isub temp ,null 
-572c 24628000 nrtn zero 
-572d 20405619 call le_scan_check_sender_addr_type 
-572e 1a227e00 copy rega ,pdata 
-572f 6000c48e store 1 ,mem_le_conn_peer_addr_type 
-5730 680382ee fetch 7 ,mem_le_rxbuf + 21 
-5731 60038101 store 7 ,mem_tmp_buffer 
-5732 e8c40000 ifetch 8 ,contr 
-5733 e0a40000 istore 8 ,contw 
-5734 680302db fetch 6 ,mem_le_rxbuf + 2 
-5735 6003044f store 6 ,mem_le_plap 
-5736 18c08c06 increase 6 ,contr 
-5737 e8c40000 ifetch 8 ,contr 
-5738 60040463 store 8 ,mem_le_access 
-5739 e8c90000 ifetcht 2 ,contr 
-573a 4737402d bpatchx patch2d_6 ,mem_patch2d 
-573b 184b8400 lshift2 temp ,temp 
-573c e8c10000 ifetch 2 ,contr 
-573d 1febfe00 lshift2 pdata ,pdata 
-573e 60010441 store 2 ,mem_le_tsniff 
-573f 60020443 store 4 ,mem_le_anchor 
-5740 98467e00 isub temp ,pdata 
-5741 1fe0d1fe add pdata ,-2 ,clke_bt 
-5742 e8c48000 ifetch 9 ,contr 
-5743 6004846b store 9 ,mem_le_slave_latency 
-5744 4737c02d bpatchx patch2d_7 ,mem_patch2d 
-5745 e8c08000 ifetch 1 ,contr 
-5746 1ff18400 rshift4 pdata ,temp 
-5747 18430400 rshift temp ,temp 
-5748 60088476 storet 1 ,mem_le_peer_sca 
-5749 1fe17e1f and_into 0x1f ,pdata 
-574a 60008458 store 1 ,mem_le_hop 
-574b 20405713 call le_receive_window_size 
-574c 2040545b call le_calc_channel_map 
-574d 2040534c call le_init_slave 
-574e 2040223b call context_new 
-574f 24628000 nrtn zero 
-5750 4738402e bpatchx patch2e_0 ,mem_patch2e 
-5751 20402841 call calc_clke_offset 
-5752 20405ad3 call le_l2cap_reset_signaling_identifier 
-5753 700a9914 jam bt_evt_le_connected ,mem_fifo_temp 
-5754 20407d86 call ui_ipc_send_event 
-5755 20202223 branch context_save 
-
-le_init_attlist_search:
-5756 4738c02e bpatchx patch2e_1 ,mem_patch2e 
-5757 6801445a fetch 2 ,mem_le_search_handle_start 
-5758 98002400 iforce regb 
-5759 6801445c fetch 2 ,mem_le_search_handle_end 
-575a 98002600 iforce regc 
-575b 680144bc fetch 2 ,mem_ui_le_uuid_table 
-575c 98000c00 iforce contr 
-575d 78347c00 enable user 
-575e 20600000 rtn 
-
-le_att_handle_inrange:
-575f e8c10000 ifetch 2 ,contr 
-5760 207a0000 rtn blank 
-5761 9a467c00 isub regb ,null 
-5762 24610000 nrtn positive 
-5763 9a667c00 isub regc ,null 
-5764 20628000 rtn zero 
-5765 20215768 branch le_att_handle_blank ,positive 
-5766 18007c01 force 1 ,null 
-5767 20600000 rtn 
-
-le_att_handle_blank:
-5768 18007e00 force 0 ,pdata 
-5769 20600000 rtn 
-
-le_att_get_handle_ptr:
-576a 2040576d call le_att_get_handle_ptr2 
-576b 2022d779 branch le_att_get_handle_ptr_found ,zero 
-576c 20600000 rtn 
-
-le_att_get_handle_ptr2:
-576d 4739402e bpatchx patch2e_2 ,mem_patch2e 
-576e 680144bc fetch 2 ,mem_ui_le_uuid_table 
-576f 98000c00 iforce contr 
-
-le_att_get_handle_loop1:
-5770 e8c10000 ifetch 2 ,contr 
-5771 207a0000 rtn blank 
-5772 98467c00 isub temp ,null 
-5773 20628000 rtn zero 
-5774 e8c08000 ifetch 1 ,contr 
-5775 98c08c00 iadd contr ,contr 
-5776 e8c08000 ifetch 1 ,contr 
-5777 98c08c00 iadd contr ,contr 
-5778 20205770 branch le_att_get_handle_loop1 
-
-le_att_get_handle_ptr_found:
-5779 e8c08000 ifetch 1 ,contr 
-577a 98c08c00 iadd contr ,contr 
-577b 20600000 rtn 
-
-le_att_get_short_uuid_ptr:
-577c 4739c02e bpatchx patch2e_3 ,mem_patch2e 
-577d 680144bc fetch 2 ,mem_ui_le_uuid_table 
-577e 98000c00 iforce contr 
-
-le_att_get_short_uuid_loop:
-577f e8c10000 ifetch 2 ,contr 
-5780 207a0000 rtn blank 
-5781 e8c08000 ifetch 1 ,contr 
-5782 98c08c00 iadd contr ,contr 
-5783 18c08dfe increase -2 ,contr 
-5784 e8c10000 ifetch 2 ,contr 
-5785 98467c00 isub temp ,null 
-5786 20628000 rtn zero 
-5787 e8c08000 ifetch 1 ,contr 
-5788 98c08c00 iadd contr ,contr 
-5789 2020577f branch le_att_get_short_uuid_loop 
-
-le_att_get_handle_info_from_ptr:
-578a 6801049c fetch 2 ,mem_le_cur_attlist_start_ptr 
-578b 2020578e branch le_att_get_handle_info_fast 
-
-le_att_get_handle_info:
-578c 473a402e bpatchx patch2e_4 ,mem_patch2e 
-578d 680144bc fetch 2 ,mem_ui_le_uuid_table 
-
-le_att_get_handle_info_fast:
-578e 98000c00 iforce contr 
-578f 18422200 copy temp ,rega 
-
-le_att_get_handle_loop:
-5790 e8c10000 ifetch 2 ,contr 
-5791 203a5799 branch le_att_unfind_handle ,blank 
-5792 9a267c00 isub rega ,null 
-5793 2022d79a branch le_att_finded_handle ,zero 
-5794 e8c08000 ifetch 1 ,contr 
-5795 98c08c00 iadd contr ,contr 
-5796 e8c08000 ifetch 1 ,contr 
-5797 98c08c00 iadd contr ,contr 
-5798 20205790 branch le_att_get_handle_loop 
-
-le_att_unfind_handle:
-5799 20207fef branch disable_blank 
-
-le_att_finded_handle:
-579a e8c08000 ifetch 1 ,contr 
-579b 600084a2 store 1 ,mem_le_cur_uuid_length 
-579c 1fe27200 copy pdata ,loopcnt 
-579d d8a004a3 arg mem_le_cur_uuid ,contw 
-579e 20407ef4 call memcpy_fast 
-579f e8c08000 ifetch 1 ,contr 
-57a0 600084b3 store 1 ,mem_le_curr_att_len 
-57a1 20407ea5 call store_contr 
-57a2 20207ff1 branch enable_blank 
-
-le_modified_name:
-57a3 473ac02e bpatchx patch2e_5 ,mem_patch2e 
-57a4 204057a6 call le_modified_name_att_list 
-57a5 202057b8 branch le_modified_name_adv 
-
-le_modified_name_att_list:
-57a6 d8402a00 arg uuid_chrctr_device_name ,temp 
-57a7 2040577c call le_att_get_short_uuid_ptr 
-57a8 207a0000 rtn blank 
-57a9 e8c08000 ifetch 1 ,contr 
-57aa 18c20a00 copy contr ,contw 
-57ab 6808c3af fetcht 1 ,mem_le_name_len 
-57ac 18427200 copy temp ,loopcnt 
-57ad 98467c00 isub temp ,null 
-57ae 242157b5 nbranch le_name_length_longer_than_att ,positive 
-57af 98460400 isub temp ,temp 
-57b0 d8c043b0 arg mem_le_name ,contr 
-57b1 20407f01 call memcpy 
-57b2 18427200 copy temp ,loopcnt 
-57b3 2442d7f0 ncall memcpy_empty ,zero 
-57b4 20600000 rtn 
-
-le_name_length_longer_than_att:
-57b5 1fe27200 copy pdata ,loopcnt 
-57b6 d8c043b0 arg mem_le_name ,contr 
-57b7 20207ef4 branch memcpy_fast 
-
-le_modified_name_adv:
-57b8 da60438f arg mem_le_adv_data_len + 32 ,regc 
-57b9 da204370 arg mem_le_adv_data ,rega 
-57ba 204057c5 call le_modified_name_adv_and_scan 
-57bb 58000000 setarg 0 
-57bc 79347e00 setflag user ,0 ,pdata 
-57bd 60008a9a store 1 ,mem_pdatatemp 
-57be da6043af arg mem_le_scan_data_len + 32 ,regc 
-57bf da204390 arg mem_le_scan_data ,rega 
-57c0 204057c5 call le_modified_name_adv_and_scan 
-57c1 20740000 rtn user 
-57c2 68008a9a fetch 1 ,mem_pdatatemp 
-57c3 203a2a8c branch assert ,blank 
-57c4 20600000 rtn 
-
-le_modified_name_adv_and_scan:
-57c5 473b402e bpatchx patch2e_6 ,mem_patch2e 
-57c6 20407fe7 call enable_user 
-57c7 20407eda call clear_temp_block 
-57c8 da400000 arg 0 ,regb 
-57c9 d8a00ac3 arg mem_le_data_temp ,contw 
-57ca 204057df call le_modified_name_adv_loop 
-57cb 6800c3af fetch 1 ,mem_le_name_len 
-57cc 1fe08401 add pdata ,1 ,temp 
-57cd 9a40a200 iadd regb ,rega 
-57ce 1a20a202 increase 2 ,rega 
-57cf 1a267c1f sub rega ,0x1f ,null 
-57d0 242157dd nbranch le_modified_name_adv_and_scan_name_overflow ,positive 
-57d1 e0a88000 istoret 1 ,contw 
-57d2 d8400009 arg gap_adtype_local_name_complete ,temp 
-57d3 e0a88000 istoret 1 ,contw 
-57d4 98007200 iforce loopcnt 
-57d5 20407ef4 call memcpy_fast 
-57d6 1a222400 copy rega ,regb 
-
-le_modified_name_adv_and_scan_store_data:
-57d7 1a427e00 deposit regb 
-57d8 60008ac2 store 1 ,mem_le_data_len_temp 
-57d9 d8c00ac2 arg mem_le_data_len_temp ,contr 
-57da 5fffffe0 setarg -32 
-57db 9a608a00 iadd regc ,contw 
-57dc 20207ebd branch memcpy32 
-
-le_modified_name_adv_and_scan_name_overflow:
-57dd 20407fe9 call disable_user 
-57de 202057d7 branch le_modified_name_adv_and_scan_store_data 
-
-le_modified_name_adv_loop:
-57df ea208000 ifetch 1 ,rega 
-57e0 207a0000 rtn blank 
-57e1 1fe0fe01 pincrease 1 
-57e2 e8c88000 ifetcht 1 ,contr 
-57e3 18467c09 sub temp ,gap_adtype_local_name_complete ,null 
-57e4 2022d7ee branch le_modified_name_adv_found_name ,zero 
-57e5 9a40a400 iadd regb ,regb 
-57e6 1a220c00 copy rega ,contr 
-57e7 98007200 iforce loopcnt 
-57e8 20407ef4 call memcpy_fast 
-57e9 18c22200 copy contr ,rega 
-
-le_modified_name_adv_loop2:
-57ea 1a227e00 deposit rega 
-57eb 9a667c00 isub regc ,null 
-57ec 20610000 rtn positive 
-57ed 202057df branch le_modified_name_adv_loop 
-
-le_modified_name_adv_found_name:
-57ee 9a20a200 iadd rega ,rega 
-57ef 202057ea branch le_modified_name_adv_loop2 
-
-memcpy_empty:
-57f0 58000020 setarg space 
-57f1 e0a08000 istore 1 ,contw 
-57f2 c20057f0 loop memcpy_empty 
-57f3 20600000 rtn 
-
-le_lpm_set_mult:
-57f4 473bc02e bpatchx patch2e_7 ,mem_patch2e 
-57f5 7855fc00 disable wake 
-57f6 203757f8 branch le_lpm_set_mult_attempt ,attempt 
-57f7 2436d806 nbranch le_lpm_lost ,match 
-
-le_lpm_set_mult_attempt:
-57f8 20402bcb call lpm_match 
-57f9 680140c1 fetch 2 ,mem_rx_window_sniff 
-57fa 6001044d store 2 ,mem_le_receive_window 
-57fb 2436abde nbranch lpm_mult_short ,match 
-57fc c507abde bmark1 mark_old_packet ,lpm_mult_short 
-57fd 6800c50b fetch 1 ,mem_le_packet_size 
-57fe 243a2bde nbranch lpm_mult_short ,blank 
-57ff 6800c3dd fetch 1 ,mem_le_txlen 
-5800 243a2bde nbranch lpm_mult_short ,blank 
-5801 6800c4e9 fetch 1 ,mem_le_configuration 
-5802 c282abde bbit1 bit_ble_short_mult ,lpm_mult_short 
-5803 6800843f fetch 1 ,mem_le_state 
-5804 c282abde bbit1 lestate_update_param ,lpm_mult_short 
-5805 20202bc0 branch lpm_mult_wait_timeout 
-
-le_lpm_lost:
-5806 680940c1 fetcht 2 ,mem_rx_window_sniff 
-5807 18430400 rshift temp ,temp 
-5808 6801044d fetch 2 ,mem_le_receive_window 
-5809 9840fe00 iadd temp ,pdata 
-580a 6001044d store 2 ,mem_le_receive_window 
-580b 20202bd6 branch lpm_lost 
-
-le_set_config_fixed_tk:
-580c d8e00000 arg bit_ble_passkey_fixed_key ,queue 
-580d 20205824 branch le_set_config 
-
-le_clr_config_fixed_tk:
-580e d8e00000 arg bit_ble_passkey_fixed_key ,queue 
-580f 20205828 branch le_clr_config 
-
-le_set_config_fixed_ltk:
-5810 d8e00001 arg bit_ble_pairing_fixed_ltk ,queue 
-5811 20205824 branch le_set_config 
-
-le_clr_config_fixed_ltk:
-5812 d8e00001 arg bit_ble_pairing_fixed_ltk ,queue 
-5813 20205828 branch le_clr_config 
-
-le_set_config_more_data:
-5814 d8e00002 arg bit_ble_transmit_packet_by_md ,queue 
-5815 20205824 branch le_set_config 
-
-le_clr_config_more_data:
-5816 d8e00002 arg bit_ble_transmit_packet_by_md ,queue 
-5817 20205828 branch le_clr_config 
-
-le_set_config_read_authentication:
-5818 d8e00003 arg bit_ble_read_auth ,queue 
-5819 20205824 branch le_set_config 
-
-le_clr_config_read_authentication:
-581a d8e00003 arg bit_ble_read_auth ,queue 
-581b 20205828 branch le_clr_config 
-
-le_set_config_write_authentication:
-581c d8e00004 arg bit_ble_write_auth ,queue 
-581d 20205824 branch le_set_config 
-
-le_clr_config_write_authentication:
-581e d8e00004 arg bit_ble_write_auth ,queue 
-581f 20205828 branch le_clr_config 
-
-le_set_config_short_mult:
-5820 d8e00005 arg bit_ble_short_mult ,queue 
-5821 20205824 branch le_set_config 
-
-le_clr_config_short_mult:
-5822 d8e00005 arg bit_ble_short_mult ,queue 
-5823 20205828 branch le_clr_config 
-
-le_set_config:
-5824 6800c4e9 fetch 1 ,mem_le_configuration 
-5825 f9207e00 qset1 pdata 
-5826 6000c4e9 store 1 ,mem_le_configuration 
-5827 20600000 rtn 
-
-le_clr_config:
-5828 6800c4e9 fetch 1 ,mem_le_configuration 
-5829 f93ffe00 qset0 pdata 
-582a 6000c4e9 store 1 ,mem_le_configuration 
-582b 20600000 rtn 
-
-le_set_fixed_ltk:
-582c 58112233 setarg 0x112233 
-582d 6001c4ea store 3 ,mem_le_fixed_ltk 
-582e 58445566 setarg 0x445566 
-582f e0a18000 istore 3 ,contw 
-5830 58778899 setarg 0x778899 
-5831 e0a18000 istore 3 ,contw 
-5832 58001122 setarg 0x001122 
-5833 e0a18000 istore 3 ,contw 
-5834 58334455 setarg 0x334455 
-5835 e0a18000 istore 3 ,contw 
-5836 58000066 setarg 0x66 
-5837 e0a08000 istore 1 ,contw 
-5838 20600000 rtn 
-
-le_set_justwork:
-5839 59000302 setarg 0x01000302 
-583a 60024453 store 4 ,mem_le_pres 
-583b 58010010 setarg 0x010010 
-583c 6001c457 store 3 ,mem_le_pres_max_keysize 
-583d 7044c601 jam 1 ,mem_le_pairing_mode 
-583e 20600000 rtn 
-
-le_fifo_malloc_tx_empty:
-583f da200000 arg 0 ,rega 
-5840 d8200001 arg llid_empty ,type 
-5841 20205850 branch le_fifo_malloc_tx 
-
-le_fifo_malloc_tx_ll:
-5842 d8200003 arg llid_le_ll ,type 
-5843 20405850 call le_fifo_malloc_tx 
-5844 1a427e00 copy regb ,pdata 
-5845 e0a08000 istore 1 ,contw 
-5846 20600000 rtn 
-
-le_fifo_malloc_tx_l2cap:
-5847 18000202 force llid_l2cap_start ,type 
-5848 1a20a204 increase 4 ,rega 
-5849 20405850 call le_fifo_malloc_tx 
-584a 1a20a3fc increase -4 ,rega 
-584b 1a227e00 copy rega ,pdata 
-584c e0a10000 istore 2 ,contw 
-584d 1a427e00 copy regb ,pdata 
-584e e0a10000 istore 2 ,contw 
-584f 20600000 rtn 
-
-le_fifo_malloc_tx:
-5850 1a267cf0 sub rega ,240 ,null 
-5851 24212a8c nbranch assert ,positive 
-5852 6800c4ff fetch 1 ,mem_le_tx_buff_used 
-5853 d8400001 arg 1 ,temp 
-5854 df200004 arg le_tx_buff_count ,loopcnt 
-
-le_fifo_malloc_tx_loop:
-5855 98417c00 iand temp ,null 
-5856 2022d85a branch le_fifo_malloc_tx_got_empty ,zero 
-5857 18438400 lshift temp ,temp 
-5858 c2005855 loop le_fifo_malloc_tx_loop 
-5859 20202a8c branch assert 
-
-le_fifo_malloc_tx_got_empty:
-585a 9842fe00 ixor temp ,pdata 
-585b 6000c4ff store 1 ,mem_le_tx_buff_used 
-585c 1f267e04 sub loopcnt ,le_tx_buff_count ,pdata 
-585d 1ff27e00 lshift4 pdata ,pdata 
-585e 1ff27e00 lshift4 pdata ,pdata 
-585f d8401800 arg mem_le_tx_buffer0 ,temp 
-5860 98408400 iadd temp ,temp 
-
-le_fifo_tx_find_empty_ptr:
-5861 df200000 arg 0 ,loopcnt 
-5862 d8c04500 arg mem_le_tx_ptr0 ,contr 
-
-le_fifo_tx_find_empty_ptr_loop:
-5863 e8c10000 ifetch 2 ,contr 
-5864 203a5869 branch le_fifo_tx_found_empty_ptr ,blank 
-5865 1f227e00 copy loopcnt ,pdata 
-5866 1f20f201 increase 1 ,loopcnt 
-5867 c0825863 bne le_tx_buff_count ,le_fifo_tx_find_empty_ptr_loop 
-5868 20202a8c branch assert 
-
-le_fifo_tx_found_empty_ptr:
-5869 18c08dfe increase -2 ,contr 
-586a e0c90000 istoret 2 ,contr 
-586b 18420a00 copy temp ,contw 
-586c 1a227e00 copy rega ,pdata 
-586d e0a08000 istore 1 ,contw 
-586e 58000000 setarg 0 
-586f e0a08000 istore 1 ,contw 
-5870 18227e00 copy type ,pdata 
-5871 e0a08000 istore 1 ,contw 
-5872 20600000 rtn 
-
-le_fifo_get_first_tx_ptr:
-5873 68014500 fetch 2 ,mem_le_tx_ptr0 
-5874 1fe20c00 copy pdata ,contr 
-5875 20600000 rtn 
-
-le_fifo_get_second_tx_ptr:
-5876 68014502 fetch 2 ,mem_le_tx_ptr1 
-5877 1fe20c00 copy pdata ,contr 
-5878 20600000 rtn 
-
-le_fifo_get_last_tx_ptr:
-5879 2040587c call le_fifo_get_last_tx_ptr0 
-587a 1fe20c00 copy pdata ,contr 
-587b 20600000 rtn 
-
-le_fifo_get_last_tx_ptr0:
-587c 68014506 fetch 2 ,mem_le_tx_ptr3 
-587d 247a0000 nrtn blank 
-587e 68014504 fetch 2 ,mem_le_tx_ptr2 
-587f 247a0000 nrtn blank 
-5880 68014502 fetch 2 ,mem_le_tx_ptr1 
-5881 247a0000 nrtn blank 
-5882 68014500 fetch 2 ,mem_le_tx_ptr0 
-5883 20600000 rtn 
-
-le_fifo_get_first_l2cap_ptr:
-5884 20405873 call le_fifo_get_first_tx_ptr 
-5885 18c08c03 increase 3 ,contr 
-5886 20600000 rtn 
-
-le_fifo_get_first_att_ptr:
-5887 20405873 call le_fifo_get_first_tx_ptr 
-5888 18c08c07 increase 7 ,contr 
-5889 20600000 rtn 
-
-le_fifo_get_last_att_ptr:
-588a 20405879 call le_fifo_get_last_tx_ptr 
-588b 18c08c07 increase 7 ,contr 
-588c 20600000 rtn 
-
-le_fifo_get_last_l2cap_ptr:
-588d 20405879 call le_fifo_get_last_tx_ptr 
-588e 18c08c03 increase 3 ,contr 
-588f 20600000 rtn 
-
-le_fifo_check_full:
-5890 68014506 fetch 2 ,mem_le_tx_ptr3 
-5891 20600000 rtn 
-
-le_fifo_check_nearly_full:
-5892 68014504 fetch 2 ,mem_le_tx_ptr2 
-5893 20600000 rtn 
-
-le_fifo_check_empty:
-5894 68014500 fetch 2 ,mem_le_tx_ptr0 
-5895 20600000 rtn 
-
-le_fifo_release_first_node:
-5896 68014500 fetch 2 ,mem_le_tx_ptr0 
-5897 d8401800 arg mem_le_tx_buffer0 ,temp 
-5898 98467e00 isub temp ,pdata 
-5899 1ff1fe00 rshift4 pdata ,pdata 
-589a 1ff18e00 rshift4 pdata ,queue 
-589b 6800c4ff fetch 1 ,mem_le_tx_buff_used 
-589c f93ffe00 qset0 pdata 
-589d 6000c4ff store 1 ,mem_le_tx_buff_used 
-589e df200000 arg 0 ,loopcnt 
-
-le_fifo_release_first_node_loop:
-589f 1f23fe00 lshift loopcnt ,pdata 
-58a0 d8404502 arg mem_le_tx_ptr1 ,temp 
-58a1 98408400 iadd temp ,temp 
-58a2 e8410000 ifetch 2 ,temp 
-58a3 184085fe increase -2 ,temp 
-58a4 e0410000 istore 2 ,temp 
-58a5 1f227e00 copy loopcnt ,pdata 
-58a6 1f20f201 increase 1 ,loopcnt 
-58a7 c081d89f bne le_tx_buff_update_loopcnt ,le_fifo_release_first_node_loop 
-58a8 58000000 setarg 0 
-58a9 e0410000 istore 2 ,temp 
-58aa 20600000 rtn 
-
-le_parse_att:
-58ab e8c18000 ifetch 3 ,contr 
-58ac 60018477 store 3 ,mem_le_att_opcode 
-58ad c00158c1 beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
-58ae c001d8c9 beq attop_exchange_mtu_response ,le_parse_att_exchange_mtu_response 
-58af c00258cc beq attop_find_information_request ,le_parse_att_find_information_request 
-58b0 c00358f2 beq attop_find_by_type_value_request ,le_parse_att_find_by_type_value_request 
-58b1 c004593f beq attop_read_by_type_request ,le_parse_att_read_by_type_request 
-58b2 c00559bc beq attop_read_request ,le_parse_att_read_request 
-58b3 c00659e4 beq attop_read_blob_request ,le_parse_att_read_blob_request 
-58b4 c00859fa beq attop_read_by_group_type_request ,le_parse_att_read_by_group_type_request 
-58b5 c0095a2f beq attop_write_request ,le_parse_att_write_request 
-58b6 c00b5a48 beq attop_prepare_write_request ,le_parse_att_prepare_write_request 
-58b7 c00c5a5b beq attop_execute_write_request ,le_parse_att_execute_write_request 
-58b8 c0295a60 beq attop_write_command ,le_parse_att_write_command 
-58b9 20600000 rtn 
-
-le_send_att_exchange_mtu_requset:
-58ba 18002203 force 3 ,rega 
-58bb 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-58bc 58000002 setarg attop_exchange_mtu_request 
-58bd e0a08000 istore 1 ,contw 
-58be 680144a6 fetch 2 ,mem_le_local_mtu 
-58bf e0a10000 istore 2 ,contw 
-58c0 20600000 rtn 
-
-le_parse_att_exchange_mtu_request:
-58c1 204058c9 call le_parse_att_exchange_mtu_response 
-
-le_send_att_exchange_mtu_response:
-58c2 18002203 force 3 ,rega 
-58c3 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-58c4 58000003 setarg attop_exchange_mtu_response 
-58c5 e0a08000 istore 1 ,contw 
-58c6 680144a6 fetch 2 ,mem_le_local_mtu 
-58c7 e0a10000 istore 2 ,contw 
-58c8 20600000 rtn 
-
-le_parse_att_exchange_mtu_response:
-58c9 1fecfe00 rshift8 pdata ,pdata 
-58ca 600144a8 store 2 ,mem_le_remote_mtu 
-58cb 20600000 rtn 
-
-le_parse_att_find_information_request:
-58cc 20405ab1 call le_get_search_handle_start_end_common 
-58cd 20407fe7 call enable_user 
-58ce 202058cf branch le_send_att_find_information_response 
-
-le_send_att_find_information_response:
-58cf d9600003 arg 3 ,timeup 
-58d0 20405756 call le_init_attlist_search 
-
-le_send_att_find_information_res_loop:
-58d1 2040575f call le_att_handle_inrange 
-58d2 203a58f0 branch le_send_att_find_information_res_end ,blank 
-58d3 242158ed nbranch le_send_att_find_information_res_next ,positive 
-58d4 18c08dfe increase -2 ,contr 
-58d5 20407ea5 call store_contr 
-58d6 20407e9c call get_contw 
-58d7 243458e1 nbranch le_send_att_find_information_res_store_info ,user 
-58d8 20407e85 call push_stack_rega_b_c 
-58d9 20407fe9 call disable_user 
-58da 18002214 force 20 ,rega 
-58db 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-58dc 20407e95 call pop_stack_rega_b_c 
-58dd 58000005 setarg attop_find_information_response 
-58de e0a08000 istore 1 ,contw 
-58df 58000001 setarg uuid_size_16bit 
-58e0 e0a08000 istore 1 ,contw 
-
-le_send_att_find_information_res_store_info:
-58e1 20407e9f call get_contr 
-58e2 e8c10000 ifetch 2 ,contr 
-58e3 e0a10000 istore 2 ,contw 
-58e4 e8c08000 ifetch 1 ,contr 
-58e5 1fe27200 copy pdata ,loopcnt 
-58e6 20407f01 call memcpy 
-58e7 20407ea2 call store_contw 
-58e8 196097ff increase -1 ,timeup 
-58e9 2022d8f0 branch le_send_att_find_information_res_end ,zero 
-
-le_send_att_find_information_res_cont:
-58ea e8c08000 ifetch 1 ,contr 
-58eb 98c08c00 iadd contr ,contr 
-58ec 202058d1 branch le_send_att_find_information_res_loop 
-
-le_send_att_find_information_res_next:
-58ed e8c08000 ifetch 1 ,contr 
-58ee 98c08c00 iadd contr ,contr 
-58ef 202058ea branch le_send_att_find_information_res_cont 
-
-le_send_att_find_information_res_end:
-58f0 20345a76 branch le_send_att_error_response_notfound ,user 
-58f1 20205aa5 branch le_send_auto_len_by_mem 
-
-le_parse_att_find_by_type_value_request:
-58f2 20405ab1 call le_get_search_handle_start_end_common 
-58f3 e8c10000 ifetch 2 ,contr 
-58f4 60014472 store 2 ,mem_le_search_uuid 
-58f5 20407ea5 call store_contr 
-58f6 d8a0445e arg mem_le_search_att_type_length ,contw 
-58f7 680144fc fetch 2 ,mem_le_l2cap_size 
-58f8 1fe0fff9 increase -7 ,pdata 
-58f9 204056db call le_get_search_common2 
-58fa 20205905 branch le_send_att_find_by_type_value_response 
-
-le_start_end_handle_check_1:
-58fb 78547c00 disable user 
-58fc 6809445a fetcht 2 ,mem_le_search_handle_start 
-58fd 6801445c fetch 2 ,mem_le_search_handle_end 
-58fe 98467c00 isub temp ,null 
-58ff 24215902 nbranch le_start_end_handle_check_1_fail ,positive 
-5900 18427e00 deposit temp 
-5901 c1800000 rtnne 0 
-
-le_start_end_handle_check_1_fail:
-5902 78347c00 enable user 
-5903 70047a01 jam att_err_invalid_handle ,mem_le_err_code 
-5904 20205a77 branch le_send_att_error_response 
-
-le_send_att_find_by_type_value_response:
-5905 204058fb call le_start_end_handle_check_1 
-5906 20740000 rtn user 
-5907 68094472 fetcht 2 ,mem_le_search_uuid 
-5908 58002800 setarg uuid_gatt_primary_service 
-5909 98467c00 isub temp ,null 
-590a 2022d90c branch le_send_att_find_by_type_value_res_primary ,zero 
-590b 20205a76 branch le_send_att_error_response_notfound 
-
-le_send_att_find_by_type_value_res_primary:
-590c 7004b400 jam le_find_by_type_val_res_not_found ,mem_le_search_res 
-590d 6809445a fetcht 2 ,mem_le_search_handle_start 
-590e 60090aa2 storet 2 ,mem_temp 
-590f 2040578c call le_att_get_handle_info 
-5910 243a5a76 nbranch le_send_att_error_response_notfound ,blank 
-
-le_send_att_find_primary_search_loop:
-5911 68090aa2 fetcht 2 ,mem_temp 
-5912 2040578c call le_att_get_handle_info 
-5913 243a5925 nbranch le_send_att_error_response_notfound2 ,blank 
-5914 18c22200 copy contr ,rega 
-5915 680084b3 fetch 1 ,mem_le_curr_att_len 
-5916 1fe27200 copy pdata ,loopcnt 
-5917 6808c45e fetcht 1 ,mem_le_search_att_type_length 
-5918 98467c00 isub temp ,null 
-5919 2422d921 nbranch le_send_att_find_primary_search_loop1 ,zero 
-591a da40445f arg mem_le_search_att_type ,regb 
-591b 20407f88 call string_compare 
-591c 2022d928 branch le_send_att_find_primary_search_end_start_handle_found ,zero 
-591d 680104a3 fetch 2 ,mem_le_cur_uuid 
-591e 68094472 fetcht 2 ,mem_le_search_uuid 
-591f 98467c00 isub temp ,null 
-5920 2022d930 branch le_send_att_find_primary_search_end_ending_handle_found ,zero 
-
-le_send_att_find_primary_search_loop1:
-5921 68010aa2 fetch 2 ,mem_temp 
-5922 1fe0fe01 increase 1 ,pdata 
-5923 60010aa2 store 2 ,mem_temp 
-5924 20205911 branch le_send_att_find_primary_search_loop 
-
-le_send_att_error_response_notfound2:
-5925 680084b4 fetch 1 ,mem_le_search_res 
-5926 c000d930 beq le_find_by_type_val_res_found_starting_handle ,le_send_att_find_primary_search_end_ending_handle_found 
-5927 20205a76 branch le_send_att_error_response_notfound 
-
-le_send_att_find_primary_search_end_start_handle_found:
-5928 680104a3 fetch 2 ,mem_le_cur_uuid 
-5929 68094472 fetcht 2 ,mem_le_search_uuid 
-592a 98467c00 isub temp ,null 
-592b 2422d921 nbranch le_send_att_find_primary_search_loop1 ,zero 
-592c 7004b401 jam le_find_by_type_val_res_found_starting_handle ,mem_le_search_res 
-592d 68090aa2 fetcht 2 ,mem_temp 
-592e 6009049e storet 2 ,mem_le_cur_handle_start 
-592f 20205921 branch le_send_att_find_primary_search_loop1 
-
-le_send_att_find_primary_search_end_ending_handle_found:
-5930 680084b4 fetch 1 ,mem_le_search_res 
-5931 c0005921 beq le_find_by_type_val_res_not_found ,le_send_att_find_primary_search_loop1 
-5932 7004b402 jam le_find_by_type_val_res_found_ending_handle ,mem_le_search_res 
-5933 68090aa2 fetcht 2 ,mem_temp 
-5934 184085ff increase -1 ,temp 
-5935 600904a0 storet 2 ,mem_le_cur_handle_end 
-
-le_send_att_find_primary_search_end:
-5936 da200005 arg 5 ,rega 
-5937 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-5938 58000007 setarg attop_find_by_type_value_response 
-5939 e0a08000 istore 1 ,contw 
-593a 6801049e fetch 2 ,mem_le_cur_handle_start 
-593b e0a10000 istore 2 ,contw 
-593c 680104a0 fetch 2 ,mem_le_cur_handle_end 
-593d e0a10000 istore 2 ,contw 
-593e 20600000 rtn 
-
-le_parse_att_read_by_type_request:
-593f 20405ab1 call le_get_search_handle_start_end_common 
-5940 204056df call le_get_search_att_uuid 
-5941 20205942 branch le_send_att_read_by_type_response 
-
-le_send_att_read_by_type_response:
-5942 6809445a fetcht 2 ,mem_le_search_handle_start 
-5943 60090aa2 storet 2 ,mem_temp 
-5944 20405756 call le_init_attlist_search 
-5945 2040576d call le_att_get_handle_ptr2 
-5946 18c08dfe increase -2 ,contr 
-5947 18c27e00 copy contr ,pdata 
-5948 6001049c store 2 ,mem_le_cur_attlist_start_ptr 
-5949 68094472 fetcht 2 ,mem_le_search_uuid 
-594a 58002a00 setarg uuid_chrctr_device_name 
-594b 98467c00 isub temp ,null 
-594c 2022d9a8 branch le_send_att_read_by_type_res_device_name ,zero 
-594d 58002803 setarg uuid_gatt_characteristic 
-594e 98467c00 isub temp ,null 
-594f 2422d990 nbranch le_send_att_read_by_type_res_not_characteristic ,zero 
-5950 d9600002 arg 2 ,timeup 
-
-le_send_att_read_by_type_response_loop:
-5951 20405a88 call le_att_check_handle_end 
-5952 2421596d nbranch le_send_att_read_by_type_response_end ,positive 
-5953 68090aa2 fetcht 2 ,mem_temp 
-5954 2040578a call le_att_get_handle_info_from_ptr 
-5955 c000d96d beq 1 ,le_send_att_read_by_type_response_end 
-5956 20405a94 call le_att_same_uuid 
-5957 2422d96b nbranch le_send_att_read_by_type_response_next_handle ,zero 
-5958 2434596f nbranch le_send_att_read_by_type_res_found_next ,user 
-5959 78547c00 disable user 
-595a da200014 arg 20 ,rega 
-595b 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-595c 58000009 setarg attop_read_by_type_response 
-595d e0a08000 istore 1 ,contw 
-595e 18a26000 copy contw ,alarm 
-595f 18a08a01 increase 1 ,contw 
-5960 2040597d call le_send_att_read_by_type_write_properties 
-5961 20405a84 call le_att_next_handle 
-5962 2040578a call le_att_get_handle_info_from_ptr 
-5963 20405984 call le_send_att_read_by_type_write_uuid 
-5964 680084a2 fetch 1 ,mem_le_cur_uuid_length 
-5965 1fe0fe05 increase 5 ,pdata 
-5966 e6008000 istore 1 ,alarm 
-5967 680084a2 fetch 1 ,mem_le_cur_uuid_length 
-5968 c008596d beq 16 ,le_send_att_read_by_type_response_end 
-5969 196097ff increase -1 ,timeup 
-596a 2022d96d branch le_send_att_read_by_type_response_end ,zero 
-
-le_send_att_read_by_type_response_next_handle:
-596b 20405a84 call le_att_next_handle 
-596c 20205951 branch le_send_att_read_by_type_response_loop 
-
-le_send_att_read_by_type_response_end:
-596d 20345a76 branch le_send_att_error_response_notfound ,user 
-596e 20205aa5 branch le_send_auto_len_by_mem 
-
-le_send_att_read_by_type_res_found_next:
-596f 20405a97 call le_store_att_record 
-5970 20405a84 call le_att_next_handle 
-5971 2040578a call le_att_get_handle_info_from_ptr 
-5972 680084a2 fetch 1 ,mem_le_cur_uuid_length 
-5973 c008596d beq 16 ,le_send_att_read_by_type_response_end 
-5974 20407e9c call get_contw 
-5975 68010aa2 fetch 2 ,mem_temp 
-5976 1fe0ffff increase -1 ,pdata 
-5977 e0a10000 istore 2 ,contw 
-5978 20405aa1 call le_write_att_record_common 
-5979 20405984 call le_send_att_read_by_type_write_uuid 
-597a 196097ff increase -1 ,timeup 
-597b 2022d96d branch le_send_att_read_by_type_response_end ,zero 
-597c 2020596b branch le_send_att_read_by_type_response_next_handle 
-
-le_send_att_read_by_type_write_properties:
-597d 68010aa2 fetch 2 ,mem_temp 
-597e e0a10000 istore 2 ,contw 
-597f 680084b3 fetch 1 ,mem_le_curr_att_len 
-5980 1fe27200 copy pdata ,loopcnt 
-5981 20407e9f call get_contr 
-5982 20407ef4 call memcpy_fast 
-5983 20207ea2 branch store_contw 
-
-le_send_att_read_by_type_write_uuid:
-5984 20407e9c call get_contw 
-5985 68010aa2 fetch 2 ,mem_temp 
-5986 e0a10000 istore 2 ,contw 
-5987 20407ea2 call store_contw 
-5988 680084a2 fetch 1 ,mem_le_cur_uuid_length 
-5989 1fe27200 copy pdata ,loopcnt 
-598a 20407e9c call get_contw 
-598b 20407e9f call get_contr 
-598c 9f260c00 isub loopcnt ,contr 
-598d 18c08dff increase -1 ,contr 
-598e 20407ef4 call memcpy_fast 
-598f 20207ea2 branch store_contw 
-
-le_send_att_read_by_type_res_not_characteristic:
-5990 6809445a fetcht 2 ,mem_le_search_handle_start 
-5991 60090aa2 storet 2 ,mem_temp 
-
-le_send_att_read_by_type_res_not_char_loop:
-5992 20405a88 call le_att_check_handle_end 
-5993 24215a76 nbranch le_send_att_error_response_notfound ,positive 
-5994 2040578a call le_att_get_handle_info_from_ptr 
-5995 c000da76 beq 1 ,le_send_att_error_response_notfound 
-5996 20405a94 call le_att_same_uuid 
-5997 2422d9a6 nbranch le_send_att_read_by_type_res_not_char_next ,zero 
-
-le_send_att_read_by_type_res_not_char_common:
-5998 da200014 arg 20 ,rega 
-5999 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-599a 58000009 setarg attop_read_by_type_response 
-599b e0a08000 istore 1 ,contw 
-599c 680084b3 fetch 1 ,mem_le_curr_att_len 
-599d 1fe27200 copy pdata ,loopcnt 
-599e 1fe0fe02 increase 2 ,pdata 
-599f e0a08000 istore 1 ,contw 
-59a0 68010aa2 fetch 2 ,mem_temp 
-59a1 e0a10000 istore 2 ,contw 
-59a2 20407e9f call get_contr 
-59a3 20407ef4 call memcpy_fast 
-59a4 20407ea2 call store_contw 
-59a5 20205aa5 branch le_send_auto_len_by_mem 
-
-le_send_att_read_by_type_res_not_char_next:
-59a6 20405a84 call le_att_next_handle 
-59a7 20205992 branch le_send_att_read_by_type_res_not_char_loop 
-
-le_send_att_read_by_type_res_device_name:
-59a8 d8402a00 arg uuid_chrctr_device_name ,temp 
-59a9 2040577c call le_att_get_short_uuid_ptr 
-59aa 207a0000 rtn blank 
-59ab 18c08dfb increase -5 ,contr 
-59ac e8c10000 ifetch 2 ,contr 
-59ad 60010aa2 store 2 ,mem_temp 
-59ae da200014 arg 20 ,rega 
-59af 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-59b0 58000009 setarg attop_read_by_type_response 
-59b1 e0a08000 istore 1 ,contw 
-59b2 6800c3af fetch 1 ,mem_le_name_len 
-59b3 1fe27200 copy pdata ,loopcnt 
-59b4 1fe0fe02 increase 2 ,pdata 
-59b5 e0a08000 istore 1 ,contw 
-59b6 68010aa2 fetch 2 ,mem_temp 
-59b7 e0a10000 istore 2 ,contw 
-59b8 d8c043b0 arg mem_le_name ,contr 
-59b9 20407ef4 call memcpy_fast 
-59ba 20407ea2 call store_contw 
-59bb 20205aa5 branch le_send_auto_len_by_mem 
-
-le_parse_att_read_request:
-59bc 68090478 fetcht 2 ,mem_le_att_handle 
-59bd 6800c4e9 fetch 1 ,mem_le_configuration 
-59be c281d9dd bbit1 bit_ble_read_auth ,le_send_att_read_response_check_auth 
-
-le_send_att_read_response:
-59bf 2040576a call le_att_get_handle_ptr 
-59c0 203a5a76 branch le_send_att_error_response_notfound ,blank 
-59c1 18c08dfe increase -2 ,contr 
-59c2 e8c10000 ifetch 2 ,contr 
-59c3 d8402a00 arg uuid_chrctr_device_name ,temp 
-59c4 98467c00 isub temp ,null 
-59c5 2022d9d3 branch le_send_device_name ,zero 
-59c6 e8c08000 ifetch 1 ,contr 
-59c7 1fe67c16 sub pdata ,22 ,null 
-59c8 202159ca branch le_send_att_read_response_less ,positive 
-59c9 18007e16 force 22 ,pdata 
-
-le_send_att_read_response_less:
-59ca 1fe22600 copy pdata ,regc 
-59cb 20407ea5 call store_contr 
-59cc 1a60a201 add regc ,1 ,rega 
-59cd 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-59ce 5800000b setarg attop_read_response 
-59cf e0a08000 istore 1 ,contw 
-59d0 1a627200 copy regc ,loopcnt 
-59d1 20407e9f call get_contr 
-59d2 20207f01 branch memcpy 
-
-le_send_device_name:
-59d3 20407ea5 call store_contr 
-59d4 6800c3af fetch 1 ,mem_le_name_len 
-59d5 1fe0a201 add pdata ,1 ,rega 
-59d6 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-59d7 5800000b setarg attop_read_response 
-59d8 e0a08000 istore 1 ,contw 
-59d9 6800c3af fetch 1 ,mem_le_name_len 
-59da 1fe27200 copy pdata ,loopcnt 
-59db d8c043b0 arg mem_le_name ,contr 
-59dc 20207f01 branch memcpy 
-
-le_send_att_read_response_check_auth:
-59dd 680144fa fetch 2 ,mem_le_pairing_handle 
-59de 98467c00 isub temp ,null 
-59df 2422d9bf nbranch le_send_att_read_response ,zero 
-59e0 20405a42 call le_check_encrypt_state 
-59e1 243459bf nbranch le_send_att_read_response ,user 
-59e2 70047a05 jam att_err_insufficient_authentication ,mem_le_err_code 
-59e3 20205a77 branch le_send_att_error_response 
-
-le_parse_att_read_blob_request:
-59e4 e8c10000 ifetch 2 ,contr 
-59e5 6001445e store 2 ,mem_le_att_offset 
-
-le_send_att_read_blob_response:
-59e6 da200014 arg 20 ,rega 
-59e7 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-59e8 5800000d setarg attop_read_blob_response 
-59e9 e0a08000 istore 1 ,contw 
-59ea 6801445e fetch 2 ,mem_le_att_offset 
-59eb 98002200 iforce rega 
-59ec 68090478 fetcht 2 ,mem_le_att_handle 
-59ed 2040576a call le_att_get_handle_ptr 
-59ee 203a5a76 branch le_send_att_error_response_notfound ,blank 
-59ef e8c08000 ifetch 1 ,contr 
-59f0 9a267200 isub rega ,loopcnt 
-59f1 24215a76 nbranch le_send_att_error_response_notfound ,positive 
-59f2 1f267c16 sub loopcnt ,22 ,null 
-59f3 202159f5 branch le_send_att_read_blob_response_less ,positive 
-59f4 18007216 force 22 ,loopcnt 
-
-le_send_att_read_blob_response_less:
-59f5 1a227e00 deposit rega 
-59f6 98c08c00 iadd contr ,contr 
-59f7 20407ef4 call memcpy_fast 
-59f8 20407ea2 call store_contw 
-59f9 20205aa5 branch le_send_auto_len_by_mem 
-
-le_parse_att_read_by_group_type_request:
-59fa 20405ab1 call le_get_search_handle_start_end_common 
-59fb 204056d7 call le_get_search_att_type 
-59fc 202059fd branch le_send_att_read_by_group_type_response 
-
-le_send_att_read_by_group_type_response:
-59fd d9600002 arg 2 ,timeup 
-59fe 6809445a fetcht 2 ,mem_le_search_handle_start 
-59ff 60090aa2 storet 2 ,mem_temp 
-5a00 20405756 call le_init_attlist_search 
-5a01 2040576d call le_att_get_handle_ptr2 
-5a02 18c08dfe increase -2 ,contr 
-5a03 18c27e00 copy contr ,pdata 
-5a04 6001049c store 2 ,mem_le_cur_attlist_start_ptr 
-
-le_send_att_read_by_group_type_response_loop:
-5a05 20405a88 call le_att_check_handle_end 
-5a06 24215a25 nbranch le_send_att_read_by_group_type_end0 ,positive 
-5a07 68090aa2 fetcht 2 ,mem_temp 
-5a08 2040578a call le_att_get_handle_info_from_ptr 
-5a09 c000da28 beq 1 ,le_send_att_read_by_group_type_end1 
-5a0a 20405a8c call le_att_same_type 
-5a0b 2422da23 nbranch le_send_att_read_by_group_type_next_handle ,zero 
-5a0c 19627e00 copy timeup ,pdata 
-5a0d c0005a28 beq 0 ,le_send_att_read_by_group_type_end1 
-5a0e 24345a19 nbranch le_send_att_read_by_group_type_store_write_record ,user 
-5a0f 78547c00 disable user 
-5a10 da200014 arg 20 ,rega 
-5a11 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-5a12 58000011 setarg attop_read_by_group_type_response 
-5a13 e0a08000 istore 1 ,contw 
-5a14 680084b3 fetch 1 ,mem_le_curr_att_len 
-5a15 1fe0fe04 increase 4 ,pdata 
-5a16 e0a08000 istore 1 ,contw 
-5a17 20407ea2 call store_contw 
-5a18 20205a1f branch le_send_att_read_by_group_type_store_record 
-
-le_send_att_read_by_group_type_store_write_record:
-5a19 680084b3 fetch 1 ,mem_le_curr_att_len 
-5a1a c0085a28 beq 16 ,le_send_att_read_by_group_type_end1 
-5a1b 68010aa2 fetch 2 ,mem_temp 
-5a1c 1fe0ffff increase -1 ,pdata 
-5a1d 600104a0 store 2 ,mem_le_cur_handle_end 
-5a1e 20405a9c call le_write_att_record 
-
-le_send_att_read_by_group_type_store_record:
-5a1f 68010aa2 fetch 2 ,mem_temp 
-5a20 6001049e store 2 ,mem_le_cur_handle_start 
-5a21 20405a97 call le_store_att_record 
-5a22 196097ff increase -1 ,timeup 
-
-le_send_att_read_by_group_type_next_handle:
-5a23 20405a84 call le_att_next_handle 
-5a24 20205a05 branch le_send_att_read_by_group_type_response_loop 
-
-le_send_att_read_by_group_type_end0:
-5a25 68010aa2 fetch 2 ,mem_temp 
-5a26 600104a0 store 2 ,mem_le_cur_handle_end 
-5a27 20205a2c branch le_send_att_read_by_group_type_end_common 
-
-le_send_att_read_by_group_type_end1:
-5a28 68010aa2 fetch 2 ,mem_temp 
-5a29 1fe0ffff increase -1 ,pdata 
-5a2a 600104a0 store 2 ,mem_le_cur_handle_end 
-5a2b 20205a2c branch le_send_att_read_by_group_type_end_common 
-
-le_send_att_read_by_group_type_end_common:
-5a2c 20345a76 branch le_send_att_error_response_notfound ,user 
-5a2d 20405a9c call le_write_att_record 
-5a2e 20205aa5 branch le_send_auto_len_by_mem 
-
-le_parse_att_write_request:
-5a2f 18c22200 copy contr ,rega 
-5a30 680144fc fetch 2 ,mem_le_l2cap_size 
-5a31 1fe0a5fd add pdata ,-3 ,regb 
-5a32 204056e2 call le_writeatt_cb 
-
-le_send_att_write_response_check_auth:
-5a33 6800c4e9 fetch 1 ,mem_le_configuration 
-5a34 c3025a3d bbit0 bit_ble_write_auth ,le_send_att_write_response 
-5a35 68090478 fetcht 2 ,mem_le_att_handle 
-5a36 680144fa fetch 2 ,mem_le_pairing_handle 
-5a37 98467c00 isub temp ,null 
-5a38 2422da3d nbranch le_send_att_write_response ,zero 
-5a39 20405a42 call le_check_encrypt_state 
-5a3a 24345a3d nbranch le_send_att_write_response ,user 
-5a3b 70047a05 jam att_err_insufficient_authentication ,mem_le_err_code 
-5a3c 20205a77 branch le_send_att_error_response 
-
-le_send_att_write_response:
-5a3d 18002201 force 1 ,rega 
-5a3e 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-5a3f 58000013 setarg attop_write_response 
-5a40 e0a08000 istore 1 ,contw 
-5a41 20600000 rtn 
-
-le_check_encrypt_state:
-5a42 20407fe9 call disable_user 
-5a43 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5a44 c1000000 rtneq le_pairing_mode_none 
-5a45 6800c040 fetch 1 ,mem_context 
-5a46 c3820000 rtnbit1 lestate_encryption 
-5a47 20207fe7 branch enable_user 
-
-le_parse_att_prepare_write_request:
-5a48 18c0a202 add contr ,2 ,rega 
-5a49 680144fc fetch 2 ,mem_le_l2cap_size 
-5a4a 1fe0a5fb add pdata ,-5 ,regb 
-5a4b 204056e2 call le_writeatt_cb 
-5a4c 20205a4d branch le_send_att_prepare_write_response 
-
-le_send_att_prepare_write_response:
-5a4d 680144fc fetch 2 ,mem_le_l2cap_size 
-5a4e 1fe22200 copy pdata ,rega 
-5a4f 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-5a50 58000017 setarg attop_prepare_write_response 
-5a51 e0a08000 istore 1 ,contw 
-5a52 68010478 fetch 2 ,mem_le_att_handle 
-5a53 e0a10000 istore 2 ,contw 
-5a54 680144fc fetch 2 ,mem_le_l2cap_size 
-5a55 1fe0f3fb add pdata ,-5 ,loopcnt 
-5a56 6801450d fetch 2 ,mem_le_payload_ptr 
-5a57 1fe08c07 add pdata ,7 ,contr 
-5a58 e8c10000 ifetch 2 ,contr 
-5a59 e0a10000 istore 2 ,contw 
-5a5a 20207ef4 branch memcpy_fast 
-
-le_parse_att_execute_write_request:
-
-le_send_att_execute_write_response:
-5a5b 18002201 force 1 ,rega 
-5a5c 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-5a5d 58000019 setarg attop_execute_write_response 
-5a5e e0a08000 istore 1 ,contw 
-5a5f 20600000 rtn 
-
-le_parse_att_write_command:
-5a60 18c22200 copy contr ,rega 
-5a61 680144fc fetch 2 ,mem_le_l2cap_size 
-5a62 1fe0a5fd add pdata ,-3 ,regb 
-5a63 202056e2 branch le_writeatt_cb 
-
-le_att_malloc_tx_notify:
-5a64 18422600 copy temp ,regc 
-5a65 1a20a203 increase 3 ,rega 
-5a66 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-5a67 1a20a3fd increase -3 ,rega 
-5a68 5800001b setarg attop_handle_value_notification 
-5a69 e0a08000 istore 1 ,contw 
-5a6a 1a620400 copy regc ,temp 
-5a6b e0a90000 istoret 2 ,contw 
-5a6c 20600000 rtn 
-
-le_att_malloc_tx_indication:
-5a6d 18422600 copy temp ,regc 
-5a6e 1a20a203 increase 3 ,rega 
-5a6f 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-5a70 1a20a3fd increase -3 ,rega 
-5a71 5800001d setarg attop_handle_value_indication 
-5a72 e0a08000 istore 1 ,contw 
-5a73 1a620400 copy regc ,temp 
-5a74 e0a90000 istoret 2 ,contw 
-5a75 20600000 rtn 
-
-le_send_att_error_response_notfound:
-5a76 70047a0a jam att_err_attribute_not_found ,mem_le_err_code 
-
-le_send_att_error_response:
-5a77 18002205 force 5 ,rega 
-5a78 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
-5a79 58000001 setarg attop_error_response 
-5a7a e0a08000 istore 1 ,contw 
-5a7b 68008477 fetch 1 ,mem_le_att_opcode 
-5a7c e0a08000 istore 1 ,contw 
-5a7d 68010478 fetch 2 ,mem_le_att_handle 
-5a7e e0a10000 istore 2 ,contw 
-5a7f 6800847a fetch 1 ,mem_le_err_code 
-5a80 e0a08000 istore 1 ,contw 
-5a81 20600000 rtn 
-
-le_fifo_malloc_tx_l2cap_gatt:
-5a82 18002404 force le_l2cap_cid_att ,regb 
-5a83 20205847 branch le_fifo_malloc_tx_l2cap 
-
-le_att_next_handle:
-5a84 68090aa2 fetcht 2 ,mem_temp 
-5a85 18408401 increase 1 ,temp 
-5a86 60090aa2 storet 2 ,mem_temp 
-5a87 20600000 rtn 
-
-le_att_check_handle_end:
-5a88 68090aa2 fetcht 2 ,mem_temp 
-5a89 6801445c fetch 2 ,mem_le_search_handle_end 
-5a8a 98467c00 isub temp ,null 
-5a8b 20600000 rtn 
-
-le_att_same_type:
-5a8c 6808c45e fetcht 1 ,mem_le_search_att_type_length 
-5a8d da20445f arg mem_le_search_att_type ,rega 
-
-le_att_check_same_common:
-5a8e 680084a2 fetch 1 ,mem_le_cur_uuid_length 
-5a8f 1fe27200 copy pdata ,loopcnt 
-5a90 98467c00 isub temp ,null 
-5a91 24628000 nrtn zero 
-5a92 da4004a3 arg mem_le_cur_uuid ,regb 
-5a93 20207f88 branch string_compare 
-
-le_att_same_uuid:
-5a94 6808c471 fetcht 1 ,mem_le_search_uuid_length 
-5a95 da204472 arg mem_le_search_uuid ,rega 
-5a96 20205a8e branch le_att_check_same_common 
-
-le_store_att_record:
-5a97 680084b3 fetch 1 ,mem_le_curr_att_len 
-5a98 60008101 store 1 ,mem_tmp_buffer 
-5a99 1fe27200 copy pdata ,loopcnt 
-5a9a 20407e9f call get_contr 
-5a9b 20207ef4 branch memcpy_fast 
-
-le_write_att_record:
-5a9c 20407e9c call get_contw 
-5a9d 6801049e fetch 2 ,mem_le_cur_handle_start 
-5a9e e0a10000 istore 2 ,contw 
-5a9f 680104a0 fetch 2 ,mem_le_cur_handle_end 
-5aa0 e0a10000 istore 2 ,contw 
-
-le_write_att_record_common:
-5aa1 68008101 fetch 1 ,mem_tmp_buffer 
-5aa2 1fe27200 copy pdata ,loopcnt 
-5aa3 20407ef4 call memcpy_fast 
-5aa4 20207ea2 branch store_contw 
-
-le_send_auto_len_by_mem:
-5aa5 20407e9c call get_contw 
-5aa6 2040588a call le_fifo_get_last_att_ptr 
-5aa7 18a27e00 copy contw ,pdata 
-5aa8 98c62200 isub contr ,rega 
-5aa9 2040588d call le_fifo_get_last_l2cap_ptr 
-5aaa 1a227e00 copy rega ,pdata 
-5aab e0c10000 istore 2 ,contr 
-5aac 1a20a204 increase 4 ,rega 
-5aad 20405879 call le_fifo_get_last_tx_ptr 
-5aae 1a227e00 copy rega ,pdata 
-5aaf e0c08000 istore 1 ,contr 
-5ab0 20600000 rtn 
-
-le_get_search_handle_start_end_common:
-5ab1 1fecfe00 rshift8 pdata ,pdata 
-5ab2 6001445a store 2 ,mem_le_search_handle_start 
-5ab3 e8c10000 ifetch 2 ,contr 
-5ab4 6001445c store 2 ,mem_le_search_handle_end 
-5ab5 20600000 rtn 
-
-le_parse_signaling:
-5ab6 e8c08000 ifetch 1 ,contr 
-5ab7 e8c88000 ifetcht 1 ,contr 
-5ab8 e8c90000 ifetcht 2 ,contr 
-5ab9 c009dabb beq l2cap_connection_parameter_update_response ,le_l2cap_parse_conn_parameter_update_rsp 
-5aba 20600000 rtn 
-
-le_l2cap_parse_conn_parameter_update_rsp:
-5abb e8c10000 ifetch 2 ,contr 
-5abc 60014509 store 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
-5abd 700a9940 jam bt_evt_le_parse_conn_papa_update_rsp ,mem_fifo_temp 
-5abe 20207d86 branch ui_ipc_send_event 
-
-le_l2cap_tx_update_req:
-5abf da20000c arg 0x0c ,rega 
-5ac0 da600012 arg l2cap_connection_parameter_update_request ,regc 
-5ac1 20405ac7 call le_fifo_malloc_tx_l2cap_signaling 
-5ac2 58000008 setarg 0x08 
-5ac3 e0a10000 istore 2 ,contw 
-5ac4 68044496 fetch 8 ,mem_le_interval_min 
-5ac5 e0a40000 istore 8 ,contw 
-5ac6 20600000 rtn 
-
-le_fifo_malloc_tx_l2cap_signaling:
-5ac7 20405acf call le_l2cap_update_signaling_identifier 
-5ac8 da400005 arg le_l2cap_cid_signal ,regb 
-5ac9 20405847 call le_fifo_malloc_tx_l2cap 
-5aca 1a627e00 copy regc ,pdata 
-5acb e0a08000 istore 1 ,contw 
-5acc 6800c508 fetch 1 ,mem_le_signaling_identifier 
-5acd e0a08000 istore 1 ,contw 
-5ace 20600000 rtn 
-
-le_l2cap_update_signaling_identifier:
-5acf 6800c508 fetch 1 ,mem_le_signaling_identifier 
-5ad0 1fe0fe01 pincrease 1 
-5ad1 6000c508 store 1 ,mem_le_signaling_identifier 
-5ad2 c1800000 rtnne 0 
-
-le_l2cap_reset_signaling_identifier:
-5ad3 70450801 jam 1 ,mem_le_signaling_identifier 
-5ad4 20600000 rtn 
-
-le_pairing_mode_init:
-5ad5 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5ad6 c0005ae4 beq le_pairing_mode_none ,le_set_no_pairing 
-5ad7 c000dae7 beq le_pairing_mode_lagacy_justwork ,le_set_pairing_mode_lagacy_just_work 
-5ad8 c0015ae9 beq le_pairing_mode_lagacy_passkey ,le_set_pairing_mode_lagacy_passkey 
-5ad9 c040dadd beq le_pairing_mode_secure_connect_justwork ,le_set_pairing_mode_secure_justwork 
-5ada c0415adf beq le_pairing_mode_secure_connect_numeric ,le_set_pairing_mode_secure_numeric 
-5adb c041dae2 beq le_pairing_mode_secure_connect_passkey ,le_set_pairing_mode_secure_passkey 
-5adc 20600000 rtn 
-
-le_set_pairing_mode_secure_justwork:
-5add 7044560d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-5ade 20205ae5 branch le_set_noinputnooutput 
-
-le_set_pairing_mode_secure_numeric:
-5adf 7044560d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-5ae0 70445401 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
-5ae1 20600000 rtn 
-
-le_set_pairing_mode_secure_passkey:
-5ae2 7044560d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-5ae3 20205aea branch le_set_displayonly 
-
-le_set_no_pairing:
-5ae4 70445600 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
-
-le_set_noinputnooutput:
-5ae5 70445403 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
-5ae6 20600000 rtn 
-
-le_set_pairing_mode_lagacy_just_work:
-5ae7 70445605 jam flag_le_bonding_mitm ,mem_le_pres_auth 
-5ae8 20205ae5 branch le_set_noinputnooutput 
-
-le_set_pairing_mode_lagacy_passkey:
-5ae9 70445605 jam flag_le_bonding_mitm ,mem_le_pres_auth 
-
-le_set_displayonly:
-5aea 70445400 jam flag_iocap_displayonly ,mem_le_pres_iocap 
-5aeb 20600000 rtn 
-
-le_secure_connection_enable:
-5aec 6800c456 fetch 1 ,mem_le_pres_auth 
-5aed 79207e03 set1 le_auth_secure_connection_pairing_bit ,pdata 
-5aee 6000c456 store 1 ,mem_le_pres_auth 
-5aef 20600000 rtn 
-
-le_secure_connection_disable:
-5af0 6800c456 fetch 1 ,mem_le_pres_auth 
-5af1 793ffe03 set0 le_auth_secure_connection_pairing_bit ,pdata 
-5af2 6000c456 store 1 ,mem_le_pres_auth 
-5af3 20600000 rtn 
-
-le_parse_smp:
-5af4 e8c08000 ifetch 1 ,contr 
-5af5 c000db09 beq smp_pairing_request ,le_parse_smp_pairing_request 
-5af6 c001db30 beq smp_pairing_confirm ,le_parse_smp_pairing_confirm 
-5af7 c0025b4d beq smp_pairing_random ,le_parse_smp_pairing_random 
-5af8 c002db5a beq smp_pairing_failed ,le_parse_smp_pairing_failed 
-5af9 c0035b80 beq smp_encryption_information ,le_parse_smp_encryption_information 
-5afa c003dbc4 beq smp_master_identification ,le_parse_smp_master_identification 
-5afb c0045baf beq smp_identity_information ,le_parse_smp_identity_information 
-5afc c004dbc0 beq smp_identity_address_information ,le_parse_smp_identity_address_information 
-5afd c0055bc4 beq smp_signing_information ,le_parse_smp_signing_information 
-5afe c005dbc4 beq smp_security_request ,le_parse_smp_security_request 
-5aff c0065bc5 beq smp_pairing_public_key ,le_parse_smp_public_key 
-5b00 c006dbca beq smp_pairing_dhkey_check ,le_parse_smp_dhkey_check 
-5b01 20600000 rtn 
-
-le_send_smp_security_request:
-5b02 18002202 force 2 ,rega 
-5b03 20405c62 call le_fifo_malloc_tx_l2cap_smp 
-5b04 5800000b setarg smp_security_request 
-5b05 e0a08000 istore 1 ,contw 
-5b06 6800c456 fetch 1 ,mem_le_pres_auth 
-5b07 e0a08000 istore 1 ,contw 
-5b08 20600000 rtn 
-
-le_parse_smp_pairing_request:
-5b09 6000c44c store 1 ,mem_le_preq 
-5b0a e8c30000 ifetch 6 ,contr 
-5b0b e0a30000 istore 6 ,contw 
-5b0c 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5b0d c0005b5f beq le_pairing_mode_none ,le_smp_pairing_fail_reason_not_support_pairing 
-5b0e 20405b2b call le_send_smp_pairing_response 
-5b0f 20405b26 call le_check_master_support_secure_connect 
-5b10 7044c403 jam flag_le_pairing_rcv_pairing_req ,mem_le_pairing_state 
-5b11 6800c44d fetch 1 ,mem_le_preq_iocap 
-5b12 c0005b18 beq flag_iocap_displayonly ,le_set_tk_0 
-5b13 c000db18 beq flag_iocap_displayyesno ,le_set_tk_0 
-5b14 c001db18 beq flag_iocap_noinputnooutput ,le_set_tk_0 
-5b15 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5b16 c0015b1b beq le_pairing_mode_lagacy_passkey ,le_parse_smp_pairing_req_passkey 
-5b17 c1418000 rtneq le_pairing_mode_secure_connect_passkey 
-
-le_set_tk_0:
-5b18 dfe00000 arg 0 ,pdata 
-5b19 600244c7 store 4 ,mem_le_tk 
-5b1a 20600000 rtn 
-
-le_parse_smp_pairing_req_passkey:
-5b1b 6800c4e9 fetch 1 ,mem_le_configuration 
-5b1c c2805b24 bbit1 bit_ble_passkey_fixed_key ,le_parse_smp_pairing_req_fixed_passkey 
-
-le_genernate_tk:
-5b1d da2044c7 arg mem_le_tk ,rega 
-5b1e 1a220a00 copy rega ,contw 
-5b1f df200003 arg 3 ,loopcnt 
-5b20 2040630d call generate_random_loop 
-5b21 680144c9 fetch 2 ,mem_le_tk + 2 
-5b22 1fe17e07 and_into 0x7 ,pdata 
-5b23 600144c9 store 2 ,mem_le_tk + 2 
-
-le_parse_smp_pairing_req_fixed_passkey:
-5b24 700a9934 jam bt_evt_le_tk_generate ,mem_fifo_temp 
-5b25 20207d86 branch ui_ipc_send_event 
-
-le_check_master_support_secure_connect:
-5b26 6800c44f fetch 1 ,mem_le_preq_auth 
-5b27 c3818000 rtnbit1 le_auth_secure_connection_pairing_bit 
-5b28 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5b29 c4038000 rtnbit0 le_pairing_mode_secure_connect_bit 
-5b2a 20203402 branch app_ble_disconnect 
-
-le_send_smp_pairing_response:
-5b2b 18002207 force 7 ,rega 
-5b2c 20405c62 call le_fifo_malloc_tx_l2cap_smp 
-5b2d 6803c453 fetch 7 ,mem_le_pres 
-5b2e e0a38000 istore 7 ,contw 
-5b2f 20600000 rtn 
-
-le_parse_smp_pairing_confirm:
-5b30 18c22200 copy contr ,rega 
-5b31 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5b32 c041db37 beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_confirm_secure_passkey 
-5b33 1a220c00 copy rega ,contr 
-5b34 d8a0442a arg mem_le_rconfirm ,contw 
-5b35 20407ebf call memcpy16 
-5b36 20205b3d branch le_send_smp_pairing_confirm 
-
-le_parse_smp_pairing_confirm_secure_passkey:
-5b37 1a220c00 copy rega ,contr 
-5b38 d8a0442a arg mem_le_rconfirm ,contw 
-5b39 20407ebf call memcpy16 
-5b3a 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-5b3b 7044c108 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
-5b3c 20600000 rtn 
-
-le_send_smp_pairing_confirm:
-5b3d 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5b3e c283db45 bbit1 le_pairing_mode_secure_connect_bit ,le_send_smp_pairing_confirm_sc 
-5b3f 2040739c call generate_confirm 
-5b40 18002211 force 17 ,rega 
-5b41 20405c62 call le_fifo_malloc_tx_l2cap_smp 
-5b42 58000003 setarg smp_pairing_confirm 
-5b43 e0a08000 istore 1 ,contw 
-5b44 20207497 branch store_aes_result 
-
-le_send_smp_pairing_confirm_sc:
-5b45 d8a0443a arg mem_le_srand ,contw 
-5b46 2040630c call generate_random 
-5b47 204071c5 call function_f4_cb 
-5b48 18002211 force 17 ,rega 
-5b49 20405c62 call le_fifo_malloc_tx_l2cap_smp 
-5b4a 58000003 setarg smp_pairing_confirm 
-5b4b e0a08000 istore 1 ,contw 
-5b4c 20207201 branch load_inverse_result 
-
-le_parse_smp_pairing_random:
-5b4d 18c22200 copy contr ,rega 
-5b4e 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5b4f c283db61 bbit1 le_pairing_mode_secure_connect_bit ,le_parse_smp_pairing_random_sc 
-5b50 1a220c00 copy rega ,contr 
-5b51 20407394 call authenticate_rconfirm 
-5b52 2022db75 branch le_parse_smp_pairing_random_success ,zero 
-
-le_send_pairing_confirm_value_failed:
-5b53 70047b04 jam pairing_failed_confirm_value_failed ,mem_le_ll_pairing_fail_reason 
-
-le_send_pairing_failed:
-5b54 18002202 force 2 ,rega 
-5b55 20405c62 call le_fifo_malloc_tx_l2cap_smp 
-5b56 58000005 setarg smp_pairing_failed 
-5b57 e0a08000 istore 1 ,contw 
-5b58 6800847b fetch 1 ,mem_le_ll_pairing_fail_reason 
-5b59 e0a08000 istore 1 ,contw 
-
-le_parse_smp_pairing_failed:
-5b5a 18000e0a force smp_pairing_timer ,queue 
-5b5b 20407f07 call timer_stop 
-5b5c 7044c400 jam flag_le_pairing_null ,mem_le_pairing_state 
-5b5d 700a9930 jam bt_evt_le_pairing_fail ,mem_fifo_temp 
-5b5e 20207d86 branch ui_ipc_send_event 
-
-le_smp_pairing_fail_reason_not_support_pairing:
-5b5f 70047b05 jam pairing_failed_pairing_not_supported ,mem_le_ll_pairing_fail_reason 
-5b60 20205b54 branch le_send_pairing_failed 
-
-le_parse_smp_pairing_random_sc:
-5b61 d8a0042f arg mem_le_mrand ,contw 
-5b62 1a220c00 copy rega ,contr 
-5b63 20407ebf call memcpy16 
-5b64 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5b65 c041db6c beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_random_sc_passkey 
-5b66 2040714f call function_g2 
-5b67 20405b7a call le_send_smp_pairing_random 
-5b68 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5b69 c1c10000 rtnne le_pairing_mode_secure_connect_numeric 
-5b6a 700a993b jam bt_evt_le_gkey_generate ,mem_fifo_temp 
-5b6b 20207d86 branch ui_ipc_send_event 
-
-le_parse_smp_pairing_random_sc_passkey:
-5b6c 204071ba call function_f4_ca 
-5b6d d8a00af2 arg mem_aes_cmac_temp ,contw 
-5b6e 20407201 call load_inverse_result 
-5b6f da200af2 arg mem_aes_cmac_temp ,rega 
-5b70 da40442a arg mem_le_rconfirm ,regb 
-5b71 df200010 arg 16 ,loopcnt 
-5b72 20407f88 call string_compare 
-5b73 2422db53 nbranch le_send_pairing_confirm_value_failed ,zero 
-5b74 20205b7a branch le_send_smp_pairing_random 
-
-le_parse_smp_pairing_random_success:
-5b75 20407390 call generate_stk 
-5b76 700a9931 jam bt_evt_le_pairing_success ,mem_fifo_temp 
-5b77 20407d86 call ui_ipc_send_event 
-5b78 70442901 jam 1 ,mem_ltk_exists 
-5b79 7044c405 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
-
-le_send_smp_pairing_random:
-5b7a 18002211 force 17 ,rega 
-5b7b 20405c62 call le_fifo_malloc_tx_l2cap_smp 
-5b7c 58000004 setarg smp_pairing_random 
-5b7d e0a08000 istore 1 ,contw 
-5b7e d8c0443a arg mem_le_srand ,contr 
-5b7f 20207ebf branch memcpy16 
-
-le_parse_smp_encryption_information:
-5b80 d8a0041f arg mem_le_peer_ltk ,contw 
-5b81 20207ebf branch memcpy16 
-
-le_send_smp_encryption_information:
-5b82 18002211 force 17 ,rega 
-5b83 20405c62 call le_fifo_malloc_tx_l2cap_smp 
-5b84 58000006 setarg smp_encryption_information 
-5b85 e0a08000 istore 1 ,contw 
-5b86 6800c4e9 fetch 1 ,mem_le_configuration 
-5b87 c280db8a bbit1 bit_ble_pairing_fixed_ltk ,le_send_fixed_ltk 
-5b88 d8c04419 arg mem_le_ltk ,contr 
-5b89 20207ebf branch memcpy16 
-
-le_send_fixed_ltk:
-5b8a d8c044ea arg mem_le_fixed_ltk ,contr 
-5b8b 20207ebf branch memcpy16 
-
-le_send_smp_master_identification:
-5b8c d8a044cb arg mem_le_ediv ,contw 
-5b8d 1800720a force 10 ,loopcnt 
-5b8e 2040630d call generate_random_loop 
-5b8f 1800220b force 11 ,rega 
-5b90 20405c62 call le_fifo_malloc_tx_l2cap_smp 
-5b91 58000007 setarg smp_master_identification 
-5b92 e0a08000 istore 1 ,contw 
-5b93 680144cb fetch 2 ,mem_le_ediv 
-5b94 e0a10000 istore 2 ,contw 
-5b95 680444cd fetch 8 ,mem_le_rand 
-5b96 e0a40000 istore 8 ,contw 
-5b97 20600000 rtn 
-
-le_send_smp_identity_information:
-5b98 18002211 force 17 ,rega 
-5b99 20405c62 call le_fifo_malloc_tx_l2cap_smp 
-5b9a 58000008 setarg smp_identity_information 
-5b9b e0a08000 istore 1 ,contw 
-5b9c 58000000 setarg 0 
-5b9d e0a40000 istore 8 ,contw 
-5b9e e0a40000 istore 8 ,contw 
-5b9f 20600000 rtn 
-
-le_send_smp_identity_address_information:
-5ba0 18002208 force 8 ,rega 
-5ba1 20405c62 call le_fifo_malloc_tx_l2cap_smp 
-5ba2 58000009 setarg smp_identity_address_information 
-5ba3 e0a08000 istore 1 ,contw 
-5ba4 6800c495 fetch 1 ,mem_le_conn_own_addr_type 
-5ba5 e0a08000 istore 1 ,contw 
-5ba6 680344a0 fetch 6 ,mem_le_lap 
-5ba7 e0a30000 istore 6 ,contw 
-5ba8 20600000 rtn 
-
-le_send_pairing_fail_unspecified_reason:
-5ba9 70047b08 jam pairing_failed_unspecified_reason ,mem_le_ll_pairing_fail_reason 
-5baa 20205b54 branch le_send_pairing_failed 
-
-le_check_init_key_distribution:
-5bab 6800c458 fetch 1 ,mem_le_pres_init_key_distribution 
-5bac 6808c458 fetcht 1 ,mem_le_pres_init_key_distribution 
-5bad 98417e00 iand temp ,pdata 
-5bae 20600000 rtn 
-
-le_parse_smp_identity_information:
-5baf d8a044d5 arg mem_le_irk ,contw 
-5bb0 20407ebf call memcpy16 
-5bb1 20405bab call le_check_init_key_distribution 
-5bb2 2fec0001 isolate0 le_initator_irk_bit ,pdata 
-5bb3 2020dba9 branch le_send_pairing_fail_unspecified_reason ,true 
-5bb4 6800c092 fetch 1 ,mem_device_option 
-5bb5 c1850000 rtnne dvc_op_module 
-5bb6 20405bb9 call le_check_master_addr_type 
-5bb7 24740000 nrtn user 
-5bb8 20203410 branch app_ble_store_reconn_info 
-
-le_check_master_addr_type:
-5bb9 20407fe9 call disable_user 
-5bba 6800c48e fetch 1 ,mem_le_conn_peer_addr_type 
-5bbb c1000000 rtneq master_public_addr 
-5bbc 68008454 fetch 1 ,mem_le_plap + 5 
-5bbd 2fe180c0 compare 0xc0 ,pdata ,0xc0 
-5bbe 20608000 rtn true 
-5bbf 20207fe7 branch enable_user 
-
-le_parse_smp_identity_address_information:
-5bc0 20405bab call le_check_init_key_distribution 
-5bc1 2fec0001 isolate0 le_initator_irk_bit ,pdata 
-5bc2 2020dba9 branch le_send_pairing_fail_unspecified_reason ,true 
-5bc3 20600000 rtn 
-
-le_parse_smp_master_identification:
-
-le_parse_smp_signing_information:
-
-le_parse_smp_security_request:
-5bc4 20600000 rtn 
-
-le_parse_smp_public_key:
-5bc5 d8a009be arg mem_le_pubkey_remote_x_256 ,contw 
-5bc6 20407eb3 call memcpy64 
-5bc7 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-5bc8 7044c101 jam le_sc_stat_receive_public_key ,mem_le_secure_connect_state 
-5bc9 20600000 rtn 
-
-le_parse_smp_dhkey_check:
-5bca d8a00a6e arg mem_sp_confirm_remote ,contw 
-5bcb 20407ebf call memcpy16 
-5bcc 7044c106 jam le_sc_stat_receive_dhkey ,mem_le_secure_connect_state 
-5bcd 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-5bce 20600000 rtn 
-
-le_send_smp_pairing_public_key:
-5bcf 18002241 force 65 ,rega 
-5bd0 20405c62 call le_fifo_malloc_tx_l2cap_smp 
-5bd1 5800000c setarg smp_pairing_public_key 
-5bd2 e0a08000 istore 1 ,contw 
-5bd3 d8c045d2 arg mem_le_pubkey_local_x_256 ,contr 
-5bd4 20207eb3 branch memcpy64 
-
-le_send_smp_pairing_dhkey_check:
-5bd5 20407166 call function_f6_eb 
-5bd6 18002211 force 17 ,rega 
-5bd7 20405c62 call le_fifo_malloc_tx_l2cap_smp 
-5bd8 5800000d setarg smp_pairing_dhkey_check 
-5bd9 e0a08000 istore 1 ,contw 
-5bda 20207201 branch load_inverse_result 
-
-le_check_paring_time:
-5bdb 6800c4c4 fetch 1 ,mem_le_pairing_state 
-5bdc c17f8000 rtneq flag_le_pairing_end 
-5bdd d8400003 arg flag_le_pairing_rcv_pairing_req ,temp 
-5bde 98467c00 isub temp ,null 
-5bdf 24610000 nrtn positive 
-5be0 d8e0000a arg smp_pairing_timer ,queue 
-5be1 20407f16 call timer_check 
-5be2 247a0000 nrtn blank 
-5be3 20205ba9 branch le_send_pairing_fail_unspecified_reason 
-
-le_pairing_sm:
-5be4 473c402f bpatchx patch2f_0 ,mem_patch2f 
-5be5 6800c4c4 fetch 1 ,mem_le_pairing_state 
-5be6 c0005bef beq flag_le_pairing_null ,le_pairing_sm_null 
-5be7 c000dbf5 beq flag_le_pairing_start ,le_pairing_sm_start 
-5be8 c0015bef beq flag_le_pairing_send_recurity_req ,le_pairing_sm_send_sec_req 
-5be9 c001dbf7 beq flag_le_pairing_rcv_pairing_req ,le_pairing_sm_rcv_pairing_req 
-5bea c002dbfb beq flag_le_pairing_after_auth ,le_pairing_sm_after_auth 
-5beb c003dc07 beq flag_le_paring_send_enc_information ,le_pairng_sm_send_enc_information 
-5bec c0045c09 beq flag_le_paring_send_master_identification ,le_pairng_sm_send_master_indentification 
-5bed c004dc10 beq flag_le_paring_send_indentity_information ,le_pairng_sm_send_indentity_information 
-5bee 20600000 rtn 
-
-le_pairing_sm_null:
-
-le_pairing_sm_send_sec_req:
-5bef 6800c4c5 fetch 1 ,mem_le_enc_state 
-5bf0 c1820000 rtnne flag_le_send_start_enc_rsp 
-5bf1 7044c5ff jam flag_le_enc_end ,mem_le_enc_state 
-5bf2 7044c4ff jam flag_le_pairing_end ,mem_le_pairing_state 
-5bf3 700a993f jam bt_evt_le_reconnect_complete ,mem_fifo_temp 
-5bf4 20207d86 branch ui_ipc_send_event 
-
-le_pairing_sm_start:
-5bf5 7044c402 jam flag_le_pairing_send_recurity_req ,mem_le_pairing_state 
-5bf6 20205b02 branch le_send_smp_security_request 
-
-le_pairing_sm_rcv_pairing_req:
-5bf7 7044c404 jam flag_le_pairing_auth ,mem_le_pairing_state 
-5bf8 58017700 setarg timer_smp_pairing_timeout 
-5bf9 d8e0000a arg smp_pairing_timer ,queue 
-5bfa 20207f08 branch timer_init 
-
-le_pairing_sm_after_auth:
-5bfb 6800c4c5 fetch 1 ,mem_le_enc_state 
-5bfc c0025bfe beq flag_le_send_start_enc_rsp ,le_pairing_sm_after_auth_start_enc 
-5bfd 20600000 rtn 
-
-le_pairing_sm_after_auth_start_enc:
-5bfe 7044c407 jam flag_le_paring_send_enc_information ,mem_le_pairing_state 
-5bff 700a9929 jam bt_evt_le_enc_info ,mem_fifo_temp 
-5c00 20407d86 call ui_ipc_send_event 
-5c01 20405b82 call le_send_smp_encryption_information 
-5c02 6800c092 fetch 1 ,mem_device_option 
-5c03 c1850000 rtnne dvc_op_module 
-5c04 20405bb9 call le_check_master_addr_type 
-5c05 20740000 rtn user 
-5c06 20203410 branch app_ble_store_reconn_info 
-
-le_pairng_sm_send_enc_information:
-5c07 7044c408 jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
-5c08 20205b8c branch le_send_smp_master_identification 
-
-le_pairng_sm_send_master_indentification:
-5c09 6800c452 fetch 1 ,mem_le_preq_resp_key_distribution 
-5c0a 6808c459 fetcht 1 ,mem_le_pres_resp_key_distribution 
-5c0b 98417e00 iand temp ,pdata 
-5c0c 2fec0001 isolate0 le_initator_irk_bit ,pdata 
-5c0d 2020dc12 branch le_parse_start_enc_rsp_after_auth_end ,true 
-5c0e 7044c409 jam flag_le_paring_send_indentity_information ,mem_le_pairing_state 
-5c0f 20205b98 branch le_send_smp_identity_information 
-
-le_pairng_sm_send_indentity_information:
-5c10 20405ba0 call le_send_smp_identity_address_information 
-5c11 20205c12 branch le_parse_start_enc_rsp_after_auth_end 
-
-le_parse_start_enc_rsp_after_auth_end:
-5c12 18000e0a force smp_pairing_timer ,queue 
-5c13 20407f07 call timer_stop 
-5c14 7044c5ff jam flag_le_enc_end ,mem_le_enc_state 
-5c15 7044c4ff jam flag_le_pairing_end ,mem_le_pairing_state 
-5c16 700a993e jam bt_evt_le_pairing_complete ,mem_fifo_temp 
-5c17 20207d86 branch ui_ipc_send_event 
-
-le_secure_connect_sm:
-5c18 473cc02f bpatchx patch2f_1 ,mem_patch2f 
-5c19 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5c1a c4038000 rtnbit0 le_pairing_mode_secure_connect_bit 
-5c1b 6800c4bf fetch 1 ,mem_le_secure_connect_flag 
-5c1c c1810000 rtnne le_sp_flag_commit_256 
-5c1d 7044bf00 jam sp_flag_standby ,mem_le_secure_connect_flag 
-5c1e 6800c4c1 fetch 1 ,mem_le_secure_connect_state 
-5c1f c000dc58 beq le_sc_stat_receive_public_key ,le_sc_sm_receive_public_key 
-5c20 c0015c5f beq le_sc_stat_wait_send_public_key ,le_sc_sm_wait_send_public_key 
-5c21 c001dc52 beq le_sc_stat_send_public_key ,le_sc_sm_send_public_key 
-5c22 c0035c39 beq le_sc_stat_receive_dhkey ,le_sc_sm_receive_dhkey 
-5c23 c003dc30 beq le_sc_stat_wait_confirm_gkey ,le_sc_sm_wait_confirm_gkey 
-5c24 c0045c26 beq le_sc_stat_passkey_wait_confirm ,le_sc_sm_passkey_wait_confirm 
-5c25 20600000 rtn 
-
-le_sc_sm_passkey_wait_confirm:
-5c26 6800c663 fetch 1 ,mem_authentication_passkey_times 
-5c27 1fe20e00 copy pdata ,queue 
-5c28 1fe0fe01 increase 1 ,pdata 
-5c29 6000c663 store 1 ,mem_authentication_passkey_times 
-5c2a 680244c7 fetch 4 ,mem_le_tk 
-5c2b afefffff qisolate1 pdata 
-5c2c 58000080 setarg 0x80 
-5c2d 7920fe00 setflag true ,0 ,pdata 
-5c2e 6000c664 store 1 ,mem_passkey_1bit 
-5c2f 20205c55 branch le_sc_sm_ready_send_pairing_confirm 
-
-le_sc_sm_wait_confirm_gkey:
-5c30 6800c4c2 fetch 1 ,mem_le_sc_confirm_gkey_flag 
-5c31 7044c200 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
-5c32 c000dc35 beq flag_le_sc_confrim_gkey_ok ,le_sc_confirm_gkey_ok 
-5c33 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-5c34 20600000 rtn 
-
-le_sc_confirm_gkey_ok:
-5c35 700a9931 jam bt_evt_le_pairing_success ,mem_fifo_temp 
-5c36 20407d86 call ui_ipc_send_event 
-5c37 7044c405 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
-5c38 20205bd5 branch le_send_smp_pairing_dhkey_check 
-
-le_sc_sm_receive_dhkey:
-5c39 680089b9 fetch 1 ,mem_sp_dhkey_invalid 
-5c3a c001dc3d beq sp_key_valid_256 ,le_dhkey_ready 
-5c3b 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-5c3c 20600000 rtn 
-
-le_dhkey_ready:
-5c3d 2040718d call function_f5 
-5c3e 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5c3f c041dc41 beq le_pairing_mode_secure_connect_passkey ,le_dhkey_ready_common 
-5c40 20405b18 call le_set_tk_0 
-
-le_dhkey_ready_common:
-5c41 2040717a call function_f6_ea 
-5c42 da200af2 arg mem_aes_cmac_temp ,rega 
-5c43 da400a6e arg mem_sp_confirm_remote ,regb 
-5c44 df200010 arg 16 ,loopcnt 
-5c45 20407f88 call string_compare 
-5c46 2022dc49 branch le_dhkey_check_ok ,zero 
-
-le_dhkey_check_fail:
-5c47 70047b0b jam pairing_failed_dhkey_check_failed ,mem_le_ll_pairing_fail_reason 
-5c48 20205b54 branch le_send_pairing_failed 
-
-le_dhkey_check_ok:
-5c49 20407595 call sp_calc_check_publickey_256 
-5c4a 2422dc47 nbranch le_dhkey_check_fail ,zero 
-5c4b 70442901 jam 1 ,mem_ltk_exists 
-5c4c 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5c4d c040dc35 beq le_pairing_mode_secure_connect_justwork ,le_sc_confirm_gkey_ok 
-5c4e c041dc35 beq le_pairing_mode_secure_connect_passkey ,le_sc_confirm_gkey_ok 
-5c4f 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-5c50 7044c107 jam le_sc_stat_wait_confirm_gkey ,mem_le_secure_connect_state 
-5c51 20600000 rtn 
-
-le_sc_sm_send_public_key:
-5c52 6800c4c6 fetch 1 ,mem_le_pairing_mode 
-5c53 c041dc56 beq le_pairing_mode_secure_connect_passkey ,le_sc_sm_send_public_key_passkey 
-5c54 70466400 jam 0 ,mem_passkey_1bit 
-
-le_sc_sm_ready_send_pairing_confirm:
-5c55 20205b3d branch le_send_smp_pairing_confirm 
-
-le_sc_sm_send_public_key_passkey:
-5c56 70466300 jam 0 ,mem_authentication_passkey_times 
-5c57 20205b1b branch le_parse_smp_pairing_req_passkey 
-
-le_sc_sm_receive_public_key:
-5c58 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-5c59 6800c4c3 fetch 1 ,mem_le_sc_local_key_invalid 
-5c5a c001dc5c beq sp_key_valid_256 ,le_public_key_ready 
-5c5b 20600000 rtn 
-
-le_public_key_ready:
-5c5c 7044c102 jam le_sc_stat_wait_send_public_key ,mem_le_secure_connect_state 
-5c5d 7009b900 jam sp_key_invalid ,mem_sp_dhkey_invalid 
-5c5e 20207a99 branch sp_dhkey_calc_256 
-
-le_sc_sm_wait_send_public_key:
-5c5f 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-5c60 7044c103 jam le_sc_stat_send_public_key ,mem_le_secure_connect_state 
-5c61 20205bcf branch le_send_smp_pairing_public_key 
-
-le_fifo_malloc_tx_l2cap_smp:
-5c62 18002406 force le_l2cap_cid_smp ,regb 
-5c63 20205847 branch le_fifo_malloc_tx_l2cap 
-
-le_parse_ll:
-5c64 680082db fetch 1 ,mem_le_rxbuf + 2 
-5c65 c0005c7b beq ll_connection_update_req ,le_parse_connection_update_req 
-5c66 c000dc83 beq ll_channel_map_req ,le_parse_channel_map_req 
-5c67 c0015c8e beq ll_terminate_ind ,le_parse_terminate_ind 
-5c68 c001dcaa beq ll_enc_req ,le_parse_enc_req 
-5c69 c0025ce1 beq ll_enc_rsp ,le_parse_enc_rsp 
-5c6a c002dce6 beq ll_start_enc_req ,le_parse_start_enc_req 
-5c6b c0035cea beq ll_start_enc_rsp ,le_parse_start_enc_rsp 
-5c6c c003dcf5 beq ll_unknown_rsp ,le_parse_unknown_rsp 
-5c6d c0045c99 beq ll_feature_req ,le_parse_feature_req 
-5c6e c004dcf5 beq ll_feature_rsp ,le_parse_feature_rsp 
-5c6f c0055cef beq ll_pause_enc_req ,le_parse_pause_enc_req 
-5c70 c005dcf5 beq ll_pause_enc_rsp ,le_parse_pause_enc_rsp 
-5c71 c0065c9f beq ll_version_ind ,le_parse_version_ind 
-5c72 c006dcf5 beq ll_reject_ind ,le_parse_reject_ind 
-5c73 c0095ca6 beq ll_ping_req ,le_parse_ping_req 
-5c74 c009dcf5 beq ll_ping_rsp ,le_parse_ping_rsp 
-5c75 da200002 arg 2 ,rega 
-5c76 da400007 arg ll_unknown_rsp ,regb 
-5c77 20405842 call le_fifo_malloc_tx_ll 
-5c78 680082db fetch 1 ,mem_le_rxbuf + 2 
-5c79 e0a08000 istore 1 ,contw 
-5c7a 20600000 rtn 
-
-le_parse_connection_update_req:
-5c7b e8c48000 ifetch 9 ,contr 
-5c7c 6004c3d3 store 9 ,mem_le_new_param 
-5c7d e8c10000 ifetch 2 ,contr 
-5c7e 6001045f store 2 ,mem_le_instant 
-5c7f 6800843f fetch 1 ,mem_le_state 
-5c80 79207e05 set1 lestate_update_param ,pdata 
-5c81 6000843f store 1 ,mem_le_state 
-5c82 20600000 rtn 
-
-le_parse_channel_map_req:
-5c83 e8c28000 ifetch 5 ,contr 
-5c84 6002c3ce store 5 ,mem_le_new_map 
-5c85 e8c10000 ifetch 2 ,contr 
-5c86 6001045f store 2 ,mem_le_instant 
-5c87 68090459 fetcht 2 ,mem_le_event_count 
-5c88 98467c00 isub temp ,null 
-5c89 24215c8e nbranch le_parse_terminate_ind ,positive 
-5c8a 6800843f fetch 1 ,mem_le_state 
-5c8b 79207e06 set1 lestate_update_map ,pdata 
-5c8c 6000843f store 1 ,mem_le_state 
-5c8d 20600000 rtn 
-
-le_parse_terminate_ind:
-5c8e 58000014 setarg 20 
-5c8f 6001046d store 2 ,mem_le_superto 
-5c90 600144ba store 2 ,mem_le_init_superto 
-5c91 20600000 rtn 
-
-le_send_terminate_ind_user_terminated:
-5c92 da600013 arg error_remote_user_terminated_connection ,regc 
-
-le_send_terminate_ind:
-5c93 da200002 arg 2 ,rega 
-5c94 da400002 arg ll_terminate_ind ,regb 
-5c95 20405842 call le_fifo_malloc_tx_ll 
-5c96 1a627e00 copy regc ,pdata 
-5c97 e0a08000 istore 1 ,contw 
-5c98 20600000 rtn 
-
-le_parse_feature_req:
-
-le_send_feature_rsp:
-5c99 da200009 arg 9 ,rega 
-5c9a da400009 arg ll_feature_rsp ,regb 
-5c9b 20405842 call le_fifo_malloc_tx_ll 
-5c9c 58000001 setarg param_le_features 
-5c9d e0a40000 istore 8 ,contw 
-5c9e 20600000 rtn 
-
-le_parse_version_ind:
-5c9f 20748000 rtn master 
-
-le_send_version_ind:
-5ca0 da200006 arg 6 ,rega 
-5ca1 da40000c arg ll_version_ind ,regb 
-5ca2 20405842 call le_fifo_malloc_tx_ll 
-5ca3 6802c510 fetch 5 ,mem_lmp_version 
-5ca4 e0a28000 istore 5 ,contw 
-5ca5 20600000 rtn 
-
-le_parse_ping_req:
-5ca6 da400013 arg ll_ping_rsp ,regb 
-5ca7 20205ca8 branch le_send_ll_one_lenth 
-
-le_send_ll_one_lenth:
-5ca8 da200001 arg 1 ,rega 
-5ca9 20205842 branch le_fifo_malloc_tx_ll 
-
-le_parse_enc_req:
-5caa e8c40000 ifetch 8 ,contr 
-5cab 600444cd store 8 ,mem_le_rand 
-5cac e8c10000 ifetch 2 ,contr 
-5cad 600144cb store 2 ,mem_le_ediv 
-5cae e8c40000 ifetch 8 ,contr 
-5caf 600444aa store 8 ,mem_le_skdm 
-5cb0 e8c20000 ifetch 4 ,contr 
-5cb1 60024411 store 4 ,mem_le_ivm 
-5cb2 20405ccf call le_send_enc_rsp 
-5cb3 473d402f bpatchx patch2f_2 ,mem_patch2f 
-5cb4 6800c4c4 fetch 1 ,mem_le_pairing_state 
-5cb5 c002dcbc beq flag_le_pairing_after_auth ,le_parse_enc_req_after_auth 
-5cb6 6800c4e9 fetch 1 ,mem_le_configuration 
-5cb7 c280dcbf bbit1 bit_ble_pairing_fixed_ltk ,le_parse_enc_req_fixed_ltk 
-5cb8 6800c217 fetch 1 ,mem_nv_data_number 
-5cb9 245a67be ncall load_device_list_mode_4 ,blank 
-5cba 6800c429 fetch 1 ,mem_ltk_exists 
-5cbb c0005cc4 beq 0 ,le_ltk_lost 
-
-le_parse_enc_req_after_auth:
-5cbc 7044c501 jam flag_le_rcv_enc_start ,mem_le_enc_state 
-5cbd 20405cdd call le_send_start_enc_req 
-5cbe 202073a2 branch generate_sk 
-
-le_parse_enc_req_fixed_ltk:
-5cbf 70442901 jam 1 ,mem_ltk_exists 
-5cc0 d8c044ea arg mem_le_fixed_ltk ,contr 
-5cc1 d8a04419 arg mem_le_ltk ,contw 
-5cc2 20407ebf call memcpy16 
-5cc3 20205cbc branch le_parse_enc_req_after_auth 
-
-le_ltk_lost:
-5cc4 473dc02f bpatchx patch2f_3 ,mem_patch2f 
-5cc5 7044c500 jam flag_le_enc_null ,mem_le_enc_state 
-5cc6 7044c400 jam flag_le_enc_null ,mem_le_pairing_state 
-5cc7 700a9941 jam bt_evt_le_ltk_lost ,mem_fifo_temp 
-5cc8 20207d86 branch ui_ipc_send_event 
-
-le_send_reject_ind:
-5cc9 da200002 arg 2 ,rega 
-5cca da40000d arg ll_reject_ind ,regb 
-5ccb 20405842 call le_fifo_malloc_tx_ll 
-5ccc 58000006 setarg le_err_pin_or_key_missing 
-5ccd e0a08000 istore 1 ,contw 
-5cce 20600000 rtn 
-
-le_send_enc_rsp:
-5ccf d8a044b2 arg mem_le_skds ,contw 
-5cd0 18007208 force 8 ,loopcnt 
-5cd1 2040630d call generate_random_loop 
-5cd2 d8a04415 arg mem_le_ivs ,contw 
-5cd3 18007204 force 4 ,loopcnt 
-5cd4 2040630d call generate_random_loop 
-5cd5 da20000d arg 13 ,rega 
-5cd6 da400004 arg ll_enc_rsp ,regb 
-5cd7 20405842 call le_fifo_malloc_tx_ll 
-5cd8 680444b2 fetch 8 ,mem_le_skds 
-5cd9 e0a40000 istore 8 ,contw 
-5cda 68024415 fetch 4 ,mem_le_ivs 
-5cdb e0a20000 istore 4 ,contw 
-5cdc 20600000 rtn 
-
-le_send_start_enc_req:
-5cdd da400005 arg ll_start_enc_req ,regb 
-5cde 20205ca8 branch le_send_ll_one_lenth 
-
-le_send_start_enc_rsp:
-5cdf da400006 arg ll_start_enc_rsp ,regb 
-5ce0 20205ca8 branch le_send_ll_one_lenth 
-
-le_parse_enc_rsp:
-5ce1 e8c40000 ifetch 8 ,contr 
-5ce2 600444b2 store 8 ,mem_le_skds 
-5ce3 e8c20000 ifetch 4 ,contr 
-5ce4 60024415 store 4 ,mem_le_ivs 
-5ce5 202073a2 branch generate_sk 
-
-le_parse_start_enc_req:
-5ce6 6800843f fetch 1 ,mem_le_state 
-5ce7 79207e04 set1 lestate_encryption ,pdata 
-5ce8 6000843f store 1 ,mem_le_state 
-5ce9 20600000 rtn 
-
-le_parse_start_enc_rsp:
-5cea 20748000 rtn master 
-5ceb 700a9932 jam bt_evt_le_start_enc ,mem_fifo_temp 
-5cec 20407d86 call ui_ipc_send_event 
-5ced 7044c504 jam flag_le_send_start_enc_rsp ,mem_le_enc_state 
-5cee 20205cdf branch le_send_start_enc_rsp 
-
-le_parse_pause_enc_req:
-5cef 7044c502 jam flag_le_enc_pause ,mem_le_enc_state 
-5cf0 20405cf3 call le_send_pause_enc_rsp 
-5cf1 700a9933 jam bt_evt_le_pause_enc ,mem_fifo_temp 
-5cf2 20207d86 branch ui_ipc_send_event 
-
-le_send_pause_enc_rsp:
-5cf3 da40000b arg ll_pause_enc_rsp ,regb 
-5cf4 20205ca8 branch le_send_ll_one_lenth 
-
-le_parse_feature_rsp:
-
-le_parse_unknown_rsp:
-
-le_parse_pause_enc_rsp:
-
-le_parse_reject_ind:
-
-le_parse_ping_rsp:
-5cf5 20600000 rtn 
-
-init_lmp:
-5cf6 20758000 rtn wake 
-
-init_lmp_work:
-5cf7 473e402f bpatchx patch2f_4 ,mem_patch2f 
-5cf8 58000000 setarg 0 
-5cf9 60008048 store 1 ,mem_lmp_to_send 
-5cfa 60008055 store 1 ,mem_conn_sm 
-5cfb 60008078 store 1 ,mem_lmo_opcode1 
-5cfc 6000807c store 1 ,mem_lmo_opcode2 
-5cfd 6000c158 store 1 ,mem_esco_addr 
-5cfe 600084d7 store 1 ,mem_auth_enable 
-5cff 6000816d store 1 ,mem_connection_options 
-5d00 600089b5 store 1 ,mem_pairing_auth 
-5d01 70455b00 jam switch_flag_init ,mem_switch_flag 
-5d02 70022900 jam 0 ,mem_switch_fail_master_count 
-5d03 7004d800 jam null_encryp ,mem_wait_encryption 
-
-init_lmp_reinit:
-5d04 7009b500 jam 0 ,mem_pairing_auth 
-5d05 7009b400 jam 0 ,mem_sp_localsm 
-5d06 7004d100 jam 0 ,mem_lmp_conn_state 
-
-parse_rx_done:
-5d07 20600000 rtn 
-
-parse_lmp:
-5d08 473ec02f bpatchx patch2f_5 ,mem_patch2f 
-5d09 2054e2ff call setlocalsm_master ,master 
-5d0a 2454e303 ncall setlocalsm_slave ,master 
-5d0b 204062bc call lmo_fifo_check 
-5d0c 247a0000 nrtn blank 
-5d0d 6800804c fetch 1 ,mem_state_map 
-5d0e c4030000 rtnbit0 smap_rxlmp 
-5d0f 793ffe06 set0 smap_rxlmp ,pdata 
-5d10 793f8001 set0 mark_rxbuf_inuse ,mark 
-5d11 6000804c store 1 ,mem_state_map 
-5d12 68008551 fetch 1 ,mem_rxbuf 
-5d13 6808804c fetcht 1 ,mem_state_map 
-5d14 2feffe00 isolate1 smap_lmptidinit ,pdata 
-5d15 79208401 setflag true ,smap_lmptid ,temp 
-5d16 6008804c storet 1 ,mem_state_map 
-5d17 18410402 and_into 0x2 ,temp 
-5d18 6008807f storet 1 ,mem_lmo_tid2 
-5d19 6808804c fetcht 1 ,mem_state_map 
-5d1a 1fe37e00 rshift pdata ,pdata 
-5d1b 6000807d store 1 ,mem_lmi_opcode2 
-5d1c 473f402f bpatchx patch2f_6 ,mem_patch2f 
-5d1d 6800807d fetch 1 ,mem_lmi_opcode2 
-5d1e c03fdd66 beq lmp_escape ,parse_lmp_escape 
-5d1f c001ddb1 beq lmp_accepted ,parse_lmp_accepted 
-5d20 c0025dc2 beq lmp_not_accepted ,parse_lmp_not_accepted 
-5d21 c01e5d59 beq lmp_set_afh ,parse_lmp_set_afh 
-5d22 c002dd55 beq lmp_clkoffset_req ,parse_lmp_clkoffset_req 
-5d23 c007dfa8 beq lmp_encryption_mode_req ,parse_lmp_encryption_mode_req 
-5d24 c0085e24 beq lmp_encryption_key_size_req ,parse_lmp_crypt_key 
-5d25 c011de42 beq lmp_auto_rate ,parse_lmp_auto_rate 
-5d26 c01cdfc1 beq lmp_test_control ,parse_lmp_test_control 
-5d27 c01c5fbc beq lmp_test_activate ,parse_lmp_test_activate 
-5d28 c018de27 beq lmp_setup_complete ,parse_lmp_setup_complete 
-5d29 c01bdeb0 beq lmp_supervision_timeout ,parse_lmp_supervision_timeout 
-5d2a c013deac beq lmp_features_req ,parse_lmp_features_req 
-5d2b c019dea9 beq lmp_host_connection_req ,parse_lmp_conn_req 
-5d2c c012deae beq lmp_version_req ,parse_lmp_version_req 
-5d2d c0135e3e beq lmp_version_res ,parse_lmp_version_res 
-5d2e c003de36 beq lmp_detach ,parse_lmp_detach 
-5d2f c016de2d beq lmp_max_slot ,parse_lmp_max_slot 
-5d30 c0175e2e beq lmp_max_slot_req ,parse_lmp_max_slot_req 
-5d31 c000dea5 beq lmp_name_req ,parse_lmp_name_req 
-5d32 c0015e90 beq lmp_name_res ,parse_lmp_name_res 
-5d33 c0145fb3 beq lmp_features_res ,parse_lmp_features_res 
-5d34 c004de86 beq lmp_comb_key ,parse_lmp_comb_key 
-5d35 c005de5f beq lmp_au_rand ,parse_lmp_au_rand 
-5d36 c0045e43 beq lmp_in_rand ,parse_lmp_in_rand 
-5d37 c0065e6a beq lmp_sres ,parse_lmp_sres 
-5d38 c00fde3a beq lmp_incr_power_req ,parse_lmp_incr_power 
-5d39 c0105e3c beq lmp_decr_power_req ,parse_lmp_decr_power 
-5d3a c010deca beq lmp_max_power ,parse_lmp_max_power 
-5d3b c0115eca beq lmp_min_power ,parse_lmp_min_power 
-5d3c c01adecb beq lmp_page_mode_req ,parse_lmp_page_mode_req 
-5d3d c01b5ecc beq lmp_page_scan_mode_req ,parse_lmp_page_scan_mode_req 
-5d3e c0125eca beq lmp_preferred_rate ,parse_lmp_preferred_rate 
-5d3f c01a5ecd beq lmp_slot_offset ,parse_lmp_slot_offset 
-5d40 c00bded6 beq lmp_sniff_req ,parse_lmp_sniff_req 
-5d41 c008def2 beq lmp_start_encryption_req ,parse_lmp_start_encryption_req 
-5d42 c0095ef6 beq lmp_stop_encryption_req ,parse_lmp_stop_encryption_req 
-5d43 c009def8 beq lmp_switch_req ,parse_lmp_switch_req 
-5d44 c006df0a beq lmp_temp_rand ,parse_lmp_temp_rand 
-5d45 c0075f0a beq lmp_temp_key ,parse_lmp_temp_key 
-5d46 c017deaa beq lmp_timing_accuracy_req ,parse_lmp_timing_accuracy_req 
-5d47 c0185f0a beq lmp_timing_accuracy_res ,parse_lmp_timing_accuracy_res 
-5d48 c0055f0a beq lmp_unit_key ,parse_lmp_unit_key 
-5d49 c00c5f0b beq lmp_unsniff_req ,parse_lmp_unsniff_req 
-5d4a c0195f0a beq lmp_use_semi_permanent_key ,parse_lmp_use_semi_permanend_key 
-5d4b c01edf10 beq lmp_encapsulated_header ,parse_lmp_encapsulated_header 
-5d4c c01f5f51 beq lmp_encapsulated_payload ,parse_lmp_encapsulated_payload 
-5d4d c01fdf4b beq lmp_simple_pairing_confirm ,parse_simple_pairing_confirm 
-5d4e c0205f78 beq lmp_simple_pairing_number ,parse_lmp_simple_pairing_number 
-5d4f c020df8a beq lmp_dhkey_check ,parse_dhkey_check 
-5d50 c0035fa7 beq lmp_clkoffset_res ,parse_lmp_clkoffset_res 
-5d51 c01d5d57 beq lmp_enc_key_size_mask_req ,parse_enc_key_size_mask_req 
-
-reject_unknown_packet:
-5d52 70007e19 jam unknown_lmp_pdu ,mem_lmo_reason2 
-
-reject_lmp_packet:
-5d53 70007c04 jam lmp_not_accepted ,mem_lmo_opcode2 
-5d54 20600000 rtn 
-
-parse_lmp_clkoffset_req:
-5d55 70007c06 jam lmp_clkoffset_res ,mem_lmo_opcode2 
-5d56 20600000 rtn 
-
-parse_enc_key_size_mask_req:
-5d57 70007c3b jam lmp_enc_key_size_mask_res ,mem_lmo_opcode2 
-5d58 20600000 rtn 
-
-parse_lmp_set_afh:
-5d59 68020552 fetch 4 ,mem_rxbuf + 1 
-5d5a 1fe3fe00 lshift pdata ,pdata 
-5d5b 600240d2 store 4 ,mem_afh_instant 
-5d5c 68008556 fetch 1 ,mem_rxbuf + 5 
-5d5d 6000c0d9 store 1 ,mem_afh_new_mod 
-5d5e 68028557 fetch 5 ,mem_rxbuf + 6 
-5d5f 6002c0e7 store 5 ,mem_afh_map_new 
-5d60 6802855c fetch 5 ,mem_rxbuf + 11 
-5d61 e0a28000 istore 5 ,contw 
-5d62 68008031 fetch 1 ,mem_mode 
-5d63 79207e03 set1 afh_change ,pdata 
-5d64 60008031 store 1 ,mem_mode 
-5d65 20600000 rtn 
-
-parse_lmp_escape:
-5d66 473fc02f bpatchx patch2f_7 ,mem_patch2f 
-5d67 68008552 fetch 1 ,mem_rxbuf + 1 
-5d68 79207e07 set1 7 ,pdata 
-5d69 6000807d store 1 ,mem_lmi_opcode2 
-5d6a c040dd88 beq lmp_ext_accepted ,parse_lmpext_accepted 
-5d6b c0415d8d beq lmp_not_accepted_ext ,parse_lmpext_not_accepted 
-5d6c c04adeb1 beq lmp_sniff_subrating_req ,parse_lmp_sniff_subrating_req 
-5d6d c04b5eca beq lmp_sniff_subrating_res ,parse_lmp_sniff_subrating_res 
-5d6e c045debf beq lmp_packet_type_table_req ,parse_lmpext_packet_type_table_req 
-5d6f c041dda5 beq lmp_ext_features_req ,parse_lmpext_features_req 
-5d70 c0425da7 beq lmp_ext_features_res ,parse_lmpext_features_res 
-5d71 c0485d7a beq lmp_ext_chn_classification_req ,parse_lmpext_chn_classification_req 
-5d72 c04bdd9e beq lmp_pause_encryption_req ,parse_lmpext_pause_encrypt 
-5d73 c04c5da3 beq lmp_resume_encryption_req ,parse_lmpext_resume_encrypt 
-5d74 c04cdd7d beq lmp_io_cap_req ,parse_lmpext_iocap_req 
-5d75 c04d5d80 beq lmp_io_cap_res ,parse_lmpext_iocap_res 
-5d76 c1420000 rtneq lmp_ext_features_res 
-
-reject_unknown_ext_packet:
-5d77 70007c82 jam lmp_not_accepted_ext ,mem_lmo_opcode2 
-5d78 70007e19 jam unknown_lmp_pdu ,mem_lmo_reason2 
-5d79 20600000 rtn 
-
-parse_lmpext_chn_classification_req:
-5d7a 70007c82 jam lmp_not_accepted_ext ,mem_lmo_opcode2 
-5d7b 70007e2e jam not_support_chn_classification ,mem_lmo_reason2 
-5d7c 20600000 rtn 
-
-parse_lmpext_iocap_req:
-5d7d 20405d82 call iocap_lmpext_load 
-5d7e 70007c9a jam lmp_io_cap_res ,mem_lmo_opcode2 
-5d7f 20600000 rtn 
-
-parse_lmpext_iocap_res:
-5d80 20405d82 call iocap_lmpext_load 
-5d81 20205d86 branch iocap_lmpext_common 
-
-iocap_lmpext_load:
-5d82 d8a0465e arg mem_sp_iocap_remote ,contw 
-5d83 68018553 fetch 3 ,mem_rxbuf + 2 
-5d84 e0a18000 istore 3 ,contw 
-5d85 20600000 rtn 
-
-iocap_lmpext_common:
-5d86 2020f6d8 branch master_set_mem_master_sp_flag ,true 
-5d87 20600000 rtn 
-
-parse_lmpext_accepted:
-5d88 68008554 fetch 1 ,mem_rxbuf + 3 
-5d89 79207e07 set1 7 ,pdata 
-5d8a 600084c9 store 1 ,mem_lmi_accepted_opcode 
-5d8b c045dd92 beq lmp_packet_type_table_req ,parse_lmpext_accepted_ptt 
-5d8c 20600000 rtn 
-
-parse_lmpext_not_accepted:
-5d8d 68008554 fetch 1 ,mem_rxbuf + 3 
-5d8e 79207e07 set1 7 ,pdata 
-5d8f 600084c9 store 1 ,mem_lmi_accepted_opcode 
-5d90 c045dd96 beq lmp_packet_type_table_req ,parse_lmpext_not_accepted_ptt 
-5d91 20600000 rtn 
-
-parse_lmpext_accepted_ptt:
-5d92 6800c15a fetch 1 ,mem_ptt 
-5d93 6808804c fetcht 1 ,mem_state_map 
-5d94 7d3a0405 nsetflag blank ,smap_edr ,temp 
-5d95 6008804c storet 1 ,mem_state_map 
-
-parse_lmpext_not_accepted_ptt:
-5d96 68008030 fetch 1 ,mem_state 
-5d97 c4028000 rtnbit0 state_init_seq 
-5d98 793ffe05 set0 state_init_seq ,pdata 
-5d99 60008030 store 1 ,mem_state 
-5d9a 680084d7 fetch 1 ,mem_auth_enable 
-5d9b 247a0000 nrtn blank 
-5d9c 70007c31 jam lmp_setup_complete ,mem_lmo_opcode2 
-5d9d 20600000 rtn 
-
-parse_lmpext_pause_encrypt:
-5d9e 2434dda1 nbranch parse_lmpext_pause_encrypt_slave ,master 
-5d9f 70007c12 jam lmp_stop_encryption_req ,mem_lmo_opcode2 
-5da0 202062eb branch tid_reply 
-
-parse_lmpext_pause_encrypt_slave:
-5da1 70007c97 jam lmp_pause_encryption_req ,mem_lmo_opcode2 
-5da2 20600000 rtn 
-
-parse_lmpext_resume_encrypt:
-5da3 204062eb call tid_reply 
-5da4 20205ffe branch lmp_start_encryption 
-
-parse_lmpext_features_req:
-5da5 70007c84 jam lmp_ext_features_res ,mem_lmo_opcode2 
-5da6 20600000 rtn 
-
-parse_lmpext_features_res:
-5da7 68088555 fetcht 1 ,mem_rxbuf + 4 
-5da8 18410401 and temp ,0x1 ,temp 
-5da9 600884d0 storet 1 ,mem_remote_sppcap 
-5daa 6800c1ce fetch 1 ,mem_hci_cmd 
-5dab c0a8ddad bne hci_cmd_wait_remote_ext_feature ,parse_lmpext_features_res_not_hci 
-5dac 7041ce00 jam 0 ,mem_hci_cmd 
-
-parse_lmpext_features_res_not_hci:
-5dad 68008055 fetch 1 ,mem_conn_sm 
-5dae c18a8000 rtnne conn_sm_wait_features_ext 
-5daf 70005504 jam conn_sm_send_conn_req ,mem_conn_sm 
-5db0 2020631b branch process_conn_sm 
-
-parse_lmp_accepted:
-5db1 47404030 bpatchx patch30_0 ,mem_patch30 
-5db2 68008552 fetch 1 ,mem_rxbuf + 1 
-5db3 600084c9 store 1 ,mem_lmi_accepted_opcode 
-5db4 c019ddd8 beq lmp_host_connection_req ,parse_lmp_accepted_hostconn 
-5db5 c0045de7 beq lmp_in_rand ,parse_lmp_accepted_inrand 
-5db6 c007ddee beq lmp_encryption_mode_req ,parse_lmp_accepted_enc_mode 
-5db7 c0085df4 beq lmp_encryption_key_size_req ,parse_lmp_accepted_enc_keysize 
-5db8 c008ddf5 beq lmp_start_encryption_req ,parse_lmp_accepted_start_enc 
-5db9 c0095dfd beq lmp_stop_encryption_req ,parse_lmp_accepted_stop_enc 
-5dba c00c5e13 beq lmp_unsniff_req ,parse_lmp_accepted_unsniff_req 
-5dbb c00bde16 beq lmp_sniff_req ,parse_lmp_accepted_sniff_req 
-5dbc c009ddcf beq lmp_switch_req ,parse_lmp_accepted_switch 
-5dbd c01edf1e beq lmp_encapsulated_header ,parse_lmp_accepted_encapsulated_header 
-5dbe c01f5f6a beq lmp_encapsulated_payload ,parse_lmp_accepted_encapsulated_payload 
-5dbf c0205f20 beq lmp_simple_pairing_number ,parse_lmp_accepted_simple_pairing_number 
-5dc0 c020df3d beq lmp_dhkey_check ,parse_lmp_accepted_dhkey_check 
-5dc1 20600000 rtn 
-
-parse_lmp_not_accepted:
-5dc2 4740c030 bpatchx patch30_1 ,mem_patch30 
-5dc3 68008552 fetch 1 ,mem_rxbuf + 1 
-5dc4 600084c9 store 1 ,mem_lmi_accepted_opcode 
-5dc5 c000de0a beq lmp_name_req ,parse_lmp_not_accepted_name_req 
-5dc6 c019dde2 beq lmp_host_connection_req ,parse_lmp_not_accepted_hostconn 
-5dc7 c005ddfe beq lmp_au_rand ,parse_lmp_not_accepted_aurand 
-5dc8 c0045e01 beq lmp_in_rand ,parse_lmp_not_accepted_inrand 
-5dc9 c009ddd2 beq lmp_switch_req ,parse_lmp_not_accepted_switch 
-5dca c0205e0b beq lmp_simple_pairing_number ,parse_lmp_not_accepted_simple_pairing_number 
-5dcb c020de0e beq lmp_dhkey_check ,parse_lmp_not_accepted_dhkey_check 
-5dcc c00c5e11 beq lmp_unsniff_req ,parse_lmp_not_accepted_unsniff_req 
-5dcd c00bde22 beq lmp_sniff_req ,parse_lmp_not_acdcept_sniff_req 
-5dce 20600000 rtn 
-
-parse_lmp_accepted_switch:
-5dcf 700a9920 jam bt_evt_switch_accept ,mem_fifo_temp 
-5dd0 20407d86 call ui_ipc_send_event 
-5dd1 202021dc branch role_switch_prepare0 
-
-parse_lmp_not_accepted_switch:
-5dd2 700a9919 jam bt_evt_switch_not_accept ,mem_fifo_temp 
-5dd3 20407d86 call ui_ipc_send_event 
-5dd4 70455b02 jam switch_flag_not_accept ,mem_switch_flag 
-5dd5 58000050 setarg timer_switch_waite 
-5dd6 d8e00006 arg switch_wait_timer ,queue 
-5dd7 20207f08 branch timer_init 
-
-parse_lmp_accepted_hostconn:
-5dd8 680084d1 fetch 1 ,mem_lmp_conn_state 
-5dd9 79207e00 set1 received_conn_req ,pdata 
-5dda 600084d1 store 1 ,mem_lmp_conn_state 
-5ddb 700a9901 jam bt_evt_bb_connected ,mem_fifo_temp 
-5ddc 20407d86 call ui_ipc_send_event 
-5ddd 70007c8b jam lmp_packet_type_table_req ,mem_lmo_opcode2 
-
-parse_lmp_accepted_hostconn_ctn:
-5dde 68008055 fetch 1 ,mem_conn_sm 
-5ddf c082dd07 bne conn_sm_wait_conn_accept ,parse_rx_done 
-5de0 70005506 jam conn_sm_auth_pair ,mem_conn_sm 
-5de1 20600000 rtn 
-
-parse_lmp_not_accepted_hostconn:
-5de2 7004ca0b jam acl_connection_already_exists ,mem_disconn_reason_send 
-5de3 70007c07 jam lmp_detach ,mem_lmo_opcode2 
-5de4 70005500 jam conn_sm_standby ,mem_conn_sm 
-5de5 2020dd07 branch parse_rx_done ,true 
-5de6 20600000 rtn 
-
-parse_lmp_accepted_inrand:
-5de7 6800c1bd fetch 1 ,mem_link_key_exists 
-5de8 247a0000 nrtn blank 
-5de9 2040244f call clear_linkkey 
-5dea 20405ffc call lmp_generate_key 
-5deb 20748000 rtn master 
-5dec 79200021 set1 mark_slave_in_rand_accepted ,mark 
-5ded 20600000 rtn 
-
-parse_lmp_accepted_enc_mode:
-5dee 24748000 nrtn master 
-5def 70007c10 jam lmp_encryption_key_size_req ,mem_lmo_opcode2 
-5df0 6800804c fetch 1 ,mem_state_map 
-5df1 c4010000 rtnbit0 smap_encryption 
-5df2 70007c12 jam lmp_stop_encryption_req ,mem_lmo_opcode2 
-5df3 20600000 rtn 
-
-parse_lmp_accepted_enc_keysize:
-5df4 20205ffe branch lmp_start_encryption 
-
-parse_lmp_accepted_start_enc:
-5df5 20406059 call send_create_conn_start_l2cap_timer_sm 
-5df6 68008030 fetch 1 ,mem_state 
-5df7 c3820000 rtnbit1 state_conn_comp 
-5df8 70007c31 jam lmp_setup_complete ,mem_lmo_opcode2 
-5df9 68008055 fetch 1 ,mem_conn_sm 
-5dfa c1850000 rtnne conn_sm_encrypt_wait 
-5dfb 7000550b jam conn_sm_encrypt_wait_clear ,mem_conn_sm 
-5dfc 20600000 rtn 
-
-parse_lmp_accepted_stop_enc:
-5dfd 20600000 rtn 
-
-parse_lmp_not_accepted_aurand:
-
-parse_lmp_not_accepted_aurand_send_detach:
-5dfe 70007c07 jam lmp_detach ,mem_lmo_opcode2 
-5dff 7004ca13 jam other_end_terminated ,mem_disconn_reason_send 
-5e00 20600000 rtn 
-
-parse_lmp_not_accepted_inrand:
-5e01 68008553 fetch 1 ,mem_rxbuf + 2 
-5e02 c0035e07 beq key_missing ,parse_lmp_inrand_key_missing 
-5e03 c18c0000 rtnne pairing_not_allowed 
-5e04 7004ca18 jam pairing_not_allowed ,mem_disconn_reason_send 
-5e05 70007c07 jam lmp_detach ,mem_lmo_opcode2 
-5e06 20600000 rtn 
-
-parse_lmp_inrand_key_missing:
-5e07 7004ca06 jam key_missing ,mem_disconn_reason_send 
-5e08 70007c07 jam lmp_detach ,mem_lmo_opcode2 
-5e09 20600000 rtn 
-
-parse_lmp_not_accepted_name_req:
-5e0a 20600000 rtn 
-
-parse_lmp_not_accepted_simple_pairing_number:
-5e0b 7009ae00 jam sp_stat_null ,mem_sp_state 
-5e0c 70007c07 jam lmp_detach ,mem_lmo_opcode2 
-5e0d 20205d07 branch parse_rx_done 
-
-parse_lmp_not_accepted_dhkey_check:
-5e0e 7009ae00 jam sp_stat_null ,mem_sp_state 
-5e0f 70007c07 jam lmp_detach ,mem_lmo_opcode2 
-5e10 20205d07 branch parse_rx_done 
-
-parse_lmp_not_accepted_unsniff_req:
-5e11 700a9924 jam bt_evt_unsniff_not_accept ,mem_fifo_temp 
-5e12 20207d86 branch ui_ipc_send_event 
-
-parse_lmp_accepted_unsniff_req:
-5e13 700a9923 jam bt_evt_unsniff_accept ,mem_fifo_temp 
-5e14 20407d86 call ui_ipc_send_event 
-5e15 202026e9 branch sniff_exit 
-
-parse_lmp_accepted_sniff_req:
-5e16 700a9922 jam bt_evt_sniff_accept ,mem_fifo_temp 
-5e17 20407d86 call ui_ipc_send_event 
-5e18 58000000 setarg 0 
-5e19 60010075 store 2 ,mem_dsniff 
-5e1a 680141e3 fetch 2 ,mem_sniff_param_interval 
-5e1b 1fe3fe00 lshift pdata ,pdata 
-5e1c 60010032 store 2 ,mem_tsniff 
-5e1d 6800c1e5 fetch 1 ,mem_sniff_param_attempt 
-5e1e 60008073 store 1 ,mem_sniff_attempt 
-5e1f 6800c1e7 fetch 1 ,mem_sniff_param_timeout 
-5e20 60008074 store 1 ,mem_sniff_timeout 
-5e21 202026c6 branch sniff_init 
-
-parse_lmp_not_acdcept_sniff_req:
-5e22 700a9921 jam bt_evt_sniff_not_accept ,mem_fifo_temp 
-5e23 20207d86 branch ui_ipc_send_event 
-
-parse_lmp_crypt_key:
-5e24 68088552 fetcht 1 ,mem_rxbuf + 1 
-5e25 60088054 storet 1 ,mem_key_size 
-5e26 20205e38 branch accept_lmp_msg 
-
-parse_lmp_setup_complete:
-5e27 680084d1 fetch 1 ,mem_lmp_conn_state 
-5e28 79207e02 set1 received_setup_complete ,pdata 
-5e29 600084d1 store 1 ,mem_lmp_conn_state 
-5e2a c3818000 rtnbit1 sent_setup_complete 
-5e2b 70007c31 jam lmp_setup_complete ,mem_lmo_opcode2 
-5e2c 20205d07 branch parse_rx_done 
-
-parse_lmp_max_slot:
-5e2d 20600000 rtn 
-
-parse_lmp_max_slot_req:
-5e2e 6800c0d0 fetch 1 ,mem_max_slot 
-5e2f 68088552 fetcht 1 ,mem_rxbuf + 1 
-5e30 98467c00 isub temp ,null 
-5e31 20215e38 branch accept_lmp_msg ,positive 
-5e32 70007c04 jam lmp_not_accepted ,mem_lmo_opcode2 
-5e33 70007e1f jam unspecified_error ,mem_lmo_reason2 
-5e34 70007d2e jam lmp_max_slot_req ,mem_lmi_opcode2 
-5e35 20600000 rtn 
-
-parse_lmp_detach:
-5e36 20406157 call prepare_disconnect 
-5e37 20205e38 branch accept_lmp_msg 
-
-accept_lmp_msg:
-5e38 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
-5e39 20600000 rtn 
-
-parse_lmp_incr_power:
-5e3a 70007c21 jam lmp_max_power ,mem_lmo_opcode2 
-5e3b 20600000 rtn 
-
-parse_lmp_decr_power:
-5e3c 70007c22 jam lmp_min_power ,mem_lmo_opcode2 
-5e3d 20600000 rtn 
-
-parse_lmp_version_res:
-5e3e 68008055 fetch 1 ,mem_conn_sm 
-5e3f c1098000 rtneq conn_sm_wait_version 
-5e40 70005502 jam conn_sm_send_features ,mem_conn_sm 
-5e41 20600000 rtn 
-
-parse_lmp_auto_rate:
-5e42 20600000 rtn 
-
-parse_lmp_in_rand:
-5e43 20405ff9 call lmp_copy_rand 
-5e44 7004d401 jam pincode_state_wait_pincode ,mem_pincode_state 
-5e45 700a990a jam bt_evt_pincode_req ,mem_fifo_temp 
-5e46 20407d86 call ui_ipc_send_event 
-5e47 204062f3 call tid_check 
-5e48 2420e001 nbranch lmp_accept_inrand ,true 
-5e49 2434de4e nbranch parse_lmp_inrand_res ,master 
-5e4a 70007c04 jam lmp_not_accepted ,mem_lmo_opcode2 
-5e4b 70007d08 jam lmp_in_rand ,mem_lmi_opcode2 
-5e4c 70007e23 jam transaction_collision ,mem_lmo_reason2 
-5e4d 20600000 rtn 
-
-parse_lmp_inrand_res:
-5e4e 6800804b fetch 1 ,mem_op 
-5e4f 79207e02 set1 op_inrand_req ,pdata 
-5e50 6000804b store 1 ,mem_op 
-5e51 20600000 rtn 
-
-pop_tid_follow:
-5e52 6808804c fetcht 1 ,mem_state_map 
-5e53 7d3a0401 nsetflag blank ,smap_lmptid ,temp 
-5e54 6008804c storet 1 ,mem_state_map 
-5e55 20600000 rtn 
-
-push_tid_follow:
-5e56 6800807f fetch 1 ,mem_lmo_tid2 
-5e57 1fe37e00 rshift pdata ,pdata 
-5e58 1fe17e01 and_into 1 ,pdata 
-5e59 20600000 rtn 
-
-parse_lmp_au_rand_moudle:
-5e5a 6800c217 fetch 1 ,mem_nv_data_number 
-5e5b 207a0000 rtn blank 
-5e5c 680089b5 fetch 1 ,mem_pairing_auth 
-5e5d 205a67b2 call load_device_list ,blank 
-5e5e 20600000 rtn 
-
-parse_lmp_au_rand:
-5e5f 20405e5a call parse_lmp_au_rand_moudle 
-5e60 20405e56 call push_tid_follow 
-5e61 600084d5 store 1 ,mem_sres_tid 
-5e62 20405ff9 call lmp_copy_rand 
-5e63 70007c0c jam lmp_sres ,mem_lmo_opcode2 
-5e64 6800c1bd fetch 1 ,mem_link_key_exists 
-5e65 247a0000 nrtn blank 
-5e66 68008030 fetch 1 ,mem_state 
-5e67 c3830000 rtnbit1 state_combkey 
-5e68 70007e06 jam key_missing ,mem_lmo_reason2 
-5e69 20205d53 branch reject_lmp_packet 
-
-parse_lmp_sres:
-5e6a da200040 arg mem_plap ,rega 
-5e6b 20407288 call function_e1 
-5e6c 68020552 fetch 4 ,mem_rxbuf + 1 
-5e6d 680a0592 fetcht 4 ,mem_input_store 
-5e6e 98467c00 isub temp ,null 
-5e6f 2022de73 branch authentication_ok ,zero 
-5e70 70007c07 jam lmp_detach ,mem_lmo_opcode2 
-5e71 7004ca05 jam authentication_failure_error ,mem_disconn_reason_send 
-5e72 20600000 rtn 
-
-authentication_ok:
-5e73 20405e77 call authentication_ok_common 
-5e74 6800c65a fetch 1 ,mem_ssp_enable 
-5e75 203a5f3e branch pairing_success ,blank 
-5e76 20600000 rtn 
-
-authentication_ok_common:
-5e77 20407386 call copy_aco 
-5e78 204021b2 call linkkey_ready 
-5e79 6800804b fetch 1 ,mem_op 
-5e7a 2feffe01 isolate1 op_auth_req ,pdata 
-5e7b 793ffe01 set0 op_auth_req ,pdata 
-5e7c 6000804b store 1 ,mem_op 
-5e7d 68008055 fetch 1 ,mem_conn_sm 
-5e7e c00cde81 beq conn_sm_auth_wait ,authentication_ok_conn_sm 
-5e7f c00c5e81 beq conn_sm_pairing_wait ,authentication_ok_conn_sm 
-5e80 20600000 rtn 
-
-authentication_ok_conn_sm:
-5e81 680089b5 fetch 1 ,mem_pairing_auth 
-5e82 c1800000 rtnne defalt_pairing_auth 
-5e83 6800804c fetch 1 ,mem_state_map 
-5e84 c3810000 rtnbit1 smap_encryption 
-5e85 202063b1 branch host_create_conn_encrypt 
-
-parse_lmp_comb_key:
-5e86 da200552 arg mem_rxbuf + 1 ,rega 
-5e87 da400582 arg mem_kinit ,regb 
-5e88 d8a00562 arg mem_random_number ,contw 
-5e89 20407352 call xor16 
-5e8a da200040 arg mem_plap ,rega 
-5e8b 20406311 call generate_linkkey 
-5e8c 70007c0b jam lmp_au_rand ,mem_lmo_opcode2 
-5e8d 68008030 fetch 1 ,mem_state 
-5e8e c3035ffc bbit0 state_combkey ,lmp_generate_key 
-5e8f 20600000 rtn 
-
-parse_lmp_name_res:
-5e90 6801015f fetch 2 ,mem_len 
-5e91 1fe0f3fd add pdata ,-3 ,loopcnt 
-5e92 68088552 fetcht 1 ,mem_rxbuf + 1 
-5e93 58000101 setarg mem_tmp_buffer 
-5e94 98408a00 iadd temp ,contw 
-5e95 d8c00554 arg mem_rxbuf + 3 ,contr 
-5e96 20407f01 call memcpy 
-5e97 68088053 fetcht 1 ,mem_name_offset 
-5e98 68008553 fetch 1 ,mem_rxbuf + 2 
-5e99 98467e00 isub temp ,pdata 
-5e9a 1fe67c0e sub pdata ,14 ,null 
-5e9b 20215ea0 branch parse_lmp_name_res_end ,positive 
-5e9c 1840fe0e add temp ,14 ,pdata 
-5e9d 60008053 store 1 ,mem_name_offset 
-5e9e 70007c01 jam lmp_name_req ,mem_lmo_opcode2 
-5e9f 20600000 rtn 
-
-parse_lmp_name_res_end:
-5ea0 6800804c fetch 1 ,mem_state_map 
-5ea1 79207e03 set1 smap_name_res ,pdata 
-5ea2 6000804c store 1 ,mem_state_map 
-5ea3 c2826006 bbit1 smap_name_req ,lmp_disconnect 
-5ea4 20600000 rtn 
-
-parse_lmp_name_req:
-5ea5 68008552 fetch 1 ,mem_rxbuf + 1 
-5ea6 6000807d store 1 ,mem_lmi_opcode2 
-5ea7 70007c02 jam lmp_name_res ,mem_lmo_opcode2 
-5ea8 20600000 rtn 
-
-parse_lmp_conn_req:
-5ea9 20205e38 branch accept_lmp_msg 
-
-parse_lmp_timing_accuracy_req:
-5eaa 70007c30 jam lmp_timing_accuracy_res ,mem_lmo_opcode2 
-5eab 20600000 rtn 
-
-parse_lmp_features_req:
-5eac 70007c28 jam lmp_features_res ,mem_lmo_opcode2 
-5ead 20600000 rtn 
-
-parse_lmp_version_req:
-5eae 70007c26 jam lmp_version_res ,mem_lmo_opcode2 
-5eaf 20600000 rtn 
-
-parse_lmp_supervision_timeout:
-5eb0 20600000 rtn 
-
-parse_lmp_sniff_subrating_req:
-5eb1 68010032 fetch 2 ,mem_tsniff 
-5eb2 98000400 iforce temp 
-5eb3 68008553 fetch 1 ,mem_rxbuf + 2 
-5eb4 60008095 store 1 ,mem_subsniff_rate 
-5eb5 984f8400 imul32 temp ,temp 
-5eb6 68010554 fetch 2 ,mem_rxbuf + 3 
-5eb7 1fe3fe00 lshift pdata ,pdata 
-5eb8 60010096 store 2 ,mem_subsniff_tcmax 
-5eb9 68020556 fetch 4 ,mem_rxbuf + 5 
-5eba 1fe3fe00 lshift pdata ,pdata 
-5ebb 60020091 store 4 ,mem_subsniff_instant 
-5ebc 18427e00 deposit temp 
-5ebd 60010098 store 2 ,mem_subsniff_tsniff 
-5ebe 20600000 rtn 
-
-parse_lmpext_packet_type_table_req:
-5ebf 6808c15a fetcht 1 ,mem_ptt 
-5ec0 68008553 fetch 1 ,mem_rxbuf + 2 
-5ec1 9842fc00 ixor temp ,null 
-5ec2 2422dd77 nbranch reject_unknown_ext_packet ,zero 
-5ec3 2feffe00 isolate1 0 ,pdata 
-5ec4 6800804c fetch 1 ,mem_state_map 
-5ec5 7920fe05 setflag true ,smap_edr ,pdata 
-5ec6 6000804c store 1 ,mem_state_map 
-5ec7 70007c81 jam lmp_ext_accepted ,mem_lmo_opcode2 
-5ec8 70007d8b jam lmp_packet_type_table_req ,mem_lmi_opcode2 
-5ec9 20600000 rtn 
-
-parse_lmp_sniff_subrating_res:
-
-parse_lmp_preferred_rate:
-
-parse_lmp_max_power:
-
-parse_lmp_min_power:
-5eca 20600000 rtn 
-
-parse_lmp_page_mode_req:
-5ecb 20205e38 branch accept_lmp_msg 
-
-parse_lmp_page_scan_mode_req:
-5ecc 20205e38 branch accept_lmp_msg 
-
-parse_lmp_slot_offset:
-5ecd 68010552 fetch 2 ,mem_rxbuf + 1 
-5ece 60010171 store 2 ,mem_slot_offset 
-5ecf 20600000 rtn 
-
-parse_lmp_sniff_req_check_sniff_para:
-5ed0 68010555 fetch 2 ,mem_rxbuf + 4 
-5ed1 6808c172 fetcht 1 ,mem_lpm_mult 
-5ed2 984ffe00 imul32 temp ,pdata 
-5ed3 d8400640 arg 0x640 ,temp 
-5ed4 98467c00 isub temp ,null 
-5ed5 20600000 rtn 
-
-parse_lmp_sniff_req:
-5ed6 68010557 fetch 2 ,mem_rxbuf + 6 
-5ed7 203a5ef0 branch lmp_reject_sniff ,blank 
-5ed8 20405ed0 call parse_lmp_sniff_req_check_sniff_para 
-5ed9 20215ef0 branch lmp_reject_sniff ,positive 
-5eda 6800c092 fetch 1 ,mem_device_option 
-5edb 1fe67c0a sub pdata ,dvc_op_module ,null 
-5edc 2042bcd5 call module_set_lpm_mult_2 ,zero 
-5edd 68008030 fetch 1 ,mem_state 
-5ede c280def0 bbit1 state_insniff ,lmp_reject_sniff 
-5edf 68010553 fetch 2 ,mem_rxbuf + 2 
-5ee0 1fe3fe00 lshift pdata ,pdata 
-5ee1 60010075 store 2 ,mem_dsniff 
-5ee2 68010555 fetch 2 ,mem_rxbuf + 4 
-5ee3 1fe3fe00 lshift pdata ,pdata 
-5ee4 60010032 store 2 ,mem_tsniff 
-5ee5 68010557 fetch 2 ,mem_rxbuf + 6 
-5ee6 60008073 store 1 ,mem_sniff_attempt 
-5ee7 98000400 iforce temp 
-5ee8 68010559 fetch 2 ,mem_rxbuf + 8 
-5ee9 60008074 store 1 ,mem_sniff_timeout 
-5eea 98467c00 isub temp ,null 
-5eeb 24215eed nbranch set_big_value_to_attempt ,positive 
-5eec 60008073 store 1 ,mem_sniff_attempt 
-
-set_big_value_to_attempt:
-5eed 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
-5eee 70007d17 jam lmp_sniff_req ,mem_lmi_opcode2 
-5eef 20600000 rtn 
-
-lmp_reject_sniff:
-5ef0 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
-5ef1 20205d53 branch reject_lmp_packet 
-
-parse_lmp_start_encryption_req:
-5ef2 20405e38 call accept_lmp_msg 
-5ef3 20405ff9 call lmp_copy_rand 
-5ef4 2040728b call function_e3 
-5ef5 202026b8 branch start_encryption 
-
-parse_lmp_stop_encryption_req:
-5ef6 20405e38 call accept_lmp_msg 
-5ef7 202026c0 branch stop_encryption 
-
-parse_lmp_switch_req:
-5ef8 68020552 fetch 4 ,mem_rxbuf + 1 
-5ef9 1fe3fe00 lshift pdata ,pdata 
-5efa 2034df04 branch parse_lmp_switch_accept ,master 
-5efb 6808c1bd fetcht 1 ,mem_link_key_exists 
-5efc 243a5f01 nbranch parse_lmp_switch_req_clear_mark ,blank 
-
-parse_lmp_switch_req_not_accept:
-5efd 70007c04 jam lmp_not_accepted ,mem_lmo_opcode2 
-5efe 70007d13 jam lmp_switch_req ,mem_lmi_opcode2 
-5eff 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
-5f00 20600000 rtn 
-
-parse_lmp_switch_req_clear_mark:
-5f01 70007c34 jam lmp_slot_offset ,mem_lmo_opcode2 
-5f02 70005500 jam 0 ,mem_conn_sm 
-5f03 202021d9 branch role_switch_prepare 
-
-parse_lmp_switch_accept:
-5f04 204021d9 call role_switch_prepare 
-5f05 79200022 set1 mark_reconn_recieve_switch ,mark 
-5f06 6800816d fetch 1 ,mem_connection_options 
-5f07 793ffe02 set0 connection_switch ,pdata 
-5f08 6000816d store 1 ,mem_connection_options 
-5f09 20205e38 branch accept_lmp_msg 
-
-parse_lmp_temp_rand:
-
-parse_lmp_temp_key:
-
-parse_lmp_timing_accuracy_res:
-
-parse_lmp_unit_key:
-
-parse_lmp_use_semi_permanend_key:
-5f0a 20600000 rtn 
-
-parse_lmp_unsniff_req:
-5f0b 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
-5f0c 70007d18 jam lmp_unsniff_req ,mem_lmi_opcode2 
-5f0d 700a992e jam bt_evt_remote_unsniff ,mem_fifo_temp 
-5f0e 20407d86 call ui_ipc_send_event 
-5f0f 202026e9 branch sniff_exit 
-
-parse_lmp_encapsulated_header:
-5f10 68008552 fetch 1 ,mem_rxbuf + 1 
-5f11 c080df1c bne encapsulated_major_type_p192 ,parse_lmp_encapsulated_header_reject 
-5f12 68008553 fetch 1 ,mem_rxbuf + 2 
-5f13 c080df1c bne encapsulated_minor_type_p192 ,parse_lmp_encapsulated_header_reject 
-5f14 68008554 fetch 1 ,mem_rxbuf + 3 
-5f15 c0985f1c bne encapsulated_len_p192 ,parse_lmp_encapsulated_header_reject 
-5f16 204062fc call check_localsm 
-5f17 2020df19 branch parse_lmp_encapsulated_header_master ,true 
-5f18 7009ae01 jam sp_stat_key_recv ,mem_sp_state 
-
-parse_lmp_encapsulated_header_master:
-5f19 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
-5f1a 70007d3d jam lmp_encapsulated_header ,mem_lmi_opcode2 
-5f1b 20205d07 branch parse_rx_done 
-
-parse_lmp_encapsulated_header_reject:
-5f1c 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
-5f1d 20205d53 branch reject_lmp_packet 
-
-parse_lmp_accepted_encapsulated_header:
-5f1e 70007c3e jam lmp_encapsulated_payload ,mem_lmo_opcode2 
-5f1f 20600000 rtn 
-
-parse_lmp_accepted_simple_pairing_number:
-5f20 6800c662 fetch 1 ,mem_ssp_mode_flag 
-5f21 c000df27 beq ssp_mode_ssp_pin_flag ,parse_lmp_accepted_simple_pairing_number_ssp_pin 
-5f22 c0015f2b beq ssp_mode_passkey_entry_flag ,parse_lmp_accepted_simple_pairing_number_passkey 
-
-parse_lmp_accepted_simple_pairing_number_common:
-5f23 204062fc call check_localsm 
-5f24 20608000 rtn true 
-5f25 7009ae08 jam sp_stat_confirm_recv ,mem_sp_state 
-5f26 20600000 rtn 
-
-parse_lmp_accepted_simple_pairing_number_ssp_pin:
-5f27 20407962 call g_noninit_number_confirm 
-5f28 700a9935 jam bt_evt_bt_gkey_generate ,mem_fifo_temp 
-5f29 20407d86 call ui_ipc_send_event 
-5f2a 20205f23 branch parse_lmp_accepted_simple_pairing_number_common 
-
-parse_lmp_accepted_simple_pairing_number_passkey:
-5f2b 204062fc call check_localsm 
-5f2c 20608000 rtn true 
-5f2d 6800c663 fetch 1 ,mem_authentication_passkey_times 
-5f2e c009df3b beq 19 ,authentication_passkey_end 
-5f2f 1fe0fe01 increase 1 ,pdata 
-5f30 6000c663 store 1 ,mem_authentication_passkey_times 
-
-authentication_passkey:
-5f31 7009b001 jam sp_flag_commit ,mem_sp_flag 
-5f32 7009ae04 jam sp_stat_commit_calc ,mem_sp_state 
-5f33 6800c663 fetch 1 ,mem_authentication_passkey_times 
-5f34 1fe20e00 copy pdata ,queue 
-5f35 6803468a fetch 6 ,mem_pin 
-5f36 afefffff qisolate1 pdata 
-5f37 58000080 setarg 0x80 
-5f38 7920fe00 setflag true ,0 ,pdata 
-5f39 6000c664 store 1 ,mem_passkey_1bit 
-5f3a 20600000 rtn 
-
-authentication_passkey_end:
-5f3b 7009ae08 jam sp_stat_confirm_recv ,mem_sp_state 
-5f3c 20600000 rtn 
-
-parse_lmp_accepted_dhkey_check:
-5f3d 20405f43 call parse_lmp_accepted_dhkey_check_common 
-
-pairing_success:
-5f3e 6800c665 fetch 1 ,mem_flag_pairing_state 
-5f3f 207a0000 rtn blank 
-5f40 70466500 jam flag_pairing_state_not_pairing ,mem_flag_pairing_state 
-5f41 700a9938 jam bt_evt_bt_pairing_success ,mem_fifo_temp 
-5f42 20207d86 branch ui_ipc_send_event 
-
-parse_lmp_accepted_dhkey_check_common:
-5f43 204062fc call check_localsm 
-5f44 2440f965 ncall g_noninit ,true 
-5f45 2040f975 call g_init ,true 
-5f46 204062fc call check_localsm 
-5f47 20608000 rtn true 
-5f48 7009ae0c jam sp_stat_link_key_calc ,mem_sp_state 
-5f49 7009b001 jam sp_flag_commit ,mem_sp_flag 
-5f4a 20600000 rtn 
-
-parse_simple_pairing_confirm:
-5f4b d8a00a6e arg mem_sp_confirm_remote ,contw 
-5f4c d8c00552 arg mem_rxbuf + 1 ,contr 
-5f4d 20407ebf call memcpy16 
-5f4e 6800c662 fetch 1 ,mem_ssp_mode_flag 
-5f4f c1010000 rtneq ssp_mode_passkey_entry_flag 
-5f50 202076d8 branch master_set_mem_master_sp_flag 
-
-parse_lmp_encapsulated_payload:
-5f51 680089af fetch 1 ,mem_master_sp_state 
-5f52 c003df55 beq sp_stat_random_send ,parse_encapsulated_payload_master 
-5f53 680089ae fetch 1 ,mem_sp_state 
-5f54 c080df68 bne sp_stat_key_recv ,parse_lmp_encapsulated_payload_reject 
-
-parse_encapsulated_payload_master:
-5f55 680089b7 fetch 1 ,mem_sp_remote_key_recv_count 
-5f56 1fe60a20 sub pdata ,0x20 ,contw 
-5f57 24215f68 nbranch parse_lmp_encapsulated_payload_reject ,positive 
-5f58 d8a009c6 arg mem_sp_pubkey_remote ,contw 
-5f59 98a08a00 iadd contw ,contw 
-5f5a 68040552 fetch 8 ,mem_rxbuf + 1 
-5f5b e0a40000 istore 8 ,contw 
-5f5c 6804055a fetch 8 ,mem_rxbuf + 9 
-5f5d e0a40000 istore 8 ,contw 
-5f5e 680089b7 fetch 1 ,mem_sp_remote_key_recv_count 
-5f5f 1fe0fe10 increase 16 ,pdata 
-5f60 600089b7 store 1 ,mem_sp_remote_key_recv_count 
-5f61 c0985e38 bne encapsulated_len_p192 ,accept_lmp_msg 
-
-parse_lmp_encapsulated_payload_completed:
-5f62 204062fc call check_localsm 
-5f63 2020de38 branch accept_lmp_msg ,true 
-5f64 7009b801 jam sp_key_valid ,mem_sp_remote_key_invalid 
-5f65 7009ae02 jam sp_stat_key_generate ,mem_sp_state 
-5f66 7009b001 jam sp_flag_commit ,mem_sp_flag 
-5f67 20205e38 branch accept_lmp_msg 
-
-parse_lmp_encapsulated_payload_reject:
-5f68 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
-5f69 20205d53 branch reject_lmp_packet 
-
-parse_lmp_accepted_encapsulated_payload:
-5f6a 680089b6 fetch 1 ,mem_sp_local_key_send_count 
-5f6b c0185f6e beq encapsulated_len_p192 ,parse_lmp_encapsulated_payload_all_accepted 
-5f6c 70007c3e jam lmp_encapsulated_payload ,mem_lmo_opcode2 
-5f6d 20205d07 branch parse_rx_done 
-
-parse_lmp_encapsulated_payload_all_accepted:
-5f6e 204062fc call check_localsm 
-5f6f 2020df77 branch parse_lmp_encapsulated_payload_all_accepted_master ,true 
-5f70 6800c662 fetch 1 ,mem_ssp_mode_flag 
-5f71 c0015f75 beq ssp_mode_passkey_entry_flag ,parse_lmp_encapsulated_payload_all_accepted_get_passkey 
-5f72 7009b001 jam sp_flag_commit ,mem_sp_flag 
-5f73 7009ae04 jam sp_stat_commit_calc ,mem_sp_state 
-5f74 20205d07 branch parse_rx_done 
-
-parse_lmp_encapsulated_payload_all_accepted_get_passkey:
-5f75 700a9936 jam bt_evt_bt_get_passkey ,mem_fifo_temp 
-5f76 20207d86 branch ui_ipc_send_event 
-
-parse_lmp_encapsulated_payload_all_accepted_master:
-5f77 20205d07 branch parse_rx_done 
-
-parse_lmp_simple_pairing_number:
-5f78 680089af fetch 1 ,mem_master_sp_state 
-5f79 c003df7c beq sp_stat_random_send ,parse_lmp_simple_pairing_number_master 
-5f7a 680089ae fetch 1 ,mem_sp_state 
-5f7b c0835f88 bne sp_stat_random_recv ,parse_lmp_simple_pairing_number_reject 
-
-parse_lmp_simple_pairing_number_master:
-5f7c d8a00a2e arg mem_sp_random_remote ,contw 
-5f7d 68040552 fetch 8 ,mem_rxbuf + 1 
-5f7e e0a40000 istore 8 ,contw 
-5f7f 6804055a fetch 8 ,mem_rxbuf + 9 
-5f80 e0a40000 istore 8 ,contw 
-5f81 204062fc call check_localsm 
-5f82 2020df86 branch parse_lmp_simple_pairing_number_master0 ,true 
-5f83 7009ae07 jam sp_stat_random_send ,mem_sp_state 
-5f84 7009b001 jam sp_flag_commit ,mem_sp_flag 
-5f85 20205e38 branch accept_lmp_msg 
-
-parse_lmp_simple_pairing_number_master0:
-5f86 7009af04 jam sp_stat_commit_calc ,mem_master_sp_state 
-5f87 202076d8 branch master_set_mem_master_sp_flag 
-
-parse_lmp_simple_pairing_number_reject:
-5f88 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
-5f89 20205d53 branch reject_lmp_packet 
-
-parse_dhkey_check:
-5f8a 680089af fetch 1 ,mem_master_sp_state 
-5f8b c005df8e beq sp_stat_confirm_send ,parse_dhkey_check_master 
-5f8c 680089ae fetch 1 ,mem_sp_state 
-5f8d c0845f9d bne sp_stat_confirm_recv ,parse_lmp_dhkey_check_reject 
-
-parse_dhkey_check_master:
-5f8e d8a00a5e arg mem_sp_check_result ,contw 
-5f8f d8c00552 arg mem_rxbuf + 1 ,contr 
-5f90 20407ebf call memcpy16 
-5f91 204062fc call check_localsm 
-5f92 2020df9a branch parse_dhkey_check_master0 ,true 
-5f93 6800c662 fetch 1 ,mem_ssp_mode_flag 
-5f94 c000df9f beq ssp_mode_ssp_pin_flag ,number_comparison_mode 
-
-number_comparison_successed:
-5f95 70466100 jam 0 ,mem_flag_mode_ssp_pin 
-5f96 7009ae09 jam sp_stat_confirm_check ,mem_sp_state 
-5f97 7009b001 jam sp_flag_commit ,mem_sp_flag 
-5f98 70007d41 jam lmp_dhkey_check ,mem_lmi_opcode2 
-5f99 20205d07 branch parse_rx_done 
-
-parse_dhkey_check_master0:
-5f9a 7009af09 jam sp_stat_confirm_check ,mem_master_sp_state 
-5f9b 7009b101 jam sp_flag_commit ,mem_master_sp_flag 
-5f9c 20205d07 branch parse_rx_done 
-
-parse_lmp_dhkey_check_reject:
-5f9d 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
-5f9e 20205d53 branch reject_lmp_packet 
-
-number_comparison_mode:
-5f9f 6800c661 fetch 1 ,mem_flag_mode_ssp_pin 
-5fa0 c283dfa4 bbit1 flag_mode_ssp_pin_reviceve_comparison_bit ,comparison_result 
-5fa1 79207e06 set1 flag_mode_ssp_pin_recieve_dhkey_bit ,pdata 
-5fa2 6000c661 store 1 ,mem_flag_mode_ssp_pin 
-5fa3 20600000 rtn 
-
-comparison_result:
-5fa4 c2805f95 bbit1 flag_mode_ssp_pin_comparison_result_bit ,number_comparison_successed 
-5fa5 70466100 jam 0 ,mem_flag_mode_ssp_pin 
-5fa6 20205f9d branch parse_lmp_dhkey_check_reject 
-
-parse_lmp_clkoffset_res:
-5fa7 20205d07 branch parse_rx_done 
-
-parse_lmp_encryption_mode_req:
-5fa8 6800816d fetch 1 ,mem_connection_options 
-5fa9 793ffe01 set0 connection_encrypt 
-5faa 6000816d store 1 ,mem_connection_options 
-5fab 20405e38 call accept_lmp_msg 
-5fac 24748000 nrtn master 
-5fad 68008552 fetch 1 ,mem_rxbuf + 1 
-5fae 6808804b fetcht 1 ,mem_op 
-5faf 793a0404 setflag blank ,op_stop_enc ,temp 
-5fb0 7d3a0405 nsetflag blank ,op_start_enc ,temp 
-5fb1 6008804b storet 1 ,mem_op 
-5fb2 20600000 rtn 
-
-parse_lmp_features_res:
-5fb3 680c0552 fetcht 8 ,mem_rxbuf + 1 
-
-parse_lmp_features_res_not_hci:
-5fb4 68008055 fetch 1 ,mem_conn_sm 
-5fb5 c1818000 rtnne conn_sm_wait_features_res 
-5fb6 6800816d fetch 1 ,mem_connection_options 
-5fb7 c3025fba bbit0 connection_feature_ext ,parse_lmp_send_conn 
-5fb8 70005514 jam conn_sm_send_features_ext ,mem_conn_sm 
-5fb9 20600000 rtn 
-
-parse_lmp_send_conn:
-5fba 70005504 jam conn_sm_send_conn_req ,mem_conn_sm 
-5fbb 20600000 rtn 
-
-parse_lmp_test_activate:
-5fbc 6800817f fetch 1 ,mem_debug_config 
-5fbd 6000815b store 1 ,mem_test_mode_old_debug_config 
-5fbe 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
-5fbf 70007d38 jam lmp_test_activate ,mem_lmi_opcode2 
-5fc0 20600000 rtn 
-
-parse_lmp_test_control:
-5fc1 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
-5fc2 70007d39 jam lmp_test_control ,mem_lmi_opcode2 
-5fc3 18007209 force 9 ,loopcnt 
-5fc4 d8c00552 arg mem_rxbuf + 1 ,contr 
-5fc5 d8a00152 arg mem_temp_payload ,contw 
-
-parse_lmp_test_xor:
-5fc6 e8c08000 ifetch 1 ,contr 
-5fc7 1fe2fe55 xor_into 0x55 ,pdata 
-5fc8 e0a08000 istore 1 ,contw 
-5fc9 c2005fc6 loop parse_lmp_test_xor 
-5fca 68008152 fetch 1 ,test_mode_scenario 
-5fcb 68088151 fetcht 1 ,mem_tester_emulate 
-5fcc 793f8407 set0 tester_no_whitening ,temp 
-5fcd 793f8404 set0 tester_pattern_test ,temp 
-5fce c07fdfda beq exit_test_mode ,parse_lmp_test_control_exit 
-5fcf c0005ff3 beq pause_test_mode ,parse_lmp_test_control_pause 
-5fd0 c002dfe7 beq closed_loop_back_acl ,parse_lmp_test_control_loopback 
-5fd1 c003dfe6 beq acl_without_whitening ,parse_lmp_test_control_loopback_nowhite 
-5fd2 c0035fe7 beq closed_loop_back_sco ,parse_lmp_test_control_loopback 
-5fd3 c0045fe6 beq sco_without_whitening ,parse_lmp_test_control_loopback_nowhite 
-5fd4 c000dfdf beq zero_pattern ,parse_lmp_test_control_pattern 
-5fd5 c0015fdf beq one_pattern ,parse_lmp_test_control_pattern 
-5fd6 c001dfdf beq alt_pattern ,parse_lmp_test_control_pattern 
-5fd7 c004dfdf beq alt2_pattern ,parse_lmp_test_control_pattern 
-5fd8 c0025fdf beq pseudorandom ,parse_lmp_test_control_pattern 
-5fd9 20600000 rtn 
-
-parse_lmp_test_control_exit:
-5fda 68008151 fetch 1 ,mem_tester_emulate 
-5fdb 79207e03 set1 tester_exit ,pdata 
-5fdc 79207e02 set1 tester_change ,pdata 
-5fdd 60008151 store 1 ,mem_tester_emulate 
-5fde 20600000 rtn 
-
-parse_lmp_test_control_pattern:
-5fdf 79200404 set1 tester_pattern_test ,temp 
-5fe0 70018005 jam 5 ,mem_lch_code 
-5fe1 68010159 fetch 2 ,test_mode_data_length 
-5fe2 98007200 iforce loopcnt 
-5fe3 6001015f store 2 ,mem_len 
-5fe4 d8a00551 arg mem_rxbuf ,contw 
-5fe5 20407f73 call pn9 
-
-parse_lmp_test_control_loopback_nowhite:
-5fe6 79200407 set1 tester_no_whitening ,temp 
-
-parse_lmp_test_control_loopback:
-5fe7 79200402 set1 tester_change ,temp 
-5fe8 18007e00 force 0 ,pdata 
-5fe9 6000800b store 1 ,mem_slave_rcvcnt 
-5fea 600100fa store 2 ,mem_tst_pktcnt_crc 
-5feb 600100fc store 2 ,mem_tst_pktcnt_dmh 
-5fec 600100f8 store 2 ,mem_tst_pktcnt_hec 
-5fed 600100f6 store 2 ,mem_tst_pktcnt_sync 
-5fee 68008153 fetch 1 ,test_mode_hopping_mode 
-5fef 2fe1fe00 compare fixed_freq ,pdata ,0xff 
-5ff0 79208406 setflag true ,tester_fixed_freq ,temp 
-5ff1 60088151 storet 1 ,mem_tester_emulate 
-5ff2 20600000 rtn 
-
-parse_lmp_test_control_pause:
-5ff3 793f8011 set0 mark_testmode ,mark 
-5ff4 70015100 jam 0 ,mem_tester_emulate 
-5ff5 6800817f fetch 1 ,mem_debug_config 
-5ff6 793ffe06 set0 debug_tx_pattern ,pdata 
-5ff7 6000817f store 1 ,mem_debug_config 
-5ff8 20600000 rtn 
-
-lmp_copy_rand:
-5ff9 d8c00552 arg mem_rxbuf + 1 ,contr 
-5ffa d8a00562 arg mem_random_number ,contw 
-5ffb 20207ebf branch memcpy16 
-
-lmp_generate_key:
-5ffc 70007c09 jam lmp_comb_key ,mem_lmo_opcode2 
-5ffd 20600000 rtn 
-
-lmp_start_encryption:
-5ffe 24748000 nrtn master 
-5fff 70007c11 jam lmp_start_encryption_req ,mem_lmo_opcode2 
-6000 20600000 rtn 
-
-lmp_accept_inrand:
-6001 da2040a0 arg mem_lap ,rega 
-6002 20407255 call generate_kinit 
-6003 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
-6004 70007d08 jam lmp_in_rand ,mem_lmi_opcode2 
-6005 20600000 rtn 
-
-lmp_disconnect:
-6006 7000720a jam 10 ,mem_conn_timer 
-6007 70007c07 jam lmp_detach ,mem_lmo_opcode2 
-6008 7004ca16 jam local_host ,mem_disconn_reason_send 
-6009 20600000 rtn 
-
-send_lmp:
-600a 47414030 bpatchx patch30_2 ,mem_patch30 
-600b 78547c00 disable user 
-600c 204062c1 call lmo_fifo_process 
-600d 68008048 fetch 1 ,mem_lmp_to_send 
-600e 207a0000 rtn blank 
-600f c283e03f bbit1 7 ,send_lmp_escape 
-
-send_lmp0:
-6010 c000e16f beq lmp_name_req ,send_lmp_name_req 
-6011 c00160e4 beq lmp_name_res ,send_lmp_name_res 
-6012 c001e04a beq lmp_accepted ,send_lmp_accepted 
-6013 c0026060 beq lmp_not_accepted ,send_lmp_not_accepted 
-6014 c013e1db beq lmp_features_req ,send_lmp_features_req 
-6015 c0146108 beq lmp_features_res ,send_lmp_features_res 
-6016 c01860f4 beq lmp_timing_accuracy_res ,send_lmp_timing_accuracy_res 
-6017 c012e1d6 beq lmp_version_req ,send_lmp_version_req 
-6018 c0136103 beq lmp_version_res ,send_lmp_version_res 
-6019 c018e1c3 beq lmp_setup_complete ,send_lmp_setup_complete 
-601a c01be16a beq lmp_supervision_timeout ,send_lmp_superto 
-601b c019e15c beq lmp_host_connection_req ,send_lmp_no_payload 
-601c c0046259 beq lmp_in_rand ,send_lmp_inrand 
-601d c004e24f beq lmp_comb_key ,send_lmp_comb_key 
-601e c005e264 beq lmp_au_rand ,send_lmp_aurand 
-601f c006626d beq lmp_sres ,send_lmp_sres 
-6020 c007e162 beq lmp_encryption_mode_req ,send_lmp_encryption_mode_req 
-6021 c0086292 beq lmp_encryption_key_size_req ,send_lmp_encryption_key_size_req 
-6022 c008e288 beq lmp_start_encryption_req ,send_lmp_start_encryption 
-6023 c003e152 beq lmp_detach ,send_lmp_detach 
-6024 c015617e beq lmp_quality_of_service_req ,send_lmp_quality_of_service_req 
-6025 c005617f beq lmp_unit_key ,send_lmp_unit_key 
-6026 c00fe1bc beq lmp_incr_power_req ,send_lmp_inc_power 
-6027 c00360f9 beq lmp_clkoffset_res ,send_lmp_clkoffset_res 
-6028 c010e15f beq lmp_max_power ,send_lmp_nopayload_reply 
-6029 c016e1b2 beq lmp_max_slot ,send_lmp_max_slot 
-602a c01761b7 beq lmp_max_slot_req ,send_lmp_max_slot_req 
-602b c011615f beq lmp_min_power ,send_lmp_nopayload_reply 
-602c c01a6180 beq lmp_slot_offset ,send_lmp_slot_offset 
-602d c009e195 beq lmp_switch_req ,send_lmp_switch_req 
-602e c00be1a4 beq lmp_sniff_req ,send_lmp_sniff_req 
-602f c009628f beq lmp_stop_encryption_req ,send_lmp_stop_encryption_req 
-6030 c017e1aa beq lmp_timing_accuracy_req ,send_lmp_timing_accuracy_req 
-6031 c00c61af beq lmp_unsniff_req ,send_lmp_unsniff_req 
-6032 c01ee1ff beq lmp_encapsulated_header ,send_lmp_encapsulated_header 
-6033 c01f620b beq lmp_encapsulated_payload ,send_lmp_encapsulated_payload 
-6034 c01fe21d beq lmp_simple_pairing_confirm ,send_lmp_simple_pairing_comfirm 
-6035 c0206227 beq lmp_simple_pairing_number ,send_lmp_simple_pairing_number 
-6036 c020e23c beq lmp_dhkey_check ,send_lmp_dhkey_check 
-6037 c011e24b beq lmp_auto_rate ,send_lmp_auto_rate 
-6038 c01de246 beq lmp_enc_key_size_mask_res ,send_lmp_enc_key_size_mask_res 
-6039 c002e24c beq lmp_clkoffset_req ,send_lmp_clkoffset_req 
-603a c014e24d beq lmp_quality_of_service ,send_lmp_quality_of_service 
-603b c01c624e beq lmp_test_activate ,send_lmp_test_activate 
-603c c01ce175 beq lmp_test_control ,send_lmp_test_control 
-
-send_lmp_error:
-603d 20202a8c branch assert 
-603e 20600000 rtn 
-
-send_lmp_escape:
-603f c040e06d beq lmp_ext_accepted ,send_lmpext_accepted 
-6040 c0426099 beq lmp_ext_features_res ,send_lmpext_features_res 
-6041 c0416076 beq lmp_not_accepted_ext ,send_lmpext_not_accepted 
-6042 c041e10d beq lmp_ext_features_req ,send_lmpext_features_req 
-6043 c045e118 beq lmp_packet_type_table_req ,send_lmpext_packet_type_table_req 
-6044 c04be14e beq lmp_pause_encryption_req ,send_lmpext_pause_encryption_req 
-6045 c04ce0d5 beq lmp_io_cap_req ,send_lmp_io_cap_req 
-6046 c04d60a4 beq lmp_io_cap_res ,send_lmpext_io_cap_res 
-6047 c04ae0da beq lmp_sniff_subrating_req ,send_lmpext_sniff_subrating_req 
-6048 c04b60db beq lmp_sniff_subrating_res ,send_lmpext_sniff_subrating_res 
-6049 20202a8c branch assert 
-
-send_lmp_accepted:
-604a 18007e02 force 2 ,pdata 
-604b 20406298 call msg_send_lmp 
-604c 68008049 fetch 1 ,mem_lmi_opcode 
-604d e0a08000 istore 1 ,contw 
-604e 204062a7 call send_lmp_follow 
-604f 4741c030 bpatchx patch30_3 ,mem_patch30 
-6050 68008049 fetch 1 ,mem_lmi_opcode 
-6051 c0046080 beq lmp_in_rand ,send_lmp_accepted_inrand 
-6052 c007e084 beq lmp_encryption_mode_req ,send_lmp_accepted_enc_mode 
-6053 c008608f beq lmp_encryption_key_size_req ,send_lmp_accepted_enc_key 
-6054 c00be05f beq lmp_sniff_req ,send_lmp_accept_sniff_req 
-6055 c019e092 beq lmp_host_connection_req ,send_lmp_accepted_connection 
-6056 c020e098 beq lmp_dhkey_check ,send_lmp_accept_dhkey_check 
-6057 c008e059 beq lmp_start_encryption_req ,send_create_conn_start_l2cap_timer_sm 
-6058 20600000 rtn 
-
-send_create_conn_start_l2cap_timer_sm:
-6059 68008055 fetch 1 ,mem_conn_sm 
-605a 207a0000 rtn blank 
-605b 7000551b jam conn_sm_wait_done ,mem_conn_sm 
-605c 5800000c setarg timer_enpt_waite 
-605d d8e00007 arg enpt_delay_timer ,queue 
-605e 20207f08 branch timer_init 
-
-send_lmp_accept_sniff_req:
-605f 202026c6 branch sniff_init 
-
-send_lmp_not_accepted:
-6060 18007e03 force 3 ,pdata 
-6061 20406298 call msg_send_lmp 
-6062 68008049 fetch 1 ,mem_lmi_opcode 
-6063 c005e068 beq lmp_au_rand ,send_not_accept_aurand 
-6064 e0a08000 istore 1 ,contw 
-6065 6800804a fetch 1 ,mem_lmo_reason 
-6066 e0a08000 istore 1 ,contw 
-6067 202062a7 branch send_lmp_follow 
-
-send_not_accept_aurand:
-6068 e0a08000 istore 1 ,contw 
-6069 6800804a fetch 1 ,mem_lmo_reason 
-606a e0a08000 istore 1 ,contw 
-606b d84004d5 arg mem_sres_tid ,temp 
-606c 202062e2 branch special_tid_store 
-
-send_lmpext_accepted:
-606d 18000e04 force 4 ,queue 
-606e 204062a0 call send_lmpext 
-606f 5800007f setarg lmp_escape 
-6070 e0a08000 istore 1 ,contw 
-6071 68008049 fetch 1 ,mem_lmi_opcode 
-6072 793ffe07 set0 7 ,pdata 
-6073 e0a08000 istore 1 ,contw 
-6074 68008049 fetch 1 ,mem_lmi_opcode 
-6075 202062a7 branch send_lmp_follow 
-
-send_lmpext_not_accepted:
-6076 18000e05 force 5 ,queue 
-6077 204062a0 call send_lmpext 
-6078 5800007f setarg lmp_escape 
-6079 e0a08000 istore 1 ,contw 
-607a 68008049 fetch 1 ,mem_lmi_opcode 
-607b 793ffe07 set0 7 ,pdata 
-607c e0a08000 istore 1 ,contw 
-607d 6800804a fetch 1 ,mem_lmo_reason 
-607e e0a08000 istore 1 ,contw 
-607f 202062a7 branch send_lmp_follow 
-
-send_lmp_accepted_inrand:
-6080 2040244f call clear_linkkey 
-6081 204062f3 call tid_check 
-6082 20608000 rtn true 
-6083 20205ffc branch lmp_generate_key 
-
-send_lmp_accepted_enc_mode:
-6084 6800804b fetch 1 ,mem_op 
-6085 c282e08b bbit1 op_start_enc ,send_lmp_accepted_enc_start 
-6086 c4020000 rtnbit0 op_stop_enc 
-6087 70007c12 jam lmp_stop_encryption_req ,mem_lmo_opcode2 
-6088 793ffe04 set0 op_stop_enc ,pdata 
-6089 204062eb call tid_reply 
-608a 2020608d branch send_lmp_accepted_enc_exit 
-
-send_lmp_accepted_enc_start:
-608b 70007c10 jam lmp_encryption_key_size_req ,mem_lmo_opcode2 
-608c 793ffe05 set0 op_start_enc ,pdata 
-
-send_lmp_accepted_enc_exit:
-608d 6000804b store 1 ,mem_op 
-608e 20600000 rtn 
-
-send_lmp_accepted_enc_key:
-608f 204062fc call check_localsm 
-6090 2020dffe branch lmp_start_encryption ,true 
-6091 20600000 rtn 
-
-send_lmp_accepted_connection:
-6092 70007c8b jam lmp_packet_type_table_req ,mem_lmo_opcode2 
-6093 680084d1 fetch 1 ,mem_lmp_conn_state 
-6094 79207e00 set1 received_conn_req ,pdata 
-6095 600084d1 store 1 ,mem_lmp_conn_state 
-6096 700a9901 jam bt_evt_bb_connected ,mem_fifo_temp 
-6097 20207d86 branch ui_ipc_send_event 
-
-send_lmp_accept_dhkey_check:
-6098 20600000 rtn 
-
-send_lmpext_features_res:
-6099 18000e0c force 12 ,queue 
-609a 204062a0 call send_lmpext 
-609b 58000001 setarg 0x01 
-609c e0a08000 istore 1 ,contw 
-609d 680104ce fetch 2 ,mem_lmpext_ssp_enable 
-609e e0a10000 istore 2 ,contw 
-609f 58000000 setarg 0 
-60a0 e0a18000 istore 3 ,contw 
-60a1 58000000 setarg 0x00 
-60a2 e0a20000 istore 4 ,contw 
-60a3 202062b0 branch send_lmp_reply 
-
-send_lmpext_io_cap_res:
-60a4 18000e05 force 5 ,queue 
-60a5 204062a0 call send_lmpext 
-60a6 6801c65b fetch 3 ,mem_sp_iocap_local 
-60a7 e0a18000 istore 3 ,contw 
-60a8 204062b0 call send_lmp_reply 
-60a9 70466501 jam flag_pairing_state_pairing ,mem_flag_pairing_state 
-60aa 6800c65b fetch 1 ,mem_sp_iocap_local 
-60ab c000e0b5 beq display_yesno ,responder_iocap_display_yesno 
-60ac c00160af beq keyboard_only ,responder_iocap_keyboard_only 
-60ad c001e0bb beq no_input_no_output ,responder_iocap_no_input_no_output 
-60ae 20600000 rtn 
-
-responder_iocap_keyboard_only:
-60af 6800c65e fetch 1 ,mem_sp_iocap_remote 
-60b0 c00060c7 beq display_only ,responder_iocap_keyboard_only_initiator_iocap_display_only 
-60b1 c000e0c7 beq display_yesno ,responder_iocap_keyboard_only_initiator_iocap_display_yesno 
-60b2 c00160c7 beq keyboard_only ,responder_iocap_keyboard_only_initiator_iocap_keyboard_only 
-60b3 c001e0c1 beq no_input_no_output ,responder_iocap_keyboard_only_initiator_iocap_no_input_no_output 
-60b4 20600000 rtn 
-
-responder_iocap_display_yesno:
-60b5 6800c65e fetch 1 ,mem_sp_iocap_remote 
-60b6 c00060c1 beq display_only ,responder_iocap_display_yesno_initiator_iocap_display_only 
-60b7 c000e0c5 beq display_yesno ,responder_iocap_display_yesno_initiator_iocap_display_yesno 
-60b8 c00160c7 beq keyboard_only ,responder_iocap_display_yesno_initiator_iocap_keyboard_only 
-60b9 c001e0c1 beq no_input_no_output ,responder_iocap_display_yesno_initiator_iocap_no_input_no_output 
-60ba 20600000 rtn 
-
-responder_iocap_no_input_no_output:
-60bb 6800c65e fetch 1 ,mem_sp_iocap_remote 
-60bc c00060c1 beq display_only ,responder_iocap_no_input_no_output_initiator_iocap_display_only 
-60bd c000e0c1 beq display_yesno ,responder_iocap_no_input_no_output_initiator_iocap_display_yesno 
-60be c00160c1 beq keyboard_only ,responder_iocap_no_input_no_output_initiator_iocap_keyboard_only 
-60bf c001e0c1 beq no_input_no_output ,responder_iocap_no_input_no_output_initiator_iocap_no_input_no_output 
-60c0 20600000 rtn 
-
-responder_iocap_keyboard_only_initiator_iocap_no_input_no_output:
-
-responder_iocap_display_yesno_initiator_iocap_no_input_no_output:
-
-responder_iocap_display_yesno_initiator_iocap_display_only:
-
-responder_iocap_no_input_no_output_initiator_iocap_display_only:
-
-responder_iocap_no_input_no_output_initiator_iocap_display_yesno:
-
-responder_iocap_no_input_no_output_initiator_iocap_keyboard_only:
-
-responder_iocap_no_input_no_output_initiator_iocap_no_input_no_output:
-
-set_ssp_mode_justwork:
-60c1 70466203 jam ssp_mode_just_work_flag ,mem_ssp_mode_flag 
-60c2 6800c55c fetch 1 ,mem_classic_bt_flag 
-60c3 c28033e9 bbit1 flag_ssp_reject_justwork ,app_bt_disconnect 
-60c4 20600000 rtn 
-
-responder_iocap_display_yesno_initiator_iocap_display_yesno:
-
-set_ssp_mode_numeric_comparison:
-60c5 70466201 jam ssp_mode_ssp_pin_flag ,mem_ssp_mode_flag 
-60c6 20600000 rtn 
-
-responder_iocap_keyboard_only_initiator_iocap_display_yesno:
-
-responder_iocap_keyboard_only_initiator_iocap_keyboard_only:
-
-responder_iocap_keyboard_only_initiator_iocap_display_only:
-
-responder_iocap_display_yesno_initiator_iocap_keyboard_only:
-
-set_ssp_mode_passkey:
-60c7 70466202 jam ssp_mode_passkey_entry_flag ,mem_ssp_mode_flag 
-60c8 20600000 rtn 
-
-classic_bt_set_reject_justwork_flag:
-60c9 d8e00000 arg flag_ssp_reject_justwork ,queue 
-60ca 202060cd branch classic_bluetooth_set_flag 
-
-classic_bt_clr_reject_justwork_flag:
-60cb d8e00000 arg flag_ssp_reject_justwork ,queue 
-60cc 202060d1 branch classic_bluetooth_clr_flag 
-
-classic_bluetooth_set_flag:
-60cd 6800c55c fetch 1 ,mem_classic_bt_flag 
-60ce f9207e00 qset1 pdata 
-60cf 6000c55c store 1 ,mem_classic_bt_flag 
-60d0 20600000 rtn 
-
-classic_bluetooth_clr_flag:
-60d1 6800c55c fetch 1 ,mem_classic_bt_flag 
-60d2 f93ffe00 qset0 pdata 
-60d3 6000c55c store 1 ,mem_classic_bt_flag 
-60d4 20600000 rtn 
-
-send_lmp_io_cap_req:
-60d5 18000e05 force 5 ,queue 
-60d6 204062a0 call send_lmpext 
-60d7 6801c65b fetch 3 ,mem_sp_iocap_local 
-60d8 e0a18000 istore 3 ,contw 
-60d9 202062b2 branch send_lmp_request 
-
-send_lmpext_sniff_subrating_req:
-60da 20600000 rtn 
-
-send_lmpext_sniff_subrating_res:
-60db 18000e09 force 9 ,queue 
-60dc 204062a0 call send_lmpext 
-60dd 68008095 fetch 1 ,mem_subsniff_rate 
-60de e0a08000 istore 1 ,contw 
-60df 68010096 fetch 2 ,mem_subsniff_tcmax 
-60e0 e0a10000 istore 2 ,contw 
-60e1 68020091 fetch 4 ,mem_subsniff_instant 
-60e2 e0a20000 istore 4 ,contw 
-60e3 202062b0 branch send_lmp_reply 
-
-send_lmp_name_res:
-60e4 18007e11 force 17 ,pdata 
-60e5 20406298 call msg_send_lmp 
-60e6 68008049 fetch 1 ,mem_lmi_opcode 
-60e7 1fe20400 copy pdata ,temp 
-60e8 c00060ec beq 0x00 ,send_lmp_name_res_offset_ok 
-60e9 c00760ec beq 0x0e ,send_lmp_name_res_offset_ok 
-60ea c00e60ec beq 0x1c ,send_lmp_name_res_offset_ok 
-60eb 20600000 rtn 
-
-send_lmp_name_res_offset_ok:
-60ec e0a08000 istore 1 ,contw 
-60ed 6800c515 fetch 1 ,mem_local_name_length 
-60ee e0a08000 istore 1 ,contw 
-60ef df20000e arg 14 ,loopcnt 
-60f0 58004516 setarg mem_local_name 
-60f1 98408c00 iadd temp ,contr 
-60f2 20407f01 call memcpy 
-60f3 202062b0 branch send_lmp_reply 
-
-send_lmp_timing_accuracy_res:
-60f4 18007e03 force 3 ,pdata 
-60f5 20406298 call msg_send_lmp 
-60f6 58000114 setarg 0x0114 
-60f7 e0a10000 istore 2 ,contw 
-60f8 202062b0 branch send_lmp_reply 
-
-send_lmp_clkoffset_res:
-60f9 18007e03 force 3 ,pdata 
-60fa 20406298 call msg_send_lmp 
-60fb 68020165 fetch 4 ,mem_clke_bt 
-60fc 9c467e00 isub clkn_bt ,pdata 
-60fd 2034e0ff branch send_lmp_clkoffset_res_master ,master 
-60fe 1fe67e00 sub pdata ,0 ,pdata 
-
-send_lmp_clkoffset_res_master:
-60ff 1feb7e00 rshift2 pdata ,pdata 
-6100 793ffe0f set0 15 ,pdata 
-6101 e0a10000 istore 2 ,contw 
-6102 202062b0 branch send_lmp_reply 
-
-send_lmp_version_res:
-6103 18007e06 force 6 ,pdata 
-6104 20406298 call msg_send_lmp 
-6105 6802c510 fetch 5 ,mem_lmp_version 
-6106 e0a28000 istore 5 ,contw 
-6107 202062b0 branch send_lmp_reply 
-
-send_lmp_features_res:
-6108 18007e09 force 9 ,pdata 
-6109 20406298 call msg_send_lmp 
-610a 68044098 fetch 8 ,mem_features 
-610b e0a40000 istore 8 ,contw 
-610c 202062b0 branch send_lmp_reply 
-
-send_lmpext_features_req:
-610d 18000e0c force 12 ,queue 
-610e 204062a0 call send_lmpext 
-610f 58000001 setarg 0x01 
-6110 e0a08000 istore 1 ,contw 
-6111 680104ce fetch 2 ,mem_lmpext_ssp_enable 
-6112 e0a10000 istore 2 ,contw 
-6113 58000000 setarg 0 
-6114 e0a18000 istore 3 ,contw 
-6115 58000000 setarg 0x00 
-6116 e0a20000 istore 4 ,contw 
-6117 202062b2 branch send_lmp_request 
-
-send_lmpext_packet_type_table_req:
-6118 18000e03 force 3 ,queue 
-6119 204062a0 call send_lmpext 
-611a 6800c15a fetch 1 ,mem_ptt 
-611b e0a08000 istore 1 ,contw 
-611c 78547c00 disable user 
-611d 204062b2 call send_lmp_request 
-611e 24740000 nrtn user 
-611f 24748000 nrtn master 
-6120 6800c0d8 fetch 1 ,mem_afh_cfg 
-6121 c4000000 rtnbit0 afh_cfg_on 
-6122 20406132 call afh_init 
-6123 2020613c branch afh_open_all_channels 
-
-ssp_enable:
-6124 47424030 bpatchx patch30_4 ,mem_patch30 
-6125 6800c09e fetch 1 ,mem_features + 6 
-6126 79207e03 set1 param_featrue_ssp ,pdata 
-6127 6000c09e store 1 ,mem_features + 6 
-6128 58000101 setarg param_lmpext_ssp_enable 
-6129 600104ce store 2 ,mem_lmpext_ssp_enable 
-612a 20600000 rtn 
-
-ssp_disable:
-612b 4742c030 bpatchx patch30_5 ,mem_patch30 
-612c 6800c09e fetch 1 ,mem_features + 6 
-612d 793ffe03 set0 param_featrue_ssp ,pdata 
-612e 6000c09e store 1 ,mem_features + 6 
-612f 58000000 setarg 0 
-6130 600104ce store 2 ,mem_lmpext_ssp_enable 
-6131 20600000 rtn 
-
-afh_init:
-6132 7040d803 jam 0x3 ,mem_afh_cfg 
-6133 58000000 setarg 0 
-6134 60024142 store 4 ,mem_afh_timer 
-6135 d8a040da arg mem_afh_map_lo ,contw 
-6136 20406140 call afh_reset_map 
-6137 d8a040e7 arg mem_afh_map_new ,contw 
-6138 20406140 call afh_reset_map 
-6139 d8a04146 arg mem_afh_classify_channel_map ,contw 
-613a 20406140 call afh_reset_map 
-613b 20206147 branch afh_clear_error_counter 
-
-afh_open_all_channels:
-613c d8a040e7 arg mem_afh_map_new ,contw 
-613d 20406140 call afh_reset_map 
-613e 20406147 call afh_clear_error_counter 
-613f 2020614a branch afh_set_send_flag 
-
-afh_reset_map:
-6140 58ffffff setarg 0xffffff 
-6141 e0a18000 istore 3 ,contw 
-6142 e0a18000 istore 3 ,contw 
-6143 e0a18000 istore 3 ,contw 
-6144 5800007f setarg 0x7f 
-6145 e0a08000 istore 1 ,contw 
-6146 20600000 rtn 
-
-afh_clear_error_counter:
-6147 58000000 setarg 0 
-6148 600140d6 store 2 ,mem_afh_error_total 
-6149 20600000 rtn 
-
-afh_set_send_flag:
-614a 6800c0d8 fetch 1 ,mem_afh_cfg 
-614b 79207e02 set1 send_lmp_set_afh ,pdata 
-614c 6000c0d8 store 1 ,mem_afh_cfg 
-614d 20600000 rtn 
-
-send_lmpext_pause_encryption_req:
-614e 18000e02 force 2 ,queue 
-614f 204062a0 call send_lmpext 
-6150 2434e2b0 nbranch send_lmp_reply ,master 
-6151 202062b2 branch send_lmp_request 
-
-send_lmp_detach:
-6152 18007e02 force 2 ,pdata 
-6153 20406298 call msg_send_lmp 
-6154 680084ca fetch 1 ,mem_disconn_reason_send 
-6155 e0a08000 istore 1 ,contw 
-6156 204062b2 call send_lmp_request 
-
-prepare_disconnect:
-6157 6800804b fetch 1 ,mem_op 
-6158 79207e03 set1 op_disconn ,pdata 
-6159 6000804b store 1 ,mem_op 
-615a 70007232 jam 50 ,mem_conn_timer 
-615b 20600000 rtn 
-
-send_lmp_no_payload:
-615c 18007e01 force 1 ,pdata 
-615d 20406298 call msg_send_lmp 
-615e 202062b2 branch send_lmp_request 
-
-send_lmp_nopayload_reply:
-615f 18007e01 force 1 ,pdata 
-6160 20406298 call msg_send_lmp 
-6161 202062b0 branch send_lmp_reply 
-
-send_lmp_encryption_mode_req:
-6162 18007e02 force 2 ,pdata 
-6163 20406298 call msg_send_lmp 
-6164 6800804c fetch 1 ,mem_state_map 
-6165 2fec0002 isolate0 smap_encryption ,pdata 
-6166 7920fe00 setflag true ,0 ,pdata 
-6167 1fe17e01 and_into 1 ,pdata 
-6168 e0a08000 istore 1 ,contw 
-6169 202062b2 branch send_lmp_request 
-
-send_lmp_superto:
-616a 18007e03 force 3 ,pdata 
-616b 20406298 call msg_send_lmp 
-616c 68010051 fetch 2 ,mem_supervision_to 
-616d e0a10000 istore 2 ,contw 
-616e 202062b2 branch send_lmp_request 
-
-send_lmp_name_req:
-616f 700072fa jam 250 ,mem_conn_timer 
-6170 18007e02 force 2 ,pdata 
-6171 20406298 call msg_send_lmp 
-6172 68008053 fetch 1 ,mem_name_offset 
-6173 e0a08000 istore 1 ,contw 
-6174 202062b2 branch send_lmp_request 
-
-send_lmp_test_control:
-6175 18007e0a force 10 ,pdata 
-6176 20406298 call msg_send_lmp 
-6177 d8c00152 arg mem_temp_payload ,contr 
-6178 18007209 force 9 ,loopcnt 
-
-send_lmp_test_control_loop:
-6179 e8c08000 ifetch 1 ,contr 
-617a 1fe2fe55 xor_into 0x55 ,pdata 
-617b e0a08000 istore 1 ,contw 
-617c c2006179 loop send_lmp_test_control_loop 
-617d 202062b2 branch send_lmp_request 
-
-send_lmp_quality_of_service_req:
-617e 202062b2 branch send_lmp_request 
-
-send_lmp_unit_key:
-617f 202062b2 branch send_lmp_request 
-
-send_lmp_slot_offset:
-6180 20748000 rtn master 
-6181 2040282d call calc_slot_offset 
-6182 18007e09 force 9 ,pdata 
-6183 20406298 call msg_send_lmp 
-6184 68010171 fetch 2 ,mem_slot_offset 
-6185 e0a10000 istore 2 ,contw 
-6186 6801c0a0 fetch 3 ,mem_lap 
-6187 e0a18000 istore 3 ,contw 
-6188 6800c0a3 fetch 1 ,mem_uap 
-6189 e0a08000 istore 1 ,contw 
-618a 680140a4 fetch 2 ,mem_nap 
-618b e0a10000 istore 2 ,contw 
-618c c581e191 bmark0 mark_switch_initiated ,send_lmp_slot_offset_reply 
-618d 793f8003 set0 mark_switch_initiated ,mark 
-618e 204062b2 call send_lmp_request 
-618f 70007c13 jam lmp_switch_req ,mem_lmo_opcode2 
-6190 20600000 rtn 
-
-send_lmp_slot_offset_reply:
-6191 204062b0 call send_lmp_reply 
-6192 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
-6193 70007d13 jam lmp_switch_req ,mem_lmi_opcode2 
-6194 20600000 rtn 
-
-send_lmp_switch_req:
-6195 d8400200 arg 0x200 ,temp 
-6196 2034e199 branch switch_on_native ,master 
-6197 1d027e00 deposit clke_bt 
-6198 2020619a branch switch_slack 
-
-switch_on_native:
-6199 1c427e00 deposit clkn_bt 
-
-switch_slack:
-619a 1c227e00 deposit bt_clk 
-619b 9840fe00 iadd temp ,pdata 
-619c 1fe17ffc and_into 0x1fc ,pdata 
-619d 60020034 store 4 ,mem_sniff_anchor 
-619e 18007e05 force 5 ,pdata 
-619f 20406298 call msg_send_lmp 
-61a0 68020034 fetch 4 ,mem_sniff_anchor 
-61a1 1fe37e00 rshift pdata ,pdata 
-61a2 e0a20000 istore 4 ,contw 
-61a3 202062b2 branch send_lmp_request 
-
-send_lmp_sniff_req:
-61a4 18007e0a force 10 ,pdata 
-61a5 20406298 call msg_send_lmp 
-61a6 d8c004d9 arg mem_sniff_payload ,contr 
-61a7 e8c48000 ifetch 9 ,contr 
-61a8 e0a48000 istore 9 ,contw 
-61a9 202062b2 branch send_lmp_request 
-
-send_lmp_timing_accuracy_req:
-61aa 18007e03 force 3 ,pdata 
-61ab 20406298 call msg_send_lmp 
-61ac 58000114 setarg 0x0114 
-61ad e0a10000 istore 2 ,contw 
-61ae 202062b2 branch send_lmp_request 
-
-send_lmp_unsniff_req:
-61af 18007e01 force 1 ,pdata 
-61b0 20406298 call msg_send_lmp 
-61b1 202062b2 branch send_lmp_request 
-
-send_lmp_max_slot:
-61b2 18007e02 force 2 ,pdata 
-61b3 20406298 call msg_send_lmp 
-61b4 6800c0d0 fetch 1 ,mem_max_slot 
-61b5 e0a08000 istore 1 ,contw 
-61b6 202062b2 branch send_lmp_request 
-
-send_lmp_max_slot_req:
-61b7 18007e02 force 2 ,pdata 
-61b8 20406298 call msg_send_lmp 
-61b9 58000005 setarg 0x05 
-61ba e0a08000 istore 1 ,contw 
-61bb 202062b2 branch send_lmp_request 
-
-send_lmp_inc_power:
-61bc 18007e02 force 2 ,pdata 
-61bd 20406298 call msg_send_lmp 
-61be 58000000 setarg 0x00 
-61bf e0a08000 istore 1 ,contw 
-61c0 202062b2 branch send_lmp_request 
-
-send_lmp_setup_complete_by_module:
-61c1 70007c2e jam lmp_max_slot_req ,mem_lmo_opcode2 
-61c2 20600000 rtn 
-
-send_lmp_setup_complete:
-61c3 6800c092 fetch 1 ,mem_device_option 
-61c4 1fe67c0a sub pdata ,dvc_op_module ,null 
-61c5 2042e1c1 call send_lmp_setup_complete_by_module ,zero 
-61c6 68008030 fetch 1 ,mem_state 
-61c7 79207e04 set1 state_conn_comp ,pdata 
-61c8 60008030 store 1 ,mem_state 
-61c9 1c427e00 copy clkn_bt ,pdata 
-61ca 600204e9 store 4 ,mem_aurand_send_delay_time 
-61cb 680084d1 fetch 1 ,mem_lmp_conn_state 
-61cc c281e1d4 bbit1 sent_setup_complete ,send_lmp_setup_complete_has_sent 
-61cd 79207e03 set1 sent_setup_complete ,pdata 
-61ce 600084d1 store 1 ,mem_lmp_conn_state 
-61cf 700a9905 jam bt_evt_setup_complete ,mem_fifo_temp 
-61d0 20407d86 call ui_ipc_send_event 
-61d1 18007e01 force 1 ,pdata 
-61d2 20406298 call msg_send_lmp 
-61d3 202062b2 branch send_lmp_request 
-
-send_lmp_setup_complete_has_sent:
-61d4 70004800 jam 0 ,mem_lmp_to_send 
-61d5 20600000 rtn 
-
-send_lmp_version_req:
-61d6 18007e06 force 6 ,pdata 
-61d7 20406298 call msg_send_lmp 
-61d8 6802c510 fetch 5 ,mem_lmp_version 
-61d9 e0a28000 istore 5 ,contw 
-61da 202062b2 branch send_lmp_request 
-
-send_lmp_features_req:
-61db 18007e09 force 9 ,pdata 
-61dc 20406298 call msg_send_lmp 
-61dd 68044098 fetch 8 ,mem_features 
-61de e0a40000 istore 8 ,contw 
-61df 202062b2 branch send_lmp_request 
-
-sp_master_send_io_cap_get:
-61e0 7009b101 jam sp_flag_commit ,mem_master_sp_flag 
-61e1 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
-61e2 c1808000 rtnne sp_key_valid 
-61e3 7009af13 jam sp_master_stat_start_done ,mem_master_sp_state 
-61e4 20600000 rtn 
-
-sp_master_send_io_cap_send:
-61e5 204062ef call tid_initiate 
-61e6 70007c99 jam lmp_io_cap_req ,mem_lmo_opcode2 
-61e7 7009af03 jam sp_stat_key_send ,mem_master_sp_state 
-61e8 20600000 rtn 
-
-sp_master_send_lmp_encapsulated_header:
-61e9 204062ef call tid_initiate 
-61ea 70007c3d jam lmp_encapsulated_header ,mem_lmo_opcode2 
-61eb 7009af07 jam sp_stat_random_send ,mem_master_sp_state 
-61ec 20600000 rtn 
-
-sp_master_commitment_compare:
-61ed da200a4e arg mem_sp_calc_result_high ,rega 
-61ee da400a6e arg mem_sp_confirm_remote ,regb 
-61ef df200010 arg 16 ,loopcnt 
-61f0 20407f88 call string_compare 
-61f1 2022e1f7 branch sp_master_commitment_compare_success ,zero 
-61f2 7009af00 jam sp_stat_null ,mem_master_sp_state 
-61f3 204076da call master_clear_mem_master_sp_flag 
-61f4 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
-61f5 70007d40 jam lmp_simple_pairing_number ,mem_lmi_opcode2 
-61f6 20205d53 branch reject_lmp_packet 
-
-sp_master_commitment_compare_success:
-61f7 7009af0a jam sp_stat_confirm_calc ,mem_master_sp_state 
-61f8 204076d8 call master_set_mem_master_sp_flag 
-61f9 70007d40 jam lmp_simple_pairing_number ,mem_lmi_opcode2 
-61fa 20205e38 branch accept_lmp_msg 
-
-sp_master_send_lmp_simple_pairing_number:
-61fb 70007c40 jam lmp_simple_pairing_number ,mem_lmo_opcode2 
-61fc 20600000 rtn 
-
-sp_send_lmp_encapsulated_header:
-61fd 70007c3d jam lmp_encapsulated_header ,mem_lmo_opcode2 
-61fe 20600000 rtn 
-
-send_lmp_encapsulated_header:
-61ff 7009b600 jam 0 ,mem_sp_local_key_send_count 
-6200 18007e04 force 4 ,pdata 
-6201 20406298 call msg_send_lmp 
-6202 18007e01 force encapsulated_major_type_p192 ,pdata 
-6203 e0a08000 istore 1 ,contw 
-6204 18007e01 force encapsulated_minor_type_p192 ,pdata 
-6205 e0a08000 istore 1 ,contw 
-6206 18007e30 force encapsulated_len_p192 ,pdata 
-6207 e0a08000 istore 1 ,contw 
-6208 204062fc call check_localsm 
-6209 2020e2b2 branch send_lmp_request ,true 
-620a 202062b0 branch send_lmp_reply 
-
-send_lmp_encapsulated_payload:
-620b 18007e11 force 17 ,pdata 
-620c 20406298 call msg_send_lmp 
-620d 680089b6 fetch 1 ,mem_sp_local_key_send_count 
-620e d8c0462a arg mem_sp_pubkey_local ,contr 
-620f 98c08c00 iadd contr ,contr 
-6210 e8c40000 ifetch 8 ,contr 
-6211 e0a40000 istore 8 ,contw 
-6212 e8c40000 ifetch 8 ,contr 
-6213 e0a40000 istore 8 ,contw 
-6214 680089b6 fetch 1 ,mem_sp_local_key_send_count 
-6215 1fe0fe10 increase 16 ,pdata 
-6216 600089b6 store 1 ,mem_sp_local_key_send_count 
-6217 204062fc call check_localsm 
-6218 2020e2b2 branch send_lmp_request ,true 
-6219 202062b0 branch send_lmp_reply 
-
-sp_send_lmp_simple_pairing_comfirm:
-621a 7009ae06 jam sp_stat_random_recv ,mem_sp_state 
-621b 70007c3f jam lmp_simple_pairing_confirm ,mem_lmo_opcode2 
-621c 20600000 rtn 
-
-send_lmp_simple_pairing_comfirm:
-621d 18007e11 force 17 ,pdata 
-621e 20406298 call msg_send_lmp 
-621f d8c00a4e arg mem_sp_calc_result_high ,contr 
-6220 e8c40000 ifetch 8 ,contr 
-6221 e0a40000 istore 8 ,contw 
-6222 e8c40000 ifetch 8 ,contr 
-6223 e0a40000 istore 8 ,contw 
-6224 202062b0 branch send_lmp_reply 
-
-sp_send_lmp_simple_pairing_number:
-6225 70007c40 jam lmp_simple_pairing_number ,mem_lmo_opcode2 
-6226 20600000 rtn 
-
-send_lmp_simple_pairing_number:
-6227 204062fc call check_localsm 
-6228 2040f612 call sp_local_random_key_generator ,true 
-6229 18007e11 force 17 ,pdata 
-622a 20406298 call msg_send_lmp 
-622b d8c00a1e arg mem_sp_random_local ,contr 
-622c e8c40000 ifetch 8 ,contr 
-622d e0a40000 istore 8 ,contw 
-622e e8c40000 ifetch 8 ,contr 
-622f e0a40000 istore 8 ,contw 
-6230 204062fc call check_localsm 
-6231 2420e2b0 nbranch send_lmp_reply ,true 
-6232 2020e2b2 branch send_lmp_request ,true 
-
-master_sp_sm_end:
-6233 7009af0f jam sp_stat_done ,mem_master_sp_state 
-
-sp_aurand_send:
-6234 204062ef call tid_initiate 
-6235 70007c0b jam lmp_au_rand ,mem_lmo_opcode2 
-6236 20406307 call check_localsm_master 
-6237 2020f64e branch sp_master_key_prarm_push ,true 
-6238 20207658 branch sp_link_key_prarm_push 
-
-master_sp_send_lmp_dhkey_check:
-6239 204062eb call tid_reply 
-
-sp_send_lmp_dhkey_check:
-623a 70007c41 jam lmp_dhkey_check ,mem_lmo_opcode2 
-623b 20600000 rtn 
-
-send_lmp_dhkey_check:
-623c 18007e11 force 17 ,pdata 
-623d 20406298 call msg_send_lmp 
-623e d8c00a4e arg mem_sp_calc_result_high ,contr 
-623f e8c40000 ifetch 8 ,contr 
-6240 e0a40000 istore 8 ,contw 
-6241 e8c40000 ifetch 8 ,contr 
-6242 e0a40000 istore 8 ,contw 
-6243 204062fc call check_localsm 
-6244 2420e2b0 nbranch send_lmp_reply ,true 
-6245 2020e2b2 branch send_lmp_request ,true 
-
-send_lmp_enc_key_size_mask_res:
-6246 18007e03 force 3 ,pdata 
-6247 20406298 call msg_send_lmp 
-6248 5800fffe setarg 0xfffe 
-6249 e0a10000 istore 2 ,contw 
-624a 202062b0 branch send_lmp_reply 
-
-send_lmp_auto_rate:
-624b 202062b2 branch send_lmp_request 
-
-send_lmp_clkoffset_req:
-624c 202062b2 branch send_lmp_request 
-
-send_lmp_quality_of_service:
-624d 202062b2 branch send_lmp_request 
-
-send_lmp_test_activate:
-624e 202062b2 branch send_lmp_request 
-
-send_lmp_comb_key:
-624f 2040630b call generate_random_number 
-6250 da2040a0 arg mem_lap ,rega 
-6251 20406311 call generate_linkkey 
-6252 18007e11 force 17 ,pdata 
-6253 20406298 call msg_send_lmp 
-6254 da200582 arg mem_kinit ,rega 
-6255 da400562 arg mem_random_number ,regb 
-6256 20407352 call xor16 
-6257 2434e2a7 nbranch send_lmp_follow ,master 
-6258 202062ad branch send_lmp_tid 
-
-send_lmp_inrand:
-6259 2040630b call generate_random_number 
-625a da200040 arg mem_plap ,rega 
-625b 20407255 call generate_kinit 
-
-send_lmp_rand:
-625c 18007e11 force 17 ,pdata 
-625d 20406298 call msg_send_lmp 
-625e d8c00562 arg mem_random_number ,contr 
-625f 20407ebf call memcpy16 
-6260 68008055 fetch 1 ,mem_conn_sm 
-6261 c00ce2b2 beq conn_sm_auth_wait ,send_lmp_request 
-6262 c00c62b2 beq conn_sm_pairing_wait ,send_lmp_request 
-6263 202062ad branch send_lmp_tid 
-
-send_lmp_aurand:
-6264 680089b5 fetch 1 ,mem_pairing_auth 
-6265 203a626a branch send_lmp_aurand_notpairing ,blank 
-6266 204062fc call check_localsm 
-6267 2040e2ef call tid_initiate ,true 
-6268 2440e2eb ncall tid_reply ,true 
-6269 2020626b branch send_lmp_aurand_common 
-
-send_lmp_aurand_notpairing:
-626a 204062ef call tid_initiate 
-
-send_lmp_aurand_common:
-626b 2040630b call generate_random_number 
-626c 2020625c branch send_lmp_rand 
-
-send_lmp_sres:
-626d da2040a0 arg mem_lap ,rega 
-626e 20407288 call function_e1 
-626f 18007e05 force 5 ,pdata 
-6270 20406298 call msg_send_lmp 
-6271 68020592 fetch 4 ,mem_input_store 
-6272 e0a20000 istore 4 ,contw 
-6273 d84004d5 arg mem_sres_tid ,temp 
-6274 204062e2 call special_tid_store 
-6275 20407386 call copy_aco 
-6276 204062fc call check_localsm 
-6277 2020e27c branch send_lmp_sres_master ,true 
-6278 7004d801 jam done_encryp ,mem_wait_encryption 
-6279 680089b5 fetch 1 ,mem_pairing_auth 
-627a 207a0000 rtn blank 
-627b 70007c0b jam lmp_au_rand ,mem_lmo_opcode2 
-
-send_lmp_sres_master:
-627c 6800c1bd fetch 1 ,mem_link_key_exists 
-627d 207a0000 rtn blank 
-
-send_lmp_sres_startenc:
-627e 204062fc call check_localsm 
-627f 2420e284 nbranch send_lmp_sres_startenc_slave ,true 
-6280 680084d7 fetch 1 ,mem_auth_enable 
-6281 207a0000 rtn blank 
-6282 70007c0f jam lmp_encryption_mode_req ,mem_lmo_opcode2 
-6283 20600000 rtn 
-
-send_lmp_sres_startenc_slave:
-6284 c6908000 rtnmark0 mark_slave_in_rand_accepted 
-6285 793f8021 set0 mark_slave_in_rand_accepted ,mark 
-6286 70007c0f jam lmp_encryption_mode_req ,mem_lmo_opcode2 
-6287 20600000 rtn 
-
-send_lmp_start_encryption:
-6288 2040630b call generate_random_number 
-6289 2040728b call function_e3 
-628a 18007e11 force 17 ,pdata 
-628b 20406298 call msg_send_lmp 
-628c d8c00562 arg mem_random_number ,contr 
-628d 20407ebf call memcpy16 
-628e 202062ad branch send_lmp_tid 
-
-send_lmp_stop_encryption_req:
-628f 18007e01 force 1 ,pdata 
-6290 20406298 call msg_send_lmp 
-6291 202062ad branch send_lmp_tid 
-
-send_lmp_encryption_key_size_req:
-6292 18007e02 force 2 ,pdata 
-6293 20406298 call msg_send_lmp 
-6294 18007e10 force 16 ,pdata 
-6295 e0a08000 istore 1 ,contw 
-6296 60008054 store 1 ,mem_key_size 
-6297 202062ad branch send_lmp_tid 
-
-msg_send_lmp:
-6298 1fe9fe00 lshift3 pdata ,pdata 
-6299 1fe1fe07 or_into 0x07 ,pdata 
-629a 600084b6 store 1 ,mem_lmo_header_length 
-629b df200011 arg 17 ,loopcnt 
-629c d8a004b8 arg mem_lmo_payload ,contw 
-629d 20407ed4 call clear_mem 
-629e d8a004b8 arg mem_lmo_payload ,contw 
-629f 20600000 rtn 
-
-send_lmpext:
-62a0 1fe1227f and pdata ,0x7f ,rega 
-62a1 7000487f jam lmp_escape ,mem_lmp_to_send 
-62a2 18e27e00 deposit queue 
-62a3 20406298 call msg_send_lmp 
-62a4 1a227e00 deposit rega 
-62a5 e0a08000 istore 1 ,contw 
-62a6 20600000 rtn 
-
-send_lmp_follow:
-62a7 68008048 fetch 1 ,mem_lmp_to_send 
-62a8 1fe3fe00 lshift pdata ,pdata 
-62a9 6808804c fetcht 1 ,mem_state_map 
-62aa 284ffe01 isolate1 smap_lmptid ,temp 
-62ab 7920fe00 setflag true ,0 ,pdata 
-62ac 202062b7 branch send_lmp_exit 
-
-send_lmp_tid:
-62ad 6808804c fetcht 1 ,mem_state_map 
-62ae 18410401 and_into 1 ,temp 
-62af 202062b3 branch send_lmp_end 
-
-send_lmp_reply:
-62b0 18000400 force 0 ,temp 
-62b1 202062b3 branch send_lmp_end 
-
-send_lmp_request:
-62b2 18000401 force 1 ,temp 
-
-send_lmp_end:
-62b3 68008048 fetch 1 ,mem_lmp_to_send 
-62b4 1fe3fe00 lshift pdata ,pdata 
-62b5 7934fe00 setflag master ,0 ,pdata 
-62b6 9842fe00 ixor temp ,pdata 
-
-send_lmp_exit:
-62b7 600084b7 store 1 ,mem_lmo_header_opcode 
-62b8 70004800 jam 0 ,mem_lmp_to_send 
-62b9 204062c7 call lmo_fifo_process_lmo0empty 
-62ba 78347c00 enable user 
-62bb 20600000 rtn 
-
-lmo_fifo_check:
-62bc 6800807c fetch 1 ,mem_lmo_opcode2 
-62bd 207a0000 rtn blank 
-62be 204062c1 call lmo_fifo_process 
-62bf 6800807c fetch 1 ,mem_lmo_opcode2 
-62c0 20600000 rtn 
-
-lmo_fifo_process:
-62c1 47434030 bpatchx patch30_6 ,mem_patch30 
-62c2 68008048 fetch 1 ,mem_lmp_to_send 
-62c3 203a62c7 branch lmo_fifo_process_lmo0empty ,blank 
-62c4 68008078 fetch 1 ,mem_lmo_opcode1 
-62c5 247a0000 nrtn blank 
-62c6 202062d1 branch lmo_fifo_process_lmo2to1 
-
-lmo_fifo_process_lmo0empty:
-62c7 68008078 fetch 1 ,mem_lmo_opcode1 
-62c8 203a62d7 branch lmo_fifo_process_lmo1_empty ,blank 
-62c9 68018078 fetch 3 ,mem_lmo_opcode1 
-62ca 60018048 store 3 ,mem_lmp_to_send 
-62cb 6808807b fetcht 1 ,mem_lmo_tid1 
-62cc 6800804c fetch 1 ,mem_state_map 
-62cd 793ffe01 set0 smap_lmptid ,pdata 
-62ce 9841fe00 ior temp ,pdata 
-62cf 6000804c store 1 ,mem_state_map 
-62d0 70007800 jam 0 ,mem_lmo_opcode1 
-
-lmo_fifo_process_lmo2to1:
-62d1 6800807c fetch 1 ,mem_lmo_opcode2 
-62d2 207a0000 rtn blank 
-62d3 6802007c fetch 4 ,mem_lmo_opcode2 
-62d4 60020078 store 4 ,mem_lmo_opcode1 
-62d5 70007c00 jam 0 ,mem_lmo_opcode2 
-62d6 20600000 rtn 
-
-lmo_fifo_process_lmo1_empty:
-62d7 6800807c fetch 1 ,mem_lmo_opcode2 
-62d8 207a0000 rtn blank 
-62d9 6801807c fetch 3 ,mem_lmo_opcode2 
-62da 60018048 store 3 ,mem_lmp_to_send 
-62db 6808807f fetcht 1 ,mem_lmo_tid2 
-62dc 6800804c fetch 1 ,mem_state_map 
-62dd 793ffe01 set0 smap_lmptid ,pdata 
-62de 9841fe00 ior temp ,pdata 
-62df 6000804c store 1 ,mem_state_map 
-62e0 70007c00 jam 0 ,mem_lmo_opcode2 
-62e1 20600000 rtn 
-
-special_tid_store:
-62e2 4743c030 bpatchx patch30_7 ,mem_patch30 
-62e3 6800804c fetch 1 ,mem_state_map 
-62e4 1fe22600 copy pdata ,regc 
-62e5 e8408000 ifetch 1 ,temp 
-62e6 20405e52 call pop_tid_follow 
-62e7 204062a7 call send_lmp_follow 
-62e8 1a627e00 copy regc ,pdata 
-62e9 6000804c store 1 ,mem_state_map 
-62ea 20600000 rtn 
-
-tid_reply:
-62eb 6808804c fetcht 1 ,mem_state_map 
-62ec 793f8400 set0 smap_lmptidinit ,temp 
-62ed 6008804c storet 1 ,mem_state_map 
-62ee 20600000 rtn 
-
-tid_initiate:
-62ef 6808804c fetcht 1 ,mem_state_map 
-62f0 79200400 set1 smap_lmptidinit ,temp 
-62f1 6008804c storet 1 ,mem_state_map 
-62f2 20600000 rtn 
-
-tid_check:
-62f3 7d34fe01 nsetflag master ,smap_lmptid ,pdata 
-62f4 6808804c fetcht 1 ,mem_state_map 
-62f5 9842fe00 ixor temp ,pdata 
-62f6 2feffe01 isolate1 smap_lmptid ,pdata 
-62f7 20600000 rtn 
-
-tid_set_reply:
-62f8 6800804c fetch 1 ,mem_state_map 
-62f9 7934fe01 setflag master ,smap_lmptid ,pdata 
-62fa 6000804c store 1 ,mem_state_map 
-62fb 20600000 rtn 
-
-check_localsm:
-62fc 680089b4 fetch 1 ,mem_sp_localsm 
-62fd 2fe0fe01 compare local_statemachine ,pdata ,0x7f 
-62fe 20600000 rtn 
-
-setlocalsm_master:
-62ff 680089b4 fetch 1 ,mem_sp_localsm 
-6300 79207e07 set1 7 ,pdata 
-6301 600089b4 store 1 ,mem_sp_localsm 
-6302 20600000 rtn 
-
-setlocalsm_slave:
-6303 680089b4 fetch 1 ,mem_sp_localsm 
-6304 793ffe07 set0 7 ,pdata 
-6305 600089b4 store 1 ,mem_sp_localsm 
-6306 20600000 rtn 
-
-check_localsm_master:
-6307 680089b4 fetch 1 ,mem_sp_localsm 
-6308 2feffe07 isolate1 7 ,pdata 
-6309 600089b4 store 1 ,mem_sp_localsm 
-630a 20600000 rtn 
-
-generate_random_number:
-630b d8a00562 arg mem_random_number ,contw 
-
-generate_random:
-630c 18007210 force 16 ,loopcnt 
-
-generate_random_another:
-
-generate_random_loop:
-630d 180a7e00 random pdata 
-630e e0a08000 istore 1 ,contw 
-630f c200630d loop generate_random_another 
-6310 20600000 rtn 
-
-generate_linkkey:
-6311 20407259 call function_e21 
-6312 da2041be arg mem_link_key ,rega 
-6313 da400592 arg mem_input_store ,regb 
-6314 ea240000 ifetch 8 ,rega 
-6315 68088030 fetcht 1 ,mem_state 
-6316 7d3a0406 nsetflag blank ,state_combkey ,temp 
-6317 60088030 storet 1 ,mem_state 
-6318 1a220a00 copy rega ,contw 
-6319 20407352 call xor16 
-631a 202021c4 branch generate_linkkey_continue 
-
-process_conn_sm:
-631b 47444031 bpatchx patch31_0 ,mem_patch31 
-631c 204062bc call lmo_fifo_check 
-631d 247a0000 nrtn blank 
-
-process_conn_sm_continue:
-631e 68008055 fetch 1 ,mem_conn_sm 
-631f 207a0000 rtn blank 
-6320 c002636f beq conn_sm_send_conn_req ,host_create_conn_send_conn_req 
-6321 c002e374 beq conn_sm_wait_conn_accept ,host_create_conn_wait_accept 
-6322 c0016366 beq conn_sm_send_features ,host_create_conn_send_features 
-6323 c001e37c beq conn_sm_wait_features_res ,host_create_conn_waiting 
-6324 c0076369 beq conn_sm_send_switch ,host_create_conn_send_switch 
-6325 c0036398 beq conn_sm_auth_pair ,host_create_conn_auth_pair 
-6326 c003e3b0 beq conn_sm_auth_pair_wait ,host_create_conn_auth_pair_wait 
-6327 c004e3b1 beq conn_sm_encrypt ,host_create_conn_encrypt 
-6328 c00563ba beq conn_sm_encrypt_wait ,host_create_conn_encrypt_wait 
-6329 c005e3be beq conn_sm_encrypt_wait_clear ,host_create_conn_encrypt_wait_clear 
-632a c0066386 beq conn_sm_send_setup_complete ,host_create_conn_send_setup_complete 
-632b c006e389 beq conn_sm_wait_setup_complete ,host_create_conn_wait_setup_complete 
-632c c007e38f beq conn_sm_detach_delay ,host_create_conn_master_detach 
-632d c0096359 beq conn_sm_send_version ,host_create_conn_send_version 
-632e c009e37c beq conn_sm_wait_version ,host_create_conn_waiting 
-632f c008635c beq conn_sm_wait_switch_after_host_connection ,host_creat_conn_wait_switch 
-6330 c00a6356 beq conn_sm_send_features_ext ,host_creat_conn_send_feat_ext 
-6331 c00ae37c beq conn_sm_wait_features_ext ,host_create_conn_waiting 
-6332 c00b6350 beq conn_sm_pairing ,host_create_conn_pairing 
-6333 c00c6355 beq conn_sm_pairing_wait ,host_create_conn_pairing_wait 
-6334 c00be349 beq conn_sm_auth ,host_create_conn_auth 
-6335 c00ce34f beq conn_sm_auth_wait ,host_create_conn_auth_wait 
-6336 c00d633a beq conn_sm_done ,host_create_conn_done 
-6337 c00de344 beq conn_sm_wait_done ,host_create_conn_done_wait 
-6338 70005500 jam conn_sm_standby ,mem_conn_sm 
-6339 20600000 rtn 
-
-host_create_conn_done:
-633a 680084d1 fetch 1 ,mem_lmp_conn_state 
-633b c4010000 rtnbit0 received_setup_complete 
-633c c4018000 rtnbit0 sent_setup_complete 
-633d 70005500 jam conn_sm_standby ,mem_conn_sm 
-633e 20406340 call host_conn_judge_encrypt 
-633f 20206cef branch scheduler_start_upper_sm 
-
-host_conn_judge_encrypt:
-6340 6800816d fetch 1 ,mem_connection_options 
-6341 c4008000 rtnbit0 connection_encrypt 
-6342 7000550a jam conn_sm_encrypt_wait ,mem_conn_sm 
-6343 20600000 rtn 
-
-host_create_conn_done_wait:
-6344 d8e00007 arg enpt_delay_timer ,queue 
-6345 20407f16 call timer_check 
-6346 247a0000 nrtn blank 
-6347 7000551a jam conn_sm_done ,mem_conn_sm 
-6348 20600000 rtn 
-
-host_create_conn_auth:
-6349 6800816d fetch 1 ,mem_connection_options 
-634a 793ffe00 set0 connection_auth ,pdata 
-634b 6000816d store 1 ,mem_connection_options 
-634c 70005519 jam conn_sm_auth_wait ,mem_conn_sm 
-634d 70007c0b jam lmp_au_rand ,mem_lmo_opcode2 
-634e 20600000 rtn 
-
-host_create_conn_auth_wait:
-634f 20600000 rtn 
-
-host_create_conn_pairing:
-6350 680084d4 fetch 1 ,mem_pincode_state 
-6351 c1810000 rtnne pincode_state_pincode_ready 
-6352 204063c0 call host_auth 
-6353 70005518 jam conn_sm_pairing_wait ,mem_conn_sm 
-6354 20600000 rtn 
-
-host_create_conn_pairing_wait:
-6355 20600000 rtn 
-
-host_creat_conn_send_feat_ext:
-6356 70005515 jam conn_sm_wait_features_ext ,mem_conn_sm 
-6357 70007c83 jam lmp_ext_features_req ,mem_lmo_opcode2 
-6358 20600000 rtn 
-
-host_create_conn_send_version:
-6359 70005513 jam conn_sm_wait_version ,mem_conn_sm 
-635a 70007c25 jam lmp_version_req ,mem_lmo_opcode2 
-635b 20600000 rtn 
-
-host_creat_conn_wait_switch:
-635c 6800c55b fetch 1 ,mem_switch_flag 
-635d c1000000 rtneq switch_flag_init 
-635e c000e364 beq switch_flag_accept ,host_create_conn_switch_accept 
-635f d8e00006 arg switch_wait_timer ,queue 
-6360 20407f16 call timer_check 
-6361 247a0000 nrtn blank 
-6362 70455b00 jam switch_flag_init ,mem_switch_flag 
-6363 2020637d branch host_create_conn_switch 
-
-host_create_conn_switch_accept:
-6364 20748000 rtn master 
-6365 20206398 branch host_create_conn_auth_pair 
-
-host_create_conn_send_features:
-6366 70005503 jam conn_sm_wait_features_res ,mem_conn_sm 
-6367 70007c27 jam lmp_features_req ,mem_lmo_opcode2 
-6368 20600000 rtn 
-
-host_create_conn_send_switch:
-6369 70007c13 jam lmp_switch_req ,mem_lmo_opcode2 
-636a 79200003 set1 mark_switch_initiated ,mark 
-636b 70005505 jam conn_sm_wait_conn_accept ,mem_conn_sm 
-636c 580001ff setarg 0x1ff 
-636d 600104d2 store 2 ,mem_soft_timer 
-636e 20600000 rtn 
-
-host_create_conn_send_conn_req:
-636f 70005505 jam conn_sm_wait_conn_accept ,mem_conn_sm 
-6370 7004d2ff jam 0xff ,mem_soft_timer 
-6371 793f8022 set0 mark_reconn_recieve_switch ,mark 
-6372 70007c33 jam lmp_host_connection_req ,mem_lmo_opcode2 
-6373 20205d04 branch init_lmp_reinit 
-
-host_create_conn_wait_accept:
-6374 c6110000 rtnmark1 mark_reconn_recieve_switch 
-6375 680104d2 fetch 2 ,mem_soft_timer 
-6376 1fe67e01 sub pdata ,1 ,pdata 
-6377 2022e37a branch host_create_conn_resend ,zero 
-6378 600104d2 store 2 ,mem_soft_timer 
-6379 20600000 rtn 
-
-host_create_conn_resend:
-637a 7000550e jam conn_sm_send_switch ,mem_conn_sm 
-637b 20600000 rtn 
-
-host_create_conn_waiting:
-637c 20600000 rtn 
-
-host_create_conn_switch:
-637d 680084d1 fetch 1 ,mem_lmp_conn_state 
-637e c4018000 rtnbit0 sent_setup_complete 
-637f c4010000 rtnbit0 received_setup_complete 
-6380 6800816d fetch 1 ,mem_connection_options 
-6381 793ffe02 set0 connection_switch ,pdata 
-6382 6000816d store 1 ,mem_connection_options 
-6383 70007c13 jam lmp_switch_req ,mem_lmo_opcode2 
-6384 70005510 jam conn_sm_wait_switch_after_host_connection ,mem_conn_sm 
-6385 20600000 rtn 
-
-host_create_conn_send_setup_complete:
-6386 7000550d jam conn_sm_wait_setup_complete ,mem_conn_sm 
-6387 70007c31 jam lmp_setup_complete ,mem_lmo_opcode2 
-6388 20600000 rtn 
-
-host_create_conn_wait_setup_complete:
-6389 680084d1 fetch 1 ,mem_lmp_conn_state 
-638a c4010000 rtnbit0 received_setup_complete 
-638b 70005500 jam conn_sm_standby ,mem_conn_sm 
-638c 20600000 rtn 
-
-host_create_conn_wait_setup_complete_rtn:
-638d 70005506 jam conn_sm_auth_pair ,mem_conn_sm 
-638e 20600000 rtn 
-
-host_create_conn_master_detach:
-638f 680084d2 fetch 1 ,mem_soft_timer 
-6390 1fe0ffff increase -1 ,pdata 
-6391 203a6394 branch host_create_conn_send_detach ,blank 
-6392 600084d2 store 1 ,mem_soft_timer 
-6393 20600000 rtn 
-
-host_create_conn_send_detach:
-6394 70007c07 jam lmp_detach ,mem_lmo_opcode2 
-6395 7004ca16 jam local_host ,mem_disconn_reason_send 
-6396 70005500 jam 0 ,mem_conn_sm 
-6397 20600000 rtn 
-
-host_create_conn_auth_pair:
-6398 6800816d fetch 1 ,mem_connection_options 
-6399 c281637d bbit1 connection_switch ,host_create_conn_switch 
-639a c280639d bbit1 connection_auth ,host_create_conn_auth_pair_true 
-
-host_create_conn_sm_done:
-639b 7000551a jam conn_sm_done ,mem_conn_sm 
-639c 20600000 rtn 
-
-host_create_conn_auth_pair_true:
-639d 6800c1bd fetch 1 ,mem_link_key_exists 
-639e 203a63a9 branch host_create_conn_auth_pair_nokey ,blank 
-639f 680084d1 fetch 1 ,mem_lmp_conn_state 
-63a0 c4018000 rtnbit0 sent_setup_complete 
-63a1 c4010000 rtnbit0 received_setup_complete 
-63a2 680204e9 fetch 4 ,mem_aurand_send_delay_time 
-63a3 d8400064 arg 100 ,temp 
-63a4 98408400 iadd temp ,temp 
-63a5 1c427e00 copy clkn_bt ,pdata 
-63a6 98467c00 isub temp ,null 
-63a7 24610000 nrtn positive 
-63a8 20206349 branch host_create_conn_auth 
-
-host_create_conn_auth_pair_nokey:
-63a9 70005516 jam conn_sm_pairing ,mem_conn_sm 
-63aa 70468904 jam 4 ,mem_pin_length 
-63ab 58003030 setarg 0x3030 
-63ac 6001468a store 2 ,mem_pin 
-63ad e0a10000 istore 2 ,contw 
-63ae 7004d402 jam pincode_state_pincode_ready ,mem_pincode_state 
-63af 20206350 branch host_create_conn_pairing 
-
-host_create_conn_auth_pair_wait:
-63b0 20600000 rtn 
-
-host_create_conn_encrypt:
-63b1 6800816d fetch 1 ,mem_connection_options 
-63b2 c280e3b5 bbit1 connection_encrypt ,host_create_conn_encrypt_start 
-63b3 7000551a jam conn_sm_done ,mem_conn_sm 
-63b4 20600000 rtn 
-
-host_create_conn_encrypt_start:
-63b5 6800816d fetch 1 ,mem_connection_options 
-63b6 793ffe01 set0 connection_encrypt ,pdata 
-63b7 6000816d store 1 ,mem_connection_options 
-63b8 70007c0f jam lmp_encryption_mode_req ,mem_lmo_opcode2 
-63b9 20600000 rtn 
-
-host_create_conn_encrypt_wait:
-63ba 680084d8 fetch 1 ,mem_wait_encryption 
-63bb 207a0000 rtn blank 
-63bc 70005500 jam conn_sm_standby ,mem_conn_sm 
-63bd 202063b5 branch host_create_conn_encrypt_start 
-
-host_create_conn_encrypt_wait_clear:
-63be 7000550c jam conn_sm_send_setup_complete ,mem_conn_sm 
-63bf 20600000 rtn 
-
-host_auth:
-63c0 6800804b fetch 1 ,mem_op 
-63c1 c28163c5 bbit1 op_inrand_req ,remote_auth 
-63c2 204062ef call tid_initiate 
-63c3 70007c08 jam lmp_in_rand ,mem_lmo_opcode2 
-63c4 20204d04 branch cmd_exit 
-
-remote_auth:
-63c5 6800804b fetch 1 ,mem_op 
-63c6 793ffe02 set0 op_inrand_req ,pdata 
-63c7 6000804b store 1 ,mem_op 
-63c8 20406001 call lmp_accept_inrand 
-63c9 204062f8 call tid_set_reply 
-63ca 20204d04 branch cmd_exit 
-
-pincode_reinit:
-63cb 58000004 setarg 4 
-63cc 6000c689 store 1 ,mem_pin_length 
-63cd 58003030 setarg 0x3030 
-63ce e0a10000 istore 2 ,contw 
-63cf e0a10000 istore 2 ,contw 
-63d0 20600000 rtn 
-
-twspi_reset:
-63d1 47464031 bpatchx patch31_4 ,mem_patch31 
-63d2 68108073 hfetch 1 ,core_gpio_oe3 
-63d3 d8400006 arg 0x06 ,temp 
-63d4 9841fe00 ior temp ,pdata 
-63d5 60108073 hstore 1 ,core_gpio_oe3 
-63d6 68108077 hfetch 1 ,core_gpio_out3 
-63d7 9841fe00 ior temp ,pdata 
-63d8 60108077 hstore 1 ,core_gpio_out3 
-63d9 204063ee call twspi_disable 
-63da 68108077 hfetch 1 ,core_gpio_out3 
-63db 793ffe01 set0 1 ,pdata 
-63dc 793ffe02 set0 2 ,pdata 
-63dd 60108077 hstore 1 ,core_gpio_out3 
-63de 2000001e nop 30 
-63df 202063f2 branch twspi_enable 
-
-twspi_reset2:
-63e0 68108073 hfetch 1 ,core_gpio_oe3 
-63e1 d84000c0 arg 0xc0 ,temp 
-63e2 9841fe00 ior temp ,pdata 
-63e3 60108073 hstore 1 ,core_gpio_oe3 
-63e4 68108077 hfetch 1 ,core_gpio_out3 
-63e5 9841fe00 ior temp ,pdata 
-63e6 60108077 hstore 1 ,core_gpio_out3 
-63e7 204063ee call twspi_disable 
-63e8 68108077 hfetch 1 ,core_gpio_out3 
-63e9 793ffe06 set0 6 ,pdata 
-63ea 793ffe07 set0 7 ,pdata 
-63eb 60108077 hstore 1 ,core_gpio_out3 
-63ec 2000001e nop 30 
-63ed 202063f6 branch twspi_enable2 
-
-twspi_disable:
-63ee 68108081 hfetch 1 ,core_gpio_sel1 
-63ef 1fe17efc and pdata ,0xfc ,pdata 
-63f0 60108081 hstore 1 ,core_gpio_sel1 
-63f1 20600000 rtn 
-
-twspi_enable:
-63f2 68108081 hfetch 1 ,core_gpio_sel1 
-63f3 1fe1fe01 or pdata ,0x01 ,pdata 
-63f4 60108081 hstore 1 ,core_gpio_sel1 
-63f5 20600000 rtn 
-
-twspi_enable2:
-63f6 68108081 hfetch 1 ,core_gpio_sel1 
-63f7 1fe1fe03 or pdata ,0x03 ,pdata 
-63f8 793ffe04 set0 4 ,pdata 
-63f9 60108081 hstore 1 ,core_gpio_sel1 
-63fa 20600000 rtn 
-
-sensor_read:
-63fb 1fe22400 copy pdata ,regb 
-63fc 2040640f call spi_ncs_enable 
-63fd 20000064 nop 100 
-63fe 1a427e00 copy regb ,pdata 
-63ff 20406414 call twspi_read 
-6400 1fe22400 copy pdata ,regb 
-6401 20406411 call spi_ncs_disable 
-6402 20000064 nop 100 
-6403 1a427e00 copy regb ,pdata 
-6404 20600000 rtn 
-
-sensor_write:
-6405 1fe22400 copy pdata ,regb 
-6406 2040640f call spi_ncs_enable 
-6407 20000064 nop 100 
-6408 1a427e00 copy regb ,pdata 
-6409 20406413 call twspi_write 
-640a 20406411 call spi_ncs_disable 
-640b 20000064 nop 100 
-640c 20600000 rtn 
-
-spi_ncs_gpio_init:
-640d 6808c214 fetcht 1 ,mem_spi_ncs_gpio 
-640e 2020680e branch gpio_config_output 
-
-spi_ncs_enable:
-640f 6808c214 fetcht 1 ,mem_spi_ncs_gpio 
-6410 20206829 branch gpio_out_active 
-
-spi_ncs_disable:
-6411 6808c214 fetcht 1 ,mem_spi_ncs_gpio 
-6412 20206825 branch gpio_out_inactive 
-
-twspi_write:
-6413 202064ec branch spid_write_reg 
-
-twspi_read:
-6414 202064f3 branch spid_read_reg 
-
-read_function_aes:
-6415 24346419 nbranch read_function ,user 
-6416 68108085 hfetch 1 ,core_gpio_key2 
-6417 1fe1fe02 or_into 0x2 ,pdata 
-6418 60108085 hstore 1 ,core_gpio_key2 
-
-read_function:
-6419 18427c00 copy temp ,null 
-641a 2022e41c branch read_fuction_zero ,zero 
-641b 1a627a00 copy regc ,pc 
-
-read_fuction_zero:
-641c 2fcc0000 isolate0 0 ,null 
-641d 202064b9 branch set_ucode_status 
-
-get_block_header:
-641e 18000404 force 4 ,temp 
-
-get_block_header0:
-641f da2001fe arg mem_ucode_buf ,rega 
-6420 68108085 hfetch 1 ,core_gpio_key2 
-6421 1fe17efd and_into 0xfd ,pdata 
-6422 60108085 hstore 1 ,core_gpio_key2 
-6423 20406419 call read_function 
-6424 da2055aa arg 0x55aa ,rega 
-6425 680101fe fetch 2 ,mem_ucode_buf 
-6426 e8c90000 ifetcht 2 ,contr 
-6427 9a267c00 isub rega ,null 
-6428 20600000 rtn 
-
-read_first_block:
-6429 d8400002 arg 2 ,temp 
-642a da200204 arg mem_ucode_ptr ,rega 
-642b 20406419 call read_function 
-642c 68010204 fetch 2 ,mem_ucode_ptr 
-642d 600101f7 store 2 ,mem_addr_mi 
-642e 20546430 call get_iv ,user 
-642f 20600000 rtn 
-
-get_iv:
-6430 d8400010 arg 16 ,temp 
-6431 da200206 arg mem_ucode_keybuf ,rega 
-6432 68108085 hfetch 1 ,core_gpio_key2 
-6433 1fe17efd and_into 0xfd ,pdata 
-6434 60108085 hstore 1 ,core_gpio_key2 
-6435 20406419 call read_function 
-6436 d8c00206 arg mem_ucode_keybuf ,contr 
-6437 df200010 arg 16 ,loopcnt 
-6438 20407478 call aes_load_data 
-6439 20407428 call aes_init 
-643a 20407491 call aes_clear_data 
-643b 20207422 branch do_aes_cbc 
-
-load_storage:
-643c 7856fc00 disable match 
-643d 2040641e call get_block_header 
-643e 24628000 nrtn zero 
-643f 7836fc00 enable match 
-6440 70802380 jam 0x80 ,core_ucode_ctrl 
-6441 70802200 jam 0 ,core_ucode_hi 
-6442 70802400 jam 0 ,core_ucode_low 
-6443 da208025 arg core_ucode_data ,rega 
-6444 20406415 call read_function_aes 
-6445 70802300 jam 0x0 ,core_ucode_ctrl 
-
-load_storage_loop:
-6446 d8400006 arg 6 ,temp 
-6447 2040641f call get_block_header0 
-6448 24628000 nrtn zero 
-6449 e8c10000 ifetch 2 ,contr 
-644a 98002200 iforce rega 
-644b 20406419 call read_function 
-644c 20206446 branch load_storage_loop 
-
-reload_eeprom:
-644d 20407f99 call clean_mem 
-644e 58001000 setarg 0x1000 
-644f 600101f7 store 2 ,mem_addr_mi 
-6450 da6065e5 arg iicd_read_eep ,regc 
-6451 df200002 arg 2 ,loopcnt 
-
-reload_eeprom_loop:
-6452 2040641e call get_block_header 
-6453 24628000 nrtn zero 
-6454 680101f7 fetch 2 ,mem_addr_mi 
-6455 1ff0fe00 byteswap pdata ,pdata 
-6456 9840fe00 iadd temp ,pdata 
-6457 1ff0fe00 byteswap pdata ,pdata 
-6458 600101f7 store 2 ,mem_addr_mi 
-6459 c2006452 loop reload_eeprom_loop 
-645a 20206446 branch load_storage_loop 
-
-loadcode:
-645b 20407f99 call clean_mem 
-645c 78547c00 disable user 
-645d 2040666a call otp_enable_chgpump 
-645e 58000000 setarg otp_ucode_flag 
-645f da2001f3 arg mem_otp_ucode_flag ,rega 
-6460 d8400002 arg 2 ,temp 
-6461 204066b3 call otpd_read_data 
-6462 680101f3 fetch 2 ,mem_otp_ucode_flag 
-6463 c303e46e bbit0 otp_uflag_aes ,loadcode_otp 
-6464 70805025 jam 0x25 ,core_clkoff 
-6465 580007f0 setarg otp_ucode_aeskey 
-6466 da200206 arg mem_ucode_keybuf ,rega 
-6467 d8400010 arg 16 ,temp 
-6468 204066b3 call otpd_read_data 
-6469 70800608 jam lock_otp ,core_misc_ctrl 
-646a 7920002b set1 mark_otp_encrypt ,mark 
-646b d8c00206 arg mem_ucode_keybuf ,contr 
-646c 20407484 call load_key 
-646d 78347c00 enable user 
-
-loadcode_otp:
-646e 7041da00 jam 0 ,mem_loadcode_times 
-
-loadcode_otp_2:
-646f 204064b0 call loadcode_check_times 
-6470 680101f3 fetch 2 ,mem_otp_ucode_flag 
-6471 1ff0fe00 byteswap pdata ,pdata 
-6472 d84007ff arg 0x7ff ,temp 
-6473 98417e00 iand temp ,pdata 
-6474 2022e47b branch loadcode_iic ,zero 
-6475 2040666f call otp_set_addr 
-6476 da6066b8 arg otpd_read_code ,regc 
-6477 20546430 call get_iv ,user 
-6478 2040643c call load_storage 
-6479 680081f2 fetch 1 ,mem_ucode_status 
-647a c300646f bbit0 0 ,loadcode_otp_2 
-
-loadcode_iic:
-647b 2040666d call otp_disable_chgpump 
-647c 7041da00 jam 0 ,mem_loadcode_times 
-
-loadcode_iic_2:
-647d 204064b0 call loadcode_check_times 
-647e 204065c2 call clear_eeprom_size_2k 
-647f 680081f3 fetch 1 ,mem_otp_ucode_flag 
-6480 c283648e bbit1 otp_uflag_skip_eep ,loadcode_spi 
-6481 204064aa call loadcode_iic_by_eeprom 
-6482 2436e486 nbranch loadcode_iic_eeprom_2k ,match 
-6483 680081f2 fetch 1 ,mem_ucode_status 
-6484 c300647d bbit0 0 ,loadcode_iic_2 
-6485 2020649b branch loadcode_hci 
-
-loadcode_iic_eeprom_2k:
-6486 204065bf call set_eeprom_size_2k 
-6487 680081f3 fetch 1 ,mem_otp_ucode_flag 
-6488 c283648e bbit1 otp_uflag_skip_eep ,loadcode_spi 
-6489 204064aa call loadcode_iic_by_eeprom 
-648a 2436e48e nbranch loadcode_spi ,match 
-648b 680081f2 fetch 1 ,mem_ucode_status 
-648c c300647d bbit0 0 ,loadcode_iic_2 
-648d 2020649b branch loadcode_hci 
-
-loadcode_spi:
-648e 7041da00 jam 0 ,mem_loadcode_times 
-
-loadcode_spi_2:
-648f 204064b0 call loadcode_check_times 
-6490 680081f3 fetch 1 ,mem_otp_ucode_flag 
-6491 c282e49b bbit1 otp_uflag_skip_flash ,loadcode_hci 
-6492 58000000 setarg 0x0 
-6493 600181f6 store 3 ,mem_addr_hi 
-6494 20406502 call spid_init_flash 
-6495 da606578 arg spid_load_flash ,regc 
-6496 20406429 call read_first_block 
-6497 2040643c call load_storage 
-6498 2436e49b nbranch loadcode_hci ,match 
-6499 680081f2 fetch 1 ,mem_ucode_status 
-649a c300648f bbit0 0 ,loadcode_spi_2 
-
-loadcode_hci:
-649b c515e49d bmark1 mark_otp_encrypt ,loadcode_hci_enc 
-649c 204064a3 call clear_key_buf 
-
-loadcode_hci_enc:
-649d 680081f3 fetch 1 ,mem_otp_ucode_flag 
-649e c30264a3 bbit0 otp_uflag_hci ,clear_key_buf 
-649f 70805021 jam 0x21 ,core_clkoff 
-64a0 20404c0e call hci_init 
-
-loadcode_hci_loop:
-64a1 20404c2e call hci_rx_packet 
-64a2 202064a1 branch loadcode_hci_loop 
-
-clear_key_buf:
-64a3 58000000 setarg 0 
-64a4 60040206 store 8 ,mem_ucode_keybuf 
-64a5 6004020e store 8 ,mem_ucode_keybuf + 8 
-64a6 18007004 force regidx_key ,regext_index 
-64a7 20407492 call aes_clear 
-64a8 70805021 jam 0x21 ,core_clkoff 
-64a9 20600000 rtn 
-
-loadcode_iic_by_eeprom:
-64aa 58000000 setarg 0x0 
-64ab 600101f7 store 2 ,mem_addr_mi 
-64ac da6065e5 arg iicd_read_eep ,regc 
-64ad 204065a3 call iicd_init_12m 
-64ae 20406429 call read_first_block 
-64af 2020643c branch load_storage 
-
-loadcode_check_times:
-64b0 6800c1da fetch 1 ,mem_loadcode_times 
-64b1 1fe0fe01 increase 1 ,pdata 
-64b2 1fe67c03 sub pdata ,3 ,null 
-64b3 242164b6 nbranch loadcode_error ,positive 
-64b4 6000c1da store 1 ,mem_loadcode_times 
-64b5 20600000 rtn 
-
-loadcode_error:
-64b6 204064a3 call clear_key_buf 
-64b7 20407fa1 call ice_break 
-64b8 20600000 rtn 
-
-set_ucode_status:
-64b9 680081f2 fetch 1 ,mem_ucode_status 
-64ba 1fe3fe00 lshift pdata ,pdata 
-64bb 7920fe00 setflag true ,0 ,pdata 
-64bc 2a2c000f isolate0 15 ,rega 
-64bd 20608000 rtn true 
-64be 600081f2 store 1 ,mem_ucode_status 
-64bf 20600000 rtn 
-
-decrypt_code:
-64c0 68108085 hfetch 1 ,core_gpio_key2 
-64c1 c4008000 rtnbit0 1 
-64c2 202064c6 branch decrypt_code_skip 
-
-decrypt_code_loop:
-64c3 6810812c hfetch 1 ,core_dma_status 
-64c4 afefffff qisolate1 pdata 
-64c5 20608000 rtn true 
-
-decrypt_code_skip:
-64c6 68108108 hfetch 1 ,core_misc_status 
-64c7 c300e4c3 bbit0 1 ,decrypt_code_loop 
-64c8 20407422 call do_aes_cbc 
-64c9 202064c3 branch decrypt_code_loop 
-
-load_ucode:
-64ca 68014199 fetch 2 ,mem_patch_ptr 
-64cb 207a0000 rtn blank 
-64cc 70802380 jam 0x80 ,core_ucode_ctrl 
-64cd 70802200 jam 0 ,core_ucode_hi 
-64ce 70802400 jam 0 ,core_ucode_low 
-64cf 6809419b fetcht 2 ,mem_patch_len 
-64d0 184bf200 lshift2 temp ,loopcnt 
-64d1 98000c00 iforce contr 
-
-load_ucode_loop:
-64d2 e8c08000 ifetch 1 ,contr 
-64d3 60108025 hstore 1 ,core_ucode_data 
-64d4 c20064d2 loop load_ucode_loop 
-64d5 70802300 jam 0x0 ,core_ucode_ctrl 
-64d6 20600000 rtn 
-
-spid_init:
-64d7 4746c031 bpatchx patch31_5 ,mem_patch31 
-64d8 204064dd call spid_init_common 
-64d9 202063f2 branch twspi_enable 
-
-spid_init2:
-64da 204064dd call spid_init_common 
-64db 204063ee call twspi_disable 
-64dc 202063f6 branch twspi_enable2 
-
-spid_init_common:
-64dd 6800c212 fetch 1 ,mem_spi_init_clk 
-64de 60108086 hstore 1 ,core_spid_ctrl 
-64df 6800c213 fetch 1 ,mem_spi_init_delay_time 
-64e0 60108087 hstore 1 ,core_spid_delay 
-64e1 580001f5 setarg mem_spid_tbuf 
-64e2 6011008a hstore 2 ,core_spid_txaddr 
-64e3 580001fa setarg mem_spid_rbuf 
-64e4 6011008c hstore 2 ,core_spid_rxaddr 
-64e5 202063ee branch twspi_disable 
-
-spid_reset:
-64e6 68108086 hfetch 1 ,core_spid_ctrl 
-64e7 79207e07 set1 7 ,pdata 
-64e8 60108086 hstore 1 ,core_spid_ctrl 
-64e9 793ffe07 set0 7 ,pdata 
-64ea 60108086 hstore 1 ,core_spid_ctrl 
-64eb 20600000 rtn 
-
-spid_write_reg:
-64ec 79207e07 set1 7 ,pdata 
-64ed 600101f5 store 2 ,mem_spid_tbuf 
-64ee 47474031 bpatchx patch31_6 ,mem_patch31 
-64ef 70808802 jam 2 ,core_spid_txlen 
-64f0 70808e00 jam 0 ,core_spid_rxlen 
-64f1 70800602 jam spid_start ,core_misc_ctrl 
-64f2 202064fc branch wait_spid_done 
-
-spid_read_reg:
-64f3 18000401 force 1 ,temp 
-
-spid_read_regs:
-64f4 600081f5 store 1 ,mem_spid_tbuf 
-64f5 4747c031 bpatchx patch31_7 ,mem_patch31 
-64f6 70808801 jam 1 ,core_spid_txlen 
-64f7 6019008e hstoret 2 ,core_spid_rxlen 
-64f8 70800602 jam spid_start ,core_misc_ctrl 
-64f9 204064fc call wait_spid_done 
-64fa 680081fa fetch 1 ,mem_spid_rbuf 
-64fb 20600000 rtn 
-
-wait_spid_done:
-64fc 680140d6 fetch 2 ,mem_afh_error_total 
-64fd 1fe0fe01 increase 1 ,pdata 
-64fe 600140d6 store 2 ,mem_afh_error_total 
-64ff 6810812c hfetch 1 ,core_dma_status 
-6500 c301e4fc bbit0 spid_done ,wait_spid_done 
-6501 20600000 rtn 
-
-spid_init_flash:
-6502 70808640 jam 0x40 ,core_spid_ctrl 
-6503 70808700 jam 0x0 ,core_spid_delay 
-6504 68108081 hfetch 1 ,core_gpio_sel1 
-6505 793ffe00 set0 0 ,pdata 
-6506 79207e01 set1 1 ,pdata 
-6507 60108081 hstore 1 ,core_gpio_sel1 
-6508 58000000 setarg 0 
-6509 600201f5 store 4 ,mem_spid_tbuf 
-650a 20600000 rtn 
-
-spid_unlock_flash:
-650b 58000000 setarg 0 
-650c 6011008e hstore 2 ,core_spid_rxlen 
-650d 58000001 setarg 1 
-650e 60110088 hstore 2 ,core_spid_txlen 
-650f 580001f5 setarg mem_spid_tbuf 
-6510 6011008a hstore 2 ,core_spid_txaddr 
-6511 7001f506 jam 6 ,mem_spid_tbuf 
-6512 70800602 jam spid_start ,core_misc_ctrl 
-6513 202064fc branch wait_spid_done 
-
-flash_write:
-6514 78547c00 disable user 
-6515 1fe22400 copy pdata ,regb 
-6516 6800c239 fetch 1 ,mem_spi_write_flash_sm 
-6517 c1800000 rtnne flash_sm_no_buys 
-6518 78347c00 enable user 
-6519 1a427e00 copy regb ,pdata 
-651a 20206522 branch flash_write_start 
-
-flash_write_spi_sm_timer:
-651b 6800c239 fetch 1 ,mem_spi_write_flash_sm 
-651c c000e522 beq flash_sm_start ,flash_write_start 
-651d c0016528 beq flash_sm_erase_sector ,flash_erase_sector 
-651e c001e530 beq flash_sm_wait_erase_sector ,flash_wait_erase_sector 
-651f c0026537 beq flash_sm_write_data ,flash_write_data 
-6520 c002e53d beq flash_sm_wait_write_data ,flash_wait_write_data 
-6521 20600000 rtn 
-
-flash_write_start:
-6522 6001c232 store 3 ,mem_spi_write_addr 
-6523 1a227e00 copy rega ,pdata 
-6524 60014235 store 2 ,mem_spi_write_ptr 
-6525 60094237 storet 2 ,mem_spi_write_len 
-6526 70423902 jam flash_sm_erase_sector ,mem_spi_write_flash_sm 
-6527 20206502 branch spid_init_flash 
-
-flash_erase_sector:
-6528 20406502 call spid_init_flash 
-6529 70423903 jam flash_sm_wait_erase_sector ,mem_spi_write_flash_sm 
-652a 2040650b call spid_unlock_flash 
-652b da2001f5 arg mem_spid_tbuf ,rega 
-652c 6801c232 fetch 3 ,mem_spi_write_addr 
-652d 70808804 jam 4 ,core_spid_txlen 
-652e d8400020 arg flash_command_sector_erase ,temp 
-652f 20206556 branch spid_write_flash_common 
-
-flash_wait_erase_sector:
-6530 20406502 call spid_init_flash 
-6531 2040650b call spid_unlock_flash 
-6532 58000005 setarg flash_read_satus 
-6533 204064f3 call spid_read_reg 
-6534 c3800000 rtnbit1 flash_status_wip 
-6535 70423904 jam flash_sm_write_data ,mem_spi_write_flash_sm 
-6536 20600000 rtn 
-
-flash_write_data:
-6537 20406502 call spid_init_flash 
-6538 70423905 jam flash_sm_wait_write_data ,mem_spi_write_flash_sm 
-6539 2040650b call spid_unlock_flash 
-653a 2040654a call flash_data_preserve 
-653b 20406552 call spid_write_flash 
-653c 20206545 branch flash_data_recover 
-
-flash_wait_write_data:
-653d 20406502 call spid_init_flash 
-653e 2040650b call spid_unlock_flash 
-653f 58000005 setarg flash_read_satus 
-6540 204064f3 call spid_read_reg 
-6541 c3800000 rtnbit1 flash_status_wip 
-6542 70423900 jam flash_sm_no_buys ,mem_spi_write_flash_sm 
-6543 68014201 fetch 2 ,mem_cb_spi_flash_write_complate 
-6544 20207f9c branch callback_func 
-
-flash_data_recover:
-6545 68020aa2 fetch 4 ,mem_temp 
-6546 68094235 fetcht 2 ,mem_spi_write_ptr 
-6547 184085fc increase -4 ,temp 
-6548 e0420000 istore 4 ,temp 
-6549 20600000 rtn 
-
-flash_data_preserve:
-654a 68094235 fetcht 2 ,mem_spi_write_ptr 
-654b 18422200 copy temp ,rega 
-654c 184085fc increase -4 ,temp 
-654d e8420000 ifetch 4 ,temp 
-654e 60020aa2 store 4 ,mem_temp 
-654f 68094237 fetcht 2 ,mem_spi_write_len 
-6550 6801c232 fetch 3 ,mem_spi_write_addr 
-6551 20600000 rtn 
-
-spid_write_flash:
-6552 18408404 increase 4 ,temp 
-6553 60190088 hstoret 2 ,core_spid_txlen 
-6554 d8400002 arg flash_command_write_data ,temp 
-6555 1a20a3fc increase -4 ,rega 
-
-spid_write_flash_common:
-6556 e2288000 istoret 1 ,rega 
-6557 1ff10400 rshift16 pdata ,temp 
-6558 e0a88000 istoret 1 ,contw 
-6559 1fec8400 rshift8 pdata ,temp 
-655a e0a88000 istoret 1 ,contw 
-655b e0a08000 istore 1 ,contw 
-655c 1a227e00 deposit rega 
-655d 6011008a hstore 2 ,core_spid_txaddr 
-655e 58000000 setarg 0 
-655f 6011008e hstore 2 ,core_spid_rxlen 
-6560 70800602 jam spid_start ,core_misc_ctrl 
-6561 202064fc branch wait_spid_done 
-
-spid_read_flash:
-6562 6019008e hstoret 2 ,core_spid_rxlen 
-6563 1ff10400 rshift16 pdata ,temp 
-6564 600881f6 storet 1 ,mem_addr_hi 
-6565 1fec8400 rshift8 pdata ,temp 
-6566 600881f7 storet 1 ,mem_addr_mi 
-6567 600081f8 store 1 ,mem_addr_lo 
-6568 58000004 setarg 4 
-6569 60110088 hstore 2 ,core_spid_txlen 
-656a 7001f503 jam flash_command_read_data ,mem_spid_tbuf 
-656b 580001f5 setarg mem_spid_tbuf 
-656c 6011008a hstore 2 ,core_spid_txaddr 
-656d 1a227e00 deposit rega 
-656e 6011008c hstore 2 ,core_spid_rxaddr 
-656f 68108086 hfetch 1 ,core_spid_ctrl 
-6570 2a2c000f isolate0 15 ,rega 
-6571 7920fe06 setflag true ,6 ,pdata 
-6572 60108086 hstore 1 ,core_spid_ctrl 
-6573 70800602 jam spid_start ,core_misc_ctrl 
-
-spi_read_flash_wait:
-6574 6810812c hfetch 1 ,core_dma_status 
-6575 c283e574 bbit1 7 ,spi_read_flash_wait 
-6576 d8e00003 arg spid_done ,queue 
-6577 202064fc branch wait_spid_done 
-
-spid_load_flash:
-6578 6019008e hstoret 2 ,core_spid_rxlen 
-6579 58000004 setarg 4 
-657a 60110088 hstore 2 ,core_spid_txlen 
-657b 7001f503 jam 3 ,mem_spid_tbuf 
-657c 580001f5 setarg mem_spid_tbuf 
-657d 6011008a hstore 2 ,core_spid_txaddr 
-657e 1a227e00 deposit rega 
-657f 6011008c hstore 2 ,core_spid_rxaddr 
-6580 68108086 hfetch 1 ,core_spid_ctrl 
-6581 2a2c000f isolate0 15 ,rega 
-6582 7920fe06 setflag true ,6 ,pdata 
-6583 60108086 hstore 1 ,core_spid_ctrl 
-6584 70800602 jam spid_start ,core_misc_ctrl 
-
-spi_load_flash_wait:
-6585 6810812c hfetch 1 ,core_dma_status 
-6586 c283e585 bbit1 7 ,spi_load_flash_wait 
-6587 d8e00003 arg spid_done ,queue 
-6588 204064c0 call decrypt_code 
-6589 204064fc call wait_spid_done 
-658a 2feffe02 isolate1 spid_crcok ,pdata 
-658b 204064b9 call set_ucode_status 
-658c 680081f6 fetch 1 ,mem_addr_hi 
-658d 1ff02400 lshift16 pdata ,regb 
-658e 680081f7 fetch 1 ,mem_addr_mi 
-658f 1fed7e00 lshift8 pdata ,pdata 
-6590 9a41a400 ior regb ,regb 
-6591 680081f8 fetch 1 ,mem_addr_lo 
-6592 9a41fe00 ior regb ,pdata 
-6593 9840fe00 iadd temp ,pdata 
-6594 600081f8 store 1 ,mem_addr_lo 
-6595 1fecfe00 rshift8 pdata ,pdata 
-6596 600081f7 store 1 ,mem_addr_mi 
-6597 1fecfe00 rshift8 pdata ,pdata 
-6598 600081f6 store 1 ,mem_addr_hi 
-6599 20600000 rtn 
-
-soft_reset_chip:
-659a 70801001 jam 1 ,core_reset 
-659b 20600000 rtn 
-
-iic_init_390k:
-659c 7080910c jam 12 ,core_iicd_scl_low 
-659d 7080920d jam 13 ,core_iicd_scl_high 
-659e 7080930d jam 13 ,core_iicd_start_setup 
-659f 7080940d jam 13 ,core_iicd_start_hold 
-65a0 7080950d jam 13 ,core_iicd_stop_setup 
-65a1 7080960c jam 12 ,core_iicd_data_setup 
-65a2 202065a9 branch iicd_init_gpio 
-
-iicd_init_12m:
-65a3 70809105 jam 5 ,core_iicd_scl_low 
-65a4 70809207 jam 7 ,core_iicd_scl_high 
-65a5 70809307 jam 7 ,core_iicd_start_setup 
-65a6 70809407 jam 7 ,core_iicd_start_hold 
-65a7 70809507 jam 7 ,core_iicd_stop_setup 
-65a8 70809605 jam 5 ,core_iicd_data_setup 
-
-iicd_init_gpio:
-65a9 6810807b hfetch 1 ,core_gpio_pu3 
-65aa 1fe1fec0 or_into 0xc0 ,pdata 
-65ab 6010807b hstore 1 ,core_gpio_pu3 
-65ac 68108081 hfetch 1 ,core_gpio_sel1 
-65ad 1fe1fe10 or_into 0x10 ,pdata 
-65ae 60108081 hstore 1 ,core_gpio_sel1 
-65af 20600000 rtn 
-
-wait_iicd_done:
-65b0 6810812c hfetch 1 ,core_dma_status 
-65b1 c302e5b0 bbit0 iicd_done ,wait_iicd_done 
-65b2 20600000 rtn 
-
-iicd_read_data:
-65b3 60110098 hstore 2 ,core_iicd_txlen 
-65b4 1a227e00 deposit rega 
-65b5 6011009a hstore 2 ,core_iicd_txaddr 
-65b6 1a427e00 deposit regb 
-65b7 6011009c hstore 2 ,core_iicd_rxaddr 
-65b8 18427e00 deposit temp 
-65b9 6011009e hstore 2 ,core_iicd_rxlen 
-65ba d8400001 arg 1 ,temp 
-65bb 7d3a0401 nsetflag blank ,1 ,temp 
-65bc 60108090 hstore 1 ,core_iicd_ctrl 
-65bd 70800604 jam iicd_start ,core_misc_ctrl 
-65be 202065b0 branch wait_iicd_done 
-
-set_eeprom_size_2k:
-65bf 79200028 set1 mark_eeprom_size ,mark 
-65c0 70421108 jam 0x08 ,mem_eeprom_block_size 
-65c1 20600000 rtn 
-
-clear_eeprom_size_2k:
-65c2 793f8028 set0 mark_eeprom_size ,mark 
-65c3 70421120 jam 0x20 ,mem_eeprom_block_size 
-65c4 20600000 rtn 
-
-iicd_read_eep_data_size_2k:
-65c5 6800c203 fetch 1 ,mem_eeprom_base 
-65c6 9a40fe00 iadd regb ,pdata 
-65c7 600081f7 store 1 ,mem_addr_mi 
-65c8 202065cc branch iicd_read_eep_size_2k 
-
-iicd_read_eep_size_2k_lcadcode:
-65c9 680101f7 fetch 2 ,mem_addr_mi 
-65ca 1ff0fe00 byteswap pdata ,pdata 
-65cb 600081f7 store 1 ,mem_addr_mi 
-
-iicd_read_eep_size_2k:
-65cc 58000003 setarg 3 
-65cd 60110098 hstore 2 ,core_iicd_txlen 
-65ce 7001f6a0 jam 0xa0 ,mem_iicd_tbuf 
-65cf 7001f8a1 jam 0xa1 ,mem_iicd_tbuf + 2 
-65d0 202065eb branch iicd_read_eep_common 
-
-iicd_write_protect_eep_data:
-65d1 60090aa2 storet 2 ,mem_temp 
-65d2 204065d6 call iicd_eeprom_write_enable 
-65d3 68090aa2 fetcht 2 ,mem_temp 
-65d4 20406606 call iicd_write_eep_data 
-65d5 202065dd branch iicd_eeprom_write_disable 
-
-iicd_eeprom_write_enable:
-65d6 6800c23a fetch 1 ,mem_eeprom_wp_gpio 
-65d7 c17f8000 rtneq gpio_disable 
-65d8 c30365db bbit0 6 ,iicd_wp_gpio_output_low 
-65d9 580249f0 setarg 150000 
-65da 20402a8f call sleep 
-
-iicd_wp_gpio_output_low:
-65db 6808c23a fetcht 1 ,mem_eeprom_wp_gpio 
-65dc 20206829 branch gpio_out_active 
-
-iicd_eeprom_write_disable:
-65dd 6808c23a fetcht 1 ,mem_eeprom_wp_gpio 
-65de 20206825 branch gpio_out_inactive 
-
-iicd_read_eep_data:
-65df 47484032 bpatchx patch32_0 ,mem_patch32 
-65e0 c51465c5 bmark1 mark_eeprom_size ,iicd_read_eep_data_size_2k 
-65e1 68014203 fetch 2 ,mem_eeprom_base 
-65e2 9a40fe00 iadd regb ,pdata 
-65e3 1ff0fe00 byteswap pdata ,pdata 
-65e4 600101f7 store 2 ,mem_addr_mi 
-
-iicd_read_eep:
-65e5 4748c032 bpatchx patch32_1 ,mem_patch32 
-65e6 c51465c9 bmark1 mark_eeprom_size ,iicd_read_eep_size_2k_lcadcode 
-65e7 58000004 setarg 4 
-65e8 60110098 hstore 2 ,core_iicd_txlen 
-65e9 7001f6a0 jam 0xa0 ,mem_iicd_tbuf 
-65ea 7001f9a1 jam 0xa1 ,mem_iicd_tbuf + 3 
-
-iicd_read_eep_common:
-65eb 580001f6 setarg mem_iicd_tbuf 
-65ec 6011009a hstore 2 ,core_iicd_txaddr 
-65ed 6019009e hstoret 2 ,core_iicd_rxlen 
-65ee 1a227e00 deposit rega 
-65ef 6011009c hstore 2 ,core_iicd_rxaddr 
-65f0 58000002 setarg 2 
-65f1 2a2c000f isolate0 15 ,rega 
-65f2 7920fe00 setflag true ,0 ,pdata 
-65f3 60108090 hstore 1 ,core_iicd_ctrl 
-65f4 70800604 jam iicd_start ,core_misc_ctrl 
-65f5 d8e00005 arg iicd_done ,queue 
-65f6 204064c0 call decrypt_code 
-65f7 204065b0 call wait_iicd_done 
-65f8 2feffe04 isolate1 iicd_crcok ,pdata 
-65f9 204064b9 call set_ucode_status 
-65fa c5146601 bmark1 mark_eeprom_size ,iicd_read_eep_load_code_size_2k 
-65fb 680101f7 fetch 2 ,mem_addr_mi 
-65fc 1ff0fe00 byteswap pdata ,pdata 
-65fd 9840fe00 iadd temp ,pdata 
-65fe 1ff0fe00 byteswap pdata ,pdata 
-65ff 600101f7 store 2 ,mem_addr_mi 
-6600 20600000 rtn 
-
-iicd_read_eep_load_code_size_2k:
-6601 680081f7 fetch 1 ,mem_addr_mi 
-6602 9840fe00 iadd temp ,pdata 
-6603 1ff0fe00 byteswap pdata ,pdata 
-6604 600101f7 store 2 ,mem_addr_mi 
-6605 20600000 rtn 
-
-iicd_write_eep_data:
-6606 68014203 fetch 2 ,mem_eeprom_base 
-6607 9a40fe00 iadd regb ,pdata 
-
-iicd_write_ota_data:
-6608 60010a9a store 2 ,mem_pdatatemp 
-6609 47494032 bpatchx patch32_2 ,mem_patch32 
-660a 60090aa2 storet 2 ,mem_temp 
-660b 1a227e00 copy rega ,pdata 
-660c 60010ab9 store 2 ,mem_contr 
-
-iicd_write_eep_loop:
-660d 2040661d call iicd_eep_transparency 
-660e 68090ab2 fetcht 2 ,mem_regb 
-660f 68010ab9 fetch 2 ,mem_contr 
-6610 1fe22200 copy pdata ,rega 
-6611 68010a9a fetch 2 ,mem_pdatatemp 
-6612 2040663d call iicd_write_eep 
-6613 68010ab2 fetch 2 ,mem_regb 
-6614 68090ab9 fetcht 2 ,mem_contr 
-6615 98408400 iadd temp ,temp 
-6616 60090ab9 storet 2 ,mem_contr 
-6617 68090a9a fetcht 2 ,mem_pdatatemp 
-6618 98408400 iadd temp ,temp 
-6619 60090a9a storet 2 ,mem_pdatatemp 
-661a 68010aa2 fetch 2 ,mem_temp 
-661b 243a660d nbranch iicd_write_eep_loop ,blank 
-661c 20600000 rtn 
-
-iicd_eep_transparency:
-661d 4749c032 bpatchx patch32_3 ,mem_patch32 
-661e 6800c211 fetch 1 ,mem_eeprom_block_size 
-661f 1fe0ffff increase -1 ,pdata 
-6620 68090a9a fetcht 2 ,mem_pdatatemp 
-6621 9841fe00 ior temp ,pdata 
-6622 1fe0fe01 increase 1 ,pdata 
-6623 60018ab6 store 3 ,mem_regc 
-6624 68010aa2 fetch 2 ,mem_temp 
-6625 9840fe00 iadd temp ,pdata 
-6626 68098ab6 fetcht 3 ,mem_regc 
-6627 98467e00 isub temp ,pdata 
-6628 2421662f nbranch iicd_eep_deal_short_packet ,positive 
-6629 60010aa2 store 2 ,mem_temp 
-662a 68018ab6 fetch 3 ,mem_regc 
-662b 68090a9a fetcht 2 ,mem_pdatatemp 
-662c 98467e00 isub temp ,pdata 
-662d 60010ab2 store 2 ,mem_regb 
-662e 20600000 rtn 
-
-iicd_eep_deal_short_packet:
-662f 68010aa2 fetch 2 ,mem_temp 
-6630 60010ab2 store 2 ,mem_regb 
-6631 58000000 setarg 0 
-6632 60010aa2 store 2 ,mem_temp 
-6633 20600000 rtn 
-
-iicd_write_eep_size_2k:
-6634 18408402 increase 2 ,temp 
-6635 60190098 hstoret 2 ,core_iicd_txlen 
-6636 1a20a3fe increase -2 ,rega 
-6637 ea298000 ifetcht 3 ,rega 
-6638 18422400 copy temp ,regb 
-6639 d84000a0 arg 0xa0 ,temp 
-663a e2288000 istoret 1 ,rega 
-663b e0a08000 istore 1 ,contw 
-663c 2020664a branch iicd_write_eep_common 
-
-iicd_write_eep:
-663d 1fe22400 copy pdata ,regb 
-663e 474a4032 bpatchx patch32_4 ,mem_patch32 
-663f c5146634 bmark1 mark_eeprom_size ,iicd_write_eep_size_2k 
-6640 1a427e00 copy regb ,pdata 
-6641 18408403 increase 3 ,temp 
-6642 60190098 hstoret 2 ,core_iicd_txlen 
-6643 1a20a3fd increase -3 ,rega 
-6644 ea298000 ifetcht 3 ,rega 
-6645 18422400 copy temp ,regb 
-6646 d84000a0 arg 0xa0 ,temp 
-6647 e2288000 istoret 1 ,rega 
-6648 1ff0fe00 byteswap pdata ,pdata 
-6649 e0a10000 istore 2 ,contw 
-
-iicd_write_eep_common:
-664a 1a227e00 deposit rega 
-664b 6011009a hstore 2 ,core_iicd_txaddr 
-664c 58000000 setarg 0 
-664d 6011009e hstore 2 ,core_iicd_rxlen 
-664e 70809001 jam 1 ,core_iicd_ctrl 
-664f 70800604 jam iicd_start ,core_misc_ctrl 
-6650 204065b0 call wait_iicd_done 
-6651 1a427e00 copy regb ,pdata 
-6652 e2218000 istore 3 ,rega 
-
-iic_check_eeprom_standby:
-6653 474ac032 bpatchx patch32_5 ,mem_patch32 
-6654 7001f900 jam 0 ,mem_iicd_tbuf + 3 
-
-iic_check_eeprom_standby_wait:
-6655 58000001 setarg 1 
-6656 60110098 hstore 2 ,core_iicd_txlen 
-6657 7001f6a0 jam 0xa0 ,mem_iicd_tbuf 
-6658 580001f6 setarg mem_iicd_tbuf 
-6659 6011009a hstore 2 ,core_iicd_txaddr 
-665a 58000000 setarg 0 
-665b 6011009e hstore 2 ,core_iicd_rxlen 
-665c 6011009c hstore 2 ,core_iicd_rxaddr 
-665d 58000003 setarg 3 
-665e 60108090 hstore 1 ,core_iicd_ctrl 
-665f 70800604 jam iicd_start ,core_misc_ctrl 
-6660 204065b0 call wait_iicd_done 
-6661 6810812c hfetch 1 ,core_dma_status 
-6662 c4030000 rtnbit0 iicd_ack 
-6663 200005dc nop 1500 
-6664 680081f9 fetch 1 ,mem_iicd_tbuf + 3 
-6665 1fe0fe01 increase 1 ,pdata 
-6666 600081f9 store 1 ,mem_iicd_tbuf + 3 
-6667 1fe67c28 sub pdata ,40 ,null 
-6668 24610000 nrtn positive 
-6669 20206655 branch iic_check_eeprom_standby_wait 
-
-otp_enable_chgpump:
-666a 70897370 jam 0x70 ,rfen_chgpump 
-666b 20000bb8 nop param_chgpump_delay 
-666c 20600000 rtn 
-
-otp_disable_chgpump:
-666d 70897330 jam 0x30 ,rfen_chgpump 
-666e 20600000 rtn 
-
-otp_set_addr:
-666f 1fe9fe00 lshift3 pdata ,pdata 
-6670 60110045 hstore 2 ,core_otp_addr 
-6671 70804b00 jam 0 ,core_otpd_ctrl 
-6672 20600000 rtn 
-
-otp_write:
-6673 2040666f call otp_set_addr 
-6674 204066a0 call otp_ce 
-
-otp_program:
-6675 ea288000 ifetcht 1 ,rega 
-6676 1a20a201 increase 1 ,rega 
-6677 18000e00 force 0 ,queue 
-
-otp_program_bit:
-6678 a84c0000 qisolate0 temp 
-6679 2020e697 branch otp_skip_0 ,true 
-667a 68108046 hfetch 1 ,core_otp_din 
-667b 79207e06 set1 6 ,pdata 
-667c 79207e07 set1 7 ,pdata 
-667d 60108046 hstore 1 ,core_otp_din 
-667e 70804702 jam 0x02 ,core_otp_ctrl 
-667f 70804782 jam 0x82 ,core_otp_ctrl 
-6680 793ffe07 set0 7 ,pdata 
-6681 60108046 hstore 1 ,core_otp_din 
-6682 7080478a jam 0x8a ,core_otp_ctrl 
-6683 2000000b nop 11 
-6684 708047ca jam 0xca ,core_otp_ctrl 
-6685 20000021 nop 33 
-6686 7080474a jam 0x4a ,core_otp_ctrl 
-6687 2000002c nop 44 
-6688 708047ca jam 0xca ,core_otp_ctrl 
-6689 20000016 nop 22 
-668a 7080478a jam 0x8a ,core_otp_ctrl 
-668b 20000021 nop 33 
-668c 70804782 jam 0x82 ,core_otp_ctrl 
-668d 20000001 nop 1 
-668e 70804792 jam 0x92 ,core_otp_ctrl 
-668f 2000000a nop 10 
-6690 708047b2 jam 0xb2 ,core_otp_ctrl 
-6691 68108007 hfetch 1 ,core_otp_rdata 
-6692 70804792 jam 0x92 ,core_otp_ctrl 
-6693 20000001 nop 1 
-6694 70804782 jam 0x82 ,core_otp_ctrl 
-6695 afec0000 qisolate0 pdata 
-6696 2020e678 branch otp_program_bit ,true 
-
-otp_skip_0:
-6697 68110045 hfetch 2 ,core_otp_addr 
-6698 1fe0fe01 increase 1 ,pdata 
-6699 60110045 hstore 2 ,core_otp_addr 
-669a 18e08e01 increase 1 ,queue 
-669b 28e01e08 compare 8 ,queue ,0xf 
-669c 2420e678 nbranch otp_program_bit ,true 
-669d c2006675 loop otp_program 
-669e 70804783 jam 0x83 ,core_otp_ctrl 
-669f 20600000 rtn 
-
-otp_ce:
-66a0 70804782 jam 0x82 ,core_otp_ctrl 
-66a1 2000000c nop 12 
-66a2 70804780 jam 0x80 ,core_otp_ctrl 
-66a3 70804782 jam 0x82 ,core_otp_ctrl 
-66a4 20000096 nop 150 
-66a5 20600000 rtn 
-
-otpd_read_init:
-66a6 204066a0 call otp_ce 
-66a7 708047a2 jam 0xa2 ,core_otp_ctrl 
-66a8 1a227e00 deposit rega 
-66a9 60110048 hstore 2 ,core_otpd_addr 
-66aa 7920040b set1 11 ,temp 
-66ab 2fec000f isolate0 15 ,pdata 
-66ac 7920840f setflag true ,15 ,temp 
-66ad 6019004a hstoret 2 ,core_otpd_len 
-66ae 70800601 jam otpd_start ,core_misc_ctrl 
-66af 20600000 rtn 
-
-otpd_wait_end:
-66b0 6810812c hfetch 1 ,core_dma_status 
-66b1 c300e6b0 bbit0 otpd_done ,otpd_wait_end 
-66b2 20600000 rtn 
-
-otpd_read_data:
-66b3 2040666f call otp_set_addr 
-66b4 204066a6 call otpd_read_init 
-66b5 204066b0 call otpd_wait_end 
-66b6 70804783 jam 0x83 ,core_otp_ctrl 
-66b7 20600000 rtn 
-
-otpd_read_code:
-66b8 68110124 hfetch 2 ,core_current_otp_addr 
-66b9 60110045 hstore 2 ,core_otp_addr 
-66ba 204066a6 call otpd_read_init 
-66bb d8e00001 arg otpd_done ,queue 
-66bc 204064c0 call decrypt_code 
-66bd 204066b0 call otpd_wait_end 
-66be 2feffe00 isolate1 otpd_crcok ,pdata 
-66bf 204064b9 call set_ucode_status 
-66c0 70804783 jam 0x83 ,core_otp_ctrl 
-66c1 20600000 rtn 
-
-uartd_prepare_tx:
-66c2 6811005e hfetch 2 ,core_uart_twptr 
-66c3 98001400 iforce contwu 
-66c4 20600000 rtn 
-
-uartd_send:
-66c5 19427e00 deposit contwu 
-66c6 6011005e hstore 2 ,core_uart_twptr 
-66c7 20600000 rtn 
-
-uartd_rxdone:
-66c8 18627e00 deposit contru 
-66c9 60110058 hstore 2 ,core_uart_rrptr 
-66ca 20600000 rtn 
-
-uartd_prepare_rx:
-66cb 68110058 hfetch 2 ,core_uart_rrptr 
-66cc 1fe20600 copy pdata ,contru 
-66cd 20600000 rtn 
-
-uart_set_baud_by_mem:
-66ce 68014243 fetch uart_baud_len ,mem_baud 
-66cf 60110052 hstore uart_baud_len ,core_uart_baud 
-66d0 20600000 rtn 
-
-uart_copy_tx_bytes_fast:
-66d1 1f227e00 deposit loopcnt 
-66d2 207a0000 rtn blank 
-
-uart_copy_tx_bytes_fast_loop:
-66d3 1f20f3f8 increase -8 ,loopcnt 
-66d4 204166de call uart_tx_8_bytes ,positive 
-66d5 20628000 rtn zero 
-66d6 202166d3 branch uart_copy_tx_bytes_fast_loop ,positive 
-66d7 1f20f208 increase 8 ,loopcnt 
-
-uart_copy_tx_bytes_fast_loop_four:
-66d8 1f20f3fc increase -4 ,loopcnt 
-66d9 204166e1 call uart_tx_4_bytes ,positive 
-66da 20628000 rtn zero 
-66db 202166d8 branch uart_copy_tx_bytes_fast_loop_four ,positive 
-66dc 1f20f204 increase 4 ,loopcnt 
-66dd 202066e4 branch uart_copy_tx_bytes 
-
-uart_tx_8_bytes:
-66de e8c40000 ifetch 8 ,contr 
-66df e1440000 istore 8 ,contwu 
-66e0 20600000 rtn 
-
-uart_tx_4_bytes:
-66e1 e8c20000 ifetch 4 ,contr 
-66e2 e1420000 istore 4 ,contwu 
-66e3 20600000 rtn 
-
-uart_copy_tx_bytes:
-66e4 1f227e00 deposit loopcnt 
-66e5 207a0000 rtn blank 
-
-uart_copy_tx_bytes_loop:
-66e6 e8c08000 ifetch 1 ,contr 
-66e7 e1408000 istore 1 ,contwu 
-66e8 c20066e6 loop uart_copy_tx_bytes_loop 
-66e9 20600000 rtn 
-
-uart_copy_rx_bytes_fast:
-66ea 1f227e00 deposit loopcnt 
-66eb 207a0000 rtn blank 
-
-uart_copy_rx_bytes_fast_loop:
-66ec 1f20f3f8 increase -8 ,loopcnt 
-66ed 204166f7 call uart_rx_8_bytes ,positive 
-66ee 20628000 rtn zero 
-66ef 202166ec branch uart_copy_rx_bytes_fast_loop ,positive 
-66f0 1f20f208 increase 8 ,loopcnt 
-
-uart_copy_rx_bytes_fast_loop_four:
-66f1 1f20f3fc increase -4 ,loopcnt 
-66f2 204166fa call uart_rx_4_bytes ,positive 
-66f3 20628000 rtn zero 
-66f4 202166f1 branch uart_copy_rx_bytes_fast_loop_four ,positive 
-66f5 1f20f204 increase 4 ,loopcnt 
-66f6 202066fd branch uart_copy_rx_bytes 
-
-uart_rx_8_bytes:
-66f7 e8640000 ifetch 8 ,contru 
-66f8 e0a40000 istore 8 ,contw 
-66f9 20600000 rtn 
-
-uart_rx_4_bytes:
-66fa e8620000 ifetch 4 ,contru 
-66fb e0a20000 istore 4 ,contw 
-66fc 20600000 rtn 
-
-uart_copy_rx_bytes:
-66fd 1f227e00 deposit loopcnt 
-66fe 207a0000 rtn blank 
-
-uart_copy_rx_bytes_loop:
-66ff e8608000 ifetch 1 ,contru 
-6700 e0a08000 istore 1 ,contw 
-6701 c20066ff loop uart_copy_rx_bytes_loop 
-6702 20600000 rtn 
-
-uart_copy_rx2tx:
-6703 1f227e00 deposit loopcnt 
-6704 207a0000 rtn blank 
-
-uart_copy_rx2tx_loop:
-6705 e8608000 ifetch 1 ,contru 
-6706 e1408000 istore 1 ,contwu 
-6707 c2006705 loop uart_copy_rx2tx_loop 
-6708 20600000 rtn 
-
-app_store_nvram_event:
-6709 700a993d jam bt_evt_store_nvram ,mem_fifo_temp 
-670a 20207d86 branch ui_ipc_send_event 
-
-check_51cmd_store_reconn_info:
-
-check_51cmd_update_device_record:
-670b 474b4032 bpatchx patch32_6 ,mem_patch32 
-670c 6800c217 fetch 1 ,mem_nv_data_number 
-670d 207a0000 rtn blank 
-670e 204067a3 call check_nvram 
-670f 2042e7a9 call init_device_list ,zero 
-6710 2040673e call nvram_find_addr_from_bd_list 
-
-write_device_record:
-6711 6800c217 fetch 1 ,mem_nv_data_number 
-6712 1fe22600 icopy regc 
-6713 68094215 fetcht 2 ,mem_nv_data_ptr 
-6714 6009018c storet 2 ,mem_list_item_ptr 
-
-write_device_loop_find:
-6715 1a627e00 copy regc ,pdata 
-6716 203a6709 branch app_store_nvram_event ,blank 
-6717 1a60a7ff increase -1 ,regc 
-6718 18422200 copy temp ,rega 
-6719 ea208000 ifetch 1 ,rega 
-671a 68088184 fetcht 1 ,mem_select_list_item 
-671b 98467c00 isub temp ,null 
-671c 2042e725 call set_index_finded_device ,zero 
-671d 20216721 branch write_device_loop_find0 ,positive 
-671e ea208000 ifetch 1 ,rega 
-671f 1fe0fe01 increase 1 ,pdata 
-6720 e2208000 istore 1 ,rega 
-
-write_device_loop_find0:
-6721 6809018c fetcht 2 ,mem_list_item_ptr 
-6722 18408422 increase nv_data_len ,temp 
-6723 6009018c storet 2 ,mem_list_item_ptr 
-6724 20206715 branch write_device_loop_find 
-
-set_index_finded_device:
-6725 58000000 setarg 0 
-6726 e2208000 istore 1 ,rega 
-6727 68008185 fetch 1 ,mem_temp_reconn_record 
-6728 e0a08000 istore 1 ,contw 
-6729 c099e733 bne rec_3_mode ,set_index_finded_device_ble_mode 
-672a da4041be arg mem_link_key ,regb 
-
-set_index_find_device_master_addr:
-672b e8c30000 ifetch 6 ,contr 
-672c e0a40000 istore 8 ,contw 
-672d 58000000 setarg 0 
-672e e0a40000 istore 8 ,contw 
-672f 1a420c00 copy regb ,contr 
-
-store_rec_data_common:
-6730 20407ebf call memcpy16 
-6731 18007c01 force 1 ,null 
-6732 20600000 rtn 
-
-set_index_finded_device_ble_mode:
-6733 c01b6737 beq rec_4_mode_random_resolvable_private_address ,set_index_finded_device_irk 
-6734 c01be73b beq rec_4_mode_random_non_resolvable_private_address ,set_index_finded_device_ediv 
-6735 da404419 arg mem_le_ltk ,regb 
-6736 2020672b branch set_index_find_device_master_addr 
-
-set_index_finded_device_irk:
-6737 d8c044d5 arg mem_le_irk ,contr 
-6738 20407ebf call memcpy16 
-
-store_ble_rec_data_common:
-6739 d8c04419 arg mem_le_ltk ,contr 
-673a 20206730 branch store_rec_data_common 
-
-set_index_finded_device_ediv:
-673b d8c044cd arg mem_le_rand ,contr 
-673c 20407ebf call memcpy16 
-673d 20206739 branch store_ble_rec_data_common 
-
-nvram_find_addr_from_bd_list:
-673e 20407fe9 call disable_user 
-673f 6800c217 fetch 1 ,mem_nv_data_number 
-6740 207a0000 rtn blank 
-6741 68014682 fetch 2 ,mem_ui_state_map 
-6742 c2806754 bbit1 ui_state_bt_connected ,find_addr_from_bd_list_spp_mode 
-
-find_addr_from_bd_list_ble_mode:
-6743 474bc032 bpatchx patch32_7 ,mem_patch32 
-6744 6800c48e fetch 1 ,mem_le_conn_peer_addr_type 
-6745 c000674d beq master_public_addr ,find_addr_from_bd_list_static_addr 
-6746 68008454 fetch 1 ,mem_le_plap + 5 
-6747 2fe180c0 compare 0xc0 ,pdata ,0xc0 
-6748 2020e74d branch find_addr_from_bd_list_static_addr ,true 
-6749 2fe18040 compare 0x40 ,pdata ,0xc0 
-674a 2020e752 branch find_addr_from_bd_list_random_addr ,true 
-674b 2fe18000 compare 0x00 ,pdata ,0xc0 
-674c 2020e750 branch find_addr_from_bd_list_random_non_resolvable_private_address ,true 
-
-find_addr_from_bd_list_static_addr:
-674d 70018535 jam rec_4_mode_static_address ,mem_temp_reconn_record 
-674e 6803044f fetch 6 ,mem_le_plap 
-674f 20206757 branch find_addr_from_bd_list_common 
-
-find_addr_from_bd_list_random_non_resolvable_private_address:
-6750 70018537 jam rec_4_mode_random_non_resolvable_private_address ,mem_temp_reconn_record 
-6751 20206757 branch find_addr_from_bd_list_common 
-
-find_addr_from_bd_list_random_addr:
-6752 70018536 jam rec_4_mode_random_resolvable_private_address ,mem_temp_reconn_record 
-6753 20206757 branch find_addr_from_bd_list_common 
-
-find_addr_from_bd_list_spp_mode:
-6754 474c4033 bpatchx patch33_0 ,mem_patch33 
-6755 70018533 jam rec_3_mode ,mem_temp_reconn_record 
-6756 68030040 fetch 6 ,mem_plap 
-
-find_addr_from_bd_list_common:
-6757 60030186 store 6 ,mem_temp_reconn_record + 1 
-6758 68014215 fetch 2 ,mem_nv_data_ptr 
-6759 efe88000 ifetcht 1 ,pdata 
-675a 1fe0fe01 pincrease 1 
-675b 6001018c store 2 ,mem_list_item_ptr 
-675c 60088184 storet 1 ,mem_select_list_item 
-675d 6800c217 fetch 1 ,mem_nv_data_number 
-675e 1fe22600 icopy regc 
-
-nvram_find_addr_from_list:
-675f 6801018c fetch 2 ,mem_list_item_ptr 
-6760 1fe22200 copy pdata ,rega 
-6761 2040676f call nvram_find_addr_from_list_compare 
-6762 20740000 rtn user 
-6763 6809018c fetcht 2 ,mem_list_item_ptr 
-6764 18408422 increase nv_data_len ,temp 
-6765 6009018c storet 2 ,mem_list_item_ptr 
-6766 184085ff increase -1 ,temp 
-6767 e8408000 ifetch 1 ,temp 
-6768 60008184 store 1 ,mem_select_list_item 
-6769 1a60a7ff increase -1 ,regc 
-676a 2422e75f nbranch nvram_find_addr_from_list ,zero 
-676b 6800c217 fetch 1 ,mem_nv_data_number 
-676c 1fe0ffff pincrease decreased_one 
-676d 60008184 store 1 ,mem_select_list_item 
-676e 20600000 rtn 
-
-nvram_find_addr_from_list_compare:
-676f 68008185 fetch 1 ,mem_temp_reconn_record 
-6770 c099e776 bne rec_3_mode ,find_addr_from_list_compare_ble_mode 
-
-find_master_addr_from_list_compare:
-6771 da400185 arg mem_temp_reconn_record ,regb 
-6772 df200007 arg 7 ,loopcnt 
-6773 20407f88 call string_compare 
-6774 2022ffe7 branch enable_user ,zero 
-6775 20600000 rtn 
-
-find_addr_from_list_compare_ble_mode:
-6776 c01b6779 beq rec_4_mode_random_resolvable_private_address ,find_irk_form_list_compare 
-6777 c01be794 beq rec_4_mode_random_non_resolvable_private_address ,find_ediv_form_list_compare 
-6778 20206771 branch find_master_addr_from_list_compare 
-
-find_irk_form_list_compare:
-6779 ea288000 ifetcht 1 ,rega 
-677a 98467c00 isub temp ,null 
-677b 24628000 nrtn zero 
-677c d8a00ac2 arg mem_le_prand ,contw 
-677d df200010 arg 16 ,loopcnt 
-677e 20407ed4 call clear_mem 
-677f 68018452 fetch 3 ,mem_le_plap + 3 
-6780 60018ac2 store 3 ,mem_le_prand 
-6781 2040678b call genernate_master_macaddress 
-6782 68010adf fetch 2 ,mem_le_aes_128 + 13 
-6783 1ff0fe00 byteswap pdata ,pdata 
-6784 1fed0400 lshift8 pdata ,temp 
-6785 e8c08000 ifetch 1 ,contr 
-6786 9840fe00 iadd temp ,pdata 
-6787 6809844f fetcht 3 ,mem_le_plap 
-6788 98467c00 isub temp ,null 
-6789 2022ffe7 branch enable_user ,zero 
-678a 20600000 rtn 
-
-genernate_master_macaddress:
-678b d8c00ac2 arg mem_le_prand ,contr 
-678c 20407486 call load_data128 
-678d ea208000 ifetch 1 ,rega 
-678e 20407487 call load_regext 
-678f 18006c38 force 0x38 ,aes_ctrl 
-6790 18006c00 force 0x0 ,aes_ctrl 
-6791 2040741d call wait_aes 
-6792 d8a00ad2 arg mem_le_aes_128 ,contw 
-6793 20207497 branch store_aes_result 
-
-find_ediv_form_list_compare:
-6794 ea288000 ifetcht 1 ,rega 
-6795 98467c00 isub temp ,null 
-6796 24628000 nrtn zero 
-6797 18c22200 copy contr ,rega 
-6798 18c0a608 add contr ,8 ,regc 
-6799 da4044cd arg mem_le_rand ,regb 
-679a df200008 arg 8 ,loopcnt 
-679b 20407f88 call string_compare 
-679c 2022ffe7 branch enable_user ,zero 
-679d 1a622200 copy regc ,rega 
-679e da4044d5 arg mem_le_irk ,regb 
-679f df200008 arg 8 ,loopcnt 
-67a0 20407f88 call string_compare 
-67a1 2022ffe7 branch enable_user ,zero 
-67a2 20600000 rtn 
-
-check_nvram:
-67a3 68014215 fetch 2 ,mem_nv_data_ptr 
-67a4 efe88000 ifetcht 1 ,pdata 
-67a5 1fe0fe22 pincrease nv_data_len 
-67a6 efe08000 ifetch 1 ,pdata 
-67a7 98467c00 isub temp ,null 
-67a8 20600000 rtn 
-
-init_device_list:
-67a9 6800c217 fetch 1 ,mem_nv_data_number 
-67aa 1fe27200 icopy loopcnt 
-67ab 68094215 fetcht 2 ,mem_nv_data_ptr 
-67ac 58000000 setarg 0 
-
-init_device_list_loop:
-67ad e0408000 istore 1 ,temp 
-67ae 18408422 increase nv_data_len ,temp 
-67af 1fe0fe01 pincrease 1 
-67b0 c20067ad loop init_device_list_loop 
-67b1 20600000 rtn 
-
-load_device_list:
-67b2 474cc033 bpatchx patch33_1 ,mem_patch33 
-67b3 2040673e call nvram_find_addr_from_bd_list 
-67b4 68008030 fetch 1 ,mem_state 
-67b5 79347e06 setflag user ,state_combkey ,pdata 
-67b6 60008030 store 1 ,mem_state 
-67b7 243467bc nbranch clear_key_exists ,user 
-67b8 1a208c0a add rega ,10 ,contr 
-67b9 d8a041be arg mem_link_key ,contw 
-67ba 20407ebf call memcpy16 
-67bb 202067d7 branch check_link_key_load 
-
-clear_key_exists:
-67bc 7041bd00 jam 0 ,mem_link_key_exists 
-67bd 20600000 rtn 
-
-load_device_list_mode_4:
-67be 6804c4cb fetch 9 ,mem_le_ediv 
-67bf 203a67ca branch clear_ltk_exists ,blank 
-67c0 2040673e call nvram_find_addr_from_bd_list 
-67c1 243467ca nbranch clear_ltk_exists ,user 
-67c2 6801018c fetch 2 ,mem_list_item_ptr 
-67c3 1fe08c01 add pdata ,1 ,contr 
-67c4 d8a044d5 arg mem_le_irk ,contw 
-67c5 20407ebf call memcpy16 
-67c6 d8a04419 arg mem_le_ltk ,contw 
-67c7 20407ebf call memcpy16 
-67c8 70442901 jam 1 ,mem_ltk_exists 
-67c9 20600000 rtn 
-
-clear_ltk_exists:
-67ca 70442900 jam 0 ,mem_ltk_exists 
-67cb 20600000 rtn 
-
-eeprom_store_le_reconn_info:
-67cc 6803044f fetch 6 ,mem_le_plap 
-67cd 60030186 store 6 ,mem_temp_lap 
-67ce 70018534 jam rec_4_mode ,mem_record_bt_mode 
-67cf 202067d3 branch eeprom_store_reconn_info 
-
-eeprom_store_bd_reconn_info:
-67d0 68030040 fetch 6 ,mem_plap 
-67d1 60030186 store 6 ,mem_temp_lap 
-67d2 70018533 jam rec_3_mode ,mem_record_bt_mode 
-
-eeprom_store_reconn_info:
-67d3 6800c092 fetch 1 ,mem_device_option 
-67d4 c005670b beq dvc_op_module ,check_51cmd_update_device_record 
-67d5 c28342da bbit1 dvc_op_mouse ,mouse_store_remote_bdaddr 
-67d6 20600000 rtn 
-
-check_link_key_load:
-67d7 680441be fetch 8 ,mem_link_key 
-67d8 680c41c6 fetcht 8 ,mem_link_key + 8 
-67d9 9841fe00 ior temp ,pdata 
-67da 207a0000 rtn blank 
-67db 7041bd01 jam 1 ,mem_link_key_exists 
-67dc 20600000 rtn 
-
-gpio_set_wake_by_current_state:
-67dd 474d4033 bpatchx patch33_2 ,mem_patch33 
-67de 79200407 set1 7 ,temp 
-67df 2040681d call gpio_get_bit 
-67e0 7d208407 nsetflag true ,7 ,temp 
-
-gpio_set_wake:
-67e1 474dc033 bpatchx patch33_3 ,mem_patch33 
-67e2 18467cff sub temp ,ui_button_gpio_disable ,null 
-67e3 20628000 rtn zero 
-67e4 284c0007 isolate0 7 ,temp 
-67e5 18410e1f and temp ,0x1f ,queue 
-67e6 680200a1 fetch 4 ,mem_gpio_wakeup_low 
-67e7 f920fe00 qsetflag true ,pdata 
-67e8 600200a1 store 4 ,mem_gpio_wakeup_low 
-67e9 680200a5 fetch 4 ,mem_gpio_wakeup_high 
-67ea fd20fe00 nqsetflag true ,pdata 
-67eb 600200a5 store 4 ,mem_gpio_wakeup_high 
-67ec 20600000 rtn 
-
-gpio_clr_wake:
-67ed 474e4033 bpatchx patch33_4 ,mem_patch33 
-67ee 18467cff sub temp ,ui_button_gpio_disable ,null 
-67ef 20628000 rtn zero 
-67f0 284c0007 isolate0 7 ,temp 
-67f1 18410e1f and temp ,0x1f ,queue 
-67f2 680200a1 fetch 4 ,mem_gpio_wakeup_low 
-67f3 f93ffe00 qset0 pdata 
-67f4 600200a1 store 4 ,mem_gpio_wakeup_low 
-67f5 680200a5 fetch 4 ,mem_gpio_wakeup_high 
-67f6 f93ffe00 qset0 pdata 
-67f7 600200a5 store 4 ,mem_gpio_wakeup_high 
-67f8 20600000 rtn 
-
-gpio_config_input_nowake:
-67f9 204067ed call gpio_clr_wake 
-67fa 202067fe branch gpio_config_input_without_wake 
-
-gpio_config_input:
-67fb 18467cff sub temp ,ui_button_gpio_disable ,null 
-67fc 20628000 rtn zero 
-67fd 2455e7e1 ncall gpio_set_wake ,wake 
-
-gpio_config_input_without_wake:
-67fe d8a0807c arg core_gpio_pd0 ,contw 
-67ff 20406830 call gpio_set_bit 
-6800 79400407 setflip gpio_active_bit ,temp 
-6801 d8a08078 arg core_gpio_pu0 ,contw 
-6802 20406830 call gpio_set_bit 
-6803 793f8407 set0 gpio_active_bit ,temp 
-6804 d8a08070 arg core_gpio_oe0 ,contw 
-6805 20206830 branch gpio_set_bit 
-
-gpio_set_high_impedance:
-6806 d8a0807c arg core_gpio_pd0 ,contw 
-6807 20406830 call gpio_set_bit 
-6808 793f8407 set0 gpio_active_bit ,temp 
-6809 d8a08078 arg core_gpio_pu0 ,contw 
-680a 20406830 call gpio_set_bit 
-680b 793f8407 set0 gpio_active_bit ,temp 
-680c d8a08070 arg core_gpio_oe0 ,contw 
-680d 20206830 branch gpio_set_bit 
-
-gpio_config_output:
-680e 18467cff sub temp ,ui_button_gpio_disable ,null 
-680f 20628000 rtn zero 
-6810 79400407 setflip gpio_active_bit ,temp 
-6811 2040682f call gpio_out 
-
-gpio_config_output0:
-6812 79200407 set1 gpio_active_bit ,temp 
-6813 d8a08070 arg core_gpio_oe0 ,contw 
-6814 20206830 branch gpio_set_bit 
-
-gpio_common:
-6815 18410e07 and temp ,0x07 ,queue 
-6816 18497e00 rshift3 temp ,pdata 
-6817 1fe17e03 and_into 3 ,pdata 
-6818 98a08a00 iadd contw ,contw 
-6819 e8a08000 ifetch 1 ,contw 
-681a 20600000 rtn 
-
-gpio_check_active:
-681b d8a08074 arg core_gpio_out0 ,contw 
-681c 2020681e branch get_bit_common 
-
-gpio_get_bit:
-681d d8a0811c arg core_gpio_in ,contw 
-
-get_bit_common:
-681e 20406815 call gpio_common 
-681f 284ffe07 isolate1 gpio_active_bit ,temp 
-6820 2020e823 branch gpio_get_bit_reverse ,true 
-6821 afec0000 qisolate0 pdata 
-6822 20600000 rtn 
-
-gpio_get_bit_reverse:
-6823 afefffff qisolate1 pdata 
-6824 20600000 rtn 
-
-gpio_out_inactive:
-6825 18467cff sub temp ,ui_button_gpio_disable ,null 
-6826 20628000 rtn zero 
-6827 2fcffe07 isolate1 7 ,null 
-6828 2020682c branch gpio_out_flag 
-
-gpio_out_active:
-6829 18467cff sub temp ,ui_button_gpio_disable ,null 
-682a 20628000 rtn zero 
-682b 2fcc0007 isolate0 7 ,null 
-
-gpio_out_flag:
-682c 58000000 setarg 0 
-682d 7d20fe07 nsetflag true ,gpio_active_bit ,pdata 
-682e 98428400 ixor temp ,temp 
-
-gpio_out:
-682f d8a08074 arg core_gpio_out0 ,contw 
-
-gpio_set_bit:
-6830 20406815 call gpio_common 
-6831 284ffe07 isolate1 gpio_active_bit ,temp 
-6832 f920fe00 qsetflag true ,pdata 
-6833 e0a08000 istore 1 ,contw 
-6834 20600000 rtn 
-
-gpio_set_before_lpm_common:
-6835 da3fffff arg -1 ,rega 
-6836 68108081 hfetch 1 ,core_gpio_sel1 
-6837 2fe00602 compare 0x02 ,pdata ,0x03 
-6838 2040e878 call neglact4_from_23_pin ,true 
-6839 2fe00601 compare 0x01 ,pdata ,0x03 
-683a 2040e87a call neglact2_form_25_pin ,true 
-683b 2fe00603 compare 0x03 ,pdata ,0x03 
-683c 2040e87a call neglact2_form_25_pin ,true 
-683d 2feffe02 isolate1 2 ,pdata 
-683e 2040e874 call neglect2_from_6_pin ,true 
-683f 2feffe03 isolate1 3 ,pdata 
-6840 2040e876 call neglect4_from_9_pin ,true 
-6841 2feffe04 isolate1 4 ,pdata 
-6842 2040e87c call neglact2_form_30_pin ,true 
-6843 2feffe06 isolate1 6 ,pdata 
-6844 7d20a204 nsetflag true ,04 ,rega 
-6845 2feffe07 isolate1 7 ,pdata 
-6846 7d20a205 nsetflag true ,05 ,rega 
-6847 68108082 hfetch 1 ,core_gpio_sel2 
-6848 2feffe00 isolate1 0 ,pdata 
-6849 7d20a21b nsetflag true ,27 ,rega 
-684a 2feffe01 isolate1 1 ,pdata 
-684b 7d20a21c nsetflag true ,28 ,rega 
-684c 2feffe02 isolate1 2 ,pdata 
-684d 7d20a203 nsetflag true ,03 ,rega 
-684e 2feffe03 isolate1 3 ,pdata 
-684f 7d20a208 nsetflag true ,08 ,rega 
-6850 2feffe04 isolate1 4 ,pdata 
-6851 7d20a214 nsetflag true ,20 ,rega 
-6852 2feffe05 isolate1 5 ,pdata 
-6853 7d20a215 nsetflag true ,21 ,rega 
-6854 2feffe06 isolate1 6 ,pdata 
-6855 7d20a216 nsetflag true ,22 ,rega 
-6856 2feffe07 isolate1 7 ,pdata 
-6857 7d20a217 nsetflag true ,23 ,rega 
-6858 68108080 hfetch 1 ,core_gpio_sel 
-6859 2feffe00 isolate1 0 ,pdata 
-685a 7d20a205 nsetflag true ,05 ,rega 
-685b 2feffe01 isolate1 1 ,pdata 
-685c 7d20a206 nsetflag true ,06 ,rega 
-685d 2feffe02 isolate1 2 ,pdata 
-685e 7d20a207 nsetflag true ,07 ,rega 
-685f 2feffe03 isolate1 3 ,pdata 
-6860 7d20a212 nsetflag true ,18 ,rega 
-6861 2feffe04 isolate1 4 ,pdata 
-6862 7d20a213 nsetflag true ,19 ,rega 
-6863 2feffe05 isolate1 5 ,pdata 
-6864 7d20a214 nsetflag true ,20 ,rega 
-6865 2feffe06 isolate1 6 ,pdata 
-6866 7d20a215 nsetflag true ,21 ,rega 
-6867 2feffe07 isolate1 7 ,pdata 
-6868 7d20a216 nsetflag true ,22 ,rega 
-6869 68108062 hfetch 1 ,core_uart_ctrl 
-686a 2feffe04 isolate1 4 ,pdata 
-686b 2040e87e call neglact2_form_2_pin ,true 
-686c 474ec033 bpatchx patch33_5 ,mem_patch33 
-686d 68120078 hfetch 4 ,core_gpio_pu0 
-686e 681a007c hfetcht 4 ,core_gpio_pd0 
-686f 9841fe00 ior temp ,pdata 
-6870 1fe47e00 invert pdata ,pdata 
-6871 9a217e00 iand rega ,pdata 
-6872 60120070 hstore 4 ,core_gpio_oe0 
-6873 20600000 rtn 
-
-neglect2_from_6_pin:
-6874 d8e00006 arg 6 ,queue 
-6875 20206884 branch neglect_2_pin 
-
-neglect4_from_9_pin:
-6876 d8e00009 arg 9 ,queue 
-6877 20206882 branch neglact_4_pin 
-
-neglact4_from_23_pin:
-6878 d8e00017 arg 23 ,queue 
-6879 20206882 branch neglact_4_pin 
-
-neglact2_form_25_pin:
-687a d8e00019 arg 25 ,queue 
-687b 20206884 branch neglect_2_pin 
-
-neglact2_form_30_pin:
-687c d8e0001e arg 30 ,queue 
-687d 20206884 branch neglect_2_pin 
-
-neglact2_form_2_pin:
-687e d8e00002 arg 2 ,queue 
-687f 20206884 branch neglect_2_pin 
-
-neglact_1_pin:
-6880 df200001 arg 1 ,loopcnt 
-6881 20206885 branch neglect_pin_loop 
-
-neglact_4_pin:
-6882 df200004 arg 4 ,loopcnt 
-6883 20206885 branch neglect_pin_loop 
-
-neglect_2_pin:
-6884 df200002 arg 2 ,loopcnt 
-
-neglect_pin_loop:
-6885 f93fa200 qset0 rega 
-6886 18e08e01 increase 1 ,queue 
-6887 c2006885 loop neglect_pin_loop 
-6888 20600000 rtn 
-
-gpio_cfg_uart_tx_output:
-6889 20406895 call gpio_uart2gpio 
-688a d8400006 arg uart_wakeup_tx ,temp 
-688b 2020680e branch gpio_config_output 
-
-gpio_pu_uart_tx:
-688c 20406889 call gpio_cfg_uart_tx_output 
-688d d8400006 arg uart_wakeup_tx ,temp 
-688e 20206825 branch gpio_out_inactive 
-
-gpio_rx_config_input_with_pu:
-688f 20406895 call gpio_uart2gpio 
-6890 68108078 hfetch 1 ,core_gpio_pu0 
-6891 79207e07 set1 uart_wakeup_rx ,pdata 
-6892 60108078 hstore 1 ,core_gpio_pu0 
-6893 d8400007 arg uart_wakeup_rx ,temp 
-6894 202067fb branch gpio_config_input 
-
-gpio_uart2gpio:
-6895 68108081 hfetch 1 ,core_gpio_sel1 
-6896 1fe17efb and_into 0xfb ,pdata 
-6897 60108081 hstore 1 ,core_gpio_sel1 
-6898 20600000 rtn 
-
-gpio_check_uart_state:
-6899 68108081 hfetch 1 ,core_gpio_sel1 
-689a 2feffe02 isolate1 2 ,pdata 
-689b 20600000 rtn 
-
-load_chip_option:
-689c 2040666a call otp_enable_chgpump 
-689d 580007e0 setarg otp_chip_functions 
-689e da204150 arg mem_chip_functions ,rega 
-689f d8400002 arg 0x02 ,temp 
-68a0 204066b3 call otpd_read_data 
-68a1 2020666d branch otp_disable_chgpump 
-
-load_adc_init:
-68a2 2040666a call otp_enable_chgpump 
-68a3 580007e2 setarg otp_adc_io_0_5v_addr 
-68a4 da20421d arg mem_0_5_adc_io_data ,rega 
-68a5 d840000e arg 14 ,temp 
-68a6 204066b3 call otpd_read_data 
-68a7 2020666d branch otp_disable_chgpump 
-
-adc_init_data:
-68a8 474f4033 bpatchx patch33_6 ,mem_patch33 
-68a9 204068a2 call load_adc_init 
-68aa 6800c22d fetch 1 ,mem_adc_config_flag 
-68ab c00068af beq adc_config_vinlpm ,adc_init_data_vinlpm 
-68ac c000e8c3 beq adc_config_hvin ,adc_init_data_hvin 
-68ad c00168d7 beq adc_config_gpio ,adc_init_data_io 
-68ae 20600000 rtn 
-
-adc_init_data_vinlpm:
-68af 68094229 fetcht 2 ,mem_otp_adc_flag 
-68b0 5800aa55 setarg otp_adc_flag 
-68b1 98467c00 isub temp ,null 
-68b2 2022e8b8 branch adc_check_data_vinlpm ,zero 
-68b3 58004dfa setarg 0x4dfa 
-68b4 60014227 store 2 ,mem_3v_adc_vinlpm_data 
-68b5 58004894 setarg 0x4894 
-68b6 60014221 store 2 ,mem_2v_adc_vinlpm_data 
-68b7 202068c0 branch set_vdd_reference_voltage_1v 
-
-adc_check_data_vinlpm:
-68b8 68014227 fetch 2 ,mem_3v_adc_vinlpm_data 
-68b9 243a68bc nbranch adc_check_2v_vinlpm ,blank 
-68ba 58004dfa setarg 0x4dfa 
-68bb 60014227 store 2 ,mem_3v_adc_vinlpm_data 
-
-adc_check_2v_vinlpm:
-68bc 68014221 fetch 2 ,mem_2v_adc_vinlpm_data 
-68bd 243a68c0 nbranch set_vdd_reference_voltage_1v ,blank 
-68be 58004894 setarg 0x4894 
-68bf 60014221 store 2 ,mem_2v_adc_vinlpm_data 
-
-set_vdd_reference_voltage_1v:
-68c0 58000064 setarg 100 
-68c1 6001422b store 2 ,mem_reference_voltage 
-68c2 20600000 rtn 
-
-adc_init_data_hvin:
-68c3 68094229 fetcht 2 ,mem_otp_adc_flag 
-68c4 5800aa55 setarg otp_adc_flag 
-68c5 98467c00 isub temp ,null 
-68c6 2022e8cc branch adc_check_data_hvin ,zero 
-68c7 58005932 setarg 0x5932 
-68c8 60014225 store 2 ,mem_5v_adc_hvin_data 
-68c9 58004323 setarg 0x4323 
-68ca 6001421f store 2 ,mem_1v_adc_hvin_data 
-68cb 202068d4 branch set_vdd_reference_voltage_4v 
-
-adc_check_data_hvin:
-68cc 68014225 fetch 2 ,mem_5v_adc_hvin_data 
-68cd 243a68d0 nbranch adc_check_1v_hvin ,blank 
-68ce 58005932 setarg 0x5932 
-68cf 60014225 store 2 ,mem_5v_adc_hvin_data 
-
-adc_check_1v_hvin:
-68d0 6801421f fetch 2 ,mem_1v_adc_hvin_data 
-68d1 243a68d4 nbranch set_vdd_reference_voltage_4v ,blank 
-68d2 58004323 setarg 0x4323 
-68d3 6001421f store 2 ,mem_1v_adc_hvin_data 
-
-set_vdd_reference_voltage_4v:
-68d4 58000190 setarg 400 
-68d5 6001422b store 2 ,mem_reference_voltage 
-68d6 20600000 rtn 
-
-adc_init_data_io:
-68d7 68094229 fetcht 2 ,mem_otp_adc_flag 
-68d8 5800aa55 setarg otp_adc_flag 
-68d9 98467c00 isub temp ,null 
-68da 2022e8e0 branch adc_check_data_io ,zero 
-68db 58006946 setarg 0x6946 
-68dc 60014223 store 2 ,mem_1v_adc_io_data 
-68dd 58005377 setarg 0x5377 
-68de 6001421d store 2 ,mem_0_5_adc_io_data 
-68df 202068e8 branch set_vdd_reference_voltage_0_5v 
-
-adc_check_data_io:
-68e0 68014223 fetch 2 ,mem_1v_adc_io_data 
-68e1 243a68e4 nbranch adc_check_0_5v_io ,blank 
-68e2 58006946 setarg 0x6946 
-68e3 60014223 store 2 ,mem_1v_adc_io_data 
-
-adc_check_0_5v_io:
-68e4 6801421d fetch 2 ,mem_0_5_adc_io_data 
-68e5 243a68e8 nbranch set_vdd_reference_voltage_0_5v ,blank 
-68e6 58005377 setarg 0x5377 
-68e7 6001421d store 2 ,mem_0_5_adc_io_data 
-
-set_vdd_reference_voltage_0_5v:
-68e8 58000032 setarg 50 
-68e9 6001422b store 2 ,mem_reference_voltage 
-68ea 20600000 rtn 
-
-adc_set_mode:
-68eb 6800c22d fetch 1 ,mem_adc_config_flag 
-68ec c00068f0 beq adc_config_vinlpm ,adc_check_vinlpm 
-68ed c000e8f2 beq adc_config_hvin ,adc_check_hvin 
-68ee c00168f4 beq adc_config_gpio ,adc_check_gpio 
-68ef 20600000 rtn 
-
-adc_check_vinlpm:
-68f0 708971bf jam 0xbf ,rf_adc_mode 
-68f1 202068f8 branch read_adc 
-
-adc_check_hvin:
-68f2 708971af jam 0xaf ,rf_adc_mode 
-68f3 202068f8 branch read_adc 
-
-adc_check_gpio:
-68f4 7089718f jam 0x8f ,rf_adc_mode 
-68f5 6800c22e fetch 1 ,mem_adc_channel 
-68f6 60108973 hstore 1 ,rf_adc_ch 
-68f7 202068f8 branch read_adc 
-
-read_adc:
-68f8 474fc033 bpatchx patch33_7 ,mem_patch33 
-68f9 68108053 hfetch 1 ,core_uart_baud + 1 
-68fa 79207e07 set1 7 ,pdata 
-68fb 60108053 hstore 1 ,core_uart_baud + 1 
-68fc 68108973 hfetch 1 ,rf_adc_ch 
-68fd 1fe1fe30 or_into 0x30 ,pdata 
-68fe 60108973 hstore 1 ,rf_adc_ch 
-68ff 7089067c jam 0x7c ,rfen_adc 
-6900 708972aa jam 0xaa ,rf_adc_gc 
-6901 20001388 nop 5000 
-6902 68190150 hfetcht 2 ,core_adc_sum 
-6903 68108053 hfetch 1 ,core_uart_baud + 1 
-6904 793ffe07 set0 7 ,pdata 
-6905 60108053 hstore 1 ,core_uart_baud + 1 
-6906 6009422f storet 2 ,mem_adc_current_value 
-6907 20600000 rtn 
-
-vdd_calculate_by_mode:
-6908 47504034 bpatchx patch34_0 ,mem_patch34 
-6909 6800c22d fetch 1 ,mem_adc_config_flag 
-690a c000690e beq adc_config_vinlpm ,vdd_calculate_vinlpm 
-690b c000e912 beq adc_config_hvin ,vdd_calculate_hvin 
-690c c0016916 beq adc_config_gpio ,vdd_calculate_io 
-690d 20600000 rtn 
-
-vdd_calculate_vinlpm:
-690e 68014227 fetch 2 ,mem_3v_adc_vinlpm_data 
-690f 68094221 fetcht 2 ,mem_2v_adc_vinlpm_data 
-6910 da6000c8 arg 200 ,regc 
-6911 2020691a branch vdd_calculate 
-
-vdd_calculate_hvin:
-6912 68014225 fetch 2 ,mem_5v_adc_hvin_data 
-6913 6809421f fetcht 2 ,mem_1v_adc_hvin_data 
-6914 da600064 arg 100 ,regc 
-6915 2020691a branch vdd_calculate 
-
-vdd_calculate_io:
-6916 68014223 fetch 2 ,mem_1v_adc_io_data 
-6917 6809421d fetcht 2 ,mem_0_5_adc_io_data 
-6918 da600032 arg 50 ,regc 
-6919 2020691a branch vdd_calculate 
-
-vdd_calculate:
-691a 98462200 isub temp ,rega 
-691b 6801422f fetch 2 ,mem_adc_current_value 
-691c 98467e00 isub temp ,pdata 
-691d 24216927 nbranch vdd_calculate1 ,positive 
-691e 6809422b fetcht 2 ,mem_reference_voltage 
-691f 984fa400 imul32 temp ,regb 
-6920 1a627e00 copy regc ,pdata 
-6921 9a2ffe00 imul32 rega ,pdata 
-6922 9a40fe00 iadd regb ,pdata 
-
-vdd_calculate2:
-6923 9a26fc00 idiv rega 
-6924 20407f86 call wait_div_end 
-6925 1807fe00 quotient pdata 
-6926 20600000 rtn 
-
-vdd_calculate1:
-6927 18427e00 copy temp ,pdata 
-6928 6809422f fetcht 2 ,mem_adc_current_value 
-6929 98467e00 isub temp ,pdata 
-692a 6809422b fetcht 2 ,mem_reference_voltage 
-692b 984fa400 imul32 temp ,regb 
-692c 1a627e00 copy regc ,pdata 
-692d 9a2ffe00 imul32 rega ,pdata 
-692e 9a467e00 isub regb ,pdata 
-692f 20206923 branch vdd_calculate2 
-
-adc_bat_percent_lowpower_out:
-6930 ea240000 ifetch 8 ,rega 
-6931 60040a9a store 8 ,mem_pdatatemp 
-6932 68010a9a fetch 2 ,mem_pdatatemp 
-6933 68090a9c fetcht 2 ,mem_pdatatemp + 2 
-6934 98462200 isub temp ,rega 
-6935 68010aa0 fetch 2 ,mem_pdatatemp + 6 
-6936 98462400 isub temp ,regb 
-6937 68090a9e fetcht 2 ,mem_pdatatemp + 4 
-6938 98467c00 isub temp ,null 
-6939 24416940 ncall adc_set_low_power_flag ,positive 
-693a 1a4ffe64 mul32 regb ,100 ,pdata 
-693b 9a26fc00 idiv rega 
-693c 20407f86 call wait_div_end 
-693d 1807fe00 quotient pdata 
-693e 205a6944 call adc_set_no_power_flag ,blank 
-693f 20600000 rtn 
-
-adc_set_low_power_flag:
-6940 6800c231 fetch 1 ,mem_adc_power_flag 
-6941 79207e00 set1 0 ,pdata 
-6942 6000c231 store 1 ,mem_adc_power_flag 
-6943 20600000 rtn 
-
-adc_set_no_power_flag:
-6944 6808c231 fetcht 1 ,mem_adc_power_flag 
-6945 79200401 set1 1 ,temp 
-6946 6008c231 storet 1 ,mem_adc_power_flag 
-6947 20600000 rtn 
-
-keyscan_key_init:
-6948 6801423d fetch 2 ,mem_key_num_ptr 
-6949 efe08000 ifetch 1 ,pdata 
-
-keyscan_key_init_next:
-694a 207a0000 rtn blank 
-694b 1fe27200 copy pdata ,loopcnt 
-694c 6801423d fetch 2 ,mem_keyscan_ptr 
-694d 1fe0fe03 increase 3 ,pdata 
-694e 1fe22200 copy pdata ,rega 
-
-keyscan_key_init_lp1:
-694f ea288000 ifetcht 1 ,rega 
-6950 204067fb call gpio_config_input 
-6951 1a20a201 increase key_conf_struct_len ,rega 
-6952 c200694f loop keyscan_key_init_lp1 
-
-keyscan_key_init_end:
-6953 20600000 rtn 
-
-keyscan_scan_key:
-6954 6801423d fetch 2 ,mem_keyscan_ptr 
-6955 1fe0fe03 increase 3 ,pdata 
-6956 1fe22200 copy pdata ,rega 
-6957 18002400 force 0 ,regb 
-6958 700b1200 jam 0 ,mem_key_value_temp 
-
-keyscan_scan_key_lp1:
-6959 ea288000 ifetcht 1 ,rega 
-695a 2040681d call gpio_get_bit 
-695b 4750c034 bpatchx patch34_1 ,mem_patch34 
-695c 68010b12 fetch 2 ,mem_key_value_temp 
-695d 1a420e00 copy regb ,queue 
-695e f920fe00 qsetflag true ,pdata 
-695f 60010b12 store 2 ,mem_key_value_temp 
-6960 1a20a201 increase key_conf_struct_len ,rega 
-6961 1a40a401 increase 1 ,regb 
-6962 6801423d fetch 2 ,mem_key_num_ptr 
-6963 efe08000 ifetch 1 ,pdata 
-
-keyscan_scan_key_lp1_next:
-6964 9a42fc00 ixor regb ,null 
-6965 2422e959 nbranch keyscan_scan_key_lp1 ,zero 
-6966 68010b12 fetch 2 ,mem_key_value_temp 
-6967 68090b14 fetcht 2 ,mem_key_value 
-6968 9842fc00 ixor temp ,null 
-6969 20628000 rtn zero 
-696a 78347c00 enable user 
-696b 20600000 rtn 
-
-keyscan_process_lpm_before:
-696c 6801423d fetch 2 ,mem_key_num_ptr 
-696d efe08000 ifetch 1 ,pdata 
-
-keyscan_process_lpm_before_next:
-696e 207a0000 rtn blank 
-696f 1fe27200 copy pdata ,loopcnt 
-6970 6801423d fetch 2 ,mem_keyscan_ptr 
-6971 1fe0fe03 increase 3 ,pdata 
-6972 1fe22200 copy pdata ,rega 
-
-keyscan_process_lpm_before_lp1:
-6973 ea288000 ifetcht 1 ,rega 
-6974 204067dd call gpio_set_wake_by_current_state 
-6975 1a20a201 increase key_conf_struct_len ,rega 
-6976 c2006973 loop keyscan_process_lpm_before_lp1 
-
-keyscan_process_lpm_before_end:
-6977 20600000 rtn 
-
-keyscan_key_process:
-6978 d8e00009 arg key_scan_timer ,queue 
-6979 20407f16 call timer_check 
-697a 247a0000 nrtn blank 
-697b 58000020 setarg 0x20 
-697c d8e00009 arg key_scan_timer ,queue 
-697d 20407f08 call timer_init 
-697e 78547c00 disable user 
-697f 2040696c call keyscan_process_lpm_before 
-6980 47514034 bpatchx patch34_2 ,mem_patch34 
-6981 6801423d fetch 2 ,mem_key_num_ptr 
-6982 efe08000 ifetch 1 ,pdata 
-
-keyscan_key_process_next:
-6983 207a0000 rtn blank 
-6984 20406954 call keyscan_scan_key 
-6985 24347d02 nbranch lpm_button_clean_wake_lock ,user 
-6986 20407d00 call lpm_button_get_wake_lock 
-6987 78547c00 disable user 
-6988 68010b12 fetch 2 ,mem_key_value_temp 
-6989 60010b19 store 2 ,mem_key_value_temp4 
-698a 700b1b00 jam 0 ,mem_key_value_temp6 
-698b 18000e00 force 0 ,queue 
-
-keyscan_key_lp1:
-698c 68010b14 fetch 2 ,mem_key_value 
-698d 1fe30400 rshift pdata ,temp 
-698e 60090b14 storet 2 ,mem_key_value 
-698f 1fe17e01 and pdata ,0x01 ,pdata 
-6990 68090b19 fetcht 2 ,mem_key_value_temp4 
-6991 18412201 and temp ,0x01 ,rega 
-6992 18430400 rshift temp ,temp 
-6993 60090b19 storet 2 ,mem_key_value_temp4 
-6994 9a22fc00 ixor rega ,null 
-6995 2442e9a1 ncall keyscan_send_key_data ,zero 
-6996 6801423d fetch 2 ,mem_key_num_ptr 
-6997 efe08000 ifetch 1 ,pdata 
-
-keyscan_key_lp1_next:
-6998 68088b1b fetcht 1 ,mem_key_value_temp6 
-6999 18408401 increase 1 ,temp 
-699a 60088b1b storet 1 ,mem_key_value_temp6 
-699b 18420e00 copy temp ,queue 
-699c 98e2fc00 ixor queue ,null 
-699d 2422e98c nbranch keyscan_key_lp1 ,zero 
-699e 68010b12 fetch 2 ,mem_key_value_temp 
-699f 60010b14 store 2 ,mem_key_value 
-69a0 20600000 rtn 
-
-keyscan_send_key_data:
-69a1 4751c034 bpatchx patch34_3 ,mem_patch34 
-69a2 6801423d fetch 2 ,mem_keyscan_ptr 
-69a3 1fe0fe01 increase 1 ,pdata 
-69a4 efe10000 ifetch 2 ,pdata 
-69a5 20207f9c branch callback_func 
-
-pwm_init:
-69a6 68108042 hfetch 1 ,core_clksel 
-69a7 9a21fe00 ior rega ,pdata 
-69a8 60108042 hstore 1 ,core_clksel 
-69a9 68110050 hfetch 2 ,core_clkoff 
-69aa 793ffe0d set0 clock_off_pwm ,pdata 
-69ab 60110050 hstore 2 ,core_clkoff 
-69ac 20000064 nop 100 
-69ad 20600000 rtn 
-
-pwm_out_set:
-69ae 68098a9c fetcht 3 ,mem_pdatatemp + 2 
-69af 58b71b00 setarg pwm_12mhz 
-69b0 9846fc00 idiv temp 
-69b1 20407f86 call wait_div_end 
-69b2 18078400 quotient temp 
-69b3 68008a9f fetch 1 ,mem_pdatatemp + 5 
-69b4 984ffe00 imul32 temp ,pdata 
-69b5 1fe6fc64 div pdata ,100 
-69b6 20407f86 call wait_div_end 
-69b7 1807a200 quotient rega 
-69b8 18427e00 copy temp ,pdata 
-69b9 9a262400 isub rega ,regb 
-69ba 68008a9b fetch 1 ,mem_pdatatemp + 1 
-69bb 204069be call pwm_duty_cycle_set 
-69bc 68008a9a fetch 1 ,mem_pdatatemp 
-69bd 202069d5 branch pwm_enable 
-
-pwm_duty_cycle_set:
-69be c00069c4 beq 0 ,pwm_pwm0_duty_set 
-69bf c000e9c6 beq 1 ,pwm_pwm1_duty_set 
-69c0 c00169c8 beq 2 ,pwm_pwm2_duty_set 
-69c1 c001e9ca beq 3 ,pwm_pwm3_duty_set 
-69c2 c00269cc beq 4 ,pwm_pwm4_duty_set 
-69c3 c002e9ce beq 5 ,pwm_pwm5_duty_set 
-
-pwm_pwm0_duty_set:
-69c4 d8a080a0 arg core_pwm_pcnt0 ,contw 
-69c5 202069d0 branch pwm_set_pncnt 
-
-pwm_pwm1_duty_set:
-69c6 d8a080a4 arg core_pwm_pcnt1 ,contw 
-69c7 202069d0 branch pwm_set_pncnt 
-
-pwm_pwm2_duty_set:
-69c8 d8a080a8 arg core_pwm_pcnt2 ,contw 
-69c9 202069d0 branch pwm_set_pncnt 
-
-pwm_pwm3_duty_set:
-69ca d8a08064 arg core_pwm_pcnt3 ,contw 
-69cb 202069d0 branch pwm_set_pncnt 
-
-pwm_pwm4_duty_set:
-69cc d8a08068 arg core_pwm_pcnt4 ,contw 
-69cd 202069d0 branch pwm_set_pncnt 
-
-pwm_pwm5_duty_set:
-69ce d8a0806c arg core_pwm_pcnt5 ,contw 
-69cf 202069d0 branch pwm_set_pncnt 
-
-pwm_set_pncnt:
-69d0 1a227e00 copy rega ,pdata 
-69d1 e0a10000 istore 2 ,contw 
-69d2 1a427e00 copy regb ,pdata 
-69d3 e0a10000 istore 2 ,contw 
-69d4 20600000 rtn 
-
-pwm_enable:
-69d5 78347c00 enable user 
-69d6 202069d8 branch pwm_gpio_set 
-
-pwm_disable:
-69d7 78547c00 disable user 
-
-pwm_gpio_set:
-69d8 c00269e3 beq 4 ,pwm_gpio4_set 
-69d9 c002e9e5 beq 5 ,pwm_gpio5_set 
-69da c00de9e7 beq 27 ,pwm_gpio27_set 
-69db c00e69e9 beq 28 ,pwm_gpio28_set 
-69dc c001e9eb beq 3 ,pwm_gpio3_set 
-69dd c00469ed beq 8 ,pwm_gpio8_set 
-69de c00a69ef beq 20 ,pwm_gpio20_set 
-69df c00ae9f1 beq 21 ,pwm_gpio21_set 
-69e0 c00b69f3 beq 22 ,pwm_gpio22_set 
-69e1 c00be9f5 beq 23 ,pwm_gpio23_set 
-69e2 20600000 rtn 
-
-pwm_gpio4_set:
-69e3 d8e00006 arg 6 ,queue 
-69e4 202069ff branch pwm_one_set_select 
-
-pwm_gpio5_set:
-69e5 d8e00007 arg 7 ,queue 
-69e6 202069ff branch pwm_one_set_select 
-
-pwm_gpio27_set:
-69e7 d8e00008 arg 8 ,queue 
-69e8 202069ff branch pwm_one_set_select 
-
-pwm_gpio28_set:
-69e9 d8e00009 arg 9 ,queue 
-69ea 202069ff branch pwm_one_set_select 
-
-pwm_gpio3_set:
-69eb d8e0000a arg 10 ,queue 
-69ec 202069ff branch pwm_one_set_select 
-
-pwm_gpio8_set:
-69ed d8e0000b arg 11 ,queue 
-69ee 202069ff branch pwm_one_set_select 
-
-pwm_gpio20_set:
-69ef d8e0000c arg 12 ,queue 
-69f0 20206a01 branch pwm_tw0_set_select 
-
-pwm_gpio21_set:
-69f1 d8e0000d arg 13 ,queue 
-69f2 20206a01 branch pwm_tw0_set_select 
-
-pwm_gpio22_set:
-69f3 d8e0000e arg 14 ,queue 
-69f4 20206a01 branch pwm_tw0_set_select 
-
-pwm_gpio23_set:
-69f5 d8e0000f arg 15 ,queue 
-69f6 20206a01 branch pwm_tw0_set_select 
-
-pwm_set_select:
-69f7 68110081 hfetch 2 ,core_gpio_sel1 
-69f8 f9347e00 qsetflag user ,pdata 
-69f9 60110081 hstore 2 ,core_gpio_sel1 
-69fa 1a220e00 copy rega ,queue 
-69fb 68108085 hfetch 1 ,core_gpio_key2 
-69fc f9347e00 qsetflag user ,pdata 
-69fd 60108085 hstore 1 ,core_gpio_key2 
-69fe 20600000 rtn 
-
-pwm_one_set_select:
-69ff 18e0a3fc add queue ,-4 ,rega 
-6a00 202069f7 branch pwm_set_select 
-
-pwm_tw0_set_select:
-6a01 18e0a3f6 add queue ,-10 ,rega 
-6a02 202069f7 branch pwm_set_select 
-
-rfcomm_init:
-6a03 20758000 rtn wake 
-6a04 70456700 jam 0 ,mem_rfcomm_send_more_pkt 
-6a05 7004ed03 jam bits9600 ,memremoterpnbitrate 
-6a06 7004ee03 jam databits8 ,memremoteprndatabits 
-6a07 7004f211 jam 0x11 ,memremoteprnxon 
-6a08 7004f313 jam 0x13 ,memremoteprnxoff 
-6a09 58000000 setarg 0 
-6a0a 600184ef store 3 ,memremoteprnstopbit 
-6a0b 6000c254 store 1 ,mem_spp_state 
-6a0c 70468100 jam 0 ,memui_reconnect_mode 
-
-rfcomm_init_spp:
-6a0d 47524034 bpatchx patch34_4 ,mem_patch34 
-6a0e 58000000 setarg 0 
-6a0f 6000c254 store 1 ,mem_spp_state 
-6a10 6000c564 store 1 ,mem_remote_spp_channel 
-6a11 6000c55d store 1 ,mem_pn_dlci 
-6a12 6800c56b fetch 1 ,mem_credit_flag 
-6a13 c000ea16 beq credit_enable ,rfcomm_init_spp_with_credit 
-6a14 70456950 jam 0x50 ,mem_credit_given 
-6a15 20600000 rtn 
-
-rfcomm_init_spp_with_credit:
-6a16 70456900 jam 0x00 ,mem_credit_given 
-6a17 20600000 rtn 
-
-set_cr_bit:
-6a18 18418402 or_into 0x02 ,temp 
-6a19 20600000 rtn 
-
-rfcomm_calculate_fcs_sabm:
-6a1a 18427e00 copy temp ,pdata 
-6a1b 1fedfe00 reverse pdata ,pdata 
-6a1c 6000c562 store 1 ,memfcstemp3 
-6a1d 18007e3f force ini_tx_sabm ,pdata 
-6a1e 1fedfe00 reverse pdata ,pdata 
-6a1f 6000c561 store 1 ,memfcstemp2 
-6a20 18007e01 force 0x01 ,pdata 
-6a21 1fedfe00 reverse pdata ,pdata 
-6a22 6000c560 store 1 ,memfcstemp1 
-6a23 20406a50 call caculate_fcs 
-6a24 18427e00 copy temp ,pdata 
-6a25 20600000 rtn 
-
-rfcomm_calculate_fcs_ua:
-6a26 1fedfe00 reverse pdata ,pdata 
-6a27 6000c562 store 1 ,memfcstemp3 
-6a28 18007e73 force rsp_tx_ua ,pdata 
-6a29 1fedfe00 reverse pdata ,pdata 
-6a2a 6000c561 store 1 ,memfcstemp2 
-6a2b 18007e01 force 0x01 ,pdata 
-6a2c 1fedfe00 reverse pdata ,pdata 
-6a2d 6000c560 store 1 ,memfcstemp1 
-6a2e 20206a50 branch caculate_fcs 
-
-rfcomm_calculate_fcs_dlci0:
-6a2f 6800c563 fetch 1 ,mem_rfcomm_initiator 
-6a30 203a6a33 branch rfcomm_calculate_fcs_dlci0_res ,blank 
-6a31 58000070 setarg 0x70 
-6a32 20600000 rtn 
-
-rfcomm_calculate_fcs_dlci0_res:
-6a33 580000aa setarg 0xaa 
-6a34 20600000 rtn 
-
-rfcomm_save_fcs_uih:
-6a35 1fedfe00 reverse pdata ,pdata 
-6a36 6000c562 store 1 ,memfcstemp3 
-6a37 18007eef force rsp_rx_uih ,pdata 
-6a38 20406a44 call caculate_uihdata_fcs 
-6a39 680904f7 fetcht 2 ,mem_contw_temp 
-6a3a 18420a00 copy temp ,contw 
-6a3b e0a08000 istore 1 ,contw 
-6a3c 18a20400 copy contw ,temp 
-6a3d 600904f7 storet 2 ,mem_contw_temp 
-6a3e 18007eff force rsp_rx_uih_wdata ,pdata 
-6a3f 20406a44 call caculate_uihdata_fcs 
-6a40 680904f7 fetcht 2 ,mem_contw_temp 
-6a41 18420a00 copy temp ,contw 
-6a42 e0a08000 istore 1 ,contw 
-6a43 20600000 rtn 
-
-caculate_uihdata_fcs:
-6a44 1fedfe00 reverse pdata ,pdata 
-6a45 6000c561 store 1 ,memfcstemp2 
-6a46 68014561 fetch 2 ,memfcstemp2 
-6a47 1fed7e00 lshift8 pdata ,pdata 
-6a48 600184f4 store 3 ,mem_mod2div_temp 
-6a49 da200107 arg 0x107 ,rega 
-6a4a da40000f arg 0xf ,regb 
-6a4b 20406a5d call mod2div 
-6a4c 1fe2fed7 xor_into 0xd7 ,pdata 
-6a4d 1fe47e00 invert pdata ,pdata 
-6a4e 1fedfe00 reverse pdata ,pdata 
-6a4f 20600000 rtn 
-
-caculate_fcs:
-6a50 6801c560 fetch 3 ,memfcstemp1 
-6a51 600184f4 store 3 ,mem_mod2div_temp 
-6a52 da200107 arg 0x107 ,rega 
-6a53 da40000f arg 0xf ,regb 
-6a54 20406a5d call mod2div 
-6a55 1fed7e00 lshift8 pdata ,pdata 
-6a56 da400007 arg 0x7 ,regb 
-6a57 20406a5d call mod2div 
-6a58 1fe2fe2b xor_into 0x2b ,pdata 
-6a59 1fe47e00 invert pdata ,pdata 
-6a5a 1fedfe00 reverse pdata ,pdata 
-6a5b 1fe20400 copy pdata ,temp 
-6a5c 20600000 rtn 
-
-mod2div:
-6a5d da600000 arg 0 ,regc 
-6a5e 1a427200 copy regb ,loopcnt 
-6a5f 20407e71 call right_shift_n 
-6a60 1fe20400 icopy temp 
-
-mod2div_loop:
-6a61 18427e00 copy temp ,pdata 
-6a62 1a63a600 lshift regc ,regc 
-6a63 c3046a66 bbit0 8 ,mod2div_not_enough_reduction 
-6a64 9a228400 ixor rega ,temp 
-6a65 1a60a601 increase 1 ,regc 
-
-mod2div_not_enough_reduction:
-6a66 18438400 lshift temp ,temp 
-6a67 680184f4 fetch 3 ,mem_mod2div_temp 
-6a68 1a40a5ff increase -1 ,regb 
-6a69 2a41feff compare 0xff ,regb ,0xff 
-6a6a 2020ea70 branch mod2div_end ,true 
-6a6b 1a427200 copy regb ,loopcnt 
-6a6c 20407e71 call right_shift_n 
-6a6d 2feffe00 isolate1 0 ,pdata 
-6a6e 79208400 setflag true ,0 ,temp 
-6a6f 20206a61 branch mod2div_loop 
-
-mod2div_end:
-6a70 18437e00 rshift temp ,pdata 
-6a71 20600000 rtn 
-
-get_rfcomm_snd_adss:
-6a72 6808c55d fetcht 1 ,mem_pn_dlci 
-
-dlci_to_address_cmd:
-6a73 184b8400 lshift2 temp ,temp 
-6a74 79200400 set1 rfcomm_address_ext_len ,temp 
-6a75 6800c563 fetch 1 ,mem_rfcomm_initiator 
-6a76 245a6a18 ncall set_cr_bit ,blank 
-6a77 6008850d storet 1 ,mem_rfcomm_send_adss 
-6a78 20600000 rtn 
-
-channel_to_dlci:
-6a79 18438400 lshift temp ,temp 
-6a7a 6800c563 fetch 1 ,mem_rfcomm_initiator 
-6a7b 793a0400 setflag blank ,0 ,temp 
-6a7c 20600000 rtn 
-
-rfcomm_rx_process_dlci0_sabm:
-6a7d 680884fc fetcht 1 ,mem_current_channel 
-6a7e 7004fed7 jam 0xd7 ,mem_current_fcs 
-6a7f 20406bb6 call rfcomm_send_ua 
-6a80 6800c251 fetch 1 ,mem_rfcomm_state 
-6a81 79207e06 set1 l2cap_channel_rfcomm_only_sabm ,pdata 
-6a82 79207e07 set1 l2cap_channel_rfcomm_only_ua ,pdata 
-6a83 6000c251 store 1 ,mem_rfcomm_state 
-6a84 70456300 jam 0 ,mem_rfcomm_initiator 
-6a85 20206b97 branch rfcomm_rx_process_end 
-
-rfcomm_rx_process_dlci0_ua:
-6a86 6800c251 fetch 1 ,mem_rfcomm_state 
-6a87 79207e07 set1 l2cap_channel_rfcomm_only_ua ,pdata 
-6a88 6000c251 store 1 ,mem_rfcomm_state 
-6a89 20206b97 branch rfcomm_rx_process_end 
-
-rfcomm_rx_process:
-6a8a 4752c034 bpatchx patch34_5 ,mem_patch34 
-6a8b 6800c681 fetch 1 ,memui_reconnect_mode 
-6a8c c0006a8e beq no_reconnection ,rfcomm_rx_process_remote_page 
-6a8d 20206b4c branch rfcomm_rx_process_reconn 
-
-rfcomm_rx_process_remote_page:
-6a8e 68010264 fetch 2 ,mem_l2cap_payload_ptr 
-6a8f 1fe20c00 copy pdata ,contr 
-6a90 20406ab8 call get_rfcomm_head_struct 
-6a91 680084fc fetch 1 ,mem_current_channel 
-6a92 c0006a94 beq 0 ,parse_dlci0_rp 
-6a93 20206b18 branch parse_uih_rp 
-
-parse_dlci0_rp:
-6a94 47534034 bpatchx patch34_6 ,mem_patch34 
-6a95 680084fd fetch 1 ,mem_current_frame_type 
-6a96 c01fea7d beq rfcomm_frame_type_sabm ,rfcomm_rx_process_dlci0_sabm 
-6a97 c039ea86 beq rfcomm_frame_type_ua ,rfcomm_rx_process_dlci0_ua 
-6a98 c077ea9b beq rfcomm_frame_type_uih ,parse_dlci0_rp_uih 
-6a99 c029eb44 beq rfcomm_frame_type_disconn ,parse_uih_rp_spp_disconn_send_event 
-6a9a 20600000 rtn 
-
-parse_dlci0_rp_uih:
-6a9b 68010501 fetch 2 ,mem_rfcomm_uih_payload_ptr 
-6a9c 1fe20c00 copy pdata ,contr 
-6a9d 20406ac3 call get_rfcomm_uih_head_struct 
-6a9e 68008503 fetch 1 ,mem_uih_cmd_type 
-6a9f c020eaa5 beq uih_param_neg_cmd ,parse_dlci0_rp_uih_pn_cmd 
-6aa0 c0206aad beq uih_param_neg_res ,parse_dlci0_rp_uih_pn_res 
-6aa1 c038eae6 beq uih_modem_status_cmd ,parse_dlci0_rp_uih_ms_cmd 
-6aa2 c0386af2 beq uih_modem_status_res ,parse_dlci0_rp_uih_ms_res 
-6aa3 c024eafd beq uih_param_cmd_remove_port ,parse_dlci0_rp_uih_cmd_port 
-6aa4 20206b97 branch rfcomm_rx_process_end 
-
-parse_dlci0_rp_uih_pn_cmd:
-6aa5 20406aaf call parse_dlci0_rp_uih_pn_res_common 
-6aa6 20206aa7 branch parse_dlci0_rp_uih_pn_cmd_spp 
-
-parse_dlci0_rp_uih_pn_cmd_spp:
-6aa7 6800c254 fetch 1 ,mem_spp_state 
-6aa8 79207e00 set1 rfcomm_channel_state_pn_cmd ,pdata 
-6aa9 79207e01 set1 rfcomm_channel_state_pn_res ,pdata 
-6aaa 6000c254 store 1 ,mem_spp_state 
-6aab 20406be0 call rfcomm_send_param_neg_res 
-6aac 20206b97 branch rfcomm_rx_process_end 
-
-parse_dlci0_rp_uih_pn_res:
-6aad 20406aaf call parse_dlci0_rp_uih_pn_res_common 
-6aae 20206b97 branch rfcomm_rx_process_end 
-
-parse_dlci0_rp_uih_pn_res_common:
-6aaf 20406acb call get_param_payload_ptr 
-6ab0 20206ad7 branch get_rfcomm_prarmer_negotiation 
-
-get_rfcomm_param_modem_status:
-6ab1 20406acb call get_param_payload_ptr 
-6ab2 e8c08000 ifetch 1 ,contr 
-6ab3 1fe97e00 rshift3 pdata ,pdata 
-6ab4 6000c56a store 1 ,mem_ms_channel 
-6ab5 e8c08000 ifetch 1 ,contr 
-6ab6 60008508 store 1 ,mem_ms_param 
-6ab7 20600000 rtn 
-
-get_rfcomm_head_struct:
-6ab8 e8c08000 ifetch 1 ,contr 
-6ab9 600084fb store 1 ,mem_current_adss 
-6aba 1fe97e00 rshift3 pdata ,pdata 
-6abb 600084fc store 1 ,mem_current_channel 
-6abc e8c08000 ifetch 1 ,contr 
-6abd 600084fd store 1 ,mem_current_frame_type 
-
-get_rfcomm_current_length:
-6abe 20406ace call get_rfcomm_length_common 
-6abf 600904ff storet 2 ,mem_current_length 
-6ac0 18c27e00 copy contr ,pdata 
-6ac1 60010501 store 2 ,mem_rfcomm_uih_payload_ptr 
-6ac2 20600000 rtn 
-
-get_rfcomm_uih_head_struct:
-6ac3 e8c08000 ifetch 1 ,contr 
-6ac4 1fe37e00 rshift pdata ,pdata 
-6ac5 60008503 store 1 ,mem_uih_cmd_type 
-6ac6 20406ace call get_rfcomm_length_common 
-6ac7 60090504 storet 2 ,mem_uih_length 
-6ac8 18c27e00 copy contr ,pdata 
-6ac9 60010506 store 2 ,mem_param_payload_ptr 
-6aca 20600000 rtn 
-
-get_param_payload_ptr:
-6acb 68010506 fetch 2 ,mem_param_payload_ptr 
-6acc 1fe20c00 copy pdata ,contr 
-6acd 20600000 rtn 
-
-get_rfcomm_length_common:
-6ace e8c08000 ifetch 1 ,contr 
-6acf 1fe20400 copy pdata ,temp 
-6ad0 18430400 rshift temp ,temp 
-6ad1 c3800000 rtnbit1 0 
-6ad2 e8c08000 ifetch 1 ,contr 
-6ad3 1fe9fe00 lshift3 pdata ,pdata 
-6ad4 1ff27e00 lshift4 pdata ,pdata 
-6ad5 98408400 iadd temp ,temp 
-6ad6 20600000 rtn 
-
-get_rfcomm_prarmer_negotiation:
-6ad7 e8c08000 ifetch 1 ,contr 
-6ad8 6000c55d store 1 ,mem_pn_dlci 
-6ad9 e8c08000 ifetch 1 ,contr 
-6ada 60008509 store 1 ,mem_pn_credit_flow_type_info 
-6adb e8c08000 ifetch 1 ,contr 
-6adc 6000850a store 1 ,mem_pn_priority 
-6add e8c08000 ifetch 1 ,contr 
-6ade 6000850b store 1 ,mem_pn_acknowledg_timer 
-6adf e8c10000 ifetch 2 ,contr 
-6ae0 6001455e store 2 ,mem_pn_max_frame_size 
-6ae1 e8c08000 ifetch 1 ,contr 
-6ae2 6000850c store 1 ,mem_pn_max_retrans 
-6ae3 e8c08000 ifetch 1 ,contr 
-6ae4 6000c568 store 1 ,mem_remote_credits 
-6ae5 20600000 rtn 
-
-parse_dlci0_rp_uih_ms_cmd:
-6ae6 20406ab1 call get_rfcomm_param_modem_status 
-6ae7 20206ae8 branch parse_dlci0_rp_uih_ms_cmd_spp 
-
-parse_dlci0_rp_uih_ms_cmd_spp:
-6ae8 6800c254 fetch 1 ,mem_spp_state 
-6ae9 79207e05 set1 rfcomm_channel_state_rcv_ms_cmd ,pdata 
-6aea 79207e06 set1 rfcomm_channel_state_snd_ms_res ,pdata 
-6aeb 6000c254 store 1 ,mem_spp_state 
-6aec 6808c55d fetcht 1 ,mem_pn_dlci 
-6aed 184b8400 lshift2 temp ,temp 
-6aee 18418403 or_into 3 ,temp 
-6aef 20406c11 call rfcomm_send_modem_status_res 
-6af0 70456703 jam more_pkt_msc_cmd_spp ,mem_rfcomm_send_more_pkt 
-6af1 20206b97 branch rfcomm_rx_process_end 
-
-parse_dlci0_rp_uih_ms_res:
-6af2 700a9908 jam bt_evt_spp_connected ,mem_fifo_temp 
-6af3 20407d86 call ui_ipc_send_event 
-6af4 20406ab1 call get_rfcomm_param_modem_status 
-6af5 6800c56a fetch 1 ,mem_ms_channel 
-6af6 1fe67c01 sub pdata ,1 ,null 
-6af7 2022eaf9 branch parse_dlci0_rp_uih_ms_res_spp ,zero 
-6af8 20202a8c branch assert 
-
-parse_dlci0_rp_uih_ms_res_spp:
-6af9 6800c254 fetch 1 ,mem_spp_state 
-6afa 79207e07 set1 rfcomm_channel_state_rcv_ms_res ,pdata 
-6afb 6000c254 store 1 ,mem_spp_state 
-6afc 20206b97 branch rfcomm_rx_process_end 
-
-parse_dlci0_rp_uih_cmd_port:
-6afd 20406acb call get_param_payload_ptr 
-6afe e8c08000 ifetch 1 ,contr 
-6aff 60008ac2 store 1 ,mem_rpn_dlci 
-6b00 204052d2 call l2cap_malloc_rfcomm_channel 
-6b01 204052e0 call l2cap_get_rfcomm_tx_buff 
-6b02 5800000e setarg 0x000e 
-6b03 e0a10000 istore 2 ,contw 
-6b04 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-6b05 e0a10000 istore 2 ,contw 
-6b06 6800c563 fetch 1 ,mem_rfcomm_initiator 
-6b07 1fe3fe00 lshift pdata ,pdata 
-6b08 79207e00 set1 0 ,pdata 
-6b09 e0a08000 istore 1 ,contw 
-6b0a 4753c034 bpatchx patch34_7 ,mem_patch34 
-6b0b 580015ef setarg 0x15ef 
-6b0c e0a10000 istore 2 ,contw 
-6b0d 58001191 setarg 0x1191 
-6b0e e0a10000 istore 2 ,contw 
-6b0f 68008ac2 fetch 1 ,mem_rpn_dlci 
-6b10 e0a08000 istore 1 ,contw 
-6b11 58000007 setarg 0x000007 
-6b12 e0a28000 istore 5 ,contw 
-6b13 58000001 setarg 0x01 
-6b14 e0a10000 istore 2 ,contw 
-6b15 20406a2f call rfcomm_calculate_fcs_dlci0 
-6b16 e0a08000 istore 1 ,contw 
-6b17 20600000 rtn 
-
-parse_uih_rp:
-6b18 20206b19 branch parse_uih_rp_spp 
-
-parse_uih_rp_spp:
-6b19 47544035 bpatchx patch35_0 ,mem_patch35 
-6b1a 680084fd fetch 1 ,mem_current_frame_type 
-6b1b c039eb21 beq rfcomm_frame_type_ua ,parse_uih_rp_spp_ua 
-6b1c c01feb25 beq rfcomm_frame_type_sabm ,parse_uih_rp_spp_sabm 
-6b1d c077eb3f beq rfcomm_frame_type_uih ,parse_uih_spp_uih 
-6b1e c07feb37 beq rfcomm_frame_type_uih_credits ,parse_uih_spp_uih_credits 
-6b1f c029eb46 beq rfcomm_frame_type_disconn ,parse_uih_rp_spp_disconn 
-6b20 20600000 rtn 
-
-parse_uih_rp_spp_ua:
-6b21 6800c254 fetch 1 ,mem_spp_state 
-6b22 79207e03 set1 rfcomm_channel_state_ua ,pdata 
-6b23 6000c254 store 1 ,mem_spp_state 
-6b24 20206b97 branch rfcomm_rx_process_end 
-
-parse_uih_rp_spp_sabm:
-6b25 6800c254 fetch 1 ,mem_spp_state 
-6b26 79207e03 set1 rfcomm_channel_state_ua ,pdata 
-6b27 79207e02 set1 rfcomm_channel_state_sabm ,pdata 
-6b28 6000c254 store 1 ,mem_spp_state 
-6b29 680084fb fetch 1 ,mem_current_adss 
-6b2a 20406a26 call rfcomm_calculate_fcs_ua 
-6b2b 600084fe store 1 ,mem_current_fcs 
-6b2c 20406bb6 call rfcomm_send_ua 
-6b2d 680084fb fetch 1 ,mem_current_adss 
-6b2e 1feb7e00 rshift2 pdata ,pdata 
-6b2f 6000c55d store 1 ,mem_pn_dlci 
-6b30 1febfe00 lshift2 pdata ,pdata 
-6b31 793ffe01 set0 rfcomm_address_cr ,pdata 
-6b32 79207e00 set1 rfcomm_address_ext_len ,pdata 
-6b33 d8404565 arg mem_hiufcs_spp ,temp 
-6b34 600904f7 storet 2 ,mem_contw_temp 
-6b35 20406a35 call rfcomm_save_fcs_uih 
-6b36 20206b97 branch rfcomm_rx_process_end 
-
-parse_uih_spp_uih_credits:
-6b37 68010501 fetch 2 ,mem_rfcomm_uih_payload_ptr 
-6b38 1fe20c00 copy pdata ,contr 
-6b39 1fe0fe01 increase 1 ,pdata 
-6b3a 60010501 store 2 ,mem_rfcomm_uih_payload_ptr 
-6b3b e8c08000 ifetch 1 ,contr 
-6b3c 6808c568 fetcht 1 ,mem_remote_credits 
-6b3d 9840fe00 iadd temp ,pdata 
-6b3e 6000c568 store 1 ,mem_remote_credits 
-
-parse_uih_spp_uih:
-6b3f 20406c42 call rfcomm_increase_credit_given 
-
-parse_uih_spp_uih_cont:
-6b40 20406a72 call get_rfcomm_snd_adss 
-6b41 20406c28 call rfcomm_send_uih_without_payload 
-6b42 20406c4b call spp_process_rx_data 
-6b43 20206b97 branch rfcomm_rx_process_end 
-
-parse_uih_rp_spp_disconn_send_event:
-6b44 700a9909 jam bt_evt_spp_disconnected ,mem_fifo_temp 
-6b45 20407d86 call ui_ipc_send_event 
-
-parse_uih_rp_spp_disconn:
-6b46 20406a0d call rfcomm_init_spp 
-6b47 680084fb fetch 1 ,mem_current_adss 
-6b48 20406a26 call rfcomm_calculate_fcs_ua 
-6b49 600084fe store 1 ,mem_current_fcs 
-6b4a 20406bb6 call rfcomm_send_ua 
-6b4b 20206b97 branch rfcomm_rx_process_end 
-
-rfcomm_rx_process_reconn:
-6b4c 68010264 fetch 2 ,mem_l2cap_payload_ptr 
-6b4d 1fe20c00 copy pdata ,contr 
-6b4e 20406ab8 call get_rfcomm_head_struct 
-6b4f 680084fc fetch 1 ,mem_current_channel 
-6b50 c0006b52 beq 0 ,parse_dlci0_reconn 
-6b51 20206b86 branch parse_uih_reconn 
-
-parse_dlci0_reconn:
-6b52 4754c035 bpatchx patch35_1 ,mem_patch35 
-6b53 680084fd fetch 1 ,mem_current_frame_type 
-6b54 c01fea7d beq rfcomm_frame_type_sabm ,rfcomm_rx_process_dlci0_sabm 
-6b55 c039ea86 beq rfcomm_frame_type_ua ,rfcomm_rx_process_dlci0_ua 
-6b56 c077eb58 beq rfcomm_frame_type_uih ,parse_dlci0_reconn_uih 
-6b57 20206b97 branch rfcomm_rx_process_end 
-
-parse_dlci0_reconn_uih:
-6b58 68010501 fetch 2 ,mem_rfcomm_uih_payload_ptr 
-6b59 1fe20c00 copy pdata ,contr 
-6b5a 20406ac3 call get_rfcomm_uih_head_struct 
-6b5b 68008503 fetch 1 ,mem_uih_cmd_type 
-6b5c c020eb61 beq uih_param_neg_cmd ,parse_dlci0_reconn_uih_pn_cmd 
-6b5d c0206b61 beq uih_param_neg_res ,parse_dlci0_reconn_uih_pn_cmd 
-6b5e c038eb6c beq uih_modem_status_cmd ,parse_dlci0_reconn_uih_ms_cmd 
-6b5f c0386b7c beq uih_modem_status_res ,parse_dlci0_reconn_uih_ms_res 
-6b60 20206b97 branch rfcomm_rx_process_end 
-
-parse_dlci0_reconn_uih_pn_cmd:
-6b61 20406aaf call parse_dlci0_rp_uih_pn_res_common 
-6b62 6800c55d fetch 1 ,mem_pn_dlci 
-6b63 1fe37e00 rshift pdata ,pdata 
-6b64 6808c564 fetcht 1 ,mem_remote_spp_channel 
-6b65 98467c00 isub temp ,null 
-6b66 2022eb68 branch parse_dlci0_reconn_uih_pn_cmd_spp ,zero 
-6b67 20202a8c branch assert 
-
-parse_dlci0_reconn_uih_pn_cmd_spp:
-6b68 6800c254 fetch 1 ,mem_spp_state 
-6b69 79207e01 set1 rfcomm_channel_state_pn_res ,pdata 
-6b6a 6000c254 store 1 ,mem_spp_state 
-6b6b 20206b97 branch rfcomm_rx_process_end 
-
-parse_dlci0_reconn_uih_ms_cmd:
-6b6c 20406ab1 call get_rfcomm_param_modem_status 
-6b6d 6800c56a fetch 1 ,mem_ms_channel 
-6b6e 6808c564 fetcht 1 ,mem_remote_spp_channel 
-6b6f 98467c00 isub temp ,null 
-6b70 2022eb73 branch parse_dlci0_reconn_uih_ms_cmd_spp ,zero 
-6b71 20202a8c branch assert 
-6b72 20206b97 branch rfcomm_rx_process_end 
-
-parse_dlci0_reconn_uih_ms_cmd_spp:
-6b73 6800c254 fetch 1 ,mem_spp_state 
-6b74 79207e05 set1 rfcomm_channel_state_rcv_ms_cmd ,pdata 
-6b75 79207e06 set1 rfcomm_channel_state_snd_ms_res ,pdata 
-6b76 6000c254 store 1 ,mem_spp_state 
-6b77 6808c55d fetcht 1 ,mem_pn_dlci 
-6b78 184b8400 lshift2 temp ,temp 
-6b79 18418403 or_into 3 ,temp 
-6b7a 20406c11 call rfcomm_send_modem_status_res 
-6b7b 20206b97 branch rfcomm_rx_process_end 
-
-parse_dlci0_reconn_uih_ms_res:
-6b7c 20406ab1 call get_rfcomm_param_modem_status 
-6b7d 6800c56a fetch 1 ,mem_ms_channel 
-6b7e 6808c564 fetcht 1 ,mem_remote_spp_channel 
-6b7f 98467c00 isub temp ,null 
-6b80 2022eb82 branch parse_dlci0_reconn_uih_ms_res_spp ,zero 
-6b81 20202a8c branch assert 
-
-parse_dlci0_reconn_uih_ms_res_spp:
-6b82 6800c254 fetch 1 ,mem_spp_state 
-6b83 79207e07 set1 rfcomm_channel_state_rcv_ms_res ,pdata 
-6b84 6000c254 store 1 ,mem_spp_state 
-6b85 20206b97 branch rfcomm_rx_process_end 
-
-parse_uih_reconn:
-6b86 680084fc fetch 1 ,mem_current_channel 
-6b87 6808c564 fetcht 1 ,mem_remote_spp_channel 
-6b88 98467c00 isub temp ,null 
-6b89 2022eb8c branch parse_uih_reconn_spp ,zero 
-6b8a 20202a8c branch assert 
-6b8b 20206b97 branch rfcomm_rx_process_end 
-
-parse_uih_reconn_spp:
-6b8c 680084fd fetch 1 ,mem_current_frame_type 
-6b8d c039eb91 beq rfcomm_frame_type_ua ,parse_uih_reconn_spp_ua 
-6b8e c077eb3f beq rfcomm_frame_type_uih ,parse_uih_spp_uih 
-6b8f c07feb37 beq rfcomm_frame_type_uih_credits ,parse_uih_spp_uih_credits 
-6b90 c029eb96 beq rfcomm_frame_type_disconn ,parse_uih_reconn_spp_disconn 
-
-parse_uih_reconn_spp_ua:
-6b91 6800c254 fetch 1 ,mem_spp_state 
-6b92 79207e03 set1 rfcomm_channel_state_ua ,pdata 
-6b93 6000c254 store 1 ,mem_spp_state 
-6b94 20206b97 branch rfcomm_rx_process_end 
-
-parse_uih_reconn_spp_sabm:
-6b95 20206b95 branch parse_uih_reconn_spp_sabm 
-
-parse_uih_reconn_spp_disconn:
-6b96 20206b46 branch parse_uih_rp_spp_disconn 
-
-rfcomm_rx_process_end:
-6b97 20600000 rtn 
-
-rfcomm_send_more_pkt:
-6b98 6800c567 fetch 1 ,mem_rfcomm_send_more_pkt 
-6b99 207a0000 rtn blank 
-6b9a c001eb9c beq more_pkt_msc_cmd_spp ,rfcomm_send_more_pkt_msc_cmd_spp 
-6b9b 20202a8c branch assert 
-
-rfcomm_send_more_pkt_msc_cmd_spp:
-6b9c 70456700 jam 0 ,mem_rfcomm_send_more_pkt 
-6b9d 204052d2 call l2cap_malloc_rfcomm_channel 
-6b9e d8400001 arg spp_slave_channel ,temp 
-6b9f 6808c55d fetcht 1 ,mem_pn_dlci 
-6ba0 184b8400 lshift2 temp ,temp 
-
-rfcomm_send_more_pkt_msc_cmd_spp0:
-6ba1 18418403 or_into 0x03 ,temp 
-6ba2 da2000aa arg 0xaa ,rega 
-6ba3 20406bfc call rfcomm_send_modem_status_cmd 
-6ba4 204052e0 call l2cap_get_rfcomm_tx_buff 
-6ba5 18a20c00 copy contw ,contr 
-6ba6 e8c10000 ifetch 2 ,contr 
-6ba7 203a2a8c branch assert ,blank 
-6ba8 20600000 rtn 
-
-rfcomm_send_sabm:
-6ba9 204052e0 call l2cap_get_rfcomm_tx_buff 
-6baa 58000004 setarg 0x0004 
-6bab e0a10000 istore 2 ,contw 
-6bac 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-6bad e0a10000 istore 2 ,contw 
-6bae 680084fb fetch 1 ,mem_current_adss 
-6baf e0a08000 istore 1 ,contw 
-6bb0 47554035 bpatchx patch35_2 ,mem_patch35 
-6bb1 5800013f setarg 0x013f 
-6bb2 e0a10000 istore 2 ,contw 
-6bb3 680084fe fetch 1 ,mem_current_fcs 
-6bb4 e0a08000 istore 1 ,contw 
-6bb5 20600000 rtn 
-
-rfcomm_send_ua:
-6bb6 204052d2 call l2cap_malloc_rfcomm_channel 
-6bb7 204052e0 call l2cap_get_rfcomm_tx_buff 
-6bb8 58000004 setarg 0x0004 
-6bb9 e0a10000 istore 2 ,contw 
-6bba 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-6bbb e0a10000 istore 2 ,contw 
-6bbc 680084fb fetch 1 ,mem_current_adss 
-6bbd e0a08000 istore 1 ,contw 
-6bbe 4755c035 bpatchx patch35_3 ,mem_patch35 
-6bbf 58000173 setarg 0x0173 
-6bc0 e0a10000 istore 2 ,contw 
-6bc1 680084fe fetch 1 ,mem_current_fcs 
-6bc2 e0a08000 istore 1 ,contw 
-6bc3 20600000 rtn 
-
-rfcomm_send_param_neg_cmd:
-6bc4 204052e0 call l2cap_get_rfcomm_tx_buff 
-6bc5 5800000e setarg 0x000e 
-6bc6 e0a10000 istore 2 ,contw 
-6bc7 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-6bc8 e0a10000 istore 2 ,contw 
-6bc9 6800c563 fetch 1 ,mem_rfcomm_initiator 
-6bca 1fe3fe00 lshift pdata ,pdata 
-6bcb 79207e00 set1 0 ,pdata 
-6bcc e0a08000 istore 1 ,contw 
-6bcd 47564035 bpatchx patch35_4 ,mem_patch35 
-6bce 580015ef setarg 0x15ef 
-6bcf e0a10000 istore 2 ,contw 
-6bd0 58001183 setarg 0x1183 
-6bd1 e0a10000 istore 2 ,contw 
-6bd2 18427e00 copy temp ,pdata 
-6bd3 e0a08000 istore 1 ,contw 
-6bd4 580000f0 setarg 0x0000f0 
-6bd5 e0a18000 istore 3 ,contw 
-6bd6 5800007f setarg rfcomm_max_frame_size 
-6bd7 e0a10000 istore 2 ,contw 
-6bd8 58000000 setarg 0 
-6bd9 e0a08000 istore 1 ,contw 
-6bda 58000001 setarg 0x01 
-6bdb e0a08000 istore 1 ,contw 
-6bdc 20406a2f call rfcomm_calculate_fcs_dlci0 
-6bdd e0a08000 istore 1 ,contw 
-6bde 70456910 jam 0x10 ,mem_credit_given 
-6bdf 20600000 rtn 
-
-rfcomm_send_param_neg_res:
-6be0 204052d2 call l2cap_malloc_rfcomm_channel 
-6be1 204052e0 call l2cap_get_rfcomm_tx_buff 
-6be2 5800000e setarg 0x000e 
-6be3 e0a10000 istore 2 ,contw 
-6be4 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-6be5 e0a10000 istore 2 ,contw 
-6be6 6800c563 fetch 1 ,mem_rfcomm_initiator 
-6be7 1fe3fe00 lshift pdata ,pdata 
-6be8 79207e00 set1 0 ,pdata 
-6be9 e0a08000 istore 1 ,contw 
-6bea 4756c035 bpatchx patch35_5 ,mem_patch35 
-6beb 580015ef setarg 0x15ef 
-6bec e0a10000 istore 2 ,contw 
-6bed 58001181 setarg 0x1181 
-6bee e0a10000 istore 2 ,contw 
-6bef 6800c55d fetch 1 ,mem_pn_dlci 
-6bf0 e0a08000 istore 1 ,contw 
-6bf1 580000e0 setarg 0x0000e0 
-6bf2 e0a18000 istore 3 ,contw 
-6bf3 6801456c fetch 2 ,mem_rfcomm_max_frame_size 
-6bf4 e0a10000 istore 2 ,contw 
-6bf5 58000000 setarg 0x00 
-6bf6 e0a08000 istore 1 ,contw 
-6bf7 6800c56e fetch 1 ,mem_rfcomm_credit_init_data 
-6bf8 e0a08000 istore 1 ,contw 
-6bf9 20406a2f call rfcomm_calculate_fcs_dlci0 
-6bfa e0a08000 istore 1 ,contw 
-6bfb 20600000 rtn 
-
-rfcomm_send_modem_status_cmd:
-6bfc 204052e0 call l2cap_get_rfcomm_tx_buff 
-6bfd 58000008 setarg 0x0008 
-6bfe e0a10000 istore 2 ,contw 
-6bff 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-6c00 e0a10000 istore 2 ,contw 
-6c01 6800c563 fetch 1 ,mem_rfcomm_initiator 
-6c02 1fe3fe00 lshift pdata ,pdata 
-6c03 79207e00 set1 0 ,pdata 
-6c04 e0a08000 istore 1 ,contw 
-6c05 47574035 bpatchx patch35_6 ,mem_patch35 
-6c06 580009ef setarg 0x09ef 
-6c07 e0a10000 istore 2 ,contw 
-6c08 580005e3 setarg 0x05e3 
-6c09 e0a10000 istore 2 ,contw 
-6c0a 18427e00 copy temp ,pdata 
-6c0b e0a08000 istore 1 ,contw 
-6c0c 5800008d setarg 0x8d 
-6c0d e0a08000 istore 1 ,contw 
-6c0e 20406a2f call rfcomm_calculate_fcs_dlci0 
-6c0f e0a08000 istore 1 ,contw 
-6c10 20600000 rtn 
-
-rfcomm_send_modem_status_res:
-6c11 204052d2 call l2cap_malloc_rfcomm_channel 
-6c12 204052e0 call l2cap_get_rfcomm_tx_buff 
-6c13 58000008 setarg 0x0008 
-6c14 e0a10000 istore 2 ,contw 
-6c15 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-6c16 e0a10000 istore 2 ,contw 
-6c17 18421600 copy temp ,timeup 
-6c18 6800c563 fetch 1 ,mem_rfcomm_initiator 
-6c19 1fe3fe00 lshift pdata ,pdata 
-6c1a 79207e00 set1 0 ,pdata 
-6c1b e0a08000 istore 1 ,contw 
-6c1c 4757c035 bpatchx patch35_7 ,mem_patch35 
-6c1d 580009ef setarg 0x09ef 
-6c1e e0a10000 istore 2 ,contw 
-6c1f 580005e1 setarg 0x05e1 
-6c20 e0a10000 istore 2 ,contw 
-6c21 19627e00 copy timeup ,pdata 
-6c22 e0a08000 istore 1 ,contw 
-6c23 5800008d setarg 0x8d 
-6c24 e0a08000 istore 1 ,contw 
-6c25 20406a2f call rfcomm_calculate_fcs_dlci0 
-6c26 e0a08000 istore 1 ,contw 
-6c27 20600000 rtn 
-
-rfcomm_send_uih_without_payload:
-6c28 47584036 bpatchx patch36_0 ,mem_patch36 
-6c29 6800c569 fetch 1 ,mem_credit_given 
-6c2a 207a0000 rtn blank 
-6c2b 68110112 hfetch 2 ,core_uart_rxitems 
-6c2c 247a0000 nrtn blank 
-6c2d 1a227e00 copy rega ,pdata 
-6c2e 60008a9b store 1 ,mem_pdatatemp + 1 
-6c2f 60088a9a storet 1 ,mem_pdatatemp 
-6c30 2040526e call l2cap_malloc_is_fifo_full 
-6c31 247a0000 nrtn blank 
-6c32 204052d2 call l2cap_malloc_rfcomm_channel 
-6c33 204052e0 call l2cap_get_rfcomm_tx_buff 
-6c34 58000005 setarg 0x05 
-6c35 e0a10000 istore 2 ,contw 
-6c36 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-6c37 e0a10000 istore 2 ,contw 
-6c38 6800850d fetch 1 ,mem_rfcomm_send_adss 
-6c39 e0a08000 istore 1 ,contw 
-6c3a 580001ff setarg 0x01ff 
-6c3b e0a10000 istore 2 ,contw 
-6c3c 6800c569 fetch 1 ,mem_credit_given 
-6c3d e0a08000 istore 1 ,contw 
-6c3e 6800c566 fetch 1 ,mem_hiufcs_spp_wcredits 
-6c3f e0a08000 istore 1 ,contw 
-6c40 70456900 jam 0 ,mem_credit_given 
-6c41 20600000 rtn 
-
-rfcomm_increase_credit_given:
-6c42 4758c036 bpatchx patch36_1 ,mem_patch36 
-6c43 6800c56b fetch 1 ,mem_credit_flag 
-6c44 c1008000 rtneq credit_enable 
-6c45 680104ff fetch 2 ,mem_current_length 
-6c46 207a0000 rtn blank 
-6c47 6800c569 fetch 1 ,mem_credit_given 
-6c48 1fe0fe01 increase 1 ,pdata 
-6c49 6000c569 store 1 ,mem_credit_given 
-6c4a 20600000 rtn 
-
-spp_process_rx_data:
-6c4b 6801456f fetch 2 ,mem_cb_receive_spp_data 
-6c4c 20207f9c branch callback_func 
-
-spp_tx_rfcomm_packet:
-6c4d 47594036 bpatchx patch36_2 ,mem_patch36 
-6c4e 6800c568 fetch 1 ,mem_remote_credits 
-6c4f 207a0000 rtn blank 
-6c50 1fe0ffff increase -1 ,pdata 
-6c51 6000c568 store 1 ,mem_remote_credits 
-6c52 6801455e fetch 2 ,mem_pn_max_frame_size 
-6c53 6809469f fetcht 2 ,mem_current_packet_length 
-6c54 98467c00 isub temp ,null 
-6c55 20216c57 branch ssp_tx_rfcomm_from_uart ,positive 
-6c56 6001469f store 2 ,mem_current_packet_length 
-
-ssp_tx_rfcomm_from_uart:
-6c57 6800c569 fetch 1 ,mem_credit_given 
-6c58 203a6c5f branch ssp_tx_rfcomm_from_uart_without_credit ,blank 
-6c59 70051001 jam 1 ,mem_rfcomm_send_offset 
-6c5a 6800c566 fetch 1 ,mem_hiufcs_spp_wcredits 
-6c5b 6000850f store 1 ,mem_rfcomm_send_fcs 
-6c5c 580000ff setarg rsp_rx_uih_wdata 
-6c5d 6000850e store 1 ,mem_rfcomm_send_frame_type 
-6c5e 20206c64 branch ssp_tx_rfcomm_from_uart_common 
-
-ssp_tx_rfcomm_from_uart_without_credit:
-6c5f 70051000 jam 0 ,mem_rfcomm_send_offset 
-6c60 6800c565 fetch 1 ,mem_hiufcs_spp 
-6c61 6000850f store 1 ,mem_rfcomm_send_fcs 
-6c62 580000ef setarg rsp_tx_uih 
-6c63 6000850e store 1 ,mem_rfcomm_send_frame_type 
-
-ssp_tx_rfcomm_from_uart_common:
-6c64 4759c036 bpatchx patch36_3 ,mem_patch36 
-6c65 6801469f fetch 2 ,mem_current_packet_length 
-6c66 1fe67c7f sub pdata ,127 ,null 
-6c67 20216c6b branch ssp_tx_rfcomm_from_uart_common0 ,positive 
-6c68 68008510 fetch 1 ,mem_rfcomm_send_offset 
-6c69 1fe0fe01 increase 1 ,pdata 
-6c6a 60008510 store 1 ,mem_rfcomm_send_offset 
-
-ssp_tx_rfcomm_from_uart_common0:
-6c6b 20406a72 call get_rfcomm_snd_adss 
-6c6c 6801469f fetch 2 ,mem_current_packet_length 
-6c6d 1fe0fe08 increase 8 ,pdata 
-6c6e 68088510 fetcht 1 ,mem_rfcomm_send_offset 
-6c6f 9840a200 iadd temp ,rega 
-6c70 20405240 call l2cap_malloc 
-6c71 60010277 store 2 ,mem_rfcomm_tx_buff_ptr 
-6c72 1fe0fe04 increase 4 ,pdata 
-6c73 60010279 store 2 ,mem_rfcomm_tx_payload_ptr 
-6c74 1fe20a00 copy pdata ,contw 
-6c75 6800850d fetch 1 ,mem_rfcomm_send_adss 
-6c76 e0a08000 istore 1 ,contw 
-6c77 6800850e fetch 1 ,mem_rfcomm_send_frame_type 
-6c78 e0a08000 istore 1 ,contw 
-6c79 20406c95 call ssp_tx_write_length 
-6c7a 20406ca6 call ssp_tx_write_given_credit 
-6c7b 475a4036 bpatchx patch36_4 ,mem_patch36 
-6c7c 68014571 fetch 2 ,mem_nl_rx_data_src 
-6c7d 1fe20600 copy pdata ,contru 
-6c7e 6801469f fetch 2 ,mem_current_packet_length 
-6c7f 1fe27200 copy pdata ,loopcnt 
-6c80 204066ea call uart_copy_rx_bytes_fast 
-6c81 18a20400 copy contw ,temp 
-6c82 18627e00 copy contru ,pdata 
-6c83 60014571 store 2 ,mem_nl_rx_data_src 
-6c84 18420a00 copy temp ,contw 
-6c85 6800850f fetch 1 ,mem_rfcomm_send_fcs 
-6c86 e0a08000 istore 1 ,contw 
-6c87 68010277 fetch 2 ,mem_rfcomm_tx_buff_ptr 
-6c88 1fe20a00 copy pdata ,contw 
-6c89 6801469f fetch 2 ,mem_current_packet_length 
-6c8a 68088510 fetcht 1 ,mem_rfcomm_send_offset 
-6c8b 9840fe00 iadd temp ,pdata 
-6c8c 1fe0fe04 increase 4 ,pdata 
-6c8d e0a10000 istore 2 ,contw 
-6c8e 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-6c8f e0a10000 istore 2 ,contw 
-6c90 70456900 jam 0 ,mem_credit_given 
-6c91 68014573 fetch 2 ,mem_nl_rx_len_all 
-6c92 c0003a97 beq 0 ,module_hci_command_tx_spp_tx_complete 
-6c93 700b0500 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
-6c94 20600000 rtn 
-
-ssp_tx_write_length:
-6c95 475ac036 bpatchx patch36_5 ,mem_patch36 
-6c96 6801469f fetch 2 ,mem_current_packet_length 
-6c97 1fe67c7f sub pdata ,0x7f ,null 
-6c98 24216c9d nbranch ssp_tx_write_long_packet ,positive 
-6c99 1fe3fe00 lshift pdata ,pdata 
-6c9a 79207e00 set1 0 ,pdata 
-6c9b e0a08000 istore 1 ,contw 
-6c9c 20600000 rtn 
-
-ssp_tx_write_long_packet:
-6c9d 6801469f fetch 2 ,mem_current_packet_length 
-6c9e 1fe97e00 rshift3 pdata ,pdata 
-6c9f 1ff18400 rshift4 pdata ,temp 
-6ca0 1fe17e7f and_into 0x7f ,pdata 
-6ca1 1fe3fe00 lshift pdata ,pdata 
-6ca2 793ffe00 set0 0 ,pdata 
-6ca3 e0a08000 istore 1 ,contw 
-6ca4 e0a88000 istoret 1 ,contw 
-6ca5 20600000 rtn 
-
-ssp_tx_write_given_credit:
-6ca6 6800c569 fetch 1 ,mem_credit_given 
-6ca7 207a0000 rtn blank 
-6ca8 e0a08000 istore 1 ,contw 
-6ca9 20600000 rtn 
-
-scheduler_process:
-6caa 475b4036 bpatchx patch36_6 ,mem_patch36 
-6cab 20407d9c call check_51cmd 
-6cac 204032f6 call app_process_bb_event 
-6cad 2040631b call process_conn_sm 
-6cae 475bc036 bpatchx patch36_7 ,mem_patch36 
-6caf 204076dc call sp_calc_sequence 
-6cb0 204076b5 call simple_pairing_sequence 
-6cb1 204076c6 call master_simple_paring_sequence 
-6cb2 2040526e call l2cap_malloc_is_fifo_full 
-6cb3 247a0000 nrtn blank 
-6cb4 20404da9 call l2cap_call_proc_sigal_pending 
-6cb5 2040526e call l2cap_malloc_is_fifo_full 
-6cb6 247a0000 nrtn blank 
-6cb7 475c4037 bpatchx patch37_0 ,mem_patch37 
-6cb8 20406cf5 call process_upper_sm 
-6cb9 20404f64 call l2cap_send_config_req 
-6cba 20406b98 call rfcomm_send_more_pkt 
-
-scheduler_process0:
-6cbb 20406cbe call scheduler_tx_disconnect_hid 
-6cbc 475cc037 bpatchx patch37_1 ,mem_patch37 
-6cbd 202032f2 branch app_process_bt 
-
-scheduler_tx_disconnect_hid:
-6cbe 6800827f fetch 1 ,mem_control_tasks 
-6cbf c2805087 bbit1 l2cap_disconnect_interrupt ,l2cap_disconnect_interrupt_req 
-6cc0 c283d091 bbit1 l2cap_disconnect_control ,l2cap_disconnect_control_req 
-6cc1 20600000 rtn 
-
-scheduler_tx_l2cap_pkt:
-6cc2 475d4037 bpatchx patch37_2 ,mem_patch37 
-6cc3 20405274 call l2cap_malloc_is_fifo_empty 
-6cc4 207a0000 rtn blank 
-6cc5 6800804b fetch 1 ,mem_op 
-6cc6 c3830000 rtnbit1 op_txl2cap 
-6cc7 20405258 call l2cap_malloc_fifo_out 
-6cc8 6001016f store 2 ,mem_txptr 
-6cc9 1fe20c00 copy pdata ,contr 
-6cca e8c10000 ifetch 2 ,contr 
-6ccb 1fe0fe04 increase 4 ,pdata 
-6ccc 600141dc store 2 ,mem_tx_len 
-6ccd 7041db06 jam 6 ,mem_tx_lch 
-6cce 475dc037 bpatchx patch37_3 ,mem_patch37 
-6ccf 68014246 fetch 2 ,mem_l2cap_tx_multi_offset 
-6cd0 203a6cdd branch scheduler_tx_l2cap_start_pkt ,blank 
-6cd1 6800804b fetch 1 ,mem_op 
-6cd2 c4038000 rtnbit0 op_pkt_comp 
-6cd3 793ffe07 set0 op_pkt_comp ,pdata 
-6cd4 6000804b store 1 ,mem_op 
-6cd5 7041db05 jam 5 ,mem_tx_lch 
-6cd6 68094246 fetcht 2 ,mem_l2cap_tx_multi_offset 
-6cd7 6801016f fetch 2 ,mem_txptr 
-6cd8 9840fe00 iadd temp ,pdata 
-6cd9 6001016f store 2 ,mem_txptr 
-6cda 680141dc fetch 2 ,mem_tx_len 
-6cdb 98467e00 isub temp ,pdata 
-6cdc 600141dc store 2 ,mem_tx_len 
-
-scheduler_tx_l2cap_start_pkt:
-6cdd 475e4037 bpatchx patch37_4 ,mem_patch37 
-6cde 680141dc fetch 2 ,mem_tx_len 
-6cdf 203a2a8c branch assert ,blank 
-6ce0 d8400104 arg l2cap_max_pkt_len ,temp 
-6ce1 98467e00 isub temp ,pdata 
-6ce2 24216ce9 nbranch scheduler_tx_l2cap_last_pkt ,positive 
-6ce3 475ec037 bpatchx patch37_5 ,mem_patch37 
-6ce4 600941dc storet 2 ,mem_tx_len 
-6ce5 68014246 fetch 2 ,mem_l2cap_tx_multi_offset 
-6ce6 9840fe00 iadd temp ,pdata 
-6ce7 60014246 store 2 ,mem_l2cap_tx_multi_offset 
-6ce8 20206ceb branch scheduler_tx_l2cap_pkt_end 
-
-scheduler_tx_l2cap_last_pkt:
-6ce9 58000000 setarg 0 
-6cea 60014246 store 2 ,mem_l2cap_tx_multi_offset 
-
-scheduler_tx_l2cap_pkt_end:
-6ceb 6800804b fetch 1 ,mem_op 
-6cec 79207e06 set1 op_txl2cap ,pdata 
-6ced 6000804b store 1 ,mem_op 
-6cee 20600000 rtn 
-
-scheduler_start_upper_sm:
-6cef 6800c684 fetch 1 ,mem_ui_profile_supported 
-6cf0 c2806cf3 bbit1 support_hid ,scheduler_start_upper_sm_hid 
-6cf1 70028701 jam uppersm_reconn_sdp_conn ,mem_upper_sm_reconn 
-6cf2 20600000 rtn 
-
-scheduler_start_upper_sm_hid:
-6cf3 7002870f jam uppersm_reconn_hid_ctrl_conn ,mem_upper_sm_reconn 
-6cf4 20600000 rtn 
-
-process_upper_sm:
-6cf5 6800c681 fetch 1 ,memui_reconnect_mode 
-6cf6 243a6cfb nbranch process_upper_sm_reconn ,blank 
-
-process_upper_sm_remote_page:
-6cf7 68008286 fetch 1 ,mem_upper_sm_remote_page 
-6cf8 207a0000 rtn blank 
-6cf9 70028600 jam 0 ,mem_upper_sm_remote_page 
-
-process_upper_sm_rp_wait:
-6cfa 20600000 rtn 
-
-process_upper_sm_reconn:
-6cfb 475f4037 bpatchx patch37_6 ,mem_patch37 
-6cfc 68008287 fetch 1 ,mem_upper_sm_reconn 
-6cfd 207a0000 rtn blank 
-6cfe c000ed1b beq uppersm_reconn_sdp_conn ,process_upper_sm_reconn_sdp_conn 
-6cff c0016d74 beq uppersm_reconn_sdp_conn_wait ,process_upper_sm_reconn_sdp_conn_wait 
-6d00 c001ed21 beq uppersm_reconn_sdp_cfg ,process_upper_sm_reconn_sdp_cfg 
-6d01 c0026d78 beq uppersm_reconn_sdp_cfg_wait ,process_upper_sm_reconn_sdp_cfg_wait 
-6d02 c01ded2b beq uppersm_reconn_ss_spp ,process_upper_sm_reconn_ss_spp 
-6d03 c01e6d7b beq uppersm_reconn_ss_spp_wait ,process_upper_sm_reconn_ss_spp_wait 
-6d04 c006ed30 beq uppersm_reconn_sdp_disconn ,process_upper_sm_reconn_sdp_disconn 
-6d05 c0076d80 beq uppersm_reconn_sdp_disconn_wait ,process_upper_sm_reconn_sdp_disconn_wait 
-6d06 c007ed33 beq uppersm_reconn_hid_ctrl_conn ,process_upper_sm_reconn_hid_ctrl_conn 
-6d07 c0086d86 beq uppersm_reconn_hid_ctrl_conn_wait ,process_upper_sm_reconn_hid_ctrl_conn_wait 
-6d08 c008ed39 beq uppersm_reconn_hid_ctrl_cfg ,process_upper_sm_reconn_hid_ctrl_cfg 
-6d09 c0096d8a beq uppersm_reconn_hid_ctrl_cfg_wait ,process_upper_sm_reconn_hid_ctrl_cfg_wait 
-6d0a c009ed3f beq uppersm_reconn_hid_int_conn ,process_upper_sm_reconn_hid_int_conn 
-6d0b c00a6d8e beq uppersm_reconn_hid_int_conn_wait ,process_upper_sm_reconn_hid_int_conn_wait 
-6d0c c00aed45 beq uppersm_reconn_hid_int_cfg ,process_upper_sm_reconn_hid_int_cfg 
-6d0d c00b6d92 beq uppersm_reconn_hid_int_cfg_wait ,process_upper_sm_reconn_hid_int_cfg_wait 
-6d0e c00bed4b beq uppersm_reconn_rfcomm_conn ,process_upper_sm_reconn_rfcomm_conn 
-6d0f c00c6d97 beq uppersm_reconn_rfcomm_conn_wait ,process_upper_sm_reconn_rfcomm_conn_wait 
-6d10 c00ced51 beq uppersm_reconn_rfcomm_cfg ,process_upper_sm_reconn_rfcomm_cfg 
-6d11 c00d6d9b beq uppersm_reconn_rfcomm_cfg_wait ,process_upper_sm_reconn_rfcomm_cfg_wait 
-6d12 c00ded57 beq uppersm_reconn_rfcomm_sabm ,process_upper_sm_reconn_rfcomm_sabm 
-6d13 c00e6d9f beq uppersm_reconn_rfcomm_sabm_wait ,process_upper_sm_reconn_rfcomm_sabm_wait 
-6d14 c00eed5d beq uppersm_reconn_spp_cmd_pn ,process_upper_sm_reconn_spp_cmd_pn 
-6d15 c00f6da4 beq uppersm_reconn_spp_cmd_pn_wait ,process_upper_sm_reconn_spp_cmd_pn_wait 
-6d16 c00fed63 beq uppersm_reconn_spp_sabm ,process_upper_sm_reconn_spp_sabm 
-6d17 c0106da8 beq uppersm_reconn_spp_sabm_wait ,process_upper_sm_reconn_spp_sabm_wait 
-6d18 c010ed6e beq uppersm_reconn_spp_cmd_ms ,process_upper_sm_reconn_spp_cmd_ms 
-6d19 c0116dac beq uppersm_reconn_spp_cmd_ms_wait ,process_upper_sm_reconn_spp_cmd_ms_wait 
-
-process_upper_sm_reconn_wait:
-6d1a 20600000 rtn 
-
-process_upper_sm_reconn_sdp_conn:
-6d1b 20406db7 call upper_sm_send_sdp_conn 
-6d1c 70028702 jam uppersm_reconn_sdp_conn_wait ,mem_upper_sm_reconn 
-6d1d 6800c250 fetch 1 ,mem_sdp_state 
-6d1e 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
-6d1f 6000c250 store 1 ,mem_sdp_state 
-6d20 20600000 rtn 
-
-process_upper_sm_reconn_sdp_cfg:
-6d21 70028704 jam uppersm_reconn_sdp_cfg_wait ,mem_upper_sm_reconn 
-6d22 6800c250 fetch 1 ,mem_sdp_state 
-6d23 c3810000 rtnbit1 l2cap_channel_state_snd_cfg_req 
-6d24 70028703 jam uppersm_reconn_sdp_cfg ,mem_upper_sm_reconn 
-6d25 20406dbe call upper_sm_send_sdp_cfg 
-6d26 70028704 jam uppersm_reconn_sdp_cfg_wait ,mem_upper_sm_reconn 
-6d27 6800c250 fetch 1 ,mem_sdp_state 
-6d28 79207e02 set1 l2cap_channel_state_snd_cfg_req ,pdata 
-6d29 6000c250 store 1 ,mem_sdp_state 
-6d2a 20600000 rtn 
-
-process_upper_sm_reconn_ss_spp:
-6d2b 20405274 call l2cap_malloc_is_fifo_empty 
-6d2c 247a0000 nrtn blank 
-6d2d 20406dcd call upper_sm_send_ss_spp 
-6d2e 7002873c jam uppersm_reconn_ss_spp_wait ,mem_upper_sm_reconn 
-6d2f 20600000 rtn 
-
-process_upper_sm_reconn_sdp_disconn:
-6d30 20406dc3 call upper_sm_send_sdp_disconn 
-6d31 7002870e jam uppersm_reconn_sdp_disconn_wait ,mem_upper_sm_reconn 
-6d32 20600000 rtn 
-
-process_upper_sm_reconn_hid_ctrl_conn:
-6d33 20406ddd call upper_sm_send_hid_ctrl_conn 
-6d34 70028710 jam uppersm_reconn_hid_ctrl_conn_wait ,mem_upper_sm_reconn 
-6d35 6800c252 fetch 1 ,mem_hid_control_state 
-6d36 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
-6d37 6000c252 store 1 ,mem_hid_control_state 
-6d38 20600000 rtn 
-
-process_upper_sm_reconn_hid_ctrl_cfg:
-6d39 20406de4 call upper_sm_send_hid_ctrl_cfg 
-6d3a 70028712 jam uppersm_reconn_hid_ctrl_cfg_wait ,mem_upper_sm_reconn 
-6d3b 6800c252 fetch 1 ,mem_hid_control_state 
-6d3c 79207e02 set1 l2cap_channel_state_snd_cfg_req ,pdata 
-6d3d 6000c252 store 1 ,mem_hid_control_state 
-6d3e 20600000 rtn 
-
-process_upper_sm_reconn_hid_int_conn:
-6d3f 20406de9 call upper_sm_send_hid_int_conn 
-6d40 70028714 jam uppersm_reconn_hid_int_conn_wait ,mem_upper_sm_reconn 
-6d41 6800c253 fetch 1 ,mem_hid_interrupt_state 
-6d42 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
-6d43 6000c253 store 1 ,mem_hid_interrupt_state 
-6d44 20600000 rtn 
-
-process_upper_sm_reconn_hid_int_cfg:
-6d45 20406df0 call upper_sm_send_hid_int_cfg 
-6d46 70028716 jam uppersm_reconn_hid_int_cfg_wait ,mem_upper_sm_reconn 
-6d47 6800c253 fetch 1 ,mem_hid_interrupt_state 
-6d48 79207e02 set1 l2cap_channel_state_snd_cfg_req ,pdata 
-6d49 6000c253 store 1 ,mem_hid_interrupt_state 
-6d4a 20600000 rtn 
-
-process_upper_sm_reconn_rfcomm_conn:
-6d4b 20406dd1 call upper_sm_send_rfcomm_conn 
-6d4c 70028718 jam uppersm_reconn_rfcomm_conn_wait ,mem_upper_sm_reconn 
-6d4d 6800c251 fetch 1 ,mem_rfcomm_state 
-6d4e 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
-6d4f 6000c251 store 1 ,mem_rfcomm_state 
-6d50 20600000 rtn 
-
-process_upper_sm_reconn_rfcomm_cfg:
-6d51 20406dd8 call upper_sm_send_rfcomm_cfg 
-6d52 7002871a jam uppersm_reconn_rfcomm_cfg_wait ,mem_upper_sm_reconn 
-6d53 6800c251 fetch 1 ,mem_rfcomm_state 
-6d54 79207e02 set1 l2cap_channel_state_snd_cfg_req ,pdata 
-6d55 6000c251 store 1 ,mem_rfcomm_state 
-6d56 20600000 rtn 
-
-process_upper_sm_reconn_rfcomm_sabm:
-6d57 20406df5 call upper_sm_send_rfcomm_sabm 
-6d58 7002871c jam uppersm_reconn_rfcomm_sabm_wait ,mem_upper_sm_reconn 
-6d59 6800c251 fetch 1 ,mem_rfcomm_state 
-6d5a 79207e06 set1 l2cap_channel_rfcomm_only_sabm ,pdata 
-6d5b 6000c251 store 1 ,mem_rfcomm_state 
-6d5c 20600000 rtn 
-
-process_upper_sm_reconn_spp_cmd_pn:
-6d5d 20406dfc call upper_sm_send_spp_cmd_pn 
-6d5e 6800c254 fetch 1 ,mem_spp_state 
-6d5f 79207e00 set1 rfcomm_channel_state_pn_cmd 
-6d60 6000c254 store 1 ,mem_spp_state 
-6d61 7002871e jam uppersm_reconn_spp_cmd_pn_wait ,mem_upper_sm_reconn 
-6d62 20600000 rtn 
-
-process_upper_sm_reconn_spp_sabm:
-6d63 20406e02 call upper_sm_send_spp_sabm 
-6d64 6800c254 fetch 1 ,mem_spp_state 
-6d65 79207e02 set1 rfcomm_channel_state_sabm 
-6d66 6000c254 store 1 ,mem_spp_state 
-6d67 70028720 jam uppersm_reconn_spp_sabm_wait ,mem_upper_sm_reconn 
-6d68 6800c564 fetch 1 ,mem_remote_spp_channel 
-6d69 1fe9fe00 lshift3 pdata ,pdata 
-6d6a 1fe1fe03 or_into 3 ,pdata 
-6d6b d8404565 arg mem_hiufcs_spp ,temp 
-6d6c 600904f7 storet 2 ,mem_contw_temp 
-6d6d 20206a35 branch rfcomm_save_fcs_uih 
-
-process_upper_sm_reconn_spp_cmd_ms:
-6d6e 20406e0c call upper_sm_send_spp_cmd_ms 
-6d6f 6800c254 fetch 1 ,mem_spp_state 
-6d70 79207e04 set1 rfcomm_channel_state_snd_ms_cmd 
-6d71 6000c254 store 1 ,mem_spp_state 
-6d72 70028722 jam uppersm_reconn_spp_cmd_ms_wait ,mem_upper_sm_reconn 
-6d73 20600000 rtn 
-
-process_upper_sm_reconn_sdp_conn_wait:
-6d74 6800c250 fetch 1 ,mem_sdp_state 
-6d75 c4008000 rtnbit0 l2cap_channel_state_conn_res 
-6d76 70028703 jam uppersm_reconn_sdp_cfg ,mem_upper_sm_reconn 
-6d77 20206cfb branch process_upper_sm_reconn 
-
-process_upper_sm_reconn_sdp_cfg_wait:
-6d78 6800c250 fetch 1 ,mem_sdp_state 
-6d79 c19f8000 rtnne l2cap_channel_setup_complete 
-6d7a 7002873b jam uppersm_reconn_ss_spp ,mem_upper_sm_reconn 
-
-process_upper_sm_reconn_ss_spp_wait:
-6d7b 68008285 fetch 1 ,mem_message_to_uppersm 
-6d7c c18b8000 rtnne recieve_ss_reasult_hf 
-6d7d 70028500 jam 0 ,mem_message_to_uppersm 
-6d7e 7002870d jam uppersm_reconn_sdp_disconn ,mem_upper_sm_reconn 
-6d7f 20206cfb branch process_upper_sm_reconn 
-
-process_upper_sm_reconn_sdp_disconn_wait:
-6d80 6800c250 fetch 1 ,mem_sdp_state 
-6d81 247a0000 nrtn blank 
-6d82 6800c684 fetch 1 ,mem_ui_profile_supported 
-6d83 c2806daf bbit1 support_hid ,process_upper_sm_reconn_setup_hid 
-6d84 c2836db1 bbit1 support_spp ,process_upper_sm_reconn_setup_rfcomm 
-6d85 20206db5 branch process_upper_sm_reconn_termination 
-
-process_upper_sm_reconn_hid_ctrl_conn_wait:
-6d86 6800c252 fetch 1 ,mem_hid_control_state 
-6d87 c4008000 rtnbit0 l2cap_channel_state_conn_res 
-6d88 70028711 jam uppersm_reconn_hid_ctrl_cfg ,mem_upper_sm_reconn 
-6d89 20206cfb branch process_upper_sm_reconn 
-
-process_upper_sm_reconn_hid_ctrl_cfg_wait:
-6d8a 6800c252 fetch 1 ,mem_hid_control_state 
-6d8b c19f8000 rtnne l2cap_channel_setup_complete 
-6d8c 70028713 jam uppersm_reconn_hid_int_conn ,mem_upper_sm_reconn 
-6d8d 20206cfb branch process_upper_sm_reconn 
-
-process_upper_sm_reconn_hid_int_conn_wait:
-6d8e 6800c253 fetch 1 ,mem_hid_interrupt_state 
-6d8f c4008000 rtnbit0 l2cap_channel_state_conn_res 
-6d90 70028715 jam uppersm_reconn_hid_int_cfg ,mem_upper_sm_reconn 
-6d91 20206cfb branch process_upper_sm_reconn 
-
-process_upper_sm_reconn_hid_int_cfg_wait:
-6d92 6800c253 fetch 1 ,mem_hid_interrupt_state 
-6d93 c19f8000 rtnne l2cap_channel_setup_complete 
-6d94 6800c684 fetch 1 ,mem_ui_profile_supported 
-6d95 c2836db1 bbit1 support_spp ,process_upper_sm_reconn_setup_rfcomm 
-6d96 20206db5 branch process_upper_sm_reconn_termination 
-
-process_upper_sm_reconn_rfcomm_conn_wait:
-6d97 6800c251 fetch 1 ,mem_rfcomm_state 
-6d98 c4008000 rtnbit0 l2cap_channel_state_conn_res 
-6d99 70028719 jam uppersm_reconn_rfcomm_cfg ,mem_upper_sm_reconn 
-6d9a 20206cfb branch process_upper_sm_reconn 
-
-process_upper_sm_reconn_rfcomm_cfg_wait:
-6d9b 6800c251 fetch 1 ,mem_rfcomm_state 
-6d9c c19f8000 rtnne l2cap_channel_setup_complete 
-6d9d 7002871b jam uppersm_reconn_rfcomm_sabm ,mem_upper_sm_reconn 
-6d9e 20206cfb branch process_upper_sm_reconn 
-
-process_upper_sm_reconn_rfcomm_sabm_wait:
-6d9f 6800c251 fetch 1 ,mem_rfcomm_state 
-6da0 c1ff8000 rtnne l2cap_channel_rfcomm_dlci0_opened 
-6da1 6800c684 fetch 1 ,mem_ui_profile_supported 
-6da2 c2836db3 bbit1 support_spp ,process_upper_sm_reconn_setup_spp 
-6da3 20206db5 branch process_upper_sm_reconn_termination 
-
-process_upper_sm_reconn_spp_cmd_pn_wait:
-6da4 6800c254 fetch 1 ,mem_spp_state 
-6da5 c4008000 rtnbit0 rfcomm_channel_state_pn_res 
-6da6 7002871f jam uppersm_reconn_spp_sabm ,mem_upper_sm_reconn 
-6da7 20206cfb branch process_upper_sm_reconn 
-
-process_upper_sm_reconn_spp_sabm_wait:
-6da8 6800c254 fetch 1 ,mem_spp_state 
-6da9 c4018000 rtnbit0 rfcomm_channel_state_ua 
-6daa 70028721 jam uppersm_reconn_spp_cmd_ms ,mem_upper_sm_reconn 
-6dab 20206cfb branch process_upper_sm_reconn 
-
-process_upper_sm_reconn_spp_cmd_ms_wait:
-6dac 6800c254 fetch 1 ,mem_spp_state 
-6dad c1ff8000 rtnne rfcomm_channel_setup_complete 
-6dae 20206db5 branch process_upper_sm_reconn_termination 
-
-process_upper_sm_reconn_setup_hid:
-6daf 7002870f jam uppersm_reconn_hid_ctrl_conn ,mem_upper_sm_reconn 
-6db0 20206cfb branch process_upper_sm_reconn 
-
-process_upper_sm_reconn_setup_rfcomm:
-6db1 70028717 jam uppersm_reconn_rfcomm_conn ,mem_upper_sm_reconn 
-6db2 20206cfb branch process_upper_sm_reconn 
-
-process_upper_sm_reconn_setup_spp:
-6db3 7002871d jam uppersm_reconn_spp_cmd_pn ,mem_upper_sm_reconn 
-6db4 20206cfb branch process_upper_sm_reconn 
-
-process_upper_sm_reconn_termination:
-6db5 70028700 jam 0 ,mem_upper_sm_reconn 
-6db6 20600000 rtn 
-
-upper_sm_send_sdp_conn:
-6db7 475fc037 bpatchx patch37_7 ,mem_patch37 
-6db8 204052b8 call l2cap_malloc_signal_channel 
-6db9 58000001 setarg psm_sdp 
-6dba 1fe20400 copy pdata ,temp 
-6dbb 58000050 setarg l2cap_sdp_channel 
-6dbc 1fe21600 copy pdata ,timeup 
-6dbd 202050a8 branch ml2cap_send_signal_connect_req 
-
-upper_sm_send_sdp_cfg:
-6dbe 47604038 bpatchx patch38_0 ,mem_patch38 
-6dbf 204052b8 call l2cap_malloc_signal_channel 
-6dc0 68014248 fetch 2 ,mem_sdp_remote_cid 
-6dc1 1fe20400 copy pdata ,temp 
-6dc2 202050b7 branch ml2cap_send_signal_config_req 
-
-upper_sm_send_sdp_disconn:
-6dc3 4760c038 bpatchx patch38_1 ,mem_patch38 
-6dc4 204052b8 call l2cap_malloc_signal_channel 
-6dc5 68014248 fetch 2 ,mem_sdp_remote_cid 
-6dc6 1fe20400 copy pdata ,temp 
-6dc7 d9600050 arg l2cap_sdp_channel ,timeup 
-6dc8 204050cc call ml2cap_send_signal_disconn_req 
-6dc9 6800c250 fetch 1 ,mem_sdp_state 
-6dca 793ffe05 set0 l2cap_channel_state_rcv_cfg_res ,pdata 
-6dcb 6000c250 store 1 ,mem_sdp_state 
-6dcc 20600000 rtn 
-
-upper_sm_send_ss_spp:
-6dcd 47614038 bpatchx patch38_2 ,mem_patch38 
-6dce 204052c5 call l2cap_malloc_sdp_channel 
-6dcf 20407138 call sdp_send_spp_request 
-6dd0 202050e7 branch msdp_send_req_done 
-
-upper_sm_send_rfcomm_conn:
-6dd1 4761c038 bpatchx patch38_3 ,mem_patch38 
-6dd2 204052b8 call l2cap_malloc_signal_channel 
-6dd3 58000003 setarg psm_rfcomm 
-6dd4 1fe20400 copy pdata ,temp 
-6dd5 58000051 setarg l2cap_rfcomm_channel 
-6dd6 1fe21600 copy pdata ,timeup 
-6dd7 202050a8 branch ml2cap_send_signal_connect_req 
-
-upper_sm_send_rfcomm_cfg:
-6dd8 47624038 bpatchx patch38_4 ,mem_patch38 
-6dd9 204052b8 call l2cap_malloc_signal_channel 
-6dda 6801424a fetch 2 ,mem_rfcomm_remote_cid 
-6ddb 1fe20400 copy pdata ,temp 
-6ddc 202050b7 branch ml2cap_send_signal_config_req 
-
-upper_sm_send_hid_ctrl_conn:
-6ddd 4762c038 bpatchx patch38_5 ,mem_patch38 
-6dde 204052b8 call l2cap_malloc_signal_channel 
-6ddf 58000011 setarg psm_hid_control 
-6de0 1fe20400 copy pdata ,temp 
-6de1 58000052 setarg l2cap_hid_control_channel 
-6de2 1fe21600 copy pdata ,timeup 
-6de3 202050a8 branch ml2cap_send_signal_connect_req 
-
-upper_sm_send_hid_ctrl_cfg:
-6de4 47634038 bpatchx patch38_6 ,mem_patch38 
-6de5 204052b8 call l2cap_malloc_signal_channel 
-6de6 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
-6de7 1fe20400 copy pdata ,temp 
-6de8 202050b7 branch ml2cap_send_signal_config_req 
-
-upper_sm_send_hid_int_conn:
-6de9 4763c038 bpatchx patch38_7 ,mem_patch38 
-6dea 204052b8 call l2cap_malloc_signal_channel 
-6deb 58000013 setarg psm_hid_interrupt 
-6dec 1fe20400 copy pdata ,temp 
-6ded 58000053 setarg l2cap_hid_interrupt_channel 
-6dee 1fe21600 copy pdata ,timeup 
-6def 202050a8 branch ml2cap_send_signal_connect_req 
-
-upper_sm_send_hid_int_cfg:
-6df0 47644039 bpatchx patch39_0 ,mem_patch39 
-6df1 204052b8 call l2cap_malloc_signal_channel 
-6df2 6801424e fetch 2 ,mem_hid_int_remote_cid 
-6df3 1fe20400 copy pdata ,temp 
-6df4 202050b7 branch ml2cap_send_signal_config_req 
-
-upper_sm_send_rfcomm_sabm:
-6df5 4764c039 bpatchx patch39_1 ,mem_patch39 
-6df6 204052d2 call l2cap_malloc_rfcomm_channel 
-6df7 7004fb03 jam 3 ,mem_current_adss 
-6df8 7004fe1c jam 0x1c ,mem_current_fcs 
-6df9 20406ba9 call rfcomm_send_sabm 
-6dfa 70456301 jam 1 ,mem_rfcomm_initiator 
-6dfb 20600000 rtn 
-
-upper_sm_send_spp_cmd_pn:
-6dfc 47654039 bpatchx patch39_2 ,mem_patch39 
-6dfd 204052d2 call l2cap_malloc_rfcomm_channel 
-6dfe 6808c564 fetcht 1 ,mem_remote_spp_channel 
-6dff 20406a79 call channel_to_dlci 
-6e00 6008c55d storet 1 ,mem_pn_dlci 
-6e01 20206bc4 branch rfcomm_send_param_neg_cmd 
-
-upper_sm_send_spp_sabm:
-6e02 4765c039 bpatchx patch39_3 ,mem_patch39 
-6e03 204052d2 call l2cap_malloc_rfcomm_channel 
-6e04 6808c55d fetcht 1 ,mem_pn_dlci 
-6e05 20406a73 call dlci_to_address_cmd 
-6e06 20406a1a call rfcomm_calculate_fcs_sabm 
-6e07 600084fe store 1 ,mem_current_fcs 
-6e08 6808c55d fetcht 1 ,mem_pn_dlci 
-6e09 20406a73 call dlci_to_address_cmd 
-6e0a 600884fb storet 1 ,mem_current_adss 
-6e0b 20206ba9 branch rfcomm_send_sabm 
-
-upper_sm_send_spp_cmd_ms:
-6e0c 47664039 bpatchx patch39_4 ,mem_patch39 
-6e0d 204052d2 call l2cap_malloc_rfcomm_channel 
-6e0e 6808c55d fetcht 1 ,mem_pn_dlci 
-6e0f 20406a73 call dlci_to_address_cmd 
-6e10 20206bfc branch rfcomm_send_modem_status_cmd 
-
-sdp_process:
-6e11 4766c039 bpatchx patch39_5 ,mem_patch39 
-6e12 68010264 fetch 2 ,mem_l2cap_payload_ptr 
-6e13 98000c00 iforce contr 
-6e14 e8c08000 ifetch 1 ,contr 
-6e15 1fe22400 copy pdata ,regb 
-6e16 6000851b store 1 ,mem_sdp_pduid 
-6e17 e8c10000 ifetch 2 ,contr 
-6e18 6001051c store 2 ,mem_sdp_transactionid 
-6e19 e8c08000 ifetch 1 ,contr 
-6e1a 1fed1600 lshift8 pdata ,timeup 
-6e1b e8c08000 ifetch 1 ,contr 
-6e1c 99609600 iadd timeup ,timeup 
-6e1d 47674039 bpatchx patch39_6 ,mem_patch39 
-6e1e 18c20400 copy contr ,temp 
-6e1f df200004 arg 4 ,loopcnt 
-6e20 d8a0052a arg mem_sdp_handle_list ,contw 
-6e21 20407ec6 call memset0 
-6e22 18420c00 copy temp ,contr 
-6e23 1a427e00 deposit regb 
-6e24 c000efba beq sdp_error_res ,sdp_process_error_res 
-6e25 c0016e2c beq sdp_search_req ,sdp_process_ss_req 
-6e26 c001efba beq sdp_search_res ,sdp_process_ss_res 
-6e27 c0026e54 beq sdp_attribute_req ,sdp_process_sa_req 
-6e28 c002efba beq sdp_attribute_res ,sdp_process_sa_res 
-6e29 c0036f02 beq sdp_searchattrib_req ,sdp_process_ssa_req 
-6e2a c003efba beq sdp_searchattrib_res ,sdp_process_ssa_res 
-6e2b 20206fc1 branch sdp_insufficient_resource 
-
-sdp_process_ss_req:
-6e2c 4767c039 bpatchx patch39_7 ,mem_patch39 
-6e2d 20406fd0 call ask_serviceclassid 
-6e2e 2841fe01 compare 1 ,temp ,0xff 
-6e2f 2020f040 branch ss_empty_rsp ,true 
-6e30 2841feff compare 0xff ,temp ,0xff 
-6e31 2020efc4 branch sdp_invalid_request_syntax ,true 
-6e32 e8c10000 ifetch 2 ,contr 
-6e33 60010522 store 2 ,mem_sdp_record_maxcnt 
-6e34 196097fe increase -2 ,timeup 
-6e35 196097ff increase -1 ,timeup 
-6e36 2422efbe nbranch sdp_invalid_pdu_size ,zero 
-6e37 d9600511 arg mem_sdp_uuid_search_ptr ,timeup 
-6e38 e9610000 ifetch 2 ,timeup 
-6e39 207a0000 rtn blank 
-6e3a 20407082 call search_all_uuid 
-6e3b 204052d0 call l2cap_get_sdp_tx_payload 
-6e3c 18007e03 force 3 ,pdata 
-6e3d e0a08000 istore 1 ,contw 
-6e3e 6801051c fetch 2 ,mem_sdp_transactionid 
-6e3f e0a10000 istore 2 ,contw 
-6e40 18ebfe00 lshift2 queue ,pdata 
-6e41 1fe0fe05 add pdata ,5 ,pdata 
-6e42 1fe0a605 add pdata ,5 ,regc 
-6e43 1ff0fe00 byteswap pdata ,pdata 
-6e44 e0a10000 istore 2 ,contw 
-6e45 18e27e00 deposit queue 
-6e46 1ff0fe00 byteswap pdata ,pdata 
-6e47 e0a10000 istore 2 ,contw 
-6e48 e0a10000 istore 2 ,contw 
-6e49 d8c0052a arg mem_sdp_handle_list ,contr 
-6e4a 18e27200 copy queue ,loopcnt 
-6e4b 2022ee4f branch ss_req_blank ,zero 
-
-ss_req_loop:
-6e4c e8c20000 ifetch 4 ,contr 
-6e4d e0a20000 istore 4 ,contw 
-6e4e c2006e4c loop ss_req_loop 
-
-ss_req_blank:
-6e4f 18007e00 force 0 ,pdata 
-6e50 e0a08000 istore 1 ,contw 
-6e51 1a627e00 deposit regc 
-6e52 60010275 store 2 ,mem_sdp_tx_pkt_length 
-6e53 20600000 rtn 
-
-sdp_process_sa_req:
-6e54 4768403a bpatchx patch3a_0 ,mem_patch3a 
-6e55 e8c20000 ifetch 4 ,contr 
-6e56 60020524 store 4 ,mem_sdp_record_handle 
-6e57 196097fc increase -4 ,timeup 
-6e58 20406f2e call sdp_store_maxbyte 
-6e59 60010520 store 2 ,mem_sdp_attribute_maxbyte 
-6e5a 196097fe increase -2 ,timeup 
-6e5b 20407028 call dataelementtype6 
-6e5c 2022efc4 branch sdp_invalid_request_syntax ,zero 
-6e5d 2a21fe05 compare 5 ,rega ,0xff 
-6e5e 2020ee62 branch sa_judge_wholerange ,true 
-
-sa_isnot_wholerange:
-6e5f d8a0052a arg mem_sdp_attrib_list ,contw 
-6e60 18000e00 force 0 ,queue 
-6e61 20206e71 branch sa_req_loop 
-
-sa_judge_wholerange:
-6e62 e8c08000 ifetch 1 ,contr 
-6e63 c0856fc4 bne sdp_attribute_range ,sdp_invalid_request_syntax 
-6e64 e8c10000 ifetch 2 ,contr 
-6e65 243a6e6f nbranch sa_judge_wholerange_false1 ,blank 
-6e66 e8c08000 ifetch 1 ,contr 
-6e67 c0ffee6d bne 0xff ,sa_judge_wholerange_false2 
-6e68 e8c08000 ifetch 1 ,contr 
-6e69 c0ffee6b bne 0xff ,sa_judge_wholerange_false3 
-6e6a 20206eb8 branch sa_req_all 
-
-sa_judge_wholerange_false3:
-6e6b 18c08dfb increase -5 ,contr 
-6e6c 20206e5f branch sa_isnot_wholerange 
-
-sa_judge_wholerange_false2:
-6e6d 18c08dfc increase -4 ,contr 
-6e6e 20206e5f branch sa_isnot_wholerange 
-
-sa_judge_wholerange_false1:
-6e6f 18c08dfd increase -3 ,contr 
-6e70 20206e5f branch sa_isnot_wholerange 
-
-sa_req_loop:
-6e71 e8c08000 ifetch 1 ,contr 
-6e72 c004ee86 beq sdp_attribute_id ,sa_req_one_id 
-6e73 c0056e74 beq sdp_attribute_range ,sa_req_range 
-
-sa_req_range:
-6e74 e8c10000 ifetch 2 ,contr 
-6e75 e0a10000 istore 2 ,contw 
-6e76 18e08e01 increase 1 ,queue 
-6e77 1ff0a400 byteswap pdata ,regb 
-6e78 e8c10000 ifetch 2 ,contr 
-6e79 1ff0fe00 byteswap pdata ,pdata 
-
-sa_req_range_id_increase:
-6e7a 1a40a401 increase 1 ,regb 
-6e7b 9a467c00 isub regb ,null 
-6e7c 24216e83 nbranch sa_req_range_id_finish ,positive 
-6e7d 1fe22600 copy pdata ,regc 
-6e7e 1a50fe00 byteswap regb ,pdata 
-6e7f e0a10000 istore 2 ,contw 
-6e80 18e08e01 increase 1 ,queue 
-6e81 1a627e00 copy regc ,pdata 
-6e82 20206e7a branch sa_req_range_id_increase 
-
-sa_req_range_id_finish:
-6e83 196097fb increase -5 ,timeup 
-6e84 1a20a3fb increase -5 ,rega 
-6e85 20206e8b branch sa_req_check_next_id 
-
-sa_req_one_id:
-6e86 e8c10000 ifetch 2 ,contr 
-6e87 e0a10000 istore 2 ,contw 
-6e88 18e08e01 increase 1 ,queue 
-6e89 196097fd increase -3 ,timeup 
-6e8a 1a20a3fd increase -3 ,rega 
-
-sa_req_check_next_id:
-6e8b 24216fc4 nbranch sdp_invalid_request_syntax ,positive 
-6e8c 2422ee71 nbranch sa_req_loop ,zero 
-6e8d 196097ff increase -1 ,timeup 
-6e8e 2422efc4 nbranch sdp_invalid_request_syntax ,zero 
-6e8f 204052d0 call l2cap_get_sdp_tx_payload 
-6e90 18a08a0a increase 10 ,contw 
-6e91 da20052a arg mem_sdp_attrib_list ,rega 
-
-sa_req_handle_attributelist_next:
-6e92 18e27e00 copy queue ,pdata 
-6e93 203a6ea5 branch sa_req_handle_attributelist_end ,blank 
-6e94 ea210000 ifetch 2 ,rega 
-6e95 203a6ea5 branch sa_req_handle_attributelist_end ,blank 
-6e96 98002400 iforce regb 
-6e97 68020524 fetch 4 ,mem_sdp_record_handle 
-6e98 98000400 iforce temp 
-6e99 204070e7 call search_handle_attrib 
-6e9a 18c27e00 copy contr ,pdata 
-6e9b 203a6ea2 branch sa_req_handle_attributelist_notfound ,blank 
-6e9c 18c08dfd increase -3 ,contr 
-6e9d e8c18000 ifetch 3 ,contr 
-6e9e e0a18000 istore 3 ,contw 
-6e9f 2040705b call sdp_data_len 
-6ea0 98007200 iforce loopcnt 
-6ea1 20407f01 call memcpy 
-
-sa_req_handle_attributelist_notfound:
-6ea2 1a20a202 increase 2 ,rega 
-6ea3 18e08fff increase -1 ,queue 
-6ea4 20206e92 branch sa_req_handle_attributelist_next 
-
-sa_req_handle_attributelist_end:
-6ea5 da200005 arg sdp_attribute_res ,rega 
-6ea6 20406f84 call ssa_req_range_lastfreg_common 
-6ea7 68010275 fetch 2 ,mem_sdp_tx_pkt_length 
-6ea8 c005f043 beq 11 ,sa_empty_rsp 
-6ea9 20206f9a branch ssa_req_range_attrbutes_length_no_continue 
-
-sdp_store_continue_common:
-6eaa e8c08000 ifetch 1 ,contr 
-6eab c0006eae beq 0 ,sdp_store_continue_0byte 
-6eac c000eeb0 beq 1 ,sdp_store_continue_1byte 
-6ead c0016eb3 beq 2 ,sdp_store_continue_2byte 
-
-sdp_store_continue_0byte:
-6eae 196097ff increase -1 ,timeup 
-6eaf 20206eb6 branch sdp_store_continue_end 
-
-sdp_store_continue_1byte:
-6eb0 e8c08000 ifetch 1 ,contr 
-6eb1 196097fe increase -2 ,timeup 
-6eb2 20206eb6 branch sdp_store_continue_end 
-
-sdp_store_continue_2byte:
-6eb3 e8c10000 ifetch 2 ,contr 
-6eb4 1ff0fe00 byteswap pdata ,pdata 
-6eb5 196097fd increase -3 ,timeup 
-
-sdp_store_continue_end:
-6eb6 60010519 store 2 ,mem_sdp_continue_byte 
-6eb7 20600000 rtn 
-
-sa_req_all:
-6eb8 196097fb increase -5 ,timeup 
-6eb9 20406eaa call sdp_store_continue_common 
-6eba 2422efbe nbranch sdp_invalid_pdu_size ,zero 
-6ebb 680a0524 fetcht 4 ,mem_sdp_record_handle 
-6ebc 204070b1 call search_handle 
-6ebd 2422efbb nbranch sdp_invalid_service_record_handle ,zero 
-6ebe 18c22200 copy contr ,rega 
-6ebf 204052d0 call l2cap_get_sdp_tx_payload 
-6ec0 1a220c00 copy rega ,contr 
-6ec1 18a08a03 increase 3 ,contw 
-6ec2 18c21600 copy contr ,timeup 
-6ec3 20407062 call sdp_get_data 
-6ec4 1fe22200 copy pdata ,rega 
-6ec5 68010519 fetch 2 ,mem_sdp_continue_byte 
-6ec6 1fe22400 copy pdata ,regb 
-6ec7 1a227e00 copy rega ,pdata 
-6ec8 9a462400 isub regb ,regb 
-6ec9 68010520 fetch 2 ,mem_sdp_attribute_maxbyte 
-6eca 9a467c00 isub regb ,null 
-6ecb 24216ee7 nbranch sa_req_all_fragment_sdp ,positive 
-6ecc 78547c00 disable user 
-6ecd 68010519 fetch 2 ,mem_sdp_continue_byte 
-6ece 203a6eda branch sa_req_all_fisrt_fragment ,blank 
-6ecf 99608c00 iadd timeup ,contr 
-6ed0 1a40a403 increase 3 ,regb 
-6ed1 1a427200 copy regb ,loopcnt 
-6ed2 1f227e00 copy loopcnt ,pdata 
-6ed3 1fe0fe03 increase 3 ,pdata 
-6ed4 1ff0fe00 byteswap pdata ,pdata 
-6ed5 e0a10000 istore 2 ,contw 
-6ed6 1f227e00 copy loopcnt ,pdata 
-6ed7 1ff0fe00 byteswap pdata ,pdata 
-6ed8 e0a10000 istore 2 ,contw 
-6ed9 20206ef5 branch sa_req_all_answer_attributelist_full_loop 
-
-sa_req_all_fisrt_fragment:
-6eda 1a20f206 add rega ,6 ,loopcnt 
-6edb 20346ede branch sa_req_all_parlength_continue_byte ,user 
-6edc 1f30fe00 byteswap loopcnt ,pdata 
-6edd 20206ee1 branch sa_req_all_parlength_continue_byte_end 
-
-sa_req_all_parlength_continue_byte:
-6ede 1f227e00 copy loopcnt ,pdata 
-6edf 1fe0fe02 increase 2 ,pdata 
-6ee0 1ff0fe00 byteswap pdata ,pdata 
-
-sa_req_all_parlength_continue_byte_end:
-6ee1 e0a10000 istore 2 ,contw 
-6ee2 1f20f3fd increase -3 ,loopcnt 
-6ee3 1f30fe00 byteswap loopcnt ,pdata 
-6ee4 e0a10000 istore 2 ,contw 
-6ee5 19620c00 copy timeup ,contr 
-6ee6 20206ef5 branch sa_req_all_answer_attributelist_full_loop 
-
-sa_req_all_fragment_sdp:
-6ee7 78347c00 enable user 
-6ee8 68010520 fetch 2 ,mem_sdp_attribute_maxbyte 
-6ee9 1fe22200 copy pdata ,rega 
-6eea 1a227200 copy rega ,loopcnt 
-6eeb 68010519 fetch 2 ,mem_sdp_continue_byte 
-6eec 203a6eda branch sa_req_all_fisrt_fragment ,blank 
-6eed 99608c00 iadd timeup ,contr 
-6eee 1a227e00 copy rega ,pdata 
-6eef 1fe0fe05 increase 5 ,pdata 
-6ef0 1ff0fe00 byteswap pdata ,pdata 
-6ef1 e0a10000 istore 2 ,contw 
-6ef2 1a227e00 copy rega ,pdata 
-6ef3 1ff0fe00 byteswap pdata ,pdata 
-6ef4 e0a10000 istore 2 ,contw 
-
-sa_req_all_answer_attributelist_full_loop:
-6ef5 20407f01 call memcpy 
-6ef6 24346efe nbranch sa_req_all_last_frag_continue ,user 
-6ef7 18007e02 force 2 ,pdata 
-6ef8 e0a08000 istore 1 ,contw 
-6ef9 18c27e00 copy contr ,pdata 
-6efa 99667e00 isub timeup ,pdata 
-6efb 1ff0fe00 byteswap pdata ,pdata 
-6efc e0a10000 istore 2 ,contw 
-6efd 20206f00 branch sa_req_all_frag_end 
-
-sa_req_all_last_frag_continue:
-6efe 18007e00 force 0 ,pdata 
-6eff e0a08000 istore 1 ,contw 
-
-sa_req_all_frag_end:
-6f00 da200005 arg sdp_attribute_res ,rega 
-6f01 20206fb0 branch ssa_req_range_common 
-
-sdp_process_ssa_req:
-6f02 4768c03a bpatchx patch3a_1 ,mem_patch3a 
-6f03 20406fd0 call ask_serviceclassid 
-6f04 2841feff compare 0xff ,temp ,0xff 
-6f05 2020efc4 branch sdp_invalid_request_syntax ,true 
-6f06 20406f2e call sdp_store_maxbyte 
-6f07 60010520 store 2 ,mem_sdp_attribute_maxbyte 
-6f08 196097fe increase -2 ,timeup 
-6f09 20407028 call dataelementtype6 
-6f0a d8a0052a arg mem_sdp_attrib_list ,contw 
-6f0b 18000e00 force 0 ,queue 
-
-ssa_req_loop:
-6f0c e8c08000 ifetch 1 ,contr 
-6f0d c0056f36 beq sdp_attribute_range ,ssa_req_range 
-6f0e e8c10000 ifetch 2 ,contr 
-6f0f e0a10000 istore 2 ,contw 
-6f10 18e08e01 increase 1 ,queue 
-6f11 196097fd increase -3 ,timeup 
-6f12 1a20a3fd increase -3 ,rega 
-6f13 24216fc4 nbranch sdp_invalid_request_syntax ,positive 
-6f14 2422ef0c nbranch ssa_req_loop ,zero 
-6f15 196097ff increase -1 ,timeup 
-6f16 2422efc4 nbranch sdp_invalid_request_syntax ,zero 
-6f17 204052d0 call l2cap_get_sdp_tx_payload 
-6f18 18a08a0d increase 13 ,contw 
-6f19 68010511 fetch 2 ,mem_sdp_uuid_search_ptr 
-6f1a 98002600 iforce regc 
-6f1b da20052a arg mem_sdp_attrib_list ,rega 
-
-ssa_req_attributelist_next:
-6f1c ea210000 ifetch 2 ,rega 
-6f1d 203a6f29 branch ssa_req_attributelist_end ,blank 
-6f1e 98002400 iforce regb 
-6f1f 204070c6 call search_attrib 
-6f20 203a6f27 branch ssa_req_attributelist_notfound ,blank 
-6f21 18c08dfd increase -3 ,contr 
-6f22 e8c18000 ifetch 3 ,contr 
-6f23 e0a18000 istore 3 ,contw 
-6f24 2040705b call sdp_data_len 
-6f25 98007200 iforce loopcnt 
-6f26 20407f01 call memcpy 
-
-ssa_req_attributelist_notfound:
-6f27 1a20a202 increase 2 ,rega 
-6f28 20206f1c branch ssa_req_attributelist_next 
-
-ssa_req_attributelist_end:
-6f29 20406f83 call ssa_req_range_lastfreg 
-6f2a 68010275 fetch 2 ,mem_sdp_tx_pkt_length 
-6f2b c0077046 beq 14 ,ssa_empty_rsp 
-6f2c 20406f9a call ssa_req_range_attrbutes_length_no_continue 
-6f2d 20206f9a branch ssa_req_range_attrbutes_length_no_continue 
-
-sdp_store_maxbyte:
-6f2e e8c10000 ifetch 2 ,contr 
-6f2f 1ff0fe00 byteswap pdata ,pdata 
-6f30 1fe0fffd increase -3 ,pdata 
-6f31 d84000c8 arg 200 ,temp 
-6f32 98467c00 isub temp ,null 
-6f33 24610000 nrtn positive 
-6f34 580000c8 setarg 200 
-6f35 20600000 rtn 
-
-ssa_req_range:
-6f36 18c08c04 increase 4 ,contr 
-6f37 196097fb increase -5 ,timeup 
-6f38 1a20a3fb increase -5 ,rega 
-6f39 2422efc4 nbranch sdp_invalid_request_syntax ,zero 
-6f3a 20406eaa call sdp_store_continue_common 
-6f3b 2422efbe nbranch sdp_invalid_pdu_size ,zero 
-6f3c d9600511 arg mem_sdp_uuid_search_ptr ,timeup 
-6f3d 20407082 call search_all_uuid 
-6f3e 18e27e00 deposit queue 
-6f3f 203a7046 branch ssa_empty_rsp ,blank 
-6f40 6000854e store 1 ,mem_handle_humber 
-6f41 1a427e00 copy regb ,pdata 
-6f42 6001054c store 2 ,mem_sdp_all_length 
-6f43 d8e00000 arg 0 ,queue 
-6f44 da200000 arg 0 ,rega 
-6f45 204052d0 call l2cap_get_sdp_tx_payload 
-6f46 18a08a0a increase 10 ,contw 
-
-ssa_req_range_find_handle:
-6f47 20406f6c call ssa_req_range_get_length 
-6f48 24342a8c nbranch assert ,user 
-6f49 18c21600 copy contr ,timeup 
-6f4a 1fe22600 copy pdata ,regc 
-6f4b 9a20a200 iadd rega ,rega 
-6f4c 68010519 fetch 2 ,mem_sdp_continue_byte 
-6f4d 1fe22400 copy pdata ,regb 
-6f4e 203a6f75 branch ssa_req_range_first_freg ,blank 
-
-ssa_req_range_later_freg_with_continue:
-6f4f 1a227e00 copy rega ,pdata 
-6f50 9a462400 isub regb ,regb 
-6f51 2022ef67 branch ssa_req_range_next_handle ,zero 
-6f52 24216f67 nbranch ssa_req_range_next_handle ,positive 
-6f53 68010520 fetch 2 ,mem_sdp_attribute_maxbyte 
-6f54 9a467c00 isub regb ,null 
-6f55 2022ef5e branch ssa_req_range_maxbyte_with_continue ,zero 
-6f56 24216f5e nbranch ssa_req_range_maxbyte_with_continue ,positive 
-
-ssa_req_range_send_not_maxbyte:
-6f57 1a427200 copy regb ,loopcnt 
-6f58 20406f61 call ssa_req_range_maxbyte_with_continue_cpy 
-6f59 6800854e fetch 1 ,mem_handle_humber 
-6f5a 18e08e01 increase 1 ,queue 
-6f5b 98e67c00 isub queue ,null 
-6f5c 2022ef83 branch ssa_req_range_lastfreg ,zero 
-6f5d 20206fa0 branch ssa_req_range_freg_with_continue 
-
-ssa_req_range_maxbyte_with_continue:
-6f5e 1fe27200 copy pdata ,loopcnt 
-6f5f 20406f61 call ssa_req_range_maxbyte_with_continue_cpy 
-6f60 20206fa0 branch ssa_req_range_freg_with_continue 
-
-ssa_req_range_maxbyte_with_continue_cpy:
-6f61 18a08bfd increase -3 ,contw 
-6f62 1f220400 copy loopcnt ,temp 
-6f63 1a627e00 copy regc ,pdata 
-6f64 9a467e00 isub regb ,pdata 
-6f65 99608c00 iadd timeup ,contr 
-6f66 20207f01 branch memcpy 
-
-ssa_req_range_next_handle:
-6f67 6800854e fetch 1 ,mem_handle_humber 
-6f68 18e08e01 increase 1 ,queue 
-6f69 98e67c00 isub queue ,null 
-6f6a 20628000 rtn zero 
-6f6b 20206f47 branch ssa_req_range_find_handle 
-
-ssa_req_range_get_length:
-6f6c 20407fe9 call disable_user 
-6f6d d8c0052a arg mem_sdp_handle_list ,contr 
-6f6e 18ebfe00 lshift2 queue ,pdata 
-6f6f 98c08c00 iadd contr ,contr 
-6f70 e8ca0000 ifetcht 4 ,contr 
-6f71 204070b1 call search_handle 
-6f72 24628000 nrtn zero 
-6f73 2040705b call sdp_data_len 
-6f74 20207fe7 branch enable_user 
-
-ssa_req_range_first_freg:
-6f75 68010520 fetch 2 ,mem_sdp_attribute_maxbyte 
-6f76 9a267c00 isub rega ,null 
-6f77 24216f8f nbranch ssa_req_range_firstfreg_maxbyte_with_continue ,positive 
-6f78 1a227200 copy rega ,loopcnt 
-6f79 1f220400 copy loopcnt ,temp 
-6f7a 19620c00 copy timeup ,contr 
-6f7b 20407f01 call memcpy 
-6f7c 6801054c fetch 2 ,mem_sdp_all_length 
-6f7d 9a267c00 isub rega ,null 
-6f7e 2022ef81 branch ssa_req_range_freg_no_continue ,zero 
-
-ssa_req_range_firstfreg_not_maxbyte_with_continue:
-6f7f 20406fa0 call ssa_req_range_freg_with_continue 
-6f80 20206f94 branch ssa_req_range_attrbutes_length 
-
-ssa_req_range_freg_no_continue:
-6f81 20406f83 call ssa_req_range_lastfreg 
-6f82 20206f94 branch ssa_req_range_attrbutes_length 
-
-ssa_req_range_lastfreg:
-6f83 da200007 arg sdp_searchattrib_res ,rega 
-
-ssa_req_range_lastfreg_common:
-6f84 18007e00 force 0 ,pdata 
-6f85 e0a08000 istore 1 ,contw 
-6f86 20406fb0 call ssa_req_range_common 
-6f87 68090275 fetcht 2 ,mem_sdp_tx_pkt_length 
-6f88 184085fb increase -5 ,temp 
-6f89 1850fe00 byteswap temp ,pdata 
-6f8a e0a10000 istore 2 ,contw 
-6f8b 184085fd increase -3 ,temp 
-6f8c 1850fe00 byteswap temp ,pdata 
-6f8d e0a10000 istore 2 ,contw 
-6f8e 20600000 rtn 
-
-ssa_req_range_firstfreg_maxbyte_with_continue:
-6f8f 1fe27200 copy pdata ,loopcnt 
-6f90 1f220400 copy loopcnt ,temp 
-6f91 19620c00 copy timeup ,contr 
-6f92 20407f01 call memcpy 
-6f93 20406fa0 call ssa_req_range_freg_with_continue 
-
-ssa_req_range_attrbutes_length:
-6f94 58000036 setarg 0x36 
-6f95 e0a08000 istore 1 ,contw 
-6f96 6801054c fetch 2 ,mem_sdp_all_length 
-6f97 1ff0fe00 byteswap pdata ,pdata 
-6f98 e0a10000 istore 2 ,contw 
-6f99 20600000 rtn 
-
-ssa_req_range_attrbutes_length_no_continue:
-6f9a 58000036 setarg 0x36 
-6f9b e0a08000 istore 1 ,contw 
-6f9c 184085fd increase -3 ,temp 
-6f9d 1850fe00 byteswap temp ,pdata 
-6f9e e0a10000 istore 2 ,contw 
-6f9f 20600000 rtn 
-
-ssa_req_range_freg_with_continue:
-6fa0 da200007 arg sdp_searchattrib_res ,rega 
-6fa1 58000002 setarg 2 
-6fa2 e0a08000 istore 1 ,contw 
-6fa3 68010519 fetch 2 ,mem_sdp_continue_byte 
-6fa4 98408400 iadd temp ,temp 
-6fa5 1850fe00 byteswap temp ,pdata 
-6fa6 e0a10000 istore 2 ,contw 
-6fa7 20406fb0 call ssa_req_range_common 
-6fa8 68090275 fetcht 2 ,mem_sdp_tx_pkt_length 
-6fa9 184085fb increase -5 ,temp 
-6faa 1850fe00 byteswap temp ,pdata 
-6fab e0a10000 istore 2 ,contw 
-6fac 184085fb increase -5 ,temp 
-6fad 1850fe00 byteswap temp ,pdata 
-6fae e0a10000 istore 2 ,contw 
-6faf 20600000 rtn 
-
-ssa_req_range_common:
-6fb0 68010273 fetch 2 ,mem_sdp_tx_payload_ptr 
-6fb1 98a67e00 isub contw ,pdata 
-6fb2 1fe67e00 sub pdata ,0 ,pdata 
-6fb3 60010275 store 2 ,mem_sdp_tx_pkt_length 
-6fb4 204052d0 call l2cap_get_sdp_tx_payload 
-6fb5 1a227e00 copy rega ,pdata 
-6fb6 e0a08000 istore 1 ,contw 
-6fb7 6801051c fetch 2 ,mem_sdp_transactionid 
-6fb8 e0a10000 istore 2 ,contw 
-6fb9 20600000 rtn 
-
-sdp_process_ssa_res:
-
-sdp_process_ss_res:
-
-sdp_process_sa_res:
-
-sdp_process_error_res:
-6fba 20600000 rtn 
-
-sdp_invalid_service_record_handle:
-6fbb 58000200 setarg 0x0200 
-6fbc 6001054a store 2 ,mem_sdp_error_code 
-6fbd 20206fc6 branch sdp_error_response 
-
-sdp_invalid_pdu_size:
-6fbe 58000400 setarg 0x0400 
-6fbf 6001054a store 2 ,mem_sdp_error_code 
-6fc0 20206fc6 branch sdp_error_response 
-
-sdp_insufficient_resource:
-6fc1 58000600 setarg 0x0600 
-6fc2 6001054a store 2 ,mem_sdp_error_code 
-6fc3 20206fc6 branch sdp_error_response 
-
-sdp_invalid_request_syntax:
-6fc4 58000300 setarg 0x0300 
-6fc5 6001054a store 2 ,mem_sdp_error_code 
-
-sdp_error_response:
-6fc6 204052d0 call l2cap_get_sdp_tx_payload 
-6fc7 e0a08000 istore 1 ,contw 
-6fc8 6801051c fetch 2 ,mem_sdp_transactionid 
-6fc9 e0a10000 istore 2 ,contw 
-6fca 58000200 setarg 0x0200 
-6fcb e0a10000 istore 2 ,contw 
-6fcc 6801054a fetch 2 ,mem_sdp_error_code 
-6fcd e0a10000 istore 2 ,contw 
-6fce 70027507 jam 7 ,mem_sdp_tx_pkt_length 
-6fcf 20600000 rtn 
-
-ask_serviceclassid:
-6fd0 da400000 arg 0 ,regb 
-6fd1 18000400 force 0 ,temp 
-6fd2 d8a00511 arg mem_sdp_uuid_search_ptr ,contw 
-6fd3 20407028 call dataelementtype6 
-6fd4 2022f026 branch asksrv_error ,zero 
-
-classidloop:
-6fd5 1a40a401 increase 1 ,regb 
-6fd6 e8c08000 ifetch 1 ,contr 
-6fd7 1a20a3ff increase -1 ,rega 
-6fd8 196097ff increase -1 ,timeup 
-6fd9 2fe1f018 compare 0x18 ,pdata ,0xf8 
-6fda 2420f026 nbranch asksrv_error ,true 
-6fdb 2fe00e04 compare 0x04 ,pdata ,0x07 
-6fdc 2420eff3 nbranch cmp032 ,true 
-6fdd 18000401 force 1 ,temp 
-
-skip2bytes:
-6fde e8c08000 ifetch 1 ,contr 
-6fdf 1a20a3ff increase -1 ,rega 
-6fe0 196097ff increase -1 ,timeup 
-6fe1 c0806fe7 bne 0x00 ,frstbwrong 
-6fe2 e8c08000 ifetch 1 ,contr 
-6fe3 1a20a3ff increase -1 ,rega 
-6fe4 196097ff increase -1 ,timeup 
-6fe5 c0006ff8 beq 0x00 ,cmpuuid 
-6fe6 20206fea branch scndbwrong 
-
-frstbwrong:
-6fe7 18c08c01 increase 1 ,contr 
-6fe8 1a20a3ff increase -1 ,rega 
-6fe9 196097ff increase -1 ,timeup 
-
-scndbwrong:
-6fea 18c08c02 increase 2 ,contr 
-6feb 1a20a3fe increase -2 ,rega 
-6fec 196097fe increase -2 ,timeup 
-6fed 2841fe00 compare 0x00 ,temp ,0xff 
-6fee 2020f020 branch loopornot ,true 
-6fef 18c08c0c increase 12 ,contr 
-6ff0 1a20a3f4 increase -12 ,rega 
-6ff1 196097f4 increase -12 ,timeup 
-6ff2 20207020 branch loopornot 
-
-cmp032:
-6ff3 2fe00e02 compare 0x02 ,pdata ,0x07 
-6ff4 2420eff6 nbranch cmp016 ,true 
-6ff5 20206fde branch skip2bytes 
-
-cmp016:
-6ff6 2fe00e01 compare 0x01 ,pdata ,0x07 
-6ff7 2420f026 nbranch asksrv_error ,true 
-
-cmpuuid:
-6ff8 1a20a3fe increase -2 ,rega 
-6ff9 196097fe increase -2 ,timeup 
-6ffa e8c10000 ifetch 2 ,contr 
-6ffb 1a467c04 sub regb ,4 ,null 
-6ffc 2022effe branch uuidsize ,zero 
-6ffd e0a10000 istore 2 ,contw 
-
-uuidsize:
-6ffe 2841fe00 compare 0x00 ,temp ,0xff 
-6fff 2020f020 branch loopornot ,true 
-7000 18c20400 copy contr ,temp 
-7001 e8c08000 ifetch 1 ,contr 
-7002 c0807019 bne 0x00 ,wrong12b 
-7003 e8c08000 ifetch 1 ,contr 
-7004 c0807019 bne 0x00 ,wrong12b 
-7005 e8c08000 ifetch 1 ,contr 
-7006 c0887019 bne 0x10 ,wrong12b 
-7007 e8c08000 ifetch 1 ,contr 
-7008 c0807019 bne 0x00 ,wrong12b 
-7009 e8c08000 ifetch 1 ,contr 
-700a c0c07019 bne 0x80 ,wrong12b 
-700b e8c08000 ifetch 1 ,contr 
-700c c0807019 bne 0x00 ,wrong12b 
-700d e8c08000 ifetch 1 ,contr 
-700e c0807019 bne 0x00 ,wrong12b 
-700f e8c08000 ifetch 1 ,contr 
-7010 c0c07019 bne 0x80 ,wrong12b 
-7011 e8c08000 ifetch 1 ,contr 
-7012 c0aff019 bne 0x5f ,wrong12b 
-7013 e8c08000 ifetch 1 ,contr 
-7014 c0cdf019 bne 0x9b ,wrong12b 
-7015 e8c08000 ifetch 1 ,contr 
-7016 c09a7019 bne 0x34 ,wrong12b 
-7017 e8c08000 ifetch 1 ,contr 
-7018 c07df01e beq 0xfb ,chck12dn 
-
-wrong12b:
-7019 18420c00 copy temp ,contr 
-
-wrong12b1:
-701a 18c08c0c increase 12 ,contr 
-701b 18000e00 force 0x00 ,queue 
-701c 18000400 force 0x00 ,temp 
-701d 2020701e branch chck12dn 
-
-chck12dn:
-701e 196097f4 increase -12 ,timeup 
-701f 1a20a3f4 increase -12 ,rega 
-
-loopornot:
-7020 18000400 force 0x00 ,temp 
-7021 2a21fe00 compare 0x00 ,rega ,0xff 
-7022 2420efd5 nbranch classidloop ,true 
-7023 18007e00 force 0 ,pdata 
-7024 e0a10000 istore 2 ,contw 
-7025 20600000 rtn 
-
-asksrv_error:
-7026 d84000ff arg 0xff ,temp 
-7027 20600000 rtn 
-
-dataelementtype6:
-7028 476a403a bpatchx patch3a_4 ,mem_patch3a 
-7029 e8c08000 ifetch 1 ,contr 
-702a 196097ff increase -1 ,timeup 
-702b 2fe1f030 compare 0x30 ,pdata ,0xf8 
-702c 2420f03e nbranch dsize_error ,true 
-702d 2fe00e07 compare 0x07 ,pdata ,0x07 
-702e 2020f037 branch dsize32 ,true 
-702f 2fe00e06 compare 0x06 ,pdata ,0x07 
-7030 2020f039 branch dsize16 ,true 
-7031 2fe00e05 compare 0x05 ,pdata ,0x07 
-7032 2420f03e nbranch dsize_error ,true 
-7033 e8c08000 ifetch 1 ,contr 
-7034 1fe22200 copy pdata ,rega 
-7035 196097ff increase -1 ,timeup 
-7036 2020703c branch dsize 
-
-dsize32:
-7037 18c08c02 increase 2 ,contr 
-7038 196097fe increase -2 ,timeup 
-
-dsize16:
-7039 e8c10000 ifetch 2 ,contr 
-703a 1ff0a200 byteswap pdata ,rega 
-703b 196097fe increase -2 ,timeup 
-
-dsize:
-703c 18007e01 force 0x01 ,pdata 
-703d 20600000 rtn 
-
-dsize_error:
-703e 18007e00 force 0x00 ,pdata 
-703f 20600000 rtn 
-
-ss_empty_rsp:
-7040 58000003 setarg sdp_search_res 
-7041 6000851b store 1 ,mem_sdp_pduid 
-7042 20207048 branch empty_response 
-
-sa_empty_rsp:
-7043 58000005 setarg sdp_attribute_res 
-7044 6000851b store 1 ,mem_sdp_pduid 
-7045 20207048 branch empty_response 
-
-ssa_empty_rsp:
-7046 58000007 setarg sdp_searchattrib_res 
-7047 6000851b store 1 ,mem_sdp_pduid 
-
-empty_response:
-7048 204052d0 call l2cap_get_sdp_tx_payload 
-7049 6800851b fetch 1 ,mem_sdp_pduid 
-704a 1fe22400 copy pdata ,regb 
-704b e0a08000 istore 1 ,contw 
-704c 6801051c fetch 2 ,mem_sdp_transactionid 
-704d e0a10000 istore 2 ,contw 
-704e 58000500 setarg 0x0500 
-704f e0a10000 istore 2 ,contw 
-7050 2a41fe05 compare sdp_attribute_res ,regb ,0xff 
-7051 2020f057 branch fullsearch ,true 
-7052 2a41fe07 compare sdp_searchattrib_res ,regb ,0xff 
-7053 2020f057 branch fullsearch ,true 
-7054 58000000 setarg 0x000000 
-7055 e0a28000 istore 5 ,contw 
-7056 20207059 branch outempty 
-
-fullsearch:
-7057 58350200 setarg 0x350200 
-7058 e0a28000 istore 5 ,contw 
-
-outempty:
-7059 7002750a jam 10 ,mem_sdp_tx_pkt_length 
-705a 20600000 rtn 
-
-sdp_data_len:
-705b 20407ea2 call store_contw 
-705c 20407ea5 call store_contr 
-705d 20407062 call sdp_get_data 
-705e 20407e9c call get_contw 
-705f 20407e9f call get_contr 
-7060 18427e00 copy temp ,pdata 
-7061 20600000 rtn 
-
-sdp_get_data:
-7062 e8c08000 ifetch 1 ,contr 
-7063 1fe17207 and pdata ,0x7 ,loopcnt 
-7064 1fe97e00 rshift3 pdata ,pdata 
-7065 c080706c bne 0 ,sdp_get_data_type_not0 
-
-sdp_get_data_type0:
-7066 18007e01 force 1 ,pdata 
-7067 18000401 force 1 ,temp 
-7068 20600000 rtn 
-
-sdp_get_data_type_not0_sizeindex01234:
-7069 20407e76 call left_shift_n 
-706a 1fe08401 add pdata ,1 ,temp 
-706b 20600000 rtn 
-
-sdp_get_data_type_not0:
-706c 1f227e00 deposit loopcnt 
-706d 1fe67c04 sub pdata ,4 ,null 
-706e 20217069 branch sdp_get_data_type_not0_sizeindex01234 ,positive 
-706f c002f073 beq 5 ,sdp_get_data_type_not0_sizeindex5 
-7070 c0037076 beq 6 ,sdp_get_data_type_not0_sizeindex6 
-7071 c003f07a beq 7 ,sdp_get_data_type_not0_sizeindex7 
-7072 20600000 rtn 
-
-sdp_get_data_type_not0_sizeindex5:
-7073 e8c08000 ifetch 1 ,contr 
-7074 1fe08402 add pdata ,2 ,temp 
-7075 20600000 rtn 
-
-sdp_get_data_type_not0_sizeindex6:
-7076 e8c10000 ifetch 2 ,contr 
-7077 1ff0fe00 byteswap pdata ,pdata 
-7078 1fe08403 add pdata ,3 ,temp 
-7079 20600000 rtn 
-
-sdp_get_data_type_not0_sizeindex7:
-707a e8c10000 ifetch 2 ,contr 
-707b 1ff0fe00 byteswap pdata ,pdata 
-707c e8c90000 ifetcht 2 ,contr 
-707d 18508400 byteswap temp ,temp 
-707e 18500400 lshift16 temp ,temp 
-707f 9840fe00 iadd temp ,pdata 
-7080 1fe08405 add pdata ,5 ,temp 
-7081 20600000 rtn 
-
-search_all_uuid:
-7082 476ac03a bpatchx patch3a_5 ,mem_patch3a 
-7083 18000e00 force 0 ,queue 
-7084 da400000 arg 0 ,regb 
-7085 d8a0052a arg mem_sdp_handle_list ,contw 
-
-search_all_uuid_llop:
-7086 e9610000 ifetch 2 ,timeup 
-7087 207a0000 rtn blank 
-7088 2040708d call search_uuid 
-7089 18e27e00 copy queue ,pdata 
-708a c1038000 rtneq sdp_max_handle_number 
-708b 19609602 increase 2 ,timeup 
-708c 20207086 branch search_all_uuid_llop 
-
-search_uuid:
-708d 98002600 iforce regc 
-708e 68014575 fetch 2 ,mem_ui_uuid_table 
-708f 98000c00 iforce contr 
-
-search_uuid_next:
-7090 18e27e00 copy queue ,pdata 
-7091 c1038000 rtneq sdp_max_handle_number 
-7092 78547c00 disable user 
-7093 e8c08000 ifetch 1 ,contr 
-7094 207a0000 rtn blank 
-7095 98007200 iforce loopcnt 
-
-search_uuid_loop:
-7096 e8c10000 ifetch 2 ,contr 
-7097 9a667c00 isub regc ,null 
-7098 2422f09a nbranch search_uuid_not_found ,zero 
-7099 78347c00 enable user 
-
-search_uuid_not_found:
-709a c2007096 loop search_uuid_loop 
-709b e8ca0000 ifetcht 4 ,contr 
-709c 18c22200 copy contr ,rega 
-709d 243470ad nbranch search_uuid_nomatch ,user 
-709e d8c0052a arg mem_sdp_handle_list ,contr 
-709f df200007 arg sdp_max_handle_number ,loopcnt 
-
-search_uuid_check_same_handle:
-70a0 e8c20000 ifetch 4 ,contr 
-70a1 203a70a6 branch search_uuid_store_handle ,blank 
-70a2 98467c00 isub temp ,null 
-70a3 2022f0ad branch search_uuid_nomatch ,zero 
-70a4 c20070a0 loop search_uuid_check_same_handle 
-70a5 20600000 rtn 
-
-search_uuid_store_handle:
-70a6 e0aa0000 istoret 4 ,contw 
-70a7 18e08e01 increase 1 ,queue 
-70a8 1a220c00 copy rega ,contr 
-70a9 2040705b call sdp_data_len 
-70aa 9a40a400 iadd regb ,regb 
-70ab 98c08c00 iadd contr ,contr 
-70ac 20207090 branch search_uuid_next 
-
-search_uuid_nomatch:
-70ad 1a220c00 copy rega ,contr 
-70ae 20407062 call sdp_get_data 
-70af 98c08c00 iadd contr ,contr 
-70b0 20207090 branch search_uuid_next 
-
-search_handle:
-70b1 476b403a bpatchx patch3a_6 ,mem_patch3a 
-70b2 68014575 fetch 2 ,mem_ui_uuid_table 
-70b3 98000c00 iforce contr 
-
-search_handle_loop:
-70b4 e8c08000 ifetch 1 ,contr 
-70b5 203a7fe3 branch disable_zero ,blank 
-70b6 1fe3fe00 lshift pdata ,pdata 
-70b7 98c08c00 iadd contr ,contr 
-70b8 e8c20000 ifetch 4 ,contr 
-70b9 98467c00 isub temp ,null 
-70ba 20628000 rtn zero 
-70bb 18a27e00 deposit contw 
-70bc 60010abb store 2 ,mem_contw 
-70bd 600c0aa2 storet 8 ,mem_temp 
-70be 20407062 call sdp_get_data 
-70bf 98c08c00 iadd contr ,contr 
-70c0 18c27e00 copy contr ,pdata 
-70c1 68090abb fetcht 2 ,mem_contw 
-70c2 18420a00 copy temp ,contw 
-70c3 680c0aa2 fetcht 8 ,mem_temp 
-70c4 1fe20c00 copy pdata ,contr 
-70c5 202070b4 branch search_handle_loop 
-
-search_attrib:
-70c6 476bc03a bpatchx patch3a_7 ,mem_patch3a 
-70c7 68014575 fetch 2 ,mem_ui_uuid_table 
-70c8 98000c00 iforce contr 
-
-search_attrib_next:
-70c9 e8c08000 ifetch 1 ,contr 
-70ca 203a70e4 branch search_attrib_end ,blank 
-70cb 98007200 iforce loopcnt 
-
-search_attrib_loop:
-70cc e8c10000 ifetch 2 ,contr 
-70cd 9a667c00 isub regc ,null 
-70ce 2022f0d4 branch search_attrib_found_uuid ,zero 
-70cf c20070cc loop search_attrib_loop 
-70d0 18c08c04 increase 4 ,contr 
-70d1 20407062 call sdp_get_data 
-70d2 98c08c00 iadd contr ,contr 
-70d3 202070c9 branch search_attrib_next 
-
-search_attrib_found_uuid:
-70d4 1f20f3ff increase -1 ,loopcnt 
-70d5 1f23fe00 lshift loopcnt ,pdata 
-70d6 98c08c00 iadd contr ,contr 
-70d7 18c08c04 increase 4 ,contr 
-70d8 20407062 call sdp_get_data 
-70d9 98c09600 iadd contr ,timeup 
-
-search_attrib_loop_attribs:
-70da 18c08c01 increase 1 ,contr 
-70db e8c10000 ifetch 2 ,contr 
-70dc 9a467c00 isub regb ,null 
-70dd 2022ffef branch disable_blank ,zero 
-70de 2040705b call sdp_data_len 
-70df 98c08c00 iadd contr ,contr 
-70e0 19627e00 deposit timeup 
-70e1 98c67c00 isub contr ,null 
-70e2 2022f0e4 branch search_attrib_end ,zero 
-70e3 202070da branch search_attrib_loop_attribs 
-
-search_attrib_end:
-70e4 18000c00 force 0 ,contr 
-70e5 18007e00 force 0 ,pdata 
-70e6 20600000 rtn 
-
-search_handle_attrib:
-70e7 476c403b bpatchx patch3b_0 ,mem_patch3b 
-70e8 68014575 fetch 2 ,mem_ui_uuid_table 
-70e9 98000c00 iforce contr 
-
-search_handle_attrib_next:
-70ea e8c08000 ifetch 1 ,contr 
-70eb 203a7100 branch search_handle_attrib_end ,blank 
-70ec 1fe3fe00 lshift pdata ,pdata 
-70ed 98c08c00 iadd contr ,contr 
-70ee e8c20000 ifetch 4 ,contr 
-70ef 98467c00 isub temp ,null 
-70f0 2022f0f4 branch search_handl_attrib_found_handle ,zero 
-70f1 20407062 call sdp_get_data 
-70f2 98c08c00 iadd contr ,contr 
-70f3 202070ea branch search_handle_attrib_next 
-
-search_handl_attrib_found_handle:
-70f4 20407062 call sdp_get_data 
-70f5 98c09600 iadd contr ,timeup 
-
-search_handle_attrib_loop_attribs:
-70f6 18c08c01 increase 1 ,contr 
-70f7 e8c10000 ifetch 2 ,contr 
-70f8 9a467c00 isub regb ,null 
-70f9 20628000 rtn zero 
-70fa 2040705b call sdp_data_len 
-70fb 98c08c00 iadd contr ,contr 
-70fc 19627e00 deposit timeup 
-70fd 98c67c00 isub contr ,null 
-70fe 2022f100 branch search_handle_attrib_end ,zero 
-70ff 202070f6 branch search_handle_attrib_loop_attribs 
-
-search_handle_attrib_end:
-7100 18000c00 force 0 ,contr 
-7101 20600000 rtn 
-
-search_rfcomm_cn:
-7102 da400400 arg 0x0400 ,regb 
-7103 204070f4 call search_handl_attrib_found_handle 
-7104 da400300 arg 0x0300 ,regb 
-7105 2040710d call search_uuid_in_data 
-7106 24740000 nrtn user 
-7107 1a267c03 sub rega ,3 ,null 
-7108 20217fe9 branch disable_user ,positive 
-7109 e8c08000 ifetch 1 ,contr 
-710a c0847fe9 bne 0x08 ,disable_user 
-710b e8c08000 ifetch 1 ,contr 
-710c 20600000 rtn 
-
-search_uuid_in_data:
-710d 476cc03b bpatchx patch3b_1 ,mem_patch3b 
-710e 20407062 call sdp_get_data 
-710f 1fe22200 copy pdata ,rega 
-
-search_uuid_in_data_loop:
-7110 e8c08000 ifetch 1 ,contr 
-7111 1fe17207 and pdata ,0x7 ,loopcnt 
-7112 1fe97e00 rshift3 pdata ,pdata 
-7113 1fe67c03 sub pdata ,3 ,null 
-7114 2022f129 branch search_uuid_in_data_found_uuid ,zero 
-7115 1f227e00 copy loopcnt ,pdata 
-7116 c002f120 beq 5 ,search_uuid_in_data_found_element_index5 
-7117 c0037123 beq 6 ,search_uuid_in_data_found_element_index6 
-7118 c003f126 beq 7 ,search_uuid_in_data_found_element_index7 
-7119 18c08dff increase -1 ,contr 
-711a 20407062 call sdp_get_data 
-711b 98c08c00 iadd contr ,contr 
-711c 1a227e00 copy rega ,pdata 
-711d 98462200 isub temp ,rega 
-711e 2022ffe9 branch disable_user ,zero 
-711f 20207110 branch search_uuid_in_data_loop 
-
-search_uuid_in_data_found_element_index5:
-7120 1a20a3fe increase -2 ,rega 
-7121 18c08c01 increase 1 ,contr 
-7122 20207110 branch search_uuid_in_data_loop 
-
-search_uuid_in_data_found_element_index6:
-7123 1a20a3fd increase -3 ,rega 
-7124 18c08c02 increase 2 ,contr 
-7125 20207110 branch search_uuid_in_data_loop 
-
-search_uuid_in_data_found_element_index7:
-7126 1a20a3fb increase -5 ,rega 
-7127 18c08c04 increase 4 ,contr 
-7128 20207110 branch search_uuid_in_data_loop 
-
-search_uuid_in_data_found_uuid:
-7129 1a20a3ff increase -1 ,rega 
-712a 1f227e00 copy loopcnt ,pdata 
-712b c000f132 beq 1 ,search_uuid_in_data_type_uuid_16 
-712c c0017130 beq 2 ,search_uuid_in_data_type_uuid_32 
-712d c002712f beq 4 ,search_uuid_in_data_type_uuid_128 
-712e 20207fe9 branch disable_user 
-
-search_uuid_in_data_type_uuid_128:
-712f 1a20a3f4 increase -12 ,rega 
-
-search_uuid_in_data_type_uuid_32:
-7130 e8c10000 ifetch 2 ,contr 
-7131 1a20a3fe increase -2 ,rega 
-
-search_uuid_in_data_type_uuid_16:
-7132 e8c10000 ifetch 2 ,contr 
-7133 9a467c00 isub regb ,null 
-7134 2022ffe7 branch enable_user ,zero 
-7135 1a20a3fe increase -2 ,rega 
-7136 2022ffe9 branch disable_user ,zero 
-7137 20207110 branch search_uuid_in_data_loop 
-
-sdp_send_spp_request:
-7138 204052d0 call l2cap_get_sdp_tx_payload 
-7139 1fe20a00 copy pdata ,contw 
-713a 58000006 setarg 6 
-713b e0a08000 istore 1 ,contw 
-713c 5800006e setarg sdp_tid_spp 
-713d e0a10000 istore 2 ,contw 
-713e 58000f00 setarg 0x0f00 
-713f e0a10000 istore 2 ,contw 
-7140 581a0535 setarg 0x1a0535 
-7141 e0a18000 istore 3 ,contw 
-7142 58000111 setarg 0x0111 
-7143 1ff07e00 lshift16 pdata ,pdata 
-7144 e0a20000 istore 4 ,contw 
-7145 58002600 setarg 0x2600 
-7146 e0a10000 istore 2 ,contw 
-7147 58000335 setarg 0x0335 
-7148 e0a10000 istore 2 ,contw 
-7149 58000009 setarg 0x0009 
-714a e0a10000 istore 2 ,contw 
-714b 58000004 setarg 0x0004 
-714c e0a10000 istore 2 ,contw 
-714d 70027514 jam 0x14 ,mem_sdp_tx_pkt_length 
-714e 20600000 rtn 
-
-function_g2:
-714f 476d403b bpatchx patch3b_2 ,mem_patch3b 
-7150 7005e550 jam 80 ,mem_aes_cmac_data_length 
-7151 d8a005e6 arg memdat ,contw 
-7152 d8c0443a arg mem_le_srand ,contr 
-7153 20407ebf call memcpy16 
-7154 d8c045d2 arg mem_le_pubkey_local_x_256 ,contr 
-7155 20407ebd call memcpy32 
-7156 d8c009be arg mem_le_pubkey_remote_x_256 ,contr 
-7157 20407ebd call memcpy32 
-7158 2040720a call inverse_memdat 
-7159 d8c0042f arg mem_le_mrand ,contr 
-715a 20407205 call store_inverse_k 
-715b 204071d0 call function_aes_cmac 
-715c d8a00af2 arg mem_aes_cmac_temp ,contw 
-715d 20407201 call load_inverse_result 
-715e 580f4240 setarg 1000000 
-715f 1fe22200 copy pdata ,rega 
-7160 68020af2 fetch 4 ,mem_aes_cmac_temp 
-7161 9a26fc00 idiv rega 
-7162 20407f86 call wait_div_end 
-7163 18077e00 remainder pdata 
-7164 600209ba store 4 ,mem_gkey 
-7165 20600000 rtn 
-
-function_f6_eb:
-7166 7005e541 jam 65 ,mem_aes_cmac_data_length 
-7167 d8a005e6 arg memdat ,contw 
-7168 204071b5 call store_addr_common_a 
-7169 204071b0 call store_addr_common_b 
-716a 6801c454 fetch 3 ,mem_le_pres + 1 
-716b e0a18000 istore 3 ,contw 
-716c 20407176 call get_r 
-716d d8c0042f arg mem_le_mrand ,contr 
-716e 20407ebf call memcpy16 
-716f d8c0443a arg mem_le_srand ,contr 
-7170 20407ebf call memcpy16 
-7171 2040720a call inverse_memdat 
-7172 d8c00b12 arg mem_le_mackey ,contr 
-7173 d8a00ac2 arg mem_aes_cmac_k ,contw 
-7174 20407ebf call memcpy16 
-7175 202071d0 branch function_aes_cmac 
-
-get_r:
-7176 680244c7 fetch 4 ,mem_le_tk 
-7177 e0a20000 istore 4 ,contw 
-7178 20407ecd call memset0_4 
-7179 20207eca branch memset0_8 
-
-function_f6_ea:
-717a 476dc03b bpatchx patch3b_3 ,mem_patch3b 
-717b 7005e541 jam 65 ,mem_aes_cmac_data_length 
-717c d8a005e6 arg memdat ,contw 
-717d 204071b0 call store_addr_common_b 
-717e 204071b5 call store_addr_common_a 
-717f 6801c44d fetch 3 ,mem_le_preq + 1 
-7180 e0a18000 istore 3 ,contw 
-7181 20407176 call get_r 
-7182 d8c0443a arg mem_le_srand ,contr 
-7183 20407ebf call memcpy16 
-7184 d8c0042f arg mem_le_mrand ,contr 
-7185 20407ebf call memcpy16 
-7186 2040720a call inverse_memdat 
-7187 d8c00b12 arg mem_le_mackey ,contr 
-7188 d8a00ac2 arg mem_aes_cmac_k ,contw 
-7189 20407ebf call memcpy16 
-718a 204071d0 call function_aes_cmac 
-718b d8a00af2 arg mem_aes_cmac_temp ,contw 
-718c 20207201 branch load_inverse_result 
-
-function_f5:
-718d 7005e520 jam 32 ,mem_aes_cmac_data_length 
-718e d8c009fe arg mem_le_dhkey_256 ,contr 
-718f d8a005e6 arg memdat ,contw 
-7190 20407ebd call memcpy32 
-7191 2040720a call inverse_memdat 
-7192 d8c0099e arg mem_le_slat ,contr 
-7193 20407205 call store_inverse_k 
-7194 204071d0 call function_aes_cmac 
-7195 d8a00ac2 arg mem_aes_cmac_k ,contw 
-7196 20407497 call store_aes_result 
-7197 d8400001 arg 1 ,temp 
-7198 2040719f call function_f5_common 
-7199 d8a04419 arg mem_le_ltk ,contw 
-719a 20407201 call load_inverse_result 
-719b d8400000 arg 0 ,temp 
-719c 2040719f call function_f5_common 
-719d d8a00b12 arg mem_le_mackey ,contw 
-719e 20207497 branch store_aes_result 
-
-function_f5_common:
-719f 476e403b bpatchx patch3b_4 ,mem_patch3b 
-71a0 7005e535 jam 53 ,mem_aes_cmac_data_length 
-71a1 58000100 setarg 0x100 
-71a2 600105e6 store 2 ,memdat 
-71a3 204071b0 call store_addr_common_b 
-71a4 204071b5 call store_addr_common_a 
-71a5 d8c0443a arg mem_le_srand ,contr 
-71a6 20407ebf call memcpy16 
-71a7 d8c0042f arg mem_le_mrand ,contr 
-71a8 20407ebf call memcpy16 
-71a9 58006c65 setarg 0x6c65 
-71aa e0a10000 istore 2 ,contw 
-71ab 58006274 setarg 0x6274 
-71ac e0a10000 istore 2 ,contw 
-71ad e0a88000 istoret 1 ,contw 
-71ae 2040720a call inverse_memdat 
-71af 202071d0 branch function_aes_cmac 
-
-store_addr_common_b:
-71b0 680344a0 fetch 6 ,mem_le_lap 
-71b1 e0a30000 istore 6 ,contw 
-71b2 6800c495 fetch 1 ,mem_le_conn_own_addr_type 
-71b3 e0a08000 istore 1 ,contw 
-71b4 20600000 rtn 
-
-store_addr_common_a:
-71b5 6803044f fetch 6 ,mem_le_plap 
-71b6 e0a30000 istore 6 ,contw 
-71b7 6800c48e fetch 1 ,mem_le_conn_peer_addr_type 
-71b8 e0a08000 istore 1 ,contw 
-71b9 20600000 rtn 
-
-function_f4_ca:
-71ba 7005e541 jam 65 ,mem_aes_cmac_data_length 
-71bb 6800c664 fetch 1 ,mem_passkey_1bit 
-71bc 600085e6 store 1 ,memdat 
-71bd d8c045d2 arg mem_le_pubkey_local_x_256 ,contr 
-71be 20407ebd call memcpy32 
-71bf d8c009be arg mem_le_pubkey_remote_x_256 ,contr 
-71c0 20407ebd call memcpy32 
-71c1 2040720a call inverse_memdat 
-71c2 d8c0042f arg mem_le_mrand ,contr 
-71c3 20407205 call store_inverse_k 
-71c4 202071d0 branch function_aes_cmac 
-
-function_f4_cb:
-71c5 7005e541 jam 65 ,mem_aes_cmac_data_length 
-71c6 6800c664 fetch 1 ,mem_passkey_1bit 
-71c7 600085e6 store 1 ,memdat 
-71c8 d8c009be arg mem_le_pubkey_remote_x_256 ,contr 
-71c9 20407ebd call memcpy32 
-71ca d8c045d2 arg mem_le_pubkey_local_x_256 ,contr 
-71cb 20407ebd call memcpy32 
-71cc 2040720a call inverse_memdat 
-71cd d8c0443a arg mem_le_srand ,contr 
-71ce 20407205 call store_inverse_k 
-71cf 202071d0 branch function_aes_cmac 
-
-function_aes_cmac:
-71d0 476ec03b bpatchx patch3b_5 ,mem_patch3b 
-71d1 2040721f call function_aes_cmac_generate_subkey 
-71d2 680085e5 fetch 1 ,mem_aes_cmac_data_length 
-71d3 1fe20400 copy pdata ,temp 
-
-function_ceil16:
-71d4 1fe0fe0f increase 15 ,pdata 
-71d5 1ff1fe00 rshift4 pdata ,pdata 
-71d6 1fe22400 copy pdata ,regb 
-71d7 203a71e2 branch function_aes_cmac_set_flag_0_balnk ,blank 
-71d8 18417e0f and temp ,0x0f ,pdata 
-71d9 243a71e5 nbranch function_aes_cmac_set_flag_0 ,blank 
-71da da600ad2 arg mem_aes_cmac_k1 ,regc 
-71db dfe005e6 arg memdat ,pdata 
-71dc 1fe0fff0 increase -16 ,pdata 
-71dd 9840a200 iadd temp ,rega 
-71de d8a00b02 arg mem_aes_cmac_m_last ,contw 
-71df df200004 arg 4 ,loopcnt 
-71e0 20407edd call xor_loop 
-71e1 202071f0 branch function_aes_cmac_aes 
-
-function_aes_cmac_set_flag_0_balnk:
-71e2 da400001 arg 1 ,regb 
-71e3 da200000 arg 0 ,rega 
-71e4 202071e6 branch function_aes_cmac_set_flag_0_common 
-
-function_aes_cmac_set_flag_0:
-71e5 1841220f and temp ,0x0f ,rega 
-
-function_aes_cmac_set_flag_0_common:
-71e6 dfe005e6 arg memdat ,pdata 
-71e7 9840fe00 iadd temp ,pdata 
-71e8 9a260c00 isub rega ,contr 
-71e9 d8a00af2 arg mem_aes_cmac_temp ,contw 
-71ea 20407245 call function_aes_cmac_padding 
-71eb da600ae2 arg mem_aes_cmac_k2 ,regc 
-71ec da200af2 arg mem_aes_cmac_temp ,rega 
-71ed d8a00b02 arg mem_aes_cmac_m_last ,contw 
-71ee df200004 arg 4 ,loopcnt 
-71ef 20407edd call xor_loop 
-
-function_aes_cmac_aes:
-71f0 20407491 call aes_clear_data 
-71f1 20407428 call aes_init 
-71f2 d8c005e6 arg memdat ,contr 
-
-function_aes_cmac_aes_loop:
-71f3 1a40a5ff increase -1 ,regb 
-71f4 1a427e00 deposit regb 
-71f5 203a71f9 branch function_aes_cmac_aes_loop_end ,blank 
-71f6 20407486 call load_data128 
-71f7 20407422 call do_aes_cbc 
-71f8 202071f3 branch function_aes_cmac_aes_loop 
-
-function_aes_cmac_aes_loop_end:
-71f9 d8a00af2 arg mem_aes_cmac_temp ,contw 
-71fa 20407497 call store_aes_result 
-71fb d8c00b02 arg mem_aes_cmac_m_last ,contr 
-71fc 20407486 call load_data128 
-71fd 20407428 call aes_init 
-71fe d8c00af2 arg mem_aes_cmac_temp ,contr 
-71ff 20407486 call load_data128 
-7200 20207422 branch do_aes_cbc 
-
-load_inverse_result:
-7201 18a22200 copy contw ,rega 
-7202 20407497 call store_aes_result 
-7203 df200010 arg 16 ,loopcnt 
-7204 20207ee5 branch inverse_data 
-
-store_inverse_k:
-7205 d8a00ac2 arg mem_aes_cmac_k ,contw 
-7206 20407ebf call memcpy16 
-
-inverse_k:
-7207 df200010 arg 16 ,loopcnt 
-7208 da200ac2 arg mem_aes_cmac_k ,rega 
-7209 20207ee5 branch inverse_data 
-
-inverse_memdat:
-720a 680085e5 fetch 1 ,mem_aes_cmac_data_length 
-720b 1fe27200 copy pdata ,loopcnt 
-720c da2005e6 arg memdat ,rega 
-720d 20207ee5 branch inverse_data 
-
-bn_lshift_0_inverse:
-720e ea208000 ifetch 1 ,rega 
-720f 1fe3fe00 lshift pdata ,pdata 
-7210 2a6ffe00 isolate1 0 ,regc 
-7211 7920fe00 setflag true ,0 ,pdata 
-7212 2feffe08 isolate1 8 ,pdata 
-7213 7920a600 setflag true ,0 ,regc 
-7214 e2208000 istore 1 ,rega 
-7215 1a20a3ff increase -1 ,rega 
-7216 c200720e loop bn_lshift_0_inverse 
-7217 20600000 rtn 
-
-function_aes_cmac_k1_inverse:
-7218 da200ad2 arg mem_aes_cmac_k1 ,rega 
-
-function_aes_cmac_inverse_common:
-7219 1a20a20f increase 15 ,rega 
-721a 18007210 force 16 ,loopcnt 
-721b 18002600 force 0 ,regc 
-721c 2020720e branch bn_lshift_0_inverse 
-
-function_aes_cmac_k2_inverse:
-721d da200ae2 arg mem_aes_cmac_k2 ,rega 
-721e 20207219 branch function_aes_cmac_inverse_common 
-
-function_aes_cmac_generate_subkey:
-721f d8c00ac2 arg mem_aes_cmac_k ,contr 
-7220 20407484 call load_key 
-7221 18007008 force regidx_xor ,regext_index 
-7222 20407492 call aes_clear 
-7223 20407491 call aes_clear_data 
-7224 2040741f call do_aes_ocb 
-7225 d8a00ad2 arg mem_aes_cmac_k1 ,contw 
-7226 20407497 call store_aes_result 
-
-function_aes_cmac_k1:
-7227 476f403b bpatchx patch3b_6 ,mem_patch3b 
-7228 68008ad2 fetch 1 ,mem_aes_cmac_k1 
-7229 2feffe07 isolate1 7 ,pdata 
-722a 2420f230 nbranch function_aes_cmac_k1_0 ,true 
-722b 20407218 call function_aes_cmac_k1_inverse 
-722c da600ad2 arg mem_aes_cmac_k1 ,regc 
-722d d8a00ad2 arg mem_aes_cmac_k1 ,contw 
-722e 2040723a call function_aes_cmac_xor_rb 
-722f 20207231 branch function_aes_cmac_k2 
-
-function_aes_cmac_k1_0:
-7230 20407218 call function_aes_cmac_k1_inverse 
-
-function_aes_cmac_k2:
-7231 d8c00ad2 arg mem_aes_cmac_k1 ,contr 
-7232 d8a00ae2 arg mem_aes_cmac_k2 ,contw 
-7233 20407ebf call memcpy16 
-7234 68008ae2 fetch 1 ,mem_aes_cmac_k2 
-7235 2feffe07 isolate1 7 ,pdata 
-7236 2420f21d nbranch function_aes_cmac_k2_inverse ,true 
-7237 2040721d call function_aes_cmac_k2_inverse 
-7238 da600ae2 arg mem_aes_cmac_k2 ,regc 
-7239 d8a00ae2 arg mem_aes_cmac_k2 ,contw 
-
-function_aes_cmac_xor_rb:
-723a df200003 arg 3 ,loopcnt 
-
-function_aes_cmac_xor_rb_loop:
-723b d8400000 arg 0 ,temp 
-723c 20407241 call function_aes_cmac_xor_loop_common 
-723d 1a60a604 increase 4 ,regc 
-723e c200723b loop function_aes_cmac_xor_rb_loop 
-723f d8408700 arg 0x8700 ,temp 
-7240 18500400 lshift16 temp ,temp 
-
-function_aes_cmac_xor_loop_common:
-7241 ea620000 ifetch 4 ,regc 
-7242 9842fe00 ixor temp ,pdata 
-7243 e0a20000 istore 4 ,contw 
-7244 20600000 rtn 
-
-function_aes_cmac_padding:
-7245 476fc03b bpatchx patch3b_7 ,mem_patch3b 
-7246 df200010 arg 16 ,loopcnt 
-7247 dfe00000 arg 0 ,pdata 
-
-function_aes_cmac_padding_loop:
-7248 9a267c00 isub rega ,null 
-7249 2022f250 branch function_aes_cmac_padding_beq_length ,zero 
-724a 20217253 branch function_aes_cmac_padding_big_length ,positive 
-724b e8c88000 ifetcht 1 ,contr 
-724c e0a88000 istoret 1 ,contw 
-
-function_aes_cmac_padding_loop2:
-724d 1fe0fe01 increase 1 ,pdata 
-724e c2007248 loop function_aes_cmac_padding_loop 
-724f 20600000 rtn 
-
-function_aes_cmac_padding_beq_length:
-7250 d8400080 arg 0x80 ,temp 
-
-function_aes_cmac_padding_common:
-7251 e0a88000 istoret 1 ,contw 
-7252 2020724d branch function_aes_cmac_padding_loop2 
-
-function_aes_cmac_padding_big_length:
-7253 d8400000 arg 0 ,temp 
-7254 20207251 branch function_aes_cmac_padding_common 
-
-generate_kinit:
-7255 20407268 call function_e22 
-7256 d8c00592 arg mem_input_store ,contr 
-7257 d8a00582 arg mem_kinit ,contw 
-7258 20207ebf branch memcpy16 
-
-function_e21:
-7259 78547c00 disable user 
-725a 2040735f call function_expand 
-725b d8c00562 arg mem_random_number ,contr 
-725c d8a005a2 arg mem_x ,contw 
-725d 1800720f force 15 ,loopcnt 
-725e 20407f01 call memcpy 
-725f e8c08000 ifetch 1 ,contr 
-7260 1fe2fe06 xor_into 6 ,pdata 
-7261 e0a08000 istore 1 ,contw 
-7262 580005b2 setarg mem_y 
-7263 600105d6 store 2 ,memp_ar_input 
-7264 580005a2 setarg mem_x 
-7265 600105d4 store 2 ,memp_ar_key 
-7266 79200012 set1 mark_ar2 ,mark 
-7267 202072a8 branch function_ar 
-
-function_e22:
-7268 6808c689 fetcht 1 ,mem_pin_length 
-7269 18002410 force 16 ,regb 
-726a 1840a606 add temp ,6 ,regc 
-726b 1a667c10 sub regc ,16 ,null 
-726c 2021726e branch function_e22_pin_init ,positive 
-726d 18002610 force 16 ,regc 
-
-function_e22_pin_init:
-726e d8a005a2 arg mem_x ,contw 
-
-function_e22_genx_pin:
-726f d8c0468a arg mem_pin ,contr 
-7270 18427200 copy temp ,loopcnt 
-7271 78547c00 disable user 
-
-function_e22_genx_loop:
-7272 e8c08000 ifetch 1 ,contr 
-7273 e0a08000 istore 1 ,contw 
-7274 1a40a5ff increase -1 ,regb 
-7275 2022f27c branch function_e22_genx_end ,zero 
-7276 c2007272 loop function_e22_genx_loop 
-7277 2034726f branch function_e22_genx_pin ,user 
-7278 78347c00 enable user 
-7279 18007206 force 6 ,loopcnt 
-727a 1a220c00 copy rega ,contr 
-727b 20207272 branch function_e22_genx_loop 
-
-function_e22_genx_end:
-727c d8c00562 arg mem_random_number ,contr 
-727d d8a005b2 arg mem_y ,contw 
-727e 20407ebf call memcpy16 
-727f 680085c1 fetch 1 ,mem_y15 
-7280 9a62fe00 ixor regc ,pdata 
-7281 600085c1 store 1 ,mem_y15 
-7282 580005b2 setarg mem_y 
-7283 600105d6 store 2 ,memp_ar_input 
-7284 580005a2 setarg mem_x 
-7285 600105d4 store 2 ,memp_ar_key 
-7286 79200012 set1 mark_ar2 ,mark 
-7287 202072a8 branch function_ar 
-
-function_e1:
-7288 78547c00 disable user 
-7289 2040735f call function_expand 
-728a 20207292 branch function_hash 
-
-function_e3:
-728b da200056 arg mem_aco ,rega 
-728c 78347c00 enable user 
-728d 2040735f call function_expand 
-728e 20407292 call function_hash 
-728f d8c00592 arg mem_input_store ,contr 
-7290 d8a00062 arg mem_kc ,contw 
-7291 20207ebf branch memcpy16 
-
-function_hash:
-7292 58000562 setarg mem_random_number 
-7293 600105d6 store 2 ,memp_ar_input 
-7294 580041be setarg mem_link_key 
-7295 600105d4 store 2 ,memp_ar_key 
-7296 793f8012 set0 mark_ar2 ,mark 
-7297 204072a8 call function_ar 
-7298 da200592 arg mem_input_store ,rega 
-7299 da400562 arg mem_random_number ,regb 
-729a d8a005a2 arg mem_x ,contw 
-729b 20407352 call xor16 
-729c da2005a2 arg mem_x ,rega 
-729d da4005b2 arg mem_y ,regb 
-729e 1a420a00 copy regb ,contw 
-729f 78347c00 enable user 
-72a0 20407350 call add16 
-72a1 2040736a call key_offset 
-72a2 580005b2 setarg mem_y 
-72a3 600105d6 store 2 ,memp_ar_input 
-72a4 580005a2 setarg mem_x 
-72a5 600105d4 store 2 ,memp_ar_key 
-72a6 79200012 set1 mark_ar2 ,mark 
-72a7 202072a8 branch function_ar 
-
-function_ar:
-72a8 7005d800 jam 0 ,mem_ar_hround 
-72a9 680105d4 fetch 2 ,memp_ar_key 
-72aa 98000c00 iforce contr 
-72ab d8a005c2 arg mem_key_store ,contw 
-72ac 20407ebf call memcpy16 
-72ad 680105d6 fetch 2 ,memp_ar_input 
-72ae 98000c00 iforce contr 
-72af d8a00592 arg mem_input_store ,contw 
-72b0 20407ebf call memcpy16 
-
-function_ar_loop:
-72b1 204072cf call key_scheduling 
-72b2 78547c00 disable user 
-72b3 c58972b9 bmark0 mark_ar2 ,function_ar_original 
-72b4 680085d8 fetch 1 ,mem_ar_hround 
-72b5 c08272b9 bne 4 ,function_ar_original 
-72b6 680105d6 fetch 2 ,memp_ar_input 
-72b7 98002400 iforce regb 
-72b8 20407301 call xor_mod32_ar2 
-
-function_ar_original:
-72b9 20407300 call xor_mod32 
-72ba 20407313 call el_boxes 
-72bb 680085d8 fetch 1 ,mem_ar_hround 
-72bc 1fe0fe01 increase 1 ,pdata 
-72bd 600085d8 store 1 ,mem_ar_hround 
-72be 204072cf call key_scheduling 
-72bf 78347c00 enable user 
-72c0 20407300 call xor_mod32 
-72c1 20407322 call pht 
-72c2 20407331 call permute 
-72c3 20407322 call pht 
-72c4 20407331 call permute 
-72c5 20407322 call pht 
-72c6 20407331 call permute 
-72c7 20407322 call pht 
-72c8 680085d8 fetch 1 ,mem_ar_hround 
-72c9 1fe0fe01 increase 1 ,pdata 
-72ca 600085d8 store 1 ,mem_ar_hround 
-72cb c08872b1 bne 16 ,function_ar_loop 
-72cc 204072cf call key_scheduling 
-72cd 78547c00 disable user 
-72ce 20207300 branch xor_mod32 
-
-key_scheduling:
-72cf 680085d8 fetch 1 ,mem_ar_hround 
-72d0 d8c005c2 arg mem_key_store ,contr 
-72d1 203a72f6 branch key_sched_zero ,blank 
-72d2 98002400 iforce regb 
-72d3 18007211 force 17 ,loopcnt 
-72d4 18c20a00 copy contr ,contw 
-
-key_rotateloop:
-72d5 e8c08000 ifetch 1 ,contr 
-72d6 1fe98400 lshift3 pdata ,temp 
-72d7 1feb7e00 rshift2 pdata ,pdata 
-72d8 1fe97e00 rshift3 pdata ,pdata 
-72d9 9841fe00 ior temp ,pdata 
-72da e0a08000 istore 1 ,contw 
-72db c20072d5 loop key_rotateloop 
-72dc 580005c2 setarg mem_key_store 
-72dd 9a408c00 iadd regb ,contr 
-72de 18007210 force 16 ,loopcnt 
-72df d8a00572 arg mem_round_key ,contw 
-
-key_select_octet_loop:
-72e0 e8c08000 ifetch 1 ,contr 
-72e1 e0a08000 istore 1 ,contw 
-72e2 28c1ffd3 compare mem_key_store_end ,contr ,0xff 
-72e3 2420f2e5 nbranch key_select_octet_nwrap ,true 
-72e4 18c08def increase -17 ,contr 
-
-key_select_octet_nwrap:
-72e5 c20072e0 loop key_select_octet_loop 
-72e6 18002200 force 0 ,rega 
-72e7 1a40a7ff add regb ,-1 ,regc 
-72e8 1a6ba600 lshift2 regc ,regc 
-72e9 1a6ba600 lshift2 regc ,regc 
-72ea 204074b9 call enable_authrom 
-72eb 58008400 setarg mem_b_box 
-72ec 9a60a600 iadd regc ,regc 
-72ed d8a00572 arg mem_round_key ,contw 
-72ee 18007210 force 16 ,loopcnt 
-
-bias_round_key_loop:
-72ef ea688000 ifetcht 1 ,regc 
-72f0 e8a08000 ifetch 1 ,contw 
-72f1 9840fe00 iadd temp ,pdata 
-72f2 e0a08000 istore 1 ,contw 
-72f3 1a60a601 increase 1 ,regc 
-72f4 c20072ef loop bias_round_key_loop 
-72f5 202074bd branch disable_authrom 
-
-key_sched_zero:
-72f6 18007210 force 16 ,loopcnt 
-72f7 18000400 force 0 ,temp 
-
-create_byte_16_loop:
-72f8 e8c08000 ifetch 1 ,contr 
-72f9 98428400 ixor temp ,temp 
-72fa c20072f8 loop create_byte_16_loop 
-72fb 18427e00 deposit temp 
-72fc e0c08000 istore 1 ,contr 
-72fd d8c005c2 arg mem_key_store ,contr 
-72fe d8a00572 arg mem_round_key ,contw 
-72ff 20207ebf branch memcpy16 
-
-xor_mod32:
-7300 da400572 arg mem_round_key ,regb 
-
-xor_mod32_ar2:
-7301 18007210 force 16 ,loopcnt 
-7302 da200592 arg mem_input_store ,rega 
-7303 1a220a00 copy rega ,contw 
-
-xor_mod32_loop:
-7304 ea288000 ifetcht 1 ,rega 
-7305 ea408000 ifetch 1 ,regb 
-7306 9842e000 ixor temp ,alarm 
-7307 1f212603 and loopcnt ,3 ,regc 
-7308 2434730a nbranch xor_mod32_invert ,user 
-7309 1a62a603 xor_into 3 ,regc 
-
-xor_mod32_invert:
-730a 1a662601 sub regc ,1 ,regc 
-730b 2021730d branch xor_even ,positive 
-730c 9840e000 iadd temp ,alarm 
-
-xor_even:
-730d 1e027e00 deposit alarm 
-730e e0a08000 istore 1 ,contw 
-730f 1a20a201 increase 1 ,rega 
-7310 1a40a401 increase 1 ,regb 
-7311 c2007304 loop xor_mod32_loop 
-7312 20600000 rtn 
-
-el_boxes:
-7313 204074b9 call enable_authrom 
-7314 18007210 force 16 ,loopcnt 
-7315 da200592 arg mem_input_store ,rega 
-
-el_box_loop:
-7316 ea208000 ifetch 1 ,rega 
-7317 d8c08500 arg mem_e_box ,contr 
-7318 1f212603 and loopcnt ,3 ,regc 
-7319 1a667c01 sub regc ,1 ,null 
-731a 2021731c branch e_boxes ,positive 
-731b d8c08600 arg mem_l_box ,contr 
-
-e_boxes:
-731c 98c08c00 iadd contr ,contr 
-731d e8c08000 ifetch 1 ,contr 
-731e e2208000 istore 1 ,rega 
-731f 1a20a201 increase 1 ,rega 
-7320 c2007316 loop el_box_loop 
-7321 202074bd branch disable_authrom 
-
-pht:
-7322 18007208 force 8 ,loopcnt 
-7323 d8c00592 arg mem_input_store ,contr 
-7324 18c20a00 copy contr ,contw 
-
-pht_loop:
-7325 e8c08000 ifetch 1 ,contr 
-7326 98002200 iforce rega 
-7327 e8c08000 ifetch 1 ,contr 
-7328 98002400 iforce regb 
-7329 1a23fe00 lshift rega ,pdata 
-732a 9a40fe00 iadd regb ,pdata 
-732b e0a08000 istore 1 ,contw 
-732c 1a227e00 deposit rega 
-732d 9a40fe00 iadd regb ,pdata 
-732e e0a08000 istore 1 ,contw 
-732f c2007325 loop pht_loop 
-7330 20600000 rtn 
-
-permute:
-7331 588ae42c setarg 0x8ae42c 
-7332 98000400 iforce temp 
-7333 18007207 force 7 ,loopcnt 
-7334 20407340 call permute_exchange 
-7335 580d751b setarg 0xd751b 
-7336 98000400 iforce temp 
-7337 18007205 force 5 ,loopcnt 
-7338 20407340 call permute_exchange 
-7339 680085a1 fetch 1 ,mem_input_store + 15 
-733a 98002200 iforce rega 
-733b 68008595 fetch 1 ,mem_input_store + 3 
-733c 600085a1 store 1 ,mem_input_store + 15 
-733d 1a227e00 deposit rega 
-733e 60008595 store 1 ,mem_input_store + 3 
-733f 20600000 rtn 
-
-permute_exchange:
-7340 1841240f and temp ,0xf ,regb 
-
-permute_loop:
-7341 18417e0f and temp ,0xf ,pdata 
-7342 d8a00592 arg mem_input_store ,contw 
-7343 98a08a00 iadd contw ,contw 
-7344 e8a08000 ifetch 1 ,contw 
-7345 98002600 iforce regc 
-7346 1a227e00 deposit rega 
-7347 e0a08000 istore 1 ,contw 
-7348 1a622200 copy regc ,rega 
-7349 18518400 rshift4 temp ,temp 
-734a c2007341 loop permute_loop 
-734b 58000592 setarg mem_input_store 
-734c 9a408a00 iadd regb ,contw 
-734d 1a227e00 deposit rega 
-734e e0a08000 istore 1 ,contw 
-734f 20600000 rtn 
-
-add16:
-7350 78347c00 enable user 
-7351 20207353 branch xor_add16 
-
-xor16:
-7352 78547c00 disable user 
-
-xor_add16:
-7353 18007210 force 16 ,loopcnt 
-
-xoradd_loop:
-7354 ea288000 ifetcht 1 ,rega 
-7355 ea408000 ifetch 1 ,regb 
-7356 20347359 branch xoradd_add ,user 
-7357 9842fe00 ixor temp ,pdata 
-7358 2020735a branch xoradd_store 
-
-xoradd_add:
-7359 9840fe00 iadd temp ,pdata 
-
-xoradd_store:
-735a e0a08000 istore 1 ,contw 
-735b 1a20a201 increase 1 ,rega 
-735c 1a40a401 increase 1 ,regb 
-735d c2007354 loop xoradd_loop 
-735e 20600000 rtn 
-
-function_expand:
-735f d8a005b2 arg mem_y ,contw 
-7360 ea230000 ifetch 6 ,rega 
-7361 e0a30000 istore 6 ,contw 
-7362 20347365 branch expand_12 ,user 
-7363 ea230000 ifetch 6 ,rega 
-7364 20207366 branch expand_cont 
-
-expand_12:
-7365 e8c30000 ifetch 6 ,contr 
-
-expand_cont:
-7366 e0a30000 istore 6 ,contw 
-7367 ea220000 ifetch 4 ,rega 
-7368 e0a20000 istore 4 ,contw 
-7369 20600000 rtn 
-
-key_offset:
-736a d8c041be arg mem_link_key ,contr 
-736b d8a005a2 arg mem_x ,contw 
-736c d8400000 arg 0 ,temp 
-736d 588395a7 setarg 0x8395a7 
-736e 2040738b call concatenate_temp24 
-736f 58b3c1df setarg 0xb3c1df 
-7370 2040738b call concatenate_temp24 
-7371 5800e5e9 setarg 0xe5e9 
-7372 2040738c call concatenate_temp16 
-7373 18422800 copy temp ,regab 
-7374 78547c00 disable user 
-7375 20407379 call key_addxor 
-7376 1a820400 copy regab ,temp 
-7377 78347c00 enable user 
-7378 20207379 branch key_addxor 
-
-key_addxor:
-7379 18007208 force 8 ,loopcnt 
-
-key_addxor_loop:
-737a e8c08000 ifetch 1 ,contr 
-737b 2f200201 compare 1 ,loopcnt ,1 
-737c 20347380 branch key_high ,user 
-737d 2020f381 branch key_xor ,true 
-
-key_add:
-737e 9840fe00 iadd temp ,pdata 
-737f 20207382 branch key_store 
-
-key_high:
-7380 2020f37e branch key_add ,true 
-
-key_xor:
-7381 9842fe00 ixor temp ,pdata 
-
-key_store:
-7382 e0a08000 istore 1 ,contw 
-7383 184c8400 rshift8 temp ,temp 
-7384 c200737a loop key_addxor_loop 
-7385 20600000 rtn 
-
-copy_aco:
-7386 68030596 fetch 6 ,mem_input_store + 4 
-7387 60030056 store 6 ,mem_aco 
-7388 e8c30000 ifetch 6 ,contr 
-7389 e0a30000 istore 6 ,contw 
-738a 20600000 rtn 
-
-concatenate_temp24:
-738b 184d0400 lshift8 temp ,temp 
-
-concatenate_temp16:
-738c 18500400 lshift16 temp ,temp 
-738d 98418400 ior temp ,temp 
-738e 20600000 rtn 
-
-loop1:
-738f 2020738f branch loop1 
-
-generate_stk:
-7390 4770403c bpatchx patch3c_0 ,mem_patch3c 
-7391 2040742b call function_s1 
-7392 d8a04419 arg mem_le_ltk ,contw 
-7393 20207497 branch store_aes_result 
-
-authenticate_rconfirm:
-7394 d8a0443a arg mem_le_srand ,contw 
-7395 2034f397 branch authenticate_mconfirm ,master 
-7396 d8a0042f arg mem_le_mrand ,contw 
-
-authenticate_mconfirm:
-7397 18c22200 copy contr ,rega 
-7398 20407ebf call memcpy16 
-7399 20407440 call function_c1 
-739a d8c0442a arg mem_le_rconfirm ,contr 
-739b 202074b0 branch compare_res 
-
-generate_confirm:
-739c da20042f arg mem_le_mrand ,rega 
-739d 2034f39f branch generate_mrand ,master 
-739e da20443a arg mem_le_srand ,rega 
-
-generate_mrand:
-739f 1a220a00 copy rega ,contw 
-73a0 2040630c call generate_random 
-73a1 20207440 branch function_c1 
-
-generate_sk:
-73a2 d8c044aa arg mem_le_skdm ,contr 
-73a3 20407486 call load_data128 
-73a4 d8c04419 arg mem_le_ltk ,contr 
-73a5 20407487 call load_regext 
-73a6 18006c38 force 0x38 ,aes_ctrl 
-73a7 18006c00 force 0x0 ,aes_ctrl 
-73a8 2040741d call wait_aes 
-73a9 d8a0047c arg mem_le_sk ,contw 
-73aa 20207497 branch store_aes_result 
-
-first_block_counter:
-73ab 18007e49 force 0x49 ,pdata 
-73ac 202073ae branch first_block 
-
-first_block_data:
-73ad 18007e01 force 1 ,pdata 
-
-first_block:
-73ae 18007000 force regidx_data ,regext_index 
-73af 184d5e00 lshift8 temp ,regext 
-73b0 9de1de00 ior regext ,regext 
-73b1 1f00f001 increase 1 ,regext_index 
-73b2 184cde00 rshift8 temp ,regext 
-73b3 1df15e00 rshift16 regext ,regext 
-73b4 68014411 fetch 2 ,mem_le_ivm 
-73b5 1ff07e00 lshift16 ,pdata ,pdata 
-73b6 9de1de00 ior regext ,regext 
-73b7 1f00f001 increase 1 ,regext_index 
-73b8 e8c20000 ifetch 4 ,contr 
-73b9 98005e00 iforce regext 
-73ba 1f00f001 increase 1 ,regext_index 
-73bb e8c10000 ifetch 2 ,contr 
-73bc 1a30de00 byteswap rega ,regext 
-73bd 1df05e00 lshift16 regext ,regext 
-73be 9de1de00 ior regext ,regext 
-73bf 1f00f001 increase 1 ,regext_index 
-73c0 20600000 rtn 
-
-generate_mic:
-73c1 1a608c01 add regc ,1 ,contr 
-73c2 e8c08000 ifetch 1 ,contr 
-73c3 98002200 iforce rega 
-73c4 204073ab call first_block_counter 
-73c5 2040741f call do_aes_ocb 
-73c6 18007000 force regidx_data ,regext_index 
-73c7 ea608000 ifetch 1 ,regc 
-73c8 1fe17e03 and_into 0x3 ,pdata 
-73c9 1ff05e00 lshift16 pdata ,regext 
-73ca 79205e08 set1 8 ,regext 
-73cb 2040748f call clear_hidata 
-73cc 20407422 call do_aes_cbc 
-73cd 1a227200 copy rega ,loopcnt 
-73ce 1a608c02 add regc ,2 ,contr 
-73cf 2040746e call padding_data 
-
-generate_mic_loop:
-73d0 20407478 call aes_load_data 
-73d1 20407422 call do_aes_cbc 
-73d2 1f227e00 deposit loopcnt 
-73d3 203a73d5 branch generate_mic_end ,blank 
-73d4 202073d0 branch generate_mic_loop 
-
-generate_mic_end:
-73d5 1800700c force regidx_result ,regext_index 
-73d6 1de27e00 deposit regext 
-73d7 60020417 store 4 ,mem_le_mic 
-73d8 20600000 rtn 
-
-aes_crypt_data:
-73d9 1a20a201 increase 1 ,rega 
-73da 204073ad call first_block_data 
-73db 1a620c00 copy regc ,contr 
-73dc 20407482 call aes_load_xor 
-73dd 20407425 call do_aes_ctr 
-73de 2040749e call store_enc_data 
-73df 1a60a610 increase 16 ,regc 
-73e0 1a40a5f0 increase -16 ,regb 
-73e1 202173d9 branch aes_crypt_data ,positive 
-73e2 20600000 rtn 
-
-le_encrypt:
-73e3 4770c03c bpatchx patch3c_1 ,mem_patch3c 
-73e4 da6043dc arg mem_le_txheader ,regc 
-73e5 680ac403 fetcht 5 ,mem_le_pcnt_tx 
-73e6 204073c1 call generate_mic 
-73e7 18007008 force regidx_xor ,regext_index 
-73e8 98005e00 iforce regext 
-73e9 18002200 force 0 ,rega 
-73ea 204073ad call first_block_data 
-73eb 20407425 call do_aes_ctr 
-73ec da6043de arg mem_le_txpayload ,regc 
-73ed 6800c3dd fetch 1 ,mem_le_txlen 
-73ee 1fe0a5ff add pdata ,-1 ,regb 
-73ef 9a608a00 iadd regc ,contw 
-73f0 1800700c force regidx_result ,regext_index 
-73f1 1de27e00 deposit regext 
-73f2 e0a20000 istore 4 ,contw 
-73f3 204073d9 call aes_crypt_data 
-73f4 6800c3dd fetch 1 ,mem_le_txlen 
-73f5 1fe0fe04 increase 4 ,pdata 
-73f6 6000c3dd store 1 ,mem_le_txlen 
-73f7 680ac403 fetcht 5 ,mem_le_pcnt_tx 
-73f8 18408401 increase 1 ,temp 
-73f9 600ac403 storet 5 ,mem_le_pcnt_tx 
-73fa 20600000 rtn 
-
-le_decrypt:
-73fb 4771403c bpatchx patch3c_2 ,mem_patch3c 
-73fc 680082da fetch 1 ,mem_le_rxbuf + 1 
-73fd 1fe67c14 sub pdata ,20 ,null 
-73fe 202173ff branch le_dec_cont ,positive 
-
-le_dec_cont:
-73ff da6002db arg mem_le_rxbuf + 2 ,regc 
-7400 1fe0a5ff add pdata ,-1 ,regb 
-7401 1fe0fffc increase -4 ,pdata 
-7402 600082da store 1 ,mem_le_rxbuf + 1 
-7403 9a608c00 iadd regc ,contr 
-7404 e8c20000 ifetch 4 ,contr 
-7405 18007008 force regidx_xor ,regext_index 
-7406 98005e00 iforce regext 
-7407 18002200 force 0 ,rega 
-7408 680ac408 fetcht 5 ,mem_le_pcnt_rx 
-7409 204073ad call first_block_data 
-740a 20407425 call do_aes_ctr 
-740b 1800700c force regidx_result ,regext_index 
-740c 1de27e00 deposit regext 
-740d 6002041b store 4 ,mem_le_peer_mic 
-740e 204073d9 call aes_crypt_data 
-740f da6002d9 arg mem_le_rxbuf ,regc 
-7410 204073c1 call generate_mic 
-7411 680a041b fetcht 4 ,mem_le_peer_mic 
-7412 98467e00 isub temp ,pdata 
-7413 247a0000 nrtn blank 
-7414 6802440d fetch 4 ,mem_le_last_mic 
-7415 98467e00 isub temp ,pdata 
-7416 207a0000 rtn blank 
-7417 600a440d storet 4 ,mem_le_last_mic 
-7418 6802c408 fetch 5 ,mem_le_pcnt_rx 
-7419 1fe0fe01 increase 1 ,pdata 
-741a 6002c408 store 5 ,mem_le_pcnt_rx 
-741b 18007e00 force 0 ,pdata 
-741c 20600000 rtn 
-
-wait_aes:
-741d 243bf41d nbranch wait_aes ,aes_ready 
-741e 20600000 rtn 
-
-do_aes_ocb:
-741f 18006c30 force 0x30 ,aes_ctrl 
-7420 18006c00 force 0x0 ,aes_ctrl 
-7421 2020741d branch wait_aes 
-
-do_aes_cbc:
-7422 18006c32 force 0x32 ,aes_ctrl 
-7423 18006c02 force 0x2 ,aes_ctrl 
-7424 2020741d branch wait_aes 
-
-do_aes_ctr:
-7425 18006c34 force 0x34 ,aes_ctrl 
-7426 18006c04 force 0x4 ,aes_ctrl 
-7427 2020741d branch wait_aes 
-
-aes_init:
-7428 18006c01 force 1 ,aes_ctrl 
-7429 18006c00 force 0 ,aes_ctrl 
-742a 20600000 rtn 
-
-function_s1:
-742b 18007000 force regidx_data ,regext_index 
-742c 6802042f fetch 4 ,mem_le_mrand 
-742d 98005e00 iforce regext 
-742e 1f00f001 increase 1 ,regext_index 
-742f e8c20000 ifetch 4 ,contr 
-7430 98005e00 iforce regext 
-7431 1f00f001 increase 1 ,regext_index 
-7432 6802443a fetch 4 ,mem_le_srand 
-7433 98005e00 iforce regext 
-7434 1f00f001 increase 1 ,regext_index 
-7435 e8c20000 ifetch 4 ,contr 
-7436 98005e00 iforce regext 
-7437 1f00f001 increase 1 ,regext_index 
-7438 20407492 call aes_clear 
-7439 1f00f1fc increase -4 ,regext_index 
-743a 680244c7 fetch 4 ,mem_le_tk 
-743b 1fe25e00 copy pdata ,regext 
-743c 1f00f004 increase 4 ,regext_index 
-743d 18006c38 force 0x38 ,aes_ctrl 
-743e 18006c08 force 0x8 ,aes_ctrl 
-743f 2020741d branch wait_aes 
-
-function_c1:
-7440 4771c03c bpatchx patch3c_3 ,mem_patch3c 
-7441 680344a0 fetch 6 ,mem_le_lap 
-7442 680b044f fetcht 6 ,mem_le_plap 
-7443 2034f446 branch function_c1_master ,master 
-7444 6803044f fetch 6 ,mem_le_plap 
-7445 680b44a0 fetcht 6 ,mem_le_lap 
-
-function_c1_master:
-7446 18007008 force regidx_xor ,regext_index 
-7447 18425e00 copy temp ,regext 
-7448 1f00f001 increase 1 ,regext_index 
-7449 184f5e00 rshift32 temp ,regext 
-744a 1ff07e00 lshift16 pdata ,pdata 
-744b 9de1de00 ior regext ,regext 
-744c 1f00f001 increase 1 ,regext_index 
-744d 1fef5e00 rshift32 pdata ,regext 
-744e 1f00f001 increase 1 ,regext_index 
-744f 18005e00 force 0 ,regext 
-7450 18007e00 force 0 ,pdata 
-7451 6800c48e fetch 1 ,mem_le_conn_peer_addr_type 
-7452 6808c485 fetcht 1 ,mem_le_adv_own_addr_type 
-7453 2434f456 nbranch function_c1_irat ,master 
-7454 6800c495 fetch 1 ,mem_le_conn_own_addr_type 
-7455 6808c48e fetcht 1 ,mem_le_conn_peer_addr_type 
-
-function_c1_irat:
-7456 6000c44a store 1 ,mem_le_iat 
-7457 6008c44b storet 1 ,mem_le_rat 
-7458 18007000 force regidx_data ,regext_index 
-7459 da40444a arg mem_le_iat ,regb 
-745a 18007204 force 4 ,loopcnt 
-
-function_c1_loop1:
-745b ea220000 ifetch 4 ,rega 
-745c ea4a0000 ifetcht 4 ,regb 
-745d 9842de00 ixor temp ,regext 
-745e 1f00f001 increase 1 ,regext_index 
-745f 1a20a204 increase 4 ,rega 
-7460 1a40a404 increase 4 ,regb 
-7461 c200745b loop function_c1_loop1 
-7462 20407492 call aes_clear 
-7463 1f00f1fc increase -4 ,regext_index 
-7464 680244c7 fetch 4 ,mem_le_tk 
-7465 1fe25e00 copy pdata ,regext 
-7466 1f00f004 increase 4 ,regext_index 
-7467 18006c38 force 0x38 ,aes_ctrl 
-7468 18006c0c force 0xc ,aes_ctrl 
-7469 2040741d call wait_aes 
-746a 20407491 call aes_clear_data 
-746b 18006c3a force 0x3a ,aes_ctrl 
-746c 18006c08 force 0x8 ,aes_ctrl 
-746d 2020741d branch wait_aes 
-
-padding_data:
-746e 2f200600 compare 0 ,loopcnt ,3 
-746f 20608000 rtn true 
-7470 18c27e00 deposit contr 
-7471 9f208a00 iadd loopcnt ,contw 
-7472 18007e00 force 0 ,pdata 
-
-padding_loop:
-7473 e0a08000 istore 1 ,contw 
-7474 1f20f201 increase 1 ,loopcnt 
-7475 2f200600 compare 0 ,loopcnt ,3 
-7476 20608000 rtn true 
-7477 20207473 branch padding_loop 
-
-aes_load_data:
-7478 18007000 force regidx_data ,regext_index 
-
-load_data_loop:
-7479 1f227e00 deposit loopcnt 
-747a 203a747d branch load_data_padding ,blank 
-747b e8c20000 ifetch 4 ,contr 
-747c 1f20f3fc increase -4 ,loopcnt 
-
-load_data_padding:
-747d 98005e00 iforce regext 
-747e 1f00f001 increase 1 ,regext_index 
-747f 2f001e04 compare regidx_key ,regext_index ,0xf 
-7480 20608000 rtn true 
-7481 20207479 branch load_data_loop 
-
-aes_load_xor:
-7482 18007008 force regidx_xor ,regext_index 
-7483 20207487 branch load_regext 
-
-load_key:
-7484 18007004 force regidx_key ,regext_index 
-7485 20207487 branch load_regext 
-
-load_data128:
-7486 18007000 force regidx_data ,regext_index 
-
-load_regext:
-7487 18007204 force 4 ,loopcnt 
-
-load_regext_loop:
-7488 e8c20000 ifetch 4 ,contr 
-7489 98005e00 iforce regext 
-748a 1f00f001 increase 1 ,regext_index 
-748b c2007488 loop load_regext_loop 
-748c 20600000 rtn 
-
-load_sk:
-748d d8c0047c arg mem_le_sk ,contr 
-748e 20207484 branch load_key 
-
-clear_hidata:
-748f 18007204 force 4 ,loopcnt 
-7490 20207494 branch clear_data_rest 
-
-aes_clear_data:
-7491 18007000 force regidx_data ,regext_index 
-
-aes_clear:
-7492 18007204 force 4 ,loopcnt 
-
-clear_loop:
-7493 18005e00 force 0 ,regext 
-
-clear_data_rest:
-7494 1f00f001 increase 1 ,regext_index 
-7495 c2007493 loop clear_loop 
-7496 20600000 rtn 
-
-store_aes_result:
-7497 1800700c force regidx_result ,regext_index 
-7498 18007204 force 4 ,loopcnt 
-
-send_aes_result_loop:
-7499 1de27e00 deposit regext 
-749a e0a20000 istore 4 ,contw 
-749b 1f00f001 increase 1 ,regext_index 
-749c c2007499 loop send_aes_result_loop 
-749d 20600000 rtn 
-
-store_enc_data:
-749e 1800700c force regidx_result ,regext_index 
-749f 1a620a00 copy regc ,contw 
-74a0 1a40f201 add regb ,1 ,loopcnt 
-74a1 1f267c0f sub loopcnt ,15 ,null 
-74a2 202174a4 branch store_enc_loop ,positive 
-74a3 18007210 force 16 ,loopcnt 
-
-store_enc_loop:
-74a4 1de27e00 deposit regext 
-74a5 1f267c03 sub loopcnt ,3 ,null 
-74a6 202174ac branch store_enc_byte ,positive 
-74a7 e0a20000 istore 4 ,contw 
-74a8 1f20f3fc increase -4 ,loopcnt 
-74a9 20628000 rtn zero 
-74aa 1f00f001 increase 1 ,regext_index 
-74ab 202074a4 branch store_enc_loop 
-
-store_enc_byte:
-74ac e0a08000 istore 1 ,contw 
-74ad 1fecfe00 rshift8 pdata ,pdata 
-74ae c20074ac loop store_enc_byte 
-74af 20600000 rtn 
-
-compare_res:
-74b0 1800700c force regidx_result ,regext_index 
-74b1 18007204 force 4 ,loopcnt 
-
-compare_res_loop:
-74b2 e8c20000 ifetch 4 ,contr 
-74b3 9de67c00 isub regext ,null 
-74b4 24628000 nrtn zero 
-74b5 1f00f001 increase 1 ,regext_index 
-74b6 c20074b2 loop compare_res_loop 
-74b7 18007c00 force 0 ,null 
-74b8 20600000 rtn 
-
-enable_authrom:
-74b9 68108050 hfetch 1 ,core_clkoff 
-74ba 793ffe00 set0 clock_off_auth_rom ,pdata 
-74bb 60108050 hstore 1 ,core_clkoff 
-74bc 20600000 rtn 
-
-disable_authrom:
-74bd 68108050 hfetch 1 ,core_clkoff 
-74be 79207e00 set1 clock_off_auth_rom ,pdata 
-74bf 60108050 hstore 1 ,core_clkoff 
-74c0 20600000 rtn 
-
-init_memp:
-74c1 d8a00886 arg mem_p ,contw 
-74c2 3803ffff setsect 0 ,0x3ffff 
-74c3 3807ffff setsect 1 ,0x3ffff 
-74c4 380bffff setsect 2 ,0x3ffff 
-74c5 380ffbff setsect 3 ,0x3fbff 
-74c6 e0a48000 istore 9 ,contw 
-74c7 3803ffff setsect 0 ,0x3ffff 
-74c8 3807ffff setsect 1 ,0x3ffff 
-74c9 380bffff setsect 2 ,0x3ffff 
-74ca 380fffff setsect 3 ,0x3ffff 
-74cb e0a48000 istore 9 ,contw 
-74cc 3803ffff setsect 0 ,0x3ffff 
-74cd 3807ffff setsect 1 ,0x3ffff 
-74ce 380bcfff setsect 2 ,0x3cfff 
-74cf 380fffff setsect 3 ,0x3ffff 
-74d0 e0a48000 istore 9 ,contw 
-74d1 3803ffff setsect 0 ,0x3ffff 
-74d2 3807ffff setsect 1 ,0x3ffff 
-74d3 380bffef setsect 2 ,0x3ffef 
-74d4 380fffff setsect 3 ,0x3ffff 
-74d5 e0a48000 istore 9 ,contw 
-74d6 3803ffff setsect 0 ,0x3ffff 
-74d7 3807ffff setsect 1 ,0x3ffff 
-74d8 380bffff setsect 2 ,0x3ffff 
-74d9 380fffff setsect 3 ,0x3ffff 
-74da e0a48000 istore 9 ,contw 
-74db 3803ffff setsect 0 ,0x3ffff 
-74dc 38066c7f setsect 1 ,0x26c7f 
-74dd 3808146b setsect 2 ,0x146b 
-74de 380f7bb3 setsect 3 ,0x37bb3 
-74df e0a48000 istore 9 ,contw 
-74e0 3801feb8 setsect 0 ,0x1feb8 
-74e1 38050c12 setsect 1 ,0x10c12 
-74e2 380ab722 setsect 2 ,0x2b722 
-74e3 380e9fa6 setsect 3 ,0x29fa6 
-74e4 e0a48000 istore 9 ,contw 
-74e5 3800e70f setsect 0 ,0xe70f 
-74e6 38056720 setsect 1 ,0x16720 
-74e7 3808519e setsect 2 ,0x519e 
-74e8 380d9084 setsect 3 ,0x19084 
-74e9 e0a48000 istore 9 ,contw 
-74ea 38031012 setsect 0 ,0x31012 
-74eb 380760bf setsect 1 ,0x360bf 
-74ec 380bf0af setsect 2 ,0x3f0af 
-74ed 380c03d3 setsect 3 ,0x3d3 
-74ee e0a48000 istore 9 ,contw 
-74ef 3803a188 setsect 0 ,0x3a188 
-74f0 38043ad0 setsect 1 ,0x3ad0 
-74f1 380bcbf2 setsect 2 ,0x3cbf2 
-74f2 380e43d9 setsect 3 ,0x243d9 
-74f3 e0a48000 istore 9 ,contw 
-74f4 3802b030 setsect 0 ,0x2b030 
-74f5 38076a03 setsect 1 ,0x36a03 
-74f6 38091188 setsect 2 ,0x11188 
-74f7 380de520 setsect 3 ,0x1e520 
-74f8 e0a48000 istore 9 ,contw 
-74f9 3803a11e setsect 0 ,0x3a11e 
-74fa 3804fe5d setsect 1 ,0xfe5d 
-74fb 3808dd57 setsect 2 ,0xdd57 
-74fc 380dac93 setsect 3 ,0x1ac93 
-74fd e0a48000 istore 9 ,contw 
-74fe 380011ed setsect 0 ,0x11ed 
-74ff 380618c4 setsect 1 ,0x218c4 
-7500 38088da7 setsect 2 ,0x8da7 
-7501 380e57ff setsect 3 ,0x257ff 
-7502 e0a48000 istore 9 ,contw 
-7503 3803192b setsect 0 ,0x3192b 
-7504 38074641 setsect 1 ,0x34641 
-7505 3809be0c setsect 2 ,0x1be0c 
-7506 380f66ad setsect 3 ,0x366ad 
-7507 e0a48000 istore 9 ,contw 
-7508 38001f83 setsect 0 ,0x1f83 
-7509 38055a23 setsect 1 ,0x15a23 
-750a 380bf9b0 setsect 2 ,0x3f9b0 
-750b 380c3949 setsect 3 ,0x3949 
-750c e0a48000 istore 9 ,contw 
-750d 38013a51 setsect 0 ,0x13a51 
-750e 380553fd setsect 1 ,0x153fd 
-750f 380b372a setsect 2 ,0x3372a 
-7510 380cf1bb setsect 3 ,0xf1bb 
-7511 e0a48000 istore 9 ,contw 
-7512 3803ae85 setsect 0 ,0x3ae85 
-7513 3805eed9 setsect 1 ,0x1eed9 
-7514 38089e66 setsect 2 ,0x9e66 
-7515 380c01a8 setsect 3 ,0x1a8 
-7516 e0a40000 istore 8 ,contw 
-7517 20600000 rtn 
-
-init_memp_256:
-7518 d8a0091e arg mem_p_256 ,contw 
-7519 3803ffff setsect 0 ,0x3ffff 
-751a 3807ffff setsect 1 ,0x3ffff 
-751b 380bffff setsect 2 ,0x3ffff 
-751c 380fffff setsect 3 ,0x3ffff 
-751d e0a48000 istore 9 ,contw 
-751e 3803ffff setsect 0 ,0x3ffff 
-751f 3804003f setsect 1 ,0x3f 
-7520 38080000 setsect 2 ,0x0 
-7521 380c0000 setsect 3 ,0x0 
-7522 e0a48000 istore 9 ,contw 
-7523 38000000 setsect 0 ,0x0 
-7524 38040000 setsect 1 ,0x0 
-7525 38081000 setsect 2 ,0x1000 
-7526 380c0000 setsect 3 ,0x0 
-7527 e0a48000 istore 9 ,contw 
-7528 3803ff00 setsect 0 ,0x3ff00 
-7529 3807ffff setsect 1 ,0x3ffff 
-752a 380bffcf setsect 2 ,0x3ffcf 
-752b 380fffff setsect 3 ,0x3ffff 
-752c e0a48000 istore 9 ,contw 
-752d 3803ffff setsect 0 ,0x3ffff 
-752e 3807ffff setsect 1 ,0x3ffff 
-752f 380bffff setsect 2 ,0x3ffff 
-7530 380c03ff setsect 3 ,0x3ff 
-7531 e0a48000 istore 9 ,contw 
-7532 38000000 setsect 0 ,0x0 
-7533 38040000 setsect 1 ,0x0 
-7534 38080000 setsect 2 ,0x0 
-7535 380c0000 setsect 3 ,0x0 
-7536 e0a48000 istore 9 ,contw 
-7537 38010000 setsect 0 ,0x10000 
-7538 38040000 setsect 1 ,0x0 
-7539 380bf000 setsect 2 ,0x3f000 
-753a 380fffff setsect 3 ,0x3ffff 
-753b e0a48000 istore 9 ,contw 
-753c 380296ff setsect 0 ,0x296ff 
-753d 38062630 setsect 1 ,0x22630 
-753e 380b945d setsect 2 ,0x3945d 
-753f 380fd284 setsect 3 ,0x3d284 
-7540 e0a48000 istore 9 ,contw 
-7541 380333a0 setsect 0 ,0x333a0 
-7542 38044b7a setsect 1 ,0x4b7a 
-7543 380837d8 setsect 2 ,0x37d8 
-7544 380fc9dc setsect 3 ,0x3c9dc 
-7545 e0a48000 istore 9 ,contw 
-7546 3803a440 setsect 0 ,0x3a440 
-7547 3805b958 setsect 1 ,0x1b958 
-7548 380b8bce setsect 2 ,0x38bce 
-7549 380d091f setsect 3 ,0x1091f 
-754a e0a48000 istore 9 ,contw 
-754b 3802e12c setsect 0 ,0x2e12c 
-754c 3805f47c setsect 1 ,0x1f47c 
-754d 380b56b1 setsect 2 ,0x356b1 
-754e 380efd47 setsect 3 ,0x2fd47 
-754f e0a48000 istore 9 ,contw 
-7550 38006837 setsect 0 ,0x6837 
-7551 3806ed90 setsect 1 ,0x2ed90 
-7552 3809ecec setsect 2 ,0x1ecec 
-7553 380dacc5 setsect 3 ,0x1acc5 
-7554 e0a48000 istore 9 ,contw 
-7555 38023357 setsect 0 ,0x23357 
-7556 38058af3 setsect 1 ,0x18af3 
-7557 3808f9e1 setsect 2 ,0xf9e1 
-7558 380d29f0 setsect 3 ,0x129f0 
-7559 e0a48000 istore 9 ,contw 
-755a 3802e7eb setsect 0 ,0x2e7eb 
-755b 3807e6e3 setsect 1 ,0x3e6e3 
-755c 380be1a7 setsect 2 ,0x3e1a7 
-755d 380d0b8b setsect 3 ,0x10b8b 
-755e e0a48000 istore 9 ,contw 
-755f 38024fe3 setsect 0 ,0x24fe3 
-7560 380420ef setsect 1 ,0x20ef 
-7561 3809b5a6 setsect 2 ,0x1b5a6 
-7562 380cdc2f setsect 3 ,0xdc2f 
-7563 e0a48000 istore 9 ,contw 
-7564 38013860 setsect 0 ,0x13860 
-7565 3806bd69 setsect 1 ,0x2bd69 
-7566 3808391a setsect 2 ,0x391a 
-7567 380db222 setsect 3 ,0x1b222 
-7568 e0a48000 istore 9 ,contw 
-7569 20600000 rtn 
-
-publickey_init:
-756a 6800c65a fetch 1 ,mem_ssp_enable 
-756b 243a757d nbranch sp_initialize ,blank 
-756c 20207a77 branch sp_initialize_256 
-
-sp_calc_sequence_256_check:
-756d 4772403c bpatchx patch3c_4 ,mem_patch3c 
-756e 6800c65a fetch 1 ,mem_ssp_enable 
-756f 207a0000 rtn blank 
-7570 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
-7571 c1808000 rtnne sp_key_valid 
-7572 6800c4be fetch 1 ,mem_le_secure_connect_enable 
-7573 207a0000 rtn blank 
-7574 6800c4c3 fetch 1 ,mem_le_sc_local_key_invalid 
-7575 c1018000 rtneq sp_key_valid_256 
-7576 68014682 fetch 2 ,mem_ui_state_map 
-7577 c280757b bbit1 ui_state_bt_connected ,stop_publickey_calc_256 
-7578 6800c4c0 fetch 1 ,mem_le_sc_calc 
-7579 c0007a77 beq sp_calc_standby ,sp_initialize_256 
-757a 20600000 rtn 
-
-stop_publickey_calc_256:
-757b 7044c000 jam sp_calc_standby ,mem_le_sc_calc 
-757c 20600000 rtn 
-
-sp_initialize:
-757d 4772c03c bpatchx patch3c_5 ,mem_patch3c 
-757e 6800c65a fetch 1 ,mem_ssp_enable 
-757f 203a612b branch ssp_disable ,blank 
-7580 20406124 call ssp_enable 
-7581 20407583 call sp_clear_flags 
-7582 2020766d branch sp_pubkey_calc 
-
-sp_clear_flags:
-7583 58000000 setarg 0 
-7584 600409ae store 8 ,mem_sp_state_start 
-7585 600209b6 store 4 ,mem_sp_flag_start 
-7586 6003c65e store 7 ,mem_sp_iocap_remote 
-7587 20600000 rtn 
-
-sp_generate_local_key:
-7588 7009b001 jam sp_flag_commit ,mem_sp_flag 
-7589 2020758d branch sp_generate_local_key0 
-
-sp_master_generate_local_key:
-758a 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
-758b c000f68a beq sp_key_valid ,sp_dhkey_calc 
-758c 20202a8c branch assert 
-
-sp_generate_local_key0:
-758d 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
-758e c000f590 beq sp_key_valid ,sp_start_send_pubkey 
-758f 2020766d branch sp_pubkey_calc 
-
-sp_start_send_pubkey:
-7590 2040768a call sp_dhkey_calc 
-7591 680089af fetch 1 ,mem_master_sp_state 
-7592 247a0000 nrtn blank 
-7593 7009ae03 jam sp_stat_key_send ,mem_sp_state 
-7594 20600000 rtn 
-
-sp_calc_check_publickey_256:
-7595 204075b0 call sp_calc_b256 
-7596 da2009de arg mem_le_pubkey_remote_y_256 ,rega 
-7597 d8a00866 arg mem_t7_256 ,contw 
-7598 20407c79 call bn_sqrmod_256 
-7599 da2009be arg mem_le_pubkey_remote_x_256 ,rega 
-759a d8a00826 arg mem_t2_256 ,contw 
-759b 20407c79 call bn_sqrmod_256 
-759c da200826 arg mem_t2_256 ,rega 
-759d da4009be arg mem_le_pubkey_remote_x_256 ,regb 
-759e d8a00826 arg mem_t2_256 ,contw 
-759f 20407be1 call bn_mulmod_256 
-75a0 da20093e arg mem_a_256 ,rega 
-75a1 da4009be arg mem_le_pubkey_remote_x_256 ,regb 
-75a2 d8a00846 arg mem_t3_256 ,contw 
-75a3 20407be1 call bn_mulmod_256 
-75a4 da200846 arg mem_t3_256 ,rega 
-75a5 da400826 arg mem_t2_256 ,regb 
-75a6 d8a00826 arg mem_t2_256 ,contw 
-75a7 20407c7d call bn_addmod_256 
-75a8 da200806 arg mem_t0_256 ,rega 
-75a9 da400826 arg mem_t2_256 ,regb 
-75aa d8a00806 arg mem_t0_256 ,contw 
-75ab 20407c7d call bn_addmod_256 
-75ac df200020 arg 32 ,loopcnt 
-75ad da200866 arg mem_t7_256 ,rega 
-75ae da400806 arg mem_t0_256 ,regb 
-75af 20207f88 branch string_compare 
-
-sp_calc_b256:
-75b0 da20097e arg mem_gy_256 ,rega 
-75b1 d8a00806 arg mem_t0_256 ,contw 
-75b2 20407c79 call bn_sqrmod_256 
-75b3 da20095e arg mem_gx_256 ,rega 
-75b4 d8a00826 arg mem_t2_256 ,contw 
-75b5 20407c79 call bn_sqrmod_256 
-75b6 da200826 arg mem_t2_256 ,rega 
-75b7 da40095e arg mem_gx_256 ,regb 
-75b8 d8a00826 arg mem_t2_256 ,contw 
-75b9 20407be1 call bn_mulmod_256 
-75ba da20093e arg mem_a_256 ,rega 
-75bb da40095e arg mem_gx_256 ,regb 
-75bc d8a00846 arg mem_t3_256 ,contw 
-75bd 20407be1 call bn_mulmod_256 
-75be da200846 arg mem_t3_256 ,rega 
-75bf da400826 arg mem_t2_256 ,regb 
-75c0 d8a00826 arg mem_t2_256 ,contw 
-75c1 20407c7d call bn_addmod_256 
-75c2 da200806 arg mem_t0_256 ,rega 
-75c3 da400826 arg mem_t2_256 ,regb 
-75c4 d8a00806 arg mem_t0_256 ,contw 
-75c5 20207c96 branch bn_submod_256 
-
-sp_calc_check_publickey:
-75c6 204075e1 call sp_calc_b 
-75c7 da2009e6 arg mem_sp_pubkey_remote_y ,rega 
-75c8 d8a00866 arg mem_t7_256 ,contw 
-75c9 204077a8 call bn_sqrmod 
-75ca da2009c6 arg mem_sp_pubkey_remote_x ,rega 
-75cb d8a00826 arg mem_t2_256 ,contw 
-75cc 204077a8 call bn_sqrmod 
-75cd da200826 arg mem_t2_256 ,rega 
-75ce da4009c6 arg mem_sp_pubkey_remote_x ,regb 
-75cf d8a00826 arg mem_t2_256 ,contw 
-75d0 20407786 call bn_mulmod 
-75d1 da20089e arg mem_a ,rega 
-75d2 da4009c6 arg mem_sp_pubkey_remote_x ,regb 
-75d3 d8a00846 arg mem_t3_256 ,contw 
-75d4 20407786 call bn_mulmod 
-75d5 da200846 arg mem_t3_256 ,rega 
-75d6 da400826 arg mem_t2_256 ,regb 
-75d7 d8a00826 arg mem_t2_256 ,contw 
-75d8 20407755 call bn_addmod 
-75d9 da200806 arg mem_t0_256 ,rega 
-75da da400826 arg mem_t2_256 ,regb 
-75db d8a00806 arg mem_t0_256 ,contw 
-75dc 20407755 call bn_addmod 
-75dd df200018 arg 24 ,loopcnt 
-75de da200866 arg mem_t7_256 ,rega 
-75df da400806 arg mem_t0_256 ,regb 
-75e0 20207f88 branch string_compare 
-
-sp_calc_b:
-75e1 da2008e6 arg mem_gy ,rega 
-75e2 d8a00806 arg mem_t0_256 ,contw 
-75e3 204077a8 call bn_sqrmod 
-75e4 da2008ce arg mem_gx ,rega 
-75e5 d8a00826 arg mem_t2_256 ,contw 
-75e6 204077a8 call bn_sqrmod 
-75e7 da200826 arg mem_t2_256 ,rega 
-75e8 da4008ce arg mem_gx ,regb 
-75e9 d8a00826 arg mem_t2_256 ,contw 
-75ea 20407786 call bn_mulmod 
-75eb da20089e arg mem_a ,rega 
-75ec da4008ce arg mem_gx ,regb 
-75ed d8a00846 arg mem_t3_256 ,contw 
-75ee 20407786 call bn_mulmod 
-75ef da200846 arg mem_t3_256 ,rega 
-75f0 da400826 arg mem_t2_256 ,regb 
-75f1 d8a00826 arg mem_t2_256 ,contw 
-75f2 20407755 call bn_addmod 
-75f3 da200806 arg mem_t0_256 ,rega 
-75f4 da400826 arg mem_t2_256 ,regb 
-75f5 d8a00806 arg mem_t0_256 ,contw 
-75f6 20207758 branch bn_submod 
-
-sp_calculate_commitment:
-75f7 680089b2 fetch 1 ,mem_sp_calc 
-75f8 c0807615 bne sp_calc_standby ,sp_calculate_commitment_wait_dhkey_calc 
-75f9 20407612 call sp_local_random_key_generator 
-75fa d8a00a7e arg mem_sp_prarm_stack ,contw 
-75fb 58000a2e setarg mem_sp_random_local_end 
-75fc e0a10000 istore 2 ,contw 
-75fd 58004642 setarg mem_sp_pubkey_local_x_end 
-75fe e0a10000 istore 2 ,contw 
-75ff 580009de setarg mem_sp_pubkey_remote_x_end 
-7600 e0a10000 istore 2 ,contw 
-7601 20207609 branch sp_calculate_commitment0 
-
-master_sp_calculate_commitment:
-7602 d8a00a7e arg mem_sp_prarm_stack ,contw 
-7603 58000a3e setarg mem_sp_random_remote_end 
-7604 e0a10000 istore 2 ,contw 
-7605 580009de setarg mem_sp_pubkey_remote_x_end 
-7606 e0a10000 istore 2 ,contw 
-7607 58004642 setarg mem_sp_pubkey_local_x_end 
-7608 e0a10000 istore 2 ,contw 
-
-sp_calculate_commitment0:
-7609 204079a0 call function_f1 
-760a 680089af fetch 1 ,mem_master_sp_state 
-760b c002760f beq sp_stat_commit_calc ,master_sp_calculate_commitment0 
-760c 7009b001 jam sp_flag_commit ,mem_sp_flag 
-760d 7009ae05 jam sp_stat_commit_send ,mem_sp_state 
-760e 20600000 rtn 
-
-master_sp_calculate_commitment0:
-760f 7009af14 jam sp_stat_commitment_compare ,mem_master_sp_state 
-7610 2040758a call sp_master_generate_local_key 
-7611 202076d8 branch master_set_mem_master_sp_flag 
-
-sp_local_random_key_generator:
-7612 d8a00a1e arg mem_sp_random_local ,contw 
-7613 18000e08 force 8 ,queue 
-7614 202076a2 branch random_generator 
-
-sp_calculate_commitment_wait_dhkey_calc:
-7615 7009b001 jam sp_flag_commit ,mem_sp_flag 
-7616 20600000 rtn 
-
-sp_confirm_check:
-7617 4773403c bpatchx patch3c_6 ,mem_patch3c 
-7618 d8a00727 arg mem_addr_value ,contw 
-7619 680340a0 fetch 6 ,mem_lap 
-761a e0a30000 istore 6 ,contw 
-761b 68030040 fetch 6 ,mem_plap 
-761c e0a30000 istore 6 ,contw 
-761d 6801c65e fetch 3 ,mem_sp_iocap_remote 
-761e e0a18000 istore 3 ,contw 
-761f 20407a0d call function_f3a 
-7620 da200a4e arg mem_sp_calc_result_high ,rega 
-7621 da400a5e arg mem_sp_check_result ,regb 
-7622 18000e04 force 4 ,queue 
-7623 204076a7 call compare4 
-7624 2420f631 nbranch sp_confirm_check_failed ,true 
-7625 20407628 call sp_confirm_check_success 
-7626 70007d41 jam lmp_dhkey_check ,mem_lmi_opcode2 
-7627 202062f8 branch tid_set_reply 
-
-sp_confirm_check_success:
-7628 680089af fetch 1 ,mem_master_sp_state 
-7629 c004f62e beq sp_stat_confirm_check ,sp_confirm_check_success_master 
-762a 7009ae0a jam sp_stat_confirm_calc ,mem_sp_state 
-762b 7009b001 jam sp_flag_commit ,mem_sp_flag 
-762c 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
-762d 20600000 rtn 
-
-sp_confirm_check_success_master:
-762e 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
-762f 7009af15 jam sp_state_end ,mem_master_sp_state 
-7630 202076d8 branch master_set_mem_master_sp_flag 
-
-sp_confirm_check_failed:
-7631 680089af fetch 1 ,mem_master_sp_state 
-7632 c004f637 beq sp_stat_confirm_check ,sp_confirm_check_failed_master 
-7633 7009ae00 jam sp_stat_null ,mem_sp_state 
-7634 70007c04 jam lmp_not_accepted ,mem_lmo_opcode2 
-7635 70007e05 jam authentication_failure_error ,mem_lmo_reason2 
-7636 20600000 rtn 
-
-sp_confirm_check_failed_master:
-7637 70007c04 jam lmp_not_accepted ,mem_lmo_opcode2 
-7638 7009af00 jam sp_stat_null ,mem_master_sp_state 
-7639 20600000 rtn 
-
-sp_confirm_calc:
-763a 680089b3 fetch 1 ,mem_sp_dh_ready 
-763b c000f63e beq sp_flag_commit ,sp_confirm_calc_ready 
-763c 7009af0a jam sp_stat_confirm_calc ,mem_master_sp_state 
-763d 202076d8 branch master_set_mem_master_sp_flag 
-
-sp_confirm_calc_ready:
-763e d8a00727 arg mem_addr_value ,contw 
-763f 68030040 fetch 6 ,mem_plap 
-7640 e0a30000 istore 6 ,contw 
-7641 680340a0 fetch 6 ,mem_lap 
-7642 e0a30000 istore 6 ,contw 
-7643 6801c65b fetch 3 ,mem_sp_iocap_local 
-7644 e0a18000 istore 3 ,contw 
-7645 20407a24 call function_f3b 
-7646 680089af fetch 1 ,mem_master_sp_state 
-7647 c005764b beq sp_stat_confirm_calc ,sp_confirm_calc_master 
-7648 7009ae0b jam sp_stat_confirm_send ,mem_sp_state 
-7649 7009b001 jam sp_flag_commit ,mem_sp_flag 
-764a 20600000 rtn 
-
-sp_confirm_calc_master:
-764b 7009af0b jam sp_stat_confirm_send ,mem_master_sp_state 
-764c 7009b101 jam sp_flag_commit ,mem_master_sp_flag 
-764d 20600000 rtn 
-
-sp_master_key_prarm_push:
-764e d8a00a7e arg mem_sp_prarm_stack ,contw 
-764f 68030040 fetch 6 ,mem_plap 
-7650 e0a30000 istore 6 ,contw 
-7651 680340a0 fetch 6 ,mem_lap 
-7652 e0a30000 istore 6 ,contw 
-7653 58000a2e setarg mem_sp_random_local_end 
-7654 e0a10000 istore 2 ,contw 
-7655 58000a3e setarg mem_sp_random_remote_end 
-7656 e0a10000 istore 2 ,contw 
-7657 20207662 branch sp_link_key_calc 
-
-sp_link_key_prarm_push:
-7658 7009ae0f jam sp_stat_done ,mem_sp_state 
-7659 d8a00a7e arg mem_sp_prarm_stack ,contw 
-765a 680340a0 fetch 6 ,mem_lap 
-765b e0a30000 istore 6 ,contw 
-765c 68030040 fetch 6 ,mem_plap 
-765d e0a30000 istore 6 ,contw 
-765e 58000a3e setarg mem_sp_random_remote_end 
-765f e0a10000 istore 2 ,contw 
-7660 58000a2e setarg mem_sp_random_local_end 
-7661 e0a10000 istore 2 ,contw 
-
-sp_link_key_calc:
-7662 d8a00727 arg mem_addr_value ,contw 
-7663 68030a7e fetch 6 ,mem_sp_prarm_stack 
-7664 e0a30000 istore 6 ,contw 
-7665 68030a84 fetch 6 ,mem_sp_prarm_stack + 6 
-7666 e0a30000 istore 6 ,contw 
-7667 204079d7 call function_f2 
-7668 7041bd01 jam 1 ,mem_link_key_exists 
-7669 d8a041be arg mem_link_key ,contw 
-766a d8c00a4e arg mem_sp_calc_result_high ,contr 
-766b 20407ebf call memcpy16 
-766c 202021c4 branch generate_linkkey_continue 
-
-sp_pubkey_calc:
-766d 4773c03c bpatchx patch3c_7 ,mem_patch3c 
-766e 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
-766f c1800000 rtnne sp_key_invalid 
-7670 680089b2 fetch 1 ,mem_sp_calc 
-7671 c1800000 rtnne sp_calc_standby 
-7672 d8a04612 arg mem_sp_private_key ,contw 
-7673 18000e0b force 11 ,queue 
-7674 204076a2 call random_generator 
-7675 180a7e00 random pdata 
-7676 1fe37e00 rshift pdata ,pdata 
-7677 e0a10000 istore 2 ,contw 
-7678 d8a006be arg mem_k ,contw 
-7679 d8c04612 arg mem_sp_private_key ,contr 
-767a 20407ebe call memcpy24 
-767b d8a005e6 arg mem_ax ,contw 
-767c d8c008ce arg mem_gx ,contr 
-767d 20407ebc call memcpy48 
-767e d8a00616 arg mem_az ,contw 
-767f 20407ec5 call bn_zero 
-7680 70061601 jam 1 ,mem_az 
-7681 20407a5d call eckp_calc_init 
-7682 7009b201 jam sp_calc_pubkey ,mem_sp_calc 
-7683 20600000 rtn 
-
-sp_pubkey_generated:
-7684 d8a0462a arg mem_sp_pubkey_local ,contw 
-7685 d8c0062e arg mem_bx ,contr 
-7686 20407ebc call memcpy48 
-7687 7045b101 jam sp_key_valid ,mem_sp_local_key_invalid 
-7688 7009b200 jam sp_calc_standby ,mem_sp_calc 
-7689 20600000 rtn 
-
-sp_dhkey_calc:
-768a 4774403d bpatchx patch3d_0 ,mem_patch3d 
-768b 680089b9 fetch 1 ,mem_sp_dhkey_invalid 
-768c c1800000 rtnne sp_key_invalid 
-768d 680089b2 fetch 1 ,mem_sp_calc 
-768e c1800000 rtnne sp_calc_standby 
-768f d8a006be arg mem_k ,contw 
-7690 d8c04612 arg mem_sp_private_key ,contr 
-7691 20407ebe call memcpy24 
-7692 d8a005e6 arg mem_ax ,contw 
-7693 d8c009c6 arg mem_sp_pubkey_remote ,contr 
-7694 20407ebc call memcpy48 
-7695 d8a00616 arg mem_az ,contw 
-7696 20407ec5 call bn_zero 
-7697 70061601 jam 1 ,mem_az 
-7698 20407a5d call eckp_calc_init 
-7699 7009b202 jam sp_calc_dhkey ,mem_sp_calc 
-769a 20600000 rtn 
-
-sp_dhkey_generated:
-769b 7009b301 jam sp_flag_commit ,mem_sp_dh_ready 
-769c d8a00a06 arg mem_sp_dhkey ,contw 
-769d d8c0062e arg mem_bx ,contr 
-769e 20407ebe call memcpy24 
-769f 7009b901 jam sp_key_valid ,mem_sp_dhkey_invalid 
-76a0 7009b200 jam sp_calc_standby ,mem_sp_calc 
-76a1 20600000 rtn 
-
-random_generator:
-76a2 18e08fff increase -1 ,queue 
-76a3 24610000 nrtn positive 
-76a4 180a7e00 random pdata 
-76a5 e0a10000 istore 2 ,contw 
-76a6 202076a2 branch random_generator 
-
-compare4:
-76a7 18e08fff increase -1 ,queue 
-76a8 242176b3 nbranch compare4_success ,positive 
-76a9 ea220000 ifetch 4 ,rega 
-76aa 1fe20400 copy pdata ,temp 
-76ab ea420000 ifetch 4 ,regb 
-76ac 9842fe00 iflip temp ,pdata 
-76ad 2422f6b1 nbranch compare4_failed ,zero 
-76ae 1a20a204 increase 4 ,rega 
-76af 1a40a404 increase 4 ,regb 
-76b0 202076a7 branch compare4 
-
-compare4_failed:
-76b1 7840fc00 disable true 
-76b2 20600000 rtn 
-
-compare4_success:
-76b3 7820fc00 enable true 
-76b4 20600000 rtn 
-
-simple_pairing_sequence:
-76b5 4774c03d bpatchx patch3d_1 ,mem_patch3d 
-76b6 680089b0 fetch 1 ,mem_sp_flag 
-76b7 207a0000 rtn blank 
-76b8 204062bc call lmo_fifo_check 
-76b9 247a0000 nrtn blank 
-76ba 7009b000 jam sp_flag_standby ,mem_sp_flag 
-76bb 680089ae fetch 1 ,mem_sp_state 
-76bc c001e1fd beq sp_stat_key_send ,sp_send_lmp_encapsulated_header 
-76bd c002e21a beq sp_stat_commit_send ,sp_send_lmp_simple_pairing_comfirm 
-76be c003e225 beq sp_stat_random_send ,sp_send_lmp_simple_pairing_number 
-76bf c005e23a beq sp_stat_confirm_send ,sp_send_lmp_dhkey_check 
-76c0 c0017588 beq sp_stat_key_generate ,sp_generate_local_key 
-76c1 c00275f7 beq sp_stat_commit_calc ,sp_calculate_commitment 
-76c2 c004f617 beq sp_stat_confirm_check ,sp_confirm_check 
-76c3 c005763a beq sp_stat_confirm_calc ,sp_confirm_calc 
-76c4 c0067658 beq sp_stat_link_key_calc ,sp_link_key_prarm_push 
-76c5 20600000 rtn 
-
-master_simple_paring_sequence:
-76c6 4775403d bpatchx patch3d_2 ,mem_patch3d 
-76c7 680089b1 fetch 1 ,mem_master_sp_flag 
-76c8 207a0000 rtn blank 
-76c9 204062bc call lmo_fifo_check 
-76ca 247a0000 nrtn blank 
-76cb 7009b100 jam sp_flag_standby ,mem_master_sp_flag 
-76cc 680089af fetch 1 ,mem_master_sp_state 
-76cd c00961e0 beq sp_master_stat_start_skip ,sp_master_send_io_cap_get 
-76ce c009e1e5 beq sp_master_stat_start_done ,sp_master_send_io_cap_send 
-76cf c001e1e9 beq sp_stat_key_send ,sp_master_send_lmp_encapsulated_header 
-76d0 c0027602 beq sp_stat_commit_calc ,master_sp_calculate_commitment 
-76d1 c00a61ed beq sp_stat_commitment_compare ,sp_master_commitment_compare 
-76d2 c003e1fb beq sp_stat_random_send ,sp_master_send_lmp_simple_pairing_number 
-76d3 c005763a beq sp_stat_confirm_calc ,sp_confirm_calc 
-76d4 c005e239 beq sp_stat_confirm_send ,master_sp_send_lmp_dhkey_check 
-76d5 c004f617 beq sp_stat_confirm_check ,sp_confirm_check 
-76d6 c00ae233 beq sp_state_end ,master_sp_sm_end 
-76d7 20600000 rtn 
-
-master_set_mem_master_sp_flag:
-76d8 7009b101 jam sp_flag_commit ,mem_master_sp_flag 
-76d9 20600000 rtn 
-
-master_clear_mem_master_sp_flag:
-76da 7009b100 jam sp_flag_standby ,mem_master_sp_flag 
-76db 20600000 rtn 
-
-sp_calc_sequence:
-76dc 4775c03d bpatchx patch3d_3 ,mem_patch3d 
-76dd 6800c65a fetch 1 ,mem_ssp_enable 
-76de 207a0000 rtn blank 
-76df 680089b2 fetch 1 ,mem_sp_calc 
-76e0 207a0000 rtn blank 
-76e1 1fe0fe80 increase 0x80 ,pdata 
-76e2 600089b2 store 1 ,mem_sp_calc 
-76e3 c3838000 rtnbit1 7 
-76e4 680085e3 fetch 1 ,mem_ec_loopc 
-76e5 203a76e7 branch sp_calc_sequence_done ,blank 
-76e6 20207a68 branch eckp_calc 
-
-sp_calc_sequence_done:
-76e7 204078d3 call ecunmapz 
-76e8 680089b2 fetch 1 ,mem_sp_calc 
-76e9 c000f684 beq sp_calc_pubkey ,sp_pubkey_generated 
-76ea c001769b beq sp_calc_dhkey ,sp_dhkey_generated 
-76eb 20600000 rtn 
-
-bn_testbit:
-76ec 1fe10e07 and pdata ,7 ,queue 
-76ed 1fe97e00 rshift3 pdata ,pdata 
-76ee 98c08c00 iadd contr ,contr 
-76ef e8c08000 ifetch 1 ,contr 
-76f0 afec0000 qisolate0 pdata 
-76f1 20600000 rtn 
-
-ec_copy:
-76f2 20407ebe call memcpy24 
-76f3 20407ebe call memcpy24 
-76f4 20207ebe branch memcpy24 
-
-bn_eq_zero:
-76f5 e8c40000 ifetch 8 ,contr 
-76f6 247a0000 nrtn blank 
-76f7 e8c40000 ifetch 8 ,contr 
-76f8 247a0000 nrtn blank 
-76f9 e8c40000 ifetch 8 ,contr 
-76fa 20600000 rtn 
-
-bn_eq_0:
-76fb ea220000 ifetch 4 ,rega 
-76fc 98000400 iforce temp 
-76fd ea420000 ifetch 4 ,regb 
-76fe 98467c00 isub temp ,null 
-76ff 24628000 nrtn zero 
-7700 1a20a204 increase 4 ,rega 
-7701 1a40a404 increase 4 ,regb 
-7702 c20076fb loop bn_eq_0 
-7703 20600000 rtn 
-
-bn_bigeq:
-7704 18007206 force 6 ,loopcnt 
-7705 1a20a214 increase 20 ,rega 
-7706 1a40a414 increase 20 ,regb 
-
-bn_bigeq_0:
-7707 ea420000 ifetch 4 ,regb 
-7708 98000400 iforce temp 
-7709 ea220000 ifetch 4 ,rega 
-770a 98467e00 isub temp ,pdata 
-770b 24610000 nrtn positive 
-770c 247a0000 nrtn blank 
-770d 1a20a3fc increase -4 ,rega 
-770e 1a40a5fc increase -4 ,regb 
-770f c2007707 loop bn_bigeq_0 
-7710 20600000 rtn 
-
-bn_add:
-7711 18007206 force 6 ,loopcnt 
-7712 18002600 force 0 ,regc 
-
-bn_add_0:
-7713 ea220000 ifetch 4 ,rega 
-7714 98000400 iforce temp 
-7715 ea420000 ifetch 4 ,regb 
-7716 9840fe00 iadd temp ,pdata 
-7717 9a60fe00 iadd regc ,pdata 
-7718 e0a20000 istore 4 ,contw 
-7719 2feffe20 isolate1 32 ,pdata 
-771a 7920a600 setflag true ,0 ,regc 
-771b 1a20a204 increase 4 ,rega 
-771c 1a40a404 increase 4 ,regb 
-771d c2007713 loop bn_add_0 
-771e 20600000 rtn 
-
-bn_sub:
-771f 18007206 force 6 ,loopcnt 
-7720 18002600 force 0 ,regc 
-
-bn_sub_0:
-7721 ea420000 ifetch 4 ,regb 
-7722 98000400 iforce temp 
-7723 ea220000 ifetch 4 ,rega 
-7724 98467e00 isub temp ,pdata 
-7725 9a667e00 isub regc ,pdata 
-7726 e0a20000 istore 4 ,contw 
-7727 2feffe20 isolate1 32 ,pdata 
-7728 7920a600 setflag true ,0 ,regc 
-7729 1a20a204 increase 4 ,rega 
-772a 1a40a404 increase 4 ,regb 
-772b c2007721 loop bn_sub_0 
-772c 20600000 rtn 
-
-bn_rshift6:
-772d 18007206 force 6 ,loopcnt 
-772e 1a20a214 increase 20 ,rega 
-
-bn_rshift:
-772f 18002600 force 0 ,regc 
-
-bn_rshift_0:
-7730 ea220000 ifetch 4 ,rega 
-7731 2feffe00 isolate1 0 ,pdata 
-7732 7920a601 setflag true ,1 ,regc 
-7733 1fe37e00 rshift pdata ,pdata 
-7734 2a6ffe00 isolate1 0 ,regc 
-7735 7920fe1f setflag true ,31 ,pdata 
-7736 e2220000 istore 4 ,rega 
-7737 1a20a3fc increase -4 ,rega 
-7738 1a632600 rshift regc ,regc 
-7739 c2007730 loop bn_rshift_0 
-773a 20600000 rtn 
-
-bn_lshift:
-773b 18007206 force 6 ,loopcnt 
-773c 18002600 force 0 ,regc 
-
-bn_lshift_0:
-773d ea220000 ifetch 4 ,rega 
-773e 2feffe1f isolate1 31 ,pdata 
-773f 7920a601 setflag true ,1 ,regc 
-7740 1fe3fe00 lshift pdata ,pdata 
-7741 2a6ffe00 isolate1 0 ,regc 
-7742 7920fe00 setflag true ,0 ,pdata 
-7743 e2220000 istore 4 ,rega 
-7744 1a20a204 increase 4 ,rega 
-7745 1a632600 rshift regc ,regc 
-7746 c200773d loop bn_lshift_0 
-7747 20600000 rtn 
-
-bn_lshiftmod:
-7748 2040773b call bn_lshift 
-
-bn_lshiftmod_ismod:
-7749 2a6ffe00 isolate1 0 ,regc 
-774a 2020f751 branch bn_lshiftmod_0 ,true 
-774b da400886 arg mem_p ,regb 
-774c 1a222600 copy rega ,regc 
-774d 1a20a3e8 increase -24 ,rega 
-774e 20407704 call bn_bigeq 
-774f 24610000 nrtn positive 
-7750 1a622200 copy regc ,rega 
-
-bn_lshiftmod_0:
-7751 1a20a3e8 increase -24 ,rega 
-7752 da400886 arg mem_p ,regb 
-7753 1a220a00 copy rega ,contw 
-7754 2020771f branch bn_sub 
-
-bn_addmod:
-7755 20407711 call bn_add 
-7756 18a22200 copy contw ,rega 
-7757 20207749 branch bn_lshiftmod_ismod 
-
-bn_submod:
-7758 2040771f call bn_sub 
-7759 2a6c0000 isolate0 0 ,regc 
-775a 20608000 rtn true 
-775b da400886 arg mem_p ,regb 
-775c 18a0a3e8 add contw ,-24 ,rega 
-775d 1a220a00 copy rega ,contw 
-775e 20207711 branch bn_add 
-
-bn_p192mod:
-775f 18a21600 copy contw ,timeup 
-7760 1a226000 copy rega ,alarm 
-7761 da400716 arg mem_tmp2 ,regb 
-7762 1a420a00 copy regb ,contw 
-7763 1a208c18 add rega ,24 ,contr 
-7764 e8c40000 ifetch 8 ,contr 
-7765 e0a40000 istore 8 ,contw 
-7766 e0a40000 istore 8 ,contw 
-7767 18007e00 force 0 ,pdata 
-7768 e0a40000 istore 8 ,contw 
-7769 19620a00 copy timeup ,contw 
-776a 20407755 call bn_addmod 
-776b da400716 arg mem_tmp2 ,regb 
-776c 1a420a00 copy regb ,contw 
-776d 18007e00 force 0 ,pdata 
-776e e0a40000 istore 8 ,contw 
-776f 1e008c20 add alarm ,32 ,contr 
-7770 e8c40000 ifetch 8 ,contr 
-7771 e0a40000 istore 8 ,contw 
-7772 e0a40000 istore 8 ,contw 
-7773 19622200 copy timeup ,rega 
-7774 1a220a00 copy rega ,contw 
-7775 20407755 call bn_addmod 
-7776 da400716 arg mem_tmp2 ,regb 
-7777 1a420a00 copy regb ,contw 
-7778 1e008c28 add alarm ,40 ,contr 
-7779 e8c40000 ifetch 8 ,contr 
-777a e0a40000 istore 8 ,contw 
-777b e0a40000 istore 8 ,contw 
-777c e0a40000 istore 8 ,contw 
-777d 19622200 copy timeup ,rega 
-777e 1a220a00 copy rega ,contw 
-777f 20207755 branch bn_addmod 
-
-bn_load:
-7780 18007206 force 6 ,loopcnt 
-
-bn_load_0:
-7781 e8c20000 ifetch 4 ,contr 
-7782 98005e00 iforce regext 
-7783 1f00f001 increase 1 ,regext_index 
-7784 c2007781 loop bn_load_0 
-7785 20600000 rtn 
-
-bn_mulmod:
-7786 18a21600 copy contw ,timeup 
-7787 d8a006e6 arg mem_tmp1 ,contw 
-7788 20407ec5 call bn_zero 
-7789 d8a006e6 arg mem_tmp1 ,contw 
-778a 1a220c00 copy rega ,contr 
-778b 18007000 force 0 ,regext_index 
-778c 20407780 call bn_load 
-778d 1a420c00 copy regb ,contr 
-778e 20407780 call bn_load 
-778f 18002400 force 0 ,regb 
-
-bn_mulmod_1:
-7790 18000400 force 0 ,temp 
-7791 18002606 force 6 ,regc 
-
-bn_mulmod_0:
-7792 e8a20000 ifetch 4 ,contw 
-7793 98002200 iforce rega 
-7794 1a427000 copy regb ,regext_index 
-7795 1de27e00 deposit regext 
-7796 1a627000 copy regc ,regext_index 
-7797 9deffe00 imul32 regext ,pdata 
-7798 9a20fe00 iadd rega ,pdata 
-7799 9840fe00 iadd temp ,pdata 
-779a e0a20000 istore 4 ,contw 
-779b 1fef0400 rshift32 pdata ,temp 
-779c 1a60a601 increase 1 ,regc 
-779d 2a61fe0c compare 12 ,regc ,0xff 
-779e 2420f792 nbranch bn_mulmod_0 ,true 
-779f 18427e00 deposit temp 
-77a0 e0a20000 istore 4 ,contw 
-77a1 18a08be8 increase -24 ,contw 
-77a2 1a40a401 increase 1 ,regb 
-77a3 2a41fe06 compare 6 ,regb ,0xff 
-77a4 2420f790 nbranch bn_mulmod_1 ,true 
-77a5 da2006e6 arg mem_tmp1 ,rega 
-77a6 19620a00 copy timeup ,contw 
-77a7 2020775f branch bn_p192mod 
-
-bn_sqrmod:
-77a8 1a222400 copy rega ,regb 
-77a9 20207786 branch bn_mulmod 
-
-bn_rshifteven:
-77aa 1a226000 copy rega ,alarm 
-
-bn_rshifteven_1:
-77ab 1e022200 copy alarm ,rega 
-77ac ea208000 ifetch 1 ,rega 
-77ad 2feffe00 isolate1 0 ,pdata 
-77ae 20608000 rtn true 
-77af 2040772d call bn_rshift6 
-77b0 ea408000 ifetch 1 ,regb 
-77b1 2fec0000 isolate0 0 ,pdata 
-77b2 2020f7ba branch bn_rshifteven_0 ,true 
-77b3 da200886 arg mem_p ,rega 
-77b4 1a420a00 copy regb ,contw 
-77b5 20407711 call bn_add 
-77b6 ea408000 ifetch 1 ,regb 
-77b7 9a60fe00 iadd regc ,pdata 
-77b8 e2408000 istore 1 ,regb 
-77b9 1a40a5e8 increase -24 ,regb 
-
-bn_rshifteven_0:
-77ba 1a40a218 add regb ,24 ,rega 
-77bb 18007207 force 7 ,loopcnt 
-77bc 2040772f call bn_rshift 
-77bd 202077ab branch bn_rshifteven_1 
-
-bn_invmod:
-77be 18a21600 copy contw ,timeup 
-77bf d8a00746 arg mem_tmp0 ,contw 
-77c0 20407ec5 call bn_zero 
-77c1 18007e00 force 0 ,pdata 
-77c2 600206fe store 4 ,mem_tmp5 
-77c3 6002075e store 4 ,mem_t2 
-77c4 70074601 jam 1 ,mem_tmp0 
-77c5 d8a006e6 arg mem_tmp1 ,contw 
-77c6 20407ec5 call bn_zero 
-77c7 d8c00886 arg mem_p ,contr 
-77c8 d8a00716 arg mem_tmp2 ,contw 
-77c9 20407ebe call memcpy24 
-77ca 1a220c00 copy rega ,contr 
-77cb d8a0072e arg mem_tmp3 ,contw 
-77cc 20407ebe call memcpy24 
-
-bn_invmod_2:
-77cd d8c0072e arg mem_tmp3 ,contr 
-77ce 204076f5 call bn_eq_zero 
-77cf 203a77f6 branch bn_invmod_0 ,blank 
-77d0 da20072e arg mem_tmp3 ,rega 
-77d1 da400746 arg mem_tmp0 ,regb 
-77d2 204077aa call bn_rshifteven 
-77d3 da200716 arg mem_tmp2 ,rega 
-77d4 da4006e6 arg mem_tmp1 ,regb 
-77d5 204077aa call bn_rshifteven 
-77d6 da20072e arg mem_tmp3 ,rega 
-77d7 da400716 arg mem_tmp2 ,regb 
-77d8 20407704 call bn_bigeq 
-77d9 202177e8 branch bn_invmod_1 ,positive 
-77da da200716 arg mem_tmp2 ,rega 
-77db da40072e arg mem_tmp3 ,regb 
-77dc 1a220a00 copy rega ,contw 
-77dd 2040771f call bn_sub 
-77de da200746 arg mem_tmp0 ,rega 
-77df da4006e6 arg mem_tmp1 ,regb 
-77e0 1a420a00 copy regb ,contw 
-77e1 20407711 call bn_add 
-77e2 ea208000 ifetch 1 ,rega 
-77e3 9a60a600 iadd regc ,regc 
-77e4 ea408000 ifetch 1 ,regb 
-77e5 9a60fe00 iadd regc ,pdata 
-77e6 e2408000 istore 1 ,regb 
-77e7 202077cd branch bn_invmod_2 
-
-bn_invmod_1:
-77e8 da20072e arg mem_tmp3 ,rega 
-77e9 da400716 arg mem_tmp2 ,regb 
-77ea 1a220a00 copy rega ,contw 
-77eb 2040771f call bn_sub 
-77ec da2006e6 arg mem_tmp1 ,rega 
-77ed da400746 arg mem_tmp0 ,regb 
-77ee 1a420a00 copy regb ,contw 
-77ef 20407711 call bn_add 
-77f0 ea208000 ifetch 1 ,rega 
-77f1 9a60a600 iadd regc ,regc 
-77f2 ea408000 ifetch 1 ,regb 
-77f3 9a60fe00 iadd regc ,pdata 
-77f4 e2408000 istore 1 ,regb 
-77f5 202077cd branch bn_invmod_2 
-
-bn_invmod_0:
-77f6 d8a00746 arg mem_tmp0 ,contw 
-77f7 20407ec5 call bn_zero 
-77f8 680086fe fetch 1 ,mem_tmp5 
-77f9 60008746 store 1 ,mem_tmp0 
-77fa 6000874e store 1 ,mem_tmp0a 
-77fb da200746 arg mem_tmp0 ,rega 
-77fc da4006e6 arg mem_tmp1 ,regb 
-77fd 1a420a00 copy regb ,contw 
-77fe 20407755 call bn_addmod 
-77ff da200886 arg mem_p ,rega 
-7800 da4006e6 arg mem_tmp1 ,regb 
-7801 19620a00 copy timeup ,contw 
-7802 20207758 branch bn_submod 
-
-ecdbl:
-7803 da2006a6 arg mem_cz ,rega 
-7804 d8a0075e arg mem_t2 ,contw 
-7805 204077a8 call bn_sqrmod 
-7806 da20075e arg mem_t2 ,rega 
-7807 d8a00776 arg mem_t3 ,contw 
-7808 204077a8 call bn_sqrmod 
-7809 da20089e arg mem_a ,rega 
-780a da400776 arg mem_t3 ,regb 
-780b d8a00776 arg mem_t3 ,contw 
-780c 20407786 call bn_mulmod 
-780d da200676 arg mem_cx ,rega 
-780e d8a0075e arg mem_t2 ,contw 
-780f 204077a8 call bn_sqrmod 
-7810 d8c0075e arg mem_t2 ,contr 
-7811 d8a0072e arg mem_t1 ,contw 
-7812 20407ebe call memcpy24 
-7813 da20072e arg mem_t1 ,rega 
-7814 20407748 call bn_lshiftmod 
-7815 da20075e arg mem_t2 ,rega 
-7816 da40072e arg mem_t1 ,regb 
-7817 d8a0075e arg mem_t2 ,contw 
-7818 20407755 call bn_addmod 
-7819 da20075e arg mem_t2 ,rega 
-781a da400776 arg mem_t3 ,regb 
-781b d8a0075e arg mem_t2 ,contw 
-781c 20407755 call bn_addmod 
-781d d8c00676 arg mem_cx ,contr 
-781e d8a0072e arg mem_t1 ,contw 
-781f 20407ebe call memcpy24 
-7820 da20068e arg mem_cy ,rega 
-7821 d8a00776 arg mem_t3 ,contw 
-7822 204077a8 call bn_sqrmod 
-7823 da20072e arg mem_t1 ,rega 
-7824 20407748 call bn_lshiftmod 
-7825 da20072e arg mem_t1 ,rega 
-7826 20407748 call bn_lshiftmod 
-7827 da20072e arg mem_t1 ,rega 
-7828 da400776 arg mem_t3 ,regb 
-7829 d8a0072e arg mem_t1 ,contw 
-782a 20407786 call bn_mulmod 
-782b da200776 arg mem_t3 ,rega 
-782c d8a00746 arg mem_t0 ,contw 
-782d 204077a8 call bn_sqrmod 
-782e da200746 arg mem_t0 ,rega 
-782f 20407748 call bn_lshiftmod 
-7830 da200746 arg mem_t0 ,rega 
-7831 20407748 call bn_lshiftmod 
-7832 da200746 arg mem_t0 ,rega 
-7833 20407748 call bn_lshiftmod 
-7834 d8c0068e arg mem_cy ,contr 
-7835 d8a00776 arg mem_t3 ,contw 
-7836 20407ebe call memcpy24 
-7837 da200776 arg mem_t3 ,rega 
-7838 20407748 call bn_lshiftmod 
-7839 da200776 arg mem_t3 ,rega 
-783a da4006a6 arg mem_cz ,regb 
-783b d8a006a6 arg mem_cz ,contw 
-783c 20407786 call bn_mulmod 
-783d da20075e arg mem_t2 ,rega 
-783e d8a00776 arg mem_t3 ,contw 
-783f 204077a8 call bn_sqrmod 
-7840 da200776 arg mem_t3 ,rega 
-7841 da40072e arg mem_t1 ,regb 
-7842 d8a00776 arg mem_t3 ,contw 
-7843 20407758 call bn_submod 
-7844 da200776 arg mem_t3 ,rega 
-7845 da40072e arg mem_t1 ,regb 
-7846 d8a00676 arg mem_cx ,contw 
-7847 20407758 call bn_submod 
-7848 da20072e arg mem_t1 ,rega 
-7849 da400676 arg mem_cx ,regb 
-784a d8a00776 arg mem_t3 ,contw 
-784b 20407758 call bn_submod 
-784c da200776 arg mem_t3 ,rega 
-784d da40075e arg mem_t2 ,regb 
-784e d8a00776 arg mem_t3 ,contw 
-784f 20407786 call bn_mulmod 
-7850 da200776 arg mem_t3 ,rega 
-7851 da400746 arg mem_t0 ,regb 
-7852 d8a0068e arg mem_cy ,contw 
-7853 20207758 branch bn_submod 
-
-ecadd:
-7854 da200616 arg mem_az ,rega 
-7855 d8a0078e arg mem_t7 ,contw 
-7856 204077a8 call bn_sqrmod 
-7857 da200676 arg mem_cx ,rega 
-7858 da40078e arg mem_t7 ,regb 
-7859 d8a00746 arg mem_t0 ,contw 
-785a 20407786 call bn_mulmod 
-785b da200616 arg mem_az ,rega 
-785c da40078e arg mem_t7 ,regb 
-785d d8a0078e arg mem_t7 ,contw 
-785e 20407786 call bn_mulmod 
-785f da20068e arg mem_cy ,rega 
-7860 da40078e arg mem_t7 ,regb 
-7861 d8a0072e arg mem_t1 ,contw 
-7862 20407786 call bn_mulmod 
-7863 da2006a6 arg mem_cz ,rega 
-7864 d8a0078e arg mem_t7 ,contw 
-7865 204077a8 call bn_sqrmod 
-7866 da2005e6 arg mem_ax ,rega 
-7867 da40078e arg mem_t7 ,regb 
-7868 d8a0075e arg mem_t2 ,contw 
-7869 20407786 call bn_mulmod 
-786a da2006a6 arg mem_cz ,rega 
-786b da40078e arg mem_t7 ,regb 
-786c d8a0078e arg mem_t7 ,contw 
-786d 20407786 call bn_mulmod 
-786e da2005fe arg mem_ay ,rega 
-786f da40078e arg mem_t7 ,regb 
-7870 d8a00776 arg mem_t3 ,contw 
-7871 20407786 call bn_mulmod 
-7872 da200746 arg mem_t0 ,rega 
-7873 da40075e arg mem_t2 ,regb 
-7874 d8a0078e arg mem_t7 ,contw 
-7875 20407758 call bn_submod 
-7876 da200746 arg mem_t0 ,rega 
-7877 da40075e arg mem_t2 ,regb 
-7878 d8a00746 arg mem_t0 ,contw 
-7879 20407755 call bn_addmod 
-787a da20072e arg mem_t1 ,rega 
-787b da400776 arg mem_t3 ,regb 
-787c d8a0075e arg mem_t2 ,contw 
-787d 20407758 call bn_submod 
-787e da20072e arg mem_t1 ,rega 
-787f da400776 arg mem_t3 ,regb 
-7880 d8a0072e arg mem_t1 ,contw 
-7881 20407755 call bn_addmod 
-7882 da20072e arg mem_t1 ,rega 
-7883 da40078e arg mem_t7 ,regb 
-7884 d8a0072e arg mem_t1 ,contw 
-7885 20407786 call bn_mulmod 
-7886 da2006a6 arg mem_cz ,rega 
-7887 da400616 arg mem_az ,regb 
-7888 d8a00776 arg mem_t3 ,contw 
-7889 20407786 call bn_mulmod 
-788a da200776 arg mem_t3 ,rega 
-788b da40078e arg mem_t7 ,regb 
-788c d8a006a6 arg mem_cz ,contw 
-788d 20407786 call bn_mulmod 
-788e da20078e arg mem_t7 ,rega 
-788f d8a0078e arg mem_t7 ,contw 
-7890 204077a8 call bn_sqrmod 
-7891 da20078e arg mem_t7 ,rega 
-7892 da400746 arg mem_t0 ,regb 
-7893 d8a00776 arg mem_t3 ,contw 
-7894 20407786 call bn_mulmod 
-7895 da20078e arg mem_t7 ,rega 
-7896 da40072e arg mem_t1 ,regb 
-7897 d8a0072e arg mem_t1 ,contw 
-7898 20407786 call bn_mulmod 
-7899 da20075e arg mem_t2 ,rega 
-789a d8a00676 arg mem_cx ,contw 
-789b 204077a8 call bn_sqrmod 
-789c da200676 arg mem_cx ,rega 
-789d da400776 arg mem_t3 ,regb 
-789e d8a00676 arg mem_cx ,contw 
-789f 20407758 call bn_submod 
-78a0 d8c00676 arg mem_cx ,contr 
-78a1 d8a0078e arg mem_t7 ,contw 
-78a2 20407ebe call memcpy24 
-78a3 da20078e arg mem_t7 ,rega 
-78a4 20407748 call bn_lshiftmod 
-78a5 da200776 arg mem_t3 ,rega 
-78a6 da40078e arg mem_t7 ,regb 
-78a7 d8a00776 arg mem_t3 ,contw 
-78a8 20407758 call bn_submod 
-78a9 da200776 arg mem_t3 ,rega 
-78aa da40075e arg mem_t2 ,regb 
-78ab d8a0075e arg mem_t2 ,contw 
-78ac 20407786 call bn_mulmod 
-78ad da20075e arg mem_t2 ,rega 
-78ae da40072e arg mem_t1 ,regb 
-78af d8a0068e arg mem_cy ,contw 
-78b0 20407758 call bn_submod 
-78b1 da20068e arg mem_cy ,rega 
-78b2 da400886 arg mem_p ,regb 
-78b3 d8a0068e arg mem_cy ,contw 
-78b4 18002600 force 0 ,regc 
-78b5 6800868e fetch 1 ,mem_cy 
-78b6 2feffe00 isolate1 0 ,pdata 
-78b7 2040f711 call bn_add ,true 
-78b8 1a626000 copy regc ,alarm 
-78b9 da20068e arg mem_cy ,rega 
-78ba 2040772d call bn_rshift6 
-78bb 680086a5 fetch 1 ,mem_cy5 
-78bc 2e0ffe00 isolate1 0 ,alarm 
-78bd 7920fe07 setflag true ,7 ,pdata 
-78be 600086a5 store 1 ,mem_cy5 
-78bf 20600000 rtn 
-
-eckp_0:
-78c0 680085e3 fetch 1 ,mem_ec_loopc 
-78c1 1fe0ffff increase -1 ,pdata 
-78c2 24610000 nrtn positive 
-78c3 600085e3 store 1 ,mem_ec_loopc 
-78c4 680085e2 fetch 1 ,mem_ec_infinite 
-78c5 205a7803 call ecdbl ,blank 
-78c6 680085e3 fetch 1 ,mem_ec_loopc 
-78c7 d8c006be arg mem_k ,contr 
-78c8 204076ec call bn_testbit 
-78c9 2020f8c0 branch eckp_0 ,true 
-78ca 680085e2 fetch 1 ,mem_ec_infinite 
-78cb 243a78ce nbranch eckp_1 ,blank 
-78cc 20407854 call ecadd 
-78cd 202078c0 branch eckp_0 
-
-eckp_1:
-78ce 7005e200 jam 0 ,mem_ec_infinite 
-78cf d8c005e6 arg mem_ax ,contr 
-78d0 d8a00676 arg mem_cx ,contw 
-78d1 204076f2 call ec_copy 
-78d2 202078c0 branch eckp_0 
-
-ecunmapz:
-78d3 da2006a6 arg mem_cz ,rega 
-78d4 d8a00776 arg mem_t3 ,contw 
-78d5 204077be call bn_invmod 
-78d6 da200776 arg mem_t3 ,rega 
-78d7 d8a0072e arg mem_t1 ,contw 
-78d8 204077a8 call bn_sqrmod 
-78d9 da200676 arg mem_cx ,rega 
-78da da40072e arg mem_t1 ,regb 
-78db d8a0062e arg mem_bx ,contw 
-78dc 20407786 call bn_mulmod 
-78dd da200776 arg mem_t3 ,rega 
-78de da40072e arg mem_t1 ,regb 
-78df d8a0075e arg mem_t2 ,contw 
-78e0 20407786 call bn_mulmod 
-78e1 da20068e arg mem_cy ,rega 
-78e2 da40075e arg mem_t2 ,regb 
-78e3 d8a00646 arg mem_by ,contw 
-78e4 20207786 branch bn_mulmod 
-
-sha_endian_swap2:
-78e5 e8c20000 ifetch 4 ,contr 
-78e6 18002204 force 4 ,rega 
-78e7 18a08a03 increase 3 ,contw 
-
-sha_endian_loop:
-78e8 e0a08000 istore 1 ,contw 
-78e9 1fecfe00 rshift8 pdata ,pdata 
-78ea 18a08bfe increase -2 ,contw 
-78eb 1a20a3ff increase -1 ,rega 
-78ec 2422f8e8 nbranch sha_endian_loop ,zero 
-78ed 18a08a05 increase 5 ,contw 
-78ee c20078e5 loop sha_endian_swap2 
-78ef 20600000 rtn 
-
-sha_getw:
-78f0 18ebfe00 lshift2 queue ,pdata 
-78f1 99608c00 iadd timeup ,contr 
-78f2 e8c20000 ifetch 4 ,contr 
-78f3 20600000 rtn 
-
-sha_r:
-78f4 18006010 force 16 ,alarm 
-78f5 d96005e6 arg memdat ,timeup 
-
-sha_r_loop:
-78f6 1e008ff9 add alarm ,-7 ,queue 
-78f7 204078f0 call sha_getw 
-78f8 98000400 iforce temp 
-78f9 1e008ff0 add alarm ,-16 ,queue 
-78fa 204078f0 call sha_getw 
-78fb 98408400 iadd temp ,temp 
-78fc 1e008ffe add alarm ,-2 ,queue 
-78fd 204078f0 call sha_getw 
-78fe 1fee7e01 shasx pdata ,1 ,pdata 
-78ff 98408400 iadd temp ,temp 
-7900 1e008ff1 add alarm ,-15 ,queue 
-7901 204078f0 call sha_getw 
-7902 1fee7e00 shasx pdata ,0 ,pdata 
-7903 98408400 iadd temp ,temp 
-7904 1e0bfe00 lshift2 alarm ,pdata 
-7905 99608a00 iadd timeup ,contw 
-7906 e0aa0000 istoret 4 ,contw 
-7907 1e00e001 increase 1 ,alarm 
-7908 2e01fe40 compare 64 ,alarm ,0xff 
-7909 2420f8f6 nbranch sha_r_loop ,true 
-790a 20600000 rtn 
-
-sha_init:
-790b d8c008fe arg memh0 ,contr 
-790c 18007007 force 7 ,regext_index 
-
-sha_init_0:
-790d e8c20000 ifetch 4 ,contr 
-790e 98005e00 iforce regext 
-790f 1f00f1ff increase -1 ,regext_index 
-7910 2021790d branch sha_init_0 ,positive 
-7911 20600000 rtn 
-
-sha:
-7912 4776403d bpatchx patch3d_4 ,mem_patch3d 
-7913 204078f4 call sha_r 
-7914 d8a006e6 arg memahbak ,contw 
-7915 18007000 force 0 ,regext_index 
-
-sha_0:
-7916 1de27e00 deposit regext 
-7917 e0a20000 istore 4 ,contw 
-7918 1f00f001 increase 1 ,regext_index 
-7919 2f01fe08 compare 8 ,regext_index ,0xff 
-791a 2420f916 nbranch sha_0 ,true 
-791b 204074b9 call enable_authrom 
-791c d9608700 arg memk ,timeup 
-791d de0005e6 arg memdat ,alarm 
-791e 18007240 force 64 ,loopcnt 
-
-sha_loop:
-791f ee0a0000 ifetcht 4 ,alarm 
-7920 e9620000 ifetch 4 ,timeup 
-7921 19609604 increase 4 ,timeup 
-7922 1e00e004 increase 4 ,alarm 
-7923 9840fe00 iadd temp ,pdata 
-7924 18007007 force 7 ,regext_index 
-7925 9de08400 iadd regext ,temp 
-7926 18007004 force 4 ,regext_index 
-7927 1dee7e03 shasx regext ,3 ,pdata 
-7928 98408400 iadd temp ,temp 
-7929 18007005 force 5 ,regext_index 
-792a 1de27e00 deposit regext 
-792b 18007006 force 6 ,regext_index 
-792c 9de2fe00 ixor regext ,pdata 
-792d 18007004 force 4 ,regext_index 
-792e 9de17e00 iand regext ,pdata 
-792f 18007006 force 6 ,regext_index 
-7930 9de2fe00 ixor regext ,pdata 
-7931 98408400 iadd temp ,temp 
-7932 18007007 force 7 ,regext_index 
-7933 18425e00 copy temp ,regext 
-7934 18007003 force 3 ,regext_index 
-7935 1de27e00 deposit regext 
-7936 9840de00 iadd temp ,regext 
-7937 18007000 force 0 ,regext_index 
-7938 1de27e00 deposit regext 
-7939 18007001 force 1 ,regext_index 
-793a 9de10400 iand regext ,temp 
-793b 9de1fe00 ior regext ,pdata 
-793c 18007002 force 2 ,regext_index 
-793d 9de17e00 iand regext ,pdata 
-793e 98418400 ior temp ,temp 
-793f 18007000 force 0 ,regext_index 
-7940 1dee7e02 shasx regext ,2 ,pdata 
-7941 9840fe00 iadd temp ,pdata 
-7942 18007007 force 7 ,regext_index 
-7943 9de0de00 iadd regext ,regext 
-7944 980efc00 regexrot 
-7945 c200791f loop sha_loop 
-7946 d8c006e6 arg memahbak ,contr 
-7947 18007000 force 0 ,regext_index 
-
-sha_1:
-7948 e8c20000 ifetch 4 ,contr 
-7949 9de0de00 iadd regext ,regext 
-794a 1f00f001 increase 1 ,regext_index 
-794b 2f01fe08 compare 8 ,regext_index ,0xff 
-794c 2420f948 nbranch sha_1 ,true 
-794d 202074bd branch disable_authrom 
-
-sha_result:
-794e d8a00a3e arg memresult ,contw 
-794f 18007007 force 7 ,regext_index 
-
-sha_regext_save:
-7950 1de27e00 deposit regext 
-7951 e0a20000 istore 4 ,contw 
-7952 1f00f1ff increase -1 ,regext_index 
-7953 20217950 branch sha_regext_save ,positive 
-7954 20600000 rtn 
-
-pad_xor:
-7955 d8a005e6 arg memdat ,contw 
-7956 18c08dfc increase -4 ,contr 
-7957 1f262210 sub loopcnt ,16 ,rega 
-
-pad_xor_0:
-7958 e8c20000 ifetch 4 ,contr 
-7959 9842fe00 ixor temp ,pdata 
-795a e0a20000 istore 4 ,contw 
-795b 18c08df8 increase -8 ,contr 
-795c c2007958 loop pad_xor_0 
-795d 1a227200 copy rega ,loopcnt 
-795e 18427e00 deposit temp 
-
-pad_xor_1:
-795f e0a20000 istore 4 ,contw 
-7960 c200795f loop pad_xor_1 
-7961 20600000 rtn 
-
-g_noninit_number_confirm:
-7962 20407967 call g_noninit0 
-7963 2040794e call sha_result 
-7964 2020798d branch g_common0 
-
-g_noninit:
-7965 20407967 call g_noninit0 
-7966 2020798d branch g_common0 
-
-g_noninit0:
-7967 d8c009de arg mem_sp_pubkey_remote_x_end ,contr 
-7968 d8a005e6 arg memdat ,contw 
-7969 18007206 force 6 ,loopcnt 
-796a 20407a71 call memcpy_dword_swap 
-796b d8c04642 arg mem_sp_pubkey_local_x_end ,contr 
-796c 18007206 force 6 ,loopcnt 
-796d 20407a71 call memcpy_dword_swap 
-796e d8c00a3e arg mem_sp_random_remote_end ,contr 
-796f 20407a70 call memcpy_dword_swap4 
-7970 2040790b call sha_init 
-7971 20407912 call sha 
-7972 d8c00a2e arg mem_sp_random_local_end ,contr 
-7973 d8a005e6 arg memdat ,contw 
-7974 20207984 branch g_common 
-
-g_init:
-7975 d8c04642 arg mem_sp_pubkey_local_x_end ,contr 
-7976 d8a005e6 arg memdat ,contw 
-7977 18007206 force 6 ,loopcnt 
-7978 20407a71 call memcpy_dword_swap 
-7979 d8c009de arg mem_sp_pubkey_remote_x_end ,contr 
-797a 18007206 force 6 ,loopcnt 
-797b 20407a71 call memcpy_dword_swap 
-797c d8c00a2e arg mem_sp_random_local_end ,contr 
-797d 20407a70 call memcpy_dword_swap4 
-797e 2040790b call sha_init 
-797f 20407912 call sha 
-7980 d8c00a3e arg mem_sp_random_remote_end ,contr 
-7981 d8a005e6 arg memdat ,contw 
-7982 20407984 call g_common 
-7983 2020798d branch g_common0 
-
-g_common:
-7984 20407a70 call memcpy_dword_swap4 
-7985 58800000 setarg 0x800000 
-7986 1fed7e00 lshift8 pdata ,pdata 
-7987 e0a20000 istore 4 ,contw 
-7988 18007205 force 5 ,loopcnt 
-7989 20407ec6 call memset0 
-798a 58000280 setarg 640 
-798b e0a20000 istore 4 ,contw 
-798c 20207912 branch sha 
-
-g_common0:
-798d 68020a3e fetch 4 ,memresult 
-798e da2003e8 arg 1000 ,rega 
-798f 9a26fc00 idiv rega 
-7990 20407f86 call wait_div_end 
-7991 18077e00 remainder pdata 
-7992 600209ba store 4 ,mem_gkey 
-7993 1807fe00 quotient pdata 
-7994 da2003e8 arg 1000 ,rega 
-7995 9a26fc00 idiv rega 
-7996 20407f86 call wait_div_end 
-7997 18077e00 remainder pdata 
-7998 da2003e8 arg 1000 ,rega 
-7999 9a2ffe00 imul32 rega ,pdata 
-799a 680a09ba fetcht 4 ,mem_gkey 
-799b 9840fe00 iadd temp ,pdata 
-799c 600209ba store 4 ,mem_gkey 
-799d 20600000 rtn 
-
-function_f1_no_key:
-799e 70466400 jam 0 ,mem_passkey_1bit 
-799f 202079a2 branch function_f1_common 
-
-function_f1:
-79a0 6800c662 fetch 1 ,mem_ssp_mode_flag 
-79a1 c081799e bne ssp_mode_passkey_entry_flag ,function_f1_no_key 
-
-function_f1_common:
-79a2 4776c03d bpatchx patch3d_5 ,mem_patch3d 
-79a3 58363636 setarg 0x363636 
-79a4 1fed0400 lshift8 pdata ,temp 
-79a5 18418436 or_into 0x36 ,temp 
-79a6 68010a7e fetch 2 ,mem_sp_prarm_stack 
-79a7 1fe20c00 copy pdata ,contr 
-79a8 18007204 force 4 ,loopcnt 
-79a9 20407955 call pad_xor 
-79aa 2040790b call sha_init 
-79ab 20407912 call sha 
-79ac 68010a80 fetch 2 ,mem_sp_prarm_stack + 2 
-79ad 1fe20c00 copy pdata ,contr 
-79ae d8a005e6 arg memdat ,contw 
-79af 18007206 force 6 ,loopcnt 
-79b0 20407a71 call memcpy_dword_swap 
-79b1 68010a82 fetch 2 ,mem_sp_prarm_stack + 4 
-79b2 1fe20c00 copy pdata ,contr 
-79b3 18007206 force 6 ,loopcnt 
-79b4 20407a71 call memcpy_dword_swap 
-79b5 58800000 setarg 0x800000 
-79b6 e0a18000 istore 3 ,contw 
-79b7 6800c664 fetch 1 ,mem_passkey_1bit 
-79b8 e0a08000 istore 1 ,contw 
-79b9 18007e00 force 0 ,pdata 
-79ba e0a40000 istore 8 ,contw 
-79bb 58000388 setarg 0x0388 
-79bc e0a20000 istore 4 ,contw 
-79bd 20407912 call sha 
-79be 2040794e call sha_result 
-79bf d8c00a3e arg memresult ,contr 
-79c0 d8a00706 arg memahsave ,contw 
-79c1 20407ebd call memcpy32 
-79c2 585c5c5c setarg 0x5c5c5c 
-79c3 1fed0400 lshift8 pdata ,temp 
-79c4 1841845c or_into 0x5c ,temp 
-79c5 68010a7e fetch 2 ,mem_sp_prarm_stack 
-79c6 1fe20c00 copy pdata ,contr 
-79c7 18007204 force 4 ,loopcnt 
-79c8 20407955 call pad_xor 
-79c9 2040790b call sha_init 
-79ca 20407912 call sha 
-79cb d8c00726 arg memahsave_end ,contr 
-79cc d8a005e6 arg memdat ,contw 
-79cd 18007208 force 8 ,loopcnt 
-79ce 20407a71 call memcpy_dword_swap 
-79cf 58800000 setarg 0x800000 
-79d0 1fed7e00 lshift8 pdata ,pdata 
-79d1 e0a20000 istore 4 ,contw 
-79d2 20407ec5 call bn_zero 
-79d3 58000300 setarg 0x0300 
-79d4 e0a20000 istore 4 ,contw 
-79d5 20407912 call sha 
-79d6 2020794e branch sha_result 
-
-function_f2:
-79d7 58363636 setarg 0x363636 
-79d8 1fed0400 lshift8 pdata ,temp 
-79d9 18418436 or_into 0x36 ,temp 
-79da d8c00a1e arg mem_sp_dhkey_end ,contr 
-79db 18007206 force 6 ,loopcnt 
-79dc 20407955 call pad_xor 
-79dd 2040790b call sha_init 
-79de 20407912 call sha 
-79df 68010a8a fetch 2 ,mem_sp_prarm_stack + 12 
-79e0 1fe20c00 copy pdata ,contr 
-79e1 d8a005e6 arg memdat ,contw 
-79e2 20407a70 call memcpy_dword_swap4 
-79e3 68010a8c fetch 2 ,mem_sp_prarm_stack + 14 
-79e4 1fe20c00 copy pdata ,contr 
-79e5 20407a70 call memcpy_dword_swap4 
-79e6 5862746c setarg 0x62746c 
-79e7 1fed7e00 lshift8 pdata ,pdata 
-79e8 1fe1fe6b or_into 0x6b ,pdata 
-79e9 e0a20000 istore 4 ,contw 
-79ea d8c00733 arg mem_addr_value_end ,contr 
-79eb 18007203 force 3 ,loopcnt 
-79ec 20407a71 call memcpy_dword_swap 
-79ed 58800000 setarg 0x800000 
-79ee 1fed7e00 lshift8 pdata ,pdata 
-79ef e0a20000 istore 4 ,contw 
-79f0 18007e00 force 0 ,pdata 
-79f1 e0a40000 istore 8 ,contw 
-79f2 58000380 setarg 0x0380 
-79f3 e0a20000 istore 4 ,contw 
-79f4 20407912 call sha 
-79f5 2040794e call sha_result 
-79f6 d8c00a3e arg memresult ,contr 
-79f7 d8a00706 arg memahsave ,contw 
-79f8 20407ebd call memcpy32 
-79f9 585c5c5c setarg 0x5c5c5c 
-79fa 1fed0400 lshift8 pdata ,temp 
-79fb 1841845c or_into 0x5c ,temp 
-79fc d8c00a1e arg mem_sp_dhkey_end ,contr 
-79fd 18007206 force 6 ,loopcnt 
-79fe 20407955 call pad_xor 
-79ff 2040790b call sha_init 
-7a00 20407912 call sha 
-7a01 d8c00726 arg memahsave_end ,contr 
-7a02 d8a005e6 arg memdat ,contw 
-7a03 18007208 force 8 ,loopcnt 
-7a04 20407a71 call memcpy_dword_swap 
-7a05 58800000 setarg 0x800000 
-7a06 1fed7e00 lshift8 pdata ,pdata 
-7a07 e0a20000 istore 4 ,contw 
-7a08 20407ec5 call bn_zero 
-7a09 58000300 setarg 0x0300 
-7a0a e0a20000 istore 4 ,contw 
-7a0b 20407912 call sha 
-7a0c 2020794e branch sha_result 
-
-function_f3a:
-7a0d 6800c662 fetch 1 ,mem_ssp_mode_flag 
-7a0e c0817a1e bne ssp_mode_passkey_entry_flag ,function_f3a_no_pin 
-
-function_f3a_common:
-7a0f 4777403d bpatchx patch3d_6 ,mem_patch3d 
-7a10 58363636 setarg 0x363636 
-7a11 1fed0400 lshift8 pdata ,temp 
-7a12 18418436 or_into 0x36 ,temp 
-7a13 d8c00a1e arg mem_sp_dhkey_end ,contr 
-7a14 18007206 force 6 ,loopcnt 
-7a15 20407955 call pad_xor 
-7a16 2040790b call sha_init 
-7a17 20407912 call sha 
-7a18 d8c00a3e arg mem_sp_random_remote_end ,contr 
-7a19 d8a005e6 arg memdat ,contw 
-7a1a 20407a70 call memcpy_dword_swap4 
-7a1b d8c00a2e arg mem_sp_random_local_end ,contr 
-7a1c 20407a70 call memcpy_dword_swap4 
-7a1d 20207a33 branch function_f3_common 
-
-function_f3a_no_pin:
-7a1e 58000000 setarg 0 
-7a1f 6002468a store 4 ,mem_pin 
-7a20 20207a0f branch function_f3a_common 
-
-function_f3b_no_pin:
-7a21 58000000 setarg 0 
-7a22 6002468a store 4 ,mem_pin 
-7a23 20207a26 branch function_f3b_common 
-
-function_f3b:
-7a24 6800c662 fetch 1 ,mem_ssp_mode_flag 
-7a25 c0817a21 bne ssp_mode_passkey_entry_flag ,function_f3b_no_pin 
-
-function_f3b_common:
-7a26 58363636 setarg 0x363636 
-7a27 1fed0400 lshift8 pdata ,temp 
-7a28 18418436 or_into 0x36 ,temp 
-7a29 d8c00a1e arg mem_sp_dhkey_end ,contr 
-7a2a 18007206 force 6 ,loopcnt 
-7a2b 20407955 call pad_xor 
-7a2c 2040790b call sha_init 
-7a2d 20407912 call sha 
-7a2e d8c00a2e arg mem_sp_random_local_end ,contr 
-7a2f d8a005e6 arg memdat ,contw 
-7a30 20407a70 call memcpy_dword_swap4 
-7a31 d8c00a3e arg mem_sp_random_remote_end ,contr 
-7a32 20407a70 call memcpy_dword_swap4 
-
-function_f3_common:
-7a33 58000000 setarg 0x0 
-7a34 e0a40000 istore 8 ,contw 
-7a35 e0a20000 istore 4 ,contw 
-7a36 6802468a fetch 4 ,mem_pin 
-7a37 e0a20000 istore 4 ,contw 
-7a38 18a20400 copy contw ,temp 
-7a39 70072680 jam 0x80 ,mem_addr_padding 
-7a3a 18420a00 copy temp ,contw 
-7a3b d8c00736 arg mem_addr_iocap_end ,contr 
-7a3c 20407a70 call memcpy_dword_swap4 
-7a3d 20407912 call sha 
-7a3e d8a005e6 arg memdat ,contw 
-7a3f 18007207 force 7 ,loopcnt 
-7a40 20407ec6 call memset0 
-7a41 e0a20000 istore 4 ,contw 
-7a42 580003f8 setarg 0x03F8 
-7a43 e0a20000 istore 4 ,contw 
-7a44 20407912 call sha 
-7a45 2040794e call sha_result 
-7a46 d8c00a3e arg memresult ,contr 
-7a47 d8a00706 arg memahsave ,contw 
-7a48 20407ebd call memcpy32 
-7a49 585c5c5c setarg 0x5c5c5c 
-7a4a 1fed0400 lshift8 pdata ,temp 
-7a4b 1841845c or_into 0x5c ,temp 
-7a4c d8c00a1e arg mem_sp_dhkey_end ,contr 
-7a4d 18007206 force 6 ,loopcnt 
-7a4e 20407955 call pad_xor 
-7a4f 2040790b call sha_init 
-7a50 20407912 call sha 
-7a51 d8c00726 arg memahsave_end ,contr 
-7a52 d8a005e6 arg memdat ,contw 
-7a53 18007208 force 8 ,loopcnt 
-7a54 20407a71 call memcpy_dword_swap 
-7a55 58800000 setarg 0x800000 
-7a56 1fed7e00 lshift8 pdata ,pdata 
-7a57 e0a20000 istore 4 ,contw 
-7a58 20407ec5 call bn_zero 
-7a59 58000300 setarg 0x0300 
-7a5a e0a20000 istore 4 ,contw 
-7a5b 20407912 call sha 
-7a5c 2020794e branch sha_result 
-
-eckp_calc_init:
-7a5d 7005e3c0 jam 192 ,mem_ec_loopc 
-
-eckp_calc_init_1:
-7a5e 680085e3 fetch 1 ,mem_ec_loopc 
-7a5f 207a0000 rtn blank 
-7a60 1fe0ffff increase -1 ,pdata 
-7a61 600085e3 store 1 ,mem_ec_loopc 
-7a62 d8c006be arg mem_k ,contr 
-7a63 204076ec call bn_testbit 
-7a64 2020fa5e branch eckp_calc_init_1 ,true 
-7a65 d8c005e6 arg mem_ax ,contr 
-7a66 d8a00676 arg mem_cx ,contw 
-7a67 202076f2 branch ec_copy 
-
-eckp_calc:
-7a68 20407803 call ecdbl 
-7a69 680085e3 fetch 1 ,mem_ec_loopc 
-7a6a 1fe0ffff increase -1 ,pdata 
-7a6b 600085e3 store 1 ,mem_ec_loopc 
-7a6c d8c006be arg mem_k ,contr 
-7a6d 204076ec call bn_testbit 
-7a6e 20608000 rtn true 
-7a6f 20207854 branch ecadd 
-
-memcpy_dword_swap4:
-7a70 18007204 force 4 ,loopcnt 
-
-memcpy_dword_swap:
-7a71 18c08dfc increase -4 ,contr 
-
-memcpy_dword_swap_loop:
-7a72 e8c20000 ifetch 4 ,contr 
-7a73 e0a20000 istore 4 ,contw 
-7a74 18c08df8 increase -8 ,contr 
-7a75 c2007a72 loop memcpy_dword_swap_loop 
-7a76 20600000 rtn 
-
-sp_initialize_256:
-7a77 4777c03d bpatchx patch3d_7 ,mem_patch3d 
-7a78 6800c4be fetch 1 ,mem_le_secure_connect_enable 
-7a79 203a5af0 branch le_secure_connection_disable ,blank 
-7a7a 20405aec call le_secure_connection_enable 
-7a7b 20407583 call sp_clear_flags 
-7a7c 20207a7d branch sp_pubkey_calc_256 
-
-sp_pubkey_calc_256:
-7a7d 6800c4c3 fetch 1 ,mem_le_sc_local_key_invalid 
-7a7e c1800000 rtnne sp_key_invalid 
-7a7f 6800c4c0 fetch 1 ,mem_le_sc_calc 
-7a80 c1800000 rtnne sp_calc_standby 
-7a81 d8a045b2 arg mem_le_private_key_256 ,contw 
-7a82 18000e0f force 15 ,queue 
-7a83 204076a2 call random_generator 
-7a84 180a7e00 random pdata 
-7a85 1fe37e00 rshift pdata ,pdata 
-7a86 e0a10000 istore 2 ,contw 
-7a87 d8a00766 arg mem_k_256 ,contw 
-7a88 d8c045b2 arg mem_le_private_key_256 ,contr 
-7a89 20407ebd call memcpy32 
-7a8a d8a00646 arg mem_ax_256 ,contw 
-7a8b d8c0095e arg mem_gx_256 ,contr 
-7a8c 20407eb3 call memcpy64 
-7a8d d8a00686 arg mem_az_256 ,contw 
-7a8e 20407ed0 call clear_mem_256 
-7a8f 70068601 jam 1 ,mem_az_256 
-7a90 20407ac7 call eckp_calc_init_256 
-7a91 7044c003 jam sp_calc_pubkey_256 ,mem_le_sc_calc 
-7a92 20600000 rtn 
-
-sp_pubkey_generated_256:
-7a93 d8a045d2 arg mem_le_pubkey_local_x_256 ,contw 
-7a94 d8c006a6 arg mem_bx_256 ,contr 
-7a95 20407eb3 call memcpy64 
-7a96 7044c303 jam sp_key_valid_256 ,mem_le_sc_local_key_invalid 
-7a97 7044c000 jam sp_calc_standby ,mem_le_sc_calc 
-7a98 20600000 rtn 
-
-sp_dhkey_calc_256:
-7a99 680089b9 fetch 1 ,mem_sp_dhkey_invalid 
-7a9a c1800000 rtnne sp_key_invalid 
-7a9b 6800c4c0 fetch 1 ,mem_le_sc_calc 
-7a9c c1800000 rtnne sp_calc_standby 
-7a9d d8a00766 arg mem_k_256 ,contw 
-7a9e d8c045b2 arg mem_le_private_key_256 ,contr 
-7a9f 20407ebd call memcpy32 
-7aa0 d8a00646 arg mem_ax_256 ,contw 
-7aa1 d8c009be arg mem_le_pubkey_remote_x_256 ,contr 
-7aa2 20407eb3 call memcpy64 
-7aa3 d8a00686 arg mem_az_256 ,contw 
-7aa4 20407ed0 call clear_mem_256 
-7aa5 70068601 jam 1 ,mem_az_256 
-7aa6 20407ac7 call eckp_calc_init_256 
-7aa7 7044c004 jam sp_calc_dhkey_256 ,mem_le_sc_calc 
-7aa8 20600000 rtn 
-
-sp_dhkey_generated_256:
-7aa9 d8a009fe arg mem_le_dhkey_256 ,contw 
-7aaa d8c006a6 arg mem_bx_256 ,contr 
-7aab 20407ebd call memcpy32 
-7aac 7009b903 jam sp_key_valid_256 ,mem_sp_dhkey_invalid 
-7aad 7044c000 jam sp_calc_standby ,mem_le_sc_calc 
-7aae 20600000 rtn 
-
-sp_calc_sequence_256:
-7aaf 6800c4be fetch 1 ,mem_le_secure_connect_enable 
-7ab0 207a0000 rtn blank 
-7ab1 6800c4c0 fetch 1 ,mem_le_sc_calc 
-7ab2 207a0000 rtn blank 
-7ab3 1fe0fe80 increase 0x80 ,pdata 
-7ab4 6000c4c0 store 1 ,mem_le_sc_calc 
-7ab5 c3838000 rtnbit1 7 
-7ab6 680105e3 fetch 2 ,mem_ec_loopc 
-7ab7 203a7ab9 branch sp_calc_sequence_done_256 ,blank 
-7ab8 20207abf branch eckp_calc_256 
-
-sp_calc_sequence_done_256:
-7ab9 4778403e bpatchx patch3e_0 ,mem_patch3e 
-7aba 20407ad4 call ecunmapz_256 
-7abb 6800c4c0 fetch 1 ,mem_le_sc_calc 
-7abc c001fa93 beq sp_calc_pubkey_256 ,sp_pubkey_generated_256 
-7abd c0027aa9 beq sp_calc_dhkey_256 ,sp_dhkey_generated_256 
-7abe 20600000 rtn 
-
-eckp_calc_256:
-7abf 20407ae6 call ecdbl_256 
-7ac0 680105e3 fetch 2 ,mem_ec_loopc 
-7ac1 1fe0ffff increase -1 ,pdata 
-7ac2 600105e3 store 2 ,mem_ec_loopc 
-7ac3 d8c00766 arg mem_k_256 ,contr 
-7ac4 204076ec call bn_testbit 
-7ac5 20608000 rtn true 
-7ac6 20207b37 branch ecadd_256 
-
-eckp_calc_init_256:
-7ac7 4778c03e bpatchx patch3e_1 ,mem_patch3e 
-7ac8 58000100 setarg 256 ,pdata 
-7ac9 600105e3 store 2 ,mem_ec_loopc 
-
-eckp_calc_init_256_1:
-7aca 680105e3 fetch 2 ,mem_ec_loopc 
-7acb 207a0000 rtn blank 
-7acc 1fe0ffff increase -1 ,pdata 
-7acd 600105e3 store 2 ,mem_ec_loopc 
-7ace d8c00766 arg mem_k_256 ,contr 
-7acf 204076ec call bn_testbit 
-7ad0 2020faca branch eckp_calc_init_256_1 ,true 
-7ad1 d8c00646 arg mem_ax_256 ,contr 
-7ad2 d8a00706 arg mem_cx_256 ,contw 
-7ad3 20207eb2 branch memcpy96 
-
-ecunmapz_256:
-7ad4 da200746 arg mem_cz_256 ,rega 
-7ad5 d8a00846 arg mem_t3_256 ,contw 
-7ad6 20407ba3 call bn_invmod_256 
-7ad7 da200846 arg mem_t3_256 ,rega 
-7ad8 d8a007e6 arg mem_t1_256 ,contw 
-7ad9 20407c79 call bn_sqrmod_256 
-7ada da200706 arg mem_cx_256 ,rega 
-7adb da4007e6 arg mem_t1_256 ,regb 
-7adc d8a006a6 arg mem_bx_256 ,contw 
-7add 20407be1 call bn_mulmod_256 
-7ade da200846 arg mem_t3_256 ,rega 
-7adf da4007e6 arg mem_t1_256 ,regb 
-7ae0 d8a00826 arg mem_t2_256 ,contw 
-7ae1 20407be1 call bn_mulmod_256 
-7ae2 da200726 arg mem_cy_256 ,rega 
-7ae3 da400826 arg mem_t2_256 ,regb 
-7ae4 d8a006c6 arg mem_by_256 ,contw 
-7ae5 20207be1 branch bn_mulmod_256 
-
-ecdbl_256:
-7ae6 da200746 arg mem_cz_256 ,rega 
-7ae7 d8a00826 arg mem_t2_256 ,contw 
-7ae8 20407c79 call bn_sqrmod_256 
-7ae9 da200826 arg mem_t2_256 ,rega 
-7aea d8a00846 arg mem_t3_256 ,contw 
-7aeb 20407c79 call bn_sqrmod_256 
-7aec da20093e arg mem_a_256 ,rega 
-7aed da400846 arg mem_t3_256 ,regb 
-7aee d8a00846 arg mem_t3_256 ,contw 
-7aef 20407be1 call bn_mulmod_256 
-7af0 da200706 arg mem_cx_256 ,rega 
-7af1 d8a00826 arg mem_t2_256 ,contw 
-7af2 20407c79 call bn_sqrmod_256 
-7af3 d8c00826 arg mem_t2_256 ,contr 
-7af4 d8a007e6 arg mem_t1_256 ,contw 
-7af5 20407ebd call memcpy32 
-7af6 da2007e6 arg mem_t1_256 ,rega 
-7af7 20407c80 call bn_lshiftmod_256 
-7af8 da200826 arg mem_t2_256 ,rega 
-7af9 da4007e6 arg mem_t1_256 ,regb 
-7afa d8a00826 arg mem_t2_256 ,contw 
-7afb 20407c7d call bn_addmod_256 
-7afc da200826 arg mem_t2_256 ,rega 
-7afd da400846 arg mem_t3_256 ,regb 
-7afe d8a00826 arg mem_t2_256 ,contw 
-7aff 20407c7d call bn_addmod_256 
-7b00 d8c00706 arg mem_cx_256 ,contr 
-7b01 d8a007e6 arg mem_t1_256 ,contw 
-7b02 20407ebd call memcpy32 
-7b03 da200726 arg mem_cy_256 ,rega 
-7b04 d8a00846 arg mem_t3_256 ,contw 
-7b05 20407c79 call bn_sqrmod_256 
-7b06 da2007e6 arg mem_t1_256 ,rega 
-7b07 20407c80 call bn_lshiftmod_256 
-7b08 da2007e6 arg mem_t1_256 ,rega 
-7b09 20407c80 call bn_lshiftmod_256 
-7b0a da2007e6 arg mem_t1_256 ,rega 
-7b0b da400846 arg mem_t3_256 ,regb 
-7b0c d8a007e6 arg mem_t1_256 ,contw 
-7b0d 20407be1 call bn_mulmod_256 
-7b0e da200846 arg mem_t3_256 ,rega 
-7b0f d8a00806 arg mem_t0_256 ,contw 
-7b10 20407c79 call bn_sqrmod_256 
-7b11 da200806 arg mem_t0_256 ,rega 
-7b12 20407c80 call bn_lshiftmod_256 
-7b13 da200806 arg mem_t0_256 ,rega 
-7b14 20407c80 call bn_lshiftmod_256 
-7b15 da200806 arg mem_t0_256 ,rega 
-7b16 20407c80 call bn_lshiftmod_256 
-7b17 d8c00726 arg mem_cy_256 ,contr 
-7b18 d8a00846 arg mem_t3_256 ,contw 
-7b19 20407ebd call memcpy32 
-7b1a da200846 arg mem_t3_256 ,rega 
-7b1b 20407c80 call bn_lshiftmod_256 
-7b1c da200846 arg mem_t3_256 ,rega 
-7b1d da400746 arg mem_cz_256 ,regb 
-7b1e d8a00746 arg mem_cz_256 ,contw 
-7b1f 20407be1 call bn_mulmod_256 
-7b20 da200826 arg mem_t2_256 ,rega 
-7b21 d8a00846 arg mem_t3_256 ,contw 
-7b22 20407c79 call bn_sqrmod_256 
-7b23 da200846 arg mem_t3_256 ,rega 
-7b24 da4007e6 arg mem_t1_256 ,regb 
-7b25 d8a00846 arg mem_t3_256 ,contw 
-7b26 20407c96 call bn_submod_256 
-7b27 da200846 arg mem_t3_256 ,rega 
-7b28 da4007e6 arg mem_t1_256 ,regb 
-7b29 d8a00706 arg mem_cx_256 ,contw 
-7b2a 20407c96 call bn_submod_256 
-7b2b da2007e6 arg mem_t1_256 ,rega 
-7b2c da400706 arg mem_cx_256 ,regb 
-7b2d d8a00846 arg mem_t3_256 ,contw 
-7b2e 20407c96 call bn_submod_256 
-7b2f da200846 arg mem_t3_256 ,rega 
-7b30 da400826 arg mem_t2_256 ,regb 
-7b31 d8a00846 arg mem_t3_256 ,contw 
-7b32 20407be1 call bn_mulmod_256 
-7b33 da200846 arg mem_t3_256 ,rega 
-7b34 da400806 arg mem_t0_256 ,regb 
-7b35 d8a00726 arg mem_cy_256 ,contw 
-7b36 20207c96 branch bn_submod_256 
-
-ecadd_256:
-7b37 da200686 arg mem_az_256 ,rega 
-7b38 d8a00866 arg mem_t7_256 ,contw 
-7b39 20407c79 call bn_sqrmod_256 
-7b3a da200706 arg mem_cx_256 ,rega 
-7b3b da400866 arg mem_t7_256 ,regb 
-7b3c d8a00806 arg mem_t0_256 ,contw 
-7b3d 20407be1 call bn_mulmod_256 
-7b3e da200686 arg mem_az_256 ,rega 
-7b3f da400866 arg mem_t7_256 ,regb 
-7b40 d8a00866 arg mem_t7_256 ,contw 
-7b41 20407be1 call bn_mulmod_256 
-7b42 da200726 arg mem_cy_256 ,rega 
-7b43 da400866 arg mem_t7_256 ,regb 
-7b44 d8a007e6 arg mem_t1_256 ,contw 
-7b45 20407be1 call bn_mulmod_256 
-7b46 da200746 arg mem_cz_256 ,rega 
-7b47 d8a00866 arg mem_t7_256 ,contw 
-7b48 20407c79 call bn_sqrmod_256 
-7b49 da200646 arg mem_ax_256 ,rega 
-7b4a da400866 arg mem_t7_256 ,regb 
-7b4b d8a00826 arg mem_t2_256 ,contw 
-7b4c 20407be1 call bn_mulmod_256 
-7b4d da200746 arg mem_cz_256 ,rega 
-7b4e da400866 arg mem_t7_256 ,regb 
-7b4f d8a00866 arg mem_t7_256 ,contw 
-7b50 20407be1 call bn_mulmod_256 
-7b51 da200666 arg mem_ay_256 ,rega 
-7b52 da400866 arg mem_t7_256 ,regb 
-7b53 d8a00846 arg mem_t3_256 ,contw 
-7b54 20407be1 call bn_mulmod_256 
-7b55 da400806 arg mem_t0_256 ,regb 
-7b56 da200826 arg mem_t2_256 ,rega 
-7b57 d8a00866 arg mem_t7_256 ,contw 
-7b58 20407c96 call bn_submod_256 
-7b59 da200806 arg mem_t0_256 ,rega 
-7b5a da400826 arg mem_t2_256 ,regb 
-7b5b d8a00806 arg mem_t0_256 ,contw 
-7b5c 20407c7d call bn_addmod_256 
-7b5d da4007e6 arg mem_t1_256 ,regb 
-7b5e da200846 arg mem_t3_256 ,rega 
-7b5f d8a00826 arg mem_t2_256 ,contw 
-7b60 20407c96 call bn_submod_256 
-7b61 da2007e6 arg mem_t1_256 ,rega 
-7b62 da400846 arg mem_t3_256 ,regb 
-7b63 d8a007e6 arg mem_t1_256 ,contw 
-7b64 20407c7d call bn_addmod_256 
-7b65 da2007e6 arg mem_t1_256 ,rega 
-7b66 da400866 arg mem_t7_256 ,regb 
-7b67 d8a007e6 arg mem_t1_256 ,contw 
-7b68 20407be1 call bn_mulmod_256 
-7b69 da200746 arg mem_cz_256 ,rega 
-7b6a da400686 arg mem_az_256 ,regb 
-7b6b d8a00846 arg mem_t3_256 ,contw 
-7b6c 20407be1 call bn_mulmod_256 
-7b6d da200846 arg mem_t3_256 ,rega 
-7b6e da400866 arg mem_t7_256 ,regb 
-7b6f d8a00746 arg mem_cz_256 ,contw 
-7b70 20407be1 call bn_mulmod_256 
-7b71 da200866 arg mem_t7_256 ,rega 
-7b72 d8a00866 arg mem_t7_256 ,contw 
-7b73 20407c79 call bn_sqrmod_256 
-7b74 da200866 arg mem_t7_256 ,rega 
-7b75 da400806 arg mem_t0_256 ,regb 
-7b76 d8a00846 arg mem_t3_256 ,contw 
-7b77 20407be1 call bn_mulmod_256 
-7b78 da200866 arg mem_t7_256 ,rega 
-7b79 da4007e6 arg mem_t1_256 ,regb 
-7b7a d8a007e6 arg mem_t1_256 ,contw 
-7b7b 20407be1 call bn_mulmod_256 
-7b7c da200826 arg mem_t2_256 ,rega 
-7b7d d8a00706 arg mem_cx_256 ,contw 
-7b7e 20407c79 call bn_sqrmod_256 
-7b7f da200706 arg mem_cx_256 ,rega 
-7b80 da400846 arg mem_t3_256 ,regb 
-7b81 d8a00706 arg mem_cx_256 ,contw 
-7b82 20407c96 call bn_submod_256 
-7b83 d8c00706 arg mem_cx_256 ,contr 
-7b84 d8a00866 arg mem_t7_256 ,contw 
-7b85 20407ebd call memcpy32 
-7b86 da200866 arg mem_t7_256 ,rega 
-7b87 20407c80 call bn_lshiftmod_256 
-7b88 da200846 arg mem_t3_256 ,rega 
-7b89 da400866 arg mem_t7_256 ,regb 
-7b8a d8a00846 arg mem_t3_256 ,contw 
-7b8b 20407c96 call bn_submod_256 
-7b8c da200846 arg mem_t3_256 ,rega 
-7b8d da400826 arg mem_t2_256 ,regb 
-7b8e d8a00826 arg mem_t2_256 ,contw 
-7b8f 20407be1 call bn_mulmod_256 
-7b90 da200826 arg mem_t2_256 ,rega 
-7b91 da4007e6 arg mem_t1_256 ,regb 
-7b92 d8a00726 arg mem_cy_256 ,contw 
-7b93 20407c96 call bn_submod_256 
-7b94 da200726 arg mem_cy_256 ,rega 
-7b95 da40091e arg mem_p_256 ,regb 
-7b96 d8a00726 arg mem_cy_256 ,contw 
-7b97 18002600 force 0 ,regc 
-7b98 68008726 fetch 1 ,mem_cy_256 
-7b99 2feffe00 isolate1 0 ,pdata 
-7b9a 2040fc7b call bn_add_256 ,true 
-7b9b 1a626000 copy regc ,alarm 
-7b9c da200726 arg mem_cy_256 ,rega 
-7b9d 20407cab call bn_rshift_256 
-7b9e 68008745 fetch 1 ,mem_cy5_256 
-7b9f 2e0ffe00 isolate1 0 ,alarm 
-7ba0 7920fe07 setflag true ,7 ,pdata 
-7ba1 60008745 store 1 ,mem_cy5_256 
-7ba2 20600000 rtn 
-
-bn_invmod_256:
-7ba3 18a21600 copy contw ,timeup 
-7ba4 d8a00806 arg mem_tmp0_256 ,contw 
-7ba5 20407ed0 call clear_mem_256 
-7ba6 18007e00 force 0 ,pdata 
-7ba7 60020826 store 4 ,mem_t2_256 
-7ba8 70080601 jam 1 ,mem_tmp0_256 
-7ba9 d8a00786 arg mem_tmp1_256 ,contw 
-7baa 20407ed2 call clear_mem_512 
-7bab d8c0091e arg mem_p_256 ,contr 
-7bac d8a007c6 arg mem_tmp2_256 ,contw 
-7bad 20407ebd call memcpy32 
-7bae 1a220c00 copy rega ,contr 
-7baf d8a007e6 arg mem_tmp3_256 ,contw 
-7bb0 20407ebd call memcpy32 
-
-bn_invmod_256_2:
-7bb1 d8c007e6 arg mem_tmp3_256 ,contr 
-7bb2 20407cb5 call bn_eq_zero_256 
-7bb3 203a7bda branch bn_invmod_256_0 ,blank 
-7bb4 da2007e6 arg mem_tmp3_256 ,rega 
-7bb5 da400806 arg mem_tmp0_256 ,regb 
-7bb6 20407cb8 call bn_rshifteven_256 
-7bb7 da2007c6 arg mem_tmp2_256 ,rega 
-7bb8 da400786 arg mem_tmp1_256 ,regb 
-7bb9 20407cb8 call bn_rshifteven_256 
-7bba da2007e6 arg mem_tmp3_256 ,rega 
-7bbb da4007c6 arg mem_tmp2_256 ,regb 
-7bbc 20407cb1 call bn_bigeq_256 
-7bbd 20217bcc branch bn_invmod_256_1 ,positive 
-7bbe da2007c6 arg mem_tmp2_256 ,rega 
-7bbf da4007e6 arg mem_tmp3_256 ,regb 
-7bc0 1a220a00 copy rega ,contw 
-7bc1 20407ca9 call bn_sub_256 
-7bc2 da200806 arg mem_tmp0_256 ,rega 
-7bc3 da400786 arg mem_tmp1_256 ,regb 
-7bc4 1a420a00 copy regb ,contw 
-7bc5 20407c7b call bn_add_256 
-7bc6 ea208000 ifetch 1 ,rega 
-7bc7 9a60a600 iadd regc ,regc 
-7bc8 ea408000 ifetch 1 ,regb 
-7bc9 9a60fe00 iadd regc ,pdata 
-7bca e2408000 istore 1 ,regb 
-7bcb 20207bb1 branch bn_invmod_256_2 
-
-bn_invmod_256_1:
-7bcc da2007e6 arg mem_tmp3_256 ,rega 
-7bcd da4007c6 arg mem_tmp2_256 ,regb 
-7bce 1a220a00 copy rega ,contw 
-7bcf 20407ca9 call bn_sub_256 
-7bd0 da200786 arg mem_tmp1_256 ,rega 
-7bd1 da400806 arg mem_tmp0_256 ,regb 
-7bd2 1a420a00 copy regb ,contw 
-7bd3 20407c7b call bn_add_256 
-7bd4 ea208000 ifetch 1 ,rega 
-7bd5 9a60a600 iadd regc ,regc 
-7bd6 ea408000 ifetch 1 ,regb 
-7bd7 9a60fe00 iadd regc ,pdata 
-7bd8 e2408000 istore 1 ,regb 
-7bd9 20207bb1 branch bn_invmod_256_2 
-
-bn_invmod_256_0:
-7bda da200786 arg mem_tmp1_256 ,rega 
-7bdb 19620a00 copy timeup ,contw 
-7bdc 20407c0a call bn_p256mod 
-7bdd da20091e arg mem_p_256 ,rega 
-7bde 19622400 copy timeup ,regb 
-7bdf 19620a00 copy timeup ,contw 
-7be0 20207c96 branch bn_submod_256 
-
-bn_mulmod_256:
-7be1 18a21600 copy contw ,timeup 
-7be2 18007000 force 0 ,regext_index 
-7be3 d8a00786 arg mem_tmp1_256 ,contw 
-7be4 20407ed2 call clear_mem_512 
-7be5 d8a00ad2 arg mem_regext ,contw 
-7be6 20407ed2 call clear_mem_512 
-7be7 1a220c00 copy rega ,contr 
-7be8 700ad200 jam 0 ,mem_regext 
-7be9 58000000 setarg 0 
-7bea 20407c73 call bn_load_mem 
-7beb 1a420c00 copy regb ,contr 
-7bec 20407c77 call bn_load_256 
-7bed 18000e00 force 0 ,queue 
-7bee d8a00786 arg mem_tmp1_256 ,contw 
-
-bn_mulmod_256_1:
-7bef d8400ad2 arg mem_regext ,temp 
-7bf0 18e22400 copy queue ,regb 
-7bf1 1a4bfe00 lshift2 regb ,pdata 
-7bf2 9840a400 iadd temp ,regb 
-7bf3 18000400 force 0 ,temp 
-7bf4 18002600 force 0 ,regc 
-
-bn_mulmod_256_0:
-7bf5 e8a20000 ifetch 4 ,contw 
-7bf6 98002200 iforce rega 
-7bf7 ea420000 ifetch 4 ,regb 
-7bf8 1a627000 copy regc ,regext_index 
-7bf9 9deffe00 imul32 regext ,pdata 
-7bfa 9a20fe00 iadd rega ,pdata 
-7bfb 9840fe00 iadd temp ,pdata 
-7bfc e0a20000 istore 4 ,contw 
-7bfd 1fef0400 rshift32 pdata ,temp 
-7bfe 1a60a601 increase 1 ,regc 
-7bff 2a61fe08 compare 8 ,regc ,0xff 
-7c00 2420fbf5 nbranch bn_mulmod_256_0 ,true 
-7c01 18427e00 deposit temp 
-7c02 e0a20000 istore 4 ,contw 
-7c03 18a08be0 increase -32 ,contw 
-7c04 18e08e01 increase 1 ,queue 
-7c05 28e1fe08 compare 8 ,queue ,0xff 
-7c06 2420fbef nbranch bn_mulmod_256_1 ,true 
-7c07 da200786 arg mem_tmp1_256 ,rega 
-7c08 19620a00 copy timeup ,contw 
-7c09 20207c0a branch bn_p256mod 
-
-bn_p256mod:
-7c0a 4779403e bpatchx patch3e_2 ,mem_patch3e 
-7c0b 18a21600 copy contw ,timeup 
-7c0c 1a226000 copy rega ,alarm 
-7c0d da4007c6 arg mem_tmp2_256 ,regb 
-7c0e 1a420a00 copy regb ,contw 
-7c0f 20407ecd call memset0_4 
-7c10 e0a40000 istore 8 ,contw 
-7c11 1a208c2c add rega ,44 ,contr 
-7c12 20407eb9 call memcpy8 
-7c13 20407eb5 call memcpy12 
-7c14 1a422200 copy regb ,rega 
-7c15 20407c80 call bn_lshiftmod_256 
-7c16 da4007c6 arg mem_tmp2_256 ,regb 
-7c17 1e022200 copy alarm ,rega 
-7c18 19620a00 copy timeup ,contw 
-7c19 20407c7d call bn_addmod_256 
-7c1a da4007c6 arg mem_tmp2_256 ,regb 
-7c1b 1a420a00 copy regb ,contw 
-7c1c 20407ecd call memset0_4 
-7c1d e0a40000 istore 8 ,contw 
-7c1e 1e008c30 add alarm ,48 ,contr 
-7c1f 20407ebf call memcpy16 
-7c20 20407ecd call memset0_4 
-7c21 1a422200 copy regb ,rega 
-7c22 20407c80 call bn_lshiftmod_256 
-7c23 da4007c6 arg mem_tmp2_256 ,regb 
-7c24 19622200 copy timeup ,rega 
-7c25 1a220a00 copy rega ,contw 
-7c26 20407c7d call bn_addmod_256 
-7c27 da4007c6 arg mem_tmp2_256 ,regb 
-7c28 1a420a00 copy regb ,contw 
-7c29 1e008c20 add alarm ,32 ,contr 
-7c2a 20407eb5 call memcpy12 
-7c2b 20407ecd call memset0_4 
-7c2c e0a40000 istore 8 ,contw 
-7c2d 1e008c38 add alarm ,56 ,contr 
-7c2e 20407eb9 call memcpy8 
-7c2f 19622200 copy timeup ,rega 
-7c30 1a220a00 copy rega ,contw 
-7c31 20407c7d call bn_addmod_256 
-7c32 da4007c6 arg mem_tmp2_256 ,regb 
-7c33 1a420a00 copy regb ,contw 
-7c34 1e008c24 add alarm ,36 ,contr 
-7c35 20407eb5 call memcpy12 
-7c36 1e008c34 add alarm ,52 ,contr 
-7c37 20407eb5 call memcpy12 
-7c38 1e008c34 add alarm ,52 ,contr 
-7c39 20407eb6 call memcpy4 
-7c3a 1e008c20 add alarm ,32 ,contr 
-7c3b 20407eb6 call memcpy4 
-7c3c 19622200 copy timeup ,rega 
-7c3d 1a220a00 copy rega ,contw 
-7c3e 20407c7d call bn_addmod_256 
-7c3f da4007c6 arg mem_tmp2_256 ,regb 
-7c40 1a420a00 copy regb ,contw 
-7c41 1e008c2c add alarm ,44 ,contr 
-7c42 20407eb5 call memcpy12 
-7c43 20407ecd call memset0_4 
-7c44 e0a40000 istore 8 ,contw 
-7c45 1e008c20 add alarm ,32 ,contr 
-7c46 20407eb6 call memcpy4 
-7c47 1e008c28 add alarm ,40 ,contr 
-7c48 20407eb6 call memcpy4 
-7c49 19622200 copy timeup ,rega 
-7c4a 1a220a00 copy rega ,contw 
-7c4b 20407c96 call bn_submod_256 
-7c4c da4007c6 arg mem_tmp2_256 ,regb 
-7c4d 1a420a00 copy regb ,contw 
-7c4e 1e008c30 add alarm ,48 ,contr 
-7c4f 20407eb9 call memcpy8 
-7c50 20407eb9 call memcpy8 
-7c51 18007e00 force 0 ,pdata 
-7c52 e0a40000 istore 8 ,contw 
-7c53 1e008c24 add alarm ,36 ,contr 
-7c54 20407eb6 call memcpy4 
-7c55 1e008c2c add alarm ,44 ,contr 
-7c56 20407eb6 call memcpy4 
-7c57 19622200 copy timeup ,rega 
-7c58 1a220a00 copy rega ,contw 
-7c59 20407c96 call bn_submod_256 
-7c5a da4007c6 arg mem_tmp2_256 ,regb 
-7c5b 1a420a00 copy regb ,contw 
-7c5c 1e008c34 add alarm ,52 ,contr 
-7c5d 20407eb5 call memcpy12 
-7c5e 1e008c20 add alarm ,32 ,contr 
-7c5f 20407eb5 call memcpy12 
-7c60 20407ecd call memset0_4 
-7c61 1e008c30 add alarm ,48 ,contr 
-7c62 20407eb6 call memcpy4 
-7c63 19622200 copy timeup ,rega 
-7c64 1a220a00 copy rega ,contw 
-7c65 20407c96 call bn_submod_256 
-7c66 da4007c6 arg mem_tmp2_256 ,regb 
-7c67 1a420a00 copy regb ,contw 
-7c68 1e008c38 add alarm ,56 ,contr 
-7c69 20407eb9 call memcpy8 
-7c6a 20407ecd call memset0_4 
-7c6b 1e008c24 add alarm ,36 ,contr 
-7c6c 20407eb5 call memcpy12 
-7c6d 20407ecd call memset0_4 
-7c6e 1e008c34 add alarm ,52 ,contr 
-7c6f 20407eb6 call memcpy4 
-7c70 19622200 copy timeup ,rega 
-7c71 1a220a00 copy rega ,contw 
-7c72 20207c96 branch bn_submod_256 
-
-bn_load_mem:
-7c73 18007220 force 32 ,loopcnt 
-7c74 d8a00ad2 arg mem_regext ,contw 
-7c75 98a08a00 iadd contw ,contw 
-7c76 20207f01 branch memcpy 
-
-bn_load_256:
-7c77 18007208 force 8 ,loopcnt 
-7c78 20207781 branch bn_load_0 
-
-bn_sqrmod_256:
-7c79 1a222400 copy rega ,regb 
-7c7a 20207be1 branch bn_mulmod_256 
-
-bn_add_256:
-7c7b 18007208 force 8 ,loopcnt 
-7c7c 20207712 branch bn_add + 1 
-
-bn_addmod_256:
-7c7d 20407c7b call bn_add_256 
-7c7e 18a22200 copy contw ,rega 
-7c7f 20207c81 branch bn_lshiftmod_ismod_256 
-
-bn_lshiftmod_256:
-7c80 20407cae call bn_lshift_256 
-
-bn_lshiftmod_ismod_256:
-7c81 2a6ffe00 isolate1 0 ,regc 
-7c82 2020fc8a branch bn_lshiftmod_p_256 ,true 
-7c83 da40091e arg mem_p_256 ,regb 
-7c84 1a222600 copy rega ,regc 
-7c85 1a20a3e0 increase -32 ,rega 
-7c86 20407cb1 call bn_bigeq_256 
-7c87 24610000 nrtn positive 
-7c88 1a622200 copy regc ,rega 
-7c89 20207c92 branch sub_p2_256 
-
-bn_lshiftmod_p_256:
-7c8a 20407c92 call sub_p2_256 
-7c8b 1a222600 copy rega ,regc 
-7c8c 1a20a3e0 increase -32 ,rega 
-7c8d da40091e arg mem_p_256 ,regb 
-7c8e 20407cb1 call bn_bigeq_256 
-7c8f 24610000 nrtn positive 
-7c90 1a622200 copy regc ,rega 
-7c91 20207c92 branch sub_p2_256 
-
-sub_p2_256:
-7c92 1a20a3e0 increase -32 ,rega 
-7c93 da40091e arg mem_p_256 ,regb 
-7c94 1a220a00 copy rega ,contw 
-7c95 20207ca9 branch bn_sub_256 
-
-bn_submod_256:
-7c96 20407ca9 call bn_sub_256 
-7c97 2020fca0 branch bn_submod_256_np ,true 
-7c98 18a0a3e0 add contw ,-32 ,rega 
-7c99 da40091e arg mem_p_256 ,regb 
-7c9a 20407cb1 call bn_bigeq_256 
-7c9b 24610000 nrtn positive 
-7c9c da40091e arg mem_p_256 ,regb 
-7c9d 18a0a3e0 add contw ,-32 ,rega 
-7c9e 1a220a00 copy rega ,contw 
-7c9f 20207ca9 branch bn_sub_256 
-
-bn_submod_256_np:
-7ca0 18a0a3e0 add contw ,-32 ,rega 
-7ca1 da40091e arg mem_p_256 ,regb 
-7ca2 1a220a00 copy rega ,contw 
-7ca3 20407c7b call bn_add_256 
-7ca4 20608000 rtn true 
-7ca5 18a0a3e0 add contw ,-32 ,rega 
-7ca6 da40091e arg mem_p_256 ,regb 
-7ca7 1a220a00 copy rega ,contw 
-7ca8 20207c7b branch bn_add_256 
-
-bn_sub_256:
-7ca9 18007208 force 8 ,loopcnt 
-7caa 20207720 branch bn_sub + 1 
-
-bn_rshift_256:
-7cab 18007208 force 8 ,loopcnt 
-7cac 1a20a21c increase 28 ,rega 
-7cad 2020772f branch bn_rshift 
-
-bn_lshift_256:
-7cae 18007208 force 8 ,loopcnt 
-7caf 18002600 force 0 ,regc 
-7cb0 2020773d branch bn_lshift_0 
-
-bn_bigeq_256:
-7cb1 18007208 force 8 ,loopcnt 
-7cb2 1a20a21c increase 28 ,rega 
-7cb3 1a40a41c increase 28 ,regb 
-7cb4 20207707 branch bn_bigeq_0 
-
-bn_eq_zero_256:
-7cb5 e8c40000 ifetch 8 ,contr 
-7cb6 247a0000 nrtn blank 
-7cb7 202076f5 branch bn_eq_zero 
-
-bn_rshifteven_256:
-7cb8 1a226000 copy rega ,alarm 
-
-bn_rshifteven_256_1:
-7cb9 1e022200 copy alarm ,rega 
-7cba ea208000 ifetch 1 ,rega 
-7cbb 2feffe00 isolate1 0 ,pdata 
-7cbc 20608000 rtn true 
-7cbd 20407cab call bn_rshift_256 
-7cbe ea408000 ifetch 1 ,regb 
-7cbf 2fec0000 isolate0 0 ,pdata 
-7cc0 2020fcc8 branch bn_rshifteven_256_0 ,true 
-7cc1 da20091e arg mem_p_256 ,rega 
-7cc2 1a420a00 copy regb ,contw 
-7cc3 20407c7b call bn_add_256 
-7cc4 ea408000 ifetch 1 ,regb 
-7cc5 9a60fe00 iadd regc ,pdata 
-7cc6 e2408000 istore 1 ,regb 
-7cc7 1a40a5e0 increase -32 ,regb 
-
-bn_rshifteven_256_0:
-7cc8 1a40a220 add regb ,32 ,rega 
-7cc9 18007209 force 9 ,loopcnt 
-7cca 2040772f call bn_rshift 
-7ccb 20207cb9 branch bn_rshifteven_256_1 
-
-ui_init:
-7ccc 20402c65 call lpm_disable_exen_output 
-7ccd 20758000 rtn wake 
-7cce 20407cd3 call ui_button_init 
-7ccf 20407d75 call ui_timer_init 
-7cd0 20207d08 branch ui_led_init_global 
-
-ui_dispatch:
-7cd1 20407d29 call ui_led_dispatch 
-7cd2 20207d64 branch ui_timer_check 
-
-ui_button_init:
-7cd3 6800c686 fetch 1 ,mem_ui_button_gpio 
-7cd4 c17f8000 rtneq ui_button_gpio_disable 
-7cd5 98000400 iforce temp 
-7cd6 2040680e call gpio_config_output 
-7cd7 6808c686 fetcht 1 ,mem_ui_button_gpio 
-7cd8 20406825 call gpio_out_inactive 
-7cd9 20000064 nop 100 
-7cda 6808c686 fetcht 1 ,mem_ui_button_gpio 
-7cdb 204067fb call gpio_config_input 
-7cdc 20207cdd branch ui_button_polling 
-
-ui_button_polling:
-7cdd 4779c03e bpatchx patch3e_3 ,mem_patch3e 
-7cde 6800c686 fetch 1 ,mem_ui_button_gpio 
-7cdf c17f8000 rtneq ui_button_gpio_disable 
-7ce0 1fe20400 copy pdata ,temp 
-7ce1 2040681d call gpio_get_bit 
-7ce2 2420fcef nbranch ui_button_up ,true 
-
-ui_button_down:
-7ce3 20407cf9 call ui_button_check_long_press 
-7ce4 68014682 fetch 2 ,mem_ui_state_map 
-7ce5 79207e0c set1 ui_state_btn_down 
-7ce6 60014682 store 2 ,mem_ui_state_map 
-7ce7 6800c679 fetch 1 ,mem_ui_button_last_state 
-7ce8 c1000000 rtneq ui_button_state_down 
-7ce9 70467900 jam ui_button_state_down ,mem_ui_button_last_state 
-7cea 6800c685 fetch 1 ,mem_ui_button_timeout 
-7ceb 6000c678 store 1 ,mem_ui_button_timer 
-7cec 20407d00 call lpm_button_get_wake_lock 
-7ced 700a992c jam bt_evt_button_down ,mem_fifo_temp 
-7cee 20207d86 branch ui_ipc_send_event 
-
-ui_button_up:
-7cef 68014682 fetch 2 ,mem_ui_state_map 
-7cf0 793ffe0c set0 ui_state_btn_down 
-7cf1 60014682 store 2 ,mem_ui_state_map 
-7cf2 6800c679 fetch 1 ,mem_ui_button_last_state 
-7cf3 c1008000 rtneq ui_button_state_up 
-7cf4 70467901 jam ui_button_state_up ,mem_ui_button_last_state 
-7cf5 70467800 jam 0 ,mem_ui_button_timer 
-7cf6 20407d02 call lpm_button_clean_wake_lock 
-7cf7 700a992d jam bt_evt_button_up ,mem_fifo_temp 
-7cf8 20207d86 branch ui_ipc_send_event 
-
-ui_button_check_long_press:
-7cf9 6800c678 fetch 1 ,mem_ui_button_timer 
-7cfa 207a0000 rtn blank 
-7cfb 1fe0ffff increase -1 ,pdata 
-7cfc 6000c678 store 1 ,mem_ui_button_timer 
-7cfd 247a0000 nrtn blank 
-7cfe 700a9910 jam bt_evt_button_long_pressed ,mem_fifo_temp 
-7cff 20207d86 branch ui_ipc_send_event 
-
-lpm_button_get_wake_lock:
-7d00 d8e00007 arg wake_lock_button ,queue 
-7d01 20202c32 branch lpm_get_wake_lock 
-
-lpm_button_clean_wake_lock:
-7d02 d8e00007 arg wake_lock_button ,queue 
-7d03 20202c36 branch lpm_put_wake_lock 
-
-calc_curr_struct_prt:
-7d04 6801421b fetch 2 ,mem_ui_led_struct_ptr 
-7d05 1a2fa40b mul32 rega ,led_offset_length ,regb 
-7d06 9a40a400 iadd regb ,regb 
-7d07 20600000 rtn 
-
-ui_led_init_global:
-7d08 6800c21a fetch 1 ,mem_ui_led_struct_num 
-7d09 207a0000 rtn blank 
-7d0a 1fe27200 copy pdata ,loopcnt 
-7d0b 6801421b fetch 2 ,mem_ui_led_struct_ptr 
-7d0c 1fe22400 copy pdata ,regb 
-
-ui_led_init_loop:
-7d0d 1a40a602 add regb ,led_offset_led_gpio ,regc 
-7d0e ea688000 ifetcht 1 ,regc 
-7d0f 2040680e call gpio_config_output 
-7d10 20407d32 call ui_led_off_static 
-7d11 1a40a40b increase led_offset_length ,regb 
-7d12 c2007d0d loop ui_led_init_loop 
-7d13 20600000 rtn 
-
-ui_led_on_global:
-7d14 20407d04 call calc_curr_struct_prt 
-7d15 58000002 setarg ui_led_state_lighting 
-7d16 e2408000 istore 1 ,regb 
-7d17 20407d5e call ui_led_stop_timer 
-7d18 20207d35 branch ui_led_on_static 
-
-ui_led_blink_stop_global:
-
-ui_led_off_global:
-7d19 20407d04 call calc_curr_struct_prt 
-7d1a 58000003 setarg ui_led_state_darking 
-7d1b e2408000 istore 1 ,regb 
-7d1c 20407d5e call ui_led_stop_timer 
-7d1d 20207d32 branch ui_led_off_static 
-
-ui_led_blink_start_global:
-7d1e 20407d04 call calc_curr_struct_prt 
-7d1f 58000001 setarg ui_led_state_blink_start 
-7d20 e2408000 istore 1 ,regb 
-7d21 580000ff setarg led_infinite_flash_num 
-7d22 e0a08000 istore 1 ,contw 
-7d23 20207d32 branch ui_led_off_static 
-
-ui_led_set_style_global:
-7d24 20407d04 call calc_curr_struct_prt 
-7d25 df20000b arg led_offset_length ,loopcnt 
-7d26 1a620c00 copy regc ,contr 
-7d27 1a420a00 copy regb ,contw 
-7d28 20207ef4 branch memcpy_fast 
-
-ui_led_dispatch:
-7d29 6800c21a fetch 1 ,mem_ui_led_struct_num 
-7d2a 207a0000 rtn blank 
-7d2b da200000 arg 0 ,rega 
-
-ui_led_blink_polling:
-7d2c 20407d38 call ui_led_change_style_by_type 
-7d2d 1a20a201 increase 1 ,rega 
-7d2e 6800c21a fetch 1 ,mem_ui_led_struct_num 
-7d2f 9a267c00 isub rega ,null 
-7d30 20628000 rtn zero 
-7d31 20207d2c branch ui_led_blink_polling 
-
-ui_led_off_static:
-7d32 1a40a602 add regb ,led_offset_led_gpio ,regc 
-7d33 ea688000 ifetcht 1 ,regc 
-7d34 20206825 branch gpio_out_inactive 
-
-ui_led_on_static:
-7d35 1a40a602 add regb ,led_offset_led_gpio ,regc 
-7d36 ea688000 ifetcht 1 ,regc 
-7d37 20206829 branch gpio_out_active 
-
-ui_led_change_style_by_type:
-7d38 1a208e0b add rega ,ui_led_blink ,queue 
-7d39 20407f16 call timer_check 
-7d3a 247a0000 nrtn blank 
-7d3b 20407d04 call calc_curr_struct_prt 
-7d3c ea408000 ifetch 1 ,regb 
-7d3d c0017d35 beq ui_led_state_lighting ,ui_led_on_static 
-7d3e c001fd32 beq ui_led_state_darking ,ui_led_off_static 
-7d3f c0007d32 beq ui_led_state_blink_stop ,ui_led_off_static 
-7d40 c002fd4c beq ui_led_state_blink_darking ,ui_led_blink_state_darking 
-
-ui_led_blink_state_lighting:
-7d41 20407d35 call ui_led_on_static 
-7d42 1a40a607 add regb ,led_offset_cb_ledon ,regc 
-7d43 20407e7c call push_stack 
-7d44 ea610000 ifetch 2 ,regc 
-7d45 20407f9c call callback_func 
-7d46 20407e8c call pop_stack 
-7d47 58000005 setarg ui_led_state_blink_darking 
-7d48 e2408000 istore 1 ,regb 
-7d49 1a40a603 add regb ,led_offset_on_time ,regc 
-7d4a ea610000 ifetch 2 ,regc 
-7d4b 20207d5c branch ui_led_blink_timer_start 
-
-ui_led_blink_state_darking:
-7d4c 20407d32 call ui_led_off_static 
-7d4d 1a40a609 add regb ,led_offset_cb_ledoff ,regc 
-7d4e 20407e7c call push_stack 
-7d4f ea610000 ifetch 2 ,regc 
-7d50 20407f9c call callback_func 
-7d51 20407e8c call pop_stack 
-7d52 1a40a601 add regb ,led_offset_blink_count ,regc 
-7d53 ea608000 ifetch 1 ,regc 
-7d54 c07ffd58 beq led_infinite_flash_num ,ui_led_blink_infinite 
-7d55 1fe0ffff increase -1 ,pdata 
-7d56 e2608000 istore 1 ,regc 
-7d57 203a7d19 branch ui_led_blink_stop_global ,blank 
-
-ui_led_blink_infinite:
-7d58 58000004 setarg ui_led_state_blink_lighting 
-7d59 e2408000 istore 1 ,regb 
-7d5a 1a40a605 add regb ,led_offset_off_time ,regc 
-7d5b ea610000 ifetch 2 ,regc 
-
-ui_led_blink_timer_start:
-7d5c 1a208e0b add rega ,ui_led_blink ,queue 
-7d5d 20207f08 branch timer_init 
-
-ui_led_stop_timer:
-7d5e 58000000 setarg 0 
-7d5f 20207d5c branch ui_led_blink_timer_start 
-
-ui_timer_timeout:
-7d60 58001000 setarg 0x1000 
-7d61 1ff07e00 lshift16 pdata ,pdata 
-7d62 9a40a400 iadd regb ,regb 
-7d63 20600000 rtn 
-
-ui_timer_check:
-7d64 477a403e bpatchx patch3e_4 ,mem_patch3e 
-7d65 da200000 arg 0 ,rega 
-7d66 680a467a fetcht 4 ,mem_ui_timer_last_btclk 
-7d67 1c422400 copy clkn_bt ,regb 
-7d68 1a427e00 copy regb ,pdata 
-7d69 98467c00 isub temp ,null 
-7d6a 24417d60 ncall ui_timer_timeout ,positive 
-
-ui_timer_check_loop:
-7d6b 1a427e00 copy regb ,pdata 
-7d6c 184084a0 increase 160 ,temp 
-7d6d 184084a0 increase 160 ,temp 
-7d6e 98467c00 isub temp ,null 
-7d6f 24217d78 nbranch ui_timer_check_end ,positive 
-7d70 1a20a201 increase 1 ,rega 
-7d71 1a217e0f and rega ,0x0f ,pdata 
-7d72 243a7d6b nbranch ui_timer_check_loop ,blank 
-7d73 da200000 arg 0 ,rega 
-7d74 20407d7f call ui_timer_check_send_evt 
-
-ui_timer_init:
-7d75 1c427e00 copy clkn_bt ,pdata 
-7d76 6002467a store 4 ,mem_ui_timer_last_btclk 
-7d77 20600000 rtn 
-
-ui_timer_check_end:
-7d78 477ac03e bpatchx patch3e_5 ,mem_patch3e 
-7d79 1a227e00 copy rega ,pdata 
-7d7a 207a0000 rtn blank 
-7d7b 18408560 increase -160 ,temp 
-7d7c 18408560 increase -160 ,temp 
-7d7d 793f841c set0 28 ,temp 
-7d7e 600a467a storet 4 ,mem_ui_timer_last_btclk 
-
-ui_timer_check_send_evt:
-7d7f 2020335f branch app_evt_timer 
-
-ui_ipc_get_lock:
-7d80 70466601 jam 1 ,mem_ipc_lock_bt 
-
-ui_ipc_get_lock_wait:
-7d81 6800c667 fetch 1 ,mem_ipc_lock_c51 
-7d82 243a7d81 nbranch ui_ipc_get_lock_wait ,blank 
-7d83 20600000 rtn 
-
-ui_ipc_put_lock:
-7d84 70466600 jam 0 ,mem_ipc_lock_bt 
-7d85 20600000 rtn 
-
-ui_ipc_send_event:
-7d86 477b403e bpatchx patch3e_6 ,mem_patch3e 
-7d87 20407d80 call ui_ipc_get_lock 
-7d88 1a227e00 copy rega ,pdata 
-7d89 60020a91 store 4 ,mem_ipc_rega_temp 
-7d8a da204668 arg mem_ipc_fifo_bt2c51 ,rega 
-7d8b 20407fb8 call fifo_in 
-7d8c 68020a91 fetch 4 ,mem_ipc_rega_temp 
-7d8d 1fe22200 copy pdata ,rega 
-7d8e 20207d84 branch ui_ipc_put_lock 
-
-ui_ipc_send_cmd:
-7d8f 477bc03e bpatchx patch3e_7 ,mem_patch3e 
-7d90 20407d80 call ui_ipc_get_lock 
-7d91 1a227e00 copy rega ,pdata 
-7d92 60020a91 store 4 ,mem_ipc_rega_temp 
-7d93 da204670 arg mem_ipc_fifo_c512bt ,rega 
-7d94 20407fb8 call fifo_in 
-7d95 68020a91 fetch 4 ,mem_ipc_rega_temp 
-7d96 1fe22200 copy pdata ,rega 
-7d97 20207d84 branch ui_ipc_put_lock 
-
-ui_ipc_clean_all_fifo:
-7d98 58000000 setarg 0 
-7d99 60044670 store util_fifo_len ,mem_ipc_fifo_c512bt 
-7d9a 60044668 store util_fifo_len ,mem_ipc_fifo_bt2c51 
-7d9b 20600000 rtn 
-
-check_51cmd:
-7d9c 477c403f bpatchx patch3f_0 ,mem_patch3f 
-7d9d 6800c1ce fetch 1 ,mem_hci_cmd 
-7d9e 247a0000 nrtn blank 
-7d9f da204670 arg mem_ipc_fifo_c512bt ,rega 
-7da0 20407fd0 call fifo_is_empty 
-7da1 207a0000 rtn blank 
-7da2 700a9000 jam ipc_continue_process ,mem_ipc_skip_continue_proc 
-7da3 20407da7 call check_51cmd_once 
-7da4 68008a90 fetch 1 ,mem_ipc_skip_continue_proc 
-7da5 203a7d9c branch check_51cmd ,blank 
-7da6 20600000 rtn 
-
-check_51cmd_once:
-7da7 20407d80 call ui_ipc_get_lock 
-7da8 da204670 arg mem_ipc_fifo_c512bt ,rega 
-7da9 20407fc4 call fifo_out 
-7daa 1fe20400 copy pdata ,temp 
-7dab 20407d84 call ui_ipc_put_lock 
-7dac 477cc03f bpatchx patch3f_1 ,mem_patch3f 
-7dad 18427e00 copy temp ,pdata 
-7dae 207a0000 rtn blank 
-7daf c000fddd beq bt_cmd_start_discovery ,check_51cmd_start_discovery 
-7db0 c0017de2 beq bt_cmd_stop_discovery ,check_51cmd_stop_discovery 
-7db1 c001fde8 beq bt_cmd_reconnect ,check_51cmd_reconnect 
-7db2 c003fded beq bt_cmd_enter_sniff_subrating ,check_51cmd_enter_sniff_subrating 
-7db3 c0047dee beq bt_cmd_exit_sniff_subrating ,check_51cmd_exit_sniff_subrating 
-7db4 c004fdef beq bt_cmd_sniff_test ,check_51cmd_sniff_test 
-7db5 c005fdf2 beq bt_cmd_start_inquiry ,check_51cmd_inq 
-7db6 c0067df3 beq bt_cmd_stop_inquiry ,check_51cmd_stop_inq 
-7db7 c006fdf4 beq bt_cmd_start_adv ,check_51cmd_adv 
-7db8 c0077dfa beq bt_cmd_stop_adv ,check_51cmd_stop_adv 
-7db9 c007fdff beq bt_cmd_start_direct_adv ,check_51cmd_direct_adv 
-7dba c0087e05 beq bt_cmd_stop_direct_adv ,check_51cmd_stop_direct_adv 
-7dbb c009fe0f beq bt_cmd_led_off ,check_51cmd_led_off 
-7dbc c00a7e11 beq bt_cmd_led_on ,check_51cmd_led_on 
-7dbd c00afe13 beq bt_cmd_led_blink ,check_51cmd_led_start_blink 
-7dbe c00b7e15 beq bt_cmd_le_start_conn ,check_51cmd_le_start_con 
-7dbf c00bfe18 beq bt_cmd_le_start_scan ,check_51cmd_start_scan 
-7dc0 c00c7e1a beq bt_cmd_le_stop_scan ,check_51cmd_stop_scan 
-7dc1 c00cfe1d beq bt_cmd_enter_hibernate ,check_51cmd_hibernate 
-7dc2 c00dfe25 beq bt_cmd_le_smp_security_request ,check_51cmd_le_smp_sec_req 
-7dc3 c00f7e2f beq bt_cmd_bb_reconn_cancel ,check_51cmd_bb_reconn_cancel 
-7dc4 60008a99 store 1 ,mem_fifo_temp 
-7dc5 477d403f bpatchx patch3f_2 ,mem_patch3f 
-7dc6 204062bc call lmo_fifo_check 
-7dc7 243a7ddb nbranch check_51cmd_restore ,blank 
-
-check_51cmd_once_continue:
-7dc8 68008a99 fetch 1 ,mem_fifo_temp 
-7dc9 c584fdd6 bmark0 mark_context ,check_51cmd_check_idle 
-7dca c0027dea beq bt_cmd_disconnect ,check_51cmd_disconnect 
-7dcb c002cd17 beq bt_cmd_enter_sniff ,cmd_in_sniff 
-7dcc c0034d26 beq bt_cmd_exit_sniff ,cmd_exit_sniff 
-7dcd c0057df0 beq bt_cmd_set_pin_code ,check_51cmd_pincode 
-7dce c008fe0a beq bt_cmd_le_disconnect ,check_51cmd_le_disconnect 
-7dcf c0097e0e beq bt_cmd_le_update_conn ,check_51cmd_ble_update_connect_param 
-7dd0 c00efe26 beq bt_cmd_role_switch ,check_51cmd_role_switch 
-7dd1 c00fe7cc beq bt_cmd_store_reconn_info_le ,eeprom_store_le_reconn_info 
-7dd2 c01067d0 beq bt_cmd_store_reconn_info_bt ,eeprom_store_bd_reconn_info 
-7dd3 c010fe31 beq bt_cmd_dhkey_not_accept ,check_51cmd_dhkey_not_accept 
-7dd4 c012e70b beq bt_cmd_store_reconn_info ,check_51cmd_store_reconn_info 
-7dd5 20600000 rtn 
-
-check_51cmd_check_idle:
-7dd6 60008a99 store 1 ,mem_fifo_temp 
-7dd7 20402252 call context_check_idle 
-7dd8 2022fddb branch check_51cmd_restore ,zero 
-7dd9 2040225a call context_search_plap 
-7dda 24628000 nrtn zero 
-
-check_51cmd_restore:
-7ddb 700a9001 jam ipc_skip_continue_process ,mem_ipc_skip_continue_proc 
-7ddc 20207d8f branch ui_ipc_send_cmd 
-
-check_51cmd_start_discovery:
-7ddd 68014682 fetch 2 ,mem_ui_state_map 
-7dde 79207e06 set1 ui_state_bt_discovery 
-7ddf 60014682 store 2 ,mem_ui_state_map 
-7de0 70409303 jam 3 ,mem_scan_mode 
-7de1 20600000 rtn 
-
-check_51cmd_stop_discovery:
-7de2 70468000 jam 0 ,mem_hid_handshake_timer_count 
-7de3 70409300 jam 0 ,mem_scan_mode 
-7de4 68014682 fetch 2 ,mem_ui_state_map 
-7de5 793ffe06 set0 ui_state_bt_discovery 
-7de6 60014682 store 2 ,mem_ui_state_map 
-7de7 20600000 rtn 
-
-check_51cmd_reconnect:
-7de8 7041ce05 jam hci_cmd_create_conn ,mem_hci_cmd 
-7de9 20600000 rtn 
-
-check_51cmd_disconnect:
-7dea 70007c07 jam lmp_detach ,mem_lmo_opcode2 
-7deb 7004ca13 jam other_end_terminated ,mem_disconn_reason_send 
-7dec 20600000 rtn 
-
-check_51cmd_enter_sniff_subrating:
-7ded 20600000 rtn 
-
-check_51cmd_exit_sniff_subrating:
-7dee 20600000 rtn 
-
-check_51cmd_sniff_test:
-7def 20600000 rtn 
-
-check_51cmd_pincode:
-7df0 7004d402 jam pincode_state_pincode_ready ,mem_pincode_state 
-7df1 20204d0a branch cmd_pair 
-
-check_51cmd_inq:
-7df2 20600000 rtn 
-
-check_51cmd_stop_inq:
-7df3 20600000 rtn 
-
-check_51cmd_adv:
-7df4 70436e01 jam on ,mem_le_adv_enable 
-7df5 70448400 jam adv_ind ,mem_le_adv_type 
-7df6 68014682 fetch 2 ,mem_ui_state_map 
-7df7 79207e0b set1 ui_state_ble_adv ,pdata 
-7df8 60014682 store 2 ,mem_ui_state_map 
-7df9 20600000 rtn 
-
-check_51cmd_stop_adv:
-7dfa 68014682 fetch 2 ,mem_ui_state_map 
-7dfb 793ffe0b set0 ui_state_ble_adv ,pdata 
-7dfc 60014682 store 2 ,mem_ui_state_map 
-7dfd 70436e00 jam off ,mem_le_adv_enable 
-7dfe 20600000 rtn 
-
-check_51cmd_direct_adv:
-7dff 70436e01 jam on ,mem_le_adv_enable 
-7e00 70448401 jam adv_direct_ind ,mem_le_adv_type 
-7e01 68014682 fetch 2 ,mem_ui_state_map 
-7e02 79207e0b set1 ui_state_ble_adv ,pdata 
-7e03 60014682 store 2 ,mem_ui_state_map 
-7e04 20600000 rtn 
-
-check_51cmd_stop_direct_adv:
-7e05 68014682 fetch 2 ,mem_ui_state_map 
-7e06 793ffe0b set0 ui_state_ble_adv ,pdata 
-7e07 60014682 store 2 ,mem_ui_state_map 
-7e08 70436e00 jam off ,mem_le_adv_enable 
-7e09 20600000 rtn 
-
-check_51cmd_le_disconnect:
-7e0a 58000014 setarg 20 
-7e0b 6001046d store 2 ,mem_le_superto 
-7e0c 600144ba store 2 ,mem_le_init_superto 
-7e0d 20205c92 branch le_send_terminate_ind_user_terminated 
-
-check_51cmd_ble_update_connect_param:
-7e0e 20205abf branch le_l2cap_tx_update_req 
-
-check_51cmd_led_off:
-7e0f da200000 arg 0 ,rega 
-7e10 20207d19 branch ui_led_off_global 
-
-check_51cmd_led_on:
-7e11 da200000 arg 0 ,rega 
-7e12 20207d14 branch ui_led_on_global 
-
-check_51cmd_led_start_blink:
-7e13 da200000 arg 0 ,rega 
-7e14 20207d1e branch ui_led_blink_start_global 
-
-check_51cmd_le_start_con:
-7e15 70436901 jam on ,mem_le_scan_enable 
-7e16 7041ce1b jam hci_cmd_le_create_conn ,mem_hci_cmd 
-7e17 20600000 rtn 
-
-check_51cmd_start_scan:
-7e18 70436901 jam on ,mem_le_scan_enable 
-7e19 20600000 rtn 
-
-check_51cmd_stop_scan:
-7e1a 70436900 jam off ,mem_le_scan_enable 
-7e1b 7041ce00 jam 0 ,mem_hci_cmd 
-7e1c 20600000 rtn 
-
-check_51cmd_hibernate:
-7e1d 680141eb fetch 2 ,mem_cb_before_hibernate 
-7e1e 20407f9c call callback_func 
-7e1f 6800c686 fetch 1 ,mem_ui_button_gpio 
-7e20 c07ffe23 beq ui_button_gpio_disable ,check_51cmd_hibernate_btn_disabled 
-7e21 1fe20400 copy pdata ,temp 
-7e22 204067fb call gpio_config_input 
-
-check_51cmd_hibernate_btn_disabled:
-7e23 20407d98 call ui_ipc_clean_all_fifo 
-7e24 20202b1f branch lpm_hibernate 
-
-check_51cmd_le_smp_sec_req:
-7e25 20205b02 branch le_send_smp_security_request 
-
-check_51cmd_role_switch:
-7e26 70007c34 jam lmp_slot_offset ,mem_lmo_opcode2 
-7e27 79200003 set1 mark_switch_initiated ,mark 
-7e28 24748000 nrtn master 
-7e29 70455b00 jam switch_flag_init ,mem_switch_flag 
-7e2a 70007c13 jam lmp_switch_req ,mem_lmo_opcode2 
-7e2b 6800816d fetch 1 ,mem_connection_options 
-7e2c 793ffe02 set0 connection_switch ,pdata 
-7e2d 6000816d store 1 ,mem_connection_options 
-7e2e 20600000 rtn 
-
-check_51cmd_bb_reconn_cancel:
-7e2f 18000e03 force page_length_timer ,queue 
-7e30 20207f07 branch timer_stop 
-
-check_51cmd_dhkey_not_accept:
-7e31 204062f8 call tid_set_reply 
-7e32 70007d41 jam lmp_dhkey_check ,mem_lmi_opcode2 
-7e33 20205f9d branch parse_lmp_dhkey_check_reject 
-
-ui_check_paring_button:
-7e34 6800c682 fetch 1 ,mem_ui_state_map 
-7e35 c4060000 rtnbit0 ui_state_btn_down 
-7e36 c4038000 rtnbit0 ui_state_bt_reconnect 
-7e37 20207e2f branch check_51cmd_bb_reconn_cancel 
-
-queue_init:
-7e38 68014218 fetch 2 ,mem_queue_ptr 
-7e39 1fe08a02 add pdata ,queue_offset_curr_num ,contw 
-7e3a 58000000 setarg 0 
-7e3b e0a18000 istore 3 ,contw 
-7e3c 20600000 rtn 
-
-queue_push:
-7e3d 20407fe9 call disable_user 
-7e3e 20407e69 call queue_full 
-7e3f 207a0000 rtn blank 
-7e40 68014218 fetch 2 ,mem_queue_ptr 
-7e41 1fe0a402 add pdata ,queue_offset_curr_num ,regb 
-7e42 ea488000 ifetcht 1 ,regb 
-7e43 18408401 increase 1 ,temp 
-7e44 e2488000 istoret 1 ,regb 
-7e45 efe88000 ifetcht 1 ,pdata 
-7e46 18427200 copy temp ,loopcnt 
-7e47 1fe0a404 add pdata ,queue_offset_write_ptr ,regb 
-7e48 ea408000 ifetch 1 ,regb 
-7e49 984ffe00 imul32 temp ,pdata 
-7e4a 98c08a00 iadd contr ,contw 
-7e4b 1a220c00 copy rega ,contr 
-
-calc_queue_next_ptr:
-7e4c 20407f01 call memcpy 
-7e4d 20407e6d call queue_get_size 
-7e4e 1fe0ffff pincrease -1 
-7e4f ea488000 ifetcht 1 ,regb 
-7e50 18408401 increase 1 ,temp 
-7e51 98410400 iand temp ,temp 
-7e52 e2488000 istoret 1 ,regb 
-7e53 20207fe7 branch enable_user 
-
-queue_pop:
-7e54 20407fe9 call disable_user 
-7e55 20407e65 call queue_empty 
-7e56 207a0000 rtn blank 
-7e57 68014218 fetch 2 ,mem_queue_ptr 
-7e58 1fe0a402 add pdata ,queue_offset_curr_num ,regb 
-7e59 ea488000 ifetcht 1 ,regb 
-7e5a 184085ff increase -1 ,temp 
-7e5b e2488000 istoret 1 ,regb 
-7e5c efe88000 ifetcht 1 ,pdata 
-7e5d 18427200 copy temp ,loopcnt 
-7e5e 1fe0a403 add pdata ,queue_offset_read_ptr ,regb 
-7e5f ea408000 ifetch 1 ,regb 
-7e60 984ffe00 imul32 temp ,pdata 
-7e61 98c08c00 iadd contr ,contr 
-7e62 18c08c01 increase 1 ,contr 
-7e63 1a220a00 copy rega ,contw 
-7e64 20207e4c branch calc_queue_next_ptr 
-
-queue_empty:
-7e65 68014218 fetch 2 ,mem_queue_ptr 
-7e66 1fe08c02 add pdata ,queue_offset_curr_num ,contr 
-7e67 e8c08000 ifetch 1 ,contr 
-7e68 20600000 rtn 
-
-queue_full:
-7e69 20407e6d call queue_get_size 
-7e6a e8c88000 ifetcht 1 ,contr 
-7e6b 98467e00 isub temp ,pdata 
-7e6c 20600000 rtn 
-
-queue_get_size:
-7e6d 68014218 fetch 2 ,mem_queue_ptr 
-7e6e 1fe08c01 add pdata ,queue_offset_length ,contr 
-7e6f e8c08000 ifetch 1 ,contr 
-7e70 20600000 rtn 
-
-right_shift_n:
-7e71 1f267c00 sub loopcnt ,0 ,null 
-7e72 20628000 rtn zero 
-
-right_shift_n_loop:
-7e73 1fe37e00 rshift pdata ,pdata 
-7e74 c2007e73 loop right_shift_n_loop 
-7e75 20600000 rtn 
-
-left_shift_n:
-7e76 18007e01 force 1 ,pdata 
-7e77 1f267c00 sub loopcnt ,0 ,null 
-7e78 20628000 rtn zero 
-
-left_shift_n_loop:
-7e79 1fe3fe00 lshift pdata ,pdata 
-7e7a c2007e79 loop left_shift_n_loop 
-7e7b 20600000 rtn 
-
-push_stack:
-7e7c 18a27e00 deposit contw 
-7e7d 60010abb store 2 ,mem_contw 
-7e7e 600c0aa2 storet 8 ,mem_temp 
-7e7f 19627e00 deposit timeup 
-7e80 60020aaa store 4 ,mem_timeup 
-7e81 20407e85 call push_stack_rega_b_c 
-7e82 18c27e00 deposit contr 
-7e83 60010ab9 store 2 ,mem_contr 
-7e84 20600000 rtn 
-
-push_stack_rega_b_c:
-7e85 1a227e00 deposit rega 
-7e86 60020aae store 4 ,mem_rega 
-7e87 1a427e00 deposit regb 
-7e88 60020ab2 store 4 ,mem_regb 
-7e89 1a627e00 deposit regc 
-7e8a 60018ab6 store 3 ,mem_regc 
-7e8b 20600000 rtn 
-
-pop_stack:
-7e8c 680c0aa2 fetcht 8 ,mem_temp 
-7e8d 68020aaa fetch 4 ,mem_timeup 
-7e8e 98001600 iforce timeup 
-7e8f 20407e95 call pop_stack_rega_b_c 
-7e90 68010abb fetch 2 ,mem_contw 
-7e91 98000a00 iforce contw 
-7e92 68010ab9 fetch 2 ,mem_contr 
-7e93 98000c00 iforce contr 
-7e94 20600000 rtn 
-
-pop_stack_rega_b_c:
-7e95 68020aae fetch 4 ,mem_rega 
-7e96 98002200 iforce rega 
-7e97 68020ab2 fetch 4 ,mem_regb 
-7e98 98002400 iforce regb 
-7e99 68018ab6 fetch 3 ,mem_regc 
-7e9a 98002600 iforce regc 
-7e9b 20600000 rtn 
-
-get_contw:
-7e9c 68010abb fetch 2 ,mem_contw 
-7e9d 1fe20a00 copy pdata ,contw 
-7e9e 20600000 rtn 
-
-get_contr:
-7e9f 68010ab9 fetch 2 ,mem_contr 
-7ea0 1fe20c00 copy pdata ,contr 
-7ea1 20600000 rtn 
-
-store_contw:
-7ea2 18a27e00 copy contw ,pdata 
-7ea3 60010abb store 2 ,mem_contw 
-7ea4 20600000 rtn 
-
-store_contr:
-7ea5 18c27e00 copy contr ,pdata 
-7ea6 60010ab9 store 2 ,mem_contr 
-7ea7 20600000 rtn 
-
-save_cont_pointers:
-7ea8 18a27e00 copy contw ,pdata 
-7ea9 60010a97 store 2 ,mem_hold_contw 
-7eaa 18c27e00 copy contr ,pdata 
-7eab 60010a95 store 2 ,mem_hold_contr 
-7eac 20600000 rtn 
-
-load_cont_pointers:
-7ead 68010a97 fetch 2 ,mem_hold_contw 
-7eae 1fe20a00 copy pdata ,contw 
-7eaf 68010a95 fetch 2 ,mem_hold_contr 
-7eb0 1fe20c00 copy pdata ,contr 
-7eb1 20600000 rtn 
-
-memcpy96:
-7eb2 20407ebd call memcpy32 
-
-memcpy64:
-7eb3 20407ebd call memcpy32 
-7eb4 20207ebd branch memcpy32 
-
-memcpy12:
-7eb5 20407eb9 call memcpy8 
-
-memcpy4:
-7eb6 e8c20000 ifetch 4 ,contr 
-7eb7 e0a20000 istore 4 ,contw 
-7eb8 20600000 rtn 
-
-memcpy8:
-7eb9 e8c40000 ifetch 8 ,contr 
-7eba e0a40000 istore 8 ,contw 
-7ebb 20600000 rtn 
-
-memcpy48:
-7ebc 20407ebf call memcpy16 
-
-memcpy32:
-7ebd 20407eb9 call memcpy8 
-
-memcpy24:
-7ebe 20407eb9 call memcpy8 
-
-memcpy16:
-7ebf 20407eb9 call memcpy8 
-7ec0 20207eb9 branch memcpy8 
-
-delay_10ms:
-7ec1 df20000a arg 10 ,loopcnt 
-
-delay_ms_wait:
-7ec2 20002ee0 nop 12000 
-7ec3 c2007ec2 loop delay_ms_wait 
-7ec4 20600000 rtn 
-
-bn_zero:
-7ec5 18007203 force 3 ,loopcnt 
-
-memset0:
-7ec6 18007e00 force 0 ,pdata 
-
-memset8:
-7ec7 e0a40000 istore 8 ,contw 
-7ec8 c2007ec7 loop memset8 
-7ec9 20600000 rtn 
-
-memset0_8:
-7eca 18007e00 force 0 ,pdata 
-7ecb e0a40000 istore 8 ,contw 
-7ecc 20600000 rtn 
-
-memset0_4:
-7ecd 18007e00 force 0 ,pdata 
-7ece e0a20000 istore 4 ,contw 
-7ecf 20600000 rtn 
-
-clear_mem_256:
-7ed0 18007204 force 4 ,loopcnt 
-7ed1 20207ec6 branch memset0 
-
-clear_mem_512:
-7ed2 18007208 force 8 ,loopcnt 
-7ed3 20207ec6 branch memset0 
-
-clear_mem:
-7ed4 1f227e00 deposit loopcnt 
-7ed5 207a0000 rtn blank 
-7ed6 58000000 setarg 0 
-
-clear_mem_loop:
-7ed7 e0a08000 istore 1 ,contw 
-7ed8 c2007ed7 loop clear_mem_loop 
-7ed9 20600000 rtn 
-
-clear_temp_block:
-7eda df200020 arg 32 ,loopcnt 
-7edb d8a00ac2 arg mem_temp_block0 ,contw 
-7edc 20207ed4 branch clear_mem 
-
-xor_loop:
-7edd ea620000 ifetch 4 ,regc 
-7ede ea2a0000 ifetcht 4 ,rega 
-7edf 9842fe00 ixor temp ,pdata 
-7ee0 e0a20000 istore 4 ,contw 
-7ee1 1a20a204 increase 4 ,rega 
-7ee2 1a60a604 increase 4 ,regc 
-7ee3 c2007edd loop xor_loop 
-7ee4 20600000 rtn 
-
-inverse_data:
-7ee5 477dc03f bpatchx patch3f_3 ,mem_patch3f 
-7ee6 1f227e00 copy loopcnt ,pdata 
-7ee7 1fe67c01 sub pdata ,1 ,null 
-7ee8 20610000 rtn positive 
-7ee9 9a20a400 iadd rega ,regb 
-7eea 1a40a5ff increase -1 ,regb 
-7eeb 1f237200 rshift loopcnt ,loopcnt 
-
-inverse_loop:
-7eec ea288000 ifetcht 1 ,rega 
-7eed ea408000 ifetch 1 ,regb 
-7eee e2208000 istore 1 ,rega 
-7eef e2488000 istoret 1 ,regb 
-7ef0 1a40a5ff increase -1 ,regb 
-7ef1 1a20a201 increase 1 ,rega 
-7ef2 c2007eec loop inverse_loop 
-7ef3 20600000 rtn 
-
-memcpy_fast:
-7ef4 1f227e00 deposit loopcnt 
-7ef5 207a0000 rtn blank 
-
-memcpy_fast_loop:
-7ef6 1f20f3f8 increase -8 ,loopcnt 
-7ef7 20417eb9 call memcpy8 ,positive 
-7ef8 20628000 rtn zero 
-7ef9 20217ef6 branch memcpy_fast_loop ,positive 
-7efa 1f20f208 increase 8 ,loopcnt 
-
-memcpy_fast_loop_four:
-7efb 1f20f3fc increase -4 ,loopcnt 
-7efc 20417eb6 call memcpy4 ,positive 
-7efd 20628000 rtn zero 
-7efe 20217efb branch memcpy_fast_loop_four ,positive 
-7eff 1f20f204 increase 4 ,loopcnt 
-7f00 20207f01 branch memcpy 
-
-memcpy:
-7f01 1f227e00 deposit loopcnt 
-7f02 207a0000 rtn blank 
-
-memcpy_loop:
-7f03 e8c08000 ifetch 1 ,contr 
-7f04 e0a08000 istore 1 ,contw 
-7f05 c2007f03 loop memcpy_loop 
-7f06 20600000 rtn 
-
-timer_stop:
-7f07 58000000 setarg 0 
-
-timer_init:
-7f08 1c430400 rshift clkn_bt ,temp 
-7f09 600a4094 storet 4 ,mem_last_clkn 
-7f0a d8a0419d arg mem_timers ,contw 
-7f0b 98000400 iforce temp 
-7f0c 18e3fe00 lshift queue ,pdata 
-7f0d 98a08a00 iadd contw ,contw 
-7f0e e0a90000 istoret 2 ,contw 
-7f0f 477e403f bpatchx patch3f_4 ,mem_patch3f 
-7f10 20600000 rtn 
-
-timer_check_timeout:
-7f11 d9600800 arg 0x800 ,timeup 
-7f12 19701600 lshift16 timeup ,timeup 
-7f13 9960fe00 iadd timeup ,pdata 
-7f14 20600000 rtn 
-
-timer_reinit:
-7f15 d8e00000 arg 0 ,queue 
-
-timer_check:
-7f16 477ec03f bpatchx patch3f_5 ,mem_patch3f 
-7f17 680a4094 fetcht 4 ,mem_last_clkn 
-7f18 1c437e00 rshift clkn_bt ,pdata 
-7f19 60024094 store 4 ,mem_last_clkn 
-7f1a 98467c00 isub temp ,null 
-7f1b 24417f11 ncall timer_check_timeout ,positive 
-7f1c 98461600 isub temp ,timeup 
-7f1d 19620400 copy timeup ,temp 
-7f1e d8c0419d arg mem_timers ,contr 
-7f1f 18c20a00 copy contr ,contw 
-7f20 df200010 arg 16 ,loopcnt 
-
-timer_loop:
-7f21 e8c10000 ifetch 2 ,contr 
-7f22 98467e00 isub temp ,pdata 
-7f23 20217f25 branch timer_counting ,positive 
-7f24 18007e00 force 0 ,pdata 
-
-timer_counting:
-7f25 e0a10000 istore 2 ,contw 
-7f26 c2007f21 loop timer_loop 
-7f27 d8c0419d arg mem_timers ,contr 
-7f28 18e3fe00 lshift queue ,pdata 
-7f29 98c08c00 iadd contr ,contr 
-7f2a e8c10000 ifetch 2 ,contr 
-7f2b 20600000 rtn 
-
-clk_add:
-7f2c 98408400 iadd temp ,temp 
-7f2d 18427200 copy temp ,loopcnt 
-7f2e 58000ea6 setarg 3750 
-7f2f 9f267e00 isub loopcnt ,pdata 
-7f30 20610000 rtn positive 
-7f31 1fe67e00 sub pdata ,0 ,pdata 
-7f32 18510400 rshift16 temp ,temp 
-7f33 18408401 increase 1 ,temp 
-7f34 18500400 lshift16 temp ,temp 
-7f35 98418400 ior temp ,temp 
-7f36 20600000 rtn 
-
-clk_diff_rt:
-7f37 20407f39 call clk_diff 
-7f38 20207f43 branch clk2rt 
-
-clk_diff:
-7f39 78547c00 disable user 
-7f3a 98467e00 isub temp ,pdata 
-7f3b 20217f3e branch clk_diff_pos ,positive 
-7f3c 78347c00 enable user 
-7f3d 1fe67e00 sub pdata ,0 ,pdata 
-
-clk_diff_pos:
-7f3e c4078000 rtnbit0 15 
-7f3f d85f0ea6 arg -61786 ,temp 
-7f40 9840fe00 iadd temp ,pdata 
-7f41 793ffe40 set0 64 ,pdata 
-7f42 20600000 rtn 
-
-clk2rt:
-7f43 98000c00 iforce contr 
-7f44 1ff17e00 rshift16 pdata ,pdata 
-7f45 d8400ea6 arg 3750 ,temp 
-7f46 984ffe00 imul32 temp ,pdata 
-7f47 98c0fe00 iadd contr ,pdata 
-7f48 20600000 rtn 
-
-clk2lpo:
-7f49 1fed7e00 lshift8 pdata ,pdata 
-7f4a 1ff27e00 lshift4 pdata ,pdata 
-7f4b 6809c16f fetcht 3 ,mem_clks_per_lpo 
-7f4c 9846fc00 idiv temp 
-7f4d 20407f86 call wait_div_end 
-7f4e 18078400 quotient temp 
-7f4f 20600000 rtn 
-
-clk2bt:
-7f50 d8400ea6 arg 3750 ,temp 
-7f51 9846fc00 idiv temp 
-7f52 20407f86 call wait_div_end 
-7f53 1807fe00 quotient pdata 
-7f54 1ff07e00 lshift16 pdata ,pdata 
-7f55 18070400 remainder temp 
-7f56 98418400 ior temp ,temp 
-7f57 20600000 rtn 
-
-string2dec_from_uart:
-7f58 d8400000 arg 0 ,temp 
-
-string2dec_from_uart_done:
-7f59 18422600 copy temp ,regc 
-7f5a e8608000 ifetch 1 ,contru 
-7f5b 20407f64 call uchar2dialog 
-7f5c 1a620400 copy regc ,temp 
-7f5d 20407f95 call swap 
-7f5e da40000a arg 10 ,regb 
-7f5f 9a4ffe00 imul32 regb ,pdata 
-7f60 9840fe00 iadd temp ,pdata 
-7f61 1fe20400 copy pdata ,temp 
-7f62 c2007f59 loop string2dec_from_uart_done 
-7f63 20600000 rtn 
-
-uchar2dialog:
-7f64 d840003a arg 0x3a ,temp 
-7f65 98467c00 isub temp ,null 
-7f66 24217f6d nbranch uchar2dialog_number ,positive 
-7f67 d8400061 arg 0x61 ,temp 
-7f68 98467c00 isub temp ,null 
-7f69 20217f70 branch uchar2dialog_a2f ,positive 
-7f6a d8400037 arg 0x37 ,temp 
-7f6b 98467e00 isub temp ,pdata 
-7f6c 20600000 rtn 
-
-uchar2dialog_number:
-7f6d d8400030 arg 0x30 ,temp 
-7f6e 98467e00 isub temp ,pdata 
-7f6f 20600000 rtn 
-
-uchar2dialog_a2f:
-7f70 d8400057 arg 0x57 ,temp 
-7f71 98467e00 isub temp ,pdata 
-7f72 20600000 rtn 
-
-pn9:
-7f73 18426000 copy temp ,alarm 
-7f74 580001ff setarg 0x1ff 
-7f75 18002400 force 0 ,regb 
-
-pn9_loop:
-7f76 1fe92200 rshift3 pdata ,rega 
-7f77 1a232200 rshift rega ,rega 
-7f78 9a22a200 ixor rega ,rega 
-7f79 2a2ffe00 isolate1 0 ,rega 
-7f7a 7920fe09 setflag true ,9 ,pdata 
-7f7b 18430400 rshift temp ,temp 
-7f7c 2feffe00 isolate1 0 ,pdata 
-7f7d 79208407 setflag true ,7 ,temp 
-7f7e 1fe37e00 rshift pdata ,pdata 
-7f7f 1a40a401 increase 1 ,regb 
-7f80 2a400e00 compare 0 ,regb ,0x7 
-7f81 2420ff76 nbranch pn9_loop ,true 
-7f82 e0a88000 istoret 1 ,contw 
-7f83 c2007f76 loop pn9_loop 
-7f84 1e020400 copy alarm ,temp 
-7f85 20600000 rtn 
-
-wait_div_end:
-7f86 207a8000 rtn modone 
-7f87 20207f86 branch wait_div_end 
-
-compare_loop:
-
-string_compare:
-7f88 ea208000 ifetch 1 ,rega 
-7f89 ea488000 ifetcht 1 ,regb 
-7f8a 98467c00 isub temp ,null 
-7f8b 24628000 nrtn zero 
-7f8c 1a20a201 increase 1 ,rega 
-7f8d 1a40a401 increase 1 ,regb 
-7f8e c2007f88 loop string_compare 
-7f8f 18007c00 force 0 ,null 
-7f90 20600000 rtn 
-
-ceiling:
-7f91 98467c00 isub temp ,null 
-7f92 24610000 nrtn positive 
-7f93 18427e00 deposit temp 
-7f94 20600000 rtn 
-
-swap:
-7f95 9840fe00 iadd temp ,pdata 
-7f96 98460400 isub temp ,temp 
-7f97 98467e00 isub temp ,pdata 
-7f98 20600000 rtn 
-
-clean_mem:
-7f99 df200200 arg 0x200 ,loopcnt 
-7f9a d8a04000 arg 0x4000 ,contw 
-7f9b 20207ec6 branch memset0 
-
-callback_func:
-7f9c 207a0000 rtn blank 
-7f9d 1fe27a00 copy pdata ,pc 
-
-wait_uarttx:
-7f9e 6811010e hfetch 2 ,core_uart_txitems 
-7f9f 243a7f9e nbranch wait_uarttx ,blank 
-7fa0 20600000 rtn 
-
-ice_break:
-7fa1 70820301 jam 0x1 ,core_ice_ctrl 
-7fa2 20600000 rtn 
-
-ice_setbp:
-7fa3 60110205 hstore 2 ,core_ice_break0 
-7fa4 68108203 hfetch 1 ,core_ice_ctrl 
-7fa5 79207e04 set1 4 ,pdata 
-7fa6 60108203 hstore 1 ,core_ice_ctrl 
-7fa7 20600000 rtn 
-
-ice_setbp2:
-7fa8 60110207 hstore 2 ,core_ice_break1 
-7fa9 68108203 hfetch 1 ,core_ice_ctrl 
-7faa 79207e06 set1 6 ,pdata 
-7fab 60108203 hstore 1 ,core_ice_ctrl 
-7fac 20600000 rtn 
-
-ice_set_write_bp:
-7fad 60110205 hstore 2 ,core_ice_break0 
-7fae 70820330 jam 0x30 ,core_ice_ctrl 
-7faf 20600000 rtn 
-
-test_enable_white:
-7fb0 68108043 hfetch 1 ,core_config 
-7fb1 793ffe04 set0 whiteoff_bit ,pdata 
-7fb2 60108043 hstore 1 ,core_config 
-7fb3 20600000 rtn 
-
-check_uart_tx_buff:
-7fb4 6811010e hfetch 2 ,core_uart_txitems 
-7fb5 d8400200 arg uart_air_control_threshold ,temp 
-
-pdata_sub_temp:
-7fb6 98467c00 isub temp ,null 
-7fb7 20600000 rtn 
-
-fifo_in:
-7fb8 477f403f bpatchx patch3f_6 ,mem_patch3f 
-7fb9 ea2c0000 ifetcht util_fifo_len ,rega 
-7fba 18417eff and temp ,0xff ,pdata 
-7fbb 243a7fbe nbranch fifo_in_push ,blank 
-7fbc 184cfe00 rshift8 temp ,pdata 
-7fbd e2240000 istore util_fifo_len ,rega 
-
-fifo_in_push:
-7fbe 1a20a207 increase util_fifo_len + util_fifo_offset ,rega 
-7fbf ea208000 ifetch 1 ,rega 
-7fc0 243a2a8c nbranch assert ,blank 
-7fc1 68008a99 fetch 1 ,mem_fifo_temp 
-7fc2 e2208000 istore 1 ,rega 
-7fc3 20600000 rtn 
-
-fifo_out:
-7fc4 477fc03f bpatchx patch3f_7 ,mem_patch3f 
-7fc5 df200008 arg util_fifo_len ,loopcnt 
-7fc6 ea240000 ifetch util_fifo_len ,rega 
-7fc7 207a0000 rtn blank 
-
-fifo_out_loop:
-7fc8 ea208000 ifetch 1 ,rega 
-7fc9 243a7fcd nbranch fifo_out_end ,blank 
-7fca 1a20a201 increase 1 ,rega 
-7fcb c2007fc8 loop fifo_out_loop 
-7fcc 20202a8c branch assert 
-
-fifo_out_end:
-7fcd d8400000 arg 0 ,temp 
-7fce e2288000 istoret 1 ,rega 
-7fcf 20600000 rtn 
-
-fifo_is_empty:
-7fd0 ea240000 ifetch util_fifo_len ,rega 
-7fd1 20600000 rtn 
-
-fifo_is_full:
-7fd2 ea208000 ifetch 1 ,rega 
-7fd3 20600000 rtn 
-
-fifo_is_near_full:
-7fd4 ea210000 ifetch 2 ,rega 
-7fd5 20600000 rtn 
-
-fifo_content_count:
-7fd6 d8400000 arg 0 ,temp 
-
-fifo_content_count_loop:
-7fd7 68008006 fetch 1 ,contr 
-7fd8 c2007fd7 loop fifo_content_count_loop ,blank 
-7fd9 18408401 increase 1 ,temp 
-7fda c2007fd7 loop fifo_content_count_loop 
-7fdb 18427e00 copy temp ,pdata 
-7fdc 20600000 rtn 
-
-not_greater_than:
-7fdd 98467c00 isub temp ,null 
-7fde 24610000 nrtn positive 
-7fdf 18427e00 copy temp ,pdata 
-7fe0 20600000 rtn 
-
-disable_positive:
-7fe1 18007dff force -1 ,null 
-7fe2 20600000 rtn 
-
-enable_positive:
-
-disable_zero:
-7fe3 18007c01 force 1 ,null 
-7fe4 20600000 rtn 
-
-enable_zero:
-7fe5 18007c00 force 0 ,null 
-7fe6 20600000 rtn 
-
-enable_user:
-7fe7 78347c00 enable user 
-7fe8 20600000 rtn 
-
-disable_user:
-7fe9 78547c00 disable user 
-7fea 20600000 rtn 
-
-enable_user2:
-7feb 78367c00 enable user2 
-7fec 20600000 rtn 
-
-disable_user2:
-7fed 78567c00 disable user2 
-7fee 20600000 rtn 
-
-disable_blank:
-7fef 58000001 setarg 1 
-7ff0 20600000 rtn 
-
-enable_blank:
-7ff1 58000000 setarg 0 
-7ff2 20600000 rtn 
-
-reverse_byte:
-7ff3 1f227e00 copy loopcnt ,pdata 
-7ff4 207a0000 rtn blank 
-7ff5 18c27e00 copy contr ,pdata 
-7ff6 9f20fe00 iadd loopcnt ,pdata 
-7ff7 1fe0ffff increase -1 ,pdata 
-7ff8 1fe20c00 copy pdata ,contr 
-
-reverse_loop:
-7ff9 e8c08000 ifetch 1 ,contr 
-7ffa 18c08dfe increase -2 ,contr 
-7ffb e0a08000 istore 1 ,contw 
-7ffc c2007ff9 loop reverse_loop 
-7ffd 20600000 rtn 
-org 0x10001
-
-z_entrance0:
-10001 c0000005  beq zcode_00 ,z_page_wait_fhs_reply_ok
-10002 c0008012  beq zcode_01 ,z_mouse_bb_disconnected
-10003 c0010028  beq zcode_02 ,z_hid_rx_process
-10004 20600000  rtn
-
-z_page_wait_fhs_reply_ok:
-10005 6800800e  fetch 1 ,mem_page_rcv_fhs
-10006 1fe0fe01  increase 1 ,pdata
-10007 6000800e  store 1 ,mem_page_rcv_fhs
-10008 20402435  call prepare_newconn
-
-z_master_newconn_loop:
-10009 7920002c  set1 mark_first_packet ,mark
-1000a 204022f2  call master_newconn_once
-1000b 202c0010  branch z_newconn_poll_responded ,sync
-1000c 793f802c  set0 mark_first_packet ,mark
-1000d 20402455  call new_conn_timeout
-1000e 243a0009  nbranch z_master_newconn_loop ,blank
-1000f 202020fc  branch page_restart
-
-z_newconn_poll_responded:
-10010 793f802c  set0 mark_first_packet ,mark
-10011 2020215f  branch newconn_poll_responded
-
-z_mouse_bb_disconnected:
-10012 70480800  jam 0 ,mem_mouse_enter_sniff_count
-10013 7041e30e  jam 0x0e ,mem_sniff_param_interval
-10014 204041e7  call mouse_bb_discon_clear_stack
-10015 68014208  fetch app_disc_rsn_size ,mem_app_disconn_reason
-10016 c283c1f5  bbit1 app_disc_ble ,mouse4_0_event_bb_disconn
-10017 c28033a9  bbit1 app_disc_by_button ,app_disconn_reason_clear
-10018 c280801c  bbit1 app_disc_after_pairing ,z_mouse_event_light_state_pairing
-10019 c281001f  bbit1 app_disc_after_reconn ,z_mouse_event_light_state_hibernate
-1001a c281801f  bbit1 app_disc_after_sniff ,z_mouse_event_light_state_hibernate
-1001b 202042b0  branch mouse_start_discovery
-
-z_mouse_event_light_state_pairing:
-1001c c282801f  bbit1 app_disc_after_handshake ,z_mouse_event_light_state_hibernate
-1001d c281801f  bbit1 app_disc_after_sniff ,z_mouse_event_light_state_hibernate
-1001e 202042b0  branch mouse_start_discovery
-
-z_mouse_event_light_state_hibernate:
-1001f 68014682  fetch 2 ,mem_ui_state_map
-10020 c28642b0  bbit1 ui_state_btn_down ,mouse_start_discovery
-10021 204033a9  call app_disconn_reason_clear
-10022 20400574  call p_mouse_check_key_gpio
-10023 c0038025  beq mouse_lmr_button ,z_mouse_null_enter_hibernate_enable
-10024 202033a7  branch app_bb_hibernate
-
-z_mouse_null_enter_hibernate_enable:
-10025 70479f01  jam 1 ,mem_mouse_null_enter_hibernate_flag
-10026 7047a028  jam 40 ,mem_mouse_null_enter_hibernate_timer
-10027 20600000  rtn
-
-z_hid_rx_process:
-10028 68010264  fetch 2 ,mem_l2cap_payload_ptr
-10029 1fe20c00  copy pdata ,contr
-1002a e8c08000  ifetch 1 ,contr
-1002b 6000cb04  store 1 ,mem_l2cap_rcv
-1002c 1fe1040f  and pdata ,0x0f ,temp
-1002d 1ff1fe00  rshift4 pdata ,pdata
-1002e c0038031  beq hid_type_set_protocol ,z_hid_rx_set_protocol
-1002f c0008038  beq hid_type_control ,z_hid_rx_process_hid_control
-10030 20204d39  branch hid_rx_process + 6
-
-z_hid_rx_set_protocol:
-10031 20404d53  call hid_rx_process_handshake
-10032 704b0500  jam 0 ,mem_mouse_bt_boot_mode
-10033 6800cb04  fetch 1 ,mem_l2cap_rcv
-10034 2feffe00  isolate1 0 ,pdata
-10035 20608000  rtn true
-10036 704b0501  jam 1 ,mem_mouse_bt_boot_mode
-10037 20600000  rtn
-
-z_hid_rx_process_hid_control:
-10038 18427e00  copy temp ,pdata
-10039 c002842c  beq hid_control_p_virtualcableunplug ,p_mouse_irtual_cable_unplug
-1003a 20204d41  branch hid_rx_process_hid_control + 2
-org 0x20001
-
-z_entrance1:
-20001 c008000f  beq zcode_10 ,z_send_lmp
-20002 c0088004  beq zcode_11 ,z_mouse4_0_check_reconn_target
-20003 20600000  rtn
-
-z_mouse4_0_check_reconn_target:
-20004 2040053f  call p_mouse_mode_bt_device1_multi_led_blink3s
-20005 704b6901  jam 1 ,mem_le_send_security_request_flag
-20006 7047a101  jam 1 ,mem_mouse_le_reconnect_flag
-20007 680146a8  fetch 2 ,mem_mouse_direct_timeout
-20008 600146ae  store 2 ,mem_mouse_direct_timer
-20009 2040047c  call p_mouse_store_eeprom_enable
-2000a 20403418  call app_lpm_mult_disable
-2000b d8c04390  arg mem_le_scan_data ,contr
-2000c 20400478  call p_le_adv_data_update
-2000d 70438f1f  jam 0x1f ,mem_le_scan_data_len
-2000e 20207df4  branch check_51cmd_adv
-
-z_send_lmp:
-2000f 78547c00  disable user
-20010 204062c1  call lmo_fifo_process
-20011 68008048  fetch 1 ,mem_lmp_to_send
-20012 207a0000  rtn blank
-20013 c2838018  bbit1 7 ,z_send_lmp_escape
-20014 c0018028  beq lmp_accepted ,z_send_lmp_accepted
-20015 c0188024  beq lmp_setup_complete ,z_send_lmp_setup_complete
-20016 c00b8026  beq lmp_sniff_req ,z_send_lmp_sniff_req
-20017 20206010  branch send_lmp0
-
-z_send_lmp_escape:
-20018 c042001b  beq lmp_ext_features_res ,z_send_lmpext_features_res
-20019 c041801e  beq lmp_ext_features_req ,z_send_lmpext_features_req
-2001a 2020603f  branch send_lmp_escape
-
-z_send_lmpext_features_res:
-2001b 20400021  call z_check_ssp_enable
-2001c 68008048  fetch 1 ,mem_lmp_to_send
-2001d 20206099  branch send_lmpext_features_res
-
-z_send_lmpext_features_req:
-2001e 20400021  call z_check_ssp_enable
-2001f 68008048  fetch 1 ,mem_lmp_to_send
-20020 2020610d  branch send_lmpext_features_req
-
-z_check_ssp_enable:
-20021 6800c65a  fetch 1 ,mem_ssp_enable
-20022 203a612b  branch ssp_disable ,blank
-20023 20206124  branch ssp_enable
-
-z_send_lmp_setup_complete:
-20024 704b0301  jam 1 ,mem_bt_send_lmp_setup_complete
-20025 202061c3  branch send_lmp_setup_complete
-
-z_send_lmp_sniff_req:
-20026 704b0b04  jam 4 ,mem_mouse_bt_send_first_package_timer
-20027 202061a4  branch send_lmp_sniff_req
-
-z_send_lmp_accepted:
-20028 18007e02  force 2 ,pdata
-20029 20406298  call msg_send_lmp
-2002a 68008049  fetch 1 ,mem_lmi_opcode
-2002b e0a08000  istore 1 ,contw
-2002c 6000cafc  store 1 ,mem_lmi_opcode_temp
-2002d 204062a7  call send_lmp_follow
-2002e 6800cafc  fetch 1 ,mem_lmi_opcode_temp
-2002f c0170031  beq lmp_max_slot_req ,z_send_lmp_accepted_max_slot_req
-20030 20206051  branch send_lmp_accepted + 7
-
-z_send_lmp_accepted_max_slot_req:
-20031 6800cb01  fetch 1 ,mem_bt_rcvd_switch_req_accept
-20032 207a0000  rtn blank
-20033 704b0100  jam 0 ,mem_bt_rcvd_switch_req_accept
-20034 6800cb03  fetch 1 ,mem_bt_send_lmp_setup_complete
-20035 c1810000  rtnne 2
-20036 704b0201  jam 1 ,mem_bt_send_max_slot_req_accept_after_switch
-20037 1c427e00  copy clkn_bt ,pdata
-20038 600204e9  store 4 ,mem_aurand_send_delay_time
-20039 20600000  rtn
-org 0x30001
-
-z_entrance2:
-30001 c0100004  beq zcode_20 ,z_le_update_param
-30002 c0108016  beq zcode_21 ,z_le_update_channel_map
-30003 20600000  rtn
-
-z_le_update_param:
-30004 2040000c  call z_mouse_le_conn_param_check
-30005 2020557d  branch le_update_param + 8
-
-z_mouse_le_lpm_mult_reinit:
-30006 6800c7c5  fetch 1 ,mem_lpm_mult_init
-30007 6000c172  store 1 ,mem_lpm_mult
-
-z_mouse_le_conn_param_lpm_enable:
-30008 7047c400  jam le_lpm_enable ,mem_mouse_le_conn_param_reject
-30009 20600000  rtn
-
-z_mouse_le_conn_param_lpm_disable:
-3000a 7047c401  jam le_lpm_disable ,mem_mouse_le_conn_param_reject
-3000b 20600000  rtn
-
-z_mouse_le_conn_param_check:
-3000c 6800c3d6  fetch 1 ,mem_le_new_conninterval
-3000d 1fe67c0c  sub pdata ,le_interval_15ms ,null
-3000e 2421000a  nbranch z_mouse_le_conn_param_lpm_disable ,positive
-3000f 6800c3d8  fetch 1 ,mem_le_new_connslavelatency
-30010 6808c7c5  fetcht 1 ,mem_lpm_mult_init
-30011 98467c00  isub temp ,null
-30012 20210006  branch z_mouse_le_lpm_mult_reinit ,positive
-30013 6800c3d8  fetch 1 ,mem_le_new_connslavelatency
-30014 6000c172  store 1 ,mem_lpm_mult
-30015 20200008  branch z_mouse_le_conn_param_lpm_enable
-
-z_le_update_channel_map:
-30016 6800843f  fetch 1 ,mem_le_state
-30017 c4030000  rtnbit0 lestate_update_map
-30018 2040001b  call z_le_channel_map_overflow_check
-30019 24740000  nrtn user
-3001a 202055a0  branch le_update_channel_map + 3
-
-z_le_channel_map_overflow_check:
-3001b 78347c00  enable user
-3001c 6800845a  fetch 1 ,mem_le_event_count + 1
-3001d 1ff1fe00  rshift4 pdata ,pdata
-3001e c1878000  rtnne 0x0f
-3001f 68008460  fetch 1 ,mem_le_instant + 1
-30020 1ff1fe00  rshift4 pdata ,pdata
-30021 c1800000  rtnne 0x00
-30022 20207fe9  branch disable_user
-org 0x40001
-
-z_entrance3:
-40001 c0180003  beq zcode_30 ,z_mouse_start_discovery
-40002 20600000  rtn
-
-z_mouse_start_discovery:
-40003 204002e0  call p_mouse_tx_power_init
-40004 704b6900  jam 0 ,mem_le_send_security_request_flag
-40005 704b6601  jam 1 ,mem_mouse_start_discovery_enable
-40006 70472001  jam mode_bt_device1 ,mem_device_flag
-40007 70479e00  jam 0 ,mem_mouse_clear_sensor_data_flag
-
-z_mouse_start_discovery_norandom:
-40008 68034b5d  fetch 6 ,mem_le_normal_lap
-40009 600344a0  store 6 ,mem_le_lap
-4000a 20403418  call app_lpm_mult_disable
-4000b 68014687  fetch 2 ,mem_discovery_timeout
-4000c 600146ac  store 2 ,mem_mouse_discovery_timer
-4000d 70016d06  jam 6 ,mem_connection_options
-4000e 58000000  setarg 0
-4000f 600146b0  store 2 ,mem_mouse_no_data_timer
-40010 600146ae  store 2 ,mem_mouse_direct_timer
-40011 2040047c  call p_mouse_store_eeprom_enable
-40012 204043ca  call mouse_bt_discovery_button_down_disable
-40013 20400346  call p_mouse_load_flash_device_info
-40014 6800c210  fetch 1 ,mem_xrecord_mode
-40015 1fe67c33  sub pdata ,rec_3_mode ,null
-40016 2042801b  call z3_check_51cmd_adv ,zero
-40017 6800c092  fetch 1 ,mem_device_option
-40018 2feffe00  isolate1 mode_3_mouse ,pdata
-40019 2040fddd  call check_51cmd_start_discovery ,true
-4001a 20200510  branch p_mouse_discovery_multi_led_blink
-
-z3_check_51cmd_adv:
-4001b 68034b5d  fetch 6 ,mem_le_normal_lap
-4001c 600344a0  store 6 ,mem_le_lap
-4001d 20400474  call p_mouse_le_adv_data_update
-4001e 20207df4  branch check_51cmd_adv
-org 0x50001
-
-z_entrance4:
-50001 c0200005  beq zcode_40 ,z_g24_start_24g_mode
-50002 c0208017  beq zcode_41 ,z_g24_auto_pair_start
-50003 c021001f  beq zcode_42 ,z_mouse_24g_pairing_button
-50004 20600000  rtn
-
-z_g24_start_24g_mode:
-50005 2040000e  call z_g24_factory_check
-50006 2034020c  branch p_g24_auto_pair_start ,user
-50007 79200026  set1 mark_24g ,mark
-50008 6800cd4b  fetch 1 ,mem_24g_conn_sm
-50009 79207e02  set1 state_24g_reconn ,pdata
-5000a 6000cd4b  store 1 ,mem_24g_conn_sm
-5000b 204001f4  call p_g24_syncword_crc8
-5000c 2040016e  call p_g24_ch
-5000d 2020001b  branch z_g24_auto_pair_timeout_init
-
-z_g24_factory_check:
-5000e df200002  arg 2 ,loopcnt
-5000f d8c04c21  arg mem_24g_addr ,contr
-50010 20407fe7  call enable_user
-50011 5800ffff  setarg 0xffff
-
-z4_pdata_0xff_check_loop:
-50012 e8c90000  ifetcht 2 ,contr
-50013 98467c00  isub temp ,null
-50014 2442ffe9  ncall disable_user ,zero
-50015 c2000012  loop z4_pdata_0xff_check_loop
-50016 20600000  rtn
-
-z_g24_auto_pair_start:
-50017 79200026  set1 mark_24g ,mark
-50018 6800cd4b  fetch 1 ,mem_24g_conn_sm
-50019 79207e01  set1 state_24g_pair ,pdata
-5001a 6000cd4b  store 1 ,mem_24g_conn_sm
-
-z_g24_auto_pair_timeout_init:
-5001b 58000708  setarg g24_disconn_nodata_timer
-5001c 60014d43  store 2 ,mem_24g_stop_g24_mode_timeout
-5001d 704d4200  jam 0 ,mem_24g_stop_g24_mode
-5001e 20600000  rtn
-
-z_mouse_24g_pairing_button:
-5001f 680246d3  fetch mouse_flag_len ,mem_mouse_flag
-50020 c4088000  rtnbit0 mouse_enable_24g
-50021 c3818000  rtnbit1 mosue_24g_pairing_flag
-50022 c6130000  rtnmark1 mark_24g
-50023 20404482  call mouse_devce_led_off
-50024 d8e00003  arg mosue_24g_pairing_flag ,queue
-50025 204043ce  call mouse_enable_function_flag
-50026 58000000  setarg 0
-50027 600146ae  store 2 ,mem_mouse_direct_timer
-50028 6000c6b4  store 1 ,mem_mouse_send_blank_timer
-50029 60014c26  store 2 ,mem_24g_check_dongle_times
-5002a 204042ca  call mouse_stop_discovery
-5002b 2020020c  branch p_g24_auto_pair_start
-org 0x60001
-
-z_entrance5:
-60001 c0280006  beq zcode_50 ,z_mouse_24g_pairing_complete
-60002 c028800c  beq zcode_51 ,z_mouse_24g_attempt_fail
-60003 c0290010  beq zcode_52 ,z_mouse_24g_attempt_success
-60004 c029801a  beq zcode_53 ,z_g24_reconn_dispatch
-60005 20600000  rtn
-
-z_mouse_24g_pairing_complete:
-60006 d8e00003  arg mosue_24g_pairing_flag ,queue
-60007 204043d2  call mouse_disable_function_flag
-60008 7046a700  jam 0 ,mem_mouse_move_flag
-60009 2040405d  call mouse_read_sensor_common
-6000a 204002e0  call p_mouse_tx_power_init
-6000b 20200010  branch z_mouse_24g_attempt_success
-
-z_mouse_24g_attempt_fail:
-6000c 704d3900  jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt
-6000d 204002e0  call p_mouse_tx_power_init
-6000e 2040020e  call p_g24_check_51cmd_stop_24g
-6000f 2020340a  branch app_enter_hibernate
-
-z_mouse_24g_attempt_success:
-60010 20400017  call z_g24_auto_pair_timeout_clear
-60011 2040050a  call p_mouse_null_enter_hibernate_disable
-60012 20403f8d  call mouse_no_data_timer_init
-60013 68024c21  fetch 4 ,mem_24g_addr
-60014 6002477b  store 4 ,mem_mouse_24g_addr
-60015 20404366  call mouse_cheak_select_24gdevice
-60016 20200317  branch p_mouse_store_flash_device_info
-
-z_g24_auto_pair_timeout_clear:
-60017 58000000  setarg 0
-60018 6001cd42  store 3 ,mem_24g_stop_g24_mode
-60019 20600000  rtn
-
-z_g24_reconn_dispatch:
-6001a 6800cd42  fetch 1 ,mem_24g_stop_g24_mode
-6001b c000add4  beq 1 ,g24_stop_24g_mode
-6001c 20400029  call z_g24_tx_attemp_data_prep
-6001d 204001be  call p_g24_transmit_receive_ack
-6001e 242c016e  nbranch p_g24_ch ,sync
-6001f 2437816e  nbranch p_g24_ch ,user3
-60020 6800cd4b  fetch 1 ,mem_24g_conn_sm
-60021 793ffe02  set0 state_24g_reconn ,pdata
-60022 6000cd4b  store 1 ,mem_24g_conn_sm
-
-z_g24_tx_attemp_dongle_succ:
-60023 704b4300  jam 0 ,mem_mouse_long_mult_flag
-60024 20402f20  call g24_app_tx_attempt_success
-60025 204001b8  call p_g24_txbuf_clear
-60026 2020036f  branch p_g24_transmit_by_interrupt_enable
-
-z_g24_store_dongle_addr:
-60027 68024bd9  fetch 4 ,mem_24g_rxpayload + 2
-60028 202001f3  branch p_g24_update_addr_and_synccrc8
-
-z_g24_tx_attemp_data_prep:
-60029 70119eff  jam 0xff ,mem_24g_common_temp
-6002a 6800cbfa  fetch 1 ,mem_24g_data_type
-6002b 6000919f  store 1 ,mem_24g_common_temp + 1
-6002c 68024c30  fetch 4 ,mem_24g_device_addr
-6002d 600211a0  store 4 ,mem_24g_common_temp + 2
-6002e d8400006  arg 6 ,temp
-6002f da20119e  arg mem_24g_common_temp ,rega
-60030 20400213  call p_g24_put_data_in_buff
-60031 20200225  branch p_g24_transmit_prep
-org 0x70001
-
-z_entrance6:
-
-z_g24_pair_dispatch:
-70001 6800cd42  fetch 1 ,mem_24g_stop_g24_mode
-70002 c000add4  beq 1 ,g24_stop_24g_mode
-70003 70119eff  jam 0xff ,mem_24g_common_temp
-70004 6800cbfa  fetch 1 ,mem_24g_data_type
-70005 6000919f  store 1 ,mem_24g_common_temp + 1
-70006 68024c30  fetch 4 ,mem_24g_device_addr
-70007 600211a0  store 4 ,mem_24g_common_temp + 2
-70008 d8400006  arg 6 ,temp
-70009 da20119e  arg mem_24g_common_temp ,rega
-7000a 20400213  call p_g24_put_data_in_buff
-7000b 20400225  call p_g24_transmit_prep
-7000c 204001be  call p_g24_transmit_receive_ack
-7000d 242c0026  nbranch z_g24_pair_txdata_retry ,sync
-7000e 24378026  nbranch z_g24_pair_txdata_retry ,user3
-7000f 704d4b00  jam 0 ,mem_24g_conn_sm
-70010 204001e8  call p_g24_ackpayload_parse
-70011 68024c21  fetch 4 ,mem_24g_addr
-70012 680a4d3e  fetcht 4 ,mem_24g_allpowerful_addr
-70013 98467c00  isub temp ,null
-70014 20228017  branch z_g24_auto_pair_skip_rx_length ,zero
-70015 6800cbf7  fetch 1 ,mem_24g_rxdata_length
-70016 207a0000  rtn blank
-
-z_g24_auto_pair_skip_rx_length:
-70017 204002e0  call p_mouse_tx_power_init
-70018 68024c21  fetch 4 ,mem_24g_addr
-70019 680a4c05  fetcht 4 ,mem_24g_paring_addr
-7001a 98467c00  isub temp ,null
-7001b 20228201  branch p_g24_start_pairing_sm1 ,zero
-7001c 68024c21  fetch 4 ,mem_24g_addr
-7001d 680a4c30  fetcht 4 ,mem_24g_device_addr
-7001e 98467c00  isub temp ,null
-7001f 20428024  call z7_g24_store_dongle_addr ,zero
-70020 704b4300  jam 0 ,mem_mouse_long_mult_flag
-70021 20402f20  call g24_app_tx_attempt_success
-70022 204001b8  call p_g24_txbuf_clear
-70023 2020036f  branch p_g24_transmit_by_interrupt_enable
-
-z7_g24_store_dongle_addr:
-70024 68024bd9  fetch 4 ,mem_24g_rxpayload + 2
-70025 202001f3  branch p_g24_update_addr_and_synccrc8
-
-z_g24_pair_txdata_retry:
-
-z_g24_pair_txdata_switch:
-70026 6800cd37  fetch 1 ,mem_24g_auto_paring_switch
-70027 1fe0fe01  increase 1 ,pdata
-70028 1fe17e03  and_into 3 ,pdata
-70029 6000cd37  store 1 ,mem_24g_auto_paring_switch
-7002a c000002d  beq 0 ,z_g24_auto_pair_first_attemp
-7002b c0010037  beq 2 ,z_g24_auto_pair_all_powerful
-7002c 202001ef  branch p_g24_pair_init
-
-z_g24_auto_pair_first_attemp:
-7002d 204002e0  call p_mouse_tx_power_init
-7002e 68024c30  fetch 4 ,mem_24g_device_addr
-7002f 60024c21  store 4 ,mem_24g_addr
-70030 6800cd45  fetch 1 ,mem_24g_pair_current_ch_num
-70031 6000cc04  store 1 ,mem_24g_current_ch_number
-70032 20400035  call z_g24_ch_syncword_crc8_init
-70033 6008cd45  storet 1 ,mem_24g_pair_current_ch_num
-70034 20600000  rtn
-
-z_g24_ch_syncword_crc8_init:
-70035 204001f4  call p_g24_syncword_crc8
-70036 2020016e  branch p_g24_ch
-
-z_g24_auto_pair_all_powerful:
-70037 7041de20  jam tx_power_pair ,mem_tx_power
-70038 68024d3e  fetch 4 ,mem_24g_allpowerful_addr
-70039 60024c21  store 4 ,mem_24g_addr
-7003a 6800cd46  fetch 1 ,mem_24g_powerful_current_ch_num
-7003b 6000cc04  store 1 ,mem_24g_current_ch_number
-7003c 20400035  call z_g24_ch_syncword_crc8_init
-7003d 6008cd46  storet 1 ,mem_24g_powerful_current_ch_num
-7003e 20600000  rtn
-org 0x80001
-
-z_entrance7:
-80001 c0380003  beq zcode_70 ,z_mouse_irtual_cable_unplug
-80002 20600000  rtn
-
-z_mouse_irtual_cable_unplug:
-80003 5fffffff  setarg -1
-80004 60030040  store 6 ,mem_plap
-80005 70018533  jam rec_3_mode ,mem_record_bt_mode
-80006 704b70ff  jam 0xff ,mem_mouse_fast_conn_flag
-80007 204042fb  call mouse_before_store_reconn_info
-80008 704721ff  jam 0xff ,mem_device1_type
-80009 20200317  branch p_mouse_store_flash_device_info
-org 0x90001
-
-z_entrance8:
-90001 c0400003  beq zcode_80 ,z_mouse_setting_config
-90002 20600000  rtn
-
-z_mouse_setting_config:
-90003 680240a0  fetch 4 ,mem_lap
-90004 60024c30  store 4 ,mem_24g_device_addr
-90005 20403e6e  call mouse_gpio_init
-90006 2040053c  call p_mouse_multi_led_gpio_set_float
-90007 6808cb46  fetcht 1 ,mem_flash_ncs_gpio
-90008 2040680e  call gpio_config_output
-90009 20403e1e  call mouse_param_init
-9000a 20400014  call z_mouse_bt_sdp_update
-9000b 58000000  setarg 0
-9000c 60014154  store 2 ,mem_lpm_interval
-9000d 204068a2  call load_adc_init
-9000e 20403e54  call mouse_adc_init
-9000f 20405810  call le_set_config_fixed_ltk
-90010 20405839  call le_set_justwork
-90011 2040582c  call le_set_fixed_ltk
-90012 20405818  call le_set_config_read_authentication
-90013 2020030a  branch p_mouse_load_flash_info_check
-
-z_mouse_bt_sdp_update:
-90014 204074b9  call enable_authrom
-90015 d8c08c00  arg 0x8c00 ,contr
-90016 d8a04876  arg mem_mouse_uuid_list ,contw
-90017 df200171  arg 369 ,loopcnt
-90018 20407f01  call memcpy
-90019 580f0209  setarg 0x0f0209
-9001a e0a18000  istore 3 ,contw
-9001b 58120009  setarg 0x120009
-9001c e0a18000  istore 3 ,contw
-9001d 58100209  setarg 0x100209
-9001e e0a18000  istore 3 ,contw
-9001f 58000009  setarg 0x000009
-90020 e0a18000  istore 3 ,contw
-90021 d8c08d71  arg 0x8d71 ,contr
-90022 df200109  arg 265 ,loopcnt
-90023 20407f01  call memcpy
-90024 70488d00  jam 0 ,mem_mouse_uuid_list + 23
-90025 7048856d  jam 0x6d ,mem_mouse_uuid_list + 15
-90026 5800401f  setarg 0x401f
-90027 600149db  store 2 ,mem_mouse_uuid_list + 357
-90028 58006d04  setarg 0x6d04
-90029 60014a44  store 2 ,mem_mouse_uuid_list + 462
-9002a 580016b0  setarg 0x16b0
-9002b 60014a4a  store 2 ,mem_mouse_uuid_list + 468
-9002c 58004876  setarg mem_mouse_uuid_list
-9002d 60014575  store 2 ,mem_ui_uuid_table
-9002e 20600000  rtn
-org 0xa0001
-
-z_entrance9:
-a0001 c0480004  beq zcode_90 ,z_g24_pairing_sm
-a0002 c048801e  beq zcode_91 ,z_g24_paring_mode
-a0003 20600000  rtn
-
-z_g24_pairing_sm:
-a0004 6800cbfe  fetch 1 ,mem_24g_ensure
-a0005 c000ffe7  beq ensure_on_24g ,enable_user
-a0006 6800cc09  fetch 1 ,mem_24g_pairing_sm
-a0007 c000800b  beq state_24g_pairing_1 ,z_g24_pairing_sm_1
-a0008 c001000e  beq state_24g_pairing_2 ,z_g24_pairing_sm_2
-a0009 c0018011  beq state_24g_pairing_3 ,z_g24_pairing_sm_3
-a000a 20202a8c  branch assert
-
-z_g24_pairing_sm_1:
-a000b 704c0911  jam state_24g_pairing_1_waiting_ack ,mem_24g_pairing_sm
-a000c 70119eaa  jam 0xaa ,mem_24g_common_temp
-a000d 20200013  branch z_g24_pairing_sm_common
-
-z_g24_pairing_sm_2:
-a000e 704c0912  jam state_24g_pairing_2_waiting_ack ,mem_24g_pairing_sm
-a000f 70119e55  jam 0x55 ,mem_24g_common_temp
-a0010 20200013  branch z_g24_pairing_sm_common
-
-z_g24_pairing_sm_3:
-a0011 704c0913  jam state_24g_pairing_3_waiting_ack ,mem_24g_pairing_sm
-a0012 70119e22  jam 0x22 ,mem_24g_common_temp
-
-z_g24_pairing_sm_common:
-a0013 6800cbfa  fetch 1 ,mem_24g_data_type
-a0014 1fe17e07  and_into bits_data ,pdata
-a0015 6000919f  store 1 ,mem_24g_common_temp + 1
-a0016 68024c30  fetch 4 ,mem_24g_device_addr
-a0017 600211a0  store 4 ,mem_24g_common_temp + 2
-
-z_g24_put_pairing_data_in_buff:
-a0018 7011a400  jam 0 ,mem_24g_common_temp + 6
-a0019 da20119e  arg mem_24g_common_temp ,rega
-a001a d8400007  arg 7 ,temp
-a001b 20400213  call p_g24_put_data_in_buff
-a001c 20400183  call p_g24_txdata_enable_tx
-a001d 20207fe7  branch enable_user
-
-z_g24_paring_mode:
-a001e 6800cc09  fetch 1 ,mem_24g_pairing_sm
-a001f c17f8000  rtneq state_24g_pairing_success
-a0020 c0088024  beq state_24g_pairing_1_waiting_ack ,z_g24_pairing_sm_1_waiting_ack
-a0021 c0090026  beq state_24g_pairing_2_waiting_ack ,z_g24_pairing_sm_2_waiting_ack
-a0022 c0098028  beq state_24g_pairing_3_waiting_ack ,z_g24_pairing_sm_3_waiting_ack
-a0023 20600000  rtn
-
-z_g24_pairing_sm_1_waiting_ack:
-a0024 704c0902  jam state_24g_pairing_2 ,mem_24g_pairing_sm
-a0025 202001b4  branch p_g24_transmit_abandon
-
-z_g24_pairing_sm_2_waiting_ack:
-a0026 704c0903  jam state_24g_pairing_3 ,mem_24g_pairing_sm
-a0027 202001b4  branch p_g24_transmit_abandon
-
-z_g24_pairing_sm_3_waiting_ack:
-a0028 704c09ff  jam state_24g_pairing_success ,mem_24g_pairing_sm
-a0029 700a9939  jam bt_evt_24g_pairing_complete ,mem_fifo_temp
-a002a 20407d86  call ui_ipc_send_event
-a002b 68024bd9  fetch 4 ,mem_24g_rxpayload + 2
-a002c 204001f3  call p_g24_update_addr_and_synccrc8
-a002d 202001b4  branch p_g24_transmit_abandon
-org 0xb0001
-
-z_entrancea:
-b0001 c050002a  beq zcode_a0 ,z_mouse_before_hibernate
-b0002 c0508006  beq zcode_a1 ,z_mouse_le_conn_param_update_rsp_recieved
-b0003 c051001b  beq zcode_a2 ,z_mouse_le_bb_disconnected
-b0004 c0518014  beq zcode_a3 ,z_mouse_bb_event_reconn_timeout
-b0005 20600000  rtn
-
-z_mouse_le_conn_param_update_rsp_recieved:
-b0006 68014509  fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result
-b0007 c1000000  rtneq ble_signaling_connect_parameter_update_accepted
-b0008 68008441  fetch 1 ,mem_le_tsniff
-b0009 1feb7e00  rshift2 pdata ,pdata
-b000a 1fe67c0c  sub pdata ,le_interval_15ms ,null
-b000b 20210012  branch z_mouse_le_conn_param_update_rsp_not_accepted ,positive
-b000c 58000009  setarg le_interval_11_25ms
-b000d 60014496  store 2 ,mem_le_interval_min
-b000e 60014498  store 2 ,mem_le_interval_min + 2
-b000f 20400424  call p_app_updata_le_param
-b0010 7047c401  jam le_lpm_disable ,mem_mouse_le_conn_param_reject
-b0011 20600000  rtn
-
-z_mouse_le_conn_param_update_rsp_not_accepted:
-b0012 704b5c01  jam 1 ,mem_mouse_le_updata_not_accepted_flag
-b0013 202005f9  branch p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset
-
-z_mouse_bb_event_reconn_timeout:
-
-z_mouse_bb_event_reconn_failed:
-b0014 68014682  fetch 2 ,mem_ui_state_map
-b0015 c3860000  rtnbit1 ui_state_btn_down
-b0016 c3830000  rtnbit1 ui_state_bt_discovery
-b0017 c3858000  rtnbit1 ui_state_ble_adv
-b0018 680246d3  fetch mouse_flag_len ,mem_mouse_flag
-b0019 c3828000  rtnbit1 mouse_bt_discovery_button_down_flag
-b001a 202033a7  branch app_bb_hibernate
-
-z_mouse_le_bb_disconnected:
-b001b 704b6a00  jam 0 ,mem_mouse_le_bb_connected_flag
-b001c 58000007  setarg le_interval_8_75ms
-b001d 60014496  store 2 ,mem_le_interval_min
-b001e 60014498  store 2 ,mem_le_interval_min + 2
-b001f 7047c400  jam le_lpm_enable ,mem_mouse_le_conn_param_reject
-b0020 70479e00  jam 0 ,mem_mouse_clear_sensor_data_flag
-b0021 204003ac  call p_mouse_data_init
-b0022 20405816  call le_clr_config_more_data
-b0023 204041d9  call mouse_bb_disconnected
-b0024 6800cb66  fetch 1 ,mem_mouse_start_discovery_enable
-b0025 207a0000  rtn blank
-
-z_check_51cmd_adv:
-b0026 68034b5d  fetch 6 ,mem_le_normal_lap
-b0027 600344a0  store 6 ,mem_le_lap
-b0028 20400474  call p_mouse_le_adv_data_update
-b0029 20207df4  branch check_51cmd_adv
-
-z_mouse_before_hibernate:
-b002a 68120138  hfetch 4 ,core_lpm_ctrl
-b002b 79207e1a  set1 26 ,pdata
-b002c 6012004c  hstore 4 ,core_lpm_reg
-b002d 20402c21  call lpm_write_ctrl
-b002e 204074bd  call disable_authrom
-b002f 20404482  call mouse_devce_led_off
-b0030 20403e9f  call mouse_before_hibernate_wheel_gpio_set
-b0031 204000ef  call p_mouse_setgpio_hibernate
-b0032 2040034c  call p_flash_deep_power_down
-b0033 68108081  hfetch 1 ,core_gpio_sel1
-b0034 1fe17ef7  and pdata ,0xf7 ,pdata
-b0035 60108081  hstore 1 ,core_gpio_sel1
-b0036 6810807f  hfetch 1 ,core_gpio_pd3
-b0037 79207e00  set1 0 ,pdata
-b0038 6010807f  hstore 1 ,core_gpio_pd3
-b0039 680400a1  fetch 8 ,mem_gpio_wakeup_low
-b003a 793ffe14  set0 20 ,pdata
-b003b 600400a1  store 8 ,mem_gpio_wakeup_low
-b003c 6808c6e7  fetcht 1 ,mem_dpi_button_gpio
-b003d 2040058c  call p_gpio_set_input_pd
-b003e 680400a1  fetch 8 ,mem_gpio_wakeup_low
-b003f 79207e34  set1 52 ,pdata
-b0040 600400a1  store 8 ,mem_gpio_wakeup_low
-b0041 20600000  rtn
-org 0xc0001
-
-z_entranceb:
-c0001 c0580007  beq zcode_b0 ,z_mouse_le_bb_event_connected
-c0002 c058801d  beq zcode_b1 ,z_mouse_sniff_not_accept
-c0003 c0590023  beq zcode_b2 ,z_mouse_enter_sniff_check
-c0004 c0598028  beq zcode_b3 ,z_mouse_le_ll_start_encryt
-c0005 c05a0030  beq zcode_b4 ,z_mouse_bb_event_disconnected
-c0006 20600000  rtn
-
-z_mouse_le_bb_event_connected:
-c0007 58000000  setarg 0
-c0008 6001cb63  store 3 ,mem_le_switch_adv_flag
-c0009 df200003  arg 3 ,loopcnt
-c000a d8c044a0  arg mem_le_lap ,contr
-c000b 20400016  call z_pdata_0xff_check
-c000c 24540354  ncall p_mouse_fast_conn_quit ,user
-c000d 704b6a01  jam 1 ,mem_mouse_le_bb_connected_flag
-c000e 6800c7a1  fetch 1 ,mem_mouse_le_reconnect_flag
-c000f 243a0011  nbranch z_mouse_le_bb_event_connected_next ,blank
-c0010 704b6814  jam 0x14 ,mem_mouse_send_secutiry_request_timer
-
-z_mouse_le_bb_event_connected_next:
-c0011 704b7200  jam 0 ,mem_mouse_le_not_tx_disconn
-c0012 704b6600  jam 0 ,mem_mouse_start_discovery_enable
-c0013 2040050a  call p_mouse_null_enter_hibernate_disable
-c0014 204003ac  call p_mouse_data_init
-c0015 202041c3  branch mouse_le_bb_event_connected
-
-z_pdata_0xff_check:
-c0016 20407fe7  call enable_user
-c0017 5800ffff  setarg 0xffff
-
-z_pdata_0xff_check_loop:
-c0018 e8c90000  ifetcht 2 ,contr
-c0019 98467c00  isub temp ,null
-c001a 2442ffe9  ncall disable_user ,zero
-c001b c2000018  loop z_pdata_0xff_check_loop
-c001c 20600000  rtn
-
-z_mouse_sniff_not_accept:
-c001d 6800c808  fetch 1 ,mem_mouse_enter_sniff_count
-c001e c1010000  rtneq 2
-c001f 1fe0fe01  increase 1 ,pdata
-c0020 6000c808  store 1 ,mem_mouse_enter_sniff_count
-c0021 7041e312  jam 0x12 ,mem_sniff_param_interval
-c0022 2020340e  branch app_bt_enter_sniff
-
-z_mouse_enter_sniff_check:
-c0023 6800c808  fetch 1 ,mem_mouse_enter_sniff_count
-c0024 c1810000  rtnne 2
-c0025 70480800  jam 0 ,mem_mouse_enter_sniff_count
-c0026 7041e30e  jam 0x0e ,mem_sniff_param_interval
-c0027 2020340e  branch app_bt_enter_sniff
-
-z_mouse_le_ll_start_encryt:
-c0028 6800c7a1  fetch 1 ,mem_mouse_le_reconnect_flag
-c0029 c000802c  beq 1 ,z_mouse_le_ll_reconn_start_encryt
-c002a 7046c614  jam 20 ,mem_le_start_encrypt_timer
-c002b 2020002e  branch z_mouse_le_ll_enable_start_enc_flag
-
-z_mouse_le_ll_reconn_start_encryt:
-c002c 20400424  call p_app_updata_le_param
-c002d 7046c60a  jam 10 ,mem_le_start_encrypt_timer
-
-z_mouse_le_ll_enable_start_enc_flag:
-c002e d8e00001  arg ll_start_enc_flag ,queue
-c002f 202041b9  branch mouse_le_enable_connect_flag
-
-z_mouse_bb_event_disconnected:
-c0030 704b0100  jam 0 ,mem_bt_rcvd_switch_req_accept
-c0031 704b0300  jam 0 ,mem_bt_send_lmp_setup_complete
-c0032 704b0c00  jam 0 ,mem_mouse_bt_send_first_package_flag
-c0033 202041d9  branch mouse_bb_disconnected
- branch mouse_bb_disconnected
Index: DPI_Switch/output/romcode.rom
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/output/romcode.rom	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/output/romcode.rom	(nonexistent)
@@ -1,25124 +0,0 @@
-20402abc
-44804000
-20800000
-2040640d
-2040296c
-204065a3
-20402a96
-20404d6a
-4480c000
-20406a03
-20405cf6
-20407ccc
-204032d8
-2455e89c
-44814000
-2055b2e3
-2040756a
-2055ab41
-4481c000
-204076dc
-20407aaf
-2040756d
-2040535c
-44824000
-20402038
-204032ed
-2040208f
-204022f8
-2040236a
-20402021
-20402b6a
-20402c72
-20202012
-20402026
-c6848000
-793f8009
-20402223
-202053ce
-4482c000
-2040225e
-2422a02f
-2040220a
-1a208c01
-e8c08000
-c2805360
-c280a166
-202023cf
-2040222b
-1f227c00
-20628000
-2040220a
-68008030
-c281a0d3
-68008031
-c280a166
-202023cf
-6800c1ce
-207a0000
-c000a048
-c001204d
-c001a050
-c002a055
-c00da045
-20402257
-20628000
-2040225a
-20628000
-7041ce00
-20600000
-70049b1b
-7041ce00
-20600000
-7920001c
-793f801e
-70008fff
-70008d1f
-20202043
-793f801c
-18003600
-20202043
-2040225a
-20628000
-18000401
-70016e05
-2020205c
-44834000
-680341d0
-203a2043
-70468101
-70005503
-2020205b
-18000425
-4483c000
-680080f1
-203a2062
-1fe9fe00
-1ff27e00
-1fe0ffff
-6000c0a6
-600080f0
-70008e1f
-793f800c
-2040223b
-2422a083
-20402a6f
-60008077
-6008807c
-680341d0
-60030040
-44844001
-20407f15
-18007e00
-2841fe01
-7d20fe05
-79207e03
-60008030
-700a9903
-20407d86
-18007e00
-7920fe04
-6000804c
-58000000
-79207e01
-60008031
-7834fc00
-20402223
-7854fc00
-18000e03
-680140b9
-20407f08
-20202043
-4484c001
-680341d0
-60030040
-2841fe01
-2020a089
-20202043
-d8a00101
-df200008
-20407ec6
-700a9904
-20407d86
-20202043
-c68e0000
-18000e01
-20407f16
-7d3a001c
-243a2095
-20600000
-44854001
-680940bb
-18000e04
-2040271c
-20740000
-204028a4
-18004800
-20618000
-793f800b
-793f8000
-1c40c201
-280ffe1e
-7920c802
-2c200400
-2420a0be
-4485c001
-68008012
-1fe0fe01
-60008012
-204028d8
-204028d2
-204028f2
-20402a51
-20402a56
-20402a64
-2040264d
-204020b1
-2020209c
-44864001
-6800808d
-1fe0ffff
-6000808d
-20610000
-70008d1f
-6800808f
-1fe0ffff
-6000808f
-20610000
-7940001e
-70008fff
-20600000
-4486c001
-204028d8
-204028cc
-204028f2
-20402a5b
-204029eb
-20402a0d
-202c20c8
-204020b1
-2020209f
-44874001
-204029bb
-20402a6b
-2040251e
-793f8001
-c6858000
-4487c001
-68008013
-1fe0fe01
-60008013
-20600000
-44884002
-7834fc00
-78387c00
-680140b5
-203a20db
-18000e08
-20407f16
-247a0000
-4488c002
-680940b7
-18000e28
-2040271c
-20342114
-18000e03
-20407f16
-243a20f0
-6800804c
-c28220e6
-202020e9
-d8a00101
-df200008
-20407ec6
-44894002
-70003000
-20405cf7
-70468100
-700a9913
-20407d86
-20202114
-4489c002
-18001600
-34730200
-680080f2
-1fe0ffff
-9c42fe00
-2fe00600
-2420a0f0
-18827e00
-60008181
-18004c00
-18004800
-448a4002
-2021a114
-204028dc
-d9600600
-34730200
-448ac002
-680200f2
-98004200
-1fe0fe01
-600200f2
-280ffe0c
-7920c802
-2c200400
-2420a128
-6800800c
-1fe0fe01
-6000800c
-204028d2
-20402a51
-20402a56
-20402a64
-2040264d
-2040211a
-202020fc
-448b4002
-7854fc00
-680140b5
-207a0000
-18000e08
-20207f08
-448bc002
-6800808e
-1fe0ffff
-6000808e
-20610000
-70008e1f
-680080f0
-1fe0ffff
-600080f0
-20610000
-7940000c
-6800c0a6
-600080f0
-20600000
-448c4003
-204028cc
-20402a5b
-204029eb
-20402a0d
-202c2130
-2040211a
-20202101
-2040264d
-6800800d
-1fe0fe01
-6000800d
-18003600
-680200f2
-448cc003
-20402a4f
-204028dc
-1cc0cc01
-1c2143fd
-1c8149fc
-204028d2
-20402a51
-20402a56
-20402a64
-1c427e00
-60020161
-18000800
-18000202
-20402a6b
-20402766
-448d4003
-20402a4d
-1c21c202
-1c8149fc
-204028cc
-20402a5b
-204029eb
-20402a0d
-204c264d
-202c2155
-68008010
-203a20fc
-1fe0ffff
-60008010
-20202136
-448dc003
-6800800e
-1fe0fe01
-6000800e
-20402435
-204022f2
-202c215f
-20402455
-243a215a
-202020fc
-448e4003
-68008030
-793ffe03
-60008030
-20402440
-7854fc00
-20600000
-448ec003
-7834fc00
-78387c00
-204021e1
-20740000
-20402c69
-20402a4f
-1c40c201
-204028e2
-18004803
-20406cc2
-20402489
-204028d2
-20402a51
-20402a56
-20402a64
-20402762
-448f4003
-20405d08
-204022e4
-2436a180
-20402a88
-20402728
-6800800f
-1fe0fe01
-6000800f
-448fc003
-20406caa
-2040218b
-24748000
-204026f3
-243a2188
-7854fc00
-20600000
-20402489
-204022da
-20202177
-2036a18e
-20402a7f
-2021219c
-204021a7
-2434219c
-6800804c
-c4020000
-c3818000
-6800804b
-c3818000
-204021ae
-247a0000
-6800816e
-1fe0ffff
-6000816e
-247a0000
-20206006
-44904004
-2040245d
-7854fc00
-6800804c
-c28221a2
-20600000
-6800804c
-c3818000
-d8a00101
-df200008
-20207ec6
-4490c004
-78347c00
-6800804b
-c4018000
-204021ae
-247a0000
-20207fe9
-68008072
-1fe0ffff
-60008072
-20600000
-44914004
-68008030
-c283a1bb
-680089b5
-203a21bb
-7009b500
-700a9918
-20407d86
-202021bb
-4491c004
-20402254
-68008030
-79207e07
-60008030
-7041bd01
-68008055
-c08b21c3
-20600000
-7009b501
-68008030
-793ffe07
-60008030
-20600000
-44924004
-78547c00
-68010032
-d840ffff
-98467c00
-24628000
-68020034
-203821d3
-9d067e00
-202021d4
-9c467e00
-1fe67c04
-24610000
-18007e00
-60010032
-20207fe7
-1fe20400
-4492c004
-600a0034
-70455b01
-5800ffff
-60010032
-70007301
-20600000
-44934004
-204021c9
-24740000
-78547c00
-70001120
-793f800b
-20402a4f
-204022e6
-c505a1f4
-20402455
-243a21e7
-4493c004
-78547c00
-1c427e00
-600240ca
-78387c00
-7834fc00
-700a992a
-20207d86
-44944005
-20402a4d
-d8200010
-204022dc
-78587c00
-7854fc00
-20402818
-20402435
-4494c005
-2040247c
-2036a202
-20402455
-243a21fc
-202021ec
-68008031
-793ffe01
-60008031
-20402a88
-20402841
-78347c00
-700a992b
-20207d86
-44954005
-79200009
-1a227e00
-6001001e
-18007250
-d8a0043f
-1a208c01
-e8c08000
-1a220c00
-c2807f01
-d8a00030
-20407f01
-78577c00
-68008077
-98000800
-70008a01
-2034a21c
-70008a01
-68008030
-c4008000
-68008073
-6000808a
-68008074
-6000808b
-20600000
-4495c005
-6801001e
-98000a00
-18007250
-d8c0043f
-203b7f01
-d8c00030
-20207f01
-df200001
-68088015
-18408401
-2841fe01
-2420a231
-d8400000
-60088015
-184ffe50
-da204040
-9a20a200
-ea208000
-c280a239
-c3800000
-c3818000
-c200222d
-20600000
-44964005
-da60226a
-20402261
-24628000
-1a227e00
-6001001e
-18007c00
-20600000
-20402725
-2020a24b
-6801001e
-1fe08a17
-68008047
-e0a08000
-da6022aa
-20202261
-68008047
-2feffe03
-2020a250
-18007c01
-20600000
-18007c00
-20600000
-da6022a7
-20202261
-6809001e
-da6022cf
-20202261
-6808c1cf
-da602275
-20202261
-4496c005
-680b41d0
-da60226e
-20202261
-da60227b
-20202261
-da6022c6
-44974005
-da204040
-df200001
-ea208000
-1a627a00
-1a20a250
-c2002264
-18007c01
-20600000
-c2802266
-c281a266
-18007c00
-20600000
-c281a270
-c3002266
-1a208c10
-e8c30000
-98467c00
-20628000
-20202266
-c3002266
-1a208c16
-e8c08000
-98467c00
-20628000
-20202266
-c300a266
-204022b3
-20402297
-98467e00
-1fe0fe01
-20212291
-18c22400
-60048aa2
-6800c4c0
-243a2289
-68048aa2
-1a420c00
-1fe0fe05
-2020228c
-68048aa2
-1a420c00
-1fe0fe14
-24212266
-18424200
-204022bf
-18007c00
-20600000
-98002400
-1a208c02
-e8c10000
-203a228d
-204022bf
-2020227c
-1ff11600
-196c9600
-2022a2a1
-29601e0f
-24608000
-18511600
-196c9600
-24628000
-7920041c
-20600000
-18511600
-196c9600
-29601e0f
-24608000
-79207e1c
-20600000
-c3002266
-18007c00
-20600000
-c3002266
-1a208c01
-e8c08000
-c2802266
-1a208c17
-e8c08000
-c301a266
-18007c00
-20600000
-1a208c01
-e8c88000
-1c427e00
-284ffe01
-1a208c04
-e8ca0000
-20608000
-1a208c08
-e8c30000
-20402854
-1d027e00
-20600000
-1a208c02
-1a208a04
-e8c10000
-98409600
-19627e00
-e0a20000
-20205449
-c300a266
-204022b3
-9b60fe00
-9b60fe00
-98e0fe00
-98467c00
-24212266
-18007c00
-20600000
-c3002266
-18427e00
-9a267c00
-203f2266
-1a208c01
-e8c08000
-c2802266
-ea208000
-793ffe07
-e2208000
-20202266
-4497c005
-20402a4f
-1c40c201
-204028e2
-18004803
-204028d2
-20402a51
-20402a56
-20402a64
-20202762
-44984006
-20402a4d
-1c40c201
-204028e2
-18004803
-204028cc
-2040242a
-204029f1
-20402a5b
-204029eb
-20402a0d
-246c0000
-204029bb
-2020251c
-4498c006
-68008181
-98000800
-18000201
-204022da
-202022e4
-6800c093
-c4000000
-18000e04
-20407f16
-247a0000
-680940ad
-18000e04
-2040271c
-20740000
-20402308
-18000e04
-680140af
-242c7f08
-180a7e00
-9ea17e00
-20207f08
-44994006
-70018100
-78587c00
-78577c00
-204028a4
-1c4143fc
-18004801
-204028d8
-204028cc
-7940001d
-68008006
-1fe0fe01
-60008006
-204028f2
-204029eb
-20402a14
-246c0000
-4499c006
-18003600
-204028f9
-68008007
-1fe0fe01
-60008007
-204028d8
-20402a4d
-1c21c202
-18004801
-204028d2
-204028f2
-20402a51
-20402a5f
-1c427e00
-60020161
-20402a64
-18000202
-18000800
-20402a6b
-20402766
-20402332
-1c2143fd
-1cc0cc01
-20600000
-449a4006
-6800c0d1
-207a0000
-d8a0018e
-6800c515
-1fe27200
-1fe0fe01
-e0a08000
-18a20400
-1fe0fe01
-600141dc
-18420a00
-58000009
-e0a08000
-d8c04516
-20407f01
-da60458d
-df200004
-20402354
-da604577
-df200001
-20402354
-1800020a
-7041db02
-5800018e
-6001016f
-20402a4d
-204028d2
-20402a51
-20402a5f
-20402a64
-20402a6b
-20402766
-20600000
-18a20400
-1a620c00
-e8c08000
-207a0000
-1fe3fe00
-c2002358
-1fe22200
-1fe0fe02
-1fe20e00
-680141dc
-98e0fe00
-600141dc
-18420a00
-1a227e00
-1fe0fe01
-e0a08000
-1a620c00
-e8c08000
-e8c08000
-e0a08000
-1a227200
-20207f01
-6800c093
-c4008000
-18000e05
-20407f16
-247a0000
-680940b1
-18000e28
-2040271c
-20740000
-18000800
-70001008
-793f800b
-2040237a
-18000e05
-680140b3
-20207f08
-449ac006
-78587c00
-204028a4
-68008008
-1fe0fe01
-60008008
-18004c00
-204028e2
-1c40c201
-18004802
-449b4006
-204028cc
-204029eb
-20402a14
-246c0000
-204028f9
-68008009
-1fe0fe01
-60008009
-18003600
-20402a4d
-1c21c202
-18004801
-204028d2
-20402a51
-20402a5f
-20402a64
-2040264d
-18000800
-d9600600
-35330200
-1d01d003
-1c2143fd
-449bc006
-1cc0cc01
-204028cc
-204029eb
-20402a07
-242c23a4
-20402a6b
-2040251e
-c505a3ab
-449c4007
-68008010
-207a0000
-1fe0ffff
-60008010
-20402a4f
-2020239b
-449cc007
-793fd001
-79205000
-6800800a
-1fe0fe01
-6000800a
-20402a4d
-1c21c202
-204028d2
-20402a51
-20402a5f
-20402a64
-2040264d
-2d000603
-2020a3bc
-37cb8200
-202023b8
-68020165
-1fe1fe03
-1fe25000
-449d4007
-68030178
-60030040
-20402435
-2040247c
-2036a3c8
-20402455
-243a23c3
-20600000
-449dc007
-20402440
-2040223b
-24628000
-70003100
-20402841
-20202223
-449e4007
-20402850
-204023f3
-20740000
-449ec007
-20402c69
-20406caa
-20402514
-2436a3e2
-20402a88
-20406cc2
-20402489
-20402757
-20402728
-20405d08
-6800800b
-1fe0fe01
-6000800b
-20402841
-449f4007
-20402bb1
-20402a7f
-202123eb
-204021a7
-243423eb
-204026f3
-243a23d3
-20600000
-449fc007
-70015100
-70017f00
-2040245d
-793f8011
-20407fb0
-68008030
-20600000
-44a04008
-204021c9
-24740000
-18820400
-20402a6f
-60008181
-18420800
-70001120
-44a0c008
-20402a4f
-18000202
-2040274f
-1c427e00
-60020161
-20402762
-20402a4d
-7837fc00
-204024f6
-202c240d
-204028f9
-20402455
-243a23fb
-c6820000
-70007c34
-79200003
-20600000
-78387c00
-20402435
-204028a4
-44a14008
-204022f2
-202c2419
-20402455
-243a2410
-78587c00
-1d027e00
-600240ca
-20600000
-7834fc00
-c582241f
-793f8004
-70007c03
-70007d33
-204062f8
-18827e00
-60008077
-18007e00
-60030038
-68008031
-79207e01
-60008031
-20402a88
-7854fc00
-78347c00
-20600000
-44a1c008
-7856fc00
-793f8005
-793f800a
-793f8010
-793f800f
-68008047
-793ffe05
-79207e04
-60008047
-20600000
-44a24008
-70001120
-70004750
-680140bf
-6001003e
-1c427e00
-600240ca
-20780000
-1d027e00
-600240ca
-20600000
-44a2c008
-20405d04
-20402459
-60008046
-58000000
-6001025d
-58001c80
-60010051
-68008030
-79207e00
-60008030
-70004b00
-70004c00
-7000a000
-20202a88
-44a34008
-18007e00
-600441be
-e0a40000
-204021c5
-20202254
-68008011
-1fe0ffff
-60008011
-20600000
-6800c0cf
-1fe0fe01
-6000c0cf
-20600000
-44a3c008
-6800c1ce
-c001a462
-68008048
-c080a466
-20404d06
-2422a466
-204021a4
-7041ce00
-44a44009
-204033af
-204026e9
-700a9902
-20407d86
-20405cf7
-20404d6b
-2040757d
-68008030
-793ffe00
-60008030
-70468100
-6800804c
-2fe18000
-2020a476
-793f8001
-68008047
-c301a478
-6800804b
-c4030000
-793f8002
-20600000
-44a4c009
-68008174
-207a0000
-1fe20800
-20402514
-24768000
-18000200
-20402757
-18827e00
-60008077
-18007e00
-60008174
-20600000
-44a54009
-68008030
-c3012496
-18000207
-c583a495
-20402725
-2420a496
-20372496
-204024c1
-58000002
-600140c8
-20600000
-24770000
-44a5c009
-20402243
-2422a4a7
-68008047
-c301a4b0
-c502a4b4
-6800817f
-c28324ba
-680140c8
-1fe0ffff
-600140c8
-203a24a5
-6800c0c5
-98000200
-20600000
-44a64009
-20402687
-20402725
-2020a4b0
-2040600a
-203424be
-6800804b
-c28324c0
-c502a4b4
-6800817f
-c28324ba
-18000201
-20748000
-18000200
-20600000
-44a6c009
-68008019
-98000200
-c1808000
-18000200
-20600000
-68008158
-1fe1020f
-79200005
-20600000
-18000213
-202024c1
-204024ca
-44a74009
-68088047
-79200403
-60088047
-18227e00
-6000c0c5
-5800ffff
-600140c8
-20600000
-44a7c009
-6800804c
-2feffe05
-680141dc
-2020a4e0
-18000203
-1fe67c11
-20610000
-18000204
-1fe67c1b
-20610000
-1800020a
-1fe67c79
-20610000
-1800020b
-1fe67cb7
-20610000
-1800020e
-1fe67ce0
-20610000
-1800020f
-20600000
-18000203
-1fe67c11
-20610000
-18000204
-1fe67c36
-20610000
-1800020a
-d840016f
-98467c00
-24610000
-1800020e
-d84002a7
-98467c00
-24610000
-1800020f
-20600000
-68008030
-c300a4f5
-68010032
-203a24f5
-243724f7
-20402a4f
-1d00c201
-78287c00
-6801003e
-1fe37e00
-d8400500
-9840fe00
-20402a24
-204028ea
-18004803
-204028cc
-2040242a
-204029f1
-44a8400a
-6801003e
-1fe37e00
-20402a24
-204029eb
-7826fc00
-6801003e
-d84003bb
-9840b600
-37c18400
-1b420400
-600b009a
-7846fc00
-246c0000
-dd2003bb
-1c225000
-2035ab05
-20600000
-44a8c00a
-204024f0
-242c28f9
-204029bb
-c588a51c
-680100f6
-1fe0fe01
-600100f6
-1c230400
-18419c40
-44a9400a
-7823fc00
-78257c00
-7825fc00
-09800003
-198cfe00
-6000815d
-09800004
-08008007
-19827e00
-60008019
-09800003
-198cfe00
-6000815e
-68008019
-1fe67c03
-20212533
-c003a533
-6800804c
-2feffe05
-7920aa01
-44a9c00a
-09800008
-7845fc00
-78457c00
-20232631
-c588a53c
-680100f8
-1fe0fe01
-600100f8
-44aa400a
-6800815d
-2fe00e00
-7920800a
-2020a54c
-a8800e00
-2020a54b
-c583a64d
-680880b0
-a8400e00
-2420a64d
-68008047
-793ffe05
-79207e04
-60008047
-7836fc00
-44aac00a
-68008019
-1fe20200
-c505255b
-6808815e
-68008047
-793ffe00
-284ffe00
-7920fe00
-284ffe01
-7920fe01
-60008047
-284c0001
-2020a55b
-20402687
-44ab400a
-d8400000
-20402a1c
-18217e0f
-c000a587
-c000264d
-c0012659
-6808815e
-68008047
-a8400800
-2420a569
-c5852568
-c303a569
-7920000f
-44abc00a
-18227e00
-c001a589
-c002258d
-c003a578
-c004258c
-d8400004
-20402a1c
-c0052588
-c005a58b
-d8400008
-20402a1c
-c0072588
-c007a58b
-20600000
-44ac400b
-7826fc00
-7824fc00
-78277c00
-d8a000d1
-1800721e
-09800008
-19897e00
-e0a08000
-c200257e
-c583a64d
-09800010
-7d230008
-2023263d
-20202620
-2020264d
-79200010
-78267c00
-2020258e
-79200010
-79202a02
-7826fc00
-44acc00b
-c500a64d
-2aac0001
-2020a59a
-7843fc00
-7826fc00
-78467c00
-1c409602
-34530400
-242c263d
-79200010
-7823fc00
-44ad400b
-78277c00
-7824fc00
-09800003
-198cfe00
-60008180
-09800005
-c50825a5
-19897200
-1f297200
-202025a8
-09800005
-19837200
-09800003
-44adc00b
-1f227e00
-6001015f
-203a25e8
-9ea67c00
-2021263d
-44ae400b
-793f8000
-68008180
-1fe17e03
-d8a00551
-c001a5ba
-c508a5e4
-68008180
-1fe17e03
-c00125bf
-c000a5d3
-2020263d
-6801015f
-1fe67c70
-2421263d
-c507a620
-202025e4
-44aec00b
-c507a620
-6801015f
-d84002e0
-98467c00
-2021263d
-68008263
-c30025c9
-c300a5ce
-2020264d
-70026101
-6801025d
-c080264d
-d8a01000
-202025e4
-70026102
-6801025f
-c080264d
-d8a01400
-202025e4
-44af400b
-c507a620
-6801015f
-d84002e0
-98467c00
-2021263d
-68008261
-c000a5dd
-c00125e1
-2020264d
-d8a01000
-6801025d
-98a08a00
-202025e4
-d8a01400
-6801025f
-98a08a00
-09800008
-19897e00
-e0a08000
-c20025e4
-44afc00b
-09800010
-20232637
-6800c363
-c000a64d
-c508a60d
-c507a64a
-68008180
-2fe00603
-2020a60d
-6801015f
-203a260d
-44b0400c
-68008261
-c000a5f9
-c0012603
-20202a8c
-6801025d
-6809015f
-9840fe00
-6001025d
-c0002a8c
-68091000
-18408404
-98467c00
-2042a747
-2020260d
-6801025f
-6809015f
-9840fe00
-6001025f
-c0002a8c
-68091400
-18408404
-98467c00
-2042a74b
-2020260d
-44b0c00c
-6808804c
-68008180
-2fe00603
-79208406
-7d208407
-6008804c
-2420a616
-79200001
-c588a620
-284ffe06
-2020a620
-680100fa
-1fe0fe01
-600100fa
-79200005
-793f8407
-793f8001
-6008804c
-44b1400c
-6808815e
-68008047
-79207e05
-284ffe02
-7920fe02
-280ffe0a
-7920fe07
-60008047
-6801015f
-243a264d
-6800804c
-793ffe07
-6000804c
-68008180
-2fe00e01
-2020264d
-44b1c00c
-7856fc00
-6801001a
-1fe0fe01
-6001001a
-2020264d
-6801001c
-1fe0fe01
-6001001c
-2040263e
-c588a63d
-79200005
-2020264d
-44b2400c
-68008180
-2fe00603
-2420a646
-6808804c
-793f8406
-6008804c
-20600000
-6808804c
-793f8407
-6008804c
-20204c0b
-68008047
-79207e05
-60008047
-44b2c00c
-784efc00
-784e7c00
-7846fc00
-78467c00
-7844fc00
-78477c00
-7843fc00
-2030a8f9
-37d38200
-20000064
-202028f9
-44b3400c
-7824fc00
-78267c00
-09800048
-2feffe3a
-79208000
-1c020400
-57e04000
-57e03c00
-782afc00
-380bffff
-380cffff
-20000020
-29a80000
-1d827e00
-60018178
-1da27e00
-6000817b
-18424000
-2020a66e
-2020263d
-44b3c00c
-09800048
-57e03e00
-57e00800
-57e05c00
-57e02400
-18007e00
-09800010
-2023263d
-5ffffffc
-9a417e00
-60020165
-1ba27e00
-60018175
-1b827e00
-60008173
-18827e00
-60008174
-1dc27e00
-6001017c
-1c227e00
-08008220
-28201e02
-7920800b
-2020264d
-44b4400d
-68008047
-c4018000
-793ffe03
-79407e06
-60008047
-6800c0c5
-c009a69c
-c1038000
-6800804b
-c4030000
-793ffe06
-79207e07
-6000804b
-793f8002
-68014246
-247a0000
-6800804b
-793ffe07
-6000804b
-2020525d
-44b4c00d
-680084b7
-1fe37e00
-c008a6b8
-c00926c0
-c00c26e9
-c03fa6a8
-c1818000
-680084b8
-c015a6b0
-c008a6ab
-20600000
-680084b8
-79207e07
-20600000
-20748000
-68008030
-c3820000
-70007c31
-20600000
-20748000
-68008031
-2feffe04
-2020a6b5
-20600000
-793ffe04
-60008031
-20600000
-44b5400d
-6800804c
-79207e02
-6000804c
-70801101
-68008030
-2feffe04
-20600000
-44b5c00d
-6800804c
-793ffe02
-6000804c
-70801100
-20600000
-44b6400d
-1c427e00
-6002420c
-1c40a203
-2034a6cc
-1d00a203
-68090032
-1a227e00
-793ffe1b
-9846fc00
-68010075
-20407f86
-18072600
-9a667e00
-202126d6
-9840fe00
-9a20fe00
-60020034
-70455b00
-68008030
-79207e01
-60008030
-68008073
-6000808a
-58000000
-6001c169
-6001c16c
-6000c159
-700a990b
-20407d86
-680140c1
-6001003e
-24748000
-18808fff
-20600000
-44b6c00d
-68008030
-c4008000
-793ffe01
-60008030
-680140bf
-6001003e
-7855fc00
-700a990c
-20207d86
-44b7400d
-78377c00
-68008030
-c280a700
-c6088000
-68008047
-c3818000
-68008048
-247a0000
-6800804b
-c3830000
-18007e00
-20600000
-c301270f
-6800808a
-c0012706
-68008047
-c281a718
-c5842718
-2434a718
-68008048
-243a2718
-680080ef
-1fe0ffff
-600080ef
-243a26fe
-7000ef10
-20202718
-6800808a
-c080a718
-6800808b
-203a2718
-1fe0ffff
-6000808b
-68008047
-c3818000
-24768000
-6800808a
-1fe0ffff
-6000808a
-20600000
-44b7c00d
-78487c00
-18423600
-20402260
-78547c00
-24628000
-18003600
-78347c00
-20600000
-6800c158
-a881fe00
-20600000
-44b8400e
-793f8001
-70026a00
-68008263
-207a0000
-2feffe00
-d8c01000
-2040cd79
-44b8c00e
-6800826a
-c000a73b
-70026a00
-68008263
-c4008000
-d8c01400
-20404d79
-6800826a
-c000a741
-20600000
-68008263
-793ffe00
-60008263
-58000000
-6001025d
-20600000
-68008263
-793ffe01
-60008263
-58000000
-6001025f
-20600000
-68008263
-79207e00
-60008263
-20600000
-68008263
-79207e01
-60008263
-20600000
-44b9400e
-1d00c201
-204028ea
-18004803
-204028d2
-20402a51
-20402a5f
-20202a64
-44b9c00e
-20402a4d
-1d027e00
-680a40ca
-98467e00
-c1808000
-28203e00
-2420a761
-68008019
-207a0000
-2040274f
-28203e10
-2020a64d
-1c230400
-18419c40
-44ba400e
-7823fc00
-78257c00
-782dfc00
-793f8010
-18827e00
-08008603
-18227e00
-08008604
-68008047
-08008004
-08008603
-78247c00
-08008608
-784dfc00
-78447c00
-78457c00
-793faa02
-d8400000
-20402a1c
-44bac00e
-18217e1f
-c009a7b4
-c000264d
-c000a64d
-c0012797
-c001a7c5
-c00227cb
-c003a78c
-c00427ca
-d8400004
-20402a1c
-c00527c7
-c005a7cd
-d8400008
-20402a1c
-c007a7cd
-202027c7
-44bb400e
-782efc00
-7824fc00
-78277c00
-1800721e
-d8c000b3
-e8c08000
-08008608
-c2002792
-c503a7f7
-2020264d
-44bbc00e
-68008181
-1fe20800
-68008090
-1fe23800
-6801c0aa
-1fe23a00
-680140a4
-1fe25c00
-7824fc00
-782e7c00
-1c022200
-204028e2
-782afc00
-20000020
-1c221600
-68020161
-1fe24200
-53c07e00
-79207e3a
-08008648
-53e07e00
-08008648
-19624200
-1a224000
-78247c00
-08008610
-78447c00
-2020264d
-44bc400f
-78277c00
-7824fc00
-782e7c00
-680084b6
-1fe105f8
-d8c004b6
-18408408
-1840a7b8
-242127c2
-e8c48000
-08008648
-1a620400
-202027bc
-e8c48000
-08418600
-202027f7
-782e7c00
-202027d0
-782e7c00
-79200010
-202027d0
-79202a02
-782efc00
-202027d0
-79202a02
-782efc00
-79200010
-44bcc00f
-6800804c
-c302a7e5
-18267c03
-202127e5
-78477c00
-784e7c00
-782efc00
-7843fc00
-79202a01
-2aaffe02
-2020a7df
-580abeee
-08008614
-202027e3
-585faeba
-08008618
-58000012
-08008606
-7823fc00
-79200010
-78277c00
-7824fc00
-c502a800
-6800c1db
-08008603
-680141dc
-98007200
-c50827ef
-08008605
-202027f0
-0800860d
-1f227e00
-203a27f7
-6801016f
-98000c00
-e8c08000
-08008608
-c20027f4
-78247c00
-08008610
-78447c00
-204024c1
-6800804c
-c302a64d
-18007e00
-08008606
-2020264d
-44bd400f
-c5082808
-68008180
-08008603
-6800815f
-98002600
-08008605
-2020280d
-68008180
-08008603
-6801015f
-98002600
-0800860d
-d8c00551
-1a627c00
-2022a814
-e8c08000
-08008608
-1a60a7ff
-2020280e
-680100fc
-1fe0fe01
-600100fc
-202027f7
-68020165
-1fe0a207
-68010171
-243a281e
-1a20a3fd
-20202826
-1feffe0c
-68190040
-18408401
-98467e00
-24212825
-1a20a3ff
-20202821
-1fe67e00
-37d18200
-2c400600
-2420a826
-98005200
-1a225000
-98005200
-20600000
-44bdc00f
-37d10200
-1b427e00
-98000c00
-1ff17e00
-9c467200
-1f217203
-2422a837
-18007e00
-2020283b
-d8400ea6
-18007e00
-9840fe00
-c2002839
-98c0fe00
-1fe6fc0c
-20407f86
-1807fe00
-60010171
-20600000
-44be400f
-1b427e00
-1b220400
-98467c00
-7d217e2c
-98460400
-58000ea6
-284c000f
-2020a84c
-5fff0ea6
-98408400
-600b0447
-207b0000
-600b0038
-20600000
-78587c00
-68030447
-203b2854
-68030038
-9b20e000
-1e00e00a
-58000ea6
-9e067e00
-2fec000f
-2020a85e
-5800f15a
-9e00e000
-1e023400
-20600000
-18007c00
-2020285c
-44bec00f
-20402918
-1c227e00
-1fe17f80
-2c800e03
-2420a869
-1fe97e00
-9ae0fe00
-2020286a
-1ae27e00
-1fe6fc4f
-782afc00
-20407f86
-18072200
-1a2085d8
-20212872
-1a238400
-20202874
-18438400
-18408401
-44bf400f
-68008031
-c301a885
-680240d2
-9c267c00
-20212885
-204028a4
-6800c0d9
-207a0000
-68008031
-79207e02
-60008031
-6802c0e7
-6002c0da
-e8c28000
-6002c0df
-204028a9
-68008031
-c4010000
-2c2ffe01
-2020a8a1
-18492200
-18410e07
-580040da
-9a20a200
-ea208000
-afec0000
-2020a892
-18427e00
-2020289e
-6800c0e4
-98002400
-1c227e00
-1fe17f80
-1fe97e00
-9ae0fe00
-9a46fc00
-580040f2
-20407f86
-18072200
-9a208c00
-e8c08000
-6000c0e5
-98000400
-20600000
-6800c0e5
-98000400
-20600000
-68008031
-793ffe02
-793ffe03
-60008031
-20600000
-44bfc00f
-d8a040f2
-1800720a
-20407ec6
-d8a040f2
-18002600
-18000e02
-6802c0da
-98000400
-28e1fe02
-2020a8b5
-18430400
-284c0000
-2020a8b9
-1a627e00
-e0a08000
-184b0400
-1a60a602
-2a61fc28
-2420a8c2
-6802c0df
-98000400
-28e1fe02
-2020a8c2
-18430400
-1a667c4e
-202128b5
-18002601
-18e08fff
-2422a8b0
-da2040f2
-18a27e00
-9a267e00
-6000c0e4
-20600000
-44c04010
-20402860
-6800817f
-c302a8d1
-680884cc
-2020291f
-44c0c010
-20402860
-6800817f
-c30228d7
-680884cb
-20202933
-18005a00
-6801c0a7
-98005800
-20600000
-44c14010
-6800c1d3
-1fe25a00
-6801c1d0
-1fe25800
-20600000
-44c1c010
-680140a4
-1fe25c00
-6800c0a3
-1fe25a00
-6801c0a0
-1fe25800
-20600000
-44c24010
-68010044
-1fe25c00
-68008043
-1fe25a00
-68018040
-1fe25800
-20600000
-c51028f5
-c68e8000
-c68f8000
-1d815900
-782afc00
-20000020
-20600000
-44c2c010
-2030a90a
-708955d4
-20000004
-708955d2
-20000004
-708955d1
-20000004
-6800c1de
-c0002908
-c000a915
-c0012908
-c001a915
-c0022915
-c0102915
-708955d0
-708956e0
-18002a00
-7850fc00
-78507c00
-782f7c00
-70890200
-70890100
-70890000
-70890300
-70890470
-70890600
-20600000
-708955d0
-708956c0
-2020290a
-44c34010
-70890200
-70890100
-70890018
-708903a7
-7089047f
-20600000
-44c3c010
-60088017
-1840a204
-70896d07
-20202981
-44c44011
-708901cf
-2000000a
-708900ff
-708903af
-708904ff
-2000000a
-708902a0
-20600000
-6800c1e0
-203a2931
-1840a202
-20600000
-1840a200
-20600000
-44c4c011
-60088017
-2040292d
-20402981
-58000500
-20402a8f
-70890601
-7089003c
-708901e0
-70896d12
-2000000a
-70890201
-7089023d
-2000000a
-708903b7
-2000000a
-7089027f
-6800c1de
-c000294b
-c000a94f
-c0012953
-c001a957
-c002295b
-c010295f
-708956f0
-20402965
-708955d8
-20600000
-708956df
-20402965
-708955df
-20600000
-708956ff
-20402965
-708955df
-20600000
-708956ce
-20402965
-708955d8
-20600000
-708956cb
-20402965
-708955d8
-20600000
-708955d0
-708956c0
-7089574c
-7089586c
-70895950
-20600000
-20000004
-708955d1
-20000004
-708955d2
-20000004
-708955d4
-20600000
-70804206
-680140c3
-c307296d
-98000c00
-d8408900
-e8c08000
-c07fa977
-98418a00
-e8c08000
-e0a08000
-20202971
-44c54011
-20402be5
-204029c9
-580007d0
-9c40fe00
-60020169
-79202a03
-18002a00
-2455a998
-202029ab
-44c5c011
-58000960
-9a208400
-6800c0bd
-70895f04
-984ffe00
-6808c0be
-9846fc00
-20407f86
-1807a200
-18077e00
-1ff07e00
-1ff27e00
-9846fc00
-20407f86
-1807fe00
-1fed7e00
-1fe3fe00
-9a21fe00
-60120960
-70895f44
-70895fc4
-20600000
-44c64011
-70890602
-5803d090
-20402a8f
-7089007f
-20000082
-70895230
-708901d0
-70895270
-708952f0
-18007232
-68108980
-c282a9a6
-c20029a3
-6000c0ce
-70890100
-70890000
-70890600
-20600000
-44c6c011
-6800c0ce
-79207e05
-60108952
-68188950
-18410407
-1fe9fe00
-9841fe00
-60108950
-68108951
-793ffe00
-60108951
-68108952
-793ffe05
-60108952
-20600000
-44c74011
-68110981
-1ff1fe00
-1fe97e00
-1fe67e00
-1fe17eff
-1fe6fc0a
-20407f86
-1807fe00
-1ff27e00
-18070400
-9841fe00
-60008018
-20600000
-70804206
-6810896b
-793ffe04
-793ffe05
-6010896b
-70890500
-70890400
-70890470
-708905ff
-6810896b
-79207e04
-79207e05
-6010896b
-204029e9
-68108968
-79207e07
-60108968
-793ffe07
-60108968
-79207e07
-60108968
-70804205
-20000001
-70804204
-6810896b
-1fe17ecf
-6010896b
-1fe1fe30
-6010896b
-20600000
-58000f0f
-20202c18
-5800080f
-20202c18
-44c7c011
-20402924
-78507c00
-7830fc00
-782b7c00
-20600000
-44c84012
-6800804c
-2feffe02
-7920fe00
-60108011
-d8c00062
-e8c48000
-98006400
-e8c38000
-98006600
-68008054
-1fe0e9ff
-782d7c00
-20600000
-1b427e00
-6003009a
-7846fc00
-242c28f9
-dd2003bb
-1d00d001
-1d0151fc
-20600000
-7826fc00
-37cb8400
-202c29ff
-2d000402
-2420aa08
-202029ff
-44c8c012
-d9600600
-7826fc00
-34730400
-7846fc00
-242c28f9
-20600000
-44c94012
-7826fc00
-37c18400
-7846fc00
-242c28f9
-dd2003bb
-1d0151fc
-20600000
-44c9c012
-98002200
-1c227e00
-98409600
-19627e00
-600240ca
-1a227e00
-20600000
-1fe20400
-44ca4012
-18427e00
-20407f50
-1c307e00
-79207e2c
-20407f39
-793ffe2c
-20402a77
-20407f39
-20740000
-20407f43
-98003600
-37c18200
-20600000
-44cac012
-20382a38
-35330200
-1d020400
-20202a3b
-20372a3a
-34730200
-1c420400
-20342a47
-28400601
-2420aa33
-44cb4012
-68008030
-c4000000
-680240ca
-98467e00
-24610000
-1fe67cff
-20212a33
-20600000
-28400603
-2420aa33
-20202a3e
-44cbc012
-d9600600
-20202a33
-78547c00
-20202a4a
-78347c00
-20202a4a
-44cc4013
-204029f1
-7850fc00
-78307c00
-20600000
-44ccc013
-d9600e43
-34730200
-782b7c00
-20600000
-44cd4013
-d9600d00
-34730200
-20600000
-44cdc013
-d9600e43
-35330200
-782b7c00
-20600000
-44ce4013
-51207e00
-782efc00
-79202a00
-08008648
-784efc00
-20600000
-1ca20400
-18418460
-18421c00
-20600000
-44cec013
-6800c090
-1fe0fe01
-c083aa74
-18007e01
-6000c090
-98000800
-20600000
-1b220400
-20748000
-1b420400
-20600000
-1c427e00
-20748000
-1d027e00
-20600000
-44cf4013
-680a004d
-20402a7b
-98461600
-19627e00
-68090051
-18438400
-98467e00
-20600000
-44cfc013
-20402a7b
-6002004d
-20600000
-44d04014
-20202a8c
-20202a8e
-207a0000
-1fe37e00
-1fe0fffd
-1fe0ffff
-2422aa92
-18007e00
-20600000
-df200010
-d8a00000
-20407ec6
-d8a0043f
-df20000a
-20407ec6
-7009b200
-700a9900
-70048c00
-70017f00
-7004d100
-44d0c014
-70016d00
-70015100
-70015c00
-589e8b33
-6001c0a7
-58000153
-60010083
-7000851e
-70008601
-70008807
-5812e904
-60018080
-70009060
-7040d005
-70001402
-6800c65a
-245a74c1
-6800c4be
-245a7518
-44d14014
-20758000
-58000000
-600141dc
-1c437e00
-60024094
-20600000
-5800ee21
-60110050
-6812011c
-60020abe
-6810813e
-60008abd
-c301e45b
-7835fc00
-c303aacc
-7855fc00
-1ce27e00
-243a2acc
-6810813b
-c2812acc
-d85fffff
-20202b3c
-6811813c
-6011804c
-e8c08000
-1fe1feef
-e0a08000
-20402c23
-6810804f
-79207e04
-6010804f
-20402c23
-2055aadf
-6810804e
-793ffe03
-6010804e
-20402c23
-2435e45b
-c6958000
-70800608
-20600000
-6800c198
-60108086
-6801c18d
-60118080
-68024181
-60120074
-6802417d
-60120070
-68044185
-60140078
-68044190
-98000000
-68140140
-600400a1
-204064ca
-20600000
-18027e00
-60044190
-68140070
-6004417d
-e8c40000
-e0a40000
-68118080
-6001c18d
-68108086
-6000c198
-20202c29
-68108063
-243a2b00
-6801c16f
-247a0000
-708063c0
-70800680
-6810812d
-c4008000
-68118149
-6001c16f
-20600000
-44d1c014
-1b427e00
-20407f37
-680a415f
-18467cff
-20610000
-1fed7e00
-1ff27e00
-9846fc00
-20407f86
-1807fe00
-d84000c8
-20407f91
-60008099
-24342b15
-1fe67e00
-6809c16f
-9840fe00
-6001c16f
-58000000
-6002415f
-20600000
-6800c177
-79207e02
-6000c177
-20202b23
-d85fffff
-6800c176
-793ffe07
-6000c176
-44d24014
-20402c29
-6800c157
-6000c17c
-6800c17a
-79207e07
-6000c17a
-44d2c014
-204029e7
-6802415f
-9840fe00
-6002415f
-20402aef
-6802c178
-6012004c
-1fef2200
-37d98200
-1b227e00
-60034163
-70800502
-37d98200
-37d98200
-1a227e00
-6010804f
-70800502
-37d98200
-37d98200
-601a004c
-70800510
-37df8200
-44d34014
-58000000
-1ce27c00
-2022ab4c
-6810813c
-6818813d
-98467c00
-20212b4a
-18427e00
-9ce67e00
-1fe0fe01
-1fe0fe08
-37d98200
-9e20fe00
-680a415b
-9840fe00
-6809c16f
-984ffe00
-1fecfe00
-1ff1fe00
-1fe0fe6e
-d8400ea6
-9846fc00
-20407f86
-1807fe00
-1ff07e00
-18070400
-9841fe00
-680b4163
-20407f2c
-18423200
-68034048
-20402854
-1b427e00
-60030a9a
-1ce27e00
-e0a08000
-6810811d
-1fe1fef0
-e0a08000
-20600000
-44d3c014
-20402afa
-6801c16f
-207a0000
-6800c091
-207a0000
-6800c65a
-203a2b74
-6800c5b1
-207a0000
-6800c4c0
-247a0000
-20402c3a
-247a0000
-6800c040
-2fe00e03
-2420ab9d
-68014042
-207a0000
-20758000
-44d44015
-680880a0
-68014042
-984ffe00
-18518400
-184b0400
-98467e00
-680a4044
-9840fe00
-6808c156
-98467e00
-1ff06000
-44d4c015
-6801404e
-1fe37e00
-20407f50
-1e027e00
-20407f39
-1b420400
-20407f37
-20740000
-20407f49
-44d54015
-6800c178
-98467c00
-20212b18
-600a415b
-20403328
-204052fb
-680a415b
-20202b2a
-44d5c015
-6800c040
-c3800000
-c3818000
-6800c65a
-203a2ba5
-6800c5b1
-207a0000
-44d64015
-6800c36e
-243a2baa
-6800c093
-207a0000
-68014154
-207a0000
-6808c156
-98467e00
-d8401d4c
-984ffe00
-20202b93
-44d6c015
-7855fc00
-68008030
-c4008000
-2436abd0
-20402bcb
-680140c1
-6001003e
-68008047
-c281abde
-c586abde
-20405274
-243a2bde
-6800c55c
-c280abde
-7000a000
-c586abde
-6800c174
-203a2be2
-1fe0ffff
-6000c174
-20600000
-d8e00001
-202060cd
-d8e00001
-202060d1
-70415900
-6801c169
-1fe0fe01
-6001c169
-20600000
-44d74015
-680940c1
-18430400
-6801003e
-9840fe00
-6001003e
-7000a000
-6801c16c
-1fe0fe01
-6001c16c
-6800c159
-1fe0fe01
-6000c159
-20600000
-7000a000
-6800c173
-6000c174
-20600000
-6808c172
-600880a0
-20600000
-44d7c015
-6800c178
-247a0000
-70804206
-58000f0c
-20402c18
-58030d40
-20402a8f
-37d98200
-1e226000
-204029e7
-70804204
-2000000a
-37d98200
-1e227e00
-9e067e00
-1fe0fe30
-d84000ff
-20407f91
-6000c178
-20007530
-20007530
-20007530
-20600000
-6800c178
-247a0000
-708044ff
-70804206
-204029e7
-580003e8
-9e20e000
-07e00000
-1e227e00
-20002ee0
-20002ee0
-20002ee0
-20002ee0
-20002ee0
-20002ee0
-20002ee0
-20002ee0
-20002ee0
-9e067e00
-1fe0fe30
-d84000ff
-20407f91
-6000c178
-20007530
-20007530
-20007530
-20600000
-d8a00fff
-98a10a00
-6800c175
-1fe17ef0
-1fed7e00
-98a1fe00
-6011004c
-e8c10000
-e0a10000
-58000001
-20202c24
-58000002
-37d98200
-60108005
-37d98200
-37d98200
-20600000
-44d84016
-680200a1
-6012004c
-58000004
-20402c24
-680200a5
-6012004c
-58000008
-20202c24
-68014152
-f9207e00
-60014152
-20600000
-68014152
-f93ffe00
-60014152
-20600000
-44d8c016
-20403326
-68014152
-1fe22200
-6800804c
-2feffe06
-7920a20b
-68008078
-6808807c
-9840fe00
-68088048
-9840fe00
-7d3a220a
-6800c4ff
-7d3a2201
-6801025d
-6809025f
-9840fe00
-7d3a220d
-68044668
-7d3a220f
-68044670
-7d3a220e
-6800c1ce
-7d3a2208
-6800c092
-2fe1fe0a
-2040ac5b
-5ffffff8
-9a212200
-1a227e00
-60014152
-20600000
-68110112
-7d3a2206
-6811010e
-7d3a2205
-20600000
-68120138
-793ffe1b
-6012004c
-20402c21
-20202a8c
-6812013c
-793ffe14
-6012004c
-20202c23
-68014150
-c2802a8c
-20600000
-68014150
-c280aa8c
-20600000
-68014150
-c2812a8c
-20600000
-44d94016
-20402c7a
-1a60a4cd
-ea408000
-c1000000
-c000ad06
-c0012c7f
-20600000
-68094241
-18422600
-20600000
-20402f3d
-2020307d
-20403084
-2040305a
-2040305e
-202030a2
-20403231
-5800004e
-2040322f
-204032ba
-1a60a292
-ea220000
-2020322c
-20402c7a
-1a60a491
-ea488000
-20402c90
-1a608a91
-20202e56
-20402c94
-18408401
-18410403
-20600000
-1a60a4ae
-ea408000
-1fe17e03
-1fefa204
-1a60fe97
-9a20fe00
-98408c00
-e8c08000
-2020322f
-2040326c
-2040666a
-580007e2
-da200aa2
-d8400004
-204066b3
-2040666d
-68020aa2
-20403227
-247a0000
-680240a0
-20203227
-20403241
-58000000
-2040323f
-2040323a
-1fe17e07
-2020323c
-2040323a
-79207e04
-2040323c
-20203235
-2040325d
-c000acb7
-c0012cbc
-20600000
-2040323e
-1a608ad1
-204032d6
-20403242
-20202cac
-2040325a
-20202cb8
-1a60a28c
-ea208000
-1fe0fe01
-1a608a8c
-e0a08000
-c0102dd2
-20403258
-c000acca
-58000001
-2040325b
-20403258
-c080acac
-1a60a2d3
-ea208000
-1fe0fe01
-20402cd5
-c0022cd2
-20402c8a
-20402d04
-20202d8f
-20402cd4
-20202cac
-58000000
-1a608ad3
-202032b4
-2040323e
-2040325a
-20403241
-20202cac
-2040325d
-c001acd8
-2040323a
-2fec0004
-2020aca9
-2040325d
-c000acd7
-c0012cd8
-20600000
-20403253
-c1ff8000
-20402ce9
-24562cf4
-20600000
-78567c00
-1a60a2ce
-ea208000
-c1808000
-1a60a2d0
-ea208000
-c1800000
-58000001
-20402cfd
-20403237
-20207feb
-1a60a2d0
-ea208000
-203a2cff
-1fe0ffff
-2040323f
-58000002
-20402cfd
-20402c8a
-20203237
-1a608ad2
-202032b4
-58000003
-20402cfd
-20403258
-243a2cc8
-20402c8a
-58000002
-20203238
-c6930000
-79200027
-44d9c016
-1a60a28e
-ea208000
-c000ad0f
-2040306a
-24342d16
-20402d1b
-1a608a8e
-204032d6
-20402d2c
-24342d7d
-20402ce4
-20402d8f
-20402e7a
-793f8027
-20600000
-20628000
-79207e1c
-20600000
-1a60a2c2
-ea208000
-1fe0fe01
-1a608ac2
-e0a08000
-c0022d23
-c002ad27
-20600000
-1a60a2ad
-ea208000
-1a608aab
-202032b4
-1a608ac2
-204032d6
-1a60a2ac
-ea208000
-20202d25
-20403253
-c0ffaeb1
-44da4016
-20402d3a
-24342d36
-20402d53
-20402e71
-58000001
-1a608a8b
-202032b4
-1a60a28b
-ea208000
-c000ffe7
-20600000
-1a6084d8
-e8410000
-20407f9c
-24740000
-1a227e00
-60008aae
-1a608ab2
-204032d6
-20402cac
-6000919e
-68008aae
-1fe22200
-1a208401
-d8a0119f
-1a227200
-1a420c00
-20407f01
-da20119e
-c6938000
-1a608a86
-e0a88000
-18427200
-1a608a22
-1a220c00
-20207f01
-1a60a286
-ea208000
-1fe0fe02
-1a608a88
-e0a08000
-2040323a
-20403235
-1a60a286
-ea208000
-1fe9fe00
-1a60a285
-ea288000
-18410403
-18438400
-9841fe00
-1a60a2c3
-ea288000
-9840fe00
-e0a08000
-1a60a286
-ea208000
-98007200
-1a608c22
-20207f01
-2040324f
-2040325a
-20402e6d
-20402cac
-6000919e
-20402d77
-2040323a
-79207e03
-2040323c
-20402d53
-20402d33
-20202d14
-6000919f
-20403224
-600211a0
-d8400006
-da20119e
-20202d4c
-1a60a2b2
-ea208000
-203a2d6b
-1a60a2da
-ea210000
-20207f9c
-20402c7a
-20402afa
-6801c16f
-207a0000
-1a6084dc
-e8410000
-20407f9c
-1a6084b6
-e8440000
-20407f49
-600a415b
-20202b2a
-20402c7a
-1a608a8f
-204032d6
-20402da4
-242c2dae
-2437adae
-20402dd6
-20402e75
-20402c7a
-1a60a285
-ea208000
-1fe0fe01
-20403232
-20403253
-c0ffaed0
-20402cdb
-58000000
-1a608a8c
-e0a10000
-58000000
-20202d34
-7857fc00
-20402df7
-20402c7a
-1a60a2c3
-ea208000
-c000adac
-20402e11
-20202e45
-20402e45
-20202d97
-44dac016
-1a60a28d
-ea208000
-1fe0fe01
-1a608a8d
-e0a08000
-20403253
-c0ffadcc
-1a60a28f
-ea288000
-18408401
-1a608a8f
-e0a88000
-1a60a2cc
-ea208000
-98467e00
-243a2d92
-44db4016
-2040325d
-c001acbe
-1a60a2d1
-ea208000
-1fe0fe01
-1a608ad1
-e0a08000
-c0012cb3
-20402caf
-58000001
-20403238
-20202d8f
-1a60a28d
-ea208000
-c1ff8000
-1a608a8d
-204032d6
-20202dd4
-1a608a8c
-204032d6
-700a993a
-20207d86
-20402dde
-1a60a284
-ea208000
-207a0000
-98007200
-1a608c02
-1a608a64
-20207f01
-2040325f
-1fe97e00
-1a608a84
-e0a08000
-1fe0fe01
-1a608c01
-98c08c00
-e8c18000
-1a608ac4
-e0a18000
-2040325f
-1fe37e00
-1fe17e03
-1a608aca
-e0a08000
-20600000
-7844fc00
-7843fc00
-58555555
-98001e00
-20600000
-20402918
-1a60a290
-ea288000
-20202933
-20402dee
-20402df3
-79202a00
-782efc00
-78307c00
-7850fc00
-204053c4
-2040322a
-98001200
-08008620
-7824fc00
-1a60a288
-ea208000
-98007200
-1a608c42
-e8c08000
-08008608
-c2002e06
-78247c00
-08008618
-78447c00
-37d38200
-44dbc016
-20000064
-784efc00
-20600000
-7857fc00
-18002a00
-1a60a290
-ea288000
-2040291f
-20402924
-20402dee
-7826fc00
-7830fc00
-78507c00
-204053c4
-2040322a
-98001200
-78287c00
-1a60a289
-ea210000
-98003600
-37c18400
-242c2e4d
-7824fc00
-09800008
-19897e00
-1a608a00
-e0a08000
-1a60a2cd
-ea208000
-c0012e33
-44dc4017
-1a60a200
-ea208000
-1a60a287
-ea288000
-a8400e00
-2420ae45
-09800008
-19897e00
-e0a08000
-1fe97e00
-1fe1721f
-2022ae3d
-09800008
-19897e00
-e0a08000
-c2002e39
-09800018
-1fef7e00
-1ff17e00
-e0a18000
-20232e45
-7837fc00
-7846fc00
-20600000
-784efc00
-7846fc00
-7844fc00
-7843fc00
-2030a8f9
-37d38200
-20000064
-202028f9
-20402e4f
-20202e45
-204029bb
-207a0000
-1a60a2ea
-ea288000
-da200d9e
-20402e58
-1a608aea
-e0a88000
-20600000
-da4000ff
-20202e5a
-1a227e00
-98408a00
-68008018
-e0a08000
-18408401
-1a427e00
-98410400
-20600000
-d8400000
-1a220c00
-e8c08000
-98408400
-c2002e64
-184c8400
-20600000
-20402c7a
-20402e9f
-58000001
-20403272
-58000000
-20402e73
-e0a08000
-20600000
-20403270
-1fe0fe01
-1a608afc
-202032b4
-1a60a2fd
-ea208000
-1fe0fe01
-1a608afd
-202032b4
-44dcc017
-20403270
-1fe67c7c
-20610000
-1a60a2fd
-ea288000
-98460400
-20402e6d
-58000102
-9a60a200
-ea208000
-98467c00
-24212e8d
-58000103
-9a60a200
-ea208000
-98467c00
-20212e99
-20600000
-1a60a2fe
-ea208000
-c0012e93
-1fe0fe01
-20403272
-c000ae9f
-5800000a
-204032b0
-58000000
-204032b2
-1a60a2ff
-20202ea5
-1a60a2fe
-ea208000
-c0002ea7
-1fe0ffff
-20403272
-c0002ea7
-58000005
-204032b0
-58000000
-204032b2
-58000100
-9a60a200
-ea208000
-2020326a
-58000002
-204032b0
-58000000
-204032b2
-58000101
-20202ea4
-79200026
-20402c83
-58000001
-20203256
-1a60a28b
-ea208000
-c000ffe7
-20403253
-c000aeb9
-c0012ebd
-c001aec1
-20202a8c
-58000011
-20403256
-70119eaa
-20202ec4
-58000012
-20403256
-70119e55
-20202ec4
-58000013
-20403256
-70119e22
-2040323a
-1fe17e07
-6000919f
-20403224
-600211a0
-7011a400
-da20119e
-d8400007
-20402d4c
-20402d53
-20402d33
-20207fe7
-20403253
-c17f8000
-c008aed6
-c0092ed9
-c009aedc
-20600000
-58000002
-20403256
-20202d9f
-58000003
-20403256
-20202d9f
-580000ff
-20403256
-700a9939
-20407d86
-1a60a266
-ea220000
-2040322c
-20202d9f
-793f8026
-20402f08
-20402f22
-20403263
-200007d0
-20403261
-c07fadd4
-20402da4
-242c2efa
-2437aefa
-20402dd6
-20402c7a
-1a60a292
-ea2a0000
-204030be
-2022aead
-20402c7a
-1a60a266
-ea220000
-c0002ee7
-2040322c
-20202f1c
-20403261
-1fe0fe01
-20403264
-20402f04
-1fe0fe01
-1fe17e01
-20402f06
-c0002f0c
-c000af0e
-20600000
-5800018b
-202032d0
-da20018b
-202032b3
-20403267
-20403224
-2040322c
-20202c8a
-20402f08
-20202ee8
-20402c83
-20202ee8
-793f8026
-20402c8a
-20403253
-c1ff8000
-20402f22
-20403263
-200007d0
-20403261
-c07fadd4
-20402da4
-242c2f27
-2437af27
-79200026
-20403263
-580000ff
-20403256
-700a993c
-20207d86
-79200027
-70119eff
-2040323a
-20402d77
-20202d53
-20403261
-1fe0fe01
-20403264
-20402c8a
-20202f16
-20403267
-580000ff
-20403256
-20202f10
-44dd4017
-20402c7a
-580031b0
-1a608ade
-e0a10000
-20402f3d
-204048ea
-204032b6
-44ddc017
-c0003055
-c000af45
-c007af41
-20202a8c
-2040326c
-df200080
-d8a00d9e
-20207ec6
-20402f4c
-20402f4f
-204048d3
-20202f42
-44de4017
-20402f4c
-20402f4f
-20402fbd
-204048d3
-20403019
-20202f47
-20403291
-20403296
-20203299
-2040328f
-c1800000
-20402f55
-20402f65
-2040316b
-20202f96
-20403294
-c3800000
-79207e00
-20403297
-20403267
-20403299
-700d3800
-2040324f
-20402f61
-1a608a00
-df200042
-20207ed4
-20403231
-2040327d
-2040322c
-20202c8a
-44dec017
-2040324c
-c000af8d
-20403245
-c000ac8a
-58000136
-9a60a200
-ea2a0000
-1c427e00
-98467c00
-24412d18
-1fe22400
-58000136
-9a60a200
-ea220000
-1fe20400
-5800013a
-9a60a200
-18427e00
-ea288000
-98408400
-1a427e00
-98467c00
-24610000
-793ffe1c
-58000136
-9a608a00
-e0a20000
-20402c8a
-20403278
-1fe0fe01
-2040327b
-c1810000
-2040327a
-2020324f
-1c427e00
-da200136
-204032bf
-e0a20000
-2020327a
-da200d9e
-20402f94
-1a608aeb
-e0a88000
-18467c50
-24610000
-20202c8a
-df200100
-20202e62
-20402f99
-20402fa5
-20202fb1
-58000180
-204032d0
-207a0000
-d8e0000b
-20407f16
-247a0000
-204032a7
-58000001
-60008d54
-58000000
-e0a38000
-202031b8
-5800017e
-204032d0
-207a0000
-d8e0000e
-20407f16
-247a0000
-204032aa
-d8a00d64
-df200002
-20407ec6
-700d6400
-202031ed
-5800017f
-204032d0
-207a0000
-d8e0000c
-20407f16
-247a0000
-204032ad
-d8a00d74
-df200002
-20407ec6
-700d7403
-20203207
-2040328f
-c1808000
-20402fc1
-20202fcb
-20403294
-c3808000
-79207e01
-20403297
-2040329c
-20402c83
-58000000
-da200106
-204032bf
-202032c5
-2040316e
-2437af5e
-1a608c00
-58000109
-9a608a00
-df200008
-20407f01
-5800010b
-204032d0
-c0552fd9
-c02aafed
-c0113001
-c07fb212
-20202f5e
-204032bd
-c000afdd
-c0012fe8
-20600000
-58000001
-20402ff7
-58000001
-20403289
-58000080
-da200130
-204032b3
-2040327d
-da200131
-204032bf
-2020322d
-58000001
-20402fff
-58000002
-20403289
-20202fe1
-204032bd
-c000aff1
-c0012ff9
-20600000
-20402fdf
-58000106
-204032d0
-c000aff6
-20600000
-58000002
-da200106
-202032b3
-20402fea
-58000107
-204032d0
-c000affe
-20600000
-58000002
-da200107
-202032b3
-204032bd
-c000b005
-c0013011
-20600000
-58000106
-204032d0
-c0013009
-20600000
-2040328b
-1fe1fe01
-2040328d
-58000000
-58000106
-9a608a00
-e0a10000
-20202f5e
-58000107
-204032d0
-c0803015
-20600000
-2040328b
-1fe1fe02
-2040328d
-2020300c
-68008d50
-207a0000
-700d5000
-68010d4e
-d84002ba
-98467c00
-24628000
-68008cb6
-c1dd0000
-68008cb7
-44df4017
-c050303b
-c050b02c
-c0533041
-c053b043
-c054b049
-c058304d
-700d4200
-20600000
-68008cb8
-c000b031
-c0423034
-c053b039
-2020302a
-2040328b
-60008cf7
-2020303f
-20403291
-20403296
-2040328b
-60008cf7
-2020303f
-700cf7a1
-2020303f
-68008cb8
-c040b03e
-2020302a
-20403090
-700d4201
-20600000
-700cf715
-2020303f
-2040328f
-c0003047
-c000b039
-20600000
-700cf7a0
-2020303f
-700cf700
-700cf800
-700cf901
-2020303f
-2040329c
-68008cb8
-1fe0fe02
-1fe27200
-d8c00cb6
-5800013c
-9a608a00
-20207f01
-44dfc017
-2040307d
-20402c7f
-204048d3
-20203057
-2040328f
-c1800000
-20402f51
-20203098
-2040328f
-c1808000
-20402fc1
-20402fcb
-2040328b
-207a0000
-20403286
-20402f4c
-20403093
-58000000
-1a608aa7
-2020322d
-20407fe9
-1a60a2a7
-ea2a0000
-1c427e00
-98467c00
-24412d18
-1fe22400
-1a60a2a7
-ea220000
-1a60a2ab
-ea288000
-98408400
-1a427e00
-98467c00
-24610000
-793ffe1c
-1a608aa7
-e0a20000
-20207fe7
-58000001
-20403287
-20403283
-580000ff
-1a608aab
-e0a08000
-20203067
-5800015c
-204032d0
-207a0000
-2040306a
-24740000
-20403281
-1fe0fe01
-1fe17e01
-20403284
-c0002f4c
-c000b090
-20600000
-58000001
-20403292
-20203296
-58000001
-204032a5
-58000280
-d8e00008
-20207f08
-204032a2
-207a0000
-d8e00008
-20407f16
-247a0000
-204032a4
-58000007
-20403292
-20403296
-20202f5e
-44e04018
-2040328f
-c1838000
-204030cb
-204030e0
-2040316e
-2437af5e
-204030bc
-2042b172
-20402f4c
-20403294
-79207e00
-20403297
-20402f5e
-20403093
-204030bc
-2022b0c1
-58000164
-204032d3
-204030be
-2022b0c5
-58000160
-204032d3
-204030be
-2022b0c8
-20600000
-5800012b
-204032d3
-2040322a
-98467c00
-20600000
-58000182
-204032d0
-1a608a91
-202032b4
-58000185
-204032d0
-202030c3
-58000188
-204032d0
-202030c3
-20403294
-c3838000
-79207e07
-20403297
-20403283
-2040329c
-58000000
-1a608af5
-e0a18000
-da200183
-204032bf
-e0a38000
-204030bc
-24628000
-1a60a291
-ea208000
-da200182
-204032b3
-1a60a290
-ea208000
-2020314a
-44e0c018
-20403281
-1fe0fe01
-1fe17e03
-20403284
-c000310e
-c000b132
-c00130ea
-c001b132
-20600000
-20402fdf
-58000160
-2040327e
-203a30e0
-2040322c
-58000189
-204032d0
-205a3108
-58000187
-204032d0
-2040322f
-1a60a2f7
-ea288000
-da200f9e
-20402e58
-1a608af7
-e0a88000
-20402f94
-1a608afa
-e0a88000
-18467c50
-24610000
-58000188
-20403275
-20402c90
-da200188
-204032c8
-e0a88000
-da200187
-202032b3
-58000001
-da200189
-204032b3
-d8400000
-20402c94
-20203106
-20402fea
-58000164
-2040327e
-203a30e0
-2040322c
-58000186
-204032d0
-205a312c
-58000184
-204032d0
-2040322f
-1a60a2f6
-ea288000
-da20109e
-20402e58
-1a608af6
-e0a88000
-20402f94
-1a608af9
-e0a88000
-18467c50
-24610000
-58000185
-20403275
-20402c90
-da200185
-204032c8
-e0a88000
-da200184
-202032b3
-58000001
-da200186
-204032b3
-d8400000
-20402c94
-2020312a
-20402fdf
-2040327d
-2040322c
-58000183
-204032d0
-205a314c
-2040314f
-1a60a2f5
-ea288000
-da200e9e
-20402e58
-1a608af5
-e0a88000
-20402f94
-1a608af8
-e0a88000
-18467c50
-24610000
-58000182
-20403275
-20402c90
-da200182
-204032c8
-e0a88000
-da200181
-202032b3
-58000001
-da200183
-204032b3
-58000181
-204032d0
-2020322f
-1a60a200
-ea208000
-2040323c
-20402dde
-2040325f
-2feffe00
-2020b15c
-2040315d
-20402d53
-20402df7
-20202e45
-44e14018
-1a608a86
-204032d6
-5800013b
-204032d0
-207a0000
-58000006
-1a608a86
-e0a08000
-df200006
-5800012f
-9a608c00
-1a608a22
-20207f01
-2040316e
-2437af5e
-20203172
-20402f5e
-20402e11
-24778000
-20203152
-44e1c018
-20403188
-24342f5e
-1a60a284
-ea208000
-203a2f5e
-1fe0fe02
-98007200
-1a608c00
-58000109
-9a608a00
-20407f01
-20403286
-204032b6
-205a3093
-5800010b
-204032d0
-c000b19e
-c00131c6
-c001b1f2
-c07fb212
-20202f5e
-20402c7a
-20407fe9
-1a60a2ca
-ea208000
-1a60a2cb
-ea288000
-98467c00
-2442ffe7
-1a60a2ca
-ea208000
-1a608acb
-e0a08000
-1a60a2c4
-ea218000
-1a60a2c7
-ea298000
-98467c00
-2442ffe7
-1a60a2c4
-ea218000
-1a608ac7
-202032c5
-20402f88
-2040324c
-60008aa2
-20403274
-68008aa2
-284ffe03
-7920fe00
-1a608ab2
-e0a08000
-c000b216
-20403245
-20403274
-284ffe04
-7920fe00
-20403249
-1a60a2de
-ea210000
-20207f9c
-58000001
-60008d54
-2040329e
-e0a38000
-2040329e
-245a31bd
-2040329e
-205a31c2
-700d5220
-68008d38
-79207e02
-60008d38
-20600000
-58000001
-204032a8
-58000140
-d8e0000b
-20207f08
-204032a7
-58000000
-d8e0000b
-20207f08
-20403274
-284ffe03
-2020b21b
-d8a00d64
-204031e0
-68040d64
-245a31e4
-68040d64
-205a31e9
-20402c7a
-68040d64
-da200168
-204032bf
-e0a40000
-58000170
-9a60a200
-ea2c0000
-98467c00
-2442b1ed
-58000168
-9a60a200
-ea240000
-da200170
-204032bf
-e0a40000
-20202f5e
-5800010b
-9a608c00
-df200009
-20207ff3
-58000001
-204032ab
-58000140
-d8e0000e
-20207f08
-204032aa
-58000000
-d8e0000e
-20207f08
-700d5110
-68008d38
-79207e01
-60008d38
-20600000
-d8a00d74
-204031e0
-68010d75
-245a3209
-68010d75
-205a320e
-20402c7a
-68018d74
-da200178
-204032c4
-5800017b
-9a60a200
-ea298000
-98467c00
-2442b207
-58000178
-9a60a200
-ea218000
-da20017b
-204032c4
-20202f5e
-700d5221
-202031b9
-58000001
-204032ae
-58000140
-d8e0000c
-20207f08
-204032ad
-58000000
-d8e0000c
-20207f08
-204032bd
-c000b216
-c001321b
-20600000
-5800010d
-2040327e
-da200160
-204032bf
-2020322d
-5800010d
-2040327e
-da200164
-204032bf
-2020322d
-20402c7a
-1a608acd
-e0a08000
-20600000
-20402c7a
-1a60a2be
-2020327f
-20402c7a
-1a608abe
-2020322d
-1a60a2ae
-2020327f
-1a608aae
-e0a20000
-20600000
-1a608a90
-202032b4
-58000000
-20402c7a
-1a608a85
-202032b4
-1a608a42
-202032b4
-58000004
-1a608acc
-202032b4
-1a60a287
-202032d1
-1a608a87
-202032b4
-58000002
-1a608ad0
-202032b4
-58000001
-20402c7a
-1a608ace
-202032b4
-20402c7a
-1a60a2b4
-202032d1
-58000001
-20402c7a
-1a608ab4
-202032b4
-20402c7a
-1a60a2b2
-202032d1
-58000001
-20402c7a
-1a608ab2
-202032b4
-20402c7a
-1a60a296
-202032d1
-1a608a96
-202032b4
-1a60a2cf
-202032d1
-58000000
-1a608acf
-202032b4
-1a60a2d2
-202032d1
-1a60a201
-202032d1
-1a60a2b5
-202032d1
-58000000
-20402c7a
-1a608ab5
-202032b4
-20402c7a
-1a60a2fb
-ea208000
-6000c1de
-20600000
-20402c7a
-6800c1de
-1a608afb
-202032b4
-1a60a2fc
-202032d1
-1a608afe
-202032b4
-58000109
-9a60a200
-ea288000
-20600000
-58000135
-202032d0
-58000000
-da200135
-202032b3
-5800012b
-204032cd
-ea220000
-20600000
-5800015f
-202032d0
-58000000
-da20015f
-202032b3
-58000000
-da20015c
-202032b3
-da20012f
-202032b3
-58000108
-202032d0
-da200108
-202032b3
-58000105
-202032d0
-58000000
-da200105
-202032b3
-58000104
-202032d0
-58000000
-da200104
-202032b3
-58000000
-da20013b
-202032b3
-58000001
-2020329a
-5800010c
-204032cd
-ea238000
-20600000
-5800015e
-202032d0
-58000000
-da20015e
-202032b3
-58000000
-da200180
-202032b3
-58000000
-da20017e
-202032b3
-58000000
-da20017f
-202032b3
-da200102
-202032b3
-da200103
-204032c7
-e0a08000
-20600000
-5800015d
-202032d0
-da20015d
-202032b3
-5800018a
-204032d0
-2020326a
-5800010c
-202032d0
-1fe20400
-1a227e00
-9a608a00
-18427e00
-20600000
-204032bf
-e0a18000
-20600000
-20402c7a
-1fe22400
-1a227e00
-9a608a00
-1a427e00
-20600000
-20402c7a
-9a60a200
-20600000
-204032cd
-ea208000
-20600000
-204032cd
-ea2a0000
-20600000
-58000000
-202032b4
-44e24018
-6800c092
-203a32d8
-c0022f30
-c007b436
-c004c5de
-c005392a
-c00735bf
-c00844a4
-c2833d00
-20600000
-44e2c018
-70015100
-70017f00
-70018000
-58000000
-600289ae
-6800c092
-203a32e3
-c0053962
-20600000
-20407cd1
-20407d9c
-204032f6
-680141f3
-20207f9c
-680141f1
-20207f9c
-680141ef
-20207f9c
-44e34018
-da204668
-20407fc4
-207a0000
-1fe22600
-204032ff
-20203324
-da600000
-20600000
-c000b311
-c0083357
-c002b335
-c009333c
-c0033353
-c0023394
-c0013399
-c009b394
-c00a334b
-c00ab34f
-c001b32e
-c005b340
-c0063347
-c00b335b
-c00c332a
-c015331a
-c015b318
-20600000
-68014682
-79207e00
-60014682
-6801420a
-793ffe00
-6001420a
-20600000
-70022900
-20600000
-68008229
-1fe0fe01
-60008229
-1fe67c01
-202133df
-70022900
-6801420a
-79207e09
-6001420a
-202033e9
-680141f5
-20207f9c
-680141e9
-20207f9c
-680141ed
-20207f9c
-6801420a
-79207e01
-6001420a
-20203412
-68014682
-79207e07
-60014682
-6801420a
-79207e02
-6001420a
-20600000
-68014682
-79207e01
-60014682
-6801420a
-79207e04
-6001420a
-20600000
-68014682
-79207e03
-60014682
-20600000
-68014682
-79207e05
-60014682
-6801420a
-79207e03
-6001420a
-20600000
-68014682
-793ffe05
-60014682
-20600000
-68014682
-79207e09
-60014682
-20600000
-68014682
-793ffe09
-60014682
-20203418
-68014682
-79207e02
-60014682
-20600000
-6801420a
-79207e00
-6001420a
-20600000
-6801420a
-79207e08
-6001420a
-202033e9
-44e3c018
-6000822a
-6800822a
-207a0000
-1fe0ffff
-6000822a
-20407cdd
-204033d6
-20403387
-2040338d
-2040651b
-680141fd
-20407f9c
-20203361
-ea608000
-207a0000
-1fe0ffff
-e2608000
-247a0000
-1a427e00
-20207f9c
-ea610000
-207a0000
-1fe0ffff
-e2610000
-247a0000
-1a427e00
-20207f9c
-6809423f
-1840a601
-da40337f
-2020336d
-2040342d
-c000b382
-2020340a
-58000002
-e2608000
-1840a408
-ea410000
-20207f9c
-da604205
-da40338a
-2020336d
-20402252
-2022b40e
-20600000
-da60467e
-da403390
-20203374
-204033f0
-20403408
-680141f7
-20207f9c
-204033ac
-68014682
-793ffe07
-60014682
-20600000
-70420500
-68014682
-c283b39e
-2fec0001
-2040b2fd
-44e44019
-68014682
-793ffe00
-793ffe01
-793ffe02
-793ffe03
-793ffe07
-60014682
-20203418
-204033a9
-2020340a
-58000000
-60014208
-20600000
-58000000
-6001420a
-20600000
-6801420a
-60014208
-58000000
-6001420a
-20600000
-6801420a
-79207e07
-60014208
-58000000
-6001420a
-20600000
-6800c682
-2feffe05
-20600000
-5800aa55
-60010aaa
-44e4c019
-d8400002
-da200aaa
-da4000c3
-20206606
-44e54019
-d8400002
-da200a9a
-da4000c3
-204065df
-68010a9a
-d840aa55
-98467c00
-20600000
-6800c55a
-6000c205
-20600000
-d8e00009
-20202c32
-d8e00009
-20202c36
-70420605
-202033d0
-da604206
-da4033d2
-2020336d
-70436301
-20600000
-70436300
-20600000
-700a990a
-20207d8f
-700a991d
-20207d8f
-44e5c019
-6800c207
-6000816d
-70022801
-700a9903
-20207d8f
-700a991e
-20207d8f
-700a9904
-20207d8f
-68014687
-6001467e
-20403404
-700a9901
-20207d8f
-58000000
-6001467e
-700a9902
-20207d8f
-700a990f
-20207d8f
-700a9910
-20207d8f
-700a990e
-20207d8f
-700a990d
-20207d8f
-700a9917
-20207d8f
-700a9918
-20207d8f
-700a9916
-20207d8f
-700a9911
-20207d8f
-700a9915
-20207d8f
-700a9914
-20207d8f
-700a9913
-20207d8f
-700a9919
-20207d8f
-700a9906
-20207d8f
-700a9905
-20207d8f
-700a991f
-20207d8f
-700a9920
-20207d8f
-700a9925
-20207d8f
-7920000d
-20600000
-793f800d
-20600000
-2040342d
-c0013424
-58000001
-e2608000
-1840a203
-1840a406
-ea288000
-1a60a601
-e2688000
-20203385
-58000000
-e2608000
-68014682
-c304b429
-20403402
-6809423f
-1840a202
-1840a404
-20203420
-6809423f
-1840a600
-ea608000
-20600000
-2040342d
-c0803434
-2020340a
-1840a40a
-20203385
-20758000
-70808100
-58003463
-600141eb
-5800696c
-600141ed
-580034f5
-600141f3
-580034f4
-600141ef
-5800347e
-600141f5
-580034b2
-600141fd
-58003465
-600141fb
-58003470
-600141e9
-58003501
-600141f9
-44e64019
-2040359b
-20406948
-204035ad
-20407d08
-20407cd3
-5800350b
-60014766
-580034fc
-6001475d
-580034f8
-6001475f
-5800346c
-60014761
-580035a2
-600146a9
-580035a4
-600146ab
-580035a9
-600146b4
-580035a6
-600146b6
-68014682
-c3860000
-2020340a
-20403586
-2020340a
-20405892
-247a0000
-da200b06
-20407e54
-24740000
-d8c00b06
-20204746
-68014797
-60014791
-70475301
-2020358f
-6800c79d
-c000b479
-68014682
-c304b479
-6800c79e
-c000b3d0
-6800c700
-243a33d0
-202033d2
-6800c79b
-6808c79c
-9841fe00
-c000b3d0
-202033d2
-1a627e00
-c016b431
-c008341a
-c00a34df
-c00ab4e8
-c0203485
-20600000
-68014509
-c000b48c
-680143d8
-203a34a2
-70478a02
-70478f3c
-20600000
-6801449a
-203a34a0
-70478a01
-680947b4
-68014496
-9840fe00
-60014496
-1fe22200
-68014498
-9840fe00
-60014498
-9a20fe00
-1fe30400
-680147c0
-9846fc00
-20407f86
-1807fe00
-6001449a
-70479001
-20600000
-70478a03
-20600000
-70417200
-70479000
-680143d6
-680947be
-98467c00
-79212200
-680147c0
-680943d6
-98467e00
-79212201
-2a200603
-20608000
-680447be
-60044496
-70479001
-20600000
-2040337b
-204034b9
-204034be
-204034d5
-204034ca
-204034c4
-202034d9
-da604799
-da4034bc
-2020336d
-70479a00
-20600000
-da604793
-da4034c1
-20203374
-da6046bf
-da40469e
-20203591
-da60478f
-da4034c7
-2020336d
-6801449a
-6000c172
-20600000
-da604790
-da4034cd
-2020336d
-6800843f
-2fe0c000
-2420b4d3
-70478a01
-20403416
-20205abf
-70479001
-20600000
-da604791
-da4034d8
-20203374
-2020341a
-da60478d
-da4034dc
-20203374
-680147a7
-6001478d
-202035af
-680147a7
-6001478d
-58000000
-60014793
-60014791
-2040355c
-20403586
-70417200
-202033f8
-58000000
-6002478d
-6001c78a
-60014509
-7047a001
-68014797
-60014791
-20407e38
-6800c759
-c1000000
-2040358f
-2020356e
-20203508
-6800c759
-c1810000
-20203508
-da6046cd
-20403582
-da6046c6
-20203584
-70436e00
-da6046db
-20403582
-da6046d4
-202034fb
-68008477
-c0093504
-20600000
-68010478
-c006b536
-c005b571
-20600000
-6800c753
-207a0000
-20206978
-1a227e00
-203a3510
-18e27e00
-c0003513
-20600000
-18e27e00
-c000351b
-20600000
-70479d01
-da6046f7
-20403582
-da6046f0
-20403584
-68014682
-c304b532
-20203521
-70479d00
-2020351d
-6800c79a
-c1808000
-70479905
-20600000
-6800c79a
-1fe0fe01
-6000c79a
-c000b527
-c001352b
-20600000
-2040355c
-70477101
-da60476c
-20203544
-70479a00
-70477102
-da60476c
-20403544
-6800c79e
-c000b551
-20600000
-68014797
-60014791
-2040355c
-2020358f
-44e6c019
-204036fc
-ea208000
-c001b53c
-c003b540
-20600000
-6800c79e
-c0003551
-c000b55c
-20600000
-ea408000
-c000b564
-c0003569
-20600000
-44e74019
-6800c78b
-2feffe00
-24608000
-1a608c06
-e8c10000
-1ff0fe00
-1fe0f205
-1a608c03
-204036f0
-e0c08000
-1a622200
-20207e3d
-6800c759
-207a0000
-70479e01
-da6046e9
-20403582
-da6046e2
-20403584
-70478004
-70478301
-da60477b
-20203544
-6800c79e
-207a0000
-70479e00
-20403586
-70478004
-70478300
-da60477b
-20203544
-70479f01
-70478007
-70478301
-da60477b
-20203544
-70479f00
-70478007
-70478300
-da60477b
-20203544
-6800c79f
-207a0000
-20203551
-ea210000
-6001478b
-2feffe00
-24608000
-6800c7a0
-207a0000
-7047a000
-680447b6
-60044496
-70479002
-204035af
-204035b9
-70478007
-6800c79f
-6000c783
-da60477b
-20203544
-da200001
-20203585
-da200000
-2020358c
-da200000
-20407d19
-da200001
-20407d19
-6800c7a1
-202069d7
-20407d04
-df200007
-20207d26
-da6046b8
-da40469a
-20403596
-20403584
-68014795
-60014793
-202033fa
-ea410000
-60014154
-e8c10000
-60014482
-20600000
-da200000
-204069a6
-680347a1
-60030a9a
-204069ae
-6800c7a1
-202069d7
-70479b01
-20600000
-70479b00
-20600000
-70479c00
-6800c7a1
-202069d7
-70479c01
-680347a1
-60030a9a
-202069ae
-70422d00
-202068a8
-204068eb
-20406908
-600147b0
-da2047aa
-20406930
-6000c7a9
-c00035be
-1fe67c64
-242135bc
-6000c783
-70478005
-da60477b
-20203544
-70478364
-202035b9
-2020341a
-20758000
-68108081
-1fe17ef0
-60108081
-58003631
-600141eb
-58003633
-600141ed
-5800340a
-600141f7
-58003635
-600141f3
-5800364b
-600141f5
-580033d0
-600141e9
-580036f6
-600141f9
-5800367a
-600141fd
-20402c7a
-58003722
-1a608ade
-e0a10000
-580035ed
-6001475b
-580035ef
-6001475f
-44e7c019
-20403628
-20407e38
-70417202
-7049f600
-6800c7cb
-6000c69a
-c00035ee
-6800c7cc
-6000c686
-70436e00
-2040360f
-20407cd3
-20407cdd
-7047f301
-68014682
-c3860000
-2020340a
-2020360f
-7047f302
-70436e01
-2040360f
-da200000
-20407d1e
-58000020
-204046f0
-d8a043b7
-6800c4a0
-1fe104f0
-18518400
-20403609
-e0a88000
-1fe1040f
-20403609
-e0a88000
-204057a6
-6808c3af
-18427200
-d8a04372
-d8c043b0
-20407f01
-6808c3af
-18427200
-d8a04392
-d8c043b0
-20207f01
-18467c09
-2021360d
-18408437
-20600000
-18408430
-20600000
-6800c7c0
-c0ffb621
-6800c7be
-c0ffb624
-6800c7c9
-c0ffb626
-6800c72c
-1fe27200
-5800472d
-1fe22200
-1a220c00
-e8c08000
-18c22200
-c07fb61f
-1fe20400
-2040680e
-c2003619
-20600000
-680447c0
-6004472f
-20203611
-6000c72d
-20203613
-6000c72e
-20203615
-da200000
-204069a6
-204037e4
-20402c7d
-2020362d
-7047cf64
-6800c7c9
-6000c744
-202068a8
-20406835
-2020696c
-2020696c
-20206978
-20403642
-204037ee
-20403639
-20203634
-68014682
-c3848000
-6800c9f6
-c000b63e
-20600000
-6800c7ea
-c1008000
-7047ea01
-20203654
-68014682
-c4048000
-20405892
-247a0000
-da204718
-20407e54
-24740000
-d8c04718
-20204746
-1a627e00
-c016b431
-c008341a
-c00a3651
-c00ab660
-20600000
-58000000
-20403220
-20203656
-680147eb
-600147ed
-7047ce14
-70409100
-204033f8
-20403416
-6800c7bd
-c000b65e
-da200000
-20207d14
-da200000
-20207d19
-58000002
-20403220
-58000000
-6002c79c
-58000004
-204069d7
-58000005
-204069d7
-58000014
-204069d7
-58000015
-204069d7
-58000016
-204069d7
-58000007
-204069d7
-20407e38
-70475e0a
-7047600a
-7047620a
-70417202
-da200000
-20407d1e
-58000020
-204046f0
-202033fa
-2040373b
-2040373e
-20403741
-2040337b
-204036c8
-204036a1
-2040368a
-20403683
-2020368f
-da60479a
-da403686
-2020336d
-20403847
-24608000
-70479b01
-20600000
-da6047ed
-da40368d
-20203374
-7047ea02
-20203662
-da6047f1
-da403692
-2020336d
-6800c7f2
-203a369e
-7047f102
-7047f200
-58000a02
-60014752
-6800c7b9
-c001b69b
-20203762
-58000a02
-60014754
-20203762
-58000000
-60024752
-20203762
-6800c7c8
-207a0000
-68014682
-c304b6c6
-da6047ce
-da4036a8
-2020336d
-6800c7cd
-6000c7ce
-6800c7d1
-247a0000
-204068eb
-20406908
-600147e8
-da2047e2
-20406930
-6808c7cf
-98467c00
-202136b6
-6000c7cf
-1fe20400
-6008c7d0
-6800c7ca
-98467c00
-204136c1
-6008c7db
-df200006
-d8c047d6
-204036f0
-6000c7dc
-da2047d3
-20207e3d
-6800c7d2
-247a0000
-7047d201
-da200001
-20207d1e
-da200001
-20207d19
-da6047a4
-da4036cb
-2020336d
-7047a405
-7047a600
-6800c7a5
-c000b6ee
-c00036ec
-d8c0479c
-18c22200
-df200008
-1a220c00
-e8c08000
-18c22200
-c00036e3
-c000b6e6
-c00136e9
-6800c7a6
-1fe0fe01
-6000c7a6
-c20036d3
-20600000
-6800c7a6
-da4047c0
-9a40a400
-ea488000
-20600000
-204036de
-20406825
-202036d9
-204036de
-20406829
-202036d9
-6800c7a5
-c000b6e3
-202036e6
-7047a501
-202036d0
-7047a500
-202036d0
-da200000
-e8c08000
-9a20a200
-c20036f1
-1a217eff
-20600000
-68008477
-c00936f9
-20600000
-68010478
-c00a3710
-20600000
-44e8401a
-ea228000
-60028b12
-68010b12
-d8406b5a
-98467c00
-24628000
-68010b15
-1ff0fe00
-60010b15
-1fe27200
-1a20a205
-1a220c00
-d8a00b17
-20407f01
-e8c08000
-60008b21
-da200b14
-da400b17
-20600000
-58000000
-6002c752
-6002c757
-204036fc
-1a420c00
-d8a04752
-df20000a
-20407f01
-44e8c01a
-ea208000
-c001374a
-c001b75c
-c0023762
-c002b762
-c00337b1
-c003b849
-c004384c
-20600000
-68014682
-c3848000
-680147eb
-600147ed
-7049f601
-5800010c
-204032cd
-20403710
-68008b14
-c002372e
-c002b72e
-20600000
-6800c752
-245a3735
-6800c754
-245a3737
-6800c756
-245a3739
-20600000
-7049f305
-20600000
-7049f405
-20600000
-7049f505
-20600000
-da6049f3
-da403744
-2020336d
-da6049f4
-da403746
-2020336d
-da6049f5
-da403748
-2020336d
-70475200
-20203762
-70475400
-20203762
-70475600
-20203762
-2040374c
-2020374f
-6800c752
-6000c75f
-20203773
-6800c75e
-20403754
-6800c753
-6000c75d
-20203770
-c0013758
-c001b75a
-6000c75e
-20600000
-70475e05
-20600000
-70475e0a
-20600000
-6800c752
-20403754
-6800c75e
-2040379e
-204037a1
-202069c4
-6800c7f0
-247a0000
-68034752
-6003475d
-6800c75e
-6808c760
-98417e00
-6808c762
-98417e00
-205a3779
-44e9401a
-20403770
-20403773
-20203776
-da404763
-d8c0475d
-2020377b
-da40476b
-d8c0475f
-2020377b
-da404773
-d8c04761
-2020377b
-7047d100
-20600000
-e8c08000
-c0003787
-c000b780
-c0013782
-20600000
-70477b00
-20203783
-70477b01
-e8c08000
-6000c77d
-ea440000
-2020378c
-ea408000
-204069d7
-1a40a401
-ea408000
-202069d7
-6004477e
-7047d101
-6800c77b
-c000379a
-6800c77f
-6000c780
-6800c77e
-204069d7
-6800c77d
-2040379e
-6000c785
-68034780
-60030a9a
-202069ae
-6800c77e
-6000c780
-6800c77f
-20203793
-1feffe05
-1fe0fe32
-20600000
-d8402ee0
-984ffe00
-1fe6fc64
-20407f86
-18078400
-18422200
-58002ee0
-98462400
-20600000
-68108082
-79207e02
-60108082
-5800009e
-60110068
-6011006a
-20600000
-6800c7f0
-247a0000
-68014752
-60014787
-6800c7ea
-c080b7b9
-680144a0
-60014787
-44e9c01a
-204037aa
-204037dc
-5800bb80
-20402a8f
-204037e0
-58001c20
-20402a8f
-df200010
-204037dc
-68014787
-c28037c9
-58001c20
-20402a8f
-204037e0
-202037cc
-58003840
-20402a8f
-204037e0
-58001c20
-20402a8f
-68014787
-1fe37e00
-60014787
-c20037c2
-7047f102
-7047f201
-58000a01
-60014752
-6800c7b9
-c001b7d9
-20203762
-58000a01
-60014754
-20203762
-68108085
-1fe1fe40
-60108085
-20600000
-68108085
-1fe17ebf
-60108085
-20600000
-6800c7bb
-c1000000
-20402c65
-6808c7bc
-6008c786
-204067fb
-20403847
-24608000
-70479a01
-20600000
-6800c7bb
-c1000000
-6800c79b
-247a0000
-68014682
-c284b7f6
-6800c7ea
-c1808000
-44ea401a
-20403847
-24608000
-58008ca0
-20402a8f
-20403847
-24608000
-2040383f
-20403842
-24610000
-20403847
-2020b7fe
-da200000
-df200010
-2040383f
-20403842
-24610000
-20403847
-2420b805
-58002a30
-20402a8f
-20403847
-2020b812
-58000000
-1a232200
-9a21a200
-c2003805
-2020381b
-58008000
-1a232200
-9a21a200
-2040383f
-20403842
-24610000
-20403847
-2020b816
-c2003805
-44eac01a
-1a227e00
-60014789
-60014797
-6800c7ea
-c000b827
-df200007
-d8c04792
-204036f0
-6000c799
-da20478f
-20207e3d
-6800c7ef
-1fe0fe01
-6000c7ef
-1fe6fc02
-20407f86
-18078400
-18077e00
-243a3838
-6800c7bf
-98467c00
-2042b83d
-dfe0479c
-184085ff
-9840a200
-dfe00000
-e2208000
-20600000
-dfe0479c
-9840a200
-dfe00002
-e2208000
-20600000
-7047f001
-20600000
-1c427e00
-6002478b
-20600000
-1c427e00
-680a478b
-98467e00
-1fe67cc8
-20600000
-6808c786
-2020681d
-68044752
-6004479c
-20600000
-6800c7b9
-6000c7af
-6800c7ba
-6000c7b0
-6800c7bb
-6000c7b1
-df20000d
-d8c047aa
-204036f0
-6000c7b7
-da2047a7
-20207e3d
-204065c2
-7046f67a
-2040386d
-20403867
-58003860
-600141fd
-da200000
-202069a6
-680146a1
-207a0000
-1fe0ffff
-600146a1
-c1800000
-7046a000
-20600000
-44eb401a
-6800c6a4
-1fe67c28
-20610000
-7046a400
-20600000
-da2046a4
-da400000
-d8400051
-202065df
-78547c00
-6800c6a3
-1fe27200
-da2046a5
-1a622400
-44ebc01a
-2040387c
-2022ffe7
-1a20a204
-c2003876
-20600000
-44ec401b
-ea218000
-ea498000
-98467c00
-20600000
-44ecc01b
-ea218000
-ea498000
-98467c00
-24628000
-e8c08000
-1fe67c00
-20628000
-1a208c03
-e8c88000
-98467c00
-20600000
-44ed401b
-78547c00
-6800c6a3
-1fe27200
-da2046a5
-1a622400
-20403881
-2022ffe7
-1a20a204
-c2003893
-20600000
-68008004
-1fe0fe01
-60008004
-da6002e5
-ea610000
-d84055aa
-98467c00
-24628000
-18c22600
-ea698000
-58ffffff
-98467c00
-2022b8a8
-2040388d
-203438a8
-20600000
-44edc01b
-1a60a604
-ea608000
-6808c6f6
-98467c00
-20628000
-6000c6f6
-68008003
-1fe0fe01
-60008003
-1a60a601
-ea608000
-6000c6f5
-1fe27200
-207a0000
-e8c08000
-c00038c2
-c000b8cf
-c00138d4
-c001b8d9
-c00238de
-c002b8e3
-c00338e8
-c07fb8ea
-c20038b7
-20600000
-18c22600
-6800c69a
-60008a9a
-d8400000
-60088a9b
-58002710
-60018a9c
-ea608000
-60008a9f
-204069ae
-1a610c01
-c20038b7
-20600000
-1a620c00
-6800c69b
-60008a9a
-d8400001
-202038c6
-1a620c00
-6800c69c
-60008a9a
-d8400002
-202038c6
-1a620c00
-6800c69d
-60008a9a
-d8400003
-202038c6
-1a620c00
-6800c69e
-60008a9a
-d8400004
-202038c6
-1a620c00
-6800c69f
-60008a9a
-d8400005
-202038c6
-e8c08000
-20600000
-18c22600
-6800c6a0
-c080b8ee
-204038f0
-1a610c04
-20600000
-44ee401b
-20403871
-203438fe
-6800c6a4
-1fe20400
-1fe0fe01
-6000c6a4
-20403867
-184b8400
-580046a5
-98408a00
-ea620000
-e0a20000
-20203903
-1a608c03
-e8c08000
-207a0000
-ea620000
-e2220000
-da2046a4
-da400000
-d8400051
-20206606
-6808c69a
-20406825
-20600000
-6808c69a
-20406829
-6808c69a
-20406825
-2040391d
-6800c6a7
-247a0000
-20402c29
-68120138
-793ffe0f
-6012004c
-20402c21
-d85fffff
-20202b2a
-6800c6a7
-203a56f9
-1fe0ffff
-6000c6a7
-202056f9
-1feffe14
-d8c046a8
-98c08c00
-e8c08000
-207a0000
-1fe22200
-1a227200
-d8a04372
-20407f01
-1a227e00
-1fe0fe02
-6000c36f
-20600000
-20758000
-204057a3
-204068a8
-58003982
-600141f3
-5800396e
-600141f1
-58003986
-600141f5
-5800396d
-600141ef
-58003969
-600141e9
-58003ab7
-600141fb
-58003c32
-6001456f
-58003cc2
-600141f9
-58003cd7
-600141fd
-2040397f
-44eec01b
-20403945
-20403964
-20402c6f
-20203c48
-680246aa
-60120054
-680246ae
-6012005a
-68108081
-1fe1fe04
-1fe17efc
-60108081
-70806200
-680146aa
-60110058
-680146ae
-6011005e
-60110060
-68120078
-79207e07
-60120078
-68110050
-793ffe0f
-60110050
-204066ce
-70804300
-70806281
-6800c6bf
-2feffe00
-68188062
-79208404
-60188062
-20600000
-2040397f
-20203945
-6808c69e
-2040680e
-204039e6
-6808c69c
-202067fb
-6808c69c
-2040681d
-2420b3d2
-202033d0
-20600000
-20403970
-20203ce9
-6800c682
-c302397f
-44ef401b
-58003eff
-680a46c5
-98408400
-1c427e00
-98467c00
-24610000
-68014682
-c282b97f
-6800c6bf
-c3830000
-20403cec
-2040340e
-1c427e00
-600246c5
-20600000
-20403ce9
-2040526e
-247a0000
-202039eb
-1a627e00
-c000b9d4
-c00139a3
-c00239d7
-c002b9c4
-c00439aa
-c004b9b1
-c00539c9
-c005b9b6
-c00639c2
-c009b9d7
-c00a39cf
-c00ab9c6
-c010b9ca
-c011b9cb
-c01239ce
-c0183c8a
-c018bc8c
-c0193c9a
-c019bc98
-c01a3c84
-c01abc73
-c01b3c82
-c01bbc8e
-c01c3c90
-c01dbca1
-c01ebc6a
-c020b9d9
-20600000
-2040397f
-6800c665
-245a3c8e
-204039d7
-68014682
-c4020000
-202039b1
-68014682
-79207e04
-60014682
-6800c6a7
-6000c172
-204039e6
-20203c1d
-68014682
-c4020000
-793ffe04
-60014682
-20203c21
-2040397f
-68014042
-1fe37e00
-680941e3
-98467c00
-2422b9bd
-20203416
-6800c6bf
-c3828000
-68110112
-245a3cf0
-2020340c
-20403cee
-20203418
-2040397f
-202039dd
-20405816
-204039d7
-20203c23
-202033dd
-20203cee
-6800c6bf
-c302b40e
-20203cf2
-20203cf2
-204058ba
-204039dd
-6800c6a8
-6000c172
-20203c1f
-70466100
-20403cee
-20203cf2
-20403a52
-202039db
-20405cc9
-20205b02
-6808c69e
-20206829
-204039df
-202039e6
-6800c6a1
-2feffe00
-2040b3f0
-6800c6a1
-2feffe01
-2040b3f8
-20600000
-6808c69e
-20206825
-6800c56b
-c1000000
-20206c28
-6810810c
-c281b9e8
-204066cb
-e8608000
-c080ba01
-68110112
-1fe67c02
-20610000
-e8608000
-60008b03
-e8688000
-18622200
-60088b04
-18408403
-68110112
-98460400
-24610000
-700b0501
-20403a17
-68008b05
-c1000000
-20203a12
-20407ec1
-20403c79
-20203a04
-44efc01b
-68110112
-207a0000
-204066cb
-e8608000
-1fe67c01
-2442ba16
-2422ba04
-e8608000
-c1028000
-c1148000
-186087ff
-20403a16
-20203a04
-204066cb
-18608602
-e8608000
-98608600
-202066c8
-44f0401c
-68008b03
-c0003a3f
-c000ba44
-c0013a49
-c001ba5f
-c0023a6b
-c002ba75
-c004ba9a
-c005bad7
-c0063ad8
-c006baec
-c0073af4
-c007bafa
-c0083b06
-c008bb0e
-c0093b12
-c0133b16
-c0143b1d
-c014bb2d
-c0153b36
-c015bb69
-c0163b6f
-c0183b76
-c018bb7c
-c0193b90
-c019bb98
-c01a3bbb
-c01abbc4
-c01b3bcd
-c01bbbd7
-c01c3bda
-c0203be2
-c0213bec
-c0243bf1
-c024bbfc
-c028bc02
-c030bc06
-c07fbc15
-20203c17
-68008b04
-c0833c17
-e8630000
-600340a0
-20203c1a
-68008b04
-c0833c17
-e8630000
-600344a0
-20203c1a
-68008b04
-c080bc17
-1a220600
-20403c1a
-e8688000
-6008c6a9
-68014682
-c3848000
-c3800000
-6800c6a1
-2feffe00
-2420ba58
-6808c6a9
-18417e03
-6000c093
-6800c6a1
-2feffe01
-24608000
-6808c6a9
-284ffe02
-2020b3fa
-202033f8
-68008b04
-1fe67c43
-24213c17
-6000c515
-df200008
-20407ec6
-68008b04
-1fe27200
-1a220600
-d8a04516
-204066ea
-20203c1a
-68008b04
-1fe67c1d
-24213c17
-6000c3af
-1fe27200
-1a220600
-d8a043b0
-204066ea
-204057a3
-20203c1a
-6800c682
-c3023c17
-204033ba
-2020ba86
-700b0500
-2040397f
-6800c568
-207a0000
-68014573
-c0803a84
-68008b04
-60014573
-1a220600
-18627e00
-60014571
-20403a88
-20206c4d
-700b0500
-20203cd1
-20403a8e
-68014573
-6809469f
-98467e00
-60014573
-20600000
-68014573
-d840006e
-20407fdd
-6809456c
-20407fdd
-6809455e
-20407fdd
-6001469f
-20600000
-700b0501
-700b0305
-20203c1a
-68014682
-c304bc17
-20403ad4
-20343c17
-700b0500
-6800c6bf
-c2823ab4
-6800c6c0
-247a0000
-700b0501
-e8610000
-600146c1
-18627e00
-600146c3
-68008b04
-1fe0fffe
-24213c17
-2022bc17
-6000c6c0
-700b0500
-20405814
-20403ab7
-20403ab7
-20403ab7
-6800c6bf
-c4020000
-700b0501
-20403cf6
-20203c1a
-6800c6c0
-207a0000
-20405892
-247a0000
-20403acf
-44f0c01c
-1840fffd
-6808c6c0
-20407fdd
-1fe22200
-18427e00
-9a267e00
-6000c6c0
-680946c1
-20405a64
-680146c3
-1fe20600
-1a227200
-204066ea
-18627e00
-600146c3
-6800c6c0
-247a0000
-20203cf4
-d8400017
-6800c6bf
-c3808000
-680944a8
-20600000
-6800c6bf
-c2815a42
-20207fe9
-20203c4c
-1a220600
-e8608000
-c0003adf
-c000bae2
-c0013ae8
-c001baea
-20203c17
-2040612b
-70465a00
-20203c1a
-58040003
-6001c65b
-6000c662
-20406124
-70465a01
-20203c1a
-58040002
-20203ae3
-58040001
-20203ae3
-68008b04
-1fe67c10
-24213c17
-6000c689
-1fe27200
-d8a0468a
-204066fd
-20203c1a
-1a220600
-e8608000
-68188062
-7d3a0404
-60188062
-20203c1a
-68008b04
-1fe27200
-1a220600
-20407f58
-596e3600
-9846fc00
-20407f86
-1807fe00
-60014243
-20403c1a
-20407f9e
-202066ce
-da200002
-da40469a
-d8400000
-20203c25
-60010ac2
-da400ac2
-d8400000
-20203c25
-68014682
-c3003c17
-20403c1a
-202033e9
-68014682
-c304bc17
-20403c1a
-20203402
-68008b04
-1fe27200
-1a220600
-68014215
-1fe20a00
-204066ea
-20203c1a
-6800c682
-c3003c17
-e8608000
-6808c661
-793a0400
-79200407
-6008c661
-20403c1a
-6800c661
-c2833b2b
-20600000
-70466100
-700a9921
-20207d8f
-c2805f95
-20203b28
-6800c682
-c4020000
-6800c56b
-c1000000
-e8608000
-6808c569
-98408400
-6008c569
-20600000
-df200040
-d8a0436f
-20407ed4
-58000000
-60008ab2
-1a220600
-18627e00
-60010ab6
-20403b64
-68008ab2
-68088aa2
-18408401
-9840fe00
-60008ab2
-1fe67c1f
-24213b50
-6808c36f
-58004370
-9840fe00
-60010abb
-68088aa2
-18408401
-6800c36f
-9840fe00
-6000c36f
-20203b59
-6808c38f
-58004390
-9840fe00
-60010abb
-68088aa2
-18408401
-6800c38f
-9840fe00
-6000c38f
-68010abb
-1fe20a00
-68010ab6
-1fe20600
-18427200
-204066ea
-68008b04
-68088ab2
-98467c00
-2422bb3c
-20203c1a
-e8608000
-60008aa2
-e8608000
-60008aae
-20600000
-d8400000
-da200002
-680146b4
-60010ac2
-da400ac2
-20203c25
-68008b04
-c080bc17
-e8608000
-6000c6b2
-58000000
-600146b4
-20203c1a
-e8620000
-6002468a
-70468904
-70466300
-20403c1a
-20205f31
-68008b04
-c081bc17
-e8608000
-c0003b82
-c000bb8a
-20203c17
-e8688000
-e8608000
-c0013b88
-7d3a0407
-204067fb
-20203c1a
-20406806
-20203c1a
-e8688000
-20406812
-e8608000
-2feffe00
-2040682c
-20203c1a
-68008b04
-c080bc17
-e8688000
-2040681d
-58000000
-7d20fe00
-da200001
-20203b0a
-1a220600
-e8608000
-1fe20400
-c040bba3
-c0413ba8
-c041bbae
-6000c4c6
-c0003bb3
-c000bbb6
-c0013bb8
-20203c17
-6800c4be
-203a3c17
-6008c4c6
-7044560d
-20203bb4
-6800c4be
-203a3c17
-6008c4c6
-7044560d
-70445401
-20203c1a
-6800c4be
-203a3c17
-6008c4c6
-7044560d
-20203bb9
-70445600
-70445403
-20203c1a
-70445605
-20203bb4
-70445605
-70445400
-20203c1a
-68008b04
-1fe67c1f
-24213c17
-6000c36f
-1fe27200
-1a220600
-d8a04370
-204066ea
-20203c1a
-68008b04
-1fe67c1f
-24213c17
-6000c38f
-1fe27200
-1a220600
-d8a04390
-204066ea
-20203c1a
-68014682
-c304bc17
-68008b04
-c0843c17
-1a220600
-e8640000
-60044496
-700a9912
-20407d8f
-20203c1a
-e8610000
-60014482
-20203c1a
-6800c4c6
-203a3c17
-6800c4c4
-c0803c17
-6800c4c5
-c0803c17
-20407e25
-20203c1a
-68008b04
-c082bc17
-e8608000
-6000c6a2
-e8620000
-600246a3
-6808c6a2
-2040680e
-20403cbc
-20203c1a
-68008b04
-c080bc17
-e8608000
-6000c1de
-20203c1a
-e8608000
-c000bbfa
-6800c4c1
-c001bbf8
-c0033bf8
-c003bbf8
-20203c17
-7044c201
-20203c1a
-20405b53
-20203c1a
-68008b04
-c080bc17
-20403c1a
-e8608000
-203a60cb
-202060c9
-20403c1a
-20407f9e
-70801001
-20202a8e
-68008b04
-c0003c17
-e8608000
-203a3c13
-68008b04
-c082bc17
-e8620000
-d84f4240
-98467c00
-20213c17
-600244c7
-2040580c
-20203c1a
-2040580e
-20203c1a
-70409100
-20203c1a
-d8400001
-da200000
-20203c25
-d8400000
-da200000
-20203c25
-700b0300
-20203c49
-700b0302
-20203c49
-700b0303
-20203c49
-700b0305
-20203c49
-68008b03
-1fe22600
-700b0306
-58000002
-9a20fe00
-20403ca7
-1a627e00
-e1408000
-e1488000
-1a227200
-1a420c00
-204066e4
-202066c5
-2040397f
-700b0307
-680084ff
-207a0000
-20403ca7
-680084ff
-1fe27200
-68010501
-1fe20c00
-204066d1
-202066c5
-700b0308
-6800c6b6
-1fe27200
-1fe0fe02
-20403ca7
-680146b9
-e1410000
-680146b7
-1fe20c00
-204066d1
-202066c5
-700b0309
-58000000
-20403ca7
-202066c5
-700b030a
-58000001
-20403ca7
-20403c5d
-68014682
-d8e00002
-afefffff
-79208403
-d8e00009
-afefffff
-79208405
-6800c682
-d8e00004
-afefffff
-79208404
-e1488000
-202066c5
-d8400000
-6800c093
-d8e00000
-afefffff
-79208400
-d8e00001
-afefffff
-79208401
-6800c36e
-d8e00000
-afefffff
-79208402
-20600000
-700b030d
-6800c217
-1feffe22
-1fe27200
-20403ca7
-68014215
-1fe20c00
-204066d1
-202066c5
-700b030e
-58000004
-20403ca7
-680209ba
-e1420000
-202066c5
-700b030f
-68110112
-d84000ff
-20407fdd
-1fe27200
-20403ca7
-204066cb
-20406703
-202066c5
-700b0310
-20203c49
-700b0311
-58000004
-20403ca7
-680244c7
-e1420000
-202066c5
-da200180
-20203c91
-da200080
-20203c91
-da200101
-20203c91
-da200001
-70466100
-700b0314
-58000002
-20403ca7
-1a227e00
-e1410000
-202066c5
-da600000
-20203c9b
-da600001
-700b0315
-58000001
-20403ca7
-1a627e00
-e1408000
-202066c5
-700b031d
-58000004
-20403ca7
-680209ba
-e1420000
-202066c5
-700b0202
-60008b04
-600c0aa2
-44f1401c
-20403cb1
-680c0aa2
-204066c2
-68018b02
-e1418000
-20600000
-20403cba
-20608000
-20403cb8
-680246a3
-1feb7e00
-207a0000
-20203cbe
-6808c6a2
-20206829
-6808c6a2
-2020681b
-6808c6a2
-20206825
-1fe0ffff
-20000026
-243a3cbe
-20600000
-20403ad4
-20740000
-1a227e00
-600146b7
-1a427e00
-6000c6b6
-68010478
-680946bb
-98467c00
-2022bccf
-680946bd
-98467c00
-24628000
-600146b9
-20203c3d
-6800c6bf
-c3828000
-20403cf0
-2020340c
-70417202
-20600000
-20203cd8
-6800c6b2
-207a0000
-6800c6b3
-207a0000
-1fe0ffff
-6000c6b3
-247a0000
-7046b30a
-204068eb
-20406908
-1fe6fc64
-20407f86
-1807fe00
-18070400
-6000c6b4
-6008c6b5
-20600000
-20407fb4
-202133d9
-202033db
-d8e00006
-20203cfc
-d8e00006
-20203cf8
-d8e00005
-20203cfc
-d8e00005
-20203cf8
-d8e00004
-20203cfc
-d8e00004
-20203cf8
-6800c6bf
-f93ffe00
-6000c6bf
-20600000
-6800c6bf
-f9207e00
-6000c6bf
-20600000
-20403d39
-2040640f
-204040c6
-20403d66
-20406411
-20758000
-20403d16
-20403d19
-680246d3
-c3880000
-20403d4e
-c6130000
-68014682
-c28642b0
-202042a2
-680246d3
-c40d8000
-df200014
-58030d40
-20402a8f
-c2007ec1
-20600000
-680246d3
-c4080000
-202048ea
-5800416d
-600141ef
-58003f77
-600141f1
-58003ebb
-600141ed
-5800417c
-600141f5
-58003de3
-600141f3
-58003eb3
-600141eb
-58003d5b
-600141f9
-20402c7a
-58004401
-1a608ad8
-e0a10000
-58004406
-1a608ada
-e0a10000
-58003ebf
-1a608adc
-e0a10000
-580041f9
-600141fd
-58003d36
-60014201
-20600000
-680246d3
-c30964d7
-202064da
-20758000
-20402c9d
-20403e6e
-20403e1e
-20403e54
-20405810
-20405839
-2040582c
-20405818
-680246d3
-c28a3d46
-c289c414
-20600000
-2040659c
-680246d3
-2feffe19
-2440e5c2
-2040443f
-20403dc9
-204041aa
-202065df
-680246d3
-c30f3d53
-68008abd
-2fec0003
-24608000
-6800c71f
-6000c71e
-6800c6f5
-c3830000
-680246d3
-c4088000
-c28eaee4
-20202f2c
-68008478
-1fe67e1a
-24628000
-700a9912
-20407d8f
-d8e00000
-202041b9
-6800c6b6
-c1008000
-7046b601
-20600000
-6800c6e1
-1fe17e0f
-6000c77a
-20203d80
-6808c6e7
-2040681d
-2420bd62
-6800c6b6
-c1000000
-7046b600
-6800c77a
-1fe0fe01
-1fe17e03
-6000c77a
-20403d7e
-680246d3
-c28a443b
-c289bd79
-20600000
-d840001e
-2040680e
-d840001f
-2040680e
-20204435
-44f1c01c
-2040424a
-6800c6e0
-c002bdaa
-c0023d96
-6800c77a
-c0003d8a
-c000bd88
-c0013d8c
-c001bd8e
-6800c780
-20203dbe
-6800c77f
-20203dbe
-6800c781
-20203dbe
-6800c782
-20203dbe
-6800c6e0
-c1030000
-6800c6b5
-1fe0fe01
-6000c6b5
-20600000
-6800c77a
-c0003d9d
-c000bd9b
-c0013d9f
-c001bda1
-6800c784
-20203da2
-6800c783
-20203da2
-6800c785
-20203da2
-6800c786
-6000c6b5
-1fed7e00
-1fe22200
-1fe0fe0d
-20406413
-1a227e00
-1fe0fe0e
-20206413
-6800c77a
-c0003db1
-c000bdaf
-c0013db3
-c001bdb5
-6800c788
-20203db6
-6800c787
-20203db6
-6800c789
-20203db6
-6800c78a
-6000c6b5
-204040c0
-6800c6b5
-1fe0fe80
-1fed7e00
-1fe0fe05
-1fe22200
-2020415a
-6000c6b5
-20403d90
-6800c6b5
-58000006
-20406414
-1fe104f8
-6800c6b5
-9840fe00
-1fed7e00
-1fe0fe06
-20206413
-204033c4
-2022c316
-2040441c
-204042e4
-202033bd
-68014707
-207a0000
-680246d3
-c4088000
-c3818000
-c6130000
-20404083
-c1838000
-20404482
-d8e00003
-204043ce
-58000000
-600146ae
-6000c6b4
-20403263
-68014682
-c283c392
-c284b402
-c28033e9
-204042ca
-20202ead
-20403dce
-20407e34
-20403d6a
-20403de9
-20403ee0
-20203df7
-680246d3
-c4080000
-204048d3
-202048fd
-68108a04
-c303bdf1
-c283bdf4
-20600000
-6800c6ff
-c4038000
-2020659a
-6800c6ff
-c3838000
-20204381
-20403ded
-68108a04
-6000c6ff
-c4038000
-20403e07
-680246f9
-6808c6fd
-98408400
-1c427e00
-98467c00
-24610000
-600246f9
-20403f97
-24740000
-700d3804
-20203e0f
-680a46f9
-1c427e00
-98467c00
-24413e0c
-20600000
-58000000
-600246f9
-20600000
-68008d38
-c4010000
-20203e12
-68108a04
-c4038000
-700d5220
-58000001
-60008d54
-6803c69a
-e0a38000
-20600000
-68110050
-793ffe0b
-60110050
-20600000
-58008c00
-60014575
-58008e7a
-600144bc
-58002402
-600140bd
-58002580
-6001c0aa
-70417303
-70415608
-7046d901
-58000200
-60014154
-7044a617
-7044a817
-58000a77
-60014212
-38000306
-38044440
-38090000
-380c4408
-6004c577
-38001224
-38044000
-38080000
-e0a28000
-3803ffff
-3806fe23
-380999d9
-380c020d
-60044098
-5800012c
-60014707
-204057a3
-680246d3
-c40f8000
-20403e44
-20203e4c
-6808c6f7
-204067fb
-6808c6f7
-2040681d
-7046f603
-20608000
-7046f602
-20600000
-6808c6f8
-204067fb
-6808c6f8
-2040681d
-70422d00
-20608000
-70422d02
-20600000
-6800c22d
-c0003e59
-c000be62
-c0013e6b
-20203e59
-68094221
-68014227
-98467e00
-1feffe14
-1fe6fc64
-20407f86
-1807fe00
-600146d0
-20600000
-6809421f
-68014225
-98467e00
-1feffee6
-1fe6fd90
-20407f86
-1807fe00
-600146d0
-20600000
-68014223
-600146d0
-20600000
-6808c23a
-2040680e
-204048fb
-6808c6e2
-204067fb
-6808c6e3
-204067fb
-6808c6e4
-204067fb
-6808c6f3
-204067fb
-6808c6dc
-2040680e
-6808c6e8
-204067fb
-6808c6e9
-204067fb
-6808c6ea
-204067fb
-6808c6eb
-204067fb
-6808c6e5
-204067fb
-6808c6e6
-204067fb
-6808c6ef
-2040680e
-6808c6f0
-2040680e
-6808c6f1
-2040680e
-6808c6f2
-2040680e
-6808c6f4
-2040680e
-6808c6ed
-204067fb
-6808c6ec
-204067fb
-6808c6e7
-202067fb
-6808c6e8
-204067dd
-6808c6e9
-204067dd
-6808c6ea
-204067dd
-6808c6eb
-202067dd
-6808c6e8
-20403ea7
-6808c6e9
-20403ea7
-6808c6ea
-20403ea7
-6808c6eb
-20203ea7
-18467cff
-20628000
-18410e7f
-6812011c
-afefffff
-68120078
-f920fe00
-60120078
-6812007c
-fd20fe00
-6012007c
-20600000
-78347c00
-68120138
-79347e1a
-6012004c
-20402c21
-20404482
-20403e9f
-20203ebf
-20403ebf
-680080a0
-247a0000
-202067ed
-20403ee0
-d8400019
-680246d3
-2feffe12
-2040bede
-2040680e
-204063ee
-6808c6e2
-204067dd
-6808c6e3
-204067dd
-6808c6e4
-204067dd
-6808c6e5
-204067dd
-6808c6e6
-204067dd
-6808c6e7
-204067dd
-6808c6ed
-204067dd
-6808c6e8
-204067dd
-6808c6e9
-204067dd
-6808c6ea
-204067dd
-6808c6eb
-204067dd
-6808c6f3
-202067e1
-d840001e
-20600000
-44f2401c
-20403eee
-20403f36
-6800c6b8
-6808c6b7
-6000c6b7
-98467c00
-2422b3d4
-6800c6be
-6808c6bd
-6000c6bd
-98467c00
-2422b3d4
-20600000
-6800c6ea
-c17f8000
-da200000
-6808c6ea
-2040681d
-7920a200
-6808c6eb
-2040681d
-7920a201
-1a227e00
-6000c6b8
-c000befe
-c0013f02
-6800c6b9
-c283bf0e
-20600000
-6800c6b7
-c0003f06
-c001bf08
-20600000
-6800c6b7
-c0003f0a
-c001bf0c
-20600000
-7046b982
-20600000
-7046b981
-20600000
-7046b980
-20600000
-7046b983
-20600000
-6800c6b9
-793ffe07
-6000c6b9
-c0003f16
-c000bf19
-c0013f1c
-c001bf1f
-20600000
-6800c6b8
-c001bf22
-20600000
-6800c6b8
-c0003f22
-20600000
-6800c6b8
-c001bf2c
-20600000
-6800c6b8
-c0003f2c
-20600000
-6800c6bc
-1fe0fe01
-6000c6bc
-1fe67c01
-20610000
-7046bc00
-6800c6ba
-1fe0fe01
-6000c6ba
-20600000
-6800c6bb
-1fe0fe01
-6000c6bb
-1fe67c01
-20610000
-7046bb00
-6800c6ba
-1fe0ffff
-6000c6ba
-20600000
-6800c6e8
-c17f8000
-da200000
-6808c6e8
-2040681d
-7920a200
-6808c6e9
-2040681d
-7920a201
-1a227e00
-6000c6be
-c000bf46
-c0013f4a
-6800c6bf
-c283bf56
-20600000
-6800c6bd
-c0003f4e
-c001bf50
-20600000
-6800c6bd
-c0003f52
-c001bf54
-20600000
-7046bf82
-20600000
-7046bf81
-20600000
-7046bf80
-20600000
-7046bf83
-20600000
-6800c6bf
-793ffe07
-6000c6bf
-c0003f5e
-c000bf61
-c0013f64
-c001bf67
-20600000
-6800c6be
-c001bf6a
-20600000
-6800c6be
-c0003f6a
-20600000
-6800c6be
-c001bf6f
-20600000
-6800c6be
-c0003f6f
-20600000
-7046c200
-6800c6c0
-1fe0fe01
-6000c6c0
-20600000
-7046c100
-6800c6c0
-1fe0ffff
-6000c6c0
-20600000
-58000002
-6000c680
-20600000
-6800c1e2
-207a0000
-20405271
-247a0000
-680246d3
-c281bf8a
-c2803f8a
-c282bf8a
-20403f97
-24740000
-da200009
-20404d63
-6801424e
-e0a10000
-580002a1
-e0a10000
-6803c69a
-e0a38000
-20600000
-58000000
-6003c69a
-20203f81
-680146aa
-600146b0
-20600000
-44f2c01c
-da200007
-6809446f
-20405a64
-6803c69a
-e0a38000
-20600000
-44f3401c
-78547c00
-58000000
-6003469b
-20403fb5
-20404079
-2040407e
-20404099
-24740000
-20403f8d
-d8e00008
-202043ce
-6801469b
-1fe67e00
-6001469b
-20207fe7
-6801469d
-1fe67e00
-6001469d
-20207fe7
-6801469d
-1fe67e00
-6001469d
-6801469b
-1fe67e00
-6001469b
-20404002
-20207fe7
-20404002
-20207fe7
-6800c239
-c1800000
-6800c6e0
-c0003fe2
-c000bfe2
-c0013fe2
-c001bfe2
-c0023fc4
-c002c010
-c0033fe2
-20203fe2
-6800c6a7
-205a405d
-7046a701
-20600000
-20403fc0
-6808c6f3
-2040681d
-24608000
-58000000
-20406414
-c09840d1
-58000002
-20406414
-c4038000
-2040405d
-20403fde
-6000c6a1
-1ff1fe00
-20404169
-6000c69c
-6800c6a1
-1fe17e0f
-20404169
-6000c69e
-6800c6f6
-c0003fa3
-c000bfab
-c0013fa7
-c001bfb3
-20600000
-58000012
-20206414
-c018bfea
-202040d1
-20403fc0
-78547c00
-6808c6f3
-2040681d
-24608000
-58000000
-20406414
-c0983fe0
-58000002
-20406414
-c4038000
-2040405d
-6800c69b
-20404165
-6001469b
-6800c69d
-20404165
-6001469d
-6800c6f6
-c0003ffa
-c000bffc
-c0013ffe
-c001c000
-20600000
-20403fa3
-202040b3
-20403fab
-202040b3
-20403fa7
-202040b3
-20403fb3
-202040b3
-6801469d
-6809469b
-6001469b
-6009469d
-20600000
-2040640f
-20000064
-1a427e00
-20406414
-1fe22400
-20406411
-20000064
-1a427e00
-20600000
-78547c00
-6808c6f3
-2040681d
-24608000
-da400002
-20404007
-c4038000
-da400000
-20404007
-6000c6dd
-c09f4145
-6800c6a7
-205a4039
-7046a701
-20404039
-6800c6a1
-1ff1fe00
-20404169
-6000c69c
-6800c6a1
-1fe17e0f
-20404169
-6000c69e
-6800c6f6
-c0004031
-c000c035
-c0014033
-c001c037
-20600000
-6800c6a4
-c0004051
-c000c045
-20600000
-20403fa3
-2020402d
-20403fa7
-2020402d
-20403fab
-2020402d
-20403fb3
-2020402d
-2040640f
-2040405d
-dfe00005
-20406414
-6000c6a1
-dfe00007
-20406414
-6000c6a2
-dfe00008
-20406414
-6000c6a3
-20206411
-6800c6a2
-c1800000
-6800c6a3
-1fe67c2d
-20610000
-7046a400
-5800ba41
-20406405
-58000032
-20406405
-5800b541
-20206405
-6800c6a2
-c1800000
-6800c6a3
-1fe67c2d
-24610000
-7046a401
-5800ba41
-20406405
-58008032
-20406405
-5800b541
-20206405
-dfe00003
-20406414
-6001469b
-dfe00004
-20406414
-6001469d
-20600000
-d840001b
-204067fb
-d840001b
-2040681d
-20608000
-68108109
-79207e04
-60108109
-20600000
-6808c6c0
-68108109
-9840fe00
-207a0000
-6000c69f
-7046c000
-20207fe7
-6808c6c0
-68108109
-9840fe00
-6000c6c0
-20600000
-6800c6c0
-207a0000
-6000c69f
-7046c000
-20207fe7
-6800c6ba
-207a0000
-6000c6a0
-7046ba00
-20207fe7
-da200000
-6808c6e2
-2040681d
-7920a200
-6808c6e3
-2040681d
-7920a201
-6808c6e4
-2040681d
-7920a202
-20404090
-1a227e00
-20600000
-6800c6e5
-c17f8000
-6808c6e5
-2040681d
-7920a203
-6808c6e6
-2040681d
-7920a204
-20600000
-20404083
-204040a8
-204040a3
-1a227e00
-6808c69a
-6000c69a
-9842fe00
-1fe67c00
-20628000
-20207fe7
-c6930000
-1a227e00
-207a0000
-6000c69a
-20207fe7
-68014682
-c284c0ad
-68014682
-c28040b0
-20600000
-1a227e00
-243a5820
-20205822
-1a227e00
-243a2bc7
-20202bc9
-44f3c01c
-d840001a
-680246d3
-2feffe12
-2040c0be
-2040681d
-20608000
-5800000a
-20406414
-200003e8
-202040b3
-d840001f
-20600000
-680246d3
-c28940c4
-d840001a
-202067fe
-d840001f
-202067fe
-20403d36
-20758000
-204040c0
-6800c6e0
-c002c0d5
-204040d9
-c01840e0
-c018c0ea
-204040d1
-200003e8
-202040cb
-44f4401d
-680246d3
-c28963e0
-202063d1
-204040d9
-c01f414b
-20404145
-202040d5
-58000001
-20406414
-6000c6de
-58000000
-20406414
-6000c6dd
-20600000
-6800c6de
-c068c139
-c06940f8
-c00140ee
-c02a40e6
-20600000
-7046e002
-20600000
-7046e006
-20600000
-6800c6de
-c03840e8
-7046e001
-20600000
-7046e004
-204040f6
-58003426
-20406413
-58000419
-20406413
-58000009
-20206413
-58005a09
-20206413
-7046e003
-204040f6
-58000f0d
-20406413
-5800e31d
-20406413
-5800d27d
-20406413
-20404102
-2020411a
-5800351b
-20406413
-5800b428
-20406413
-58004629
-20406413
-5800962a
-20406413
-58008c2b
-20406413
-58006e2c
-20406413
-5800642d
-20406413
-58005f38
-20406413
-58000f39
-20406413
-5800323a
-20406413
-5800473b
-20406413
-58001042
-20206413
-58002e54
-20406413
-5800f255
-20406413
-5800f461
-20406413
-58007063
-20406413
-58005275
-20406413
-58004176
-20406413
-5800ed77
-20406413
-58002378
-20406413
-58004679
-20406413
-5800e57a
-20406413
-5800487c
-20406413
-5800777e
-20406413
-5800017f
-20406413
-5800000b
-20406413
-5800007f
-20406413
-202040f4
-7046e000
-204040f6
-5800100d
-20406413
-5800ed1d
-20406413
-5800807d
-20406413
-20404102
-58000943
-20406413
-2020411a
-6808c6dc
-20406829
-20407ec1
-6808c6dc
-20406825
-20207ec1
-7046e005
-5800ba41
-20406405
-58000d11
-20406405
-5800041b
-20406405
-5800041c
-20406405
-58000f1d
-20406405
-58000032
-20406405
-5800b541
-20206405
-5800ba41
-20406405
-20000fa0
-5800ff7f
-20406405
-1a227e00
-20406405
-5800007f
-20406405
-5800b541
-20206405
-c4038000
-d840ff00
-9841fe00
-20600000
-c4018000
-d84000f0
-9841fe00
-20600000
-20405892
-247a0000
-6800c6c5
-1fe17e03
-c1818000
-680246d3
-c281c179
-c2804179
-c282c179
-20403f97
-24740000
-20203f90
-58000000
-6003c69a
-20203f90
-1a627e00
-c00a41c3
-c000c2ca
-c00ac1d9
-c00141d9
-c002c1d6
-c008426c
-c009429b
-c00341d5
-c00241cc
-c009c1cc
-c00541ca
-c01733cd
-c018c1b4
-c01941b6
-c01f4191
-c013c38e
-c01cc19c
-c01d4192
-c01e419a
-20600000
-20203410
-70478b01
-6800c71e
-243a4492
-6800c720
-6808c703
-98467c00
-2022b40a
-20600000
-70478b01
-20600000
-70478b01
-d8e00003
-204043d2
-58000000
-60014707
-7046a700
-6800c6e0
-1fe67c05
-2042c039
-2442c05d
-68008004
-c289c1af
-204041aa
-202065d1
-20402c7a
-1a60a2ae
-da40005b
-d8400004
-20600000
-20402c7a
-1a60a4ae
-ea408000
-6000c77b
-20204435
-d8e00002
-202041b9
-7046c602
-d8e00001
-202041b9
-6800c6c5
-f9207e00
-6000c6c5
-20600000
-6800c6c5
-f93ffe00
-6000c6c5
-20600000
-7046c500
-20600000
-6801420a
-793ffe00
-6001420a
-58000000
-600146ae
-20403f8d
-202042ca
-204063cb
-202033dd
-6800c71e
-243a4492
-68014682
-c28642b0
-680246d3
-c28041d7
-c282c2b0
-c281aead
-202033a7
-20203f74
-20600000
-204043c0
-2020659a
-44f4c01d
-204041e7
-680246d3
-c28041d7
-c281aead
-6800c71e
-243a4492
-68014208
-c283c1f5
-c28033a9
-c280c1ef
-c28141f2
-c281c1f2
-202042b0
-58000000
-600446b7
-e0a20000
-7046b400
-7046a700
-7041e200
-70442900
-20600000
-c282c1f2
-c281c1f2
-202042b0
-68014682
-c28642b0
-202033a7
-204041c1
-68014208
-c28033a9
-202033a7
-204043d6
-20404243
-20404246
-20404250
-2040445d
-20404443
-20404333
-204043a5
-204043eb
-20404209
-20404231
-20404234
-20404237
-2040423a
-2040423d
-20204240
-6800c711
-207a0000
-1fe0ffff
-6000c711
-247a0000
-2020420f
-6800c712
-c1000000
-c002c216
-20404225
-70471205
-70471105
-20600000
-2040422c
-70471204
-70471105
-20600000
-58008006
-20406413
-200003e8
-70471100
-70471200
-202040e0
-5800a006
-20406413
-5800a005
-20206413
-70471100
-6800c6e0
-c0024220
-58000106
-20406413
-5800a105
-20206413
-70471100
-58000906
-20206413
-70471105
-70471201
-20600000
-da604680
-da40429b
-2020336d
-da6046ac
-da404264
-20203374
-da6046ae
-da404266
-20203374
-da6046b0
-da40426a
-20203374
-da6046c4
-da404478
-2020336d
-da6046c6
-da40425e
-2020336d
-da604704
-da404249
-2020336d
-da604707
-da404249
-20203374
-20600000
-680246d3
-c40b8000
-7046df0a
-6800c6f4
-6000c715
-20600000
-da6046df
-da404253
-2020336d
-6800c6f4
-6000c715
-58000190
-60014716
-60014718
-da200000
-6808c77a
-18408401
-6008c714
-70471301
-20600000
-6800c6c5
-c3810000
-700a9912
-20407d8f
-d8e00000
-202041b9
-204042ca
-2020340a
-204033f6
-6800c71e
-243a4492
-2020340a
-c5137e1d
-20204386
-44f5401d
-7046b400
-20404386
-204041c1
-202042b0
-680341d0
-203a33eb
-2040427e
-70016d17
-6800c65a
-243a33e1
-70016d04
-202033e1
-680146a8
-600146ae
-2040427e
-20403418
-20207df4
-580000c8
-60014716
-60014718
-20204285
-580003e8
-60014716
-60014718
-6800c720
-c000c28a
-c001428c
-c001c28e
-20600000
-6800c6f0
-2020428f
-6800c6f1
-2020428f
-6800c6f2
-60008aa2
-20404482
-68008aa2
-6000c715
-da200000
-70471301
-20207d1e
-da200000
-20207d19
-da200000
-20207d14
-202041c1
-7041e201
-20403416
-20403412
-58000000
-6001467e
-6000c680
-2020340e
-2040435f
-6800c720
-6808c703
-98467c00
-2022c2ab
-6800c210
-c019c271
-c01a4279
-202042b0
-20403d57
-c6130000
-6800c71e
-243a4492
-20600000
-44f5c01d
-68014682
-c285c2b7
-680246d3
-c30c42b7
-180a7e00
-6000c4a1
-20403418
-68014687
-600146ac
-70016d06
-58000000
-600146b0
-600146ae
-d8e00007
-204043ce
-204043ca
-6800c092
-2feffe01
-2040fdf4
-6800c092
-2feffe00
-2040fddd
-680246d3
-c28e422e
-20204282
-44f6401d
-6800c092
-2feffe01
-2040c2d4
-6800c092
-2feffe00
-2040c2d7
-680246d3
-c28e421a
-20204482
-58000000
-600146ae
-20207dfa
-58000000
-600146ac
-20207de2
-680246d3
-c4038000
-d8e00007
-204043d2
-204042e8
-204042fb
-680246d3
-c289c435
-c28a42e4
-20600000
-d8400058
-da204720
-da400000
-202065d1
-68008185
-c01a42ec
-c019c2ef
-20600000
-6000c6c7
-6803044f
-202042f1
-6000c6c7
-68030040
-600346c8
-6803c6c7
-d8c04721
-df200003
-e8cb8000
-98467c00
-2022c310
-18c08c16
-c20042f5
-20600000
-da204721
-6800c720
-1fe0ffff
-1feffe1d
-9a20a200
-68008185
-e2208000
-c01a4305
-c019c30c
-20600000
-6803044f
-e0a30000
-d8c04419
-20407ebf
-680344a0
-e0a30000
-20600000
-68030040
-e0a30000
-d8c041be
-20207ebf
-18c08dfa
-18c20a00
-680b46c8
-18408403
-e0ab0000
-20600000
-d8400058
-da204720
-da400000
-204065df
-da204721
-6800c720
-6808c703
-98467c00
-20628000
-1fe0ffff
-1feffe1d
-9a20a200
-ea208000
-6000c210
-c019c327
-c01a432c
-20600000
-e8c30000
-600341d0
-d8a041be
-20407ebf
-202067d7
-e8c30000
-600341d0
-d8a04419
-20407ebf
-e8c30000
-600344a0
-20600000
-6800c6f5
-c282c349
-c2834359
-20204337
-20404083
-c003433e
-7046d81e
-6800c6d9
-c1008000
-7046d901
-20600000
-20404343
-6800c6d9
-c1000000
-7046d900
-202043c0
-6800c6d8
-207a0000
-1fe0ffff
-6000c6d8
-247a0000
-20204370
-6800c6ed
-c17f8000
-6808c6ed
-2040681d
-2020c354
-6800c6d9
-c1008000
-7046d901
-680246d3
-c3830000
-20204370
-6800c6d9
-c1000000
-7046d900
-d8e00006
-202043d2
-68008004
-c4030000
-6800c720
-c000c369
-c001436c
-20600000
-68008004
-c4030000
-6808c6ed
-2040681d
-2020c366
-70472001
-20600000
-6800c703
-6000c720
-20600000
-6808c6ed
-2420c370
-20600000
-6808c6ed
-2040681d
-2020c354
-20600000
-6808c720
-18408401
-6800c6d2
-98467c00
-244143cc
-6008c720
-7041bd00
-2040437a
-204043c0
-2020437e
-d8400001
-da204720
-da400000
-20206606
-20404381
-204043c2
-202041d7
-68014682
-c283c392
-c284b402
-c28033e9
-202042ca
-44f6c01d
-58000000
-600146b0
-68014682
-c284b402
-68014682
-c28033e9
-20600000
-58000001
-60030040
-70018533
-202042df
-204043c4
-20207e2f
-6800c6ec
-c17f8000
-6808c6ec
-2040681d
-2020c39f
-6800c685
-6000c6da
-6800c6db
-c1008000
-7046db01
-202043ca
-204043b5
-6800c6db
-c1000000
-7046db00
-20407e2f
-202043c8
-6800c6f5
-c2824394
-20404083
-c003c3af
-6800c685
-6000c6da
-6800c6db
-c1008000
-7046db01
-202043ca
-204043b5
-6800c6db
-c1000000
-7046db00
-20407e2f
-202043c8
-da6046da
-da4043b8
-2020336d
-d8e00006
-204043ce
-20403357
-2020426c
-d8e00001
-202043ce
-d8e00001
-202043d2
-d8e00000
-202043ce
-d8e00000
-202043d2
-d8e00002
-202043ce
-d8e00002
-202043d2
-d8e00005
-202043ce
-d8e00005
-202043d2
-d8400001
-20600000
-680246d3
-f9207e00
-600246d3
-20600000
-680246d3
-f93ffe00
-600246d3
-20600000
-680246d3
-c40d0000
-6800c6ce
-1fe0fe01
-6000c6ce
-1fe67c0a
-20610000
-7046ce00
-204068eb
-20406908
-6001470f
-da204709
-20406930
-6800c231
-c280c4a0
-c30043e9
-202043e7
-d8e00004
-202043ce
-d8e00004
-202043d2
-680246d3
-c4020000
-6800c6ef
-6000c715
-6800c6cf
-1fe0fe01
-6000c6cf
-1fe67c14
-244143f9
-c00143fb
-c00243fe
-c00343fb
-c00443fe
-20600000
-7046cf01
-202043fe
-da200000
-70471302
-20207d14
-da200000
-70471302
-20207d19
-20403f97
-24740000
-da200007
-da40469a
-20600000
-6800c78b
-207a0000
-6808c6e7
-2040681d
-2040c410
-6800c704
-247a0000
-20404083
-247a0000
-20202d83
-6800c6e7
-c17f8000
-7047040a
-20600000
-20404423
-68014778
-d840aa55
-98467c00
-2022c42b
-60094778
-2040441c
-20204435
-680344a0
-60034738
-1fe0ff00
-60034755
-1fe0ff00
-60034772
-20600000
-58004778
-d8404720
-98460400
-6801c700
-9840fe00
-d8400002
-da204778
-20206562
-5800477f
-d8404720
-98460400
-6801c700
-da204720
-20406562
-2040431a
-6802477b
-20402c7a
-2020322c
-5800477f
-d8404720
-98460400
-da204720
-6801c700
-20206514
-d8400001
-da20477a
-da40005a
-202065d1
-d8400001
-da20477a
-da40005a
-202065df
-c6130000
-680246d3
-c40b0000
-6800c705
-1fe0fe01
-1fe17e07
-6000c705
-c1838000
-68014682
-c280444f
-c284c44f
-20600000
-44f7401d
-6800c706
-247a0000
-680246d3
-c4040000
-6800c6a5
-204063fb
-6000c6a6
-1fe67c10
-2021445b
-70470600
-20600000
-7047061e
-20600000
-da604706
-da404460
-2020336d
-6800c6a5
-20406414
-1fe67c10
-24610000
-680246d3
-c4040000
-d8e00008
-204043d2
-70417200
-7046c41e
-20404482
-680246d3
-c28ac471
-6800c720
-c000c489
-c0014476
-20600000
-6800c720
-c000c489
-c001448c
-c001c48f
-20600000
-6800c6f0
-2020428f
-70417220
-20204482
-6800c6f0
-c17f8000
-6000c715
-20204296
-6800c6f1
-c17f8000
-6000c715
-20204296
-20404296
-2040447a
-2040447e
-6800c6f2
-c17f8000
-6000c715
-20204296
-6800c6f0
-6000c715
-20204298
-6800c6f1
-6000c715
-20204298
-6800c6f2
-6000c715
-20204298
-44f7c01d
-6800c71e
-1fe0ffff
-6000c71e
-6808c720
-18408401
-6800c6d2
-98467c00
-244143cc
-6008c720
-7041bd00
-2040437a
-204042fb
-202042a2
-20404482
-58000000
-600400a1
-20202b1f
-20758000
-68108081
-1fe17ef0
-60108081
-20406948
-580044e6
-600141eb
-580044e9
-600141ed
-580044ef
-600141f3
-580044f2
-600141f5
-580033d0
-600141e9
-20402c7a
-580045c2
-1a608ad8
-e0a10000
-580044ea
-1a608ada
-e0a10000
-580044e9
-1a608adc
-e0a10000
-5800450e
-600141fd
-580044da
-6001475b
-580044d6
-6001475f
-58004560
-6001470f
-44f8401e
-204044e2
-20407e38
-70417202
-6800c72b
-6000c69a
-c00044d5
-6800c72c
-6000c686
-204044db
-20407cd3
-20407cdd
-70475701
-68014682
-c3860000
-2020340a
-70475702
-204044db
-da200000
-20407d1e
-20202ee4
-202044db
-44f8c01e
-6800c729
-c0ffc4e0
-6808c706
-2020680e
-6000c706
-202044de
-20402c9d
-68014753
-60014755
-20204515
-20406835
-204044e9
-2020340a
-2020696c
-6800c765
-207a0000
-20202d83
-20600000
-20206978
-20404544
-20404503
-202044ee
-1a627e00
-c016b431
-c008341a
-c01cc4fb
-c01e44ff
-c01d44f9
-20600000
-70476501
-20600000
-70476501
-70476301
-70476401
-20600000
-70476501
-70476301
-70476401
-20600000
-6800c763
-c1000000
-6800c762
-c1008000
-70476201
-da200000
-20207d19
-da200000
-20407d19
-204044db
-2020340a
-2040337b
-20204510
-6800c72d
-207a0000
-da604755
-da40450a
-20203374
-2040451a
-6009471a
-2040451f
-6009471c
-20600000
-6801471a
-6001471e
-20404540
-20404525
-6000c724
-6801471c
-6001471e
-20404542
-20404525
-6000c725
-20600000
-68014720
-1fe22200
-6801471e
-2040452e
-6800c719
-243a4537
-24610000
-6809471e
-20600000
-98467e00
-20214534
-1fe67e00
-70471801
-9a267c00
-20600000
-70471800
-9a267c00
-20600000
-2421453e
-6800c718
-243a453c
-58000001
-20600000
-58000002
-20600000
-58000000
-20600000
-70422e33
-202068eb
-70422e34
-202068eb
-6800c72a
-c1808000
-44f9401e
-70471901
-2040451a
-68014724
-68094722
-98467c00
-20628000
-60014722
-20404550
-20204554
-6800c724
-203a455a
-1fe0ffff
-20204557
-6800c725
-203a455d
-1fe0fe01
-1fe20e00
-da200001
-20204560
-d8e00000
-da200000
-20204560
-d8e00002
-da200000
-20204560
-1a227e00
-6000c761
-6800c763
-c0002ee4
-68014753
-60014755
-6800c761
-203a4580
-44f9c01e
-da200000
-20407d14
-18e27e00
-c00245a3
-c002c5a5
-c00345a7
-2040458b
-c0004574
-c001457a
-c001c574
-20600000
-18e27e00
-c000458f
-c000c591
-c0014593
-c001c595
-20600000
-18e27e00
-c0004597
-c000c59a
-c001459d
-c001c5a0
-20600000
-44fa401e
-da200000
-20407d19
-18e27e00
-c00245bc
-c002c5bc
-2040458b
-c00045a9
-c00145af
-c001c5a9
-20600000
-6800c728
-6808c727
-9841fe00
-20600000
-70473401
-202045be
-70473402
-202045be
-70473601
-202045be
-70473602
-202045be
-70473401
-70473601
-202045be
-70473402
-70473602
-202045be
-70473402
-70473601
-202045be
-70473401
-70473602
-202045be
-70473801
-202045be
-70473802
-202045be
-70474101
-202045c0
-18e27e00
-c00045b5
-c000c5b5
-c00145b7
-c001c5b7
-20600000
-18e27e00
-c00045b9
-c000c5b9
-c00145b9
-c001c5b9
-20600000
-70473400
-202045be
-70473600
-202045be
-70473400
-70473600
-202045be
-70473800
-202045be
-da20472e
-20207e3d
-da20473b
-20207e3d
-6800c764
-c000c5cc
-da204744
-20407e54
-243445d1
-d8c04744
-e8c08000
-1fe22200
-da404745
-20600000
-70476400
-78347c00
-da200001
-da404766
-20600000
-6800c747
-c00245d5
-c002c5d5
-20600000
-6800c74a
-243a45dc
-6800c74c
-243a45dc
-6800c74e
-243a45dc
-20600000
-78347c00
-202045c7
-20758000
-68108081
-1fe17efc
-60108081
-580046b4
-600141eb
-580046b3
-600141ed
-5800340a
-600141f7
-580046b1
-600141f3
-58004612
-600141f5
-5800460c
-600141e9
-5800476a
-600141f9
-58004686
-600141fd
-58004729
-600146e7
-58004806
-600146e2
-58004807
-600146e4
-204057a3
-204047da
-20404788
-2040476d
-20406948
-2040477a
-20407e38
-20407d08
-20404793
-204047c7
-44fac01e
-2040464f
-6800c6dd
-c0004609
-6800c6de
-6000c686
-2020480e
-704686ff
-7046df01
-202046d9
-6800c6df
-c00133d0
-2040527e
-6800c256
-243a33d0
-202033d2
-1a627e00
-c000c626
-c0014629
-c0024631
-c002c633
-c0034635
-c003c638
-c009463c
-c009c644
-c013c645
-c0174648
-c01ec649
-c00a4658
-c00ac65c
-c01fc65f
-c0204665
-c008466b
-c016466c
-c016c677
-20600000
-7046ad00
-7046ac00
-20600000
-2040462b
-20204631
-7041e200
-70468000
-70420500
-7046ac00
-7046ad00
-20207e38
-204033a9
-202046c2
-204046b6
-20203408
-58000002
-6000c680
-20600000
-7046ac00
-58000001
-6000c6ad
-20600000
-6800c1e2
-c1008000
-7041e201
-20403416
-20403414
-204046b6
-20403408
-2020340e
-20204631
-58000005
-6000c6ac
-20600000
-202033cd
-da400000
-6800c217
-1fef8422
-68014215
-1fe22200
-20206606
-da400000
-6800c69a
-c4008000
-6800c217
-207a0000
-1fef8422
-68014215
-1fe22200
-202065df
-204046b6
-58000000
-600146b7
-20203408
-20407e38
-7046b000
-202046d9
-20407e38
-7046b001
-680446c1
-60044496
-20403416
-20205abf
-68014509
-c1000000
-680446c9
-207a0000
-60044496
-20205abf
-2020481f
-6800c6dd
-c1000000
-6800c6df
-c1808000
-20404672
-20203406
-7048df01
-df20000b
-d8a048e0
-d8c048c9
-20207f01
-6800c6dd
-c1000000
-6800c6df
-c000c67c
-2020481b
-6800c8df
-c1808000
-7048df00
-68014682
-c2803408
-c284b408
-df20000b
-d8c048e0
-d8a048c9
-20207f01
-2040468c
-20404693
-2040469e
-204046a6
-204046a9
-202046ac
-da6046db
-da40468f
-20203374
-7046df02
-20403408
-204046f4
-2020480b
-da6048ec
-da404696
-2020336d
-68014682
-c284c80b
-c280480b
-6800c8c9
-c000c80b
-c002480b
-c002c80b
-2020340a
-da6046ac
-da4046a1
-2020336d
-6800827f
-79207e00
-79207e07
-6000827f
-20600000
-da604680
-da40463c
-2020336d
-da6046ad
-da4033e9
-2020336d
-6800c6df
-c1808000
-da6046b7
-da4046c2
-20203374
-2040473a
-20206978
-2020696c
-20406835
-202046b3
-6800c69a
-c280c6be
-c28046ba
-20600000
-680146d7
-600146d9
-600146db
-202033f8
-680146d3
-600146d9
-600146db
-202033f0
-6800c6df
-c1808000
-6800c69a
-c280c6c8
-c28046cc
-20600000
-680146d1
-600146d9
-600146db
-202033eb
-68014682
-c3848000
-680146d5
-600146d9
-600146db
-680146b3
-204046f0
-20403404
-680246bd
-600248cc
-68014682
-c3858000
-202033fa
-6800c6df
-c1808000
-6800c69a
-c280c6df
-c28046e4
-20600000
-204046f8
-203a46c2
-20403406
-204033f0
-202033e1
-680146b7
-680946b5
-600946b7
-247a0000
-680146b1
-204046f0
-20403404
-680246b9
-600248cc
-68014682
-c3858000
-202033fa
-60014154
-1fe0fffc
-60014482
-20600000
-68014682
-c284b402
-c28033e9
-202046b6
-6800c217
-1fe27200
-68014215
-1fe22200
-ea210000
-c0004701
-1a20a222
-c20046fc
-20207ff1
-e8c30000
-600341d0
-18c08c0a
-d8a041be
-20407ebf
-204067d7
-20207fef
-20407fe9
-68014682
-c280470d
-c284c710
-20600000
-6800c253
-c19f8000
-20207fe7
-6800c6b0
-207a0000
-20207fe7
-20407fe9
-68014682
-c3800000
-c3848000
-20207fe7
-6800c69a
-c280c71c
-c280471f
-20600000
-6800c093
-c1818000
-202046d9
-202046d9
-78567c00
-680146d9
-600146db
-20404713
-20344718
-20404708
-24740000
-78367c00
-20600000
-20404720
-24760000
-1a227e00
-203a4730
-20403406
-da6046f1
-20204732
-20403408
-da604719
-dfe00005
-98effe00
-9a60a600
-ea608000
-207a0000
-20404762
-1a60a601
-20204735
-68014682
-c284c73e
-c280474e
-20600000
-20405892
-247a0000
-20404765
-24740000
-1fe0ffff
-1feffe05
-d8404741
-98408c00
-e8c08000
-1fe22200
-e8c90000
-20407ea5
-20405a64
-1a227200
-20407e9f
-20207f01
-20405271
-247a0000
-20404765
-24740000
-1fe0ffff
-1feffe05
-d84047a0
-98408c00
-e8c28000
-6002c79b
-6800c79b
-1fe22200
-20404d63
-6801424e
-e0a10000
-580000a1
-e0a08000
-6802479c
-e0a48000
-20600000
-60008a9a
-da200a9a
-20207e3d
-da200a9a
-20407e54
-24740000
-68008a9a
-20600000
-68010478
-c00c465f
-20600000
-58000002
-6000c8eb
-58200008
-600246c1
-592c0005
-e0a20000
-7044a617
-5800001b
-600144fa
-20405810
-2040582c
-20405839
-20205818
-df200028
-d8a04741
-d8c0949f
-20407ef4
-df200028
-d8a047a0
-d8c094c7
-20207ef4
-df20017e
-d8c0913a
-20207ef4
-df2001e7
-d8c092b8
-20207ef4
-204047ae
-24740000
-6800c69f
-20404790
-6800c6a0
-20404790
-6800c6a1
-20204790
-207a0000
-1fe18480
-202067f9
-204047ae
-24740000
-20404797
-202047b4
-da200000
-6800c69f
-204047a9
-7d3a2200
-6800c6a0
-204047a9
-7d3a2201
-6800c6a1
-204047a9
-7d3a2202
-1a227e00
-6000c6a9
-6800c69e
-9a2ffe00
-6809469c
-9840fe00
-600146aa
-20600000
-207a0000
-1fe18480
-2040681d
-2420fff1
-20207fef
-20407fe9
-6800c6a8
-247a0000
-6800c69b
-207a0000
-20207fe7
-2040666a
-680146aa
-da200ac2
-6808c69e
-204066b3
-2040666d
-68008ac2
-1fe27200
-6000c3af
-20407ef4
-68008ac2
-1fe27200
-6000c515
-20407ef4
-e8c08000
-6000c6e6
-e8c08000
-6000c6dd
-20600000
-6800c69a
-c4008000
-d8400003
-680146a4
-1fe22400
-da2046a6
-204065df
-680946a6
-58001b3a
-98467c00
-24628000
-6800c6a8
-207a0000
-1fe20400
-680146a4
-1fe0a403
-da200ac2
-204065df
-202047e8
-680146a2
-207a0000
-2040666a
-d8400001
-da2046a8
-204066b3
-6800c6a8
-207a0000
-680146a2
-1fe0fe01
-da200ac2
-6808c6a8
-204066b3
-2040666d
-204047ba
-e8c10000
-207a0000
-1fe20a00
-e8c88000
-18427200
-20407f01
-202047e9
-6800c69a
-c4008000
-680146ae
-1fe22400
-d8400004
-da200ac2
-204065df
-68008ac2
-c080c7f9
-58000001
-60008ac2
-18007203
-2040630d
-680146ae
-1fe22400
-d8400004
-da200ac2
-20406606
-68018ac3
-6001c0a0
-6001c4a0
-20600000
-202046d9
-da200000
-da6048d4
-20407d24
-204046f4
-6800c8eb
-6000c8ec
-20600000
-58000000
-20404816
-70467901
-20407cd3
-20407cdd
-68014682
-c3860000
-2020340a
-6809423f
-e0408000
-e8a08000
-6000c685
-20600000
-6801423f
-efe08000
-c1800000
-2020340a
-6809423f
-e8408000
-c000c82a
-58000001
-6809423f
-e0408000
-18408c02
-e8c08000
-e0a08000
-e8c10000
-20207f9c
-58000002
-20404816
-18408c05
-e8c10000
-203a340a
-20207f9c
-60030101
-68008101
-6000810c
-e8c08000
-6000810b
-e8c08000
-6000810a
-e8c08000
-60008109
-e8c08000
-60008108
-e8c08000
-60008107
-68030107
-20600000
-204068a2
-6800c223
-6000c4a0
-6800c225
-e0a08000
-6800c227
-e0a08000
-6801c4a0
-6001c0a0
-20600000
-68014203
-9a40fe00
-1ff0fe00
-600101f7
-18422400
-2040489b
-580000a0
-2040488d
-680081f7
-2040488d
-c5144856
-680081f8
-2040488d
-204048a1
-2040489b
-580000a1
-2040488d
-2040487f
-e2208000
-1a20a201
-1a40a5ff
-2422c85a
-202048a1
-1a50fe00
-600101f7
-18422400
-2040489b
-580000a0
-2040488d
-680081f7
-2040488d
-c514486b
-680081f8
-2040488d
-ea208000
-2040488d
-1a20a201
-1a40a5ff
-2422c86b
-202048a1
-df20000a
-204048be
-204048a6
-204048d2
-204048c7
-203a48a9
-c2004875
-202048a9
-204048a9
-204048af
-204048d2
-204048a6
-204048d2
-202048a9
-df200008
-da600000
-204048be
-204048a6
-204048d2
-1a63a600
-204048c7
-9a60a600
-204048d2
-204048a9
-c2004882
-20404879
-1a627e00
-20600000
-df200008
-1fe22600
-204048a9
-2a6ffe07
-2040c8ac
-2440c8af
-1a63a600
-204048d2
-204048a6
-204048d2
-204048a9
-204048d2
-c2004890
-20204871
-204048ac
-204048a6
-204048d2
-204048af
-204048d2
-202048a9
-204048af
-204048a6
-204048d2
-204048ac
-202048d2
-78347c00
-6800cffe
-202048b2
-78547c00
-6800cffe
-202048b2
-78347c00
-6800cfff
-202048b2
-78547c00
-6800cfff
-202048b2
-1fe10e07
-1fe97e00
-d8408070
-98408400
-e8408000
-f9207e00
-e0408000
-18408404
-e8408000
-f9347e00
-e0408000
-20600000
-6800cfff
-1fe10e07
-1fe97e00
-d8408070
-98408400
-e8408000
-f93ffe00
-e0408000
-20600000
-20000004
-6800cfff
-1fe10e07
-1fe97e00
-d840811c
-98408400
-58000000
-e8488000
-a84fffff
-7920fe00
-20600000
-20600000
-44fb401e
-68108a26
-2feffe07
-2040c8ea
-2040492e
-68108a26
-60008b22
-68108a27
-60008b23
-60108a27
-1fe47e00
-68088d37
-98417e00
-60008d37
-708a26e0
-68008b23
-2fe00201
-2040c941
-68008b22
-2fe00201
-2040c94a
-20404b61
-20204903
-44fbc01e
-20404919
-708a0000
-20002710
-708a10c0
-68110050
-793ffe0a
-60110050
-708a003c
-708a26ff
-708a27ff
-708a0400
-700c6b02
-58000d9d
-d8a00c6e
-98a67200
-20207ed4
-68088c6c
-202067fb
-68008d45
-207a0000
-68088c6c
-2040681d
-2020c8ea
-20600000
-d8e00000
-20407f16
-247a0000
-68008d46
-247a0000
-68008d45
-245a4bb7
-20600000
-d8a00b68
-38011212
-38048000
-38080000
-380d0000
-e0a48000
-38022412
-38048604
-38081000
-380c0008
-e0a48000
-38000001
-e0a08000
-20600000
-700c6b02
-58000000
-60008b67
-60010c65
-1fe0fe01
-60010c67
-1fe0fe01
-60010c69
-58008ffa
-60010b7c
-5800903a
-60010b7e
-d8a00b80
-d8c090fe
-20407eb3
-68008c6d
-245a492b
-2020490b
-60008ba2
-60008bbb
-20600000
-68108a26
-c2834931
-20600000
-20404936
-20407f15
-58000280
-d8e00000
-20207f08
-68008d36
-c081493b
-700d4600
-700d4700
-20600000
-68008d53
-207a0000
-700d5300
-700d3602
-700d4501
-20600000
-708a2701
-20204b37
-68008b22
-c2824955
-20600000
-68108a18
-e0a08000
-c2004946
-20600000
-44fc401f
-708a2611
-68108a20
-60008b24
-1fe27200
-203a4943
-d8a00c6e
-20404946
-68008b24
-1fe67c07
-20610000
-68008c6e
-1fe17e80
-c040495a
-c0004962
-20202a8c
-68008c6e
-1ff1fe00
-1fe37e00
-1fe17e03
-c000496a
-c000c970
-c0014975
-20202a8c
-68008c6e
-1ff1fe00
-1fe37e00
-1fe17e03
-c0004976
-c000c97e
-c0014983
-20202a8c
-68008c6f
-c004498a
-c00349a0
-c00549ea
-c00049fc
-20204984
-68008c6f
-c0014a2f
-c000ca33
-c001ca45
-20204984
-20204984
-68008c6f
-c000ca4f
-c001ca79
-c002caa3
-c004cabc
-c005cad7
-c003c984
-20204984
-68008c6f
-c0054ae8
-c004caf9
-c005cb11
-20204984
-20204984
-68108a11
-79207e00
-60108a11
-20204988
-708a1240
-20600000
-68008c6e
-c0c04984
-68008c72
-c0804984
-68008c73
-c0804984
-68008c74
-c080c984
-68008c75
-c0804984
-68008c70
-c0804984
-68008c71
-c0804984
-68008c6b
-c002499c
-c001c99e
-20204984
-da400001
-20204a14
-da400001
-20204a12
-44fcc01f
-793f8023
-68008c71
-c000c9b6
-c00149cf
-c001c9d2
-c010c9a9
-c01149e0
-20204984
-700d4b00
-68008c72
-c00049ae
-c000c9b2
-20204984
-da200b93
-ea208000
-98002400
-20204b21
-da200bac
-ea208000
-98002400
-20204b21
-68008d48
-245a49c7
-58000b68
-68088b68
-60010d3f
-60088d41
-68008c74
-98467c00
-242149c5
-68008d41
-98002400
-68010d3f
-1fe0fe01
-98002200
-20204b21
-68008c74
-202049c0
-68108a04
-245a49cb
-700d4800
-20600000
-68108a04
-79207e07
-60108a04
-20600000
-58000b80
-68088b80
-202049ba
-68008c70
-1fe67c03
-24214984
-68008c70
-da200be4
-c0004b1e
-79200023
-da200be9
-c000cb1e
-da200c07
-c0014b1e
-da200c47
-c001cb1e
-20600000
-68010c72
-c000c9e5
-68010b7c
-1fe22200
-20204b1e
-700d4501
-700d3601
-68010b7e
-1fe22200
-20204b1e
-68008c6b
-c0824984
-68008c6e
-c0c0c984
-68008c70
-c0804984
-68008c71
-c0804984
-68008c74
-c080c984
-68008c75
-c0804984
-68008c72
-c0804984
-68008c73
-c0804984
-da400001
-20204a12
-68008c6b
-c0014984
-68008c70
-c0804984
-68008c71
-c0804984
-68008c74
-c0814984
-68008c75
-c0804984
-68008c73
-c0804984
-68008c6e
-c0404a0d
-c040ca18
-c0414a1c
-20204984
-68008c72
-c0804984
-da400002
-68008d39
-c000ca16
-da200c65
-20204b21
-da200c67
-20204b21
-da200c69
-20204b21
-68008c6b
-c0824984
-da400002
-20204a12
-68008c6b
-c0824984
-68008c72
-c040ca29
-c0414a2b
-c041ca2d
-1fe17e7f
-c0004a25
-20204984
-68008d3b
-da400002
-c000ca14
-20204a12
-68008d3c
-20204a26
-68008d3d
-20204a26
-68008d3e
-20204a26
-700d4c01
-da200d4d
-da400001
-20204b21
-68010c70
-d84001ba
-98467c00
-2422c984
-793f8023
-68008d42
-243a4a42
-700cf600
-68008c74
-98002400
-da200cf6
-20404b21
-d8a00cf6
-df200008
-20207ec6
-700d4200
-700cf601
-20204a3b
-68008c74
-c080c984
-700d4b01
-da400001
-68008d49
-c0004a4d
-c000ca4e
-20204a12
-20204a14
-20204a12
-68008c6b
-c0824984
-68008c74
-c0804984
-68008c75
-c0804984
-68008c71
-c0804984
-68008c73
-c0804984
-68008c6e
-c0004a5e
-c000ca66
-c0014a67
-20204984
-68008c70
-c080c984
-68108a00
-793ffe07
-60108a00
-700d3900
-700d3a01
-20204988
-20204984
-68008c70
-c0804984
-68008c72
-c040ca72
-c0414a75
-c041ca77
-1fe17e7f
-c0004a70
-20204984
-700d3b00
-20204988
-700d3c00
-700d5301
-20204988
-700d3d00
-20204a73
-700d3e00
-20204a73
-68008c74
-c0804984
-68008c75
-c0804984
-68008c6e
-c0004a82
-c000ca8f
-c0014a90
-20204984
-68008c70
-c080c984
-68108a00
-79207e07
-60108a00
-700d3901
-700d3603
-700d4300
-20404988
-20407f15
-58001388
-d8e0000f
-20207f08
-20204984
-68008c70
-c0804984
-68008c71
-c0804984
-68008c72
-c040ca9d
-c0414a9f
-c041caa1
-1fe17e7f
-c0004a9b
-20204984
-700d3b01
-20204988
-700d3c01
-20204988
-700d3d01
-20204988
-700d3e01
-20204988
-68008c6e
-c0804984
-68008c72
-c0804984
-68008c73
-c0804984
-68008c74
-c0804984
-68008c75
-c0804984
-68008c71
-c0804984
-68008c70
-1fe17e80
-c0804984
-68008c70
-c0804aba
-700c6b02
-68008c70
-60108a04
-20404988
-700d4801
-20600000
-700c6b03
-20204ab5
-68008c6b
-c0014984
-68008c6e
-c0804984
-68008c72
-c0804984
-68008c73
-c0804984
-68008c74
-c0804984
-68008c75
-c0804984
-68008c71
-c0804984
-68008c70
-1fe67c01
-24214984
-68008c6b
-c001cad1
-c0024ad1
-20204984
-68008c70
-c0004ad5
-700c6b04
-20204988
-700c6b03
-20204988
-68008c6b
-c0824984
-68008c6e
-c080c984
-68008c70
-c0804984
-68008c71
-c0804984
-68008c74
-c0804984
-68008c75
-c0804984
-68008c72
-c0804984
-68008c73
-c0804984
-20204988
-700d4c01
-68008c71
-60008d4d
-68008c72
-1fe67c01
-2042caf5
-68008d36
-c0824988
-700d3602
-20404988
-20007530
-20007530
-20600000
-700d4501
-700d3a00
-700d3604
-20600000
-700d5001
-20404b03
-68010c70
-60010d4e
-68008c74
-98007200
-d8c00c76
-d8a00cb6
-20407f01
-20204988
-68010c70
-d8400200
-98467c00
-24628000
-68010c72
-d8400000
-98467c00
-24628000
-68010c74
-d8400001
-98467c00
-24628000
-700d4301
-20600000
-68008c74
-c0804984
-68008c70
-c0004b17
-c000cb1a
-20204984
-700d4a00
-700d4901
-20204988
-700d4401
-700d4a01
-700d4900
-20204988
-ea208000
-98002400
-1a20a201
-44fd401f
-c591cb2c
-1a40fe01
-1fe3fe00
-60108a18
-708a1803
-68008c74
-1fe0fffe
-1fe37e00
-60008c74
-c0004b35
-68010c74
-9a467c00
-20214b30
-1fe22400
-1a227e00
-60010b65
-1a427e00
-60008b67
-20204b37
-d8e00000
-20204b57
-44fdc01f
-68008b67
-207a0000
-1fe27200
-1fe67c40
-20214b3e
-df200040
-68008b67
-9f267e00
-60008b67
-68010b65
-1fe20c00
-e8c08000
-60108a18
-c591cb47
-708a1800
-c2004b43
-18c27e00
-60010b65
-d8e00000
-20404b57
-68008b67
-247a0000
-68008d36
-c1808000
-700d3602
-20600000
-da208a19
-d8e00001
-e8c08000
-e2208000
-c2004b54
-58000000
-f9207e00
-60108a10
-68088d37
-9841fe00
-60008d37
-20600000
-d8e00002
-da208a1a
-20204b54
-44fe401f
-68008d38
-207a0000
-68008d37
-243a4bac
-68008d45
-203a4b86
-68008d36
-c001cbbf
-c0814b86
-68008d3a
-243a4b86
-20404b6f
-20204b7a
-68008d38
-c4008000
-68008d37
-c3808000
-68008d38
-793ffe01
-60008d38
-68008d51
-207a0000
-c0084ba8
-20202a8c
-68008d38
-c4010000
-68008d37
-c3810000
-68008d38
-793ffe02
-60008d38
-68008d52
-207a0000
-c0104b89
-c010cba4
-20202a8c
-d8a00d54
-df200006
-20207ec6
-68008d4c
-68088d4b
-98417e00
-203a4ba0
-68088d4a
-9840fe00
-c000cb91
-20204ba0
-700d5200
-68008d55
-c0014ba1
-c001cba1
-68008d55
-60008d54
-68008d56
-e0a08000
-68008d58
-e0a08000
-68008d5a
-e0a08000
-df200004
-d8c00d54
-20204b5e
-700d5200
-df200008
-d8c00d54
-20204b5e
-700d5200
-df200003
-d8c00d74
-20204b5e
-700d5100
-df200008
-d8c00d64
-20204b52
-68008d36
-c001cbb0
-c0014bb2
-20600000
-700d3700
-20600000
-68108a00
-79207e07
-60108a00
-700d4701
-20600000
-68008d36
-c1018000
-c0014bbb
-20600000
-68008d47
-207a0000
-700d4601
-20204bc2
-d8e0000f
-20407f16
-247a0000
-68108a00
-c4038000
-708a00fc
-20007530
-708a003c
-20600000
-44fec01f
-6800c1ce
-247a0000
-20404bce
-24544be6
-20600000
-44ff401f
-18622200
-d8400004
-e8608000
-c000cbd8
-18408401
-c0014bd8
-18627e00
-60110058
-20600000
-68110112
-98467c00
-24214bd8
-78547c00
-1a220600
-20404bee
-98408400
-68110112
-98467c00
-24214bdf
-1a220600
-e8608000
-c000cc3f
-20202a8c
-44ffc01f
-68110058
-98000600
-20404bee
-98608600
-18627e00
-60110058
-20600000
-e8608000
-18608602
-c0014bf3
-e8608000
-20600000
-e8610000
-20600000
-6811005e
-194095fb
-99409400
-20600000
-d8400004
-20204bfc
-d8400002
-47004020
-1f20f201
-6811005e
-1fe21400
-1f227e00
-e1488000
-1fe0ffff
-99409400
-19427e00
-60010258
-18427e00
-c1010000
-68010258
-6011005e
-20204c0b
-58000000
-60010258
-20600000
-20758000
-58004d28
-600141f3
-580001a0
-60014243
-58001800
-60110054
-58001bff
-60110056
-58001c00
-6011005a
-20404c28
-70806200
-58001c00
-6011005e
-60110060
-58001800
-60110058
-60010244
-68110050
-793ffe0f
-60110050
-204066ce
-70804301
-70806281
-20600000
-58001fff
-6011005c
-68108081
-1fe1fe07
-60108081
-20600000
-4700c020
-6810810c
-98002400
-c301cc37
-68110112
-98002600
-d840044f
-98467c00
-24628000
-68110058
-98000600
-20204bc8
-6818810c
-284ffe06
-2020cc3a
-60108015
-20600000
-47014020
-6800c1ce
-203a4c44
-78347c00
-20600000
-e8610000
-98006000
-98000e00
-e8608000
-98000400
-1e0b7e00
-1fecfe00
-c01fcc4d
-20600000
-4701c020
-18e27e00
-c0004cdc
-c000cc66
-c0014c6b
-c001cc7a
-c0024cb3
-c002ccdc
-c0034cc6
-c003cc5c
-c0084cc9
-c008ccd1
-c0094ca5
-c009cc85
-20204cdc
-20404cdc
-20407f9e
-2040688c
-204033d2
-204033d9
-2020688f
-70424500
-204033d0
-20404c13
-202033db
-20404cf2
-68110000
-e1410000
-18007206
-20204cdd
-e8610000
-60014243
-60110052
-20600000
-e8608000
-1fe20400
-60108024
-e8608000
-98408400
-79207e07
-60108023
-e8608000
-98408400
-1fe27200
-20600000
-c515ccc4
-20404c6f
-e8608000
-60108025
-98408400
-c2004c7c
-184104ff
-e8608000
-98467c00
-2422ccc4
-20204cdc
-c595ccc4
-20404c6f
-60040a9a
-20407422
-df200010
-d8a00ac2
-20404ca0
-600c0aa2
-d8a00ad2
-20407497
-da200ad2
-da400ac2
-d8a00ae2
-20407352
-df200010
-d8c00ae2
-20404c9c
-680c0aa2
-68040a9a
-1fe0fff0
-60040a9a
-243a4c88
-20204c80
-e8c08000
-60108025
-c2004c9c
-20600000
-e8608000
-e0a08000
-98408400
-c2004ca0
-20600000
-c595ccc4
-d8400000
-df200010
-d8a00ac2
-20404ca0
-68108085
-1fe17efd
-60108085
-d8c00ac2
-df200010
-20407478
-20407428
-20407491
-20204c80
-df200020
-d8a04000
-d8400000
-e8608000
-e0a08000
-98408400
-c2004cb6
-184104ff
-e8608000
-98467c00
-2422ccc4
-70802300
-20404cdc
-20404be6
-204064a3
-20407f9e
-20202001
-70802300
-20202000
-e8630000
-600340a0
-20204cdc
-e8608000
-6000825a
-1fe27200
-e8610000
-6001025b
-1fe20a00
-204066fd
-20204cdc
-e8608000
-6000825a
-1fe27200
-e8610000
-6001025b
-d8a01000
-204066fd
-6808825a
-da201000
-6801025b
-20206608
-18007204
-20404cf4
-18007e01
-e1408000
-1e027e00
-e1418000
-18000e0e
-47024020
-20404cf6
-18e27e00
-e1408000
-1f227e00
-e1408000
-18000e05
-1f20f202
-20204bf9
-18000eff
-20404cf4
-58000001
-e1408000
-18007201
-20204ce3
-1800140c
-20204cf7
-18001408
-20204cf7
-18001406
-20204bf5
-7827fc00
-7824fc00
-e9408000
-08008008
-c2004cfa
-78247c00
-08008010
-78447c00
-7844fc00
-7847fc00
-1ff0fe00
-20600000
-7041ce00
-20600000
-680341d0
-680b0040
-98467c00
-20600000
-6800804b
-c2814d0f
-204062ef
-70007c08
-20204d04
-793ffe02
-6000804b
-20406001
-58000000
-7934fe01
-6000807f
-20204d04
-20600000
-70007c17
-d8a004d9
-58000000
-2d0ffe1b
-7920fe01
-e0a08000
-58000000
-e0a10000
-680141e3
-e0a10000
-6800c1e5
-e0a10000
-6800c1e7
-e0a10000
-20204d04
-70007c18
-20204d04
-20406899
-20608000
-d8400007
-2040681d
-2420cd2f
-70424501
-20600000
-6800c245
-c1808000
-20404c62
-20204cec
-4702c020
-68010264
-1fe20c00
-e8c08000
-1fe1040f
-1ff1fe00
-c004cd53
-c003cd53
-c0054d5f
-c002cd4b
-c000cd3f
-20600000
-18427e00
-c002cd43
-c001cd4a
-20600000
-700a9927
-20407d86
-6800c092
-c4030000
-18427e00
-c002c38e
-20600000
-20600000
-20404d5f
-da200001
-20404d63
-6801424c
-e0a10000
-58000000
-e0a08000
-20600000
-da200001
-20404d63
-6801424c
-e0a10000
-58000000
-e0a08000
-700a8e01
-6800c252
-79207e06
-6000c252
-700a9912
-20207d86
-e8c08000
-c000cd62
-20600000
-20600000
-20405240
-1a220400
-60088a8e
-1fe20a00
-1a227e00
-e0a10000
-20600000
-2035cd6f
-58004365
-d8a04246
-98a67200
-20407ed4
-47034020
-58000551
-d8a00511
-98a67200
-20407ed4
-580002c9
-d8a0025d
-98a67200
-20407ed4
-20205318
-4703c020
-18c20400
-18420c00
-e8c10000
-60010266
-e8c10000
-60010268
-18c27e00
-60010264
-6800c681
-c0004d85
-202050ef
-68010266
-203a4dfc
-47044021
-68008268
-c000cd9d
-c0284de0
-c028cdf5
-c0294df3
-c029cdf3
-20204dfc
-4704c021
-2040527e
-6800c256
-c0004d9b
-c000cd9b
-c0014d9b
-c001cd9b
-c040cd9b
-c0604d9b
-c0404d9b
-c0204d9b
-20600000
-58000000
-20600000
-20404d8f
-247a0000
-204052b8
-20404e01
-6809026f
-203a4dfb
-204052c1
-6801026f
-e0a10000
-18007e01
-e0a10000
-20204dfc
-6800c364
-207a0000
-1fe22200
-47054021
-680202d5
-d8400100
-98408400
-1c427e00
-98467c00
-24610000
-70436400
-1a227e00
-c0284db7
-20202a8c
-d9000000
-204052b8
-20404e7a
-204052c3
-20407ea8
-20404ead
-204052c1
-5800000c
-e0a10000
-18007e01
-e0a10000
-20204dfc
-4705c021
-68010275
-1fe0fe04
-1ff1fe00
-1fe97e00
-1fe08401
-d8c04260
-e8c18000
-207a0000
-60018ac2
-68008ac2
-1fe22200
-20404dd3
-1a427e00
-6000c260
-20600000
-d8e00000
-da400000
-18e67c07
-24610000
-aa2fffff
-2020cdda
-20204dde
-18427e00
-203a4dde
-f9202400
-184085ff
-18e08e01
-20204dd5
-20405274
-247a0000
-20404d8f
-247a0000
-204052c5
-20406e11
-20404dc3
-20204dec
-20405274
-247a0000
-204052c5
-20406e11
-204052ce
-68010275
-203a4dfb
-e0a10000
-68014248
-e0a10000
-20204dfc
-20404d33
-20204dfc
-47064021
-70028400
-20406a8a
-68008284
-c1008000
-20204dfc
-20405264
-58000000
-60010266
-60010268
-70026a01
-20600000
-4706c021
-204052c3
-18002400
-68010266
-1fe22600
-68010264
-98000c00
-20404e10
-1a627e00
-1a60a7fc
-1fe0fffc
-243a4e08
-1a427e00
-6001026f
-20600000
-47074021
-e8c08000
-c000ce49
-c0014e51
-c001ced5
-c0024f05
-c002cfa2
-c0034fcb
-c003d01b
-c0045050
-c004d060
-c0054e1f
-c005d061
-20405062
-20600000
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-1a627e00
-9a262600
-5800000b
-e0a08000
-18e27e00
-e0a08000
-e8c10000
-c0014e2d
-c001ce33
-20600000
-58020008
-e0a30000
-58000280
-e0a20000
-18007e0c
-20204e38
-5803000c
-e0a30000
-58000006
-e0a40000
-18007e10
-9a40a400
-20204e1e
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-e8c10000
-60010aa2
-1a627e00
-9a262600
-204052c3
-5800000b
-e0a08000
-18e27e00
-e0a08000
-68010aa2
-20204e2a
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-98c08c00
-1a627e00
-9a262600
-20204e1e
-20407ea8
-20407ead
-d9000000
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-e8c10000
-1fe20400
-e8c10000
-1fe21600
-4707c021
-18427e00
-c000ce64
-c001ce86
-c008ce92
-c009ce9d
-20405062
-20204ed4
-20407ea8
-d8400050
-68014248
-243a4ece
-19627e00
-60014248
-1c427e00
-600202d5
-20404e6e
-20204ea9
-600902d3
-19627e00
-600102c9
-1a227e00
-600102cb
-1a427e00
-600102cd
-1a627e00
-600102cf
-18e27e00
-600102d1
-20600000
-680902d3
-680102c9
-1fe21600
-680102cb
-1fe22200
-680102cd
-1fe22400
-680102cf
-1fe22600
-680102d1
-1fe20e00
-20600000
-20407ea8
-58000051
-d8400051
-6801424a
-243a4ece
-19627e00
-6001424a
-6800c251
-79207e00
-79207e01
-6000c251
-20204eb1
-20407ea8
-d8400052
-6801424c
-243a4ece
-19627e00
-6001424c
-6800c252
-79207e00
-79207e01
-6000c252
-20204eb1
-20407ea8
-1b427e00
-d8400053
-6801424e
-243a4ece
-19627e00
-6001424e
-6800c253
-79207e00
-79207e01
-6000c253
-20204eb1
-58000001
-6001027d
-70436450
-20204eb3
-6800c250
-79207e00
-79207e01
-6000c250
-58000000
-6001027d
-47084022
-20407ead
-58000003
-e0a08000
-18e27e00
-e0a08000
-58000008
-e0a10000
-18427e00
-e0a10000
-19627e00
-e0a10000
-6801027d
-c000cec9
-290c0000
-2020cec4
-58000004
-e0a10000
-18007e00
-e0a10000
-5800000c
-20204ed0
-e0a10000
-18007e02
-e0a10000
-5800000c
-20204ed0
-79201000
-20204eb1
-9a40a400
-1a627e00
-9a262600
-20204ed4
-20204e1e
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-1a627e00
-9a262600
-e8c10000
-1fe21600
-e8c10000
-1fe20400
-4708c022
-58000050
-98467c00
-2022ceed
-58000051
-98467c00
-2022cef3
-58000052
-98467c00
-2022ceff
-58000053
-98467c00
-2022cef9
-20600000
-19627e00
-60014248
-6800c250
-79207e01
-6000c250
-20204e1e
-19627e00
-6001424a
-6800c251
-79207e01
-6000c251
-20600000
-19627e00
-6001424c
-6800c253
-79207e01
-6000c253
-20600000
-19627e00
-6001424e
-6800c252
-79207e01
-6000c252
-20600000
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-1a627e00
-9a262600
-e8c10000
-1fe20400
-18422200
-47094022
-58000050
-98467c00
-2022cf1c
-58000051
-98467c00
-2022cf3a
-58000052
-98467c00
-2022cf26
-58000053
-98467c00
-2022cf30
-20205062
-18a21600
-6800c250
-79207e04
-79207e03
-6000c250
-19620a00
-d9600050
-68014248
-1fe20400
-20204f43
-18a21600
-6800c252
-79207e04
-79207e03
-6000c252
-19620a00
-d9600052
-6801424c
-1fe20400
-20204f43
-18a21600
-6800c253
-79207e04
-79207e03
-6000c253
-19620a00
-d9600053
-6801424e
-1fe20400
-20204f43
-18a21600
-6800c251
-79207e04
-79207e03
-6000c251
-19620a00
-d9600051
-6801424a
-1fe20400
-4709c022
-58000005
-e0a08000
-18e27e00
-e0a08000
-58000006
-e0a10000
-18427e00
-e0a10000
-18007e00
-e0a10000
-18007e00
-e0a10000
-18007e0a
-9a40a400
-60090282
-18e27e00
-60008281
-18007e50
-a961fe00
-2020cf59
-1fe0fe01
-20600000
-78547c00
-c3810000
-c4000000
-c4008000
-79207e02
-18c20a00
-18a08bff
-e0a08000
-78347c00
-20600000
-6800c250
-20404f5a
-24344f6b
-70028050
-68014248
-60010282
-20204f7f
-6800c251
-20404f5a
-24344f72
-70028051
-6801424a
-60010282
-20204f7f
-6800c252
-20404f5a
-24344f79
-70028052
-6801424c
-60010282
-20204f7f
-6800c253
-20404f5a
-24740000
-70028053
-6801424e
-60010282
-470a4022
-2040523a
-204052b8
-18002400
-204052c3
-18007e04
-e0a08000
-6800c255
-e0a08000
-58000008
-e0a10000
-68010282
-e0a10000
-58000000
-e0a10000
-18007e01
-e0a08000
-18007e02
-e0a08000
-68008280
-c028cf97
-58000030
-e0a10000
-20204f99
-580003e3
-e0a10000
-d840000c
-6009026f
-204052c1
-6801026f
-e0a10000
-18007e01
-e0a10000
-70028000
-20204e1e
-18c08c01
-e8c10000
-1fe22200
-1a627e00
-9a262600
-e8c10000
-1fe22200
-470ac022
-58000050
-9a267c00
-2022cfba
-58000051
-9a267c00
-2022cfbe
-58000052
-9a267c00
-2022cfc2
-58000053
-9a267c00
-2022cfc6
-18c08c02
-e8c10000
-98007c00
-20204e1e
-6800c250
-79207e05
-6000c250
-20204e1e
-6800c251
-79207e05
-6000c251
-20204e1e
-6800c252
-79207e05
-6000c252
-20204e1e
-6800c253
-79207e05
-6000c253
-700a9906
-20207d86
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-1a627e00
-9a262600
-e8c10000
-1fe22200
-e8c10000
-1fe21600
-1a220400
-20407ea8
-470b4022
-58000050
-98467c00
-2022cff2
-58000051
-98467c00
-2022d002
-58000052
-98467c00
-2022cfe6
-58000053
-98467c00
-2022cfec
-20405062
-20205017
-19620400
-6801424c
-98467c00
-2022cff8
-20405062
-20205017
-19620400
-6801424e
-98467c00
-2022cffa
-20405062
-20205017
-19620400
-68014248
-98467c00
-2022cffe
-20405062
-20205017
-20405079
-2020500a
-2040507f
-6801424c
-203a500a
-2020500a
-20405074
-68008288
-243a500a
-2020500a
-19620400
-6801424a
-98467c00
-2022d008
-20405062
-20205017
-2040506f
-2020500a
-20407ead
-58000007
-e0a08000
-18e27e00
-e0a08000
-58000004
-e0a10000
-1a227e00
-e0a10000
-19627e00
-e0a10000
-18007e08
-20205019
-20407ead
-20205019
-9a40a400
-20204e1e
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-1a627e00
-9a262600
-e8c10000
-1fe21600
-e8c10000
-1fe20400
-20407ea8
-470bc022
-58000050
-98467c00
-2022d035
-58000051
-98467c00
-2022d03b
-58000052
-98467c00
-2022d041
-58000053
-98467c00
-2022d047
-20405062
-2020504f
-18422200
-19620400
-68014248
-98467c00
-2042d074
-2020504d
-18422200
-19620400
-6801424a
-98467c00
-2042d06f
-2020504d
-18422200
-19620400
-6801424c
-98467c00
-2042d079
-2020504d
-18422200
-19620400
-6801424e
-98467c00
-2042d07f
-2020504d
-20407ead
-20204e1e
-20204e1e
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-98c08c00
-58000009
-e0a08000
-18e27e00
-e0a08000
-18007e00
-e0a10000
-18007e04
-9a40a400
-1a627e00
-9a262600
-20204e1e
-20204e1e
-20204e1e
-18002400
-204052c3
-58000001
-e0a08000
-18e27e00
-e0a08000
-58000002
-e0a10000
-58000000
-e0a10000
-1a40a406
-da600004
-20204e1e
-58000000
-6001027b
-6001424a
-70425100
-20600000
-58000000
-60010275
-60014248
-70425000
-20600000
-58000000
-6001424c
-70425200
-6800c253
-c0005085
-20600000
-58000000
-6001424e
-70425300
-6800c252
-c0005085
-20600000
-700a9907
-20207d86
-6800827f
-793ffe00
-6000827f
-6801424e
-207a0000
-204052b8
-6801424e
-1fe22200
-18002453
-2020509a
-6800827f
-793ffe07
-6000827f
-6801424c
-207a0000
-204052b8
-6801424c
-1fe22200
-18002452
-2040523a
-204052c3
-18007e06
-e0a08000
-6800c255
-e0a08000
-58000004
-e0a10000
-1a227e00
-e0a10000
-1a427e00
-e0a10000
-18000408
-202050de
-470c4023
-2040523a
-204052c3
-58000002
-e0a08000
-6800c255
-e0a08000
-58000004
-e0a10000
-18427e00
-e0a10000
-19627e00
-e0a10000
-d8400008
-202050de
-470cc023
-2040523a
-204052c3
-58000004
-e0a08000
-6800c255
-e0a08000
-58000008
-e0a10000
-18427e00
-e0a10000
-58000000
-e0a10000
-58000001
-e0a08000
-58000002
-e0a08000
-580003e3
-e0a10000
-d840000c
-202050de
-470d4023
-2040523a
-204052c3
-58000006
-e0a08000
-6800c255
-1fe0fe01
-18a22200
-6000c255
-1a220a00
-e0a08000
-58000004
-e0a10000
-18427e00
-e0a10000
-19627e00
-e0a10000
-d8400008
-6009026f
-18427e00
-203a5264
-204052c1
-6801026f
-e0a10000
-18007e01
-e0a10000
-20600000
-68010275
-203a2a8c
-204052ce
-68010275
-e0a10000
-68014248
-e0a10000
-20600000
-68010266
-203a4dfc
-470dc023
-68008268
-c000d0f9
-c0284de8
-c028cdf5
-c0294df3
-c029cdf3
-20204dfc
-470e4023
-204052b8
-18002400
-204052c3
-1fe20a00
-68010266
-1fe22600
-68010264
-98000c00
-20405108
-1a60a7fc
-2422d102
-1a420400
-204050de
-20204dfc
-e8c08000
-c0015113
-c000d116
-c001d120
-c002d15c
-c002518e
-c003d213
-c00351e1
-c0045050
-c0054e3a
-2020522e
-20407ea8
-20407ead
-20204e51
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-1a627e00
-9a262600
-e8c08000
-1a20a3ff
-2422d11c
-20600000
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-e8c10000
-1fe21600
-e8c10000
-1fe20400
-e8c10000
-1fe67c00
-2022d132
-c001512e
-c002512e
-20205130
-700a9916
-20407d86
-e8c10000
-20205159
-20407ea8
-470ec023
-58000050
-98467c00
-2022d141
-58000051
-98467c00
-2022d147
-58000053
-98467c00
-2022d153
-58000052
-98467c00
-2022d14d
-20205159
-19627e00
-60014248
-6800c250
-79207e01
-6000c250
-20205158
-19627e00
-6001424a
-6800c251
-79207e01
-6000c251
-20205158
-19627e00
-6001424c
-6800c252
-79207e01
-6000c252
-20205158
-19627e00
-6001424e
-6800c253
-79207e01
-6000c253
-20407ead
-1a627e00
-9a262600
-20600000
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-1a627e00
-9a262600
-e8c10000
-1fe21600
-e8c10000
-e8c10000
-243a5188
-20407ea8
-19620400
-470f4023
-58000050
-98467c00
-2022d176
-58000051
-98467c00
-2022d17a
-58000052
-98467c00
-2022d17e
-58000053
-98467c00
-2022d182
-6800c250
-79207e05
-6000c250
-20600000
-6800c251
-79207e05
-6000c251
-20600000
-6800c252
-79207e05
-6000c252
-20600000
-6800c253
-79207e05
-6000c253
-700a9906
-20207d86
-20407ead
-1a20a3fa
-2022d18d
-18c08c01
-1a20a3ff
-20205189
-20600000
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-1a627e00
-9a262600
-e8c10000
-18c08c02
-1fe20400
-58000005
-e0a08000
-18e27e00
-e0a08000
-1a20a202
-1a227e00
-e0a10000
-20407ea8
-470fc023
-58000050
-98467c00
-2022d1ad
-58000051
-98467c00
-2022d1be
-58000052
-98467c00
-2022d1c4
-58000053
-98467c00
-2022d1ca
-202051cf
-6800c250
-79207e04
-79207e03
-6000c250
-c28151bb
-6808827f
-79200406
-6008827f
-18e27e00
-1fe0fe01
-60008281
-6800c250
-79207e02
-6000c250
-68014248
-60010282
-202051cf
-6800c251
-79207e04
-79207e03
-6000c251
-6801424a
-202051cf
-6800c252
-79207e04
-79207e03
-6000c252
-6801424c
-202051cf
-6800c253
-79207e04
-79207e03
-6000c253
-6801424e
-1fe21600
-20407ead
-19627e00
-e0a10000
-18007e00
-e0a10000
-18007e00
-e0a10000
-18007e0a
-9a40a400
-1a20a3fa
-2022d1e0
-e8c08000
-e0a08000
-1a40a401
-1a20a3ff
-202051da
-20600000
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-1a627e00
-9a262600
-e8c10000
-1fe22200
-e8c10000
-1fe21600
-20407ea8
-47104024
-58000050
-1a220400
-98467c00
-2022d1fa
-58000052
-1a220400
-98467c00
-2022d1ff
-58000053
-1a220400
-98467c00
-2022d201
-20205203
-58000000
-60010275
-60014248
-6000c250
-20205205
-20405079
-20205205
-2040507f
-20205205
-58000000
-6001027b
-20407ead
-58000007
-e0a08000
-18e27e00
-e0a08000
-58000004
-e0a10000
-1a227e00
-e0a10000
-19627e00
-e0a10000
-18007e08
-9a40a400
-20600000
-e8c08000
-1fe20e00
-e8c10000
-1fe22200
-e8c10000
-1fe21600
-e8c10000
-1fe20400
-20407ea8
-4710c024
-6800c255
-a8e1fe00
-2420d22a
-58000050
-98467c00
-2022d227
-58000051
-98467c00
-2022d22a
-2020522a
-70424800
-70425000
-2020522a
-20407ead
-1a627e00
-9a262600
-20600000
-58000001
-e0a08000
-e8c08000
-e0a08000
-58000002
-e0a10000
-58000000
-e0a10000
-58000006
-9a40a400
-18002604
-20600000
-6800c255
-1fe0fe01
-c080523e
-1fe0fe01
-6000c255
-20600000
-47114024
-da400000
-2040526e
-243a2a8c
-2040527e
-da401800
-d8e00000
-6808c256
-a84fffff
-2020d24f
-204052a0
-19667c00
-2021524f
-20405288
-20205255
-1a40a480
-18e08e01
-58000008
-98e67c00
-20215247
-da400000
-1a427e00
-203a2a8c
-20600000
-4711c024
-20405277
-18c08c01
-e8c10000
-20600000
-47124024
-20405277
-18c20a00
-18c20400
-58000000
-e0a18000
-20600000
-4712c024
-20405274
-203a2a8c
-6801c25d
-6001c260
-6801c25a
-6001c25d
-6801c257
-6001c25a
-20600000
-47134024
-6801c257
-20600000
-4713c024
-6801c25a
-20600000
-47144025
-6801c260
-20600000
-20405274
-203a2a8c
-d8c04257
-e8c18000
-203a527a
-18c08dfd
-20600000
-4714c025
-df200004
-d8c04257
-d8400000
-e8c18000
-1fe17eff
-98418400
-c2005282
-6008c256
-20600000
-47154025
-2040526e
-243a2a8c
-20405274
-203a5295
-6801c25a
-6001c257
-e8c18000
-e0a18000
-e8c18000
-e0a18000
-58000000
-e0a18000
-d8400000
-19627e00
-98e0fe00
-f9200400
-18e08e01
-98e67c00
-2422d298
-1a4d7e00
-9841fe00
-6001c260
-20600000
-4715c025
-2040527e
-18e22600
-d8400000
-d9600000
-18e27e00
-c00452b0
-6800c256
-afefffff
-2020d2b0
-18408480
-18e08e01
-1a227e00
-98467c00
-2022d2b0
-202152a5
-18427e00
-9a267c00
-242152b6
-18e27e00
-1a620400
-98461600
-1a620e00
-20600000
-47164025
-da20007f
-20405240
-6001026b
-1fe0fe04
-6001026d
-58000000
-6001026f
-20600000
-6801026b
-202052e2
-6801026d
-202052e2
-4716c025
-da2000fa
-20405240
-60010271
-1fe0fe04
-60010273
-58000000
-60010275
-20600000
-68010271
-202052e2
-68010273
-202052e2
-47174025
-20407e7c
-70028401
-2040526e
-247a0000
-da20007f
-20405240
-60010277
-1fe0fe04
-60010279
-58000000
-6001027b
-70028400
-20207e8c
-68010277
-202052e2
-203a2a8c
-1fe20a00
-20600000
-4717c025
-da400000
-da204257
-1a20a3fe
-1a20a202
-58004263
-9a267c00
-2022d2f5
-ea208000
-1a20a201
-203a52e9
-ea290000
-e8410000
-9a40a400
-1a40a404
-202052e9
-1a427e00
-20600000
-d8e0000c
-20202c32
-d8e0000c
-20202c36
-47184026
-2040527e
-6800c256
-207a0000
-204052e5
-d8400100
-98467c00
-202152f7
-204052f9
-d8a04263
-da204257
-58004263
-9a267c00
-20628000
-ea208000
-1a20a201
-243a530f
-e0a10000
-1a20a202
-20205306
-ea210000
-1a20a202
-1fe20c00
-e8c10000
-e0a10000
-1fe27200
-1f20f202
-20407f01
-20205306
-4718c026
-2040527e
-6800c256
-207a0000
-da204258
-1a20a3fd
-d8c04263
-1a20a203
-58004264
-9a267c00
-20628000
-e8c10000
-203a531f
-1fe0fe04
-1fe27200
-18c22400
-ea210000
-1fe20a00
-1a420c00
-18c08dfe
-20407f01
-2020531f
-47194026
-7855fc00
-70045501
-70043f03
-70045601
-5fffffff
-60010459
-18007e00
-60008457
-60008462
-6001c169
-6001c16c
-6002c403
-79207e27
-6002c408
-7043dc01
-7043dd00
-202056ed
-4719c026
-7834fc00
-70044003
-70047801
-70445a01
-5800ffff
-6001445c
-18007e00
-6002c408
-79207e27
-6002c403
-2020532e
-471a4026
-7854fc00
-58000017
-600144a8
-70044001
-70436e00
-7000a000
-7044c400
-7044c500
-6801046d
-600144ba
-68010441
-1feffe05
-1ff1fe00
-6001046d
-2020532e
-204053c4
-204055e8
-204056f0
-202053ce
-471ac026
-204053c4
-204032f4
-68008440
-c001d366
-2020537a
-471b4026
-7834fc00
-204056e4
-20215377
-20402c6c
-20405413
-2040561e
-7856fc00
-204054bf
-24768000
-471bc026
-68008005
-1fe0fe01
-60008005
-204055aa
-7854fc00
-20600000
-204053a9
-7854fc00
-20600000
-471c4027
-70450f00
-20407aaf
-20405c18
-78577c00
-204056e4
-202153a9
-20402c6c
-20405413
-20405489
-242c539b
-204053b7
-2036d388
-20205395
-471cc027
-6800c50f
-1fe0fe01
-6000c50f
-c0065395
-204055aa
-2040561e
-204054c7
-2040567e
-680141fb
-20407f9c
-204053a0
-203453a4
-471d4027
-20405be4
-20405bdb
-20407d9c
-68008462
-c281d3a9
-471dc027
-204057f4
-2040559d
-20405575
-20202841
-78547c00
-c5157fe7
-c514ffe7
-20600000
-471e4027
-78377c00
-204054c1
-2036d388
-20205395
-471ec027
-204053af
-204033b4
-20407a77
-700a9915
-20207d86
-58000000
-6004c4ff
-70045500
-70044000
-70043f00
-7044c500
-7044c400
-20600000
-471f4027
-68008005
-1fe0fe01
-60008005
-6800843f
-c3818000
-79207e03
-6000843f
-680144ba
-6001046d
-58000000
-600244e5
-20600000
-471fc027
-70890f36
-70890b5f
-783b7c00
-70891407
-20402c6c
-6800c1e0
-207a0000
-70890ab8
-20600000
-47204028
-70890f2e
-70890bff
-785b7c00
-70891403
-db600000
-20600000
-7844fc00
-7843fc00
-68018467
-98001e00
-68008016
-1fed8400
-79200401
-18431c00
-20600000
-204053e6
-2040291f
-58000500
-20402a8f
-20202924
-2036a939
-204053e6
-20202933
-4720c028
-20402918
-6800848c
-243a53f9
-68008016
-1fe67c24
-202153f3
-18000400
-c1128000
-18000418
-c1130000
-1800044e
-20600000
-1fe67c0a
-202153f6
-1fe0fe01
-1fe3fe00
-1fe08402
-20600000
-68008016
-1fe38400
-20600000
-d84001f4
-207a0000
-d84000fa
-c1008000
-d8400096
-c1010000
-d8400064
-c1018000
-d840004b
-c1020000
-d8400032
-c1028000
-d8400028
-c1030000
-d8400014
-20600000
-588e89be
-1fed7e00
-1fe1fed6
-98001200
-58555555
-60018467
-20600000
-47214028
-78287c00
-68020463
-98001200
-20405466
-58000200
-2034d41c
-6801044d
-1fe37e00
-d8400500
-9840fe00
-20402a24
-1b427e00
-60030491
-20600000
-4721c028
-68008016
-c012d428
-c013542e
-c013d434
-20205434
-6808c48d
-284ffe01
-2020d43f
-284ffe02
-2020d444
-2020543a
-6808c48d
-284ffe02
-2020d444
-284ffe00
-2020d43a
-2020543f
-6808c48d
-284ffe00
-2020d43a
-284ffe01
-2020d43f
-20205444
-70001625
-68008ac2
-79207e00
-60008ac2
-20600000
-70001626
-68008ac2
-79207e01
-60008ac2
-20600000
-70001627
-68008ac2
-79207e02
-60008ac2
-20600000
-47224028
-1a208c01
-e8c08000
-c4000000
-1a208a1a
-e8a10000
-1fe0fe01
-e0a10000
-1a208c19
-e8c08000
-1a208a18
-e8a88000
-9840fe00
-1fe67c24
-20215459
-1fe0ffdb
-e0a08000
-20600000
-4722c028
-6802846f
-18000400
-18007225
-c3005461
-18408401
-1fe37e00
-c200545f
-1840ffff
-60008461
-20600000
-47234028
-68008457
-98000e00
-680a846f
-a84fffff
-2020d47c
-4723c028
-68008461
-98e67e00
-20215472
-1fe60fff
-2020546c
-18e27200
-18000e00
-a84fffff
-2020d477
-1f20f201
-1f227e00
-203a547c
-18e08e01
-1f20f3ff
-20205474
-18e27e00
-60008016
-20600000
-2034d482
-37c18200
-20600000
-d9600ea0
-34730200
-20600000
-78487c00
-6801436c
-1fe21600
-2020548e
-47244029
-78287c00
-6801044d
-680a44e5
-98409600
-204053de
-4724c029
-204053d5
-7856fc00
-7826fc00
-7830fc00
-78507c00
-19623600
-37c18400
-2037549a
-1b420400
-600b009a
-242c264d
-203754a1
-dd2001e0
-1c225000
-6800843f
-c301d4a1
-2055ab05
-47254029
-204029bb
-7823fc00
-7824fc00
-09800008
-19897e00
-600082d9
-09800008
-19897e00
-e0a08000
-1fe1723f
-2022d4b1
-09800008
-19897e00
-e0a08000
-c20054ad
-4725c029
-09800018
-78287c00
-db600664
-1fef7e00
-1ff17e00
-e0a18000
-2023264d
-7836fc00
-68008017
-1fe0a200
-20402981
-7846fc00
-20202918
-47264029
-204054c9
-68088017
-2040291f
-20402924
-78287c00
-d960157c
-2020548f
-204054c9
-2020264d
-4726c029
-204053d5
-204053e3
-202054cd
-79202a00
-782efc00
-78307c00
-7850fc00
-2040547f
-19317e00
-1fecfe00
-1ff1fe00
-08008628
-7823fc00
-7824fc00
-47274029
-6800c3dc
-08008608
-e8c08000
-1fe1723f
-08008608
-2022d4e2
-e8c08000
-08008608
-c20054df
-78247c00
-08008618
-78447c00
-37d38200
-20000064
-784efc00
-20600000
-4727c029
-6800c484
-c000d4f9
-6800c485
-1ff27e00
-1febfe00
-6000c3dc
-6808c36f
-1840fe06
-6000c3dd
-680344a0
-600343de
-18427200
-d8c04370
-20407ef4
-20205504
-6800c486
-1ff27e00
-1febfe00
-1fe0fe01
-6000c3dc
-5800000c
-6000c3dd
-680344a0
-600343de
-680341d0
-e0a30000
-4728402a
-68008000
-1fe0fe01
-60008000
-db600708
-7856fc00
-202054bf
-4728c02a
-6800c49e
-c1808000
-68008000
-1fe0fe01
-60008000
-d8400c03
-6800c49f
-7d3a0406
-1a227e00
-7d3a0407
-600943dc
-680344a0
-e0a30000
-6803044f
-e0a30000
-202054bf
-4729402a
-d8400004
-6800c485
-7d3a0406
-6008c3dc
-6808c38f
-1840fe06
-6000c3dd
-680344a0
-600343de
-d8c04390
-18427200
-20407ef4
-204054c7
-20205706
-4729c02a
-18007fff
-38080001
-6002846f
-2040545b
-18007204
-d8a00463
-2040630d
-6801449c
-6001046d
-180a7e00
-1fe17e0f
-1fe67c04
-20215535
-60008458
-600086e6
-472a402a
-68094367
-60090441
-18422600
-1c40fe07
-9a66fc00
-20407f86
-18072200
-9a267e00
-9a60fe00
-68094365
-9840fe00
-60020443
-9c462200
-1a20a3fa
-da402205
-6800c495
-7d3a2406
-6800c48e
-7d3a2407
-1a427e00
-600143dc
-680344a0
-e0a30000
-6803044f
-e0a30000
-68020463
-e0a20000
-180a7e00
-e0a10000
-180a7e00
-e0a08000
-18007e02
-e0a08000
-1a2b7e00
-e0a10000
-1a6b7e00
-e0a10000
-472ac02a
-58000000
-e0a10000
-6801449c
-e0a10000
-6802846f
-e0a28000
-68008458
-d84000a0
-9841fe00
-e0a08000
-204054c7
-580043dc
-1fe08c12
-e8c18000
-60018467
-20600000
-472b402a
-7854fc00
-2020540c
-6800843f
-c4028000
-68010459
-6809045f
-98467e00
-24610000
-60010a9a
-472bc02a
-6800843f
-793ffe05
-793ffe03
-6000843f
-68020443
-68090441
-60090aa2
-98462200
-472c402b
-6800c3d3
-6000846a
-e8c90000
-e8c10000
-1febfe00
-60010441
-184b8400
-9840fe00
-e8ca0000
-600a046b
-9a20fe00
-1fe22800
-68010441
-68090aa2
-98467e00
-68090a9a
-984ffe00
-9a80fe00
-60020443
-20405713
-6801046d
-600144ba
-20600000
-472cc02b
-6800843f
-c4030000
-68010459
-6809045f
-98467e00
-24610000
-6800843f
-793ffe06
-6000843f
-6802c3ce
-6002846f
-2020545b
-472d402b
-204056ed
-204055c0
-680082d9
-2feffe04
-7920802a
-1fe37e00
-9842fe00
-2feffe02
-7920800f
-c6078000
-680082da
-203a55bc
-6800843f
-c30255bc
-2040748d
-204073fb
-247a0000
-68088456
-79400402
-60088456
-20600000
-472dc02b
-68088456
-284c0005
-20608000
-680082d9
-1fe3fe00
-9842fe00
-c4018000
-793f8405
-79400403
-60088456
-28400603
-24608000
-6800c3de
-c002d5d2
-6800c4c5
-c00155d6
-20600000
-6800843f
-79207e04
-6000843f
-20600000
-472e402b
-7044c500
-dfe00000
-6002440d
-6002c403
-79207e27
-6002c408
-6800843f
-793ffe04
-6000843f
-20600000
-472ec02b
-20405422
-20405485
-68008001
-1fe0fe01
-60008001
-20600000
-472f402b
-6800c369
-c1808000
-d8e00002
-20407f16
-247a0000
-6801436a
-6809436c
-98467e00
-d8e00002
-20407f08
-7854fc00
-20405572
-204055e1
-24768000
-472fc02b
-680302db
-6003044f
-68008002
-1fe0fe01
-60008002
-20405608
-20748000
-2040550b
-24768000
-4730402c
-68008004
-1fe0fe01
-60008004
-680482e1
-60048101
-20600000
-4730c02c
-6800849b
-c18d8000
-6803044f
-680b448f
-98467c00
-24628000
-2040223b
-24628000
-2040552b
-20405340
-4731402c
-7041ce00
-70047600
-70436900
-70049b00
-20202223
-da200001
-680082d9
-c3830000
-da200000
-20600000
-4731c02c
-68008456
-c3828000
-20405642
-20405873
-203a5664
-e8c08000
-e8c88000
-18422200
-9a267e00
-d840001b
-20407fdd
-1fe20400
-e8c08000
-1fe20200
-1a227e00
-98c08c00
-d8a043de
-18427200
-20407f01
-20405654
-20405666
-20405873
-e8c08000
-1fe22200
-18c22600
-e8c88000
-18422400
-9a467e00
-d840001b
-20407fdd
-9a40fe00
-e2608000
-9a267c00
-24628000
-20205896
-20405649
-c6148000
-6800c4e9
-c3015652
-20405876
-203a5652
-20205650
-20405873
-203a5652
-e8c08000
-e8c88000
-98467e00
-1fe67c1b
-20215652
-79200029
-20600000
-793f8029
-20600000
-1a227e00
-207a0000
-d8200001
-20600000
-4732402c
-18408401
-2040576a
-18c08dfe
-e8c10000
-d8402902
-98467c00
-24628000
-18c08c01
-18c22200
-e8c08000
-20600000
-18000400
-18000201
-4732c02c
-6008c3dd
-68088456
-79200405
-18417efc
-9821fe00
-60008456
-1fe17e1f
-280ffe29
-7920fe04
-6000c3dc
-6800c3dc
-28200601
-2420d676
-6800c3dd
-207a0000
-6800843f
-c4020000
-2040748d
-202073e3
-d8e00000
-20202c32
-d8e00000
-20202c36
-4733402c
-c6078000
-20405890
-247a0000
-680082d9
-1fe17e03
-6000c50c
-e8c08000
-1fe17e1f
-6000c50b
-207a0000
-18c27e00
-6001450d
-6800c50c
-c001dc64
-2040569a
-2434567a
-2040567c
-6801450d
-1fe20c00
-e8c10000
-600144fc
-4733c02c
-e8c10000
-c00258ab
-c0035af4
-c002dab6
-20600000
-6800c50c
-c00156a9
-c000d6c1
-20600000
-20407fe7
-d8400004
-9fe67c00
-20628000
-d8400005
-9fe67c00
-20628000
-d8400006
-9fe67c00
-20628000
-20207fe9
-6801450d
-1fe20c00
-e8c10000
-600144fc
-e8c10000
-2040569e
-24740000
-6808c50b
-6008c4fe
-680144fc
-1fe0fe04
-98467c00
-2022ffe7
-6800c50b
-1fe27200
-d8a00311
-6801450d
-1fe20c00
-20407f01
-20207fe9
-20407fe7
-6800c4fe
-247a0000
-20207fe9
-204056bd
-24740000
-6800c4fe
-d8a00311
-98a0a200
-6808c50b
-9840fe00
-6000c4fe
-6800c50b
-1fe27200
-1a220a00
-6801450d
-1fe20c00
-20407ef4
-58000311
-6001450d
-680144fc
-1fe0fe04
-6808c4fe
-98467c00
-2022ffe7
-20207fe9
-20407ea5
-d8a0445e
-680144fc
-1fe0fffb
-e0a08000
-1fe27200
-20407e9f
-20207ef4
-20407ea5
-d8a04471
-202056d9
-680141f9
-20207f9c
-680a045b
-20402a7b
-98461600
-19627e00
-6809046d
-18520400
-18438400
-98467e00
-20600000
-20402a7b
-6002045b
-20600000
-70001624
-700ac200
-4734402d
-6800c36e
-207a0000
-d8e00000
-20407f16
-247a0000
-4734c02d
-7854fc00
-78287c00
-20405572
-20405422
-204054e9
-2436d706
-68008003
-1fe0fe01
-60008003
-680082d9
-1fe17e0f
-c001d51c
-c002d728
-4735402d
-180a7e00
-d84001ff
-98417e00
-1fe0fefa
-20403cbe
-68008ac2
-6808c48d
-98467c00
-2422d6f2
-d8e00000
-68014482
-20207f08
-4735c02d
-68008476
-204053fc
-68010441
-984ffe00
-d8400177
-984ffe00
-d84186a0
-9846fc00
-6800846a
-d8404e20
-984ffe00
-9840fe00
-600244e5
-4736402d
-680140c1
-20407f86
-18078400
-9840fe00
-6001044d
-20600000
-4736c02d
-680302e1
-680b44a0
-98467c00
-24628000
-20405619
-1a227e00
-6000c48e
-680382ee
-60038101
-e8c40000
-e0a40000
-680302db
-6003044f
-18c08c06
-e8c40000
-60040463
-e8c90000
-4737402d
-184b8400
-e8c10000
-1febfe00
-60010441
-60020443
-98467e00
-1fe0d1fe
-e8c48000
-6004846b
-4737c02d
-e8c08000
-1ff18400
-18430400
-60088476
-1fe17e1f
-60008458
-20405713
-2040545b
-2040534c
-2040223b
-24628000
-4738402e
-20402841
-20405ad3
-700a9914
-20407d86
-20202223
-4738c02e
-6801445a
-98002400
-6801445c
-98002600
-680144bc
-98000c00
-78347c00
-20600000
-e8c10000
-207a0000
-9a467c00
-24610000
-9a667c00
-20628000
-20215768
-18007c01
-20600000
-18007e00
-20600000
-2040576d
-2022d779
-20600000
-4739402e
-680144bc
-98000c00
-e8c10000
-207a0000
-98467c00
-20628000
-e8c08000
-98c08c00
-e8c08000
-98c08c00
-20205770
-e8c08000
-98c08c00
-20600000
-4739c02e
-680144bc
-98000c00
-e8c10000
-207a0000
-e8c08000
-98c08c00
-18c08dfe
-e8c10000
-98467c00
-20628000
-e8c08000
-98c08c00
-2020577f
-6801049c
-2020578e
-473a402e
-680144bc
-98000c00
-18422200
-e8c10000
-203a5799
-9a267c00
-2022d79a
-e8c08000
-98c08c00
-e8c08000
-98c08c00
-20205790
-20207fef
-e8c08000
-600084a2
-1fe27200
-d8a004a3
-20407ef4
-e8c08000
-600084b3
-20407ea5
-20207ff1
-473ac02e
-204057a6
-202057b8
-d8402a00
-2040577c
-207a0000
-e8c08000
-18c20a00
-6808c3af
-18427200
-98467c00
-242157b5
-98460400
-d8c043b0
-20407f01
-18427200
-2442d7f0
-20600000
-1fe27200
-d8c043b0
-20207ef4
-da60438f
-da204370
-204057c5
-58000000
-79347e00
-60008a9a
-da6043af
-da204390
-204057c5
-20740000
-68008a9a
-203a2a8c
-20600000
-473b402e
-20407fe7
-20407eda
-da400000
-d8a00ac3
-204057df
-6800c3af
-1fe08401
-9a40a200
-1a20a202
-1a267c1f
-242157dd
-e0a88000
-d8400009
-e0a88000
-98007200
-20407ef4
-1a222400
-1a427e00
-60008ac2
-d8c00ac2
-5fffffe0
-9a608a00
-20207ebd
-20407fe9
-202057d7
-ea208000
-207a0000
-1fe0fe01
-e8c88000
-18467c09
-2022d7ee
-9a40a400
-1a220c00
-98007200
-20407ef4
-18c22200
-1a227e00
-9a667c00
-20610000
-202057df
-9a20a200
-202057ea
-58000020
-e0a08000
-c20057f0
-20600000
-473bc02e
-7855fc00
-203757f8
-2436d806
-20402bcb
-680140c1
-6001044d
-2436abde
-c507abde
-6800c50b
-243a2bde
-6800c3dd
-243a2bde
-6800c4e9
-c282abde
-6800843f
-c282abde
-20202bc0
-680940c1
-18430400
-6801044d
-9840fe00
-6001044d
-20202bd6
-d8e00000
-20205824
-d8e00000
-20205828
-d8e00001
-20205824
-d8e00001
-20205828
-d8e00002
-20205824
-d8e00002
-20205828
-d8e00003
-20205824
-d8e00003
-20205828
-d8e00004
-20205824
-d8e00004
-20205828
-d8e00005
-20205824
-d8e00005
-20205828
-6800c4e9
-f9207e00
-6000c4e9
-20600000
-6800c4e9
-f93ffe00
-6000c4e9
-20600000
-58112233
-6001c4ea
-58445566
-e0a18000
-58778899
-e0a18000
-58001122
-e0a18000
-58334455
-e0a18000
-58000066
-e0a08000
-20600000
-59000302
-60024453
-58010010
-6001c457
-7044c601
-20600000
-da200000
-d8200001
-20205850
-d8200003
-20405850
-1a427e00
-e0a08000
-20600000
-18000202
-1a20a204
-20405850
-1a20a3fc
-1a227e00
-e0a10000
-1a427e00
-e0a10000
-20600000
-1a267cf0
-24212a8c
-6800c4ff
-d8400001
-df200004
-98417c00
-2022d85a
-18438400
-c2005855
-20202a8c
-9842fe00
-6000c4ff
-1f267e04
-1ff27e00
-1ff27e00
-d8401800
-98408400
-df200000
-d8c04500
-e8c10000
-203a5869
-1f227e00
-1f20f201
-c0825863
-20202a8c
-18c08dfe
-e0c90000
-18420a00
-1a227e00
-e0a08000
-58000000
-e0a08000
-18227e00
-e0a08000
-20600000
-68014500
-1fe20c00
-20600000
-68014502
-1fe20c00
-20600000
-2040587c
-1fe20c00
-20600000
-68014506
-247a0000
-68014504
-247a0000
-68014502
-247a0000
-68014500
-20600000
-20405873
-18c08c03
-20600000
-20405873
-18c08c07
-20600000
-20405879
-18c08c07
-20600000
-20405879
-18c08c03
-20600000
-68014506
-20600000
-68014504
-20600000
-68014500
-20600000
-68014500
-d8401800
-98467e00
-1ff1fe00
-1ff18e00
-6800c4ff
-f93ffe00
-6000c4ff
-df200000
-1f23fe00
-d8404502
-98408400
-e8410000
-184085fe
-e0410000
-1f227e00
-1f20f201
-c081d89f
-58000000
-e0410000
-20600000
-e8c18000
-60018477
-c00158c1
-c001d8c9
-c00258cc
-c00358f2
-c004593f
-c00559bc
-c00659e4
-c00859fa
-c0095a2f
-c00b5a48
-c00c5a5b
-c0295a60
-20600000
-18002203
-20405a82
-58000002
-e0a08000
-680144a6
-e0a10000
-20600000
-204058c9
-18002203
-20405a82
-58000003
-e0a08000
-680144a6
-e0a10000
-20600000
-1fecfe00
-600144a8
-20600000
-20405ab1
-20407fe7
-202058cf
-d9600003
-20405756
-2040575f
-203a58f0
-242158ed
-18c08dfe
-20407ea5
-20407e9c
-243458e1
-20407e85
-20407fe9
-18002214
-20405a82
-20407e95
-58000005
-e0a08000
-58000001
-e0a08000
-20407e9f
-e8c10000
-e0a10000
-e8c08000
-1fe27200
-20407f01
-20407ea2
-196097ff
-2022d8f0
-e8c08000
-98c08c00
-202058d1
-e8c08000
-98c08c00
-202058ea
-20345a76
-20205aa5
-20405ab1
-e8c10000
-60014472
-20407ea5
-d8a0445e
-680144fc
-1fe0fff9
-204056db
-20205905
-78547c00
-6809445a
-6801445c
-98467c00
-24215902
-18427e00
-c1800000
-78347c00
-70047a01
-20205a77
-204058fb
-20740000
-68094472
-58002800
-98467c00
-2022d90c
-20205a76
-7004b400
-6809445a
-60090aa2
-2040578c
-243a5a76
-68090aa2
-2040578c
-243a5925
-18c22200
-680084b3
-1fe27200
-6808c45e
-98467c00
-2422d921
-da40445f
-20407f88
-2022d928
-680104a3
-68094472
-98467c00
-2022d930
-68010aa2
-1fe0fe01
-60010aa2
-20205911
-680084b4
-c000d930
-20205a76
-680104a3
-68094472
-98467c00
-2422d921
-7004b401
-68090aa2
-6009049e
-20205921
-680084b4
-c0005921
-7004b402
-68090aa2
-184085ff
-600904a0
-da200005
-20405a82
-58000007
-e0a08000
-6801049e
-e0a10000
-680104a0
-e0a10000
-20600000
-20405ab1
-204056df
-20205942
-6809445a
-60090aa2
-20405756
-2040576d
-18c08dfe
-18c27e00
-6001049c
-68094472
-58002a00
-98467c00
-2022d9a8
-58002803
-98467c00
-2422d990
-d9600002
-20405a88
-2421596d
-68090aa2
-2040578a
-c000d96d
-20405a94
-2422d96b
-2434596f
-78547c00
-da200014
-20405a82
-58000009
-e0a08000
-18a26000
-18a08a01
-2040597d
-20405a84
-2040578a
-20405984
-680084a2
-1fe0fe05
-e6008000
-680084a2
-c008596d
-196097ff
-2022d96d
-20405a84
-20205951
-20345a76
-20205aa5
-20405a97
-20405a84
-2040578a
-680084a2
-c008596d
-20407e9c
-68010aa2
-1fe0ffff
-e0a10000
-20405aa1
-20405984
-196097ff
-2022d96d
-2020596b
-68010aa2
-e0a10000
-680084b3
-1fe27200
-20407e9f
-20407ef4
-20207ea2
-20407e9c
-68010aa2
-e0a10000
-20407ea2
-680084a2
-1fe27200
-20407e9c
-20407e9f
-9f260c00
-18c08dff
-20407ef4
-20207ea2
-6809445a
-60090aa2
-20405a88
-24215a76
-2040578a
-c000da76
-20405a94
-2422d9a6
-da200014
-20405a82
-58000009
-e0a08000
-680084b3
-1fe27200
-1fe0fe02
-e0a08000
-68010aa2
-e0a10000
-20407e9f
-20407ef4
-20407ea2
-20205aa5
-20405a84
-20205992
-d8402a00
-2040577c
-207a0000
-18c08dfb
-e8c10000
-60010aa2
-da200014
-20405a82
-58000009
-e0a08000
-6800c3af
-1fe27200
-1fe0fe02
-e0a08000
-68010aa2
-e0a10000
-d8c043b0
-20407ef4
-20407ea2
-20205aa5
-68090478
-6800c4e9
-c281d9dd
-2040576a
-203a5a76
-18c08dfe
-e8c10000
-d8402a00
-98467c00
-2022d9d3
-e8c08000
-1fe67c16
-202159ca
-18007e16
-1fe22600
-20407ea5
-1a60a201
-20405a82
-5800000b
-e0a08000
-1a627200
-20407e9f
-20207f01
-20407ea5
-6800c3af
-1fe0a201
-20405a82
-5800000b
-e0a08000
-6800c3af
-1fe27200
-d8c043b0
-20207f01
-680144fa
-98467c00
-2422d9bf
-20405a42
-243459bf
-70047a05
-20205a77
-e8c10000
-6001445e
-da200014
-20405a82
-5800000d
-e0a08000
-6801445e
-98002200
-68090478
-2040576a
-203a5a76
-e8c08000
-9a267200
-24215a76
-1f267c16
-202159f5
-18007216
-1a227e00
-98c08c00
-20407ef4
-20407ea2
-20205aa5
-20405ab1
-204056d7
-202059fd
-d9600002
-6809445a
-60090aa2
-20405756
-2040576d
-18c08dfe
-18c27e00
-6001049c
-20405a88
-24215a25
-68090aa2
-2040578a
-c000da28
-20405a8c
-2422da23
-19627e00
-c0005a28
-24345a19
-78547c00
-da200014
-20405a82
-58000011
-e0a08000
-680084b3
-1fe0fe04
-e0a08000
-20407ea2
-20205a1f
-680084b3
-c0085a28
-68010aa2
-1fe0ffff
-600104a0
-20405a9c
-68010aa2
-6001049e
-20405a97
-196097ff
-20405a84
-20205a05
-68010aa2
-600104a0
-20205a2c
-68010aa2
-1fe0ffff
-600104a0
-20205a2c
-20345a76
-20405a9c
-20205aa5
-18c22200
-680144fc
-1fe0a5fd
-204056e2
-6800c4e9
-c3025a3d
-68090478
-680144fa
-98467c00
-2422da3d
-20405a42
-24345a3d
-70047a05
-20205a77
-18002201
-20405a82
-58000013
-e0a08000
-20600000
-20407fe9
-6800c4c6
-c1000000
-6800c040
-c3820000
-20207fe7
-18c0a202
-680144fc
-1fe0a5fb
-204056e2
-20205a4d
-680144fc
-1fe22200
-20405a82
-58000017
-e0a08000
-68010478
-e0a10000
-680144fc
-1fe0f3fb
-6801450d
-1fe08c07
-e8c10000
-e0a10000
-20207ef4
-18002201
-20405a82
-58000019
-e0a08000
-20600000
-18c22200
-680144fc
-1fe0a5fd
-202056e2
-18422600
-1a20a203
-20405a82
-1a20a3fd
-5800001b
-e0a08000
-1a620400
-e0a90000
-20600000
-18422600
-1a20a203
-20405a82
-1a20a3fd
-5800001d
-e0a08000
-1a620400
-e0a90000
-20600000
-70047a0a
-18002205
-20405a82
-58000001
-e0a08000
-68008477
-e0a08000
-68010478
-e0a10000
-6800847a
-e0a08000
-20600000
-18002404
-20205847
-68090aa2
-18408401
-60090aa2
-20600000
-68090aa2
-6801445c
-98467c00
-20600000
-6808c45e
-da20445f
-680084a2
-1fe27200
-98467c00
-24628000
-da4004a3
-20207f88
-6808c471
-da204472
-20205a8e
-680084b3
-60008101
-1fe27200
-20407e9f
-20207ef4
-20407e9c
-6801049e
-e0a10000
-680104a0
-e0a10000
-68008101
-1fe27200
-20407ef4
-20207ea2
-20407e9c
-2040588a
-18a27e00
-98c62200
-2040588d
-1a227e00
-e0c10000
-1a20a204
-20405879
-1a227e00
-e0c08000
-20600000
-1fecfe00
-6001445a
-e8c10000
-6001445c
-20600000
-e8c08000
-e8c88000
-e8c90000
-c009dabb
-20600000
-e8c10000
-60014509
-700a9940
-20207d86
-da20000c
-da600012
-20405ac7
-58000008
-e0a10000
-68044496
-e0a40000
-20600000
-20405acf
-da400005
-20405847
-1a627e00
-e0a08000
-6800c508
-e0a08000
-20600000
-6800c508
-1fe0fe01
-6000c508
-c1800000
-70450801
-20600000
-6800c4c6
-c0005ae4
-c000dae7
-c0015ae9
-c040dadd
-c0415adf
-c041dae2
-20600000
-7044560d
-20205ae5
-7044560d
-70445401
-20600000
-7044560d
-20205aea
-70445600
-70445403
-20600000
-70445605
-20205ae5
-70445605
-70445400
-20600000
-6800c456
-79207e03
-6000c456
-20600000
-6800c456
-793ffe03
-6000c456
-20600000
-e8c08000
-c000db09
-c001db30
-c0025b4d
-c002db5a
-c0035b80
-c003dbc4
-c0045baf
-c004dbc0
-c0055bc4
-c005dbc4
-c0065bc5
-c006dbca
-20600000
-18002202
-20405c62
-5800000b
-e0a08000
-6800c456
-e0a08000
-20600000
-6000c44c
-e8c30000
-e0a30000
-6800c4c6
-c0005b5f
-20405b2b
-20405b26
-7044c403
-6800c44d
-c0005b18
-c000db18
-c001db18
-6800c4c6
-c0015b1b
-c1418000
-dfe00000
-600244c7
-20600000
-6800c4e9
-c2805b24
-da2044c7
-1a220a00
-df200003
-2040630d
-680144c9
-1fe17e07
-600144c9
-700a9934
-20207d86
-6800c44f
-c3818000
-6800c4c6
-c4038000
-20203402
-18002207
-20405c62
-6803c453
-e0a38000
-20600000
-18c22200
-6800c4c6
-c041db37
-1a220c00
-d8a0442a
-20407ebf
-20205b3d
-1a220c00
-d8a0442a
-20407ebf
-7044bf02
-7044c108
-20600000
-6800c4c6
-c283db45
-2040739c
-18002211
-20405c62
-58000003
-e0a08000
-20207497
-d8a0443a
-2040630c
-204071c5
-18002211
-20405c62
-58000003
-e0a08000
-20207201
-18c22200
-6800c4c6
-c283db61
-1a220c00
-20407394
-2022db75
-70047b04
-18002202
-20405c62
-58000005
-e0a08000
-6800847b
-e0a08000
-18000e0a
-20407f07
-7044c400
-700a9930
-20207d86
-70047b05
-20205b54
-d8a0042f
-1a220c00
-20407ebf
-6800c4c6
-c041db6c
-2040714f
-20405b7a
-6800c4c6
-c1c10000
-700a993b
-20207d86
-204071ba
-d8a00af2
-20407201
-da200af2
-da40442a
-df200010
-20407f88
-2422db53
-20205b7a
-20407390
-700a9931
-20407d86
-70442901
-7044c405
-18002211
-20405c62
-58000004
-e0a08000
-d8c0443a
-20207ebf
-d8a0041f
-20207ebf
-18002211
-20405c62
-58000006
-e0a08000
-6800c4e9
-c280db8a
-d8c04419
-20207ebf
-d8c044ea
-20207ebf
-d8a044cb
-1800720a
-2040630d
-1800220b
-20405c62
-58000007
-e0a08000
-680144cb
-e0a10000
-680444cd
-e0a40000
-20600000
-18002211
-20405c62
-58000008
-e0a08000
-58000000
-e0a40000
-e0a40000
-20600000
-18002208
-20405c62
-58000009
-e0a08000
-6800c495
-e0a08000
-680344a0
-e0a30000
-20600000
-70047b08
-20205b54
-6800c458
-6808c458
-98417e00
-20600000
-d8a044d5
-20407ebf
-20405bab
-2fec0001
-2020dba9
-6800c092
-c1850000
-20405bb9
-24740000
-20203410
-20407fe9
-6800c48e
-c1000000
-68008454
-2fe180c0
-20608000
-20207fe7
-20405bab
-2fec0001
-2020dba9
-20600000
-20600000
-d8a009be
-20407eb3
-7044bf02
-7044c101
-20600000
-d8a00a6e
-20407ebf
-7044c106
-7044bf02
-20600000
-18002241
-20405c62
-5800000c
-e0a08000
-d8c045d2
-20207eb3
-20407166
-18002211
-20405c62
-5800000d
-e0a08000
-20207201
-6800c4c4
-c17f8000
-d8400003
-98467c00
-24610000
-d8e0000a
-20407f16
-247a0000
-20205ba9
-473c402f
-6800c4c4
-c0005bef
-c000dbf5
-c0015bef
-c001dbf7
-c002dbfb
-c003dc07
-c0045c09
-c004dc10
-20600000
-6800c4c5
-c1820000
-7044c5ff
-7044c4ff
-700a993f
-20207d86
-7044c402
-20205b02
-7044c404
-58017700
-d8e0000a
-20207f08
-6800c4c5
-c0025bfe
-20600000
-7044c407
-700a9929
-20407d86
-20405b82
-6800c092
-c1850000
-20405bb9
-20740000
-20203410
-7044c408
-20205b8c
-6800c452
-6808c459
-98417e00
-2fec0001
-2020dc12
-7044c409
-20205b98
-20405ba0
-20205c12
-18000e0a
-20407f07
-7044c5ff
-7044c4ff
-700a993e
-20207d86
-473cc02f
-6800c4c6
-c4038000
-6800c4bf
-c1810000
-7044bf00
-6800c4c1
-c000dc58
-c0015c5f
-c001dc52
-c0035c39
-c003dc30
-c0045c26
-20600000
-6800c663
-1fe20e00
-1fe0fe01
-6000c663
-680244c7
-afefffff
-58000080
-7920fe00
-6000c664
-20205c55
-6800c4c2
-7044c200
-c000dc35
-7044bf02
-20600000
-700a9931
-20407d86
-7044c405
-20205bd5
-680089b9
-c001dc3d
-7044bf02
-20600000
-2040718d
-6800c4c6
-c041dc41
-20405b18
-2040717a
-da200af2
-da400a6e
-df200010
-20407f88
-2022dc49
-70047b0b
-20205b54
-20407595
-2422dc47
-70442901
-6800c4c6
-c040dc35
-c041dc35
-7044bf02
-7044c107
-20600000
-6800c4c6
-c041dc56
-70466400
-20205b3d
-70466300
-20205b1b
-7044bf02
-6800c4c3
-c001dc5c
-20600000
-7044c102
-7009b900
-20207a99
-7044bf02
-7044c103
-20205bcf
-18002406
-20205847
-680082db
-c0005c7b
-c000dc83
-c0015c8e
-c001dcaa
-c0025ce1
-c002dce6
-c0035cea
-c003dcf5
-c0045c99
-c004dcf5
-c0055cef
-c005dcf5
-c0065c9f
-c006dcf5
-c0095ca6
-c009dcf5
-da200002
-da400007
-20405842
-680082db
-e0a08000
-20600000
-e8c48000
-6004c3d3
-e8c10000
-6001045f
-6800843f
-79207e05
-6000843f
-20600000
-e8c28000
-6002c3ce
-e8c10000
-6001045f
-68090459
-98467c00
-24215c8e
-6800843f
-79207e06
-6000843f
-20600000
-58000014
-6001046d
-600144ba
-20600000
-da600013
-da200002
-da400002
-20405842
-1a627e00
-e0a08000
-20600000
-da200009
-da400009
-20405842
-58000001
-e0a40000
-20600000
-20748000
-da200006
-da40000c
-20405842
-6802c510
-e0a28000
-20600000
-da400013
-20205ca8
-da200001
-20205842
-e8c40000
-600444cd
-e8c10000
-600144cb
-e8c40000
-600444aa
-e8c20000
-60024411
-20405ccf
-473d402f
-6800c4c4
-c002dcbc
-6800c4e9
-c280dcbf
-6800c217
-245a67be
-6800c429
-c0005cc4
-7044c501
-20405cdd
-202073a2
-70442901
-d8c044ea
-d8a04419
-20407ebf
-20205cbc
-473dc02f
-7044c500
-7044c400
-700a9941
-20207d86
-da200002
-da40000d
-20405842
-58000006
-e0a08000
-20600000
-d8a044b2
-18007208
-2040630d
-d8a04415
-18007204
-2040630d
-da20000d
-da400004
-20405842
-680444b2
-e0a40000
-68024415
-e0a20000
-20600000
-da400005
-20205ca8
-da400006
-20205ca8
-e8c40000
-600444b2
-e8c20000
-60024415
-202073a2
-6800843f
-79207e04
-6000843f
-20600000
-20748000
-700a9932
-20407d86
-7044c504
-20205cdf
-7044c502
-20405cf3
-700a9933
-20207d86
-da40000b
-20205ca8
-20600000
-20758000
-473e402f
-58000000
-60008048
-60008055
-60008078
-6000807c
-6000c158
-600084d7
-6000816d
-600089b5
-70455b00
-70022900
-7004d800
-7009b500
-7009b400
-7004d100
-20600000
-473ec02f
-2054e2ff
-2454e303
-204062bc
-247a0000
-6800804c
-c4030000
-793ffe06
-793f8001
-6000804c
-68008551
-6808804c
-2feffe00
-79208401
-6008804c
-18410402
-6008807f
-6808804c
-1fe37e00
-6000807d
-473f402f
-6800807d
-c03fdd66
-c001ddb1
-c0025dc2
-c01e5d59
-c002dd55
-c007dfa8
-c0085e24
-c011de42
-c01cdfc1
-c01c5fbc
-c018de27
-c01bdeb0
-c013deac
-c019dea9
-c012deae
-c0135e3e
-c003de36
-c016de2d
-c0175e2e
-c000dea5
-c0015e90
-c0145fb3
-c004de86
-c005de5f
-c0045e43
-c0065e6a
-c00fde3a
-c0105e3c
-c010deca
-c0115eca
-c01adecb
-c01b5ecc
-c0125eca
-c01a5ecd
-c00bded6
-c008def2
-c0095ef6
-c009def8
-c006df0a
-c0075f0a
-c017deaa
-c0185f0a
-c0055f0a
-c00c5f0b
-c0195f0a
-c01edf10
-c01f5f51
-c01fdf4b
-c0205f78
-c020df8a
-c0035fa7
-c01d5d57
-70007e19
-70007c04
-20600000
-70007c06
-20600000
-70007c3b
-20600000
-68020552
-1fe3fe00
-600240d2
-68008556
-6000c0d9
-68028557
-6002c0e7
-6802855c
-e0a28000
-68008031
-79207e03
-60008031
-20600000
-473fc02f
-68008552
-79207e07
-6000807d
-c040dd88
-c0415d8d
-c04adeb1
-c04b5eca
-c045debf
-c041dda5
-c0425da7
-c0485d7a
-c04bdd9e
-c04c5da3
-c04cdd7d
-c04d5d80
-c1420000
-70007c82
-70007e19
-20600000
-70007c82
-70007e2e
-20600000
-20405d82
-70007c9a
-20600000
-20405d82
-20205d86
-d8a0465e
-68018553
-e0a18000
-20600000
-2020f6d8
-20600000
-68008554
-79207e07
-600084c9
-c045dd92
-20600000
-68008554
-79207e07
-600084c9
-c045dd96
-20600000
-6800c15a
-6808804c
-7d3a0405
-6008804c
-68008030
-c4028000
-793ffe05
-60008030
-680084d7
-247a0000
-70007c31
-20600000
-2434dda1
-70007c12
-202062eb
-70007c97
-20600000
-204062eb
-20205ffe
-70007c84
-20600000
-68088555
-18410401
-600884d0
-6800c1ce
-c0a8ddad
-7041ce00
-68008055
-c18a8000
-70005504
-2020631b
-47404030
-68008552
-600084c9
-c019ddd8
-c0045de7
-c007ddee
-c0085df4
-c008ddf5
-c0095dfd
-c00c5e13
-c00bde16
-c009ddcf
-c01edf1e
-c01f5f6a
-c0205f20
-c020df3d
-20600000
-4740c030
-68008552
-600084c9
-c000de0a
-c019dde2
-c005ddfe
-c0045e01
-c009ddd2
-c0205e0b
-c020de0e
-c00c5e11
-c00bde22
-20600000
-700a9920
-20407d86
-202021dc
-700a9919
-20407d86
-70455b02
-58000050
-d8e00006
-20207f08
-680084d1
-79207e00
-600084d1
-700a9901
-20407d86
-70007c8b
-68008055
-c082dd07
-70005506
-20600000
-7004ca0b
-70007c07
-70005500
-2020dd07
-20600000
-6800c1bd
-247a0000
-2040244f
-20405ffc
-20748000
-79200021
-20600000
-24748000
-70007c10
-6800804c
-c4010000
-70007c12
-20600000
-20205ffe
-20406059
-68008030
-c3820000
-70007c31
-68008055
-c1850000
-7000550b
-20600000
-20600000
-70007c07
-7004ca13
-20600000
-68008553
-c0035e07
-c18c0000
-7004ca18
-70007c07
-20600000
-7004ca06
-70007c07
-20600000
-20600000
-7009ae00
-70007c07
-20205d07
-7009ae00
-70007c07
-20205d07
-700a9924
-20207d86
-700a9923
-20407d86
-202026e9
-700a9922
-20407d86
-58000000
-60010075
-680141e3
-1fe3fe00
-60010032
-6800c1e5
-60008073
-6800c1e7
-60008074
-202026c6
-700a9921
-20207d86
-68088552
-60088054
-20205e38
-680084d1
-79207e02
-600084d1
-c3818000
-70007c31
-20205d07
-20600000
-6800c0d0
-68088552
-98467c00
-20215e38
-70007c04
-70007e1f
-70007d2e
-20600000
-20406157
-20205e38
-70007c03
-20600000
-70007c21
-20600000
-70007c22
-20600000
-68008055
-c1098000
-70005502
-20600000
-20600000
-20405ff9
-7004d401
-700a990a
-20407d86
-204062f3
-2420e001
-2434de4e
-70007c04
-70007d08
-70007e23
-20600000
-6800804b
-79207e02
-6000804b
-20600000
-6808804c
-7d3a0401
-6008804c
-20600000
-6800807f
-1fe37e00
-1fe17e01
-20600000
-6800c217
-207a0000
-680089b5
-205a67b2
-20600000
-20405e5a
-20405e56
-600084d5
-20405ff9
-70007c0c
-6800c1bd
-247a0000
-68008030
-c3830000
-70007e06
-20205d53
-da200040
-20407288
-68020552
-680a0592
-98467c00
-2022de73
-70007c07
-7004ca05
-20600000
-20405e77
-6800c65a
-203a5f3e
-20600000
-20407386
-204021b2
-6800804b
-2feffe01
-793ffe01
-6000804b
-68008055
-c00cde81
-c00c5e81
-20600000
-680089b5
-c1800000
-6800804c
-c3810000
-202063b1
-da200552
-da400582
-d8a00562
-20407352
-da200040
-20406311
-70007c0b
-68008030
-c3035ffc
-20600000
-6801015f
-1fe0f3fd
-68088552
-58000101
-98408a00
-d8c00554
-20407f01
-68088053
-68008553
-98467e00
-1fe67c0e
-20215ea0
-1840fe0e
-60008053
-70007c01
-20600000
-6800804c
-79207e03
-6000804c
-c2826006
-20600000
-68008552
-6000807d
-70007c02
-20600000
-20205e38
-70007c30
-20600000
-70007c28
-20600000
-70007c26
-20600000
-20600000
-68010032
-98000400
-68008553
-60008095
-984f8400
-68010554
-1fe3fe00
-60010096
-68020556
-1fe3fe00
-60020091
-18427e00
-60010098
-20600000
-6808c15a
-68008553
-9842fc00
-2422dd77
-2feffe00
-6800804c
-7920fe05
-6000804c
-70007c81
-70007d8b
-20600000
-20600000
-20205e38
-20205e38
-68010552
-60010171
-20600000
-68010555
-6808c172
-984ffe00
-d8400640
-98467c00
-20600000
-68010557
-203a5ef0
-20405ed0
-20215ef0
-6800c092
-1fe67c0a
-2042bcd5
-68008030
-c280def0
-68010553
-1fe3fe00
-60010075
-68010555
-1fe3fe00
-60010032
-68010557
-60008073
-98000400
-68010559
-60008074
-98467c00
-24215eed
-60008073
-70007c03
-70007d17
-20600000
-70007e24
-20205d53
-20405e38
-20405ff9
-2040728b
-202026b8
-20405e38
-202026c0
-68020552
-1fe3fe00
-2034df04
-6808c1bd
-243a5f01
-70007c04
-70007d13
-70007e24
-20600000
-70007c34
-70005500
-202021d9
-204021d9
-79200022
-6800816d
-793ffe02
-6000816d
-20205e38
-20600000
-70007c03
-70007d18
-700a992e
-20407d86
-202026e9
-68008552
-c080df1c
-68008553
-c080df1c
-68008554
-c0985f1c
-204062fc
-2020df19
-7009ae01
-70007c03
-70007d3d
-20205d07
-70007e24
-20205d53
-70007c3e
-20600000
-6800c662
-c000df27
-c0015f2b
-204062fc
-20608000
-7009ae08
-20600000
-20407962
-700a9935
-20407d86
-20205f23
-204062fc
-20608000
-6800c663
-c009df3b
-1fe0fe01
-6000c663
-7009b001
-7009ae04
-6800c663
-1fe20e00
-6803468a
-afefffff
-58000080
-7920fe00
-6000c664
-20600000
-7009ae08
-20600000
-20405f43
-6800c665
-207a0000
-70466500
-700a9938
-20207d86
-204062fc
-2440f965
-2040f975
-204062fc
-20608000
-7009ae0c
-7009b001
-20600000
-d8a00a6e
-d8c00552
-20407ebf
-6800c662
-c1010000
-202076d8
-680089af
-c003df55
-680089ae
-c080df68
-680089b7
-1fe60a20
-24215f68
-d8a009c6
-98a08a00
-68040552
-e0a40000
-6804055a
-e0a40000
-680089b7
-1fe0fe10
-600089b7
-c0985e38
-204062fc
-2020de38
-7009b801
-7009ae02
-7009b001
-20205e38
-70007e24
-20205d53
-680089b6
-c0185f6e
-70007c3e
-20205d07
-204062fc
-2020df77
-6800c662
-c0015f75
-7009b001
-7009ae04
-20205d07
-700a9936
-20207d86
-20205d07
-680089af
-c003df7c
-680089ae
-c0835f88
-d8a00a2e
-68040552
-e0a40000
-6804055a
-e0a40000
-204062fc
-2020df86
-7009ae07
-7009b001
-20205e38
-7009af04
-202076d8
-70007e24
-20205d53
-680089af
-c005df8e
-680089ae
-c0845f9d
-d8a00a5e
-d8c00552
-20407ebf
-204062fc
-2020df9a
-6800c662
-c000df9f
-70466100
-7009ae09
-7009b001
-70007d41
-20205d07
-7009af09
-7009b101
-20205d07
-70007e24
-20205d53
-6800c661
-c283dfa4
-79207e06
-6000c661
-20600000
-c2805f95
-70466100
-20205f9d
-20205d07
-6800816d
-793ffe01
-6000816d
-20405e38
-24748000
-68008552
-6808804b
-793a0404
-7d3a0405
-6008804b
-20600000
-680c0552
-68008055
-c1818000
-6800816d
-c3025fba
-70005514
-20600000
-70005504
-20600000
-6800817f
-6000815b
-70007c03
-70007d38
-20600000
-70007c03
-70007d39
-18007209
-d8c00552
-d8a00152
-e8c08000
-1fe2fe55
-e0a08000
-c2005fc6
-68008152
-68088151
-793f8407
-793f8404
-c07fdfda
-c0005ff3
-c002dfe7
-c003dfe6
-c0035fe7
-c0045fe6
-c000dfdf
-c0015fdf
-c001dfdf
-c004dfdf
-c0025fdf
-20600000
-68008151
-79207e03
-79207e02
-60008151
-20600000
-79200404
-70018005
-68010159
-98007200
-6001015f
-d8a00551
-20407f73
-79200407
-79200402
-18007e00
-6000800b
-600100fa
-600100fc
-600100f8
-600100f6
-68008153
-2fe1fe00
-79208406
-60088151
-20600000
-793f8011
-70015100
-6800817f
-793ffe06
-6000817f
-20600000
-d8c00552
-d8a00562
-20207ebf
-70007c09
-20600000
-24748000
-70007c11
-20600000
-da2040a0
-20407255
-70007c03
-70007d08
-20600000
-7000720a
-70007c07
-7004ca16
-20600000
-47414030
-78547c00
-204062c1
-68008048
-207a0000
-c283e03f
-c000e16f
-c00160e4
-c001e04a
-c0026060
-c013e1db
-c0146108
-c01860f4
-c012e1d6
-c0136103
-c018e1c3
-c01be16a
-c019e15c
-c0046259
-c004e24f
-c005e264
-c006626d
-c007e162
-c0086292
-c008e288
-c003e152
-c015617e
-c005617f
-c00fe1bc
-c00360f9
-c010e15f
-c016e1b2
-c01761b7
-c011615f
-c01a6180
-c009e195
-c00be1a4
-c009628f
-c017e1aa
-c00c61af
-c01ee1ff
-c01f620b
-c01fe21d
-c0206227
-c020e23c
-c011e24b
-c01de246
-c002e24c
-c014e24d
-c01c624e
-c01ce175
-20202a8c
-20600000
-c040e06d
-c0426099
-c0416076
-c041e10d
-c045e118
-c04be14e
-c04ce0d5
-c04d60a4
-c04ae0da
-c04b60db
-20202a8c
-18007e02
-20406298
-68008049
-e0a08000
-204062a7
-4741c030
-68008049
-c0046080
-c007e084
-c008608f
-c00be05f
-c019e092
-c020e098
-c008e059
-20600000
-68008055
-207a0000
-7000551b
-5800000c
-d8e00007
-20207f08
-202026c6
-18007e03
-20406298
-68008049
-c005e068
-e0a08000
-6800804a
-e0a08000
-202062a7
-e0a08000
-6800804a
-e0a08000
-d84004d5
-202062e2
-18000e04
-204062a0
-5800007f
-e0a08000
-68008049
-793ffe07
-e0a08000
-68008049
-202062a7
-18000e05
-204062a0
-5800007f
-e0a08000
-68008049
-793ffe07
-e0a08000
-6800804a
-e0a08000
-202062a7
-2040244f
-204062f3
-20608000
-20205ffc
-6800804b
-c282e08b
-c4020000
-70007c12
-793ffe04
-204062eb
-2020608d
-70007c10
-793ffe05
-6000804b
-20600000
-204062fc
-2020dffe
-20600000
-70007c8b
-680084d1
-79207e00
-600084d1
-700a9901
-20207d86
-20600000
-18000e0c
-204062a0
-58000001
-e0a08000
-680104ce
-e0a10000
-58000000
-e0a18000
-58000000
-e0a20000
-202062b0
-18000e05
-204062a0
-6801c65b
-e0a18000
-204062b0
-70466501
-6800c65b
-c000e0b5
-c00160af
-c001e0bb
-20600000
-6800c65e
-c00060c7
-c000e0c7
-c00160c7
-c001e0c1
-20600000
-6800c65e
-c00060c1
-c000e0c5
-c00160c7
-c001e0c1
-20600000
-6800c65e
-c00060c1
-c000e0c1
-c00160c1
-c001e0c1
-20600000
-70466203
-6800c55c
-c28033e9
-20600000
-70466201
-20600000
-70466202
-20600000
-d8e00000
-202060cd
-d8e00000
-202060d1
-6800c55c
-f9207e00
-6000c55c
-20600000
-6800c55c
-f93ffe00
-6000c55c
-20600000
-18000e05
-204062a0
-6801c65b
-e0a18000
-202062b2
-20600000
-18000e09
-204062a0
-68008095
-e0a08000
-68010096
-e0a10000
-68020091
-e0a20000
-202062b0
-18007e11
-20406298
-68008049
-1fe20400
-c00060ec
-c00760ec
-c00e60ec
-20600000
-e0a08000
-6800c515
-e0a08000
-df20000e
-58004516
-98408c00
-20407f01
-202062b0
-18007e03
-20406298
-58000114
-e0a10000
-202062b0
-18007e03
-20406298
-68020165
-9c467e00
-2034e0ff
-1fe67e00
-1feb7e00
-793ffe0f
-e0a10000
-202062b0
-18007e06
-20406298
-6802c510
-e0a28000
-202062b0
-18007e09
-20406298
-68044098
-e0a40000
-202062b0
-18000e0c
-204062a0
-58000001
-e0a08000
-680104ce
-e0a10000
-58000000
-e0a18000
-58000000
-e0a20000
-202062b2
-18000e03
-204062a0
-6800c15a
-e0a08000
-78547c00
-204062b2
-24740000
-24748000
-6800c0d8
-c4000000
-20406132
-2020613c
-47424030
-6800c09e
-79207e03
-6000c09e
-58000101
-600104ce
-20600000
-4742c030
-6800c09e
-793ffe03
-6000c09e
-58000000
-600104ce
-20600000
-7040d803
-58000000
-60024142
-d8a040da
-20406140
-d8a040e7
-20406140
-d8a04146
-20406140
-20206147
-d8a040e7
-20406140
-20406147
-2020614a
-58ffffff
-e0a18000
-e0a18000
-e0a18000
-5800007f
-e0a08000
-20600000
-58000000
-600140d6
-20600000
-6800c0d8
-79207e02
-6000c0d8
-20600000
-18000e02
-204062a0
-2434e2b0
-202062b2
-18007e02
-20406298
-680084ca
-e0a08000
-204062b2
-6800804b
-79207e03
-6000804b
-70007232
-20600000
-18007e01
-20406298
-202062b2
-18007e01
-20406298
-202062b0
-18007e02
-20406298
-6800804c
-2fec0002
-7920fe00
-1fe17e01
-e0a08000
-202062b2
-18007e03
-20406298
-68010051
-e0a10000
-202062b2
-700072fa
-18007e02
-20406298
-68008053
-e0a08000
-202062b2
-18007e0a
-20406298
-d8c00152
-18007209
-e8c08000
-1fe2fe55
-e0a08000
-c2006179
-202062b2
-202062b2
-202062b2
-20748000
-2040282d
-18007e09
-20406298
-68010171
-e0a10000
-6801c0a0
-e0a18000
-6800c0a3
-e0a08000
-680140a4
-e0a10000
-c581e191
-793f8003
-204062b2
-70007c13
-20600000
-204062b0
-70007c03
-70007d13
-20600000
-d8400200
-2034e199
-1d027e00
-2020619a
-1c427e00
-1c227e00
-9840fe00
-1fe17ffc
-60020034
-18007e05
-20406298
-68020034
-1fe37e00
-e0a20000
-202062b2
-18007e0a
-20406298
-d8c004d9
-e8c48000
-e0a48000
-202062b2
-18007e03
-20406298
-58000114
-e0a10000
-202062b2
-18007e01
-20406298
-202062b2
-18007e02
-20406298
-6800c0d0
-e0a08000
-202062b2
-18007e02
-20406298
-58000005
-e0a08000
-202062b2
-18007e02
-20406298
-58000000
-e0a08000
-202062b2
-70007c2e
-20600000
-6800c092
-1fe67c0a
-2042e1c1
-68008030
-79207e04
-60008030
-1c427e00
-600204e9
-680084d1
-c281e1d4
-79207e03
-600084d1
-700a9905
-20407d86
-18007e01
-20406298
-202062b2
-70004800
-20600000
-18007e06
-20406298
-6802c510
-e0a28000
-202062b2
-18007e09
-20406298
-68044098
-e0a40000
-202062b2
-7009b101
-6800c5b1
-c1808000
-7009af13
-20600000
-204062ef
-70007c99
-7009af03
-20600000
-204062ef
-70007c3d
-7009af07
-20600000
-da200a4e
-da400a6e
-df200010
-20407f88
-2022e1f7
-7009af00
-204076da
-70007e24
-70007d40
-20205d53
-7009af0a
-204076d8
-70007d40
-20205e38
-70007c40
-20600000
-70007c3d
-20600000
-7009b600
-18007e04
-20406298
-18007e01
-e0a08000
-18007e01
-e0a08000
-18007e30
-e0a08000
-204062fc
-2020e2b2
-202062b0
-18007e11
-20406298
-680089b6
-d8c0462a
-98c08c00
-e8c40000
-e0a40000
-e8c40000
-e0a40000
-680089b6
-1fe0fe10
-600089b6
-204062fc
-2020e2b2
-202062b0
-7009ae06
-70007c3f
-20600000
-18007e11
-20406298
-d8c00a4e
-e8c40000
-e0a40000
-e8c40000
-e0a40000
-202062b0
-70007c40
-20600000
-204062fc
-2040f612
-18007e11
-20406298
-d8c00a1e
-e8c40000
-e0a40000
-e8c40000
-e0a40000
-204062fc
-2420e2b0
-2020e2b2
-7009af0f
-204062ef
-70007c0b
-20406307
-2020f64e
-20207658
-204062eb
-70007c41
-20600000
-18007e11
-20406298
-d8c00a4e
-e8c40000
-e0a40000
-e8c40000
-e0a40000
-204062fc
-2420e2b0
-2020e2b2
-18007e03
-20406298
-5800fffe
-e0a10000
-202062b0
-202062b2
-202062b2
-202062b2
-202062b2
-2040630b
-da2040a0
-20406311
-18007e11
-20406298
-da200582
-da400562
-20407352
-2434e2a7
-202062ad
-2040630b
-da200040
-20407255
-18007e11
-20406298
-d8c00562
-20407ebf
-68008055
-c00ce2b2
-c00c62b2
-202062ad
-680089b5
-203a626a
-204062fc
-2040e2ef
-2440e2eb
-2020626b
-204062ef
-2040630b
-2020625c
-da2040a0
-20407288
-18007e05
-20406298
-68020592
-e0a20000
-d84004d5
-204062e2
-20407386
-204062fc
-2020e27c
-7004d801
-680089b5
-207a0000
-70007c0b
-6800c1bd
-207a0000
-204062fc
-2420e284
-680084d7
-207a0000
-70007c0f
-20600000
-c6908000
-793f8021
-70007c0f
-20600000
-2040630b
-2040728b
-18007e11
-20406298
-d8c00562
-20407ebf
-202062ad
-18007e01
-20406298
-202062ad
-18007e02
-20406298
-18007e10
-e0a08000
-60008054
-202062ad
-1fe9fe00
-1fe1fe07
-600084b6
-df200011
-d8a004b8
-20407ed4
-d8a004b8
-20600000
-1fe1227f
-7000487f
-18e27e00
-20406298
-1a227e00
-e0a08000
-20600000
-68008048
-1fe3fe00
-6808804c
-284ffe01
-7920fe00
-202062b7
-6808804c
-18410401
-202062b3
-18000400
-202062b3
-18000401
-68008048
-1fe3fe00
-7934fe00
-9842fe00
-600084b7
-70004800
-204062c7
-78347c00
-20600000
-6800807c
-207a0000
-204062c1
-6800807c
-20600000
-47434030
-68008048
-203a62c7
-68008078
-247a0000
-202062d1
-68008078
-203a62d7
-68018078
-60018048
-6808807b
-6800804c
-793ffe01
-9841fe00
-6000804c
-70007800
-6800807c
-207a0000
-6802007c
-60020078
-70007c00
-20600000
-6800807c
-207a0000
-6801807c
-60018048
-6808807f
-6800804c
-793ffe01
-9841fe00
-6000804c
-70007c00
-20600000
-4743c030
-6800804c
-1fe22600
-e8408000
-20405e52
-204062a7
-1a627e00
-6000804c
-20600000
-6808804c
-793f8400
-6008804c
-20600000
-6808804c
-79200400
-6008804c
-20600000
-7d34fe01
-6808804c
-9842fe00
-2feffe01
-20600000
-6800804c
-7934fe01
-6000804c
-20600000
-680089b4
-2fe0fe01
-20600000
-680089b4
-79207e07
-600089b4
-20600000
-680089b4
-793ffe07
-600089b4
-20600000
-680089b4
-2feffe07
-600089b4
-20600000
-d8a00562
-18007210
-180a7e00
-e0a08000
-c200630d
-20600000
-20407259
-da2041be
-da400592
-ea240000
-68088030
-7d3a0406
-60088030
-1a220a00
-20407352
-202021c4
-47444031
-204062bc
-247a0000
-68008055
-207a0000
-c002636f
-c002e374
-c0016366
-c001e37c
-c0076369
-c0036398
-c003e3b0
-c004e3b1
-c00563ba
-c005e3be
-c0066386
-c006e389
-c007e38f
-c0096359
-c009e37c
-c008635c
-c00a6356
-c00ae37c
-c00b6350
-c00c6355
-c00be349
-c00ce34f
-c00d633a
-c00de344
-70005500
-20600000
-680084d1
-c4010000
-c4018000
-70005500
-20406340
-20206cef
-6800816d
-c4008000
-7000550a
-20600000
-d8e00007
-20407f16
-247a0000
-7000551a
-20600000
-6800816d
-793ffe00
-6000816d
-70005519
-70007c0b
-20600000
-20600000
-680084d4
-c1810000
-204063c0
-70005518
-20600000
-20600000
-70005515
-70007c83
-20600000
-70005513
-70007c25
-20600000
-6800c55b
-c1000000
-c000e364
-d8e00006
-20407f16
-247a0000
-70455b00
-2020637d
-20748000
-20206398
-70005503
-70007c27
-20600000
-70007c13
-79200003
-70005505
-580001ff
-600104d2
-20600000
-70005505
-7004d2ff
-793f8022
-70007c33
-20205d04
-c6110000
-680104d2
-1fe67e01
-2022e37a
-600104d2
-20600000
-7000550e
-20600000
-20600000
-680084d1
-c4018000
-c4010000
-6800816d
-793ffe02
-6000816d
-70007c13
-70005510
-20600000
-7000550d
-70007c31
-20600000
-680084d1
-c4010000
-70005500
-20600000
-70005506
-20600000
-680084d2
-1fe0ffff
-203a6394
-600084d2
-20600000
-70007c07
-7004ca16
-70005500
-20600000
-6800816d
-c281637d
-c280639d
-7000551a
-20600000
-6800c1bd
-203a63a9
-680084d1
-c4018000
-c4010000
-680204e9
-d8400064
-98408400
-1c427e00
-98467c00
-24610000
-20206349
-70005516
-70468904
-58003030
-6001468a
-e0a10000
-7004d402
-20206350
-20600000
-6800816d
-c280e3b5
-7000551a
-20600000
-6800816d
-793ffe01
-6000816d
-70007c0f
-20600000
-680084d8
-207a0000
-70005500
-202063b5
-7000550c
-20600000
-6800804b
-c28163c5
-204062ef
-70007c08
-20204d04
-6800804b
-793ffe02
-6000804b
-20406001
-204062f8
-20204d04
-58000004
-6000c689
-58003030
-e0a10000
-e0a10000
-20600000
-47464031
-68108073
-d8400006
-9841fe00
-60108073
-68108077
-9841fe00
-60108077
-204063ee
-68108077
-793ffe01
-793ffe02
-60108077
-2000001e
-202063f2
-68108073
-d84000c0
-9841fe00
-60108073
-68108077
-9841fe00
-60108077
-204063ee
-68108077
-793ffe06
-793ffe07
-60108077
-2000001e
-202063f6
-68108081
-1fe17efc
-60108081
-20600000
-68108081
-1fe1fe01
-60108081
-20600000
-68108081
-1fe1fe03
-793ffe04
-60108081
-20600000
-1fe22400
-2040640f
-20000064
-1a427e00
-20406414
-1fe22400
-20406411
-20000064
-1a427e00
-20600000
-1fe22400
-2040640f
-20000064
-1a427e00
-20406413
-20406411
-20000064
-20600000
-6808c214
-2020680e
-6808c214
-20206829
-6808c214
-20206825
-202064ec
-202064f3
-24346419
-68108085
-1fe1fe02
-60108085
-18427c00
-2022e41c
-1a627a00
-2fcc0000
-202064b9
-18000404
-da2001fe
-68108085
-1fe17efd
-60108085
-20406419
-da2055aa
-680101fe
-e8c90000
-9a267c00
-20600000
-d8400002
-da200204
-20406419
-68010204
-600101f7
-20546430
-20600000
-d8400010
-da200206
-68108085
-1fe17efd
-60108085
-20406419
-d8c00206
-df200010
-20407478
-20407428
-20407491
-20207422
-7856fc00
-2040641e
-24628000
-7836fc00
-70802380
-70802200
-70802400
-da208025
-20406415
-70802300
-d8400006
-2040641f
-24628000
-e8c10000
-98002200
-20406419
-20206446
-20407f99
-58001000
-600101f7
-da6065e5
-df200002
-2040641e
-24628000
-680101f7
-1ff0fe00
-9840fe00
-1ff0fe00
-600101f7
-c2006452
-20206446
-20407f99
-78547c00
-2040666a
-58000000
-da2001f3
-d8400002
-204066b3
-680101f3
-c303e46e
-70805025
-580007f0
-da200206
-d8400010
-204066b3
-70800608
-7920002b
-d8c00206
-20407484
-78347c00
-7041da00
-204064b0
-680101f3
-1ff0fe00
-d84007ff
-98417e00
-2022e47b
-2040666f
-da6066b8
-20546430
-2040643c
-680081f2
-c300646f
-2040666d
-7041da00
-204064b0
-204065c2
-680081f3
-c283648e
-204064aa
-2436e486
-680081f2
-c300647d
-2020649b
-204065bf
-680081f3
-c283648e
-204064aa
-2436e48e
-680081f2
-c300647d
-2020649b
-7041da00
-204064b0
-680081f3
-c282e49b
-58000000
-600181f6
-20406502
-da606578
-20406429
-2040643c
-2436e49b
-680081f2
-c300648f
-c515e49d
-204064a3
-680081f3
-c30264a3
-70805021
-20404c0e
-20404c2e
-202064a1
-58000000
-60040206
-6004020e
-18007004
-20407492
-70805021
-20600000
-58000000
-600101f7
-da6065e5
-204065a3
-20406429
-2020643c
-6800c1da
-1fe0fe01
-1fe67c03
-242164b6
-6000c1da
-20600000
-204064a3
-20407fa1
-20600000
-680081f2
-1fe3fe00
-7920fe00
-2a2c000f
-20608000
-600081f2
-20600000
-68108085
-c4008000
-202064c6
-6810812c
-afefffff
-20608000
-68108108
-c300e4c3
-20407422
-202064c3
-68014199
-207a0000
-70802380
-70802200
-70802400
-6809419b
-184bf200
-98000c00
-e8c08000
-60108025
-c20064d2
-70802300
-20600000
-4746c031
-204064dd
-202063f2
-204064dd
-204063ee
-202063f6
-6800c212
-60108086
-6800c213
-60108087
-580001f5
-6011008a
-580001fa
-6011008c
-202063ee
-68108086
-79207e07
-60108086
-793ffe07
-60108086
-20600000
-79207e07
-600101f5
-47474031
-70808802
-70808e00
-70800602
-202064fc
-18000401
-600081f5
-4747c031
-70808801
-6019008e
-70800602
-204064fc
-680081fa
-20600000
-680140d6
-1fe0fe01
-600140d6
-6810812c
-c301e4fc
-20600000
-70808640
-70808700
-68108081
-793ffe00
-79207e01
-60108081
-58000000
-600201f5
-20600000
-58000000
-6011008e
-58000001
-60110088
-580001f5
-6011008a
-7001f506
-70800602
-202064fc
-78547c00
-1fe22400
-6800c239
-c1800000
-78347c00
-1a427e00
-20206522
-6800c239
-c000e522
-c0016528
-c001e530
-c0026537
-c002e53d
-20600000
-6001c232
-1a227e00
-60014235
-60094237
-70423902
-20206502
-20406502
-70423903
-2040650b
-da2001f5
-6801c232
-70808804
-d8400020
-20206556
-20406502
-2040650b
-58000005
-204064f3
-c3800000
-70423904
-20600000
-20406502
-70423905
-2040650b
-2040654a
-20406552
-20206545
-20406502
-2040650b
-58000005
-204064f3
-c3800000
-70423900
-68014201
-20207f9c
-68020aa2
-68094235
-184085fc
-e0420000
-20600000
-68094235
-18422200
-184085fc
-e8420000
-60020aa2
-68094237
-6801c232
-20600000
-18408404
-60190088
-d8400002
-1a20a3fc
-e2288000
-1ff10400
-e0a88000
-1fec8400
-e0a88000
-e0a08000
-1a227e00
-6011008a
-58000000
-6011008e
-70800602
-202064fc
-6019008e
-1ff10400
-600881f6
-1fec8400
-600881f7
-600081f8
-58000004
-60110088
-7001f503
-580001f5
-6011008a
-1a227e00
-6011008c
-68108086
-2a2c000f
-7920fe06
-60108086
-70800602
-6810812c
-c283e574
-d8e00003
-202064fc
-6019008e
-58000004
-60110088
-7001f503
-580001f5
-6011008a
-1a227e00
-6011008c
-68108086
-2a2c000f
-7920fe06
-60108086
-70800602
-6810812c
-c283e585
-d8e00003
-204064c0
-204064fc
-2feffe02
-204064b9
-680081f6
-1ff02400
-680081f7
-1fed7e00
-9a41a400
-680081f8
-9a41fe00
-9840fe00
-600081f8
-1fecfe00
-600081f7
-1fecfe00
-600081f6
-20600000
-70801001
-20600000
-7080910c
-7080920d
-7080930d
-7080940d
-7080950d
-7080960c
-202065a9
-70809105
-70809207
-70809307
-70809407
-70809507
-70809605
-6810807b
-1fe1fec0
-6010807b
-68108081
-1fe1fe10
-60108081
-20600000
-6810812c
-c302e5b0
-20600000
-60110098
-1a227e00
-6011009a
-1a427e00
-6011009c
-18427e00
-6011009e
-d8400001
-7d3a0401
-60108090
-70800604
-202065b0
-79200028
-70421108
-20600000
-793f8028
-70421120
-20600000
-6800c203
-9a40fe00
-600081f7
-202065cc
-680101f7
-1ff0fe00
-600081f7
-58000003
-60110098
-7001f6a0
-7001f8a1
-202065eb
-60090aa2
-204065d6
-68090aa2
-20406606
-202065dd
-6800c23a
-c17f8000
-c30365db
-580249f0
-20402a8f
-6808c23a
-20206829
-6808c23a
-20206825
-47484032
-c51465c5
-68014203
-9a40fe00
-1ff0fe00
-600101f7
-4748c032
-c51465c9
-58000004
-60110098
-7001f6a0
-7001f9a1
-580001f6
-6011009a
-6019009e
-1a227e00
-6011009c
-58000002
-2a2c000f
-7920fe00
-60108090
-70800604
-d8e00005
-204064c0
-204065b0
-2feffe04
-204064b9
-c5146601
-680101f7
-1ff0fe00
-9840fe00
-1ff0fe00
-600101f7
-20600000
-680081f7
-9840fe00
-1ff0fe00
-600101f7
-20600000
-68014203
-9a40fe00
-60010a9a
-47494032
-60090aa2
-1a227e00
-60010ab9
-2040661d
-68090ab2
-68010ab9
-1fe22200
-68010a9a
-2040663d
-68010ab2
-68090ab9
-98408400
-60090ab9
-68090a9a
-98408400
-60090a9a
-68010aa2
-243a660d
-20600000
-4749c032
-6800c211
-1fe0ffff
-68090a9a
-9841fe00
-1fe0fe01
-60018ab6
-68010aa2
-9840fe00
-68098ab6
-98467e00
-2421662f
-60010aa2
-68018ab6
-68090a9a
-98467e00
-60010ab2
-20600000
-68010aa2
-60010ab2
-58000000
-60010aa2
-20600000
-18408402
-60190098
-1a20a3fe
-ea298000
-18422400
-d84000a0
-e2288000
-e0a08000
-2020664a
-1fe22400
-474a4032
-c5146634
-1a427e00
-18408403
-60190098
-1a20a3fd
-ea298000
-18422400
-d84000a0
-e2288000
-1ff0fe00
-e0a10000
-1a227e00
-6011009a
-58000000
-6011009e
-70809001
-70800604
-204065b0
-1a427e00
-e2218000
-474ac032
-7001f900
-58000001
-60110098
-7001f6a0
-580001f6
-6011009a
-58000000
-6011009e
-6011009c
-58000003
-60108090
-70800604
-204065b0
-6810812c
-c4030000
-200005dc
-680081f9
-1fe0fe01
-600081f9
-1fe67c28
-24610000
-20206655
-70897370
-20000bb8
-20600000
-70897330
-20600000
-1fe9fe00
-60110045
-70804b00
-20600000
-2040666f
-204066a0
-ea288000
-1a20a201
-18000e00
-a84c0000
-2020e697
-68108046
-79207e06
-79207e07
-60108046
-70804702
-70804782
-793ffe07
-60108046
-7080478a
-2000000b
-708047ca
-20000021
-7080474a
-2000002c
-708047ca
-20000016
-7080478a
-20000021
-70804782
-20000001
-70804792
-2000000a
-708047b2
-68108007
-70804792
-20000001
-70804782
-afec0000
-2020e678
-68110045
-1fe0fe01
-60110045
-18e08e01
-28e01e08
-2420e678
-c2006675
-70804783
-20600000
-70804782
-2000000c
-70804780
-70804782
-20000096
-20600000
-204066a0
-708047a2
-1a227e00
-60110048
-7920040b
-2fec000f
-7920840f
-6019004a
-70800601
-20600000
-6810812c
-c300e6b0
-20600000
-2040666f
-204066a6
-204066b0
-70804783
-20600000
-68110124
-60110045
-204066a6
-d8e00001
-204064c0
-204066b0
-2feffe00
-204064b9
-70804783
-20600000
-6811005e
-98001400
-20600000
-19427e00
-6011005e
-20600000
-18627e00
-60110058
-20600000
-68110058
-1fe20600
-20600000
-68014243
-60110052
-20600000
-1f227e00
-207a0000
-1f20f3f8
-204166de
-20628000
-202166d3
-1f20f208
-1f20f3fc
-204166e1
-20628000
-202166d8
-1f20f204
-202066e4
-e8c40000
-e1440000
-20600000
-e8c20000
-e1420000
-20600000
-1f227e00
-207a0000
-e8c08000
-e1408000
-c20066e6
-20600000
-1f227e00
-207a0000
-1f20f3f8
-204166f7
-20628000
-202166ec
-1f20f208
-1f20f3fc
-204166fa
-20628000
-202166f1
-1f20f204
-202066fd
-e8640000
-e0a40000
-20600000
-e8620000
-e0a20000
-20600000
-1f227e00
-207a0000
-e8608000
-e0a08000
-c20066ff
-20600000
-1f227e00
-207a0000
-e8608000
-e1408000
-c2006705
-20600000
-700a993d
-20207d86
-474b4032
-6800c217
-207a0000
-204067a3
-2042e7a9
-2040673e
-6800c217
-1fe22600
-68094215
-6009018c
-1a627e00
-203a6709
-1a60a7ff
-18422200
-ea208000
-68088184
-98467c00
-2042e725
-20216721
-ea208000
-1fe0fe01
-e2208000
-6809018c
-18408422
-6009018c
-20206715
-58000000
-e2208000
-68008185
-e0a08000
-c099e733
-da4041be
-e8c30000
-e0a40000
-58000000
-e0a40000
-1a420c00
-20407ebf
-18007c01
-20600000
-c01b6737
-c01be73b
-da404419
-2020672b
-d8c044d5
-20407ebf
-d8c04419
-20206730
-d8c044cd
-20407ebf
-20206739
-20407fe9
-6800c217
-207a0000
-68014682
-c2806754
-474bc032
-6800c48e
-c000674d
-68008454
-2fe180c0
-2020e74d
-2fe18040
-2020e752
-2fe18000
-2020e750
-70018535
-6803044f
-20206757
-70018537
-20206757
-70018536
-20206757
-474c4033
-70018533
-68030040
-60030186
-68014215
-efe88000
-1fe0fe01
-6001018c
-60088184
-6800c217
-1fe22600
-6801018c
-1fe22200
-2040676f
-20740000
-6809018c
-18408422
-6009018c
-184085ff
-e8408000
-60008184
-1a60a7ff
-2422e75f
-6800c217
-1fe0ffff
-60008184
-20600000
-68008185
-c099e776
-da400185
-df200007
-20407f88
-2022ffe7
-20600000
-c01b6779
-c01be794
-20206771
-ea288000
-98467c00
-24628000
-d8a00ac2
-df200010
-20407ed4
-68018452
-60018ac2
-2040678b
-68010adf
-1ff0fe00
-1fed0400
-e8c08000
-9840fe00
-6809844f
-98467c00
-2022ffe7
-20600000
-d8c00ac2
-20407486
-ea208000
-20407487
-18006c38
-18006c00
-2040741d
-d8a00ad2
-20207497
-ea288000
-98467c00
-24628000
-18c22200
-18c0a608
-da4044cd
-df200008
-20407f88
-2022ffe7
-1a622200
-da4044d5
-df200008
-20407f88
-2022ffe7
-20600000
-68014215
-efe88000
-1fe0fe22
-efe08000
-98467c00
-20600000
-6800c217
-1fe27200
-68094215
-58000000
-e0408000
-18408422
-1fe0fe01
-c20067ad
-20600000
-474cc033
-2040673e
-68008030
-79347e06
-60008030
-243467bc
-1a208c0a
-d8a041be
-20407ebf
-202067d7
-7041bd00
-20600000
-6804c4cb
-203a67ca
-2040673e
-243467ca
-6801018c
-1fe08c01
-d8a044d5
-20407ebf
-d8a04419
-20407ebf
-70442901
-20600000
-70442900
-20600000
-6803044f
-60030186
-70018534
-202067d3
-68030040
-60030186
-70018533
-6800c092
-c005670b
-c28342da
-20600000
-680441be
-680c41c6
-9841fe00
-207a0000
-7041bd01
-20600000
-474d4033
-79200407
-2040681d
-7d208407
-474dc033
-18467cff
-20628000
-284c0007
-18410e1f
-680200a1
-f920fe00
-600200a1
-680200a5
-fd20fe00
-600200a5
-20600000
-474e4033
-18467cff
-20628000
-284c0007
-18410e1f
-680200a1
-f93ffe00
-600200a1
-680200a5
-f93ffe00
-600200a5
-20600000
-204067ed
-202067fe
-18467cff
-20628000
-2455e7e1
-d8a0807c
-20406830
-79400407
-d8a08078
-20406830
-793f8407
-d8a08070
-20206830
-d8a0807c
-20406830
-793f8407
-d8a08078
-20406830
-793f8407
-d8a08070
-20206830
-18467cff
-20628000
-79400407
-2040682f
-79200407
-d8a08070
-20206830
-18410e07
-18497e00
-1fe17e03
-98a08a00
-e8a08000
-20600000
-d8a08074
-2020681e
-d8a0811c
-20406815
-284ffe07
-2020e823
-afec0000
-20600000
-afefffff
-20600000
-18467cff
-20628000
-2fcffe07
-2020682c
-18467cff
-20628000
-2fcc0007
-58000000
-7d20fe07
-98428400
-d8a08074
-20406815
-284ffe07
-f920fe00
-e0a08000
-20600000
-da3fffff
-68108081
-2fe00602
-2040e878
-2fe00601
-2040e87a
-2fe00603
-2040e87a
-2feffe02
-2040e874
-2feffe03
-2040e876
-2feffe04
-2040e87c
-2feffe06
-7d20a204
-2feffe07
-7d20a205
-68108082
-2feffe00
-7d20a21b
-2feffe01
-7d20a21c
-2feffe02
-7d20a203
-2feffe03
-7d20a208
-2feffe04
-7d20a214
-2feffe05
-7d20a215
-2feffe06
-7d20a216
-2feffe07
-7d20a217
-68108080
-2feffe00
-7d20a205
-2feffe01
-7d20a206
-2feffe02
-7d20a207
-2feffe03
-7d20a212
-2feffe04
-7d20a213
-2feffe05
-7d20a214
-2feffe06
-7d20a215
-2feffe07
-7d20a216
-68108062
-2feffe04
-2040e87e
-474ec033
-68120078
-681a007c
-9841fe00
-1fe47e00
-9a217e00
-60120070
-20600000
-d8e00006
-20206884
-d8e00009
-20206882
-d8e00017
-20206882
-d8e00019
-20206884
-d8e0001e
-20206884
-d8e00002
-20206884
-df200001
-20206885
-df200004
-20206885
-df200002
-f93fa200
-18e08e01
-c2006885
-20600000
-20406895
-d8400006
-2020680e
-20406889
-d8400006
-20206825
-20406895
-68108078
-79207e07
-60108078
-d8400007
-202067fb
-68108081
-1fe17efb
-60108081
-20600000
-68108081
-2feffe02
-20600000
-2040666a
-580007e0
-da204150
-d8400002
-204066b3
-2020666d
-2040666a
-580007e2
-da20421d
-d840000e
-204066b3
-2020666d
-474f4033
-204068a2
-6800c22d
-c00068af
-c000e8c3
-c00168d7
-20600000
-68094229
-5800aa55
-98467c00
-2022e8b8
-58004dfa
-60014227
-58004894
-60014221
-202068c0
-68014227
-243a68bc
-58004dfa
-60014227
-68014221
-243a68c0
-58004894
-60014221
-58000064
-6001422b
-20600000
-68094229
-5800aa55
-98467c00
-2022e8cc
-58005932
-60014225
-58004323
-6001421f
-202068d4
-68014225
-243a68d0
-58005932
-60014225
-6801421f
-243a68d4
-58004323
-6001421f
-58000190
-6001422b
-20600000
-68094229
-5800aa55
-98467c00
-2022e8e0
-58006946
-60014223
-58005377
-6001421d
-202068e8
-68014223
-243a68e4
-58006946
-60014223
-6801421d
-243a68e8
-58005377
-6001421d
-58000032
-6001422b
-20600000
-6800c22d
-c00068f0
-c000e8f2
-c00168f4
-20600000
-708971bf
-202068f8
-708971af
-202068f8
-7089718f
-6800c22e
-60108973
-202068f8
-474fc033
-68108053
-79207e07
-60108053
-68108973
-1fe1fe30
-60108973
-7089067c
-708972aa
-20001388
-68190150
-68108053
-793ffe07
-60108053
-6009422f
-20600000
-47504034
-6800c22d
-c000690e
-c000e912
-c0016916
-20600000
-68014227
-68094221
-da6000c8
-2020691a
-68014225
-6809421f
-da600064
-2020691a
-68014223
-6809421d
-da600032
-2020691a
-98462200
-6801422f
-98467e00
-24216927
-6809422b
-984fa400
-1a627e00
-9a2ffe00
-9a40fe00
-9a26fc00
-20407f86
-1807fe00
-20600000
-18427e00
-6809422f
-98467e00
-6809422b
-984fa400
-1a627e00
-9a2ffe00
-9a467e00
-20206923
-ea240000
-60040a9a
-68010a9a
-68090a9c
-98462200
-68010aa0
-98462400
-68090a9e
-98467c00
-24416940
-1a4ffe64
-9a26fc00
-20407f86
-1807fe00
-205a6944
-20600000
-6800c231
-79207e00
-6000c231
-20600000
-6808c231
-79200401
-6008c231
-20600000
-6801423d
-efe08000
-207a0000
-1fe27200
-6801423d
-1fe0fe03
-1fe22200
-ea288000
-204067fb
-1a20a201
-c200694f
-20600000
-6801423d
-1fe0fe03
-1fe22200
-18002400
-700b1200
-ea288000
-2040681d
-4750c034
-68010b12
-1a420e00
-f920fe00
-60010b12
-1a20a201
-1a40a401
-6801423d
-efe08000
-9a42fc00
-2422e959
-68010b12
-68090b14
-9842fc00
-20628000
-78347c00
-20600000
-6801423d
-efe08000
-207a0000
-1fe27200
-6801423d
-1fe0fe03
-1fe22200
-ea288000
-204067dd
-1a20a201
-c2006973
-20600000
-d8e00009
-20407f16
-247a0000
-58000020
-d8e00009
-20407f08
-78547c00
-2040696c
-47514034
-6801423d
-efe08000
-207a0000
-20406954
-24347d02
-20407d00
-78547c00
-68010b12
-60010b19
-700b1b00
-18000e00
-68010b14
-1fe30400
-60090b14
-1fe17e01
-68090b19
-18412201
-18430400
-60090b19
-9a22fc00
-2442e9a1
-6801423d
-efe08000
-68088b1b
-18408401
-60088b1b
-18420e00
-98e2fc00
-2422e98c
-68010b12
-60010b14
-20600000
-4751c034
-6801423d
-1fe0fe01
-efe10000
-20207f9c
-68108042
-9a21fe00
-60108042
-68110050
-793ffe0d
-60110050
-20000064
-20600000
-68098a9c
-58b71b00
-9846fc00
-20407f86
-18078400
-68008a9f
-984ffe00
-1fe6fc64
-20407f86
-1807a200
-18427e00
-9a262400
-68008a9b
-204069be
-68008a9a
-202069d5
-c00069c4
-c000e9c6
-c00169c8
-c001e9ca
-c00269cc
-c002e9ce
-d8a080a0
-202069d0
-d8a080a4
-202069d0
-d8a080a8
-202069d0
-d8a08064
-202069d0
-d8a08068
-202069d0
-d8a0806c
-202069d0
-1a227e00
-e0a10000
-1a427e00
-e0a10000
-20600000
-78347c00
-202069d8
-78547c00
-c00269e3
-c002e9e5
-c00de9e7
-c00e69e9
-c001e9eb
-c00469ed
-c00a69ef
-c00ae9f1
-c00b69f3
-c00be9f5
-20600000
-d8e00006
-202069ff
-d8e00007
-202069ff
-d8e00008
-202069ff
-d8e00009
-202069ff
-d8e0000a
-202069ff
-d8e0000b
-202069ff
-d8e0000c
-20206a01
-d8e0000d
-20206a01
-d8e0000e
-20206a01
-d8e0000f
-20206a01
-68110081
-f9347e00
-60110081
-1a220e00
-68108085
-f9347e00
-60108085
-20600000
-18e0a3fc
-202069f7
-18e0a3f6
-202069f7
-20758000
-70456700
-7004ed03
-7004ee03
-7004f211
-7004f313
-58000000
-600184ef
-6000c254
-70468100
-47524034
-58000000
-6000c254
-6000c564
-6000c55d
-6800c56b
-c000ea16
-70456950
-20600000
-70456900
-20600000
-18418402
-20600000
-18427e00
-1fedfe00
-6000c562
-18007e3f
-1fedfe00
-6000c561
-18007e01
-1fedfe00
-6000c560
-20406a50
-18427e00
-20600000
-1fedfe00
-6000c562
-18007e73
-1fedfe00
-6000c561
-18007e01
-1fedfe00
-6000c560
-20206a50
-6800c563
-203a6a33
-58000070
-20600000
-580000aa
-20600000
-1fedfe00
-6000c562
-18007eef
-20406a44
-680904f7
-18420a00
-e0a08000
-18a20400
-600904f7
-18007eff
-20406a44
-680904f7
-18420a00
-e0a08000
-20600000
-1fedfe00
-6000c561
-68014561
-1fed7e00
-600184f4
-da200107
-da40000f
-20406a5d
-1fe2fed7
-1fe47e00
-1fedfe00
-20600000
-6801c560
-600184f4
-da200107
-da40000f
-20406a5d
-1fed7e00
-da400007
-20406a5d
-1fe2fe2b
-1fe47e00
-1fedfe00
-1fe20400
-20600000
-da600000
-1a427200
-20407e71
-1fe20400
-18427e00
-1a63a600
-c3046a66
-9a228400
-1a60a601
-18438400
-680184f4
-1a40a5ff
-2a41feff
-2020ea70
-1a427200
-20407e71
-2feffe00
-79208400
-20206a61
-18437e00
-20600000
-6808c55d
-184b8400
-79200400
-6800c563
-245a6a18
-6008850d
-20600000
-18438400
-6800c563
-793a0400
-20600000
-680884fc
-7004fed7
-20406bb6
-6800c251
-79207e06
-79207e07
-6000c251
-70456300
-20206b97
-6800c251
-79207e07
-6000c251
-20206b97
-4752c034
-6800c681
-c0006a8e
-20206b4c
-68010264
-1fe20c00
-20406ab8
-680084fc
-c0006a94
-20206b18
-47534034
-680084fd
-c01fea7d
-c039ea86
-c077ea9b
-c029eb44
-20600000
-68010501
-1fe20c00
-20406ac3
-68008503
-c020eaa5
-c0206aad
-c038eae6
-c0386af2
-c024eafd
-20206b97
-20406aaf
-20206aa7
-6800c254
-79207e00
-79207e01
-6000c254
-20406be0
-20206b97
-20406aaf
-20206b97
-20406acb
-20206ad7
-20406acb
-e8c08000
-1fe97e00
-6000c56a
-e8c08000
-60008508
-20600000
-e8c08000
-600084fb
-1fe97e00
-600084fc
-e8c08000
-600084fd
-20406ace
-600904ff
-18c27e00
-60010501
-20600000
-e8c08000
-1fe37e00
-60008503
-20406ace
-60090504
-18c27e00
-60010506
-20600000
-68010506
-1fe20c00
-20600000
-e8c08000
-1fe20400
-18430400
-c3800000
-e8c08000
-1fe9fe00
-1ff27e00
-98408400
-20600000
-e8c08000
-6000c55d
-e8c08000
-60008509
-e8c08000
-6000850a
-e8c08000
-6000850b
-e8c10000
-6001455e
-e8c08000
-6000850c
-e8c08000
-6000c568
-20600000
-20406ab1
-20206ae8
-6800c254
-79207e05
-79207e06
-6000c254
-6808c55d
-184b8400
-18418403
-20406c11
-70456703
-20206b97
-700a9908
-20407d86
-20406ab1
-6800c56a
-1fe67c01
-2022eaf9
-20202a8c
-6800c254
-79207e07
-6000c254
-20206b97
-20406acb
-e8c08000
-60008ac2
-204052d2
-204052e0
-5800000e
-e0a10000
-6801424a
-e0a10000
-6800c563
-1fe3fe00
-79207e00
-e0a08000
-4753c034
-580015ef
-e0a10000
-58001191
-e0a10000
-68008ac2
-e0a08000
-58000007
-e0a28000
-58000001
-e0a10000
-20406a2f
-e0a08000
-20600000
-20206b19
-47544035
-680084fd
-c039eb21
-c01feb25
-c077eb3f
-c07feb37
-c029eb46
-20600000
-6800c254
-79207e03
-6000c254
-20206b97
-6800c254
-79207e03
-79207e02
-6000c254
-680084fb
-20406a26
-600084fe
-20406bb6
-680084fb
-1feb7e00
-6000c55d
-1febfe00
-793ffe01
-79207e00
-d8404565
-600904f7
-20406a35
-20206b97
-68010501
-1fe20c00
-1fe0fe01
-60010501
-e8c08000
-6808c568
-9840fe00
-6000c568
-20406c42
-20406a72
-20406c28
-20406c4b
-20206b97
-700a9909
-20407d86
-20406a0d
-680084fb
-20406a26
-600084fe
-20406bb6
-20206b97
-68010264
-1fe20c00
-20406ab8
-680084fc
-c0006b52
-20206b86
-4754c035
-680084fd
-c01fea7d
-c039ea86
-c077eb58
-20206b97
-68010501
-1fe20c00
-20406ac3
-68008503
-c020eb61
-c0206b61
-c038eb6c
-c0386b7c
-20206b97
-20406aaf
-6800c55d
-1fe37e00
-6808c564
-98467c00
-2022eb68
-20202a8c
-6800c254
-79207e01
-6000c254
-20206b97
-20406ab1
-6800c56a
-6808c564
-98467c00
-2022eb73
-20202a8c
-20206b97
-6800c254
-79207e05
-79207e06
-6000c254
-6808c55d
-184b8400
-18418403
-20406c11
-20206b97
-20406ab1
-6800c56a
-6808c564
-98467c00
-2022eb82
-20202a8c
-6800c254
-79207e07
-6000c254
-20206b97
-680084fc
-6808c564
-98467c00
-2022eb8c
-20202a8c
-20206b97
-680084fd
-c039eb91
-c077eb3f
-c07feb37
-c029eb96
-6800c254
-79207e03
-6000c254
-20206b97
-20206b95
-20206b46
-20600000
-6800c567
-207a0000
-c001eb9c
-20202a8c
-70456700
-204052d2
-d8400001
-6808c55d
-184b8400
-18418403
-da2000aa
-20406bfc
-204052e0
-18a20c00
-e8c10000
-203a2a8c
-20600000
-204052e0
-58000004
-e0a10000
-6801424a
-e0a10000
-680084fb
-e0a08000
-47554035
-5800013f
-e0a10000
-680084fe
-e0a08000
-20600000
-204052d2
-204052e0
-58000004
-e0a10000
-6801424a
-e0a10000
-680084fb
-e0a08000
-4755c035
-58000173
-e0a10000
-680084fe
-e0a08000
-20600000
-204052e0
-5800000e
-e0a10000
-6801424a
-e0a10000
-6800c563
-1fe3fe00
-79207e00
-e0a08000
-47564035
-580015ef
-e0a10000
-58001183
-e0a10000
-18427e00
-e0a08000
-580000f0
-e0a18000
-5800007f
-e0a10000
-58000000
-e0a08000
-58000001
-e0a08000
-20406a2f
-e0a08000
-70456910
-20600000
-204052d2
-204052e0
-5800000e
-e0a10000
-6801424a
-e0a10000
-6800c563
-1fe3fe00
-79207e00
-e0a08000
-4756c035
-580015ef
-e0a10000
-58001181
-e0a10000
-6800c55d
-e0a08000
-580000e0
-e0a18000
-6801456c
-e0a10000
-58000000
-e0a08000
-6800c56e
-e0a08000
-20406a2f
-e0a08000
-20600000
-204052e0
-58000008
-e0a10000
-6801424a
-e0a10000
-6800c563
-1fe3fe00
-79207e00
-e0a08000
-47574035
-580009ef
-e0a10000
-580005e3
-e0a10000
-18427e00
-e0a08000
-5800008d
-e0a08000
-20406a2f
-e0a08000
-20600000
-204052d2
-204052e0
-58000008
-e0a10000
-6801424a
-e0a10000
-18421600
-6800c563
-1fe3fe00
-79207e00
-e0a08000
-4757c035
-580009ef
-e0a10000
-580005e1
-e0a10000
-19627e00
-e0a08000
-5800008d
-e0a08000
-20406a2f
-e0a08000
-20600000
-47584036
-6800c569
-207a0000
-68110112
-247a0000
-1a227e00
-60008a9b
-60088a9a
-2040526e
-247a0000
-204052d2
-204052e0
-58000005
-e0a10000
-6801424a
-e0a10000
-6800850d
-e0a08000
-580001ff
-e0a10000
-6800c569
-e0a08000
-6800c566
-e0a08000
-70456900
-20600000
-4758c036
-6800c56b
-c1008000
-680104ff
-207a0000
-6800c569
-1fe0fe01
-6000c569
-20600000
-6801456f
-20207f9c
-47594036
-6800c568
-207a0000
-1fe0ffff
-6000c568
-6801455e
-6809469f
-98467c00
-20216c57
-6001469f
-6800c569
-203a6c5f
-70051001
-6800c566
-6000850f
-580000ff
-6000850e
-20206c64
-70051000
-6800c565
-6000850f
-580000ef
-6000850e
-4759c036
-6801469f
-1fe67c7f
-20216c6b
-68008510
-1fe0fe01
-60008510
-20406a72
-6801469f
-1fe0fe08
-68088510
-9840a200
-20405240
-60010277
-1fe0fe04
-60010279
-1fe20a00
-6800850d
-e0a08000
-6800850e
-e0a08000
-20406c95
-20406ca6
-475a4036
-68014571
-1fe20600
-6801469f
-1fe27200
-204066ea
-18a20400
-18627e00
-60014571
-18420a00
-6800850f
-e0a08000
-68010277
-1fe20a00
-6801469f
-68088510
-9840fe00
-1fe0fe04
-e0a10000
-6801424a
-e0a10000
-70456900
-68014573
-c0003a97
-700b0500
-20600000
-475ac036
-6801469f
-1fe67c7f
-24216c9d
-1fe3fe00
-79207e00
-e0a08000
-20600000
-6801469f
-1fe97e00
-1ff18400
-1fe17e7f
-1fe3fe00
-793ffe00
-e0a08000
-e0a88000
-20600000
-6800c569
-207a0000
-e0a08000
-20600000
-475b4036
-20407d9c
-204032f6
-2040631b
-475bc036
-204076dc
-204076b5
-204076c6
-2040526e
-247a0000
-20404da9
-2040526e
-247a0000
-475c4037
-20406cf5
-20404f64
-20406b98
-20406cbe
-475cc037
-202032f2
-6800827f
-c2805087
-c283d091
-20600000
-475d4037
-20405274
-207a0000
-6800804b
-c3830000
-20405258
-6001016f
-1fe20c00
-e8c10000
-1fe0fe04
-600141dc
-7041db06
-475dc037
-68014246
-203a6cdd
-6800804b
-c4038000
-793ffe07
-6000804b
-7041db05
-68094246
-6801016f
-9840fe00
-6001016f
-680141dc
-98467e00
-600141dc
-475e4037
-680141dc
-203a2a8c
-d8400104
-98467e00
-24216ce9
-475ec037
-600941dc
-68014246
-9840fe00
-60014246
-20206ceb
-58000000
-60014246
-6800804b
-79207e06
-6000804b
-20600000
-6800c684
-c2806cf3
-70028701
-20600000
-7002870f
-20600000
-6800c681
-243a6cfb
-68008286
-207a0000
-70028600
-20600000
-475f4037
-68008287
-207a0000
-c000ed1b
-c0016d74
-c001ed21
-c0026d78
-c01ded2b
-c01e6d7b
-c006ed30
-c0076d80
-c007ed33
-c0086d86
-c008ed39
-c0096d8a
-c009ed3f
-c00a6d8e
-c00aed45
-c00b6d92
-c00bed4b
-c00c6d97
-c00ced51
-c00d6d9b
-c00ded57
-c00e6d9f
-c00eed5d
-c00f6da4
-c00fed63
-c0106da8
-c010ed6e
-c0116dac
-20600000
-20406db7
-70028702
-6800c250
-79207e00
-6000c250
-20600000
-70028704
-6800c250
-c3810000
-70028703
-20406dbe
-70028704
-6800c250
-79207e02
-6000c250
-20600000
-20405274
-247a0000
-20406dcd
-7002873c
-20600000
-20406dc3
-7002870e
-20600000
-20406ddd
-70028710
-6800c252
-79207e00
-6000c252
-20600000
-20406de4
-70028712
-6800c252
-79207e02
-6000c252
-20600000
-20406de9
-70028714
-6800c253
-79207e00
-6000c253
-20600000
-20406df0
-70028716
-6800c253
-79207e02
-6000c253
-20600000
-20406dd1
-70028718
-6800c251
-79207e00
-6000c251
-20600000
-20406dd8
-7002871a
-6800c251
-79207e02
-6000c251
-20600000
-20406df5
-7002871c
-6800c251
-79207e06
-6000c251
-20600000
-20406dfc
-6800c254
-79207e00
-6000c254
-7002871e
-20600000
-20406e02
-6800c254
-79207e02
-6000c254
-70028720
-6800c564
-1fe9fe00
-1fe1fe03
-d8404565
-600904f7
-20206a35
-20406e0c
-6800c254
-79207e04
-6000c254
-70028722
-20600000
-6800c250
-c4008000
-70028703
-20206cfb
-6800c250
-c19f8000
-7002873b
-68008285
-c18b8000
-70028500
-7002870d
-20206cfb
-6800c250
-247a0000
-6800c684
-c2806daf
-c2836db1
-20206db5
-6800c252
-c4008000
-70028711
-20206cfb
-6800c252
-c19f8000
-70028713
-20206cfb
-6800c253
-c4008000
-70028715
-20206cfb
-6800c253
-c19f8000
-6800c684
-c2836db1
-20206db5
-6800c251
-c4008000
-70028719
-20206cfb
-6800c251
-c19f8000
-7002871b
-20206cfb
-6800c251
-c1ff8000
-6800c684
-c2836db3
-20206db5
-6800c254
-c4008000
-7002871f
-20206cfb
-6800c254
-c4018000
-70028721
-20206cfb
-6800c254
-c1ff8000
-20206db5
-7002870f
-20206cfb
-70028717
-20206cfb
-7002871d
-20206cfb
-70028700
-20600000
-475fc037
-204052b8
-58000001
-1fe20400
-58000050
-1fe21600
-202050a8
-47604038
-204052b8
-68014248
-1fe20400
-202050b7
-4760c038
-204052b8
-68014248
-1fe20400
-d9600050
-204050cc
-6800c250
-793ffe05
-6000c250
-20600000
-47614038
-204052c5
-20407138
-202050e7
-4761c038
-204052b8
-58000003
-1fe20400
-58000051
-1fe21600
-202050a8
-47624038
-204052b8
-6801424a
-1fe20400
-202050b7
-4762c038
-204052b8
-58000011
-1fe20400
-58000052
-1fe21600
-202050a8
-47634038
-204052b8
-6801424c
-1fe20400
-202050b7
-4763c038
-204052b8
-58000013
-1fe20400
-58000053
-1fe21600
-202050a8
-47644039
-204052b8
-6801424e
-1fe20400
-202050b7
-4764c039
-204052d2
-7004fb03
-7004fe1c
-20406ba9
-70456301
-20600000
-47654039
-204052d2
-6808c564
-20406a79
-6008c55d
-20206bc4
-4765c039
-204052d2
-6808c55d
-20406a73
-20406a1a
-600084fe
-6808c55d
-20406a73
-600884fb
-20206ba9
-47664039
-204052d2
-6808c55d
-20406a73
-20206bfc
-4766c039
-68010264
-98000c00
-e8c08000
-1fe22400
-6000851b
-e8c10000
-6001051c
-e8c08000
-1fed1600
-e8c08000
-99609600
-47674039
-18c20400
-df200004
-d8a0052a
-20407ec6
-18420c00
-1a427e00
-c000efba
-c0016e2c
-c001efba
-c0026e54
-c002efba
-c0036f02
-c003efba
-20206fc1
-4767c039
-20406fd0
-2841fe01
-2020f040
-2841feff
-2020efc4
-e8c10000
-60010522
-196097fe
-196097ff
-2422efbe
-d9600511
-e9610000
-207a0000
-20407082
-204052d0
-18007e03
-e0a08000
-6801051c
-e0a10000
-18ebfe00
-1fe0fe05
-1fe0a605
-1ff0fe00
-e0a10000
-18e27e00
-1ff0fe00
-e0a10000
-e0a10000
-d8c0052a
-18e27200
-2022ee4f
-e8c20000
-e0a20000
-c2006e4c
-18007e00
-e0a08000
-1a627e00
-60010275
-20600000
-4768403a
-e8c20000
-60020524
-196097fc
-20406f2e
-60010520
-196097fe
-20407028
-2022efc4
-2a21fe05
-2020ee62
-d8a0052a
-18000e00
-20206e71
-e8c08000
-c0856fc4
-e8c10000
-243a6e6f
-e8c08000
-c0ffee6d
-e8c08000
-c0ffee6b
-20206eb8
-18c08dfb
-20206e5f
-18c08dfc
-20206e5f
-18c08dfd
-20206e5f
-e8c08000
-c004ee86
-c0056e74
-e8c10000
-e0a10000
-18e08e01
-1ff0a400
-e8c10000
-1ff0fe00
-1a40a401
-9a467c00
-24216e83
-1fe22600
-1a50fe00
-e0a10000
-18e08e01
-1a627e00
-20206e7a
-196097fb
-1a20a3fb
-20206e8b
-e8c10000
-e0a10000
-18e08e01
-196097fd
-1a20a3fd
-24216fc4
-2422ee71
-196097ff
-2422efc4
-204052d0
-18a08a0a
-da20052a
-18e27e00
-203a6ea5
-ea210000
-203a6ea5
-98002400
-68020524
-98000400
-204070e7
-18c27e00
-203a6ea2
-18c08dfd
-e8c18000
-e0a18000
-2040705b
-98007200
-20407f01
-1a20a202
-18e08fff
-20206e92
-da200005
-20406f84
-68010275
-c005f043
-20206f9a
-e8c08000
-c0006eae
-c000eeb0
-c0016eb3
-196097ff
-20206eb6
-e8c08000
-196097fe
-20206eb6
-e8c10000
-1ff0fe00
-196097fd
-60010519
-20600000
-196097fb
-20406eaa
-2422efbe
-680a0524
-204070b1
-2422efbb
-18c22200
-204052d0
-1a220c00
-18a08a03
-18c21600
-20407062
-1fe22200
-68010519
-1fe22400
-1a227e00
-9a462400
-68010520
-9a467c00
-24216ee7
-78547c00
-68010519
-203a6eda
-99608c00
-1a40a403
-1a427200
-1f227e00
-1fe0fe03
-1ff0fe00
-e0a10000
-1f227e00
-1ff0fe00
-e0a10000
-20206ef5
-1a20f206
-20346ede
-1f30fe00
-20206ee1
-1f227e00
-1fe0fe02
-1ff0fe00
-e0a10000
-1f20f3fd
-1f30fe00
-e0a10000
-19620c00
-20206ef5
-78347c00
-68010520
-1fe22200
-1a227200
-68010519
-203a6eda
-99608c00
-1a227e00
-1fe0fe05
-1ff0fe00
-e0a10000
-1a227e00
-1ff0fe00
-e0a10000
-20407f01
-24346efe
-18007e02
-e0a08000
-18c27e00
-99667e00
-1ff0fe00
-e0a10000
-20206f00
-18007e00
-e0a08000
-da200005
-20206fb0
-4768c03a
-20406fd0
-2841feff
-2020efc4
-20406f2e
-60010520
-196097fe
-20407028
-d8a0052a
-18000e00
-e8c08000
-c0056f36
-e8c10000
-e0a10000
-18e08e01
-196097fd
-1a20a3fd
-24216fc4
-2422ef0c
-196097ff
-2422efc4
-204052d0
-18a08a0d
-68010511
-98002600
-da20052a
-ea210000
-203a6f29
-98002400
-204070c6
-203a6f27
-18c08dfd
-e8c18000
-e0a18000
-2040705b
-98007200
-20407f01
-1a20a202
-20206f1c
-20406f83
-68010275
-c0077046
-20406f9a
-20206f9a
-e8c10000
-1ff0fe00
-1fe0fffd
-d84000c8
-98467c00
-24610000
-580000c8
-20600000
-18c08c04
-196097fb
-1a20a3fb
-2422efc4
-20406eaa
-2422efbe
-d9600511
-20407082
-18e27e00
-203a7046
-6000854e
-1a427e00
-6001054c
-d8e00000
-da200000
-204052d0
-18a08a0a
-20406f6c
-24342a8c
-18c21600
-1fe22600
-9a20a200
-68010519
-1fe22400
-203a6f75
-1a227e00
-9a462400
-2022ef67
-24216f67
-68010520
-9a467c00
-2022ef5e
-24216f5e
-1a427200
-20406f61
-6800854e
-18e08e01
-98e67c00
-2022ef83
-20206fa0
-1fe27200
-20406f61
-20206fa0
-18a08bfd
-1f220400
-1a627e00
-9a467e00
-99608c00
-20207f01
-6800854e
-18e08e01
-98e67c00
-20628000
-20206f47
-20407fe9
-d8c0052a
-18ebfe00
-98c08c00
-e8ca0000
-204070b1
-24628000
-2040705b
-20207fe7
-68010520
-9a267c00
-24216f8f
-1a227200
-1f220400
-19620c00
-20407f01
-6801054c
-9a267c00
-2022ef81
-20406fa0
-20206f94
-20406f83
-20206f94
-da200007
-18007e00
-e0a08000
-20406fb0
-68090275
-184085fb
-1850fe00
-e0a10000
-184085fd
-1850fe00
-e0a10000
-20600000
-1fe27200
-1f220400
-19620c00
-20407f01
-20406fa0
-58000036
-e0a08000
-6801054c
-1ff0fe00
-e0a10000
-20600000
-58000036
-e0a08000
-184085fd
-1850fe00
-e0a10000
-20600000
-da200007
-58000002
-e0a08000
-68010519
-98408400
-1850fe00
-e0a10000
-20406fb0
-68090275
-184085fb
-1850fe00
-e0a10000
-184085fb
-1850fe00
-e0a10000
-20600000
-68010273
-98a67e00
-1fe67e00
-60010275
-204052d0
-1a227e00
-e0a08000
-6801051c
-e0a10000
-20600000
-20600000
-58000200
-6001054a
-20206fc6
-58000400
-6001054a
-20206fc6
-58000600
-6001054a
-20206fc6
-58000300
-6001054a
-204052d0
-e0a08000
-6801051c
-e0a10000
-58000200
-e0a10000
-6801054a
-e0a10000
-70027507
-20600000
-da400000
-18000400
-d8a00511
-20407028
-2022f026
-1a40a401
-e8c08000
-1a20a3ff
-196097ff
-2fe1f018
-2420f026
-2fe00e04
-2420eff3
-18000401
-e8c08000
-1a20a3ff
-196097ff
-c0806fe7
-e8c08000
-1a20a3ff
-196097ff
-c0006ff8
-20206fea
-18c08c01
-1a20a3ff
-196097ff
-18c08c02
-1a20a3fe
-196097fe
-2841fe00
-2020f020
-18c08c0c
-1a20a3f4
-196097f4
-20207020
-2fe00e02
-2420eff6
-20206fde
-2fe00e01
-2420f026
-1a20a3fe
-196097fe
-e8c10000
-1a467c04
-2022effe
-e0a10000
-2841fe00
-2020f020
-18c20400
-e8c08000
-c0807019
-e8c08000
-c0807019
-e8c08000
-c0887019
-e8c08000
-c0807019
-e8c08000
-c0c07019
-e8c08000
-c0807019
-e8c08000
-c0807019
-e8c08000
-c0c07019
-e8c08000
-c0aff019
-e8c08000
-c0cdf019
-e8c08000
-c09a7019
-e8c08000
-c07df01e
-18420c00
-18c08c0c
-18000e00
-18000400
-2020701e
-196097f4
-1a20a3f4
-18000400
-2a21fe00
-2420efd5
-18007e00
-e0a10000
-20600000
-d84000ff
-20600000
-476a403a
-e8c08000
-196097ff
-2fe1f030
-2420f03e
-2fe00e07
-2020f037
-2fe00e06
-2020f039
-2fe00e05
-2420f03e
-e8c08000
-1fe22200
-196097ff
-2020703c
-18c08c02
-196097fe
-e8c10000
-1ff0a200
-196097fe
-18007e01
-20600000
-18007e00
-20600000
-58000003
-6000851b
-20207048
-58000005
-6000851b
-20207048
-58000007
-6000851b
-204052d0
-6800851b
-1fe22400
-e0a08000
-6801051c
-e0a10000
-58000500
-e0a10000
-2a41fe05
-2020f057
-2a41fe07
-2020f057
-58000000
-e0a28000
-20207059
-58350200
-e0a28000
-7002750a
-20600000
-20407ea2
-20407ea5
-20407062
-20407e9c
-20407e9f
-18427e00
-20600000
-e8c08000
-1fe17207
-1fe97e00
-c080706c
-18007e01
-18000401
-20600000
-20407e76
-1fe08401
-20600000
-1f227e00
-1fe67c04
-20217069
-c002f073
-c0037076
-c003f07a
-20600000
-e8c08000
-1fe08402
-20600000
-e8c10000
-1ff0fe00
-1fe08403
-20600000
-e8c10000
-1ff0fe00
-e8c90000
-18508400
-18500400
-9840fe00
-1fe08405
-20600000
-476ac03a
-18000e00
-da400000
-d8a0052a
-e9610000
-207a0000
-2040708d
-18e27e00
-c1038000
-19609602
-20207086
-98002600
-68014575
-98000c00
-18e27e00
-c1038000
-78547c00
-e8c08000
-207a0000
-98007200
-e8c10000
-9a667c00
-2422f09a
-78347c00
-c2007096
-e8ca0000
-18c22200
-243470ad
-d8c0052a
-df200007
-e8c20000
-203a70a6
-98467c00
-2022f0ad
-c20070a0
-20600000
-e0aa0000
-18e08e01
-1a220c00
-2040705b
-9a40a400
-98c08c00
-20207090
-1a220c00
-20407062
-98c08c00
-20207090
-476b403a
-68014575
-98000c00
-e8c08000
-203a7fe3
-1fe3fe00
-98c08c00
-e8c20000
-98467c00
-20628000
-18a27e00
-60010abb
-600c0aa2
-20407062
-98c08c00
-18c27e00
-68090abb
-18420a00
-680c0aa2
-1fe20c00
-202070b4
-476bc03a
-68014575
-98000c00
-e8c08000
-203a70e4
-98007200
-e8c10000
-9a667c00
-2022f0d4
-c20070cc
-18c08c04
-20407062
-98c08c00
-202070c9
-1f20f3ff
-1f23fe00
-98c08c00
-18c08c04
-20407062
-98c09600
-18c08c01
-e8c10000
-9a467c00
-2022ffef
-2040705b
-98c08c00
-19627e00
-98c67c00
-2022f0e4
-202070da
-18000c00
-18007e00
-20600000
-476c403b
-68014575
-98000c00
-e8c08000
-203a7100
-1fe3fe00
-98c08c00
-e8c20000
-98467c00
-2022f0f4
-20407062
-98c08c00
-202070ea
-20407062
-98c09600
-18c08c01
-e8c10000
-9a467c00
-20628000
-2040705b
-98c08c00
-19627e00
-98c67c00
-2022f100
-202070f6
-18000c00
-20600000
-da400400
-204070f4
-da400300
-2040710d
-24740000
-1a267c03
-20217fe9
-e8c08000
-c0847fe9
-e8c08000
-20600000
-476cc03b
-20407062
-1fe22200
-e8c08000
-1fe17207
-1fe97e00
-1fe67c03
-2022f129
-1f227e00
-c002f120
-c0037123
-c003f126
-18c08dff
-20407062
-98c08c00
-1a227e00
-98462200
-2022ffe9
-20207110
-1a20a3fe
-18c08c01
-20207110
-1a20a3fd
-18c08c02
-20207110
-1a20a3fb
-18c08c04
-20207110
-1a20a3ff
-1f227e00
-c000f132
-c0017130
-c002712f
-20207fe9
-1a20a3f4
-e8c10000
-1a20a3fe
-e8c10000
-9a467c00
-2022ffe7
-1a20a3fe
-2022ffe9
-20207110
-204052d0
-1fe20a00
-58000006
-e0a08000
-5800006e
-e0a10000
-58000f00
-e0a10000
-581a0535
-e0a18000
-58000111
-1ff07e00
-e0a20000
-58002600
-e0a10000
-58000335
-e0a10000
-58000009
-e0a10000
-58000004
-e0a10000
-70027514
-20600000
-476d403b
-7005e550
-d8a005e6
-d8c0443a
-20407ebf
-d8c045d2
-20407ebd
-d8c009be
-20407ebd
-2040720a
-d8c0042f
-20407205
-204071d0
-d8a00af2
-20407201
-580f4240
-1fe22200
-68020af2
-9a26fc00
-20407f86
-18077e00
-600209ba
-20600000
-7005e541
-d8a005e6
-204071b5
-204071b0
-6801c454
-e0a18000
-20407176
-d8c0042f
-20407ebf
-d8c0443a
-20407ebf
-2040720a
-d8c00b12
-d8a00ac2
-20407ebf
-202071d0
-680244c7
-e0a20000
-20407ecd
-20207eca
-476dc03b
-7005e541
-d8a005e6
-204071b0
-204071b5
-6801c44d
-e0a18000
-20407176
-d8c0443a
-20407ebf
-d8c0042f
-20407ebf
-2040720a
-d8c00b12
-d8a00ac2
-20407ebf
-204071d0
-d8a00af2
-20207201
-7005e520
-d8c009fe
-d8a005e6
-20407ebd
-2040720a
-d8c0099e
-20407205
-204071d0
-d8a00ac2
-20407497
-d8400001
-2040719f
-d8a04419
-20407201
-d8400000
-2040719f
-d8a00b12
-20207497
-476e403b
-7005e535
-58000100
-600105e6
-204071b0
-204071b5
-d8c0443a
-20407ebf
-d8c0042f
-20407ebf
-58006c65
-e0a10000
-58006274
-e0a10000
-e0a88000
-2040720a
-202071d0
-680344a0
-e0a30000
-6800c495
-e0a08000
-20600000
-6803044f
-e0a30000
-6800c48e
-e0a08000
-20600000
-7005e541
-6800c664
-600085e6
-d8c045d2
-20407ebd
-d8c009be
-20407ebd
-2040720a
-d8c0042f
-20407205
-202071d0
-7005e541
-6800c664
-600085e6
-d8c009be
-20407ebd
-d8c045d2
-20407ebd
-2040720a
-d8c0443a
-20407205
-202071d0
-476ec03b
-2040721f
-680085e5
-1fe20400
-1fe0fe0f
-1ff1fe00
-1fe22400
-203a71e2
-18417e0f
-243a71e5
-da600ad2
-dfe005e6
-1fe0fff0
-9840a200
-d8a00b02
-df200004
-20407edd
-202071f0
-da400001
-da200000
-202071e6
-1841220f
-dfe005e6
-9840fe00
-9a260c00
-d8a00af2
-20407245
-da600ae2
-da200af2
-d8a00b02
-df200004
-20407edd
-20407491
-20407428
-d8c005e6
-1a40a5ff
-1a427e00
-203a71f9
-20407486
-20407422
-202071f3
-d8a00af2
-20407497
-d8c00b02
-20407486
-20407428
-d8c00af2
-20407486
-20207422
-18a22200
-20407497
-df200010
-20207ee5
-d8a00ac2
-20407ebf
-df200010
-da200ac2
-20207ee5
-680085e5
-1fe27200
-da2005e6
-20207ee5
-ea208000
-1fe3fe00
-2a6ffe00
-7920fe00
-2feffe08
-7920a600
-e2208000
-1a20a3ff
-c200720e
-20600000
-da200ad2
-1a20a20f
-18007210
-18002600
-2020720e
-da200ae2
-20207219
-d8c00ac2
-20407484
-18007008
-20407492
-20407491
-2040741f
-d8a00ad2
-20407497
-476f403b
-68008ad2
-2feffe07
-2420f230
-20407218
-da600ad2
-d8a00ad2
-2040723a
-20207231
-20407218
-d8c00ad2
-d8a00ae2
-20407ebf
-68008ae2
-2feffe07
-2420f21d
-2040721d
-da600ae2
-d8a00ae2
-df200003
-d8400000
-20407241
-1a60a604
-c200723b
-d8408700
-18500400
-ea620000
-9842fe00
-e0a20000
-20600000
-476fc03b
-df200010
-dfe00000
-9a267c00
-2022f250
-20217253
-e8c88000
-e0a88000
-1fe0fe01
-c2007248
-20600000
-d8400080
-e0a88000
-2020724d
-d8400000
-20207251
-20407268
-d8c00592
-d8a00582
-20207ebf
-78547c00
-2040735f
-d8c00562
-d8a005a2
-1800720f
-20407f01
-e8c08000
-1fe2fe06
-e0a08000
-580005b2
-600105d6
-580005a2
-600105d4
-79200012
-202072a8
-6808c689
-18002410
-1840a606
-1a667c10
-2021726e
-18002610
-d8a005a2
-d8c0468a
-18427200
-78547c00
-e8c08000
-e0a08000
-1a40a5ff
-2022f27c
-c2007272
-2034726f
-78347c00
-18007206
-1a220c00
-20207272
-d8c00562
-d8a005b2
-20407ebf
-680085c1
-9a62fe00
-600085c1
-580005b2
-600105d6
-580005a2
-600105d4
-79200012
-202072a8
-78547c00
-2040735f
-20207292
-da200056
-78347c00
-2040735f
-20407292
-d8c00592
-d8a00062
-20207ebf
-58000562
-600105d6
-580041be
-600105d4
-793f8012
-204072a8
-da200592
-da400562
-d8a005a2
-20407352
-da2005a2
-da4005b2
-1a420a00
-78347c00
-20407350
-2040736a
-580005b2
-600105d6
-580005a2
-600105d4
-79200012
-202072a8
-7005d800
-680105d4
-98000c00
-d8a005c2
-20407ebf
-680105d6
-98000c00
-d8a00592
-20407ebf
-204072cf
-78547c00
-c58972b9
-680085d8
-c08272b9
-680105d6
-98002400
-20407301
-20407300
-20407313
-680085d8
-1fe0fe01
-600085d8
-204072cf
-78347c00
-20407300
-20407322
-20407331
-20407322
-20407331
-20407322
-20407331
-20407322
-680085d8
-1fe0fe01
-600085d8
-c08872b1
-204072cf
-78547c00
-20207300
-680085d8
-d8c005c2
-203a72f6
-98002400
-18007211
-18c20a00
-e8c08000
-1fe98400
-1feb7e00
-1fe97e00
-9841fe00
-e0a08000
-c20072d5
-580005c2
-9a408c00
-18007210
-d8a00572
-e8c08000
-e0a08000
-28c1ffd3
-2420f2e5
-18c08def
-c20072e0
-18002200
-1a40a7ff
-1a6ba600
-1a6ba600
-204074b9
-58008400
-9a60a600
-d8a00572
-18007210
-ea688000
-e8a08000
-9840fe00
-e0a08000
-1a60a601
-c20072ef
-202074bd
-18007210
-18000400
-e8c08000
-98428400
-c20072f8
-18427e00
-e0c08000
-d8c005c2
-d8a00572
-20207ebf
-da400572
-18007210
-da200592
-1a220a00
-ea288000
-ea408000
-9842e000
-1f212603
-2434730a
-1a62a603
-1a662601
-2021730d
-9840e000
-1e027e00
-e0a08000
-1a20a201
-1a40a401
-c2007304
-20600000
-204074b9
-18007210
-da200592
-ea208000
-d8c08500
-1f212603
-1a667c01
-2021731c
-d8c08600
-98c08c00
-e8c08000
-e2208000
-1a20a201
-c2007316
-202074bd
-18007208
-d8c00592
-18c20a00
-e8c08000
-98002200
-e8c08000
-98002400
-1a23fe00
-9a40fe00
-e0a08000
-1a227e00
-9a40fe00
-e0a08000
-c2007325
-20600000
-588ae42c
-98000400
-18007207
-20407340
-580d751b
-98000400
-18007205
-20407340
-680085a1
-98002200
-68008595
-600085a1
-1a227e00
-60008595
-20600000
-1841240f
-18417e0f
-d8a00592
-98a08a00
-e8a08000
-98002600
-1a227e00
-e0a08000
-1a622200
-18518400
-c2007341
-58000592
-9a408a00
-1a227e00
-e0a08000
-20600000
-78347c00
-20207353
-78547c00
-18007210
-ea288000
-ea408000
-20347359
-9842fe00
-2020735a
-9840fe00
-e0a08000
-1a20a201
-1a40a401
-c2007354
-20600000
-d8a005b2
-ea230000
-e0a30000
-20347365
-ea230000
-20207366
-e8c30000
-e0a30000
-ea220000
-e0a20000
-20600000
-d8c041be
-d8a005a2
-d8400000
-588395a7
-2040738b
-58b3c1df
-2040738b
-5800e5e9
-2040738c
-18422800
-78547c00
-20407379
-1a820400
-78347c00
-20207379
-18007208
-e8c08000
-2f200201
-20347380
-2020f381
-9840fe00
-20207382
-2020f37e
-9842fe00
-e0a08000
-184c8400
-c200737a
-20600000
-68030596
-60030056
-e8c30000
-e0a30000
-20600000
-184d0400
-18500400
-98418400
-20600000
-2020738f
-4770403c
-2040742b
-d8a04419
-20207497
-d8a0443a
-2034f397
-d8a0042f
-18c22200
-20407ebf
-20407440
-d8c0442a
-202074b0
-da20042f
-2034f39f
-da20443a
-1a220a00
-2040630c
-20207440
-d8c044aa
-20407486
-d8c04419
-20407487
-18006c38
-18006c00
-2040741d
-d8a0047c
-20207497
-18007e49
-202073ae
-18007e01
-18007000
-184d5e00
-9de1de00
-1f00f001
-184cde00
-1df15e00
-68014411
-1ff07e00
-9de1de00
-1f00f001
-e8c20000
-98005e00
-1f00f001
-e8c10000
-1a30de00
-1df05e00
-9de1de00
-1f00f001
-20600000
-1a608c01
-e8c08000
-98002200
-204073ab
-2040741f
-18007000
-ea608000
-1fe17e03
-1ff05e00
-79205e08
-2040748f
-20407422
-1a227200
-1a608c02
-2040746e
-20407478
-20407422
-1f227e00
-203a73d5
-202073d0
-1800700c
-1de27e00
-60020417
-20600000
-1a20a201
-204073ad
-1a620c00
-20407482
-20407425
-2040749e
-1a60a610
-1a40a5f0
-202173d9
-20600000
-4770c03c
-da6043dc
-680ac403
-204073c1
-18007008
-98005e00
-18002200
-204073ad
-20407425
-da6043de
-6800c3dd
-1fe0a5ff
-9a608a00
-1800700c
-1de27e00
-e0a20000
-204073d9
-6800c3dd
-1fe0fe04
-6000c3dd
-680ac403
-18408401
-600ac403
-20600000
-4771403c
-680082da
-1fe67c14
-202173ff
-da6002db
-1fe0a5ff
-1fe0fffc
-600082da
-9a608c00
-e8c20000
-18007008
-98005e00
-18002200
-680ac408
-204073ad
-20407425
-1800700c
-1de27e00
-6002041b
-204073d9
-da6002d9
-204073c1
-680a041b
-98467e00
-247a0000
-6802440d
-98467e00
-207a0000
-600a440d
-6802c408
-1fe0fe01
-6002c408
-18007e00
-20600000
-243bf41d
-20600000
-18006c30
-18006c00
-2020741d
-18006c32
-18006c02
-2020741d
-18006c34
-18006c04
-2020741d
-18006c01
-18006c00
-20600000
-18007000
-6802042f
-98005e00
-1f00f001
-e8c20000
-98005e00
-1f00f001
-6802443a
-98005e00
-1f00f001
-e8c20000
-98005e00
-1f00f001
-20407492
-1f00f1fc
-680244c7
-1fe25e00
-1f00f004
-18006c38
-18006c08
-2020741d
-4771c03c
-680344a0
-680b044f
-2034f446
-6803044f
-680b44a0
-18007008
-18425e00
-1f00f001
-184f5e00
-1ff07e00
-9de1de00
-1f00f001
-1fef5e00
-1f00f001
-18005e00
-18007e00
-6800c48e
-6808c485
-2434f456
-6800c495
-6808c48e
-6000c44a
-6008c44b
-18007000
-da40444a
-18007204
-ea220000
-ea4a0000
-9842de00
-1f00f001
-1a20a204
-1a40a404
-c200745b
-20407492
-1f00f1fc
-680244c7
-1fe25e00
-1f00f004
-18006c38
-18006c0c
-2040741d
-20407491
-18006c3a
-18006c08
-2020741d
-2f200600
-20608000
-18c27e00
-9f208a00
-18007e00
-e0a08000
-1f20f201
-2f200600
-20608000
-20207473
-18007000
-1f227e00
-203a747d
-e8c20000
-1f20f3fc
-98005e00
-1f00f001
-2f001e04
-20608000
-20207479
-18007008
-20207487
-18007004
-20207487
-18007000
-18007204
-e8c20000
-98005e00
-1f00f001
-c2007488
-20600000
-d8c0047c
-20207484
-18007204
-20207494
-18007000
-18007204
-18005e00
-1f00f001
-c2007493
-20600000
-1800700c
-18007204
-1de27e00
-e0a20000
-1f00f001
-c2007499
-20600000
-1800700c
-1a620a00
-1a40f201
-1f267c0f
-202174a4
-18007210
-1de27e00
-1f267c03
-202174ac
-e0a20000
-1f20f3fc
-20628000
-1f00f001
-202074a4
-e0a08000
-1fecfe00
-c20074ac
-20600000
-1800700c
-18007204
-e8c20000
-9de67c00
-24628000
-1f00f001
-c20074b2
-18007c00
-20600000
-68108050
-793ffe00
-60108050
-20600000
-68108050
-79207e00
-60108050
-20600000
-d8a00886
-3803ffff
-3807ffff
-380bffff
-380ffbff
-e0a48000
-3803ffff
-3807ffff
-380bffff
-380fffff
-e0a48000
-3803ffff
-3807ffff
-380bcfff
-380fffff
-e0a48000
-3803ffff
-3807ffff
-380bffef
-380fffff
-e0a48000
-3803ffff
-3807ffff
-380bffff
-380fffff
-e0a48000
-3803ffff
-38066c7f
-3808146b
-380f7bb3
-e0a48000
-3801feb8
-38050c12
-380ab722
-380e9fa6
-e0a48000
-3800e70f
-38056720
-3808519e
-380d9084
-e0a48000
-38031012
-380760bf
-380bf0af
-380c03d3
-e0a48000
-3803a188
-38043ad0
-380bcbf2
-380e43d9
-e0a48000
-3802b030
-38076a03
-38091188
-380de520
-e0a48000
-3803a11e
-3804fe5d
-3808dd57
-380dac93
-e0a48000
-380011ed
-380618c4
-38088da7
-380e57ff
-e0a48000
-3803192b
-38074641
-3809be0c
-380f66ad
-e0a48000
-38001f83
-38055a23
-380bf9b0
-380c3949
-e0a48000
-38013a51
-380553fd
-380b372a
-380cf1bb
-e0a48000
-3803ae85
-3805eed9
-38089e66
-380c01a8
-e0a40000
-20600000
-d8a0091e
-3803ffff
-3807ffff
-380bffff
-380fffff
-e0a48000
-3803ffff
-3804003f
-38080000
-380c0000
-e0a48000
-38000000
-38040000
-38081000
-380c0000
-e0a48000
-3803ff00
-3807ffff
-380bffcf
-380fffff
-e0a48000
-3803ffff
-3807ffff
-380bffff
-380c03ff
-e0a48000
-38000000
-38040000
-38080000
-380c0000
-e0a48000
-38010000
-38040000
-380bf000
-380fffff
-e0a48000
-380296ff
-38062630
-380b945d
-380fd284
-e0a48000
-380333a0
-38044b7a
-380837d8
-380fc9dc
-e0a48000
-3803a440
-3805b958
-380b8bce
-380d091f
-e0a48000
-3802e12c
-3805f47c
-380b56b1
-380efd47
-e0a48000
-38006837
-3806ed90
-3809ecec
-380dacc5
-e0a48000
-38023357
-38058af3
-3808f9e1
-380d29f0
-e0a48000
-3802e7eb
-3807e6e3
-380be1a7
-380d0b8b
-e0a48000
-38024fe3
-380420ef
-3809b5a6
-380cdc2f
-e0a48000
-38013860
-3806bd69
-3808391a
-380db222
-e0a48000
-20600000
-6800c65a
-243a757d
-20207a77
-4772403c
-6800c65a
-207a0000
-6800c5b1
-c1808000
-6800c4be
-207a0000
-6800c4c3
-c1018000
-68014682
-c280757b
-6800c4c0
-c0007a77
-20600000
-7044c000
-20600000
-4772c03c
-6800c65a
-203a612b
-20406124
-20407583
-2020766d
-58000000
-600409ae
-600209b6
-6003c65e
-20600000
-7009b001
-2020758d
-6800c5b1
-c000f68a
-20202a8c
-6800c5b1
-c000f590
-2020766d
-2040768a
-680089af
-247a0000
-7009ae03
-20600000
-204075b0
-da2009de
-d8a00866
-20407c79
-da2009be
-d8a00826
-20407c79
-da200826
-da4009be
-d8a00826
-20407be1
-da20093e
-da4009be
-d8a00846
-20407be1
-da200846
-da400826
-d8a00826
-20407c7d
-da200806
-da400826
-d8a00806
-20407c7d
-df200020
-da200866
-da400806
-20207f88
-da20097e
-d8a00806
-20407c79
-da20095e
-d8a00826
-20407c79
-da200826
-da40095e
-d8a00826
-20407be1
-da20093e
-da40095e
-d8a00846
-20407be1
-da200846
-da400826
-d8a00826
-20407c7d
-da200806
-da400826
-d8a00806
-20207c96
-204075e1
-da2009e6
-d8a00866
-204077a8
-da2009c6
-d8a00826
-204077a8
-da200826
-da4009c6
-d8a00826
-20407786
-da20089e
-da4009c6
-d8a00846
-20407786
-da200846
-da400826
-d8a00826
-20407755
-da200806
-da400826
-d8a00806
-20407755
-df200018
-da200866
-da400806
-20207f88
-da2008e6
-d8a00806
-204077a8
-da2008ce
-d8a00826
-204077a8
-da200826
-da4008ce
-d8a00826
-20407786
-da20089e
-da4008ce
-d8a00846
-20407786
-da200846
-da400826
-d8a00826
-20407755
-da200806
-da400826
-d8a00806
-20207758
-680089b2
-c0807615
-20407612
-d8a00a7e
-58000a2e
-e0a10000
-58004642
-e0a10000
-580009de
-e0a10000
-20207609
-d8a00a7e
-58000a3e
-e0a10000
-580009de
-e0a10000
-58004642
-e0a10000
-204079a0
-680089af
-c002760f
-7009b001
-7009ae05
-20600000
-7009af14
-2040758a
-202076d8
-d8a00a1e
-18000e08
-202076a2
-7009b001
-20600000
-4773403c
-d8a00727
-680340a0
-e0a30000
-68030040
-e0a30000
-6801c65e
-e0a18000
-20407a0d
-da200a4e
-da400a5e
-18000e04
-204076a7
-2420f631
-20407628
-70007d41
-202062f8
-680089af
-c004f62e
-7009ae0a
-7009b001
-70007c03
-20600000
-70007c03
-7009af15
-202076d8
-680089af
-c004f637
-7009ae00
-70007c04
-70007e05
-20600000
-70007c04
-7009af00
-20600000
-680089b3
-c000f63e
-7009af0a
-202076d8
-d8a00727
-68030040
-e0a30000
-680340a0
-e0a30000
-6801c65b
-e0a18000
-20407a24
-680089af
-c005764b
-7009ae0b
-7009b001
-20600000
-7009af0b
-7009b101
-20600000
-d8a00a7e
-68030040
-e0a30000
-680340a0
-e0a30000
-58000a2e
-e0a10000
-58000a3e
-e0a10000
-20207662
-7009ae0f
-d8a00a7e
-680340a0
-e0a30000
-68030040
-e0a30000
-58000a3e
-e0a10000
-58000a2e
-e0a10000
-d8a00727
-68030a7e
-e0a30000
-68030a84
-e0a30000
-204079d7
-7041bd01
-d8a041be
-d8c00a4e
-20407ebf
-202021c4
-4773c03c
-6800c5b1
-c1800000
-680089b2
-c1800000
-d8a04612
-18000e0b
-204076a2
-180a7e00
-1fe37e00
-e0a10000
-d8a006be
-d8c04612
-20407ebe
-d8a005e6
-d8c008ce
-20407ebc
-d8a00616
-20407ec5
-70061601
-20407a5d
-7009b201
-20600000
-d8a0462a
-d8c0062e
-20407ebc
-7045b101
-7009b200
-20600000
-4774403d
-680089b9
-c1800000
-680089b2
-c1800000
-d8a006be
-d8c04612
-20407ebe
-d8a005e6
-d8c009c6
-20407ebc
-d8a00616
-20407ec5
-70061601
-20407a5d
-7009b202
-20600000
-7009b301
-d8a00a06
-d8c0062e
-20407ebe
-7009b901
-7009b200
-20600000
-18e08fff
-24610000
-180a7e00
-e0a10000
-202076a2
-18e08fff
-242176b3
-ea220000
-1fe20400
-ea420000
-9842fe00
-2422f6b1
-1a20a204
-1a40a404
-202076a7
-7840fc00
-20600000
-7820fc00
-20600000
-4774c03d
-680089b0
-207a0000
-204062bc
-247a0000
-7009b000
-680089ae
-c001e1fd
-c002e21a
-c003e225
-c005e23a
-c0017588
-c00275f7
-c004f617
-c005763a
-c0067658
-20600000
-4775403d
-680089b1
-207a0000
-204062bc
-247a0000
-7009b100
-680089af
-c00961e0
-c009e1e5
-c001e1e9
-c0027602
-c00a61ed
-c003e1fb
-c005763a
-c005e239
-c004f617
-c00ae233
-20600000
-7009b101
-20600000
-7009b100
-20600000
-4775c03d
-6800c65a
-207a0000
-680089b2
-207a0000
-1fe0fe80
-600089b2
-c3838000
-680085e3
-203a76e7
-20207a68
-204078d3
-680089b2
-c000f684
-c001769b
-20600000
-1fe10e07
-1fe97e00
-98c08c00
-e8c08000
-afec0000
-20600000
-20407ebe
-20407ebe
-20207ebe
-e8c40000
-247a0000
-e8c40000
-247a0000
-e8c40000
-20600000
-ea220000
-98000400
-ea420000
-98467c00
-24628000
-1a20a204
-1a40a404
-c20076fb
-20600000
-18007206
-1a20a214
-1a40a414
-ea420000
-98000400
-ea220000
-98467e00
-24610000
-247a0000
-1a20a3fc
-1a40a5fc
-c2007707
-20600000
-18007206
-18002600
-ea220000
-98000400
-ea420000
-9840fe00
-9a60fe00
-e0a20000
-2feffe20
-7920a600
-1a20a204
-1a40a404
-c2007713
-20600000
-18007206
-18002600
-ea420000
-98000400
-ea220000
-98467e00
-9a667e00
-e0a20000
-2feffe20
-7920a600
-1a20a204
-1a40a404
-c2007721
-20600000
-18007206
-1a20a214
-18002600
-ea220000
-2feffe00
-7920a601
-1fe37e00
-2a6ffe00
-7920fe1f
-e2220000
-1a20a3fc
-1a632600
-c2007730
-20600000
-18007206
-18002600
-ea220000
-2feffe1f
-7920a601
-1fe3fe00
-2a6ffe00
-7920fe00
-e2220000
-1a20a204
-1a632600
-c200773d
-20600000
-2040773b
-2a6ffe00
-2020f751
-da400886
-1a222600
-1a20a3e8
-20407704
-24610000
-1a622200
-1a20a3e8
-da400886
-1a220a00
-2020771f
-20407711
-18a22200
-20207749
-2040771f
-2a6c0000
-20608000
-da400886
-18a0a3e8
-1a220a00
-20207711
-18a21600
-1a226000
-da400716
-1a420a00
-1a208c18
-e8c40000
-e0a40000
-e0a40000
-18007e00
-e0a40000
-19620a00
-20407755
-da400716
-1a420a00
-18007e00
-e0a40000
-1e008c20
-e8c40000
-e0a40000
-e0a40000
-19622200
-1a220a00
-20407755
-da400716
-1a420a00
-1e008c28
-e8c40000
-e0a40000
-e0a40000
-e0a40000
-19622200
-1a220a00
-20207755
-18007206
-e8c20000
-98005e00
-1f00f001
-c2007781
-20600000
-18a21600
-d8a006e6
-20407ec5
-d8a006e6
-1a220c00
-18007000
-20407780
-1a420c00
-20407780
-18002400
-18000400
-18002606
-e8a20000
-98002200
-1a427000
-1de27e00
-1a627000
-9deffe00
-9a20fe00
-9840fe00
-e0a20000
-1fef0400
-1a60a601
-2a61fe0c
-2420f792
-18427e00
-e0a20000
-18a08be8
-1a40a401
-2a41fe06
-2420f790
-da2006e6
-19620a00
-2020775f
-1a222400
-20207786
-1a226000
-1e022200
-ea208000
-2feffe00
-20608000
-2040772d
-ea408000
-2fec0000
-2020f7ba
-da200886
-1a420a00
-20407711
-ea408000
-9a60fe00
-e2408000
-1a40a5e8
-1a40a218
-18007207
-2040772f
-202077ab
-18a21600
-d8a00746
-20407ec5
-18007e00
-600206fe
-6002075e
-70074601
-d8a006e6
-20407ec5
-d8c00886
-d8a00716
-20407ebe
-1a220c00
-d8a0072e
-20407ebe
-d8c0072e
-204076f5
-203a77f6
-da20072e
-da400746
-204077aa
-da200716
-da4006e6
-204077aa
-da20072e
-da400716
-20407704
-202177e8
-da200716
-da40072e
-1a220a00
-2040771f
-da200746
-da4006e6
-1a420a00
-20407711
-ea208000
-9a60a600
-ea408000
-9a60fe00
-e2408000
-202077cd
-da20072e
-da400716
-1a220a00
-2040771f
-da2006e6
-da400746
-1a420a00
-20407711
-ea208000
-9a60a600
-ea408000
-9a60fe00
-e2408000
-202077cd
-d8a00746
-20407ec5
-680086fe
-60008746
-6000874e
-da200746
-da4006e6
-1a420a00
-20407755
-da200886
-da4006e6
-19620a00
-20207758
-da2006a6
-d8a0075e
-204077a8
-da20075e
-d8a00776
-204077a8
-da20089e
-da400776
-d8a00776
-20407786
-da200676
-d8a0075e
-204077a8
-d8c0075e
-d8a0072e
-20407ebe
-da20072e
-20407748
-da20075e
-da40072e
-d8a0075e
-20407755
-da20075e
-da400776
-d8a0075e
-20407755
-d8c00676
-d8a0072e
-20407ebe
-da20068e
-d8a00776
-204077a8
-da20072e
-20407748
-da20072e
-20407748
-da20072e
-da400776
-d8a0072e
-20407786
-da200776
-d8a00746
-204077a8
-da200746
-20407748
-da200746
-20407748
-da200746
-20407748
-d8c0068e
-d8a00776
-20407ebe
-da200776
-20407748
-da200776
-da4006a6
-d8a006a6
-20407786
-da20075e
-d8a00776
-204077a8
-da200776
-da40072e
-d8a00776
-20407758
-da200776
-da40072e
-d8a00676
-20407758
-da20072e
-da400676
-d8a00776
-20407758
-da200776
-da40075e
-d8a00776
-20407786
-da200776
-da400746
-d8a0068e
-20207758
-da200616
-d8a0078e
-204077a8
-da200676
-da40078e
-d8a00746
-20407786
-da200616
-da40078e
-d8a0078e
-20407786
-da20068e
-da40078e
-d8a0072e
-20407786
-da2006a6
-d8a0078e
-204077a8
-da2005e6
-da40078e
-d8a0075e
-20407786
-da2006a6
-da40078e
-d8a0078e
-20407786
-da2005fe
-da40078e
-d8a00776
-20407786
-da200746
-da40075e
-d8a0078e
-20407758
-da200746
-da40075e
-d8a00746
-20407755
-da20072e
-da400776
-d8a0075e
-20407758
-da20072e
-da400776
-d8a0072e
-20407755
-da20072e
-da40078e
-d8a0072e
-20407786
-da2006a6
-da400616
-d8a00776
-20407786
-da200776
-da40078e
-d8a006a6
-20407786
-da20078e
-d8a0078e
-204077a8
-da20078e
-da400746
-d8a00776
-20407786
-da20078e
-da40072e
-d8a0072e
-20407786
-da20075e
-d8a00676
-204077a8
-da200676
-da400776
-d8a00676
-20407758
-d8c00676
-d8a0078e
-20407ebe
-da20078e
-20407748
-da200776
-da40078e
-d8a00776
-20407758
-da200776
-da40075e
-d8a0075e
-20407786
-da20075e
-da40072e
-d8a0068e
-20407758
-da20068e
-da400886
-d8a0068e
-18002600
-6800868e
-2feffe00
-2040f711
-1a626000
-da20068e
-2040772d
-680086a5
-2e0ffe00
-7920fe07
-600086a5
-20600000
-680085e3
-1fe0ffff
-24610000
-600085e3
-680085e2
-205a7803
-680085e3
-d8c006be
-204076ec
-2020f8c0
-680085e2
-243a78ce
-20407854
-202078c0
-7005e200
-d8c005e6
-d8a00676
-204076f2
-202078c0
-da2006a6
-d8a00776
-204077be
-da200776
-d8a0072e
-204077a8
-da200676
-da40072e
-d8a0062e
-20407786
-da200776
-da40072e
-d8a0075e
-20407786
-da20068e
-da40075e
-d8a00646
-20207786
-e8c20000
-18002204
-18a08a03
-e0a08000
-1fecfe00
-18a08bfe
-1a20a3ff
-2422f8e8
-18a08a05
-c20078e5
-20600000
-18ebfe00
-99608c00
-e8c20000
-20600000
-18006010
-d96005e6
-1e008ff9
-204078f0
-98000400
-1e008ff0
-204078f0
-98408400
-1e008ffe
-204078f0
-1fee7e01
-98408400
-1e008ff1
-204078f0
-1fee7e00
-98408400
-1e0bfe00
-99608a00
-e0aa0000
-1e00e001
-2e01fe40
-2420f8f6
-20600000
-d8c008fe
-18007007
-e8c20000
-98005e00
-1f00f1ff
-2021790d
-20600000
-4776403d
-204078f4
-d8a006e6
-18007000
-1de27e00
-e0a20000
-1f00f001
-2f01fe08
-2420f916
-204074b9
-d9608700
-de0005e6
-18007240
-ee0a0000
-e9620000
-19609604
-1e00e004
-9840fe00
-18007007
-9de08400
-18007004
-1dee7e03
-98408400
-18007005
-1de27e00
-18007006
-9de2fe00
-18007004
-9de17e00
-18007006
-9de2fe00
-98408400
-18007007
-18425e00
-18007003
-1de27e00
-9840de00
-18007000
-1de27e00
-18007001
-9de10400
-9de1fe00
-18007002
-9de17e00
-98418400
-18007000
-1dee7e02
-9840fe00
-18007007
-9de0de00
-980efc00
-c200791f
-d8c006e6
-18007000
-e8c20000
-9de0de00
-1f00f001
-2f01fe08
-2420f948
-202074bd
-d8a00a3e
-18007007
-1de27e00
-e0a20000
-1f00f1ff
-20217950
-20600000
-d8a005e6
-18c08dfc
-1f262210
-e8c20000
-9842fe00
-e0a20000
-18c08df8
-c2007958
-1a227200
-18427e00
-e0a20000
-c200795f
-20600000
-20407967
-2040794e
-2020798d
-20407967
-2020798d
-d8c009de
-d8a005e6
-18007206
-20407a71
-d8c04642
-18007206
-20407a71
-d8c00a3e
-20407a70
-2040790b
-20407912
-d8c00a2e
-d8a005e6
-20207984
-d8c04642
-d8a005e6
-18007206
-20407a71
-d8c009de
-18007206
-20407a71
-d8c00a2e
-20407a70
-2040790b
-20407912
-d8c00a3e
-d8a005e6
-20407984
-2020798d
-20407a70
-58800000
-1fed7e00
-e0a20000
-18007205
-20407ec6
-58000280
-e0a20000
-20207912
-68020a3e
-da2003e8
-9a26fc00
-20407f86
-18077e00
-600209ba
-1807fe00
-da2003e8
-9a26fc00
-20407f86
-18077e00
-da2003e8
-9a2ffe00
-680a09ba
-9840fe00
-600209ba
-20600000
-70466400
-202079a2
-6800c662
-c081799e
-4776c03d
-58363636
-1fed0400
-18418436
-68010a7e
-1fe20c00
-18007204
-20407955
-2040790b
-20407912
-68010a80
-1fe20c00
-d8a005e6
-18007206
-20407a71
-68010a82
-1fe20c00
-18007206
-20407a71
-58800000
-e0a18000
-6800c664
-e0a08000
-18007e00
-e0a40000
-58000388
-e0a20000
-20407912
-2040794e
-d8c00a3e
-d8a00706
-20407ebd
-585c5c5c
-1fed0400
-1841845c
-68010a7e
-1fe20c00
-18007204
-20407955
-2040790b
-20407912
-d8c00726
-d8a005e6
-18007208
-20407a71
-58800000
-1fed7e00
-e0a20000
-20407ec5
-58000300
-e0a20000
-20407912
-2020794e
-58363636
-1fed0400
-18418436
-d8c00a1e
-18007206
-20407955
-2040790b
-20407912
-68010a8a
-1fe20c00
-d8a005e6
-20407a70
-68010a8c
-1fe20c00
-20407a70
-5862746c
-1fed7e00
-1fe1fe6b
-e0a20000
-d8c00733
-18007203
-20407a71
-58800000
-1fed7e00
-e0a20000
-18007e00
-e0a40000
-58000380
-e0a20000
-20407912
-2040794e
-d8c00a3e
-d8a00706
-20407ebd
-585c5c5c
-1fed0400
-1841845c
-d8c00a1e
-18007206
-20407955
-2040790b
-20407912
-d8c00726
-d8a005e6
-18007208
-20407a71
-58800000
-1fed7e00
-e0a20000
-20407ec5
-58000300
-e0a20000
-20407912
-2020794e
-6800c662
-c0817a1e
-4777403d
-58363636
-1fed0400
-18418436
-d8c00a1e
-18007206
-20407955
-2040790b
-20407912
-d8c00a3e
-d8a005e6
-20407a70
-d8c00a2e
-20407a70
-20207a33
-58000000
-6002468a
-20207a0f
-58000000
-6002468a
-20207a26
-6800c662
-c0817a21
-58363636
-1fed0400
-18418436
-d8c00a1e
-18007206
-20407955
-2040790b
-20407912
-d8c00a2e
-d8a005e6
-20407a70
-d8c00a3e
-20407a70
-58000000
-e0a40000
-e0a20000
-6802468a
-e0a20000
-18a20400
-70072680
-18420a00
-d8c00736
-20407a70
-20407912
-d8a005e6
-18007207
-20407ec6
-e0a20000
-580003f8
-e0a20000
-20407912
-2040794e
-d8c00a3e
-d8a00706
-20407ebd
-585c5c5c
-1fed0400
-1841845c
-d8c00a1e
-18007206
-20407955
-2040790b
-20407912
-d8c00726
-d8a005e6
-18007208
-20407a71
-58800000
-1fed7e00
-e0a20000
-20407ec5
-58000300
-e0a20000
-20407912
-2020794e
-7005e3c0
-680085e3
-207a0000
-1fe0ffff
-600085e3
-d8c006be
-204076ec
-2020fa5e
-d8c005e6
-d8a00676
-202076f2
-20407803
-680085e3
-1fe0ffff
-600085e3
-d8c006be
-204076ec
-20608000
-20207854
-18007204
-18c08dfc
-e8c20000
-e0a20000
-18c08df8
-c2007a72
-20600000
-4777c03d
-6800c4be
-203a5af0
-20405aec
-20407583
-20207a7d
-6800c4c3
-c1800000
-6800c4c0
-c1800000
-d8a045b2
-18000e0f
-204076a2
-180a7e00
-1fe37e00
-e0a10000
-d8a00766
-d8c045b2
-20407ebd
-d8a00646
-d8c0095e
-20407eb3
-d8a00686
-20407ed0
-70068601
-20407ac7
-7044c003
-20600000
-d8a045d2
-d8c006a6
-20407eb3
-7044c303
-7044c000
-20600000
-680089b9
-c1800000
-6800c4c0
-c1800000
-d8a00766
-d8c045b2
-20407ebd
-d8a00646
-d8c009be
-20407eb3
-d8a00686
-20407ed0
-70068601
-20407ac7
-7044c004
-20600000
-d8a009fe
-d8c006a6
-20407ebd
-7009b903
-7044c000
-20600000
-6800c4be
-207a0000
-6800c4c0
-207a0000
-1fe0fe80
-6000c4c0
-c3838000
-680105e3
-203a7ab9
-20207abf
-4778403e
-20407ad4
-6800c4c0
-c001fa93
-c0027aa9
-20600000
-20407ae6
-680105e3
-1fe0ffff
-600105e3
-d8c00766
-204076ec
-20608000
-20207b37
-4778c03e
-58000100
-600105e3
-680105e3
-207a0000
-1fe0ffff
-600105e3
-d8c00766
-204076ec
-2020faca
-d8c00646
-d8a00706
-20207eb2
-da200746
-d8a00846
-20407ba3
-da200846
-d8a007e6
-20407c79
-da200706
-da4007e6
-d8a006a6
-20407be1
-da200846
-da4007e6
-d8a00826
-20407be1
-da200726
-da400826
-d8a006c6
-20207be1
-da200746
-d8a00826
-20407c79
-da200826
-d8a00846
-20407c79
-da20093e
-da400846
-d8a00846
-20407be1
-da200706
-d8a00826
-20407c79
-d8c00826
-d8a007e6
-20407ebd
-da2007e6
-20407c80
-da200826
-da4007e6
-d8a00826
-20407c7d
-da200826
-da400846
-d8a00826
-20407c7d
-d8c00706
-d8a007e6
-20407ebd
-da200726
-d8a00846
-20407c79
-da2007e6
-20407c80
-da2007e6
-20407c80
-da2007e6
-da400846
-d8a007e6
-20407be1
-da200846
-d8a00806
-20407c79
-da200806
-20407c80
-da200806
-20407c80
-da200806
-20407c80
-d8c00726
-d8a00846
-20407ebd
-da200846
-20407c80
-da200846
-da400746
-d8a00746
-20407be1
-da200826
-d8a00846
-20407c79
-da200846
-da4007e6
-d8a00846
-20407c96
-da200846
-da4007e6
-d8a00706
-20407c96
-da2007e6
-da400706
-d8a00846
-20407c96
-da200846
-da400826
-d8a00846
-20407be1
-da200846
-da400806
-d8a00726
-20207c96
-da200686
-d8a00866
-20407c79
-da200706
-da400866
-d8a00806
-20407be1
-da200686
-da400866
-d8a00866
-20407be1
-da200726
-da400866
-d8a007e6
-20407be1
-da200746
-d8a00866
-20407c79
-da200646
-da400866
-d8a00826
-20407be1
-da200746
-da400866
-d8a00866
-20407be1
-da200666
-da400866
-d8a00846
-20407be1
-da400806
-da200826
-d8a00866
-20407c96
-da200806
-da400826
-d8a00806
-20407c7d
-da4007e6
-da200846
-d8a00826
-20407c96
-da2007e6
-da400846
-d8a007e6
-20407c7d
-da2007e6
-da400866
-d8a007e6
-20407be1
-da200746
-da400686
-d8a00846
-20407be1
-da200846
-da400866
-d8a00746
-20407be1
-da200866
-d8a00866
-20407c79
-da200866
-da400806
-d8a00846
-20407be1
-da200866
-da4007e6
-d8a007e6
-20407be1
-da200826
-d8a00706
-20407c79
-da200706
-da400846
-d8a00706
-20407c96
-d8c00706
-d8a00866
-20407ebd
-da200866
-20407c80
-da200846
-da400866
-d8a00846
-20407c96
-da200846
-da400826
-d8a00826
-20407be1
-da200826
-da4007e6
-d8a00726
-20407c96
-da200726
-da40091e
-d8a00726
-18002600
-68008726
-2feffe00
-2040fc7b
-1a626000
-da200726
-20407cab
-68008745
-2e0ffe00
-7920fe07
-60008745
-20600000
-18a21600
-d8a00806
-20407ed0
-18007e00
-60020826
-70080601
-d8a00786
-20407ed2
-d8c0091e
-d8a007c6
-20407ebd
-1a220c00
-d8a007e6
-20407ebd
-d8c007e6
-20407cb5
-203a7bda
-da2007e6
-da400806
-20407cb8
-da2007c6
-da400786
-20407cb8
-da2007e6
-da4007c6
-20407cb1
-20217bcc
-da2007c6
-da4007e6
-1a220a00
-20407ca9
-da200806
-da400786
-1a420a00
-20407c7b
-ea208000
-9a60a600
-ea408000
-9a60fe00
-e2408000
-20207bb1
-da2007e6
-da4007c6
-1a220a00
-20407ca9
-da200786
-da400806
-1a420a00
-20407c7b
-ea208000
-9a60a600
-ea408000
-9a60fe00
-e2408000
-20207bb1
-da200786
-19620a00
-20407c0a
-da20091e
-19622400
-19620a00
-20207c96
-18a21600
-18007000
-d8a00786
-20407ed2
-d8a00ad2
-20407ed2
-1a220c00
-700ad200
-58000000
-20407c73
-1a420c00
-20407c77
-18000e00
-d8a00786
-d8400ad2
-18e22400
-1a4bfe00
-9840a400
-18000400
-18002600
-e8a20000
-98002200
-ea420000
-1a627000
-9deffe00
-9a20fe00
-9840fe00
-e0a20000
-1fef0400
-1a60a601
-2a61fe08
-2420fbf5
-18427e00
-e0a20000
-18a08be0
-18e08e01
-28e1fe08
-2420fbef
-da200786
-19620a00
-20207c0a
-4779403e
-18a21600
-1a226000
-da4007c6
-1a420a00
-20407ecd
-e0a40000
-1a208c2c
-20407eb9
-20407eb5
-1a422200
-20407c80
-da4007c6
-1e022200
-19620a00
-20407c7d
-da4007c6
-1a420a00
-20407ecd
-e0a40000
-1e008c30
-20407ebf
-20407ecd
-1a422200
-20407c80
-da4007c6
-19622200
-1a220a00
-20407c7d
-da4007c6
-1a420a00
-1e008c20
-20407eb5
-20407ecd
-e0a40000
-1e008c38
-20407eb9
-19622200
-1a220a00
-20407c7d
-da4007c6
-1a420a00
-1e008c24
-20407eb5
-1e008c34
-20407eb5
-1e008c34
-20407eb6
-1e008c20
-20407eb6
-19622200
-1a220a00
-20407c7d
-da4007c6
-1a420a00
-1e008c2c
-20407eb5
-20407ecd
-e0a40000
-1e008c20
-20407eb6
-1e008c28
-20407eb6
-19622200
-1a220a00
-20407c96
-da4007c6
-1a420a00
-1e008c30
-20407eb9
-20407eb9
-18007e00
-e0a40000
-1e008c24
-20407eb6
-1e008c2c
-20407eb6
-19622200
-1a220a00
-20407c96
-da4007c6
-1a420a00
-1e008c34
-20407eb5
-1e008c20
-20407eb5
-20407ecd
-1e008c30
-20407eb6
-19622200
-1a220a00
-20407c96
-da4007c6
-1a420a00
-1e008c38
-20407eb9
-20407ecd
-1e008c24
-20407eb5
-20407ecd
-1e008c34
-20407eb6
-19622200
-1a220a00
-20207c96
-18007220
-d8a00ad2
-98a08a00
-20207f01
-18007208
-20207781
-1a222400
-20207be1
-18007208
-20207712
-20407c7b
-18a22200
-20207c81
-20407cae
-2a6ffe00
-2020fc8a
-da40091e
-1a222600
-1a20a3e0
-20407cb1
-24610000
-1a622200
-20207c92
-20407c92
-1a222600
-1a20a3e0
-da40091e
-20407cb1
-24610000
-1a622200
-20207c92
-1a20a3e0
-da40091e
-1a220a00
-20207ca9
-20407ca9
-2020fca0
-18a0a3e0
-da40091e
-20407cb1
-24610000
-da40091e
-18a0a3e0
-1a220a00
-20207ca9
-18a0a3e0
-da40091e
-1a220a00
-20407c7b
-20608000
-18a0a3e0
-da40091e
-1a220a00
-20207c7b
-18007208
-20207720
-18007208
-1a20a21c
-2020772f
-18007208
-18002600
-2020773d
-18007208
-1a20a21c
-1a40a41c
-20207707
-e8c40000
-247a0000
-202076f5
-1a226000
-1e022200
-ea208000
-2feffe00
-20608000
-20407cab
-ea408000
-2fec0000
-2020fcc8
-da20091e
-1a420a00
-20407c7b
-ea408000
-9a60fe00
-e2408000
-1a40a5e0
-1a40a220
-18007209
-2040772f
-20207cb9
-20402c65
-20758000
-20407cd3
-20407d75
-20207d08
-20407d29
-20207d64
-6800c686
-c17f8000
-98000400
-2040680e
-6808c686
-20406825
-20000064
-6808c686
-204067fb
-20207cdd
-4779c03e
-6800c686
-c17f8000
-1fe20400
-2040681d
-2420fcef
-20407cf9
-68014682
-79207e0c
-60014682
-6800c679
-c1000000
-70467900
-6800c685
-6000c678
-20407d00
-700a992c
-20207d86
-68014682
-793ffe0c
-60014682
-6800c679
-c1008000
-70467901
-70467800
-20407d02
-700a992d
-20207d86
-6800c678
-207a0000
-1fe0ffff
-6000c678
-247a0000
-700a9910
-20207d86
-d8e00007
-20202c32
-d8e00007
-20202c36
-6801421b
-1a2fa40b
-9a40a400
-20600000
-6800c21a
-207a0000
-1fe27200
-6801421b
-1fe22400
-1a40a602
-ea688000
-2040680e
-20407d32
-1a40a40b
-c2007d0d
-20600000
-20407d04
-58000002
-e2408000
-20407d5e
-20207d35
-20407d04
-58000003
-e2408000
-20407d5e
-20207d32
-20407d04
-58000001
-e2408000
-580000ff
-e0a08000
-20207d32
-20407d04
-df20000b
-1a620c00
-1a420a00
-20207ef4
-6800c21a
-207a0000
-da200000
-20407d38
-1a20a201
-6800c21a
-9a267c00
-20628000
-20207d2c
-1a40a602
-ea688000
-20206825
-1a40a602
-ea688000
-20206829
-1a208e0b
-20407f16
-247a0000
-20407d04
-ea408000
-c0017d35
-c001fd32
-c0007d32
-c002fd4c
-20407d35
-1a40a607
-20407e7c
-ea610000
-20407f9c
-20407e8c
-58000005
-e2408000
-1a40a603
-ea610000
-20207d5c
-20407d32
-1a40a609
-20407e7c
-ea610000
-20407f9c
-20407e8c
-1a40a601
-ea608000
-c07ffd58
-1fe0ffff
-e2608000
-203a7d19
-58000004
-e2408000
-1a40a605
-ea610000
-1a208e0b
-20207f08
-58000000
-20207d5c
-58001000
-1ff07e00
-9a40a400
-20600000
-477a403e
-da200000
-680a467a
-1c422400
-1a427e00
-98467c00
-24417d60
-1a427e00
-184084a0
-184084a0
-98467c00
-24217d78
-1a20a201
-1a217e0f
-243a7d6b
-da200000
-20407d7f
-1c427e00
-6002467a
-20600000
-477ac03e
-1a227e00
-207a0000
-18408560
-18408560
-793f841c
-600a467a
-2020335f
-70466601
-6800c667
-243a7d81
-20600000
-70466600
-20600000
-477b403e
-20407d80
-1a227e00
-60020a91
-da204668
-20407fb8
-68020a91
-1fe22200
-20207d84
-477bc03e
-20407d80
-1a227e00
-60020a91
-da204670
-20407fb8
-68020a91
-1fe22200
-20207d84
-58000000
-60044670
-60044668
-20600000
-477c403f
-6800c1ce
-247a0000
-da204670
-20407fd0
-207a0000
-700a9000
-20407da7
-68008a90
-203a7d9c
-20600000
-20407d80
-da204670
-20407fc4
-1fe20400
-20407d84
-477cc03f
-18427e00
-207a0000
-c000fddd
-c0017de2
-c001fde8
-c003fded
-c0047dee
-c004fdef
-c005fdf2
-c0067df3
-c006fdf4
-c0077dfa
-c007fdff
-c0087e05
-c009fe0f
-c00a7e11
-c00afe13
-c00b7e15
-c00bfe18
-c00c7e1a
-c00cfe1d
-c00dfe25
-c00f7e2f
-60008a99
-477d403f
-204062bc
-243a7ddb
-68008a99
-c584fdd6
-c0027dea
-c002cd17
-c0034d26
-c0057df0
-c008fe0a
-c0097e0e
-c00efe26
-c00fe7cc
-c01067d0
-c010fe31
-c012e70b
-20600000
-60008a99
-20402252
-2022fddb
-2040225a
-24628000
-700a9001
-20207d8f
-68014682
-79207e06
-60014682
-70409303
-20600000
-70468000
-70409300
-68014682
-793ffe06
-60014682
-20600000
-7041ce05
-20600000
-70007c07
-7004ca13
-20600000
-20600000
-20600000
-20600000
-7004d402
-20204d0a
-20600000
-20600000
-70436e01
-70448400
-68014682
-79207e0b
-60014682
-20600000
-68014682
-793ffe0b
-60014682
-70436e00
-20600000
-70436e01
-70448401
-68014682
-79207e0b
-60014682
-20600000
-68014682
-793ffe0b
-60014682
-70436e00
-20600000
-58000014
-6001046d
-600144ba
-20205c92
-20205abf
-da200000
-20207d19
-da200000
-20207d14
-da200000
-20207d1e
-70436901
-7041ce1b
-20600000
-70436901
-20600000
-70436900
-7041ce00
-20600000
-680141eb
-20407f9c
-6800c686
-c07ffe23
-1fe20400
-204067fb
-20407d98
-20202b1f
-20205b02
-70007c34
-79200003
-24748000
-70455b00
-70007c13
-6800816d
-793ffe02
-6000816d
-20600000
-18000e03
-20207f07
-204062f8
-70007d41
-20205f9d
-6800c682
-c4060000
-c4038000
-20207e2f
-68014218
-1fe08a02
-58000000
-e0a18000
-20600000
-20407fe9
-20407e69
-207a0000
-68014218
-1fe0a402
-ea488000
-18408401
-e2488000
-efe88000
-18427200
-1fe0a404
-ea408000
-984ffe00
-98c08a00
-1a220c00
-20407f01
-20407e6d
-1fe0ffff
-ea488000
-18408401
-98410400
-e2488000
-20207fe7
-20407fe9
-20407e65
-207a0000
-68014218
-1fe0a402
-ea488000
-184085ff
-e2488000
-efe88000
-18427200
-1fe0a403
-ea408000
-984ffe00
-98c08c00
-18c08c01
-1a220a00
-20207e4c
-68014218
-1fe08c02
-e8c08000
-20600000
-20407e6d
-e8c88000
-98467e00
-20600000
-68014218
-1fe08c01
-e8c08000
-20600000
-1f267c00
-20628000
-1fe37e00
-c2007e73
-20600000
-18007e01
-1f267c00
-20628000
-1fe3fe00
-c2007e79
-20600000
-18a27e00
-60010abb
-600c0aa2
-19627e00
-60020aaa
-20407e85
-18c27e00
-60010ab9
-20600000
-1a227e00
-60020aae
-1a427e00
-60020ab2
-1a627e00
-60018ab6
-20600000
-680c0aa2
-68020aaa
-98001600
-20407e95
-68010abb
-98000a00
-68010ab9
-98000c00
-20600000
-68020aae
-98002200
-68020ab2
-98002400
-68018ab6
-98002600
-20600000
-68010abb
-1fe20a00
-20600000
-68010ab9
-1fe20c00
-20600000
-18a27e00
-60010abb
-20600000
-18c27e00
-60010ab9
-20600000
-18a27e00
-60010a97
-18c27e00
-60010a95
-20600000
-68010a97
-1fe20a00
-68010a95
-1fe20c00
-20600000
-20407ebd
-20407ebd
-20207ebd
-20407eb9
-e8c20000
-e0a20000
-20600000
-e8c40000
-e0a40000
-20600000
-20407ebf
-20407eb9
-20407eb9
-20407eb9
-20207eb9
-df20000a
-20002ee0
-c2007ec2
-20600000
-18007203
-18007e00
-e0a40000
-c2007ec7
-20600000
-18007e00
-e0a40000
-20600000
-18007e00
-e0a20000
-20600000
-18007204
-20207ec6
-18007208
-20207ec6
-1f227e00
-207a0000
-58000000
-e0a08000
-c2007ed7
-20600000
-df200020
-d8a00ac2
-20207ed4
-ea620000
-ea2a0000
-9842fe00
-e0a20000
-1a20a204
-1a60a604
-c2007edd
-20600000
-477dc03f
-1f227e00
-1fe67c01
-20610000
-9a20a400
-1a40a5ff
-1f237200
-ea288000
-ea408000
-e2208000
-e2488000
-1a40a5ff
-1a20a201
-c2007eec
-20600000
-1f227e00
-207a0000
-1f20f3f8
-20417eb9
-20628000
-20217ef6
-1f20f208
-1f20f3fc
-20417eb6
-20628000
-20217efb
-1f20f204
-20207f01
-1f227e00
-207a0000
-e8c08000
-e0a08000
-c2007f03
-20600000
-58000000
-1c430400
-600a4094
-d8a0419d
-98000400
-18e3fe00
-98a08a00
-e0a90000
-477e403f
-20600000
-d9600800
-19701600
-9960fe00
-20600000
-d8e00000
-477ec03f
-680a4094
-1c437e00
-60024094
-98467c00
-24417f11
-98461600
-19620400
-d8c0419d
-18c20a00
-df200010
-e8c10000
-98467e00
-20217f25
-18007e00
-e0a10000
-c2007f21
-d8c0419d
-18e3fe00
-98c08c00
-e8c10000
-20600000
-98408400
-18427200
-58000ea6
-9f267e00
-20610000
-1fe67e00
-18510400
-18408401
-18500400
-98418400
-20600000
-20407f39
-20207f43
-78547c00
-98467e00
-20217f3e
-78347c00
-1fe67e00
-c4078000
-d85f0ea6
-9840fe00
-793ffe40
-20600000
-98000c00
-1ff17e00
-d8400ea6
-984ffe00
-98c0fe00
-20600000
-1fed7e00
-1ff27e00
-6809c16f
-9846fc00
-20407f86
-18078400
-20600000
-d8400ea6
-9846fc00
-20407f86
-1807fe00
-1ff07e00
-18070400
-98418400
-20600000
-d8400000
-18422600
-e8608000
-20407f64
-1a620400
-20407f95
-da40000a
-9a4ffe00
-9840fe00
-1fe20400
-c2007f59
-20600000
-d840003a
-98467c00
-24217f6d
-d8400061
-98467c00
-20217f70
-d8400037
-98467e00
-20600000
-d8400030
-98467e00
-20600000
-d8400057
-98467e00
-20600000
-18426000
-580001ff
-18002400
-1fe92200
-1a232200
-9a22a200
-2a2ffe00
-7920fe09
-18430400
-2feffe00
-79208407
-1fe37e00
-1a40a401
-2a400e00
-2420ff76
-e0a88000
-c2007f76
-1e020400
-20600000
-207a8000
-20207f86
-ea208000
-ea488000
-98467c00
-24628000
-1a20a201
-1a40a401
-c2007f88
-18007c00
-20600000
-98467c00
-24610000
-18427e00
-20600000
-9840fe00
-98460400
-98467e00
-20600000
-df200200
-d8a04000
-20207ec6
-207a0000
-1fe27a00
-6811010e
-243a7f9e
-20600000
-70820301
-20600000
-60110205
-68108203
-79207e04
-60108203
-20600000
-60110207
-68108203
-79207e06
-60108203
-20600000
-60110205
-70820330
-20600000
-68108043
-793ffe04
-60108043
-20600000
-6811010e
-d8400200
-98467c00
-20600000
-477f403f
-ea2c0000
-18417eff
-243a7fbe
-184cfe00
-e2240000
-1a20a207
-ea208000
-243a2a8c
-68008a99
-e2208000
-20600000
-477fc03f
-df200008
-ea240000
-207a0000
-ea208000
-243a7fcd
-1a20a201
-c2007fc8
-20202a8c
-d8400000
-e2288000
-20600000
-ea240000
-20600000
-ea208000
-20600000
-ea210000
-20600000
-d8400000
-68008006
-c2007fd7
-18408401
-c2007fd7
-18427e00
-20600000
-98467c00
-24610000
-18427e00
-20600000
-18007dff
-20600000
-18007c01
-20600000
-18007c00
-20600000
-78347c00
-20600000
-78547c00
-20600000
-78367c00
-20600000
-78567c00
-20600000
-58000001
-20600000
-58000000
-20600000
-1f227e00
-207a0000
-18c27e00
-9f20fe00
-1fe0ffff
-1fe20c00
-e8c08000
-18c08dfe
-e0a08000
-c2007ff9
-20600000
-c0000005
-c0008012
-c0010028
-20600000
-6800800e
-1fe0fe01
-6000800e
-20402435
-7920002c
-204022f2
-202c0010
-793f802c
-20402455
-243a0009
-202020fc
-793f802c
-2020215f
-70480800
-7041e30e
-204041e7
-68014208
-c283c1f5
-c28033a9
-c280801c
-c281001f
-c281801f
-202042b0
-c282801f
-c281801f
-202042b0
-68014682
-c28642b0
-204033a9
-20400574
-c0038025
-202033a7
-70479f01
-7047a028
-20600000
-68010264
-1fe20c00
-e8c08000
-6000cb04
-1fe1040f
-1ff1fe00
-c0038031
-c0008038
-20204d39
-20404d53
-704b0500
-6800cb04
-2feffe00
-20608000
-704b0501
-20600000
-18427e00
-c002842c
-20204d41
-c008000f
-c0088004
-20600000
-2040053f
-704b6901
-7047a101
-680146a8
-600146ae
-2040047c
-20403418
-d8c04390
-20400478
-70438f1f
-20207df4
-78547c00
-204062c1
-68008048
-207a0000
-c2838018
-c0018028
-c0188024
-c00b8026
-20206010
-c042001b
-c041801e
-2020603f
-20400021
-68008048
-20206099
-20400021
-68008048
-2020610d
-6800c65a
-203a612b
-20206124
-704b0301
-202061c3
-704b0b04
-202061a4
-18007e02
-20406298
-68008049
-e0a08000
-6000cafc
-204062a7
-6800cafc
-c0170031
-20206051
-6800cb01
-207a0000
-704b0100
-6800cb03
-c1810000
-704b0201
-1c427e00
-600204e9
-20600000
-c0100004
-c0108016
-20600000
-2040000c
-2020557d
-6800c7c5
-6000c172
-7047c400
-20600000
-7047c401
-20600000
-6800c3d6
-1fe67c0c
-2421000a
-6800c3d8
-6808c7c5
-98467c00
-20210006
-6800c3d8
-6000c172
-20200008
-6800843f
-c4030000
-2040001b
-24740000
-202055a0
-78347c00
-6800845a
-1ff1fe00
-c1878000
-68008460
-1ff1fe00
-c1800000
-20207fe9
-c0180003
-20600000
-204002e0
-704b6900
-704b6601
-70472001
-70479e00
-68034b5d
-600344a0
-20403418
-68014687
-600146ac
-70016d06
-58000000
-600146b0
-600146ae
-2040047c
-204043ca
-20400346
-6800c210
-1fe67c33
-2042801b
-6800c092
-2feffe00
-2040fddd
-20200510
-68034b5d
-600344a0
-20400474
-20207df4
-c0200005
-c0208017
-c021001f
-20600000
-2040000e
-2034020c
-79200026
-6800cd4b
-79207e02
-6000cd4b
-204001f4
-2040016e
-2020001b
-df200002
-d8c04c21
-20407fe7
-5800ffff
-e8c90000
-98467c00
-2442ffe9
-c2000012
-20600000
-79200026
-6800cd4b
-79207e01
-6000cd4b
-58000708
-60014d43
-704d4200
-20600000
-680246d3
-c4088000
-c3818000
-c6130000
-20404482
-d8e00003
-204043ce
-58000000
-600146ae
-6000c6b4
-60014c26
-204042ca
-2020020c
-c0280006
-c028800c
-c0290010
-c029801a
-20600000
-d8e00003
-204043d2
-7046a700
-2040405d
-204002e0
-20200010
-704d3900
-204002e0
-2040020e
-2020340a
-20400017
-2040050a
-20403f8d
-68024c21
-6002477b
-20404366
-20200317
-58000000
-6001cd42
-20600000
-6800cd42
-c000add4
-20400029
-204001be
-242c016e
-2437816e
-6800cd4b
-793ffe02
-6000cd4b
-704b4300
-20402f20
-204001b8
-2020036f
-68024bd9
-202001f3
-70119eff
-6800cbfa
-6000919f
-68024c30
-600211a0
-d8400006
-da20119e
-20400213
-20200225
-6800cd42
-c000add4
-70119eff
-6800cbfa
-6000919f
-68024c30
-600211a0
-d8400006
-da20119e
-20400213
-20400225
-204001be
-242c0026
-24378026
-704d4b00
-204001e8
-68024c21
-680a4d3e
-98467c00
-20228017
-6800cbf7
-207a0000
-204002e0
-68024c21
-680a4c05
-98467c00
-20228201
-68024c21
-680a4c30
-98467c00
-20428024
-704b4300
-20402f20
-204001b8
-2020036f
-68024bd9
-202001f3
-6800cd37
-1fe0fe01
-1fe17e03
-6000cd37
-c000002d
-c0010037
-202001ef
-204002e0
-68024c30
-60024c21
-6800cd45
-6000cc04
-20400035
-6008cd45
-20600000
-204001f4
-2020016e
-7041de20
-68024d3e
-60024c21
-6800cd46
-6000cc04
-20400035
-6008cd46
-20600000
-c0380003
-20600000
-5fffffff
-60030040
-70018533
-704b70ff
-204042fb
-704721ff
-20200317
-c0400003
-20600000
-680240a0
-60024c30
-20403e6e
-2040053c
-6808cb46
-2040680e
-20403e1e
-20400014
-58000000
-60014154
-204068a2
-20403e54
-20405810
-20405839
-2040582c
-20405818
-2020030a
-204074b9
-d8c08c00
-d8a04876
-df200171
-20407f01
-580f0209
-e0a18000
-58120009
-e0a18000
-58100209
-e0a18000
-58000009
-e0a18000
-d8c08d71
-df200109
-20407f01
-70488d00
-7048856d
-5800401f
-600149db
-58006d04
-60014a44
-580016b0
-60014a4a
-58004876
-60014575
-20600000
-c0480004
-c048801e
-20600000
-6800cbfe
-c000ffe7
-6800cc09
-c000800b
-c001000e
-c0018011
-20202a8c
-704c0911
-70119eaa
-20200013
-704c0912
-70119e55
-20200013
-704c0913
-70119e22
-6800cbfa
-1fe17e07
-6000919f
-68024c30
-600211a0
-7011a400
-da20119e
-d8400007
-20400213
-20400183
-20207fe7
-6800cc09
-c17f8000
-c0088024
-c0090026
-c0098028
-20600000
-704c0902
-202001b4
-704c0903
-202001b4
-704c09ff
-700a9939
-20407d86
-68024bd9
-204001f3
-202001b4
-c050002a
-c0508006
-c051001b
-c0518014
-20600000
-68014509
-c1000000
-68008441
-1feb7e00
-1fe67c0c
-20210012
-58000009
-60014496
-60014498
-20400424
-7047c401
-20600000
-704b5c01
-202005f9
-68014682
-c3860000
-c3830000
-c3858000
-680246d3
-c3828000
-202033a7
-704b6a00
-58000007
-60014496
-60014498
-7047c400
-70479e00
-204003ac
-20405816
-204041d9
-6800cb66
-207a0000
-68034b5d
-600344a0
-20400474
-20207df4
-68120138
-79207e1a
-6012004c
-20402c21
-204074bd
-20404482
-20403e9f
-204000ef
-2040034c
-68108081
-1fe17ef7
-60108081
-6810807f
-79207e00
-6010807f
-680400a1
-793ffe14
-600400a1
-6808c6e7
-2040058c
-680400a1
-79207e34
-600400a1
-20600000
-c0580007
-c058801d
-c0590023
-c0598028
-c05a0030
-20600000
-58000000
-6001cb63
-df200003
-d8c044a0
-20400016
-24540354
-704b6a01
-6800c7a1
-243a0011
-704b6814
-704b7200
-704b6600
-2040050a
-204003ac
-202041c3
-20407fe7
-5800ffff
-e8c90000
-98467c00
-2442ffe9
-c2000018
-20600000
-6800c808
-c1010000
-1fe0fe01
-6000c808
-7041e312
-2020340e
-6800c808
-c1810000
-70480800
-7041e30e
-2020340e
-6800c7a1
-c000802c
-7046c614
-2020002e
-20400424
-7046c60a
-d8e00001
-202041b9
-704b0100
-704b0300
-704b0c00
-202041d9
-0000b2c6
Index: DPI_Switch/program/24g.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/24g.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/24g.prog	(nonexistent)
@@ -1,2648 +0,0 @@
-ifdef COMPILE_24G
-
-g24_dispatch:
-	bpatch patch16_2,mem_patch16
-	call g24_head_ptr2regc
-	add regc,offset_24g_mode,regb
-	ifetch 1,regb
-	//fetch 1,mem_24g_mode
-	rtneq disable_24g
-	beq tx_24g,g24_transmit_process
-	beq rx_24g,g24_receive_process
-	rtn
-
-g24_head_ptr2regc:
-	fetcht 2,mem_24g_head_ptr
-	copy temp,regc
-	rtn
-
-g24_receive_process_init:
-	call g24_receive_init
-	branch g24_mode_switch_init
-
-g24_receive_process:
-	call g24_mode_switch
-	call g24_dongle_work_mode_auto
-	call g24_dongle_bind_mode_auto
-	branch g24_dongle_search_mode_auto
-	
-
-g24_pair_init:
-	//jam 0,mem_24g_pid
-	//jam G24_PAIR_CH,mem_24g_ch
-	call g24_set0_mem_pid
-	setarg G24_PAIR_CH
-	call g24_store_mem_ch
-	call g24_store_mem_pair_txpower
-	//fetch 4,mem_24g_paring_addr
-	//store 4,mem_24g_addr
-	add regc,offset_24g_paring_addr,rega
-	ifetch 4,rega
-	branch g24_store_mem_addr
-		
-g24_ch:
-	call g24_head_ptr2regc
-	add regc,offset_24g_current_ch_number,regb
-	ifetcht 1,regb
-	//fetcht 1,mem_24g_current_ch_number
-	call g24_ch_temp_incre_size4 //map size =4
-	add regc,offset_24g_current_ch_number,contw
-	//storet 1,mem_24g_current_ch_number
-	branch g24_contw_istoret_1byte
-
-g24_ch_temp_incre_size4:
-	call g24_ch_calc
-	increase 1,temp
-	and_into 3,temp
-	rtn
-
-g24_ch_calc:
-	add regc,offset_24g_addr,regb
-	ifetch 1,regb
-	//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
-	add regc,offset_24g_ch_map1,pdata
-	//setarg mem_24g_ch_map1
-	iadd rega,pdata
-	iadd temp,contr
-	ifetch 1,contr
-	//store 1,mem_24g_ch
-	branch g24_store_mem_ch
-
-g24_set_device_addr:
-	call g24_store_mem_tx_power_temp
-	call otp_enable_chgpump
-	setarg 0x7e2
-	arg mem_temp,rega
-	arg 4,temp
-	call otpd_read_data
-	call otp_disable_chgpump
-	fetch 4,mem_temp	//adc data from otp
-	call g24_store_mem_device_addr
-	//store 4,mem_24g_device_addr	
-	nrtn blank
-	fetch 4,mem_lap
-	//store 4,mem_24g_device_addr
-	branch g24_store_mem_device_addr
-
-g24_transmit_rf_sta_init:
-	call g24_set1_mem_rf_last_sta
-	//jam 1,mem_24g_rf_last_sta
-	setarg 0
-	call g24_store_mem_sync_cnt
-	//jam 0,mem_24g_sync_cnt
-g24_transmit_rf_ctrl_clear:	
-	call g24_fetch_mem_data_type
-	//fetch 1,mem_24g_data_type
-	and_into bits_data,pdata
-	//store 1,mem_24g_data_type
-	branch g24_store_mem_data_type
-	
-g24_hop_ch_enable:
-	call g24_fetch_mem_data_type
-	//fetch 1,mem_24g_data_type
-	set1 bit_hop,pdata
-	call g24_store_mem_data_type
-	//store 1,mem_24g_data_type
-	//store 1,mem_24g_txpayload
-	branch g24_store_mem_txpayload
-	
-g24_transmit_hop_pac_fail:
-	call g24_fetch_mem_rf_work_stage
-	//fetch 1,mem_24g_rf_work_stage
-	beq 1,g24_transmit_hop_pac_fail_wo_hop
-	beq 2,g24_transmit_hop_pac_fail_hop_stage2
-	rtn
-	
-g24_transmit_hop_pac_fail_wo_hop:
-	call g24_set2_mem_sync_cnt
-	//jam 2,mem_24g_sync_cnt
-g24_transmit_hop_pac_fail_stage1:
-	add regc,offset_24g_hop_pac_retry,contw
-	call g24_mem_set0
-	//jam 0,mem_24g_hop_pac_retry
-	call g24_store_mem_rf_last_sta
-	//jam 0,mem_24g_rf_last_sta
-	branch g24_transmit_rf_ctrl_clear
-
-g24_transmit_hop_pac_fail_hop_stage2:
-	call g24_set0_mem_rf_hop_ch
-	//jam 0,mem_24g_rf_hop_ch
-	branch g24_transmit_hop_pac_fail_stage1
-
-g24_transmit_pac_fail_hop_stage3:
-	add regc,offset_24g_txfail_cnt,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_txfail_cnt
-	increase 1,pdata
-	add regc,offset_24g_txfail_cnt,contw
-	istore 1,contw
-	//store 1,mem_24g_txfail_cnt
-	beq 0x20,g24_tx_attempt_fail
-	call g24_fetch_mem_rf_hop_ch
-	//fetch 1,mem_24g_rf_hop_ch
-	beq 1,g24_rf_hop_fastly
-	setarg 1
-	call g24_store_mem_rf_hop_ch
-	//jam 1,mem_24g_rf_hop_ch
-g24_rf_hop_attemp_again:
-	call g24_fetch_mem_rf_hop_ch
-	//fetch 1,mem_24g_rf_hop_ch
-	bne 1,g24_transmit_rf_ctrl_clear
-g24_rf_hop_fastly:
-	add regc,offset_24g_hop_fastly_cnt,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_hop_fastly_cnt
-	increase 1,pdata
-	call g24_store_mem_hop_fastly_cnt
-	//store 1,mem_24g_hop_fastly_cnt
-	beq 4,g24_rf_hop_fastly_exit
-	call g24_ch
-	call g24_set2_mem_max_retry
-	//jam 2,mem_24g_max_retry
-	branch g24_transmit_packet
-
-g24_rf_hop_fastly_exit:
-	call g24_set0_mem_hop_fastly_cnt
-	//jam 0,mem_24g_hop_fastly_cnt
-	branch g24_transmit_rf_ctrl_clear
-
-g24_set0_mem_hop_fastly_cnt:
-	setarg 0
-g24_store_mem_hop_fastly_cnt:
-	add regc,offset_24g_hop_fastly_cnt,contw
-	branch g24_contw_istore_1byte
-
-g24_transmit_hop_pac_succ_wo_hop:
-	call g24_set2_mem_sync_cnt
-	//jam 2,mem_24g_sync_cnt
-g24_transmit_hop_pac_succ:
-	call g24_set0_mem_rf_hop_ch
-	//jam 0,mem_24g_rf_hop_ch
-	call g24_set1_mem_rf_last_sta
-	//jam 1,mem_24g_rf_last_sta
-	branch g24_transmit_rf_ctrl_clear
-
-g24_transmit_succ_rf_config:
-	call g24_fetch_mem_rf_work_stage
-	//fetch 1,mem_24g_rf_work_stage
-	beq 3,g24_transmit_hop_pac_succ
-	call g24_fetch_mem_data_type
-	//fetch 1,mem_24g_data_type
-	isolate0 bit_hop,pdata
-	branch g24_transmit_rf_sta_init,true
-	call g24_fetch_mem_rf_work_stage
-	//fetch 1,mem_24g_rf_work_stage
-	beq 1,g24_transmit_hop_pac_succ_wo_hop
-	beq 2,g24_transmit_hop_pac_succ
-	rtn
-
-g24_rf_sta_check:
-	call g24_fetch_mem_pairing_sm
-	//fetch 1,mem_24g_pairing_sm
-	rtnne STATE_24G_PAIRING_SUCCESS
-	call g24_rf_laststa_synccnt_check
-	ncall g24_rf_sync_cnt_check,user2
-	rtn
-
-g24_rf_laststa_synccnt_check:
-	disable user2
-	add regc,offset_24g_rf_last_sta,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_rf_last_sta
-	rtnne 1
-	add regc,offset_24g_sync_cnt,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_sync_cnt
-	rtnne 0
-	setarg 1
-	call g24_store_mem_rf_work_stage
-	//jam 1,mem_24g_rf_work_stage
-	call g24_set4_mem_max_retry
-	//jam 4,mem_24g_max_retry
-	branch enable_user2
-
-g24_rf_sync_cnt_check:
-	add regc,offset_24g_sync_cnt,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_sync_cnt
-	branch g24_rf_hop_attemp,blank
-	increase -1,pdata
-	call g24_store_mem_sync_cnt
-	//store 1,mem_24g_sync_cnt
-	setarg 2
-	call g24_store_mem_rf_work_stage
-	//jam 2,mem_24g_rf_work_stage
-	call g24_ch
-	//jam 4,mem_24g_max_retry
-	branch g24_set4_mem_max_retry
-
-g24_store_mem_rf_work_stage:
-	add regc,offset_24g_rf_work_stage,contw
-	branch g24_contw_istore_1byte
-
-
-g24_rf_hop_attemp:
-	setarg 3
-	call g24_store_mem_rf_work_stage
-	//jam 3,mem_24g_rf_work_stage
-	call g24_fetch_mem_rf_hop_ch
-	//fetch 1,mem_24g_rf_hop_ch
-	nbranch g24_rf_hop_attemp_again,blank
-	call g24_ch
-	//jam 2,mem_24g_max_retry
-g24_set2_mem_max_retry:	
-	setarg 2
-	branch g24_store_mem_max_retry
-
-g24_transmit_process:
-	rtnmark0 mark_24g
-	set1 mark_24g_conext,mark
-	bpatch patch16_3,mem_patch16
-	add regc,offset_24g_tx_without_int,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_tx_without_int
-	beq 1,g24_transmit_without_int
-	call g24_timer_check
-	nbranch g24_transmit_exit,user
-	call g24_interval_calibrate
-g24_transmit_without_int:
-	add regc,offset_24g_tx_without_int,contw
-	call g24_mem_set0
-	//jam 0,mem_24g_tx_without_int
-	call g24_txdata_prep
-	nbranch g24_enter_lpm,user
-	call g24_rf_sta_check
-g24_transmit_start:
-	call g24_transmit_packet
-	call g24_power_ctrl
-g24_transmit_exit:
-	set0 mark_24g_conext,mark
-	rtn
-
-g24_timer_timeout:
-	rtn zero
-	set1 28,pdata
-	rtn
-
-g24_interval_calibrate:
-	add regc,offset_24g_pac_index,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_pac_index
-	increase 1,pdata
-	add regc,offset_24g_pac_index,contw
-	istore 1,contw
-	//store 1,mem_24g_pac_index
-	beq 4,g24_interval_max
-	beq 5,g24_interval_min
-	rtn
-g24_interval_max:
-	add regc,offset_24g_interval_max,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_interval_max
-g24_interval_update:	
-	//store 1,mem_24g_interval
-	add regc,offset_24g_interval,contw
-	branch g24_contw_istore_1byte
-
-g24_interval_min:
-	add regc,offset_24g_pac_index,contw
-	call g24_mem_set0
-	//jam 0,mem_24g_pac_index
-	add regc,offset_24g_interval_min,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_interval_min
-	branch g24_interval_update
-
-g24_txdata_prep:
-	call g24_fetch_mem_pairing_sm
-	//fetch 1,mem_24g_pairing_sm
-	bne STATE_24G_PAIRING_SUCCESS,g24_pairing_sm
-	bpatch patch16_4,mem_patch16
-	call g24_package_data
-	nbranch g24_txdata_last_pac,user
-	call g24_transmit_prep
-	call g24_power_ctrl_pac_incrs
-g24_txdata_enable_tx:
-	//jam ENSURE_ON_24G,mem_24g_ensure
-	setarg ENSURE_ON_24G
-g24_store_mem_ensure:	
-	add regc,offset_24g_ensure,contw
-	branch g24_contw_istore_1byte
-
-g24_txdata_last_pac:
-	add regc,offset_24g_ensure,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_ensure
-	beq ENSURE_ON_24G,enable_user
-	rtn
-
-g24_package_data:
-	//rega:length,regb:contr
-	add regc,offset_24g_cb_data,temp
-	ifetch 2,temp
-	//fetch 2,mem_24g_cb_data
-	call callback_func
-	nrtn user
-	copy rega,pdata
-	store 1,mem_rega
-	add regc,offset_24g_abort_pac,contw
-	call g24_mem_set0
-	//jam 0,mem_24g_abort_pac
-	call g24_transmit_rf_ctrl_clear
-	store 1,mem_24g_common_temp
-	fetch 1,mem_rega
-	copy pdata,rega
-	add rega,1,temp
-	arg mem_24g_common_temp+1,contw
-	copy rega,loopcnt
-	copy regb,contr
-	call memcpy
-	arg mem_24g_common_temp,rega
-g24_put_data_in_buff:
-	rtnmark0 mark_24g_conext
-	add regc,offset_24g_datalen,contw
-	istoret 1,contw
-	//storet 1,mem_24g_datalen
-	copy temp,loopcnt
-	add regc,offset_24g_txbuf,contw
-	//arg mem_24g_txbuf,contw
-	copy rega,contr
-	branch memcpy
-
-g24_transmit_prep:
-// total length
-	add regc,offset_24g_datalen,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_datalen
-	increase 2,pdata
-	add regc,offset_24g_txlen,contw
-	istore 1,contw
-	//store 1,mem_24g_txlen
-// data type
-	call g24_fetch_mem_data_type
-	//fetch 1,mem_24g_data_type
-	call g24_store_mem_txpayload
-	//store 1,mem_24g_txpayload
-//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
-	add regc,offset_24g_datalen,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_datalen
-	lshift3 pdata,pdata
-	add regc,offset_24g_pid,rega
-	ifetcht 1,rega
-	//fetcht 1,mem_24g_pid
-	and temp,0x03,temp
-	lshift temp,temp
-	ior temp,pdata
-	add regc,offset_24g_no_ack,rega
-	ifetcht 1,rega
-	//fetcht 1,mem_24g_no_ack
-	iadd temp,pdata
-	istore 1,contw
-//prepare payload data
-	add regc,offset_24g_datalen,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_datalen
-	iforce loopcnt
-	add regc,offset_24g_txbuf,contr
-	//arg mem_24g_txbuf,contr
-	branch memcpy
-
-g24_send_abort_packet:
-	call g24_set1_mem_abort_pac
-	//jam 1,mem_24g_abort_pac
-	call g24_set0_mem_rf_hop_ch
-	//jam 0,mem_24g_rf_hop_ch
-	call g24_power_ctrl_reinit
-	call g24_transmit_rf_ctrl_clear
-	store 1,mem_24g_common_temp
-	call g24_put_data_in_buff_pre
-	call g24_fetch_mem_data_type
-	//fetch 1,mem_24g_data_type
-	set1 bit_abort,pdata
-	call g24_store_mem_data_type
-	//store 1,mem_24g_data_type
-	call g24_transmit_prep
-	call g24_txdata_enable_tx
-	branch g24_transmit_start
-
-g24_put_data_in_buff_pre:
-	store 1,mem_24g_common_temp+1
-	call g24_fetch_mem_device_addr
-	//fetch 4,mem_24g_device_addr
-	store 4,mem_24g_common_temp+2
-	arg 6,temp
-	arg mem_24g_common_temp,rega
-	branch g24_put_data_in_buff
-
-g24_enter_lpm:
-	add regc,offset_24g_abort_pac,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_abort_pac
-	branch g24_send_abort_packet,blank
-g24_enter_lpm_prepare:
- 	// some thing need to do and do not enter 24g long sleep
-	add regc,offset_24g_cb_lpm_prepare,rega
-	ifetch 2,rega
-	//fetch 2,mem_24g_cb_lpm_prepare
-	branch callback_func
-
-g24_lpm_long_sleep:
-	call g24_head_ptr2regc
-	//fetch 8,mem_24g_enter_hibernate
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	rtn blank
-	add regc,offset_24g_cb_lpm_before,temp
-	ifetch 2,temp
-	//fetch 2,mem_24g_cb_lpm_before
-	call callback_func
-	add regc,offset_24g_enter_hibernate,temp
-	ifetch 8,temp
-	call clk2lpo
-	storet 4,mem_sleep_counter
-  	branch lpm_sleep
-
-g24_transmit_packet:
-	call g24_head_ptr2regc
-	add regc,offset_24g_retry,contw
-	call g24_mem_set0
-	//jam 0,mem_24g_retry
-g24_transmit_loop:
-	call g24_transmit_receive_ack
-	nbranch g24_retransmit,sync
-	nbranch g24_retransmit,user3
-	call g24_ackpayload_parse
-	call g24_power_ctrl_ack_incrs
-g24_transmit_next_packet:
-	call g24_head_ptr2regc
-	add regc,offset_24g_pid,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_pid
-	increase 1,pdata
-	call g24_store_mem_pid
-	//store 1,mem_24g_pid
-	call g24_fetch_mem_pairing_sm
-	//fetch 1,mem_24g_pairing_sm
-	bne STATE_24G_PAIRING_SUCCESS,g24_paring_mode
-	call g24_transmit_succ_rf_config
-g24_transmit_abandon:
-	setarg 0
-	add regc,offset_24g_txfail_cnt,contw
-	istore 2,contw	//include mem_24g_get_ack_fail
-	//store 1,mem_24g_txfail_cnt
-	//store 1,mem_24g_get_ack_fail
-	//jam ENSURE_OFF_24G,mem_24g_ensure
-	setarg ENSURE_OFF_24G
-	branch g24_store_mem_ensure
-
-	
-g24_transmit_receive_ack:
-	disable user3
-	call g24_transmit
-	call g24_head_ptr2regc
-	add regc,offset_24g_no_ack,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_no_ack
-	beq no_ack_24g,g24_transmit_no_ack	//tx no ack
-	call g24_receive_packet
-	branch g24_end_of_packet
-g24_transmit_no_ack:
-	call g24_end_of_packet
-	branch g24_transmit_next_packet
-
-
-g24_retransmit:
-	bpatch patch16_5,mem_patch16
-	add regc,offset_24g_get_ack_fail,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_get_ack_fail
-	increase 1,pdata
-	add regc,offset_24g_get_ack_fail,contw
-	istore 1,contw
-	//store 1,mem_24g_get_ack_fail
-	call g24_fetch_mem_pairing_sm
-	//fetch 1,mem_24g_pairing_sm
-	bne STATE_24G_PAIRING_SUCCESS,g24_tx_paring_retry
-	add regc,offset_24g_retry,rega
-	ifetcht 1,rega
-	//fetcht 1,mem_24g_retry
-	increase 1,temp
-	add regc,offset_24g_retry,contw
-	istoret 1,contw
-	//storet 1,mem_24g_retry
-	add regc,offset_24g_max_retry,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_max_retry
-	isub temp,pdata
-	nbranch g24_transmit_loop,blank
-	bpatch patch16_6,mem_patch16
-	call g24_fetch_mem_rf_work_stage
-	//fetch 1,mem_24g_rf_work_stage
-	beq 3,g24_transmit_pac_fail_hop_stage3
-	add regc,offset_24g_hop_pac_retry,rega
-	ifetch 1,rega	
-	//fetch 1,mem_24g_hop_pac_retry
-	increase 1,pdata
-	add regc,offset_24g_hop_pac_retry,contw
-	istore 1,contw
-	//store 1,mem_24g_hop_pac_retry
-	beq 2,g24_transmit_hop_pac_fail
-	call g24_hop_ch_enable
-	setarg 1
-	call g24_store_mem_max_retry
-	//jam 1,mem_24g_max_retry
-	branch g24_transmit_packet
-
-g24_tx_paring_retry:
-	add regc,offset_24g_get_ack_fail,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_get_ack_fail
-	rtnne 0xff
-	add regc,offset_24g_get_ack_fail,contw
-	call g24_mem_set0
-	//jam 0,mem_24g_get_ack_fail
-	branch g24_stop_24g_mode
-
-g24_tx_attempt_fail:
-	add regc,offset_24g_txfail_cnt,contw
-	call g24_mem_set0
-	//jam 0,mem_24g_txfail_cnt
-g24_stop_24g_mode:
-	jam BT_EVT_24G_ATTEMPT_FAIL,mem_fifo_temp
-	branch ui_ipc_send_event
-
-g24_ackpayload_parse:
-	call g24_read_len_pid_crc
-	add regc,offset_24g_rxdata_length,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_rxdata_length	//ack payload length 
-	rtn blank
-	iforce loopcnt
-	add regc,offset_24g_rxbuf_add2,contr
-	//arg mem_24g_rxbuf+2,contr
-	add regc,offset_24g_rxpayload,contw	
-	//arg mem_24g_rxpayload,contw	//ack payload buffer 
-	branch memcpy
-
-
-g24_read_len_pid_crc:
-//read control
-	call g24_fetch_mem_rxbuf_add1
-	//fetch 1,mem_24g_rxbuf+1
-	rshift3 pdata,pdata
-	add regc,offset_24g_rxdata_length,contw
-	istore 1,contw
-	//store 1,mem_24g_rxdata_length
-//get crc
-	increase 1,pdata
-	add regc,offset_24g_rxbuf_add1,contr
-	//arg mem_24g_rxbuf+1,contr
-	iadd contr,contr
-	ifetch 3,contr
-	add regc,offset_24g_sta_crc,contw
-	istore 3,contw
-	//store 3,mem_24g_sta_crc
-//read pid
-	call g24_fetch_mem_rxbuf_add1
-	//fetch 1,mem_24g_rxbuf+1
-	rshift pdata,pdata
-	and pdata,0x03,pdata
-	add regc,offset_24g_sta_pid,contw
-	istore 1,contw
-	//store 1,mem_24g_sta_pid
-	rtn
-
-g24_prep:
-	disable enable_crc
-	disable enable_white
-	setarg 0x555555
-	iforce crc24_init
-	rtn
-
-g24_set_freq_tx:
-	call set_sync_on
-	add regc,offset_24g_ch,rega
-	ifetcht 1,rega
-	//fetcht 1,mem_24g_ch
-	branch set_freq_tx
-
-g24_transmit:
-	call g24_prep
-	call g24_set_freq_tx
-	set1 TXGFSK,radio_ctrl
-	enable encode_fec0
-	enable is_tx
-	disable is_rx
-	call le_enable
-	call g24_fetch_mem_addr
-	//fetch 4,mem_24g_addr
-	iforce access
-	inject mod,32
-	enable enable_crc
-	add regc,offset_24g_txlen,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_txlen
-	iforce loopcnt
-	add regc,offset_24g_txpayload,contr
-	//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
-	until null,tx_clear
-	bpatch patch16_7,mem_patch16
-	nop 100
-	disable encode_fec0
-	rtn
-
-g24_receive_packet:
-	disable user3
-	force 0,radio_ctrl
-	add regc,offset_24g_ch,rega
-	ifetcht 1,rega
-	//fetcht 1,mem_24g_ch
-	call set_freq_rx
-	call rf_rx_enable
-g24_receive_rxon:
-	call g24_prep
-	enable decode_fec0
-	enable is_rx
-	disable is_tx
-	call le_enable
-	call g24_fetch_mem_addr
-	//fetch 4,mem_24g_addr
-	iforce access
-	enable swfine
-	add regc,offset_24g_rx_window,rega
-	ifetch 2,rega
-	//fetch 2,mem_24g_rx_window
-	iforce stop_watch
-	correlate null,timeout
-	nbranch g24_sync_timeout,sync
-	enable enable_crc
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	add regc,offset_24g_rxbuf,contw
-	istore 1,contw	
-	//store 1,mem_24g_rxbuf	//device id
-	add regc,offset_24g_mode,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_mode
-	beq rx_24g,g24_receive_skip
-	bpatch patch17_0,mem_patch17
-	add regc,offset_24g_rxbuf,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_rxbuf
-	add regc,offset_24g_data_type,rega
-	ifetcht 1,rega
-	//fetcht 1,mem_24g_data_type
-	icompare bits_data,temp
-	nbranch g24_end_of_packet,true
-g24_receive_skip:
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	istore 1,contw
-	rshift3 pdata,pdata
-	and pdata,0x1f,loopcnt	//max payload: 32bytes
-	branch g24rx_nopayload,zero
-g24rx_loop:
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	istore 1,contw
-	loop g24rx_loop
-g24rx_nopayload:
-	parse demod,bucket,24
-	rshift32 pdata,pdata
-	rshift16 pdata,pdata
-	istore 3,contw
-	branch g24_end_of_packet,crc_failed
-	enable user3
-	disable decode_fec0
-	rtn
-//	branch rssi_signal
-
-g24_end_of_packet:
-	disable encode_fec0
-	disable decode_fec0
-	disable enable_crc
-	disable enable_white
-	branch shutdown_radio,is_rx
-	until null,tx_clear
-	nop 100          /* flush out the last bit */
-	branch shutdown_radio
-
-g24_sync_timeout:
-	call rssi_noise
-	branch g24_end_of_packet
-
-rssi_noise:
-	call save_rssi
-	rtn blank
-	add regc,offset_rssi_noise_index,rega
-	ifetcht 1,rega
-	//fetcht 1,mem_rssi_noise_index
-	arg mem_rssi_noise_buffer,rega
-	//arg mem_rssi_noise_buf,rega
-	call rssi_noise_store
-	add regc,offset_rssi_noise_index,contw
-	//storet 1,mem_rssi_noise_index
-g24_contw_istoret_1byte:	
-	istoret 1,contw
-	rtn
-
-rssi_noise_store:
-	arg RSSI_BUF_LEN_NOISE,regb
-	branch rssi_store
-	
-/*	
-rssi_signal:
-	call save_rssi
-	rtn blank
-	add regc,offset_rssi_signal_index,rega
-	ifetcht 1,rega	
-	//fetcht 1,mem_rssi_signal_index
-	add regc,offset_rssi_signal_buf,rega
-	//arg mem_rssi_signal_buf,rega
-	arg RSSI_BUF_LEN_SIGNAL,regb
-	call rssi_store
-	add regc,offset_rssi_signal_index,contw
-	istoret 1,contw	
-	//storet 1,mem_rssi_signal_index
-	rtn
-*/	
-rssi_store:	
-	copy rega,pdata
-	iadd temp,contw
-	fetch 1,mem_rssi
-	istore 1,contw
-	increase 1,temp
-	copy regb,pdata
-	iand_into temp
-	rtn
-	
-rssi_average:
-	arg 0,temp
-	copy rega,contr
-rssi_average_loop:	
-	ifetch 1,contr
-	iadd temp,temp
-	loop rssi_average_loop
-	rshift8 temp,temp
-	rtn
-
-g24_power_ctrl_init:
-	call g24_head_ptr2regc
-	call g24_power_ctrl_incrs_level1
-	setarg 1
-	call g24_store_mem_power_ctrl_level
-	//jam 1,mem_power_ctrl_level
-g24_power_ctrl_reinit:
-	setarg 0
-	call g24_store_mem_power_ctrl_pac
-	//jam 0,mem_power_ctrl_packet_cnt
-	istore 1,contw
-	//jam 0,mem_power_ctrl_ack_cnt
-	rtn
-
-g24_power_ctrl_pac_incrs:
-	call g24_fetch_mem_power_ctrl_pac
-	//fetch 1,mem_power_ctrl_packet_cnt
-	increase 1,pdata
-g24_store_mem_power_ctrl_pac:	
-	//store 1,mem_power_ctrl_packet_cnt
-	add regc,offset_power_ctrl_packet_cnt,contw
-	branch g24_contw_istore_1byte
-
-g24_power_ctrl_ack_incrs:
-	//fetch 1,mem_power_ctrl_ack_cnt
-	//store 1,mem_power_ctrl_ack_cnt
-	add regc,offset_power_ctrl_ack_cnt,rega
-	ifetch 1,rega
-	increase 1,pdata
-	add regc,offset_power_ctrl_ack_cnt,contw
-	branch g24_contw_istore_1byte
-
-g24_power_ctrl:
-	bpatch patch17_1,mem_patch17
-	call g24_fetch_mem_power_ctrl_pac
-	//fetch 1,mem_power_ctrl_packet_cnt
-	sub pdata,POWER_CTRL_MAX_PACKET_CNT,null
-	rtn positive
-	add regc,offset_power_ctrl_ack_cnt,rega
-	ifetcht 1,rega
-	//fetcht 1,mem_power_ctrl_ack_cnt
-	isub temp,temp	//loss packet cnt
-	call g24_power_ctrl_reinit
-	setarg offset_power_ctrl_threshold_up
-	iadd regc,rega
-	ifetch 1,rega
-	//fetch 1,mem_power_ctrl_threshold_up
-	isub temp,null
-	nbranch g24_power_ctrl_incrs,positive
-	setarg offset_power_ctrl_threshold_down
-	iadd regc,rega
-	ifetch 1,rega	
-	//fetch 1,mem_power_ctrl_threshold_down
-	isub temp,null
-	branch g24_power_ctrl_decrs,positive
-	rtn
-
-g24_power_ctrl_incrs:	
-	add regc,offset_power_ctrl_level,rega
-	ifetch 1,rega
-	//fetch 1,mem_power_ctrl_level
-	beq 2,g24_power_ctrl_incrs_level2
-	increase 1,pdata
-	call g24_store_mem_power_ctrl_level
-	//store 1,mem_power_ctrl_level
-	beq 1,g24_power_ctrl_incrs_level1
-g24_power_ctrl_incrs_level2:
-	setarg POWER_CTRL_LOSSPAC_THRESH_UP2
-	call g24_store_mem_power_ctrl_threshold_up
-	//jam POWER_CTRL_LOSSPAC_THRESH_UP2,mem_power_ctrl_threshold_up
-	setarg POWER_CTRL_LOSSPAC_THRESH_DOWN2
-	call g24_store_mem_power_ctrl_threshold_down
-	//jam POWER_CTRL_LOSSPAC_THRESH_DOWN2,mem_power_ctrl_threshold_down
-//	jam POWER_CTRL_RSSI_THRESH_DOWN2,mem_rssi_ctrl_threshold_down
-	add regc,offset_power_ctrl_txpwr_level2,rega
-	//fetch 1,mem_power_ctrl_txpwr_level2
-	branch g24_ifetch_rega_store_mem_txpower
-
-g24_power_ctrl_decrs:
-	add regc,offset_power_ctrl_level,rega
-	ifetch 1,rega
-	//fetch 1,mem_power_ctrl_level
-	beq 0,g24_power_ctrl_decrs_level0
-	increase -1,pdata
-	call g24_store_mem_power_ctrl_level
-	//store 1,mem_power_ctrl_level
-	beq 0,g24_power_ctrl_decrs_level0
-g24_power_ctrl_decrs_level1:
-//	call rssi_check_distance
-//	nrtn user
-g24_power_ctrl_incrs_level1:
-	setarg POWER_CTRL_LOSSPAC_THRESH_UP1
-	call g24_store_mem_power_ctrl_threshold_up
-	//jam POWER_CTRL_LOSSPAC_THRESH_UP1,mem_power_ctrl_threshold_up
-	setarg POWER_CTRL_LOSSPAC_THRESH_DOWN1
-	call g24_store_mem_power_ctrl_threshold_down
-	//jam POWER_CTRL_LOSSPAC_THRESH_DOWN1,mem_power_ctrl_threshold_down
-//	jam POWER_CTRL_RSSI_THRESH_DOWN1,mem_rssi_ctrl_threshold_down
-	setarg offset_power_ctrl_txpwr_level1
-g24_iadd_offset_mem_txpower:	
-	iadd regc,rega
-g24_ifetch_rega_store_mem_txpower:	
-	ifetch 1,rega
-	//fetch 1,mem_power_ctrl_txpwr_level1
-	branch g24_store_mem_txpower
-	
-g24_power_ctrl_decrs_level0:
-//	call rssi_check_distance
-//	nrtn user
-	setarg POWER_CTRL_LOSSPAC_THRESH_UP0
-	call g24_store_mem_power_ctrl_threshold_up
-	//jam POWER_CTRL_LOSSPAC_THRESH_UP0,mem_power_ctrl_threshold_up
-	setarg POWER_CTRL_LOSSPAC_THRESH_DOWN0
-	call g24_store_mem_power_ctrl_threshold_down
-	//jam POWER_CTRL_LOSSPAC_THRESH_DOWN0,mem_power_ctrl_threshold_down
-//	jam POWER_CTRL_RSSI_THRESH_DOWN0,mem_rssi_ctrl_threshold_down
-	setarg offset_power_ctrl_txpwr_level0
-	//fetch 1,mem_power_ctrl_txpwr_level0
-	branch g24_iadd_offset_mem_txpower
-
-/*
-rssi_check_distance:
-	disable user
-	arg mem_rssi_signal_buf,rega
-	arg RSSI_BUF_LEN_SIGNAL+1,loopcnt
-	call rssi_average
-	storet 1,mem_rssi_signal_avg
-	fetch 1,mem_rssi_ctrl_threshold_down
-	isub temp,null
-	branch enable_user,positive
-	rtn
-*/
-g24_start_pairing_sm1:
-	set1 mark_24g,mark
-	call g24_pair_init
-g24_set_pairing_sm_1:
-	//jam STATE_24G_PAIRING_1,mem_24g_pairing_sm
-	setarg STATE_24G_PAIRING_1
-	branch g24_store_mem_pairing_sm
-
-g24_pairing_sm:
-	add regc,offset_24g_ensure,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_ensure
-	beq ENSURE_ON_24G,enable_user
-	call g24_fetch_mem_pairing_sm
-	//fetch 1,mem_24g_pairing_sm
-	beq STATE_24G_PAIRING_1,g24_pairing_sm_1
-	beq STATE_24G_PAIRING_2,g24_pairing_sm_2
-	beq STATE_24G_PAIRING_3,g24_pairing_sm_3
-	branch assert
-
-g24_pairing_sm_1:
-	setarg STATE_24G_PAIRING_1_WAITING_ACK
-	call g24_store_mem_pairing_sm
-	//jam STATE_24G_PAIRING_1_WAITING_ACK,mem_24g_pairing_sm
-	jam 0xaa,mem_24g_common_temp
-	branch g24_pairing_sm_common
-g24_pairing_sm_2:
-	setarg STATE_24G_PAIRING_2_WAITING_ACK
-	call g24_store_mem_pairing_sm
-	//jam STATE_24G_PAIRING_2_WAITING_ACK,mem_24g_pairing_sm
-	jam 0x55,mem_24g_common_temp
-	branch g24_pairing_sm_common
-g24_pairing_sm_3:
-	setarg STATE_24G_PAIRING_3_WAITING_ACK
-	call g24_store_mem_pairing_sm
-	//jam STATE_24G_PAIRING_3_WAITING_ACK,mem_24g_pairing_sm
-	jam 0x22,mem_24g_common_temp
-g24_pairing_sm_common:
-	call g24_fetch_mem_data_type
-	//fetch 1,mem_24g_data_type
-	and_into bits_data,pdata
-	store 1,mem_24g_common_temp+1
-	call g24_fetch_mem_device_addr
-	//fetch 4,mem_24g_device_addr
-	store 4,mem_24g_common_temp+2
-g24_put_pairing_data_in_buff:
-	jam 0,mem_24g_common_temp+6
-	arg mem_24g_common_temp,rega
-	arg 7,temp
-	call g24_put_data_in_buff	
-	call g24_transmit_prep
-	call g24_txdata_enable_tx
-	branch enable_user
-
-g24_paring_mode:
-	call g24_fetch_mem_pairing_sm
-	//fetch 1,mem_24g_pairing_sm
-	rtneq STATE_24G_PAIRING_SUCCESS
-	beq STATE_24G_PAIRING_1_WAITING_ACK,g24_pairing_sm_1_waiting_ack
-	beq STATE_24G_PAIRING_2_WAITING_ACK,g24_pairing_sm_2_waiting_ack
-	beq STATE_24G_PAIRING_3_WAITING_ACK,g24_pairing_sm_3_waiting_ack
-	rtn
-
-g24_pairing_sm_1_waiting_ack:
-	setarg STATE_24G_PAIRING_2
-	call g24_store_mem_pairing_sm
-	//jam STATE_24G_PAIRING_2,mem_24g_pairing_sm
-	branch g24_transmit_abandon
-g24_pairing_sm_2_waiting_ack:
-	setarg STATE_24G_PAIRING_3
-	call g24_store_mem_pairing_sm
-	//jam STATE_24G_PAIRING_3,mem_24g_pairing_sm
-	branch g24_transmit_abandon
-g24_pairing_sm_3_waiting_ack:
-	setarg STATE_24G_PAIRING_SUCCESS
-	call g24_store_mem_pairing_sm
-	//jam STATE_24G_PAIRING_SUCCESS,mem_24g_pairing_sm
-	jam BT_EVT_24G_PAIRING_COMPLETE,mem_fifo_temp
-	call ui_ipc_send_event
-	add regc,offset_24g_rxpayload_add2,rega
-	ifetch 4,rega
-	//fetch 4,mem_24g_rxpayload+2
-	call g24_store_mem_addr
-	//store 4,mem_24g_addr
-	branch g24_transmit_abandon
-
-g24_auto_pair_start:
-	set0 mark_24g,mark
-	call g24_auto_pair_set_device_info
-	call g24_tx_attemp_data_prep
-g24_auto_pair_restart:	
-	call g24_set0_mem_check_dongle_times
-g24_auto_pair_start_loop:
-	nop 2000
-	call g24_fetch_mem_check_dongle_times
-	beq 0xff,g24_stop_24g_mode
-	call g24_transmit_receive_ack
-	nbranch g24_auto_pair_retry,sync
-	nbranch g24_auto_pair_retry,user3
-	call g24_ackpayload_parse
-	call g24_head_ptr2regc
-	add regc,offset_24g_paring_addr,rega
-	ifetcht 4,rega
-	call g24_fetch_mem_addr_isub_temp
-	branch g24_start_pairing_sm1,zero
-	call g24_head_ptr2regc
-	add regc,offset_24g_rxpayload_add2,rega
-	ifetch 4,rega
-	beq 0,g24_auto_pair_restart
-	call g24_store_mem_addr
-	branch g24_tx_attemp_dongle_succ
-
-g24_auto_pair_retry:
-	call g24_fetch_mem_check_dongle_times
-	increase 1,pdata
-	call g24_store_mem_check_dongle_times
-
-	call g24_fetch_mem_auto_paring_switch
-	increase 1,pdata
-	and_into 1,pdata
-	call g24_store_mem_auto_paring_switch
-	beq 0,g24_auto_pair_device_attemp
-	beq 1,g24_auto_pair_pair_attemp
-	rtn
-
-g24_fetch_mem_auto_paring_switch:
-	setarg offset_24g_auto_pair_switch
-	branch g24_set_rega_ifetch_1byte
-g24_store_mem_auto_paring_switch:
-	arg offset_24g_auto_pair_switch,rega
-	branch g24_set_contw_with_regb_store_1byte
-
-g24_auto_pair_set_device_info:
-	call g24_store_mem_tx_power
-	call g24_fetch_mem_device_addr
-	call g24_store_mem_addr
-	branch g24_ch
-
-g24_auto_pair_device_attemp:
-	call g24_auto_pair_set_device_info
-	branch g24_auto_pair_start_loop
-
-g24_auto_pair_pair_attemp:
-	call g24_pair_init
-	branch g24_auto_pair_start_loop
-
-
-g24_start_24g_mode:
-	set0 mark_24g,mark
-	call g24_ch
-	call g24_fetch_mem_pairing_sm
-	//fetch 1,mem_24g_pairing_sm
-	rtnne STATE_24G_PAIRING_SUCCESS
-	call g24_tx_attemp_data_prep
-	call g24_set0_mem_check_dongle_times
-	//jam 0,mem_24g_check_dongle_times
-g24_tx_attemp_dongle_loop:
-	nop 2000
-	call g24_fetch_mem_check_dongle_times
-	//fetch 1,mem_24g_check_dongle_times
-	beq 0xff,g24_stop_24g_mode
-	call g24_transmit_receive_ack
-	nbranch g24_attemp_txdata_retry,sync
-	nbranch g24_attemp_txdata_retry,user3
-g24_tx_attemp_dongle_succ:	
-	set1 mark_24g,mark
-	call g24_set0_mem_check_dongle_times
-	setarg STATE_24G_PAIRING_SUCCESS
-	call g24_store_mem_pairing_sm
-	//jam 0,mem_24g_check_dongle_times
-g24_app_tx_attempt_success:	
-	jam BT_EVT_24G_ATTEMPT_SUCCESS,mem_fifo_temp
-	branch ui_ipc_send_event
-
-g24_tx_attemp_data_prep:
-	set1 mark_24g_conext,mark
-	jam 0xff,mem_24g_common_temp
-	call g24_fetch_mem_data_type
-	//fetch 1,mem_24g_data_type
-	call g24_put_data_in_buff_pre
-	branch g24_transmit_prep
-	
-g24_attemp_txdata_retry:
-	call g24_fetch_mem_check_dongle_times
-	//fetch 1,mem_24g_check_dongle_times
-	increase 1,pdata
-	call g24_store_mem_check_dongle_times
-	//store 1,mem_24g_check_dongle_times
-	call g24_ch
-	branch g24_tx_attemp_dongle_loop
-
-g24_check_51cmd_start_24g:
-	call g24_store_mem_tx_power
-	//fetch 1,mem_tx_power_temp
-	//store 1,mem_tx_power
-	setarg STATE_24G_PAIRING_SUCCESS
-	call g24_store_mem_pairing_sm
-	//jam STATE_24G_PAIRING_SUCCESS,mem_24g_pairing_sm
-	branch g24_start_24g_mode
-/*	
-g24_check_51cmd_stop_24g:
-	call g24_store_mem_tx_power
-	set0 mark_24g,mark
-	branch le_disable
-*/
-
-
-dongle_init:
-	bpatch patch17_2,mem_patch17
-	call g24_head_ptr2regc
-	setarg dongle_rxdata_type1
-	add regc,offset_24g_cb_rxdata_type1,contw
-	istore 2,contw
-	//store 2,mem_24g_cb_rxdata_type1
-	call g24_receive_init
-	call usb_init
-	call g24_fetch_mem_pair_mode
-	//fetch 1,mem_24g_pair_mode
-	bpatch patch17_3,mem_patch17
-	beq 0x00,dongle_auto_bind
-	beq 0x01,dongle_pc_bind
-	beq 0x0f,dongle_all_powerful
-	branch assert
-
-g24_receive_init:
-	call g24_store_mem_tx_power_temp
-	arg 0x80,loopcnt
-	arg mem_rssi_noise_buffer,contw
-	branch memset0
-
-dongle_all_powerful:
-	call dongle_check_mode
-dongle_all_powerful_loop:
-	call g24_dongle_work_mode
-	call usb_isr
-	branch dongle_all_powerful_loop
-
-dongle_pc_bind:
-	bpatch patch17_4,mem_patch17
-	call dongle_check_mode
-dongle_pc_bind_loop:	
-	call g24_dongle_work_mode
-	call g24_dongle_bind_mode
-	call usb_isr
-	call dongle_usb_dispatch
-	branch dongle_pc_bind_loop
-
-dongle_check_mode:
-	//jam DONGLE_WORK,mem_dongle_work_mode
-	//jam CLEAR_INIT,mem_dongle_mode_init
-	//jam 0,mem_24g_ackpayload_enable
-	call g24_set_work_mem_dongle_work_mode
-	call g24_set0_mem_dongle_mode_init
-	branch g24_set0_mem_ackpayload_enable
-	
-g24_dongle_work_mode:
-	call g24_fetch_mem_dongle_work_mode
-	//fetch 1,mem_dongle_work_mode
-	rtnne DONGLE_WORK
-g24_dongle_work_mode_start:
-	call g24_dongle_work_init
-	call g24_ch_process
-	call g24_receive_packet_start
-	branch g24_blank_data_process
-
-g24_dongle_work_init:
-	call g24_fetch_mem_dongle_mode_init
-	//fetch 1,mem_dongle_mode_init
-	rtnbit1 DONGLE_WORK
-	set1 DONGLE_WORK,pdata
-	call g24_store_mem_dongle_mode_init
-	//store 1,mem_dongle_mode_init
-	call g24_store_mem_tx_power
-	//fetch 1,mem_tx_power_temp
-	//store 1,mem_tx_power
-	call g24_set0_mem_ackpayload_enable
-	//jam 0,mem_24g_ackpayload_enable
-	jam 0,mem_usb_tx_enable
-	call g24_set1_mem_abort_pac
-	//jam 1,mem_24g_abort_pac
-	call g24_dongle_init
-g24_rx_interrupt_clear:
-	add regc,offset_24g_rxbuf,contw
-	//arg mem_24g_rxbuf,contw
-	arg 66,loopcnt
-	branch clear_mem
-
-g24_dongle_init:
-	call g24_set0_mem_pid
-	//jam 0,mem_24g_pid
-	call g24_fetch_mem_rx_addr
-	//fetch 4,mem_24g_rx_addr
-	call g24_store_mem_addr
-	//store 4,mem_24g_addr
-	branch g24_ch
-
-g24_ch_process:
-	bpatch patch17_5,mem_patch17
-	call g24_fetch_mem_abort_pac
-	//fetch 1,mem_24g_abort_pac
-	beq 1,g24_noise_rssi
-	call g24_fetch_mem_hop_pac
-	//fetch 1,mem_24g_hop_pac
-	beq 1,g24_ch	
-	setarg offset_24g_hop_btclk
-	iadd regc,rega
-	ifetcht 4,rega
-	//fetcht 4,mem_24g_hop_btclk
-	copy clkn_bt,pdata
-	isub temp,null
-	ncall g24_timer_timeout,positive
-	copy pdata,regb
-	setarg offset_24g_hop_btclk
-	iadd regc,rega
-	ifetch 4,rega
-	copy pdata,temp
-	//fetch 4,mem_24g_hop_btclk
-	setarg offset_24g_hop_interval
-	iadd regc,rega
-	copy temp,pdata
-	ifetcht 1,rega
-	//fetcht 1,mem_24g_hop_interval
-	iadd temp,temp
-	copy regb,pdata
-	isub temp,null
-	nrtn positive
-	set0 28,pdata
-	setarg offset_24g_hop_btclk
-	iadd regc,contw
-	istore 4,contw
-	//store 4,mem_24g_hop_btclk
-g24_ch_update:
-	call g24_ch
-	call g24_fetch_mem_rf_laststa
-	//fetch 1,mem_24g_rf_laststa
-	increase 1,pdata
-	call g24_store_mem_rf_laststa
-	//store 1,mem_24g_rf_laststa
-	rtnne 2
-	call g24_set0_mem_rf_laststa
-	//jam 0,mem_24g_rf_laststa
-	//jam 1,mem_24g_abort_pac
-	//rtn
-	branch g24_set1_mem_abort_pac
-	
-g24_ch_timer_reinit:
-	copy clkn_bt,pdata
-	arg offset_24g_hop_btclk,rega
-	call g24_set_contw_with_temp
-	istore 4,contw
-	//store 4,mem_24g_hop_btclk
-	//jam 0,mem_24g_rf_laststa
-	//rtn
-	branch g24_set0_mem_rf_laststa
-
-g24_noise_rssi:
-	arg mem_rssi_noise_buffer,rega
-	call g24_noise_rssi_average
-	add regc,offset_rssi_noise_avg,contw
-	istoret 1,contw
-	//storet 1,mem_rssi_noise_avg
-	sub temp,RSSI_THRESH_NOISE,null
-	nrtn positive	
-	branch g24_ch
-
-g24_noise_rssi_average:
-	arg RSSI_BUF_LEN_NOISE+1,loopcnt
-	branch rssi_average
-
-g24_blank_data_process:
-	call g24_ms_blank_data
-	call g24_kb_blank_data
-	branch g24_kb_mul_blank_data
-
-g24_ms_blank_data:
-	setarg offset_24g_ms_blank_data_enable
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_ms_blank_data_enable
-	rtn blank
-	arg TIMER_MS_BLANK,queue
-	call timer_check
-	nrtn blank
-	call g24_set0_mem_ms_blank_data_enable
-	//jam 0,mem_24g_ms_blank_data_enable
-g24_ms_blank_data_2usb:
-	setarg MS_REPORT_ID
-	store 1,mem_usb_mouse_data
-	setarg 0
-	istore 7,contw
-	branch g24_data_type1_usbtx_enable
-
-g24_kb_blank_data:
-	setarg offset_24g_kb_blank_data_enable
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_kb_blank_data_enable
-	rtn blank
-	arg TIMER_KB_BLANK,queue
-	call timer_check
-	nrtn blank
-	call g24_set0_mem_kb_blank_data_enable
-	//jam 0,mem_24g_kb_blank_data_enable
-g24_kb_blank_data_2usb:	
-	arg mem_usb_kb_data,contw
-	arg 2,loopcnt
-	call memset0
-	jam KB_NORMAL_REPORT_ID,mem_usb_kb_data
-	branch g24_kb_data_into_ep1_fifo
-
-g24_kb_mul_blank_data:
-	setarg offset_24g_kb_mul_blank_data_enable
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_kb_mul_blank_data_enable
-	rtn blank
-	arg TIMER_KB_MUL_BLANK,queue
-	call timer_check
-	nrtn blank
-	call g24_set0_mem_kb_mul_blank_data_enable
-	//jam 0,mem_24g_kb_mul_blank_data_enable
-g24_kb_mul_blank_data_2usb:
-	arg mem_usb_kb_multikey,contw
-	arg 2,loopcnt
-	call memset0
-	jam KB_MULTIKEY_REPORT_ID,mem_usb_kb_multikey
-	branch g24_kb_mul_data_into_ep2_fifo
-
-g24_dongle_bind_mode:
-	call g24_fetch_mem_dongle_work_mode
-	//fetch 1,mem_dongle_work_mode
-	rtnne DONGLE_BIND
-	call g24_dongle_bind_init
-	branch g24_dongle_bind_data_process
-
-g24_dongle_bind_init:
-	call g24_fetch_mem_dongle_mode_init
-	//fetch 1,mem_dongle_mode_init
-	rtnbit1 DONGLE_BIND
-	set1 DONGLE_BIND,pdata
-	call g24_store_mem_dongle_mode_init
-	//store 1,mem_dongle_mode_init
-	call g24_set1_mem_ackpayload_enable
-	//jam 1,mem_24g_ackpayload_enable
-	call g24_pair_init
-	setarg 0
-	arg offset_dongle_ms_bind_step,rega
-	call g24_set_contw_with_temp
-	//store 3,mem_dongle_ms_bind_step
-	branch g24_contw_istore_3byte
-
-g24_dongle_bind_data_process:
-	call g24_receive_transmit_ack
-	nbranch g24_rx_interrupt_clear,user3	
-	add regc,offset_24g_rxbuf,contr
-	setarg offset_24g_rxdata_temp
-	iadd regc,contw
-	arg 8,loopcnt
-	call memcpy
-	setarg offset_24g_rxdata_temp_add2
-	call g24_set_rega_ifetch_1byte
-	beq DATATYPE_BIND,g24_dongle_bind_first_step	//bind step 1
-	beq DATATYPE_CONFIG,g24_dongle_bind_second_step
-	beq DATATYPE_OK,g24_dongle_bind_third_step
-	beq 0xff,g24_data_attemp
-	branch g24_rx_interrupt_clear
-
-g24_dongle_bind_first_step:
-	call g24_fetch_mem_rxdata_temp_add3_1byte
-	beq BIND_MOUSE,g24_dongle_bind_first_step_mouse
-	beq BIND_KEYBOARD,g24_dongle_bind_first_step_keyboard
-	rtn
-g24_dongle_bind_first_step_mouse:
-	setarg 1
-	call g24_store_mem_ms_bind_step
-	//jam 1,mem_dongle_ms_bind_step
-g24_dongle_bind_ms_payload_cfg:
-	setarg DATATYPE_MOUSE
-	call g24_store_mem_bind_payload
-	//jam DATATYPE_MOUSE,mem_24g_bind_payload
-g24_dongle_bind_payload_cfg:	
-	setarg 0x80
-	arg offset_24g_bind_payload_add1,rega
-	call g24_set_contw_with_regb_store_1byte
-	//jam 0x80,mem_24g_bind_payload+1
-	call g24_fetch_mem_rx_addr
-	//fetch 4,mem_24g_rx_addr
-	arg offset_24g_bind_payload_add2,rega
-	call g24_set_contw_with_temp
-	//store 4,mem_24g_bind_payload+2
-	branch g24_contw_istore_4byte
-
-g24_dongle_bind_first_step_keyboard:
-	setarg 1
-	call g24_store_mem_kb_bind_step
-	//jam 1,mem_dongle_kb_bind_step
-g24_dongle_bind_kb_payload_cfg:
-	setarg DATATYPE_KEYBOARD
-	call g24_store_mem_bind_payload
-	//jam DATATYPE_KEYBOARD,mem_24g_bind_payload
-	branch g24_dongle_bind_payload_cfg
-		
-g24_dongle_bind_second_step:
-	call g24_fetch_mem_rxdata_temp_add3_1byte
-	beq BIND_MOUSE,g24_dongle_bind_second_step_mouse
-	beq BIND_KEYBOARD,g24_dongle_bind_second_step_keyboard
-	rtn
-g24_dongle_bind_second_step_mouse:
-	call g24_dongle_bind_ms_payload_cfg
-	setarg offset_dongle_ms_bind_step
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_dongle_ms_bind_step
-	beq 1,g24_dongle_ms_bind_step_set2
-	rtn
-g24_dongle_ms_bind_step_set2:
-	setarg 2
-	//jam 2,mem_dongle_ms_bind_step
-g24_store_mem_ms_bind_step:
-	arg offset_dongle_ms_bind_step,rega
-	branch g24_set_contw_with_regb_store_1byte
-	
-g24_dongle_bind_second_step_keyboard:
-	call g24_dongle_bind_kb_payload_cfg
-	setarg offset_dongle_kb_bind_step
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_dongle_kb_bind_step
-	beq 1,g24_dongle_kb_bind_step_set2
-	rtn
-g24_dongle_kb_bind_step_set2:
-	setarg 2
-	//jam 2,mem_dongle_kb_bind_step
-g24_store_mem_kb_bind_step:
-	arg offset_dongle_kb_bind_step,rega
-	branch g24_set_contw_with_regb_store_1byte
-
-g24_dongle_bind_third_step:
-	call g24_fetch_mem_rxdata_temp_add3_1byte
-	beq BIND_MOUSE,g24_dongle_bind_third_step_mouse
-	beq BIND_KEYBOARD,g24_dongle_bind_third_step_keyboard
-	rtn
-g24_dongle_bind_third_step_mouse:
-	setarg offset_dongle_ms_bind_step
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_dongle_ms_bind_step
-	beq 2,g24_dongle_ms_bind_step_success
-	rtn
-g24_dongle_ms_bind_step_success:
-	call g24_fetch_mem_bind_device_status
-	//fetch 1,mem_dongle_bind_device_status
-	or_into 0x01,pdata
-	call g24_store_mem_bind_device_status
-	//store 1,mem_dongle_bind_device_status
-g24_dongle_bind_exit:	
-	setarg 0
-	setarg offset_dongle_ms_bind_step
-	iadd regc,contw
-	istore 2,contw
-	branch g24_rx_interrupt_clear
-
-g24_dongle_bind_third_step_keyboard:
-	setarg offset_dongle_kb_bind_step
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_dongle_kb_bind_step
-	bne 0,g24_dongle_kb_bind_step_success
-	rtn
-g24_dongle_kb_bind_step_success:
-	call g24_fetch_mem_bind_device_status
-	//fetch 1,mem_dongle_bind_device_status
-	or_into 0x02,pdata
-	call g24_store_mem_bind_device_status
-	//store 1,mem_dongle_bind_device_status
-	branch g24_dongle_bind_exit
-
-	
-dongle_usb_dispatch:
-	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
-	bpatch patch17_6,mem_patch17
-	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
-usb0_data_ready_report_set0:
-	jam 0,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 usb0_data_ready_report_set0
-dongle_dispose_cmd_get_bind:
-	call g24_fetch_mem_bind_device_status
-	//fetch 1,mem_dongle_bind_device_status
-	store 1,mem_usb0_get_report_data+1
-	branch usb0_data_ready_report_set1
-dongle_dispose_cmd_exit_bind:
-	call g24_set_work_mem_dongle_work_mode
-	//jam DONGLE_WORK,mem_dongle_work_mode
-	call g24_set0_mem_dongle_mode_init
-	//jam CLEAR_INIT,mem_dongle_mode_init
-	call g24_fetch_mem_bind_device_status
-	//fetch 1,mem_dongle_bind_device_status
-	store 1,mem_usb0_get_report_data+1
-	branch usb0_data_ready_report_set1
-
-dongle_dispose_cmd_read_mode:
-dongle_dispose_in_bind_mode:
-	jam COMMAND_BIND,mem_usb0_get_report_data+1
-	branch usb0_data_ready_report_set1
-
-dongle_dispose_cmd_mode:
-	fetch 1,mem_usb0_set_report_data+2
-	beq COM_MODE_BIND,dongle_enter_bind_mode
-//	beq COM_MODE_TEST,dongle_enter_test_mode
-	branch usb0_data_ready_report_set0
-dongle_enter_bind_mode:
-	//jam DONGLE_BIND,mem_dongle_work_mode
-	//jam CLEAR_INIT,mem_dongle_mode_init
-	call g24_bind_mode_enable
-usb0_data_ready_report_set1:
-	jam 1,mem_usb0_data_ready_report
-	rtn
-//dongle_enter_test_mode:
-//	jam DONGLE_TEST,mem_dongle_work_mode
-//	branch usb0_data_ready_report_set1
-
-dongle_dispose_cmd_current_project:
-	jam PRODUCT_ID,mem_usb0_get_report_data+1
-	branch usb0_data_ready_report_set1
-
-dongle_dispose_cmd_current_mode:
-	call g24_fetch_mem_dongle_work_mode
-	//fetch 1,mem_dongle_work_mode
-	beq DONGLE_WORK,dongle_dispose_in_work_mode
-	beq DONGLE_BIND,dongle_dispose_in_bind_mode
-//	beq DONGLE_TEST,dongle_dispose_in_test_mode
-	rtn
-dongle_dispose_in_work_mode:
-	jam COMMAND_MODE,mem_usb0_get_report_data+1
-	branch usb0_data_ready_report_set1
-//dongle_dispose_in_test_mode:
-//	jam COMMAND_TEST,mem_usb0_get_report_data+1
-//	branch usb0_data_ready_report_set1
-	
-dongle_dispose_cmd_current_fw_version:
-	jam FW_VERSION0,mem_usb0_get_report_data+1
-	jam FW_VERSION1,mem_usb0_get_report_data+2
-	jam FW_VERSION2,mem_usb0_get_report_data+3
-	branch usb0_data_ready_report_set1
-
-dongle_dispose_cmd_user_defined:
-	//report_id|cmd|data_len|data
-	call g24_set1_mem_ackpayload_enable
-	fetch 1,mem_usb0_set_report_data+2	//data_len:max 30bytes
-	increase 2,pdata
-	copy pdata,loopcnt
-	arg mem_usb0_set_report_data,contr
-	setarg offset_24g_ackpayload
-	iadd regc,contw
-	branch memcpy
-
-
-dongle_auto_bind:
-	bpatch patch17_7,mem_patch17
-	call g24_mode_switch_init
-dongle_auto_bind_loop:
-	call g24_receive_process
-	call usb_isr
-	branch dongle_auto_bind_loop
-
-g24_dongle_work_mode_auto:
-	call g24_fetch_mem_dongle_work_mode
-	//fetch 1,mem_dongle_work_mode
-	rtnne DONGLE_WORK
-	call g24_dongle_work_mode_start
-	branch g24_rx_nodata_process
-
-g24_dongle_bind_mode_auto:
-	call g24_fetch_mem_dongle_work_mode
-	//fetch 1,mem_dongle_work_mode
-	rtnne DONGLE_BIND
-	call g24_dongle_bind_init
-	call g24_dongle_bind_data_process
-	call g24_fetch_mem_bind_device_status
-	//fetch 1,mem_dongle_bind_device_status
-	rtn blank
-	call g24_set0_mem_mode_switch
-	//jam 0,mem_24g_mode_switch
-	call dongle_check_mode
-	call g24_enable_nodata_timer
-g24_timer_init:
-	setarg 0
-	add regc,offset_24g_tx_btclk,contw
-	//store 4,mem_24g_tx_btclk
-	branch g24_contw_istore_4byte
-
-g24_timer_check:
-	call disable_user
-	add regc,offset_24g_tx_btclk,rega
-	ifetcht 4,rega	
-	//fetcht 4,mem_24g_tx_btclk
-	copy clkn_bt,pdata
-	isub temp,null
-	ncall g24_timer_timeout,positive
-	copy pdata,regb
-	add regc,offset_24g_tx_btclk,rega
-	ifetch 4,rega
-	//fetch 4,mem_24g_tx_btclk
-	add regc,offset_24g_interval,rega
-	ifetcht 1,rega
-	//fetcht 1,mem_24g_interval
-	iadd temp,temp
-	copy regb,pdata
-	isub temp,null
-	nrtn positive
-	set0 28,pdata
-	add regc,offset_24g_tx_btclk,contw
-	istore 4,contw
-	//store 4,mem_24g_tx_btclk
-	branch enable_user
-
-g24_mode_switch_init:
-	setarg 1
-	call g24_store_mem_mode_switch
-	//jam 1,mem_24g_mode_switch
-	call g24_set0_mem_time_slice
-	//jam 0,mem_24g_time_slice
-	setarg 0xff
-	add regc,offset_24g_interval,contw
-	istore 1,contw
-	//jam 0xff,mem_24g_interval
-	branch g24_timer_init
-
-g24_mode_switch:
-	setarg offset_24g_mode_switch
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_mode_switch
-	rtn blank
-	call g24_timer_check
-	nrtn user
-	call g24_fetch_mem_time_slice
-	//fetch 1,mem_24g_time_slice
-	increase 1,pdata
-	and_into 1,pdata
-	call g24_store_mem_time_slice
-	//store 1,mem_24g_time_slice
-	beq 0,dongle_check_mode
-	beq 1,g24_bind_mode_enable
-	rtn
-
-g24_bind_mode_enable:
-	//jam DONGLE_BIND,mem_dongle_work_mode
-	//jam CLEAR_INIT,mem_dongle_mode_init
-	//rtn
-	setarg DONGLE_BIND
-	call g24_store_mem_dongle_work_mode
-	branch g24_set0_mem_dongle_mode_init
-
-g24_enable_nodata_timer:
-	setarg 1
-	call g24_store_mem_nodata_timer_enable
-	//jam 1,mem_24g_nodata_timer_enable
-g24_enable_nodata_timer_init:
-	setarg TIMER_NODATA_DELAY
-	arg TIMER_NODATA,queue
-	branch timer_init
-
-g24_rx_nodata_process:
-	call g24_fetch_mem_nodata_timer_enable
-	//fetch 1,mem_24g_nodata_timer_enable
-	rtn blank
-	arg TIMER_NODATA,queue
-	call timer_check
-	nrtn blank
-	call g24_set0_mem_nodata_timer_enable
-	//jam 0,mem_24g_nodata_timer_enable
-	//no data for more than 100ms,then go to search
-	setarg DONGLE_SEARCH
-	call g24_store_mem_dongle_work_mode	
-	//jam DONGLE_SEARCH,mem_dongle_work_mode
-	call g24_set0_mem_dongle_mode_init
-	//jam CLEAR_INIT,mem_dongle_mode_init
-	branch g24_rx_interrupt_clear
-
-g24_dongle_search_mode_auto:
-	bpatch patch18_0,mem_patch18
-	call g24_fetch_mem_dongle_work_mode
-	//fetch 1,mem_dongle_work_mode
-	rtnne DONGLE_SEARCH
-	call g24_dongle_search_mode_init
-	call g24_rx_auto_addr_ch_search
-	call g24_receive_transmit_ack
-	nbranch g24_rx_interrupt_clear,user3
-	//dongle addr,then parse rxdata
-	call g24_dongle_search_addr_check
-	call g24_receive_packet_parse,zero
-	//receive data,then go to paired
-	//jam DONGLE_WORK,mem_dongle_work_mode
-	//jam 0,mem_24g_ackpayload_enable
-	call dongle_check_mode
-	call g24_fetch_mem_dongle_mode_init
-	//fetch 1,mem_dongle_mode_init
-	set1 DONGLE_WORK,pdata
-	call g24_store_mem_dongle_mode_init
-	//store 1,mem_dongle_mode_init
-	call g24_rx_interrupt_clear
-	call g24_enable_nodata_timer
-	call g24_dongle_search_addr_check
-	branch g24_dg_ch_num_reinit,zero
-	setarg offset_24g_kb_addr
-	call g24_set_rega_ifetcht_4byte
-	//fetcht 4,mem_24g_kb_addr
-	call g24_fetch_mem_addr_isub_temp
-	branch g24_kb_ch_num_reinit,zero		
-	setarg offset_24g_mouse_addr
-	call g24_set_rega_ifetcht_4byte
-	//fetcht 4,mem_24g_mouse_addr
-	call g24_fetch_mem_addr_isub_temp
-	branch g24_ms_ch_num_reinit,zero
-	rtn
-
-g24_dongle_search_addr_check:
-	setarg offset_24g_rx_addr
-	call g24_set_rega_ifetcht_4byte
-	//fetcht 4,mem_24g_rx_addr
-g24_fetch_mem_addr_isub_temp:
-	call g24_fetch_mem_addr
-	//fetch 4,mem_24g_addr
-	isub temp,null
-	rtn
-
-g24_dg_ch_num_reinit:
-	setarg offset_24g_dg_ch_number
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_dg_ch_number
-g24_current_ch_num_reinit:
-	//store 1,mem_24g_current_ch_number
-	add regc,offset_24g_current_ch_number,contw
-	branch g24_contw_istore_1byte
-
-g24_kb_ch_num_reinit:
-	setarg offset_24g_kb_ch_number
-	call g24_set_rega_ifetch_1byte	
-	//fetch 1,mem_24g_kb_ch_number
-	branch g24_current_ch_num_reinit
-g24_ms_ch_num_reinit:
-	setarg offset_24g_ms_ch_number
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_ms_ch_number
-	branch g24_current_ch_num_reinit
-
-g24_dongle_search_mode_init:
-	call g24_fetch_mem_dongle_mode_init
-	//fetch 1,mem_dongle_mode_init
-	rtnbit1 DONGLE_SEARCH
-	set1 DONGLE_SEARCH,pdata
-	call g24_store_mem_dongle_mode_init
-	//store 1,mem_dongle_mode_init
-	call g24_set0_mem_time_slice
-	//jam 0,mem_24g_time_slice
-	call g24_set1_mem_ackpayload_enable
-	//jam 1,mem_24g_ackpayload_enable
-	setarg 0
-	add regc,offset_rssi_noise_dg_index,contw
-	istore 3,contw
-	//store 3,mem_rssi_noise_dg_index
-	arg offset_24g_dg_config_ch_once,rega
-	call g24_set_contw_with_temp
-	istore 7,contw
-	//store 7,mem_24g_dg_config_ch_once
-
-	call g24_dongle_search_addr_check
-	nrtn zero
-	add regc,offset_24g_current_ch_number,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_current_ch_number
-	arg offset_24g_dg_ch_number,rega
-	call g24_set_contw_with_regb_store_1byte
-	//store 1,mem_24g_dg_ch_number
-	add regc,offset_24g_ch,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_ch
-	//store 1,mem_24g_dg_last_ch
-	branch g24_store_mem_dg_last_ch
-
-g24_rx_auto_addr_ch_search:
-	bpatch patch18_1,mem_patch18
-	call g24_fetch_mem_time_slice
-	//fetch 1,mem_24g_time_slice
-	increase 1,pdata
-	and_into 3,pdata
-	call g24_store_mem_time_slice
-	//store 1,mem_24g_time_slice
-	//pairing address and channel come first
-	beq 0,g24_rx_auto_bind_config_kb
-	beq 1,g24_rx_auto_bind_config_dongle
-	beq 2,g24_rx_auto_bind_config_mouse
-	beq 3,g24_rx_auto_bind_config_dongle
-	rtn
-
-g24_rx_auto_bind_config_mouse:
-	call g24_dongle_bind_ms_payload_cfg
-	setarg offset_24g_mouse_addr
-	call g24_set_rega_ifetch_4byte
-	//fetch 4,mem_24g_mouse_addr
-	branch g24_rx_auto_addr_ch_search,blank
-	call g24_store_mem_addr
-	//store 4,mem_24g_addr
-	setarg offset_24g_ms_config_ch_once
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_ms_config_ch_once
-	call g24_ms_config_ch_once,blank
-	setarg offset_24g_ms_last_ch
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_ms_last_ch
-	call g24_store_mem_ch
-	//store 1,mem_24g_ch
-	add regc,offset_rssi_noise_ms_index,rega
-	ifetcht 1,rega
-	//fetcht 1,mem_rssi_noise_ms_index
-	arg mem_rssi_noise_ms_buffer,rega
-	call rssi_noise_store
-	add regc,offset_rssi_noise_ms_index,contw
-	istoret 1,contw
-	//storet 1,mem_rssi_noise_ms_index
-	call g24_noise_rssi_average
-	add regc,offset_rssi_noise_ms_avg,contw
-	istoret 1,contw
-	//storet 1,mem_rssi_noise_ms_avg
-	sub temp,RSSI_THRESH_NOISE,null
-	nrtn positive
-	setarg offset_24g_ms_ch_number	
-	call g24_set_rega_ifetcht_1byte
-	//fetcht 1,mem_24g_ms_ch_number
-	call g24_ch_temp_incre_size4 //map size =4
-	arg offset_24g_ms_ch_number,rega
-	call g24_set_contw_with_regb2
-	istoret 1,contw
-	//storet 1,mem_24g_ms_ch_number
-g24_store_mem_ms_last_ch:
-	//store 1,mem_24g_ms_last_ch
-	arg offset_24g_ms_last_ch,rega
-	branch g24_set_contw_with_regb_store_1byte
-
-g24_ms_config_ch_once:
-	setarg 1
-	arg offset_24g_ms_config_ch_once,rega
-	call g24_set_contw_with_regb_store_1byte
-	//jam 1,mem_24g_ms_config_ch_once
-	arg 0,temp
-	call g24_ch_calc
-	//store 1,mem_24g_ms_last_ch
-	//rtn
-	branch g24_store_mem_ms_last_ch
-	
-g24_rx_auto_bind_config_kb:
-	call g24_dongle_bind_kb_payload_cfg
-	setarg offset_24g_kb_addr
-	call g24_set_rega_ifetch_4byte
-	//fetch 4,mem_24g_kb_addr
-	branch g24_rx_auto_addr_ch_search,blank
-	call g24_store_mem_addr
-	//store 4,mem_24g_addr
-	setarg offset_24g_kb_config_ch_once
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_kb_config_ch_once
-	call g24_kb_config_ch_once,blank
-	setarg offset_24g_kb_last_ch
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_kb_last_ch
-	call g24_store_mem_ch
-	//store 1,mem_24g_ch
-	add regc,offset_rssi_noise_kb_index,rega
-	ifetcht 1,rega	
-	//fetcht 1,mem_rssi_noise_kb_index
-	arg mem_rssi_noise_kb_buffer,rega
-	call rssi_noise_store
-	add regc,offset_rssi_noise_kb_index,contw
-	istoret 1,contw
-	//storet 1,mem_rssi_noise_kb_index
-	call g24_noise_rssi_average
-	add regc,offset_rssi_noise_kb_avg,contw
-	istoret 1,contw
-	//storet 1,mem_rssi_noise_kb_avg
-	sub temp,RSSI_THRESH_NOISE,null
-	nrtn positive
-	setarg offset_24g_kb_ch_number	
-	call g24_set_rega_ifetcht_1byte	
-	//fetcht 1,mem_24g_kb_ch_number
-	call g24_ch_temp_incre_size4 //map size =4
-	arg offset_24g_kb_ch_number,rega
-	call g24_set_contw_with_regb2	
-	istoret 1,contw
-	//storet 1,mem_24g_kb_ch_number
-g24_store_mem_kb_last_ch:
-	//store 1,mem_24g_kb_last_ch
-	arg offset_24g_kb_last_ch,rega
-	branch g24_set_contw_with_regb_store_1byte
-
-g24_kb_config_ch_once:
-	setarg 1
-	arg offset_24g_kb_config_ch_once,rega
-	call g24_set_contw_with_regb_store_1byte
-	//jam 1,mem_24g_kb_config_ch_once
-	arg 0,temp
-	call g24_ch_calc
-	//store 1,mem_24g_kb_last_ch
-	//rtn
-	branch g24_store_mem_kb_last_ch
-
-g24_rx_auto_bind_config_dongle:
-	call g24_dongle_bind_ms_payload_cfg
-	call g24_fetch_mem_rx_addr
-	//fetch 4,mem_24g_rx_addr
-	call g24_store_mem_addr
-	//store 4,mem_24g_addr
-	setarg offset_24g_dg_config_ch_once
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_dg_config_ch_once
-	call g24_dg_config_ch_once,blank
-	call g24_dg_store_config_ch
-	add regc,offset_rssi_noise_dg_index,rega
-	ifetcht 1,rega	
-	//fetcht 1,mem_rssi_noise_dg_index
-	arg mem_rssi_noise_dg_buffer,rega
-	call rssi_noise_store
-	add regc,offset_rssi_noise_dg_index,contw
-	istoret 1,contw
-	//storet 1,mem_rssi_noise_dg_index
-	call g24_noise_rssi_average
-	add regc,offset_rssi_noise_dg_avg,contw
-	istoret 1,contw
-	//storet 1,mem_rssi_noise_dg_avg
-	sub temp,RSSI_THRESH_NOISE,null
-	nrtn positive
-	setarg offset_24g_dg_ch_number	
-	call g24_set_rega_ifetcht_1byte	
-	//fetcht 1,mem_24g_dg_ch_number
-	call g24_ch_temp_incre_size4 //map size =4
-	arg offset_24g_dg_ch_number,rega
-	call g24_set_contw_with_regb2
-	istoret 1,contw
-	//storet 1,mem_24g_dg_ch_number
-g24_store_mem_dg_last_ch:
-	//store 1,mem_24g_dg_last_ch
-	//rtn
-	arg offset_24g_dg_last_ch,rega
-	branch g24_set_contw_with_regb_store_1byte
-
-
-g24_dg_config_ch_once:
-	//jam 1,mem_24g_dg_config_ch_once
-	//fetch 1,mem_24g_dg_last_ch
-	//store 1,mem_24g_ch
-	//rtn
-	setarg 1
-	arg offset_24g_dg_config_ch_once,rega
-	call g24_set_contw_with_regb_store_1byte
-g24_dg_store_config_ch:
-	setarg offset_24g_dg_last_ch
-	call g24_set_rega_ifetch_1byte
-	branch g24_store_mem_ch
-
-
-g24_transmit_ack:
-//data type
-	add regc,offset_24g_rxbuf,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_rxbuf
-	call g24_store_mem_data_type
-	//store 1,mem_24g_data_type
-//read len pid crc
-	call g24_read_len_pid_crc
-//read ack
-	call g24_fetch_mem_rxbuf_add1
-	//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_ackpayload_prep:
-	bpatch patch18_2,mem_patch18
-	add regc,offset_24g_datalen,contw
-	call g24_mem_set0
-	//jam 0,mem_24g_datalen
-	setarg offset_24g_ackpayload_enable
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_ackpayload_enable
-	rtn blank
-	setarg 0x06
-	add regc,offset_24g_datalen,contw
-	istore 1,contw
-	//jam 0x06,mem_24g_datalen
-	arg 0x06,loopcnt
-	setarg offset_24g_bind_payload
-	iadd regc,contr
-	//arg mem_24g_bind_payload,contr
-	add regc,offset_24g_txbuf,contw
-	//arg mem_24g_txbuf,contw
-	branch memcpy
-
-
-g24_receive_packet_start:
-	call g24_receive_transmit_ack
-	nbranch g24_rx_interrupt_clear,user3
-	branch g24_receive_packet_parse
-
-g24_receive_transmit_ack:
-	call g24_rx_interrupt_clear
-	call g24_receive_packet
-	nrtn user3
-	branch g24_transmit_ack
-
-g24_receive_packet_parse:
-	bpatch patch18_3,mem_patch18
-	call g24_receive_packet_parse_pid_crc
-	nbranch g24_rx_interrupt_clear,user
-	add regc,offset_24g_rxdata_length,rega
-	ifetch 1,rega
-	//fetch 1,mem_24g_rxdata_length
-	branch g24_rx_interrupt_clear,blank
-	increase 2,pdata
-	iforce loopcnt
-	add regc,offset_24g_rxbuf,contr
-	//arg mem_24g_rxbuf,contr
-	setarg offset_24g_rxdata_temp
-	iadd regc,contw
-	//arg mem_24g_rxdata_temp,contw
-	call memcpy
-	call g24_set0_mem_mode_switch
-	//jam 0,mem_24g_mode_switch
-	call g24_fetch_mem_pair_mode
-	//fetch 1,mem_24g_pair_mode
-	call g24_enable_nodata_timer,blank
-	setarg offset_24g_rxdata_temp_add2
-	call g24_set_rega_ifetch_1byte
-	//fetch 1,mem_24g_rxdata_temp+2
-	beq 0x01,g24_data_type1
-	beq 0x02,g24_data_type2
-	beq 0x03,g24_data_type3
-	beq 0xff,g24_data_attemp
-	branch g24_rx_interrupt_clear
-
-g24_receive_packet_parse_pid_crc:
-	call g24_head_ptr2regc
-	call disable_user
-	add regc,offset_24g_sta_pid,rega
-	ifetch 1,rega		
-	//fetch 1,mem_24g_sta_pid
-	add regc,offset_24g_last_pid,rega
-	ifetcht 1,rega		
-	//fetcht 1,mem_24g_last_pid
-	isub temp,null
-	ncall enable_user,zero
-	add regc,offset_24g_sta_pid,rega
-	ifetch 1,rega	
-	//fetch 1,mem_24g_sta_pid
-	add regc,offset_24g_last_pid,contw
-	istore 1,contw	
-	//store 1,mem_24g_last_pid
-	add regc,offset_24g_sta_crc,rega
-	ifetch 3,rega	
-	//fetch 3,mem_24g_sta_crc
-	add regc,offset_24g_last_crc,rega
-	ifetcht 3,rega	
-	//fetcht 3,mem_24g_last_crc
-	isub temp,null
-	ncall enable_user,zero
-	add regc,offset_24g_sta_crc,rega
-	ifetch 3,rega
-	//fetch 3,mem_24g_sta_crc
-	add regc,offset_24g_last_crc,contw
-	//store 3,mem_24g_last_crc
-	branch g24_contw_istore_3byte
-
-g24_data_type1:
-	call g24_ch_timer_reinit
-	call g24_fetch_mem_abort_pac
-	store 1,mem_temp
-	//fetch 1,mem_24g_abort_pac
-	call g24_fetcht_mem_rxdata_temp
-	fetch 1,mem_temp
-	//fetcht 1,mem_24g_rxdata_temp
-	isolate1 bit_abort,temp
-	setflag true,0,pdata
-	add regc,offset_24g_abort_pac,contw
-	istore 1,contw
-	//store 1,mem_24g_abort_pac
-	beq 1,g24_data_attemp_mouse
-	call g24_fetch_mem_hop_pac
-	//fetch 1,mem_24g_hop_pac
-	call g24_fetcht_mem_rxdata_temp
-	//fetcht 1,mem_24g_rxdata_temp
-	isolate1 bit_hop,temp
-	setflag true,0,pdata
-	call g24_store_mem_hop_pac
-	//store 1,mem_24g_hop_pac
-	add regc,offset_24g_cb_rxdata_type1,rega
-	ifetch 2,rega
-	//fetch 2,mem_24g_cb_rxdata_type1
-	branch callback_func
-
-dongle_rxdata_type1:
-	setarg MS_REPORT_ID
-	store 1,mem_usb_mouse_data	//report id
-	call g24_fetch_mem_rxdata_temp_add3_7byte
-	//fetch 7,mem_24g_rxdata_temp+3	//key
-	istore 7,contw
-	call g24_fetch_mem_rxdata_temp_add3_7byte
-	//fetch 7,mem_24g_rxdata_temp+3	//key
-	ncall g24_ms_enable_blank_data_forcibly,blank//get kb data
-	call g24_fetch_mem_rxdata_temp_add3_7byte
-	//fetch 7,mem_24g_rxdata_temp+3	//key
-	call g24_ms_disable_blank_data_forcibly,blank
-g24_data_type1_usbtx_enable:
-	jam USB_EP2_MS,mem_usb_ep2_data
-g24_data_type1_usbtx_enable_ep2:	
-	fetch 1,mem_usb_tx_enable
-	set1 2,pdata
-	store 1,mem_usb_tx_enable
-	rtn
-	
-g24_ms_enable_blank_data_forcibly:
-	setarg 1
-	call g24_store_mem_ms_blank_data_enable	
-	//jam 1,mem_24g_ms_blank_data_enable
-g24_ms_enable_blank_data_timer:
-	setarg TIMER_MS_BLANK_DELAY
-	arg TIMER_MS_BLANK,queue
-	branch timer_init
-g24_ms_disable_blank_data_forcibly:
-	call g24_set0_mem_ms_blank_data_enable
-	//jam 0,mem_24g_ms_blank_data_enable
-g24_ms_disable_blank_data_timer:	
-	setarg 0
-	arg TIMER_MS_BLANK,queue
-	branch timer_init
-	
-g24_data_type2:
-	call g24_fetcht_mem_rxdata_temp
-	//fetcht 1,mem_24g_rxdata_temp
-	isolate1 bit_abort,temp
-	branch g24_data_attemp_kbd,true
-	arg mem_usb_kb_data,contw
-	call g24_data_type2_reverse_data
-	fetch 8,mem_usb_kb_data
-	ncall g24_kb_enable_blank_data_forcibly,blank//get kb data
-	fetch 8,mem_usb_kb_data
-	call g24_kb_disable_blank_data_forcibly,blank
-	call g24_head_ptr2regc
-	fetch 8,mem_usb_kb_data
-	arg offset_24g_kb_data_sta_data,rega
-	call g24_set_contw_with_temp
-	istore 8,contw
-	//store 8,mem_24g_kb_data_sta_data
-	setarg offset_24g_kb_data_last_data
-	iadd regc,rega
-	ifetcht 8,rega
-	//fetcht 8,mem_24g_kb_data_last_data
-	isub temp,null
-	ncall g24_kb_data_dispose,zero
-	setarg offset_24g_kb_data_sta_data
-	iadd regc,rega
-	ifetch 8,rega
-	//fetch 8,mem_24g_kb_data_sta_data
-	arg offset_24g_kb_data_last_data,rega
-	call g24_set_contw_with_temp
-	istore 8,contw
-	//store 8,mem_24g_kb_data_last_data
-	branch g24_rx_interrupt_clear
-
-g24_data_type2_reverse_data:
-	setarg offset_24g_rxdata_temp_add2
-	iadd regc,contr
-	//arg mem_24g_rxdata_temp+2,contr
-	arg 9,loopcnt
-	branch reverse_byte
-
-g24_kb_enable_blank_data_forcibly:
-	setarg 1
-	call g24_store_mem_kb_blank_data_enable
-	//jam 1,mem_24g_kb_blank_data_enable
-g24_kb_enable_blank_data_timer:	
-	setarg TIMER_KB_BLANK_DELAY
-	arg TIMER_KB_BLANK,queue
-	branch timer_init
-
-g24_kb_disable_blank_data_forcibly:
-	call g24_set0_mem_kb_blank_data_enable
-	//jam 0,mem_24g_kb_blank_data_enable
-g24_kb_disable_blank_data_timer:	
-	setarg 0
-	arg TIMER_KB_BLANK,queue
-	branch timer_init
-
-g24_kb_data_dispose:
-g24_kb_data_into_ep1_fifo:
-	jam USB_EP1_KB,mem_usb_ep1_data
-	fetch 1,mem_usb_tx_enable
-	set1 1,pdata
-	store 1,mem_usb_tx_enable
-	rtn
-
-g24_data_type3:
-	arg mem_usb_kb_multikey,contw
-	call g24_data_type2_reverse_data
-	fetch 2,mem_usb_kb_multikey+1
-	ncall g24_kb_mul_enable_blank_data_forcibly,blank//get multikey data
-	fetch 2,mem_usb_kb_multikey+1
-	call g24_kb_mul_disable_blank_data_forcibly,blank
-	call g24_head_ptr2regc
-	fetch 3,mem_usb_kb_multikey
-	arg offset_24g_kb_multikey_sta_data,rega
-	call g24_set_contw_with_temp_store_3byte
-	//store 3,mem_24g_kb_multikey_sta_data
-	setarg offset_24g_kb_multikey_last_data
-	iadd regc,rega
-	ifetcht 3,rega
-	//fetcht 3,mem_24g_kb_multikey_last_data
-	isub temp,null
-	ncall g24_kb_mul_data_into_ep2_fifo,zero
-	setarg offset_24g_kb_multikey_sta_data
-	iadd regc,rega
-	ifetch 3,rega
-	//fetch 3,mem_24g_kb_multikey_sta_data
-	arg offset_24g_kb_multikey_last_data,rega
-	call g24_set_contw_with_temp_store_3byte
-	//store 3,mem_24g_kb_multikey_last_data
-	branch g24_rx_interrupt_clear
-
-g24_kb_mul_data_into_ep2_fifo:
-	jam USB_EP2_MULTIKEY,mem_usb_ep2_data
-	branch g24_data_type1_usbtx_enable_ep2
-
-g24_kb_mul_enable_blank_data_forcibly:
-	setarg 1
-	call g24_store_mem_kb_mul_blank_data_enable
-	//jam 1,mem_24g_kb_mul_blank_data_enable
-g24_kb_mul_enable_blank_data_timer:	
-	setarg TIMER_KB_MUL_BLANK_DELAY
-	arg TIMER_KB_MUL_BLANK,queue
-	branch timer_init
-
-g24_kb_mul_disable_blank_data_forcibly:
-	call g24_set0_mem_kb_mul_blank_data_enable
-	//jam 0,mem_24g_kb_mul_blank_data_enable
-g24_kb_mul_disable_blank_data_timer:	
-	setarg 0
-	arg TIMER_KB_MUL_BLANK,queue
-	branch timer_init
-	
-g24_data_attemp:
-	call g24_fetch_mem_rxdata_temp_add3_1byte
-	//fetch 1,mem_24g_rxdata_temp+3
-	beq DATATYPE_MOUSE,g24_data_attemp_mouse
-	beq DATATYPE_KEYBOARD,g24_data_attemp_kbd
-	rtn
-g24_data_attemp_mouse:
-	setarg offset_24g_rxdata_temp_add4
-	call g24_set_rega_ifetch_4byte
-	arg offset_24g_mouse_addr,rega
-	call g24_set_contw_with_temp
-	//fetch 4,mem_24g_rxdata_temp+4
-	//store 4,mem_24g_mouse_addr
-	branch g24_contw_istore_4byte
-
-g24_data_attemp_kbd:
-	setarg offset_24g_rxdata_temp_add4
-	call g24_set_rega_ifetch_4byte
-	arg offset_24g_kb_addr,rega
-	call g24_set_contw_with_temp
-	//fetch 4,mem_24g_rxdata_temp+4
-	//store 4,mem_24g_kb_addr
-	branch g24_contw_istore_4byte
-
-g24_store_mem_24g_mode:
-	call g24_head_ptr2regc
-	add regc,offset_24g_mode,contw
-	istore 1,contw
-	rtn
-
-g24_fetch_mem_device_addr:
-	call g24_head_ptr2regc
-	add regc,offset_24g_device_addr,rega
-	branch g24_rega_ifetch_4byte
-g24_store_mem_device_addr:
-	call g24_head_ptr2regc
-	add regc,offset_24g_device_addr,contw
-	branch g24_contw_istore_4byte
-
-g24_fetch_mem_addr:
-	add regc,offset_24g_addr,rega
-	branch g24_rega_ifetch_4byte
-g24_store_mem_addr:
-	add regc,offset_24g_addr,contw
-g24_contw_istore_4byte:	
-	istore 4,contw
-	rtn
-
-g24_store_mem_ch:
-	add regc,offset_24g_ch,contw
-	branch g24_contw_istore_1byte
-
-g24_set0_mem_pid:
-	setarg 0
-g24_store_mem_pid:
-	call g24_head_ptr2regc
-	add regc,offset_24g_pid,contw
-	branch g24_contw_istore_1byte
-
-g24_store_mem_txpayload:
-	add regc,offset_24g_txpayload,contw
-	branch g24_contw_istore_1byte
-
-g24_set4_mem_max_retry:
-	setarg 4
-g24_store_mem_max_retry:
-	add regc,offset_24g_max_retry,contw
-	branch g24_contw_istore_1byte
-
-g24_fetch_mem_data_type:
-	add regc,offset_24g_data_type,rega
-	branch g24_rega_ifetch_1byte
-g24_store_mem_data_type:
-	add regc,offset_24g_data_type,contw
-	branch g24_contw_istore_1byte
-
-g24_set2_mem_sync_cnt:
-	setarg 2
-g24_store_mem_sync_cnt:
-	add regc,offset_24g_sync_cnt,contw
-	branch g24_contw_istore_1byte
-
-g24_set1_mem_rf_last_sta:
-	setarg 1
-g24_store_mem_rf_last_sta:
-	call g24_head_ptr2regc
-	add regc,offset_24g_rf_last_sta,contw
-	branch g24_contw_istore_1byte
-
-g24_fetch_mem_hop_pac:
-	call g24_head_ptr2regc
-	add regc,offset_24g_hop_pac,rega
-	branch g24_rega_ifetch_1byte
-g24_set1_mem_hop_pac:
-	setarg 1
-g24_store_mem_hop_pac:
-	call g24_head_ptr2regc
-	add regc,offset_24g_hop_pac,contw
-	branch g24_contw_istore_1byte
-
-g24_fetch_mem_abort_pac:
-	call g24_head_ptr2regc
-	add regc,offset_24g_abort_pac,rega
-	branch g24_rega_ifetch_1byte
-g24_set1_mem_abort_pac:
-	setarg 1
-g24_store_mem_abort_pac:
-	call g24_head_ptr2regc
-	add regc,offset_24g_abort_pac,contw
-	branch g24_contw_istore_1byte
-
-g24_fetch_mem_pairing_sm:
-	call g24_head_ptr2regc
-	add regc,offset_24g_pairing_sm,rega
-	branch g24_rega_ifetch_1byte
-g24_store_mem_pairing_sm:
-	add regc,offset_24g_pairing_sm,contw
-	branch g24_contw_istore_1byte
-
-g24_fetch_mem_rf_hop_ch:
-	add regc,offset_24g_rf_hop_ch,rega
-	branch g24_rega_ifetch_1byte
-g24_set0_mem_rf_hop_ch:
-	setarg 0
-g24_store_mem_rf_hop_ch:
-	add regc,offset_24g_rf_hop_ch,contw
-	branch g24_contw_istore_1byte
-
-g24_fetch_mem_rf_work_stage:
-	add regc,offset_24g_rf_work_stage,rega
-	branch g24_rega_ifetch_1byte
-	
-g24_fetch_mem_rxbuf_add1:
-	add regc,offset_24g_rxbuf_add1,rega
-	branch g24_rega_ifetch_1byte
-
-g24_fetch_mem_check_dongle_times:
-	add regc,offset_24g_check_dongle_times,rega
-	branch g24_rega_ifetch_1byte
-g24_set0_mem_check_dongle_times:
-	setarg 0
-g24_store_mem_check_dongle_times:
-	call g24_head_ptr2regc
-	add regc,offset_24g_check_dongle_times,contw
-	branch g24_contw_istore_1byte
-
-g24_store_mem_tx_power:
-	call g24_head_ptr2regc
-	add regc,offset_tx_power_temp,rega
-	ifetch 1,rega
-g24_store_mem_txpower:
-	store 1,mem_tx_power
-	rtn
-
-g24_store_mem_tx_power_temp:
-	call g24_head_ptr2regc
-	fetch 1,mem_tx_power
-	//store 1,mem_tx_power_temp
-	add regc,offset_tx_power_temp,contw
-	branch g24_contw_istore_1byte
-
-g24_fetch_mem_power_ctrl_pac:	
-	add regc,offset_power_ctrl_packet_cnt,rega
-	branch g24_rega_ifetch_1byte
-
-g24_store_mem_power_ctrl_level:
-	add regc,offset_power_ctrl_level,contw
-	branch g24_contw_istore_1byte
-
-g24_fetcht_mem_rxdata_temp:
-	setarg offset_24g_rxdata_temp
-g24_set_rega_ifetcht_1byte:	
-	iadd regc,rega
-	ifetcht 1,rega
-	rtn
-
-g24_fetch_mem_rf_laststa:
-	setarg offset_24g_rf_laststa
-	branch g24_set_rega_ifetch_1byte
-g24_set0_mem_rf_laststa:
-	setarg 0
-g24_store_mem_rf_laststa:
-	arg offset_24g_rf_laststa,rega
-	branch g24_set_contw_with_regb_store_1byte
-
-g24_fetch_mem_rx_addr:
-	setarg offset_24g_rx_addr
-g24_set_rega_ifetch_4byte:	
-	call g24_set_rega
-g24_rega_ifetch_4byte:
-	ifetch 4,rega
-	rtn
-
-g24_fetch_mem_time_slice:
-	setarg offset_24g_time_slice
-	branch g24_set_rega_ifetch_1byte
-g24_set0_mem_time_slice:
-	setarg 0
-g24_store_mem_time_slice:
-	arg offset_24g_time_slice,rega
-	branch g24_set_contw_with_regb_store_1byte
-
-g24_set0_mem_mode_switch:
-	setarg 0
-g24_store_mem_mode_switch:
-	arg offset_24g_mode_switch,rega
-	branch g24_set_contw_with_regb_store_1byte
-	
-g24_store_mem_bind_payload:
-	arg offset_24g_bind_payload,rega
-	branch g24_set_contw_with_regb_store_1byte	
-	
-g24_fetch_mem_bind_device_status:
-	setarg offset_dongle_bind_device_status
-	branch g24_set_rega_ifetch_1byte
-g24_store_mem_bind_device_status:
-	arg offset_dongle_bind_device_status,rega
-	branch g24_set_contw_with_regb_store_1byte
-
-g24_fetch_mem_dongle_work_mode:
-	setarg offset_dongle_work_mode
-	branch g24_set_rega_ifetch_1byte
-g24_set_work_mem_dongle_work_mode:
-	setarg DONGLE_WORK
-g24_store_mem_dongle_work_mode:
-	arg offset_dongle_work_mode,rega
-	branch g24_set_contw_with_regb_store_1byte
-
-g24_fetch_mem_dongle_mode_init:
-	setarg offset_dongle_mode_init
-	branch g24_set_rega_ifetch_1byte
-g24_set0_mem_dongle_mode_init:
-	setarg CLEAR_INIT
-g24_store_mem_dongle_mode_init:
-	arg offset_dongle_mode_init,rega
-	branch g24_set_contw_with_regb_store_1byte
-
-g24_set0_mem_ackpayload_enable:
-	setarg 0
-g24_store_mem_ackpayload_enable:
-	arg offset_24g_ackpayload_enable,rega
-	branch g24_set_contw_with_regb_store_1byte
-g24_set1_mem_ackpayload_enable:
-	setarg 1
-	branch g24_store_mem_ackpayload_enable
-
-g24_fetch_mem_rxdata_temp_add3_7byte:
-	setarg offset_24g_rxdata_temp_add3
-	call g24_set_rega
-	ifetch 7,rega
-	rtn
-
-g24_fetch_mem_nodata_timer_enable:
-	setarg offset_24g_nodata_timer_enable
-	branch g24_set_rega_ifetch_1byte
-g24_set0_mem_nodata_timer_enable:
-	setarg 0
-g24_store_mem_nodata_timer_enable:
-	arg offset_24g_nodata_timer_enable,rega
-	branch g24_set_contw_with_regb_store_1byte
-	
-g24_set0_mem_ms_blank_data_enable:
-	setarg 0
-g24_store_mem_ms_blank_data_enable:
-	arg offset_24g_ms_blank_data_enable,rega
-	branch g24_set_contw_with_regb_store_1byte
-
-g24_set0_mem_kb_blank_data_enable:
-	setarg 0
-g24_store_mem_kb_blank_data_enable:
-	arg offset_24g_kb_blank_data_enable,rega
-	branch g24_set_contw_with_regb_store_1byte
-	
-g24_set0_mem_kb_mul_blank_data_enable:
-	setarg 0
-g24_store_mem_kb_mul_blank_data_enable:
-	arg offset_24g_kb_mul_blank_data_enable,rega
-	branch g24_set_contw_with_regb_store_1byte
-	
-g24_store_mem_power_ctrl_threshold_up:
-	arg offset_power_ctrl_threshold_up,rega
-	branch g24_set_contw_with_regb_store_1byte
-	
-g24_store_mem_power_ctrl_threshold_down:
-	arg offset_power_ctrl_threshold_down,rega
-g24_set_contw_with_regb_store_1byte:
-	call g24_set_contw_with_regb
-g24_contw_istore_1byte:
-	istore 1,contw
-	rtn
-
-g24_fetch_mem_pair_mode:
-	setarg offset_24g_pair_mode
-	branch g24_set_rega_ifetch_1byte
-
-g24_store_mem_pair_mode:
-	arg offset_24g_pair_mode,rega
-	branch g24_set_contw_with_regb_store_1byte
-	
-g24_store_mem_pair_txpower:
-	setarg offset_24g_pair_txpower
-	call g24_set_rega_ifetch_1byte
-	branch g24_store_mem_txpower
-
-g24_fetch_mem_rxdata_temp_add3_1byte:
-	setarg offset_24g_rxdata_temp_add3
-	branch g24_set_rega_ifetch_1byte
-
-g24_set_contw_with_temp:
-	copy pdata,temp
-	copy rega,pdata
-	iadd regc,contw
-	copy temp,pdata
-	rtn
-	
-g24_set_contw_with_temp_store_3byte:
-	call g24_set_contw_with_temp
-g24_contw_istore_3byte:	
-	istore 3,contw
-	rtn
-
-g24_set_contw_with_regb:
-	call g24_head_ptr2regc
-g24_set_contw_with_regb2:
-	copy pdata,regb
-	copy rega,pdata
-	iadd regc,contw
-	copy regb,pdata
-	rtn
-
-g24_set_rega:
-	call g24_head_ptr2regc
-	iadd regc,rega
-	rtn
-
-g24_set_rega_ifetch_1byte:
-	call g24_set_rega
-g24_rega_ifetch_1byte:
-	ifetch 1,rega
-	rtn
-
-g24_set_rega_ifetcht_4byte:
-	call g24_set_rega
-	ifetcht 4,rega
-	rtn
-
-g24_mem_set0:
-	setarg 0
-	branch g24_contw_istore_1byte
-
-endif
-
-
Index: DPI_Switch/program/app.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app.prog	(nonexistent)
@@ -1,576 +0,0 @@
-app_init:
-	bpatch patch18_4,mem_patch18
-	fetch 1,mem_device_option
-	branch app_init,blank				/* wait ram to be initialized */
-//	beq dvc_op_ukey,le_ukey_init
-	beq dvc_op_dongle,dongle_init
-	beq dvc_op_AntiLost,antilost_init
-	beq dvc_op_shutter,shutter_init
-	beq dvc_op_module,module_init
-	beq dvc_op_car,car_init
-	beq dvc_op_remote_car,remote_car_init
-	bbit1 dvc_op_mouse,mouse_init
-	rtn
-	
-app_lpm_init:
-	bpatch patch18_5,mem_patch18
-	jam 0,mem_tester_emulate
-	jam 0,mem_debug_config
-	jam 0, mem_lch_code
-	setarg 0
-	store 5,mem_sp_state_start
-	fetch 1,mem_device_option
-	branch app_lpm_init,blank				/* wait ram to be initialized */
-	beq dvc_op_module,module_lpm_init
-app_lpm_init0:
-	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_bt:
-	fetch 2,mem_cb_bt_process
-	branch callback_func
-	
-app_process_ble:
-	fetch 2,mem_cb_le_process
-	branch callback_func
-
-app_process_bb_event:
-	bpatch patch18_6,mem_patch18
-	//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_BB_CONNECTED,app_evt_bt_conn
-	beq BT_EVT_BUTTON_LONG_PRESSED,app_evt_button_long_pressed
-	beq BT_EVT_SETUP_COMPLETE,app_evt_setup_complete
-	beq BT_EVT_HID_HANDSHAKE,app_evt_hid_handshake
-	beq BT_EVT_HID_CONNECTED,app_bb_event_hid_connected
-	beq BT_EVT_RECONN_FAILED,app_bb_event_reconn_failed
-	beq BT_EVT_BB_DISCONNECTED,app_bb_event_bb_disconn
-	beq BT_EVT_RECONN_PAGE_TIMEOUT,app_bb_event_reconn_failed	
-	beq BT_EVT_LE_CONNECTED,app_le_event_bb_connected
-	beq BT_EVT_LE_DISCONNECTED,app_le_event_bb_disconn
-	beq BT_EVT_RECONN_STARTED,app_event_reconn_start
-	beq BT_EVT_ENTER_SNIFF,app_event_enter_sniff
-	beq BT_EVT_EXIT_SNIFF,app_event_exit_sniff
-	
-	beq BT_EVT_ML2CAP_CONN_REFUSED,app_event_ml2cap_conn_refused
-	beq BT_EVT_LINKKEY_GENERATE,app_event_linkkey_generate
-	beq BT_EVT_SWITCH_FAIL_MASTER,app_event_switch_fail_master
-	beq BT_EVT_SWITCH_SUCCESS_MASTER,app_event_switch_success
-	rtn
-
-
-app_evt_bt_conn:
-	fetch 2,mem_ui_state_map
-	set1 UI_STATE_BT_CONNECTED,pdata
-	store 2,mem_ui_state_map
-	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
-	rtn
-
-app_event_switch_success:
-	jam 0,mem_switch_fail_master_count
-	rtn	
-
-app_event_switch_fail_master:
-	fetch 1,mem_switch_fail_master_count
-	increase 1,pdata
-	store 1,mem_switch_fail_master_count
-	sub pdata,1,null
-	branch app_bt_role_switch,positive
-	jam 0,mem_switch_fail_master_count
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	set1 APP_DISC_SWITCH_FAIL,pdata
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	branch app_bt_disconnect
-	
-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_event_linkkey_generate:
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	set1 APP_DISC_AFTER_PAIRING ,pdata
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	branch app_bt_store_reconn_info
-	
-app_event_reconn_start:
-	fetch 2,mem_ui_state_map
-	set1 UI_STATE_BT_RECONNECT,pdata
-	store 2,mem_ui_state_map
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	set1 APP_DISC_AFTER_RECONN,pdata
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	rtn
-
-app_evt_setup_complete:
-	fetch 2,mem_ui_state_map
-	set1 UI_STATE_BT_SETUP_COMPLETE,pdata
-	store 2,mem_ui_state_map
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	set1 APP_DISC_AFTER_SETUP_DONE,pdata
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	rtn
-
-app_evt_hid_handshake:
-	fetch 2,mem_ui_state_map
-	set1 UI_STATE_BT_HID_HANDSHAKE,pdata
-	store 2,mem_ui_state_map
-	rtn
-	
-app_event_enter_sniff:
-	fetch 2,mem_ui_state_map
-	set1 UI_STATE_BT_SNIFF,pdata
-	store 2,mem_ui_state_map
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	set1 APP_DISC_AFTER_SNIFF,pdata
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	rtn
-	
-app_event_exit_sniff:
-	fetch 2,mem_ui_state_map
-	set0 UI_STATE_BT_SNIFF,pdata
-	store 2,mem_ui_state_map
-	rtn
-
-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:
-	fetch 2,mem_ui_state_map
-	set0 UI_STATE_BLE_CONNECTED,pdata
-	store 2,mem_ui_state_map
-	branch app_lpm_mult_disable
-	
-app_bb_event_hid_connected:
-	fetch 2,mem_ui_state_map
-	set1 UI_STATE_BT_HID_CONN,pdata
-	store 2,mem_ui_state_map
-	rtn
-
-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_event_ml2cap_conn_refused:
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	set1 APP_DISC_L2CAP_REFUSED,pdata
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	branch  app_bt_disconnect
-
-
-app_evt_timer:
-	bpatch patch18_7,mem_patch18
-	store 1,mem_app_evt_timer_count
-app_evt_100ms_loop:
-	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 app_unsniff_delay_timer
-	call app_discovery_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_unsniff_delay_timer:
-	arg mem_unsniff2sniff_timer_count,regc
-	arg app_unsniff_delay_timeout,regb
-	branch timer_single_step
-	
-app_unsniff_delay_timeout:
-	call context_check_idle
-	branch app_bt_enter_sniff,zero
-	rtn
-
-
-app_discovery_timer:
-	arg mem_discovery_timeout_timer_count,regc
-	arg app_discovery_timeout,regb
-	branch timer_single_step_2B
-	
-app_discovery_timeout:
-	call app_bt_stop_discovery
-	call app_led_off
-	fetch 2,mem_cb_discovry_timeout
-	branch callback_func
-
-	
-app_bb_event_reconn_failed:
-	call app_disconn_reason_flag_clear
-app_clear_reconnect_flag:
-	fetch 2,mem_ui_state_map
-	set0 UI_STATE_BT_RECONNECT,pdata
-	store 2,mem_ui_state_map
-	rtn
-
-app_bb_event_bb_disconn:
-	jam 0,mem_unsniff2sniff_timer_count
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BT_RECONNECT,app_bb_event_bb_reconn_disconn
-	isolate0 UI_STATE_BT_SETUP_COMPLETE,pdata
- 	call app_discard_event,true
-app_bb_event_bb_reconn_disconn:
-	bpatch patch19_0,mem_patch19
-	fetch 2,mem_ui_state_map
-	set0 UI_STATE_BT_CONNECTED,pdata
-	set0 UI_STATE_BT_SETUP_COMPLETE,pdata
-	set0 UI_STATE_BT_HID_CONN,pdata
-	set0 UI_STATE_BT_HID_HANDSHAKE,pdata
-	set0 UI_STATE_BT_RECONNECT,pdata
-	store 2,mem_ui_state_map
-	branch app_lpm_mult_disable
-	
-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_bt:
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
-	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_check_sniff:
-	fetch 1,mem_ui_state_map
-	isolate1 UI_STATE_BT_SNIFF,pdata
-	rtn
-
-//*****************************************//
-//*****************API********************//
-//*****************************************//
-//app_clearflag_store:
-//	setarg 0
-//	branch app_flag_store
-app_initflag_store:
-	setarg EEPROM_INIT_FLAG
-app_flag_store:
-	store 2,mem_timeup
-	bpatch patch19_1,mem_patch19
-	arg 2,temp
-	arg mem_timeup,rega
-	arg eeprom_module_init_flag,regb
-	branch iicd_write_eep_data
-
-//initflag is in eeprom to sure is eeprom nead to init
-app_initflag_check:
-	bpatch patch19_2,mem_patch19
-	arg 2,temp
-	arg mem_pdatatemp,rega
-	arg eeprom_module_init_flag,regb
-	call iicd_read_eep_data
-	fetch 2,mem_pdatatemp
-	arg EEPROM_INIT_FLAG,temp
-	isub  temp,null
-	rtn
-
-
-app_start_auto_sniff:
-	fetch 1,mem_unsniff2sniff_timer
-	store 1,mem_unsniff2sniff_timer_count
-	rtn	
-	
-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_l2cap_flow_control_enable:
-	jam L2CAP_FLOW_CTRL_ENABLE,mem_l2cap_flow_ctrl_flag
-	rtn
-
-app_l2cap_flow_control_disable:
-	jam L2CAP_FLOW_CTRL_DISABLE,mem_l2cap_flow_ctrl_flag
-	rtn
-	
-app_bt_set_pincode:
-	jam BT_CMD_SET_PIN_CODE,mem_fifo_temp
-	branch ui_ipc_send_cmd
-
-app_bt_role_switch:
-	jam BT_CMD_ROLE_SWITCH,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-app_bt_start_reconnect:
-	bpatch patch19_3,mem_patch19
-	fetch 1,mem_app_connection_options
-	store 1,mem_connection_options
-	jam APP_FLAG_RECONNECT,mem_reconnect_flag
-	jam BT_CMD_RECONNECT,mem_fifo_temp
-	branch ui_ipc_send_cmd	
-	
-app_bt_reconnect_cancel:
-	jam BT_CMD_BB_RECONN_CANCEL,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-app_bt_disconnect:
-	jam BT_CMD_DISCONNECT,mem_fifo_temp
-	branch ui_ipc_send_cmd	
-
-app_bt_start_discovery_short:
-	fetch 2,mem_discovery_timeout
-	store 2,mem_discovery_timeout_timer_count
-app_bt_start_discovery_led_blink:
-	call app_led_start_blink
-app_bt_start_discovery:
-	jam BT_CMD_START_DISCOVERY,mem_fifo_temp
-	branch ui_ipc_send_cmd
-
-app_bt_stop_discovery:
-	setarg 0
-	store 2,mem_discovery_timeout_timer_count
-	jam BT_CMD_STOP_DISCOVERY,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-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_bt_sniff_exit:
-	jam BT_CMD_EXIT_SNIFF,mem_fifo_temp
-	branch  ui_ipc_send_cmd
-	
-app_bt_enter_sniff:
-	jam BT_CMD_ENTER_SNIFF,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_bt_store_reconn_info:
-	jam BT_CMD_STORE_RECONN_INFO_BT,mem_fifo_temp
-	branch ui_ipc_send_cmd
-
-app_store_reconn_info:
-	jam BT_CMD_STORE_RECONN_INFO,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 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: DPI_Switch/program/app_antiLost.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_antiLost.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_antiLost.prog	(nonexistent)
@@ -1,565 +0,0 @@
-ifdef COMPILE_AntiLost
-antilost_init:
-	rtn wake	
-	jam 0x00,core_gpio_sel1//1: GPIO[26:25] is two wire SPI, 2: GPIO[26:23] is SPI, 3: GPIO[26:23] is PCM
-	setarg antilost_le_before_hibernate
-	store 2,mem_cb_before_hibernate
-	setarg keyscan_process_lpm_before
-	store 2,mem_cb_before_lpm
-	setarg antilost_idle_process	//
-	store 2,mem_cb_idle_process
-	setarg antilost_le_conn_process	//
-	store 2,mem_cb_le_process
-	setarg antilost_bb_event_process 
-	store 2,mem_cb_bb_event_process
-	setarg antilost_le_bb_event_timer
-	store 2,mem_cb_event_timer
-	setarg antilost_le_notification
-	store 2,mem_cb_ble_transmit
-	setarg antilost_lpm_lock_process
-	store 2,mem_cb_check_wakelock
-	setarg antilost_le_receive_data_process
-	store 2,mem_cb_att_write
-	bpatch patch19_4,mem_patch19
-	call antilost_buzzer_pwm_init
-	call keyscan_key_init
-	call antilost_adc_init
-	call ui_led_init_global
-	call ui_button_init
-	setarg antilost_key_up_down
-	store 2,mem_cb_antl_key
-	setarg antilost_power_off_cb
-	store 2,mem_antl_power_off_cb
-	setarg antilost_power_starting_cb
-	store 2,mem_antl_power_starting_cb
-	setarg antilost_power_standby_cb
-	store 2,mem_antl_power_standby_cb
-	setarg antilost_led_on_cb
-	store 2,mem_antl_led_cb_on
-	setarg antilost_led_off_cb
-	store 2,mem_antl_led_cb_off
-	setarg antilost_buzzer_on
-	store 2,mem_antl_buzzer_cb_on
-	setarg antilost_buzzer_off
-	store 2,mem_antl_buzzer_cb_off
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BTN_DOWN
-	branch app_enter_hibernate
-
-antilost_le_before_hibernate:
-	call antilost_led_buzzer_stop_blink
-	branch  app_enter_hibernate
-
-antilost_le_notification:
-	call le_fifo_check_nearly_full
-	nrtn blank
-	arg mem_temp_block5,rega
-	call queue_pop
-	nrtn user
-	arg mem_temp_block5,contr
-	branch le_send_notify_from_list
-
-antilost_power_standby_cb:
-	fetch 2,mem_antl_le_sleep_timeout
-	store 2,mem_antl_le_sleep_timer
-	jam 1,mem_antl_key_scan_enable
-	branch antilost_fast_adv_start
-	
-antilost_lpm_lock_process:
-	fetch 1,mem_antl_key_state
-	beq 1,antilost_lpm_ctrl_for_led_buzzer
-	fetch 2,mem_ui_state_map
-	bbit0 UI_STATE_BLE_CONNECTED,antilost_lpm_ctrl_for_led_buzzer
-	fetch 1,mem_antl_lost_mode
-	beq 1,app_get_lpm_wake_lock
-	fetch 1, mem_antl_queue_curr_num
-	nbranch app_get_lpm_wake_lock,blank 
-	branch app_put_lpm_wake_lock
-	
-antilost_lpm_ctrl_for_led_buzzer:
-	fetch 1,mem_antl_led_state
-	fetcht 1,mem_antl_buzzer_state
-	ior temp,pdata
-	beq 1,app_get_lpm_wake_lock
-	branch app_put_lpm_wake_lock
-
-antilost_bb_event_process:
-	copy regc,pdata
-	beq BT_EVT_BUTTON_UP,app_event_button_up
-	beq BT_EVT_BUTTON_LONG_PRESSED,app_button_long_pressed
-	beq BT_EVT_LE_CONNECTED,antilost_le_process_conn
-	beq BT_EVT_LE_DISCONNECTED,antilost_le_process_discon
-	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,antilost_le_conn_param_update_rsp_recieved
-	rtn
-antilost_le_conn_param_update_rsp_recieved:
-	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
-	beq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED,antilost_le_conn_param_rejected
-antilost_le_conn_param_accepted:
-	fetch 2,mem_le_new_connslavelatency
-	branch antilost_master_nonsupport_latency,blank
-antilost_le_conn_param_updata_procedure_sucsess:
-	jam CONN_PARAM_UPDATA_PROCEDURE_COMPLETE,mem_antl_conn_updata_procedure_state
-	jam 60,mem_antl_conn_update_timer
-	rtn
-
-antilost_le_conn_param_rejected:
-	fetch 2,mem_le_latency
-	branch antilost_conn_param_updata_procedure_faild,blank
-antilost_conn_param_retransimiting:
-	jam CONN_PARAM_UPDATA_PROCEDURE_STARTING,mem_antl_conn_updata_procedure_state
-	fetcht 2,mem_interval_increment
-	fetch 2,mem_le_interval_min
-	iadd temp,pdata
-	store 2,mem_le_interval_min
-	copy pdata,rega
-	fetch 2,mem_le_interval_max
-	iadd temp,pdata
-	store 2,mem_le_interval_max
-	iadd rega,pdata
-	rshift pdata,temp
-	fetch 2,mem_antl_le_unnormal_interval_max
-	idiv temp
-	call wait_div_end
-	quotient pdata
-	store 2,mem_le_latency
-	jam 1,mem_antl_send_updata_le_param_timer
-	rtn
-antilost_conn_param_updata_procedure_faild:
-	jam CONN_PARAM_UPDATA_PROCEDURE_FAILD,mem_antl_conn_updata_procedure_state
-	rtn
-
-antilost_master_nonsupport_latency:
-	jam 0,mem_lpm_mult
-	jam 0,mem_antl_send_updata_le_param_timer
-	fetch 2,mem_le_new_conninterval	//interval from master
-	fetcht 2,mem_antl_le_unnormal_interval_min
-	isub temp,null
-	setflag positive,0,rega 
-	fetch 2,mem_antl_le_unnormal_interval_max //local intervalmax
-	fetcht 2,mem_le_new_conninterval//interval form master
-	isub temp,pdata
-	setflag positive,1,rega
-	compare	0x03,rega,0x03
-	rtn true //return if the new conn_interval in range through conn_interval_min to conn_interval_max already
-	fetch 8,mem_antl_le_unnormal_interval_min
-	store 8,mem_le_interval_min
-	jam 1,mem_antl_send_updata_le_param_timer
-	rtn                               
-
-
-antilost_le_bb_event_timer:
-	//call ui_button_check_long_press
-	call app_power_timer
-	call antilost_double_click_timer
-	call antilost_le_fast_adv_timer
-	call antilost_le_sleep_timer
-	call antilost_app_updata_le_param_timer
-	call antilost_conn_update_timer
-	branch antilost_adc_check_timer
-
-
-antilost_double_click_timer:
-	arg mem_double_click_timer,regc
-	arg antilost_double_click_timeout,regb
-	branch timer_single_step
-antilost_double_click_timeout:
-	jam 0,mem_butten_click_cnt
-	rtn
-antilost_le_fast_adv_timer:
-	arg mem_antl_fast_adv_timer,regc
-	arg antilost_le_fast_adv_timeout,regb
-	branch timer_single_step_2B
-antilost_le_fast_adv_timeout:
-	arg mem_antl_slow_adv_led_style,regc
-	arg mem_antl_slow_adv_lpm_interval,regb
-	branch antilost_adv_start_common
-	
-
-antilost_conn_update_timer:
-	arg mem_antl_conn_update_timer,regc
-	arg antilost_conn_update_timer_time_out,regb
-	branch timer_single_step
-	
-antilost_conn_update_timer_time_out:
-	fetch 2,mem_le_latency
-	store 1,mem_lpm_mult
-	rtn
-antilost_app_updata_le_param_timer:
-	arg mem_antl_send_updata_le_param_timer,regc
-	arg antilost_app_updata_le_param_timeout,regb
-	branch timer_single_step
-antilost_app_updata_le_param_timeout:
-	fetch 1,mem_le_state
-	compare 0,pdata,0x60
-	nbranch antilost_wait_for_updata_param_instant_expire,true
-	jam CONN_PARAM_UPDATA_PROCEDURE_STARTING,mem_antl_conn_updata_procedure_state
-	call  app_lpm_mult_enable
-	branch le_l2cap_tx_update_req	
-antilost_wait_for_updata_param_instant_expire:
-	jam 1,mem_antl_send_updata_le_param_timer
-	rtn
-	
-antilost_le_sleep_timer:
-	arg mem_antl_le_sleep_timer,regc
-	arg antilost_le_sleep_timer_timeout,regb
-	branch timer_single_step_2B
-
-
-antilost_le_sleep_timer_timeout:
-	branch app_button_long_pressed
-
-antilost_adc_check_timer:
-	//fetch 1,mem_antl_power_timer
-	//rtneq SHUTTER_POWER_OFF
-	arg mem_adc_timer,regc
-	arg antilost_adc_check_timer_timeout,regb
-	branch timer_single_step_2B
-antilost_adc_check_timer_timeout:
-	fetch 2,mem_adc_timeout
-	store 2,mem_adc_timer
-	branch antilost_battery_process
-
-
-antilost_le_process_conn:
-	fetch 2,mem_adc_timeout
-	store 2,mem_adc_timer
-	setarg 0
-	store 2,mem_antl_fast_adv_timer
-	store 2,mem_antl_le_sleep_timer
-	call antilost_alert_off
-	call antilost_led_buzzer_stop_blink
-	jam 0,mem_lpm_mult
-	branch app_ble_stop_adv
-	                                                      
-
-antilost_le_process_discon:
-	//setarg 0
-	//store 1,mem_hci_curr_len
-	setarg 0
-	store 4,mem_adc_timer
-	store 3,mem_antl_conn_updata_procedure_state
-	store 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
-	
-	jam 1,mem_alarm_config_notfy_cnt
-	fetch 2,mem_antl_le_sleep_timeout
-	store 2,mem_antl_le_sleep_timer
-	call queue_init
-	fetch 1,mem_antl_power_state
-	rtneq POWER_OFF
-	call antilost_fast_adv_start
-	branch antilost_on_off_alarm_after_disconn
-
-
-antilost_le_conn_process:
-//bpatch
-	branch antilost_key_process
-
-antilost_idle_process:
-
-	fetch 1,mem_antl_power_state
-	rtnne POWER_STANDBY
-	branch antilost_key_process
-
-
-//////////////////////////////////////////////////////////////////////////////////////////
-/////SOFT WTICH////////
-antilost_power_starting_cb:
-	arg mem_antl_power_starting_buzzer_style,regc
-	call antilost_buzzer_configuration
-	arg mem_antl_power_starting_led_style,regc
-antilost_power_common:
-	branch antilost_led_configuration
-
-antilost_power_off_cb:
-	jam OFF,mem_le_adv_enable
-	arg mem_antl_power_off_buzzer_style,regc
-	call antilost_buzzer_configuration
-	arg mem_antl_power_off_led_style,regc
-	branch antilost_power_common
-	
-antilost_le_receive_data_process:
-	fetch 1,mem_le_att_opcode
-	beq ATTOP_WRITE_REQUEST,antilost_le_parse_att_write_request
-	rtn
-antilost_le_parse_att_write_request:
-	fetch 2,mem_le_att_handle
-//	beq  ATT_WRITE_REQUEST_HANDLE,antilost_key_data_send
-	beq NEW_SPEC_WRITE_HANDLE,antilost_cmd_parse_for_application
-	beq NEW_SPEC_NOTIFICATION_ENABLE_HANDLE,antilost_notify_alarm_config_first_time
-	rtn
-/////////////////////////////////////////////////////////
-
-
-/////////key scan
-antilost_key_process:
-	fetch 1,mem_antl_key_scan_enable
-	rtn blank
-	branch keyscan_key_process
-
-	//queue = key index
-	//rega =1 press, =0 release
-antilost_key_up_down:
-	copy rega,pdata
-	branch antilost_key_is_up,blank
-antilost_key_is_down:
-	copy queue,pdata
-	beq 0,antilost_key0_down
-	rtn
-antilost_key_is_up:
-	copy queue,pdata
-	beq 0,antilost_key0_up
-	rtn
-
-antilost_key0_down:
-	jam 1,mem_antl_key_state
-	arg mem_antl_key_buzzer_style,regc
-	call antilost_buzzer_configuration
-	arg mem_antl_key_led_style,regc
-	call antilost_led_configuration
-	fetch 2,mem_ui_state_map
-	bbit0 UI_STATE_BLE_CONNECTED,antilost_butten_down_while_disconn
-	branch antilost_butten_down_after_conn
-	
-antilost_key0_up:
-	jam 0,mem_antl_key_state
-	branch antilost_double_click_timer_init
-
-//////////////process for double-click
-
-antilost_double_click_timer_init:
-	fetch 1,mem_butten_click_cnt
-	rtnne 1
-	jam 5,mem_double_click_timer
-	rtn
-
-antilost_butten_down_after_conn:
-	fetch 1,mem_butten_click_cnt
-	pincrease 1
-	store 1,mem_butten_click_cnt
-	beq 1,antilost_click_once
-	beq 2,antilost_click_twice
-	rtn
-antilost_click_once:
-	call antilost_alert_off
-	jam OPCODE1_BUTTEN_CLICK_ONCE,mem_antl_key0_press+5//5 represent opcode offset
-	arg mem_antl_key0_press,regc
-	branch antilost_prepare_data_and_send
-antilost_click_twice:
-	jam 0,mem_butten_click_cnt
-	jam OPCODE2_BUTTEN_DOUBLE_CLICK,mem_antl_key0_press+5
-	arg mem_antl_key0_press,regc
-	call antilost_prepare_data_and_send
-	fetch 1,mem_antl_lost_mode
-	beq 1,antilost_alert_on
-	rtn   //rtn should be retaind
-	
-antilost_butten_down_while_disconn:
-	fetch 2,mem_antl_le_sleep_timeout
-	store 2,mem_antl_le_sleep_timer
-	call antilost_alert_off
-	branch antilost_fast_adv_start
-	
-///////////////////////NEW App Spcecific///////
-antilost_cmd_parse_for_application:
-	bpatch patch19_5,mem_patch19
-	call le_app_receive_data
-	ifetch 1,rega
-	beq OPCODE3_ANTL_START_ALRAM,antilost_on_of_alram
-	beq OPCODE7_ANTL_CONFIG_ALRAM,antilost_configuration_for_alram
-	rtn
-
-antilost_on_of_alram:
-	fetch 1,mem_antl_lost_mode
-	beq ANTI_LE_ALARM_OFF,antilost_alert_on
-	beq ANTI_LE_ALARM_ON,antilost_alert_off
-	rtn
-
-antilost_configuration_for_alram:
-	ifetch 1,regb
-	beq 1,antilost_set_start_alarm_after_disconn
-	beq 0,antilost_set_no_alarm_after_disconn
-	rtn
-/////////////////check////////////////////////
-
-/*input: 1)package data addr in regc
-output:no
-function:calculate check_out value and send data*/
-//mem_temp_block5
-antilost_prepare_data_and_send:
-	bpatch patch19_6,mem_patch19
-	fetch 1,mem_client_characteristic_configuration_descriptor
-	isolate1 NOTIFICATION_ENABLE_BIT,pdata
-	nrtn true
-	add regc,6,contr
-	ifetch 2,contr
-	byteswap pdata,pdata
-	add pdata,5,loopcnt
-	add regc,3,contr
-	call calc_check_sum_start
-	istore 1,contr
-	copy regc,rega
-	branch queue_push
-
-/////////////////NEW APP SPECIFIC check end////////////////////
-
-
-/////////alarm//////////////////////////////
-antilost_alert_on:
-	fetch 1,mem_antl_power_state
-	rtn blank
-	jam 1,mem_antl_lost_mode
-	arg mem_antl_alert_buzzer_stlye,regc
-	call antilost_buzzer_configuration
-	arg mem_antl_alert_led_stlye,regc
-	call antilost_led_configuration
-	jam OPCODE4_CURRENT_ALARM_STATE,mem_antl_key0_release+5//5 represent opcode offset
-	jam 1,mem_antl_key0_release+8 //8 represent data offset,digit 1 represent alarm is on at present
-	arg mem_antl_key0_release,regc
-	branch antilost_prepare_data_and_send
-antilost_alert_off:
-	fetch 1,mem_antl_lost_mode
-	rtn blank
-	jam 0,mem_antl_lost_mode
-	call antilost_led_buzzer_stop_blink
-	jam OPCODE4_CURRENT_ALARM_STATE,mem_antl_key0_release+5//5 represent opcode offset
-	jam 0,mem_antl_key0_release+8 //8 represent data offset,digit 0 represent alarm is off at present
-	arg mem_antl_key0_release,regc
-	branch antilost_prepare_data_and_send
-
-antilost_set_start_alarm_after_disconn:
-	jam 1,mem_alarm_config
-	jam OPCODE7_ANTL_CONFIG_ALRAM,mem_antl_key0_release+5
-	jam 1,mem_antl_key0_release+8
-	arg mem_antl_key0_release,regc
-	branch antilost_prepare_data_and_send
-antilost_set_no_alarm_after_disconn:
-	jam 0,mem_alarm_config
-	jam OPCODE7_ANTL_CONFIG_ALRAM,mem_antl_key0_release+5
-	jam 0,mem_antl_key0_release+8
-	arg mem_antl_key0_release,regc
-	branch antilost_prepare_data_and_send
-antilost_on_off_alarm_after_disconn:
-	fetch 1,mem_alarm_config
-	rtn blank
-	branch antilost_alert_on
-	
-antilost_notify_alarm_config_first_time:
-	ifetch 2,rega
-	store 2,mem_client_characteristic_configuration_descriptor
-	isolate1 NOTIFICATION_ENABLE_BIT,pdata
-	nrtn true
-	fetch 1,mem_alarm_config_notfy_cnt
-	rtn blank
-	jam 0,mem_alarm_config_notfy_cnt
-	fetch 8,mem_antl_le_interval_min
-	store 8,mem_le_interval_min
-	jam 2,mem_antl_send_updata_le_param_timer
-	call antilost_battery_process
-	call antilost_battery_calculate_end //send twice to combat the failure of reception first time
-	jam OPCODE7_ANTL_CONFIG_ALRAM,mem_antl_key0_release+5
-	fetch 1,mem_alarm_config
-	store 1,mem_antl_key0_release+8
-	arg mem_antl_key0_release,regc
-	branch antilost_prepare_data_and_send
-
-//////////////alarm end//////////////////////////
-//sytle address in regc
-antilost_buzzer_configuration:
-	arg 1,rega
-	branch antilost_configuration_common
-antilost_led_configuration:
-	arg 0,rega
-antilost_configuration_common:
-	branch antilost_led_buzzer_style_configuration
-	
-antilost_led_buzzer_stop_blink:
-	arg 0,rega
-	call ui_led_blink_stop_global
-	arg 1,rega
-	call ui_led_blink_stop_global
-	fetch 1,mem_buzzer_pwm_conf
-	branch pwm_disable
-	
-antilost_led_buzzer_style_configuration:
-	call calc_curr_struct_prt
-	arg 7,loopcnt
-	branch ui_led_set_style_global+2
-
-
-
-antilost_fast_adv_start:
-	arg mem_antl_fast_adv_led_style,regc
-	arg mem_antl_lpm_interval,regb
-antilost_adv_start_common:
-	call antilost_adv_interval_lpm_interval_set
-	call antilost_led_configuration
-	fetch 2,mem_antl_fast_adv_timeout
-	store 2,mem_antl_fast_adv_timer
-	branch app_ble_start_adv
-	
-antilost_adv_interval_lpm_interval_set:
-	ifetch 2,regb
-	store 2,mem_lpm_interval
-	ifetch 2,contr
-	store 2,mem_le_adv_interval
-	rtn
-///////////////beep////////////
-antilost_buzzer_pwm_init:
-	arg 0,rega //sys clk 12mhz
-	call pwm_init
-	fetch 6,mem_buzzer_pwm_conf
-	store 6,mem_pdatatemp
-	call pwm_out_set
-	fetch 1,mem_buzzer_pwm_conf
-	branch pwm_disable
-	
-antilost_led_on_cb:
-	jam 1,mem_antl_led_state
-	rtn	
-antilost_led_off_cb:
-	jam 0,mem_antl_led_state
-	rtn
-
-
-
-antilost_buzzer_off:
-	jam 0,mem_antl_buzzer_state
-	fetch 1,mem_buzzer_pwm_conf
-	branch pwm_disable
-	
-antilost_buzzer_on:
-	jam 1,mem_antl_buzzer_state
-	fetch 6,mem_buzzer_pwm_conf
-	store 6,mem_pdatatemp
-	branch pwm_out_set
-
-////////////////beep end///////////////////////////
-/////////////adc start////////////////////////
-antilost_adc_init:
-	jam 0,mem_adc_config_flag
-	branch adc_init_data
-
-antilost_battery_process:
-	call adc_set_mode
-	call vdd_calculate_by_mode
-	store 2,mem_battery_current_voltage
-	arg mem_battery_calculate_set,rega
-	call adc_bat_percent_lowpower_out
-	store 1,mem_voltage_remain_percent //for debug
-	beq 0,antilost_low_battery
-	sub pdata,0x64,null
-	nbranch antilost_full_battery,positive
-	store 1,mem_antl_key0_release+8
-antilost_battery_calculate_end:
-	jam OPCODE5_BATTER_INFORMATION,mem_antl_key0_release+5
-	arg mem_antl_key0_release,regc
-	branch antilost_prepare_data_and_send
-antilost_full_battery:
-	jam 100,mem_antl_key0_release+8
-	branch antilost_battery_calculate_end
-
-antilost_low_battery:
-	branch app_button_long_pressed
-endif
-
-
Index: DPI_Switch/program/app_car.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_car.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_car.prog	(nonexistent)
@@ -1,888 +0,0 @@
-ifdef COMPILE_CAR
-
-car_init:
-	rtn wake	
-	hfetch 1,core_gpio_sel1
-	and_into 0xf0,pdata
-	hstore 1,core_gpio_sel1
-	setarg car_le_before_hibernate
-	store 2,mem_cb_before_hibernate
-	
-	setarg car_le_process_lpm_before
-	store 2,mem_cb_before_lpm	
-	
-	setarg app_enter_hibernate
-	store 2,mem_cb_discovry_timeout
-	
-	setarg car_scale_process_idle	
-	store 2,mem_cb_idle_process	
-	
-	setarg car_scale_process_bb_event 
-	store 2,mem_cb_bb_event_process	
-	
-	setarg app_get_lpm_wake_lock
-	store 2,mem_cb_check_wakelock
-	
-	setarg car_le_receive_data
-	store 2,mem_cb_att_write
-	
-	setarg car_le_bb_event_timer
-	store 2,mem_cb_event_timer
-	
-	call g24_head_ptr2regc
-	setarg car_24g_receive_data
-	add regc,offset_24g_cb_rxdata_type1,contw
-	istore 2,contw
-
-	setarg car_power_off_signal
-	store 2,mem_remote_car_power_off_cb
-	
-	setarg car_soft_switch_power_on_signal
-	store 2,mem_remote_car_power_standby_cb
-	
-	bpatch patch19_7,mem_patch19
-	call car_init_environment
-	call queue_init
-	jam 2,mem_lpm_mult
-	jam POWER_ON,mem_car_24g_received_pac
-	fetch 1,mem_car_config_soft_switch_enable
-	store 1,mem_car_hard_soft_switch
-	beq HARD_SWITCH, car_hard_switch_power_on_signal
-	fetch 1,mem_car_config_soft_switch_gpio
-	store 1,mem_ui_button_gpio
-	jam OFF,mem_le_adv_enable
-car_soft_switch_power_on_init:
-	call car_ui_led_init
-	call ui_button_init
-	call ui_button_polling
-	jam POWER_STARTING,mem_car_power_state
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BTN_DOWN
- 	branch app_enter_hibernate
-
-car_power_off_signal:	
-	branch car_ui_led_init
-	
-car_hard_switch_power_on_signal:
-	jam POWER_STANDBY,mem_car_power_state
-car_soft_switch_power_on_signal:
-	jam ON,mem_le_adv_enable
-	call car_ui_led_init
-	arg 0,rega
-	call ui_led_blink_start_global
-	
-	setarg FAST_ADV_INTERVAL_VALUE_CAR
-	call shutter_ble_adv_interval_set
-car_le_modified_name_adv:
-	arg mem_le_name+7,contw
-	fetch 1,mem_le_lap
-car_name_loop:
-	and pdata,0xF0,temp
-	rshift4 temp,temp
-	call car_hex_to_ascii
-	istoret 1, contw
-	and pdata,0x0F,temp
-	call car_hex_to_ascii
-	istoret 1, contw
-	call le_modified_name_att_list
-	fetcht 1,mem_le_name_len
-	copy temp,loopcnt
-	arg mem_le_adv_data+2,contw
-	arg mem_le_name,contr
-	call memcpy
-car_le_modified_name_scan:
-	fetcht 1,mem_le_name_len
-	copy temp,loopcnt
-	arg mem_le_scan_data+2,contw
-	arg mem_le_name,contr
-	branch memcpy
-car_hex_to_ascii:
-	sub temp,9,null
-	branch car_hex_num,positive
-	add temp,55,temp
-	rtn
-car_hex_num:	
-	add temp,48,temp
-	rtn
-
-car_ui_led_init:
-	fetch 1,mem_car_config_blood_led1_gpio
-	bne INVALID_PIN_NUM,car_blood_led_gpio_set
-car_ui_led_init_1:
-	fetch 1,mem_car_config_pairing_led_gpio
-	bne INVALID_PIN_NUM,car_pairing_led_gpio_set
-car_ui_led_init_2:
-	fetch 1,mem_car_config_low_voltage_led_gpio
-	bne INVALID_PIN_NUM,car_low_voltage_led_gpio_set
-car_ui_led_init_3:
-	fetch 1, mem_car_led_num
-	copy pdata,loopcnt
-	setarg mem_car_led_map
-	copy pdata,rega
-car_in_lp1:
-	copy rega,contr
-	ifetch 1,contr
-	copy contr,rega
-	beq INVALID_PIN_NUM,car_in_lp1_end
-	copy pdata,temp
-	call gpio_config_output
-car_in_lp1_end:
-	loop car_in_lp1
-car_ui_led_init_end:
-	rtn
-car_blood_led_gpio_set:
-	fetch 8,mem_car_config_blood_led1_gpio
-	store 8,mem_car_led_map+2
-	branch car_ui_led_init_1
-car_pairing_led_gpio_set:
-	store 1,mem_car_led_map
-	branch car_ui_led_init_2
-car_low_voltage_led_gpio_set:
-	store 1,mem_car_led_map+1
-	branch car_ui_led_init_3
-
-
-car_init_environment:
-	arg 0,rega
-	call pwm_init
-	call car_ir_rx_init
-	call g24_receive_process_init
-	branch car_init_adc_hvin
-
-car_init_adc_hvin:
-	jam 100,mem_car_notify_vdd_value_last
-	fetch 1,mem_car_config_low_voltage_led_gpio
-	store 1,mem_car_style2_struct_led_gpio
-	branch adc_init_data
-	
-car_le_before_hibernate:
-	call gpio_set_before_lpm_common
-	branch keyscan_process_lpm_before
-
-car_le_process_lpm_before:
-	branch keyscan_process_lpm_before
-
-car_key_scan_process:
-//	fetch 1,mem_enable_key_scan
-//	rtn blank
-	branch keyscan_key_process
-
-car_scale_process_idle:
-	call car_le_send_packet
-	call car_ir_receive_process
-	call car_g24_status_process
-	branch car_key_scan_process
-
-car_g24_status_process:
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_CONNECTED
-	fetch 1,mem_car_24g_received_pac
-	beq WORK_PAIRED,car_g24_connected_event
-	rtn
-car_g24_connected_event:
-	fetch 1,mem_car_24g_status
-	rtneq WORK_PAIRED
-	jam WORK_PAIRED,mem_car_24g_status
-	branch car_g24_connected
-
-car_le_send_packet:
-	fetch 2,mem_ui_state_map
-	rtnbit0 UI_STATE_BLE_CONNECTED
-	call le_fifo_check_nearly_full
-	nrtn blank
-	arg mem_car_pop_queue_buff,rega
-	call queue_pop
-	nrtn user
-	arg mem_car_pop_queue_buff,contr
-	branch le_send_notify_from_list
- 
-car_scale_process_bb_event:
-	copy regc,pdata
-	beq BT_EVT_BUTTON_UP,app_event_button_up
-	beq BT_EVT_BUTTON_LONG_PRESSED,app_button_long_pressed
-	beq BT_EVT_LE_CONNECTED,car_scale_event_le_conn
-	beq BT_EVT_LE_DISCONNECTED,car_scale_event_le_discon
-	rtn
-
-car_scale_event_le_conn:
-	setarg disable_24g
-	call g24_store_mem_24g_mode
-	branch car_scale_process_conn
-car_g24_connected:
-	fetch 2,mem_car_24g_no_data_timeout_count
-	store 2,mem_car_24g_no_data_timeout_timer
-car_scale_process_conn:
-	jam 0x14,mem_car_notify_vdd_timer
-	jam 0,mem_lpm_mode
-	call app_ble_stop_adv
-	call app_lpm_mult_enable
-	fetch 1,mem_car_config_pairing_led_conn_status
-	beq 0x01,car_pairing_led_conn_status_setting
-car_scale_process_conn_next:
-	arg 0,rega
-	branch ui_led_on_global
-car_pairing_led_conn_status_setting:
-	arg 0,rega
-	branch ui_led_blink_stop_global
-
-car_scale_event_le_discon:
-	setarg rx_24g
-	call g24_store_mem_24g_mode
-car_g24_disconnect:
-	setarg 0
-	store 5,mem_car_led_control
-	setarg 4
-	call pwm_disable
-	setarg 5
-	call pwm_disable
-	setarg 20
-	call pwm_disable
-	setarg 21
-	call pwm_disable
-	setarg 22
-	call pwm_disable
-	setarg 7
-	call pwm_disable
-	call queue_init
-	jam 10,mem_motor1_speed
-	jam 10,mem_motor2_speed
-	jam 10,mem_motor3_speed
-//	jam 1,mem_lpm_mode
-	jam 2,mem_lpm_mult
-	arg 0,rega
-	call ui_led_blink_start_global
-
-	setarg FAST_ADV_INTERVAL_VALUE_CAR
-	call shutter_ble_adv_interval_set
-	branch app_ble_start_adv
-
-car_le_bb_event_timer:
-//	call car_ui_power_timeout_timer
-	call car_moto1_blank_data_timer
-	call car_moto2_blank_data_timer
-	call car_moto3_blank_data_timer
-	call app_power_timer
-	call car_led_control_timer
-	call car_notify_vdd_timer
-	call car_24g_no_data_timeout_timer
-	call car_ir_breakdown_timer
-	branch car_attack_shake_timer
-
-car_ir_breakdown_timer:
-	arg mem_car_ir_breakdown_check_timer,regc
-	arg car_ir_breakdown_timeout,regb
-	branch timer_single_step
-car_ir_breakdown_timeout:
-	call car_ir_gpio_get_status
-	nrtn true
-	jam 1,mem_car_ir_breakdown_flag
-	rtn
-	
-car_24g_no_data_timeout_timer:
-	arg mem_car_24g_no_data_timeout_timer,regc
-	arg car_24g_no_data_timer_timeout,regb
-	branch timer_single_step_2B
-car_24g_no_data_timer_timeout:
-	jam WORK_SEARCH,mem_car_24g_status
-	branch car_g24_disconnect
-
-car_attack_shake_timer:
-	arg mem_car_attack_shake_timer,regc
-	arg car_attack_shake,regb
-	branch timer_single_step
-car_attack_shake:
-	fetch 1, mem_car_attack_shake_flag
-	branch car_attack_shake_stop,blank
-	jam 2,mem_car_attack_shake_timer
-	jam 0, mem_car_attack_shake_flag
-	setarg 0x0a02
-	store 2,mem_le_receive_payload
-	fetch 1,mem_car_config_device_select
-	beq DEVICE_BATTLE_TANK,car_attack_shake_front_battle_tank
-car_attack_shake_front_battle_car:
-	branch car_motor_control
-car_attack_shake_front_battle_tank:
-	setarg 0x0a02
-	store 2,mem_le_receive_payload+2
-	branch car_motor_control
-car_attack_shake_stop:
-	setarg 0
-	store 4,mem_le_receive_payload
-	branch car_motor_control
-
-car_notify_vdd_timer:
-	fetch 1,mem_car_config_bat_notify_enable
-	rtn blank
- 	fetch 2,mem_ui_state_map
-	bbit0 UI_STATE_BLE_CONNECTED,car_low_bat_led_off
-	arg mem_car_notify_vdd_timer,regc
-	arg car_notify_vdd,regb
-	branch timer_single_step
-car_notify_vdd:
-	fetch 1,mem_car_notify_vdd_count
-	store 1,mem_car_notify_vdd_timer
- 	fetch 1,mem_car_working_flag
- 	nrtn blank
-car_read_hvin:
-	call adc_set_mode
-	call vdd_calculate_by_mode
-	store 2,mem_vdd_now_vol
-	arg mem_vdd_calculate_set,rega
-	call adc_bat_percent_lowpower_out
-	fetcht 1,mem_car_notify_vdd_value_last
-	isub temp,null
-	branch car_notify_vdd_next2,positive
-	store 1,mem_car_notify_vdd_value_last
-	copy pdata,temp
-car_notify_vdd_next2:
-	storet 1,mem_car_notify_vdd_percent
-	fetch 1,mem_car_config_low_voltage_percent
-	isub temp,null
-	call car_enter_low_bat,positive
-	storet 1,mem_notify_bat_payload 
-	arg 6,loopcnt
-	arg mem_notify_bat_head,contr
-	call calc_check_sum_start
-	store 1,mem_notify_bat_check_sum
-	arg mem_notify_bat_packet,rega
-	branch queue_push
-car_enter_low_bat:
-	fetch 1,mem_low_bat_flag
-	nrtn blank
-	jam 1,mem_low_bat_flag
-	arg 1,rega
-	branch ui_led_blink_start_global
-car_low_bat_led_off:
-	arg 1,rega
-	branch ui_led_blink_stop_global
-
-car_led_control_timer:
-	arg mem_car_led_control_timer,regc
-	arg car_led_control,regb
-	branch timer_single_step
-car_led_control:
-	jam 5,mem_car_led_control_timer
-	jam 0,mem_car_led_no
-	fetch 1,mem_car_led_blink_status
-	beq LED_ON,car_led_control_blink_off
-	beq LED_OFF,car_led_control_blink_on
-car_led_control_set:
-	arg mem_car_led_control,contr
-	copy contr,rega
-	arg 8,loopcnt
-car_led_control_timer_next:
-	copy rega,contr
-	ifetch 1,contr
-	copy contr,rega
-	beq LED_OFF,car_led_control_off
-	beq LED_ON,car_led_control_on
-	beq LED_BLINK,car_led_control_blink
-car_led_control_timer_next_2:
-	fetch 1,mem_car_led_no
-	increase 1,pdata
-	store 1,mem_car_led_no
-	loop car_led_control_timer_next
-	rtn
-car_led_switch:
-	fetch 1,mem_car_led_no
-	arg mem_car_config_blood_led_gpio,regb
-	iadd regb,regb
-	ifetcht 1,regb
-	rtn
-car_led_control_off:
-	call car_led_switch
-	call gpio_out_inactive
-	branch car_led_control_timer_next_2
-car_led_control_on:
-	call car_led_switch
-	call gpio_out_active
-	branch car_led_control_timer_next_2
-car_led_control_blink:
-	fetch 1,mem_car_led_blink_status
-	beq LED_ON,car_led_control_off
-	branch car_led_control_on
-car_led_control_blink_on:
-	jam LED_ON,mem_car_led_blink_status
-	branch car_led_control_set
-car_led_control_blink_off:
-	jam LED_OFF,mem_car_led_blink_status
-	branch car_led_control_set
-	
-////////////////////////check sum////////////////////////
-//loopcnt = sum number,contr = ptr
-calc_check_sum_start:
-	arg 0,rega
-calc_check_sum_loop:
-	ifetch 1,contr
-	iadd rega,rega
-	loop calc_check_sum_loop
-calc_check_sum_and:
-	and rega,0xff,pdata
-	rtn
-
-car_le_receive_data:	
-	fetch 1,mem_le_att_opcode
-	beq ATTOP_WRITE_REQUEST,car_le_parse_att_write_request
-	rtn
-car_le_parse_att_write_request:
-	fetch 2,mem_le_att_handle
-	beq ATT_CAR_CONTROL_HANDLE,car_control_le_receive
-	rtn
-
-/*
-*	typedef struct
-*	{
-*		2byte	packet_head				(mem_app_receive_temp)
-*		1byte	packet_cmd				(mem_app_receive_temp+2)
-*		2byte	packet_payload_length	(mem_app_receive_temp+3)
-*		10byte	packet_payload			(mem_app_receive_temp+5)
-*		1byte	packet_check_sum		(mem_app_receive_temp+15)
-*	}
-*/
-le_app_receive_data:
-	bpatch patch1a_0,mem_patch1a
-	ifetch 5,rega
-	store 5,mem_app_receive_temp
-	fetch 2,mem_app_receive_temp
-	arg LE_RECEIVE_PACKET_HEAD,temp
-	isub temp,null
-	nrtn zero
-	fetch 2,mem_app_receive_temp+3
-	byteswap pdata,pdata
-	store 2,mem_app_receive_temp+3
-	copy pdata,loopcnt
-	increase 5,rega
-	copy rega,contr
-	arg mem_app_receive_temp+5,contw
-	call memcpy
-	ifetch 1,contr
-	store 1,mem_app_receive_temp+15
-	arg mem_app_receive_temp+2,rega
-	arg mem_app_receive_temp+5,regb
-	rtn
-
-car_control_le_receive:
-	setarg 0
-	store 5,mem_le_receive_payload
-	store 5,mem_le_receive_payload+5
-	call le_app_receive_data
-	copy regb,contr
-	arg mem_le_receive_payload,contw
-	arg 10,loopcnt
-	call memcpy
-car_receive_cmd_select:
-	bpatch patch1a_1,mem_patch1a
-	ifetch 1,rega
-	beq CAR_CMD_OLD_CAR_CONTROL,car_drive_old
-	beq CAR_CMD_OLD_SPEED_CONTROL,car_speed_set_old
-	beq CAR_CMD_L_R_MOTOR_CONTROL,car_motor_control
-	beq CAR_CMD_F_B_MOTOR_CONTROL,car_motor_control
-	beq CAR_CMD_IR_CONTROL,car_ir_data_rx_from_app
-	beq CAR_CMD_LED_CONTROL,car_led_control_receive
-	beq CAR_CMD_DEVICE_INFO,car_info_request
-	rtn
-
-car_24g_receive_data:
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_CONNECTED
-	
-	fetch 2,mem_car_24g_no_data_timeout_count
-	store 2,mem_car_24g_no_data_timeout_timer
-	
-	jam WORK_PAIRED,mem_car_24g_received_pac
-	
-	setarg offset_24g_rxdata_temp_add3
-	call g24_set_rega
-	call car_control_le_receive
-
-	fetch 1,mem_app_receive_temp+2	//cmd
-	beq CAR_CMD_L_R_MOTOR_CONTROL,car_24g_receive_data_next
-	beq CAR_CMD_F_B_MOTOR_CONTROL,car_24g_receive_data_next
-	rtn
-car_24g_receive_data_next:
-	fetch 1,mem_le_receive_payload	//moto1
-	ncall car_moto1_enable_blank_data_timer,blank
-	fetch 1,mem_le_receive_payload+2	//moto2
-	ncall car_moto2_enable_blank_data_timer,blank
-	fetch 1,mem_le_receive_payload+4	//moto3
-	ncall car_moto3_enable_blank_data_timer,blank
-	rtn
-
-car_moto1_enable_blank_data_timer:
-	jam 5,mem_car_moto1_blank_timer
-	rtn
-car_moto2_enable_blank_data_timer:
-	jam 5,mem_car_moto2_blank_timer
-	rtn
-car_moto3_enable_blank_data_timer:
-	jam 5,mem_car_moto3_blank_timer
-	rtn
-
-car_moto1_blank_data_timer:
-	arg mem_car_moto1_blank_timer,regc
-	arg car_moto1_blank_data,regb
-	branch timer_single_step
-car_moto2_blank_data_timer:	
-	arg mem_car_moto2_blank_timer,regc
-	arg car_moto2_blank_data,regb
-	branch timer_single_step
-car_moto3_blank_data_timer:		
-	arg mem_car_moto3_blank_timer,regc
-	arg car_moto3_blank_data,regb
-	branch timer_single_step
-
-car_moto1_blank_data:
-	jam 0,mem_le_receive_payload
-	branch car_motor_control
-car_moto2_blank_data:
-	jam 0,mem_le_receive_payload+2
-	branch car_motor_control
-car_moto3_blank_data:
-	jam 0,mem_le_receive_payload+4
-	branch car_motor_control
-	
-	
-///////////////////////Motor//////////////////////////////////////////
-
-car_drive_old:	
-	call car_left_right_control_old
-	branch car_front_back_control_old
-car_left_right_control_old:
-	fetch 1,mem_le_receive_payload
-	store 1,mem_motor2_status
-	branch car_motor2_control
-car_front_back_control_old:
-	fetch 1,mem_motor1_speed
-	call car_reset_old_speed
-	fetch 1,mem_le_receive_payload+1
-	store 1,mem_motor1_status
-	branch car_motor1_control
-car_reset_old_speed:
-	beq SPEED_LEVEL_2,car_reset_old_speed2
-	beq SPEED_LEVEL_3,car_reset_old_speed3
-	store 1,mem_motor1_speed
-	rtn
-car_reset_old_speed2:
-	jam SPEED_LEVEL_5,mem_motor1_speed
-	rtn
-car_reset_old_speed3:
-	jam SPEED_LEVEL_10,mem_motor1_speed
-	rtn
-car_speed_set_old:
-	fetch 1,mem_le_receive_payload
-	call car_reset_old_speed
-	fetch 1,mem_motor1_speed
-	call car_motor_speed_duty_setting
-	call car_motor_speed_duty_transform
-	branch pwm_pwm0_duty_set
-
-car_motor_control:
-	fetch 1,mem_car_24g_go_die_flag
-	nrtn blank
-	fetch 6,mem_le_receive_payload
-	store 6,mem_motor1_status
-	fetch 1,mem_motor1_speed
-	fetcht 1,mem_motor2_speed
-	iand temp,pdata
-	fetcht 1,mem_motor3_speed
-	iand temp,pdata
-	call car_motor_working_flag,blank
-	bpatch patch1a_2,mem_patch1a
-	call car_motor1_control
-	call car_motor2_control
-	branch car_motor3_control
-car_motor1_control:
-	arg mem_motor1_pwm_set,regb
-	arg mem_motor1_status,contr
-	branch car_motor_status_select
-car_motor2_control:
-	arg mem_motor2_pwm_set,regb
-	arg mem_motor2_status,contr
-	branch car_motor_status_select
-car_motor3_control:
-	arg mem_motor3_pwm_set,regb
-	arg mem_motor3_status,contr
-	branch car_motor_status_select
-car_motor_working_flag:
-	jam 0,mem_car_working_flag
-	rtn
-
-car_motor_status_select:
-	ifetch 1,contr
-	beq MOTOR_STOP,car_motor_stop
-	beq GO_FRONT,car_motor_positive
-	beq GO_BACK,car_motor_negative
-	rtn
-car_motor_positive:
-	jam 0,mem_motor_select_p_n
-	branch car_motor_negative+1
-car_motor_negative:
-	jam 1,mem_motor_select_p_n
-	ifetch 1,contr
-	store 1,mem_car_motor_speed
-	ifetch 8,regb
-	branch car_motor_work
-
-car_motor_stop:
-	ifetch 1,regb
-	call pwm_disable
-	increase 1,regb
-	ifetch 1,regb
-	branch pwm_disable
-car_motor_work:
-	store 8,mem_motor_pwm_pin1_set
-	jam 1,mem_car_working_flag
-	fetch 1,mem_motor_select_p_n
-	beq 0,car_motor_select_positive
-car_motor_select_negative:
-	fetch 1,mem_motor_pwm_pin2_set
-	store 1,mem_motor_pwm_pin_set
-	fetch 1,mem_motor_pwm_pin1_set
-car_motor_work_next:
-	call pwm_disable
-	fetch 1,mem_car_motor_speed
-	call car_motor_speed_duty_setting
-	store 1,mem_motor_pwm_dute_set
-	fetch 6,mem_motor_pwm_pin_set
-	store 6,mem_pdatatemp
-	branch pwm_out_set
-car_motor_select_positive:
-	fetch 1,mem_motor_pwm_pin1_set
-	store 1,mem_motor_pwm_pin_set
-	fetch 1,mem_motor_pwm_pin2_set
-	branch car_motor_work_next
-
-car_motor_speed_duty_setting:
-	mul32 pdata,5,pdata
-	add pdata,50,pdata
-	rtn
-car_motor_speed_duty_transform:
-	arg 12000,temp
-	imul32 temp,pdata
-	div pdata,100
-	call wait_div_end
-	quotient temp
-	copy temp,rega
-	setarg 12000
-	isub temp,regb
-	rtn
-
-/////////////////////IR PROCESS/////////////////////
-car_ir_init:
-	hfetch 1,core_gpio_sel2		// select GPIO3 as pwm4
-	set1 2,pdata
-	hstore 1,core_gpio_sel2
-	setarg 158
-	hstore 2,core_pwm_pcnt4
-	hstore 2,core_pwm_ncnt4
-	rtn
-
-car_ir_data_rx_from_app:
-	fetch 1,mem_car_24g_go_die_flag
-	nrtn blank
-	fetch 2,mem_le_receive_payload
-	store 2,mem_ir_data
-	fetch 1,mem_car_24g_status
-	bne WORK_PAIRED,car_ir_data_tx
-	fetch 2,mem_le_lap
-	store 2,mem_ir_data
-car_ir_data_tx:
-	bpatch patch1a_3,mem_patch1a
-	call car_ir_init
-	call car_ir_enable
-	setarg 48000
-	call sleep
-	call car_ir_disable
-	setarg 7200
-	call sleep
-	arg 16,loopcnt
-car_ir_send_loop:
-	call car_ir_enable
-	fetch 2,mem_ir_data
-	bbit1 0,car_ir_is_bit1
-	setarg 7200
-	call sleep
-	call car_ir_disable
-	branch car_ir_wait_finish
-	
-car_ir_is_bit1:
-	setarg 14400
-	call sleep
-	call car_ir_disable
-car_ir_wait_finish:
-	setarg 7200
-	call sleep
-	fetch 2,mem_ir_data
-	rshift pdata,pdata	
-	store 2,mem_ir_data
-	loop car_ir_send_loop
-
-	jam 2,mem_car_attack_shake_timer
-	jam 1, mem_car_attack_shake_flag
-	setarg 0x0a01
-	store 2,mem_le_receive_payload
-	fetch 1,mem_car_config_device_select
-	beq DEVICE_BATTLE_TANK,car_attack_shake_back_battle_tank
-car_attack_shake_back_battle_car:
-	branch car_motor_control
-car_attack_shake_back_battle_tank:
-	setarg 0x0a01
-	store 2,mem_le_receive_payload+2
-	branch car_motor_control
-	
-car_ir_enable:
-	hfetch 1,core_gpio_key2			// PWM4_enable
-	or_into 0x40,pdata
-	hstore 1,core_gpio_key2	
-	rtn
-car_ir_disable:
-	hfetch 1,core_gpio_key2			// PWM4_disable
-	and_into 0xbf,pdata
-	hstore 1,core_gpio_key2
-	rtn
-	
-car_ir_rx_init:
-	fetch 1,mem_car_config_ir_enable
-	rtneq 0x00
-	call lpm_disable_exen_output
-	fetcht 1,mem_car_config_ir_rx_gpio
-	storet 1,mem_ir_rx_gpio
-	call gpio_config_input
-	call car_ir_gpio_get_status
-	nrtn true
-	jam 1,mem_car_ir_breakdown_check_timer
-	rtn
-
-car_ir_receive_process:
-	fetch 1,mem_car_config_ir_enable
-	rtneq FLAG_IR_DISABLE	
-	fetch 1,mem_car_ir_breakdown_flag
-	nrtn blank
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,car_ir_receive_process_next
-	fetch 1,mem_car_24g_status
-	rtnne WORK_PAIRED
-car_ir_receive_process_next:
-	bpatch patch1a_4,mem_patch1a
-	call car_ir_gpio_get_status
-	nrtn true
-	setarg 36000
-	call sleep
-	call car_ir_gpio_get_status
-	nrtn true
-	call car_ir_clk_get
-car_ir_packet_head_wait_end:
-	call car_ir_clk_check
-	nrtn positive
-	call car_ir_gpio_get_status
-	branch car_ir_packet_head_wait_end,true
-	arg 0,rega
-	arg 16,loopcnt
-	call car_ir_clk_get
-car_ir_receive_process_loop:
-	call car_ir_clk_check
-	nrtn positive
-	call car_ir_gpio_get_status
-	nbranch car_ir_receive_process_loop,true
-	setarg 10800
-	call sleep
-	call car_ir_gpio_get_status
-	branch car_ir_get_bit1,true
-car_ir_get_bit0:
-	setarg 0
- 	rshift rega,rega
-	ior rega,rega
-	loop car_ir_receive_process_loop
-	branch car_ir_receive_process_end
-car_ir_get_bit1:
-	setarg 0x8000
-	rshift rega,rega
-	ior rega,rega
-	call car_ir_clk_get
-car_ir_get_bit1_wait_low_end:
-	call car_ir_clk_check
-	nrtn positive
-	call car_ir_gpio_get_status
-	branch car_ir_get_bit1_wait_low_end,true
-	loop car_ir_receive_process_loop
-car_ir_receive_process_end:
-	bpatch patch1a_5,mem_patch1a
-	copy rega,pdata
-	store 2,mem_ir_rx_buf
-	store 2,mem_ir_notify_data+8
-	fetch 1,mem_car_24g_status
-	beq WORK_PAIRED,car_ir_24g_receive_attack
-car_ir_data_notify:
-	arg 0x07,loopcnt
-	arg mem_ir_notify_data_head,contr
-	call calc_check_sum_start
-	store 1,mem_ir_notify_data_check_sum
-	arg mem_ir_notify_data,rega
-	branch queue_push
-
-car_ir_24g_receive_attack:
-	fetch 1,mem_car_24g_ir_receive_attack_count
-	increase 1,pdata
-	store 1,mem_car_24g_ir_receive_attack_count
-	div pdata,2
-	call wait_div_end
-	quotient temp
-	remainder pdata
-	nbranch car_ir_24g_receive_attack_blink,blank
-car_ir_24g_receive_attack_off:
-	fetch 1,mem_car_config_led_num
-	isub temp,null
-	call car_ir_24g_go_die,zero
-	arg mem_car_led_control,pdata
-	increase -1,temp
-	iadd temp,rega
-	arg 0,pdata
-	istore 1,rega
-	rtn
-car_ir_24g_receive_attack_blink:
-	arg mem_car_led_control,pdata
-	iadd temp,rega
-	arg 2,pdata
-	istore 1,rega
-	rtn
-car_ir_24g_go_die:
-	jam 1,mem_car_24g_go_die_flag
-	rtn
-car_ir_clk_get:
-	copy clkn_bt,pdata
-	store 4,mem_ir_receive_clkn
-	rtn
-car_ir_clk_check:
-	copy clkn_bt,pdata
-	fetcht 4,mem_ir_receive_clkn
-	isub temp,pdata
-	sub pdata,200,null
-	rtn
-
-car_ir_gpio_get_status:
-	fetcht 1,mem_ir_rx_gpio
-	branch gpio_get_bit
-
-car_led_control_receive:
-	fetch 8,mem_le_receive_payload
-	store 8,mem_car_led_control
-	rtn
-
-car_info_request:
-	fetch 1,mem_car_config_device_select
-	store 1,mem_car_info_request_payload
-	fetch 1,mem_car_config_motor_layout
-	store 1,mem_car_info_request_payload+1
-	fetch 1,mem_car_config_ir_enable
-	store 1,mem_car_info_request_payload+2
-	arg 13,loopcnt
-	arg mem_car_info_request_head,contr
-	call calc_check_sum_start
-	store 1,mem_car_info_request_checksum
-	arg mem_car_info_request,rega
-	branch queue_push
-    
-endif
-
-
-
Index: DPI_Switch/program/app_light.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_light.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_light.prog	(nonexistent)
@@ -1,227 +0,0 @@
-
-light_init:
-	call clear_eeprom_size_2k
-	jam 0x7a,mem_curr_packet_num
-	call light_load_controler_list
-	call light_init_crr_cmd_count
-	setarg light_pairing_timer
-	store 2,mem_cb_event_timer
-	arg 0,rega
-	branch pwm_init
-
-light_pairing_timer:
-	fetch 2,mem_light_pairing_timer
-	rtn blank
-	increase -1,pdata
-	store 2,mem_light_pairing_timer
-	rtnne 0
-	jam 0,mem_light_pairing_enable
-	rtn
-
-light_init_crr_cmd_count:
-	bpatch patch1a_6,mem_patch1a
-	fetch 1,mem_light_next_record
-	sub pdata,40,null
-	rtn positive
-	jam 0,mem_light_next_record
-	rtn
-
-light_load_controler_list:
-	arg mem_light_next_record,rega
-	arg 0,regb
-	arg 81,temp
-	branch iicd_read_eep_data
-
-//output user:group record find
-light_find_controler_pairing:
-	disable user
-	fetch 1,mem_light_cnum
-	copy pdata,loopcnt
-	
-	arg mem_light_clist,rega
-	copy regc,regb
-light_find_controler_pairing_loop:
-	bpatch patch1a_7,mem_patch1a
-	call light_compare_addr_record
-	branch enable_user,zero
-light_find_single_pairing_diff:
-	increase 4,rega
-	loop light_find_controler_pairing_loop
-	rtn
-
-//rega: regb:
-light_compare_addr_record:
-	bpatch patch1b_0,mem_patch1b
-	ifetch 3,rega
-	ifetcht 3,regb
-	isub temp,null
-	rtn
-//rega: regb:
-light_compare_single_record:
-	bpatch patch1b_1,mem_patch1b
-	ifetch 3,rega
-	ifetcht 3,regb
-	isub temp,null
-	nrtn zero
-	ifetch 1,contr
-	sub pdata,0,null //0 zero
-	rtn zero
-	add rega,3,contr
-	ifetcht 1,contr
-	isub temp,null
-	rtn
-
-//output:find single controler
-light_find_controler_cmd:
-	bpatch patch1b_2,mem_patch1b
-	disable user
-	fetch 1,mem_light_cnum
-	copy pdata,loopcnt
-	
-	arg mem_light_clist,rega
-	copy regc,regb
-light_find_controler_cmd_loop:
-	call light_compare_single_record
-	branch enable_user,zero
-	increase 4,rega
-	loop light_find_controler_cmd_loop
-	rtn
-
-//regc
-light_recv_adv:
-	fetch 1,mem_le_scanrsp_rcv
-	increase 1,pdata
-	store 1,mem_le_scanrsp_rcv
-	arg mem_le_rxbuf+12,regc
-
-light_anylize_command:
-	ifetch 2,regc
-	arg 0x55aa,temp
-	isub temp,null
-	nrtn zero
-	copy contr,regc
-	ifetcht 3,regc
-	setarg 0xffffff
-	isub temp,null
-	branch light_parse_cmd,zero
-	call light_find_controler_cmd
-	branch light_parse_cmd,user
-	rtn
-
-light_parse_cmd:
-	bpatch patch1b_3,mem_patch1b
-	increase 4,regc
-	ifetch 1,regc
-	fetcht 1,mem_curr_packet_num
-	isub temp,null
-	rtn zero
-	store 1,mem_curr_packet_num
-	fetch 1,mem_le_req_rcv
-	increase 1,pdata
-	store 1,mem_le_req_rcv
-	
-	increase 1,regc
-	ifetch 1,regc
-	store 1,mem_light_crr_cmd_count
-	copy pdata,loopcnt
-	rtn blank
-light_parse_cmd_loop:
-	ifetch 1,contr
-	beq LIGHT_CMD_PWM0,light_parse_cmd_pwm0
-	beq LIGHT_CMD_PWM1,light_parse_cmd_pwm1
-	beq LIGHT_CMD_PWM2,light_parse_cmd_pwm2
-	beq LIGHT_CMD_PWM3,light_parse_cmd_pwm3
-	beq LIGHT_CMD_PWM4,light_parse_cmd_pwm4
-	beq LIGHT_CMD_PWM5,light_parse_cmd_pwm5
-	beq LIGHT_CMD_AUTO_MODE,light_parse_auto_mode
-	beq LIGHT_CMD_PAIRING,light_parse_pairing
-	loop light_parse_cmd_loop
-	rtn
-
-light_parse_cmd_pwm0:
-	copy contr,regc
-	fetch 1,mem_light_pwm0
-	store 1,mem_pdatatemp
-	arg 0,temp
-light_parse_cmd_pwm_common:
-	storet 1,mem_pdatatemp+1
-	setarg 10000
-	store 3,mem_pdatatemp+2
-	ifetch 1,regc
-	store 1,mem_pdatatemp+5
-	call  pwm_out_set
-	and regc,1,contr
-	loop light_parse_cmd_loop
-	rtn
-light_parse_cmd_pwm1:
-	copy regc,contr
-	fetch 1,mem_light_pwm1
-	store 1,mem_pdatatemp
-	arg 1,temp
-	branch light_parse_cmd_pwm_common
-light_parse_cmd_pwm2:
-	copy regc,contr
-	fetch 1,mem_light_pwm2
-	store 1,mem_pdatatemp
-	arg 2,temp
-	branch light_parse_cmd_pwm_common
-light_parse_cmd_pwm3:
-	copy regc,contr
-	fetch 1,mem_light_pwm3
-	store 1,mem_pdatatemp
-	arg 3,temp
-	branch light_parse_cmd_pwm_common
-light_parse_cmd_pwm4:
-	copy regc,contr
-	fetch 1,mem_light_pwm4
-	store 1,mem_pdatatemp
-	arg 4,temp
-	branch light_parse_cmd_pwm_common
-light_parse_cmd_pwm5:
-	copy regc,contr
-	fetch 1,mem_light_pwm5
-	store 1,mem_pdatatemp
-	arg 5,temp
-	branch light_parse_cmd_pwm_common
-
-light_parse_auto_mode:
-	ifetch 1,contr
-	rtn
-
-light_parse_pairing:
-	copy contr,regc
-	fetch 1,mem_light_pairing_enable
-	bne 1,light_parse_pairing_abandon
-	call update_controler_list
-light_parse_pairing_abandon:
-	and regc,4,contr
-	rtn
-update_controler_list:
-	bpatch patch1b_4,mem_patch1b
-	call light_find_controler_pairing
-	branch update_conrtoler_list_found,user
-	fetch 1,mem_light_next_record
-	copy pdata,temp
-	increase 1,pdata
-	store 1,mem_light_next_record
-	call light_init_crr_cmd_count
-	lshift2 temp,temp
-	setarg mem_light_clist
-	iadd temp,contw
-	ifetch 4,regc
-	istore 4,contw
-	branch update_conrtoler_store_list
-update_conrtoler_list_found:
-	add regc,3,contr
-	ifetch 1,contr
-	rtn blank
-	ifetch 4,regc
-	istore 4,rega
-update_conrtoler_store_list:
-	arg mem_light_next_record,rega
-	arg 0,regb
-	arg 81,temp
-	branch iicd_write_eep_data
-
-
-
Index: DPI_Switch/program/app_lightC.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_lightC.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_lightC.prog	(nonexistent)
@@ -1,55 +0,0 @@
-lightc_init:
-	//key scan init
-
-	//gpio init
-	fetcht 1,mem_lightc_led_gpio
-	call gpio_out_inactive
-	rtn
-
-
-lightc_dispatch:
-	//key scan 
-	
-	fetcht 1,mem_lightc_led_gpio
-	call gpio_out_active
-
-
-	fetcht 1,mem_lightc_led_gpio
-	call gpio_out_inactive
-
-	//
-	call lightc_start_adv
-
-	fetch 1,mem_adv_time
-	nrtn blank
-	//sleep 
-	call lpm_write_gpio_wakeup
-	hfetch 4,core_lpm_ctrl
-	set0 15,pdata						/* lowest lpo */
-	hstore 4,core_lpm_reg
-	call lpm_write_ctrl
-	arg param_hibernate_clks,temp
-	branch lpm_sleep
-
-lightc_adv:
-	fetch 1,mem_adv_time
-	branch le_adv_loop_tx,blank
-	increase -1,pdata
-	store 1,mem_adv_time
-	branch le_adv_loop_tx
-
-lightc_start_adv:
-	mul32 pdata,20,pdata
-	arg mem_cmd0_string,contr
-	iadd contr,contr
-	ifetch 1,contr
-	rtn blank
-	copy pdata,rega
-	copy rega,loopcnt
-	arg mem_le_adv_data+2,contw
-	call memcpy
-	copy rega,pdata
-	increase 2,pdata
-	store 1,mem_le_adv_data_len
-	rtn
-
Index: DPI_Switch/program/app_module.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_module.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_module.prog	(nonexistent)
@@ -1,1506 +0,0 @@
-
-ifdef COMPILE_MODULE
-
-
-
-
-module_init:
-	
-	rtn wake
-	call le_modified_name
-	call adc_init_data
-	setarg module_process_idle
-	store 2,mem_cb_idle_process
-	setarg module_bt_conn_process
-	store 2,mem_cb_bt_process
-	setarg module_process_bb_event
-	store 2,mem_cb_bb_event_process
-	setarg module_le_conn_process
-	store 2,mem_cb_le_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_hci_event_receive_spp_data
-	store 2,mem_cb_receive_spp_data
-	setarg module_le_receive_data
-	store 2,mem_cb_att_write
-	setarg module_bb_event_timer
-	store 2,mem_cb_event_timer
-
-	call module_spp_clear_last_transmite_clock
-	bpatch patch1b_5,mem_patch1b
-	call module_lpm_uart_init
-	call module_gpio_init
-	call check_module_disabled
-	branch module_hci_event_enter_standby_mode
-
-
-module_lpm_uart_init:
-	fetch 4,mem_module_uart_rx_buffer
-	hstore 4,core_uart_rsaddr
-
-	fetch 4,mem_module_uart_tx_buffer
-	hstore 4,core_uart_tsaddr
-
-	hfetch 1,core_gpio_sel1
-	or_into 0x04,pdata
-	and_into 0xfc,pdata
-	hstore 1,core_gpio_sel1
-	jam 0x00,core_uart_ctrl
-
-	fetch 2,mem_module_uart_rx_buffer
-	hstore 2,core_uart_rrptr
-	fetch 2,mem_module_uart_tx_buffer
-	hstore 2,core_uart_twptr
-	hstore 2,core_uart_trptrp
-
-	hfetch 4,core_gpio_pu0
-	set1 7,pdata
-	hstore 4,core_gpio_pu0
-	
-	hfetch 2,core_clkoff
-	set0 CLOCK_OFF_UART,pdata
-	hstore 2,core_clkoff
-	call uart_set_baud_by_mem
-	jam uartclk_crystal,core_uart_clksel
-	jam uart_ctrl_h4,core_uart_ctrl
-
-	fetch 1,mem_module_flag
-	isolate1 MODULE_FLAG_UART_FLOW_CONTROL,pdata
-	hfetcht 1,core_uart_ctrl
-	setflag true,4,temp
-	hstoret 1,core_uart_ctrl
-	rtn
-	
-
-
-module_lpm_init:
-	call module_spp_clear_last_transmite_clock
-	branch module_lpm_uart_init
-//	branch module_gpio_init
-	
-module_gpio_init:
-	//module state pin
-//	call ui_led_init	
-//	call app_led_start_blink
-	//module conn state pin
-	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
-
-	
-module_le_conn_process:
-	rtn
-
-module_bt_conn_process:
-	call module_spp_enter_sniff
-	branch module_control_air_flow
-
-module_spp_enter_sniff:
-	fetch 1,mem_ui_state_map
-	bbit0 UI_STATE_BT_SPP_CONN,module_spp_clear_last_transmite_clock
-	bpatch patch1b_6,mem_patch1b
-	setarg 0x3eff
-	fetcht 4,mem_last_transmite_clock
-	iadd temp,temp
-	copy clkn_bt,pdata
-	isub temp,null
-	nrtn positive
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BT_SNIFF,module_spp_clear_last_transmite_clock
-	fetch 1,mem_module_flag
-	rtnbit1 MOUDLE_TASK_SNIFF
-	call module_set_sniff_task_flag
-	call app_bt_enter_sniff
-module_spp_clear_last_transmite_clock:
-	copy clkn_bt,pdata
-	store 4,mem_last_transmite_clock
-	rtn
-	
-
-module_process_idle:
-	call module_control_air_flow
-	call l2cap_malloc_is_fifo_full
-	nrtn blank
-	branch module_process
-
-	
-module_process_bb_event:
-	copy regc,pdata
-	beq BT_EVT_BB_CONNECTED,module_process_bb_conn
-	beq BT_EVT_BB_DISCONNECTED,module_process_bb_event_disconned
-	beq BT_EVT_RECONN_FAILED,module_process_reconn_fail
-	beq BT_EVT_SETUP_COMPLETE,module_process_setup_complete
-	beq BT_EVT_SPP_CONNECTED,module_process_spp_connected
-	beq BT_EVT_SPP_DISCONNECTED,module_process_spp_disconnected
-	beq BT_EVT_PINCODE_REQ,module_process_evt_pincode_req
-	beq BT_EVT_ENTER_SNIFF,module_process_enter_sniff
-	beq BT_EVT_EXIT_SNIFF,module_process_exit_sniff
-	beq BT_EVT_RECONN_PAGE_TIMEOUT,module_process_page_time_out
-	beq BT_EVT_LE_CONNECTED,module_process_le_conn
-	beq BT_EVT_LE_DISCONNECTED,module_process_bb_even_le_disconn
-	beq BT_EVT_SNIFF_NOT_ACCEPT,module_process_sniff_not_accept
-	beq BT_EVT_UNSNIFF_ACCEPT,module_process_unsniff_accept
-	beq BT_EVT_UNSNIFF_NOT_ACCEPT,module_process_unsniff_not_accept
-	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_BT_GKEY_GENERATE,module_hci_event_gkey_generate
-	beq BT_EVT_BT_GET_PASSKEY,module_hci_event_passkey_entry_mode
-	beq BT_EVT_BT_PAIRING_FAIL,module_hci_event_bt_pairing_fail	
-	beq BT_EVT_BT_PAIRING_SUCCESS,module_hci_event_bt_pairing_success
-ifdef SECURE_CONNECTION	
-	beq BT_EVT_LE_GKEY_GENERATE,module_hci_event_le_gkey
-endif
-	beq BT_EVT_STORE_NVRAM,module_hci_event_store_device
-	beq BT_EVT_LE_LTK_LOST,module_process_ble_ltk_lost
-	rtn
-
-	
-module_process_bb_event_disconned:
-	call module_spp_clear_last_transmite_clock
-	fetch 1,mem_flag_pairing_state
-	ncall module_hci_event_bt_pairing_fail,blank
-	call module_disconn_start
-	fetch 2,mem_ui_state_map
-	rtnbit0 UI_STATE_BT_SPP_CONN
-	branch  module_spp_disconnected
-
-module_process_spp_connected:
-	fetch 2,mem_ui_state_map
-	set1 UI_STATE_BT_SPP_CONN,pdata
-	store 2,mem_ui_state_map
-	fetch 1,mem_module_spp_lpm_mult
-	store 1,mem_lpm_mult
-	call module_set_conn_pin_low
-	branch module_hci_event_spp_connect
-
-module_process_spp_disconnected:
-//	branch module_spp_disconnected
-module_spp_disconnected:
-	fetch 2,mem_ui_state_map
-	rtnbit0 UI_STATE_BT_SPP_CONN
-	set0 UI_STATE_BT_SPP_CONN ,pdata
-	store 2,mem_ui_state_map
-	branch module_hci_event_spp_disconnect
-
-
-module_process_enter_sniff:
-
-module_sniff_param_check:
-	call module_spp_clear_last_transmite_clock
-	//fetch 1,mem_context
-	//rtnbit0 state_insniff
-	fetch 2,mem_context+coffset_tsniff
-	rshift pdata,pdata
-	fetcht 2,mem_sniff_param_interval
-	isub temp,null
-	nbranch module_sniff_param_check_unsniff,zero
-	branch app_lpm_mult_enable
-module_sniff_param_check_unsniff:
-	fetch 1,mem_module_flag
-	rtnbit1 MOUDLE_TASK_UNSNIFF
-	hfetch 2,core_uart_rxitems    //*
-	ncall module_set_unsniff_task_flag,blank    //*仰
-	branch app_bt_sniff_exit
-
-module_process_exit_sniff:
-	call module_clear_sniff_task_flag
-	branch app_lpm_mult_disable
- 	
-module_process_setup_complete:
-	call module_spp_clear_last_transmite_clock
-	branch module_conn_start
-	
-module_process_bb_even_le_disconn:
-	call le_clr_config_more_data
-	call module_disconn_start
-	branch module_hci_event_le_disconnect
-
-module_process_evt_pincode_req:
-	branch  app_bt_set_pincode
-	
-
-module_process_sniff_not_accept:
-	branch module_clear_sniff_task_flag
-
-
-module_process_unsniff_accept:
-	fetch 1,mem_module_flag
-	bbit0 MOUDLE_TASK_UNSNIFF,app_bt_enter_sniff
-	branch module_clear_unsniff_task_flag
-
-	
-module_process_unsniff_not_accept:
-	branch module_clear_unsniff_task_flag
-
-	
-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_process_bb_conn:
-	jam 0,mem_flag_mode_ssp_pin
-	call module_clear_sniff_task_flag
-	branch module_clear_unsniff_task_flag
-
-module_process_page_time_out:
-module_process_reconn_fail:
-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_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_BT_BIT,pdata
-	call app_bt_stop_discovery,true
-	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
-
-module_process_with_credit:
-	fetch 1,mem_credit_flag
-	rtneq CREDIT_DISABLE
-	branch rfcomm_send_uih_without_payload
-
-module_process:
-	hfetch 1,core_uart_status
-	bbit1 uart_status_rx_fifo_empty,module_process_with_credit  //rx no data
-	call uartd_prepare_rx
-	ifetch 1,contru
-	bne 0x01,module_hci_in_excp
-	hfetch 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
-	hfetch 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 patch1b_7,mem_patch1b
-	hfetch 2,core_uart_rxitems
-	rtn blank
-	call uartd_prepare_rx
-	ifetch 1,contru
-	sub pdata,0x01,null
-	ncall module_hci_dicard_bytes,zero
-	nbranch module_hci_release_except,zero
-	ifetch 1,contru
-	rtneq HCI_CMD_SPP_DATA_REQ
-	rtneq HCI_CMD_SET_CREDIT_GIVEN
-	increase -1,contru
-	call module_hci_dicard_bytes
-	branch module_hci_release_except
-
-module_hci_dicard_packet:
-	call uartd_prepare_rx
-	increase 2,contru
-	ifetch 1,contru
-	iadd contru,contru
-module_hci_dicard_bytes:
-	branch uartd_rxdone
-	
-/*********************HCI CONTROL*********************/
-module_hci_cmd_control:
-	bpatch patch1c_0,mem_patch1c
-	fetch 1,mem_module_uart_opcode
-	beq HCI_CMD_SET_BT_ADDR_REQ,module_hci_cmd_set_bt_addr
-	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_BT_NAME_REQ,module_hci_cmd_set_bt_name
-	beq HCI_CMD_SET_LE_NAME_REQ,module_hci_cmd_set_le_name
-	beq HCI_CMD_SPP_DATA_REQ,module_hci_cmd_receive_spp_data
-	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_PAIRING_REQ,module_hci_cmd_set_pairing_mode
-	beq HCI_CMD_SET_PINCODE_REQ,module_hci_cmd_set_pincode	
-	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_BT_DISCONNECT,module_hci_cmd_bt_disconnect
-	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_SET_CREDIT_GIVEN,module_hci_cmd_set_credit_given
-	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_TEST_CMD_CLOSE_LPM,module_hci_test_cmde_close_lpm
-	branch  module_hci_event_receive_invalid_cmd
-
-/*********************HCI COMMAND*********************/
-
-//command opcode 0x00
-module_hci_cmd_set_bt_addr:
-	fetch 1,mem_module_uart_len
-	bne 6,module_hci_event_receive_invalid_cmd
-	ifetch 6,contru
-	store 6,mem_lap
-	branch module_hci_event_receive_valid_cmd
-
-//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
-	copy rega,contru
-	call module_hci_event_receive_valid_cmd
-	ifetcht 1,contru
-	storet 1,mem_module_bluetooth_stauts_by_command
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_CONNECTED
-	rtnbit1 UI_STATE_BT_CONNECTED
-module_start_adv_discovery_by_command:
-	fetch 1,mem_module_state
-	isolate1 MOUDLE_STATE_BT_BIT,pdata
-	nbranch moudle_start_adv_by_command,true
-	fetcht 1,mem_module_bluetooth_stauts_by_command
-	and temp,0x03,pdata
-	store 1,mem_scan_mode
-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 0x03
-module_hci_cmd_set_bt_name:
-	fetch 1,mem_module_uart_len
-	sub pdata,67,null
-	nbranch module_hci_event_receive_invalid_cmd,positive
-	store 1,mem_local_name_length
-	arg 8,loopcnt
-	call memset0
-	fetch 1,mem_module_uart_len
-	copy pdata,loopcnt
-	copy rega,contru
-	arg mem_local_name,contw
-	call uart_copy_rx_bytes_fast
-	branch module_hci_event_receive_valid_cmd
-
-
-//command opcode 0x04
-module_hci_cmd_set_le_name:
-	fetch 1,mem_module_uart_len
-	sub pdata,29,null
-	nbranch module_hci_event_receive_invalid_cmd,positive
-	store 1,mem_le_name_len
-	copy pdata,loopcnt
-	copy rega,contru
-	arg mem_le_name,contw
-	call uart_copy_rx_bytes_fast
-	call le_modified_name
-	branch module_hci_event_receive_valid_cmd
-
-
-//command opcode 0x05
-module_hci_cmd_receive_spp_data:
-	fetch 1,mem_ui_state_map
-	bbit0 UI_STATE_BT_SPP_CONN,module_hci_event_receive_invalid_cmd
-	call app_check_sniff
-	branch module_hci_cmd_spp_exit_sniff,true
-	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
-//	call p_nl_clear_last_transmite_clock
-	call module_spp_clear_last_transmite_clock
-	fetch 1,mem_remote_credits
-	rtn blank
-	fetch 2,mem_nl_rx_len_all
-	bne 0,module_hci_cmd_pass_init_ng_rx_len_all
-	fetch 1,mem_module_uart_len
-	store 2,mem_nl_rx_len_all
-
-	copy rega,contru
-//	ifetch 2,contru
-//	store 2,mem_nl_rx_handle
-	copy contru,pdata
-	store 2,mem_nl_rx_data_src
-module_hci_cmd_pass_init_ng_rx_len_all:
-	call module_hci_cmd_get_current_packet_len_and_remain_len
-	branch spp_tx_rfcomm_packet
-	
-module_hci_cmd_spp_exit_sniff:
-	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
-	branch module_exit_sniff
-
-module_hci_cmd_get_current_packet_len_and_remain_len:
-	call module_hci_cmd_get_current_patcket_len
-	fetch 2,mem_nl_rx_len_all
-	fetcht 2,mem_current_packet_length
-	isub temp,pdata
-	store 2,mem_nl_rx_len_all
-	rtn
-
-module_hci_cmd_get_current_patcket_len:
-	fetch 2,mem_nl_rx_len_all
-	arg DM_REFCOM_BUFF_LEN,temp
-	call not_greater_than
-	fetcht 2,mem_rfcomm_max_frame_size
-	call not_greater_than
-	fetcht 2,mem_pn_max_frame_size
-	call not_greater_than
-	store 2,mem_current_packet_length
-	rtn
-
-module_hci_command_tx_spp_tx_complete:
-	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet
-	jam HCI_CMD_SPP_DATA_REQ,mem_module_uart_opcode
-	branch module_hci_event_receive_valid_cmd
-
-
-//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 1,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
-	copy contru,pdata
-	store 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
-	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 1,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_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 patch1c_1,mem_patch1c
-	add temp,-3,pdata		//sub handle and opcode
-	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
-	fetcht 2,mem_module_hci_notify_handle
-	call le_att_malloc_tx_notify
-	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
-
-
-//output: temp is master mtu
-module_get_le_remote_mtu:
-	arg 0x17,temp
-	fetch 1,mem_module_flag
-	rtnbit1 MODULE_FLAG_BLE_SEND_MTU23
-	fetcht 2,mem_le_remote_mtu
-	rtn
-
-module_check_ble_encrypt_state:
-	fetch 1,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 0x0c
-module_hci_cmd_set_pairing_mode:
-	copy rega,contru
-	ifetch 1,contru
-	beq PAIRING_PINCODE,module_hci_pairing_pincode_mode
-	beq PAIRING_JUSTWORK,module_hci_pairing_just_work_mode
-	beq PAIRING_PASSKEY,module_hci_pairing_passkey
-	beq PAIRING_CONFIRM,module_hci_pairing_numeric_comparison
-	branch module_hci_event_receive_invalid_cmd
-module_hci_pairing_pincode_mode:
-	call ssp_disable
-	jam 0,mem_ssp_enable
-	branch module_hci_event_receive_valid_cmd
-module_hci_pairing_just_work_mode:
-	setarg SSP_MODE_JUST_WORK_IO_CAP_DATA
-module_hci_sspairing_mode:	
-	store 3,mem_sp_iocap_local
-	store 1,mem_ssp_mode_flag
-	call ssp_enable
-	jam 1,mem_ssp_enable
-	branch module_hci_event_receive_valid_cmd
-module_hci_pairing_passkey:
-	setarg SSP_MODE_PASSKEY_IO_CAP_DATA
-	branch module_hci_sspairing_mode
-
-module_hci_pairing_numeric_comparison:
-	setarg SSP_MODE_SSP_PIN_IO_CAP_DATA
-	branch module_hci_sspairing_mode
-
-//command opcode 0x0d
-module_hci_cmd_set_pincode:
-	fetch 1,mem_module_uart_len
-	sub pdata,16,null
-	nbranch module_hci_event_receive_invalid_cmd,positive
-	store 1,mem_pin_length
-	copy pdata,loopcnt
-	arg mem_pin,contw
-	call uart_copy_rx_bytes
-	branch module_hci_event_receive_valid_cmd
-
-
-//command opcode 0x0e
-module_hci_cmd_set_uart_control_mode:
-	copy rega,contru
-	ifetch 1,contru
-	hfetcht 1,core_uart_ctrl
-	nsetflag blank,4,temp
-	hstoret 1,core_uart_ctrl
- 	branch module_hci_event_receive_valid_cmd
-
- 	
-//command opcode 0x0f
-module_hci_cmd_set_uart_baud:
-	fetch 1,mem_module_uart_len
-	copy pdata,loopcnt
-	copy rega,contru
-	call string2dec_from_uart
-	setarg uart_clk_24
-	idiv temp
-	call wait_div_end
-	quotient pdata
-module_hci_cmd_set_uart_baud_ok:
-	store uart_baud_len,mem_baud
-	call module_hci_event_receive_valid_cmd
-	call wait_uarttx
-	branch uart_set_baud_by_mem
-
-
-//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
-module_hci_event_set_cmd_send_response:
-	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 0x11
-module_hci_cmd_bt_disconnect:
-	fetch 2,mem_ui_state_map
-	bbit0 UI_STATE_BT_CONNECTED,module_hci_event_receive_invalid_cmd
-module_hci_cmd_bt_disconnect_doing:
-	call module_hci_event_receive_valid_cmd
-	branch app_bt_disconnect
-
-	
-//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:
-	fetch 1,mem_module_uart_len
-	copy pdata,loopcnt
-	copy rega,contru
-	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 1,mem_ui_state_map
-	bbit0 UI_STATE_BT_CONNECTED,module_hci_event_receive_invalid_cmd	
-	ifetch 1,contru
-	fetcht 1,mem_flag_mode_ssp_pin
-	setflag blank,FLAG_MODE_SSP_PIN_COMPARISON_RESULT_BIT,temp
-	set1 FLAG_MODE_SSP_PIN_REVICEVE_COMPARISON_BIT ,temp
-	storet 1,mem_flag_mode_ssp_pin
-
-	call module_hci_event_receive_valid_cmd
-
-	fetch 1,mem_flag_mode_ssp_pin
-	bbit1 FLAG_MODE_SSP_PIN_RECIEVE_DHKEY_BIT,module_hci_cmd_spp_number_comparison_result_is1
-	rtn
-
-dhkey_not_accept:
-	jam 0,mem_flag_mode_ssp_pin
-	jam BT_CMD_DHKEY_NOT_ACCEPT,mem_fifo_temp
-	branch ui_ipc_send_cmd
-
-
-module_hci_cmd_spp_number_comparison_result_is1:
-	bbit1 FLAG_MODE_SSP_PIN_COMPARISON_RESULT_BIT,number_comparison_successed
-	branch dhkey_not_accept	
-
-
-//command opcode 0x29
-module_hci_cmd_set_credit_given:
-	fetch 1,mem_ui_state_map
-	rtnbit0 UI_STATE_BT_SPP_CONN
-	fetch 1,mem_credit_flag
-	rtneq CREDIT_DISABLE
-	ifetch 1,contru
-	fetcht 1,mem_credit_given
-	iadd temp,temp
-	storet 1,mem_credit_given
-	rtn
-
-	
-//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:
-	ifetch 4,contru
-	store 4,mem_pin
-	jam 4,mem_pin_length
-	jam 0,mem_authentication_passkey_times
-	call module_hci_event_receive_valid_cmd
-	branch authentication_passkey
-
-
-//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:
-	ifetcht 1,contru
-	ifetch 1,contru
-	beq GPIO_INPUT_HIGH_IMPEDANCE,module_set_gpio_high_impedance
-	nsetflag blank,7,temp
-	call gpio_config_input
-	branch module_hci_event_receive_valid_cmd
-
-module_set_gpio_high_impedance:
-	call gpio_set_high_impedance
-	branch module_hci_event_receive_valid_cmd
-	
-module_set_gpio_output:
-	ifetcht 1,contru
-	call gpio_config_output0
-	ifetch 1,contru	
-	isolate1 0,pdata
-	call gpio_out_flag
-	branch module_hci_event_receive_valid_cmd
-
-
-//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
-	branch module_hci_event_set_cmd_send_response
-
-
-//command opcode 0x33
-module_hci_cmd_le_set_pairing_mode:
-	copy rega,contru
-	ifetch 1,contru
-	copy pdata,temp
-ifdef SECURE_CONNECTION
-	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
-endif
-	store 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
-	branch module_hci_event_receive_invalid_cmd
-		
-ifdef SECURE_CONNECTION	
-module_le_set_pairing_mode_secure_justwork:
-	fetch 1,mem_le_secure_connect_enable
-	branch module_hci_event_receive_invalid_cmd,blank
-	storet 1,mem_le_pairing_mode
-	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
-	branch module_le_set_noinputnooutput
-module_le_set_pairing_mode_secure_numeric:
-	fetch 1,mem_le_secure_connect_enable
-	branch module_hci_event_receive_invalid_cmd,blank
-	storet 1,mem_le_pairing_mode
-	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:	
-	fetch 1,mem_le_secure_connect_enable
-	branch module_hci_event_receive_invalid_cmd,blank
-	storet 1,mem_le_pairing_mode
-	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
-	branch module_le_set_displayonly
-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_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
-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:
-	fetch 1,mem_module_uart_len
-	sub pdata,31,null
-	nbranch module_hci_event_receive_invalid_cmd,positive
-	store 1,mem_le_adv_data_len
-	copy pdata,loopcnt
-	copy rega,contru
-	arg mem_le_adv_data,contw
-	call uart_copy_rx_bytes_fast
-	branch module_hci_event_receive_valid_cmd
-	
-
-//command opcode 0x35
-module_hci_cmd_le_set_scan_data:
-	fetch 1,mem_module_uart_len
-	sub pdata,31,null
-	nbranch module_hci_event_receive_invalid_cmd,positive
-	store 1,mem_le_scan_data_len
-	copy pdata,loopcnt
-	copy rega,contru
-	arg mem_le_scan_data,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
-	copy rega,contru
-	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
-	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 0x49
-module_hci_cmd_set_reject_justwork_flag:
-	fetch 1,mem_module_uart_len
-	bne 0x01,module_hci_event_receive_invalid_cmd
-	call module_hci_event_receive_valid_cmd
-	ifetch 1,contru
-	branch classic_bt_clr_reject_justwork_flag,blank
-	branch classic_bt_set_reject_justwork_flag
-
-
-//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 loop
-
-
-//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 0xff
-module_hci_test_cmde_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 0x00
-module_hci_event_spp_connect:
-	jam  HCI_EVENT_SPP_CONN_REP,mem_module_uart_opcode
-	branch module_hci_event_enter_standby_mode_len0
-
-
-//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 0x03
-module_hci_event_spp_disconnect:
-	jam  HCI_EVENT_SPP_DIS_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 uartd_send
-
-
-//event opcode 0x07
-module_hci_event_receive_spp_data:
-//	call p_nl_clear_last_transmite_clock
-	call module_spp_clear_last_transmite_clock
-	jam HCI_EVENT_SPP_DATA_REP,mem_module_uart_opcode
-	fetch 1,mem_current_length
-	rtn blank
-	call module_hci_prepare_tx
-	fetch 1,mem_current_length
-	copy pdata,loopcnt
-	fetch 2,mem_rfcomm_uih_payload_ptr
-	copy pdata,contr
-	call uart_copy_tx_bytes_fast
-	branch uartd_send
-
-
-//event opcode 0x08
-module_hci_event_receive_le_data:
-	jam HCI_EVENT_LE_DATA_REP,mem_module_uart_opcode
-	fetch 1,mem_module_le_rx_data_len
-	icopy loopcnt
-	increase 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
-	branch uartd_send
-
-
-//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 uartd_send
-
-
-//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_BT_HID_CONN,queue
-	qisolate1 pdata
-	setflag true,3,temp
-
-	arg UI_STATE_BLE_CONNECTED,queue
-	qisolate1 pdata
-	setflag true,5,temp	
-	
-	fetch 1,mem_ui_state_map
-	arg UI_STATE_BT_SPP_CONN,queue
-	qisolate1 pdata
-	setflag true,4,temp	
-	
-	istoret 1,contwu
-	branch uartd_send
-
-//	temp: bit0 3.0 inquiry;bit1 3.0 scan;bit2 ble adv;
-
-module_hci_read_bt_status:
-	arg 0,temp
-	fetch 1,mem_scan_mode
-	arg inq_scan_mode,queue
-	qisolate1 pdata
-	setflag true,0,temp
-	arg page_scan_mode,queue
-	qisolate1 pdata
-	setflag true,1,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 uartd_send
-
-
-//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 uartd_send
-
-
-//event opcode 0x0f
-module_hci_event_invalid_packet:
-	jam HCI_EVENT_INVALID_PACKET,mem_module_uart_opcode
-	hfetch 2,core_uart_rxitems
-	arg 0xff,temp
-	call not_greater_than
-	copy pdata,loopcnt
-	call module_hci_prepare_tx
-	call uartd_prepare_rx
-	call uart_copy_rx2tx
-	branch uartd_send
-
-
-//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 uartd_send
-
-
-//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_bt_pairing_fail:
-	arg FLAG_BT_PAIRING_FAIL,rega
-	branch module_hci_event_pairing_completed
-
-module_hci_event_bt_pairing_success:
-	arg FLAG_BT_PAIRING_SUCCESS,rega
-
-module_hci_event_pairing_completed:
-	jam 0,mem_flag_mode_ssp_pin
-	jam HCI_EVENT_LE_PAIRING_STATE,mem_module_uart_opcode
-	setarg 2
-	call module_hci_prepare_tx
-	copy rega,pdata
-	istore 2,contwu
-	branch uartd_send
-
-
-//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 uartd_send
-
-
-//event opcode 0x1d
-module_hci_event_le_gkey:
-	jam HCI_EVENT_LE_GKEY,mem_module_uart_opcode
-	setarg 4
-	call module_hci_prepare_tx
-	fetch 4,mem_gkey
-	istore 4,contwu
-	branch uartd_send
-
-
-//****************************************************************//
-	//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 patch1c_2,mem_patch1c
-	call module_set_mcu_wake_pin_high_delay
-	fetcht 8,mem_temp
-	call uartd_prepare_tx
-	fetch 3,mem_module_uart_cmd
-	istore 3,contwu
-	rtn
-
-
-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:
-	//call ice_break
-	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
-
-
-delay:
-	increase -1,pdata
-	nop 38
-	nbranch delay,blank
-	rtn
-
-/*********************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:
-	call module_check_ble_encrypt_state
-	rtn user
-	copy rega,pdata
-	store 2,mem_module_le_rx_data_address
-	copy regb,pdata
-	store 1,mem_module_le_rx_data_len
-	fetch 2,mem_le_att_handle
-	fetcht 2,mem_module_data_write_handle
-	isub temp,null
-	branch module_le_receive_data_ok,zero
-	fetcht 2,mem_module_data_write_handle2
-	isub temp,null
-	nrtn zero
-module_le_receive_data_ok:	
-	store 2,mem_module_le_rx_data_handle
-	branch module_hci_event_receive_le_data
-
-
-/*********************hci ble receive data end*********************/
-
-module_exit_sniff:
-	fetch 1,mem_module_flag
-	rtnbit1 MOUDLE_TASK_UNSNIFF
-	call module_set_unsniff_task_flag	
-	branch app_bt_sniff_exit
-
-
-module_set_lpm_mult_2:
-	jam 2,mem_lpm_mult
-	rtn
-
-
-
-module_bb_event_timer:
-	branch module_read_vdd_timer
-
-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 adc_set_mode
-	call vdd_calculate_by_mode
-	div pdata,0x64
-	call wait_div_end
-	quotient pdata
-	remainder temp
-	store 1,mem_module_vdd_quotient
-	storet 1,mem_module_vdd_remainder
-	rtn	
-	
-
-module_control_air_flow:
-	call check_uart_tx_buff
-	branch app_l2cap_flow_control_enable,positive
-	branch app_l2cap_flow_control_disable
-
-
-/**************module state *******************/
-module_set_sniff_task_flag:
-	arg MOUDLE_TASK_SNIFF,queue
-	branch module_set_state
-
-module_clear_sniff_task_flag:
-	arg MOUDLE_TASK_SNIFF,queue
-	branch module_clr_state
-
-module_set_unsniff_task_flag:
-	arg MOUDLE_TASK_UNSNIFF,queue
-	branch module_set_state
-
-module_clear_unsniff_task_flag:
-	arg MOUDLE_TASK_UNSNIFF,queue
-	branch module_clr_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 1,mem_module_flag
-	qset0 pdata
-	store 1,mem_module_flag
-	rtn
-
-module_set_state:
-	fetch 1,mem_module_flag
-	qset1 pdata
-	store 1,mem_module_flag
-	rtn
-	
-/**************module state end*******************/
-
-
-else
-
-endif
Index: DPI_Switch/program/app_mouse.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_mouse.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_mouse.prog	(nonexistent)
@@ -1,2662 +0,0 @@
-
-
-//define FPGA_DEBUG
-
-
-ifdef COMPILE_MOUSE
-mouse_init:
-	call mouse_setting_config
-	call spi_ncs_enable
-	call mouse_init_sunt
-	call mouse_dpi_config
-	call spi_ncs_disable
-	rtn wake
-	call mouse_cheak_enable_usb
-	call mouse_cb_fuction
-//	fetch 1,mem_wakup_from_power_flag
-//	isolate0 gpio_latch,pdata
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_ENABLE_USB
-	call mouse_wakeup_from_power//,true	// enter 
-ifdef FPGA_DEBUG
-	arg MOUSE_FPGA_DEBUG_GPIO,temp
-	call gpio_config_output
-	arg MOUSE_FPGA_RF_WORK_DEBUG_GPIO,temp
-	call gpio_config_output
-	arg MOUSE_FPGA_DEBUG_GPIO,temp
-	call gpio_out_active
-endif
-	rtnmark1 mark_24g
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
-	branch mouse_check_reconn_target
-
-
-mouse_delay_4s:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_INIT_DELAY
-	arg 20,loopcnt
-mouse_delay_20ms:
-	setarg 200000
-	call sleep
-	loop delay_10ms
-	rtn
-
-	
-mouse_cheak_enable_usb:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_USB
-	branch usb_init
-	
-
-mouse_cb_fuction:
-	setarg mouse_le
-	store 2,mem_cb_le_process
-	setarg mouse_send_process
-	store 2,mem_cb_bt_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 le_mouse_bb_event_connect_complete
-	store 2,mem_cb_att_write
-
-	call g24_head_ptr2regc
-	setarg mouse_g24_package_data
-	add regc,offset_24g_cb_data,contw
-	istore 2,contw
-	setarg mouse_g24_enter_lpm
-	add regc,offset_24g_cb_lpm_prepare,contw
-	istore 2,contw
-	setarg mouse_lpm_before_common
-	add regc,offset_24g_cb_lpm_before,contw
-	istore 2,contw
-	
-	setarg mouse_bb_event_timer
-	store 2,mem_cb_event_timer
-	setarg mouse_spi_write_flash_cb
-	store 2,mem_cb_spi_flash_write_complate
-	rtn
-mouse_spi_write_flash_cb:
-mouse_spi_init:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_SPI2,spid_init
-	branch spid_init2
-
-mouse_setting_config:
-	rtn wake
-	call g24_set_device_addr
-	call mouse_gpio_init
-	call mouse_param_init
-	call mouse_adc_init
-	call le_set_config_fixed_ltk
-	call le_set_justwork
-	call le_set_fixed_ltk
-	call le_set_config_read_authentication
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_EEPROM,mouse_init_iic
-	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_cheak
-	rtn
-
-mouse_init_iic:
-	call iic_init_390k
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
-	ncall clear_eeprom_size_2k,true
-	call mouse_load_eeprom_dpi
-	call mouse_init_environment
-	call mouse_set_24g_addr_eeprom
-	branch iicd_read_eep_data
-
-mouse_wakeup_from_power:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_WAKEUP_FROM_POWER,mouse_wakeup_no_from_power
-	fetch 1,mem_wakup_from_power_flag
-	isolate0 gpio_latch,pdata
-	nrtn true
-mouse_wakeup_no_from_power:
-	fetch 1,mem_reconn_times_init
-	store 1,mem_reconn_times
-	fetch 1,mem_config_function_enable
-	rtnbit1 ENABLE_SELECT_DEVICE_BY_SWITCH
-mouse_start_24g_mode:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_24G
-	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,g24_auto_pair_start
-	branch g24_check_51cmd_start_24g
-le_mouse_bb_event_connect_complete:
-	fetch 1,mem_le_att_handle
-	sub pdata,26,pdata
-	nrtn zero
-	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
-	call ui_ipc_send_cmd
-mouse_le_write_enable:	
-	arg WRITE_REQ_ENABLE_FLAG,queue
-	branch mouse_le_enable_connect_flag
-
-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
-	rtn
-mouse_dpi_config:
-	fetch 1,mem_config_sensor_motion
-	and pdata,0x0f,pdata
-	store 1,mem_mouse_dpi
-	branch mouse_seting_dpi+2
-
-
-mouse_dpi_cheak:
-	fetcht 1,mem_dpi_button_gpio
-	call gpio_get_bit
-	nbranch mouse_dpi_up,true
-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
-mouse_dpi_down_setting:
-	fetch 1,mem_mouse_dpi
-	increase 1,pdata
-	and pdata,0x03,pdata
-	store 1,mem_mouse_dpi
-	call mouse_seting_dpi
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eerpom_dpi
-	bbit1 MOUSE_ENABLE_FLASH,mouse_before_store_flash_cpi
-	rtn
-mouse_before_store_flash_cpi:
-	arg MOUSE_SPI2_CLK_GPIO,temp
-	call gpio_config_output				//hold high
-	arg MOUSE_SPI2_SDIO_GPIO,temp
-	call gpio_config_output 			//hold high 
-	branch mouse_store_flash_device_info
-
-mouse_seting_dpi:
-	bpatch patch1c_3,mem_patch1c
-	call mosue_dpi_led_blink_init
-	fetch 1,mem_config_sensor_type
-	beq P3610,mouse_seting_3610_dpi
-	beq P3212,mouse_seting_3212_dpi
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL1,mouse_set_cpi1
-	beq MOUSE_DPI_LEVEL2,mouse_set_cpi2
-	beq MOUSE_DPI_LEVEL3,mouse_set_cpi3
-	beq MOUSE_DPI_LEVEL4,mouse_set_cpi4
-mouse_set_cpi2:
-	fetch 1,mem_320x_dpi_2
-	branch mouse_p3205_dpi
-mouse_set_cpi1:
-	fetch 1,mem_320x_dpi_1
-	branch mouse_p3205_dpi
-mouse_set_cpi3:
-	fetch 1,mem_320x_dpi_3
-	branch mouse_p3205_dpi
-mouse_set_cpi4:
-	fetch 1,mem_320x_dpi_4
-	branch mouse_p3205_dpi
-moue_seting_cpi_count:
-	fetch 1,mem_config_sensor_type
-	rtneq P3065_XY
-	fetch 1 ,mem_mouse_cpi_count
-	increase 1,pdata
-	store 1,mem_mouse_cpi_count
-	rtn
-
-mouse_seting_3212_dpi:
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL1,mouse_set_p3212_cpi1
-	beq MOUSE_DPI_LEVEL2,mouse_set_p3212_cpi2
-	beq MOUSE_DPI_LEVEL3,mouse_set_p3212_cpi3
-	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi4
-mouse_set_p3212_cpi2:
-	fetch 1,mem_3212_dpi_2
-	branch mouse_p3212_dpi
-mouse_set_p3212_cpi1:
-	fetch 1,mem_3212_dpi_1
-	branch mouse_p3212_dpi
-mouse_set_p3212_cpi3:
-	fetch 1,mem_3212_dpi_3
-	branch mouse_p3212_dpi
-mouse_set_p3212_cpi4:
-	fetch 1,mem_3212_dpi_4
-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_3610_dpi:
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL1,mouse_set_p3610_cpi1
-	beq MOUSE_DPI_LEVEL2,mouse_set_p3610_cpi2
-	beq MOUSE_DPI_LEVEL3,mouse_set_p3610_cpi3
-	beq MOUSE_DPI_LEVEL4,mouse_set_p3610_cpi4
-mouse_set_p3610_cpi2:
-	fetch 1,mem_3610_dpi_2
-	branch mouse_p3610_dpi
-mouse_set_p3610_cpi1:
-	fetch 1,mem_3610_dpi_1
-	branch mouse_p3610_dpi
-mouse_set_p3610_cpi3:
-	fetch 1,mem_3610_dpi_3
-	branch mouse_p3610_dpi
-mouse_set_p3610_cpi4:
-	fetch 1,mem_3610_dpi_4
-mouse_p3610_dpi:
-	store 1,mem_mouse_cpi_count
-	call mouse_spi_sdio_gpio_pollup
-	fetch 1,mem_mouse_cpi_count
-mouse_reset_p3610_dpi:
-	add pdata,0x80,pdata
-	lshift8 pdata,pdata
-	add pdata,MOUSE_P3610_DPI_ADDRESS,pdata
-	copy pdata,rega
-	branch mouse_set_sensor_reg
-	
-mouse_p3205_dpi:
-	store 1,mem_mouse_cpi_count
-	call moue_seting_cpi_count
-	fetch 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_init_environment:
-	call app_initflag_check
-	branch mouse_eeprom_load_recon_info,zero
-	call mouse_ble_init_address
-	call mouse_store_eeprom_device_info
-	branch app_initflag_store
-
-
-mouse_24g_pairing_button:
-	fetch 2,mem_24g_pairing_timer_count
-	rtn blank
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_24G
-	rtnbit1 MOSUE_24G_PAIRING_FLAG
-	rtnmark1 mark_24g
-	call mouse_check_key_gpio
-	rtnne MOUSE_LMR_BUTTON
-	call mouse_devce_led_off
-	arg MOSUE_24G_PAIRING_FLAG,queue
-	call mouse_enable_function_flag
-	setarg 0
-	store 2,mem_mouse_direct_timer
-	store 1,mem_mouse_send_blank_timer
-	call g24_set0_mem_check_dongle_times
-	
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BT_RECONNECT,mouse_cancel_reconnect
-	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
-	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
-	call mouse_stop_discovery
-	branch g24_start_pairing_sm1
-	
-ifdef FPGA_DEBUG
-mouse_fpga_rf_working_normal:
-	fetch 1,mem_le_req_rcv
-	and pdata,0xfe,pdata
-	call mouse_fpga_working_fail,blank
-	fetch 1,mem_le_req_rcv
-	and pdata,0xfe,pdata
-	ncall mouse_fpga_working_normal,blank
-//	fetch 1,mem_inquiryscan_rcvcnt
-//	and pdata,0xfe,pdata
-//	call mouse_fpga_working_fail,blank
-//	fetch 1,mem_inquiryscan_rcvcnt
-//	and pdata,0xfe,pdata
-//	ncall mouse_fpga_working_normal,blank
-	rtn
-
-mouse_fpga_working_fail:
-	arg MOUSE_FPGA_RF_WORK_DEBUG_GPIO,temp
-	branch gpio_out_inactive
-
-mouse_fpga_working_normal:
-	arg MOUSE_FPGA_RF_WORK_DEBUG_GPIO,temp
-	branch gpio_out_active
-
-
-
-endif
-
-mouse_idle:
-ifdef FPGA_DEBUG
-	call mouse_fpga_rf_working_normal
-endif
-	call mouse_24g_pairing_button
-	call ui_check_paring_button
-	call mouse_dpi_cheak
-	call mouse_usb_isr
-	call mouse_wheel_check
-	branch mouse_usb_mode
-mouse_usb_isr:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_USB
-	call usb_isr	
-	branch usb_offline_state
-
-mouse_cheak_usb:
-	hfetch 1,core_usb_addr
-	bbit0 7,mouse_usb_no_exsit
-	bbit1 7,mouse_usb_exsit
-	rtn
-mouse_usb_no_exsit:
-	fetch 1,mem_usb_addr
-	rtnbit0 7
-	branch soft_reset_chip
-mouse_usb_exsit:
-	fetch 1,mem_usb_addr
-	rtnbit1 7
-	branch mouse_stop_bluetooth_mode
-	
-mouse_usb_mode:
-	call mouse_cheak_usb
-	hfetch 1,core_usb_addr
-	store 1,mem_usb_addr
-	rtnbit0 7
-	call mouse_clkn_check 
-	fetch 4,mem_btclk_sensor
-	fetcht 1,mem_wire_usb_interval
-	iadd temp,temp
-	copy clkn_bt,pdata
-	isub temp,null
-	nrtn positive
-	store 4,mem_btclk_sensor
-	call mouse_motion
-	nrtn user
-	jam 4,mem_usb_tx_enable
-	branch mouse_wired_to_usb
-
-mouse_clkn_check:
-	fetcht 4,mem_btclk_sensor
-	copy clkn_bt,pdata
-	isub temp,null
-	ncall mouse_clkn_timeout,positive
-	rtn
-mouse_clkn_timeout:
-	setarg 0
-	store 4,mem_btclk_sensor
-	rtn
-
-
-	
-mouse_wired_to_usb:
-	fetch 1,mem_usb_tx_enable
-	rtnbit0 2
-	branch mouse_data_push
-mouse_data_push:
-	hfetch 1,core_usb_addr
-	rtnbit0 7
-	jam USB_EP2_MS,mem_usb_ep2_data
-	setarg MS_REPORT_ID
-	store 1,mem_usb_mouse_data	
-	fetch 7,mem_mouse_key
-	istore 7,contw
-	rtn
-
-
-mouse_enable_clock_qdecoder:
-	hfetch 2,core_clkoff
-	set0 CLOCK_OFF_QDECODER,pdata
-	hstore 2,core_clkoff
-	rtn
-
-mouse_param_init:
-	setarg 0x8c00				//bt sdp start address
-	store 2,mem_ui_uuid_table
-	setarg 0x8e7a				//ble attlist start address
-	store 2,mem_ui_le_uuid_table
-	setarg 0x2402
-	store 2,mem_fcomp_mul
-	setarg 0x2580
-	store 3,mem_class
-	jam 3,mem_lpm_mult_timeout
-	jam 8,mem_lpm_overhead
-	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue
-	setarg 0x0200
-	store 2,mem_lpm_interval
-	jam 0x17,mem_le_local_mtu
-	jam 0x17,mem_le_remote_mtu
-//===========init spi param==============================
-	setarg 0x0a77
-	store 2,mem_spi_init_clk
-//===========default bt reconnect address===================	
-//	jam 1,mem_device_flag
-//	setarg 0x332211
-//	store 3,mem_device1_addr
-//	store 3,mem_device2_addr
-//	store 3,mem_device3_addr
-//	setarg 0x665544
-//	store 3,mem_device1_addr+3
-//	store 3,mem_device2_addr+3
-//	store 3,mem_device3_addr+3
-//	setarg 0x34
-//	store 1,mem_device1_type
-//	store 1,mem_device2_type
-//	store 1,mem_device3_type
-//===========all 16bit uuid==================================
-	setsect 0,0x306
-	setsect 1,0x4440
-	setsect 2,0x10000
-	setsect 3,0x4408
-	store 9,mem_all_uuid_16bits
-	setsect 0,0x1224
-	setsect 1,0x4000
-	setsect 2,0x0
-	istore 5,contw
-//===========features=====================================
-	setsect 0,0x3ffff
-	setsect 1,0x2fe23
-	setsect 2,0x199d9
-	setsect 3,0x20d
-	store 8,mem_features
-//======================================================	
-	setarg 0x012c  				//24g ban pairing timer init
-	store 2,mem_24g_pairing_timer_count
-	call le_modified_name
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
-	rtnbit0 MOUSE_ENABLE_GPIO_CONTROL_ADC_SENSOR
-	call mouse_sensor_set_angle
-	branch mouse_select_adc
-
-mouse_sensor_set_angle:
-	fetcht 1,mem_select_sensor_angle_gpio
-	call gpio_config_input
-	fetcht 1,mem_select_sensor_angle_gpio
-	call gpio_get_bit
-	jam MOUSE_3CLK_ANGLE,mem_config_sensor_angle
-	rtn true
-	jam MOUSE_12CLK_ANGLE,mem_config_sensor_angle
-	rtn
-
-mouse_select_adc:
-	fetcht 1,mem_select_adc_gpio
-	call gpio_config_input
-	fetcht 1,mem_select_adc_gpio
-	call gpio_get_bit
-	jam ADC_CONFIG_VINLPM,mem_adc_config_flag
-	rtn true
-	jam ADC_CONFIG_GPIO,mem_adc_config_flag
-	rtn
-	
-	
-mouse_adc_init:
-	fetch 1,mem_adc_config_flag
-	beq ADC_CONFIG_VINLPM,mouse_adc_init_data_vinlpm
-	beq ADC_CONFIG_HVIN,mouse_adc_init_data_hvin
-	beq ADC_CONFIG_GPIO,mouse_adc_init_data_io
-	branch mouse_adc_init_data_vinlpm
-	
-mouse_adc_init_data_vinlpm:
-	fetcht 2,mem_2v_adc_vinlpm_data
-	fetch 2,mem_3v_adc_vinlpm_data
-	isub temp,pdata
-	mul32 pdata,20,pdata 
-	div pdata,100
-	call wait_div_end
-	quotient pdata
-	store 2,mem_adc_reference_voltage //vinlpm :2v2 low alter
-	rtn
-mouse_adc_init_data_hvin:
-	fetcht 2,mem_1v_adc_hvin_data
-	fetch 2,mem_5v_adc_hvin_data
-	isub temp,pdata
-	mul32 pdata,230,pdata 
-	div pdata,400
-	call wait_div_end
-	quotient pdata
-	store 2,mem_adc_reference_voltage //hvin :3v3 low alter
-	rtn
-mouse_adc_init_data_io:
-	fetch 2,mem_1v_adc_io_data
-	store 2,mem_adc_reference_voltage  //vio :1v low alter
-	rtn
-mouse_gpio_init:
-	fetcht 1,mem_eeprom_wp_gpio
-	call gpio_config_output
-	call usb_offline_check_init
-	fetcht 1,mem_lbutton_gpio
-	call gpio_config_input
-	fetcht 1,mem_rbutton_gpio
-	call gpio_config_input
-	fetcht 1,mem_mbutton_gpio
-	call gpio_config_input
-	fetcht 1,mem_sensor_data_gpio
-	call gpio_config_input
-
-	fetcht 1,mem_sensor_reset_gpio
-	call gpio_config_output
-
-	fetcht 1,mem_whee_a_data_gpio
-	call gpio_config_input
-
-	fetcht 1,mem_whee_b_data_gpio
-	call gpio_config_input
-
-	fetcht 1,mem_whee_ta_data_gpio
-	call gpio_config_input
-	fetcht 1,mem_whee_tb_data_gpio
-	call gpio_config_input
-
-	fetcht 1,mem_bk_button_gpio
-	call gpio_config_input
-	fetcht 1,mem_fw_button_gpio
-	call gpio_config_input
-
-	fetcht 1,mem_config_low_voltage_alarm_gpio
-	call gpio_config_output
-
-	fetcht 1,mem_config_device1_led_gpio
-	call gpio_config_output
-
-	fetcht 1,mem_config_device2_led_gpio
-	call gpio_config_output
-	
-	fetcht 1,mem_config_device3_led_gpio
-	call gpio_config_output
-
-	fetcht 1,mem_dpi_led_gpio
-	call gpio_config_output
-
-	fetcht 1,mem_config_select_device_button_gpio
-	call gpio_config_input
-	
-	fetcht 1,mem_config_bt_button_gpio
-	call gpio_config_input	
-
-	fetcht 1,mem_dpi_button_gpio
-	branch gpio_config_input
-
-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_gpio_set_pupd_by_input:
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	and temp,0x7f,queue
-	hfetch 4,core_gpio_in
-	qisolate1 pdata
-	hfetch 4,core_gpio_pu0
-	qsetflag true,pdata
-	hstore 4,core_gpio_pu0
-	hfetch 4,core_gpio_pd0
-	nqsetflag true,pdata
-	hstore 4,core_gpio_pd0
-	rtn
-	
-mouse_before_hibernate:
-	enable user
-	hfetch 4,0x8138
-	setflag user,26,pdata
-	hstore 4,core_lpm_reg
-	call lpm_write_ctrl
-	call mouse_devce_led_off
-	call mouse_before_hibernate_wheel_gpio_set
-//	call gpio_set_before_lpm_common
-	branch mouse_lpm_before_common
-
-
-	
-mouse_process_lpm_before:
-	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:
-	call mouse_wheel_check
-	arg MOUSE_SPI1_CLK_GPIO,temp					// set sclk high
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	isolate1 MOUSE_ENABLE_SPI2,pdata
-	call mouse_spi_clk_gpio,true
-	call gpio_config_output
-	call twspi_disable
-
-
-
-	fetcht 1,mem_lbutton_gpio
-	call gpio_set_wake_by_current_state
-	fetcht 1,mem_rbutton_gpio
-	call gpio_set_wake_by_current_state
-	fetcht 1,mem_mbutton_gpio
-	call gpio_set_wake_by_current_state
-
-	fetcht 1,mem_bk_button_gpio
-	call gpio_set_wake_by_current_state
-	fetcht 1,mem_fw_button_gpio
-	call gpio_set_wake_by_current_state
-	fetcht 1,mem_dpi_button_gpio
-	call gpio_set_wake_by_current_state
-	fetcht 1,mem_config_select_device_button_gpio
-	call gpio_set_wake_by_current_state
-	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_data_gpio
-	branch gpio_set_wake
-	
-
-	
-mouse_spi_clk_gpio:
-	arg MOUSE_SPI2_CLK_GPIO,temp
-	rtn
-
-mouse_wheel_check:
-	bpatch patch1c_4,mem_patch1c
-	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_count1
-	increase 1,pdata
-	store 1,mem_mouse_tz_data_count1
-	sub pdata,1,null
-	rtn positive
-	jam 0,mem_mouse_tz_data_count1
-	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_count
-	increase 1,pdata
-	store 1,mem_mouse_tz_data_count
-	sub pdata,1,null
-	rtn positive
-	jam 0,mem_mouse_tz_data_count
-	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:
-	jam 0,mem_mouse_z_data_count1
-	fetch 1,mem_mouse_z_data
-	increase 1,pdata
-	store 1,mem_mouse_z_data
-	rtn
-mouse_wheel_back:
-	jam 0,mem_mouse_z_data_count
-	fetch 1,mem_mouse_z_data
-	increase -1,pdata
-	store 1,mem_mouse_z_data
-	rtn
-	
-	
-mouse_hid_connected:
-	setarg HID_HANDSHAKE_TIMEOUT
-	store 1,mem_hid_handshake_timer_count
-	rtn
-	
-mouse_send_process:
-	fetch 1,mem_app_handshake_flag
-	rtn blank
-	call l2cap_malloc_is_fifo_nearly_full
-	nrtn blank
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOSUE_24G_PAIRING_FLAG,mouse_send_empty_data
-	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_send_empty_data
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_send_empty_data
-	call mouse_motion
-	nrtn user
-mouse_send_data:
-	arg 9,rega
-	call hid_malloc_tx_buff
-	fetch 2,mem_hid_int_remote_cid
-	istore 2,contw
-	setarg 0x02a1
-	istore 2,contw
-	fetch 7,mem_mouse_key
-	istore 7,contw
-	rtn
-
-	
-mouse_send_empty_data:
-	setarg 0
-	store 7,mem_mouse_key
-	branch mouse_send_data
-
-
-mouse_no_data_timer_init:
-	fetch 2,mem_mouse_no_data_timeout
-	store 2,mem_mouse_no_data_timer
-	rtn
-
-	
-mouse_fill_data_le:
-	bpatch patch1c_5,mem_patch1c
-	arg 7,rega //len
-	fetcht 2,mem_le_notify_handle
-	call le_att_malloc_tx_notify
-	fetch 7,mem_mouse_key
-	istore 7,contw
-	rtn
-
-mouse_motion:
-	bpatch patch1c_6,mem_patch1c
-	disable user
-	setarg 0
-	store 6,mem_mouse_x
-	call mouse_cheak_sensor_data
-	call mouse_zwheel
-	call mouse_t_zwheel
-	call mouse_key
-	nrtn user
-	call mouse_no_data_timer_init
-	arg MOUSE_STATUE_UP_FLAG,queue
-	branch mouse_enable_function_flag
-	
-motion_6clk_direction_dispose:
-	fetch 2,mem_mouse_x
-	sub pdata,0,pdata
-	store 2,mem_mouse_x
-	branch enable_user
-motion_12clk_direction_dispose:
-	fetch 2,mem_mouse_y
-	sub pdata,0,pdata
-	store 2,mem_mouse_y
-	branch enable_user
-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
-motion_3clk_direction_dispose:
-	call mouse_sensor_data_swap_places
-	branch enable_user
-mouse_cheak_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 P3610,mouse_p3610_sensor_motion
-	beq P3065_xy,mouse_p32xx_sensor_motion
-	branch mouse_p32xx_sensor_motion
-	
-mouse_clear_sensor_data:
-	fetch 1,mem_mouse_move_flag
-	call mouse_read_sensor_common,blank
-	jam 1,mem_mouse_move_flag
-	rtn
-
-
-mouse_p3212_sensor_motion:
-	call mouse_clear_sensor_data
-	fetcht 1,mem_sensor_data_gpio
-	call gpio_get_bit
-	nrtn true
-mouse_p3212_sensor_motion_1:	
-	setarg PAN_REG_PID_L
-	call twspi_read
-	bne P32XX_ID1,mouse_twspi_reset
-	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 extsign_bit3
-	store 1,mem_mouse_x+1
-	fetch 1,mem_mouse_xy_h
-	and pdata,0x0f,pdata
-	call extsign_bit3
-	store 1,mem_mouse_y+1
-	fetch 1,mem_config_sensor_angle
-	beq MOUSE_6CLK_ANGLE,motion_6clk_direction_dispose
-	beq MOUSE_9CLK_ANGLE,motion_9clk_direction_dispose
-	beq MOUSE_12CLK_ANGLE,motion_12clk_direction_dispose
-	beq MOUSE_3CLK_ANGLE,motion_3clk_direction_dispose
-	rtn
-
-mouse_read_3212sensor_xy_high:
-	setarg 0x12
-	branch twspi_read
-	
-mouse_p3065_judge:
-	beq P3065_ID1,mouse_p32xx_sensor_motion_1
-	branch mouse_twspi_reset
-	
-mouse_p32xx_sensor_motion:
-	call mouse_clear_sensor_data
-	disable user
-	fetcht 1,mem_sensor_data_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 extsign
-	store 2,mem_mouse_x
-	fetch 1,mem_mouse_y
-	call extsign
-	store 2,mem_mouse_y
-	fetch 1,mem_config_sensor_angle
-	beq MOUSE_6CLK_ANGLE,motion32xx_6clk_direction_selection
-	beq MOUSE_9CLK_ANGLE,motion32xx_9clk_direction_selection
-	beq MOUSE_12CLK_ANGLE,motion32xx_12clk_direction_selection
-	beq MOUSE_3CLK_ANGLE,motion32xx_3clk_direction_selection
-	rtn
-	
-motion32xx_6clk_direction_selection:
-	call motion_6clk_direction_dispose
-	branch mouse_sensor_sdio_low
-motion32xx_9clk_direction_selection:
-	call motion_9clk_direction_dispose
-	branch mouse_sensor_sdio_low
-motion32xx_12clk_direction_selection:
-	call motion_12clk_direction_dispose
-	branch mouse_sensor_sdio_low
-motion32xx_3clk_direction_selection:
-	call motion_3clk_direction_dispose
-	branch mouse_sensor_sdio_low
-	
-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
-//input regb  output:pdata
-mouse_p3610sensor_read:
-	call spi_ncs_enable
-	nop 100
-	copy regb,pdata
-	call twspi_read
-	copy pdata,regb
-	call spi_ncs_disable
-	nop 100
-	copy regb,pdata
-	rtn	
-mouse_p3610_sensor_motion:
-	disable user
-	fetcht 1,mem_sensor_data_gpio
-	call gpio_get_bit
-	nrtn true
-	arg PAN_REG_MOTION_STAUS,regb
-	call mouse_p3610sensor_read
-	rtnbit0 7
-	arg PAN_REG_PID_L,regb
-	call mouse_p3610sensor_read
-	store 1,mem_sensor_id1
-	bne P3610_ID1,mouse_init_3610sensor_reset
-	fetch 1,mem_mouse_move_flag
-	call mouse_read_sensor3610_data,blank
-	jam 1,mem_mouse_move_flag
-	call mouse_read_sensor3610_data
-	fetch 1,mem_mouse_xy_h
-	rshift4 pdata,pdata
-	call extsign_bit3
-	store 1,mem_mouse_x+1
-	fetch 1,mem_mouse_xy_h
-	and pdata,0x0f,pdata
-	call extsign_bit3
-	store 1,mem_mouse_y+1
-	fetch 1,mem_config_sensor_angle
-	beq 0,motion3610_6clk_direction_selection
-	beq 1,motion3610_9clk_direction_selection
-	beq 2,motion3610_12clk_direction_selection
-	beq 3,motion3610_3clk_direction_selection
-	rtn
-
-mouse_3610_smart_select:
-	fetch 1,mem_sensor_smart_flag
-	beq P3610_SMART_ENABLE,mouse_3610_smart_disable
-	beq P3610_SMART_DISABLE,mouse_3610_smart_enable
-	rtn
-
-
-motion3610_6clk_direction_selection:
-	call motion_6clk_direction_dispose
-	branch mouse_3610_smart_select
-	
-motion3610_12clk_direction_selection:
-	call motion_12clk_direction_dispose
-	branch mouse_3610_smart_select
-	
-motion3610_9clk_direction_selection:
-	call motion_9clk_direction_dispose
-	branch mouse_3610_smart_select
-	
-motion3610_3clk_direction_selection:
-	call motion_3clk_direction_dispose
-	branch mouse_3610_smart_select
-	
-mouse_read_sensor3610_data:
-	call spi_ncs_enable
-	call mouse_read_sensor_common
-	arg 5,pdata
-	call twspi_read
-	store 1,mem_mouse_xy_h
-	arg 7,pdata
-	call twspi_read
-	store 1,mem_sensor_shutter_hi
-	arg 8,pdata
-	call twspi_read
-	store 1,mem_sensor_shutter_lo
-	branch spi_ncs_disable
-
-
-mouse_3610_smart_enable:
-	fetch 1,mem_sensor_shutter_hi
-	rtnne 0
-	fetch 1,mem_sensor_shutter_lo
-	sub pdata,45,null
-	rtn positive
-	jam P3610_SMART_ENABLE,mem_sensor_smart_flag
-	setarg 0xba41
-	call sensor_write
-	setarg 0x0032
-	call sensor_write
-	setarg 0xb541
-	branch sensor_write
-mouse_3610_smart_disable:
-	fetch 1,mem_sensor_shutter_hi
-	rtnne 0
-	fetch 1,mem_sensor_shutter_lo
-	sub pdata,45,null
-	nrtn positive
-	jam P3610_SMART_DISABLE,mem_sensor_smart_flag
-	setarg 0xba41
-	call sensor_write
-	setarg 0x8032
-	call sensor_write
-	setarg 0xb541
-	branch sensor_write
-
-
-
-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
-	store 2,mem_mouse_y
-	rtn
-
-mouse_set_qdecoder_x:
-	arg MOUSE_DEFAULT_XA_GPIO,temp
-	call gpio_config_input
-	arg MOUSE_DEFAULT_XA_GPIO,temp
-	call gpio_get_bit
-	rtn true
-	hfetch 1,core_qdec_cntx
-	set1 4,pdata
-	hstore 1,core_qdec_cntx
-	rtn
-
-mouse_hardware_zwheel:
-	fetcht 1,mem_mouse_z_data
-	hfetch 1,core_qdec_cntx
-	iadd temp,pdata
-	rtn blank
-	store 1,mem_mouse_z
-	jam 0,mem_mouse_z_data
-	branch enable_user
-mouse_hardware_zwheel_beforelpm:
-	fetcht 1,mem_mouse_z_data
-	hfetch 1,core_qdec_cntx
-	iadd temp,pdata
-	store 1,mem_mouse_z_data
-	rtn
-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_check_key_gpio:
-	arg 0,rega
-	fetcht 1,mem_lbutton_gpio
-	call gpio_get_bit
-	setflag true,0,rega
-	fetcht 1,mem_rbutton_gpio
-	call gpio_get_bit
-	setflag true,1,rega
-	fetcht 1,mem_mbutton_gpio
-	call gpio_get_bit
-	setflag true,2,rega
-	call mouse_check_s_key_gpio
-mouse_check_key_gpio_output:
-	copy rega,pdata
-	rtn
-mouse_check_s_key_gpio:
-	fetch 1,mem_bk_button_gpio
-	rtneq GPIO_DISABLE
-	fetcht 1,mem_bk_button_gpio
-	call gpio_get_bit
-	setflag true,3,rega
-	fetcht 1,mem_fw_button_gpio
-	call gpio_get_bit
-	setflag true,4,rega
-	rtn
-
-mouse_key:
-	call mouse_check_key_gpio
-	call mouse_set_mult
-	call mouse_24g_key
-	copy rega,pdata
-	fetcht 1,mem_mouse_key
-	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
-
-//short mult: no key 
-mouse_set_mult:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,mouse_set_ble_mult
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BT_CONNECTED,mouse_set_bt_mult
-	rtn
-mouse_set_ble_mult:
-	copy rega,pdata
-	nbranch le_set_config_short_mult,blank
-	branch le_clr_config_short_mult
-mouse_set_bt_mult:
-	copy rega,pdata
-	nbranch classic_bt_set_mult_short_flag,blank
-	branch classic_bt_clr_mult_short_flag
-	
-	/* sdio high will cost extra 9mA */
-mouse_sensor_sdio_low:
-	bpatch patch1c_7,mem_patch1c
-	arg MOUSE_SPI1_SDIO_GPIO,temp
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	isolate1 MOUSE_ENABLE_SPI2,pdata
-	call mouse_sensor_sdio_low2,true
-	call gpio_get_bit
-	rtn true
-	setarg 0x0a
-	call twspi_read
-	nop 1000
-	branch mouse_sensor_sdio_low
-mouse_sensor_sdio_low2:
-	arg MOUSE_SPI2_SDIO_GPIO,temp
-	rtn
-
-mouse_spi_sdio_gpio_pollup:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_SPI2,mouse_spi2_sdio_gpio_pollup
-mouse_spi1_sdio_gpio_pollup:
-	arg MOUSE_SPI1_SDIO_GPIO,temp
-	branch gpio_config_input_without_wake
-mouse_spi2_sdio_gpio_pollup:
-	arg MOUSE_SPI2_SDIO_GPIO,temp
-	branch gpio_config_input_without_wake
-
-	
-mouse_init_sunt:
-	call mouse_spi_init
-	rtn wake
-	call mouse_spi_sdio_gpio_pollup
-	fetch 1,mem_config_sensor_type
-	beq P3610,mouse_init_3610sensor
-mouse_init_sensor:
-	call mouse_read_sensor_id
-	beq P32XX_ID1,mouse_init_p32xx_id2_judge
-	beq P3065_ID1,mouse_p3065_init_param
-	call mouse_twspi_reset
-	nop 1000
-	branch mouse_init_sensor
-mouse_twspi_reset:
-	bpatch patch1d_0,mem_patch1d
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_SPI2,twspi_reset2
-	branch twspi_reset
-
-mouse_init_3610sensor:
-	call mouse_read_sensor_id
-	beq P3610_ID1,mouse_init_p3610
-	call mouse_init_3610sensor_reset
-	branch mouse_init_3610sensor
-	
-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 P3205_TJ3T_ID2,mouse_3205_3t_init_param
-	beq P3204_TJ3L_ID2,mouse_3204_3l_init_param
-	beq P3212_ID2,mouse_3212_init_param
-	beq PKA8_ID2,mouse_ka8_init_param
-	rtn
-mouse_ka8_init_param:
-	jam KA8,mem_config_sensor_type
-	rtn
-mouse_p3065xy_init_param:
-	jam P3065_XY,mem_config_sensor_type
-	rtn
-mouse_p3065_init_param:
-	fetch 1,mem_sensor_id2
-	beq P3065_XY_ID2,mouse_p3065xy_init_param
-	jam P3065,mem_config_sensor_type
-	rtn
-mouse_3212_init_param:
-	jam P3212,mem_config_sensor_type
-	call mouse_sensor_disable_wp
-	setarg 0x3426
-	call twspi_write
-	setarg 0x0419
-	call twspi_write
-mouse_sensor_enable_wp:
-	setarg 0x0009
-	branch twspi_write
-mouse_sensor_disable_wp:
-	setarg 0x5a09
-	branch twspi_write
-
-mouse_3204_3l_init_param:
-	jam P3204,mem_config_sensor_type
-	call mouse_sensor_disable_wp
-	setarg 0x0f0d//
-	call twspi_write
-	setarg 0xe31d//
-	call twspi_write
-	setarg 0xd27d
-	call twspi_write
-	call mouse_32xx_init_param
-	branch mouse_32xx_init_param_1
-	
-mouse_32xx_init_param:
-	setarg 0x351b
-	call twspi_write
-	setarg 0xb428
-	call twspi_write
-	setarg 0x4629
-	call twspi_write
-	setarg 0x962a
-	call twspi_write
-	setarg 0x8c2b
-	call twspi_write
-	setarg 0x6e2c
-	call twspi_write
-	setarg 0x642d
-	call twspi_write
-	setarg 0x5f38
-	call twspi_write
-	setarg 0x0f39
-	call twspi_write
-	setarg 0x323a
-	call twspi_write
-	setarg 0x473b
-	call twspi_write
-	setarg 0x1042
-	branch twspi_write
-mouse_32xx_init_param_1:	
-	setarg 0x2e54
-	call twspi_write
-	setarg 0xf255
-	call twspi_write
-	setarg 0xf461
-	call twspi_write
-	setarg 0x7063
-	call twspi_write
-	setarg 0x5275
-	call twspi_write
-	setarg 0x4176
-	call twspi_write
-	setarg 0xed77
-	call twspi_write
-	setarg 0x2378
-	call twspi_write
-	setarg 0x4679
-	call twspi_write
-	setarg 0xe57a
-	call twspi_write
-	setarg 0x487c
-	call twspi_write
-	setarg 0x777e
-	call twspi_write
-	setarg 0x017f
-	call twspi_write
-	setarg 0x000b
-	call twspi_write
-	setarg 0x007f
-	call twspi_write
-	branch mouse_sensor_enable_wp
-	
-
-mouse_3205_3t_init_param:
-	jam P3205,mem_config_sensor_type
-	call mouse_sensor_disable_wp
-	setarg 0x100d//
-	call twspi_write
-	setarg 0xed1d//
-	call twspi_write
-	setarg 0x807d
-	call twspi_write
-	call mouse_32xx_init_param
-	setarg 0x0943
-	call twspi_write
-	branch mouse_32xx_init_param_1
-	
-	
-mouse_init_3610sensor_reset:
-	fetcht 1,mem_sensor_reset_gpio
-	call gpio_out_active
-	call delay_10ms
-	fetcht 1,mem_sensor_reset_gpio
-	call gpio_out_inactive
-	branch delay_10ms
-
-mouse_init_p3610:
-	jam P3610,mem_config_sensor_type
-	setarg 0xba41
-	call sensor_write
-	setarg 0x0d11
-	call sensor_write
-	setarg 0x041b
-	call sensor_write
-	setarg 0x041c
-	call sensor_write
-	setarg 0x0f1d
-	call sensor_write
-	setarg 0x0032
-	call sensor_write
-	setarg 0xb541
-	branch sensor_write
-	
-	
-//input-rega
-mouse_set_sensor_reg:
-	setarg 0xba41
-	call sensor_write
-	nop 4000
-	setarg 0xff7f
-	call sensor_write
-	copy rega,pdata
-	call sensor_write
-	setarg 0x007f
-	call sensor_write
-	setarg 0xb541
-	branch sensor_write
-
-extsign:
-	rtnbit0 7
-	arg 0xff00,temp
-	ior temp,pdata
-	rtn
-
-extsign_bit3:
-	rtnbit0 3
-	arg 0xf0,temp
-	ior temp,pdata
-	rtn
-
-
-mouse_le:
-	call le_fifo_check_nearly_full
-	nrtn blank
-	fetch 1,mem_le_connect_status_flag
-	and pdata,0x03,pdata
-	rtnne 0x03
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOSUE_24G_PAIRING_FLAG,mouse_le_send_empty_packet
-	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_le_send_empty_packet
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
-	call mouse_motion
-	nrtn user
-	branch mouse_fill_data_le
-
-mouse_le_send_empty_packet:
-	setarg 0
-	store 7,mem_mouse_key
-	branch mouse_fill_data_le
-
-mouse_priority_bb_event:	
-	copy regc,pdata
-	beq BT_EVT_LE_CONNECTED,mouse_le_bb_event_connected
-	beq BT_EVT_BB_CONNECTED,mouse_stop_discovery
-	beq BT_EVT_LE_DISCONNECTED,mouse_bb_disconnected
-	beq BT_EVT_BB_DISCONNECTED,mouse_bb_disconnected
-	beq BT_EVT_SETUP_COMPLETE,mouse_bt_event_setup_complete
-	beq BT_EVT_BUTTON_LONG_PRESSED,mouse_bb_event_discovery_btn
-	beq BT_EVT_HID_HANDSHAKE,mouse_bt_hid_handshake
-	beq BT_EVT_HID_CONNECTED,mouse_bt_hid_connected
-	beq BT_EVT_RECONN_FAILED,mouse_bb_event_reconn_failed
-	beq BT_EVT_RECONN_PAGE_TIMEOUT,mouse_bb_event_reconn_timeout
-	beq BT_EVT_PINCODE_REQ,mouse_bb_event_pincode
-	beq BT_EVT_REMOTE_UNSNIFF,app_start_auto_sniff
-	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
-	beq BT_EVT_LE_START_ENC,mouse_le_ll_start_encryt
-	beq BT_EVT_LE_PAIRING_COMPLETE,mouse_le_pairing_complete
-	beq BT_EVT_VIRTUAL_CABLE_UNPLUG,mouse_irtual_cable_unplug
-	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
-	rtn
-
-
-mouse_le_pairing_complete:
-	branch app_ble_store_reconn_info
-
-mouse_24g_attempt_fail:
-	jam 1,mem_mouse_24g_enter_lpm_enable
-	fetch 1,mem_reconn_times
-	nbranch mouse_polling_device,blank
-	fetch 1,mem_device_flag
-	fetcht 1,mem_24g_device_number
-	isub temp,null
-	branch app_enter_hibernate,zero
-	rtn
-mouse_24g_attempt_success:
-	jam 1,mem_mouse_24g_enter_lpm_enable
-	rtn
-mouse_24g_pairing_complete:
-	jam 1,mem_mouse_24g_enter_lpm_enable
-	arg MOSUE_24G_PAIRING_FLAG,queue
-	call mouse_disable_function_flag
-	setarg 0
-	store 2,mem_24g_pairing_timer_count
-	jam 0,mem_mouse_move_flag
-	
-	fetch 1,mem_config_sensor_type
-	sub pdata,P3610,null
-	call mouse_read_sensor3610_data,zero
-	ncall mouse_read_sensor_common,zero
-
-	fetch 1,MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_24g_address
-	call mouse_set_24g_addr_eeprom	//store rx dongle addr to eeprom
-	branch iicd_write_protect_eep_data
-
-mouse_set_24g_addr_eeprom:
-	call g24_head_ptr2regc
-	add regc,offset_24g_addr,rega
-	arg MOUSE_G24_ADDR_EEPROM_OFFECT,regb
-	arg 4,temp
-	rtn
-
-mouse_store_flash_24g_address:
-	call g24_head_ptr2regc
-	add regc,offset_24g_addr,regb
-	ifetch 1,regb
-	store 1,mem_mouse_24g_addr
-	branch mouse_store_flash_device_info
-	
-
-mouse_le_pairing_success:
-	arg LL_PAIRING_SUCCESS_FLAG,queue
-	branch mouse_le_enable_connect_flag
-mouse_le_ll_start_encryt:
-	jam 2,mem_le_start_encrypt_timer
-	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_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_bb_event_connected:
-	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
-	setarg 0
-	store 2,mem_mouse_direct_timer
-	call mouse_no_data_timer_init
-	branch mouse_stop_discovery
-
-mouse_bb_event_pincode:
-	call pincode_reinit
-	branch app_bt_set_pincode
-mouse_bb_event_reconn_timeout:
-ifdef FPGA_DEBUG
-	arg MOUSE_FPGA_DEBUG_GPIO,temp
-	call gpio_config_output
-	arg MOUSE_FPGA_DEBUG_GPIO,temp
-	call gpio_out_inactive
-endif
-mouse_bb_event_reconn_failed:
-	fetch 1,mem_reconn_times
-	nbranch mouse_polling_device,blank
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_soft_reset
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_start_discovery
-	bbit1 MOSUE_24G_PAIRING_FLAG,g24_start_pairing_sm1
-	branch app_bb_hibernate
-
-	
-mouse_bt_hid_connected:
-	branch mouse_hid_connected
-
-mouse_bt_event_setup_complete:
-	rtn
-
-mouse_soft_reset:
-	call mouse_select_device_enable
-	branch soft_reset_chip
-
-mouse_bb_disconnected:
-	bpatch patch1d_1,mem_patch1d
-	call mouse_bb_discon_clear_stack
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_soft_reset
-	bbit1 MOSUE_24G_PAIRING_FLAG,g24_start_pairing_sm1
-	fetch 1,mem_reconn_times
-	nbranch mouse_polling_device,blank
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
-	bbit1 APP_DISC_BLE,mouse4_0_event_bb_disconn
-	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
-	bbit1 APP_DISC_AFTER_PAIRING,mouse_event_light_state_pairing
-	bbit1 APP_DISC_AFTER_RECONN,mouse_event_light_state_hibernate
-	bbit1 APP_DISC_AFTER_SNIFF,mouse_event_light_state_hibernate
-	branch mouse_start_discovery
-mouse_bb_discon_clear_stack:
-	setarg 0
-	store 8,mem_wheel_tb_old_pinlevel
-	istore 4,contw             //clean wheel statue
-	jam 0,mem_mouse_send_blank_timer
-	jam 0,mem_mouse_move_flag
-	jam APP_HANDSHAKE_NULL,mem_app_handshake_flag
-	jam 0,mem_ltk_exists
-	rtn
-
-mouse_event_light_state_pairing:
-	bbit1 APP_DISC_AFTER_HANDSHAKE,mouse_event_light_state_hibernate
-	bbit1 APP_DISC_AFTER_SNIFF,mouse_event_light_state_hibernate
-	branch mouse_start_discovery
-mouse_event_light_state_hibernate:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
-	branch app_bb_hibernate
-
-mouse4_0_event_bb_disconn:
-	call mouse_le_clean_connect_flag
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
-	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
-	branch app_bb_hibernate
-
-mouse_bb_event_timer:
-	call mouse_adc_read
-	call mouse_24g_delay_timer
-	call mouse_ban_24g_pairing_timer
-	call mouse_dpi_led_blink_delay_timer
-	call mouse_statue_up_timer
-	//poll
-	call mouse_statue_cheak_timer
-	call mouse_select_device
-	call mouse_bt_discovery_cheak
-	call mouse_low_voltage_led_timer
-	call mouse_sensor_led_contrl_timer
-	call mouse_check_hid_handshake_timer
-	call mouse_check_discovery_timeout_timer
-	call mouse_check_direct_timeout_timer
-	call mouse_check_no_data_timeout_timer
-	call mouse_check_mouse_state_timer
-	branch mouse_le_enable_att_list_timer
-
-
-
-mouse_sensor_led_contrl_timer:
-	fetch 1,mem_mouse_sensor_timer_count
-	rtn blank
-	increase -1,pdata
-	store 1,mem_mouse_sensor_timer_count
-	nrtn blank
-	branch mouse_sensor_led_contrl
-mouse_sensor_led_contrl:
-	fetch 1,mem_sensor_led_style
-	rtneq UI_LED_STATE_BLINK_STOP
-	beq UI_LED_STATE_BLINK_DARKING,mouse_sensor_led_blink_state_darking
-mouse_sensor_led_blink_state_lighting:
-	call mouse_sensor_led_on
-	jam UI_LED_STATE_BLINK_DARKING,mem_sensor_led_style
-	jam LED_SENSOR_BLINK_CNT,mem_mouse_sensor_timer_count
-	rtn
-mouse_sensor_led_blink_state_darking:
-	call mouse_sensor_led_off
-	jam UI_LED_STATE_BLINK_LIGHTING,mem_sensor_led_style
-	jam LED_SENSOR_BLINK_CNT,mem_mouse_sensor_timer_count
-	rtn
-	
-mouse_sensor_led_blink_stop:
-mouse_sensor_reset:
-	setarg 0x8006
-	call twspi_write
-    nop 1000
-	jam 0x00,mem_mouse_sensor_timer_count
-	jam UI_LED_STATE_BLINK_STOP,mem_sensor_led_style
-	branch mouse_init_p32xx_id2_judge
-	
-mouse_p3212sensor_led_on:
-	setarg 0xa006
-	call twspi_write
-	setarg 0xa005
-	branch twspi_write
-mouse_sensor_led_on_global:
-	jam 0,mem_mouse_sensor_timer_count
-mouse_sensor_led_on:
-	fetch 1,mem_config_sensor_type
-	beq P3212,mouse_p3212sensor_led_on
-	setarg 0x0106
-	call twspi_write
-	setarg 0xa105
-	branch twspi_write
-	
-mouse_sensor_led_off_global:
-	jam 0,mem_mouse_sensor_timer_count	
-mouse_sensor_led_off:
-	setarg 0x0906
-	branch twspi_write
-mouse_sensor_start_blink:
-	jam LED_SENSOR_BLINK_CNT,mem_mouse_sensor_timer_count
-	jam UI_LED_STATE_BLINK_START,mem_sensor_led_style
-	rtn
-	
-mouse_check_hid_handshake_timer:
-	arg mem_hid_handshake_timer_count,regc
-	arg mouse_bt_hid_handshake,regb
-	branch timer_single_step
-
-mouse_check_discovery_timeout_timer:
-	arg mem_mouse_discovery_timer,regc
-	arg mouse_check_discovery_timeout,regb
-	branch timer_single_step_2B
-
-mouse_check_direct_timeout_timer:	
-	arg mem_mouse_direct_timer,regc
-	arg mouse_check_direct_timeout,regb
-	branch timer_single_step_2B
-	
-mouse_check_no_data_timeout_timer:	
-	arg mem_mouse_no_data_timer,regc
-	arg mouse_check_no_data_timeout,regb
-	branch timer_single_step_2B
-	
-mouse_check_mouse_state_timer:
-	arg mem_mouse_statue_led_timer,regc
-	arg mouse_statue_led_off,regb
-	branch timer_single_step
-
-
-
-mouse_le_enable_att_list_timer:
-	arg mem_le_start_encrypt_timer,regc
-	arg mouse_le_enable_att_list,regb
-	branch timer_single_step
-
-mouse_24g_delay_timer:
-	arg mem_24g_enter_lpm_timer,regc
-	arg mouse_24g_delay,regb
-	branch timer_single_step
-
-mouse_ban_24g_pairing_timer:
-	arg mem_24g_pairing_timer_count,regc
-	arg mouse_ban_24g_pairing,regb
-	branch timer_single_step_2B
-mouse_ban_24g_pairing:
-mouse_24g_delay:
-	rtn
-
-
-mosue_dpi_led_blink_init:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_DPI_LED_BLINK
-	jam 10,mem_mouse_dpi_led_delay_count  //delay 1s led blink
-	fetch 1,mem_dpi_led_gpio
-	store 1,mem_mouse_struct_led_gpio
-	rtn
-
-
-mouse_dpi_led_blink_delay_timer:
-	arg mem_mouse_dpi_led_delay_count,regc
-	arg mouse_dpi_led_setting,regb
-	branch timer_single_step	
-mouse_dpi_led_setting:
-	fetch 1,mem_dpi_led_gpio
-	store 1,mem_mouse_struct_led_gpio
-	setarg LED_DPI_BLINK
-	store 2,mem_mouse_on_time
-	store 2,mem_mouse_off_time
-	arg 0,rega
-	fetcht 1,mem_mouse_dpi
-	increase 1,temp
-	storet 1,mem_mouse_blink_count
-	jam UI_LED_STATE_BLINK_START,mem_mouse_led_type
-	rtn
-	
-mouse_le_enable_att_list:	
-	fetch 1,mem_le_connect_status_flag
-	rtnbit1 LL_PAIRING_SUCCESS_FLAG
-	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
-	call ui_ipc_send_cmd
-	arg WRITE_REQ_ENABLE_FLAG,queue
-	branch mouse_le_enable_connect_flag
-
-
-mouse_check_discovery_timeout:
-	call mouse_stop_discovery
-	branch app_enter_hibernate
-
-mouse_check_direct_timeout:
-	call app_ble_stop_direct_adv
-	fetch 1,mem_reconn_times
-	nbranch mouse_polling_device,blank
-	branch app_enter_hibernate
-
-mouse_check_no_data_timeout:
-	bmark1 mark_24g,check_51cmd_hibernate
-	branch mouse_disconnect
-
-	
-
-mouse_bb_event_discovery_btn:
-	bpatch patch1d_2,mem_patch1d
-	jam 0,mem_mouse_send_blank_timer
-	call mouse_disconnect
-	call mouse_le_clean_connect_flag
-	branch mouse_start_discovery
-
-
-
-mouse3_0_check_reconn_target:
-	fetch 6,mem_hci_plap
-	branch app_bt_start_discovery_short,blank
-	call mouse_reconn_setting_led_gpio
-	jam 0x17,mem_connection_options  //ssp
-	fetch 1,mem_ssp_enable
-	nbranch app_bt_start_reconnect,blank
-	jam 0x04,mem_connection_options  //no ssp
-	branch app_bt_start_reconnect
-	
-mouse4_0_check_reconn_target:
-	fetch 2,mem_mouse_direct_timeout
-	store 2,mem_mouse_direct_timer
-	call mouse_reconn_setting_led_gpio
-	call app_lpm_mult_disable
-	branch check_51cmd_adv
-
-mouse_reconn_setting_led_gpio:
-	setarg LED_RECONNECT_BLINK
-	store 2,mem_mouse_on_time
-	store 2,mem_mouse_off_time
-	branch mouse_setting_led_gpio_comman
-	
-mouse_discover_setting_led_gpio:
-	setarg LED_DISCOVERY_BLINK
-	store 2,mem_mouse_on_time
-	store 2,mem_mouse_off_time	
-mouse_setting_led_gpio_comman:
-	fetch 1,mem_device_flag
-	beq MODE_BT_DEVICE1,mouse_device_led1
-	beq MODE_BT_DEVICE2,mouse_device_led2
-	beq MODE_BT_DEVICE3,mouse_device_led3
-	rtn
-mouse_device_led1:
-	fetch 1,mem_config_device1_led_gpio
-	branch mouse_led_blink
-mouse_device_led2:
-	fetch 1,mem_config_device2_led_gpio
-	branch mouse_led_blink
-mouse_device_led3:
-	fetch 1,mem_config_device3_led_gpio
-mouse_led_blink:
-	store 1,mem_temp
-	call mouse_devce_led_off
-	fetch 1,mem_temp
-	store 1,mem_mouse_struct_led_gpio
-	arg 0,rega
-	jam UI_LED_STATE_BLINK_START,mem_mouse_led_type
-	branch ui_led_blink_start_global
-
-mouse_led_off:
-	arg 0,rega
-	branch ui_led_off_global
-mouse_led_on:
-	arg 0,rega
-	branch ui_led_on_global
-
-mouse4_0_bb_event_discovery_btn:
-	branch mouse_le_clean_connect_flag
-	
-mouse_bt_hid_handshake:
-	jam APP_HANDSHAKE_DONE,mem_app_handshake_flag
-	call app_lpm_mult_enable
-	call app_bt_store_reconn_info
-	setarg 0
-	store 2,mem_discovery_timeout_timer_count
-	store 1,mem_hid_handshake_timer_count
-	branch app_bt_enter_sniff
-
-mouse_check_reconn_target:
-	call mouse_cheak_select_device_by_switch
-	fetch 1,mem_device_flag
-	fetcht 1,mem_24g_device_number
-	isub temp,null
-	branch mouse_connect_24g_mode,zero
-	fetch 1,mem_xrecord_mode
-	beq REC_3_MODE,mouse3_0_check_reconn_target
-	beq REC_4_MODE,mouse4_0_check_reconn_target
-	branch mouse_start_discovery
-mouse_connect_24g_mode:
-	call mouse_start_24g_mode
-	rtnmark1 mark_24g
-	fetch 1,mem_reconn_times
-	nbranch mouse_polling_device,blank
-	rtn
-	
-mouse_start_discovery:
-	bpatch patch1d_3,mem_patch1d
-	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
-	random pdata					//random ble addr
-	store 1,mem_le_lap+1
-mouse_start_discovery_norandom:
-	call app_lpm_mult_disable
-	fetch 2,mem_discovery_timeout
-	store 2,mem_mouse_discovery_timer
-	jam 6,mem_connection_options
-	setarg 0
-	store 2,mem_mouse_no_data_timer
-	store 2,mem_mouse_direct_timer
-	arg MOUSE_STORE_EEPROM_FLAG,queue
-	call mouse_enable_function_flag
-	call mouse_bt_discovery_button_down_disable
-	fetch 1,mem_device_option
-	isolate1 MODE_4_MOUSE,pdata
-	call check_51cmd_adv,true
-	fetch 1,mem_device_option
-	isolate1 MODE_3_MOUSE,pdata
-	call check_51cmd_start_discovery,true
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DISCOVERY_SENSOR_LED,mouse_sensor_start_blink
-	branch mouse_discover_setting_led_gpio
-
-mouse_stop_discovery:
-	bpatch patch1d_4,mem_patch1d
-	fetch 1,mem_device_option
-	isolate1 MODE_4_MOUSE,pdata
-	call mouse_stop_le_adv,true
-	fetch 1,mem_device_option
-	isolate1 MODE_3_MOUSE,pdata
-	call mouse_stop_bt3_discovery,true
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DISCOVERY_SENSOR_LED,mouse_sensor_led_blink_stop
-	branch mouse_devce_led_off
-mouse_stop_le_adv:
-	setarg 0
-	store 2,mem_mouse_direct_timer
-	branch check_51cmd_stop_adv
-mouse_stop_bt3_discovery:
-	setarg 0
-	store 2,mem_mouse_discovery_timer
-	branch check_51cmd_stop_discovery
-
-	
-
-
-
-mouse_store_remote_bdaddr:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_STORE_EEPROM_FLAG
-	arg MOUSE_STORE_EEPROM_FLAG,queue
-	call mouse_disable_function_flag
-	call mouse_check_device_addr
-mouse_unplug_clean_bdaddr:
-	call mouse_before_store_reconn_info
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
-	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eeprom_device_info	
-	rtn
-mouse_store_eeprom_device_info:
-	arg 88,temp
-	arg mem_device_flag,rega
-	arg MOUSE_INFO_EEPROM_OFFECT,regb
-	branch iicd_write_protect_eep_data
-
-mouse_check_device_addr:
-	fetch 1,mem_record_bt_mode
-	beq REC_4_MODE,mouse_check_le_device_addr
-	beq REC_3_MODE,mouse_check_bt_device_addr
-	rtn
-mouse_check_le_device_addr:
-	store 1,mem_device_addr_temp
-	fetch 6,mem_le_plap
-	branch mouse_check_bt_device_addr_common
-mouse_check_bt_device_addr:
-	store 1,mem_device_addr_temp
-	fetch 6,mem_plap
-mouse_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
-mouse_check_device_addr_end:
-	ifetcht 7,contr
-	isub temp,null
-	branch mouse_clean_addr,zero
-	increase 22,contr
-	loop mouse_check_device_addr_end
-	rtn
-mouse_before_store_reconn_info:
-	arg mem_device1_type,rega
-	fetch 1,mem_device_flag
-	increase -1,pdata
-	mul32 pdata,29,pdata
-	iadd rega,rega
-	fetch 1,mem_record_bt_mode
-	istore 1,rega
-	beq REC_4_MODE,mouse_store_le_device
-	beq REC_3_MODE,mouse_store_bt_device
-	rtn
-	
-mouse_store_le_device:
-	fetch 6,mem_le_plap
-	istore 6,contw
-	arg mem_le_ltk,contr
-	call memcpy16
-	fetch 6,mem_le_lap
-	istore 6,contw
-	rtn
-mouse_store_bt_device:
-	fetch 6,mem_plap
-	istore 6,contw
-	arg mem_link_key,contr
-	branch memcpy16
-
-mouse_clean_addr:
-	increase -6,contr
-	copy contr,contw
-	fetcht 6,mem_device_addr_temp+1
-	increase 3,temp
-	istoret 6,contw
-	rtn
-
-
-
-mouse_eeprom_load_recon_info:
-	arg 88,temp
-	arg mem_device_flag,rega
-	arg MOUSE_INFO_EEPROM_OFFECT,regb
-	call iicd_read_eep_data
-mouse_select_reconn_device:
-	arg mem_device1_type,rega
-	fetch 1,mem_device_flag
-	fetcht 1,mem_24g_device_number
-	isub temp,null
-	rtn zero
-	increase -1,pdata
-	mul32 pdata,29,pdata
-	iadd rega,rega
-	ifetch 1,rega
-	store 1,mem_xrecord_mode
-	beq REC_3_MODE,mouse_load_bt_device
-	beq REC_4_MODE,mouse_load_le_device
-	rtn
-
-mouse_load_bt_device:
-	ifetch 6,contr
-mouse_load_bt_device_end:
-	store 6,mem_hci_plap
-	arg mem_link_key,contw
-	call memcpy16
-	branch check_link_key_load
-
-mouse_load_le_device:
-	ifetch 6,contr
-mouse_load_le_device_end:
-	store 6,mem_hci_plap
-	arg mem_le_ltk,contw
-	call memcpy16
-	ifetch 6,contr
-	store 6,mem_le_lap
-	rtn
-
-
-mouse_select_device:
-	fetch 1,mem_config_function_enable
-	bbit1 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON,mouse_select_device_by_button
-	bbit1 ENABLE_SELECT_DEVICE_BY_SWITCH,mouse_select_device_by_switch
-	branch mouse_select_device_by_combination_key
-
-mouse_select_device_by_combination_key:
-	call mouse_check_key_gpio
-	beq MOUSE_RM_BUTTON,mouse_select_device_commbination_key_down
-mouse_select_device_commbination_key_up:
-	jam 30,mem_combination_select_device_count	//combination key timer init 
-	fetch 1,mem_select_device_button_statue
-	rtneq DPI_BUTTON_STATE_UP
-	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue	
-	rtn
-	
-mouse_select_device_commbination_key_down:
-	call mouse_combination_select_device_timer
-	fetch 1,mem_select_device_button_statue
-	rtneq DPI_BUTTON_STATE_DOWN
-	jam DPI_BUTTON_STATE_DOWN,mem_select_device_button_statue
-	branch mouse_select_device_enable
-
-mouse_combination_select_device_timer:
-	fetch 1,mem_combination_select_device_count
-	rtn blank
-	pincrease -1
-	store 1,mem_combination_select_device_count
-	nrtn blank
-	branch mouse_ready_reconnection_by_button
-	
-mouse_select_device_by_button:
-	fetch 1,mem_config_select_device_button_gpio
-	rtneq GPIO_DISABLE
-	fetcht 1,mem_config_select_device_button_gpio
-	call gpio_get_bit
-	branch mouse_select_device_button_down,true
-mouse_select_device_button_up:
-	fetch 1,mem_select_device_button_statue
-	rtneq DPI_BUTTON_STATE_UP
-	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue	
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_LONG_BT_BUTTON_FLAG
-	branch mouse_ready_reconnection_by_button
-
-mouse_select_device_button_down:
-	fetch 1,mem_select_device_button_statue
-	rtneq DPI_BUTTON_STATE_DOWN
-	jam DPI_BUTTON_STATE_DOWN,mem_select_device_button_statue
-	arg MOUSE_LONG_BT_BUTTON_FLAG,queue
-	branch mouse_disable_function_flag
-
-
-
-mouse_select_device_by_switch:
-	fetch 1,MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 ENABLE_SELECT_DEVICE_BY_SWITCH
-	fetch 1,mem_device_flag
-	beq MODE_BT_DEVICE1,mouse_select1_device
-	beq MODE_24G_DEVICE,mouse_select2_device
-	rtn
-mouse_cheak_select_device_by_switch:
-	fetch 1,MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 ENABLE_SELECT_DEVICE_BY_SWITCH
-	fetcht 1,mem_config_select_device_button_gpio
-	call gpio_get_bit
-	branch mouse_cheak_select_24gdevice,true
-mouse_select_btdevice:
-	jam MODE_BT_DEVICE1,mem_device_flag
-	rtn
-mouse_cheak_select_24gdevice:
-	fetch 1,mem_24g_device_number
-	store 1,mem_device_flag
-	rtn
-mouse_select1_device:
-	fetcht 1,mem_config_select_device_button_gpio
-	nbranch mouse_ready_reconnection_by_button,true
-	rtn
-mouse_select2_device:
-	fetcht 1,mem_config_select_device_button_gpio
-	call gpio_get_bit
-	branch mouse_select_device_button_down,true
-	rtn
-
-
-	
-
-mouse_ready_reconnection_by_button:
-	fetcht 1,mem_device_flag
-	increase 1,temp
-	fetch 1,mem_device_number
-	isub temp,null
-	ncall mouse_select_device_count_clean,positive
-	storet 1,mem_device_flag
-	jam 0,mem_link_key_exists
-	call mouse_store_device_number2eeprom
-	call mouse_select_device_enable
-//	call p_select_reconn_device
-	branch mouse_set_reconnection
-
-mouse_store_device_number2eeprom:
-	arg 1,temp
-	arg mem_device_flag,rega
-	arg 0,regb
-	branch iicd_write_eep_data
-
-mouse_set_reconnection:
-	call mouse_stop_bluetooth_mode
-	call mouse_select_device_disable
-	branch mouse_soft_reset
-mouse_stop_bluetooth_mode:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BT_RECONNECT,mouse_cancel_reconnect
-	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
-	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
-	branch mouse_stop_discovery
-
-mouse_disconnect:
-	bpatch patch1d_5,mem_patch1d
-	setarg 0
-	store 2,mem_mouse_no_data_timer
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
-	rtn
-
-mouse_irtual_cable_unplug:
-	setarg 0x01
-	store 6,mem_plap
-	jam REC_3_MODE,mem_record_bt_mode
-	branch mouse_unplug_clean_bdaddr
-
-	
-mouse_cancel_reconnect:
-	call mouse_bt_cannel_reconn_enable
-	branch check_51cmd_bb_reconn_cancel
-
-mouse_bt_discovery_by_button:
-	fetch 1,mem_config_bt_button_gpio
-	rtneq GPIO_DISABLE
-	fetcht 1,mem_config_bt_button_gpio
-	call gpio_get_bit
-	branch mouse_bt_discovery_button_down,true
-mouse_bt_discovery_button_up:
-	fetch 1,mem_ui_button_timeout
-	store 1,mem_combination_ui_button_count	//combination key timer init 	
-	fetch 1,mem_bt_discovey_button_statue
-	rtneq DPI_BUTTON_STATE_UP
-	jam DPI_BUTTON_STATE_UP,mem_bt_discovey_button_statue	
-	branch mouse_bt_discovery_button_down_disable
-mouse_bt_discovery_button_down:
-	call mouse_bt_discovry_timer
-	fetch 1,mem_bt_discovey_button_statue
-	rtneq DPI_BUTTON_STATE_DOWN
-	jam DPI_BUTTON_STATE_DOWN,mem_bt_discovey_button_statue
-	call check_51cmd_bb_reconn_cancel
-	branch mouse_bt_discovery_button_down_enable
-
-	
-mouse_bt_discovery_cheak:
-	fetch 1,mem_config_function_enable
-	bbit1 ENABLE_BT_BUTTON,mouse_bt_discovery_by_button
-mouse_bt_discovery_commbination_key:
-	call mouse_check_key_gpio
-	beq MOUSE_LMR_BUTTON,mouse_bt_discovery_commbination_key_down
-mouse_bt_discovery_commbination_key_up:
-	fetch 1,mem_ui_button_timeout
-	store 1,mem_combination_ui_button_count	//combination key timer init 
-	fetch 1,mem_bt_discovey_button_statue
-	rtneq DPI_BUTTON_STATE_UP
-	jam DPI_BUTTON_STATE_UP,mem_bt_discovey_button_statue	
-	branch mouse_bt_discovery_button_down_disable
-	
-	
-mouse_bt_discovery_commbination_key_down:
-	call mouse_bt_discovry_timer
-	fetch 1,mem_bt_discovey_button_statue
-	rtneq DPI_BUTTON_STATE_DOWN
-	jam DPI_BUTTON_STATE_DOWN,mem_bt_discovey_button_statue
-	call check_51cmd_bb_reconn_cancel
-	branch mouse_bt_discovery_button_down_enable
-
-mouse_bt_discovry_timer:
-	arg mem_combination_ui_button_count,regc
-	arg mouse_long_button_bt_discovry,regb
-	branch timer_single_step
-	
-mouse_long_button_bt_discovry:
-	arg MOUSE_LONG_BT_BUTTON_FLAG,queue
-	call mouse_enable_function_flag
-	call app_evt_button_long_pressed
-	branch mouse_bb_event_discovery_btn
-
-
-mouse_cpi_enable:
-	arg MOUSE_CPI_FLAG,queue
-	branch mouse_enable_function_flag
-mouse_cpi_disable:
-	arg MOUSE_CPI_FLAG,queue
-	branch mouse_disable_function_flag
-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_select_device_count_clean:
-	arg 1,temp
-	rtn
-
-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_adc_read:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_ADC
-	fetch 1,mem_adc_read_timer
-	increase 1,pdata
-	store 1,mem_adc_read_timer
-	sub pdata,10,null              //1s read adc
-	rtn positive
-	jam 0,mem_adc_read_timer
-	call adc_set_mode
-	call vdd_calculate_by_mode
-	store 2,mem_mouse_vdd_now_vol
-	arg mem_mouse_vdd_calculate_set,rega
-	call adc_bat_percent_lowpower_out
-	fetch 1,mem_adc_power_flag
-	bbit1 1,mouse_power_down
-	bbit0 0,mouse_adc_no_low_voltage
-	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
-	branch mouse_disable_function_flag
-
-mouse_low_voltage_led_timer:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
-	fetch 1,mem_config_low_voltage_alarm_gpio
-	store 1,mem_mouse_struct_led_gpio
-	fetch 1,mem_adc_low_volatage_led_timer_count
-	pincrease 1
-	store 1,mem_adc_low_volatage_led_timer_count
-	sub pdata,20,null
-	ncall mouse_adc_low_volatage_led_timer_count_clean,positive
-	beq 2,mouse_low_voltage_led_on
-	beq 4,mouse_low_voltage_led_off
-	beq 6,mouse_low_voltage_led_on
-	beq 8,mouse_low_voltage_led_off
-	rtn
-mouse_adc_low_volatage_led_timer_count_clean:
-	jam 1,mem_adc_low_volatage_led_timer_count
-	branch mouse_low_voltage_led_off
-mouse_low_voltage_led_on:
-	arg 0,rega
-	jam UI_LED_STATE_LIGHTING,mem_mouse_led_type
-	branch ui_led_on_global
-mouse_low_voltage_led_off:
-	arg 0,rega
-	jam UI_LED_STATE_LIGHTING,mem_mouse_led_type
-	branch ui_led_off_global
-
-mouse_g24_package_data:
-	call mouse_motion
-	nrtn user
-	arg 7,rega	//length
-	arg mem_mouse_key,regb //tx buff
-	rtn
-	
-mouse_g24_enter_lpm:
-	fetch 1,mem_mouse_24g_enter_lpm_enable
-	rtn blank
-	//do not enter lpm when condition is unallowed
-	fetcht 1,mem_dpi_button_gpio
-	call gpio_get_bit
-	call mouse_24g_dpi_delay_init,true
-	fetch 1,mem_24g_enter_lpm_timer
-	nrtn blank
-	call mouse_check_key_gpio
-	nrtn blank
-	branch g24_lpm_long_sleep
-
-mouse_24g_dpi_delay_init:
-	fetch 1,mem_dpi_button_gpio
-	rtneq UI_BUTTON_GPIO_DISABLE
-	jam 10,mem_24g_enter_lpm_timer
-	rtn
-
-	
-mouse_load_flash_info_cheak:
-	call mouse_load_flash_flag
-	fetch 2,mem_store_flag
-	arg EEPROM_INIT_FLAG,temp
-	isub temp,null
-	branch mouse_load_flash_device_info,zero
-	storet 2,mem_store_flag
-	call mouse_ble_init_address
-	branch mouse_store_flash_device_info
-mouse_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
-	
-	
-mouse_load_flash_flag:
-	setarg mem_store_flag
-	arg mem_mouse_information_start,temp
-	isub temp,temp
-	fetch 3,mem_flash_base
-	iadd temp,pdata
-	arg 2,temp
-	arg mem_store_flag,rega
-	branch spid_read_flash
-
-	
-mouse_load_flash_device_info:
-	setarg mem_mouse_information_end
-	arg mem_mouse_information_start,temp
-	isub temp,temp
-	fetch 3,mem_flash_base
-	arg mem_mouse_information_start,rega
-	call spid_read_flash
-	call mouse_select_reconn_device
-	fetch 4,mem_mouse_24g_addr
-	call g24_head_ptr2regc
-	branch g24_store_mem_addr
-
-mouse_store_flash_device_info:	
-	setarg mem_mouse_information_end
-	arg mem_mouse_information_start,temp
-	isub temp,temp
-	arg mem_mouse_information_start,rega
-	fetch 3,mem_flash_base
-	branch flash_write
-
-mouse_store_eerpom_dpi:
-	arg 1,temp
-	arg mem_mouse_dpi,rega
-	arg MOUSE_DPI_EEPROM_OFFECT,regb
-	branch iicd_write_protect_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
-
-mouse_statue_cheak_timer:
-	rtnmark1 mark_24g
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_STATUE_UP
-	fetch 1,mem_mouse_1step_up_count
-	pincrease 1
-	and pdata,0x07,pdata
-	store 1,mem_mouse_1step_up_count
-	rtnne 0x07         //800ms read sensor
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BT_CONNECTED,mouse_check_statue_up
-	bbit1 UI_STATE_BLE_CONNECTED,mouse_check_statue_up
-	rtn
-
-
-
-//mosue 
-mouse_check_statue_up:
-	bpatch patch1d_6,mem_patch1d
-	fetch 1,mem_mouse_2step_up_count
-	nrtn blank
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_STATUE_UP_FLAG
-	fetch 1,mem_sensor_squal_reg
-	call sensor_read
-	store 1,mem_sensor_iqc
-	sub pdata,0x10,null
-	branch mouse_statue_up_timer_init,positive
-	jam 0,mem_mouse_2step_up_count
-	rtn
-
-mouse_statue_up_timer_init:
-	jam 30,mem_mouse_2step_up_count
-	rtn
-mouse_statue_up_timer:
-	arg mem_mouse_2step_up_count,regc
-	arg mouse_statue_up,regb
-	branch timer_single_step
-
-mouse_statue_up:
-	fetch 1,mem_sensor_squal_reg
-	call twspi_read
-	sub pdata,0x10,null
-	nrtn positive
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_STATUE_UP_FLAG
-	arg MOUSE_STATUE_UP_FLAG,queue
-	call mouse_disable_function_flag
-	jam 0,mem_lpm_mult
-	jam 30,mem_mouse_statue_led_timer         // led on3s
-	call mouse_devce_led_off
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_STATUE_UP_THREE_LED,mouse_three_device_statue_up
-mouse_two_device_statue_up:
-	fetch 1,mem_device_flag
-	beq MODE_BT_DEVICE1,mouse_device1_led_on  		//device_1
-	beq MODE_BT_DEVICE2,mouse_device_blink_led_init		//device_2
-	rtn
-mouse_three_device_statue_up:
-	fetch 1,mem_device_flag
-	beq MODE_BT_DEVICE1,mouse_device1_led_on  		//device_1
-	beq MODE_BT_DEVICE2,mouse_device2_led_on		//device_2
-	beq MODE_BT_DEVICE3,mouse_device3_led_on		//device_3
-	rtn
-	
-mouse_device_blink_led_init:
-	fetch 1,mem_config_device1_led_gpio
-	branch mouse_led_blink
-
-
-
-mouse_statue_led_off:
-	jam 0x20,mem_lpm_mult
-	branch mouse_devce_led_off
-
-
-
-mouse_devce1_led_off:
-	fetch 1,mem_config_device1_led_gpio
-	rtneq GPIO_DISABLE
-	store 1,mem_mouse_struct_led_gpio
-	branch mouse_led_off
-
-mouse_devce2_led_off:
-	fetch 1,mem_config_device2_led_gpio
-	rtneq GPIO_DISABLE
-	store 1,mem_mouse_struct_led_gpio
-	branch mouse_led_off
-	
-mouse_devce_led_off:
-	call mouse_led_off
-	call mouse_devce1_led_off
-	call mouse_devce2_led_off
-mouse_devce3_led_off:
-	fetch 1,mem_config_device3_led_gpio
-	rtneq GPIO_DISABLE
-	store 1,mem_mouse_struct_led_gpio
-	branch mouse_led_off
-
-mouse_device1_led_on:
-	fetch 1,mem_config_device1_led_gpio
-	store 1,mem_mouse_struct_led_gpio
-	branch mouse_led_on
-mouse_device2_led_on:
-	fetch 1,mem_config_device2_led_gpio
-	store 1,mem_mouse_struct_led_gpio
-	branch mouse_led_on
-mouse_device3_led_on:
-	fetch 1,mem_config_device3_led_gpio
-	store 1,mem_mouse_struct_led_gpio
-	branch mouse_led_on
-
-
-
-mouse_polling_device:
-	bpatch patch1d_7,mem_patch1d
-	fetch 1,mem_reconn_times
-	increase -1,pdata
-	store 1,mem_reconn_times
-	fetcht 1,mem_device_flag
-	increase 1,temp
-	fetch 1,mem_device_number
-	isub temp,null
-	ncall mouse_select_device_count_clean,positive
-	storet 1,mem_device_flag
-	jam 0,mem_link_key_exists
-	call mouse_store_device_number2eeprom
-	call mouse_before_store_reconn_info
-	branch mouse_check_reconn_target
-	
-mouse_power_down:
-	call mouse_devce_led_off
-	setarg 0
-	store 8,mem_gpio_wakeup_low
-	branch lpm_hibernate
-
-
-
-
-
-
-endif
-
-
-
Index: DPI_Switch/program/app_remote_car.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_remote_car.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_remote_car.prog	(nonexistent)
@@ -1,480 +0,0 @@
-ifdef COMPILE_REMOTE_CAR
-
-remote_car_init:
-	rtn wake	
-	hfetch 1,core_gpio_sel1
-	and_into 0xf0,pdata
-	hstore 1,core_gpio_sel1
-	call keyscan_key_init
-	setarg remote_car_le_before_hibernate
-	store 2,mem_cb_before_hibernate
-	
-	setarg remote_car_process_lpm_before
-	store 2,mem_cb_before_lpm	
-	
-	setarg remote_car_scale_process_idle	
-	store 2,mem_cb_idle_process	
-	
-	setarg remote_car_scale_process_bb_event 
-	store 2,mem_cb_bb_event_process	
-	
-	setarg app_get_lpm_wake_lock
-	store 2,mem_cb_check_wakelock	
-
-	call g24_head_ptr2regc
-	setarg remote_car_g24_package_data
-	add regc,offset_24g_cb_data,contw
-	istore 2,contw
-	
-	setarg remote_car_g24_enter_lpm
-	add regc,offset_24g_cb_lpm_prepare,contw
-	istore 2,contw
-	
-	setarg remote_car_process_lpm_before
-	add regc,offset_24g_cb_lpm_before,contw
-	istore 2,contw
-
-	setarg remote_car_event_timer
-	store 2,mem_cb_event_timer
-	
-	setarg remote_car_power_off_signal
-	store 2,mem_remote_car_power_off_cb
-	
-	setarg remote_car_soft_switch_power_on_signal
-	store 2,mem_remote_car_power_standby_cb
-	
-	setarg remote_car_send_key_data
-	store 2,mem_cb_remote_car_keyscan
-	
-	bpatch patch1e_0,mem_patch1e
-	call remote_car_init_environment
-	call queue_init
-	jam 2,mem_lpm_mult
-	fetch 1,mem_remote_car_config_soft_switch_enable
-	store 1,mem_remote_car_hard_soft_switch
-	beq HARD_SWITCH, remote_car_hard_switch_power_on_signal
-	fetch 1,mem_remote_car_config_soft_switch_gpio
-	store 1,mem_ui_button_gpio
-remote_car_soft_switch_power_on_init:
-	call remote_car_ui_led_init
-	call ui_button_init
-	call ui_button_polling
-	jam POWER_STARTING,mem_remote_car_power_state
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BTN_DOWN
-	branch app_enter_hibernate
-
-
-
-remote_car_hard_switch_power_on_signal:
-	jam POWER_STANDBY,mem_remote_car_power_state
-remote_car_soft_switch_power_on_signal:
-	call remote_car_ui_led_init
-//	fetch 1,mem_remote_car_led_map
-	arg 0,rega
-	call ui_led_blink_start_global
-remote_car_connect_24g_mode:
-	branch g24_auto_pair_start
-
-remote_car_power_off_signal:	
-	branch remote_car_ui_led_init
-	
-remote_car_ui_led_init:
-	bpatch patch1e_1,mem_patch1e
-	fetch 1,mem_remote_car_config_connect_led_gpio
-	bne INVALID_PIN_NUM,remote_car_pairing_led_gpio_set
-remote_car_ui_led_init_1:
-	fetcht 1, mem_remote_car_led_map
-	branch gpio_config_output
-remote_car_pairing_led_gpio_set:
-	store 1,mem_remote_car_led_map
-	branch remote_car_ui_led_init_1
-
-
-remote_car_init_environment:
-	call g24_set_device_addr
-	fetch 2,mem_remote_car_no_data_timeout
-	store 2,mem_remote_car_no_data_timer
-	branch remote_car_get_adc_default_data
-
-remote_car_le_before_hibernate:
-//	call keyscan_scan_key
-//	fetch 2, mem_key_value_temp
-//	branch remote_car_in_enter_hibernate,blank
-//	branch app_enter_hibernate
-remote_car_in_enter_hibernate:	
-	call gpio_set_before_lpm_common
-	call remote_car_process_lpm_before
-	branch app_enter_hibernate
-
-remote_car_process_lpm_before:
-	branch keyscan_process_lpm_before
-
-remote_car_g24_enter_lpm:
-	fetch 1,mem_remote_car_24g_enter_lpm_enable
-	rtn blank
-	//do not enter lpm when condition is unallowed
-	branch g24_lpm_long_sleep
-
-remote_car_process_auto_pair_exit:
-	rtn
-
-remote_car_key_scan_process:
-	branch keyscan_key_process
-
-remote_car_scale_process_idle:
-	call remote_car_rocker_process
-	call remote_car_24g_status_process
-	branch remote_car_key_scan_process
-
-remote_car_scale_process_bb_event:
-	copy regc,pdata
-	beq BT_EVT_BUTTON_UP,app_event_button_up
-	beq BT_EVT_BUTTON_LONG_PRESSED,app_button_long_pressed
-	beq BT_EVT_24G_PAIRING_COMPLETE,remote_car_24g_pairing_complete
-	beq BT_EVT_24G_ATTEMPT_SUCCESS,remote_car_24g_attempt_success
-	beq BT_EVT_24G_ATTEMPT_FAIL,remote_car_24g_attempt_fail
-	rtn
-
-remote_car_24g_attempt_fail:
-	jam 1,mem_remote_car_24g_enter_lpm_enable
-	rtn
-
-remote_car_24g_pairing_complete:
-	jam 1,mem_remote_car_24g_enter_lpm_enable
-	jam WORK_PAIRED,mem_remote_car_24g_auto_work_step
-	jam WORK_PAIRED,mem_remote_car_24g_pair_success_flag
-	rtn
-
-remote_car_24g_attempt_success:
-	jam 1,mem_remote_car_24g_enter_lpm_enable
-	jam WORK_PAIRED,mem_remote_car_24g_auto_work_step
-	jam WORK_PAIRED,mem_remote_car_24g_pair_success_flag
-	rtn
-
-remote_car_24g_status_process:
-	fetch 1,mem_remote_car_24g_auto_work_step
-	rtneq POWER_ON
-	fetch 1,mem_remote_car_24g_status
-	rtneq WORK_PAIRED
-	jam WORK_PAIRED,mem_remote_car_24g_status
-remote_car_scale_process_paired:
-	arg 0,rega
-	branch ui_led_off_global
-remote_car_scale_process_shutdown:
-	arg 0,rega
-	call ui_led_off_global
-	call remote_car_ui_led_init
-	branch app_enter_hibernate
-	
-remote_car_event_timer:
-	call app_power_timer
-	branch remote_car_no_data_timer
-
-remote_car_no_data_timer:
-	fetch 1,mem_remote_car_config_timeout_shutdown_enable
-	rtn blank
-	arg mem_remote_car_no_data_timer,regc
-	arg remote_car_scale_process_shutdown,regb
-	branch timer_single_step_2B
-	
-////////////////////////////////////rocker/////////////////////////////
-remote_car_get_adc_default_data:
-	call remote_car_rocker_get_x
-	storet 2,mem_current_vdd_value_default_mid_x
-	call remote_car_rocker_get_y
-	storet 2,mem_current_vdd_value_default_mid_y
-	rtn
-remote_car_rocker_data_get:
-remote_car_rocker_get_x:
-	fetch 2,mem_current_vdd_value_default_mid_x
-	store 2,mem_current_vdd_value_default_mid_temp
-	call remote_car_get_adc_from_gpio6
-	call remote_car_rocker_get_value
-	store 1,mem_rocker_status
-remote_car_rocker_get_y:
-	fetch 2,mem_current_vdd_value_default_mid_y
-	store 2,mem_current_vdd_value_default_mid_temp
-	call remote_car_get_adc_from_gpio7
-	call remote_car_rocker_get_value
-	store 1,mem_rocker_status+1
-	rtn
-remote_car_rocker_get_value:
-	fetch 2,mem_current_vdd_default_range
-	copy pdata,rega
-	fetch 2,mem_current_vdd_value_default_mid_temp
-	call remote_car_rocker_mid_value_adjust
-	fetch 1,mem_rocker_work_status
-	nbranch remote_car_rocker_translate_key,blank
-	nrtn positive
-	fetcht 2,mem_current_vdd_value_default_mid_temp
-	rtn	
-remote_car_rocker_mid_value_adjust:
-	isub temp,pdata
-	branch remote_car_rocker_mid_adjust_positive,positive
-	sub pdata,0,pdata		//negative adjust
-	jam 1,mem_rocker_negative_flag
-	isub rega,null
-	rtn
-remote_car_rocker_mid_adjust_positive:
-	jam 0,mem_rocker_negative_flag
-	isub rega,null
-	rtn
-remote_car_rocker_translate_key:
-	nbranch remote_car_rocker_middle_key,positive
-	fetch 1,mem_rocker_negative_flag
-	nbranch remote_car_rocker_negative_key,blank
-remote_car_rocker_positive_key:	
-	setarg ROCKER_POSITIVE_KEY
-	rtn
-remote_car_rocker_negative_key:
-	setarg ROCKER_NEGATIVE_KEY
-	rtn
-remote_car_rocker_middle_key:
-	setarg ROCKER_MIDDLE_KEY
-	rtn
-remote_car_get_adc_from_gpio6:
-	jam 0x33,mem_adc_channel
-	branch adc_set_mode
-remote_car_get_adc_from_gpio7:
-	jam 0x34,mem_adc_channel
-	branch adc_set_mode
-
-
-remote_car_rocker_process:
-	fetch 1,mem_remote_car_config_check_way
-	rtnne CAR_REMOTE_CHECK_ROCKER	
-remote_car_read_rocker_check_start:
-	bpatch patch1e_2,mem_patch1e
-	jam 1,mem_rocker_work_status
-	call remote_car_rocker_data_get
-	fetch 2,mem_rocker_status
-	fetcht 2,mem_rocker_last_status
-	isub temp,null
-	rtn zero
-	store 2,mem_rocker_last_status
-	call remote_car_rocker_x_to_key
-	branch remote_car_rocker_y_to_key
-	
-remote_car_rocker_x_to_key:
-	fetch 1,mem_rocker_x_status
-	branch rocker_to_queue_set_0,blank
-	increase -1,pdata
-	branch remote_car_rocker_to_key
-remote_car_rocker_y_to_key:
-	fetch 1,mem_rocker_y_status
-	branch rocker_to_queue_set_2,blank
-	increase 1,pdata
-remote_car_rocker_to_key:
-	copy pdata,queue
-	arg 1,rega
-	branch remote_car_send_key_data
-	
-rocker_to_queue_set_0:
-	arg 0,queue
-	arg 0,rega
-	branch remote_car_send_key_data
-rocker_to_queue_set_2:
-	arg 2,queue
-	arg 0,rega
-	branch remote_car_send_key_data
-	
-remote_car_send_key_data:
-	copy rega,pdata
-	store 1,mem_remote_key_status
-	fetch 1,mem_remote_car_24g_auto_work_step
-	beq POWER_ON,g24_auto_pair_start
-	fetch 2,mem_remote_car_no_data_timeout
-	store 2,mem_remote_car_no_data_timer
-	fetch 1,mem_remote_key_status
-	branch remote_car_key_is_release,blank
-remote_car_key_is_press:
-	bpatch patch1e_3,mem_patch1e
-	arg 0,rega
-	call ui_led_on_global
-remote_car_attack_key_press:
-	copy queue,pdata
-	beq 4,remote_car_send_attack_key4_press
-	beq 5,remote_car_send_attack_key5_press
-	beq 6,remote_car_send_fire_key6_press
-//	fetch 1,mem_remote_car_config_check_way
-//	rtneq CAR_REMOTE_CHECK_ROCKER
-remote_car_motor_key_press:
-	call remote_car_device_layout_select
-	beq CONTROL_F_B_TEN,remote_car_single_motor_key_is_press
-	beq CONTROL_L_R_TEN,remote_car_double_motor_key_press
-	beq CONTROL_L_R_LR,remote_car_single_motor_key_is_press
-	rtn
-	
-remote_car_single_motor_key_is_press:
-	copy queue,pdata
-	beq 0,remote_car_send_motor1_key0_press
-	beq 1,remote_car_send_motor1_key1_press
-	beq 2,remote_car_send_motor2_key2_press
-	beq 3,remote_car_send_motor2_key3_press
-	rtn
-	
-remote_car_double_motor_key_press:
-	copy queue,pdata
-	beq 0,remote_car_send_double_motor_key0_press
-	beq 1,remote_car_send_double_motor_key1_press
-	beq 2,remote_car_send_double_motor_key2_press
-	beq 3,remote_car_send_double_motor_key3_press
-	rtn
-
-remote_car_key_is_release:
-	bpatch patch1e_4,mem_patch1e
-	arg 0,rega
-	call ui_led_off_global
-remote_car_attack_key_release:
-	copy queue,pdata
-	beq 4,remote_car_send_attack_key4_rel
-	beq 5,remote_car_send_attack_key5_rel
-//	fetch 1,mem_remote_car_config_check_way
-//	rtneq CAR_REMOTE_CHECK_ROCKER
-remote_car_motor_key_release:
-	call remote_car_device_layout_select
-	beq CONTROL_F_B_TEN,remote_car_single_motor_key_rel
-	beq CONTROL_L_R_TEN,remote_car_double_motor_key_rel
-	beq CONTROL_L_R_LR,remote_car_single_motor_key_rel
-	rtn
-
-remote_car_device_layout_select:
-	fetch 1,mem_remote_car_config_layout
-	fetcht 1,mem_remote_car_config_key_map
-	ior temp,pdata
-	rtn
-
-//cross key,control front-back motor layout
-remote_car_send_motor1_key0_press:	//front
-	jam MOTOR_POSITIVE,mem_remote_car_24g_motor1_payload
-	branch remote_car_send_key
-remote_car_send_motor1_key1_press:	//back
-	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor1_payload
-	branch remote_car_send_key
-remote_car_send_motor2_key2_press:	//left
-	jam MOTOR_POSITIVE,mem_remote_car_24g_motor2_payload
-	branch remote_car_send_key
-remote_car_send_motor2_key3_press:	//right
-	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor2_payload
-	branch remote_car_send_key
-
-//cross key,control left-right motor layout
-remote_car_send_double_motor_key0_press:	//front
-	jam MOTOR_POSITIVE,mem_remote_car_24g_motor1_payload
-	jam MOTOR_POSITIVE,mem_remote_car_24g_motor2_payload
-	branch remote_car_send_key
-remote_car_send_double_motor_key1_press:	//back
-	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor1_payload
-	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor2_payload
-	branch remote_car_send_key
-remote_car_send_double_motor_key2_press:	//left
-	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor1_payload
-	jam MOTOR_POSITIVE,mem_remote_car_24g_motor2_payload
-	branch remote_car_send_key
-remote_car_send_double_motor_key3_press:	//right
-	jam MOTOR_POSITIVE,mem_remote_car_24g_motor1_payload
-	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor2_payload
-	branch remote_car_send_key
-	
-//attack motor control
-remote_car_send_attack_key4_press:	//attack left
-	jam MOTOR_POSITIVE,mem_remote_car_24g_motor3_payload
-	branch remote_car_send_key
-remote_car_send_attack_key5_press:	//attack right
-	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor3_payload
-	branch remote_car_send_key
-
-remote_car_send_fire_key6_press:
-	jam 0x01,mem_remote_car_24g_fire_send_payload
-	branch remote_car_send_attack
-
-remote_car_single_motor_key_rel:
-	copy queue,pdata
-	beq 0,remote_car_send_motor1_key0_rel
-	beq 1,remote_car_send_motor1_key1_rel
-	beq 2,remote_car_send_motor2_key2_rel
-	beq 3,remote_car_send_motor2_key3_rel
-	rtn
-
-remote_car_double_motor_key_rel:
-	copy queue,pdata
-	beq 0,remote_car_send_double_motor_key0_rel
-	beq 1,remote_car_send_double_motor_key1_rel
-	beq 2,remote_car_send_double_motor_key2_rel
-	beq 3,remote_car_send_double_motor_key3_rel
-	rtn
-
-remote_car_send_motor1_key0_rel:
-remote_car_send_motor1_key1_rel:
-	jam MOTOR_STOP,mem_remote_car_24g_motor1_payload
-	branch remote_car_send_key
-remote_car_send_motor2_key2_rel:
-remote_car_send_motor2_key3_rel:
-	jam MOTOR_STOP,mem_remote_car_24g_motor2_payload
-	branch remote_car_send_key
-	
-remote_car_send_double_motor_key0_rel:
-remote_car_send_double_motor_key1_rel:
-remote_car_send_double_motor_key2_rel:
-remote_car_send_double_motor_key3_rel:
-	jam MOTOR_STOP,mem_remote_car_24g_motor1_payload
-	jam MOTOR_STOP,mem_remote_car_24g_motor2_payload
-	branch remote_car_send_key
-	
-remote_car_send_attack_key4_rel:
-remote_car_send_attack_key5_rel:
-	jam MOTOR_STOP,mem_remote_car_24g_motor3_payload
-	branch remote_car_send_key
-
-remote_car_send_key:
-	arg mem_remote_car_24g_motor_packet,rega
-	branch queue_push
-remote_car_send_attack:
-	arg mem_remote_car_24g_fire_packet,rega
-	branch queue_push
-
-remote_car_g24_package_data:
-	fetch 1,mem_remote_car_24g_pair_success_flag
-	beq WORK_PAIRED,remote_car_g24_send_empty
-	arg mem_remote_car_24g_tx_temp,rega
-	call queue_pop
-	nbranch remote_car_moto_data,user
-remote_car_g24_package_data_continue:
-	arg mem_remote_car_24g_tx_temp,contr
-	ifetch 1,contr
-	copy pdata,rega
-	arg mem_remote_car_24g_tx_temp+1,regb
-	//rega: length
-	//regb: tx buffer
-	rtn
-	
-remote_car_g24_send_empty:
-	jam 0,mem_remote_car_24g_pair_success_flag
-	enable user
-	arg 1,rega
-	arg mem_remote_car_empty_packet,regb
-	rtn
-	
-remote_car_moto_data:
-	fetch 1,mem_remote_car_24g_tx_temp+3	//cmd
-	beq CAR_CMD_L_R_MOTOR_CONTROL,remote_car_moto_data_next
-	beq CAR_CMD_F_B_MOTOR_CONTROL,remote_car_moto_data_next
-	rtn
-remote_car_moto_data_next:
-	fetch 1,mem_remote_car_24g_tx_temp+6	//data moto1
-	nbranch remote_car_moto_data_enable_user,blank
-	fetch 1,mem_remote_car_24g_tx_temp+8	//data moto2
-	nbranch remote_car_moto_data_enable_user,blank
-	fetch 1,mem_remote_car_24g_tx_temp+10	//data moto3
-	nbranch remote_car_moto_data_enable_user,blank
-	rtn
-remote_car_moto_data_enable_user:
-	enable user
-	branch remote_car_g24_package_data_continue
-
-endif
-
-
-
-
Index: DPI_Switch/program/app_shutter.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_shutter.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_shutter.prog	(nonexistent)
@@ -1,1170 +0,0 @@
-
-ifdef COMPILE_SHUTTER
-
-shutter_init:
-	rtn wake	
-	hfetch 1,core_gpio_sel1
-	and_into 0xfc,pdata
-	hstore 1,core_gpio_sel1
-	setarg shutter_le_before_hibernate
-	store 2,mem_cb_before_hibernate
-
-	setarg shutter_process_lpm_before
-	store 2,mem_cb_before_lpm
-	
-	setarg app_enter_hibernate
-	store 2,mem_cb_discovry_timeout
-	
-	setarg shutter_process_idle
-	store 2,mem_cb_idle_process
-		
-	setarg shutter_process_bb_event 
-	store 2,mem_cb_bb_event_process
-
-	setarg shutter_le_scale_lpm_lock
-	store 2,mem_cb_check_wakelock
-	
-	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
-
-	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
-
-	call le_modified_name
-	call shutter_load_bluetooth_config_by_user_config
-	call shutter_init_bluetooth_config
-	call shutter_init_param	
-	call keyscan_key_init
-	call shutter_load_buffer_config_form_DataRom
-	call queue_init
-	call ui_led_init_global
-	call shutter_load_bluetooth_config
-	call shutter_load_bluetooth_config_by_eeprom
-	
-	bpatch patch1e_5,mem_patch1e
-	call classic_shutter_load_reconn_info
-	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
-
-/**************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
-/**************classic shutter event*****************/
-	beq BT_EVT_BB_CONNECTED,classic_shutter_process_baseband_connect
-	beq BT_EVT_BB_DISCONNECTED,classic_shutter_process_baseband_disconnect
-	beq BT_EVT_RECONN_FAILED,classic_shutter_process_reconnect_failed
-	beq BT_EVT_SETUP_COMPLETE,classic_shutter_process_setup_complete
-	beq BT_EVT_HID_CONNECTED,classic_shutter_process_hid_connect
-	beq BT_EVT_HID_DISCONNECTED,classic_shutter_process_hid_disconnect
-	beq BT_EVT_HID_HANDSHAKE,classic_shutter_process_hid_handshake
-	beq BT_EVT_RECONN_PAGE_TIMEOUT,classic_shutter_process_reconnect_page_timeout
-	beq BT_EVT_VIRTUAL_CABLE_UNPLUG,classic_shutter_process_virtual_cable_unplug
-	beq BT_EVT_REMOTE_UNSNIFF,classic_shutter_process_remote_unsniff
-	beq BT_EVT_STORE_NVRAM,classic_shutter_process_store_reconnect_information
-/**************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,shutter_process_soft_swtich_button_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
-/****************************/
-
-
-/******************classic shutter event**********************/
-classic_shutter_process_baseband_connect:
-	jam 0,mem_classic_shutter_hid_disconn_count
-	jam 0,mem_classic_shutter_cable_unplug_conut	
-	rtn
-
-
-classic_shutter_process_baseband_disconnect:
-	call classic_shutter_disconnect_clear_flag
-	branch classic_shutter_process_reconnect_failed
-
-classic_shutter_disconnect_clear_flag:
-	jam APP_HANDSHAKE_NULL,mem_app_handshake_flag
-	jam 0,mem_hid_handshake_timer_count
-	jam 0,mem_unsniff2sniff_timer_count
-	jam 0,mem_classic_shutter_cable_unplug_conut
-	jam 0,mem_classic_shutter_hid_disconn_count
-	branch queue_init
-
-
-classic_shutter_process_reconnect_failed:
-	call app_disconn_reason_clear
-	branch shutter_start_bluetooth_discovery
-
-
-classic_shutter_process_setup_complete:
-	call shutter_stop_bluetooth_discovery
-	branch app_led_stop_blink
-
-
-classic_shutter_process_hid_connect:
-	setarg HID_HANDSHAKE_TIMEOUT
-	store 1,mem_hid_handshake_timer_count
-	rtn	
-
-
-classic_shutter_process_hid_disconnect:
-	jam 0,mem_classic_shutter_cable_unplug_conut	
-	setarg FLAG_SHUTTER_HID_DISCONN_TIMEOUT
-	store 1,mem_classic_shutter_hid_disconn_count
-	rtn
-
-
-classic_shutter_process_hid_handshake:
-	fetch 1,mem_app_handshake_flag
-	rtneq APP_HANDSHAKE_DONE
-	jam APP_HANDSHAKE_DONE,mem_app_handshake_flag
-	call app_lpm_mult_enable
-	call app_store_reconn_info
-	call shutter_stop_bluetooth_discovery
-	call app_led_off
-	branch app_bt_enter_sniff
-
-
-classic_shutter_process_reconnect_page_timeout:
-	branch classic_shutter_process_reconnect_failed
-
-
-classic_shutter_process_virtual_cable_unplug:
-	setarg FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
-	store 1,mem_classic_shutter_cable_unplug_conut
-	rtn
-
-
-classic_shutter_process_remote_unsniff:
-	branch app_start_auto_sniff
-
-
-/***************classic shutter store reconn info***********************/
-classic_shutter_process_store_reconnect_information:
-	arg NVRAM_EEPROM_OFFSET,regb
-	fetch 1,mem_nv_data_number
-	mul32 pdata,34,temp
-	fetch 2,mem_nv_data_ptr
-	copy pdata,rega
-	branch iicd_write_eep_data
-
-classic_shutter_load_reconn_info:
-	arg NVRAM_EEPROM_OFFSET,regb
-	fetch 1,mem_shutter_bluetooth_type
-	rtnbit0 CLASSIC_SHUTTER
-	fetch 1,mem_nv_data_number
-	rtn blank
-	mul32 pdata,34,temp
-	fetch 2,mem_nv_data_ptr
-	copy pdata,rega
-	branch iicd_read_eep_data
-/**************************************/
-
-/******************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
-	fetch 8,mem_ble_shutter_interval_min
-	store 8,mem_le_interval_min
-	call app_lpm_mult_enable
-	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
-/**************************************/
-
-/******************soft swtich event**********************/
-shutter_process_soft_swtich_button_long_press:
-	branch ui_soft_switch_botton_long_press
-
-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_BT_CONNECTED,app_led_off
-	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
-/************************************/
-/**************classic shutter timer**********************/
-	call classic_shutter_check_unplug_timer
-	call classic_shutter_hid_handshake_timer
-	call classic_shutter_hid_disconn_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
-	bbit1 UI_STATE_BT_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
-/************************************/
-
-/**************classic shutter timer**********************/
-classic_shutter_check_unplug_timer:
-	arg mem_classic_shutter_cable_unplug_conut,regc
-	arg classic_shutter_unplug_timeout,regb
-	branch timer_single_step
-	
-classic_shutter_unplug_timeout:
-	fetch 1,mem_CONTROL_tasks
-	set1  L2CAP_DISCONNECT_INTERRUPT, pdata
-	set1  L2CAP_DISCONNECT_CONTROL, pdata
-	store 1,mem_CONTROL_tasks	
-	rtn
-
-classic_shutter_hid_handshake_timer:
-	arg mem_hid_handshake_timer_count,regc
-	arg classic_shutter_process_hid_handshake,regb
-	branch timer_single_step
-
-classic_shutter_hid_disconn_timer:
-	arg mem_classic_shutter_hid_disconn_count,regc
-	arg app_bt_disconnect,regb
-	branch timer_single_step
-
-/************************************/
-
-/**************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:
-	branch keyscan_process_lpm_before
-
-shutter_le_before_hibernate:
-	call gpio_set_before_lpm_common
-	branch shutter_process_lpm_before
-
-//////////////////////////////////////////////////////////////////////////////////////////
-
-
-/****************shutter bluetooth control**********************/
-shutter_stop_bluetooth_discovery:
-	fetch 1,mem_shutter_bluetooth_type
-	bbit1 CLASSIC_SHUTTER,classic_shutter_stop_bluetooth_discovery
-	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
-	
-classic_shutter_stop_bluetooth_discovery:
-	fetch 2,mem_classic_shutter_connect_timeout
-	store 2,mem_shutter_sleep_timeout
-	store 2,mem_shutter_sleep_timer
-	branch app_bt_stop_discovery
-
-shutter_start_bluetooth_discovery:
-	fetch 1,mem_shutter_soft_switch_power_state
-	rtnne SS_STATE_POWER_ON
-	fetch 1,mem_shutter_bluetooth_type
-	bbit1 CLASSIC_SHUTTER,classic_shutter_start_discovery
-	bbit1 BLE_SHUTTER,ble_shutter_start_discovery
-	rtn
-	
-classic_shutter_start_discovery:
-	fetch 2,mem_classic_shutter_discovery_timeout,
-	store 2,mem_shutter_sleep_timeout
-	store 2,mem_shutter_sleep_timer
-	branch app_bt_start_discovery_short
-
-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_start_reconnect:
-	fetch 1,mem_shutter_soft_switch_power_state
-	rtnne SS_STATE_POWER_ON
-	fetch 1,mem_shutter_bluetooth_type
-	bbit1 CLASSIC_SHUTTER,classic_shutter_start_reconnect
-	bbit1 BLE_SHUTTER,ble_shutter_start_reconnect
-	rtn
-
-classic_shutter_start_reconnect:
-	call app_check_reconn_target
-	branch shutter_start_bluetooth_discovery,blank
-	call app_led_on	
-	call app_bt_stop_discovery
-	branch app_bt_start_reconnect	
-
-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_dav_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
-
-//pdata:adv interval value
-shutter_ble_adv_interval_set:
-	store 2,mem_lpm_interval
-	increase -4,pdata
-	store 2,mem_le_adv_interval
-	rtn
-
-
-shutter_disconnect_current_connection:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
-	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
-	branch shutter_stop_bluetooth_discovery
-/**************************************/
-
-/******************classic shutter load reconnect*********************/
-app_check_reconn_target:
-	fetch 1,mem_nv_data_number
-	copy pdata,loopcnt
-	fetch 2,mem_nv_data_ptr
-	copy pdata,rega
-app_check_reconn_target_loop:
-	ifetch 2,rega
-	beq 0,found_reconn_device
-	increase NV_DATA_LEN,rega
-	loop app_check_reconn_target_loop
-	branch enable_blank
-
-found_reconn_device:
-	ifetch 6,contr
-	store 6,mem_hci_plap
-	increase 10,contr
-	arg mem_link_key,contw
-	call  memcpy16
-	call check_link_key_load
-	branch disable_blank
-	
-/**************************************/
-
-/////////////////////////////////////////////////////////////////////////
-//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_BT_CONNECTED,shutter_check_bt_data_enable
-	bbit1 UI_STATE_BLE_CONNECTED,shutter_check_ble_data_enable
-	rtn
-
-shutter_check_bt_data_enable:
-	fetch 1,mem_hid_interrupt_state
-	rtnne 0x3f	
-	branch enable_user
-
-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_BT_CONNECTED
-	rtnbit1 UI_STATE_BLE_CONNECTED
-	branch enable_user
-/////////////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////////////////////////////////////////
-shutter_change_bluetooth_status_bt_disconn:
-	fetch 1,mem_shutter_bluetooth_type
-	bbit1 CLASSIC_SHUTTER,classic_shutter_change_bluetooth_status_bt_disconn
-	bbit1 BLE_SHUTTER,ble_shutter_change_bluetooth_status_bt_disconn
-	rtn
-	
-classic_shutter_change_bluetooth_status_bt_disconn:
-	fetch 1,mem_scan_mode
-	rtnne 0x03
-	branch shutter_start_reconnect
-	
-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
-	enable user2
-	rtn
-
-//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
-	bbit1 UI_STATE_BT_CONNECTED,pop_queue_to_classic_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
-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
-
-
-pop_queue_to_classic_data:
-	call l2cap_malloc_is_fifo_nearly_full
-	nrtn blank
-	call queue_pop_one_byte
-	nrtn user
-	pincrease -1
-	mul32 pdata,SHUTTER_CLASSIC_DATA_BUFFER,pdata
-	arg mem_classic_data_buffer1,temp
-	iadd temp,contr
-	ifetch 5,contr
-	store 5,mem_classic_data_buffer
-classic_send_hid_data:
-	fetch 1,mem_classic_data_buffer
-	copy pdata,rega
-	call hid_malloc_tx_buff
-	fetch 2,mem_hid_int_remote_cid
-	istore 2,contw
-	setarg 0xa1
-	istore 1,contw
-	fetch 4,mem_classic_data_buffer + 1
-	istore 9,contw
-	rtn
-
-///////////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:
-	setarg 0x02
-	store 1,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
- 	call le_set_config_fixed_ltk
-	call le_set_fixed_ltk
-	call le_set_justwork
-	branch le_set_config_read_authentication
-///////////////////////////////////////
-
-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,contr
-	call memcpy_fast
-	arg BT_KEY_VALUE_LIST_SIZE,loopcnt
-	arg mem_classic_data_buffer1,contw
-	arg CLASSIC_SHUTTER_KEY_VALUE_LIST,contr
-	branch memcpy_fast	
-
-
-shutter_load_ble_gatt_form_DataRom:
-	arg BLE_GATT_LIST_SIZE,loopcnt
-	arg BLE_SHUTTER_GATT_LIST,contr
-	branch memcpy_fast
-
-
-shutter_load_bt_sdp_form_DataRom:
-	arg BT_SDP_LIST_SIZE,loopcnt
-	arg CLASSIC_SHUTTER_SDP_LIST,contr
-	branch memcpy_fast
-	
-
-///////////////////////////////gpio config////////////////////////////////////
-shutter_init_bluetooth_config:
-	call shutter_check_load_config_flag
-	nrtn user
-	fetch 1,mem_shutter_config_select_gpio1
-	call shutter_init_bluetooth_config_gpio_input
-	fetch 1,mem_shutter_config_select_gpio2
-	call shutter_init_bluetooth_config_gpio_input
-	fetch 1,mem_shutter_config_select_gpio3
-	branch shutter_init_bluetooth_config_gpio_input
-	
-shutter_init_bluetooth_config_gpio_input:
-	rtn blank
-	or pdata,0x80,temp
-	branch gpio_config_input_nowake
-	
-
-shutter_load_bluetooth_config:
-	call shutter_check_load_config_flag
-	nrtn user
-	call shutter_load_bluetooth_config_label
-	branch shutter_load_bluetooth_config_by_otp
-
-shutter_load_bluetooth_config_label:
-	arg 0,rega
-	fetch 1,mem_shutter_config_select_gpio1
-	call shutter_load_bluetooth_config_read_gpio_input
-	nsetflag blank,0,rega
-	fetch 1,mem_shutter_config_select_gpio2
-	call shutter_load_bluetooth_config_read_gpio_input
-	nsetflag blank,1,rega
-	fetch 1,mem_shutter_config_select_gpio3
-	call shutter_load_bluetooth_config_read_gpio_input
-	nsetflag blank,2,rega
-	copy rega,pdata
-	store 1,mem_shutter_config_label
-	fetch 1,mem_shutter_config_size
-	imul32 rega,pdata
-	fetcht 2,mem_shutter_config_otp_base_address		//base address
-	iadd temp,pdata
-	store 2,mem_shutter_config_otp_addr
-	rtn
-
-shutter_load_bluetooth_config_read_gpio_input:
-	rtn blank
-	or pdata,0x80,temp
-	call gpio_get_bit
-	nbranch enable_blank,true
-	branch disable_blank
-	
-
-shutter_check_load_config_flag:
-	call disable_user
-	fetch 1,mem_shutter_config_user_size
-	nrtn blank
-	fetch 1,mem_shutter_config_enable
-	rtn blank
-	branch enable_user
-
-
-shutter_load_bluetooth_config_by_otp:
-	call otp_enable_chgpump
-	fetch 2,mem_shutter_config_otp_addr
-	arg mem_shutter_config_data_temp,rega
-	fetcht 1,mem_shutter_config_size
-	call otpd_read_data
-	call otp_disable_chgpump
-shutter_load_bluetooth_config_store_name:
-	fetch 1,mem_shutter_config_data_temp
-	copy pdata,loopcnt
-	store 1,mem_le_name_len
-	call memcpy_fast
-	fetch 1,mem_shutter_config_data_temp
-	copy pdata,loopcnt
-	store 1,mem_local_name_length
-	call memcpy_fast
-	ifetch 1,contr
-	store 1,mem_shutter_key_num
-	ifetch 1,contr
-	store 1,mem_shutter_hard_soft_switch_case
-	rtn
-
-
-shutter_load_bluetooth_config_by_eeprom:
-	fetch 1,mem_shutter_bluetooth_type
-	rtnbit0 CLASSIC_SHUTTER
-	arg 3,temp
-	fetch 2,mem_shutter_config_eeprom_offset_addr
-	copy pdata,regb
-	arg mem_shutter_config_eeprom_start_flag,rega
-	call iicd_read_eep_data
-	fetcht 2,mem_shutter_config_eeprom_start_flag
-	setarg SHUTTER_EEPROM_CONFIG_CRC
-	isub temp,null
-	nrtn zero
-	fetch 1,mem_shutter_config_user_size
-	rtn blank
-	copy pdata,temp
-	fetch 2,mem_shutter_config_eeprom_offset_addr
-	add pdata,3,regb
-	arg mem_shutter_config_data_temp,rega
-	call iicd_read_eep_data
-	branch shutter_store_config
-
-shutter_load_bluetooth_config_by_user_config:
-	fetch 2,mem_shutter_config_user_otp_address
-	rtn blank
-	call otp_enable_chgpump
-	arg 1,temp
-	arg mem_shutter_config_user_size,rega
-	call otpd_read_data
-	
-	fetch 1,mem_shutter_config_user_size
-	rtn blank
-	
-	fetch 2,mem_shutter_config_user_otp_address
-	pincrease 1
-	arg mem_shutter_config_data_temp,rega
-	fetcht 1,mem_shutter_config_user_size
-	call otpd_read_data
-	call otp_disable_chgpump
-shutter_store_config:
-	call shutter_load_bluetooth_config_store_name
-shutter_load_bluetooth_config_custom:
-	ifetch 2,contr
-	rtn blank
-	copy pdata,contw
-	ifetcht 1,contr
-	copy temp,loopcnt
-	call memcpy
-	branch shutter_load_bluetooth_config_custom
-///////////////////////////////////////////////////////////////////
-
-//////////////////////////random mac address//////////////////////////////
-shutter_random_mac_addr:
-	fetch 1,mem_shutter_bluetooth_type
-	rtnbit0 CLASSIC_SHUTTER
-	fetch 2,mem_classic_shutter_random_mac_offset_addr
-	copy pdata,regb
-	arg 4,temp
-	arg mem_shutter_random_mac_data_temp,rega
-	call iicd_read_eep_data
-	fetch 1,mem_shutter_random_mac_data_temp
-	bne 1,shutter_write_random_mac_addr_to_eeprom
-shutter_write_random_mac_addr_to_eeprom:
-	setarg 1
-	store 1,mem_shutter_random_mac_data_temp
-	force 3,loopcnt
-	call generate_random_loop
-	fetch 2,mem_classic_shutter_random_mac_offset_addr
-	copy pdata,regb
-	arg 4,temp
-	arg mem_shutter_random_mac_data_temp,rega
-	call iicd_write_eep_data
-shutter_write_random_mac_addr:
-	fetch 3,mem_shutter_random_mac_data_temp + 1
-	store 3,mem_lap
-	store 3,mem_le_lap
-	rtn
-	
-/////////////////////////////////////////////////////////////////
-shutter_soft_swtich_power_on:
-	branch shutter_start_reconnect
-
-
-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
-	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*********************/
-
-
-/*************unkown function*********************/
-shutter_byteswap:
-	store 6,mem_tmp_buffer
-	fetch 1,mem_tmp_buffer
-	store 1,mem_tmp_buffer+11
-	ifetch 1,contr
-	store 1,mem_tmp_buffer+10
-	ifetch 1,contr
-	store 1,mem_tmp_buffer+9
-	ifetch 1,contr
-	store 1,mem_tmp_buffer+8
-	ifetch 1,contr
-	store 1,mem_tmp_buffer+7
-	ifetch 1,contr
-	store 1,mem_tmp_buffer+6
-	fetch 6,mem_tmp_buffer+6
-	rtn
-
-shutter_random_addr_by_otp:
-	call load_adc_init
-	fetch 1,mem_1v_adc_io_data
-	store 1,mem_le_lap
-	fetch 1,mem_5v_adc_hvin_data
-	istore 1,contw
-	fetch 1,mem_3v_adc_vinlpm_data
-	istore 1,contw
-	fetch 3,mem_le_lap
-	store 3,mem_lap
-	rtn
-
-
-
-//iic read function
-//function name:sim_iic_read_eep_data
-//input:
-//temp:the length that simulation iic want to read eeprom data
-//rega:the memmory point that simulation iic read data store
-//regb:the eeprom address offset
-//mark_eeprom_size:select 02 or other
-//output:nc
-sim_iic_read_eep_data:
-	fetch 2,mem_eeprom_base
-	iadd regb,pdata
-	byteswap pdata,pdata
-	store 2,mem_addr_mi
-	copy temp,regb
-	
-	call sim_iic_start
-	setarg 0xa0
-	call sim_iic_send_byte
-	fetch 1,mem_addr_mi
-	call sim_iic_send_byte
-	bmark1 mark_eeprom_size,sim_iic_read_eep_data_2k
-	fetch 1,mem_addr_mi + 1
-	call sim_iic_send_byte
-sim_iic_read_eep_data_2k:
-	call sim_iic_stop
-
-	call sim_iic_start
-	setarg 0xa1
-	call sim_iic_send_byte
-
-sim_iic_read_eep_data_loop:
-	call sim_iic_read_byte
-	istore 1,rega
-	increase 1,rega
-	increase -1,regb
-	nbranch sim_iic_read_eep_data_loop,zero
-	branch sim_iic_stop
-
-
-//iic write data function
-//function name:sim_iic_write_eep_data
-//input:
-//temp:the length that simulation iic want to write eeprom data
-//rega:the memmory point that simulation iic write data read
-//regb:the eeprom address
-//mark_eeprom_size:select 02 or other
-//output:nc
-sim_iic_write_eep_data:
-	byteswap regb,pdata
-	store 2,mem_addr_mi
-	copy temp,regb
-
-	call sim_iic_start
-	setarg 0xa0
-	call sim_iic_send_byte
-
-	fetch 1,mem_addr_mi
-	call sim_iic_send_byte
-	bmark1 mark_eeprom_size,sim_iic_write_eep_data_loop
-	fetch 1,mem_addr_mi + 1
-	call sim_iic_send_byte
-sim_iic_write_eep_data_loop:
-	ifetch 1,rega
-	call sim_iic_send_byte
-	increase 1,rega
-	increase -1,regb
-	nbranch sim_iic_write_eep_data_loop,zero
-	branch sim_iic_stop
-//	bmark1 mark_eeprom_size
-
-//use reg:pdata,contr,contw,loopcnt
-sim_iic_wait_ack:
-	arg 10,loopcnt
-	call sim_iic_release_sda
-	call sim_iic_scl_output_high	//scl = 1
-	call sim_iic_delay				//delay 2.5us
-sim_iic_wait_ack_loop:
-	call sim_iic_read_sda_level
-	branch sim_iic_scl_output_low,blank	//scl = 0
-	loop sim_iic_wait_ack_loop
-	branch sim_iic_scl_output_low		//scl = 0	
-
-
-//use reg:pdata,contr,contw,rega,queue
-sim_iic_ack_slave:
-	call sim_iic_scl_output_low		//scl = 0	
-	call sim_iic_sda_output_low		//sda = 0
-	call sim_iic_delay				//delay 2.5us
-	call sim_iic_scl_output_high	//scl = 1
-	call sim_iic_delay				//delay 2.5us
-	branch sim_iic_scl_output_low	//scl = 0	
-
-
-//output:pdata receive byte data
-//use reg:pdata,contr,contw,loopcnt,regc,rega
-sim_iic_read_byte:
-	arg 8,loopcnt
-	arg 0,regc
-	call sim_iic_release_sda
-sim_iic_read_byte_loop:
-	call sim_iic_scl_output_high	//scl = 1
-	call sim_iic_delay				//delay 2.5us
-	lshift regc,regc	
-	call sim_iic_read_sda_level
-	iadd regc,regc
-	call sim_iic_delay				//delay 2.5us
-	call sim_iic_scl_output_low		//scl = 0	
-	loop sim_iic_read_byte_loop
-	call sim_iic_ack_slave
-	copy regc,pdata
-	rtn
-
-//input:pdata send byte data
-//use reg:pdata,contr,contw,loopcnt,regc,rega
-sim_iic_send_byte:
-	arg 8,loopcnt
-	copy pdata,regc
-	call sim_iic_scl_output_low		//scl = 0	
-sim_iic_send_byte_loop:
-	isolate1 7,regc
-	call sim_iic_sda_output_high,true	//sda = 1
-	ncall sim_iic_sda_output_low,true	//sda = 0
-	lshift regc,regc
-	call sim_iic_delay				//delay 2.5us
-	call sim_iic_scl_output_high	//scl = 1
-	call sim_iic_delay				//delay 2.5us
-	call sim_iic_scl_output_low		//scl = 0	
-	call sim_iic_delay				//delay 2.5us
-	loop sim_iic_send_byte_loop
-	branch sim_iic_wait_ack
-
-
-//use reg:pdata,contr,contw,rega
-sim_iic_start:
-	call sim_iic_sda_output_high	//sda = 1
-	call sim_iic_scl_output_high	//scl = 1
-	call sim_iic_delay				//delay 2.5us
-	call sim_iic_sda_output_low		//sda = 0
-	call sim_iic_delay				//delay 2.5us
-	branch sim_iic_scl_output_low		//scl = 0
-
-
-//use reg:pdata,contr,contw,rega
-sim_iic_stop:
-	call sim_iic_sda_output_low		//sda = 0
-	call sim_iic_scl_output_high	//scl = 1
-	call sim_iic_delay				//delay 2.5us
-	call sim_iic_sda_output_high	//sda = 1
-	branch sim_iic_delay				//delay 2.5us
-
-
-//scl = 1
-sim_iic_scl_output_high:
-	enable user
-	fetch 1,SIM_IIC_SCL_GPIO_NUM
-	branch sim_iic_config_gpio
-
-//scl = 0
-sim_iic_scl_output_low:
-	disable user
-	fetch 1,SIM_IIC_SCL_GPIO_NUM
-	branch sim_iic_config_gpio
-
-//sda = 1
-sim_iic_sda_output_high:
-	enable user
-	fetch 1,SIM_IIC_SDA_GPIO_NUM
-	branch sim_iic_config_gpio
-
-//sda = 0
-sim_iic_sda_output_low:
-	disable user
-	fetch 1,SIM_IIC_SDA_GPIO_NUM
-	branch sim_iic_config_gpio
-
-//input:pdata the gpio number
-//input:user flag, if enable user,config gpio output high level; if disable user, config gpio output low level
-//use reg:pdata,contr,contw,queue,rega
-sim_iic_config_gpio:
-	and pdata,0x07,queue
-	rshift3 pdata,pdata
-	arg core_gpio_oe0,temp
-	iadd temp,temp
-	ifetch 1,temp
-	qset1 pdata
-	istore 1,temp
-	increase 4,temp
-	ifetch 1,temp
-	qsetflag user,pdata
-	istore 1,temp
-	rtn
-
-
-sim_iic_release_sda:
-	fetch 1,SIM_IIC_SDA_GPIO_NUM
-	and pdata,0x07,queue
-	rshift3 pdata,pdata
-	arg core_gpio_oe0,temp
-	iadd temp,temp
-	ifetch 1,temp
-	qset0 pdata
-	istore 1,temp
-	rtn	
-
-//get sda level
-//output:if sda high level ,pdata is 1;if sda low level ,pdata is 0
-//use reg:pdata,contr,contw,queue,rega,temp
-sim_iic_read_sda_level:
-	nop 4
-	fetch 1,SIM_IIC_SDA_GPIO_NUM
-	and pdata,0x07,queue
-	rshift3 pdata,pdata
-	arg core_gpio_in,temp
-	iadd temp,temp
-	setarg 0
-	ifetcht 1,temp
-	qisolate1 temp
-	setflag true,0,pdata
-	rtn	
-
-//delay 2.5us
-sim_iic_delay:
-//	nop 1
-	rtn
-
-/**********************************/
-
-
-else
-        branch assert
-	
-endif
Index: DPI_Switch/program/app_usb.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_usb.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/app_usb.prog	(nonexistent)
@@ -1,997 +0,0 @@
-
-usb_isr:
-	bpatch patch1e_6,mem_patch1e
-	hfetch 1,core_usb_status
-	isolate1 7,pdata
-	call usb_init,true
-	call usb_nak_state_judge
-	hfetch 1,core_usb_status
-	store 1,mem_usb_status
-	hfetch 1,core_usb_fifo_empty
-	store 1,mem_usb_fifo_empty
-	hstore 1,core_usb_fifo_empty
-	pinvert
-	fetcht 1,mem_usb_tx_wait
-	iand temp,pdata
-	store 1,mem_usb_tx_wait
-	jam 0xe0,core_usb_status
-	fetch 1,mem_usb_fifo_empty
-	compare 0x1,pdata,0x1
-	call usb0_fifo_empty,true
-	fetch 1,mem_usb_status	
-	compare 0x1,pdata,0x1  
-	call usb_status1,true
-	call usb_tx
-	branch usb_nak_state
-
-usb_init:
-	bpatch patch1e_7,mem_patch1e
-	call usb_init_param
-	jam 0x00,core_usb_config
-ifndef SIM
-	nop 10000
-endif
-	jam 0xc0,core_usb_trig
-	hfetch 2,core_clkoff
-	set0 CLOCK_OFF_USB,pdata
-	hstore 2,core_clkoff
-	jam 0x3c,core_usb_config
-	jam 0xff,core_usb_status
-	jam 0xff,core_usb_fifo_empty
-	jam 0,core_usb_addr
-	jam DEV_DEFAULT,mem_usb0_state
-	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,true
-	rtn
-
-
-usb_nak_state:
-	arg 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_mem_devicedesc_init:
-	arg mem_devicedesc,contw
-	setsect 0,0x11212
-	setsect 1,0x8000
-	setsect 2,0x0
-	setsect 3,0x10000
-	istore 9,contw
-	setsect 0,0x22412
-	setsect 1,0x8604
-	setsect 2,0x1000
-	setsect 3,0x8
-	istore 9,contw
-	setsect 0,0x1
-	istore 1,contw
-	rtn
-	
-usb_init_param:
-	jam 2,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
-	setarg HID_KBDATA_ADDR
-	store 2,mem_hidreportdesc_kb
-	setarg HID_MSDATA_ADDR
-	store 2,mem_hidreportdesc_m
-	arg mem_confdesc,contw
-	arg HID_CONFDATA_ADDR,contr
-	call memcpy64
-	fetch 1,mem_usb_tx_interval
-	ncall usb_tx_interval_config,blank
-	branch usb_mem_devicedesc_init
-	
-usb_tx_interval_config:
-	store 1,mem_confdesc+34
-	store 1,mem_confdesc+59
-	rtn
-usb_nak_state_judge:
-	hfetch 1,core_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 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
-    	
-usb0_fifo_empty:
-	jam 0x1,core_usb_fifo_empty
-	branch usb0_tx
-
-usb_rx_no_data:
-	fetch 1,mem_usb_status
-	bbit1 USB_STATUS_SETUP,usb_class_type
-	rtn
-
-usb_rx_read:
-	hfetch 1,core_usb_ep
-	istore 1,contw
-	loop usb_rx_read
-	rtn
-
-usb_status1:
-	bpatch patch1f_0,mem_patch1f
-	jam 0x11,core_usb_status
-	hfetch 1,core_usb_ep_len
-	store 1,mem_usb_read_len
-	copy pdata,loopcnt
-	branch usb_rx_no_data,blank
-	arg mem_usb_setup,contw
-	call usb_rx_read
-	fetch 1,mem_usb_read_len
-	sub pdata,7,null
-	rtn positive
-usb_class_type:
-	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_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:
-	hfetch 1,core_usb_stall
-	set1 0,pdata
-	hstore 1,core_usb_stall
-	branch usb0_reply_zerolen
-	
-usb0_reply_zerolen:
-	jam 0x40,core_usb_clear
-	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:
-	bpatch patch1f_1,mem_patch1f
-	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:	
-	arg mem_confdesc+19,rega
-	ifetch 1,rega
-	iforce regb
-	branch usb0_respond
-//class_descriptor hid_descriptor--mouse 
-dsc_hid_info_interface1:	
-	arg mem_confdesc+44,rega
-	ifetch 1,rega
-	iforce regb
-	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:
-	hfetch 1,core_usb_addr
-	ncall usb0_set_addr,blank
-	jam 0,mem_usb_set_high_addr_flag
-	rtn
-usb0_set_addr:
-	hfetch 1,core_usb_addr
-   	set1 7,pdata
-	hstore 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
-	fetch 2,mem_hidreportdesc_kb
-	copy pdata,rega
-//	arg mem_hidreportdesc_kb,rega
-	branch usb0_respond_length
-dsc_hid_report_info0:
-	jam 1,mem_usb_device_enumeration_endflag
-	jam USB_GOT_REPORT_REQ,mem_usb_state
-	fetch 2,mem_hidreportdesc_m
-	copy pdata,rega
-//	arg mem_hidreportdesc_m,rega
-	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_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,usb_send_two_packet
-//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:
-	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 8,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:
-	fetch 1,mem_usb_setup_bValue
-	bne DEVICE_REMOTE_WAKEUP,usb0_force_stall
-	hfetch 1,core_usb_config
-	set0 7,pdata
-	hstore 1,core_usb_config
-	jam 0,mem_usb_remote_wakeup
-	jam 1,mem_usb_clear_remote_wakeup
-	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:
-	fetch 1,mem_usb_setup_bValue
-	bne DEVICE_REMOTE_WAKEUP,usb0_force_stall
-	hfetch 1,core_usb_config
-	set1 7,pdata
-	hstore 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 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
-	hstore 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:
-	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:
-	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
-	fetch 1,mem_usb_setup_bLength	//max 0x40
-	iforce loopcnt
-	arg mem_usb0_setup,contr
-	arg mem_usb0_set_report_data,contw
-	call memcpy
-	branch usb0_reply_zerolen
-	
-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:
-	ifetch 1,rega
-	iforce regb
-	increase 1,rega
-//rega=*buff,reb=size	
-usb0_respond:
-	bpatch patch1f_2,mem_patch1f
-	bmark0 mark_isstr,usb0_respond0
-	add regb,1,pdata
-	lshift pdata,pdata
-	hstore 1,core_usb_dfifo0 
-	jam 3,core_usb_dfifo0
-	fetch 1,mem_usb_setup_bLength
-	increase -2,pdata
-	rshift pdata,pdata
-	store 1,mem_usb_setup_bLength
-	beq 0,usb_no_respond_data
-usb0_respond0:
-	fetch 2,mem_usb_setup_bLength
-	isub regb,null
-	branch usb0_respond1,positive
-	copy pdata,regb	
-usb0_respond1:
-	deposit rega
-	store 2,mem_bufptr
-	deposit regb
-	store 1,mem_remain
-	branch usb0_tx
-
-usb_no_respond_data:
-	arg 0,queue
-	branch usb_trig
-
-//mem_bufptr=*buff,mem_remain=size,loopcnt=i,rega=len
-usb0_tx:
-	bpatch patch1f_3,mem_patch1f
-	fetch 1,mem_remain
-	rtn blank
-	copy pdata,loopcnt
-	sub pdata,EP0_PACKET_SIZE,null
-	branch usb0_tx_info,positive
-	arg EP0_PACKET_SIZE,loopcnt	
-usb0_tx_info:
-	fetch 1,mem_remain
-	isub loopcnt,pdata
-	store 1,mem_remain//mem_remain -= len
-	fetch 2,mem_bufptr
-	copy pdata,contr	
-usb0_tx0:
-	ifetch 1,contr
-	hstore 1,core_usb_dfifo0
-	bmark0 mark_isstr,usb0_tx1
-	jam 0,core_usb_dfifo0
-usb0_tx1:
-	loop usb0_tx0
-	copy contr,pdata
-	store 2,mem_bufptr//mem_bufptr += len
-	arg 0,queue
-	call usb_trig
-	fetch 1,mem_remain
-	nrtn blank
-	fetch 1,mem_usb_state
-	rtnne USB_GOT_REPORT_REQ
-	jam USB_CONNECTED,mem_usb_state
-	rtn
-
-
-usb_tx_ep1:
-	arg core_usb_dfifo1,rega
-	arg 1,queue
-usb_tx_loop:
-	ifetch 1,contr
-	istore 1,rega
-	loop usb_tx_loop
-usb_trig:
-	setarg 0
-	qset1 pdata
-	hstore 1,core_usb_trig
-	fetcht 1,mem_usb_tx_wait
-	ior temp,pdata
-	store 1,mem_usb_tx_wait
-	rtn
-
-usb_tx_ep2:
-	arg 2,queue
-	arg core_usb_dfifo2,rega
-	branch usb_tx_loop
-
-usb_tx:
-	bpatch patch1f_4,mem_patch1f
-	fetch 1,mem_usb_tx_enable
-	rtn blank
-	fetch 1,mem_usb_tx_wait
-	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,mem_usb_tx_enable
-	rtnbit0 1
-	fetch 1,mem_usb_tx_wait
-	rtnbit1 1
-	fetch 1,mem_usb_tx_enable
-	set0 1,pdata
-	store 1,mem_usb_tx_enable
-	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,mem_usb_tx_enable
-	rtnbit0 2
-	fetch 1,mem_usb_tx_wait
-	rtnbit1 2
-	fetch 1,mem_usb_tx_enable
-	set0 2,pdata
-	store 1,mem_usb_tx_enable
-	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
-	branch assert
-
-usb_tx_fifo_release:
-	//clear mem_usb_mouse_data/mem_usb_kb_data/mem_usb_kb_multikey
-	arg mem_usb_mouse_data,contw
-	arg 6,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:
-	jam 0,mem_usb_ep1_data
-	arg 8,loopcnt
-	arg mem_usb_kb_data,contr
-	branch usb_tx_ep1
-
-usb_inwake_state_tx_dispose:
-	fetch 1,mem_usb_state
-	beq USB_SLEEP,usb_clear_tx_wait
-	beq USB_CONNECTED, usb_mac_wakeup_trig
-	rtn
-usb_clear_tx_wait:
-	jam 0,mem_usb_tx_wait
-	rtn	
-usb_mac_wakeup_trig:
-	hfetch 1,core_usb_config
-	set1 7,pdata
-	hstore 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 TIMER_WAKEUP,queue
-	call timer_check
-	nrtn blank
-usb_wakeup:
-	hfetch 1,core_usb_config
-	rtnbit0 7	//endpoint wakeup enable
-	jam 0xfc,core_usb_config
-	nop 30000
-	jam 0x3c,core_usb_config
-	rtn
-
-
-
Index: DPI_Switch/program/bt.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/bt.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/bt.prog	(nonexistent)
@@ -1,4175 +0,0 @@
-define REVD
-//define FPGA
-define ROMCODE
-define PATCH
-define ADC
-//define RAM_VERSION
-//define CLK24M
-//define DEBUG_MALLOC
-//define DEBUG_H4LOG_ENABLE
-//define DEBUG_LIGHT_STATE
-//define E2_LOG
-//define LMP_DBG
-//define ACL_DEBUG
-//define DCDC
-define NVRAM
-define RELEASE
-define SECURE_CONNECTION
-define DEBUG_RF_INIT
-//define SPI_SIMULATE
-//define ROM_RESPIN_OPTIONAL
-
-define SIMPLE_PAIRING
-define COMPILE_RFCOMM
-define COMPILE_SHUTTER
-define COMPILE_AntiLost
-//define COMPILE_IR
-define COMPILE_KEYBOARD
-define COMPILE_MOUSE
-define COMPILE_MODULE
-//define COMPILE_AT
-//define COMPILE_PRCP
-//define COMPILE_USB
-//define COMPILE_DONGLE
-define COMPILE_LE
-define COMPILE_24G
-define COMPILE_CAR
-define COMPILE_REMOTE_CAR
-
-
-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 spi_ncs_gpio_init  // 0xff disable spi ncs gpio init
-	call initialize_radio
-	call iicd_init_12m
-	call init_param
-	call l2cap_init
-	bpatch patch00_1,mem_patch00
-	call rfcomm_init
-	call init_lmp
-	call ui_init
-	call app_init
-	ncall load_chip_option,wake
-	bpatch patch00_2,mem_patch00
-	call app_lpm_init,wake
-ifdef SIMPLE_PAIRING
-	call publickey_init
-else
-	call ssp_disable
-ifdef SECURE_CONNECTION
-	call publickey_init
-
-endif
-endif
-	call lpm_recover_clk,wake
-main_loop:	
-	bpatch patch00_3,mem_patch00
-ifdef SIMPLE_PAIRING
-	call sp_calc_sequence
-endif
-ifdef SECURE_CONNECTION
-	call sp_calc_sequence_256
-endif
-ifdef SIMPLE_PAIRING
-ifdef SECURE_CONNECTION
-	call sp_calc_sequence_256_check
-endif
-endif
-	call le_dispatch
-	bpatch patch00_4,mem_patch00
-	call idle_dispatch
-	call app_process_idle
-	call inquiry_dispatch
-	call inquiry_scan_dispatch
-	call page_scan_dispatch
-	call connection_dispatch
-	call lpm_dispatch
-	call g24_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_5,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
-connection_nosniff:
-	call context_get_next
-	copy loopcnt,null
-	rtn zero
-	call context_load
-	fetch 1,mem_state
-	bbit1 state_inpage,master_page
-	fetch 1,mem_mode
-	bbit1 mode_master, master_dispatch
-	branch slave_dispatch
-
-
-
-/**************************************/
-/**************idle dispatch*********/
-/**************************************/
-	
-idle_dispatch:
-	fetch 1,mem_hci_cmd
-	rtn blank
-	beq hci_cmd_inquiry,idle_inquiry
-	beq hci_cmd_inquiry_cancel,idle_inquiry_cancel
-	beq hci_cmd_remote_name_req,idle_remote_name_req
-	beq hci_cmd_create_conn,idle_create_conn
-	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
-	
-idle_inquiry:
-	set1 mark_inquiry_on,mark
-	set0 mark_inquiry_trainb,mark
-	jam param_ninquiry,mem_ninqy_index
-	jam 31,mem_nfreq_index_inq
-	branch idle_exit
-
-idle_inquiry_cancel:
-	set0 mark_inquiry_on,mark
-	force 0,stop_watch
-	branch idle_exit
-
-idle_remote_name_req:
-	call context_search_plap
-	rtn zero
-	force LMP_NAME_REQ,temp
-	jam 5,mem_nameres_cnt
-	branch idle_start_page
-
-idle_create_conn:
-	bpatch patch00_6,mem_patch00
-idle_create_conn_device:
-	fetch 6,mem_hci_plap
-	branch idle_exit,blank
-	jam RECONNECT_HID,memui_reconnect_mode
-	//jam HS_INIT_CALL,mem_hs_mode //init as master
-	jam CONN_SM_WAIT_FEATURES_RES,mem_conn_sm
-	branch idle_create_conn_cont
-	
-idle_create_conn_cont:
-	force LMP_VERSION_REQ,temp
-idle_start_page:
-	bpatch patch00_7,mem_patch00
-	fetch 1,mem_page_mode
-	branch idle_page_mode_r0,blank
-	lshift3 pdata,pdata
-	lshift4 pdata,pdata
-	increase -1,pdata
-idle_page_mode_r0:
-	store 1,mem_npage
-	store 1,mem_npage_index
-	jam 31,mem_nfreq_index_page
-	set0 mark_page_trainb,mark
-	call context_new
-	nbranch idle_page_fail,zero
-	call get_free_amaddr
-	store 1,mem_amaddr
-	storet 1,mem_lmo_opcode2
-	fetch 6,mem_hci_plap
-	store 6,mem_plap
-	bpatch patch01_0,mem_patch01
-	call timer_reinit
-	force 0,pdata
-	compare LMP_NAME_REQ,temp,0xff
-	nsetflag true,state_init_seq,pdata
-	set1 state_inpage,pdata
-	store 1,mem_state
-	jam BT_EVT_RECONN_STARTED,mem_fifo_temp
-	call ui_ipc_send_event
-	force 0,pdata
-	setflag true,smap_name_req,pdata
-	store 1,mem_state_map
-	setarg 0
-	set1 mode_master,pdata
-	store 1,mem_mode
-	enable master
-	call context_save
-	disable master
-	force page_length_timer,queue
-	fetch 2,mem_page_to
-	call timer_init
-	branch idle_exit
-idle_page_fail:
-	bpatch patch01_1,mem_patch01
-	fetch 6,mem_hci_plap
-	store 6,mem_plap
-	compare LMP_NAME_REQ,temp,0xff
-	branch idle_name_fail,true
-	branch idle_exit
-idle_name_fail:
-	arg mem_tmp_buffer,contw
-	arg 8,loopcnt
-	call memset0
-	jam BT_EVT_RECONN_FAILED,mem_fifo_temp
-	call ui_ipc_send_event
-	branch idle_exit
-	
-
-/******************************************/
-/**************  Inquiry  *****************/
-/******************************************/
-
-inquiry_dispatch:
-	rtnmark0 mark_inquiry_on
-	force inquiry_length_timer,queue
-	call timer_check
-	nsetflag blank,mark_inquiry_on,mark
-	nbranch inquiry_start,blank
-	rtn
-	
-
-
-inquiry_start:
-	bpatch patch01_2,mem_patch01
-	fetcht 2,mem_inq_window
-	force 4,queue
-	call sniff_check_window
-	rtn user
-	call afh_clear
-	force 0,freq_mode
-inquiry_restart:
-	rtn timeout
-	set0 mark_fhs_already_good,mark
-	set0 mark_fhs_eir,mark
-inquiry_rx_restart:
-	add clkn_bt,1,bt_clk
-	isolate1 mark_inquiry_trainb,mark
-	setflag true,2,freq_mode
-	compare 0x00,bt_clk,0x02      /* see if this is even slot */
-	nbranch inquiry_receive,true
-
-inquiry_transmit:
-	bpatch patch01_3,mem_patch01
-	fetch 1,mem_inquiry_transmit
-	increase 1,pdata
-	store 1,mem_inquiry_transmit
-	call fetch_giac
-	call tx_radio_freq
-	call fetch_diac
-	call start_transmitter	/* get ready for that id packet */
-	call start_tx_native
-	call send_access_word
-	call end_of_packet
-	call inquiry_check_train
-	branch inquiry_restart
-
-inquiry_check_train:
-	bpatch patch01_4,mem_patch01
-	fetch 1,mem_nfreq_index_inq
-	increase -1,pdata
-	store 1,mem_nfreq_index_inq
-	rtn positive  /* if it's time to incremnt N */
-	jam 31,mem_nfreq_index_inq
-	fetch 1,mem_ninqy_index
-	increase -1,pdata
-	store 1,mem_ninqy_index
-	rtn positive      /* if it's time to change train */
-	setflip mark_inquiry_trainb,mark
-	jam param_ninquiry,mem_ninqy_index
-	rtn
-
-inquiry_receive:
-	bpatch patch01_5,mem_patch01
-	call fetch_giac
-	call rx_radio_freq
-	call fetch_diac
-	call start_rx_native
-	call start_receiver	/* get ready for that id packet */
-	call wait_access_clkn_rt
-	branch inquiry_sync,sync   /* try look for id packet again if not found */
-	call inquiry_check_train
-	branch inquiry_rx_restart
-inquiry_sync:
-	bpatch patch01_6,mem_patch01
-	call save_rssi
-	call scan_mode_whiten
-	call receive_packet_whitened
-	set0 mark_rxbuf_inuse,mark
-	rtnmark0 mark_fhs_already_good
-inquiry_receive_rtn:
-	bpatch patch01_7,mem_patch01
-inquiry_receive_eir_rtn:
-	fetch 1,mem_inquiry_rcv
-	increase 1,pdata
-	store 1,mem_inquiry_rcv
-	rtn
-		
-/******************************************/
-/**************  Master Dispatch  *************/
-/******************************************/
-
-
-
-master_page:
-	bpatch patch02_0,mem_patch02
-	enable master
-	enable clknt
-	fetch 2,mem_page_interval
-	branch master_page_no_interval,blank
-	force page_interval_timer,queue
-	call timer_check               
-	nrtn blank
-master_page_no_interval:
-	bpatch patch02_1,mem_patch02
-	fetcht 2,mem_page_window
-	force 40,queue
-	call sniff_check_window
-	branch page_exit,user
-	force page_length_timer,queue
-	call timer_check
-	nbranch page_start,blank
-	fetch 1,mem_state_map
-	bbit1 smap_name_req,master_npage_timeout
-	branch master_page_timeout
-master_npage_timeout:
-	arg mem_tmp_buffer,contw
-	arg 8,loopcnt
-	call memset0
-master_page_timeout:
-	bpatch patch02_2,mem_patch02
-	jam 0,mem_state
-	call init_lmp_work
-	jam 0,memui_reconnect_mode
-	jam BT_EVT_RECONN_PAGE_TIMEOUT,mem_fifo_temp
-	call ui_ipc_send_event	
-	branch page_exit
-
-page_start:
-	bpatch patch02_3,mem_patch02
-	force 0,timeup
-	until clkn_rt,meet
-	fetch 1,mem_page_clk
-	increase -1,pdata
-	ixor clkn_bt,pdata
-	compare 0,pdata,3
-	nbranch page_start,true
-	deposit am_addr
-	store 1,mem_fhs_am_addr
-	force 0,N_tx_slot
-	force 0,freq_mode
-
-page_restart:
-	bpatch patch02_4,mem_patch02
-	branch page_exit,timeout
-	call fetch_page_bt_adr
-	arg param_rf_setup, timeup
-	until clkn_rt,meet         /* wait for the start_receiver time against native real clk  */
-page_rx_restart:
-	bpatch patch02_5,mem_patch02
-	fetch 4,mem_page_clk    /* deposit clk_estimate */
-	iforce bt_clk
-	increase 1,pdata
-	store 4,mem_page_clk
-	isolate1 mark_page_trainb,mark
-	setflag true,2,freq_mode
-	compare 0x00,bt_clk,0x02      /* see if this is even slot */
-	nbranch page_receive,true
-	fetch 1, mem_page_transmit
-	increase 1,pdata
-	store 1, mem_page_transmit
-	call tx_radio_freq
-	call start_transmitter	/* get ready for that id packet */
-	call start_tx_native
-	call send_access_word
-	call end_of_packet
-	call page_check_train
-	branch page_restart	
-page_exit:
-	bpatch patch02_6,mem_patch02
-	disable master
-	fetch 2,mem_page_interval      
-	rtn blank
-	force page_interval_timer,queue
-	branch timer_init              
-
-page_check_train:
-	bpatch patch02_7,mem_patch02
-	fetch 1,mem_nfreq_index_page
-	increase -1,pdata
-	store 1,mem_nfreq_index_page
-	rtn positive
-	jam 31,mem_nfreq_index_page
-	fetch 1,mem_npage_index
-	increase -1,pdata                 /* increment N */
-	store 1,mem_npage_index
-	rtn positive      			/* if it's time to change train */
-	setflip mark_page_trainb,mark             /* change train */
-	fetch 1,mem_npage
-	store 1,mem_npage_index
-	rtn
-	
-page_receive:
-	bpatch patch03_0,mem_patch03
-	call rx_radio_freq
-	call start_rx_native
-	call start_receiver	/* get ready for that id packet */
-	call wait_access_clkn_rt	/* try id look for id packet again */
-	branch page_sync,sync         /* restart if didn't receive anything */
-	call page_check_train
-	branch page_rx_restart
-page_sync:
-	call end_of_packet
-	fetch 1, mem_page_rcv
-	increase 1,pdata
-	store 1, mem_page_rcv
-	force 0,stop_watch
-	fetch 4,mem_page_clk
-page_send_fhs:
-	bpatch patch03_1,mem_patch03
-	call rf_setup_time_master_slot
-	call fetch_page_bt_adr
-	increase 1,N_tx_slot
-page_send_fhs_continue:
-	and_into 0x1fd,bt_clk
-	and_into 0x1fc,freq_mode               /* master response = x00, even_train settin must remain the same */
-	call tx_radio_freq
-	call start_transmitter	/* get ready for that id packet */
-	call start_tx_native
-	call send_access_word
-	deposit clkn_bt
-	store 4,mem_clkn_bt
-	force 0,am_addr
-	force type_fhs,type
-	call scan_mode_whiten
-	call transmit_packet_whitened
-page_wait_fhs_reply:
-	bpatch patch03_2,mem_patch03
-	call rf_setup_time_slave_slot
-	or_into 0x02,bt_clk
-	and_into 0x1fc,freq_mode               /* master response sequence = x00, even train setting must be preserved */
-	call rx_radio_freq
-	call start_rx_native
-	call start_receiver	/* get ready for that id packet */
-	call wait_access_clkn_rt	/* look for that reply */
-	call end_of_packet,sync              /* id reply is enough */
-	branch page_wait_fhs_reply_ok,sync           /* no reply then send fhs again */
-	fetch 1,mem_fhs_wait_counter
-	branch page_restart,blank
-	increase -1,pdata
-	store 1,mem_fhs_wait_counter
-	branch page_send_fhs
-	
-page_wait_fhs_reply_ok:
-	bpatch patch03_3,mem_patch03
-	fetch 1, mem_page_rcv_fhs
-	increase 1,pdata
-	store 1, mem_page_rcv_fhs
-	call prepare_newconn
-master_newconn_loop:
-	call master_newconn_once
-	branch newconn_poll_responded,sync
-	call new_conn_timeout
-	nbranch master_newconn_loop,blank
-	branch page_restart
-
-newconn_poll_responded:
-	bpatch patch03_4,mem_patch03
-	fetch 1,mem_state
-	set0 state_inpage,pdata
-	store 1,mem_state
-	call newconn_init
-	disable master
-	rtn
-	
-
-master_dispatch:
-	bpatch patch03_5,mem_patch03
-	enable master
-	enable clknt
-	call role_switch_master
-	rtn user
-	call check_bt_disabled
-	call rf_setup_time_master_slot
-	add clkn_bt,1,bt_clk
-	call fetch_self_bt_adr
-	force 0x03,freq_mode
-	call scheduler_tx_l2cap_pkt
-	call prepare_tx
-	call tx_radio_freq
-	call start_transmitter
-	call start_tx_native
-	call send_access_word
-	call transmit_packet
-master_loop:
-	bpatch patch03_6,mem_patch03
-	call parse_lmp
-	call master_conn_recv_packet
-	nbranch master_notmatch,match
-	call supervision_flush
-	call parse_l2cap
-	fetch 1,mem_master_rcvcnt
-	increase 1,pdata
-	store 1,mem_master_rcvcnt
-master_notmatch:
-	bpatch patch03_7,mem_patch03
-	call scheduler_process
-	call check_master_disconnect
-	nrtn master					/* disconnected */
-	call check_attempt
-	nbranch master_attempt,blank
-master_exit:
-	disable master
-	rtn
-
-master_attempt:
-	call prepare_tx
-	call master_conn_send_packet
-	branch master_loop
-
-
-check_master_disconnect:
-	branch check_master_match,match
-	call supervision_update
-	branch master_disconnect,positive
-check_master_match:
-	call check_disconnect_timeout
-	nbranch master_disconnect,user
-	fetch 1,mem_state_map
-	rtnbit0 smap_name_req
-	rtnbit1 smap_name_res
-	fetch 1,mem_op
-	rtnbit1 op_disconn
-	call conn_timer_expired
-	nrtn blank
-	fetch 1,mem_nameres_cnt
-	increase -1,pdata
-	store 1,mem_nameres_cnt
-	nrtn blank
-	branch lmp_disconnect
-
-master_disconnect:
-	bpatch patch04_0,mem_patch04
-	call quit_connection
-	disable master
-	fetch 1,mem_state_map
-	bbit1 smap_name_req,master_name_disconnect
-	rtn
-	
-master_name_disconnect:
-	fetch 1,mem_state_map
-	rtnbit1 smap_name_res
-master_name_error:
-	arg mem_tmp_buffer,contw
-	arg 8,loopcnt
-	branch memset0
-	
-check_disconnect_timeout:
-	bpatch patch04_1,mem_patch04
-	enable user
-	fetch 1,mem_op
-	rtnbit0 op_disconn
-	call conn_timer_expired
-	nrtn blank
-	branch disable_user
-
-conn_timer_expired:
-	fetch 1,mem_conn_timer
-	increase -1,pdata
-	store 1,mem_conn_timer
-	rtn
-
-linkkey_ready:
-	bpatch patch04_2,mem_patch04
-	fetch 1,mem_state
-	bbit1 state_linkkey,linkkey_set
-	fetch 1,mem_pairing_auth
-	branch linkkey_set,blank
-	jam DEFALT_PAIRING_AUTH,mem_pairing_auth
-	jam BT_EVT_LINKKEY_GENERATE,mem_fifo_temp
-	call ui_ipc_send_event
-	branch linkkey_set
-linkkey_set:
-	bpatch patch04_3,mem_patch04
-	call context_traverse_linkkey
-	fetch 1,mem_state
-	set1 state_linkkey,pdata
-	store 1,mem_state
-	jam 1,mem_link_key_exists
-	fetch 1,mem_conn_sm
-	bne CONN_SM_PAIRING,linkkey_set_continue
-linkkey_set_continue:
-	rtn
-
-generate_linkkey_continue:
-	jam PAIRING_AUTH,mem_pairing_auth
-clear_linkstate:
-	fetch 1,mem_state
-	set0 state_linkkey,pdata
-	store 1,mem_state
-	rtn
-	
-
-	/* rtn user if switch */
-role_switch_check:
-	bpatch patch04_4,mem_patch04
-	disable user
-	fetch 2,mem_tsniff
-	arg 0xffff,temp
-	isub temp,null
-	nrtn zero
-	fetch 4,mem_sniff_anchor
-	branch role_switch_clkn,clknt
-	isub clke_bt,pdata
-	branch role_switch_clke
-role_switch_clkn:
-	isub clkn_bt,pdata
-role_switch_clke:
-	sub pdata,4,null
-	nrtn positive
-	force 0,pdata
-	store 2,mem_tsniff
-	branch enable_user
-
-
-	/* pdata: switch instant, set tsniff=0 for special sniff */	
-role_switch_prepare:
-	copy pdata,temp
-	bpatch patch04_5,mem_patch04
-	storet 4,mem_sniff_anchor
-role_switch_prepare0:
-	jam SWITCH_FLAG_ACCEPT,mem_switch_flag
-	setarg 0xffff
-	store 2,mem_tsniff
-	jam 1,mem_sniff_attempt
-	rtn
-
-
-role_switch_master:
-	bpatch patch04_6,mem_patch04
-	call role_switch_check
-	nrtn user
-	disable user
-	jam param_newconnto,mem_newconnto_counter
-	set0 mark_fhs_already_good,mark
-roles_waitfhs_loop:
-	call rf_setup_time_master_slot
-	call master_recv_packet
-	bmark1 mark_fhs_already_good,roles_replyto_fhs
-	call new_conn_timeout
-	nbranch roles_waitfhs_loop,blank
-role_switch_fail_master:
-	bpatch patch04_7,mem_patch04
-	disable user
-	deposit clkn_bt
-	store 4,mem_next_btclk
-	enable clknt
-	enable master
-	jam BT_EVT_SWITCH_FAIL_MASTER,mem_fifo_temp
-	branch ui_ipc_send_event
-	
-roles_replyto_fhs:
-	bpatch patch05_0,mem_patch05
-	call rf_setup_time_slave_slot
-	arg type_id,type
-	call master_send_packet
-	disable clknt
-	disable master
-	call apply_switch_clke
-	call prepare_newconn
-roles_newconns_loop:
-	bpatch patch05_1,mem_patch05
-	call slave_newconn_once
-	branch roles_newconns_responded,match
-	call new_conn_timeout
-	nbranch roles_newconns_loop,blank
-	branch role_switch_fail_master
-roles_newconns_responded:
-	fetch 1,mem_mode
-	set0 mode_master,pdata
-	store 1,mem_mode
-	call supervision_flush
-	call calc_clke_offset
-	enable user
-	jam BT_EVT_SWITCH_SUCCESS_MASTER,mem_fifo_temp
-	branch ui_ipc_send_event
-
-
-
-
-context_load:
-	bpatch patch05_2,mem_patch05
-	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
-	arg mem_state,contw
-	call memcpy
-	disable attempt
-	fetch 1,mem_amaddr
-	iforce am_addr
-	jam 1,mem_current_sniff_attempt
-	branch context_load_master,master
-	jam 1,mem_current_sniff_attempt
-context_load_master:
-	fetch 1,mem_state
-	rtnbit0 state_insniff
-	fetch 1,mem_sniff_attempt
-	store 1,mem_current_sniff_attempt
-	fetch 1,mem_sniff_timeout
-	store 1,mem_current_sniff_timeout
-	rtn
-	
-context_save:
-	bpatch patch05_3,mem_patch05
-	fetch 2,mem_context_ptr
-	iforce contw
-	force context_size,loopcnt
-	arg mem_le_state,contr
-	branch memcpy,le
-	arg mem_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
-	rtnbit1 state_inpage
-context_get_next_sniff:
-	loop context_get_next_loop
-	rtn
-	
-context_new:
-	bpatch patch05_4,mem_patch05
-	arg context_search_empty,regc
-	call context_search
-	nrtn zero					// all occupied
-	deposit rega
-	store 2,mem_context_ptr
-	force 0,null
-	rtn
-	
-	//return zero if anyone's wack is 1.
-	//return nzero if all wack is 0
-context_check_all_wack:
-	call check_esco_amaddr
-	branch context_check_esco_wack,true
-	fetch 2,mem_context_ptr
-	add pdata,coffset_arq,contw
-	fetch 1,mem_arq
-	istore 1,contw
-	arg context_check_a_wack,regc
-	branch context_search
-
-context_check_esco_wack:
-	fetch 1,mem_arq
-	isolate1 wack,pdata
-	branch context_esco_wack,true
-	force 1,null
-	rtn
-context_esco_wack:
-	force 0,null
-	rtn
-	
-	//rtn nzero if idle(no conn)
-context_check_idle:
-	arg context_check_inconn,regc
-	branch context_search
-	
-context_traverse_linkkey:
-	fetcht 2,mem_context_ptr
-	arg context_traverse_clearkey,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 patch05_5,mem_patch05
-	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 patch05_6,mem_patch05
-	arg mem_context,rega
-	arg context_num,loopcnt
-context_search_loop:
-	ifetch 1,rega
-	copy regc,pc
-context_search_next:
-	increase context_size,rega
-	loop context_search_loop
-	force 1,null
-	rtn
-
-context_search_empty:
-	bbit1 state_inconn,context_search_next
-	bbit1 state_inpage,context_search_next
-	force 0,null
-	rtn
-	
-context_search_lap:
-	bbit1 state_inpage,context_search_lap_cont
-	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
-	fetch 1,mem_le_sc_calc
-	nbranch context_search_sniff_sc,blank
-	fetch 9,mem_temp
-	copy regb,contr
-	increase 5,pdata  
-	branch context_search_meet1
-context_search_sniff_sc:
-	fetch 9,mem_temp
-	copy regb,contr	
-	increase 20,pdata  
-context_search_meet1:
-	nbranch context_search_next,positive
-context_search_meet:
-	copy temp,bt_clk
-	call context_next_anchor
-	force 0,null
-	rtn
-	
-	
-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
-	force 0,null 				// found
-	rtn
-	
-context_check_a_wack:
-	bbit0 state_inconn,context_search_next
-	add rega,coffset_mode,contr
-	ifetch 1,contr
-	bbit1 mode_le,context_search_next
-	add rega,coffset_arq,contr
-	ifetch 1,contr
-	bbit0 wack,context_search_next
-	force 0,null 				// found
-	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_nexthop
-	
-
-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
-	force 0,null
-	rtn
-
-context_traverse_clearkey:
-	bbit0 state_inconn,context_search_next
-	deposit temp
-	isub rega,null
-	branch context_search_next,null
-	add rega,coffset_mode,contr
-	ifetch 1,contr
-	bbit1 mode_le,context_search_next
-	ifetch 1,rega
-	set0 state_linkkey,pdata
-	istore 1,rega
-	branch context_search_next
-
-	
-master_conn_send_packet:
-	bpatch patch05_7,mem_patch05
-	call rf_setup_time_master_slot
-master_send_packet:
-	add clkn_bt,1,bt_clk          /* master start to use native clock */
-	call fetch_self_bt_adr
-	force 0x03,freq_mode          /* we are in connection!! */
-	call tx_radio_freq
-	call start_transmitter
-	call start_tx_native
-	call send_access_word
-	branch transmit_packet
-
-master_conn_recv_packet:
-	bpatch patch06_0,mem_patch06
-	call rf_setup_time_slave_slot
-master_recv_packet:
-	add clkn_bt,1,bt_clk          /* master start to use native clock */
-	call fetch_self_bt_adr
-	force 0x03,freq_mode          /* we are in connection!! */
-	call rx_radio_freq
-	call init_rx_packet_flags
-	call prep_crypt
-	call start_rx_native	/* start listening at start_rx time */
-	call start_receiver
-master_rx_conn_finish_packet:
-	call wait_access_clkn_rt	/* master use native clock */
-	nrtn sync
-	call save_rssi
-	branch receive_packet
-	
-	
-
-master_newconn_once:
-	bpatch patch06_1,mem_patch06
-	fetch 1,mem_fhs_am_addr
-	iforce am_addr			//review
-	force type_poll,type
-	call master_conn_send_packet
-	branch master_conn_recv_packet
-
-
-
-
-
-
-/******************************************/
-/************* Inquiry Scan ***************/
-/******************************************/
-
-inquiry_scan_dispatch:
-	fetch 1,mem_scan_mode
-	rtnbit0 inq_scan_mode
-	force iscan_interval_timer,queue
-	call timer_check
-	nrtn blank
-	fetcht 2,mem_iscan_window
-	force 4,queue
-	call sniff_check_window
-	rtn user
-	call inquiry_scan_start
-	force iscan_interval_timer,queue
-	fetch 2,mem_iscan_interval
-	nbranch timer_init,sync
-	random pdata				/* inquiry scan backoff */
-	iand mask3ff,pdata
-	branch timer_init
-	
-
-inquiry_scan_start:
-	bpatch patch06_2,mem_patch06
-	jam 0,mem_fhs_am_addr
-	disable clknt
-	disable attempt
-	call afh_clear
-	and clkn_bt,0x1fc,bt_clk      /* freeze the clock, set bit[1] 0, this is version 1.1 */
-	force 0x01,freq_mode     /* slave in inquiry scan, kind of same as inquriy_response, this is version 1.1 */
-	call fetch_giac
-	call rx_radio_freq
-	setflip mark_inquiry_state,mark
-	fetch 1,mem_inquiryscan_waitcnt
-	increase 1,pdata
-	store 1,mem_inquiryscan_waitcnt
-	call fetch_diac
-	call start_receiver	/* get ready for that id packet */
-	call wait_access_forever	/* until there is timeout, or matched (true) */
-	nrtn sync
-	bpatch patch06_3,mem_patch06
-	force 0,stop_watch
-	call shutdown_radio	/* must have heard */
-	fetch 1,mem_inquiryscan_rcvcnt
-	increase 1,pdata
-	store 1,mem_inquiryscan_rcvcnt
-	call fetch_giac
-	call rf_setup_time_slave_slot
-	or_into 0x002,bt_clk               /* put clk(1) to 1 */
-	force 0x01,freq_mode               /* slave in inquriy and page, response only */
-	call tx_radio_freq
-	call fetch_diac
-	call start_transmitter	/* get ready for that id packet */
-	call start_tx_external
-	deposit clkn_bt
-	store 4,mem_clkn_bt
-	call send_access_word
-	force type_fhs,type
-	force 0,am_addr                       /* put 0 into am_addr field for fhs */
-	call scan_mode_whiten
-	call transmit_packet_whitened
-	call send_eir
-	and_into 0x1fd,bt_clk                 /* put clk(1) back to 0 */
-	increase 1,N_tx_slot
-	rtn
-
-send_eir:
-	bpatch patch06_4,mem_patch06
-	fetch 1,mem_eir_enable
-	rtn blank
-	arg mem_eir,contw
-	fetch 1,mem_local_name_length
-	copy pdata,loopcnt
-	increase 1,pdata
-	istore 1,contw	
-	copy contw,temp
-	increase 1,pdata
-	store 2,mem_tx_len	
-	copy temp,contw
-	setarg 0x09  //type:name
-	istore 1,contw		
-	arg  mem_local_name,contr
-	call memcpy       //name
-
-	arg mem_all_uuid_128bits,regc
-	arg 4,loopcnt
-	call get_all_uuid
-	arg mem_all_uuid_16bits,regc
-	arg 1,loopcnt
-	call get_all_uuid
-
-	force type_dm3,type		/* DM3 */
-	jam 2,mem_tx_lch
-	setarg mem_eir
-	store 2,mem_txptr
-	call rf_setup_time_slave_slot
-	call tx_radio_freq
-	call start_transmitter	/* get ready for that id packet */
-	call start_tx_external
-	call send_access_word
-	call scan_mode_whiten
-	call transmit_packet_whitened
-	rtn
-
-
-get_all_uuid:
-	copy contw,temp
-	copy regc,contr
-	ifetch 1,contr
-	rtn blank
-lshift_loop:
-	lshift pdata,pdata
-	loop lshift_loop
-	copy pdata,rega
-	increase 2,pdata
-	copy pdata,queue
-	fetch 2,mem_tx_len
-	iadd queue,pdata
-	store 2,mem_tx_len
-	copy temp,contw
-	copy rega,pdata
-	increase 1,pdata
-	istore 1,contw
-	copy regc,contr
-	ifetch 1,contr
-	ifetch 1,contr	//fetch type
-	istore 1,contw
-	copy rega,loopcnt
-	branch memcpy  //copy uuid
-	
-/******************************************/
-/******** Slave dispatch ***********/
-/******************************************/
-
-page_scan_dispatch:	
-	fetch 1,mem_scan_mode
-	rtnbit0 page_scan_mode
-	force pscan_interval_timer,queue
-	call timer_check
-	nrtn blank
-	fetcht 2,mem_pscan_window
-	force 40,queue
-	call sniff_check_window
-	rtn user
-	force 0,am_addr
-	jam param_pagerespto,mem_fhs_wait_counter
-	set0 mark_fhs_already_good,mark
-	call page_scan_start
-	force pscan_interval_timer,queue
-	fetch 2,mem_pscan_interval
-	branch timer_init
-	
-
-page_scan_start:
-	bpatch patch06_5,mem_patch06
-	disable clknt
-	call afh_clear
-	fetch 1,mem_pagescan_waitcnt
-	increase 1,pdata
-	store 1,mem_pagescan_waitcnt
-	force 0,N_tx_slot
-	call fetch_self_bt_adr
-	add clkn_bt,1,bt_clk      /* freeze the clock on native clock until scan window is up */
-	force 0x02, freq_mode     /* slave in inquiry and page, not response */
-	bpatch patch06_6,mem_patch06
-	call rx_radio_freq
-	call start_receiver	/* wait for that id packet from master */
-	call wait_access_forever
-	nrtn sync                          /* pscan window timeout occured, back to dispatch */
-	call shutdown_radio	/* got the id packet */
-	fetch 1,mem_pagescan_rcvcnt
-	increase 1,pdata
-	store 1,mem_pagescan_rcvcnt
-	force 0,stop_watch
-	call rf_setup_time_slave_slot
-	or_into 0x002,bt_clk               /* put clk(1) to 1 */
-	force 0x01,freq_mode               /* slave in inquriy and page, response only */
-	call tx_radio_freq
-	call start_transmitter
-	call start_tx_external
-	call send_access_word
-	call end_of_packet
-	force 0,am_addr
-	arg param_rf_setup, timeup
-	until clke_rt,meet
-	or_into 0x03,clke_bt
-	and_into 0x1fd,bt_clk
-page_scan_wait_fhs_restart:
-	bpatch patch06_7,mem_patch06
-	increase 1,N_tx_slot
-	call rx_radio_freq
-	call start_receiver
-	call wait_access_mhalfbnd
-	nbranch page_scan_wait_fhs_again,sync	/* go back if didn't find access code */
-	call scan_mode_whiten
-	call receive_packet_whitened
-	bmark1 mark_fhs_already_good,page_scan_reply_to_fhs
-page_scan_wait_fhs_again:
-	bpatch patch07_0,mem_patch07
-	fetch 1,mem_fhs_wait_counter
-	rtn blank
-	increase -1,pdata
-	store 1,mem_fhs_wait_counter
-	call rf_setup_time_master_slot	/* set up expiration time */
-	branch page_scan_wait_fhs_restart
-
-
-page_scan_reply_to_fhs:
-	bpatch patch07_1,mem_patch07
-	set0 1,clke_bt
-	set1 0,clke_bt
-	fetch 1,mem_pagescan_rcvfhscnt
-	increase 1,pdata
-	store 1,mem_pagescan_rcvfhscnt
-	call rf_setup_time_slave_slot
-	or_into 0x02,bt_clk
-	call tx_radio_freq
-	call start_transmitter
-	call start_tx_external
-	call send_access_word
-	call end_of_packet
-slave_apply_clke_bt:
-	compare 0x03,clke_bt,0x03
-	branch slave_apply_clke_bt_now,true
-	until null,mhalfbnd
-	branch slave_apply_clke_bt
-slave_apply_clke_bt_now:
-	fetch 4,mem_clke_bt
-	or_into 0x03,pdata
-	icopy clke_bt
-
-start_slave_connection:
-	bpatch patch07_2,mem_patch07
-	fetch 6,extm_lap
-	store 6,mem_plap
-	call prepare_newconn
-slave_newconn_loop:
-	call slave_newconn_once
-	branch sconn_successful,match     /* we were talked to */
-	call new_conn_timeout
-	nbranch slave_newconn_loop,blank
-	rtn
-
-	
-sconn_successful:
-	bpatch patch07_3,mem_patch07
-	call newconn_init
-	call context_new
-	nrtn zero
-	jam 0,mem_mode
-	call calc_clke_offset
-	branch context_save
-
-
-
-
-slave_dispatch:
-	bpatch patch07_4,mem_patch07
-	call calc_clke
-	call role_switch_slave
-	rtn user
-slave_loop:
-	bpatch patch07_5,mem_patch07
-	call check_bt_disabled
-	call scheduler_process
-	call slave_conn_recv_packet	/* go listen for a packet */
-	nbranch slave_notmatch,match
-	call supervision_flush
-	call scheduler_tx_l2cap_pkt
-	call prepare_tx
-	call slave_conn_send_packet
-	call parse_l2cap
-	call parse_lmp
-	fetch 1,mem_slave_rcvcnt
-	increase 1,pdata
-	store 1,mem_slave_rcvcnt
-	call calc_clke_offset
-slave_notmatch:
-	bpatch patch07_6,mem_patch07
-	call lpm_set_mult
-	call supervision_update
-	branch slave_disconnect,positive
-	call check_disconnect_timeout
-	nbranch slave_disconnect,user
-	call check_attempt
-	nbranch slave_loop,blank
-	rtn
-
-slave_disconnect:
-	bpatch patch07_7,mem_patch07
-	jam 0,mem_tester_emulate
-	jam 0,mem_debug_config
-	call quit_connection
-	set0 mark_testmode,mark
-	call test_enable_white
-	fetch 1,mem_state
-	rtn
-
-
-role_switch_slave:
-	bpatch patch08_0,mem_patch08
-	call role_switch_check
-	nrtn user
-	copy am_addr,temp
-	call get_free_amaddr
-	store 1,mem_fhs_am_addr
-	copy temp,am_addr
-	jam param_newconnto,mem_newconnto_counter
-roles_sendfhs_loop:
-	bpatch patch08_1,mem_patch08
-	call rf_setup_time_master_slot
-	force type_fhs,type
-	call slave_send_access
-	deposit clkn_bt
-	store 4,mem_clkn_bt
-	call transmit_packet
-	call rf_setup_time_slave_slot
-	enable user3
-	call slave_receive_access
-	branch roles_got_fhs_reply,sync
-	call shutdown_radio
-	call new_conn_timeout
-	nbranch roles_sendfhs_loop,blank
-	rtnmark0 mark_accept_switch
-	jam LMP_SLOT_OFFSET,mem_lmo_opcode2
-	set1 mark_switch_initiated,mark
-	rtn
-roles_got_fhs_reply:
-	enable clknt
-	call prepare_newconn
-	call afh_clear
-roles_newconn_loop:
-	bpatch patch08_2,mem_patch08
-	call master_newconn_once
-	branch roles_newconn_responded,sync
-	call new_conn_timeout
-	nbranch roles_newconn_loop,blank
-	disable clknt
-	deposit clke_bt
-	store 4,mem_next_btclk
-	rtn
-roles_newconn_responded:
-	enable master
-	bmark0 mark_accept_switch,roles_newconn_nolmp
-	set0 mark_accept_switch,mark
-	jam LMP_ACCEPTED,mem_lmo_opcode2
-	jam LMP_HOST_CONNECTION_REQ,mem_lmi_opcode2
-	call tid_set_reply
-roles_newconn_nolmp:
-	deposit am_addr
-	store 1,mem_amaddr
-	force 0,pdata
-	store 6,mem_clk_offset
-	fetch 1,mem_mode
-	set1 mode_master,pdata
-	store 1,mem_mode
-	call supervision_flush
-	disable master
-	enable user
-	rtn
-
-	
-
-init_rx_packet_flags:
-	bpatch patch08_3,mem_patch08
-	disable match
-	set0 mark_loopback,mark
-	set0 mark_am_addr_broadcast,mark          /* initialize slave flags */
-	set0 mark_longpacket,mark
-	set0 mark_old_packet,mark
-	fetch 1,mem_arq    /* mem_arq + am_addr */
-	set0 arqnx,pdata
-	set1 flowx,pdata
-	store 1,mem_arq
-	rtn
-
-prepare_newconn:
-	bpatch patch08_4,mem_patch08
-	jam param_newconnto,mem_newconnto_counter
-	jam param_newconn_arq,mem_arq
-	fetch 2,mem_rx_window_init
-	store 2,mem_rx_window
-	deposit clkn_bt
-	store 4,mem_next_btclk
-	rtn clknt
-	deposit clke_bt
-	store 4,mem_next_btclk
-	rtn
-
-newconn_init:
-	bpatch patch08_5,mem_patch08
-	call init_lmp_reinit
-	call new_conn_handle
-	store 1,mem_conn_handle
-	setarg 0
-	store 2,mem_l2cap_rxbuff1_len
-	setarg param_supervision_to
-	store 2,mem_supervision_to
-	fetch 1,mem_state
-	set1 state_inconn,pdata
-	store 1,mem_state
-	jam 0,mem_op
-	jam 0,mem_state_map
-	jam 0,mem_lpm_current_mult
-	branch supervision_flush
-	
-
-clear_linkkey:
-	bpatch patch08_6,mem_patch08
-	force 0,pdata
-	store 8,mem_link_key
-	istore 8,contw
-	call clear_linkstate
-	branch context_traverse_linkkey
-	
-new_conn_timeout:
-	fetch 1,mem_newconnto_counter
-	increase -1,pdata
-	store 1,mem_newconnto_counter
-	rtn
-
-new_conn_handle:
-	fetch 1,mem_handle_num
-	increase 1,pdata
-	store 1,mem_handle_num
-	rtn
-
-
-quit_connection:
-	bpatch patch08_7,mem_patch08
-	fetch 1,mem_hci_cmd
-	beq hci_cmd_remote_name_req,quit_connection_name
-	fetch 1,mem_lmp_to_send
-	bne LMP_NAME_REQ,quit_connection_cont
-quit_connection_name:
-	call cmd_check_plap
-	nbranch quit_connection_cont,zero
-	call master_name_error
-	jam 0,mem_hci_cmd
-quit_connection_cont:
-	bpatch patch09_0,mem_patch09
-	call app_disconn_reason_collect_bt
-	call sniff_exit
-	jam BT_EVT_BB_DISCONNECTED,mem_fifo_temp
-	call ui_ipc_send_event
-	call init_lmp_work
-	call l2cap_init_work
-ifdef SIMPLE_PAIRING
-	call sp_initialize
-endif
-	fetch 1,mem_state
-	set0 state_inconn
-	store 1,mem_state
-	jam 0,memui_reconnect_mode
-
-	fetch 1,mem_state_map
-	compare 0x0,pdata,0xc0
-	branch quit_connection_not_clear_mark,true
-	set0 mark_rxbuf_inuse,mark
-quit_connection_not_clear_mark:
-	fetch 1,mem_arq
-	bbit0 wack,quit_connection_not_clear_tx
-quit_connection_not_clear_tx:
-	fetch 1,mem_op
-	rtnbit0 op_txl2cap
-	set0 mark_tx_l2cap,mark
-	rtn
-
-slave_newconn_once:
-	bpatch patch09_1,mem_patch09
-	fetch 1,extm_newconn_am_addr
-	rtn blank     
-	icopy am_addr
-	call slave_conn_recv_packet
-	nrtn match
-	force type_null,type
-	call slave_conn_send_packet
-	deposit am_addr
-	store 1,mem_amaddr                 /* now the new am_addr is official */
-	force 0,pdata
-	store 1,extm_newconn_am_addr
-	rtn
-
-
-/******************************************/
-/********  Time consuming task  ***********/
-/******************************************/
-prepare_tx:
-	bpatch patch09_2,mem_patch09
-	fetch 1,mem_state
-	bbit0 state_insco,prepare_tx_not_sco
-	force type_hv3,type
-	bmark0 mark_esco,prepare_tx_not_esco
-	call check_esco_amaddr
-	nbranch prepare_tx_not_sco,true
-	branch prepare_tx_not_sco,attempt	
-	call set_wait_ack					/* send esco only at the first attempt */
-	setarg 2		/* esco only has 1 retry */
-	store 2,mem_retransmission_cnt
-	rtn
-prepare_tx_not_esco:
-	nrtn attempt						/* send sco only at the first attempt */
-prepare_tx_not_sco:
-	bpatch patch09_3,mem_patch09
-	call context_check_all_wack			 //abandon mark_retransmit, use context_check_all_wack instead.
-	nbranch prepare_tx_no_retransmit,zero
-	fetch 1,mem_arq
-	bbit0 wack,prepare_tx_pollnull		/* other wack, tx buffer in use, but not me */
-prepare_tx_retransmit:
-	bmark1 mark_loopback,prepare_tx_loopback
-	fetch 1,mem_debug_config
-	bbit1 debug_tx_pattern,prepare_tx_txpat
-	fetch 2,mem_retransmission_cnt
-	increase -1,pdata
-	store 2,mem_retransmission_cnt
-	branch prepare_tx_nomore_retransmit,blank
-	fetch 1,mem_last_type
-	iforce type
-	rtn
-
-prepare_tx_nomore_retransmit:
-	bpatch patch09_4,mem_patch09
-	call clear_got_tx
-prepare_tx_no_retransmit:
-	call check_esco_amaddr
-	branch prepare_tx_pollnull,true
-	call send_lmp
-	branch prepare_tx_sendlmp,user
-	fetch 1,mem_op
-	bbit1 op_txl2cap,prepare_tx_sendl2cap
-	bmark1 mark_loopback,prepare_tx_loopback
-	fetch 1,mem_debug_config
-	bbit1 debug_tx_pattern,prepare_tx_txpat
-prepare_tx_pollnull:
-	force type_poll,type				/* POLL for master */
-	rtn master
-	force type_null,type				/* default is NULL */
-	rtn
-prepare_tx_loopback:
-	bpatch patch09_5,mem_patch09
-	fetch 1,mem_rx_type
-	iforce type
-	rtnne 1
-	force type_null,type
-	rtn
-prepare_tx_txpat:
-	fetch 1,test_mode_packet_type
-	and pdata,0xf,type
-	set1 mark_loopback,mark
-	rtn
-prepare_tx_sendlmp:
-	force type_lmp,type
-	branch set_wait_ack
-prepare_tx_sendl2cap:
-	call tx_l2cap_type
-
-set_wait_ack:
-	bpatch patch09_6,mem_patch09
-	fetcht 1,mem_arq
-	set1 wack,temp
-	storet 1,mem_arq
-	deposit type
-	store 1,mem_last_type
-	setarg 0xffff
-	store 2,mem_retransmission_cnt
-	rtn
-
-tx_l2cap_type:
-	bpatch patch09_7,mem_patch09
-	fetch 1,mem_state_map
-	isolate1 smap_edr,pdata
-	fetch 2,mem_tx_len
-	branch tx_l2cap_type_edr,true
-	force type_dm1,type		/* DM1 */
-	sub pdata,17,null			
-	rtn positive
-	force type_dh1,type		/* DH1 */
-	sub pdata,27,null				
-	rtn positive
-	force type_dm3,type		/* DM3 */
-	sub pdata,121,null
-	rtn positive
-	force type_dh3,type		/* DH3 */
-	sub pdata,183,null
-	rtn positive	
-	force type_dm5,type		/* DM5 */
-	sub pdata,224,null
-	rtn positive
-	force type_dh5,type		/* DH5 */
-	rtn
-tx_l2cap_type_edr:
-	force type_dm1,type
-	sub pdata,17,null
-	rtn positive
-	force type_dh1,type		/*2-DH1*/
-	sub pdata,54,null
-	rtn positive
-	force type_dm3,type		/*2-DH3*/
-	arg 367,temp
-	isub temp,null
-	nrtn positive
-	force type_dm5,type		/*2-DH5*/
-	arg 679,temp
-	isub temp,null
-	nrtn positive
-	force type_dh5,type		/*3-DH5*/
-	rtn
-
-
-/******************************************/
-/***********  Receive Packet  *************/
-/******************************************/
-
-
-
-slave_receive_master_slot:
-	fetch 1,mem_state
-	bbit0 state_insniff,slave_receive_notsniff
-	fetch 2,mem_tsniff
-	branch slave_receive_notsniff,blank		/* role switch */
-	nbranch slave_receive_sniff,attempt
-slave_receive_notsniff:
-	call rf_setup_time_master_slot
-slave_receive_access:
-	add clke_bt,1,bt_clk
-slave_receive_sniff:
-	enable swfine
-	fetch 2,mem_rx_window
-	rshift pdata,pdata
-	arg param_pll_setup,temp
-	iadd temp,pdata
-	call ahead_window
-	call fetch_extm_bt_adr
-	force 0x03,freq_mode          /* connection hop */
-	call rx_radio_freq
-	call init_rx_packet_flags
-	call prep_crypt
-	bpatch patch0a_0,mem_patch0a
-	fetch 2,mem_rx_window
-	rshift pdata,pdata
-	call ahead_window
-	call start_receiver
-	enable decode_fec0
-	fetch 2,mem_rx_window
-	arg param_clke_cal,temp
-	iadd temp,stop_watch
-	correlate null,timeout
-	copy clke,temp
-	storet 6,mem_sync_clke
-	disable decode_fec0
-	nrtn sync
-	arg param_clke_cal,clke_rt
-	copy bt_clk,clke_bt
-	branch lpm_adjust_clk,wake
-	rtn
-	
-
-slave_conn_recv_packet:
-	bpatch patch0a_1,mem_patch0a
-	call slave_receive_master_slot
-	nbranch shutdown_radio,sync
-	call save_rssi
-	bmark0 mark_testmode,receive_packet
-	fetch 2,mem_tst_pktcnt_sync
-	increase 1,pdata
-	store 2,mem_tst_pktcnt_sync
-receive_packet:
-	rshift bt_clk,temp
-	or temp,0x40,white_init
-receive_packet_whitened:
-	bpatch patch0a_2,mem_patch0a
-	enable enable_white
-	enable enable_hec
-	enable decode_fec1
-	parse demod,bucket,3  /* get am_addr */
-	rshift8 pwindow,pdata
-	store 1,mem_temp_am_addr
-	parse demod,bucket,4  /* get type */
-	inject bucket,7       /* align up to pwindow */
-	copy pwindow,pdata
-	store 1,mem_rx_type
-	parse demod,bucket,3  /* get arq */
-	rshift8 pwindow,pdata
-	store 1,mem_temp_arq
-	fetch 1,mem_rx_type
-	sub pdata,3,null
-	branch receive_packet_noedr,positive
-	beq 7,receive_packet_noedr		/* esco packet */
-	fetch 1,mem_state_map
-	isolate1 smap_edr,pdata
-	setflag true,PSK,radio_ctrl
-receive_packet_noedr:
-	bpatch patch0a_3,mem_patch0a
-	parse demod,bucket,8   /* cycle thru hec */
-	disable decode_fec1
-	disable enable_hec   /* at this moment, 1 seqn + 8 hec is in shift */
-	branch error_header,crc_failed  /* if hec error, nothing is valid */
-	bmark0 mark_testmode,receive_packet_amchk
-	fetch 2,mem_tst_pktcnt_hec
-	increase 1,pdata
-	store 2,mem_tst_pktcnt_hec
-receive_packet_amchk:	
-	bpatch patch0a_4,mem_patch0a
-	fetch 1,mem_temp_am_addr
-	compare 0,pdata,0x07           /* check for broadcast */
-	setflag true,mark_am_addr_broadcast,mark   /* received a broadcast message, can fire ar_addr if during unpark_req */
-	branch am_addr_ok,true
-	icompare 0x07,am_addr
-	branch am_addr_match,true
-	bmark0 mark_esco,end_of_packet
-	fetcht 1,mem_saved_amaddr
-	icompare 0x7,temp
-	nbranch end_of_packet,true
-	fetch 1,mem_arq    /* mem_arq + am_addr */
-	set0 arqnx,pdata
-	set1 flowx,pdata
-	store 1,mem_arq
-am_addr_match:
-	enable match
-am_addr_ok:
-	bpatch patch0a_5,mem_patch0a
-	fetch 1,mem_rx_type
-	icopy type
-	bmark1 mark_am_addr_broadcast,arqn_bypass        /* arqn doesn't make sense */
-	fetcht 1,mem_temp_arq
-	fetch 1,mem_arq
-	set0 flow,pdata
-	isolate1 flow,temp
-	setflag true,flow,pdata
-	isolate1 arqn,temp
-	setflag true,arqn,pdata
-	store 1,mem_arq
-	isolate0 arqn,temp
-	branch arqn_bypass,true
-	call clear_got_tx
-arqn_bypass:
-	bpatch patch0a_6,mem_patch0a
-	arg 0,temp
-	call reserve_slot
-	and type,0xf,pdata
-	beq type_poll,process_poll
-	beq type_null,end_of_packet	/* null */
-	beq type_fhs,process_fhs
-	fetcht 1,mem_temp_arq
-	fetch 1,mem_arq
-	icompare 0x04,temp    /* bit 2 is seqn */
-	nbranch rx_type_dispatch,true   /* different then it's new */
-	bmark0 mark_am_addr_broadcast,failed_seqn         /* seqn failed, and not broadcast */
-	bbit0 bcast1,rx_type_dispatch           /* first broadcast never fail seqn */
-failed_seqn:
-	set1 mark_old_packet,mark
-rx_type_dispatch:
-	bpatch patch0a_7,mem_patch0a
-	deposit type
-	beq type_dm1, process_dm1
-	beq type_dh1, process_dh1
-	beq type_hv3, process_hev
-	beq type_3dh1, process_3dh1
-	arg 4,temp
-	call reserve_slot
-	beq type_dm3, process_dm3
-	beq type_dh3, process_dh3
-	arg 8,temp
-	call reserve_slot
-	beq type_dm5, process_dm5
-	beq type_dh5, process_dh5
-	rtn
-
-
-process_hev:
-	bpatch patch0b_0,mem_patch0b
-	enable decode_fec0
-	enable enable_crc
-	enable encrypt
-	arg mem_sco_ibuf,contw
-	force 30,loopcnt
-process_hev_loop:	
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	istore 1,contw
-	loop process_hev_loop
-	bmark0 mark_esco,end_of_packet
-	parse demod,bucket,16  /* cycle through the crc */
-	nsetflag crc_failed,mark_esco_rxok,mark
-	branch error_payload,crc_failed
-	branch ack_payload
-
-
-process_poll:
-	branch end_of_packet
-
-process_dm3:
-process_dm5:
-	set1 mark_longpacket,mark
-process_dm1:
-	enable decode_fec2
-	branch process_dmh
-	
-process_dh3:
-process_dh5:
-	set1 mark_longpacket,mark
-process_3dh1:
-	set1 PSK3M,radio_ctrl
-process_dh1:
-	enable decode_fec0
-process_dmh:
-	bpatch patch0b_1,mem_patch0b
-	bmark1 mark_rxbuf_inuse,end_of_packet			/* buffer in use, nack */
-	isolate0 PSK,radio_ctrl
-	branch process_dmh_noedr,true
-	disable enable_white
-	enable decode_fec0
-	disable decode_fec2
-	add clkn_bt,2,timeup
-	correlate clkn_bt,meet
-	nbranch error_payload,sync
-	set1 mark_longpacket,mark
-	enable enable_white
-process_dmh_noedr:
-	bpatch patch0b_2,mem_patch0b
-	enable encrypt
-	enable enable_crc
-	parse demod,bucket,3  /* parse in lch+l2cap flow */
-	rshift8 pwindow,pdata
-	store 1,mem_lch_code		/* for loopback */
-	parse demod,bucket,5  /* parse in 5 bit packetlength */
-	bmark1 mark_longpacket,process_dmh_long
-	rshift3 pwindow,loopcnt
-	rshift3 loopcnt,loopcnt
-	branch process_dmh_common
-process_dmh_long:
-	parse demod,bucket,5		/* multi slot packet length of dh3 dh5 dm3 dm5 */
-	rshift pwindow,loopcnt
-	parse demod,bucket,3  /* undefined+bit 9 of length */
-process_dmh_common:	
-	bpatch patch0b_3,mem_patch0b
-	deposit loopcnt
-	store 2,mem_len
-	branch process_dmh_data_end,blank
-	isub mask3ff,null
-	branch error_payload,positive	/* packet too large, discard */
-	bpatch patch0b_4,mem_patch0b
-	set0 mark_fhs_eir,mark
-	fetch 1,mem_lch_code
-	and_into 0x03,pdata
-	arg mem_rxbuf,contw //lmp_data or test packet
-	beq LLID_LMP,process_lmp
-	bmark1 mark_testmode,process_dmh_data
-	//non-HCI mode
-	fetch 1,mem_lch_code
-	and_into 0x03,pdata
-	beq LLID_L2CAP_START,process_dmh_data_l2cap_start_pkt
-	beq LLID_L2CAP_CONT,process_dmh_data_l2cap_continue_pkt
-	branch error_payload
-
-process_lmp:
-	fetch 2,mem_len
-	sub pdata,0x70,null		//lmp buffer size
-	nbranch error_payload,positive
-	bmark1 mark_old_packet,ack_payload
-	branch process_dmh_data
-
-	
-process_dmh_data_l2cap_start_pkt:
-	bpatch patch0b_5,mem_patch0b
-	bmark1 mark_old_packet,ack_payload
-	fetch 2,mem_len
-	arg 0x2e0,temp //l2cap buffer size
-	isub temp,null
-	branch error_payload,positive
-	fetch 1,mem_l2cap_rxbuff_inuse
-	bbit0 L2CAP_INUSE_BUFF1,process_dmh_data_into_buff1
-	bbit0 L2CAP_INUSE_BUFF2,process_dmh_data_into_buff2
-	branch end_of_packet
-process_dmh_data_into_buff1:
-	jam 1,mem_l2cap_rxbuff_new //new data in buff 1
-	fetch 2,mem_l2cap_rxbuff1_len
-	bne 0,end_of_packet			//baseband head error
-	arg mem_l2cap_rxbuff1,contw
-	branch process_dmh_data
-process_dmh_data_into_buff2:
-	jam 2,mem_l2cap_rxbuff_new //new data in buff 2
-	fetch 2,mem_l2cap_rxbuff2_len
-	bne 0,end_of_packet
-	arg mem_l2cap_rxbuff2,contw
-	branch process_dmh_data
-	
-process_dmh_data_l2cap_continue_pkt:
-	bpatch patch0b_6,mem_patch0b
-	bmark1 mark_old_packet,ack_payload
-	fetch 2,mem_len
-	arg 0x2e0,temp //l2cap buffer size
-	isub temp,null
-	branch error_payload,positive
-	fetch 1,mem_l2cap_rxbuff_new
-	beq 1,process_dmh_data_l2cap_continue_pkt1
-	beq 2,process_dmh_data_l2cap_continue_pkt2
-	branch end_of_packet
-process_dmh_data_l2cap_continue_pkt1:
-	arg mem_l2cap_rxbuff1,contw
-	fetch 2,mem_l2cap_rxbuff1_len
-	iadd contw,contw
-	branch process_dmh_data
-process_dmh_data_l2cap_continue_pkt2:
-	arg mem_l2cap_rxbuff2,contw
-	fetch 2,mem_l2cap_rxbuff2_len
-	iadd contw,contw
-process_dmh_data:	
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	istore 1,contw
-	loop process_dmh_data
-process_dmh_data_end:	
-	bpatch patch0b_7,mem_patch0b
-	parse demod,bucket,16  /* cycle through the crc */
-	branch error_payload_crc,crc_failed
-	fetch 1,mem_l2cap_flow_ctrl_flag
-	beq L2CAP_FLOW_CTRL_ENABLE,end_of_packet
-	bmark1 mark_testmode,process_dmh_cont
-	bmark1 mark_old_packet,redundant_payload
-	fetch 1,mem_lch_code
-	compare 3,pdata,3
-	branch process_dmh_cont,true
-	fetch 2,mem_len
-	branch process_dmh_cont,blank
-	bpatch patch0c_0,mem_patch0c
-	fetch 1,mem_l2cap_rxbuff_new
-	beq 1,process_l2cap_pass_crc_buff1
-	beq 2,process_l2cap_pass_crc_buff2
-	branch assert
-process_l2cap_pass_crc_buff1:
-	fetch 2,mem_l2cap_rxbuff1_len
-	fetcht 2,mem_len
-	iadd temp,pdata
-	store 2,mem_l2cap_rxbuff1_len
-	beq 0,assert
-	fetcht 2,mem_l2cap_rxbuff1// l2cap payload length
-	increase 4,temp
-	isub temp,null
-	call l2cap_buff1_inuse,zero //l2cap pkts not ended
-	branch process_dmh_cont
-process_l2cap_pass_crc_buff2:
-	fetch 2,mem_l2cap_rxbuff2_len
-	fetcht 2,mem_len
-	iadd temp,pdata
-	store 2,mem_l2cap_rxbuff2_len
-	beq 0,assert
-	fetcht 2,mem_l2cap_rxbuff2// l2cap payload length 
-	add temp,4,temp
-	isub temp,null
-	call l2cap_buff2_inuse,zero //l2cap pkts not ended
-	branch process_dmh_cont
-process_dmh_cont:
-	bpatch patch0c_1,mem_patch0c
-	fetcht 1,mem_state_map
-	fetch 1,mem_lch_code
-	compare 3,pdata,0x03
-	setflag true,smap_rxlmp,temp
-	nsetflag true,smap_rxl2cap,temp
-	storet 1,mem_state_map
-	nbranch process_dmh_cont_rxbuf_not_use,true
-	set1 mark_rxbuf_inuse,mark
-process_dmh_cont_rxbuf_not_use:
-	bmark0 mark_testmode,ack_payload
-	isolate1 smap_rxlmp,temp
-	branch ack_payload,true
-	fetch 2,mem_tst_pktcnt_crc
-	increase 1,pdata
-	store 2,mem_tst_pktcnt_crc
-	set1 mark_loopback,mark
-	set0 smap_rxl2cap,temp
-	set0 mark_rxbuf_inuse,mark
-	storet 1,mem_state_map
-ack_payload:
-	bpatch patch0c_2,mem_patch0c
-	fetcht 1,mem_temp_arq
-	fetch 1,mem_arq
-	set1 arqnx,pdata
-	isolate1 seqn,temp            /* if accept, seqn always copies from the header */
-	setflag true,seqn,pdata
-	isolate1 mark_am_addr_broadcast,mark
-	setflag true,bcast1,pdata
-	store 1,mem_arq
-	fetch 2,mem_len
-	nbranch end_of_packet,blank
-	fetch 1,mem_state_map
-	set0 smap_rxl2cap,pdata//better to do this in l2cap_flow_ctrl_stop
-	store 1,mem_state_map
-	fetch 1,mem_lch_code
-	compare 0x01,pdata,0x07
-	//call l2cap_flow_ctrl_stop,true
-	branch end_of_packet
-	
-error_header:
-	bpatch patch0c_3,mem_patch0c
-	disable match
-	fetch 2,mem_rx_hec_err
-	increase 1,pdata
-	store 2,mem_rx_hec_err
-	branch end_of_packet
-error_payload_crc:
-	fetch 2,mem_rx_crc_err
-	increase 1,pdata
-	store 2,mem_rx_crc_err
-	call discard_pkt
-	bmark0 mark_testmode,error_payload
-	set1 mark_loopback,mark
-error_payload:
-	branch end_of_packet
-	
-discard_pkt:
-	bpatch patch0c_4,mem_patch0c
-	fetch 1,mem_lch_code
-	compare 3,pdata,0x03
-	nbranch discard_pkt_l2cap,true
-discard_pkt_lmp:	
-	fetcht 1,mem_state_map
-	set0 smap_rxlmp,temp
-	storet 1,mem_state_map
-	rtn
-discard_pkt_l2cap:
-//	isolate1 mark_testmode,mark
-//	setflag true,mark_loopback,mark
-	fetcht 1,mem_state_map
-	set0 smap_rxl2cap,temp
-	storet 1,mem_state_map
-	branch  h4_send_acl_trigger_clear
-
-redundant_payload:
-	fetch 1,mem_arq
-	set1 arqnx,pdata
-	store 1,mem_arq
-end_of_packet:
-	bpatch patch0c_5,mem_patch0c
-	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
-	
-process_fhs:
-	bpatch patch0c_6,mem_patch0c
-	enable enable_crc
-	enable decode_fec2
-	parse demod,bucket,72
-	isolate1 58,pdata
-	setflag true,mark_fhs_eir,mark
-	copy bt_adr,temp             /* save current address to aside */
-	ialigned bt_adr            /* send it to access gen */
-	ialigned fhs0			/* get fhs_misc */
-	pulse recalc                /* calc the lap just received from the other guy */
-	setsect 2,0xfffff             /* preset ms of shift reg as big mask */
-	setsect 3,0x0ffff             /* preset ms of shift reg as big mask */
-	nop 32                       /* 30 cycles after recalc */
-	iverify fhs_parity             /* check fhs_parity against ls 34 bits at shift reg, with msb 36 bits as mask */
-	deposit lap
-	store 3,extm_lap
-	deposit uap
-	store 1,extm_uap
-	copy temp,bt_adr             /* put the address back */
-	branch fhs_parity_ok,true     /* fhs parity failed */
-	branch error_payload
-fhs_parity_ok:
-	bpatch patch0c_7,mem_patch0c
-	parse demod,bucket,72
-	ialigned fhs1                   /* give host the information on class and fhs_misc */
-	ialigned am_addr                /* store the am_addr the master assigned us */
-	ialigned nap
-	ialigned regb                   /* store external clock in regb according to clock format */
-	force 0,pdata
-	parse demod,bucket,16  /* cycle through the crc */
-	branch error_payload,crc_failed
-	setarg 0x0ffffffc
-	iand regb,pdata
-	store 4,mem_clke_bt
-	deposit fhs_class
-	store 3,extm_class
-	deposit fhs_misc
-	store 1,extm_fhs_misc
-	deposit am_addr
-	store 1,extm_newconn_am_addr
-	deposit nap
-	store 2,extm_nap
-	deposit bt_clk
-	inject rxf,32
-	compare type_fhs,type,0x0f         /* see if this was fhs packet */
-	setflag true,mark_fhs_already_good,mark
-	branch end_of_packet
-
-clear_got_tx:
-	bpatch patch0d_0,mem_patch0d
-	fetch 1,mem_arq
-	rtnbit0 wack
-	set0 wack,pdata
-	setflip seqnx,pdata
-	store 1,mem_arq
-	fetch 1,mem_last_type
-	beq type_lmp,clear_got_txlmp
-	rtneq type_hv3
-	fetch 1,mem_op
-	rtnbit0 op_txl2cap,pdata
-	set0 op_txl2cap,pdata
-	set1 op_pkt_comp,pdata
-	store 1,mem_op
-	set0 mark_tx_l2cap,mark
-	fetch 2,mem_l2cap_tx_multi_offset
-	nrtn blank
-	fetch 1,mem_op
-	set0 op_pkt_comp,pdata
-	store 1,mem_op
-	branch l2cap_malloc_free
-
-clear_got_txlmp:
-	bpatch patch0d_1,mem_patch0d
-	fetch 1,mem_lmo_header_opcode
-	rshift pdata,pdata
-	beq LMP_START_ENCRYPTION_REQ,start_encryption
-	beq LMP_STOP_ENCRYPTION_REQ,stop_encryption
-	beq LMP_UNSNIFF_REQ, sniff_exit
-	beq LMP_ESCAPE,clear_lmp_escape
-	rtnne LMP_ACCEPTED
-	fetch 1,mem_lmo_payload
-	beq LMP_SCO_LINK_REQ,sco_link_req_by_slave
-	beq LMP_START_ENCRYPTION_REQ,clear_send_setup_complete
-	rtn
-
-clear_lmp_escape:
-	fetch 1,mem_lmo_payload
-	set1 7,pdata
-	rtn
-clear_send_setup_complete:
-	rtn master
-	fetch 1,mem_state
-	rtnbit1 state_conn_comp
-	jam LMP_SETUP_COMPLETE,mem_lmo_opcode2
-	rtn
-	
-// nokia BH-105  CALLING when reconnection
-sco_link_req_by_slave:
-	rtn master
-	fetch 1,mem_mode
-	isolate1 send_sco_when_slave,pdata
-	branch clean_mem_mode,true
-	//jam LMP_REMOVE_SCO_LINK_REQ,mem_lmo_opcode2
-	rtn
-clean_mem_mode:
-	set0 send_sco_when_slave,pdata
-	store 1,mem_mode
-	rtn
-	
-start_encryption:
-	bpatch patch0d_2,mem_patch0d
-	fetch 1,mem_state_map
-	set1 smap_encryption,pdata
-	store 1,mem_state_map
-	jam 1,core_encrypt
-	fetch 1,mem_state
-	isolate1 state_conn_comp,pdata
-	rtn
-
-stop_encryption:
-	bpatch patch0d_3,mem_patch0d
-	fetch 1,mem_state_map
-	set0 smap_encryption,pdata
-	store 1,mem_state_map
-	jam 0,core_encrypt
-	rtn
-
-
-sniff_init:
-	bpatch patch0d_4,mem_patch0d
-	copy clkn_bt,pdata
-	store 4,mem_lpm_delay_after_sniff
-	add clkn_bt,3,rega
-	branch sniff_init_master,master
-	add clke_bt,3,rega
-sniff_init_master:
-	fetcht 2,mem_tsniff
-	deposit rega
-	set0 27,pdata
-	idiv temp
-	fetch 2,mem_dsniff
-	call wait_div_end
-	remainder regc
-	isub regc,pdata
-	branch sniff_init_nowrap,positive
-	iadd temp,pdata
-sniff_init_nowrap:
-	iadd rega,pdata
-	store 4,mem_sniff_anchor
-	jam SWITCH_FLAG_INIT,mem_switch_flag
-	fetch 1,mem_state
-	set1 state_insniff,pdata
-	store 1,mem_state
-	fetch 1,mem_sniff_attempt
-	store 1,mem_current_sniff_attempt
-	setarg 0
-	store 3,mem_sniff_rcv
-	store 3,mem_sniff_lost
-	store 1,mem_sniff_unint_lost
-	jam BT_EVT_ENTER_SNIFF,mem_fifo_temp
-	call ui_ipc_send_event
-	fetch 2,mem_rx_window_sniff
-	store 2,mem_rx_window
-	nrtn master
-	add am_addr,-1,queue
-	rtn
-
-sniff_exit:
-	bpatch patch0d_5,mem_patch0d
-	fetch 1,mem_state
-	rtnbit0 state_insniff
-	set0 state_insniff,pdata
-	store 1,mem_state
-	fetch 2,mem_rx_window_init
-	store 2,mem_rx_window
-	disable wake
-	jam BT_EVT_EXIT_SNIFF,mem_fifo_temp
-	branch ui_ipc_send_event
-
-
-check_attempt:
-	bpatch patch0d_6,mem_patch0d
-	enable attempt
-	fetch 1,mem_state
-	bbit1 state_insniff,check_attempt_sniff
-	rtnmark1 mark_testmode						/* pdata won't be blank now, try attempt */
-	fetch 1,mem_arq
-	rtnbit1 wack
-	fetch 1,mem_lmp_to_send
-	nrtn blank
-	fetch 1,mem_op
-	rtnbit1 op_txl2cap
-check_attempt_nomore:
-	force 0,pdata
-	rtn
-
-check_attempt_sniff:
-	bbit0 state_insco,check_attempt_not_sco
-	fetch 1,mem_current_sniff_attempt
-	beq 2,check_attempt_sniff_restore_sco
-	fetch 1,mem_arq
-	bbit1 wack,check_attempt_notimeout
-	bmark0 mark_esco_rxok,check_attempt_notimeout
-check_attempt_sniff_restore_sco:
-	nbranch check_attempt_notimeout,master
-	fetch 1,mem_lmp_to_send
-	nbranch check_attempt_notimeout,blank
-check_attempt_sco_master:
-	fetch 1,mem_sco_poll
-	increase -1,pdata
-	store 1,mem_sco_poll
-	nbranch check_attempt_nomore,blank
-	jam param_sco_poll,mem_sco_poll
-	branch check_attempt_notimeout
-
-
-
-
-
-	
-check_attempt_not_sco:
-	fetch 1,mem_current_sniff_attempt
-	bne 1,check_attempt_notimeout
-	fetch 1,mem_current_sniff_timeout
-	branch check_attempt_notimeout,blank
-	increase -1,pdata
-	store 1,mem_current_sniff_timeout
-	fetch 1,mem_arq
-	rtnbit1 wack						// waiting for next ack
-	nrtn match						// waiting for next poll
-check_attempt_notimeout:
-	fetch 1,mem_current_sniff_attempt
-	increase -1,pdata
-	store 1,mem_current_sniff_attempt
-	rtn
-
-
-
-
-
-
-
-
-
-	/* enable user if sniff window vialation, queue is extra overhead */
-sniff_check_window:
-	bpatch patch0d_7,mem_patch0d
-	disable swfine
-	copy temp,stop_watch
-	call context_search_sniff_window
-	disable user
-	nrtn zero
-	force 0,stop_watch
-	enable user
-	rtn
-
-	//return true if it is esco context
-check_esco_amaddr:
-	fetch 1,mem_esco_addr
-	icompare 0xff,am_addr
-	rtn
-	
-
-parse_l2cap:	
-	bpatch patch0e_0,mem_patch0e
-	set0 mark_rxbuf_inuse,mark 
-parse_l2cap_cont:
-	jam L2CAP_RX_CLEAR,mem_l2cap_rx_done
-	fetch 1,mem_l2cap_rxbuff_inuse
-	rtn blank
-	isolate1 L2CAP_INUSE_BUFF1,pdata
-	arg mem_l2cap_rxbuff1,contr
-	call process_rx_l2cap_pkt,true
-	bpatch patch0e_1,mem_patch0e
-	fetch 1,mem_l2cap_rx_done
-	beq L2CAP_RX_DONE,parse_l2cap_release_buff1
-	
-	jam L2CAP_RX_CLEAR,mem_l2cap_rx_done
-	fetch 1,mem_l2cap_rxbuff_inuse
-	rtnbit0 L2CAP_INUSE_BUFF2
-	arg mem_l2cap_rxbuff2,contr	
-	call process_rx_l2cap_pkt
-	fetch 1,mem_l2cap_rx_done
-	beq L2CAP_RX_DONE,parse_l2cap_release_buff2
-	rtn
-		
-parse_l2cap_release_buff1:
-	fetch 1,mem_l2cap_rxbuff_inuse
-	set0 L2CAP_INUSE_BUFF1,pdata
-	store 1,mem_l2cap_rxbuff_inuse
-	setarg 0
-	store 2,mem_l2cap_rxbuff1_len
-	rtn
-parse_l2cap_release_buff2:
-	fetch 1,mem_l2cap_rxbuff_inuse
-	set0 L2CAP_INUSE_BUFF2,pdata
-	store 1,mem_l2cap_rxbuff_inuse
-	setarg 0
-	store 2,mem_l2cap_rxbuff2_len
-	rtn
-
-l2cap_buff1_inuse:
-	fetch 1,mem_l2cap_rxbuff_inuse
-	set1 L2CAP_INUSE_BUFF1,pdata
-	store 1,mem_l2cap_rxbuff_inuse
-	rtn
-
-l2cap_buff2_inuse:
-	fetch 1,mem_l2cap_rxbuff_inuse
-	set1 L2CAP_INUSE_BUFF2,pdata
-	store 1,mem_l2cap_rxbuff_inuse
-	rtn
-
-/******************************************/
-/**********  Transmit Packet  *************/
-/******************************************/
-
-slave_send_access:
-	bpatch patch0e_2,mem_patch0e
-	add clke_bt,1,bt_clk          /* slave start to use native clock */
-	call fetch_extm_bt_adr
-	force 0x03,freq_mode          /* connection frequency */
-	call tx_radio_freq
-	call start_transmitter
-	call start_tx_external
-	branch send_access_word
-	
-
-slave_conn_send_packet:
-	bpatch patch0e_3,mem_patch0e
-	call rf_setup_time_slave_slot
-	deposit clke_bt
-	fetcht 4,mem_next_btclk
-	isub temp,pdata
-	rtnne 1					/* missed slave slot */
-	compare type_null,type,0x1f
-	nbranch slave_conn_send_access,true
-	fetch 1,mem_rx_type
-	rtn blank					/* null packet, do nothing */
-slave_conn_send_access:
-	call slave_send_access
-transmit_packet:
-	compare type_id,type,0x1f        /* is this id only ? */
-	branch end_of_packet,true
-	rshift bt_clk,temp
-	or temp,0x40,white_init
-transmit_packet_whitened:
-	bpatch patch0e_4,mem_patch0e
-	enable enable_white
-	enable enable_hec
-	enable encode_fec1
-	set0 mark_longpacket,mark
-	deposit am_addr
-	inject mod,3             /* am_addr, temp is disabled */
-	deposit type
-	inject mod,4
-	fetch 1,mem_arq   /* aka mem_arq */
-	inject bucket,4  /* align up to flowx, arqnx, seqnx */
-	inject mod,3
-	enable enable_parity
-	inject mod,8   /* transmit parity */
-	disable encode_fec1
-	disable enable_parity
-	disable enable_hec
-	set0 PSK3M,radio_ctrl
-	arg 0,temp
-	call reserve_slot
-	bpatch patch0e_5,mem_patch0e
-	and type,0x1f,pdata
-	beq type_lmp, transmit_lmp
-	beq type_null, end_of_packet
-	beq type_poll, end_of_packet
-	beq type_fhs, transmit_fhs  /* master mode fhs need got_tx and ack */
-	beq type_dm1, transmit_dm1
-	beq type_dh1, transmit_dh1
-	beq type_hv3, transmit_hev
-	beq type_3dh1, transmit_3dh1
-	arg 4,temp
-	call reserve_slot
-	beq type_dm3, transmit_dm3
-	beq type_dh3, transmit_dh3
-	arg 8,temp
-	call reserve_slot
-	beq type_dh5, transmit_dh5
-	branch transmit_dm5	/* must be 14, dm5 */
-
-
-transmit_hev:
-	bpatch patch0e_6,mem_patch0e
-	enable encode_fec0
-	enable enable_crc
-	enable encrypt
-	force 30,loopcnt
-	arg mem_sco_obuf,contr
-transmit_ev_loop:
-	ifetch 1,contr
-	inject mod,8
-	loop transmit_ev_loop
-	bmark1 mark_esco,transmit_end
-	branch end_of_packet
-	
-transmit_fhs:
-	bpatch patch0e_7,mem_patch0e
-	fetch 1,mem_fhs_am_addr            /* this is the am_addr to assign to slave */
-	icopy am_addr
-	fetch 1,mem_fhs_misc
-	icopy fhs_misc    /* [7:6]SR [5:4]SP [3:1]PS [0]undef  */
-	fetch 3,mem_class   /* store away class */
-	icopy fhs_class
-	fetch 2,mem_nap
-	icopy nap
-	enable enable_crc
-	enable encode_fec2
-	copy bt_adr,rega
-	call fetch_self_bt_adr
-	pulse recalc
-	nop 32                    /* 30 cycles after recalc for sync word generation */
-	copy bt_clk,timeup
-	fetch 4,mem_clkn_bt
-	icopy bt_clk
-	preload fhs0
-	set1 58,pdata		/* eir */
-	inject mod,72
-	preload fhs1
-	inject mod,72
-	copy timeup,bt_clk
-	copy rega,bt_adr
-	enable enable_parity
-	inject mod,16   /* generate CRC */
-	disable enable_parity
-	branch end_of_packet
-
-transmit_lmp:    /* expect the payload ready as in bb spec */
-	bpatch patch0f_0,mem_patch0f
-	enable encrypt
-	enable enable_crc
-	enable encode_fec2
-	fetch 1,mem_lmo_header_length   /* this is the payload header */
-	and pdata,0x1f8,temp       /* temp is number of bits, check payload header format */
-	arg mem_lmo_header_length,contr
-	increase 8,temp   /* temp is in bits */
-transmit_lmp_loop:
-	add temp,-72,regc   /* regc is remainder */
-	nbranch transmit_lmp_finish,positive
-	ifetch 9,contr
-	inject mod,72
-	copy regc,temp
-	branch transmit_lmp_loop
-transmit_lmp_finish:
-	ifetch 9,contr
-	iinject mod,temp
-	branch transmit_end
-
-transmit_dm1:
-	enable encode_fec2
-	branch transmit_dmh
-transmit_dm3:
-transmit_dm5:
-	enable encode_fec2
-	set1 mark_longpacket,mark
-	branch transmit_dmh
-
-transmit_3dh1:
-	set1 PSK3M,radio_ctrl
-transmit_dh1:
-	enable encode_fec0
-	branch transmit_dmh
-	
-transmit_dh3:
-transmit_dh5:
-	set1 PSK3M,radio_ctrl
-	enable encode_fec0
-	set1 mark_longpacket,mark
-
-transmit_dmh:
-	bpatch patch0f_1,mem_patch0f
-	fetch 1,mem_state_map
-	bbit0 smap_edr,transmit_noedr
-	sub type,3,null
-	branch transmit_noedr,positive
-	disable encrypt
-	disable encode_fec2
-	enable encode_fec0
-	disable enable_white
-	set1 PSK,radio_ctrl
-	isolate1 PSK3M,radio_ctrl
-	branch transmit_edr3m,true
-	setarg 0xabeee
-	inject mod,20
-	branch transmit_edr_sync_end
-transmit_edr3m:
-	setarg 0x5faeba
-	inject mod,24
-	setarg 0x12
-	inject mod,6
-transmit_edr_sync_end:	
-	enable enable_white
-	set1 mark_longpacket,mark
-transmit_noedr:
-	enable encrypt
-	enable enable_crc
-	bmark1 mark_loopback,transmit_loopback
-	fetch 1,mem_tx_lch
-	inject mod,3
-	fetch 2,mem_tx_len
-	iforce loopcnt
-	bmark1 mark_longpacket,transmit_long
-	inject mod,5
-	branch transmit_stuff
-transmit_long:	
-	inject mod,13
-transmit_stuff:
-	deposit loopcnt
-	branch transmit_end,blank
-	fetch 2,mem_txptr
-	iforce contr
-transmit_stuff_loop:
-	ifetch 1,contr
-	inject mod,8
-	loop transmit_stuff_loop
-//	branch transmit_end
-
-transmit_end:
-	enable enable_parity
-	inject mod,16
-	disable enable_parity
-	call set_wait_ack
-	fetch 1,mem_state_map
-	bbit0 smap_edr,end_of_packet
-	force 0,pdata
-	inject mod,6				/* edr trailer */
-	branch end_of_packet
-
-
-transmit_loopback:
-	bpatch patch0f_2,mem_patch0f
-	bmark1 mark_longpacket,transmit_loopback_long
-transmit_loopback_short:
-	fetch 1,mem_lch_code
-	inject mod,3						/* LLID and FLOW */
-	fetch 1,mem_len	/* take packet length */
-	iforce regc
-	inject mod,5
-	branch transmit_loopback_cont
-transmit_loopback_long:
-	fetch 1,mem_lch_code
-	inject mod,3						/* LLID and FLOW */
-	fetch 2,mem_len	/* take packet length */
-	iforce regc
-	inject mod,13
-transmit_loopback_cont:
-	arg mem_rxbuf,contr
-transmit_loopback_loop:	
-	copy regc,null
-	branch transmit_loopback_end,zero
-	ifetch 1,contr
-	inject mod,8
-	increase -1,regc
-	branch transmit_loopback_loop
-transmit_loopback_end:
-	fetch 2,mem_tst_pktcnt_dmh
-	increase 1,pdata
-	store 2,mem_tst_pktcnt_dmh
-	branch transmit_end
-	
-
-apply_switch_clke:
-	fetch 4,mem_clke_bt
-	add pdata,7,rega
-	fetch 2,mem_slot_offset
-	nbranch apply_switch_nozero,blank
-	increase -3,rega
-	branch apply_switch_wait_loop
-apply_switch_nozero:
-	mul32 pdata,12,pdata
-	hfetcht 2,core_halfslot
-	increase 1,temp
-apply_switch_loop:
-	isub temp,pdata
-	nbranch apply_switch_bt,positive
-	increase -1,rega
-	branch apply_switch_loop
-apply_switch_bt:
-	sub pdata,0,pdata
-apply_switch_wait_loop:
-	until null,oneslot
-	compare 0,clkn_bt,3
-	nbranch apply_switch_wait_loop,true
-	iforce clke_rt
-	copy rega,clke_bt
-	iforce clke_rt
-	rtn
-	
-
-calc_slot_offset:
-	bpatch patch0f_3,mem_patch0f
-	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:
-	arg 3750,temp
-	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 wait_div_end
-	quotient pdata
-	store 2,mem_slot_offset
-	rtn
-
-calc_clke_offset:
-	bpatch patch0f_4,mem_patch0f
-	deposit clke
-	copy clkn,temp
-	isub temp,null
-	nsetflag positive,44,pdata
-	isub temp,temp
-	setarg 3750
-	isolate0 15,temp
-	branch calc_clke_pos,true
-	setarg -61786
-	iadd temp,temp
-calc_clke_pos:
-	storet 6,mem_le_clk_offset
-	rtn le
-	storet 6,mem_clk_offset
-	rtn
-
-calc_clke:
-	disable clknt
-	fetch 6,mem_le_clk_offset
-	branch calc_clke2,le
-	fetch 6,mem_clk_offset
-calc_clke2:
-	iadd clkn,alarm
-	increase 10,alarm
-	setarg 3750
-	isub alarm,pdata
-	isolate0 15,pdata
-	branch calc_clke_pos_adj,true
-	setarg 0xf15a
-	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 ***********/
-/******************************************/
-
-
-calc_radio_freq:
-	bpatch patch0f_5,mem_patch0f
-	call set_sync_on
-	copy bt_clk,pdata
-	and_into 0x180,pdata
-	compare 3,freq_mode,0x07
-	nbranch freq_not_connection,true    /* don't do the hack if not in connection */
-	rshift3 pdata,pdata
-	iadd freq_index,pdata
-	branch do_hop_mod_now
-freq_not_connection:	
-	copy freq_index,pdata
-do_hop_mod_now:
-	div pdata,79
-	pulse recalc         /* now is good time to recalc id */
-	call wait_div_end
-	remainder rega
-	add rega,-40,temp
-	branch odd_half,positive
-	lshift rega,temp
-	branch freq_result
-odd_half:
-	lshift temp,temp
-	increase 1,temp
-freq_result:	
-	bpatch patch0f_6,mem_patch0f
-	fetch 1,mem_mode
-	bbit0 afh_change,afh_process_con
-afh_process_0:	
-	fetch 4, mem_afh_instant   
-	isub bt_clk, null
-	branch afh_process_con,positive
-	call afh_clear
-	fetch 1,mem_afh_new_mod
-	rtn blank
-	fetch 1,mem_mode
-	set1 afh_enable,pdata
-	store 1,mem_mode
-	fetch 5,mem_afh_map_new
-	store 5,mem_afh_map_lo
-	ifetch 5,contr
-	store 5,mem_afh_map_hi
-	call afh_process_freq_map
-afh_process_con:
-	fetch 1,mem_mode
-	rtnbit0 afh_enable
-	isolate1 1,bt_clk
-	branch afh_same_channel,true	/* at odd slot, use the same as last even */
-	rshift3 temp,rega
-	and temp,7,queue
-	setarg mem_afh_map_lo  
-	iadd rega, rega
-	ifetch 1, rega
-	qisolate0 pdata
-	branch afh_process_1,true		/* not in map, do afh */
-	deposit temp
-	branch afh_process_end
-afh_process_1:
-	fetch 1, mem_afh_used
-	iforce regb                     
-	deposit bt_clk
-	and_into 0x180, pdata
-	rshift3 pdata,pdata
-	iadd freq_index,pdata
-	idiv regb
-	setarg mem_afh_map     
-	call wait_div_end
-	remainder rega
-	iadd rega,contr
-	ifetch 1,contr
-afh_process_end:	
-	store 1,mem_afh_index
-	iforce temp  
-  	rtn
-
-afh_same_channel:
-	fetch 1, mem_afh_index           /* last afh index  */
-	iforce temp
-	rtn
-
-afh_clear:
-	fetch 1,mem_mode
-	set0 afh_enable,pdata
-	set0 afh_change,pdata
-	store 1,mem_mode
-	rtn
-/*
-fixed_frequency:
-	fetcht 1,mem_fixed_freq
-	rtn
-*/
-afh_process_freq_map:
-	bpatch patch0f_7,mem_patch0f
-	arg mem_afh_map,contw
-	force 10,loopcnt
-	call memset0
-	arg mem_afh_map,contw
-	force 0,regC
-	force 2,queue
-process_freq_3:	
-	fetch 5,mem_afh_map_lo
-	iforce temp
-	compare 2,queue,0xff
-	branch process_freq_1,true
-	rshift temp,temp
-process_freq_1:	
-	isolate0 0,temp
-	branch process_freq_0,true
-	deposit regC
-	istore 1,contw
-process_freq_0:
-	rshift2 temp,temp
-	increase 2,regC
-	compare 40,regC,0xfe
-	nbranch process_freq_2,true
-	fetch 5,mem_afh_map_hi
-	iforce temp
-	compare 2,queue,0xff
-	branch process_freq_2,true
-	rshift temp,temp
-process_freq_2:	
-	sub regC,78,null
-	branch process_freq_1,positive
-	force 1,regC
-	increase -1,queue
-	nbranch process_freq_3,zero
-	arg mem_afh_map,rega
-	deposit contw
-	isub rega,pdata
-	store 1,mem_afh_used
-	rtn
-
-rx_radio_freq:
-	bpatch patch10_0,mem_patch10
-	call calc_radio_freq
-	fetch 1,mem_debug_config
-	bbit0 debug_rx_fixed_freq,rx_radio_freq_now
-	fetcht 1,mem_rx_fixed_freq
-rx_radio_freq_now:
-	branch set_freq_rx
-	
-
-tx_radio_freq:
-	bpatch patch10_1,mem_patch10
-	call calc_radio_freq
-	fetch 1,mem_debug_config
-	bbit0 debug_tx_fixed_freq,tx_radio_freq_now
-	fetcht 1,mem_tx_fixed_freq
-tx_radio_freq_now:
-	branch set_freq_tx
-	
-
-fetch_giac:
-	force 0,uap
-	fetch 3,mem_glap
-	iforce lap
-	rtn
-
-fetch_page_bt_adr:
-	bpatch patch10_2,mem_patch10
-	fetch 1,mem_hci_puap
-	icopy uap
-	fetch 3,mem_hci_plap
-	icopy lap
-	rtn
-
-fetch_self_bt_adr:
-	bpatch patch10_3,mem_patch10
-	fetch 2,mem_nap
-	icopy nap
-	fetch 1,mem_uap
-	icopy uap
-	fetch 3,mem_lap
-	icopy lap                 /* copy self_adr,bt_adr */      /* use own address */
-	rtn
-
-fetch_extm_bt_adr:
-	bpatch patch10_4,mem_patch10
-	fetch 2,mem_pnap
-	icopy nap
-	fetch 1,mem_puap
-	icopy uap
-	fetch 3,mem_plap
-	icopy lap         
-	rtn
-
-
-fetch_diac:
-	bmark1 mark_all_diac,fetch_diac_do
-	rtnmark0 mark_inquiry_state
-	rtnmark0 mark_periodical_diac
-fetch_diac_do:
-	and_into -256,lap
-	pulse recalc
-	nop 32
-	rtn
-
-
-shutdown_radio:
-	bpatch patch10_5,mem_patch10
-	branch shutdown_radio0,is_rx
-	jam 0xd4, rf_tx_pa_ib
-	nop 4
-	jam 0xd2, rf_tx_pa_ib
-	nop 4
-	jam 0xd1, rf_tx_pa_ib
-	nop 4	
-	fetch 1,mem_tx_power
-	beq TX_POWER_0DB,shutdown_radio_0db
-	beq TX_POWER_3DB,shutdown_radio_3db
-	beq TX_POWER_5DB,shutdown_radio_5db
-	beq TX_POWER_f3DB,shutdown_radio_f3db
-	beq TX_POWER_f5DB,shutdown_radio_f5db
-	beq TX_POWER_PAIR,shutdown_radio_pair
-shutdown_radio_5db:	
-shutdown_radio_0db:
-	jam 0xd0, rf_tx_pa_ib
-	jam 0xe0, rf_tx_pa_gc
-shutdown_radio0:
-	force 0,radio_ctrl
-	disable is_rx
-	disable is_tx
-	pulse packet_end
-	jam 0x0,rfen_mdm
-	jam 0x0,rfen_tx
-	jam 0x0,rfen_rx
-	jam 0,rfen_sn
-	jam 0x70,rfen_msc
-	jam 0x0,rfen_adc
-	rtn
-	
-shutdown_radio_pair:
-shutdown_radio_f5db:
-shutdown_radio_f3db:
-shutdown_radio_3db:
-	jam 0xd0,rf_tx_pa_ib
-	jam 0xc0,rf_tx_pa_gc
-	branch shutdown_radio0
-
-set_sync_on:
-	bpatch patch10_6,mem_patch10
-	jam 0x0,rfen_mdm					/* if called from tx or rx */
-	jam 0x0,rfen_tx
-	jam 0x18,rfen_rx
-	jam 0xa7,rfen_sn
-	jam 0x7f,rfen_msc
-	rtn
-
-set_freq_rx:
-	bpatch patch10_7,mem_patch10
-		/* IF is +2MHz */
-	storet 1,mem_last_freq
-	add temp,rx_freq_offset,rega			/* index to frequency */
-	jam 0x07,rf_balun_ctrim                                         /*Max added, for best sensitivity*/
-	branch rf_write_freq
-rf_rx_enable:
-	bpatch patch11_0,mem_patch11
-	jam 0xcf,rfen_tx
-	nop 10					/* wait adc clk48 ready */
-	jam 0xff,rfen_rx
-	jam 0xaf,rfen_sn
-	jam 0xff,rfen_msc
-	nop 10
-	jam 0xa0,rfen_mdm
-	rtn
-	
-set_freq_tx_offset:
-	fetch 1,mem_250k_freq_enable	//default: 0
-	branch set_freq_tx_2M_offset,blank
-set_freq_tx_0M_offset:
-	add temp,2,rega			//250k
-	rtn
-set_freq_tx_2M_offset:
-	add temp,0,rega			// bt 2M Medium Frequency
-	rtn
-
-set_freq_tx:
-	bpatch patch11_1,mem_patch11
-	storet 1,mem_last_freq
-	call set_freq_tx_offset
-	call rf_write_freq
-	setarg param_pll_setup
-	call sleep
-txon:	
-	jam 0x1,rfen_adc
-	jam 0x3c,rfen_rx
-	jam 0xe0,rfen_tx
-	jam 0x12,rf_balun_ctrim
-	nop 10
-	jam 0x01,rfen_mdm
-	jam 0x3d,rfen_mdm
-	nop 10
-	jam 0xb7,rfen_sn
-	nop 10
-	jam 0x7f, rfen_mdm
-txon_power_select:	
-	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_f3DB,set_tx_power_f3db	
-	beq TX_POWER_f5DB,set_tx_power_f5db
-	beq TX_POWER_PAIR,set_tx_power_pair
-set_tx_power_0db:	
-	jam 0xf0,rf_tx_pa_gc
-	call txon_common
-	jam 0xd8,rf_tx_pa_ib
-	rtn
-
-set_tx_power_3db:
-	jam 0xdf,rf_tx_pa_gc
-	call txon_common
-	jam 0xdf,rf_tx_pa_ib
-	rtn
-
-set_tx_power_5db:
-	jam 0xff,rf_tx_pa_gc
-	call txon_common
-	jam 0xdf,rf_tx_pa_ib
-	rtn
-set_tx_power_f3db:
-	jam 0xce,rf_tx_pa_gc
-	call txon_common
-	jam 0xd8,rf_tx_pa_ib
-	rtn
-
-set_tx_power_f5db:
-	jam 0xcb,rf_tx_pa_gc
-	call txon_common
-	jam 0xd8,rf_tx_pa_ib
-	rtn
-
-set_tx_power_pair:
-	jam 0xd0,rf_tx_pa_ib
-	jam 0xc0,rf_tx_pa_gc
-	jam 0x4c,0x8957
-	jam 0x6c,0x8958
-	jam 0x50,0x8959
-	rtn
-
-txon_common:
-	nop 4
-	jam 0xd1,rf_tx_pa_ib
-	nop 4
-	jam 0xd2,rf_tx_pa_ib
-	nop 4
-	jam 0xd4,rf_tx_pa_ib
-	rtn
-
-
-initialize_radio:
-	jam clksel_rc,core_clksel
-initialize_radio_wait:
-	fetch 2,mem_rf_init_ptr
-	bbit0 14,initialize_radio_wait
-	iforce contr
-	arg 0x8900,temp
-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 patch11_2,mem_patch11
-	call lpm_cal_xtal_startup
-	call switchto_dpllclk
-//	ncall check_dpll,wake
-	setarg param_dpll_start_delay
-	iadd clkn_bt,pdata
-	store 4,mem_dpll_clkn
-	set1 RESET,radio_ctrl
-	force 0,radio_ctrl
-	ncall do_rccal,wake
-	branch set_rccal
-
-	/* rega is frequency, 00=2400Mhz */
-rf_write_freq:
-	bpatch patch11_3,mem_patch11
-	setarg 2400
-	iadd rega,temp
-	fetch 1,mem_fcomp_mul
-	jam 0x04,rf_pll_rstn
-	imul32 temp,pdata
-	fetcht 1,mem_fcomp_div
-	idiv temp
-	call wait_div_end
-	quotient rega			/* rega is FLOOR(FVCO/fcomp) */
-	remainder pdata		
-	lshift16 pdata,pdata
-	lshift4 pdata,pdata		/* pdata is frac * 2^20 */
-	idiv temp
-	call wait_div_end
-	quotient pdata		/* pdata is frac *2^20/fcomp */
-	lshift8 pdata,pdata
-	lshift pdata,pdata
-	ior rega,pdata
-	hstore 4,rf_pll_intg
-	jam 0x44,rf_pll_rstn
-	jam 0xc4,rf_pll_rstn
-	rtn
-
-	
-do_rccal:
-	bpatch patch11_4,mem_patch11
-	jam 0x02,rfen_adc
-	setarg 250000
-	call sleep					/* wait clkpll&xtal stable */
-	jam 0x7f,rfen_rx
-	nop 130
-	jam 0x30,rf_rccal_ctrl
-	jam 0xd0,rfen_tx
-	jam 0x70,rf_rccal_ctrl
-	jam 0xf0,rf_rccal_ctrl
-	force 50,loopcnt
-do_rccal_loop:
-	hfetch 1,rf_rccal_result
-	bbit1 5,do_rccal_end
-	loop do_rccal_loop
-do_rccal_end:
-	store 1,mem_rf_rccal
-	jam 0,rfen_tx
-	jam 0,rfen_rx
-	jam 0x00,rfen_adc
-	rtn
-
-set_rccal:
-	bpatch patch11_5,mem_patch11
-	fetch 1,mem_rf_rccal
-	set1 5,pdata
-	hstore 1,rf_rccal_ctrl
-	hfetcht 1,rf_bpf_ctrim
-	and_into 7,temp
-	lshift3 pdata,pdata
-	ior temp,pdata
-	hstore 1,rf_bpf_ctrim
-	hfetch 1,rf_bpf_ib
-	set0 bpf_rccal,pdata
-	hstore 1,rf_bpf_ib
-	hfetch 1,rf_adc_rccal
-	set0 adc_rccal,pdata
-	hstore 1,rf_adc_rccal
-	rtn
-
-save_rssi:
-	bpatch patch11_6,mem_patch11
-	hfetch 2,rf_afc_d2a
-	rshift4 pdata,pdata
-	rshift3 pdata,pdata
-	sub pdata,0,pdata
-bcd:
-	and_into 0xff,pdata
-	div pdata,10
-	call wait_div_end
-	quotient pdata
-	lshift4 pdata,pdata
-	remainder temp
-	ior temp,pdata
-	store 1,mem_rssi			/* bcd value */
-	rtn
-
-	
-switchto_dpllclk:
-	jam clksel_rc,core_clksel
-	hfetch 1,rf_clkpll_frac+2
-	set0 4,pdata
-	set0 5,pdata
-	hstore 1,rf_clkpll_frac+2
-	jam 0x00,rfen_ck
-	jam 0x00,rfen_msc
-	jam 0x70,rfen_msc
-	jam 0xff,rfen_ck
-	hfetch 1,rf_clkpll_frac+2
-	set1 4,pdata
-	set1 5,pdata
-	hstore 1,rf_clkpll_frac+2
-	call init_lpm_ctrl
-	hfetch 1,rf_clkpll_int
-	set1 7,pdata
-	hstore 1,rf_clkpll_int
-	set0 7,pdata
-	hstore 1,rf_clkpll_int
-	set1 7,pdata
-	hstore 1,rf_clkpll_int
-	jam clksel_dpll,core_clksel
-	nop 1
-	jam clksel_xtal,core_clksel
-	hfetch 1,rf_clkpll_frac+2
-	and_into 0xcf,pdata
-	hstore 1,rf_clkpll_frac+2
-	or_into 0x30,pdata
-	hstore 1,rf_clkpll_frac+2
-	rtn
-
-	
-xtal_fast_wake:
-	setarg 0xf0f
-	branch lpm_write_config
-
-init_lpm_ctrl:
-	setarg 0x80f
-	branch lpm_write_config
-
-
-
-start_receiver:
-	bpatch patch11_7,mem_patch11
-	call rf_rx_enable
-	disable is_tx
-	enable is_rx
-	pulse init_encrypt
-	rtn
-
-prep_crypt:
-	bpatch patch12_0,mem_patch12
-	fetch 1,mem_state_map
-	isolate1 smap_encryption,pdata
-	setflag true,0,pdata
-	hstore 1,core_encrypt
-	arg mem_kc,contr
-	ifetch 9,contr
-	iforce kc_ls
-	ifetch 7,contr
-	iforce kc_ms
-	fetch 1,mem_key_size
-	add pdata,-1,g1l
-	pulse kc_p_activate               /* immediately start calculating primary Key */
-	rtn
-	
-wait_access_end:
-	deposit clke
-	store 6,mem_sync_clke
-	disable decode_fec0
-	nbranch shutdown_radio,sync
-	arg param_clke_cal,clke_rt
-	increase 1,clke_bt
-	and_into 0x1fc,clke_bt
-	rtn
-
-
-
-wait_access_mhalfbnd:
-	enable decode_fec0
-wait_access_mhalfbnd_correlate:
-	correlate null,mhalfbnd    /* keep correlating until sync is found, or clke half */
-	branch wait_access_end,sync
-	compare 0x02,clke_bt,0x02
-	nbranch wait_access_mhalfbnd_correlate,true
-	branch wait_access_end
-
-wait_access_clkn_rt:
-	bpatch patch12_1,mem_patch12
-	arg param_conn_access,timeup	/* found sync must occur within this time */
-	enable decode_fec0
-	correlate clkn_rt,meet    /* keep correlating until sync is found, or until clkn_rt timeup */
-	disable decode_fec0
-	nbranch shutdown_radio,sync
-	rtn
-
-wait_access_forever:
-	bpatch patch12_2,mem_patch12
-	enable decode_fec0
-	correlate null,timeout    /* keep correlating until sync is found, or timeout */
-	disable decode_fec0
-	nbranch shutdown_radio,sync
-	arg param_clke_cal,clke_rt
-	and_into 0x1fc,clke_bt
-	rtn
-
-	/* reserve slots for mult-slot packet */
-reserve_slot:
-	bpatch patch12_3,mem_patch12
-	iforce rega
-	deposit bt_clk
-	iadd temp,timeup
-	copy timeup,pdata
-	store 4,mem_next_btclk
-	deposit rega
-	rtn
-
-	/* pdata = clks ahead of bt_clk */
-ahead_window:
-	copy pdata,temp
-	bpatch patch12_4,mem_patch12
-	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
-
-
-setup_clk:
-	bpatch patch12_5,mem_patch12
-	branch setup_clkn,clknt
-	until clke_rt,meet
-skip_setup_clke:
-	copy clke_bt,temp
-	branch setup_clknbt
-setup_clkn:
-	branch skip_setup_clkn,attempt
-	until clkn_rt,meet
-skip_setup_clkn:
-	copy clkn_bt,temp
-setup_clknbt:
-	branch setup_clk11,user
-	compare 1,temp,3
-	nbranch setup_clk,true
-setup_complete:
-	bpatch patch12_6,mem_patch12
-	fetch 1,mem_state
-	rtnbit0 state_inconn
-	fetch 4,mem_next_btclk
-	isub temp,pdata
-	nrtn positive
-	sub pdata,0xff,null
-	branch setup_clk,positive
-	rtn
-setup_clk11:
-	compare 3,temp,3
-	nbranch setup_clk,true
-	branch setup_complete
-
-rf_setup_time:
-	bpatch patch12_7,mem_patch12
-	arg param_rf_setup,timeup
-	branch setup_clk
-	
-rf_setup_time_slave_slot:
-	disable user
-	branch rf_setup_time
-
-rf_setup_time_master_slot:
-	enable user
-	branch rf_setup_time
-	
-start_transmitter:
-	bpatch patch13_0,mem_patch13
-	call prep_crypt
-	disable is_rx
-	enable is_tx
-	rtn
-
-
-
-start_tx_native:
-	bpatch patch13_1,mem_patch13
-	arg param_tx_setup,timeup
-	until clkn_rt,meet         /* wait until start_tx time */
-	pulse init_encrypt
-	rtn
-
-start_rx_native:
-	bpatch patch13_2,mem_patch13
-	arg param_rx_setup,timeup
-	until clkn_rt,meet
-	rtn
-
-
-start_tx_external:
-	bpatch patch13_3,mem_patch13
-	arg param_tx_setup,timeup
-	until clke_rt,meet         /* wait until start_tx time */
-	pulse init_encrypt
-	rtn
-
-send_access_word:
-	bpatch patch13_4,mem_patch13
-	preload access          /* load in access word ready to be sent */
-	enable encode_fec0
-	set1 TXGFSK,radio_ctrl
-	inject mod,72
-	disable encode_fec0
-	rtn
-
-
-scan_mode_whiten:
-	copy xin,temp
-	or_into 0x60,temp                /* extend xin with 5->1, 6->1 */
-	copy temp,white_init
-	rtn
-
-
-
-	/* return blank if free amaddr is found */
-get_free_amaddr:
-	bpatch patch13_5,mem_patch13
-	fetch 1,mem_current_amaddr
-	increase 1,pdata
-	bne param_esco_addr,get_free_amaddr_cont
-	force 1,pdata
-get_free_amaddr_cont:
-	store 1,mem_current_amaddr
-	iforce am_addr
-	rtn
-
-get_clk:
-	copy clkn,temp
-	rtn master
-	copy clke,temp
-	rtn
-
-get_clkbt:
-	deposit clkn_bt
-	rtn master
-	deposit clke_bt
-	rtn
-
-
-supervision_update:
-	bpatch patch13_6,mem_patch13
-	fetcht 4,mem_supervision_timer
-	call get_clkbt
-	isub temp,timeup					/* and to 28 bits */
-	deposit timeup
-	fetcht 2,mem_supervision_to
-	lshift temp,temp
-	isub temp,pdata
-	rtn
-	
-supervision_flush:
-	bpatch patch13_7,mem_patch13
-	call get_clkbt
-	store 4,mem_supervision_timer
-	rtn
-
-assert:
-	bpatch patch14_0,mem_patch14
-	branch assert
-	
-loop:
-	branch loop
-
-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:
-	/* clear specified sched ram */
-	arg 0x10,loopcnt
-	arg 0,contw
-	call memset0
-	arg mem_le_state,contw
-	arg 10,loopcnt
-	call memset0
-	jam 0,mem_sp_calc
-	jam 0,mem_fifo_temp
-	jam 0,mem_le_testtype
-	jam 0,mem_debug_config
-	jam 0,mem_lmp_conn_state
-	bpatch patch14_1,mem_patch14
-	jam 0,mem_connection_options
-	jam 0,mem_tester_emulate
-	jam 0,mem_tester_cnt
-	setarg param_glap
-	store 3,mem_glap
-	setarg param_acl_pktlen
-	store 2,mem_acl_pktlen
-	jam param_sco_pktlen,mem_sco_pktlen
-	jam param_acl_pktcnt,mem_acl_pktcnt
-	jam param_sco_pktcnt,mem_sco_pktcnt
-	setarg param_hci_version
-	store 3,mem_hci_version
-//	setarg param_lmp_version
-//	store 3,mem_lmp_version
-//	setarg param_lmp_subversion
-//	store 2,mem_lmp_subversion
-	jam 0x60,mem_fhs_misc		/* R1 for 1.28s ps interval,P2 */
-	jam param_max_slot,mem_max_slot
-	jam 0x02,mem_fw_ver		/* set firmware version */
-ifdef SIMPLE_PAIRING
-	fetch 1,mem_ssp_enable
-	ncall init_memp,blank
-endif
-ifdef SECURE_CONNECTION
-	fetch 1,mem_le_secure_connect_enable
-	ncall init_memp_256,blank
-endif
-	bpatch patch14_2,mem_patch14
-	rtn wake
-	setarg 0
-	store 2,mem_tx_len
-	rshift clkn_bt,pdata
-	store 4,mem_last_clkn
-	rtn
-
-
-
-
-/*****************************************LPO************************************************/
-
-lpmstate:
-	setarg 0xee21
-	hstore 2,core_clkoff			// disable unused peripherals
-	hfetch 4,core_gpio_in
-	store 4,mem_saved_gpio_in
-	hfetch 1,core_lpm_ldocnt
-	store 1,mem_wakup_from_power_flag
-	bbit0 gpio_latch,loadcode		// power up boot
-	enable wake
-	bbit0 cold_wake,lpmwake		
-	disable wake
-	deposit auxcnt
-	nbranch lpmwake,blank		// sleep interrupted, wakeup
-	hfetch 1,core_lpm_ctrl + 3
-	bbit1 reload_code,lpmwake
-	arg param_hibernate_clks,temp
-	branch lpm_enter_sleep
-lpmwake:
-	hfetch 3,core_lpm_xtalcnt
-	hstore 3,core_lpm_reg
-	ifetch 1,contr
-	or_into isogate_mask,pdata		// open all isolation gate&power switch
-	istore 1,contw
-	call lpm_write_ctrl2
-	hfetch 1,core_lpm_isogate
-	set1 enable_retmem,pdata
-	hstore 1,core_lpm_isogate
-	call lpm_write_ctrl2
-	call lpm_load_context,wake
-	hfetch 1,core_lpm_reg+2
-	set0 gpio_latch,pdata			// enable gpio fuction
-	hstore 1,core_lpm_reg+2
-	call lpm_write_ctrl2
-	nbranch loadcode,wake		// wakeup from hibernate
-	rtnmark0 mark_otp_encrypt
-	jam lock_otp,core_misc_ctrl	// disable further read/write of key
-	rtn 
-
-lpm_load_context:
-	fetch 1,mem_saved_spidctrl
-	hstore 1,core_spid_ctrl
-	fetch 3,mem_saved_gsel
-	hstore 3,core_gpio_sel
-	fetch 4,mem_saved_gpio+4
-	hstore 4,core_gpio_out0
-	fetch 4,mem_saved_gpio
-	hstore 4,core_gpio_oe0
-	fetch 8,mem_saved_gpio+8
-	hstore 8,core_gpio_pu0	
-	fetch 8,mem_saved_mark
-	iforce mark
-	hfetch 8,core_gpio_wakeup_low
-	store 8,mem_gpio_wakeup_low
-	call load_ucode
-	rtn
-
-lpm_save_context:
-	deposit mark
-	store 8,mem_saved_mark
-	hfetch 8,core_gpio_oe0
-	store 8,mem_saved_gpio
-	ifetch 8,contr
-	istore 8,contw
-	hfetch 3,core_gpio_sel
-	store 3,mem_saved_gsel
-	hfetch 1,core_spid_ctrl
-	store 1,mem_saved_spidctrl
-	branch lpm_write_gpio_wakeup
-
-lpo_calibration:
-	hfetch 1,core_bist_ctrl
-	nbranch lpo_cal_inited,blank
-	fetch 3,mem_clks_per_lpo
-	nrtn blank
-	jam 0xc0,core_bist_ctrl
-	jam ccnt_start,core_misc_ctrl
-lpo_cal_inited:
-	hfetch 1,core_perf_status
-	rtnbit0 1
-	hfetch 3,core_clk_counter
-	store 3,mem_clks_per_lpo
-	rtn
-
-
-	/* temp is synced clke */
-lpm_adjust_clk:
-	bpatch patch14_3,mem_patch14
-	deposit clke
-	call clk_diff_rt
-	fetcht 4,mem_sleep_counter_all
-	sub temp,0xff,null
-	rtn positive				// interval too small
-	lshift8 pdata,pdata
-	lshift4 pdata,pdata
-	idiv temp
-	call wait_div_end
-	quotient pdata
-	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
-
-
-	/* temp is lpo counter for doze */
-lpm_doze:
-	fetch 1,mem_lpm_config+2
-	set1 reload_code,pdata
-	store 1,mem_lpm_config+2
-	branch lpm_hibernate_normal
-	
-
-	/* no retention memory at all */
-lpm_hibernate:
-	arg param_hibernate_clks,temp
-	fetch 1,mem_lpm_config+1
-	set0 7,pdata					/* lowest lpo */
-	store 1,mem_lpm_config+1
-lpm_hibernate_normal:
-	bpatch patch14_4,mem_patch14
-	call lpm_write_gpio_wakeup
-	fetch 1,mem_lpm_hibernate_switch
-	store 1,mem_lpm_xtalcnt + 4
-	fetch 1,mem_lpm_xtalcnt + 2
-	set1 cold_wake,pdata
-	store 1,mem_lpm_xtalcnt + 2
-
-	/* temp is lpo clocks to sleep */
-lpm_sleep:
-	bpatch patch14_5,mem_patch14
-	call xtal_fast_wake
-	fetch 4,mem_sleep_counter_all
-	iadd temp,pdata
-	store 4,mem_sleep_counter_all
-	call lpm_save_context
-	fetch 5,mem_lpm_xtalcnt
-	hstore 4,core_lpm_reg
-	rshift32 pdata,rega
-	until null,lpo_edge
-	deposit clkn
-	store 6,mem_sleep_clkn
-	jam lpmreg_sel_ctrl2,core_lpm_wr
-	until null,lpo_edge
-	until null,lpo_edge
-	deposit rega
-	hstore 1,core_lpm_isogate
-	jam lpmreg_sel_ctrl2,core_lpm_wr
-lpm_enter_sleep:
-	until null,lpo_edge
-	until null,lpo_edge
-	hstoret 4,core_lpm_reg
-	jam lpmreg_sel_counter,core_lpm_wr
-	until null,never
-
-
-
-
-lpm_recover_clk:
-	bpatch patch14_6,mem_patch14
-	setarg 0
-	copy auxcnt,null
-	branch lpm_recover_timeout,zero
-	hfetch 1,core_lpm_xtalcnt
-	hfetcht 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
-	arg 3750,temp
-	idiv temp
-	call wait_div_end
-	quotient pdata
-	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
-	hfetch 1,core_gpio_in1
-	or_into 0xf0,pdata
-	istore 1,contw
-	rtn
-	
-lpm_dispatch:
-	bpatch patch14_7,mem_patch14
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	rtn blank
-	fetch 1,mem_lpm_mode
-	rtn blank
-	fetch 1,mem_ssp_enable
-	branch lpm_dispatch_next,blank
-	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
-	rtn blank
-lpm_dispatch_next:
-	fetch 1,mem_le_sc_calc
-	nrtn blank	
-	call lpm_check_wake_lock
-	nrtn blank
-	fetch 1,mem_context
-	compare 3,pdata,0x7							/* sco won't sleep */
-	nbranch lpm_dispatch_unconn,true
-	fetch 2,mem_context + coffset_tsniff
-	rtn blank										/* role switch */
-	rtn wake
-	bpatch patch15_0,mem_patch15
-lpm_dispatch_next2:
-	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
-	bpatch patch15_1,mem_patch15
-	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 patch15_2,mem_patch15
-	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 patch15_3,mem_patch15
-	fetch 1,mem_context
-	rtnbit1 state_inconn					// wont sleep in connection
-	rtnbit1 state_inpage					// wont sleep when paging
-	fetch 1,mem_ssp_enable
-	branch lpm_unconn_nossp,blank
-	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
-	rtn blank
-lpm_unconn_nossp:
-	bpatch patch15_4,mem_patch15
-	fetch 1,mem_le_adv_enable
-	nbranch lpm_unconn_cont,blank
-	fetch 1,mem_scan_mode
-	rtn blank
-lpm_unconn_cont:
-	fetch 2,mem_lpm_interval
-	rtn blank
-lpm_sleep_btclk:
-	fetcht 1,mem_lpm_overhead
-	isub temp,pdata
-	arg 7500,temp				/* 1.25ms */
-	imul32 temp,pdata
-	branch lpm_dispatch_sleep
-
-lpm_set_mult:
-	bpatch patch15_5,mem_patch15
-	disable wake
-	fetch 1,mem_state
-	rtnbit0 state_insniff
-	nbranch lpm_not_match,match
-	call lpm_match
-	fetch 2,mem_rx_window_sniff
-	store 2,mem_rx_window
-	fetch 1,mem_arq
-	bbit1 wack,lpm_mult_short
-	bmark0 mark_lpm_mult_enable,lpm_mult_short
-	call l2cap_malloc_is_fifo_empty
-	nbranch lpm_mult_short,blank
-	fetch 1,mem_classic_bt_flag
-	bbit1 SHORT_MULT_FLAG,lpm_mult_short
-lpm_mult_wait_timeout:
-	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
-
-
-classic_bt_set_mult_short_flag:
-	arg SHORT_MULT_FLAG,queue
-	branch classic_bluetooth_set_flag
-	
-classic_bt_clr_mult_short_flag:
-	arg SHORT_MULT_FLAG,queue
-	branch classic_bluetooth_clr_flag
-
-
-
-lpm_match:
-	jam 0,mem_sniff_unint_lost
-	fetch 3,mem_sniff_rcv
-	increase 1,pdata
-	store 3,mem_sniff_rcv
-	rtn
-
-lpm_not_match:
-	bpatch patch15_6,mem_patch15
-	fetcht 2,mem_rx_window_sniff
-	rshift temp,temp
-	fetch 2,mem_rx_window
-	iadd temp,pdata
-	store 2,mem_rx_window
-lpm_lost:
-	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_cal_xtal_startup:
-	bpatch patch15_7,mem_patch15
-	fetch 1,mem_lpm_xtalcnt
-	nrtn blank
-	jam clksel_rc,core_clksel
-	setarg 0xf0c
-	call lpm_write_config
-	setarg 200000
-	call sleep
-	until null,lpo_edge
-	copy lpo_time,alarm
-	call xtal_fast_wake
-	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_cal_xtal_startup_by_snooze:
-	fetch 1,mem_lpm_xtalcnt
-	nrtn blank
-	jam 0xff,core_xtal_stable_time
-	jam clksel_rc,core_clksel
-	call xtal_fast_wake
-	setarg 1000
-	iadd lpo_time,alarm
-	snooze
-	deposit lpo_time
-	nop 12000	//delay about 1ms
-	nop 12000	//delay about 1ms
-	nop 12000	//delay about 1ms
-	nop 12000	//delay about 1ms
-	nop 12000	//delay about 1ms
-	nop 12000	//delay about 1ms
-	nop 12000	//delay about 1ms
-	nop 12000	//delay about 1ms
-	nop 12000	//delay about 1ms
-	isub alarm,pdata
-	add pdata,0x30,pdata
-	arg 0xff,temp
-	call ceiling
-	store 1,mem_lpm_xtalcnt
-	nop 30000
-	nop 30000
-	nop 30000	//delay 90000 nop
-	rtn
-
-
-
-	/* pdata is lpm_reg[11:0] */
-lpm_write_config:
-	arg 0xfff,contw
-	iand contw,contw
-	fetch 1,mem_lpm_config
-	and_into 0xf0,pdata
-	lshift8 pdata,pdata
-	ior contw,pdata
-	hstore 2,core_lpm_reg
-	ifetch 2,contr
-	istore 2,contw
-
-lpm_write_ctrl:
-	setarg lpmreg_sel_ctrl
-	branch lpm_write
-
-lpm_write_ctrl2:
-	setarg lpmreg_sel_ctrl2
-lpm_write:
-	until null,lpo_edge
-	hstore 1,core_lpm_wr
-	until null,lpo_edge
-	until null,lpo_edge
-	rtn
-
-
-lpm_write_gpio_wakeup:
-	bpatch patch16_0,mem_patch16
-	fetch 4,mem_gpio_wakeup_low
-	hstore 4,core_lpm_reg
-	setarg lpmreg_sel_gpiolow
-	call lpm_write
-	fetch 4,mem_gpio_wakeup_high
-	hstore 4,core_lpm_reg
-	setarg lpmreg_sel_gpiohigh
-	branch lpm_write
-
-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 patch16_1,mem_patch16
-	call app_check_wake_lock
-	fetch 2,mem_lpm_wake_lock
-	copy pdata,rega
-	fetch 1,mem_state_map
-	isolate1 smap_rxlmp,pdata
-	setflag true,wake_lock_lmp_rx,rega
-	fetch 1,mem_lmo_opcode1
-	fetcht 1,mem_lmo_opcode2
-	iadd temp,pdata
-	fetcht 1,mem_lmp_to_send
-	iadd temp,pdata
-	nsetflag blank,wake_lock_lmp_tx,rega
-	fetch 1,mem_le_tx_buff_used
-	nsetflag blank,wake_lock_ble_tx,rega
-	fetch 2,mem_l2cap_rxbuff1_len
-	fetcht 2,mem_l2cap_rxbuff2_len
-	iadd temp,pdata
-	nsetflag blank,wake_lock_l2cap_rx,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
-	setarg -8
-	iand rega,rega
-	copy rega,pdata
-	store 2,mem_lpm_wake_lock
-	rtn
-
-lpm_uart_wake_lock:
-	hfetch 2,core_uart_rxitems
-	nsetflag blank,wake_lock_uart_rx ,rega
-	hfetch 2,core_uart_txitems
-	nsetflag blank,wake_lock_uart_tx ,rega
-	rtn
-
-lpm_shut_down:
-	hfetch 4,core_lpm_ctrl
-	set0 27,pdata
-	hstore 4,core_lpm_reg
-	call lpm_write_ctrl
-	branch assert
-	
-lpm_disable_exen_output:
-	hfetch 4,core_lpm_xtalcnt
-	set0 20,pdata
-	hstore 4,core_lpm_reg
-	branch lpm_write_ctrl2
-
-check_bt_disabled:
-	fetch 2,mem_chip_functions
-	bbit1 bt_disabled,assert
-	rtn
-check_ble_disabled:
-	fetch 2,mem_chip_functions
-	bbit1 ble_disabled,assert
-	rtn
-check_module_disabled:
-	fetch 2,mem_chip_functions
-	bbit1 module_disable,assert
-	rtn
-
-
-
-
-
-
-
-//p_check_attempt_sniff:
-//	bbit0 state_insco,p_check_attempt_not_sco
-//	fetch 1,mem_current_sniff_attempt
-//	beq 2,p_check_attempt_sniff_restore_sco
-//	fetch 1,mem_arq
-//	bbit1 wack,p_check_attempt_notimeout
-//	bmark0 mark_esco_rxok,p_check_attempt_notimeout
-//p_check_attempt_sniff_restore_sco:
-//	nbranch p_check_attempt_notimeout,master
-//	fetch 1,mem_lmp_to_send
-//	nbranch p_check_attempt_notimeout,blank
-//p_check_attempt_sco_master:
-//	fetch 1,mem_sco_poll
-//	increase -1,pdata
-//	store 1,mem_sco_poll
-//	nbranch check_attempt_nomore,blank
-//	jam param_sco_poll,mem_sco_poll
-//	branch check_attempt_notimeout
-//p_check_attempt_not_sco:
-//	compare type_null,type,0x1f
-//	branch check_timeout,true
-//	compare type_poll,type,0x1f
-//	branch check_timeout,true
-//	branch check_anchor_end
-//p_check_attempt_notimeout:
-//check_atttemp_decrease:
-//	fetch 1,mem_current_sniff_attempt
-//	increase -1,pdata
-//	store 1,mem_current_sniff_attempt
-//	rtn
-//check_timeout:
-//	fetch 1,mem_sniff_timeout_temp
-//	increase 1,pdata
-//	store 1,mem_sniff_timeout_temp
-//check_anchor_end:
-//	fetch 1,mem_current_sniff_attempt
-//	branch check_anchor_end_attempt0,blank
-//	call check_atttemp_decrease
-//	nrtn blank
-//check_anchor_end_attempt0:  
-//	fetch 1,mem_sniff_timeout_temp
-//	fetcht 1,mem_current_sniff_timeout
-//	isub temp,null
-//	branch p_blank,positive
-//	arg 1,pdata
-//	rtn
-//p_blank:
-//	arg 0,pdata
-//	rtn
-
-
-
Index: DPI_Switch/program/hci_h4.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/hci_h4.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/hci_h4.prog	(nonexistent)
@@ -1,138 +0,0 @@
-
-ifdef DEBUG_H4LOG_ENABLE
-hci_log:
-	copy regc,pdata
-	rtneq 0x11
-	fetch 1,mem_hci_log
-	increase 1,pdata
-	sub pdata,hci_log_cnt,null
-	branch hci_log_calc_ptr,positive
-	setarg 0
-hci_log_calc_ptr:
-	store 1,mem_hci_log
-	arg hci_log_size,temp
-	imul32 temp,pdata
-	arg mem_hci_log+hci_log_size,contw
-	iadd contw,contw
-hci_log_write_content:
-	fetch 1,mem_hci_log
-	istore 1,contw//counter
-	copy regb,pdata
-	istore 1,contw
-	fetch 2,mem_le_event_count
-	istore 1,contw
-	copy clke_bt,pdata
-	istore 3,contw
-	fetch 1,mem_last_freq
-	istore 1,contw
-	fetch 1,mem_le_rxbuf
-	istore 1,contw
-	rtn
-else
-
-endif
-
-hci_rx_h4:
-	bpatch patch1f_5,mem_patch1f
-	fetch 1,mem_hci_cmd
-	nrtn blank
-hci_rx_h4_1:
-	call hci_h4_parse_packet
-	ncall h4_rx_discard_packet,user
-	rtn
-	
-hci_h4_parse_packet:
-	bpatch patch1f_6,mem_patch1f
-	copy contru,rega
-	arg 4,temp
-	ifetch 1,contru //type
-	beq HCI_H4_TYPE_CMD,hci_h4_parse_packet_wait_len
-	increase 1,temp //acl packet has 2 bytes for length
-	beq HCI_H4_TYPE_ACL,hci_h4_parse_packet_wait_len
-	copy contru,pdata
-	hstore 2,core_uart_rrptr
-	rtn
-hci_h4_parse_packet_wait_len:
-	hfetch 2,core_uart_rxitems
-	isub temp,null
-	nbranch hci_h4_parse_packet_wait_len,positive // while(rxitems >= 4 or 5);
-	//Make sure length has been recieved.
-	disable user
-	copy rega,contru
-	call h4_get_rx_payload_len
-	iadd temp,temp
-hci_h4_parse_packet_wait:
-	hfetch 2,core_uart_rxitems
-	isub temp,null
-	nbranch hci_h4_parse_packet_wait,positive//wait for rcv a complete packet
-	copy rega,contru
-	ifetch 1,contru //HCI packet type
-	beq  HCI_H4_TYPE_CMD,process_hci_cmd
-	branch assert
-	
-h4_rx_discard_packet:
-	bpatch patch1f_7,mem_patch1f
-	hfetch 2,core_uart_rrptr
-	iforce contru
-	call h4_get_rx_payload_len
-	iadd contru,contru
-	deposit contru
-	hstore 2,core_uart_rrptr
-	rtn
-
-
-//contru = pointer to packet start
-//return len via pdata
-h4_get_rx_payload_len:
-	ifetch 1,contru
-	increase 2,contru
-	beq HCI_H4_TYPE_ACL,h4_get_rx_payload_len_acl
-	ifetch 1,contru
-	rtn
-h4_get_rx_payload_len_acl:
-	ifetch 2,contru
-	rtn
-
-h4_get_tx_ptr:
-	hfetch 2,core_uart_twptr
-	increase -5,contwu
-	iadd contwu,contwu
-	rtn
-
-h4_send_packet_event:
-	arg HCI_H4_TYPE_EVENT,temp //type
-	branch h4_send_packet
-h4_send_packet_acl: //upgoing ACL
-	arg HCI_H4_TYPE_ACL,temp //type
-h4_send_packet:
-	bpatchx patch20_0,mem_patch20
-	increase 1,loopcnt
-	hfetch 2,core_uart_twptr
-	copy pdata,contwu
-	copy loopcnt,pdata //length
-	istoret 1,contwu //packet type in temp
-	increase -1,pdata
-	iadd contwu,contwu
-	copy contwu,pdata
-	store 2,mem_hci_acl_tx_trigger_wptr
-	copy temp,pdata
-ifdef ACL_DEBUG
-	beq HCI_H4_TYPE_EVENT,h4_send_packet0
-	hfetch 1,core_uart_txitems
-	ncall ice_break,blank
-	
-h4_send_packet0:	
-	copy temp,pdata
-endif
-	rtneq HCI_H4_TYPE_ACL //not send acl packet immediately
-	fetch 2,mem_hci_acl_tx_trigger_wptr
-	hstore 2,core_uart_twptr
-	branch h4_send_acl_trigger_clear
-	
-	
-h4_send_acl_trigger_clear:
-	setarg 0
-	store 2,mem_hci_acl_tx_trigger_wptr
-	rtn
-
-	
Index: DPI_Switch/program/hci_main.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/hci_main.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/hci_main.prog	(nonexistent)
@@ -1,400 +0,0 @@
-/*********************************/
-/**********   HCI  *****************/
-/*********************************/
-
-hci_init:
-	rtn wake
-	setarg hci_idle_dispatch
-	store 2,mem_cb_idle_process
-
-	setarg uart_baud_115200
-	store uart_baud_len,mem_baud
-hci_lpm_init:
-	setarg mem_h5rx_buf
-	hstore 2,core_uart_rsaddr
-	setarg mem_h5rx_buf_end
-	hstore 2,core_uart_readdr
-	setarg mem_h5tx_buf
-	hstore 2,core_uart_tsaddr
-	call hci_sel_init
-hci_reinit:
-	jam 0x0,core_uart_ctrl
- 	setarg mem_h5tx_buf
-	hstore 2,core_uart_twptr
-	hstore 2,core_uart_trptrp
-	setarg mem_h5rx_buf
-	hstore 2,core_uart_rrptr
-	store 2,mem_h5rx_rptr
-hci_init_common:
-	hfetch 2,core_clkoff
-	set0 CLOCK_OFF_UART,pdata
-	hstore 2,core_clkoff
-	call uart_set_baud_by_mem
-	jam uartclk_dpll,core_uart_clksel
-	jam uart_ctrl_h4,core_uart_ctrl
-	rtn
-
-hci_sel_init:
-	setarg mem_h5tx_buf_end
-	hstore 2,core_uart_teaddr
-	hfetch 1,core_gpio_sel1
-	or_into 0x07,pdata
-	hstore 1,core_gpio_sel1
-	rtn
-	
-	
-hci_rx_packet:
-	bpatchx patch20_1,mem_patch20
-	hfetch 1,core_uart_status
-	iforce regb
-	bbit0 uart_status_rx_fifo_empty,hci_rx_packet_cont
-	hfetch 2,core_uart_rxitems
-	iforce regc
-	arg 0x44f,temp
-	isub temp,null
-	nrtn zero
-hci_rx_packet_cont:
-	hfetch 2,core_uart_rrptr
-	iforce contru
-	branch hci_rx_h4
-	
-uart_send_byte:
-	hfetcht 1,core_uart_status
-	isolate1 6,temp
-	branch uart_send_byte,true
-	hstore 1,core_uart_txd
-	rtn
-	
-process_hci_cmd:
-	bpatchx patch20_2,mem_patch20
-	fetch 1,mem_hci_cmd
-	branch process_hci_cmd_cont,blank
-	enable user					/* last command still there */
-	rtn
-process_hci_cmd_cont:
-	ifetch 2,contru
-	iforce alarm				/* alarm is used for sending */
-	iforce queue				/* queue is OCF */
-	ifetch 1,contru		/* skip hci length */
-	iforce temp			/* temp has the length */
-	rshift2 alarm,pdata
-	rshift8 pdata,pdata
-	beq HCI_OGF_VENDOR_SPECIFIC,phci_grp_vendor_specific
-	rtn
-
-
-phci_grp_vendor_specific:
-	bpatchx patch20_3,mem_patch20
-	deposit queue
-	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_BDADDR,phci_grp_vendor_bdaddr
-	beq HCI_VENDOR_CMD_ENTER_LPM,phci_grp_vendor_enter_lpm
-	
-	beq HCI_VENDOR_CMD_MEM,phci_grp_vendor_mem
-	beq HCI_VENDOR_CMD_EEP,phci_grp_vendor_eep
-	beq HCI_VENDOR_CMD_PATCH_SEC_INIT,phci_grp_vendor_patch_sec_init
-	beq HCI_VENDOR_CMD_PATCH_SEC,phci_grp_vendor_patch_sec
-	branch hci_normal_reply
-
-phci_grp_vendor_enter_lpm:
-	call hci_normal_reply
-	call wait_uarttx
-	call gpio_pu_uart_tx
-hci_enter_lpm:
-	call app_put_lpm_wake_lock
-	call app_l2cap_flow_control_enable
-	branch gpio_rx_config_input_with_pu
-
-hci_exit_lpm:
-	jam HCI_RX_READY,mem_hci_lt_rx_state
-	call app_get_lpm_wake_lock
-	call hci_lpm_init
-	branch app_l2cap_flow_control_disable
-	
-phci_grp_vendor_chipid:
-	call hci_get_cmd_complete_ptr
-	hfetch 2,core_chipid
-	istore 2,contwu
-	force 6,loopcnt
-	branch hci_command_complete
-	
-phci_grp_vendor_baud:
-	ifetch 2,contru
-	store 2,mem_baud
-	hstore 2,core_uart_baud
-	rtn
-
-
-phci_grp_vendor_patch_common:
-	//jam 0x80,core_ucode_ctrl
-	ifetch 1,contru
-	copy pdata,temp //check sum via temp
-	hstore 1,core_ucode_low
-	ifetch 1,contru
-	iadd temp,temp
-	set1 7,pdata
-	hstore 1,core_ucode_ctrl
-	ifetch 1,contru
-	iadd temp,temp
-	copy pdata,loopcnt
-	rtn
-	
-phci_grp_vendor_patch:
-	bmark1 mark_otp_encrypt ,phci_grp_vendor_patch_bad
-	call phci_grp_vendor_patch_common
-phci_grp_vendor_patch_loop:
-	ifetch 1,contru
-	hstore 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,contru
-	isub temp,null
-	nbranch phci_grp_vendor_patch_bad,zero
-	branch hci_normal_reply
-
-	
-phci_grp_vendor_patch_sec:
-	bmark0 mark_otp_encrypt ,phci_grp_vendor_patch_bad
-	call phci_grp_vendor_patch_common
-	store 8,mem_pdatatemp
-phci_grp_vendor_patch_sec_loop:
-	call do_aes_cbc	
-	arg 16,loopcnt
-	arg mem_temp_block0,contw
-	call load_uart_sum_loop
-	storet 8,mem_temp
-	arg mem_temp_block2,contw
-	call store_aes_result
-	arg mem_temp_block2,rega
-	arg mem_temp_block0,regb
-	arg mem_temp_block3,contw
-	call xor16	
-	arg 16,loopcnt
-	arg mem_temp_block3,contr
-	call load_ucode_only_loop
-	fetcht 8,mem_temp
-	fetch 8,mem_pdatatemp
-	increase -16,pdata
-	store 8,mem_pdatatemp
-	nbranch phci_grp_vendor_patch_sec_loop,blank
-	branch phci_grp_vendor_patch_check_sum	
-	
-load_ucode_only_loop:
-	ifetch 1,contr
-	hstore 1,core_ucode_data
-	loop load_ucode_only_loop
-	rtn
-
-load_uart_sum_loop:
-	ifetch 1,contru
-	istore 1,contw
-	iadd temp,temp
-	loop load_uart_sum_loop
-	rtn
-
-phci_grp_vendor_patch_sec_init:
-	bmark0 mark_otp_encrypt ,phci_grp_vendor_patch_bad
-	arg 0,temp
-	arg 16,loopcnt
-	arg mem_temp_block0,contw
-	call load_uart_sum_loop
-	hfetch 1,core_gpio_key2
-	and_into 0xfd,pdata   // disable aes for iv
-	hstore 1,core_gpio_key2
-	arg mem_temp_block0,contr
-	arg 16,loopcnt
-	call aes_load_data
-	call aes_init
-	call aes_clear_data
-	branch phci_grp_vendor_patch_check_sum
-
-
-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,contru
-	istore 1,contw
-	iadd temp,temp
-	loop phci_grp_vendor_done_loop
-	and temp,0xff,temp
-	ifetch 1,contru
-	isub temp,null
-	nbranch phci_grp_vendor_patch_bad,zero
-	jam 0,core_ucode_ctrl
-	call hci_normal_reply
-	call h4_rx_discard_packet
-	call clear_key_buf
-	call wait_uarttx
-	branch soft_reset
-
-phci_grp_vendor_patch_bad:
-	jam 0,core_ucode_ctrl
-	branch start
-	
-phci_grp_vendor_bdaddr:
-	ifetch 6,contru
-	store 6,mem_lap
-	branch hci_normal_reply
-
-
-phci_grp_vendor_mem:
-	ifetch 1,contru
-	store 1,mem_hci_curr_len
-	copy pdata,loopcnt
-	ifetch 2,contru
-	store 2,mem_hci_curr_target
-	copy pdata,contw
-	call uart_copy_rx_bytes
-	branch hci_normal_reply
-
-
-phci_grp_vendor_eep:
-	ifetch 1,contru
-	store 1,mem_hci_curr_len
-	copy pdata,loopcnt
-	ifetch 2,contru
-	store 2,mem_hci_curr_target
-	arg mem_l2cap_rxbuff1,contw
-	call uart_copy_rx_bytes
-	fetcht 1,mem_hci_curr_len
-	arg mem_l2cap_rxbuff1,rega
-	fetch 2,mem_hci_curr_target
-	branch iicd_write_ota_data
-	
-	
-
-	
-hci_normal_reply:
-	force 4,loopcnt
-hci_command_complete:	/* loopcnt is hci length */
-	call hci_get_payload_ptr
-	force 0x1,pdata
-	istore 1,contwu
-	deposit alarm
-	istore 3,contwu
-	force HCI_EVENT_COMMAND_COMPLETE,queue
-hci_send_event:		/* queue:event code, loopcnt: length */
-	bpatchx patch20_4,mem_patch20
-	call hci_get_packet_ptr
-	deposit queue
-	istore 1,contwu
-	deposit loopcnt
-	istore 1,contwu
-hci_send_event_raw:
-	force 5,queue
-	increase 2,loopcnt
-hci_send_packet:
-	branch h4_send_packet_event
-
-hci_send_commu_ready_event:
-	force HCI_EVENT_VENDOR_SPECIFIC,queue
-	call hci_get_payload_ptr
-	setarg HCI_VENDOR_EVENT_COMMU_READY
-	istore 1,contwu
-	force 1,loopcnt
-	branch hci_send_event
-
-hci_get_cmd_complete_ptr:
-	force 12,contwu
-	branch hci_get_tx_ptr
-
-hci_get_payload_ptr:
-	force 8,contwu
-	branch hci_get_tx_ptr
-
-hci_get_packet_ptr:
-	force 6,contwu
-hci_get_tx_ptr:
-	branch h4_get_tx_ptr
-
-	
-
-calc_tx_crc16:
-	pulse crc16
-	enable enable_crc
-crcloop:
-	ifetch 1,contwu
-	inject bucket,8
-	loop crcloop
-	enable enable_parity
-	inject bucket,16
-	disable enable_parity
-	disable enable_crc
-	disable crc16
-	byteswap pdata,pdata
-	rtn
-
-
-
-cmd_exit:
-	jam 0,mem_hci_cmd
-	rtn
-cmd_check_plap:
-	fetch 6,mem_hci_plap
-	fetcht 6,mem_plap
-	isub temp,null
-	rtn
-
-	
-	
-//enable ssp master sm
-cmd_pair:
-	fetch 1,mem_op
-	bbit1 op_inrand_req,cmd_pair_passive
-	call tid_initiate
-	jam LMP_IN_RAND,mem_lmo_opcode2
-	branch cmd_exit
-cmd_pair_passive:
-	set0 op_inrand_req,pdata
-	store 1,mem_op
-	call lmp_accept_inrand
-	setarg 0
-	setflag master,smap_lmptid,pdata		
-	store 1,mem_lmo_tid2
-	branch cmd_exit
-	rtn
-cmd_in_sniff:
-	jam LMP_SNIFF_REQ,mem_lmo_opcode2
-	arg mem_sniff_payload,contw
-	setarg 0
-	isolate1 27,clke_bt
-	setflag true,1,pdata		/* use init 2 if bit27 of clke is 1 */
-	istore 1,contw	
-	setarg 0	/* dsniff */
-	istore 2,contw
-	fetch 2,mem_sniff_param_interval	/* tsniff */
-	istore 2,contw
-	fetch 1,mem_sniff_param_attempt	/* attempt */
-	istore 2,contw
-	fetch 1,mem_sniff_param_timeout	/* timeout */
-	istore 2,contw
-	branch cmd_exit
-	
-cmd_exit_sniff:
-	jam LMP_UNSNIFF_REQ,mem_lmo_opcode2
-	branch cmd_exit
-
-hci_idle_dispatch:
-	call gpio_check_uart_state
-	rtn true
-	arg UART_WAKEUP_RX,temp
-	call gpio_get_bit
-	nbranch uart_wake_up,true
-	jam HCI_RX_WAKE,mem_hci_lt_rx_state
-	rtn
-uart_wake_up:
-	fetch 1,mem_hci_lt_rx_state
-	rtnne HCI_RX_WAKE
-	call hci_exit_lpm
-	branch hci_send_commu_ready_event
-	
-	
Index: DPI_Switch/program/hid.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/hid.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/hid.prog	(nonexistent)
@@ -1,84 +0,0 @@
-/**
-* the following API is to send the HID data
-* 
-*/
-
-/**
-* the following API is to process the hid  rx data
-* 
-*/
-//handle the hid data
-
-hid_rx_process:
-	bpatchx patch20_5,mem_patch20
-	fetch 2,mem_l2cap_payload_ptr
-	copy pdata,contr
-	ifetch 1,contr
-	and pdata,0x0f,temp
-	rshift4 pdata,pdata //hidtype
-	beq hid_type_set_idle,hid_rx_process_handshake
-	beq hid_type_set_protocol,hid_rx_process_handshake
-	beq hid_type_data,hid_rx_process_data
-	beq HID_TYPE_SET_REPORT,hid_rx_process_set_report
-	beq HID_TYPE_CONTROL,hid_rx_process_hid_control
-	rtn
-
-hid_rx_process_hid_control:
-	copy temp,pdata
-	beq HID_CONTROL_P_VIRTUALCABLEUNPLUG,hid_rx_process_virtual_cable_unplug
-	beq HID_CONTROL_P_SUSPEND,hid_rx_process_suspend
-	rtn
-	
-hid_rx_process_virtual_cable_unplug:
-	jam BT_EVT_VIRTUAL_CABLE_UNPLUG,mem_fifo_temp
-	call ui_ipc_send_event
-	fetch 1,mem_device_option
-	rtnbit0 dvc_op_mouse
-	copy temp,pdata
-	beq HID_CONTROL_P_VIRTUALCABLEUNPLUG,mouse_irtual_cable_unplug
-	rtn
-hid_rx_process_suspend:
-	rtn
-
-hid_rx_process_set_report:
-	call hid_rx_process_data
-	arg 0x01,rega
-	call hid_malloc_tx_buff
-	fetch 2,mem_hid_ctrl_remote_cid
-	istore 2,contw
-	setarg 0x00
-	istore 1,contw
-	rtn
-
-hid_rx_process_handshake:
-	arg 1,regA//payload length
-	call hid_malloc_tx_buff
-	fetch 2,mem_hid_ctrl_remote_cid
-	istore 2,contw
-	setarg 0
-	istore 1,contw
-	jam 1,mem_ui_data_txbuff_length
-	fetch 1,mem_hid_control_state
-	set1 l2cap_channel_hid_handshake_done
-	store 1,mem_hid_control_state
-	jam BT_EVT_HID_HANDSHAKE,mem_fifo_temp
-	branch ui_ipc_send_event
-
-hid_rx_process_data:
-	ifetch 1,contr
-	beq HID_REPORT_ID_KB,hid_rx_process_data_hid_kb
-	rtn
-
-hid_rx_process_data_hid_kb:
-	rtn
-
-	
-hid_malloc_tx_buff:
-	call l2cap_malloc
-	copy rega,temp
-	storet 1,mem_ui_data_txbuff_length
-	copy pdata,contw
-	copy rega,pdata
-	istore 2,contw //hid payload length
-	rtn
-
Index: DPI_Switch/program/kscan_peipherals.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/kscan_peipherals.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/kscan_peipherals.prog	(nonexistent)
@@ -1,152 +0,0 @@
-
-
-
-ifdef COMPILE_KEYSCAN
-/****************************************key scan***************************************/
-/******the key_scan use explain******
-
-* First:call kscan_init
-* Second:call kscan_main
-* Finally: the key scanning reault is mem_kscan_value.
-
-******
-***************************************************************************************
-*/
-kscan_init:  
-	fetch 2,mem_kscan_ptr
-	copy pdata,regc
-	call kscan_row_num_select
-	branch kscan_col_num_select
-
-kscan_col_init:
-	setarg 0
-	add regc,KEYSCAN_OFFECT_SHIFT_COUNT,rega
-	istore 1,rega
-	add regc,KEYSCAN_OFFECT_COL_NUM,rega
-	ifetch 1,rega
-	branch kscan_value_init,blank
-	copy pdata,loopcnt
-	add regc,KEYSCAN_OFFECT_COL_CONF_PIN,regb
-kscan_col_loop: 
-	ifetcht 1, regb
-	call gpio_config_output
-	ifetcht 1, regb
-	call gpio_out_active
-	call kscan_value_init             
-	ifetcht 1,regb
-	call gpio_config_input
-	increase 1,regb
-	loop kscan_col_loop
-	rtn  
-kscan_row_num_select:          
-	add regc,KEYSCAN_OFFECT_ROW_NUM,contw
-	ifetch 1,contw 
-	rtn blank
-	copy pdata,loopcnt
-	add regc,KEYSCAN_OFFECT_ROW_CONF_PIN,rega
-	branch kscan_ioselect_input   
-kscan_col_num_select:           
-	add regc,KEYSCAN_OFFECT_COL_NUM,contw
-	ifetch 1,contw 
-	rtn blank
-	copy pdata,loopcnt
-	add regc,KEYSCAN_OFFECT_COL_CONF_PIN,rega
-	branch kscan_ioselect_input
-kscan_ioselect_input: 
-	ifetcht 1,rega
-	call gpio_config_input 
-	increase 1,rega
-	loop kscan_ioselect_input
-	rtn
-kscan_value_init:
-	setarg 0
-	add regc,KEYSCAN_OFFECT_ROW_COUNT,rega
-	istore 1,rega
-	add regc,KEYSCAN_OFFECT_ROW_CONF_PIN,rega
-kscan_save_vaule:
-	ifetcht 1,rega       
-	call gpio_get_bit   
-	add regc,KEYSCAN_OFFECT_VALUE_TEMP,temp
-	ifetch 2,temp
- 	add regc,KEYSCAN_OFFECT_SHIFT_COUNT,contr
-	ifetcht 1,contr
-	copy temp,queue
-	qsetflag true,pdata
-
-	add regc,KEYSCAN_OFFECT_VALUE_TEMP,temp
- 	istore 2,temp
-	increase 1,rega
-    
-	add regc,KEYSCAN_OFFECT_SHIFT_COUNT,contw
-	ifetch 1,contw 
-	increase 1,pdata
-	istore 1,contw
-    
-	add regc,KEYSCAN_OFFECT_ROW_COUNT,contw
-	ifetcht 1,contw 
-	increase 1,temp
-	istoret 1,contw
-	add regc,KEYSCAN_OFFECT_ROW_NUM,contw
-	ifetch 1,contw 
-	ixor temp,null  
-	nbranch kscan_save_vaule,zero
-	rtn       
-	
-	
-kscan_lpm_berfore:
-	fetch 2,mem_kscan_ptr
-	copy pdata,regc
- 	add regc,KEYSCAN_OFFECT_ROW_NUM,contw
- 	ifetch 1,contw 
-	copy pdata,loopcnt
-	add regc,KEYSCAN_OFFECT_COL_CONF_PIN,rega
-kscan_select_wake:    
-	ifetcht 1,rega
-	call gpio_set_wake   
-	increase 1,rega
-	loop kscan_select_wake
-	rtn
-
-kscan_clkn_bt_timer_check:
-	ifetcht 4,rega
-	copy clkn_bt,pdata
-	isub temp,null
-	rtn positive
-	setarg 0
-	istore 4,rega
-	rtn
-
-kscan_process:
-	fetch 2,mem_kscan_ptr
-	copy pdata,regc
-	add regc,KEYSCAN_OFFECT_BTCLK,rega
-	call kscan_clkn_bt_timer_check
-	ifetch 4,rega
-	add regc,KEYSCAN_OFFECT_BTCLK_INTERVAL,regb
-	ifetcht 1,regb
-	iadd temp,temp
-	copy clkn_bt,pdata
-	isub temp,null
-	nrtn positive
-	istore 4,rega
-	call kscan_col_init  
-	add regc,KEYSCAN_OFFECT_VALUE_TEMP,rega
-	ifetch 2,rega
-	add regc,KEYSCAN_OFFECT_LASVALUE,rega
-	ifetcht 2,rega
-	istore 2,rega
-	iand temp,pdata
-	add regc,KEYSCAN_OFFECT_VALUE,rega    
-	istore 2,rega 
-	rtn  
-
-endif
-	
-	
-
-
-
-	
-    
-	
-
Index: DPI_Switch/program/l2cap.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/l2cap.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/l2cap.prog	(nonexistent)
@@ -1,1929 +0,0 @@
-/************************************/
-/*initialize L2CAP related variables*/
-/************************************/
-l2cap_init:
-	branch l2cap_init_wake,wake
-l2cap_init_work:
-	setarg mem_l2cap_xmem_end
-	arg mem_l2cap_xmem_start,contw
-	isub contw,loopcnt
-	call clear_mem
-l2cap_init_wake:	
-	bpatchx patch20_6,mem_patch20
-	setarg mem_sdp_mem_end
-	arg mem_sdp_mem_start,contw
-	isub contw,loopcnt
-	call clear_mem
-	setarg mem_l2cap_mem_end
-	arg mem_l2cap_mem_start,contw
-	isub contw,loopcnt
-	call clear_mem
-	branch l2cap_lpm_load_txbuf
-	
-process_rx_l2cap_pkt:
-	bpatchx patch20_7,mem_patch20
-	copy contr,temp
-	//call l2cap_malloc_is_fifo_full
-	//nrtn blank
-	copy temp,contr
-	ifetch 2,contr
-	store 2,mem_l2cap_rx_pkt_length
-	ifetch 2,contr
-	store 2,mem_l2cap_rx_cid
-	deposit contr
-	store 2,mem_l2cap_payload_ptr
-	fetch 1,memui_reconnect_mode
-	beq NO_RECONNECTION,l2cap_rx_multiplexing
-	branch ml2cap_rx_multiplexing
-
-l2cap_rx_multiplexing:
-	fetch 2, mem_l2cap_rx_pkt_length
-	branch l2cap_rx_reset_state,blank
-	bpatchx patch21_0,mem_patch21
-	fetch 1,mem_l2cap_rx_cid
-	beq L2CAP_signal_channel,l2cap_call_proc_signal
-l2cap_rx_multiplexing0:
-	beq L2CAP_SDP_channel,l2cap_call_proc_sdp
-	beq L2CAP_RFCOMM_channel,l2cap_call_proc_rfcomm
-	beq L2CAP_HID_Control_channel,l2cap_call_proc_hid
-	beq L2CAP_HID_Interrupt_channel,l2cap_call_proc_hid
-	branch l2cap_rx_reset_state
-
-l2cap_check_map:
-//	call l2cap_malloc_is_fifo_full
-//	nrtn blank
-	bpatchx patch21_1,mem_patch21
-	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
-
-set_pdata_0:
-	setarg 0
-	rtn
-
-
-l2cap_call_proc_signal:
-	call l2cap_check_map
-	nrtn blank
-l2cap_call_proc_signal0:
-	call l2cap_malloc_signal_channel
-	call l2cap_process_signal_pkt
-	fetcht 2,mem_l2cap_signal_tx_length
-	branch l2cap_call_proc_no_reply,blank
-	call l2cap_get_signal_tx_buff
-	fetch 2,mem_l2cap_signal_tx_length
-	istore 2,contw
-	force L2CAP_signal_channel,pdata
-	istore 2,contw
-	branch l2cap_rx_reset_state
-	
-l2cap_call_proc_sigal_pending:
-	fetch 1,mem_l2cap_pending_item
-	rtn blank
-	copy pdata,rega
-	bpatchx patch21_2,mem_patch21
-	fetch 4,mem_l2cap_sdpres_delay_time
-	arg 0x100,temp
-	iadd temp,temp
-	copy clkn_bt,pdata
-	isub temp,null
-	nrtn positive
-	jam 0,mem_l2cap_pending_item
-	copy rega,pdata
-	beq L2CAP_SDP_channel,l2cap_sdp_conn_succ
-	branch assert
-l2cap_sdp_conn_succ:
-	arg 0,debug
-	call l2cap_malloc_signal_channel
-	call restore_l2cap_req_param
-	call l2cap_get_signal_tx_payload
-	call save_cont_pointers
-	call send_connection_sdp_res
-	call l2cap_get_signal_tx_buff
-	//fetch 2,mem_l2cap_signal_tx_length
-	setarg 0x000c
-	istore 2,contw
-	force L2CAP_signal_channel,pdata
-	istore 2,contw
-	branch l2cap_rx_reset_state
-
-
-
-l2cap_reset_sdp_map:
-	bpatchx patch21_3,mem_patch21
-	fetch 2,mem_sdp_tx_pkt_length
-	increase 4,pdata
-	rshift4 pdata,pdata
-	rshift3 pdata,pdata
-	add pdata,1,temp ///temp: how many128
-	arg mem_tx_fifo3,contr
-	ifetch 3,contr
-	rtn blank
-	store 3,mem_tx_fifo_map_temp
-	fetch 1,mem_tx_fifo_map_temp
-	copy pdata,rega
-	call check_l2cap_map
-	copy regb,pdata
-	store 1,mem_tx_fifo3
-	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
-
-l2cap_call_proc_sdp:
-	call l2cap_malloc_is_fifo_empty
-	nrtn blank// not process this packet until fifo empty
-	call l2cap_check_map
-	nrtn blank
-	call l2cap_malloc_sdp_channel
-	call sdp_process
-	call l2cap_reset_sdp_map
-	branch l2cap_call_proc_sdp_common
-
-	
-ml2cap_call_proc_sdp:
-	call l2cap_malloc_is_fifo_empty
-	nrtn blank// not process this packet until fifo empty
-	call l2cap_malloc_sdp_channel
-	call sdp_process
-l2cap_call_proc_sdp_common:
-	call l2cap_get_sdp_tx_buff
-	fetch 2,mem_sdp_tx_pkt_length
-	branch l2cap_call_proc_no_reply,blank
-	istore 2,contw
-	fetch 2,mem_sdp_remote_cid
-	istore 2,contw
-	branch l2cap_rx_reset_state
-
-l2cap_call_proc_hid:
-	call hid_rx_process
-	branch l2cap_rx_reset_state
-
-l2cap_call_proc_rfcomm:
-	bpatchx patch21_4,mem_patch21
-	jam RFCOMM_MALLOC_SUCCEED,mem_rfcomm_malloc_fail_flag
-	call rfcomm_rx_process
-	fetch 1,mem_rfcomm_malloc_fail_flag
-	rtneq RFCOMM_MALLOC_FAIL
-	branch l2cap_rx_reset_state
-l2cap_call_proc_no_reply:
-	call l2cap_malloc_discard
-	//fall through
-l2cap_rx_reset_state:
-	setarg 0
-	store 2,mem_l2cap_rx_pkt_length
-	store 2,mem_l2cap_rx_cid
-	jam L2CAP_RX_DONE,mem_l2cap_rx_done
-	rtn
-/* To process one L2CAP signalling pkt consisting of 1 or more signalling commands.	*/
-l2cap_process_signal_pkt:
-	bpatchx patch21_5,mem_patch21
-	call l2cap_get_signal_tx_payload
-	force 0,regB
-	fetch 2,mem_l2cap_rx_pkt_length
-	copy pdata,regC
-	fetch 2,mem_l2cap_payload_ptr
-	iforce contr
-l2cap_process_signal_pkt_loop:
-	call l2cap_process_one_signal
-	deposit regC
-	increase -4,regC
-	increase -4,pdata
-	nbranch l2cap_process_signal_pkt_loop,blank
-	copy regB,pdata
-	store 2,mem_l2cap_signal_tx_length
-	rtn
-
-l2cap_process_one_signal:
-	bpatchx patch21_6,mem_patch21
-	ifetch 1,contr
-	beq signal_cmd_reject,l2cap_proc_signal_cmd_reject
-	beq signal_connect_req,l2cap_proc_signal_connect_req
-	beq signal_connect_rsp,l2cap_proc_signal_connect_rsp
-	beq signal_config_req,l2cap_proc_signal_config_req
-	beq signal_config_rsp,l2cap_proc_signal_config_rsp
-	beq signal_disconnect_req,l2cap_proc_signal_disconnect_req
-	beq signal_disconnect_rsp,l2cap_proc_signal_disconnect_rsp
-	beq signal_echo_req,l2cap_proc_signal_echo_req
-	beq signal_echo_rsp,l2cap_proc_signal_echo_rsp
-	beq signal_info_req,l2cap_proc_signal_info_req
-	beq signal_info_rsp,l2cap_proc_signal_info_rsp
-	call l2cap_reject_command
-l2cap_process_one_signal_rtn:
-	rtn
-
-l2cap_proc_signal_info_req:
-	ifetch 1,contr //IDs
-	copy pdata,queue
-	ifetch 2,contr //length
-	copy pdata,rega
-	copy regc,pdata
-	isub rega,regc
-	setarg signal_info_rsp
-	istore 1,contw
-	copy queue,pdata
-	istore 1, contw
-	ifetch 2,contr 
-l2cap_proc_signal_info_req_reply:
-	beq L2CAP_SIG_EXT_FEATRUE,l2cap_proc_signal_info_req_ext
-	beq L2CAP_SIG_FIX_FEATRUE,l2cap_proc_signal_info_req_fix
-	rtn
-l2cap_proc_signal_info_req_ext:
-	setarg 0x020008
-	istore 6, contw
-	setarg 0x0280
-	istore 4, contw
-	force 12,pdata
-	branch l2cap_proc_signal_info_req_common
-l2cap_proc_signal_info_req_fix:
-	setarg 0x3000c
-	istore 6, contw
-	setarg 0x0006
-	istore 8, contw
-	force 16,pdata
-l2cap_proc_signal_info_req_common:
-	iadd regb,regb
-	branch l2cap_process_one_signal_rtn
-	
-ml2cap_proc_signal_info_req:
-	ifetch 1,contr //IDs
-	copy pdata,queue
-	ifetch 2,contr //length
-	copy pdata,rega
-	ifetch 2,contr
-	store 2,mem_temp
-	copy regc,pdata
-	isub rega,regc 
-	call l2cap_get_signal_tx_payload
-	setarg signal_info_rsp
-	istore 1,contw
-	copy queue,pdata
-	istore 1,contw 
-	fetch 2,mem_temp
-	branch l2cap_proc_signal_info_req_reply
-
-
-/*  Respond to the command reject signal sent from the remote BD.   */
-l2cap_proc_signal_cmd_reject:
-	ifetch 1,contr
-	copy pdata,queue
-	ifetch 2,contr
-	copy pdata,regA
-	iadd contr,contr
-	copy regC,pdata
-	isub regA,regC
-l2cap_proc_signal_cmd_reject_rtn:
-	branch l2cap_process_one_signal_rtn
-/* Respond to an L2CAP connection request from remote BD. (generate a connection_rsp)	*/
-l2cap_proc_signal_connect_req:
-	call save_cont_pointers
-	//fetch 6,mem_inquiry_bd_addr
-  	//store 6,mem_master_paged_bd_addr
-  	call load_cont_pointers
-	arg 0,debug
-	ifetch 1,contr
-	copy pdata,queue
-	ifetch 2,contr
-	copy pdata,regA
-	ifetch 2,contr
-	copy pdata,temp //PSM
-	ifetch 2,contr
-	copy pdata,timeup
-	bpatchx patch21_7,mem_patch21
-	copy temp,pdata
-	beq PSM_SDP,l2cap_proc_signal_connect_req_sdp
-	beq PSM_RFCOMM,l2cap_proc_signal_connect_req_rfcomm
-	beq PSM_HID_control,l2cap_proc_signal_connect_req_hid_ctrl
-	beq PSM_HID_interrupt,l2cap_proc_signal_connect_req_hid_int
-	call l2cap_reject_command
-	branch l2cap_proc_signal_connect_req_rtn
-
-l2cap_proc_signal_connect_req_sdp:
-	call save_cont_pointers
-	arg L2CAP_SDP_channel,temp
-	fetch 2,mem_sdp_remote_cid
-	nbranch already_connected,blank
-	copy timeup,pdata
-	store 2,mem_sdp_remote_cid
-	copy clkn_bt,pdata
-	store 4,mem_l2cap_sdpres_delay_time
-	call store_l2cap_req_param
-	branch  send_connection_pending
-
-store_l2cap_req_param:
-	storet 2,mem_psm
-	deposit timeup
-	store 2,mem_scid
-	deposit rega
-	store 2,mem_cmd_length
-	deposit regb
-	store 2,mem_tt2
-	deposit regc
-	store 2,mem_tt3
-	deposit queue
-	store 2,mem_id
-	rtn
-
-restore_l2cap_req_param:
-	fetcht 2,mem_psm
-	fetch 2,mem_scid
-	copy pdata,timeup
-	fetch 2,mem_cmd_length
-	copy pdata,rega
-	fetch 2,mem_tt2
-	copy pdata,regb
-	fetch 2,mem_tt3
-	copy pdata,regc
-	fetch 2,mem_id
-	copy pdata,queue
-	rtn
-
-l2cap_proc_signal_connect_req_rfcomm:
-	call save_cont_pointers
-	setarg L2CAP_RFCOMM_channel
-	arg L2CAP_RFCOMM_channel,temp
-	fetch 2,mem_RFCOMM_remote_CID
-	nbranch already_connected,blank
-	copy timeup,pdata
-	store 2,mem_RFCOMM_remote_CID
-	fetch 1,mem_rfcomm_state
-	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
-	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
-	store 1,mem_rfcomm_state
-	branch send_connection_res
-l2cap_proc_signal_connect_req_hid_ctrl:
-	call save_cont_pointers
-	arg L2CAP_HID_Control_channel,temp
-	fetch 2,mem_hid_ctrl_remote_cid
-	nbranch already_connected,blank
-	copy timeup,pdata
-	store 2,mem_hid_ctrl_remote_cid
-	fetch 1,mem_hid_control_state
-	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
-	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
-	store 1,mem_hid_control_state
-	branch send_connection_res
-l2cap_proc_signal_connect_req_hid_int:
-	call save_cont_pointers
-	deposit clke
-	arg L2CAP_HID_Interrupt_channel,temp
-	fetch 2,mem_hid_int_remote_cid
-	nbranch already_connected,blank
-	copy timeup,pdata
-	store 2,mem_hid_int_remote_cid
-	fetch 1,mem_hid_interrupt_state
-	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
-	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
-	store 1,mem_hid_interrupt_state
-	branch send_connection_res
-
-send_connection_pending:
-	setarg L2CAP_connect_pending
-	store 2,memL2CAP_T1
-	jam L2CAP_SDP_channel,mem_l2cap_pending_item
-	branch send_connection_res0
-send_connection_sdp_res:
-	fetch 1,mem_sdp_state
-	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
-	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
-	store 1,mem_sdp_state
-send_connection_res:
-	setarg L2CAP_connect_successful
-	store 2,memL2CAP_T1
-send_connection_res0:
-	bpatchx patch22_0,mem_patch22
-	call load_cont_pointers
-	setarg signal_connect_rsp
-	istore 1,contw
-	copy queue,pdata
-	istore 1,contw
-	setarg 0x0008
-	istore 2,contw
-	copy temp,pdata
-	istore 2,contw
-	copy timeup,pdata
-	istore 2,contw
-	fetch 2,memL2CAP_T1
-	beq L2CAP_connect_pending,connect_pending
-	isolate0 0,debug
-	branch connect_suc,true
-	setarg L2CAP_connect_refused_no_resources
-connect_suc:
-	istore 2,contw
-	force 0x0000,pdata
-	istore 2,contw
-	setarg 12
-	branch connect_req_update_byte_counts
-connect_pending:
-	istore 2,contw
-	force 0x0002,pdata
-	istore 2,contw
-	setarg 12
-	branch connect_req_update_byte_counts
-	
-already_connected:
-	set1 0,debug
-	branch send_connection_res
-connect_req_update_byte_counts:
-	iadd regB,regB
-	copy regC,pdata
-	isub regA,regC
-	branch l2cap_proc_signal_connect_req_rtn
-l2cap_proc_signal_connect_req_rtn:
-	branch l2cap_process_one_signal_rtn
-
-l2cap_proc_signal_connect_rsp:
-	ifetch 1,contr //identifier
-	copy pdata,queue
-	ifetch 2,contr //length
-	copy pdata,regA
-	copy regC,pdata
-	isub regA,regC
-	ifetch 2,contr //remote cid
-	copy pdata,timeup
-	ifetch 2,contr //local cid
-	copy pdata,temp
-	bpatchx patch22_1,mem_patch22
-	setarg L2CAP_SDP_channel
-	isub temp,null
-	branch l2cap_proc_signal_connect_rsp_sdp,zero
-	setarg L2CAP_RFCOMM_channel
-	isub temp,null
-	branch l2cap_proc_signal_connect_rsp_rfcomm,zero
-	setarg L2CAP_HID_Control_channel
-	isub temp,null
-	branch l2cap_proc_signal_connect_rsp_hid_ctrl,zero
-	setarg L2CAP_HID_Interrupt_channel
-	isub temp,null
-	branch l2cap_proc_signal_connect_rsp_hid_int,zero
-	rtn
-
-l2cap_proc_signal_connect_rsp_sdp:
-	copy timeup,pdata
-	store 2,mem_sdp_remote_cid
-	fetch 1,mem_sdp_state
-	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
-	store 1,mem_sdp_state
-	branch l2cap_process_one_signal_rtn
-l2cap_proc_signal_connect_rsp_rfcomm:
-	copy timeup,pdata
-	store 2,mem_rfcomm_remote_CID
-	fetch 1,mem_rfcomm_state
-	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
-	store 1,mem_rfcomm_state
-	rtn
-l2cap_proc_signal_connect_rsp_hid_int:
-	copy timeup,pdata
-	store 2,mem_hid_ctrl_remote_cid
-	fetch 1,mem_hid_interrupt_state
-	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
-	store 1,mem_hid_interrupt_state
-	rtn
-l2cap_proc_signal_connect_rsp_hid_ctrl:
-	copy timeup,pdata
-	store 2,mem_hid_int_remote_cid
-	fetch 1,mem_hid_control_state
-	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
-	store 1,mem_hid_control_state
-	rtn
-
-l2cap_proc_signal_config_req:
-	ifetch 1,contr//identifier
-	copy pdata,queue
-	ifetch 2,contr//length
-	copy pdata,regA
-	copy regC,pdata
-	isub regA,regC
-	ifetch 2,contr//dest cid
-	copy pdata,temp
-	copy temp,regA
-	bpatchx patch22_2,mem_patch22
-	setarg L2CAP_SDP_channel
-	isub temp,null
-	branch l2cap_proc_signal_config_req_sdp,zero
-	setarg L2CAP_RFCOMM_channel
-	isub temp,null
-	branch l2cap_proc_signal_config_req_rfcomm,zero
-	setarg L2CAP_HID_Control_channel
-	isub temp,null
-	branch l2cap_proc_signal_config_req_hid_ctrl,zero
-	setarg L2CAP_HID_Interrupt_channel
-	isub temp,null
-	branch l2cap_proc_signal_config_req_hid_int,zero
-	branch l2cap_reject_command
-	//branch L2CAP_proc_signal_config_req_rtn
-l2cap_proc_signal_config_req_sdp:
-	copy contw, timeup
-	fetch 1,mem_sdp_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
-	//set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
-	store 1,mem_sdp_state
-	copy timeup,contw
-	arg L2CAP_SDP_channel,timeup
-	fetch 2,mem_sdp_remote_cid
-	copy pdata,temp
-	branch l2cap_send_config_rsp
-l2cap_proc_signal_config_req_hid_ctrl:
-	copy contw, timeup
-	fetch 1,mem_hid_control_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
-	//set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
-	store 1,mem_hid_control_state
-	copy timeup,contw
-	arg L2CAP_HID_Control_channel,timeup
-	fetch 2,mem_hid_ctrl_remote_cid
-	copy pdata,temp
-	branch l2cap_send_config_rsp
-l2cap_proc_signal_config_req_hid_int:
-	copy contw, timeup
-	fetch 1,mem_hid_interrupt_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
-	//set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
-	store 1,mem_hid_interrupt_state
-	copy timeup,contw
-	arg L2CAP_HID_Interrupt_channel,timeup
-	fetch 2,mem_hid_int_remote_cid
-	copy pdata,temp
-	branch l2cap_send_config_rsp
-l2cap_proc_signal_config_req_rfcomm:
-	copy contw, timeup
-	fetch 1,mem_rfcomm_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
-	//set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
-	store 1,mem_rfcomm_state
-//	jam UPPERSM_RP_SDP_CONN,mem_upper_sm_remote_page
-	copy timeup,contw
-	arg L2CAP_RFCOMM_channel,timeup
-	fetch 2,mem_RFCOMM_remote_CID
-	copy pdata,temp
-l2cap_send_config_rsp:
-	bpatchx patch22_3,mem_patch22
-	setarg  signal_config_rsp
-	istore 1,contw
-	copy queue,pdata
-	istore 1,contw
-	setarg 0x0006
-	istore 2,contw
-	copy temp,pdata
-	istore 2,contw
-	force 0x00,pdata
-	istore 2,contw
-	force L2CAP_config_success,pdata
-	istore 2,contw
-	force 10,pdata
-	iadd regB,regB
-	//copy temp,pdata
-	storet 2,mem_config_req_dest_CID
-	copy queue,pdata
-	store 1,mem_config_identifier
-	force L2CAP_SDP_channel,pdata
-	icompare 0xff,timeup
-	branch l2cap_send_config_rsp_is_sdp,true
-	increase 1,pdata
-l2cap_send_config_rsp_is_sdp:
-	//store 1,mem_send_config_req
-	rtn
-l2cap_check_channel_state:
-	disable user
-	rtnbit1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
-	rtnbit0 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
-	rtnbit0 L2CAP_CHANNEL_STATE_CONN_RES,pdata
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
-	copy contr,contw
-	increase -1,contw
-	istore 1,contw
-	enable user
-	rtn
-l2cap_send_config_req:
-l2cap_send_config_req_sdp:
-	fetch 1,mem_sdp_state
-	call l2cap_check_channel_state
-	nbranch l2cap_send_config_req_rfcomm,user
-	jam L2CAP_SDP_channel,mem_send_config_req
-	fetch 2,mem_sdp_remote_cid
-	store 2,mem_config_req_dest_CID
-	branch l2cap_generate_config_req
-l2cap_send_config_req_rfcomm:
-	fetch 1,mem_rfcomm_state
-	call l2cap_check_channel_state
-	nbranch l2cap_send_config_req_hid_ctrl,user
-	jam L2CAP_RFCOMM_channel,mem_send_config_req
-	fetch 2,mem_RFCOMM_remote_CID
-	store 2,mem_config_req_dest_CID
-	branch l2cap_generate_config_req
-l2cap_send_config_req_hid_ctrl:
-	fetch 1,mem_hid_control_state
-	call l2cap_check_channel_state
-	nbranch l2cap_send_config_req_hid_int,user
-	jam L2CAP_HID_Control_channel,mem_send_config_req
-	fetch 2,mem_hid_ctrl_remote_cid
-	store 2,mem_config_req_dest_CID
-	branch l2cap_generate_config_req
-l2cap_send_config_req_hid_int:
-	fetch 1,mem_hid_interrupt_state
-	call l2cap_check_channel_state
-	nrtn user//End of sending config req
-	jam L2CAP_HID_Interrupt_channel,mem_send_config_req
-	fetch 2,mem_hid_int_remote_cid
-	store 2,mem_config_req_dest_CID
-	//branch L2CAP_generate_config_req
-
-l2cap_generate_config_req:
-	bpatchx patch22_4,mem_patch22
-	call l2cap_get_req_id
-	call l2cap_malloc_signal_channel
-	force 0,regB
-	call l2cap_get_signal_tx_payload
-	force signal_config_req,pdata
-	istore 1,contw
-	fetch 1,mem_ML2CAP_comm_id
-	istore 1,contw
-	setarg 0x0008
-	istore 2,contw
-	fetch 2,mem_config_req_dest_CID
-	istore 2,contw
-	setarg 0x0000
-	istore 2,contw
-	force 1,pdata
-	istore 1,contw
-	force 2,pdata
-	istore 1,contw
-	fetch 1,mem_send_config_req
-	beq L2CAP_RFCOMM_channel,l2cap_generate_config_req_rfcomm
-	setarg L2CAP_config_MTU_SDP
-	istore 2,contw
-	branch l2cap_generate_config_req_done
-l2cap_generate_config_req_rfcomm:
-	setarg L2CAP_config_MTU_RFCOMM
-	istore 2,contw
-l2cap_generate_config_req_done:
-	arg 0x0c,temp
-	storet 2,mem_l2cap_signal_tx_length
-	call l2cap_get_signal_tx_buff
-	fetch 2,mem_l2cap_signal_tx_length
-	istore 2,contw
-	force L2CAP_signal_channel,pdata
-	istore 2,contw
-	jam 0,mem_send_config_req
-l2cap_proc_signal_config_req_rtn:
-	branch l2cap_process_one_signal_rtn
-
-l2cap_proc_signal_config_rsp:
-	increase 1,contr
-	ifetch 2,contr
-	copy pdata,regA
-	copy regC,pdata
-	isub regA,regC
-	ifetch 2,contr //source cid
-	copy pdata,regA
-	bpatchx patch22_5,mem_patch22
-	setarg L2CAP_SDP_channel
-	isub rega,null
-	branch l2cap_proc_signal_config_rsp_sdp,zero
-	setarg L2CAP_RFCOMM_channel
-	isub rega,null
-	branch l2cap_proc_signal_config_rsp_rfcomm,zero
-	setarg L2CAP_HID_Control_channel
-	isub rega,null
-	branch l2cap_proc_signal_config_rsp_hid_ctrl,zero
-	setarg L2CAP_HID_Interrupt_channel
-	isub rega,null
-	branch l2cap_proc_signal_config_rsp_hid_int,zero
-	increase 2,contr
-	ifetch 2,contr
-	iforce null
-	branch l2cap_process_one_signal_rtn
-l2cap_proc_signal_config_rsp_sdp:
-	fetch 1,mem_sdp_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES,pdata
-	store 1,mem_sdp_state
-	branch l2cap_process_one_signal_rtn
-l2cap_proc_signal_config_rsp_rfcomm:
-	fetch 1,mem_rfcomm_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES,pdata
-	store 1,mem_rfcomm_state
-	branch l2cap_process_one_signal_rtn
-l2cap_proc_signal_config_rsp_hid_ctrl:
-	fetch 1,mem_hid_control_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES,pdata
-	store 1,mem_hid_control_state
-	branch l2cap_process_one_signal_rtn
-l2cap_proc_signal_config_rsp_hid_int:
-	fetch 1,mem_hid_interrupt_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES,pdata
-	store 1,mem_hid_interrupt_state
-	jam BT_EVT_HID_CONNECTED,mem_fifo_temp
-	branch ui_ipc_send_event
-	
-
-
-l2cap_proc_signal_disconnect_req:
-	ifetch 1,contr
-	copy pdata,queue
-	ifetch 2,contr
-	copy pdata,regA
-	copy regC,pdata
-	isub regA,regC
-	ifetch 2,contr
-	copy pdata,regA
-	ifetch 2,contr
-	copy pdata,timeup
-	copy regA,temp
-	call save_cont_pointers
-	bpatchx patch22_6,mem_patch22
-	setarg L2CAP_SDP_channel
-	isub temp,null
-	branch l2cap_proc_signal_disconnect_req_sdp,zero
-	setarg L2CAP_RFCOMM_channel
-	isub temp,null
-	branch l2cap_proc_signal_disconnect_req_rfcomm,zero
-	setarg L2CAP_HID_Control_channel
-	isub temp,null
-	branch l2cap_proc_signal_disconnect_req_hid_ctrl,zero
-	setarg L2CAP_HID_Interrupt_channel
-	isub temp,null
-	branch l2cap_proc_signal_disconnect_req_hid_int,zero
-	call l2cap_reject_command
-	branch l2cap_proc_signal_disconnect_req_err_rtn
-l2cap_proc_signal_disconnect_req_hid_ctrl:
-	copy timeup,temp
-	fetch 2,mem_hid_ctrl_remote_cid
-	isub temp,null
-	branch l2cap_disconnect_hid_control_now,zero
-	call l2cap_reject_command
-	branch l2cap_proc_signal_disconnect_req_err_rtn
-l2cap_proc_signal_disconnect_req_hid_int:
-	copy timeup,temp
-	fetch 2,mem_hid_int_remote_cid
-	isub temp,null
-	branch l2cap_disconnect_hid_interrupt_now,zero
-	call l2cap_reject_command
-	branch l2cap_proc_signal_disconnect_req_err_rtn
-
-l2cap_proc_signal_disconnect_req_sdp:
-	copy timeup,temp
-	fetch 2,mem_sdp_remote_cid
-	isub temp,null
-	branch l2cap_disconnect_sdp_now,zero
-	call l2cap_reject_command
-	branch l2cap_proc_signal_disconnect_req_err_rtn
-l2cap_disconnect_hid_control_now:
-	call l2cap_reset_hid_ctrl_state
-	branch l2cap_send_disconnect_rsp_pkt
-l2cap_disconnect_hid_interrupt_now:
-	call l2cap_reset_hid_int_state
-	fetch 2, mem_hid_ctrl_remote_cid
-	branch l2cap_send_disconnect_rsp_pkt, blank
-	//set the flag,hid channel close
-	//should we set here?
-	//call HID_mem_lock
-	//fetch 1, mem_hid_cb1
-	//set1 HID_CB_APP_HID_DISCONNECTED,pdata
-	//store 1, mem_hid_cb1
-	//call HID_mem_unlock
-	branch l2cap_send_disconnect_rsp_pkt
-
-l2cap_disconnect_sdp_now:
-	call l2cap_reset_sdp_channel_state
-	fetch 1,mem_upper_sm_ss
-	nbranch l2cap_send_disconnect_rsp_pkt,blank
-	//jam LMP_ENCRYPTION_MODE_REQ,mem_lmo_opcode2
-	//jam UPPERSM_RP_SDP_CONN,mem_upper_sm_remote_page
-	branch l2cap_send_disconnect_rsp_pkt
-l2cap_proc_signal_disconnect_req_rfcomm:
-	copy timeup,temp
-	fetch 2, mem_RFCOMM_remote_CID
-	isub temp,null
-	branch l2cap_disconnect_rfcomm_now,zero
-	call l2cap_reject_command
-	branch l2cap_proc_signal_disconnect_req_err_rtn
-l2cap_disconnect_rfcomm_now:
-	call l2cap_reset_rfcomm_channel_state
-	branch l2cap_send_disconnect_rsp_pkt
-l2cap_send_disconnect_rsp_pkt:
-	call load_cont_pointers
-	setarg signal_disconnect_rsp
-	istore 1,contw
-	copy queue,pdata
-	istore 1,contw
-	setarg 0x0004
-	istore 2,contw
-	copy regA,pdata
-	istore 2,contw
-	copy timeup,pdata
-	istore 2,contw
-	force 8,pdata
-	branch l2cap_proc_signal_disconnect_req_rtn
-l2cap_proc_signal_disconnect_req_err_rtn:
-	call load_cont_pointers
-	branch l2cap_proc_signal_disconnect_req_rtn
-l2cap_proc_signal_disconnect_req_rtn:
-	iadd regB,regB
-	branch l2cap_process_one_signal_rtn
-l2cap_proc_signal_disconnect_rsp:
-	ifetch 1,contr
-	copy pdata,queue
-	ifetch 2,contr
-	copy pdata,regA
-	copy regC,pdata
-	isub regA,regC
-	ifetch 2,contr
-	copy pdata,timeup
-	ifetch 2,contr
-	copy pdata,temp
-	call save_cont_pointers
-	bpatchx patch22_7,mem_patch22
-	setarg L2CAP_SDP_channel
-	isub temp,null
-	branch l2cap_proc_signal_disconnect_rsp_sdp,zero
-	setarg L2CAP_RFCOMM_channel
-	isub temp,null
-	branch l2cap_proc_signal_disconnect_rsp_rfcomm,zero
-	setarg L2CAP_HID_Control_channel
-	isub temp,null
-	branch l2cap_proc_signal_disconnect_rsp_hid_ctrl,zero
-	setarg L2CAP_HID_Interrupt_channel
-	isub temp,null
-	branch l2cap_proc_signal_disconnect_rsp_hid_int,zero
-	call l2cap_reject_command
-	branch l2cap_proc_signal_disconnect_rsp_err_rtn
-l2cap_proc_signal_disconnect_rsp_sdp:
-	copy temp,regA
-	copy timeup,temp
-	fetch 2,mem_sdp_remote_cid
-	isub temp,null
-	call l2cap_reset_sdp_channel_state,zero
-	branch l2cap_proc_signal_disconnect_rsp_rtn
-l2cap_proc_signal_disconnect_rsp_rfcomm:
-	copy temp,regA
-	copy timeup,temp
-	fetch 2,mem_rfcomm_remote_CID
-	isub temp,null
-	call l2cap_reset_rfcomm_channel_state,zero
-	branch l2cap_proc_signal_disconnect_rsp_rtn
-l2cap_proc_signal_disconnect_rsp_hid_ctrl:
-	copy temp,regA
-	copy timeup,temp
-	fetch 2,mem_hid_ctrl_remote_cid
-	isub temp,null
-	call  l2cap_reset_hid_ctrl_state,zero
-	branch l2cap_proc_signal_disconnect_rsp_rtn
-l2cap_proc_signal_disconnect_rsp_hid_int:
-	copy temp,regA
-	copy timeup,temp
-	fetch 2,mem_hid_int_remote_cid
-	isub temp,null
-	call l2cap_reset_hid_int_state,zero
-	branch l2cap_proc_signal_disconnect_rsp_rtn
-l2cap_proc_signal_disconnect_rsp_rtn:
-	call load_cont_pointers
-	branch l2cap_process_one_signal_rtn
-l2cap_proc_signal_disconnect_rsp_err_rtn:
-	branch l2cap_process_one_signal_rtn
-
-/* received an echo request from remote BD.  Will echo the 1st 1 byte back,		*/
-l2cap_proc_signal_echo_req:
-	ifetch 1,contr
-	copy pdata,queue
-	ifetch 2,contr
-	copy pdata,regA
-	iadd contr,contr
-	setarg 9
-	istore 1,contw
-	copy queue,pdata
-	istore 1,contw
-	force 0x0000,pdata
-	istore 2,contw
-	force 4,pdata
-	iadd regB,regB
-	copy regC,pdata
-	isub regA,regC
-	branch l2cap_process_one_signal_rtn
-l2cap_proc_signal_echo_rsp:
-	branch l2cap_process_one_signal_rtn
-
-l2cap_proc_signal_info_rsp:
-	branch l2cap_process_one_signal_rtn
-l2cap_reject_command:
-	force 0,regB
-	call l2cap_get_signal_tx_payload
-	setarg signal_cmd_reject
-	istore 1,contw
-	copy queue,pdata
-	istore 1,contw
-	setarg 2
-	istore 2,contw
-	setarg cmd_not_understood
-	istore 2,contw
-	increase 6,regB
-	arg 4,regC
-	branch l2cap_process_one_signal_rtn
-
-
-
-l2cap_reset_rfcomm_channel_state:
-	setarg 0
-	store 2,mem_RFCOMM_Tx_pkt_length
-	store 2,mem_RFCOMM_remote_CID
-	jam 0,mem_rfcomm_state
-	rtn
-l2cap_reset_sdp_channel_state:
-	setarg 0
-	store 2,mem_sdp_tx_pkt_length
-	store 2,mem_sdp_remote_cid
-	jam 0,mem_sdp_state
-	rtn
-l2cap_reset_hid_ctrl_state:
-	setarg 0
-	store 2,mem_hid_ctrl_remote_cid
-	jam 0,mem_hid_control_state
-	fetch 1,mem_hid_interrupt_state
-	beq 0,l2cap_reset_hid_disconnected
-	rtn
-
-l2cap_reset_hid_int_state:
-	setarg 0
-	store 2,mem_hid_int_remote_cid
-	jam 0,mem_hid_interrupt_state
-	fetch 1,mem_hid_control_state
-	beq 0,l2cap_reset_hid_disconnected
-	rtn
-	
-l2cap_reset_hid_disconnected:
-	jam BT_EVT_HID_DISCONNECTED,mem_fifo_temp
-	branch ui_ipc_send_event	
-
-l2cap_disconnect_interrupt_req:
-	fetch 1,mem_CONTROL_tasks
-	set0  L2CAP_DISCONNECT_INTERRUPT, pdata
-	store 1,mem_CONTROL_tasks
-	fetch 2, mem_hid_int_remote_cid
-	rtn blank
-	call l2cap_malloc_signal_channel
-	fetch 2, mem_hid_int_remote_cid
-	copy pdata,regA
-	force L2CAP_HID_Interrupt_channel,regB
-	branch l2cap_generate_disconnect_req
-l2cap_disconnect_control_req:
-	fetch 1,mem_CONTROL_tasks
-	set0  L2CAP_DISCONNECT_CONTROL, pdata
-	store 1,mem_CONTROL_tasks
-	fetch 2, mem_hid_ctrl_remote_cid
-	rtn blank
-	call l2cap_malloc_signal_channel
-	fetch 2, mem_hid_ctrl_remote_cid
-	copy pdata,regA
-	force L2CAP_HID_Control_channel,regB
-l2cap_generate_disconnect_req:
-	call l2cap_get_req_id
-	call l2cap_get_signal_tx_payload
-	force signal_disconnect_req,pdata
-	istore 1,contw
-	fetch  1,mem_ML2CAP_comm_id
-	istore 1,contw
-	setarg 0x0004
-	istore 2,contw
-	copy regA,pdata
-	istore 2,contw
-	copy regB,pdata
-	istore 2,contw
-	force 0x08,temp //signal tx length in temp
-	branch ml2cap_send_signal
-
-ml2cap_send_signal_connect_req:
-	bpatchx patch23_0,mem_patch23
-	call l2cap_get_req_id
-	call l2cap_get_signal_tx_payload
-	setarg signal_connect_req
-	istore 1,contw
-	fetch 1,mem_ML2CAP_comm_id
-	istore 1,contw
-	setarg 0x0004
-	istore 2,contw
-	copy temp,pdata	 //PSM
-	istore 2,contw
-	copy timeup,pdata
-	istore 2,contw
-	arg 8,temp
-	branch ml2cap_send_signal
-ml2cap_send_signal_config_req:
-	bpatchx patch23_1,mem_patch23
-	call l2cap_get_req_id
-	call l2cap_get_signal_tx_payload
-	setarg signal_config_req
-	istore 1,contw
-	fetch 1,mem_ML2CAP_comm_id
-	istore 1,contw
-	setarg 0x0008
-	istore 2,contw
-	/****modigy for nokia*****/
-	copy temp,pdata
-	/*setarg 0x0040*/
-	istore 2,contw
-	setarg 0x0000
-	istore 2,contw
-	setarg 0x01
-	istore 1,contw
-	setarg 0x02
-	istore 1,contw
-	setarg L2CAP_config_MTU_RFCOMM
-	istore 2,contw
-	arg 0xc,temp
-	branch ml2cap_send_signal
-ml2cap_send_signal_disconn_req:
-	bpatchx patch23_2,mem_patch23
-	call l2cap_get_req_id
-	call l2cap_get_signal_tx_payload
-	setarg signal_disconnect_req
-	istore 1,contw
-	fetch 1,mem_ML2CAP_comm_id
-	increase 1,pdata
-	copy contw,regA
-	store 1,mem_ML2CAP_comm_id
-	copy regA,contw
-	istore 1,contw
-	setarg 0x0004
-	istore 2,contw
-	copy temp,pdata
-	istore 2,contw
-	copy timeup,pdata
-	istore 2,contw
-	arg 0x8,temp
-	//branch ml2cap_send_signal
-	//Fall through
-ml2cap_send_signal:
-	storet 2,mem_l2cap_signal_tx_length
-	copy temp,pdata
-	branch l2cap_malloc_discard,blank
-	call l2cap_get_signal_tx_buff
-	fetch 2,mem_l2cap_signal_tx_length
-	istore 2,contw //make sure that length is still in temp!
-	force L2CAP_signal_channel,pdata
-	istore 2,contw
-	rtn
-
-msdp_send_req_done:
-	fetch 2,mem_sdp_tx_pkt_length
-	branch assert,blank
-	call l2cap_get_sdp_tx_buff
-	fetch 2,mem_sdp_tx_pkt_length
-	istore 2,contw
-	fetch 2,mem_sdp_remote_cid
-	istore 2,contw
-	rtn
-ml2cap_rx_multiplexing:
-	fetch 2, mem_l2cap_rx_pkt_length
-	branch l2cap_rx_reset_state,blank
-	bpatchx patch23_3,mem_patch23
-	fetch 1,mem_l2cap_rx_cid
-	beq L2CAP_signal_channel,ml2cap_call_proc_signal
-	beq L2CAP_SDP_channel,ml2cap_call_proc_sdp
-	beq L2CAP_RFCOMM_channel,l2cap_call_proc_rfcomm
-	beq L2CAP_HID_Control_channel,l2cap_call_proc_hid
-	beq L2CAP_HID_Interrupt_channel,l2cap_call_proc_hid
-	branch l2cap_rx_reset_state
-
-ml2cap_call_proc_signal:
-	bpatchx patch23_4,mem_patch23
-	call l2cap_malloc_signal_channel
-	force 0,regB
-	call l2cap_get_signal_tx_payload
-	copy pdata,contw
-	fetch 2,mem_l2cap_rx_pkt_length
-	copy pdata,regC
-	fetch 2,mem_l2cap_payload_ptr
-	iforce contr
-ml2cap_proc_one_comm_loop:
-	call ml2cap_proc_one_comm
-	increase -4,regC
-	nbranch ml2cap_proc_one_comm_loop,zero
-	copy regB,temp
-	call ml2cap_send_signal
-	branch l2cap_rx_reset_state
-	
-ml2cap_proc_one_comm:
-	ifetch 1,contr
-	beq signal_connect_req,ml2cap_proc_signal_connect_req
-	beq signal_cmd_reject,ml2cap_proc_signal_cmd_reject
-	beq signal_connect_rsp,ml2cap_proc_signal_connect_rsp
-	beq signal_config_rsp,ml2cap_proc_signal_config_rsp
-	beq signal_config_req,ml2cap_proc_signal_config_req
-	beq signal_disconnect_rsp,ml2cap_proc_signal_disconn_rsp
-	beq signal_disconnect_req,ml2cap_proc_signal_disconn_req
-	beq signal_echo_req,l2cap_proc_signal_echo_req
-	beq signal_info_req,ml2cap_proc_signal_info_req
-	branch ml2cap_proc_send_reject
-
-ml2cap_proc_signal_connect_req:
-	call save_cont_pointers
-	//jam NO_RECONNECTION,memui_reconnect_mode
-	call load_cont_pointers
-	branch l2cap_proc_signal_connect_req
-ml2cap_proc_signal_cmd_reject:
-	ifetch 1,contr
-	copy pdata,queue
-	ifetch 2,contr
-	copy pdata,regA
-	copy regC,pdata
-	isub regA,regC
-mvptr:
-	ifetch 1,contr
-	increase -1,regA
-	nbranch mvptr,zero
-	rtn
-ml2cap_proc_signal_connect_rsp:
-	ifetch 1,contr //id
-	copy pdata,queue
-	ifetch 2,contr
-	copy pdata,regA	//length
-	ifetch 2,contr
-	copy pdata,timeup	//destination	cid
-	ifetch 2,contr
-	copy pdata,temp	//source	cid
-	ifetch 2,contr 		// result
-	sub pdata,0,null
-	branch ml2cap_proc_signal_connect_rsp_sucessful,zero
-	beq L2CAP_connect_refused_PSM_unsupported,ml2cap_proc_signal_connect_refused_result
-	beq L2CAP_connect_refused_no_resources,ml2cap_proc_signal_connect_refused_result
-	branch ml2cap_proc_signal_connect_rsp_mnosucc
-ml2cap_proc_signal_connect_refused_result:
-	jam BT_EVT_ML2CAP_CONN_REFUSED,mem_fifo_temp
-	call ui_ipc_send_event
-ml2cap_proc_signal_connect_rsp_mnosucc:
-	ifetch 2,contr //reason
-	branch mnosucc
-ml2cap_proc_signal_connect_rsp_sucessful:
-	call save_cont_pointers
-	//fetch 1,mem_ML2CAP_comm_id
-	//icompare 0xff,queue
-	//nbranch mnosucc1,true
-	bpatchx patch23_5,mem_patch23
-	setarg L2CAP_SDP_channel
-	isub temp,null
-	branch ml2cap_proc_signal_connect_rsp_sdp,zero
-	setarg L2CAP_RFCOMM_channel
-	isub temp,null
-	branch ml2cap_proc_signal_connect_rsp_rfcomm,zero
-	setarg L2CAP_HID_Interrupt_channel
-	isub temp,null
-	branch ml2cap_proc_signal_connect_rsp_hid_int,zero
-	setarg L2CAP_HID_Control_channel
-	isub temp,null
-	branch ml2cap_proc_signal_connect_rsp_hid_ctrl,zero
-	branch mnosucc
-ml2cap_proc_signal_connect_rsp_sdp:
-	copy timeup,pdata
-	store 2,mem_sdp_remote_cid
-	fetch 1,mem_sdp_state
-	set1 L2CAP_CHANNEL_STATE_CONN_RES
-	store 1,mem_sdp_state
-	branch mnosucc1
-ml2cap_proc_signal_connect_rsp_rfcomm:
-	copy timeup,pdata
-	store 2,mem_RFCOMM_remote_CID
-	fetch 1,mem_rfcomm_state
-	set1 L2CAP_CHANNEL_STATE_CONN_RES
-	store 1,mem_rfcomm_state
-	branch mnosucc1
-ml2cap_proc_signal_connect_rsp_hid_ctrl:
-	copy timeup,pdata
-	store 2,mem_hid_ctrl_remote_cid
-	fetch 1,mem_hid_control_state
-	set1 L2CAP_CHANNEL_STATE_CONN_RES
-	store 1,mem_hid_control_state
-	branch mnosucc1
-ml2cap_proc_signal_connect_rsp_hid_int:
-	copy timeup,pdata
-	store 2,mem_hid_int_remote_cid
-	fetch 1,mem_hid_interrupt_state
-	set1 L2CAP_CHANNEL_STATE_CONN_RES
-	store 1,mem_hid_interrupt_state
-	//branch mnosucc1
-
-mnosucc1:
-	call load_cont_pointers
-mnosucc:
-	copy regC,pdata
-	isub regA,regC
-	rtn
-
-ml2cap_proc_signal_config_rsp:
-	ifetch 1,contr		//	Ident
-	copy pdata,queue
-	ifetch 2,contr		//	SigLen
-	copy pdata,regA
-	copy regC,pdata
-	isub regA,regC
-	ifetch 2,contr		//	DestnCID
-	copy pdata,timeup
-	ifetch 2,contr
-	ifetch 2,contr		//	Get the result value, check success
-	nbranch mcrsdone1,blank
-	call save_cont_pointers
-	//fetch 1,mem_ML2CAP_comm_id
-	//icompare 0xff,queue
-	//nbranch mcfrsdone,true
-	copy timeup,temp
-	bpatchx patch23_6,mem_patch23
-	setarg L2CAP_SDP_channel
-	isub temp,null
-	branch ml2cap_proc_signal_config_rsp_sdp,zero
-	setarg L2CAP_RFCOMM_channel
-	isub temp,null
-	branch ml2cap_proc_signal_config_rsp_rfcomm,zero
-	setarg L2CAP_HID_Control_channel
-	isub temp,null
-	branch ml2cap_proc_signal_config_rsp_hid_ctrl,zero
-	setarg L2CAP_HID_Interrupt_channel
-	isub temp,null
-	branch ml2cap_proc_signal_config_rsp_hid_int,zero
-ml2cap_proc_signal_config_rsp_sdp:
-	fetch 1,mem_sdp_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES
-	store 1,mem_sdp_state
-	rtn
-ml2cap_proc_signal_config_rsp_rfcomm:
-	fetch 1,mem_rfcomm_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES
-	store 1,mem_rfcomm_state
-	rtn
-ml2cap_proc_signal_config_rsp_hid_ctrl:
-	fetch 1,mem_hid_control_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES
-	store 1,mem_hid_control_state
-	rtn
-ml2cap_proc_signal_config_rsp_hid_int:
-	fetch 1,mem_hid_interrupt_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES
-	store 1,mem_hid_interrupt_state
-	jam BT_EVT_HID_CONNECTED,mem_fifo_temp
-	branch ui_ipc_send_event
-
-
-mcfrsdone:
-	call load_cont_pointers
-mcrsdone1:
-	increase -6,regA
-mloop2:
-	branch mcrsdone,zero
-	increase 1,contr
-	increase -1,regA
-	branch mloop2
-mcrsdone:
-	rtn
-ml2cap_proc_signal_config_req:
-	ifetch 1,contr		//	Ident
-	copy pdata,queue
-	ifetch 2,contr		//	SigLen
-	copy pdata,regA
-	copy regC,pdata
-	isub regA,regC
-	ifetch 2,contr		//	DestnCID
-	increase 2,contr
-	copy pdata,temp
-	setarg  signal_config_rsp
-	istore 1,contw
-	copy queue,pdata
-	istore 1,contw
-	increase 2,regA
-	copy regA,pdata
-	istore 2,contw
-	call save_cont_pointers
-	bpatchx patch23_7,mem_patch23
-	setarg L2CAP_SDP_channel
-	isub temp,null
-	branch ml2cap_proc_signal_config_req_sdp,zero
-	setarg L2CAP_RFCOMM_channel
-	isub temp,null
-	branch ml2cap_proc_signal_config_req_rfcomm,zero
-	setarg L2CAP_HID_Control_channel
-	isub temp,null
-	branch ml2cap_proc_signal_config_req_hid_ctrl,zero
-	setarg L2CAP_HID_Interrupt_channel
-	isub temp,null
-	branch ml2cap_proc_signal_config_req_hid_int,zero
-	branch mcfgrq_done
-ml2cap_proc_signal_config_req_sdp:
-	fetch 1,mem_sdp_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
-	store 1,mem_sdp_state
-	bbit1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,ml2cap_proc_signal_config_req_sdp_nsndreq
-	fetcht 1,mem_CONTROL_tasks
-	set1 L2CAP_init_Config_Req,temp
-	storet 1,mem_CONTROL_tasks
-	copy queue,pdata
-	increase 1,pdata
-	store 1,mem_config_identifier
-	fetch 1,mem_sdp_state
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
-	store 1,mem_sdp_state
-ml2cap_proc_signal_config_req_sdp_nsndreq:
-	fetch 2,mem_sdp_remote_cid
-	store 2,mem_config_req_dest_CID
-	branch mcfgrq_done
-ml2cap_proc_signal_config_req_rfcomm:
-	fetch 1,mem_rfcomm_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
-	store 1,mem_rfcomm_state
-	fetch 2,mem_RFCOMM_remote_CID
-	branch mcfgrq_done
-ml2cap_proc_signal_config_req_hid_ctrl:
-	fetch 1,mem_hid_control_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
-	store 1,mem_hid_control_state
-	fetch 2,mem_hid_ctrl_remote_cid
-	branch mcfgrq_done
-ml2cap_proc_signal_config_req_hid_int:
-	fetch 1,mem_hid_interrupt_state
-	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
-	store 1,mem_hid_interrupt_state
-	fetch 2,mem_hid_int_remote_cid
-	//branch mcfgrq_done
-
-mcfgrq_done:
-	copy pdata,timeup
-	call load_cont_pointers
-/*******for Nokia**************/
-	copy timeup,pdata
-	/*setarg 0x0040*/
-	istore 2,contw
-	force 0x0000,pdata
-	istore 2,contw
-	force 0x0000,pdata
-	istore 2,contw
-	force 10,pdata
-	iadd regB,regB
-	increase -6,regA
-mloop1:
-	branch mcrqdone,zero
-	ifetch 1,contr
-	istore 1,contw
-	increase 1,regB
-	increase -1,regA
-	branch mloop1
-mcrqdone:
-	rtn
-ml2cap_proc_signal_disconn_req:
-	ifetch 1,contr
-	copy pdata,queue
-	ifetch 2,contr
-	copy pdata,regA
-	copy regC,pdata
-	isub regA,regC
-
-	ifetch 2,contr
-	copy pdata,regA
-	ifetch 2,contr
-	copy pdata,timeup
-	call save_cont_pointers
-	bpatchx patch24_0,mem_patch24
-	setarg L2CAP_SDP_channel
-	copy regA,temp
-	isub temp,null
-	branch ml2cap_proc_signal_disconn_sdp,zero
-	setarg L2CAP_HID_Control_channel
-	copy regA,temp
-	isub temp,null
-	branch ml2cap_proc_signal_disconn_hid_ctrl,zero
-	setarg L2CAP_HID_Interrupt_channel
-	copy regA,temp
-	isub temp,null
-	branch ml2cap_proc_signal_disconn_hid_int,zero
-	branch mclsrfc
-ml2cap_proc_signal_disconn_sdp:
-	setarg 0x0000
-	store 2,mem_sdp_tx_pkt_length
-	store 2,mem_sdp_remote_cid
-	store 1,mem_sdp_state
-	branch mclssdp
-ml2cap_proc_signal_disconn_hid_ctrl:
-	call l2cap_reset_hid_ctrl_state
-	branch mclssdp
-ml2cap_proc_signal_disconn_hid_int:
-	call l2cap_reset_hid_int_state
-	//call HID_mem_lock
-	//fetch 1, mem_hid_cb1
-	//set1 HID_CB_APP_HID_DISCONNECTED,pdata
-	//store 1, mem_hid_cb1
-	//call HID_mem_unlock
-	branch mclssdp
-mclsrfc:
-	setarg 0x0000
-	store 2,mem_RFCOMM_Tx_pkt_length
-mclssdp:
-	call load_cont_pointers
-	setarg signal_disconnect_rsp
-	istore 1,contw
-	copy queue,pdata
-	istore 1,contw
-	setarg 0x0004
-	istore 2,contw
-	copy regA,pdata
-	istore 2,contw
-	copy timeup,pdata
-	istore 2,contw
-	force 8,pdata
-	iadd regB,regB
-	rtn
-
-ml2cap_proc_signal_disconn_rsp:
-	ifetch 1,contr
-	copy pdata,queue
-	ifetch 2,contr
-	copy pdata,regA
-	ifetch 2,contr
-	copy pdata,timeup
-	ifetch 2,contr
-	copy pdata,temp
-	call save_cont_pointers
-	bpatchx patch24_1,mem_patch24
-	fetch 1,mem_ML2CAP_comm_id
-	icompare 0xff,queue
-	nbranch mdisdone,true
-	setarg L2CAP_SDP_channel
-	isub temp,null
-	branch ml2cap_proc_signal_disconn_rsp_sdp,zero
-	setarg L2CAP_RFCOMM_channel
-	isub temp,null
-	branch ml2cap_proc_signal_disconn_rsp_rfcomm,zero
-	branch mdisdone
-ml2cap_proc_signal_disconn_rsp_sdp:
-	jam 0,mem_sdp_remote_cid
-	jam 0,mem_sdp_state
-	branch mdisdone
-ml2cap_proc_signal_disconn_rsp_rfcomm:
-	//
-	//
-mdisdone:
-	call load_cont_pointers
-	copy regC,pdata
-	isub regA,regC
-	rtn
-
-ml2cap_proc_send_reject:
-	setarg signal_cmd_reject
-	istore 1,contw
-	ifetch 1,contr
-	istore 1,contw
-	setarg 0x0002
-	istore 2,contw
-	setarg 0x0000
-	istore 2,contw
-	setarg 0x0006
-	iadd regB,regB
-	force 4,regC
-	rtn
-	
-//l2cap command id, 0 is not allowed
-l2cap_get_req_id:
-	fetch 1,mem_ML2CAP_comm_id
-	increase 1,pdata
-	bne 0,l2cap_get_req_id_ok
-	increase 1,pdata
-l2cap_get_req_id_ok:
-	store 1,mem_ML2CAP_comm_id
-	rtn
-
-
-/*********************************************************/
-//char* malloc(short len)
-//input: regA -> len
-//rtn: regB -> pbuff;return from pdata
-//val: queue -> i
-//val: timeup -> buff_cnt
-/*********************************************************/
-l2cap_malloc:
-	bpatchx patch24_2,mem_patch24
-	arg 0,regb
-	call l2cap_malloc_is_fifo_full
-	nbranch assert,blank//assert when fifo full
-	call l2cap_malloc_get_full_map
-ifdef DEBUG_MALLOC
-	call l2cap_malloc_log_get_ptr
-	copy regA,pdata
-	istore 2,contw
-	sub pdata,1024,null
-	branch assert,positive
-	branch assert,blank
-endif
-	arg mem_tx_buff0,regB//pbuff = buff0;
-	arg 0,queue // i = 0;
-l2cap_malloc_loop:
-	fetcht 1,mem_used_map
-	qisolate1 temp
-	branch l2cap_malloc_next,true//if(1 == (used_map & (1 << i)))goto next;
-	call l2cap_malloc_enough
-	sub timeup,0,null// (0 - timeup)
-	branch l2cap_malloc_next,positive//if(buff_cnt <= 0)goto next;
-	call l2cap_malloc_into_fifo
-	branch l2cap_malloc_rtn//return (pbuff);
-l2cap_malloc_next:
-	increase 128,regB//pbuff += BUFF_SIZE;//point to next buff
-	increase 1,queue
-	setarg 8//BUFF_MAX_COUNT
-	isub queue,null //BUFF_MAX_COUNT - i
-	branch l2cap_malloc_loop,positive//while(i < buff_max_count)
-	arg 0,regB//return NULL
-l2cap_malloc_rtn:
-ifdef DEBUG_MALLOC
-	call l2cap_malloc_log_get_ptr
-	copy regB,pdata
-	istore 2,contw
-endif
-	copy regB,pdata
-	branch assert,blank
-	rtn//return pointer via pdata
-	
-/*********************************************************/
-//void* l2cap_malloc_fifo_out(void)
-//output:len -> temp
-//output:ptr ->pdata
-//only get ptr,not free
-/*********************************************************/
-l2cap_malloc_fifo_out:
-	bpatchx patch24_3,mem_patch24
-	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:
-	bpatchx patch24_4,mem_patch24
-	call l2cap_malloc_fifo_get_first_ptr
-	copy contr,contw
-	copy contr,temp
-	setarg 0
-	istore 3,contw
-ifdef DEBUG_MALLOC
-	call l2cap_malloc_log_get_ptr
-	setarg 0xaa
-	istore 1,contw
-	istoret 1,contw
-endif
-	rtn
-/*********************************************************/
-//void l2cap_malloc_discard(void)
-//discard the latest malloc
-/*********************************************************/
-l2cap_malloc_discard:
-	bpatchx patch24_5,mem_patch24
-	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:
-	bpatchx patch24_6,mem_patch24
-	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:
-	bpatchx patch24_7,mem_patch24
-	fetch 3,mem_tx_fifo1
-	rtn
-/*********************************************************/
-//bool fifo_is_empty(void)
-//blank == 1: empty
-//blank == 0: not empty
-/*********************************************************/
-l2cap_malloc_is_fifo_empty:
-	bpatchx patch25_0,mem_patch25
-	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 assert,blank // fifo is empty
-	arg mem_tx_fifo0,contr
-ifdef DEBUG_MALLOC
-	arg 5,loopcnt
-l2cap_malloc_free_loop:
-	increase -1,loopcnt
-	copy loopcnt,pdata
-	branch assert,blank
-else
-l2cap_malloc_free_loop:
-endif
-	ifetch 3,contr
-	branch l2cap_malloc_free_loop,blank
-	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:
-	bpatchx patch25_1,mem_patch25
-	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
-/*********************************************************/
-//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)
-/*********************************************************/
-l2cap_malloc_into_fifo:
-	bpatchx patch25_2,mem_patch25
-	call l2cap_malloc_is_fifo_full
-	nbranch assert,blank //fifo full
-	call l2cap_malloc_is_fifo_empty
-	branch l2cap_malloc_into_fifo_no_push,blank//fifo empty, no need to push
-	fetch 3,mem_tx_fifo1
-	store 3,mem_tx_fifo0
-	ifetch 3,contr//mem_tx_fifo2
-	istore 3,contw//mem_tx_fifo1
-	ifetch 3,contr//mem_tx_fifo3
-	istore 3,contw//mem_tx_fifo2
-	setarg 0
-	istore 3,contw//mem_tx_fifo3
-l2cap_malloc_into_fifo_no_push:
-	arg 0,temp
-	copy timeup,pdata
-	iadd queue,pdata
-l2cap_malloc_into_fifo_loop:
-	qset1 temp//fifo->map |= 1 << i;
-	increase 1,queue
-	isub queue,null
-	nbranch l2cap_malloc_into_fifo_loop,zero
-	//map in temp
-	lshift8 regB,pdata
-	ior temp,pdata
-	store 3,mem_tx_fifo3
-	rtn
-
-/*********************************************************/
-//char is_size_enough(char buff_index, short len)
-//input: regA -> len
-//input: queue -> buff_index
-//rtn: timeup -> buff_cnt
-//val: max_size_fom_buff_index -> temp
-//val: i -> loopcnt
-/*********************************************************/
-l2cap_malloc_enough:
-	bpatchx patch25_3,mem_patch25
-	call l2cap_malloc_get_full_map
-	copy queue,regC//restore buff_index to regC
-	arg 0,temp
-	arg 0,timeup//default return val
-	//increase 1,queue
-l2cap_malloc_enough_loop:
-	copy queue,pdata
-	beq 8,l2cap_malloc_enough_end
-	fetch 1,mem_used_map
-	qisolate1 pdata
-	branch l2cap_malloc_enough_end,true
-	increase 128,temp
-	increase 1,queue
-	copy regA,pdata
-	isub temp,null
-	branch l2cap_malloc_enough_end,zero//(max_size_fom_buff_index ==  len)
-	branch l2cap_malloc_enough_loop,positive//(max_size_fom_buff_index <  len)
-l2cap_malloc_enough_end:
-	copy temp,pdata
-	isub regA,null
-	nbranch l2cap_malloc_enough_rtn,positive// max_size_fom_buff_index - len > 0
-	copy queue,pdata//i
-	copy regC,temp//buff_index
-	isub temp,timeup//return (i - buff_index)
-l2cap_malloc_enough_rtn:
-	copy regC,queue//restore buff_index to queue
-	rtn
-	
-ifdef DEBUG_MALLOC
-l2cap_malloc_log_get_ptr:
-	fetch 2,mem_tx_malloc_log
-	increase 2,pdata
-	store 2,mem_tx_malloc_log
-	sub pdata,62,null
-	nbranch l2cap_malloc_log_clean,positive
-	increase -2,pdata
-	iadd contw,contw
-	rtn
-l2cap_malloc_log_clean:
-	jam 0x00,mem_tx_malloc_log
-	branch l2cap_malloc_log_get_ptr	
-endif
-
-l2cap_malloc_signal_channel:
-	bpatchx patch25_4,mem_patch25
-	arg L2CAP_SIGNAL_MALLOC_SIZE,regA
-	call l2cap_malloc
-	store 2,mem_l2cap_signal_tx_buff_ptr
-	increase 4,pdata
-	store 2,mem_l2cap_signal_tx_payload_ptr
-	setarg 0
-	store 2,mem_l2cap_signal_tx_length
-	rtn
-
-l2cap_get_signal_tx_buff:
-	fetch 2,mem_l2cap_signal_tx_buff_ptr
-	branch l2cap_util_pdata_to_contw
-
-l2cap_get_signal_tx_payload:
-	fetch 2,mem_l2cap_signal_tx_payload_ptr
-	branch l2cap_util_pdata_to_contw
-
-
-l2cap_malloc_sdp_channel:
-	bpatchx patch25_5,mem_patch25
-	arg SDP_MALLOC_SIZE,regA
-	call l2cap_malloc
-	store 2,mem_sdp_tx_buff_ptr
-	increase 4,pdata
-	store 2,mem_sdp_tx_payload_ptr
-	setarg 0
-	store 2,mem_sdp_tx_pkt_length
-	rtn
-
-l2cap_get_sdp_tx_buff:
-	fetch 2,mem_sdp_tx_buff_ptr
-	branch l2cap_util_pdata_to_contw
-
-l2cap_get_sdp_tx_payload:
-	fetch 2,mem_sdp_tx_payload_ptr
-	branch l2cap_util_pdata_to_contw
-
-
-l2cap_malloc_rfcomm_channel:
-	bpatchx patch25_6,mem_patch25
-	call push_stack
-	jam RFCOMM_MALLOC_FAIL,mem_rfcomm_malloc_fail_flag
-	call l2cap_malloc_is_fifo_full
-	nrtn blank
-	arg RFCOMM_MALLOC_SIZE,regA
-	call l2cap_malloc
-	store 2,mem_rfcomm_tx_buff_ptr
-	increase 4,pdata
-	store 2,mem_rfcomm_tx_payload_ptr
-	setarg 0
-	store 2,mem_rfcomm_tx_pkt_length
-	jam RFCOMM_MALLOC_SUCCEED,mem_rfcomm_malloc_fail_flag
-	branch pop_stack
-
-l2cap_get_rfcomm_tx_buff:
-	fetch 2,mem_rfcomm_tx_buff_ptr
-	branch l2cap_util_pdata_to_contw
-	
-l2cap_util_pdata_to_contw:
-	branch assert,blank
-	copy pdata,contw
-	rtn
-	
-
-l2cap_lpm_save_calc_len:
-	bpatchx patch25_7,mem_patch25
-	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_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_txbuf:
-	bpatchx patch26_0,mem_patch26
-	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
-	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:
-	bpatchx patch26_1,mem_patch26
-	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
-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: DPI_Switch/program/le.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/le.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/le.prog	(nonexistent)
@@ -1,1839 +0,0 @@
-ifdef COMPILE_LE
-//******************************************//
-//*************LE INIT ****************//
-//******************************************//
-
-
-le_init_conn:
-	bpatchx patch26_2,mem_patch26
-	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
-	store 5,mem_le_pcnt_tx
-	set1 39,pdata
-	store 5,mem_le_pcnt_rx
-	jam 1,mem_le_txheader
-	jam 0,mem_le_txlen
-	branch le_supervision_flush
-
-le_init_master:
-	bpatchx patch26_3,mem_patch26
-	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_le_pcnt_rx
-	set1 39,pdata
-	store 5,mem_le_pcnt_tx	
-	branch le_init_conn
-
-
-le_init_slave:
-	bpatchx patch26_4,mem_patch26
-	disable master
- 	setarg 0x17
- 	store 2,mem_le_remote_mtu
-	jam lemode_slave,mem_le_mode
-	jam 0,mem_le_adv_enable
-	jam 0,mem_lpm_current_mult
-	jam FLAG_LE_PAIRING_NULL,mem_le_pairing_state
-	jam FLAG_LE_ENC_NULL,mem_le_enc_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_dispatch:
-	call le_enable
-	call le_scan
-	call le_adv
-	branch le_disable
-
-le_conn_dispatch:
-	bpatchx patch26_5,mem_patch26
-	call le_enable
-	call app_process_ble
-	fetch 1,mem_le_mode
-	beq lemode_master,le_master_dispatch
-	branch le_slave_dispatch
-	
-//******************************************//
-//***********LE master process*********//
-//******************************************//
-	
-le_master_dispatch:
-	bpatchx patch26_6,mem_patch26
-	enable master
-	call le_supervision_update
-	branch le_master_disconn,positive
-	call check_ble_disabled
-	call le_setup
-	call le_prepare_tx
-	disable match
-	call le_transmit_receive_sifs
-	nrtn match
-	bpatchx patch26_7,mem_patch26
-	fetch 1,mem_le_conn_rcv
-	increase 1,pdata
-	store 1,mem_le_conn_rcv
-	call le_acknowledge
-	disable master
-	rtn
-	
-le_master_disconn:
-	call le_disconnect
-	disable master
-	rtn
-	
-//******************************************//
-//***********LE slave process***********//
-//******************************************//
-le_slave_dispatch:
-	bpatchx patch27_0,mem_patch27
-	jam 0,mem_le_md_count
-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
-	call check_ble_disabled
-	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
-	branch le_slave_cont
-	
-
-le_slave_match:
-	bpatchx patch27_1,mem_patch27
-	fetch 1,mem_le_md_count
-	pincrease 1
-	store 1,mem_le_md_count
-	beq LE_MD_MAX_COUNT,le_slave_cont
-	call le_acknowledge
-	call le_prepare_tx
-	call le_transmit_norx
-	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 patch27_2,mem_patch27
-	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 patch27_3,mem_patch27
-	call le_lpm_set_mult
-	call le_update_channel_map
-	call le_update_param
-	branch calc_clke_offset
-
-
-le_check_md:
-	disable user
-	bmark1 mark_ble_rx_md,enable_user
-	bmark1 mark_ble_tx_md,enable_user
-	rtn
-
-
-le_slave_more_data:
-	bpatchx patch27_4,mem_patch27
-	enable attempt
-	call le_transmit_receive_sifs_notx
-	branch le_slave_match,match
-	branch le_slave_cont
-
-le_slave_disconn:
-
-	//fall through
-le_disconnect:
-	bpatchx patch27_5,mem_patch27
-	call le_clear_connection_info
-	call app_disconn_reason_collect_ble
-ifdef SECURE_CONNECTION
-	call sp_initialize_256
-endif
-	jam BT_EVT_LE_DISCONNECTED,mem_fifo_temp
-	branch ui_ipc_send_event
-
-le_clear_connection_info:
-	setarg 0
-	store 9,mem_le_tx_buff_used
-	jam 0,mem_le_conn_handle
-	jam lemode_idle,mem_le_mode
-	jam 0,mem_le_state
-	jam FLAG_LE_ENC_NULL,mem_le_enc_state
-	jam FLAG_LE_PAIRING_NULL,mem_le_pairing_state
-	rtn
-	
-le_got_first_packet:
-	bpatchx patch27_6,mem_patch27
-	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
-	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
-
-
-le_enable:
-	bpatchx patch27_7,mem_patch27
-	jam 0x36,rf_adc_goff        /*For BLE, tune AGC_gain_offset, Max added*/
-	jam 0x5f,rf_agc_nsat        //for BLE
-	enable le
-	jam 7,rfen_ulp			/* enable ulp */
-	call check_ble_disabled
-	fetch 1,mem_250k_freq_enable	//default: 0
-	rtn blank
-	jam 0xb8,rf_iq_gain
-	rtn
-	
-le_disable:
-	bpatchx patch28_0,mem_patch28
-	jam 0x2e,rf_adc_goff        /*For BR/EDR, tune AGC_gain_offset, Max added*/
-	jam 0xff,rf_agc_nsat         //for EDR&BR
-	disable le
-	jam 3,rfen_ulp
-	arg 0,stop_watch
-	rtn
-	
-le_prep:
-	disable enable_crc
-	disable enable_white
-	fetch 3,mem_le_crcinit
-	iforce crc24_init
-	fetch 1,mem_le_ch_mapped
-	reverse pdata,temp
-	set1 1,temp
-	rshift temp,white_init
-	rtn
-	
-
-lerx_setfreq:
-	call le_setfreq
-	call set_freq_rx
-	setarg param_pll_setup
-	call sleep
-	branch rf_rx_enable
-
-letx_setfreq:
-	branch txon,match
-letx_setfreq0:
-	call le_setfreq
-	branch set_freq_tx
-le_setfreq:
-	bpatchx patch28_1,mem_patch28
-	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_adv_access:
-	setarg 0x8e89be
-	lshift8 pdata,pdata
-	or_into 0xd6,pdata
-	iforce access
-	setarg 0x555555
-	store 3,mem_le_crcinit
-	rtn
-
-le_setup:
-	bpatchx patch28_2,mem_patch28
-	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:
-	arg param_pll_setup,temp
-	iadd temp,pdata
-	call ahead_window
-	deposit clke
-	store 6,mem_le_rxon_ts
-	rtn
-
-le_next_adv_channel:
-	bpatchx patch28_3,mem_patch28
-	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_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
-
-
-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
-
-
-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_37:
-	jam 37,mem_le_ch_mapped
-	fetch 1,mem_le_adv_channel_map_temp
-	set1 BIT_ADV_CHANNEL_MAP_37,pdata
-	store 1,mem_le_adv_channel_map_temp
-	rtn
-
-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
-	store 1,mem_le_adv_channel_map_temp
-	rtn
-
-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
-	store 1,mem_le_adv_channel_map_temp
-	rtn
-
-
-
-le_context_nexthop:
-	bpatchx patch28_4,mem_patch28
-	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
-	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
-
-
-le_calc_channel_map:
-	bpatchx patch28_5,mem_patch28
-	fetch 5,mem_le_channel_map
-	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
-	store 1,mem_le_channels
-	rtn
-
-le_map_channel:
-	bpatchx patch28_6,mem_patch28
-	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:
-	bpatchx patch28_7,mem_patch28
-	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 patch29_0,mem_patch29
-	enable swfine
-	fetch 2,mem_le_receive_window
-	fetcht 4,mem_le_transmit_window
-	iadd temp,timeup
-le_receive_packet:
-	call lerx_setfreq
-le_receive_rxon:
-	bpatchx patch29_1,mem_patch29
-	call le_prep
-	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 end_of_packet,sync
-	branch le_receive_skip,attempt
-	arg param_clke_cal_le,clke_rt
-	copy bt_clk,clke_bt
-	fetch 1,mem_le_state
-	bbit0 lestate_got_first_packet,le_receive_skip
-	call lpm_adjust_clk,wake
-le_receive_skip:
-	bpatchx patch29_2,mem_patch29
-	call save_rssi
-	enable enable_white
-	enable enable_crc
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	store 1,mem_le_rxbuf
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	istore 1,contw
-	and pdata,0x3f,loopcnt
-	branch lerx_nopayload,zero
-	
-lerx_loop:
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	istore 1,contw
-	loop lerx_loop
-	
-lerx_nopayload:
-	bpatchx patch29_3,mem_patch29
-	parse demod,bucket,24	
-	enable swfine
-	arg param_sifs,stop_watch		// start SIFS timer after last bit of crc
-	rshift32 pdata,pdata
-	rshift16 pdata,pdata
-	istore 3,contw
-	branch end_of_packet,crc_failed
-	enable match
-	fetch 1,mem_last_freq
-	add pdata,0,rega				// ble 2M Medium Frequency
-	call rf_write_freq				/* set frequency to tx mode freq */
-	disable decode_fec0
-	branch set_sync_on
-
-le_transmit_receive_sifs:
-	bpatchx patch29_4,mem_patch29
-	call le_transmit
-le_transmit_receive_sifs_notx:
-	fetcht 1,mem_last_freq
-	call set_freq_rx
-	call rf_rx_enable
-	enable swfine
-	arg 5500,timeup 
-	branch le_receive_rxon
-
-le_transmit_norx:
-	call le_transmit
-	branch end_of_packet
-	
-le_transmit:
-	bpatchx patch29_5,mem_patch29
-	call le_prep
-	call letx_setfreq
-	branch le_transmit0
-	
-le_transmit0:
-	set1 TXGFSK,radio_ctrl
-	enable encode_fec0
-	enable is_tx
-	disable is_rx
-	call le_wait_tx
-	rshift16 access,pdata
-	rshift8 pdata,pdata
-	rshift4 pdata,pdata
-	inject mod,40
-	enable enable_white
-	enable enable_crc
-	bpatchx patch29_6,mem_patch29
-	fetch 1,mem_le_txheader
-	inject mod,8
-	ifetch 1,contr
-	and pdata,0x3f,loopcnt
-	inject mod,8
-	branch letr_nopayload,zero
-letr_loop:
-	ifetch 1,contr
-	inject mod,8
-	loop letr_loop
-	
-letr_nopayload:
-	enable enable_parity
-	inject mod,24
-	disable enable_parity
-	until null,tx_clear
-	nop 100          /* flush out the last bit */
-	disable encode_fec0
-	rtn
-	
-le_send_adv_ind:
-	bpatchx patch29_7,mem_patch29
-	fetch 1,mem_le_adv_type
-	beq ADV_DIRECT_IND,le_send_adv_direct_ind
-	fetch 1,mem_le_adv_own_addr_type
-	lshift4 pdata,pdata
-	lshift2 pdata,pdata
-	store 1,mem_le_txheader
-	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:
-	fetch 1,mem_le_adv_direct_addr_type
-	lshift4 pdata,pdata
-	lshift2 pdata,pdata
-	increase 1,pdata
-	store 1,mem_le_txheader
-	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 patch2a_0,mem_patch2a
-	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
-	
-le_send_scan_request:
-	bpatchx patch2a_1,mem_patch2a
-	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
-
-
-le_send_scan_response:
-	bpatchx patch2a_2,mem_patch2a
-	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_connect_request:
-	bpatchx patch2a_3,mem_patch2a
-	force -1,pdata
-	setsect 2,1
-	store 5,mem_le_channel_map
-	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 patch2a_4,mem_patch2a
-	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 patch2a_5,mem_patch2a
-	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_init_adv:
-	bpatchx patch2a_6,mem_patch2a
-	disable master
-	branch le_adv_access
-	
-
-
-le_update_param:
-	fetch 1,mem_le_state
-	rtnbit0 lestate_update_param
-	fetch 2,mem_le_event_count
-	fetcht 2,mem_le_instant
-	isub temp,pdata
-	nrtn positive
-	store 2,mem_pdatatemp
-	bpatchx patch2a_7,mem_patch2a
-	fetch 1,mem_le_state
-	set0 lestate_update_param,pdata
-	set0 lestate_got_first_packet,pdata
-	store 1,mem_le_state
-	fetch 4,mem_le_anchor
-	fetcht 2,mem_le_tsniff
-	storet 2,mem_temp
-	isub temp,rega
-	bpatchx patch2b_0,mem_patch2b
-	fetch 1,mem_le_new_param
-	store 1,mem_le_window_size
-	ifetcht 2,contr
-	ifetch 2,contr
-	lshift2 pdata,pdata
-	store 2,mem_le_tsniff
-	lshift2 temp,temp
-	iadd temp,pdata
-	ifetcht 4,contr
-	storet 4,mem_le_slave_latency	// and superTO
-	iadd rega,pdata
-	copy pdata,regab
-	fetch 2,mem_le_tsniff
-	fetcht 2,mem_temp	//last sniff
-	isub temp,pdata		//last sniff - new sniff
-	fetcht 2,mem_pdatatemp
-	imul32 temp,pdata
-	iadd regab,pdata
-	store 4,mem_le_anchor
-	call le_receive_window_size
-	fetch 2,mem_le_superto
-	store 2,mem_le_init_superto
-	rtn
-
-
-le_update_channel_map:
-	bpatchx patch2b_1,mem_patch2b
-	fetch 1,mem_le_state
-	rtnbit0 lestate_update_map
-	fetch 2,mem_le_event_count
-	fetcht 2,mem_le_instant
-	isub temp,pdata
-	nrtn positive
-	fetch 1,mem_le_state
-	set0 lestate_update_map,pdata
-	store 1,mem_le_state
- 	fetch 5,mem_le_new_map
-	store 5,mem_le_channel_map
-	branch le_calc_channel_map	
-	
-	
-le_acknowledge:
-	bpatchx patch2b_2,mem_patch2b
-	call le_supervision_flush
-	call le_check_wak
-	fetch 1,mem_le_rxbuf
-	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+1			
-	branch le_ack_unenc,blank		/* empty packet, no decryption */
-	fetch 1,mem_le_state
-	bbit0 lestate_encryption,le_ack_unenc
-	call load_sk
-	call le_decrypt
-	nrtn blank
-le_ack_unenc:
-	fetcht 1,mem_le_arq
-	setflip nesn,temp
-	storet 1,mem_le_arq
-	rtn
-
-	
-le_check_wak:
-	bpatchx patch2b_3,mem_patch2b
-	fetcht 1,mem_le_arq
-	isolate0 wak,temp
-	rtn true
-	fetch 1,mem_le_rxbuf
-	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
-	fetch 1,mem_le_txpayload
-	beq LL_START_ENC_REQ,le_set_enc
-	fetch 1,mem_le_enc_state
-	beq FLAG_LE_ENC_PAUSE,le_clear_enc
-	rtn
-	
-
-le_set_enc:
-	fetch 1,mem_le_state
-	set1 lestate_encryption,pdata
-	store 1,mem_le_state
-	rtn	
-	
-le_clear_enc:
-	bpatchx patch2b_4,mem_patch2b
-	jam FLAG_LE_ENC_NULL,mem_le_enc_state
-	arg 0,pdata
-	store 4,mem_le_last_mic
-	store 5,mem_le_pcnt_tx
-	set1 39,pdata
-	store 5,mem_le_pcnt_rx
-	fetch 1,mem_le_state
-	set0 lestate_encryption,pdata
-	store 1,mem_le_state
-	rtn
-
-
-le_wait_adv:
-	bpatchx patch2b_5,mem_patch2b
-	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_scan:
-	bpatchx patch2b_6,mem_patch2b
-	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 patch2b_7,mem_patch2b
-	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
-	bpatchx patch2c_0,mem_patch2c
-	fetch 1,mem_le_scanrsp_rcv
-	increase 1,pdata
-	store 1,mem_le_scanrsp_rcv
-	fetch 9,mem_le_rxbuf+8
-	store 9,mem_tmp_buffer
-	rtn
-	
-le_create_conn:
-	bpatchx patch2c_1,mem_patch2c
-	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
-	bpatchx patch2c_2,mem_patch2c
-	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_scan_check_sender_addr_type:
-	arg 1,rega// sender_addr_type
-	fetch 1,mem_le_rxbuf
-	rtnbit1 LE_SENDER_ADDR_BIT
-	arg 0,rega
-	rtn
-
-
-
-le_prepare_tx:
-	bpatchx patch2c_3,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 1,contr
-	ifetcht 1,contr
-	copy temp,rega
-	isub rega,pdata
-	arg LE_MAX_PAKET_LEN,temp
-	call not_greater_than
-	copy pdata,temp
-	ifetch 1,contr
-	copy pdata,type
-	copy rega,pdata
-	iadd contr,contr
-	arg mem_le_txpayload,contw
-	copy temp,loopcnt
-	call memcpy
-	call le_update_tx_type
-	call le_send_packet
-	
-	call le_fifo_get_first_tx_ptr
-	ifetch 1,contr
-	copy pdata,rega
-	copy contr,regc
-	ifetcht 1,contr
-	copy temp,regb
-	isub regb,pdata
-	arg LE_MAX_PAKET_LEN,temp
-	call not_greater_than
-	iadd regb,pdata
-	istore 1,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 1,contr				//pdata:length
-	ifetcht 1,contr				//temp:offest
-	isub temp,pdata			//pdata:length - offset
-	sub pdata,LE_MAX_PAKET_LEN,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_4,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_5,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:	
-	fetch 1,mem_le_state
-	rtnbit0 lestate_encryption
-	call load_sk
-	branch le_encrypt
-
-
-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_6,mem_patch2c
-	rtnmark1 mark_old_packet
-	call le_fifo_check_full
-	nrtn blank
-	fetch 1,mem_le_rxbuf
-	and pdata,0x3,pdata
-	store 1,mem_le_packet_llid
-	ifetch 1,contr
-	and pdata,0x1f,pdata
-	store 1,mem_le_packet_size
-	rtn blank							//empty rtn
-	copy contr,pdata
-	store 2,mem_le_payload_ptr
-	fetch 1,mem_le_packet_llid
-	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
-	fetch 2,mem_le_payload_ptr
-	copy pdata,contr
-	ifetch 2,contr	//l2cap len
-	store 2,mem_le_l2cap_size
-	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
-	fetcht 1,mem_le_packet_size
-	storet 1,mem_le_packet_len_recved
-	fetch 2,mem_le_l2cap_size
-	increase 4,pdata
-	isub temp,null
-	branch enable_user,zero
-	fetch 1,mem_le_packet_size
-	copy pdata,loopcnt
-	arg mem_le_l2capbuf,contw
-	fetch 2,mem_le_payload_ptr
-	copy pdata,contr
-	call memcpy
-	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 1,mem_le_packet_len_recved
-	nrtn blank
-	branch disable_user
-
-le_check_l2cap_llid_continue:
-	call le_check_l2cap_continue_legal
-	nrtn user
-	fetch 1,mem_le_packet_len_recved
-	arg mem_le_l2capbuf,contw
-	iadd contw,rega
-	fetcht 1,mem_le_packet_size
-	iadd temp,pdata
-	store 1,mem_le_packet_len_recved
-	fetch 1,mem_le_packet_size
-	copy pdata,loopcnt
-	copy rega,contw
-	fetch 2,mem_le_payload_ptr
-	copy pdata,contr
-	call memcpy_fast
-	setarg mem_le_l2capbuf
-	store 2,mem_le_payload_ptr		//update ptr->mem_le_l2capbuff
-	fetch 2,mem_le_l2cap_size
-	increase 4,pdata
-	fetcht 1,mem_le_packet_len_recved
-	isub temp,null
-	branch enable_user,zero
-	branch disable_user
-
-
-
-
-	
-le_get_search_att_type:
-	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_get_search_att_uuid:
-	call store_contr
-	arg mem_le_search_uuid_length,contw
-	branch le_get_search_common
-
-
-	/* rega pointers to data, regb is length */
-le_writeatt_cb:
-	fetch 2,mem_cb_att_write
-	branch callback_func
-	
-le_supervision_update:
-	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
-
-
-le_adv:
-	jam 36,mem_le_ch_mapped
-	jam 0,mem_le_adv_channel_map_temp
-le_adv_loop:
-	bpatchx patch2d_0,mem_patch2d
-	fetch 1,mem_le_adv_enable
-	rtn blank
-	arg le_adv_interval_timer,queue
-	call timer_check
-	nrtn blank
-	bpatchx patch2d_1,mem_patch2d
-le_adv_loop_tx:
-	disable master
-	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
-	and pdata,0x0f,pdata
-	beq SCAN_REQ,le_send_scan_response
-	beq CONNECT_REQ,le_parse_connect_req
-le_adv_not_match:
-	bpatchx patch2d_2,mem_patch2d
-	random pdata 
-	arg 0x1ff,temp
-	iand temp,pdata
-	add pdata,250,pdata
-	call delay
-	fetch 1,mem_le_adv_channel_map_temp
-	fetcht 1,mem_le_adv_channel_map
-	isub temp,null
-	nbranch le_adv_loop,zero
-	arg le_adv_interval_timer,queue
-	fetch 2,mem_le_adv_interval
-	branch timer_init
-	
-
-le_receive_window_size:
-	bpatchx patch2d_3,mem_patch2d
-	fetch 1,mem_le_peer_sca
-	call le_sca_map
-	fetch 2,mem_le_tsniff
-	imul32 temp,pdata
-	arg 375,temp
-	imul32 temp,pdata
-	arg 100000,temp
-	idiv temp
-	fetch 1,mem_le_window_size
-	arg 20000,temp
-	imul32 temp,pdata
-	iadd temp,pdata
-	store 4,mem_le_transmit_window
-	bpatchx patch2d_4,mem_patch2d
-	fetch 2,mem_rx_window_sniff
-	call wait_div_end
-	quotient temp
-	iadd temp,pdata
-	store 2,mem_le_receive_window
-	rtn
-
-le_parse_connect_req:
-	bpatchx patch2d_5,mem_patch2d
-	fetch 6,mem_le_rxbuf+8
-	fetcht 6,mem_le_lap
-	isub temp,null
-	nrtn zero
-	call le_scan_check_sender_addr_type
-	copy rega,pdata
-	store 1,mem_le_conn_peer_addr_type
-	fetch 7,mem_le_rxbuf+21
-	store 7,mem_tmp_buffer
-	ifetch 8,contr
-	istore 8,contw
-	fetch 6,mem_le_rxbuf+2
-	store 6,mem_le_plap
-	increase 6,contr
-	ifetch 8,contr
-	store 8,mem_le_access 	// and crcinit & window size
-	ifetcht 2,contr				// transmit offset
-	bpatchx patch2d_6,mem_patch2d
-	lshift2 temp,temp			
-	ifetch 2,contr				// connInterval
-	lshift2 pdata,pdata
-	store 2,mem_le_tsniff
-	store 4,mem_le_anchor
-	isub temp,pdata
-	add pdata,-2,clke_bt
-	ifetch 9,contr
-	store 9,mem_le_slave_latency// and super to & channel map
-	bpatchx patch2d_7,mem_patch2d
-	ifetch 1,contr
-	rshift4 pdata,temp
-	rshift temp,temp
-	storet 1,mem_le_peer_sca
-	and_into 0x1f,pdata
-	store 1,mem_le_hop
-	call le_receive_window_size
-	call le_calc_channel_map
-	call le_init_slave
-	call context_new
-	nrtn zero
-	bpatchx patch2e_0,mem_patch2e
-	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_init_attlist_search:
-	bpatchx patch2e_1,mem_patch2e
-	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
-	enable user
-	rtn
-
-	/* return handle in pdata, blank:end of list, positive:in range */
-le_att_handle_inrange:
-	ifetch 2,contr
-	rtn blank
-	isub regb,null			/* less than start ? */
-	nrtn positive
-	isub regc,null			/* greater than end ? */
-	rtn zero
-	branch le_att_handle_blank,positive
-	force 1,null
-	rtn
-le_att_handle_blank:
-	force 0,pdata
-	rtn
-
-
-	/* 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 patch2e_2,mem_patch2e
-	fetch 2,mem_ui_le_uuid_table
-	iforce contr
-le_att_get_handle_loop1:
-	ifetch 2,contr
-	rtn blank
-	isub temp,null
-	rtn zero
-	ifetch 1,contr
-	iadd contr,contr	
-	ifetch 1,contr			// length  
-	iadd contr,contr
-	branch le_att_get_handle_loop1
-le_att_get_handle_ptr_found:
-	ifetch 1,contr
-	iadd contr,contr	
-	rtn	
-
-
-
-le_att_get_short_uuid_ptr:
-	bpatchx patch2e_3,mem_patch2e
-	fetch 2,mem_ui_le_uuid_table
-	iforce contr
-le_att_get_short_uuid_loop:
-	ifetch 2,contr
-	rtn blank
-	ifetch 1,contr
-	iadd contr,contr
-	increase -2,contr
-	ifetch 2,contr
-	isub temp,null
-	rtn zero
-	ifetch 1,contr			 
-	iadd contr,contr
-	branch le_att_get_short_uuid_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 patch2e_4,mem_patch2e
-	fetch 2,mem_ui_le_uuid_table
-le_att_get_handle_info_fast:
-	iforce contr
-	copy temp,rega
-le_att_get_handle_loop:
-	ifetch 2,contr
-	branch le_att_unfind_handle,blank
-	isub rega,null
-	branch le_att_finded_handle, zero
-	ifetch 1,contr			// length  
-	iadd contr,contr	
-	ifetch 1,contr			//length 
-	iadd contr,contr
-	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_modified_name:
-	bpatchx patch2e_5,mem_patch2e
-	call le_modified_name_att_list
-	branch le_modified_name_adv
-
-le_modified_name_att_list:
-	arg UUID_CHRCTR_DEVICE_NAME,temp
-	call le_att_get_short_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
-	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 patch2e_6,mem_patch2e
-	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 patch2e_7,mem_patch2e
-	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
-
-	nbranch lpm_mult_short,match
-	bmark1 mark_old_packet,lpm_mult_short
-
-	fetch 1,mem_le_packet_size
-	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_configuration
-	bbit1 BIT_BLE_SHORT_MULT,lpm_mult_short	//check flag,if flag is 1,always short mult
-	
-	fetch 1,mem_le_state
-	bbit1 lestate_update_param,lpm_mult_short
-	branch lpm_mult_wait_timeout
-	
-le_lpm_lost:
-	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_clr_config_short_mult:
-	arg BIT_BLE_SHORT_MULT,queue
-	branch le_clr_config
-
-
-le_set_config:
-	fetch 1,mem_le_configuration
-	qset1 pdata
-	store 1,mem_le_configuration
-	rtn
-
-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
-	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:
-	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:
-	force LLID_L2CAP_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:
-	sub rega,240,null			//check max len
-	nbranch assert,positive
-	fetch 1,mem_le_tx_buff_used
-	arg 1,temp
-	arg LE_TX_BUFF_COUNT,loopcnt
-le_fifo_malloc_tx_loop:
-	iand temp,null
-	branch le_fifo_malloc_tx_got_empty,zero
-	lshift temp,temp
-	loop le_fifo_malloc_tx_loop
-	branch assert				//no empty buff
-le_fifo_malloc_tx_got_empty:
-	ixor temp,pdata
-	store 1,mem_le_tx_buff_used
-	sub loopcnt,LE_TX_BUFF_COUNT,pdata
-	lshift4 pdata,pdata
-	lshift4 pdata,pdata
-	arg mem_le_tx_buffer0,temp
-	iadd temp,temp
-le_fifo_tx_find_empty_ptr:
-	arg 0,loopcnt
-	arg mem_le_tx_ptr0,contr
-le_fifo_tx_find_empty_ptr_loop:
-	ifetch 2,contr
-	branch le_fifo_tx_found_empty_ptr,blank
-	copy loopcnt,pdata
-	increase 1,loopcnt
-	bne LE_TX_BUFF_COUNT,le_fifo_tx_find_empty_ptr_loop
-	branch assert
-
-	
-le_fifo_tx_found_empty_ptr:
-	increase -2,contr
-	istoret 2,contr
-	copy temp,contw
-	copy rega,pdata
-	istore 1,contw				//lengh
-	setarg 0
-	istore 1,contw				//offset
-	copy type,pdata
-	istore 1,contw				//LLID
-	rtn
-
-
-
-le_fifo_get_first_tx_ptr:
-	fetch 2,mem_le_tx_ptr0
-	copy pdata,contr
-	rtn
-
-le_fifo_get_second_tx_ptr:
-	fetch 2,mem_le_tx_ptr1
-	copy pdata,contr
-	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_le_tx_ptr3
-	nrtn blank
-	fetch 2,mem_le_tx_ptr2
-	nrtn blank
-	fetch 2,mem_le_tx_ptr1
-	nrtn blank
-	fetch 2,mem_le_tx_ptr0
-	rtn
-
-le_fifo_get_first_l2cap_ptr:
-	call le_fifo_get_first_tx_ptr
-	increase 3,contr
-	rtn
-
-le_fifo_get_first_att_ptr:
-	call le_fifo_get_first_tx_ptr
-	increase 7,contr
-	rtn
-
-le_fifo_get_last_att_ptr:
-	call le_fifo_get_last_tx_ptr
-	increase 7,contr
-	rtn
-
-le_fifo_get_last_l2cap_ptr:
-	call le_fifo_get_last_tx_ptr
-	increase 3,contr
-	rtn
-
-	
-
-le_fifo_check_full:
-	fetch 2,mem_le_tx_ptr3
-	rtn
-
-
-le_fifo_check_nearly_full:
-	fetch 2,mem_le_tx_ptr2
-	rtn
-
-	
-le_fifo_check_empty:
-	fetch 2,mem_le_tx_ptr0
-	rtn
-
-
-le_fifo_release_first_node:
-	fetch 2,mem_le_tx_ptr0
-	arg mem_le_tx_buffer0,temp
-	isub temp,pdata
-	rshift4 pdata,pdata
-	rshift4 pdata,queue
-	fetch 1,mem_le_tx_buff_used
-	qset0 pdata
-	store 1,mem_le_tx_buff_used
-	arg 0,loopcnt
-le_fifo_release_first_node_loop:
-	lshift loopcnt,pdata
-	arg mem_le_tx_ptr1,temp
-	iadd temp,temp
-	ifetch 2,temp
-	increase -2,temp
-	istore 2,temp
-	copy loopcnt,pdata
-	increase 1,loopcnt
-	bne LE_TX_BUFF_UPDATE_LOOPCNT,le_fifo_release_first_node_loop
-	setarg 0
-	istore 2,temp
-	rtn
-
-
-
Index: DPI_Switch/program/le_l2cap_att.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/le_l2cap_att.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/le_l2cap_att.prog	(nonexistent)
@@ -1,713 +0,0 @@
-
-
-le_parse_att:
-	ifetch 3,contr
-	store 3,mem_le_att_opcode
-	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_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
-	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
-	istore 1,contw
-	fetch 2,mem_le_local_mtu
-	istore 2,contw
-	rtn
-
-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
-	
-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_info,user
-	call push_stack_rega_b_c
-	call disable_user
-	force 20,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	call pop_stack_rega_b_c
-	setarg ATTOP_FIND_INFORMATION_RESPONSE
-	istore 1,contw
-	setarg UUID_SIZE_16BIT
-	istore 1,contw
-le_send_att_find_information_res_store_info:
-	call get_contr
-	ifetch 2,contr
-	istore 2,contw
-	ifetch 1,contr
-	copy pdata,loopcnt
-	call memcpy
-	call store_contw
-	increase -1,timeup
-	branch le_send_att_find_information_res_end,zero
-le_send_att_find_information_res_cont:
-	ifetch 1,contr
-	iadd contr,contr
-	branch le_send_att_find_information_res_loop
-le_send_att_find_information_res_next:
-	ifetch 1,contr
-	iadd contr,contr
-	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_uuid
-	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_uuid
-	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
-	beq 1,le_send_att_read_by_type_response_end
-	call le_att_same_uuid
-	nbranch le_send_att_read_by_type_response_next_handle,zero
-	nbranch le_send_att_read_by_type_res_found_next,user
-	disable user
-	arg 20,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
-	increase 5,pdata
-	istore 1,alarm
-	fetch 1,mem_le_cur_uuid_length
-	beq 16,le_send_att_read_by_type_response_end
-	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
-	fetch 1,mem_le_cur_uuid_length
-	beq 16,le_send_att_read_by_type_response_end
-	
-	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:
-	fetcht 2,mem_le_search_handle_start
-	storet 2,mem_temp
-le_send_att_read_by_type_res_not_char_loop:
-	call le_att_check_handle_end
-	nbranch le_send_att_error_response_notfound,positive
-	call le_att_get_handle_info_from_ptr
-	beq 1,le_send_att_error_response_notfound
-	call le_att_same_uuid
-	nbranch le_send_att_read_by_type_res_not_char_next,zero
-
-le_send_att_read_by_type_res_not_char_common:
-	arg 20,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_READ_BY_TYPE_RESPONSE
-	istore 1,contw
-	fetch 1,mem_le_curr_att_len
-	copy pdata,loopcnt
-	increase 2,pdata
-	istore 1,contw
-	fetch 2,mem_temp
-	istore 2,contw
-	call get_contr
-	call memcpy_fast
-	call store_contw
-	branch le_send_auto_len_by_mem
-	
-le_send_att_read_by_type_res_not_char_next:
- 	call le_att_next_handle
-	branch le_send_att_read_by_type_res_not_char_loop
-
-
-le_send_att_read_by_type_res_device_name:
-	arg UUID_CHRCTR_DEVICE_NAME,temp
-	call le_att_get_short_uuid_ptr
-	rtn blank
-	increase -5,contr // point to handle
-	ifetch 2,contr		
-	store 2,mem_temp
-	arg 20,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_READ_BY_TYPE_RESPONSE
-	istore 1,contw
-	fetch 1,mem_le_name_len
-	copy pdata,loopcnt
-	increase 2,pdata
-	istore 1,contw
-	fetch 2,mem_temp
-	istore 2,contw
-	arg mem_le_name,contr
-	call memcpy_fast
-	call store_contw
-	branch le_send_auto_len_by_mem
-
-
-
-le_parse_att_read_request:
-	fetcht 2,mem_le_att_handle
-	fetch 1,mem_le_configuration
-	bbit1 BIT_BLE_READ_AUTH,le_send_att_read_response_check_auth
-
-le_send_att_read_response:
-	call le_att_get_handle_ptr
-	branch le_send_att_error_response_notfound,blank
-	increase -2,contr
-	ifetch 2,contr
-	arg UUID_CHRCTR_DEVICE_NAME,temp
-	isub temp,null
-	branch le_send_device_name,zero
-	ifetch 1,contr
-	sub pdata,22,null
-	branch le_send_att_read_response_less,positive
-	force 22,pdata
-le_send_att_read_response_less:
-	copy pdata,regc
-	call store_contr
-	add regc,1,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_READ_RESPONSE
-	istore 1,contw
-	copy regc,loopcnt
-	call get_contr
-	branch memcpy
-
-le_send_device_name:
-	call store_contr
-	fetch 1,mem_le_name_len
-	add pdata,1,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_READ_RESPONSE
-	istore 1,contw
-	fetch 1,mem_le_name_len
-	copy pdata,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
-//le_send_att_read_response_error_insufficient_auth:
-	call le_check_encrypt_state
-	nbranch le_send_att_read_response,user
-	jam ATT_ERR_INSUFFICIENT_AUTHENTICATION,mem_le_err_code
-	branch le_send_att_error_response
-
-
-le_parse_att_read_blob_request:
-	ifetch 2,contr
-	store 2,mem_le_att_offset
-le_send_att_read_blob_response:
-	arg 20,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_READ_BLOB_RESPONSE
-	istore 1,contw
-	fetch 2,mem_le_att_offset
-	iforce rega
-	fetcht 2,mem_le_att_handle
-	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
-	sub loopcnt,22,null
-	branch le_send_att_read_blob_response_less,positive
-	force 22,loopcnt
-le_send_att_read_blob_response_less:
-	deposit rega
-	iadd contr,contr
-	call memcpy_fast
-	call store_contw
-	branch le_send_auto_len_by_mem
-
-
-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
-//	arg 23,pdata
-//	isub temp,null
-//	call ice_break,zero
-	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
-le_send_att_read_by_group_type_response_loop:
-	call le_att_check_handle_end
-	nbranch le_send_att_read_by_group_type_end0,positive
-	fetcht 2,mem_temp
-	call le_att_get_handle_info_from_ptr
-	beq 1,le_send_att_read_by_group_type_end1
-
-	call le_att_same_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
-	nbranch le_send_att_read_by_group_type_store_write_record,user		//un first
-	disable user
-	//first att uuid
-	arg 20,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
-	increase 4,pdata
-	istore 1,contw
-	call store_contw
-	branch le_send_att_read_by_group_type_store_record
-le_send_att_read_by_group_type_store_write_record:
-	fetch 1,mem_le_curr_att_len
-	beq 16,le_send_att_read_by_group_type_end1
-	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_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:
-	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
-	jam ATT_ERR_INSUFFICIENT_AUTHENTICATION,mem_le_err_code
-	branch le_send_att_error_response
-
-le_send_att_write_response:
-	force 1,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_WRITE_RESPONSE
-	istore 1,contw
-	rtn
-
-le_check_encrypt_state:
-	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_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:
-	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:	
-	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:
-	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:
-	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_att_same_uuid:
-	fetcht 1,mem_le_search_uuid_length
-	arg mem_le_search_uuid,rega
-	branch le_att_check_same_common
-
-
-le_store_att_record:
-	fetch 1,mem_le_curr_att_len
-	store 1, mem_tmp_buffer
-	copy pdata,loopcnt
-	call get_contr
-	branch memcpy_fast
-
-
-le_write_att_record:
-	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_tmp_buffer
-	copy pdata,loopcnt
-	call memcpy_fast
-	branch store_contw
-
-
-
-le_send_auto_len_by_mem:
-	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
-
-
Index: DPI_Switch/program/le_l2cap_signalling.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/le_l2cap_signalling.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/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: DPI_Switch/program/le_l2cap_smp.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/le_l2cap_smp.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/le_l2cap_smp.prog	(nonexistent)
@@ -1,594 +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
-
-	
-le_secure_connection_enable:
-	fetch 1,mem_le_pres_auth
-	set1 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT,pdata
-	store 1,mem_le_pres_auth
-	rtn
-le_secure_connection_disable:
-	fetch 1,mem_le_pres_auth
-	set0 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT,pdata
-	store 1,mem_le_pres_auth
-	rtn
-
-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
-	call le_check_master_support_secure_connect
-	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_check_master_support_secure_connect:
-	fetch 1,mem_le_preq_auth
-	rtnbit1  LE_AUTH_SECURE_CONNECTION_PAIRING_BIT
-	fetch 1,mem_le_pairing_mode
-	rtnbit0 LE_PAIRING_MODE_SECURE_CONNECT_BIT
-	branch app_ble_disconnect	
-
-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:
-ifdef SECURE_CONNECTION
-	copy contr,rega
-	fetch 1,mem_le_pairing_mode
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_parse_smp_pairing_confirm_secure_passkey
-	copy rega,contr
-endif
-	arg mem_le_rconfirm,contw
-	call memcpy16
-	branch le_send_smp_pairing_confirm
-ifdef SECURE_CONNECTION
-le_parse_smp_pairing_confirm_secure_passkey:
-	copy rega,contr
-	arg mem_le_rconfirm,contw
-	call memcpy16
-	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-	jam LE_SC_STAT_PASSKEY_WAIT_CONFIRM,mem_le_secure_connect_state	
-	rtn
-endif	
-
-
-le_send_smp_pairing_confirm:
-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:	
-ifdef SECURE_CONNECTION
-	copy contr,rega
-	fetch 1,mem_le_pairing_mode
-	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,le_parse_smp_pairing_random_sc
-	copy rega,contr
-endif
-	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:
-	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
-	call function_g2
-//	jam LE_SC_STAT_RECEIVE_RANDOM,mem_le_secure_connect_state
-//	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-	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_parse_smp_encryption_information:
-	arg mem_le_peer_ltk,contw
-	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_plap+5
-	compare 0xc0,pdata,0xc0
-	rtn true
-	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_le_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 patch2f_0,mem_patch2f
-	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_AUTH,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:
-	jam FLAG_LE_PARING_SEND_ENC_INFORMATION,mem_le_pairing_state
-	jam BT_EVT_LE_ENC_INFO,mem_fifo_temp
-	call ui_ipc_send_event
-	call le_send_smp_encryption_information
-	fetch 1,mem_device_option
-	rtnne dvc_op_module
-	call le_check_master_addr_type
-	rtn user
-	branch app_ble_store_reconn_info
-
-
-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:
-	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 patch2f_1,mem_patch2f
-	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_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
-//	arg mem_le_r,contw
-//	force 2,loopcnt
-//	call memset0
-	fetch 1,mem_le_pairing_mode
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY ,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	
-	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
-	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 LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-//	jam LE_SC_STAT_PASSKEY_WAIT_CONFIRM,mem_le_secure_connect_state	
-//	branch p_ng_event_le_get_passkey
-	jam 0,mem_authentication_passkey_times
-	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_le_sc_local_key_invalid
-	beq SP_KEY_VALID_256,le_public_key_ready
-//	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-	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:
-	force LE_L2CAP_CID_SMP,regb
-	branch le_fifo_malloc_tx_l2cap
-
-
Index: DPI_Switch/program/le_ll.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/le_ll.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/le_ll.prog	(nonexistent)
@@ -1,212 +0,0 @@
-
-le_parse_ll:
-	fetch 1,mem_le_rxbuf+2
-	beq LL_CONNECTION_UPDATE_REQ,le_parse_connection_update_req
-	beq LL_CHANNEL_MAP_REQ,le_parse_channel_map_req
-	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
-	arg 2,rega
-	arg LL_UNKNOWN_RSP,regb
-	call le_fifo_malloc_tx_ll
-	fetch 1,mem_le_rxbuf+2
-	istore 1,contw
-	rtn	
-
-
-le_parse_connection_update_req:
-	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
-
-le_parse_channel_map_req:
-	ifetch 5,contr
-	store 5,mem_le_new_map
-	ifetch 2,contr
-	store 2,mem_le_instant
-	fetcht 2,mem_le_event_count
-	isub temp,null
-	nbranch le_parse_terminate_ind,positive
-	fetch 1,mem_le_state
-	set1 lestate_update_map,pdata
-	store 1,mem_le_state
-	rtn
-
-
-le_parse_terminate_ind:
-	setarg 20 // 200ms
-	store 2,mem_le_superto
-	store 2,mem_le_init_superto
-	rtn
-
-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
-
-le_parse_feature_req:
-
-le_send_feature_rsp:
-	arg 9,rega
-	arg LL_FEATURE_RSP,regb
-	call le_fifo_malloc_tx_ll
-	setarg param_le_features
-	istore 8,contw
-	rtn
-
-
-le_parse_version_ind:
-	rtn master
-le_send_version_ind:
-	arg 6,rega
-	arg LL_VERSION_IND,regb
-	call le_fifo_malloc_tx_ll
-	fetch 5,mem_lmp_version
-	istore 5,contw
-	rtn
-
-
-le_parse_ping_req:
-	arg LL_PING_RSP,regb
-	branch le_send_ll_one_lenth
-
-//regb:ll opcode
-le_send_ll_one_lenth:
-	arg 1,rega
-	branch le_fifo_malloc_tx_ll
-
-	
-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_le_ivm
-	call le_send_enc_rsp
-	bpatchx patch2f_2,mem_patch2f
-	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:
-	bpatchx patch2f_3,mem_patch2f
-	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
-
-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		
-	
-le_send_enc_rsp:
-	arg mem_le_skds,contw
-	force 8,loopcnt
-	call generate_random_loop
-	arg mem_le_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_le_ivs
-	istore 4,contw
-	rtn
-
-le_send_start_enc_req:
-	arg LL_START_ENC_REQ,regb
-	branch le_send_ll_one_lenth
-
-le_send_start_enc_rsp:
-	arg LL_START_ENC_RSP,regb
-	branch le_send_ll_one_lenth
-	
-	
-le_parse_enc_rsp:
-	ifetch 8,contr
-	store 8,mem_le_skds
-	ifetch 4,contr
-	store 4,mem_le_ivs
-	branch generate_sk
-	
-le_parse_start_enc_req:
-	fetch 1,mem_le_state
-	set1 lestate_encryption,pdata
-	store 1,mem_le_state
-	rtn
-	
-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
-	
-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	
-
-le_send_pause_enc_rsp:
-	arg LL_PAUSE_ENC_RSP,regb
-	branch le_send_ll_one_lenth	
-			
-
-le_parse_feature_rsp:
-le_parse_unknown_rsp:
-le_parse_pause_enc_rsp:
-le_parse_reject_ind:
-le_parse_ping_rsp:
-	rtn
-
-
Index: DPI_Switch/program/lmp.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/lmp.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/lmp.prog	(nonexistent)
@@ -1,2521 +0,0 @@
-	
-/******************************************/
-/*************   LMP Parse   **************/
-/******************************************/
-init_lmp:
-	rtn wake
-init_lmp_work:
-	bpatchx patch2f_4,mem_patch2f
-	setarg 0
-	store 1,mem_lmp_to_send
-	store 1,mem_conn_sm
-	store 1,mem_lmo_opcode1
-	store 1,mem_lmo_opcode2
-	store 1,mem_esco_addr
-	store 1,mem_auth_enable
-	store 1,mem_connection_options
-	store 1,mem_pairing_auth
-	jam SWITCH_FLAG_INIT,mem_switch_flag
-	jam 0,mem_switch_fail_master_count
-	jam NULL_ENCRYP,mem_wait_encryption
-init_lmp_reinit:	
-	jam 0,mem_pairing_auth
-	jam 0,mem_sp_localsm
-	jam 0,mem_lmp_conn_state
-	//fall through
-parse_rx_done:
-	rtn
-
-parse_lmp:
-	bpatchx patch2f_5,mem_patch2f
-	call setlocalsm_master,master	//use this flag in hci
-	ncall setlocalsm_slave,master
-	call lmo_fifo_check
-	nrtn blank
-	fetch 1,mem_state_map
-	rtnbit0 smap_rxlmp
-	set0 smap_rxlmp,pdata
-	set0 mark_rxbuf_inuse,mark
-	store 1,mem_state_map
-	fetch 1,mem_rxbuf
-	fetcht 1,mem_state_map
-	isolate1 smap_lmptidinit,pdata
-	setflag true,smap_lmptid,temp
-	storet 1,mem_state_map
-	and_into 0x2,temp //smap_lmptid only
-	storet 1,mem_lmo_tid2
-	fetcht 1,mem_state_map
-	rshift pdata,pdata			/* align lmp_opcode */
-  	store 1,mem_lmi_opcode2
-	bpatchx patch2f_6,mem_patch2f
-  	fetch 1,mem_lmi_opcode2
-  	beq LMP_ESCAPE,parse_lmp_escape//multi
-  	beq LMP_ACCEPTED,parse_lmp_accepted//multi
-	beq LMP_NOT_ACCEPTED,parse_lmp_not_accepted//multi
-  	beq LMP_SET_AFH, parse_lmp_set_afh
-  	beq LMP_CLKOFFSET_REQ, parse_lmp_clkoffset_req
- 	beq LMP_ENCRYPTION_MODE_REQ, parse_lmp_encryption_mode_req
- 	beq LMP_ENCRYPTION_KEY_SIZE_REQ,parse_lmp_crypt_key
-	beq LMP_AUTO_RATE,parse_lmp_auto_rate
-	beq LMP_TEST_CONTROL,parse_lmp_test_control//multi
-	beq LMP_TEST_ACTIVATE,parse_lmp_test_activate
-	beq LMP_SETUP_COMPLETE,parse_lmp_setup_complete
-	beq LMP_SUPERVISION_TIMEOUT,parse_lmp_supervision_timeout
-	beq LMP_FEATURES_REQ,parse_lmp_features_req
-	beq LMP_HOST_CONNECTION_REQ,parse_lmp_conn_req
-	beq LMP_VERSION_REQ,parse_lmp_version_req
-	beq LMP_VERSION_RES,parse_lmp_version_res
-	beq LMP_DETACH,parse_lmp_detach
-	beq LMP_MAX_SLOT,parse_lmp_max_slot
-	beq LMP_MAX_SLOT_REQ,parse_lmp_max_slot_req
-	beq LMP_NAME_REQ,parse_lmp_name_req
-	beq LMP_NAME_RES,parse_lmp_name_res
-	beq LMP_FEATURES_RES,parse_lmp_features_res
-	beq LMP_COMB_KEY,parse_lmp_comb_key
-	beq LMP_AU_RAND, parse_lmp_au_rand
-	beq LMP_IN_RAND,parse_lmp_in_rand
-	beq LMP_SRES,parse_lmp_sres
-	beq LMP_INCR_POWER_REQ,parse_lmp_incr_power
-	beq LMP_DECR_POWER_REQ,parse_lmp_decr_power
-	beq LMP_MAX_POWER, parse_lmp_max_power
-	beq LMP_MIN_POWER, parse_lmp_min_power
-	beq LMP_PAGE_MODE_REQ, parse_lmp_page_mode_req
-	beq LMP_PAGE_SCAN_MODE_REQ, parse_lmp_page_scan_mode_req
-	beq LMP_PREFERRED_RATE, parse_lmp_preferred_rate
-	beq LMP_SLOT_OFFSET, parse_lmp_slot_offset
-	beq LMP_SNIFF_REQ, parse_lmp_sniff_req
-	beq LMP_START_ENCRYPTION_REQ, parse_lmp_start_encryption_req
-	beq LMP_STOP_ENCRYPTION_REQ, parse_lmp_stop_encryption_req
-	beq LMP_SWITCH_REQ, parse_lmp_switch_req
-	beq LMP_TEMP_RAND, parse_lmp_temp_rand
-	beq LMP_TEMP_KEY, parse_lmp_temp_key
-	beq LMP_TIMING_ACCURACY_REQ, parse_lmp_timing_accuracy_req
-	beq LMP_TIMING_ACCURACY_RES, parse_lmp_timing_accuracy_res
-	beq LMP_UNIT_KEY, parse_lmp_unit_key
-	beq LMP_UNSNIFF_REQ, parse_lmp_unsniff_req
-	beq LMP_USE_SEMI_PERMANENT_KEY, parse_lmp_use_semi_permanend_key
-	beq  LMP_ENCAPSULATED_HEADER,parse_lmp_encapsulated_header
-	beq  LMP_ENCAPSULATED_PAYLOAD,parse_lmp_encapsulated_payload
-	beq	LMP_SIMPLE_PAIRING_CONFIRM,parse_simple_pairing_confirm
-	beq  LMP_SIMPLE_PAIRING_NUMBER,parse_lmp_simple_pairing_number
-	beq  LMP_DHKEY_CHECK,parse_dhkey_check
-	beq LMP_CLKOFFSET_RES, parse_lmp_clkoffset_res
-	beq LMP_ENC_KEY_SIZE_MASK_REQ,parse_enc_key_size_mask_req
-/* lmp is not recognized, check to see if we respond to all messages */ 
-/* rejecting the unrecognized message with PDU not recognized */
-reject_unknown_packet:
-	jam UNKNOWN_LMP_PDU,mem_lmo_reason2
-reject_lmp_packet:
-	jam LMP_NOT_ACCEPTED,mem_lmo_opcode2
-	rtn
-
-parse_lmp_clkoffset_req:
-	jam LMP_CLKOFFSET_RES,mem_lmo_opcode2
-	rtn	
-
-parse_enc_key_size_mask_req:
-	jam LMP_ENC_KEY_SIZE_MASK_RES,mem_lmo_opcode2
-	rtn
-	
-parse_lmp_set_afh:
-	fetch 4,mem_rxbuf+1
-	lshift pdata,pdata
-	store 4,mem_afh_instant
-	fetch 1,mem_rxbuf+5
-	store 1,mem_afh_new_mod
-	fetch 5,mem_rxbuf+6
-	store 5,mem_afh_map_new
-	fetch 5,mem_rxbuf+11
-	istore 5,contw
-	fetch 1,mem_mode
-	set1 afh_change,pdata
-	store 1,mem_mode
-	rtn
-parse_lmp_escape:
-	bpatchx patch2f_7,mem_patch2f
-	fetch 1,mem_rxbuf+1
-	set1 7,pdata
-	store 1,mem_lmi_opcode2
-	beq LMP_EXT_ACCEPTED,parse_lmpext_accepted
-	beq LMP_NOT_ACCEPTED_EXT,parse_lmpext_not_accepted
-	beq LMP_SNIFF_SUBRATING_REQ, parse_lmp_sniff_subrating_req
-	beq LMP_SNIFF_SUBRATING_RES, parse_lmp_sniff_subrating_res
-	beq LMP_PACKET_TYPE_TABLE_REQ,parse_lmpext_packet_type_table_req
-	beq LMP_EXT_FEATURES_REQ,parse_lmpext_features_req
-	beq LMP_EXT_FEATURES_RES,parse_lmpext_features_res
-	beq LMP_EXT_CHN_CLASSIFICATION_REQ,parse_lmpext_chn_classification_req
-	beq LMP_PAUSE_ENCRYPTION_REQ,parse_lmpext_pause_encrypt
-	beq LMP_RESUME_ENCRYPTION_REQ,parse_lmpext_resume_encrypt
-	beq LMP_IO_CAP_REQ,parse_lmpext_iocap_req
-	beq LMP_IO_CAP_RES,parse_lmpext_iocap_res
-	rtneq LMP_EXT_FEATURES_RES
-
-
-reject_unknown_ext_packet:
-	jam LMP_NOT_ACCEPTED_EXT,mem_lmo_opcode2
-	jam UNKNOWN_LMP_PDU,mem_lmo_reason2
-	
-	rtn
-parse_lmpext_chn_classification_req:
-	jam LMP_NOT_ACCEPTED_EXT,mem_lmo_opcode2
-	jam NOT_SUPPORT_CHN_CLASSIFICATION,mem_lmo_reason2
-	rtn
-	
-parse_lmpext_iocap_req:
-	call iocap_lmpext_load
-	jam LMP_IO_CAP_RES,mem_lmo_opcode2
-	rtn
-
-parse_lmpext_iocap_res:
-	call iocap_lmpext_load
-	branch iocap_lmpext_common
-	
-iocap_lmpext_load:
-	arg      mem_sp_iocap_remote,contw
-	fetch 3, mem_rxbuf+2
-	istore    3,contw
-	rtn
-	
-iocap_lmpext_common:
-ifdef SIMPLE_PAIRING
-	branch master_set_mem_master_sp_flag,true//is un very ok to use master flag,but we have to add many codes if wo don't
-endif
-	rtn
-parse_lmpext_accepted:
-	fetch 1,mem_rxbuf+3
-	set1 7,pdata
-	store 1,mem_lmi_accepted_opcode
-	beq LMP_PACKET_TYPE_TABLE_REQ,parse_lmpext_accepted_ptt
-	rtn
-
-	
-parse_lmpext_not_accepted:
-	fetch 1,mem_rxbuf+3
-	set1 7,pdata
-	store 1,mem_lmi_accepted_opcode
-	beq LMP_PACKET_TYPE_TABLE_REQ,parse_lmpext_not_accepted_ptt
-	rtn
-
-parse_lmpext_accepted_ptt:
-	fetch 1,mem_ptt
-	fetcht 1,mem_state_map
-	nsetflag blank,smap_edr,temp
-	storet 1,mem_state_map
-parse_lmpext_not_accepted_ptt:
-	fetch 1,mem_state
-	rtnbit0 state_init_seq
-	set0 state_init_seq,pdata
-	store 1,mem_state
-	fetch 1,mem_auth_enable
-	nrtn blank
-	jam LMP_SETUP_COMPLETE,mem_lmo_opcode2
-	rtn
-
-parse_lmpext_pause_encrypt:
-	nbranch parse_lmpext_pause_encrypt_slave, master
-	jam LMP_STOP_ENCRYPTION_REQ,mem_lmo_opcode2
-	branch tid_reply
-
-parse_lmpext_pause_encrypt_slave:	
-	jam LMP_PAUSE_ENCRYPTION_REQ, mem_lmo_opcode2
-	rtn
-
-parse_lmpext_resume_encrypt:
-//trans file to pc may cause pause/resume encrypt
-//if ms is conn_sm_wait_end the controllor won't send ack after recieved start_encypt_accept
-	call tid_reply
-	branch lmp_start_encryption
-
-parse_lmpext_features_req:
-	jam LMP_EXT_FEATURES_RES,mem_lmo_opcode2
-	rtn
-
-parse_lmpext_features_res:
-	fetcht 1,mem_rxbuf+4
-	and temp,0x1,temp
-	storet 1,mem_remote_sppcap
-	fetch 1,mem_hci_cmd
-	bne hci_cmd_wait_remote_ext_feature,parse_lmpext_features_res_not_hci
-	jam 0,mem_hci_cmd
-parse_lmpext_features_res_not_hci:
-	fetch 1,mem_conn_sm
-	rtnne CONN_SM_WAIT_FEATURES_EXT
-	jam CONN_SM_SEND_CONN_REQ,mem_conn_sm
-	branch process_conn_sm
-
-parse_lmp_accepted:
-	bpatchx patch30_0,mem_patch30
-	fetch 1,mem_rxbuf+1
-	store 1,mem_lmi_accepted_opcode
-	beq LMP_HOST_CONNECTION_REQ,parse_lmp_accepted_hostconn//ok
-	beq LMP_IN_RAND,parse_lmp_accepted_inrand//ok
-	beq LMP_ENCRYPTION_MODE_REQ,parse_lmp_accepted_enc_mode//ok
-	beq LMP_ENCRYPTION_KEY_SIZE_REQ,parse_lmp_accepted_enc_keysize//ok
-	beq LMP_START_ENCRYPTION_REQ,parse_lmp_accepted_start_enc//ok
-	beq LMP_STOP_ENCRYPTION_REQ,parse_lmp_accepted_stop_enc//ok
-	beq LMP_UNSNIFF_REQ,parse_lmp_accepted_unsniff_req//ok
-	beq LMP_SNIFF_REQ,parse_lmp_accepted_sniff_req//ok
-	beq LMP_SWITCH_REQ,parse_lmp_accepted_switch
-	// simple pairing 
-	beq LMP_ENCAPSULATED_HEADER,parse_lmp_accepted_encapsulated_header//ok
-	beq LMP_ENCAPSULATED_PAYLOAD,parse_lmp_accepted_encapsulated_payload//ok
-	beq LMP_SIMPLE_PAIRING_NUMBER,parse_lmp_accepted_simple_pairing_number//ok
-	beq LMP_DHKEY_CHECK,parse_lmp_accepted_dhkey_check//ok
-	rtn
-	
-parse_lmp_not_accepted:
-	bpatchx patch30_1,mem_patch30
-	fetch 1,mem_rxbuf+1
-	store 1,mem_lmi_accepted_opcode
-	beq LMP_NAME_REQ,parse_lmp_not_accepted_name_req//ok
-	beq LMP_HOST_CONNECTION_REQ,parse_lmp_not_accepted_hostconn//ok
-	beq LMP_AU_RAND,parse_lmp_not_accepted_aurand//ok
-	beq LMP_IN_RAND,parse_lmp_not_accepted_inrand//ok
-	beq LMP_SWITCH_REQ,parse_lmp_not_accepted_switch//ok
-	/* simple pairing support */
-	beq  LMP_SIMPLE_PAIRING_NUMBER,parse_lmp_not_accepted_simple_pairing_number//ok
-	beq  LMP_DHKEY_CHECK,parse_lmp_not_accepted_dhkey_check//ok
-	beq LMP_UNSNIFF_REQ,parse_lmp_not_accepted_unsniff_req
-	beq LMP_SNIFF_REQ,parse_lmp_not_acdcept_sniff_req
-	rtn
-
-parse_lmp_accepted_switch:
-	jam BT_EVT_SWITCH_ACCEPT,mem_fifo_temp
-	call ui_ipc_send_event
-	branch role_switch_prepare0
-parse_lmp_not_accepted_switch:
-	jam BT_EVT_SWITCH_NOT_ACCEPT,mem_fifo_temp
-	call ui_ipc_send_event
-	jam SWITCH_FLAG_NOT_ACCEPT,mem_switch_flag
-	setarg TIMER_SWITCH_WAITE
-	arg switch_wait_timer,queue
-	branch timer_init
-
-
-parse_lmp_accepted_hostconn:
-	//fetch 1,mem_state
-	//rtnbit0 state_init_seq
-	fetch 1,mem_lmp_conn_state
-	set1 RECEIVED_CONN_REQ,pdata
-	store 1,mem_lmp_conn_state
-	jam BT_EVT_BB_CONNECTED,mem_fifo_temp
-	call ui_ipc_send_event
-	jam LMP_PACKET_TYPE_TABLE_REQ,mem_lmo_opcode2
-	//nbranch parse_lmp_accepted_hostconn_ctn,master
-parse_lmp_accepted_hostconn_ctn:
-	/* checking to see if we requested host connection */
-	fetch 1,mem_conn_sm
-	bne CONN_SM_WAIT_CONN_ACCEPT, parse_rx_done
-	//branch parse_lmp_accepted_hostconn_master,master
-	/* continuing on with host connection state machine */
-	jam CONN_SM_AUTH_PAIR,mem_conn_sm
-	rtn
-	//branch host_create_conn_auth_pair
-
-	/* we need to move fast and send au_rand...jumping to next part of state machine for conn */
-//parse_lmp_accepted_hostconn_master:
-	//jam CONN_SM_AUTH_PAIR ,mem_conn_sm
-//	rtn
-
-parse_lmp_not_accepted_hostconn:
-	jam ACL_CONNECTION_ALREADY_EXISTS,mem_disconn_reason_send
-	jam LMP_DETACH,mem_lmo_opcode2
-	/* clearing connection state machine */
-	jam CONN_SM_STANDBY,mem_conn_sm
-	/* sending error message to host */
-	branch parse_rx_done,true
-	rtn
-
-parse_lmp_accepted_inrand:
-	fetch 1,mem_link_key_exists
-	nrtn blank
-	call clear_linkkey
-	call  lmp_generate_key
-	rtn master
-	set1 mark_slave_in_rand_accepted,mark
-	rtn
-
-parse_lmp_accepted_enc_mode:
-	nrtn master
-	jam LMP_ENCRYPTION_KEY_SIZE_REQ,mem_lmo_opcode2
-	fetch 1,mem_state_map
-	rtnbit0 smap_encryption
-	jam LMP_STOP_ENCRYPTION_REQ,mem_lmo_opcode2
-	rtn
-
-parse_lmp_accepted_enc_keysize:
-	branch lmp_start_encryption
-	
-parse_lmp_accepted_start_enc:
-	call send_create_conn_start_l2cap_timer_sm
-	fetch 1,mem_state
-	rtnbit1 state_conn_comp
-	jam LMP_SETUP_COMPLETE,mem_lmo_opcode2
-	fetch 1,mem_conn_sm
-	rtnne CONN_SM_ENCRYPT_WAIT
-	jam CONN_SM_ENCRYPT_WAIT_CLEAR,mem_conn_sm
-	rtn
-	
-parse_lmp_accepted_stop_enc:
-	/* again this won't work with multipoint. keep track of anyone else encrypting */
-	//jam HOST_STOP_ENCRYPTION,message_queue_B0
-	//jam 1,message_queue_B1
-	//jam HOST_RETURN_SUCCESS,message_queue_B2
-	//fetch 1,mem_lmp_state2
-	//set1 MESSAGE_QUEUE,pdata
-	//store 1,mem_lmp_state2
-	rtn
-
-parse_lmp_not_accepted_aurand:	
-parse_lmp_not_accepted_aurand_send_detach:	
-	jam LMP_DETACH,mem_lmo_opcode2
-	jam OTHER_END_TERMINATED,mem_disconn_reason_send
-	rtn
-/*in pair remote cancel the pair*/
-parse_lmp_not_accepted_inrand:
-	fetch 1,mem_rxbuf+2
-	beq KEY_MISSING,parse_lmp_inrand_key_missing
-	rtnne PAIRING_NOT_ALLOWED
-	jam PAIRING_NOT_ALLOWED,mem_disconn_reason_send
-	jam LMP_DETACH,mem_lmo_opcode2
-	rtn	
-parse_lmp_inrand_key_missing:
-	jam KEY_MISSING,mem_disconn_reason_send
-	jam LMP_DETACH,mem_lmo_opcode2
-	rtn
-	
-parse_lmp_not_accepted_name_req:
-	rtn
-	
-parse_lmp_not_accepted_simple_pairing_number:
-	jam      SP_STAT_NULL,mem_sp_state
-	jam LMP_DETACH,mem_lmo_opcode2
-	branch   parse_rx_done
-	
-parse_lmp_not_accepted_dhkey_check:
-ifdef LMP_DBG
-	call ice_break
-endif
-	jam      SP_STAT_NULL,mem_sp_state
-	jam LMP_DETACH,mem_lmo_opcode2
-	branch   parse_rx_done
-parse_lmp_not_accepted_unsniff_req:
-	jam BT_EVT_UNSNIFF_NOT_ACCEPT,mem_fifo_temp
-	branch ui_ipc_send_event
-	
-parse_lmp_accepted_unsniff_req:
-	jam BT_EVT_UNSNIFF_ACCEPT,mem_fifo_temp
-	call ui_ipc_send_event
-	branch sniff_exit
-	
-parse_lmp_accepted_sniff_req:
-	jam BT_EVT_SNIFF_ACCEPT,mem_fifo_temp
-	call ui_ipc_send_event
-	setarg 0
-	store 2,mem_dsniff
-	fetch 2,mem_sniff_param_interval
-	lshift pdata,pdata
-	store 2,mem_tsniff
-	fetch 1,mem_sniff_param_attempt
-	store 1,mem_sniff_attempt
-	fetch 1,mem_sniff_param_timeout
-	store 1,mem_sniff_timeout
-	branch sniff_init
-	
-parse_lmp_not_acdcept_sniff_req:
-	jam BT_EVT_SNIFF_NOT_ACCEPT,mem_fifo_temp
-	branch ui_ipc_send_event
-	
-parse_lmp_crypt_key:
-	fetcht 1,mem_rxbuf+1
-	storet 1,mem_key_size
-	branch accept_lmp_msg
-	
-parse_lmp_setup_complete:
-	fetch 1,mem_lmp_conn_state
-	set1 RECEIVED_SETUP_COMPLETE,pdata
-	store 1,mem_lmp_conn_state
-	rtnbit1 SENT_SETUP_COMPLETE
-	jam LMP_SETUP_COMPLETE,mem_lmo_opcode2
-	branch parse_rx_done
-	
-parse_lmp_max_slot:
-	//jam LMP_MAX_SLOT,mem_lmi_opcode2
-	//branch accept_lmp_msg
-	rtn
-	
-parse_lmp_max_slot_req:
-	fetch 1,mem_max_slot
-	fetcht 1,mem_rxbuf+1
-	isub temp,null
-	//jam LMP_MAX_SLOT_REQ,mem_lmi_opcode2
-	branch accept_lmp_msg,positive
-	jam LMP_NOT_ACCEPTED,mem_lmo_opcode2
-	jam UNSPECIFIED_ERROR,mem_lmo_reason2
-	jam LMP_MAX_SLOT_REQ,mem_lmi_opcode2
-	rtn
-	
-parse_lmp_detach:
-	call prepare_disconnect
-	branch accept_lmp_msg
-	
-accept_lmp_msg:
-	jam LMP_ACCEPTED,mem_lmo_opcode2
-	rtn
-
-parse_lmp_incr_power:
-	jam LMP_MAX_POWER,mem_lmo_opcode2
-	rtn
-
-parse_lmp_decr_power:
-	jam LMP_MIN_POWER,mem_lmo_opcode2
-	rtn
-	
-parse_lmp_version_res:
-	fetch 1,mem_conn_sm
-	rtneq CONN_SM_WAIT_VERSION
-	/* continuing on with host connection state machine */
-	jam CONN_SM_SEND_FEATURES ,mem_conn_sm
-	/* we need to move fast and send au_rand...jumping to next part of state machine for conn */
-	rtn
-
-
-parse_lmp_auto_rate:
-	rtn	
-
-parse_lmp_in_rand:
-	call lmp_copy_rand
-	jam pincode_state_wait_pincode,mem_pincode_state
-	jam BT_EVT_PINCODE_REQ,mem_fifo_temp
-	call ui_ipc_send_event
-
-	call tid_check
-	nbranch lmp_accept_inrand,true
-	//fetch 1,mem_auth_enable
-	nbranch parse_lmp_inrand_res,master // ignore this because of not ssp temporary
-	jam LMP_NOT_ACCEPTED,mem_lmo_opcode2
-	jam LMP_IN_RAND,mem_lmi_opcode2
-	jam TRANSACTION_COLLISION,mem_lmo_reason2
-	rtn
-parse_lmp_inrand_res:
-	fetch 1,mem_op
-	set1 op_inrand_req,pdata
-	store 1,mem_op
-	rtn
-
-//store current tid
-pop_tid_follow:
-	fetcht 1,mem_state_map
-	nsetflag blank,smap_lmptid,temp
-	storet 1,mem_state_map
-	rtn
-	
-//restore current tid
-push_tid_follow:
-	fetch 1,mem_lmo_tid2
-	rshift pdata,pdata
-	and_into 1,pdata
-	rtn
-
-parse_lmp_au_rand_moudle:
-	fetch 1,mem_nv_data_number
-	rtn blank
-	fetch 1,mem_pairing_auth
-	call load_device_list,blank
-	rtn	
-
-parse_lmp_au_rand:
-	call parse_lmp_au_rand_moudle
-	call push_tid_follow
-	store 1,mem_sres_tid
-	call lmp_copy_rand
-	jam LMP_SRES,mem_lmo_opcode2
-	fetch 1,mem_link_key_exists
-	nrtn blank
-	fetch 1,mem_state
-	rtnbit1 state_combkey		/* we have comb key, but not verified */
-	jam KEY_MISSING,mem_lmo_reason2
-	branch reject_lmp_packet
-
-parse_lmp_sres:	
-	arg mem_plap,rega
-	call function_e1
-	fetch 4,mem_rxbuf+1
-	fetcht 4,mem_input_store
-	isub temp,null
-	branch authentication_ok,zero
-	jam LMP_DETACH,mem_lmo_opcode2
-	jam AUTHENTICATION_FAILURE_ERROR,mem_disconn_reason_send	
-	rtn
-authentication_ok:
-	call authentication_ok_common
-	fetch 1,mem_ssp_enable
-	branch  pairing_success,blank
-	rtn
-
-	
-authentication_ok_common:
-	call copy_aco
-	call linkkey_ready///save link key
-	fetch 1,mem_op
-	isolate1 op_auth_req,pdata
-	set0 op_auth_req,pdata
-	store 1,mem_op
-	fetch 1,mem_conn_sm
-	beq CONN_SM_AUTH_WAIT,authentication_ok_conn_sm
-	beq CONN_SM_PAIRING_WAIT,authentication_ok_conn_sm
-	rtn
-authentication_ok_conn_sm:
-	fetch 1,mem_pairing_auth
-	rtnne DEFALT_PAIRING_AUTH
-	fetch 1,mem_state_map
-	rtnbit1 smap_encryption
-	branch host_create_conn_encrypt
-
-parse_lmp_comb_key:
-	arg mem_rxbuf+1,rega
-	arg mem_kinit,regb
-	arg mem_random_number,contw
-	call xor16
-	arg mem_plap,rega
-	call generate_linkkey
-	jam LMP_AU_RAND,mem_lmo_opcode2
-	fetch 1,mem_state
-	bbit0 state_combkey,lmp_generate_key
-	rtn
-	
-parse_lmp_name_res:
-	fetch 2,mem_len
-	add pdata,-3,loopcnt	//for remote name length error
-	fetcht 1,mem_rxbuf+1
-	setarg mem_tmp_buffer
-	iadd temp,contw
-	arg mem_rxbuf+3,contr
-	call memcpy
-	fetcht 1,mem_name_offset
-	fetch 1,mem_rxbuf+2
-	isub temp,pdata
-	sub pdata,14,null
-	branch parse_lmp_name_res_end,positive
-	add temp,14,pdata
-	store 1,mem_name_offset
-	jam LMP_NAME_REQ,mem_lmo_opcode2
-	rtn
-parse_lmp_name_res_end:
-	fetch 1,mem_state_map
-	set1 smap_name_res,pdata
-	store 1,mem_state_map
-	bbit1 smap_name_req,lmp_disconnect
-	rtn
-parse_lmp_name_req:
-	fetch 1,mem_rxbuf+1
-	store 1,mem_lmi_opcode2 //offset 
-	jam LMP_NAME_RES,mem_lmo_opcode2
-	rtn
-
-parse_lmp_conn_req:
-	branch accept_lmp_msg
-
-parse_lmp_timing_accuracy_req:
-	jam LMP_TIMING_ACCURACY_RES,mem_lmo_opcode2
-	rtn
-
-parse_lmp_features_req:
-	jam LMP_FEATURES_RES,mem_lmo_opcode2
-	rtn
-
-parse_lmp_version_req:
-	jam LMP_VERSION_RES,mem_lmo_opcode2
-	rtn
-
-parse_lmp_supervision_timeout:
-//	fetch 2,mem_rxbuf+1
-//	store 2,mem_supervision_to
-	rtn
-	
-
-
-parse_lmp_sniff_subrating_req:
-	fetch 2,mem_tsniff
-	iforce temp
-	fetch 1,mem_rxbuf+2
-	store 1,mem_subsniff_rate
-	imul32 temp,temp
-	fetch 2,mem_rxbuf+3
-	lshift pdata,pdata
-	store 2,mem_subsniff_tcmax
-	fetch 4,mem_rxbuf+5
-	lshift pdata,pdata
- 	store 4,mem_subsniff_instant
-	//product pdata
-	deposit temp
-	store 2,mem_subsniff_tsniff
-	rtn
-parse_lmpext_packet_type_table_req:
-	fetcht 1,mem_ptt
-	fetch 1,mem_rxbuf+2
-	ixor temp,null
-	nbranch reject_unknown_ext_packet,zero
-	isolate1 0,pdata
-	fetch 1,mem_state_map
-	setflag true,smap_edr,pdata
-	store 1,mem_state_map
-	jam LMP_EXT_ACCEPTED,mem_lmo_opcode2
-	jam LMP_PACKET_TYPE_TABLE_REQ,mem_lmi_opcode2
-	rtn
-
-	
-parse_lmp_sniff_subrating_res:
-parse_lmp_preferred_rate:
-parse_lmp_max_power:
-parse_lmp_min_power:
-	rtn
-parse_lmp_page_mode_req:
-	//jam LMP_PAGE_MODE_REQ,mem_lmi_opcode2
-	branch accept_lmp_msg
-parse_lmp_page_scan_mode_req:
-	//this can influence connection. need accepted
-	//jam LMP_PAGE_SCAN_MODE_REQ,mem_lmi_opcode2
-	branch accept_lmp_msg
-
-
-	
-parse_lmp_slot_offset:
-	fetch 2,mem_rxbuf+1
-	store 2,mem_slot_offset
-	rtn
-
-parse_lmp_sniff_req_check_sniff_para:
-	fetch 2,mem_rxbuf+4 /* tsniff */
-	fetcht 1,mem_lpm_mult
-	imul32 temp,pdata
-	arg 0x640,temp
-	isub temp,null
-//	branch lmp_reject_sniff,positive
-	rtn
-	
-parse_lmp_sniff_req:
-	fetch 2,mem_rxbuf+6
-	branch lmp_reject_sniff,blank
-	call parse_lmp_sniff_req_check_sniff_para
-	branch lmp_reject_sniff,positive
-	fetch 1,mem_device_option
-	sub pdata,dvc_op_module,null
-	call module_set_lpm_mult_2,zero
-	fetch 1,mem_state
-	bbit1 state_insniff,lmp_reject_sniff
-	fetch 2,mem_rxbuf+2 /* dsniff */
-	lshift pdata,pdata
-	store 2,mem_dsniff	
-	fetch 2,mem_rxbuf+4 /* tsniff */
-	lshift pdata,pdata
-	store 2,mem_tsniff
-	fetch 2,mem_rxbuf+6 /* sniff attempt */
-	store 1,mem_sniff_attempt
-	iforce temp
-	fetch 2,mem_rxbuf+8 /* sniff timeout */
-	store 1,mem_sniff_timeout
-	isub temp,null
-	nbranch set_big_value_to_attempt,positive
-	store 1,mem_sniff_attempt
-set_big_value_to_attempt:	
-	//call sniff_init
-	jam LMP_ACCEPTED,mem_lmo_opcode2
-	jam LMP_SNIFF_REQ,mem_lmi_opcode2
-	rtn
-
-lmp_reject_sniff:
-	jam PDU_NOT_ALLOWED,mem_lmo_reason2
-	branch reject_lmp_packet
-
-parse_lmp_start_encryption_req:
-	call accept_lmp_msg
-	call lmp_copy_rand
-	call function_e3
-	branch start_encryption
-	
-parse_lmp_stop_encryption_req:
-	call accept_lmp_msg
-	branch stop_encryption
-	
-
-parse_lmp_switch_req:
-	fetch 4,mem_rxbuf+1
-	lshift pdata,pdata
-	//branch parse_lmp_switch_req_not_accept
-	branch parse_lmp_switch_accept,master
-	fetcht 1,mem_link_key_exists
-	nbranch parse_lmp_switch_req_clear_mark,blank
-parse_lmp_switch_req_not_accept:
-	jam LMP_NOT_ACCEPTED,mem_lmo_opcode2
-	jam LMP_SWITCH_REQ,mem_lmi_opcode2
-	jam PDU_NOT_ALLOWED,mem_lmo_reason2
-	rtn
-parse_lmp_switch_req_clear_mark:
-	jam LMP_SLOT_OFFSET,mem_lmo_opcode2
-	jam 0,mem_conn_sm
-	branch role_switch_prepare
-
-parse_lmp_switch_accept:
-	call role_switch_prepare
-	set1 mark_reconn_recieve_switch,mark
-	fetch 1,mem_connection_options
-	set0 CONNECTION_SWITCH,pdata
-	store 1,mem_connection_options
-	branch accept_lmp_msg
-
-	
-
-parse_lmp_temp_rand:
-parse_lmp_temp_key:
-parse_lmp_timing_accuracy_res:	
-parse_lmp_unit_key:	
-parse_lmp_use_semi_permanend_key:
-	rtn
-
-	
-parse_lmp_unsniff_req:
-	jam LMP_ACCEPTED,mem_lmo_opcode2
-	jam LMP_UNSNIFF_REQ,mem_lmi_opcode2
-	jam BT_EVT_REMOTE_UNSNIFF,mem_fifo_temp
-	call ui_ipc_send_event
-	branch sniff_exit
-	
-parse_lmp_encapsulated_header:
-	fetch 1,mem_rxbuf+1
-	bne ENCAPSULATED_MAJOR_TYPE_P192,parse_lmp_encapsulated_header_reject
-	fetch 1,mem_rxbuf+2
-	bne ENCAPSULATED_MINOR_TYPE_P192,parse_lmp_encapsulated_header_reject
-	fetch 1,mem_rxbuf+3
-	bne ENCAPSULATED_LEN_P192,parse_lmp_encapsulated_header_reject
-	call check_localsm
-	branch parse_lmp_encapsulated_header_master,true
-	jam SP_STAT_KEY_RECV,mem_sp_state
-parse_lmp_encapsulated_header_master:
-	jam LMP_ACCEPTED,mem_lmo_opcode2
-	jam LMP_ENCAPSULATED_HEADER,mem_lmi_opcode2
-	branch parse_rx_done
-	
-parse_lmp_encapsulated_header_reject:
-	jam      PDU_NOT_ALLOWED,mem_lmo_reason2
-	branch   reject_lmp_packet
-	
-parse_lmp_accepted_encapsulated_header:
-	//jam LMP_ENCAPSULATED_PAYLOAD,mem_lmi_opcode2
-	//branch   accept_lmp_msg  	
-	jam LMP_ENCAPSULATED_PAYLOAD,mem_lmo_opcode2
-      //   branch   accept_lmp_msg  	
-         rtn
-parse_lmp_accepted_simple_pairing_number:
-	fetch 1,mem_ssp_mode_flag
-	beq SSP_MODE_SSP_PIN_FLAG,parse_lmp_accepted_simple_pairing_number_ssp_pin
-	beq SSP_MODE_PASSKEY_ENTRY_FLAG,parse_lmp_accepted_simple_pairing_number_passkey
-parse_lmp_accepted_simple_pairing_number_common:
-	call check_localsm
-	rtn true
-	jam SP_STAT_CONFIRM_RECV,mem_sp_state
-	rtn
-
-parse_lmp_accepted_simple_pairing_number_ssp_pin:
-	call g_noninit_number_confirm
-	jam BT_EVT_BT_GKEY_GENERATE,mem_fifo_temp
-	call ui_ipc_send_event
-	branch parse_lmp_accepted_simple_pairing_number_common
-
-
-parse_lmp_accepted_simple_pairing_number_passkey:
-	call check_localsm
-	rtn true
-	fetch 1,mem_authentication_passkey_times
-	beq 19,authentication_passkey_end
-	increase 1,pdata
-	store 1,mem_authentication_passkey_times
-//	branch p_authentication_passkey
-
-authentication_passkey:
-	jam      SP_FLAG_COMMIT,mem_sp_flag
-	jam      SP_STAT_COMMIT_CALC,mem_sp_state 
-	fetch 1,mem_authentication_passkey_times
-	copy pdata,queue
-	fetch 6,mem_pin
-	qisolate1 pdata
-	setarg 0x80
-	setflag true,0,pdata
-	store 1,mem_passkey_1bit
-	rtn
-
-authentication_passkey_end:	
-	jam SP_STAT_CONFIRM_RECV,mem_sp_state
-	rtn
-
-parse_lmp_accepted_dhkey_check:
-	call parse_lmp_accepted_dhkey_check_common
-pairing_success:
-	fetch 1,mem_flag_pairing_state
-	rtn blank
-	jam FLAG_PAIRING_STATE_NOT_PAIRING,mem_flag_pairing_state
-	jam BT_EVT_BT_PAIRING_SUCCESS,mem_fifo_temp
-	branch ui_ipc_send_event
-
-
-parse_lmp_accepted_dhkey_check_common:
-	//here must be change***  shyd
-	call check_localsm
-ifdef SIMPLE_PAIRING
-	ncall g_noninit,true	//when be master  call g_init
-	call g_init,true
-endif
-	call check_localsm
-	rtn true
-	jam SP_STAT_LINK_KEY_CALC,mem_sp_state
-	jam SP_FLAG_COMMIT,mem_sp_flag
-	rtn
-
-parse_simple_pairing_confirm:
-	arg mem_sp_confirm_remote,contw
-	arg mem_rxbuf+1,contr
-	call memcpy16
-	fetch 1,mem_ssp_mode_flag
-	rtneq  SSP_MODE_PASSKEY_ENTRY_FLAG
-ifdef SIMPLE_PAIRING
-	branch master_set_mem_master_sp_flag
-endif
-	
-parse_lmp_encapsulated_payload:
-	fetch 1,mem_master_sp_state
-	beq SP_STAT_RANDOM_SEND,parse_encapsulated_payload_master
-	fetch    1,mem_sp_state
-	bne SP_STAT_KEY_RECV,parse_lmp_encapsulated_payload_reject
-parse_encapsulated_payload_master:
-	fetch    1,mem_sp_remote_key_recv_count
-	sub      pdata,0x20,contw
-	nbranch  parse_lmp_encapsulated_payload_reject,positive
-	arg      mem_sp_pubkey_remote,contw
-	iadd     contw,contw
-	fetch 8,mem_rxbuf+1
-	istore   8,contw
-	fetch 8,mem_rxbuf+9
-	istore   8,contw
-	fetch    1,mem_sp_remote_key_recv_count
-	increase 16,pdata
-	store    1,mem_sp_remote_key_recv_count
-	bne ENCAPSULATED_LEN_P192,accept_lmp_msg
-parse_lmp_encapsulated_payload_completed:
-	call check_localsm
-	branch accept_lmp_msg,true
-	jam      SP_KEY_VALID,mem_sp_remote_key_invalid
-	jam      SP_STAT_KEY_GENERATE,mem_sp_state
-	jam      SP_FLAG_COMMIT,mem_sp_flag  
-	branch   accept_lmp_msg
-parse_lmp_encapsulated_payload_reject:
-	jam      PDU_NOT_ALLOWED,mem_lmo_reason2
-	branch   reject_lmp_packet	
-parse_lmp_accepted_encapsulated_payload: 
-	fetch 1,mem_sp_local_key_send_count
-	beq	ENCAPSULATED_LEN_P192,parse_lmp_encapsulated_payload_all_accepted
-	jam LMP_ENCAPSULATED_PAYLOAD,mem_lmo_opcode2
-	branch   parse_rx_done 
-	
-parse_lmp_encapsulated_payload_all_accepted:   
-	call check_localsm
-	branch parse_lmp_encapsulated_payload_all_accepted_master,true
-	fetch 1,mem_ssp_mode_flag
-	beq SSP_MODE_PASSKEY_ENTRY_FLAG,parse_lmp_encapsulated_payload_all_accepted_get_passkey
-	jam      SP_FLAG_COMMIT,mem_sp_flag
-	jam      SP_STAT_COMMIT_CALC,mem_sp_state 
-	branch   parse_rx_done
-
-parse_lmp_encapsulated_payload_all_accepted_get_passkey:
-	jam BT_EVT_BT_GET_PASSKEY,mem_fifo_temp
-	branch ui_ipc_send_event
-
-
-parse_lmp_encapsulated_payload_all_accepted_master:
-	//call sp_master_generate_local_key
-	branch   parse_rx_done   
-
-parse_lmp_simple_pairing_number:
-	fetch 1,mem_master_sp_state
-	beq SP_STAT_RANDOM_SEND,parse_lmp_simple_pairing_number_master
-	fetch    1,mem_sp_state
-	bne SP_STAT_RANDOM_RECV,parse_lmp_simple_pairing_number_reject
-parse_lmp_simple_pairing_number_master:
-	arg      mem_sp_random_remote,contw
-	fetch 8,mem_rxbuf+1
-	istore   8,contw
-	fetch 8,mem_rxbuf+9
-	istore   8,contw
-	call check_localsm
-	branch parse_lmp_simple_pairing_number_master0,true
-	jam      SP_STAT_RANDOM_SEND,mem_sp_state
-	jam      SP_FLAG_COMMIT,mem_sp_flag
-	branch accept_lmp_msg  
-parse_lmp_simple_pairing_number_master0:
-	jam SP_STAT_COMMIT_CALC,mem_master_sp_state
-ifdef SIMPLE_PAIRING
-	branch master_set_mem_master_sp_flag
-endif
-	//jam LMP_SIMPLE_PAIRING_NUMBER,mem_lmi_opcode2
-	//branch accept_lmp_msg  
-parse_lmp_simple_pairing_number_reject:
-	jam      PDU_NOT_ALLOWED,mem_lmo_reason2
-	branch reject_lmp_packet
-	
-parse_dhkey_check:
-	fetch    1,mem_master_sp_state
-	beq SP_STAT_CONFIRM_SEND,parse_dhkey_check_master
-	fetch    1,mem_sp_state
-	bne SP_STAT_CONFIRM_RECV,parse_lmp_dhkey_check_reject
-parse_dhkey_check_master:
-	arg      mem_sp_check_result,contw
-	arg mem_rxbuf+1,contr
-	call memcpy16
-	call check_localsm
-	branch parse_dhkey_check_master0,true
-	fetch 1,mem_ssp_mode_flag
-	beq SSP_MODE_SSP_PIN_FLAG,number_comparison_mode
-number_comparison_successed:
-	jam 0,mem_flag_mode_ssp_pin
-	jam SP_STAT_CONFIRM_CHECK,mem_sp_state
-	jam SP_FLAG_COMMIT,mem_sp_flag
-	jam LMP_DHKey_Check,mem_lmi_opcode2
-	branch   parse_rx_done
-	
-parse_dhkey_check_master0:
-	jam      SP_STAT_CONFIRM_CHECK,mem_master_sp_state
-	jam      SP_FLAG_COMMIT,mem_master_sp_flag
-	branch   parse_rx_done
-parse_lmp_dhkey_check_reject:
-	jam      PDU_NOT_ALLOWED,mem_lmo_reason2
-	branch reject_lmp_packet
-
-number_comparison_mode:
-	fetch 1,mem_flag_mode_ssp_pin
-	bbit1 FLAG_MODE_SSP_PIN_REVICEVE_COMPARISON_BIT ,comparison_result
-	set1 FLAG_MODE_SSP_PIN_RECIEVE_DHKEY_BIT,pdata
-	store 1,mem_flag_mode_ssp_pin
-	rtn
-	
-comparison_result:
-	bbit1 FLAG_MODE_SSP_PIN_COMPARISON_RESULT_BIT,number_comparison_successed
-	jam 0,mem_flag_mode_ssp_pin
-	branch parse_lmp_dhkey_check_reject
-
-	
-parse_lmp_clkoffset_res:
-	branch parse_rx_done
-		
-parse_lmp_encryption_mode_req:
-	fetch 1,mem_connection_options
-	set0 CONNECTION_ENCRYPT
-	store 1,mem_connection_options
-	call accept_lmp_msg
-	nrtn master					/* do sth only if we're master */
-	fetch 1,mem_rxbuf+1
-	fetcht 1,mem_op
-	setflag blank,op_stop_enc,temp
-	nsetflag blank,op_start_enc,temp
-	storet 1,mem_op
-	rtn 
-	
-parse_lmp_features_res:
-	fetcht 8,mem_rxbuf+1		/*fix bcp(baoshijie) err*/
-parse_lmp_features_res_not_hci:	
-	fetch 1,mem_conn_sm
-	rtnne CONN_SM_WAIT_FEATURES_RES
-
-	fetch 1,mem_connection_options
-	bbit0 CONNECTION_FEATURE_EXT,parse_lmp_send_conn
-
-	jam CONN_SM_SEND_FEATURES_EXT,mem_conn_sm
-	rtn
-parse_lmp_send_conn:
-	jam CONN_SM_SEND_CONN_REQ,mem_conn_sm
-	rtn
-parse_lmp_test_activate:
-	fetch 1,mem_debug_config
-	store 1,mem_test_mode_old_debug_config
-	jam LMP_ACCEPTED,mem_lmo_opcode2
-	jam LMP_TEST_ACTIVATE,mem_lmi_opcode2
-	rtn
-parse_lmp_test_control:
-	/* the 9 test control parameters are XORed with 0x55 */
-	/* doing the XOR here and storing in mem_temp_payload */
-	jam LMP_ACCEPTED,mem_lmo_opcode2
-	jam LMP_TEST_CONTROL,mem_lmi_opcode2
-	force 9,loopcnt
-	arg mem_rxbuf+1,contr
-	arg mem_temp_payload,contw
-parse_lmp_test_xor:
-	ifetch 1,contr
-	xor_into 0x55,pdata
-	istore 1,contw
-	loop parse_lmp_test_xor
-	fetch 1,test_mode_scenario
-	fetcht 1,mem_tester_emulate
-	set0 tester_no_whitening,temp
-	set0 tester_pattern_test,temp
-	beq EXIT_TEST_MODE,	 parse_lmp_test_control_exit
-	beq PAUSE_TEST_MODE,	 parse_lmp_test_control_pause
-	beq CLOSED_LOOP_BACK_ACL,	 parse_lmp_test_control_loopback
-	beq ACL_WITHOUT_WHITENING,	 parse_lmp_test_control_loopback_nowhite
-	beq CLOSED_LOOP_BACK_SCO,	 parse_lmp_test_control_loopback
-	beq SCO_WITHOUT_WHITENING,	 parse_lmp_test_control_loopback_nowhite
-	beq ZERO_PATTERN,	 parse_lmp_test_control_pattern
-	beq ONE_PATTERN,	 parse_lmp_test_control_pattern
-	beq ALT_PATTERN,	 parse_lmp_test_control_pattern
-	beq ALT2_PATTERN,	 parse_lmp_test_control_pattern
-	beq PSEUDORANDOM,	 parse_lmp_test_control_pattern
-	rtn
-parse_lmp_test_control_exit:
-	/* restoring old parameters */
-	fetch 1,mem_tester_emulate
-	set1 tester_exit,pdata
-	set1 tester_change,pdata
-	store 1,mem_tester_emulate
-	rtn
-parse_lmp_test_control_pattern:
-	set1 tester_pattern_test,temp
-	jam 5,mem_lch_code
-	fetch 2,test_mode_data_length
-	iforce loopcnt
-	store 2,mem_len
-	arg mem_rxbuf,contw
-	call pn9
-parse_lmp_test_control_loopback_nowhite:
-	set1 tester_no_whitening,temp
-parse_lmp_test_control_loopback:
-	set1 tester_change,temp
-	force 0,pdata
-	store 1,mem_slave_rcvcnt
-	store 2,mem_tst_pktcnt_crc
-	store 2,mem_tst_pktcnt_dmh
-	store 2,mem_tst_pktcnt_hec
-	store 2,mem_tst_pktcnt_sync
-	fetch 1,test_mode_hopping_mode
-	compare FIXED_FREQ,pdata,0xff
-	setflag true,tester_fixed_freq,temp
-	storet 1,mem_tester_emulate
-	rtn
-
-parse_lmp_test_control_pause:
-	set0 mark_testmode,mark
-	jam 0,mem_tester_emulate
-	fetch 1,mem_debug_config
-	set0 debug_tx_pattern,pdata
-	store 1,mem_debug_config
-	rtn
-
-
-	
-	
-
-lmp_copy_rand:	
-	arg mem_rxbuf+1,contr
-	arg mem_random_number,contw
-	branch memcpy16
-
-lmp_generate_key:
-	jam LMP_COMB_KEY,mem_lmo_opcode2
-	rtn
-
-lmp_start_encryption:
-	nrtn master
-	jam LMP_START_ENCRYPTION_REQ,mem_lmo_opcode2
-	rtn
-	
-lmp_accept_inrand:
-	arg mem_lap,rega
-	call generate_kinit
-	jam LMP_ACCEPTED,mem_lmo_opcode2
-	jam LMP_IN_RAND,mem_lmi_opcode2
-	rtn
-
-lmp_disconnect:
-	jam 10,mem_conn_timer
-	jam LMP_DETACH,mem_lmo_opcode2
-	jam LOCAL_HOST,mem_disconn_reason_send	
-	rtn
-
-/*********************************/
-/*********lmp send*************/
-/********************************/
-	/* enable user if a lmp packet is to send */
-send_lmp:
-	bpatchx patch30_2,mem_patch30
-	disable user
-	call lmo_fifo_process
-	fetch 1,mem_lmp_to_send
-	rtn blank
-/* lmp message to be processed. this will either be because host??? */
-/* wants to send a lmp message or because one resulted from the LMP */
-/* processing section */
-/********* outgoing lmp lookup table *************/
-	bbit1 7,send_lmp_escape
-send_lmp0:
-	beq LMP_NAME_REQ,	 send_lmp_name_req
-	beq LMP_NAME_RES,	 send_lmp_name_res
-	beq LMP_ACCEPTED,	 send_lmp_accepted
-	beq LMP_NOT_ACCEPTED,	 send_lmp_not_accepted
-	beq LMP_FEATURES_REQ,	 send_lmp_features_req
-	beq LMP_FEATURES_RES,	 send_lmp_features_res
-	beq LMP_TIMING_ACCURACY_RES,	 send_lmp_timing_accuracy_res
-	beq LMP_VERSION_REQ,	 send_lmp_version_req
-	beq LMP_VERSION_RES,	 send_lmp_version_res
-	beq LMP_SETUP_COMPLETE,	 send_lmp_setup_complete
-	beq LMP_SUPERVISION_TIMEOUT,	 send_lmp_superto
-	beq LMP_HOST_CONNECTION_REQ,send_lmp_no_payload
-	beq LMP_IN_RAND,send_lmp_inrand
-	beq LMP_COMB_KEY,send_lmp_comb_key
-	beq LMP_AU_RAND,send_lmp_aurand
-	beq LMP_SRES,send_lmp_sres
-	beq LMP_ENCRYPTION_MODE_REQ,send_lmp_encryption_mode_req
-	beq LMP_ENCRYPTION_KEY_SIZE_REQ,send_lmp_encryption_key_size_req
-	beq LMP_START_ENCRYPTION_REQ,send_lmp_start_encryption
-	beq LMP_DETACH,send_lmp_detach
-	beq LMP_QUALITY_OF_SERVICE_REQ, send_lmp_quality_of_service_req
-	beq LMP_UNIT_KEY,send_lmp_unit_key
-	//Optional (O)
-	beq LMP_INCR_POWER_REQ,send_lmp_inc_power	
-	beq LMP_CLKOFFSET_RES, send_lmp_clkoffset_res	
-	beq LMP_MAX_POWER,send_lmp_nopayload_reply
-	beq LMP_MAX_SLOT, send_lmp_max_slot
-	beq LMP_MAX_SLOT_REQ, send_lmp_max_slot_req
-	beq LMP_MIN_POWER,send_lmp_nopayload_reply
-	beq LMP_SLOT_OFFSET, send_lmp_slot_offset
-	beq LMP_SWITCH_REQ, send_lmp_switch_req
-	beq LMP_SNIFF_REQ, send_lmp_sniff_req
-	beq LMP_STOP_ENCRYPTION_REQ, send_lmp_stop_encryption_req	
-	beq LMP_TIMING_ACCURACY_REQ, send_lmp_timing_accuracy_req
-	beq LMP_UNSNIFF_REQ, send_lmp_unsniff_req
-	beq LMP_ENCAPSULATED_HEADER,send_lmp_encapsulated_header
-	beq LMP_ENCAPSULATED_PAYLOAD,send_lmp_encapsulated_payload
-	beq LMP_SIMPLE_PAIRING_CONFIRM,send_lmp_simple_pairing_comfirm
-	beq LMP_SIMPLE_PAIRING_NUMBER,send_lmp_simple_pairing_number
-	beq LMP_DHKEY_CHECK,send_lmp_dhkey_check
-	beq LMP_AUTO_RATE,send_lmp_auto_rate
-	beq LMP_ENC_KEY_SIZE_MASK_RES,send_lmp_enc_key_size_mask_res
-	//master only must(M)
-	beq LMP_CLKOFFSET_REQ, send_lmp_clkoffset_req
-	beq LMP_QUALITY_OF_SERVICE, send_lmp_quality_of_service
-	beq LMP_TEST_ACTIVATE, send_lmp_test_activate
-	beq LMP_TEST_CONTROL, send_lmp_test_control
-send_lmp_error:
-	branch assert
-	rtn
-send_lmp_escape:
-	beq LMP_EXT_ACCEPTED,send_lmpext_accepted
-	beq LMP_EXT_FEATURES_RES,send_lmpext_features_res
-	beq LMP_NOT_ACCEPTED_EXT,send_lmpext_not_accepted
-	beq LMP_EXT_FEATURES_REQ,send_lmpext_features_req
-	beq LMP_PACKET_TYPE_TABLE_REQ,send_lmpext_packet_type_table_req
-	beq LMP_PAUSE_ENCRYPTION_REQ,send_lmpext_pause_encryption_req
-	beq LMP_IO_CAP_REQ,send_lmp_io_cap_req
-         beq LMP_IO_CAP_RES,send_lmpext_io_cap_res
-         beq LMP_SNIFF_SUBRATING_REQ,send_lmpext_sniff_subrating_req
-         beq LMP_SNIFF_SUBRATING_RES,send_lmpext_sniff_subrating_res
-	branch assert
-
-
-/******** LMP follow messages **********/
-/****** TID follow received packet  *******/
-
-send_lmp_accepted:
-	force 2,pdata
-	call msg_send_lmp
-	fetch 1,mem_lmi_opcode
-	istore 1,contw
-	call send_lmp_follow
-	bpatchx patch30_3,mem_patch30
-	fetch 1,mem_lmi_opcode
-	beq LMP_IN_RAND,send_lmp_accepted_inrand
-	beq LMP_ENCRYPTION_MODE_REQ,send_lmp_accepted_enc_mode
-	beq LMP_ENCRYPTION_KEY_SIZE_REQ,send_lmp_accepted_enc_key
-	beq LMP_SNIFF_REQ,send_lmp_accept_sniff_req
-	beq LMP_HOST_CONNECTION_REQ,send_lmp_accepted_connection
-	beq LMP_DHKEY_CHECK,send_lmp_accept_dhkey_check
-	beq LMP_START_ENCRYPTION_REQ,send_create_conn_start_l2cap_timer_sm  
-	rtn	
-	
-send_create_conn_start_l2cap_timer_sm:
-	fetch 1,mem_conn_sm
-	rtn blank
-	jam CONN_SM_WAIT_DONE,mem_conn_sm
-	setarg TIMER_ENPT_WAITE
-	arg enpt_delay_timer,queue
-	branch timer_init
-	
-send_lmp_accept_sniff_req:
-	branch sniff_init
-send_lmp_not_accepted:
-	force 3,pdata
-	call msg_send_lmp
-	fetch 1,mem_lmi_opcode
-	beq LMP_AU_RAND,send_not_accept_aurand
-	istore 1,contw
-	fetch 1,mem_lmo_reason
-	istore 1,contw
-	branch send_lmp_follow
-
-send_not_accept_aurand:
-	istore 1,contw
-	fetch 1,mem_lmo_reason
-	istore 1,contw
-	arg mem_sres_tid,temp
-	branch special_tid_store
-
-send_lmpext_accepted:	
-	force 4,queue
-	call send_lmpext
-	setarg LMP_ESCAPE
-	istore 1,contw
-	fetch 1,mem_lmi_opcode
-	set0 7,pdata
-	istore 1,contw
-	fetch 1,mem_lmi_opcode
-	branch send_lmp_follow
-
-send_lmpext_not_accepted:
-	force 5,queue
-	call send_lmpext
-	setarg LMP_ESCAPE
-	istore 1,contw
-	fetch 1,mem_lmi_opcode
-	set0 7,pdata
-	istore 1,contw
-	fetch 1,mem_lmo_reason
-	istore 1,contw
-	branch send_lmp_follow
-	
-
-send_lmp_accepted_inrand:
-	call clear_linkkey
-	call tid_check	
-	rtn true
-	branch lmp_generate_key
-
-send_lmp_accepted_enc_mode:
-	fetch 1,mem_op
-	bbit1 op_start_enc,send_lmp_accepted_enc_start
-	rtnbit0 op_stop_enc
-	jam LMP_STOP_ENCRYPTION_REQ,mem_lmo_opcode2
-	set0 op_stop_enc,pdata
-	call tid_reply
-	branch send_lmp_accepted_enc_exit
-send_lmp_accepted_enc_start:
-	jam LMP_ENCRYPTION_KEY_SIZE_REQ,mem_lmo_opcode2
-	set0 op_start_enc,pdata
-send_lmp_accepted_enc_exit:
-	store 1,mem_op
-	rtn
-
-send_lmp_accepted_enc_key:
-	call check_localsm
-	branch lmp_start_encryption,true
-	rtn
-
-send_lmp_accepted_connection:
-	jam LMP_PACKET_TYPE_TABLE_REQ,mem_lmo_opcode2
-	//jam LMP_SETUP_COMPLETE,mem_lmo_opcode2
-	fetch 1,mem_lmp_conn_state
-	set1 RECEIVED_CONN_REQ,pdata
-	store 1,mem_lmp_conn_state
-	jam BT_EVT_BB_CONNECTED,mem_fifo_temp
-	branch ui_ipc_send_event
-
-
-send_lmp_accept_dhkey_check:
-	rtn
-/******** LMP reply messages **********/
-/****** TID always set to remote  *******/
-
-send_lmpext_features_res:
-	force 12,queue
-	call send_lmpext
-	setarg 0x01
-	istore 1,contw
-	fetch 2,mem_lmpext_ssp_enable
-	istore 2,contw
-	setarg 0
-	istore 3,contw
-	setarg 0x00
-	istore 4,contw
-	branch send_lmp_reply
-send_lmpext_io_cap_res:     
-	force 5,queue
-         call send_lmpext
-       	fetch 3,mem_sp_iocap_local
-         istore 3,contw
-	call send_lmp_reply
-	jam FLAG_PAIRING_STATE_PAIRING,mem_flag_pairing_state
-	fetch 1,mem_sp_iocap_local
-	beq DISPLAY_YESNO,responder_iocap_display_yesno
-	beq KEYBOARD_ONLY,responder_iocap_keyboard_only
-	beq NO_INPUT_NO_OUTPUT,responder_iocap_no_input_no_output
-	rtn
-
-responder_iocap_keyboard_only:
-	fetch 1,mem_sp_iocap_remote
-	beq DISPLAY_ONLY,responder_iocap_keyboard_only_initiator_iocap_display_only
-	beq DISPLAY_YESNO,responder_iocap_keyboard_only_initiator_iocap_display_yesno
-	beq KEYBOARD_ONLY,responder_iocap_keyboard_only_initiator_iocap_keyboard_only
-	beq NO_INPUT_NO_OUTPUT,responder_iocap_keyboard_only_initiator_iocap_no_input_no_output
-	rtn
-
-
-responder_iocap_display_yesno:
-	fetch 1,mem_sp_iocap_remote
-	beq DISPLAY_ONLY,responder_iocap_display_yesno_initiator_iocap_display_only
-	beq DISPLAY_YESNO,responder_iocap_display_yesno_initiator_iocap_display_yesno
-	beq KEYBOARD_ONLY,responder_iocap_display_yesno_initiator_iocap_keyboard_only
-	beq NO_INPUT_NO_OUTPUT,responder_iocap_display_yesno_initiator_iocap_no_input_no_output
-	rtn
-
-	
-responder_iocap_no_input_no_output:
-	fetch 1,mem_sp_iocap_remote
-	beq DISPLAY_ONLY,responder_iocap_no_input_no_output_initiator_iocap_display_only
-	beq DISPLAY_YESNO,responder_iocap_no_input_no_output_initiator_iocap_display_yesno
-	beq KEYBOARD_ONLY,responder_iocap_no_input_no_output_initiator_iocap_keyboard_only
-	beq NO_INPUT_NO_OUTPUT,responder_iocap_no_input_no_output_initiator_iocap_no_input_no_output
-	rtn
-
-responder_iocap_keyboard_only_initiator_iocap_no_input_no_output:
-responder_iocap_display_yesno_initiator_iocap_no_input_no_output:
-responder_iocap_display_yesno_initiator_iocap_display_only:
-responder_iocap_no_input_no_output_initiator_iocap_display_only:
-responder_iocap_no_input_no_output_initiator_iocap_display_yesno:
-responder_iocap_no_input_no_output_initiator_iocap_keyboard_only:
-responder_iocap_no_input_no_output_initiator_iocap_no_input_no_output:
-set_ssp_mode_justwork: 
-	jam SSP_MODE_JUST_WORK_FLAG,mem_ssp_mode_flag
-	fetch 1,mem_classic_bt_flag
-	bbit1 FLAG_SSP_REJECT_JUSTWORK,app_bt_disconnect
-	rtn
-
-responder_iocap_display_yesno_initiator_iocap_display_yesno:
-set_ssp_mode_numeric_comparison: 
-	jam SSP_MODE_SSP_PIN_FLAG,mem_ssp_mode_flag
-	rtn
-
-responder_iocap_keyboard_only_initiator_iocap_display_yesno:
-responder_iocap_keyboard_only_initiator_iocap_keyboard_only:	
-responder_iocap_keyboard_only_initiator_iocap_display_only:	
-responder_iocap_display_yesno_initiator_iocap_keyboard_only:
-set_ssp_mode_passkey: 
-	jam SSP_MODE_PASSKEY_ENTRY_FLAG,mem_ssp_mode_flag
-	rtn
-
-
-classic_bt_set_reject_justwork_flag:
-	arg FLAG_SSP_REJECT_JUSTWORK,queue
-	branch classic_bluetooth_set_flag
-
-classic_bt_clr_reject_justwork_flag:
-	arg FLAG_SSP_REJECT_JUSTWORK,queue
-	branch classic_bluetooth_clr_flag
-
-classic_bluetooth_set_flag:
-	fetch 1,mem_classic_bt_flag
-	qset1 pdata
-	store 1,mem_classic_bt_flag
-	rtn
-
-classic_bluetooth_clr_flag:
-	fetch 1,mem_classic_bt_flag
-	qset0 pdata
-	store 1,mem_classic_bt_flag
-	rtn
-
-         
-send_lmp_io_cap_req:
-	force 5,queue
-	call send_lmpext
-	fetch 3,mem_sp_iocap_local
-	istore 3,contw
-	branch send_lmp_request
-	
-
-send_lmpext_sniff_subrating_req: 
-
-	rtn
-send_lmpext_sniff_subrating_res: 
-         force 9,queue
-         call send_lmpext
-         fetch 1,mem_subsniff_rate
-         istore 1,contw
-         fetch 2,mem_subsniff_tcmax
-         istore 2,contw
-         fetch 4,mem_subsniff_instant
-         istore 4,contw
-	branch send_lmp_reply
-
-send_lmp_name_res:
-	force 17,pdata
-	call msg_send_lmp
-	fetch 1,mem_lmi_opcode  /* loading name offset */
-	copy pdata,temp
-	beq 0x00,send_lmp_name_res_offset_ok
-	beq 0x0e,send_lmp_name_res_offset_ok
-	beq 0x1c,send_lmp_name_res_offset_ok
-	rtn
-send_lmp_name_res_offset_ok:
-	istore 1,contw	/* writing name offset */
-	fetch 1,mem_local_name_length
-	istore 1,contw	/* writing name length */
-	arg 14,loopcnt
-	setarg mem_local_name
-	iadd temp,contr	/* setting read location */
-	call memcpy
-	branch send_lmp_reply
-
-
-send_lmp_timing_accuracy_res:
-	force 3,pdata
-	call msg_send_lmp
-	setarg 0x0114
-	istore 2,contw
-	branch send_lmp_reply
-
-send_lmp_clkoffset_res:
-	// dopod s505 must wait for this res
-	force 3,pdata
-	call msg_send_lmp
-	fetch 4,mem_clke_bt
-	isub clkn_bt,pdata
-	branch send_lmp_clkoffset_res_master,master
-	sub pdata,0,pdata		/* our role is slave */
-send_lmp_clkoffset_res_master:	
-	// bit 16-2 of clkslave-clkmaster
-	rshift2 pdata,pdata
-	set0 15,pdata
-	istore 2,contw
-	branch send_lmp_reply
-
-send_lmp_version_res:
-	force 6,pdata
-	call msg_send_lmp
-	fetch 5,mem_lmp_version
-	istore 5,contw
-	branch send_lmp_reply
-
-send_lmp_features_res:
-	force 9,pdata
-	call msg_send_lmp
-	fetch 8,mem_features
-	istore 8,contw
-	branch send_lmp_reply  
-
-
-/******** LMP request messages **********/
-/****** TID always set to local initiated *******/
-	
-
-send_lmpext_features_req:
-	force 12,queue
-	call send_lmpext
-	setarg 0x01
-	istore 1,contw
-	fetch 2,mem_lmpext_ssp_enable
-	istore 2,contw
-	setarg 0
-	istore 3,contw
-	setarg 0x00
-	istore 4,contw
-	branch send_lmp_request
-
-send_lmpext_packet_type_table_req:
-	force 3,queue
-	call send_lmpext
-	fetch 1,mem_ptt
-	istore 1,contw
-	disable user
-	call send_lmp_request
-	nrtn user
-	nrtn master
-	fetch 1,mem_afh_cfg
-	rtnbit0 AFH_CFG_ON
-	call afh_init
-	branch afh_open_all_channels
-	
-//default:featrue is enable,extfeature is disable
-ssp_enable:
-	bpatchx patch30_4,mem_patch30
-	fetch 1,mem_features+6
-	set1 param_featrue_ssp,pdata
-	store 1,mem_features+6
-	setarg param_lmpext_ssp_enable
-	store 2,mem_lmpext_ssp_enable
-	rtn
-
-ssp_disable:
-	bpatchx patch30_5,mem_patch30
-	fetch 1,mem_features+6
-	set0 param_featrue_ssp,pdata
-	store 1,mem_features+6
-	setarg 0
-	store 2,mem_lmpext_ssp_enable
-	rtn
-	
-afh_init:
-	jam 0x3,mem_afh_cfg
-	setarg 0
-	store 4,mem_afh_timer
-	arg mem_afh_map_lo,contw
-	call afh_reset_map
-	arg mem_afh_map_new,contw
-	call afh_reset_map
-	arg mem_afh_classify_channel_map,contw
-	call afh_reset_map
-	branch afh_clear_error_counter
-afh_open_all_channels:
-	arg mem_afh_map_new,contw
-	call afh_reset_map
-	call afh_clear_error_counter
-	branch afh_set_send_flag
-
-
-afh_reset_map:
-	setarg 0xffffff
-	istore 3,contw
-	istore 3,contw
-	istore 3,contw
-	setarg 0x7f
-	istore 1,contw
-	rtn
-afh_clear_error_counter:
-	setarg 0
-	store 2,mem_afh_error_total
-	rtn
-afh_set_send_flag:
-	fetch 1,mem_afh_cfg
-	set1 send_lmp_set_afh,pdata
-	store 1,mem_afh_cfg
-	rtn
-
-
-send_lmpext_pause_encryption_req:
-	force 2,queue
-	call send_lmpext
-	nbranch send_lmp_reply,master
-	// assume slave will not send pause req firstly???
-	branch send_lmp_request
-
-
-	
-send_lmp_detach:
-	force 2,pdata
-	call msg_send_lmp
-	fetch 1,mem_disconn_reason_send
-	istore 1,contw
-	call send_lmp_request
-prepare_disconnect:
-	fetch 1,mem_op
-	set1 op_disconn,pdata
-	store 1,mem_op
-	jam 50,mem_conn_timer
-	rtn
-	
-
-send_lmp_no_payload:
-	force 1,pdata
-	call msg_send_lmp
-	branch send_lmp_request
-send_lmp_nopayload_reply:
-	force 1,pdata
-	call msg_send_lmp
-	branch send_lmp_reply
-	
-	
-send_lmp_encryption_mode_req:
-	force 2,pdata
-	call msg_send_lmp
-	fetch 1,mem_state_map
-	isolate0 smap_encryption,pdata
-	setflag true,0,pdata
-	and_into 1,pdata
-	istore 1,contw
-	branch send_lmp_request
-
-
-send_lmp_superto:
-	force 3,pdata
-	call msg_send_lmp
-	fetch 2,mem_supervision_to
-	istore 2,contw
-	branch send_lmp_request
-
-send_lmp_name_req:
-	jam 250,mem_conn_timer
-	force 2,pdata
-	call msg_send_lmp
-	fetch 1,mem_name_offset
-	istore 1,contw
-	branch send_lmp_request
-
-send_lmp_test_control:
-	force 10,pdata
-	call msg_send_lmp
-	arg mem_temp_payload,contr
-	force 9,loopcnt
-send_lmp_test_control_loop:	
-	ifetch 1,contr
-	xor_into 0x55,pdata
-	istore 1,contw
-	loop send_lmp_test_control_loop
-	branch send_lmp_request  
-
-send_lmp_quality_of_service_req:
-	branch send_lmp_request
-send_lmp_unit_key:
-	branch send_lmp_request
-
-send_lmp_slot_offset:
-	rtn master
-	call calc_slot_offset
-	force 9,pdata
-	call msg_send_lmp
-	fetch 2,mem_slot_offset
-	istore 2,contw
-	fetch 3,mem_lap
-	istore 3,contw
-	fetch 1,mem_uap
-	istore 1,contw
-	fetch 2,mem_nap
-	istore 2,contw
-	bmark0 mark_switch_initiated,send_lmp_slot_offset_reply
-	set0 mark_switch_initiated,mark
-	call send_lmp_request
-	jam LMP_SWITCH_REQ,mem_lmo_opcode2
-	rtn
-send_lmp_slot_offset_reply:
-	call send_lmp_reply
-	jam LMP_ACCEPTED,mem_lmo_opcode2
-	jam LMP_SWITCH_REQ,mem_lmi_opcode2
-	rtn
-	
-send_lmp_switch_req:
-	arg 0x200,temp
-	branch switch_on_native,master
-	deposit clke_bt
-	branch switch_slack
-switch_on_native:
-	deposit clkn_bt
-switch_slack:
-	deposit bt_clk
-	iadd temp,pdata
-	and_into 0x1fc,pdata
-	store 4,mem_sniff_anchor
-	force 5,pdata
-	call msg_send_lmp
-	fetch 4,mem_sniff_anchor		/* reused as switch instant */
-	rshift pdata,pdata
-	istore 4,contw
-	branch send_lmp_request
-	
-send_lmp_sniff_req:
-	force 10,pdata
-	call msg_send_lmp
-	arg mem_sniff_payload,contr
-	ifetch 9,contr
-	istore 9,contw
-	branch send_lmp_request
-
-	
-send_lmp_timing_accuracy_req:
-/* default to TID_NORM_SEND */
-	force 3,pdata
-	call msg_send_lmp
-	setarg 0x0114
-	istore 2,contw
-	branch send_lmp_request
-	
-send_lmp_unsniff_req:
-//--------------------need to completa
-	force 1,pdata
-	call msg_send_lmp
-	//fetch 1,mem_unsniff_pending
-	//nbranch send_msg_done,blank
-	//jam 1,mem_unsniff_pending
-	//fetch 2,mem_sniff_attempt
-	//fetch 2,mem_nsniff_attempt
-	//lshift3 pdata,pdata
-	//lshift pdata,pdata
-	//store 1,mem_unsniff_cnt
-	branch send_lmp_request
-
-	
-send_lmp_max_slot:
-	force 2,pdata
-	call msg_send_lmp
-	fetch 1,mem_max_slot
-	istore 1,contw
-	branch send_lmp_request
-	
-	
-send_lmp_max_slot_req:
-	force 2,pdata
-	call msg_send_lmp
-	setarg 0x05		/*5 slot*/
-	istore 1,contw
-	branch send_lmp_request
-
-
-send_lmp_inc_power:
-	force 2,pdata
-	call msg_send_lmp
-	setarg 0x00		/*5 slot*/
-	istore 1,contw
-	branch send_lmp_request
-
-
-send_lmp_setup_complete_by_module:
-	jam LMP_MAX_SLOT_REQ,mem_lmo_opcode2
-	rtn
-send_lmp_setup_complete:
-	fetch 1,mem_device_option
-	sub pdata,dvc_op_module,null
-	call send_lmp_setup_complete_by_module,zero
-	fetch 1,mem_state
-	set1 state_conn_comp,pdata
-	store 1,mem_state
-	copy clkn_bt,pdata
-	store 4,mem_aurand_send_delay_time
-	fetch 1,mem_lmp_conn_state
-	bbit1 SENT_SETUP_COMPLETE,send_lmp_setup_complete_has_sent
-	set1 SENT_SETUP_COMPLETE,pdata
-	store 1,mem_lmp_conn_state
-	jam BT_EVT_SETUP_COMPLETE,mem_fifo_temp
-	call ui_ipc_send_event
-	force 1,pdata
-	call msg_send_lmp
-	branch send_lmp_request
-send_lmp_setup_complete_has_sent:
-	jam 0,mem_lmp_to_send
-	rtn
-	
-send_lmp_version_req:
-	force 6,pdata
-	call msg_send_lmp
-	fetch 5,mem_lmp_version
-	istore 5,contw
-	branch send_lmp_request
-
-send_lmp_features_req:
-	force 9,pdata
-	call msg_send_lmp
-	fetch 8,mem_features
-	istore 8,contw
-	branch send_lmp_request  
-
-sp_master_send_io_cap_get:
-	jam SP_FLAG_COMMIT,mem_master_sp_flag
-	fetch 1,mem_sp_local_key_invalid
-	rtnne SP_KEY_VALID
-	jam SP_MASTER_STAT_START_DONE,mem_master_sp_state
-	rtn
-
-sp_master_send_io_cap_send:
-	call tid_initiate
-	jam LMP_IO_CAP_REQ,mem_lmo_opcode2
-	jam SP_STAT_KEY_SEND,mem_master_sp_state
-	rtn
-	
-	
-sp_master_send_LMP_ENCAPSULATED_HEADER:
-	call tid_initiate
-	jam      LMP_ENCAPSULATED_HEADER,mem_lmo_opcode2
-	jam SP_STAT_RANDOM_SEND,mem_master_sp_state
-	rtn
-	
-sp_master_commitment_compare:
-	arg mem_sp_calc_result_high,rega
-	arg mem_sp_confirm_remote,regb
-	arg 16,loopcnt
-	call string_compare
-	branch sp_master_commitment_compare_success,zero
-	jam SP_STAT_NULL,mem_master_sp_state
-ifdef SIMPLE_PAIRING
-	call master_clear_mem_master_sp_flag
-endif
-	jam   PDU_NOT_ALLOWED,mem_lmo_reason2
-	jam 	LMP_SIMPLE_PAIRING_NUMBER,mem_lmi_opcode2 
-ifdef LMP_DBG
-	call ice_break
-endif
-	branch reject_lmp_packet
-sp_master_commitment_compare_success:
-	jam 	SP_STAT_CONFIRM_CALC,mem_master_sp_state
-ifdef SIMPLE_PAIRING
-	call master_set_mem_master_sp_flag
-endif
-	jam LMP_SIMPLE_PAIRING_NUMBER,mem_lmi_opcode2
-	branch accept_lmp_msg  
-	
-
-	
-sp_master_send_lmp_simple_pairing_number:
-	jam LMP_SIMPLE_PAIRING_NUMBER,mem_lmo_opcode2
-	rtn
-	
-
-
-sp_send_lmp_encapsulated_header:
-	// calculate the private & public key here
-	//jam      LMP_ENCAPSULATED_HEADER,mem_lmp_to_send
-	jam      LMP_ENCAPSULATED_HEADER,mem_lmo_opcode2
-	//jam      TID_PAIRING,mem_lmp_tid
-	rtn
-	//fetch 1,mem_tid_table
-	//set1 TID_PAIRING,pdata
-	//store 1,mem_tid_table
-     
-    
-send_lmp_encapsulated_header: 
-	jam 0,mem_sp_local_key_send_count
-	force 4,pdata
-	call msg_send_lmp
-	force ENCAPSULATED_MAJOR_TYPE_P192,pdata
-	istore 1,contw
-	force ENCAPSULATED_MINOR_TYPE_P192,pdata
-	istore 1,contw  
-	force ENCAPSULATED_LEN_P192,pdata
-	istore 1,contw 
-	call check_localsm
-	branch send_lmp_request,true
-	branch send_lmp_reply
-
-send_lmp_encapsulated_payload:
-	//jam      TID_PAIRING,mem_lmp_tid
-	 force 17,pdata
-	call msg_send_lmp
-	fetch 1,mem_sp_local_key_send_count
-	arg mem_sp_pubkey_local,contr
-	iadd contr,contr    
-	ifetch   8,contr
-	istore   8,contw
-	ifetch   8,contr
-	istore   8,contw
-	fetch    1,mem_sp_local_key_send_count
-	increase 16,pdata
-	store    1,mem_sp_local_key_send_count
-	call check_localsm
-	branch send_lmp_request,true
-	branch send_lmp_reply
-	//branch send_lmp_request
-	
-sp_send_lmp_simple_pairing_comfirm:
-        jam      SP_STAT_RANDOM_RECV,mem_sp_state
-        jam      LMP_SIMPLE_PAIRING_CONFIRM,mem_lmo_opcode2
-        rtn
-send_lmp_simple_pairing_comfirm:
-        //jam      SP_STAT_RANDOM_RECV,mem_sp_state
-        //jam      TID_PAIRING,mem_lmp_tid
-        force    17,pdata
-        call msg_send_lmp   
-        arg      mem_sp_calc_result_high,contr
-        ifetch   8,contr
-        istore   8,contw
-        ifetch   8,contr
-        istore   8,contw 
-        branch send_lmp_reply
-
-sp_send_lmp_simple_pairing_number:
-	jam      LMP_SIMPLE_PAIRING_NUMBER,mem_lmo_opcode2
-	rtn
-
-send_lmp_simple_pairing_number:
-	//jam      TID_PAIRING,mem_lmp_tid
-	call check_localsm
-ifdef SIMPLE_PAIRING
-	call sp_local_random_key_generator,true
-endif
-	force    17,pdata
-	call msg_send_lmp
-	arg      mem_sp_random_local,contr
-	ifetch   8,contr
-	istore   8,contw
-	ifetch   8,contr
-	istore   8,contw
-	call check_localsm
-	nbranch send_lmp_reply,true
-	branch send_lmp_request,true
-
-master_sp_sm_end:
-	//jam DEFAULT_STATEMACHINE,mem_sp_localsm
-	jam SP_STAT_DONE,mem_master_sp_state
-sp_aurand_send:
-	call tid_initiate
-	jam LMP_AU_RAND,mem_lmo_opcode2
-	call check_localsm_master
-ifdef SIMPLE_PAIRING
-	branch sp_master_key_prarm_push,true
-	branch sp_link_key_prarm_push
-endif
-master_sp_send_lmp_dhkey_check:
-	call tid_reply
-sp_send_lmp_dhkey_check: 
-	jam      LMP_DHKEY_CHECK,mem_lmo_opcode2
-	rtn
-send_lmp_dhkey_check: 
-	//jam      TID_PAIRING,mem_lmp_tid
-	force    17,pdata
-	call     msg_send_lmp
-	arg      mem_sp_calc_result_high,contr
-	ifetch   8,contr
-	istore   8,contw
-	ifetch   8,contr
-	istore   8,contw 
-	call check_localsm
-	nbranch send_lmp_reply,true
-	branch send_lmp_request,true
-
-send_lmp_enc_key_size_mask_res:
-	force 3,pdata
-	call msg_send_lmp   
-	setarg 0xfffe //enc key size mask
-	istore 2,contw
-	branch send_lmp_reply
-
-send_lmp_auto_rate:
-	branch send_lmp_request
-send_lmp_clkoffset_req:
-	branch send_lmp_request
-send_lmp_quality_of_service:
-	branch send_lmp_request
-send_lmp_test_activate:
-	branch send_lmp_request
-
-/******** LMP request/reply messages **********/
-/****** TID transaction specific *******/
-
-send_lmp_comb_key:
-	call generate_random_number
-	arg mem_lap,rega
-	call generate_linkkey
-	force 17,pdata
-	call msg_send_lmp
-	arg mem_kinit,rega
-	arg mem_random_number,regb
-	call xor16
-	nbranch send_lmp_follow,master
-	branch send_lmp_tid
-
-send_lmp_inrand:
-	call generate_random_number
-	arg mem_plap,rega
-	call generate_kinit
-send_lmp_rand:	/* used by in_rand,au_rand,start_encrypt */
-	force 17,pdata
-	call msg_send_lmp
-	arg mem_random_number,contr
-	call memcpy16
-	fetch 1,mem_conn_sm 
-	beq CONN_SM_AUTH_WAIT,send_lmp_request
-	beq CONN_SM_PAIRING_WAIT,send_lmp_request
-	branch send_lmp_tid
-
-send_lmp_aurand:
-	fetch 1,mem_pairing_auth
-	branch send_lmp_aurand_notpairing,blank
-	call check_localsm
-	call tid_initiate,true
-	ncall tid_reply,true
-	branch send_lmp_aurand_common
-send_lmp_aurand_notpairing:
-	call tid_initiate
-send_lmp_aurand_common:
-	call generate_random_number
-	branch send_lmp_rand
-
-send_lmp_sres:
-	arg mem_lap,rega
-	call function_e1
-	force 5,pdata
-	call msg_send_lmp
-	fetch 4,mem_input_store
-	istore 4,contw
-	arg mem_sres_tid,temp
-	call special_tid_store
-	call copy_aco
-	call check_localsm
-	branch send_lmp_sres_master,true
-	jam DONE_ENCRYP,mem_wait_encryption
-	fetch 1,mem_pairing_auth
-	rtn blank
-	jam LMP_AU_RAND,mem_lmo_opcode2
-send_lmp_sres_master:
-	fetch 1,mem_link_key_exists
-	rtn blank
-send_lmp_sres_startenc:
-	call check_localsm
-	nbranch send_lmp_sres_startenc_slave,true
-	fetch 1,mem_auth_enable
-	rtn blank
-	jam LMP_ENCRYPTION_MODE_REQ, mem_lmo_opcode2
-	rtn
-send_lmp_sres_startenc_slave:
-	rtnmark0 mark_slave_in_rand_accepted
-	set0 mark_slave_in_rand_accepted,mark
-	jam LMP_ENCRYPTION_MODE_REQ, mem_lmo_opcode2
-	rtn
-	
-
-	
-send_lmp_start_encryption:
-	call generate_random_number
-	call function_e3
-	force 17,pdata
-	call msg_send_lmp
-	arg mem_random_number,contr
-	call memcpy16
-	branch send_lmp_tid
-
-send_lmp_stop_encryption_req:
-	force 1,pdata
-	call msg_send_lmp
-	branch send_lmp_tid
-
-send_lmp_encryption_key_size_req:
-	force 2,pdata
-	call msg_send_lmp
-	force 16,pdata
-	istore 1,contw
-	store 1,mem_key_size
-	branch send_lmp_tid
-
-msg_send_lmp:
-/* FLOW is set high and LMP is indicated */
-	lshift3 pdata,pdata
-	or_into 0x07,pdata
-	store 1,mem_lmo_header_length
-	arg 17,loopcnt
-	arg mem_lmo_payload,contw
-	call clear_mem
-	arg mem_lmo_payload,contw
-	rtn
-
-send_lmpext:
-	and pdata,0x7f,rega
-	jam LMP_ESCAPE,mem_lmp_to_send
-	deposit queue
-	call msg_send_lmp
-	deposit rega
-	istore 1,contw
-	rtn
-
-send_lmp_follow:
-	fetch 1,mem_lmp_to_send
-	lshift pdata,pdata
-	fetcht 1,mem_state_map
-	isolate1 smap_lmptid,temp
-	setflag true,0,pdata
-	branch send_lmp_exit
-
-
-send_lmp_tid:
-	fetcht 1,mem_state_map
-	and_into 1,temp
-	branch send_lmp_end
-
-send_lmp_reply:
-	force 0,temp
-	branch send_lmp_end
-	
-send_lmp_request:
-	force 1,temp
-send_lmp_end:
-	fetch 1,mem_lmp_to_send
-	lshift pdata,pdata
-	setflag master,0,pdata
-	ixor temp,pdata
-send_lmp_exit:
-	store 1,mem_lmo_header_opcode
-	jam 0,mem_lmp_to_send
-	call lmo_fifo_process_lmo0empty
-	enable user
-	rtn
-
-//blank : not full 
-lmo_fifo_check:
-	fetch 1,mem_lmo_opcode2
-	rtn blank
-	call lmo_fifo_process
-	fetch 1,mem_lmo_opcode2
-	rtn
-
-lmo_fifo_process:
-	bpatchx patch30_6,mem_patch30
-	fetch 1,mem_lmp_to_send
-	branch lmo_fifo_process_lmo0empty,blank
-	fetch 1,mem_lmo_opcode1
-	nrtn blank
-	branch lmo_fifo_process_lmo2to1
-lmo_fifo_process_lmo0empty:
-	fetch 1,mem_lmo_opcode1
-	branch lmo_fifo_process_lmo1_empty,blank
-	fetch 3,mem_lmo_opcode1
-	store 3,mem_lmp_to_send//1=>0
-	fetcht 1,mem_lmo_tid1
-	fetch 1,mem_state_map
-	set0 smap_lmptid,pdata
-	ior temp,pdata
-	store 1,mem_state_map
-	jam 0,mem_lmo_opcode1
-lmo_fifo_process_lmo2to1:
-	fetch 1,mem_lmo_opcode2
-	rtn blank
-	fetch 4,mem_lmo_opcode2
-	store 4,mem_lmo_opcode1//2=>1
-	jam 0,mem_lmo_opcode2
-	rtn
-lmo_fifo_process_lmo1_empty:
-	fetch 1,mem_lmo_opcode2
-	rtn blank
-	fetch 3,mem_lmo_opcode2
-	store 3,mem_lmp_to_send//2=>0	
-	fetcht 1,mem_lmo_tid2
-	fetch 1,mem_state_map
-	set0 smap_lmptid,pdata
-	ior temp,pdata
-	store 1,mem_state_map
-	jam 0,mem_lmo_opcode2
-	rtn
-	
-//input:temp
-special_tid_store:
-	bpatchx patch30_7,mem_patch30
-	fetch 1,mem_state_map
-	copy pdata,regc
-	ifetch 1,temp
-	call pop_tid_follow
-	call send_lmp_follow
-	copy regc,pdata
-	store 1,mem_state_map
-	rtn
-	
-tid_reply:
-	fetcht 1,mem_state_map
-	set0 smap_lmptidinit,temp
-	storet 1,mem_state_map
-	rtn
-	
-tid_initiate:
-	fetcht 1,mem_state_map
-	set1 smap_lmptidinit,temp
-	storet 1,mem_state_map
-	rtn
-	
-	/* true if transaction from remote */
-tid_check:
-	nsetflag master,smap_lmptid,pdata //it is ok
-	fetcht 1,mem_state_map
-	ixor temp,pdata
-	isolate1 smap_lmptid,pdata
-	rtn	
-
-	/* set to remote */
-tid_set_reply:
-	fetch 1,mem_state_map
-	setflag master,smap_lmptid,pdata //it is ok
-	store 1,mem_state_map
-	rtn
-
-	/*rtn true when we lead lmp*/
-check_localsm:
-	fetch 1,mem_sp_localsm
-	compare 	LOCAL_STATEMACHINE,pdata,0x7f
-	rtn
-setlocalsm_master:
-	fetch 1,mem_sp_localsm
-	set1 7,pdata
-	store 1,mem_sp_localsm
-	rtn
-setlocalsm_slave:
-	fetch 1,mem_sp_localsm
-	set0 7,pdata
-	store 1,mem_sp_localsm
-	rtn
-check_localsm_master:
-	fetch 1,mem_sp_localsm
-	isolate1 7,pdata
-	store 1,mem_sp_localsm
-	rtn
-	
-generate_random_number:
-	/* generating a 16 byte random number,storing in ape_random_number */
-	arg mem_random_number,contw
-generate_random:
-	force 16,loopcnt
-generate_random_another:
-generate_random_loop:
-	random pdata
-	istore 1,contw
-	loop generate_random_another
-	rtn
-
-generate_linkkey:
-	call function_e21
-	arg mem_link_key,rega
-	arg mem_input_store,regb
-	ifetch 8,rega					/* check if already got comb key */
-	fetcht 1,mem_state
-	nsetflag blank,state_combkey,temp
-	storet 1,mem_state
-	copy rega,contw
-	call  xor16
-	branch generate_linkkey_continue
-
-/*********************************/
-/*********lmp send*************/
-/********************************/
-
-process_conn_sm:
-	//nrtn master
-	bpatchx patch31_0,mem_patch31
-
-	call lmo_fifo_check
-	nrtn blank
-process_conn_sm_continue:
-	fetch 1,mem_conn_sm
-	rtn blank
-	/* state machine begins in standby */
-	//beq CONN_SM_STANDBY, host_create_conn_begin
-	//beq CONN_SM_WAIT_PAGE, host_create_conn_wait_page
-	beq CONN_SM_SEND_CONN_REQ, host_create_conn_send_conn_req
-	beq CONN_SM_WAIT_CONN_ACCEPT, host_create_conn_wait_accept
-	beq CONN_SM_SEND_FEATURES, host_create_conn_send_features
-	beq CONN_SM_WAIT_FEATURES_RES, host_create_conn_waiting
-	beq CONN_SM_SEND_SWITCH,host_create_conn_send_switch
-	beq CONN_SM_AUTH_PAIR, host_create_conn_auth_pair
-	beq CONN_SM_AUTH_PAIR_WAIT, host_create_conn_auth_pair_wait
-	beq CONN_SM_ENCRYPT, host_create_conn_encrypt
-	beq CONN_SM_ENCRYPT_WAIT, host_create_conn_encrypt_wait
-	beq CONN_SM_ENCRYPT_WAIT_CLEAR, host_create_conn_encrypt_wait_clear
-	beq CONN_SM_SEND_SETUP_COMPLETE, host_create_conn_send_setup_complete
-	beq CONN_SM_WAIT_SETUP_COMPLETE, host_create_conn_wait_setup_complete
-	beq CONN_SM_DETACH_DELAY,host_create_conn_master_detach
-	beq CONN_SM_SEND_VERSION, host_create_conn_send_version
-	beq CONN_SM_WAIT_VERSION, host_create_conn_waiting
-	beq CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION, host_creat_conn_wait_switch
-	beq CONN_SM_SEND_FEATURES_EXT,host_creat_conn_send_feat_ext
-	beq CONN_SM_WAIT_FEATURES_EXT,host_create_conn_waiting
-	beq CONN_SM_PAIRING,host_create_conn_pairing
-	beq CONN_SM_PAIRING_WAIT,host_create_conn_pairing_wait
-	beq CONN_SM_AUTH,host_create_conn_auth
-	beq CONN_SM_AUTH_WAIT,host_create_conn_auth_wait
-	beq CONN_SM_DONE,host_create_conn_done
-	beq CONN_SM_WAIT_DONE,host_create_conn_done_wait
-	jam CONN_SM_STANDBY,mem_conn_sm
-	/* sending error message to host */
-	rtn
-host_create_conn_done:
-	fetch 1,mem_lmp_conn_state		
-	rtnbit0 RECEIVED_SETUP_COMPLETE
-	rtnbit0 SENT_SETUP_COMPLETE
-	jam CONN_SM_STANDBY,mem_conn_sm
-	call host_conn_judge_encrypt
-	branch scheduler_start_upper_sm
-	
-host_conn_judge_encrypt:
-	fetch 1,mem_connection_options
-	rtnbit0 CONNECTION_ENCRYPT
-	jam CONN_SM_ENCRYPT_WAIT,mem_conn_sm
-	rtn
-
-host_create_conn_done_wait:
-	arg enpt_delay_timer,queue
-	call timer_check
-	nrtn blank
-	jam CONN_SM_DONE,mem_conn_sm
-	rtn
-	
-host_create_conn_auth:
-	fetch 1,mem_connection_options
-	set0 CONNECTION_AUTH,pdata
-	store 1,mem_connection_options
-	jam CONN_SM_AUTH_WAIT,mem_conn_sm
-	jam LMP_AU_RAND,mem_lmo_opcode2
-	rtn 
-host_create_conn_auth_wait:
-	rtn
-host_create_conn_pairing:
-	fetch 1,mem_pincode_state
-	rtnne pincode_state_pincode_ready //wait for pincode
-	call host_auth
-	jam CONN_SM_PAIRING_WAIT,mem_conn_sm
-	rtn
-
-host_create_conn_pairing_wait:
-	rtn
-host_creat_conn_send_feat_ext:
-	jam CONN_SM_WAIT_FEATURES_EXT,mem_conn_sm
-	jam LMP_EXT_FEATURES_REQ,mem_lmo_opcode2
-	rtn
-host_create_conn_send_version:
-	jam CONN_SM_WAIT_VERSION,mem_conn_sm
-	jam LMP_VERSION_REQ,mem_lmo_opcode2
-	rtn 
-	
-host_creat_conn_wait_switch:
-	fetch 1,mem_switch_flag
-	rtneq SWITCH_FLAG_INIT
-	beq SWITCH_FLAG_ACCEPT,host_create_conn_switch_accept
-	arg switch_wait_timer,queue
-	call timer_check
-	nrtn blank
-	jam SWITCH_FLAG_INIT,mem_switch_flag
-	branch host_create_conn_switch
-host_create_conn_switch_accept:
-	rtn master
-	branch host_create_conn_auth_pair
-
-host_create_conn_send_features:
-	jam CONN_SM_WAIT_FEATURES_RES,mem_conn_sm
-	jam LMP_FEATURES_REQ,mem_lmo_opcode2
-	rtn 
-host_create_conn_send_switch:
-	jam LMP_SWITCH_REQ,mem_lmo_opcode2
-	set1 mark_switch_initiated,mark
-	jam CONN_SM_WAIT_CONN_ACCEPT,mem_conn_sm
-	setarg 0x1ff
-	store 2, mem_soft_timer
-	rtn
-host_create_conn_send_conn_req:
-	jam CONN_SM_WAIT_CONN_ACCEPT,mem_conn_sm
-	jam 0xff,mem_soft_timer
-	set0 mark_reconn_recieve_switch,mark
-	jam LMP_HOST_CONNECTION_REQ,mem_lmo_opcode2
-	branch init_lmp_reinit
-host_create_conn_wait_accept:
-	rtnmark1 mark_reconn_recieve_switch
-	fetch 2,mem_soft_timer
-	sub pdata,1,pdata
-	branch host_create_conn_resend,zero
-	store 2, mem_soft_timer
-	rtn
-host_create_conn_resend:
-	jam CONN_SM_SEND_SWITCH,mem_conn_sm
-	rtn
-host_create_conn_waiting:
-	/* we will exit waiting for connection request accepted, features res, or other commands to finish */
-	rtn 
-
-host_create_conn_switch:
-	fetch 1,mem_lmp_conn_state
-	rtnbit0 SENT_SETUP_COMPLETE
-	rtnbit0 RECEIVED_SETUP_COMPLETE
-	fetch 1,mem_connection_options
-	set0 CONNECTION_SWITCH,pdata
-	store 1,mem_connection_options
-	jam LMP_SWITCH_REQ,mem_lmo_opcode2
-	jam CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION,mem_conn_sm
-	rtn 
-
-host_create_conn_send_setup_complete:
-	jam CONN_SM_WAIT_SETUP_COMPLETE,mem_conn_sm	
-	jam LMP_SETUP_COMPLETE,mem_lmo_opcode2
-	rtn 
-
-host_create_conn_wait_setup_complete:
-	fetch 1,mem_lmp_conn_state
-	rtnbit0 RECEIVED_SETUP_COMPLETE
-	jam CONN_SM_STANDBY,mem_conn_sm	
-
-	rtn
-host_create_conn_wait_setup_complete_rtn:	
-	jam CONN_SM_AUTH_PAIR ,mem_conn_sm
-	rtn
-
-host_create_conn_master_detach:
-	fetch 1, mem_soft_timer
-	increase -1,pdata
-	branch host_create_conn_send_detach,blank//detach
-	store 1, mem_soft_timer
-	rtn 
-host_create_conn_send_detach:
-	jam LMP_DETACH,mem_lmo_opcode2
-	jam LOCAL_HOST,mem_disconn_reason_send
-	jam 0,mem_conn_sm
-	rtn
-host_create_conn_auth_pair:
-	/* checking whether or not to do m/s switch */
-	fetch 1,mem_connection_options
-	bbit1 CONNECTION_SWITCH,host_create_conn_switch
-	bbit1 CONNECTION_AUTH,host_create_conn_auth_pair_true
-host_create_conn_sm_done:
-	jam CONN_SM_DONE,mem_conn_sm
-	rtn
-host_create_conn_auth_pair_true:
-	fetch 1,mem_link_key_exists
-	branch host_create_conn_auth_pair_nokey,blank
-	fetch 1,mem_lmp_conn_state
-	rtnbit0 SENT_SETUP_COMPLETE
-	rtnbit0 RECEIVED_SETUP_COMPLETE
-	fetch 4,mem_aurand_send_delay_time
-	arg 100,temp
-	iadd temp,temp
-	copy clkn_bt,pdata
-	isub temp,null
-	nrtn positive
-	branch host_create_conn_auth
-
-
-
-host_create_conn_auth_pair_nokey:
-	jam CONN_SM_PAIRING,mem_conn_sm
-	jam 4,mem_pin_length
-	setarg 0x3030
-	store 2,mem_pin
-	istore 2,contw
-	jam pincode_state_pincode_ready,mem_pincode_state
-	branch host_create_conn_pairing
-
-host_create_conn_auth_pair_wait:
-	rtn
-host_create_conn_encrypt:
-	fetch 1,mem_connection_options
-	bbit1 CONNECTION_ENCRYPT,host_create_conn_encrypt_start
-	jam CONN_SM_DONE,mem_conn_sm
-	rtn 
-
-host_create_conn_encrypt_start:
-	fetch 1,mem_connection_options
-	set0 CONNECTION_ENCRYPT,pdata
-	store 1,mem_connection_options
-	jam LMP_ENCRYPTION_MODE_REQ,mem_lmo_opcode2  
-	rtn
-
-host_create_conn_encrypt_wait:
-	fetch 1, mem_wait_encryption
-	rtn blank
-	jam CONN_SM_STANDBY,mem_conn_sm
-	branch host_create_conn_encrypt_start 
-
-host_create_conn_encrypt_wait_clear:
-	jam CONN_SM_SEND_SETUP_COMPLETE,mem_conn_sm
-	rtn 
-
-host_auth:
-	fetch 1,mem_op
-	bbit1 op_inrand_req,remote_auth
-	call tid_initiate
-	jam LMP_IN_RAND,mem_lmo_opcode2
-	branch cmd_exit
-remote_auth:
-	fetch 1,mem_op
-	set0 op_inrand_req,pdata
-	store 1,mem_op
-	call lmp_accept_inrand
-	call tid_set_reply
-	branch cmd_exit
-
-pincode_reinit:
-	setarg 4
-	store 1,mem_pin_length
-	setarg 0x3030
-	istore 2,contw
-	istore 2,contw
-	rtn
-	
-
Index: DPI_Switch/program/patch.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/patch.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/patch.prog	(nonexistent)
@@ -1,3735 +0,0 @@
-//define DONGLE
-define MOUSE
-define G24
-define BLE
-define CLASSIC_BT
-define MOUSE_SMOOTHER
-//define ADC_ENABLE
-//define P24G_LOG
-//define RF_DEBUG
-define BLE_FAST_CONN_ENABLE
-
-//define DEBUGLOG
-//define DEBUGLOG_CALLBACK
-//define DEBUGLOG_EVENT
-//define DEBUGLOG_CMD
-//define DEBUGLOG_MISC
-//define DEBUGLOG_STATUS
-//define DEBUGLOG_PARSE_LMP
-//define DEBUGLOG_SEND_LMP
-//define DEBUGLOG_CONN_SM
-//define DEBUGLOG_UPPER_SM
-
-
-p_start:
-	branch p_patch_array
-
-// zcode start
-p_zcode:
-
-//only for power on once
-p_wake_from_power:
-ifdef BLE
-	call p_mouse_data_init
-endif
-	fetch 1,mem_tx_power
-	store 1,mem_tx_power_temp
-	call power_ctrl_pac_succ_cnt_init
-	fetch 1,mem_ui_button_timeout
-	store 1,mem_combination_ui_button_count	//combination key timer init
-	call p_mouse_bt_discovery_button_up_init
-	call p_mouse_spi_init
-ifdef MOUSE_SMOOTHER
-	call p_drawing_optima_init
-endif
-	call p_mouse_cb_fuction
-	call p_mouse_wakeup_from_power
-	branch p_mouse_setting_config
-
-p_mouse_cb_fuction:
-ifdef G24
-	setarg p_mouse_g24_package_data
-	store 2,mem_cb_24g_data
-endif	
-ifdef BLE
-	setarg p_mouse_le
-	store 2,mem_cb_le_process
-	setarg p_le_mouse_bb_event_connect_complete
-	store 2,mem_cb_att_write
-endif
-ifdef CLASSIC_BT
-	setarg p_mouse_bt
-	store 2,mem_cb_bt_process
-endif	
-	setarg p_mouse_before_lpm
-	store 2,mem_cb_before_lpm
-	setarg p_mouse_priority_bb_event
-	store 2,mem_cb_bb_event_process
-	setarg p_mouse_idle
-	store 2,mem_cb_idle_process
-	setarg p_mouse_before_hibernate
-	store 2,mem_cb_before_hibernate
-	setarg p_mouse_bb_event_timer
-	store 2,mem_cb_event_timer
-	rtn	
-
-p_mouse_wakeup_from_power:
-	setarg 25
-	store 2,mem_24g_transmit_by_interrupt_exit_count_init
-	ncall p_mouse_24g_transmit_by_interrupt_exit_count_max,wake
-	call p_mouse_init_sunt
-	call p_mouse_sensor_powerdown
-p_mouse_wakeup_no_from_power:
-	fetch 1,mem_reconn_times_init
-	store 1,mem_reconn_times
-	fetch 6,mem_le_lap
-	store 6,mem_le_normal_lap
-	fetch 1,mem_power_on_flag
-	rtnbit1 2
-	//power on
-	branch p_mouse_dpi_config_default
-	
-p_mouse_24g_transmit_by_interrupt_exit_count_max:
-	setarg 375
-	store 2,mem_24g_transmit_by_interrupt_exit_count_init
-	rtn
-
-	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
-	//patch00_0 and patch11_2 are unuseful because of otp
-	beq patch00_1,p_soft_reset_1
-	beq patch00_2,p_soft_reset_2
-	beq patch10_5,p_shutdown_radio
-	beq patch11_1,p_set_freq_tx
-ifdef CLASSIC_BT
-	beq patch03_3,p_page_wait_fhs_reply_ok
-	beq patch04_6,p_role_switch_master
-	beq patch09_0,p_quit_connection_cont
-	beq patch09_2,p_prepare_tx
-	beq patch0a_1,p_slave_conn_recv_packet
- 	beq patch0b_1,p_process_dmh
-	beq patch14_7,p_lpm_dispatch
-	beq patch15_5,p_lpm_set_mult
-	beq patch19_3,app_bt_start_reconnect+3
-	beq patch1d_1,p_mouse_bb_disconnected
-endif	
-	beq patch14_1,p_init_param
-	beq patch16_1,p_lpm_check_wake_lock
-	beq patch16_2,p_g24_dispatch
-	beq patch18_4,p_device_init
-	beq patch1c_3,p_mouse_seting_dpi
-	beq patch1c_6,p_mouse_motion
-	beq patch1d_2,p_mouse_bb_event_discovery_btn
-	beq patch1d_3,p_mouse_start_discovery
-	beq patch1d_4,p_mouse_stop_discovery
-	branch loop
-pf_patch_ext:
-ifdef BLE
-	beq patch27_1,p_le_slave_match
-	beq patch28_3,p_le_next_adv_channel
-	beq patch29_2,p_le_receive_skip
-	beq patch2a_7,p_le_update_param
-	beq patch2b_1,p_le_update_channel_map
-	beq patch2c_3,p_le_prepare_tx
-	beq patch2c_6,p_le_parse
-	beq patch2c_7,p_le_parse_l2cap
-	beq patch2d_2,p_le_adv_not_match
-	beq patch2e_7,p_le_lpm_setmult
-	beq patch3f_2,p_check_51cmd_once_continue
-endif	
-ifdef CLASSIC_BT
-	beq patch20_5,p_hid_rx_process
-	beq patch30_0,p_parse_lmp_accepted
-	beq patch30_2,p_send_lmp
-	beq patch31_0,p_process_conn_sm
-endif
-	beq patch31_4,p_twspi_reset
-	beq patch31_5,p_spid_init
-ifdef DEBUGLOG
-	beq patch2f_6,p_parse_lmp_opcode
-	beq patch37_6,p_process_upper_sm_reconn
-	beq patch3e_6,p_ui_ipc_send_event
-	beq patch3e_7,p_ui_ipc_send_cmd
-endif
-	branch loop
-	
-
-ifdef MOUSE
-p_rssi_signal:
-	copy pdata,rega
-	fetcht 1,mem_rssi_signal_index
-	setarg mem_rssi_signal_buf
-	iadd temp,contw
-	copy rega,pdata
-	istore 1,contw
-	increase 1,temp
-	and_into RSSI_BUF_LEN_SIGNAL,temp
-	storet 1,mem_rssi_signal_index
-	rtn
-
-p_soft_reset_1:
-//	call p_mouse_select_device_button_wakeup_check
-	arg mem_sp_state,contw
-	arg 12,loopcnt
-	call clear_mem
-ifdef BLE
-	call p_mouse_le_txbuff_load
-endif
-	call rfcomm_init
-	call init_lmp
-	ncall lpm_disable_exen_output,wake
-	call ui_init+1
-	branch soft_reset+11
-	
-p_soft_reset_2:
-	call app_lpm_init,wake
-ifdef SIMPLE_PAIRING
-	call publickey_init
-else
-	call ssp_disable
-ifdef SECURE_CONNECTION
-	call publickey_init
-endif
-endif
-	call lpm_recover_clk,wake
-p_sp_cal_loop:
-	call sp_calc_sequence
-	fetch 1,mem_ssp_enable
-	branch main_loop,blank
-	fetch 1,mem_sp_local_key_invalid // simple pairing is not ready
-	branch p_sp_cal_loop,blank
-	branch main_loop
-
-p_init_param:
-	setarg param_le_version
-	store 3,mem_lmp_version
-	setarg param_le_subversion
-	store 2,mem_lmp_version+3
-	branch init_param+12
-
-p_lpm_check_wake_lock:
-	rtnmark1 mark_24g
-	fetch 1,mem_mouse_multi_led_state
-	nbranch disable_blank,blank
-	fetch 1,mem_mouse_multi_led_blink_count
-	nbranch disable_blank,blank
-	fetch 1,mem_mouse_clear_sensor_data_flag
-	branch disable_blank,blank
-	fetch 1,mem_mouse_le_conn_param_reject
-	beq LE_LPM_DISABLE,disable_blank
-ifdef CLASSIC_BT	
-	fetch 2,mem_sdp_remote_cid
-	nbranch disable_blank,blank
-endif
-	fetch 1,mem_mouse_wheel_trigger
-	nbranch disable_blank,blank
-	branch enable_blank
-
-
-ifdef G24
-p_g24_dispatch:
-	rtnmark0 mark_24g
-	fetch 1,mem_24g_conn_sm
-	bbit1 STATE_24G_PAIR,p_g24_pair_dispatch
-	bbit1 STATE_24G_RECONN,p_g24_reconn_dispatch
-	fetch 1,mem_24g_transmit_by_interrupt
-	beq G24_TX_TIMER_INT_ENABLE,p_g24_transmit_by_interrupt
-p_g24_transmit_process:
-	call p_g24_txdata_prep
-	nbranch p_g24_nodata_transmit,user
-	jam 10,mem_24g_search_dongle_delay_count	
-	call p_g24_rf_sta_check
-p_g24_transmit_start:
-	call p_g24_transmit_packet
-	fetch 1,mem_24g_pairing_sm
-	rtnne STATE_24G_PAIRING_SUCCESS
-	call power_ctrl_start
-	call g24_long_sleep_shorter_param_update
-	fetch 1,mem_mouse_multi_led_state
-	beq ON,p_g24_transmit_by_interrupt_enable
-p_g24_short_sleep:	
-	call p_g24_lpm_wait
-	nrtn user
-	call p_clear_wake
-	setarg 60500
-	branch lpm_dispatch_sleep
-
-p_g24_pair_dispatch:
-	jam ZCODE_60,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_g24_reconn_dispatch:
-	jam ZCODE_53,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-g24_long_sleep_shorter_param_update:
-//	fetch 1,mem_config_function_enable
-//	rtnbit1 ENABLE_SENSOR_MOTION_PIN
-	setarg G24_LONG_SLEEP_STEP1
-	store 3,mem_24g_enter_hibernate
-	jam 20,mem_24g_long_sleep_param_update_timer
-	rtn
-
-p_g24_transmit_by_interrupt:
-	call p_g24_timer_check
-	nrtn user
-	call p_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 p_g24_transmit_by_interrupt_exit,zero
-	branch p_g24_transmit_process
-p_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 25
-	store 2,mem_24g_transmit_by_interrupt_exit_count_init
-p_g24_interval_min:
-	jam 0,mem_24g_pac_index
-	fetch 1,mem_24g_interval_min
-p_g24_interval_store:
-	store 1,mem_24g_interval
-	rtn
-p_g24_interval_max:
-	fetch 1,mem_24g_interval_max
-	branch p_g24_interval_store	
-p_g24_interval_calibrate:
-	fetch 1,mem_24g_pac_index
-	increase 1,pdata
-	store 1,mem_24g_pac_index
-	beq 4,p_g24_interval_max
-	beq 5,p_g24_interval_min
-	rtn
-
-p_g24_nodata_transmit:
-	fetch 1,mem_24g_abort_pac
-	call p_g24_send_abort_packet,blank
-	fetch 1,mem_mouse_multi_led_blink_count
-	nrtn blank
-	fetch 1,mem_mouse_multi_led_state
-	rtneq ON
-	fetch 1,mem_24g_transmit_by_interrupt
-	rtneq G24_TX_TIMER_INT_ENABLE
-	call p_g24_search_dongle
-	fetch 1,mem_24g_search_dongle_ch
-	rtnne G24_CH_NUMBER
-	jam 0,mem_24g_search_dongle_ch
-p_g24_long_sleep:
-	call p_g24_lpm_wait
-	nrtn user
-	fetch 3,mem_24g_enter_hibernate
-	call clk2lpo
-	storet 4,mem_sleep_counter
-  	branch lpm_sleep
-
-p_g24_lpm_wait:
-	enable user
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	branch disable_user,blank
-	fetch 1,mem_lpm_mode
-	branch disable_user,blank
-	fetch 1,mem_24g_transmit_by_interrupt
-	beq G24_TX_TIMER_INT_ENABLE,disable_user
-p_mouse_setgpio_lpm:
-	call p_mouse_set_sdio_high
-	call p_clear_wake
-p_mouse_setgpio_hibernate:	
-	call mouse_lpm_before_common
-	call p_flash_ncs_disable
-	hfetch 4,core_gpio_oe0
-	hfetcht 4,core_gpio_pu0
-	ior temp,temp
-	invert temp,temp
-	hstoret 4,core_gpio_pd0
-	hfetch 1,core_gpio_pd1
-	set0 2,pdata
-	hstore 1,core_gpio_pd1
-	hfetch 1,core_gpio_pd2	//flash hold pin gpio22
-	set0 6,pdata
-	hstore 1,core_gpio_pd2
-	branch p_mouse_multi_led_gpio_set_float
-
-p_g24_send_abort_packet:
-	jam 1,mem_24g_abort_pac
-p_g24_send_abort_packet1:	
-	jam 0,mem_24g_rf_hop_ch
-	call p_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 p_g24_txdata_enable_tx
-	call p_g24_transmit_packet
-	branch power_ctrl_start
-
-p_g24_search_dongle_init:
-	setarg 0
-	store 3,mem_24g_search_dongle_action
-	rtn
-
-p_g24_search_dongle:
-	fetch 1,mem_24g_search_dongle_delay_count
-	nrtn blank
-	fetch 1,mem_24g_abort_pac
-	rtn blank
-p_g24_search_dongle_loop:
-	fetch 1,mem_24g_search_dongle_ch
-	increase 1,pdata
-	store 1,mem_24g_search_dongle_ch
-	call p_g24_ch
-	call p_g24_send_abort_packet1
-	fetch 1,mem_24g_search_dongle_ch
-	bne G24_CH_NUMBER,p_g24_search_dongle_loop
-	
-	fetch 1,mem_24g_search_dongle_count
-	increase 1,pdata
-	store 1,mem_24g_search_dongle_count
-	beq G24_CH_POLL_COUNT,p_g24_search_dongle_check
-	rtn
-
-p_g24_search_dongle_check:
-	jam 0,mem_24g_search_dongle_count
-	fetch 1,mem_24g_search_dongle_action
-	rtnbit1 G24_DISCONN_STATE
-	set1 G24_DISCONN_STATE,pdata
-	store 1,mem_24g_search_dongle_action
-	setarg G24_DISCONN_NODATA_TIMER	//3min
-	store 2,mem_mouse_no_data_timer
-	branch p_mouse_sensor_powerdown
-
-p_g24_search_dongle_success:
-	fetch 1,mem_24g_abort_pac
-	branch p_g24_search_dongle_init,blank
-	jam 0,mem_24g_search_dongle_count
-	jam G24_CH_NUMBER,mem_24g_search_dongle_ch
-	fetch 1,mem_24g_search_dongle_action
-	rtnbit0 G24_DISCONN_STATE
-	set0 G24_DISCONN_STATE,pdata
-	store 1,mem_24g_search_dongle_action
-	call mouse_no_data_timer_init
-	branch p_mouse_init_sensor_reset
-
-//p_g24_set_device_addr:
-//	call adc_init_data
-//	fetch 4,mem_2v_adc_vinlpm_data	//adc data from otp
-//	store 4,mem_24g_device_addr	
-//	nrtn blank
-//	fetch 4,mem_lap
-//	store 4,mem_24g_device_addr
-//	rtn
-
-p_g24_transmit_rf_sta_init:
-	jam 1,mem_24g_rf_last_sta
-	jam 0,mem_24g_sync_cnt
-p_g24_transmit_rf_ctrl_clear:	
-	fetch 1,mem_24g_data_type
-	and_into bits_data,pdata
-	store 1,mem_24g_data_type
-	rtn
-	
-p_g24_hop_ch_enable:
-	fetch 1,mem_24g_data_type
-	set1 bit_hop,pdata
-	store 1,mem_24g_data_type
-	//update txpayload
-	store 1,mem_24g_txpayload
-	rtn
-p_g24_hop_ch_disable:
-	fetch 1,mem_24g_data_type
-	set0 bit_hop,pdata
-	store 1,mem_24g_data_type
-	store 1,mem_24g_txpayload
-	call power_ctrl_pac_succ_decrs
-	branch p_g24_ch
-	
-//p_g24_transmit_hop_pac_fail:
-//	call power_ctrl_pac_succ_decrs
-//	fetch 1,mem_24g_rf_work_stage
-//	beq 1,p_g24_transmit_hop_pac_fail_wo_hop
-//	beq 2,p_g24_transmit_hop_pac_fail_hop_stage2
-//	rtn
-//p_g24_transmit_hop_pac_fail_wo_hop:
-//	jam 2,mem_24g_sync_cnt
-//p_g24_transmit_hop_pac_fail_stage1:	
-//	jam 0,mem_24g_hop_pac_retry
-//	jam 0,mem_24g_rf_last_sta
-//	branch p_g24_transmit_rf_ctrl_clear
-
-//p_g24_transmit_hop_pac_fail_hop_stage2:
-//	jam 0,mem_24g_rf_hop_ch
-//	branch p_g24_transmit_hop_pac_fail_stage1
-
-//	
-//p_g24_transmit_pac_fail_hop_stage3:
-//	fetch 2,mem_24g_txfail_cnt
-//	increase 1,pdata
-//	store 2,mem_24g_txfail_cnt
-//	bbit1 10,p_g24_tx_attempt_fail	//1024ms * 8
-//	fetch 1,mem_24g_rf_hop_ch
-//	beq 1,p_g24_rf_hop_fastly
-//	jam 1,mem_24g_rf_hop_ch
-p_g24_rf_hop_attemp_again:
-	fetch 1,mem_24g_rf_hop_ch
-	bne 1,p_g24_transmit_rf_ctrl_clear
-p_g24_rf_hop_fastly:
-	fetch 1,mem_24g_hop_fastly_cnt
-	increase 1,pdata
-	store 1,mem_24g_hop_fastly_cnt
-	beq 4,p_g24_rf_hop_fastly_exit
-	call p_g24_ch
-	jam 2,mem_24g_max_retry
-	branch p_g24_transmit_packet
-
-p_g24_rf_hop_fastly_exit:
-	call power_ctrl_pac_succ_decrs
-	jam 0,mem_24g_hop_fastly_cnt
-	branch p_g24_transmit_rf_ctrl_clear
-
-p_g24_transmit_hop_pac_succ_wo_hop:
-	jam 2,mem_24g_sync_cnt
-p_g24_transmit_hop_pac_succ:
-	jam 1,mem_24g_rf_last_sta
-	jam 0,mem_24g_rf_hop_ch
-	branch p_g24_transmit_rf_ctrl_clear
-
-p_g24_transmit_succ_rf_config:
-	fetch 1,mem_24g_rf_work_stage
-	beq 3,p_g24_transmit_hop_pac_succ
-	fetch 1,mem_24g_data_type
-	isolate0 bit_hop,pdata
-	branch p_g24_transmit_rf_sta_init,true
-	fetch 1,mem_24g_rf_work_stage
-	beq 1,p_g24_transmit_hop_pac_succ_wo_hop
-	beq 2,p_g24_transmit_hop_pac_succ
-	rtn
-
-p_g24_rf_sta_check:
-	fetch 1,mem_24g_pairing_sm
-	rtnne STATE_24G_PAIRING_SUCCESS
-	call p_g24_rf_laststa_synccnt_check
-	ncall p_g24_rf_sync_cnt_check,user2
-	rtn
-
-p_g24_rf_laststa_synccnt_check:
-	disable user2
-	fetch 1,mem_24g_rf_last_sta
-	rtnne 1
-	fetch 1,mem_24g_sync_cnt
-	rtnne 0
-	jam 1,mem_24g_rf_work_stage
-	jam 4,mem_24g_max_retry
-	branch enable_user2
-
-p_g24_rf_sync_cnt_check:
-	fetch 1,mem_24g_sync_cnt
-	branch p_g24_rf_hop_attemp,blank
-	increase -1,pdata
-	store 1,mem_24g_sync_cnt
-	jam 2,mem_24g_rf_work_stage
-	jam 4,mem_24g_max_retry
-p_g24_ch:
-	fetcht 1,mem_24g_current_ch_number
-	fetch 1,mem_24g_addr	
-	and_into 0x03,pdata
-	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
-	setarg mem_24g_ch_map1
-	iadd rega,pdata
-	iadd temp,contr
-	ifetch 1,contr
-	store 1,mem_24g_ch
-	increase 1,temp
-	and_into 3,temp //map size =4
-	storet 1,mem_24g_current_ch_number
-	rtn
-
-p_g24_rf_hop_attemp:
-	jam 3,mem_24g_rf_work_stage
-	fetch 1,mem_24g_rf_hop_ch
-	nbranch p_g24_rf_hop_attemp_again,blank
-	jam 2,mem_24g_max_retry
-	branch p_g24_ch
-
-p_g24_txdata_prep:
-	fetch 1,mem_24g_pairing_sm
-	bne STATE_24G_PAIRING_SUCCESS,p_g24_pairing_sm	
-p_g24_txdata_prep_packeage_data:
-	call p_g24_package_data
-p_g24_txdata_enable_tx:	
-	call p_g24_transmit_prep
-	jam ENSURE_ON_24G,mem_24g_ensure
-	rtn
-
-p_g24_package_data:
-	fetch 2,mem_cb_24g_data
-	call callback_func
-	branch p_g24_accumulate_mouse_data,user
-	fetch 7,mem_24g_txbuf+1	//mouse data
-	rtn blank
-	branch enable_user	// retransmit
-p_g24_accumulate_mouse_data:
-	call p_mouse_data_xy_release
-	jam 0,mem_24g_abort_pac
-	add rega,1,pdata
-	store 1,mem_24g_datalen
-	call p_g24_transmit_rf_ctrl_clear
-	store 1,mem_24g_txbuf
-	ifetcht 1,contw
-	ifetch 1,regb
-	ior temp,pdata
-	istore 1,contw	//key
-	increase 1,regb
-	ifetch 4,regb
-	istore 4,contw	//x,y
-	increase 4,regb
-	arg mem_24g_txbuf+6,contw
-	arg 2,loopcnt
-p_g24_accumulation_loop:
-	ifetch 1,regb
-	ifetcht 1,contw	//wheel,twheel
-	iadd temp,pdata
-	istore 1,contw
-	increase 1,regb
-	loop p_g24_accumulation_loop
-	rtn
-
-p_g24_transmit_packet:
-	jam 0,mem_24g_retry
-p_g24_transmit_loop:
-	arg param_rx_setup,timeup
-	until clkn_rt,meet
-	call p_g24_transmit_receive_ack
-//	fetch 1,mem_24g_no_ack	//tx noack
-//	rtneq no_ack_24g
-	nbranch p_g24_retransmit,sync
-	nbranch p_g24_retransmit,user3
-	call p_g24_search_dongle_success
-	call p_g24_txbuf_clear
-	call p_g24_ackpayload_parse
-	call power_ctrl_pac_succ_incrs
-p_g24_transmit_next_packet:
-	fetch 1,mem_24g_pid
-	increase 1,pdata
-	store 1,mem_24g_pid
-	call p_g24_hop_enable_packet	
-	fetch 1,mem_24g_pairing_sm
-	bne STATE_24G_PAIRING_SUCCESS,p_g24_paring_mode_start
-	call p_g24_transmit_succ_rf_config
-p_g24_transmit_abandon:
-	setarg 0
-	store 4,mem_24g_ensure
-	store 1,mem_24g_hop_pac_retry
-	rtn
-
-p_g24_txbuf_clear:
-	arg 4,loopcnt
-	arg mem_24g_txbuf,contw
-	branch memset0
-
-p_g24_hop_enable_packet:
-	fetch 1,mem_24g_data_type
-	bbit1 bit_hop,p_g24_hop_ch_disable
-	rtn	
-
-p_g24_transmit_receive_ack:
-	disable user3
-	call p_g24_transmit
-	
-ifdef RF_DEBUG
-	call test_gpio_low
-endif
-
-//	fetch 1,mem_24g_no_ack
-//	beq no_ack_24g,p_g24_transmit_no_ack	//tx no ack
-	force 0,radio_ctrl
-	fetch 4,mem_24g_addr
-	iforce access
-	fetcht 1,mem_last_freq
-	call set_freq_rx
-	call rf_rx_enable
-	call p_g24_receive_rxon
-	call p_g24_end_of_packet,user3
-	rtn
-p_g24_transmit_no_ack:
-	call p_g24_end_of_packet
-	branch p_g24_transmit_next_packet
-
-p_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+1
-	bbit1 4,g24_stop_24g_mode
-	fetch 1,mem_24g_pairing_sm
-	bne STATE_24G_PAIRING_SUCCESS,p_g24_tx_paring_retry
-	call p_g24_tx_hop_ch_process
-	branch p_g24_transmit_loop
-	
-p_g24_tx_paring_retry:
-	fetch 1,mem_24g_txfail_cnt
-	rtnne 0xff
-p_g24_tx_attempt_fail:
-	setarg 0
-	store 2,mem_24g_txfail_cnt
-	branch g24_stop_24g_mode
-
-p_g24_tx_fast_hop:
-	call power_ctrl_txpower_incrs
-	call power_ctrl_pac_succ_decrs
-	branch p_g24_ch
-
-p_g24_tx_hop_ch_process:
-	fetch 1,mem_24g_retry
-	sub pdata,11,null
-	nbranch  p_g24_tx_fast_hop,positive		// >= 6+6 hop fast    fail packet count >= 2
-	increase 1,pdata
-	store 1,mem_24g_retry
-	beq 2,p_g24_hop_ch_enable
-	beq 6,p_g24_hop_ch_disable
-	beq 8,p_g24_hop_ch_enable
-	beq 12,p_g24_hop_ch_disable
-	rtn
-
-p_g24_ackpayload_parse:
-	call p_g24_read_len_pid_crc
-	fetch 1,mem_24g_rxdata_length	//ack payload length 
-	rtn blank
-	iforce loopcnt
-	arg mem_24g_rxbuf+2,contr
-	arg mem_24g_rxpayload,contw	//ack payload buffer 
-	branch memcpy
-
-p_g24_pair_init:
-	jam TX_POWER_0DB,mem_tx_power
-	jam 0,mem_24g_pid
-	jam G24_PAIR_CH,mem_24g_ch
-	fetch 4,mem_24g_paring_addr
-p_g24_update_addr_and_synccrc8:	
-	store 4,mem_24g_addr
-//output: 1BYTE crc8
-p_g24_syncword_crc8:
-	arg 0,rega
-	arg 4,loopcnt
-	arg mem_24g_addr,contr
-p_g24_syncword_crc8_loop:
-	ifetch 1,contr
-	iadd rega,rega
-	loop p_g24_syncword_crc8_loop
-	copy rega,pdata
-	store 2,mem_24g_syncword
-	fetch 1,mem_24g_syncword
-	fetcht 1,mem_24g_syncword+1
-	iadd temp,pdata
-	store 1,mem_24g_syncword_crc8
-	rtn
-
-p_g24_start_pairing_sm1:
-	set1 mark_24g,mark
-	call p_g24_pair_init
-p_g24_set_pairing_sm_1:
-	jam STATE_24G_PAIRING_1,mem_24g_pairing_sm
-	rtn
-
-p_g24_pairing_sm:
-	jam ZCODE_90,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_g24_paring_mode_start:
-	call power_ctrl_pac_succ_cnt_init
-p_g24_paring_mode:
-	jam ZCODE_91,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_g24_start_24g_mode:
-	jam ZCODE_40,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_g24_auto_pair_start:
-	jam ZCODE_41,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_g24_check_51cmd_stop_24g:
-	set0 mark_24g,mark
-	jam STATE_24G_STOP,mem_24g_conn_sm
-	call le_disable
-p_mouse_disable_g24_pairing_flag:
-	arg MOSUE_24G_PAIRING_FLAG,queue
-	branch mouse_disable_function_flag
-
-
-p_g24_put_data_in_buff:
-	storet 1,mem_24g_datalen
-	copy temp,loopcnt
-	arg mem_24g_txbuf,contw
-	copy rega,contr
-	branch memcpy
-
-p_g24_read_len_pid_crc:
-//read control
-	fetch 1,mem_24g_rxbuf+1
-	rshift3 pdata,pdata
-	store 1,mem_24g_rxdata_length
-//get crc
-	increase 1,pdata
-	arg mem_24g_rxbuf+1,contr
-	iadd contr,contr
-	ifetch 3,contr
-	store 3,mem_24g_sta_crc
-//read pid
-	fetch 1,mem_24g_rxbuf+1
-	rshift pdata,pdata
-	and pdata,0x03,pdata
-	store 1,mem_24g_sta_pid
-	rtn
-
-
-
-p_g24_transmit_prep:
-ifdef P24G_LOG
-	fetch 1,mem_24g_paccnt
-	increase 1,pdata
-	store 1,mem_24g_paccnt
-endif
-
-// total length
-	fetch 1,mem_24g_datalen
-	increase 2,pdata
-	store 1,mem_24g_txlen
-// data type
-	fetch 1,mem_24g_data_type
-	store 1,mem_24g_txpayload
-//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
-	fetch 1,mem_24g_datalen
-	lshift3 pdata,pdata
-	fetcht 1,mem_24g_pid
-	and temp,0x03,temp
-	lshift temp,temp
-	ior temp,pdata
-	fetcht 1,mem_24g_no_ack
-	iadd temp,pdata
-	istore 1,contw
-//prepare payload data
-	fetch 1,mem_24g_datalen
-	iforce loopcnt
-	arg mem_24g_txbuf,contr
-	branch memcpy
-
-//p_g24_ch:
-//	fetcht 1,mem_24g_current_ch_number
-//	fetch 1,mem_24g_addr	
-//	and_into 0x03,pdata
-//	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
-//	setarg mem_24g_ch_map1
-//	iadd rega,pdata
-//	iadd temp,contr
-//	ifetch 1,contr
-//	store 1,mem_24g_ch
-//	increase 1,temp
-//	and_into 3,temp //map size =4
-//	storet 1,mem_24g_current_ch_number
-//	rtn
-
-//p_g24_ch_map_size:
-//	call p_g24_ch_calc
-//	increase 1,temp
-//	and_into 3,temp //map size =4
-//	rtn
-	
-//p_g24_ch_calc:
-//	fetch 1,mem_24g_addr	
-//	and_into 0x03,pdata
-//	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
-//	setarg mem_24g_ch_map1
-//	iadd rega,pdata
-//	iadd temp,contr
-//	ifetch 1,contr
-//	store 1,mem_24g_ch
-//	rtn
-
-p_g24_prep:
-	disable enable_crc
-	disable enable_white
-	setarg 0x555555
-	iforce crc24_init
-	fetch 1,mem_24g_ch
-	reverse pdata,temp
-	set1 1,temp
-	rshift temp,white_init
-	rtn
-
-//p_g24_receive_packet:
-//	call le_enable
-//	fetch 4,mem_24g_addr
-//	iforce access
-//	call set_sync_on
-//	fetcht 1,mem_24g_ch
-//	call set_freq_rx
-//	setarg param_pll_setup
-//	call sleep
-//	call rf_rx_enable
-p_g24_receive_rxon:
-
-ifdef RF_DEBUG
-	call test_h_l_h
-endif
-
-	call p_g24_prep
-	disable user3
-	enable decode_fec0
-	enable is_rx
-	disable is_tx
-	enable swfine
-	fetch 2,mem_24g_rx_window
-	iforce stop_watch
-	correlate null,timeout
-	nbranch p_g24_sync_timeout,sync
-
-ifdef RF_DEBUG
-	call test_gpio_low
-	call test_gpio_high
-endif
-
-	disable decode_fec0
-	enable decode_fec1
-	enable enable_white
-	enable enable_crc
-	call p_g24_receive_byte
-	store 1,mem_24g_get_syncword_crc8
-	fetcht 1,mem_24g_syncword_crc8
-	isub temp,null
-	nbranch p_g24_end_of_packet,zero
-	call p_g24_receive_byte
-	store 1,mem_24g_rxbuf	//device id
-//	fetch 1,mem_24g_mode
-//	sub pdata,rx_24g,null
-//	branch p_g24_receive_skip,zero
-	fetch 1,mem_24g_rxbuf
-	fetcht 1,mem_24g_data_type
-	icompare bits_data,temp
-	nbranch p_g24_end_of_packet,true
-p_g24_receive_skip:
-	call p_g24_receive_byte
-	istore 1,contw
-	rshift3 pdata,pdata
-	and pdata,0x1f,loopcnt	//max payload: 32bytes
-	branch p_g24rx_nopayload,zero
-p_g24rx_loop:
-	call p_g24_receive_byte
-	istore 1,contw
-	loop p_g24rx_loop
-p_g24rx_nopayload:
-ifdef MOUSE
-	//receive rssi hex
-	copy contw,rega
-	call p_g24_receive_byte
-	store 1,mem_rssi_hex_received
-	copy rega,contw
-endif
-	parse demod,bucket,24
-	enable swfine
-	arg param_sifs,stop_watch	
-	rshift32 pdata,pdata
-	rshift16 pdata,pdata
-	istore 3,contw
-	disable decode_fec1
-ifdef DONGLE
-	call save_rssi
-endif	
-	branch p_g24_end_of_packet,crc_failed
-
-ifdef RF_DEBUG
-	call test_gpio_low
-	call test_gpio_high
-endif
-
-	enable user3
-	fetch 1,mem_last_freq
-	add pdata,0,rega
-	call rf_write_freq
-	disable decode_fec0
-	call set_sync_on
-ifdef DONGLE
-	rtn
-endif
-ifdef MOUSE
-	fetch 1,mem_rssi_hex_received
-	call p_rssi_signal
-endif
-	rtn
-
-p_g24_receive_byte:
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	rtn
-	
-p_g24_sync_timeout:
-//ifdef DONGLE
-//	call p_rssi_noise
-//endif
-//	branch p_g24_end_of_packet
-p_g24_end_of_packet:
-	disable encode_fec1
-	disable decode_fec1
-	call end_of_packet
-ifdef RF_DEBUG
-	call test_gpio_low
-endif
-	rtn
-
-p_g24_set_freq_tx:
-	call set_sync_on
-	fetcht 1,mem_24g_ch
-	branch set_freq_tx
-
-p_g24_transmit:
-	call le_enable
-	fetch 4,mem_24g_addr
-	iforce access
-	call p_g24_prep
-	call p_g24_set_freq_tx
-	set1 TXGFSK,radio_ctrl
-	enable encode_fec0
-	enable is_tx
-	disable is_rx
-
-ifdef RF_DEBUG
-	call test_gpio_high
-endif
-	
-	rshift16 access,pdata
-	rshift8 pdata,pdata
-	rshift4 pdata,pdata
-	inject mod,40
-	disable encode_fec0
-	enable encode_fec1
-	enable enable_white
-	enable enable_crc
-	fetch 1,mem_24g_syncword_crc8
-	inject mod,8
-	fetch 1,mem_24g_txlen
-	iforce loopcnt
-	arg mem_24g_txpayload,contr
-p_g24tr_loop:
-	ifetch 1,contr
-	inject mod,8
-	loop p_g24tr_loop
-ifdef DONGLE
-	fetch 1,mem_rssi_hex
-	inject mod,8
-endif
-
-ifdef P24G_LOG	
-	fetch 1,mem_tx_power
-	inject mod,8
-	fetch 1,mem_rssi_avg_received
-	inject mod,8
-	fetch 1,mem_24g_paccnt
-	inject mod,8
-endif
-
-	enable enable_parity
-	inject mod,24	//crc
-	disable enable_parity
-	until null,tx_clear
-	nop 100
-	disable encode_fec0
-	disable encode_fec1
-	rtn
-
-p_g24_timer_check:
-	call disable_user
-	fetcht 4,mem_24g_tx_btclk
-	copy clkn_bt,pdata
-	isub temp,null
-	ncall g24_timer_timeout,positive
-	copy pdata,regb
-	fetch 4,mem_24g_tx_btclk
-	fetcht 1,mem_24g_interval
-	iadd temp,temp
-	copy regb,pdata
-	isub temp,null
-	nrtn positive
-	set0 28,pdata
-	store 4,mem_24g_tx_btclk
-	branch enable_user
-
-//p_rssi_noise:
-//	call save_rssi
-//	rtn blank
-//	fetcht 1,mem_rssi_noise_index
-//	arg mem_rssi_noise_buffer,rega
-//	call p_rssi_store
-//	storet 1,mem_rssi_noise_index
-//	rtn
-	
-//p_rssi_store:
-//	copy rega,pdata
-//	iadd temp,contw
-//	fetch 1,mem_rssi
-//	istore 1,contw
-//	increase 1,temp
-//ifdef DONGLE
-//	and_into RSSI_BUF_LEN_NOISE,temp
-//endif
-//ifdef MOUSE
-//	and_into RSSI_BUF_LEN_SIGNAL,temp
-//endif
-//	rtn
-p_rssi_average:
-	arg 0,temp
-ifdef DONGLE
-	arg RSSI_BUF_LEN_NOISE+1,loopcnt
-endif
-ifdef MOUSE
-	arg RSSI_BUF_LEN_SIGNAL+1,loopcnt
-endif
-	copy rega,contr
-ifdef DONGLE
-	branch rssi_average_loop
-endif
-ifdef MOUSE
-p_rssi_average_loop:
-	ifetch 1,contr
-	iadd temp,temp
-	loop p_rssi_average_loop
-	rshift3 temp,pdata
-	copy pdata,temp
-	rtnmark0 mark_24g
-	//2BCD
-	div pdata,10
-	call wait_div_end
-	quotient pdata
-	lshift4 pdata,pdata
-	remainder temp
-	ior temp,temp
-	rtn
-endif
-	rtn
-
-endif
-
-p_mouse_before_lpm:
-	rtnmark1 mark_24g
-	call p_mouse_le_txbuff_save
-	call p_mouse_setgpio_lpm
-	fetch 1,mem_context
-	bbit0 state_inconn,p_clear_wake
-	fetch 1,mem_lpm_current_mult
-	nrtn blank
-p_clear_wake:
-	setarg 0
-	store 8,mem_gpio_wakeup_low
-	rtn
-
-
-p_mouse_set_sdio_high:
-	fetch 1,mem_mouse_init_sensor_reset_flag
-	rtn blank
-	branch p_mouse_seting_sensor_type// make sdio high to make 100uA less	
-
-p_device_init:
-ifdef DEBUGLOG
-	call debuglog_init
-ifdef DEBUGLOG_STATUS
-	setarg DEBUGLOG_DTYPE_STATUS
-	store 2,mem_debuglog_datatype
-	setarg STATUS_LPM_WAKE
-	store 2,mem_debuglog_dataval
-	call debuglog_push	
-endif
-endif
-	call app_lpm_mult_enable
-	call enable_authrom
-	branch p_device_wake_from_lpm,wake
-p_device_wake_from_power:
-ifdef DEBUGLOG
-ifdef DEBUGLOG_STATUS
-	setarg DEBUGLOG_DTYPE_STATUS
-	store 2,mem_debuglog_datatype
-	setarg STATUS_CODE_WAKE
-	store 2,mem_debuglog_dataval
-	call debuglog_push
-endif
-endif
-ifdef RF_DEBUG
-	call test_gpio_init
-endif
-	call p_wake_from_power
-//ifdef G24
-//	fetch 1,mem_power_on_flag
-//	bbit1 2,p_mouse_skip_24g_pair
-//	call p_mouse_check_key_gpio
-//	beq MOUSE_LR_BUTTON,p_mouse_24g_pairing_button
-//p_mouse_skip_24g_pair:
-//endif
-p_mouse_check_reconn_target:
-	call p_mouse_tx_power_init
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,p_mouse_connect_24g_mode
-//	beq MODE_DEFAULT_DEVICE,p_mouse_connect_24g_mode
-	fetch 1,mem_xrecord_mode
-ifdef CLASSIC_BT
-	beq REC_3_MODE,p_mouse3_0_check_reconn_target
-endif
-ifdef BLE
-	beq REC_4_MODE,p_mouse4_0_check_reconn_target
-endif
-ifdef BLE_FAST_CONN_ENABLE
-	fetch 1,mem_mouse_fast_conn_flag
-	sub pdata,0xff,null
-	call p_mouse_fast_conn_le_switch_adv,zero
-endif
-	call p_mouse_fast_conn_adv_switch_timer_reinit
-	jam 6,mem_connection_options
-	call p_mouse_check_fast_conn_adv_start
-	branch check_51cmd_start_discovery
-
-p_device_wake_from_lpm:
-	branch p_mouse_spi_init
-
-p_mouse_tx_power_init:
-	fetch 1,mem_tx_power_temp
-	store 1,mem_tx_power
-	rtn
-
-//p_mouse_check_select_device_by_switch:
-//	fetch 1,mem_config_function_enable
-//	branch mouse_cheak_select_device_by_switch+1
-
-ifdef CLASSIC_BT
-p_mouse3_0_check_reconn_target:
-	call p_mouse_mode_bt_device1_multi_led_blink3s
-	fetch 6,mem_hci_plap
-	branch app_bt_start_discovery_short,blank
-	branch mouse3_0_check_reconn_target+3
-endif	
-
-ifdef BLE
-p_mouse4_0_check_reconn_target:
-	jam ZCODE_11,mem_zcode_temp_param0
-	branch p_zcode_entrance
-endif
-
-//ifdef G24
-//p_mouse_24g_pairing_button:
-//	jam ZCODE_42,mem_zcode_temp_param0
-//	branch p_zcode_entrance
-//endif
-
-p_mouse_init_sunt:
-	call p_mouse_spi_init
-	call mouse_spi_sdio_gpio_pollup
-p_mouse_init_sensor:
-	call mouse_read_sensor_id
-	beq P32XX_ID1,p_mouse_init_p32xx_id2_judge
-	beq P3065_ID1,p_mouse_p3065_init_param
-	call mouse_twspi_reset
-	nop 1000
-	branch p_mouse_init_sensor
-
-p_mouse_init_p32xx_id2_judge:
-	call p_mouse_sensor_poweron
-	branch mouse_init_p32xx_id2_judge
-
-p_mouse_p3065_init_param:
-	call p_mouse_sensor_poweron
-	fetch 1,mem_sensor_id2
-	beq P3065_XY_ID2,mouse_p3065xy_init_param
-	jam P3065,mem_config_sensor_type
-	rtn
-
-p_mouse_setting_config:
-	jam ZCODE_80,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-//ncs gpio output high
-p_flash_ncs_disable:
-	fetcht 1,mem_flash_ncs_gpio
-	branch gpio_out_inactive
-
-p_spid_init_flash:
-	jam 0x40,core_spid_ctrl
-	jam 0x0,core_spid_delay
-	hfetch 1,core_gpio_sel1
-	set0 0,pdata
-	set0 1,pdata
-	set1 3,pdata
-	set0 4,pdata
-	hstore 1,core_gpio_sel1
-	setarg 0
-	store 4,mem_spid_tbuf
-	hfetch 1,core_gpio_pd3	//gpio24 can not be set pulldown
-	set0 0,pdata
-	hstore 1,core_gpio_pd3
-	rtn
-
-p_mouse_load_flash_info_check:
-	call p_flash_release_deep_power_down
-	call mouse_load_flash_flag
-	fetch 2,mem_store_flag
-	arg EEPROM_INIT_FLAG,temp
-	isub temp,null
-	branch p_mouse_load_flash_device_info,zero
-	storet 2,mem_store_flag
-	call mouse_ble_init_address
-	fetch 1,mem_config_sensor_motion
-	store 1,mem_mouse_dpi
-	fetch 4,mem_mouse_24g_addr_init
-	store 4,mem_mouse_24g_addr
-	store 4,mem_24g_addr
-p_mouse_store_flash_device_info:
-	call p_flash_release_deep_power_down
-	call p_flash_erase_sector
-	call p_mouse_information_flash_parameters
-	call p_spid_write_flash
-	call p_wait_flash_done
-	//user flash data
-	arg 7,temp
-	arg mem_mouse_flash_start_temp,rega
-	arg MOUSE_USER_DATA_OFFECT,regb
-	fetch 3,mem_flash_base
-	iadd regb,pdata
-	call p_spid_write_flash
-	call p_wait_flash_done
-	call p_flash_deep_power_down
-p_mouse_spi_init:
-	jam 0x76,mem_spi_init_clk
-	branch mouse_spi_init
-
-p_flash_erase_sector:
-	fetch 3,mem_flash_base
-	store 3,mem_spi_write_addr
-	call flash_erase_sector+2
-p_wait_flash_done:
-	setarg 100000
-	call sleep
-	call spid_unlock_flash
-	setarg mem_spid_rbuf
-	hstore 2,core_spid_rxaddr
-	setarg FLASH_READ_SATUS
-	call spid_read_reg
-	bbit1 FLASH_STATUS_WIP,p_wait_flash_done
-	rtn
-
-p_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
-
-p_mouse_information_flash_parameters:
-	setarg mem_mouse_information_end
-	arg mem_mouse_information_start,temp
-	isub temp,temp
-	fetch 3,mem_flash_base
-	arg mem_mouse_information_start,rega
-	rtn
-
-p_mouse_read_flash:
-	call p_flash_release_deep_power_down
-	call p_mouse_information_flash_parameters
-	branch spid_read_flash
-
-p_mouse_load_flash_device_info:
-	call p_mouse_read_flash
-	call p_mouse_load_flash_user_data
-//	call p_mouse_check_select_device_by_switch
-//	call p_mouse_switch_Hwakeup_byPB
-	call mouse_select_reconn_device
-	fetch 4,mem_mouse_24g_addr
-	store 4,mem_24g_addr
-	rtn
-
-p_flash_deep_power_down:
-	jam FLASH_COMMAND_DEEP_POWER_DOWN,mem_temp
-p_spid_write_flash_cmd:
-	call p_spid_init_flash
-	call spid_unlock_flash
-	arg mem_write_flash_head_temp,rega
-	fetcht 1,mem_temp
-	branch spid_write_flash_common
-
-p_flash_release_deep_power_down:
-	jam FLASH_COMMAND_RELEASE_DEEP_POWER_DOWN,mem_temp
-	branch p_spid_write_flash_cmd
-
-ifdef BLE_FAST_CONN_ENABLE
-p_mouse_fast_conn_quit:
-	setarg 0x50
-	store 2,mem_mouse_direct_timer
-	call app_ble_store_reconn_info
-p_mouse_store_fast_conn_flag:
-	jam 0x5a,mem_mouse_fast_conn_flag
-	branch p_mouse_store_flash_device_info
-
-p_mouse_fast_conn_le_switch_adv:
-	jam 1,mem_le_switch_adv_timer
-	jam 1,mem_le_switch_adv_flag
-p_mouse_fast_conn_init:
-	setarg -1
-	store 6,mem_le_lap
-	rtn	
-
-endif
-
-p_mouse_load_flash_user_data:
-	call p_flash_release_deep_power_down
-	arg 7,temp
-	arg mem_mouse_flash_start_temp,rega
-	arg MOUSE_USER_DATA_OFFECT,regb
-	fetch 3,mem_flash_base
-	iadd regb,pdata
-	branch spid_read_flash
-
-//p_mouse_select_device_button_wakeup_check:
-//	jam 0,mem_mouse_select_device_button_wakeup_flag
-//	fetcht 1,mem_config_select_device_button_gpio
-//	call gpio_config_input
-//	fetcht 1,mem_config_select_device_button_gpio
-//	call gpio_get_bit
-//	nrtn true
-//	call delay_10ms
-//	fetcht 1,mem_config_select_device_button_gpio
-//	call gpio_get_bit
-//	nrtn true
-//	jam 1,mem_mouse_select_device_button_wakeup_flag
-//	rtn
-
-//p_mouse_switch_Hwakeup_byPB:
-//	fetch 1,mem_config_function_enable
-//	rtnbit1 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON
-//	fetch 1,mem_mouse_select_device_button_wakeup_flag
-//	rtn blank
-//p_mouse_switch_device:
-//	fetcht 1,mem_device_flag
-//	increase 1,temp
-//	fetch 1,mem_device_number
-//	isub temp,null
-//	ncall mouse_select_device_count_clean,positive
-//	storet 1,mem_device_flag
-//	branch p_mouse_store_flash_device_info
-
-p_mouse_connect_24g_mode:
-	call p_mouse_mode_24g_device_multi_led_blink3s
-p_mouse_start_24g_mode:
-//	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-//	rtnbit0 MOUSE_ENABLE_24G
-	fetch 1,mem_power_on_flag
-	bbit1 2,p_g24_start_24g_mode	//hibernate goto reconn
-	fetch 4,mem_mouse_24g_addr_init	//power on goto pair
-	store 4,mem_24g_addr
-	call p_mouse_store_flash_device_info	
-	branch p_g24_auto_pair_start
-
-ifdef G24
-p_mouse_g24_package_data:
-	call mouse_g24_package_data
-	fetch 2,mem_mouse_z
-	rtn blank
-p_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
-endif	
-	
-ifdef BLE
-p_mouse_le_txbuff_save:
-	arg mem_le_tx_buffer0,contr
-	arg mem_le_tx_buffer0_omemalloc,contw
-	call p_mouse_le_txbuff_copy
-	arg mem_le_tx_buffer1,contr
-	call p_mouse_le_txbuff_copy
-	arg mem_le_tx_buffer2,contr
-	call p_mouse_le_txbuff_copy
-	arg mem_le_tx_buffer3,contr
-p_mouse_le_txbuff_copy:	
-	arg 27,loopcnt
-	branch memcpy
-
-p_mouse_le_txbuff_load:
-	arg mem_le_tx_buffer0_omemalloc,contr
-	arg mem_le_tx_buffer0,contw
-	call p_mouse_le_txbuff_copy
-	arg mem_le_tx_buffer1,contw
-	call p_mouse_le_txbuff_copy
-	arg mem_le_tx_buffer2,contw
-	call p_mouse_le_txbuff_copy
-	arg mem_le_tx_buffer3,contw
-	branch p_mouse_le_txbuff_copy
-
-
-p_mouse_le_current_mult_update:
-	jam 0,mem_lpm_mult
-	jam 30,mem_mouse_le_current_mult_timer
-	rtn
-
-p_mouse_data_xy_release:
-	fetch 1,mem_mouse_long_mult_flag
-	rtnne 1
-	setarg 0
-	store 1,mem_mouse_long_mult_flag
-	store 4,mem_mouse_x
-p_mouse_sensor_poweron:
-	call p_mouse_spi_init
-	setarg 0x8006	// reset to factory settings
-	call twspi_write
-	nop 12000
-p_mouse_dpi_config:
-	fetch 1,mem_mouse_dpi
-	beq 0xff,p_mouse_dpi_config_default
-	branch p_mouse_seting_dpi
-p_mouse_dpi_config_default:
-	fetch 1,mem_config_sensor_motion
-	store 1,mem_mouse_dpi
-	branch p_mouse_seting_dpi
-
-p_mouse_le:
-	call le_fifo_check_nearly_full
-	nrtn blank
-ifdef BLE_FAST_CONN_ENABLE
-	fetch 1,mem_mouse_fast_conn_flag
-	beq 0xff,p_mouse_le_next
-endif	
-	fetch 1,mem_le_connect_status_flag
-	and pdata,0x03,pdata
-	rtnne 0x03
-p_mouse_le_next:	
-	fetch 1,mem_mouse_clear_sensor_data_flag
-	call p_mouse_clear_sensor_data,blank
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
-	call mouse_motion
-	nrtn user
-	call p_mouse_le_current_mult_update
-	call p_mouse_data_xy_release
-	call p_mouse_wheel_trigger
-p_mouse_data_push:
-	arg mem_mouse_key,rega
-	call queue_push
-	call p_mouse_queue_increase,user
-	
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	setarg MISC_LOST_MOUSEDATA
-	store 2,mem_debuglog_dataval
-	nbranch debuglog_push,user
-
-	setarg MISC_PUSH_MOUSEDATA
-	store 2,mem_debuglog_dataval
-	call debuglog_push
-endif
-endif
-	rtn
-
-p_mouse_data_init:
-	jam 7,mem_mouse_data_queue	//data length
-	jam 4,mem_mouse_data_queue+1	//fifo depth
-	setarg mem_mouse_data_queue
-	store 2,mem_queue_ptr
-	branch queue_init
-
-p_mouse_queue_increase:
-	fetch 1,mem_mouse_data_queue_num
-	increase 1,pdata
-	store 1, mem_mouse_data_queue_num
-	rtn
-	
-p_mouse_data_pull:
-	arg mem_mouse_key,rega
-	call queue_pop
-	branch p_mouse_fill_data_le,user
-	rtn
-
-p_mouse_fill_data_le:
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	setarg MISC_PULL_MOUSEDATA
-	store 2,mem_debuglog_dataval
-	call debuglog_push
-
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_mouse_x
-	store 1,mem_debuglog_dataval
-	fetch 1,mem_mouse_y
-	store 1,mem_debuglog_dataval+1
-	call debuglog_push	
-endif
-endif
-	call le_clear_md
-	fetch 1,mem_mouse_data_queue_num
-	sub pdata,1,null
-	ncall le_set_md,positive
-	fetch 1,mem_mouse_data_queue_num
-	rtn blank
-	increase -1,pdata
-	store 1, mem_mouse_data_queue_num
-	branch mouse_fill_data_le
-	
-endif
-
-p_mouse_wheel_trigger:
-	fetch 2,mem_mouse_z
-	rtn blank
-	jam 1,mem_mouse_wheel_trigger
-	jam 10,mem_mouse_wheel_trigger_timer
-	rtn
-
-ifdef CLASSIC_BT
-p_mouse_bt:
-	rtn attempt
-	fetch 1,mem_app_handshake_flag
-	rtn blank
-	call l2cap_malloc_is_fifo_nearly_full
-	nrtn blank
-	fetch 1,mem_mouse_clear_sensor_data_flag
-	call p_mouse_clear_sensor_data,blank
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_send_empty_data
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,mouse_send_empty_data
-	call mouse_motion
-	nrtn user
-	call p_mouse_le_current_mult_update
-	call p_mouse_data_xy_release
-	call p_mouse_wheel_trigger
-	fetch 1,mem_mouse_bt_boot_mode
-	beq 1,p_mouse_send_data_boot_mode	//boot
-	fetch 1,mem_mouse_bt_send_first_package_flag
-	rtn blank
-	branch mouse_send_data	//report
-
-p_mouse_send_data_boot_mode:
-	fetch 1,mem_mouse_key
-	store 1,mem_mouse_bt_boot_data
-	fetch 1,mem_mouse_x
-	istore 1,contw
-	fetch 1,mem_mouse_y
-	istore 1,contw
-	fetch 2,mem_mouse_z
-	istore 2,contw
-
-	arg 7,rega
-	call hid_malloc_tx_buff
-	fetch 2,mem_hid_int_remote_cid
-	istore 2,contw
-	setarg 0x02a1
-	istore 2,contw
-	fetch 5,mem_mouse_bt_boot_data
-	istore 5,contw
-	rtn
-
-p_mouse_clear_sensor_data:
-	jam 1,mem_mouse_clear_sensor_data_flag
-	call le_set_config_more_data
-p_mouse_init_sensor_reset:
-	jam 1,mem_mouse_init_sensor_reset_flag
-	branch p_mouse_init_sunt
-endif
-
-p_mouse_idle:
-	call ui_check_paring_button
-	call p_mouse_dpi_check
-	branch mouse_wheel_check
-
-p_mouse_dpi_check:
-	fetcht 1,mem_dpi_button_gpio
-	call p_gpio_set_input_pd
-	fetcht 1,mem_dpi_button_gpio
-	call gpio_get_bit
-	branch p_mouse_dpi_up,true
-	call p_gpio_set_input_pu
-p_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
-	rtn
-p_mouse_dpi_up:
-	call p_gpio_set_input_pu
-	fetch 1,mem_mouse_dpi_button_state
-	rtneq DPI_BUTTON_STATE_UP
-	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
-	call p_mouse_load_flash_user_data
-	fetch 1,mem_mouse_long_button_select_device
-	branch p_mouse_select_device_and_reset,blank//rtn blank
-	fetch 1,mem_mouse_dpi
-	increase 1,pdata
-	and pdata,0x03,pdata
-	store 1,mem_mouse_dpi
-	increase 2,pdata
-	store 1,mem_mouse_multi_led_blink_count
-	call p_mouse_dpi_multi_led_blink
-	call mouse_seting_dpi
-	branch p_mouse_store_flash_device_info
-
-	
-
-p_mouse_priority_bb_event:
-	copy regc,pdata
-ifdef BLE	
-	beq BT_EVT_LE_CONNECTED,p_mouse_le_bb_event_connected
-	beq BT_EVT_LE_DISCONNECTED,p_mouse_le_bb_disconnected
-	beq BT_EVT_LE_ENC_INFO,p_mouse_le_enc_info
-	beq BT_EVT_LE_START_ENC,p_mouse_le_ll_start_encryt
-	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,p_mouse_le_conn_param_update_rsp_recieved
-endif
-ifdef CLASSIC_BT
-	beq BT_EVT_RECONN_FAILED,p_mouse_bb_event_reconn_failed
-	beq BT_EVT_RECONN_PAGE_TIMEOUT,p_mouse_bb_event_reconn_timeout
-	beq BT_EVT_SWITCH_NOT_ACCEPT,app_bt_role_switch	
-	beq BT_EVT_SNIFF_NOT_ACCEPT,p_mouse_sniff_not_accept
-	beq BT_EVT_BB_CONNECTED,p_mouse_bb_event_connected
-	beq BT_EVT_BB_DISCONNECTED,p_mouse_bb_event_disconnected
-	beq BT_EVT_SWITCH_SUCCESS_MASTER,p_mouse_enter_sniff_check
-endif
-ifdef G24
-	beq BT_EVT_24G_PAIRING_COMPLETE,p_mouse_24g_pairing_complete
-	beq BT_EVT_24G_ATTEMPT_FAIL,p_mouse_24g_attempt_fail
-	beq BT_EVT_24G_ATTEMPT_SUCCESS,p_mouse_24g_attempt_success
-endif
-	branch mouse_priority_bb_event+1
-
-ifdef BLE
-p_mouse_le_bb_event_connected:
-	call p_mouse_init_sensor_reset
-	jam ZCODE_B0,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_mouse_le_bb_disconnected:
-	call p_mouse_sensor_powerdown_check	//sensor power down
-	jam ZCODE_A2,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_mouse_le_enc_info:
-p_app_updata_le_param:
-	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
-	branch ui_ipc_send_cmd
-
-p_mouse_le_ll_start_encryt:
-	jam ZCODE_B3,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_mouse_le_conn_param_update_rsp_recieved:
-	jam ZCODE_A1,mem_zcode_temp_param0
-	branch p_zcode_entrance
-endif
-
-
-ifdef CLASSIC_BT
-p_mouse_bb_event_reconn_timeout:
-p_mouse_bb_event_reconn_failed:
-	jam ZCODE_A3,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_mouse_irtual_cable_unplug:
-	jam ZCODE_70,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_mouse_sniff_not_accept:
-	jam ZCODE_B1,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_mouse_bb_event_connected:
-	call p_mouse_store_eeprom_enable
-	call p_mouse_init_sensor_reset
-ifdef BLE_FAST_CONN_ENABLE
-	setarg 0
-	store 3,mem_le_switch_adv_flag
-	call p_mouse_store_fast_conn_flag
-endif
-	call p_mouse_null_enter_hibernate_disable
-	jam 0,mem_mouse_send_switch_req_timer
-	branch mouse_stop_discovery
-
-p_mouse_bb_event_disconnected:
-	call p_mouse_sensor_powerdown_check	//sensor power down
-	jam ZCODE_B4,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_mouse_enter_sniff_check:
-	jam ZCODE_B2,mem_zcode_temp_param0
-	branch p_zcode_entrance
-endif
-
-ifdef G24
-p_mouse_24g_pairing_complete:
-	call p_mouse_init_sensor_reset
-	jam ZCODE_50,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_mouse_24g_attempt_fail:
-	call p_mouse_sensor_powerdown_check	//sensor power down
-	jam ZCODE_51,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_mouse_24g_attempt_success:
-	call p_mouse_init_sensor_reset
-	jam ZCODE_52,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_mouse_before_hibernate:
-	call p_mouse_sensor_powerdown_check
-	jam ZCODE_A0,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_mouse_sensor_powerdown_check:
-	fetch 1,mem_mouse_init_sensor_reset_flag
-	rtn blank
-	jam 0,mem_mouse_init_sensor_reset_flag
-p_mouse_sensor_powerdown:
-	call p_mouse_init_sunt
-	setarg 0x06
-	call twspi_read
-	or pdata,0x08,pdata
-	lshift8 pdata,pdata
-	add pdata,0x06,pdata
-	branch twspi_write	//make sdio high
-
-
-p_mouse_bb_event_timer:
-ifdef ADC_ENABLE
-	call p_mouse_adc_read
-	call p_mouse_low_voltage_led_timer
-	call p_low_power_nodata_off_led_time_check
-endif
-ifdef BLE_FAST_CONN_ENABLE
-	call p_mouse_le_switch_adv_timer
-endif
-	call p_mouse_multi_led_blink_timer
-	call p_mouse_wheel_trigger_timer
-	call p_mouse_null_enter_hibernate_timer
-	call p_mouse_bt_discovery_check
-	call mouse_check_discovery_timeout_timer
-	call p_mouse_select_device
-//	call p_mouse_check_select_device_by_switch_timer
-ifdef G24	
-	call p_mouse_g24_long_sleep_param_update_timer
-	call p_mouse_g24_search_dongle_delay_timer
-	call p_mouse_g24_stop_mode_timeout_timer
-endif
-ifdef BLE	
-	call p_mouse_check_direct_timeout_timer
-	call p_mouse_le_enable_att_list_timer
-	call p_le_send_smp_security_request_timer
-	call p_mouse_le_current_mult_update_timer	
-endif
-ifdef CLASSIC_BT
-	call p_mouse_send_switch_req_timer
-	call mouse_check_hid_handshake_timer
-	call p_mouse_bt_check_sniff_req_timeout_timer
-endif
-	branch mouse_check_no_data_timeout_timer
-
-
-//p_mouse_check_select_device_by_switch_timer:
-//	fetch 1,mem_config_function_enable
-//	rtnbit0 ENABLE_SELECT_DEVICE_BY_SWITCH
-//	fetcht 1,mem_config_select_device_button_gpio
-//	call gpio_get_bit
-//	branch p_mouse_cheak_select_24gdevice,true
-//p_mouse_select_btdevice:
-//	fetch 1,mem_device_flag
-//	bne MODE_BT_DEVICE1,soft_reset_chip
-//	rtn
-//p_mouse_cheak_select_24gdevice:
-//	fetch 1,mem_device_flag
-//	bne MODE_24G_DEVICE,soft_reset_chip
-//	rtn
-
-ifdef BLE_FAST_CONN_ENABLE
-p_mouse_le_switch_adv_timer:
-	fetch 1,mem_le_switch_adv_flag
-	rtn blank
-	arg mem_le_switch_adv_timer,regc
-	arg p_mouse_le_switch_adv,regb
-	branch timer_single_step
-p_mouse_le_switch_adv:
-	jam 1,mem_le_switch_adv_timer
-	fetch 1,mem_le_switch_adv_count
-	increase 1,pdata
-	and_into 1,pdata
-	store 1,mem_le_switch_adv_count
-	beq 0,p_mouse_check_fast_conn_adv_start1
-p_check_51cmd_adv:
-ifdef BLE_FAST_CONN_ENABLE
-	fetch 6,mem_le_normal_lap
-	store 6,mem_le_lap
-endif
-	call p_mouse_le_adv_data_update
-	branch check_51cmd_adv
-
-p_mouse_le_adv_data_update:
-	jam 0x1f,mem_le_adv_data_len
-	jam 0x1f,mem_le_scan_data_len
-	call p_mouse_store_eeprom_enable
-	arg mem_le_adv_swift_pair,contr
-p_le_adv_data_update:
-	arg mem_le_adv_data+11,contw
-	arg 19,loopcnt
-	call memcpy
-	branch le_modified_name_adv
-
-p_mouse_store_eeprom_enable:
-	arg MOUSE_STORE_EEPROM_FLAG,queue
-	branch mouse_enable_function_flag
-
-p_mouse_check_fast_conn_adv_start:
-p_mouse_check_fast_conn_adv_start1:
-	jam 0,mem_le_adv_data_len
-	jam 0,mem_le_scan_data_len
-	arg MOUSE_STORE_EEPROM_FLAG,queue
-	call mouse_disable_function_flag
-	branch p_mouse_fast_conn_init
-endif
-
-
-ifdef G24
-p_mouse_g24_long_sleep_param_update_timer:
-	arg mem_24g_long_sleep_param_update_timer,regc
-	arg p_mouse_g24_long_sleep_normal_param,regb
-	branch timer_single_step
-p_mouse_g24_long_sleep_normal_param:
-	setarg G24_LONG_SLEEP_STEP2
-	store 3,mem_24g_enter_hibernate
-p_mouse_long_mult_flag_enable:	
-	jam 1,mem_mouse_long_mult_flag
-	rtn
-
-p_mouse_g24_search_dongle_delay_timer:
-	arg mem_24g_search_dongle_delay_count,regc
-	arg 0,regb
-	branch timer_single_step
-
-p_mouse_g24_stop_mode_timeout_timer:
-	arg mem_24g_stop_g24_mode_timeout,regc
-	arg p_mouse_g24_stop_mode_timeout,regb
-	branch timer_single_step_2B
-p_mouse_g24_stop_mode_timeout:
-	jam 1,mem_24g_stop_g24_mode
-	rtn
-endif
-
-p_mouse_select_device:
-p_mouse_select_device_by_button:
-	fetcht 1,mem_config_select_device_button_gpio
-	call p_gpio_set_input_pd
-	fetcht 1,mem_config_select_device_button_gpio
-	call gpio_get_bit
-	nbranch p_mouse_select_device_button_down,true
-p_mouse_select_device_button_up:
-	call p_gpio_set_input_pu
-	fetch 1,mem_mouse_button_select_device_timer_init
-	store 1,mem_mouse_button_select_device_count
-	fetch 1,mem_select_device_button_statue
-	rtneq DPI_BUTTON_STATE_UP
-	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue
-	arg MOUSE_LONG_BT_BUTTON_FLAG,queue
-	branch mouse_disable_function_flag
-p_mouse_select_device_button_down:
-	call p_gpio_set_input_pu
-	call p_mouse_button_select_device_timer
-	call p_mouse_null_enter_hibernate_check
-	fetch 1,mem_select_device_button_statue
-	rtneq DPI_BUTTON_STATE_DOWN
-	jam DPI_BUTTON_STATE_DOWN,mem_select_device_button_statue
-	rtn
-
-p_mouse_button_select_device_timer:
-	arg mem_mouse_button_select_device_count,regc
-	arg p_mouse_long_button_select_device,regb
-	branch timer_single_step
-p_mouse_long_button_select_device:	
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_LONG_BT_BUTTON_FLAG
-	call p_mouse_long_button_state_clear	
-p_mouse_ready_reconnection_by_button:
-	jam 0,mem_link_key_exists
-//	call p_mouse_switch_device
-	fetcht 1,mem_device_flag
-	increase 1,temp
-	fetch 1,mem_device_number
-	isub temp,null
-	ncall mouse_select_device_count_clean,positive
-	storet 1,mem_device_flag
-	call p_mouse_store_flash_device_info
-	branch mouse_ready_reconnection_by_button+8
-
-p_mouse_select_device_and_reset:
-	jam 0xff,mem_mouse_long_button_select_device
-	branch p_mouse_store_flash_device_info
-p_mouse_long_button_state_clear:
-	jam 0,mem_mouse_long_button_select_device
-	branch p_mouse_store_flash_device_info
-
-ifdef CLASSIC_BT
-p_mouse_send_switch_req_timer:
-	arg mem_mouse_send_switch_req_timer,regc
-	arg host_create_conn_resend,regb
-	branch timer_single_step
-
-p_mouse_bt_check_sniff_req_timeout_timer:
-	arg mem_mouse_bt_send_first_package_timer,regc
-	arg p_mouse_bt_send_first_package,regb
-	branch timer_single_step
-p_mouse_bt_send_first_package:
-	jam 1,mem_mouse_bt_send_first_package_flag
-	rtn
-endif
-
-
-ifdef BLE
-p_mouse_check_direct_timeout_timer:
-	arg mem_mouse_direct_timer,regc
-	arg p_mouse_check_direct_timeout,regb
-	branch timer_single_step_2B
-p_mouse_check_direct_timeout:
-	jam 1,mem_mouse_le_not_tx_disconn
-	call p_mouse_long_button_bt_normal_discovery
-	branch p_mouse_bt_discovery_button_up_init
-
-p_mouse_le_enable_att_list_timer:
-	arg mem_le_start_encrypt_timer,regc
-	arg mouse_le_write_enable,regb
-	branch timer_single_step
-
-p_le_send_smp_security_request_timer:
-	fetch 1,mem_mouse_le_bb_connected_flag
-	rtn blank
-	arg mem_mouse_send_secutiry_request_timer,regc
-	arg p_le_pairing_sm_start_check,regb
-	branch timer_single_step
-p_le_pairing_sm_start_check:
-	fetch 1,mem_le_send_security_request_flag
-	nrtn blank
-	branch le_pairing_sm_start
-
-p_mouse_le_current_mult_update_timer:
-	arg mem_mouse_le_current_mult_timer,regc
-	arg p_mouse_le_current_mult_reinit,regb
-	branch timer_single_step
-p_mouse_le_current_mult_reinit:
-	fetch 1,mem_lpm_mult_init
-	store 1,mem_lpm_mult
-	branch p_mouse_long_mult_flag_enable
-endif
-
-p_mouse_wheel_trigger_timer:
-	arg mem_mouse_wheel_trigger_timer,regc
-	arg p_mouse_wheel_trigger_disable,regb
-	branch timer_single_step
-p_mouse_wheel_trigger_disable:
-	jam 0,mem_mouse_wheel_trigger
-	rtn
-
-p_mouse_bt_discovery_check:
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-p_mouse_bt_discovery_commbination_key:
-//	fetch 1,mem_mouse_dpi_button_state
-//	branch p_mouse_bt_discovery_commbination_key_down,blank
-	call p_mouse_check_key_gpio
-	beq MOUSE_LMR_BUTTON,p_mouse_bt_discovery_commbination_key_down
-p_mouse_bt_discovery_commbination_key_up:
-	fetch 1,mem_ui_button_timeout
-	store 1,mem_combination_ui_button_count	//combination key timer init
-	fetch 1,mem_bt_discovey_button_statue
-	rtneq DPI_BUTTON_STATE_UP
-	jam DPI_BUTTON_STATE_UP,mem_bt_discovey_button_statue
-p_mouse_bt_discovery_button_up_init:	
-	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
-	call mouse_disable_function_flag
-	branch mouse_bt_discovery_button_down_disable
-p_mouse_bt_discovery_commbination_key_down:
-	jam 40,mem_mouse_null_enter_hibernate_timer
-	call p_mouse_bt_discovery_timer
-	branch mouse_bt_discovery_commbination_key_down+1
-
-p_mouse_bt_discovery_timer:
-	arg mem_combination_ui_button_count,regc
-	arg p_mouse_long_button_bt_discovery,regb
-	branch timer_single_step
-p_mouse_long_button_bt_discovery:
-	call p_mouse_long_button_state_clear
-	fetch 1,mem_le_switch_adv_flag
-	nbranch p_mouse_fast_conn_adv_switch_timer_reinit,blank
-p_mouse_long_button_bt_normal_discovery:
-	call p_mouse_le_adv_data_update
-	fetch 2,mem_ui_state_map
-	isolate1 UI_STATE_BT_RECONNECT,pdata
-	call mouse_cancel_reconnect,true
-	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
-	call mouse_enable_function_flag
-	branch mouse_long_button_bt_discovry
-
-p_mouse_fast_conn_adv_switch_timer_reinit:
-	fetch 2,mem_discovery_timeout
-	store 2,mem_mouse_discovery_timer
-	rtn
-
-p_mouse_null_enter_hibernate_timer:
-	fetch 1,mem_mouse_null_enter_hibernate_flag
-	rtn blank
-	arg mem_mouse_null_enter_hibernate_timer,regc
-	arg p_mouse_null_enter_hibernate,regb
-	branch timer_single_step
-p_mouse_null_enter_hibernate:
-	jam 0,mem_mouse_null_enter_hibernate_flag
-	branch app_enter_hibernate
-p_mouse_null_enter_hibernate_check:
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_CONNECTED
-	rtnbit1 UI_STATE_BT_CONNECTED
-	rtnmark1 mark_24g
-p_mouse_null_enter_hibernate_enable:	//ble never connected
-	jam 1,mem_mouse_null_enter_hibernate_flag
-	jam 40,mem_mouse_null_enter_hibernate_timer	//lmr 3s
-	rtn
-p_mouse_null_enter_hibernate_disable:	//ble never connected
-	jam 0,mem_mouse_null_enter_hibernate_flag
-	jam 0,mem_mouse_null_enter_hibernate_timer	//lmr 3s
-	rtn
-
-p_mouse_multi_led_blink_timer:
-	fetch 1,mem_mouse_multi_led_blink_enable
-	rtn blank
-	branch p_mouse_multi_led_type_blink
-//	fetch 1,mem_mouse_multi_led_type
-//	beq MULTI_LED_BLINK,p_mouse_multi_led_type_blink
-//p_mouse_multi_led_type_on:
-//	call p_mouse_multi_led_on
-//	fetch 1,mem_mouse_multi_led_on_timer
-//	increase 1,pdata
-//	store 1,mem_mouse_multi_led_on_timer
-//	fetcht 1,mem_mouse_multi_led_on_timer_init
-//	isub temp,null
-//	call p_mouse_multi_led_off_poweron2s,zero
-//	rtn
-//p_mouse_multi_led_off_poweron2s:
-//	jam 0,mem_mouse_multi_led_on_poweron2s_flag
-//	call p_mouse_multi_led_off
-//	fetch 1,mem_device_flag
-//	rtnne MODE_BT_DEVICE1
-//	fetch 2,mem_ui_state_map
-//	rtnbit1 UI_STATE_BLE_CONNECTED
-//	rtnbit1 UI_STATE_BT_CONNECTED
-//	fetch 1,mem_mouse_fast_conn_flag
-//	bne 0xff,p_mouse_bt_reconn_multi_led_blink
-p_mouse_discovery_multi_led_blink:
-	jam 0,mem_mouse_multi_led_blink_poweron3s_flag
-	jam 5,mem_mouse_multi_led_blink_timer_init	//300ms
-//p_mouse_discovery_multi_led_blink1:
-	jam 0,mem_mouse_multi_led_blink_count_limited
-	jam 1,mem_mouse_multi_led_blink_count//0 will clear mem_mouse_multi_led_blink_enable/mem_mouse_multi_led_type
-p_mouse_multi_led_blink_enable:
-	jam 5,mem_mouse_multi_led_blink_timer
-	jam ON,mem_mouse_multi_led_blink_enable
-	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
-	rtn
-
-//p_mouse_bt_reconn_multi_led_blink:
-//	jam 1,mem_mouse_multi_led_blink_timer_init	//500ms
-//	branch p_mouse_discovery_multi_led_blink1
-
-p_mouse_multi_led_type_blink:
-	arg mem_mouse_multi_led_blink_timer,regc
-	arg p_mouse_multi_led_type_blink_timeout,regb
-	branch timer_single_step
-p_mouse_multi_led_type_blink_timeout:
-	fetch 1,mem_mouse_multi_led_blink_timer_init
-	store 1,mem_mouse_multi_led_blink_timer
-	fetch 1,mem_mouse_multi_led_blink_count_limited
-	branch p_mouse_multi_led_blink_count_no_limited,blank
-	fetch 1,mem_mouse_multi_led_blink_count
-	branch p_mouse_multi_led_blink_off,blank
-	increase -1,pdata
-	store 1,mem_mouse_multi_led_blink_count
-p_mouse_multi_led_blink_count_no_limited:
-	fetch 1,mem_mouse_multi_led_state
-	beq ON,p_mouse_multi_led_off
-p_mouse_multi_led_on:
-	jam ON,mem_mouse_multi_led_state
-	fetch 1,mem_device_flag
-	beq MODE_BT_DEVICE1,p_mouse_multi_down_led_on
-p_mouse_multi_up_led_on:
-	fetcht 1,mem_mouse_multi_led_gpio
-	set1 gpio_active_bit,temp
-	call gpio_config_output
-	fetcht 1,mem_mouse_multi_led_gpio
-	branch gpio_out_active
-p_mouse_multi_down_led_on:
-	fetcht 1,mem_mouse_multi_led_gpio
-	call gpio_config_output
-	fetcht 1,mem_mouse_multi_led_gpio
-	branch gpio_out_inactive
-
-p_mouse_discovey_led_blink_off:
-//	fetch 1,mem_mouse_multi_led_on_timer
-//	nrtn blank
-//	fetch 1,mem_mouse_multi_led_on_poweron2s_flag
-//	nrtn blank
-	fetch 1,mem_mouse_multi_led_blink_poweron3s_flag
-	nrtn blank
-p_mouse_multi_led_blink_off:
-	setarg 0
-	store 3,mem_mouse_multi_led_blink_timer
-p_mouse_multi_led_off:
-	fetch 1,mem_mouse_multi_led_blink_count
-	nbranch p_mouse_multi_led_off_wait_blink_over,blank
-	jam 0,mem_mouse_multi_led_blink_poweron3s_flag
-	jam 0,mem_mouse_multi_led_blink_enable
-	jam 0,mem_mouse_multi_led_type
-p_mouse_multi_led_off_wait_blink_over:
-	jam 0,mem_mouse_multi_led_on_timer
-	jam OFF,mem_mouse_multi_led_state
-p_mouse_multi_led_gpio_set_float:
-//	fetch 1,mem_mouse_multi_led_gpio
-//	rtneq UI_BUTTON_GPIO_DISABLE
-	fetcht 1,mem_mouse_multi_led_gpio
-p_mouse_set_gpio_suspend:
-	set0 gpio_active_bit,temp
-	branch gpio_set_high_impedance
-
-//p_mouse_mode_bt_device1_multi_led_on:
-//p_mouse_mode_24g_device_multi_led_on:
-//	jam 1,mem_mouse_multi_led_on_poweron2s_flag
-//	jam ON,mem_mouse_multi_led_blink_enable
-//	jam MULTI_LED_ON,mem_mouse_multi_led_type
-//	jam 0,mem_mouse_multi_led_on_timer
-//	rtn
-p_mouse_mode_bt_device1_multi_led_blink3s:
-	jam 1,mem_mouse_multi_led_blink_poweron3s_flag
-p_mouse_mode_24g_device_multi_led_blink3s:
-	jam 27,mem_mouse_multi_led_blink_count
-	jam 1,mem_mouse_multi_led_blink_timer_init	//100ms
-	branch p_mouse_dpi_multi_led_blink+1
-p_mouse_dpi_multi_led_blink:
-	jam 5,mem_mouse_multi_led_blink_timer_init	//300ms
-	jam 1,mem_mouse_multi_led_blink_count_limited
-	branch p_mouse_multi_led_blink_enable
-	
-
-ifdef ADC_ENABLE
-p_mouse_adc_read:
-//	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-//	rtnbit0 MOUSE_ENABLE_ADC
-	fetch 1,mem_adc_read_timer
-	increase 1,pdata
-	store 1,mem_adc_read_timer
-	sub pdata,10,null              //1s read adc
-	rtn positive
-	
-	call adc_init_data
-	
-	jam 0,mem_adc_read_timer
-	call adc_set_mode
-	call vdd_calculate_by_mode
-	store 2,mem_mouse_vdd_now_vol
-	arg mem_mouse_vdd_calculate_set,rega
-	call p_adc_bat_percent_lowpower_out
-	fetch 1,mem_adc_power_flag
-	bbit1 1,app_enter_hibernate
-	bbit0 0,p_mouse_adc_no_low_voltage
-	jam 1,mem_mouse_adc_last_low_voltage_flag
-	branch mouse_adc_low_voltage
-
-p_mouse_adc_no_low_voltage:
-	call mouse_adc_no_low_voltage
-	fetch 1,mem_mouse_adc_last_low_voltage_flag
-	rtn blank
-	jam 0,mem_mouse_adc_last_low_voltage_flag
-p_mouse_adc_low_volatage_led_off:
-	fetch 1,mem_config_low_voltage_alarm_gpio
-	store 1,mem_mouse_struct_led_gpio
-	branch mouse_led_on
-
-//p_adc_set_mode:
-//	fetch 1,mem_adc_config_flag
-//	beq ADC_CONFIG_GPIO,p_adc_check_gpio
-//	branch adc_set_mode+1
-//p_adc_check_gpio:
-//	hfetch 1,core_gpio_pu0	//gpio5 pull up disable
-//	set0 5,pdata
-//	hstore 1,core_gpio_pu0
-//	call adc_check_gpio
-//	hfetch 1,core_gpio_pu0	//gpio5 pull up enable
-//	set1 5,pdata
-//	hstore 1,core_gpio_pu0
-//	rtn
-
-p_adc_bat_percent_lowpower_out:
-	ifetch 8,rega
-	store 8,mem_pdatatemp
-	fetcht 2,mem_pdatatemp+2	//shutdown voltage 0.9v
-	fetch 2,mem_pdatatemp+6		//now voltage
-	isub temp,null
-	nbranch adc_set_no_power_flag,positive
-	fetcht 2,mem_pdatatemp+4	//low voltage 1.0v
-	isub temp,null
-	nbranch adc_set_low_power_flag,positive
-p_adc_clear_low_power_flag:
-	fetch 1,mem_adc_power_flag
-	set0 0,pdata
-	store 1,mem_adc_power_flag
-	rtn
-
-p_mouse_low_voltage_led_timer:
-	fetch 1,mem_low_power_led_blink_flag
-	nrtn blank	//15s no action
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_ADV
-	rtnbit1 UI_STATE_BT_DISCOVERY
-	fetch 1,mem_config_low_voltage_alarm_gpio
-	store 1,mem_mouse_struct_led_gpio
-
-	setarg G24_LONG_SLEEP_STEP2
-	store 3,mem_24g_enter_hibernate
-	
-	fetch 1,mem_adc_low_volatage_led_timer_count
-	pincrease 1
-	store 1,mem_adc_low_volatage_led_timer_count
-	beq 5,mouse_low_voltage_led_on
-	sub pdata,10,null
-	nbranch p_mouse_adc_low_volatage_led_timer_count_clean,positive
-	rtn
-p_mouse_adc_low_volatage_led_timer_count_clean:
-	jam 1,mem_adc_low_volatage_led_timer_count
-	branch mouse_low_voltage_led_off
-
-p_low_power_no_data_off_led_time:
-	fetch 1,mem_low_power_check_count
-	increase 1,pdata
-	store 1,mem_low_power_check_count
-	sub pdata,LOW_VOLTAGE_LED_COUNT,null
-	rtn positive
-p_low_power_no_data_off_led_time_nolimited:
-	jam 0,mem_low_power_led_blink_flag
-	jam 0x96,mem_low_power_no_data_off_led_time
-	rtn
-p_low_power_nodata_off_led_time_check:
-	arg mem_low_power_no_data_off_led_time,regc
-	arg p_mouse_check_low_power_nodata_timeout,regb
-	branch timer_single_step
-p_mouse_check_low_power_nodata_timeout:
-	setarg G24_LONG_SLEEP_STEP3
-	store 3,mem_24g_enter_hibernate
-	jam 1,mem_low_power_led_blink_flag
-	branch p_mouse_adc_low_volatage_led_off
-endif
-
-p_mouse_seting_dpi:
-p_mouse_seting_sensor_type:
-	fetch 1,mem_config_sensor_type
-//	beq P3212,p_mouse_seting_3212_dpi
-	beq P3065_XY,p_mouse_seting_3065XY_dpi
-	beq MX8650,p_mouse_seting_3065XY_dpi
-	beq KA8,p_mouse_seting_ka8_dpi
-p_mouse_seting_3205_dpi:
-	fetch 1,mem_mouse_dpi
-	sub pdata,MOUSE_DPI_LEVEL2,null
-	call p_mouse_3205_dpi_recount,zero
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL1,mouse_set_cpi1
-	beq MOUSE_DPI_LEVEL4,mouse_set_cpi4
-	branch mouse_set_cpi3
-p_mouse_3205_dpi_recount:
-	jam MOUSE_DPI_LEVEL3,mem_mouse_dpi
-	rtn
-
-p_mouse_seting_3065XY_dpi:
-	fetch 1,mem_mouse_dpi
-	sub pdata,MOUSE_DPI_LEVEL2,null
-	call p_mouse_3205_dpi_recount,zero
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL1,p_mouse_3065xy_set_cpi1
-	beq MOUSE_DPI_LEVEL4,p_mouse_3065xy_set_cpi4
-p_mouse_3065xy_set_cpi3:
-	fetch 1,mem_3065xy_dpi_3
-p_mouse_dpi_store:
-	store 1,mem_mouse_cpi_count
-	branch mouse_p3205_dpi+3
-p_mouse_3065xy_set_cpi1:
-	fetch 1,mem_3065xy_dpi_1
-	branch p_mouse_dpi_store
-p_mouse_3065xy_set_cpi4:
-	fetch 1,mem_3065xy_dpi_4
-	branch p_mouse_dpi_store
-
-p_mouse_seting_ka8_dpi:
-	fetch 1,mem_mouse_dpi
-	call p_mouse_3205_dpi_recount,blank
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL2,mouse_set_cpi2			//800
-	beq MOUSE_DPI_LEVEL4,p_mouse_ka8_set_cpi3		//1600
-	branch mouse_set_cpi4							//1200
-p_mouse_ka8_set_cpi3:	
-	setarg 5
-	branch mouse_p3205_dpi
-	
-//p_mouse_seting_3212_dpi:
-//	fetch 1,mem_mouse_dpi
-//	sub pdata,MOUSE_DPI_LEVEL2,null
-//	call p_mouse_3205_dpi_recount,zero
-//	fetch 1,mem_mouse_dpi
-//	beq MOUSE_DPI_LEVEL1,mouse_set_p3212_cpi1
-//	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi4
-//	branch mouse_set_p3212_cpi3
-
-
-p_mouse_motion:
-	disable user
-	setarg 0
-	store 6,mem_mouse_x
-	call p_mouse_cheak_sensor_data
-	call mouse_zwheel
-	call mouse_t_zwheel
-	call p_mouse_key
-ifdef MOUSE_SMOOTHER	
-	nbranch p_drawing_optima_init,user
-	call p_drawing_optima
-else
-	nrtn user
-endif
-	branch mouse_motion+9
-
-p_mouse_key:
-	call p_mouse_check_key_gpio
-	branch mouse_key+1
-
-p_mouse_check_key_gpio:
-	arg 0,rega
-	call p_mouse_check_lkey_gpio
-//	call p_mouse_check_rkey_gpio
-//	call p_mouse_check_mkey_gpio
-//	call p_mouse_check_skey_gpio
-	branch mouse_check_key_gpio_output
-//p_mouse_check_skey_gpio:
-//	fetch 1,mem_bk_button_gpio
-//	rtneq GPIO_DISABLE
-//	call p_mouse_check_bk_key_gpio
-//	branch p_mouse_check_fw_key_gpio
-	
-p_mouse_check_lkey_gpio:
-	fetcht 1,mem_lbutton_gpio
-	call p_gpio_set_input_pu
-	fetcht 1,mem_lbutton_gpio
-	call gpio_get_bit
-	setflag true,0,rega			//true = 1,input low level
-//	rtn
-p_mouse_check_rkey_gpio:
-	fetcht 1,mem_rbutton_gpio
-	call p_gpio_set_input_pu
-	fetcht 1,mem_rbutton_gpio
-	call gpio_get_bit
-	setflag true,1,rega			//true = 1,input low level
-//	rtn
-p_mouse_check_mkey_gpio:
-	fetcht 1,mem_mbutton_gpio
-	call p_gpio_set_input_pu
-	fetcht 1,mem_mbutton_gpio
-	call gpio_get_bit
-	setflag true,2,rega			//true = 1,input low level
-	rtn
-//p_mouse_check_bk_key_gpio:
-//	fetcht 1,mem_bk_button_gpio
-//	call p_gpio_set_input_pd
-//	fetcht 1,mem_bk_button_gpio
-//	call gpio_get_bit
-//	nsetflag true,3,rega
-//	branch p_gpio_set_input_pu
-//p_mouse_check_fw_key_gpio:
-//	fetcht 1,mem_fw_button_gpio
-//	call p_gpio_set_input_pd
-//	fetcht 1,mem_fw_button_gpio
-//	call gpio_get_bit
-//	nsetflag true,4,rega
-p_gpio_set_input_pu:
-	set1 gpio_active_bit,temp
-	arg core_gpio_pu0,contw
-	call gpio_set_bit
-	set0 gpio_active_bit,temp
-	branch p_gpio_set_input_pd4
-	
-p_gpio_set_input_pd:
-	set0 gpio_active_bit,temp
-	arg core_gpio_pu0,contw
-	call gpio_set_bit
-	set1 gpio_active_bit,temp
-p_gpio_set_input_pd4:	
-	arg core_gpio_pd0,contw
-	branch gpio_set_high_impedance+4
-
-
-p_mouse_cheak_sensor_data:
-//	fetch 1,mem_config_sensor_type
-//	beq P3212,p_mouse_p3212_sensor_motion
-p_mouse_p32xx_sensor_motion:
-	call mouse_clear_sensor_data
-	disable user
-	branch mouse_p32xx_sensor_motion_2
-//p_mouse_p3212_sensor_motion:
-//	call mouse_clear_sensor_data
-//	branch mouse_p3212_sensor_motion_1
-	
-p_mouse_bb_event_discovery_btn:
-	call p_mouse_null_enter_hibernate_disable
-ifdef G24	
-	isolate1 mark_24g,mark
-	call p_g24_check_51cmd_stop_24g,true
-endif
-	jam 0,mem_mouse_send_blank_timer
-	fetch 1,mem_mouse_le_not_tx_disconn
-	call mouse_disconnect,blank
-	setarg 0
-	store 2,mem_mouse_no_data_timer
-	branch mouse_bb_event_discovery_btn+3
-
-ifdef BLE
-p_mouse_start_discovery:
-	jam ZCODE_30,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_mouse_stop_discovery:
-	call p_mouse_discovey_led_blink_off
-	jam 1,mem_mouse_init_sensor_reset_flag
-	call p_mouse_sensor_poweron		//clear sensor data,confirm the motion pin high
-	branch mouse_stop_discovery+1
-
-ifdef BLE
-p_le_slave_match:
-	fetch 1,mem_le_md_count
-	pincrease 1
-	store 1,mem_le_md_count
-	beq LE_MD_MAX_COUNT,le_slave_cont
-	call le_acknowledge
-	call le_prepare_tx
-	call power_ctrl_start
-	branch le_slave_match+7
-
-p_le_next_adv_channel:
-	fetch 1,mem_le_ch_mapped
-	increase 1,pdata
-	store 1,mem_le_ch_mapped
-	rtnne 40
-	jam 37,mem_le_ch_mapped
-	rtn
-
-p_le_receive_skip:
-	call save_rssi
-	call p_rssi_signal
-	branch le_receive_skip+2
-
-p_le_update_param:
-	jam ZCODE_20,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_le_update_channel_map:
-	jam ZCODE_21,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_le_prepare_tx:
-	fetch 1,mem_le_arq
-	bbit1 wak,p_le_prepare_tx_wak
-	call power_ctrl_pac_succ_incrs	
-	fetch 1,mem_empty_count
-	nbranch p_le_send_empyt,blank
-	fetch 1,mem_le_state 
-	bbit0 lestate_encryption,p_le_tx_4
-	fetch 1,mem_le_rxbuf+1  
-	branch p_le_tx_4,blank  
-	branch le_send_empty      // send empty data when got non empty packet
-p_le_send_empyt:
-	fetch 1,mem_empty_count
-	increase -1,pdata
-	store 1,mem_empty_count
-	branch le_send_empty
-p_le_tx_4:	
-	fetch 1,mem_le_pairing_state
-	bne FLAG_LE_PAIRING_AFTER_AUTH,p_in_le_tx_4
-	jam 3,mem_empty_count
-p_in_le_tx_4:
-	call le_fifo_check_nearly_full
-	call p_mouse_data_pull,blank
-	branch le_prepare_tx+4
-
-p_le_prepare_tx_wak:
-	call p_le_check_tx_retransmit_setmd
-	branch p_le_power_ctrl_pac_succ_decrs
-
-p_le_check_tx_retransmit_setmd:
-	fetch 1,mem_le_connect_status_flag
-	and pdata,0x03,pdata
-	rtnne 0x03
-	fetch 1,mem_mouse_data_queue_num
-	rtn blank
-	fetch 1,mem_le_txlen
-	rtn blank
-	fetch 1,mem_le_txheader
-	set1 md,pdata
-	store 1,mem_le_txheader
-	call le_set_md
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	setarg MISC_LE_RETRANSMIT_MD
-	store 2,mem_debuglog_dataval
-	call debuglog_push	
-endif
-endif
-	rtn
-
-	
-	
-p_le_power_ctrl_pac_succ_decrs:
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	setarg MISC_LE_RETRANSMIT
-	store 2,mem_debuglog_dataval
-	call debuglog_push	
-endif
-endif
-	branch power_ctrl_pac_succ_decrs
-
-p_mouse_le_reconn_write_enable_timer_reinit:
-	fetch 1,mem_mouse_le_reconnect_flag
-	rtn blank
-	fetch 1,mem_le_connect_status_flag
-	and pdata,0x03,pdata
-	rtneq 0x03
-	jam 2,mem_le_start_encrypt_timer
-	rtn
-
-p_le_parse:
-	rtnmark1 mark_old_packet
-	call le_fifo_check_full
-	nrtn blank
-	fetch 1,mem_le_rxbuf
-	and pdata,0x3,pdata
-	store 1,mem_le_packet_llid
-	ifetch 1,contr
-	and pdata,0x1f,pdata
-	store 1,mem_le_packet_size
-	rtn blank							//empty rtn
-	copy contr,pdata
-	store 2,mem_le_payload_ptr
-	fetch 1,mem_le_packet_llid
-	beq LLID_LE_LL,p_le_parse_ll
-	branch le_parse_l2cap
-p_le_parse_ll:
-	fetch 1,mem_le_rxbuf+2
-	beq LL_CONNECTION_UPDATE_REQ,p_le_parse_connection_update_req
-	beq LL_CHANNEL_MAP_REQ,p_le_parse_channel_map_req
-	branch le_parse_ll+1
-p_le_parse_connection_update_req:
-	call le_parse_connection_update_req
-	fetch 1,mem_mouse_le_updata_not_accepted_flag
-	rtn blank
-//ipad not accepted updata, need reinit mem_lpm_mult.   mem_lpm_mult = LL_CONNECTION_UPDATE_REQ latency = 04	
-p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset:	
-	fetch 1,mem_le_new_connslavelatency
-	store 1,mem_lpm_mult
-	store 1,mem_lpm_mult_init
-	rtn		
-p_le_parse_channel_map_req:
-	ifetch 5,contr
-	store 5,mem_le_new_map
-	ifetch 2,contr
-	store 2,mem_le_instant
-	branch le_parse_channel_map_req+7	
-	
-p_le_parse_l2cap:
-	ifetch 2,contr
-	beq LE_L2CAP_CID_ATT,p_le_parse_att
-	beq LE_L2CAP_CID_SMP,p_le_parse_smp
-	branch le_parse_l2cap+11
-p_le_parse_att:
-	call store_contr
-	call p_mouse_le_reconn_write_enable_timer_reinit
-	call get_contr
-	ifetch 3,contr
-	store 3,mem_le_att_opcode
-	beq ATTOP_READ_BY_GROUP_TYPE_REQUEST,p_le_parse_att_read_by_group_type_request
-	rshift8 pdata,temp
-	sub temp,0x24,null
-	branch p_le_parse_att1,positive
-	arg mem_mouse_le_uuid_sup,temp
-	storet 2,mem_ui_le_uuid_table
-	call le_parse_att+2
-	setarg 0x8e7a
-	store 2,mem_ui_le_uuid_table
-	rtn
-
-p_le_parse_att_read_by_group_type_request:
-	call le_parse_att_read_by_group_type_request
-	call le_fifo_get_last_tx_ptr
-	increase 7,contr
-	ifetch 1,contr
-	rtnne ATTOP_READ_BY_GROUP_TYPE_RESPONSE
-	increase 5,contr
-	ifetch 2,contr
-	arg UUID_SERVICE_HIDS,temp
-	isub temp,null
-	nrtn zero
-	increase -4,contr
-	setarg 0x2b
-	istore 2,contr
-	rtn
-
-p_le_parse_att1:
-	beq ATTOP_READ_REQUEST,p_le_parse_att_read_request
-	branch le_parse_att+2
-p_le_parse_att_read_request:
-	fetcht 2,mem_le_att_handle
-	fetch 1,mem_le_configuration
-	bbit1 BIT_BLE_READ_AUTH,p_le_send_att_read_response_check_auth
-p_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 le_send_att_read_response
-p_le_send_att_read_response_check_auth:
-	fetch 2,mem_le_pairing_handle
-	isub temp,null
-	nbranch p_le_send_att_read_response,zero
-	call le_check_encrypt_state
-	nbranch p_le_send_att_read_response,user
-	branch le_send_att_read_response_check_auth+5
-	
-p_le_parse_smp:
-	ifetch 1,contr
-	beq SMP_PAIRING_REQUEST,p_le_parse_smp_pairing_request
-	beq SMP_PAIRING_FAILED,p_le_parse_smp_pairing_failed
-	branch le_parse_smp+1
-p_le_parse_smp_pairing_request:
-	jam 1,mem_le_send_security_request_flag
-	branch le_parse_smp_pairing_request	
-p_le_parse_smp_pairing_failed:
-	jam ZCODE_82,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_le_adv_not_match:
-	fetch 1,mem_le_ch_mapped
-	bne 39,le_adv_loop
-	call p_le_adv_random_delay
-	arg le_adv_interval_timer,queue
-	fetch 2,mem_le_adv_interval
-	branch timer_init
-p_le_adv_random_delay:
-	random pdata
-	arg 0x1ff,temp
-	iand temp,pdata
-	add pdata,250,pdata
-	branch delay
-
-p_le_lpm_setmult:
-	disable wake
-	branch p_le_lpm_set_mult_attempt,attempt
-	nbranch le_lpm_lost,match
-p_le_lpm_set_mult_attempt:
-	call lpm_match
-	fetch 2,mem_rx_window_sniff
-	store 2,mem_le_receive_window
-	fetch 1,mem_le_connect_status_flag
-	bne 3,lpm_mult_short
-	branch le_lpm_set_mult_attempt+3
-
-p_le_mouse_bb_event_connect_complete:
-	fetch 1,mem_mouse_le_reconnect_flag
-	nrtn blank
-	fetch 1,mem_le_att_handle
-	sub pdata,26,pdata
-	nrtn zero
-	jam 0,mem_le_start_encrypt_timer
-	branch mouse_le_write_enable
-endif
-
-p_twspi_reset:
-	hfetch 1,core_gpio_out3
-	and_into 0xfd,pdata
-	hstore 1,core_gpio_out3
-	hfetcht 1,core_gpio_oe3
-	or_into 0x2,temp
-	hstoret 1,core_gpio_oe3
-	call twspi_disable
-	and_into 0xfd,temp
-	nop 13
-	call p_twspi_enable
-	hstoret 1,core_gpio_oe3
-	rtn
-
-p_spid_init:
-	call spid_init_common
-p_twspi_enable:
-	hfetch 1,core_gpio_sel1
-	set1 0,pdata
-	set0 1,pdata
-	set0 3,pdata
-	hstore 1,core_gpio_sel1  //enable spi
-	rtn
-
-
-ifdef CLASSIC_BT
-p_page_wait_fhs_reply_ok:
-	jam ZCODE_00,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_role_switch_master:
-	call role_switch_check
-	nrtn user
-p_wait_role_switch_anchor:
-	disable user
-	jam param_newconnto,mem_newconnto_counter
-	set0 mark_fhs_already_good,mark
-	set0 mark_role_switch_receive_fhs,mark
-p_roles_waitfhs_loop:
-	call rf_setup_time_master_slot
-	call master_recv_packet
-	bmark1 mark_fhs_already_good,p_roles_replyto_fhs
-	call new_conn_timeout
-	nbranch p_roles_waitfhs_loop,blank
-	bmark1 mark_role_switch_receive_fhs,p_roles_replyto_fhs1
-	branch role_switch_fail_master
-	
-p_roles_replyto_fhs:
-	call rf_setup_time_slave_slot
-	arg type_id,type
-	call master_send_packet
-	set1 mark_role_switch_receive_fhs,mark
-	set0 mark_fhs_already_good,mark
-	force 1,am_addr	/* process_fhs will update am_addr, so slave will not receive fhs succeffully sometimes */
-	jam 2,mem_newconnto_counter
-	branch p_roles_waitfhs_loop
-
-p_roles_replyto_fhs1:
-	fetch 4,mem_clke_bt		//wait for 2 fhs,need 2.5ms
-	pincrease 8
-	store 4,mem_clke_bt
-	branch roles_replyto_fhs+4
-
-p_process_dmh:
-	bmark1 mark_first_packet,end_of_packet
-	branch process_dmh+1
-
-p_quit_connection_cont:
-	call app_disconn_reason_collect_bt
-	call sniff_exit
-	jam BT_EVT_BB_DISCONNECTED,mem_fifo_temp
-	call ui_ipc_send_event
-	call init_lmp_work
-	call l2cap_init_work
-	branch quit_connection_cont+8
-
-p_prepare_tx:
-	fetch 1,mem_state
-	isolate1 state_inconn,pdata
-	call p_bt_power_ctrl,true
-	branch prepare_tx+1
-p_bt_power_ctrl:
-	fetch 1,mem_arq
-	isolate1 wack,pdata
-	call power_ctrl_pac_succ_decrs,true
-	ncall power_ctrl_pac_succ_incrs,true
-	branch power_ctrl_start
-
-p_slave_conn_recv_packet:
-	call slave_receive_master_slot
-	nbranch shutdown_radio,sync
-	call save_rssi
-	call p_rssi_signal
-	branch slave_conn_recv_packet+4
-
-p_lpm_dispatch:
-	rtnmark1 mark_24g
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	rtn blank
-	fetch 1,mem_lpm_mode
-	rtn blank
-	fetch 1,mem_ssp_enable
-	branch p_lpm_dispatch_next,blank
-	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
-	rtn blank
-p_lpm_dispatch_next:
-	fetch 1,mem_le_sc_calc
-	nrtn blank
-	call lpm_check_wake_lock
-	nrtn blank
-	fetch 1,mem_context
-	compare 3,pdata,0x7							//sco won't sleep 
-	nbranch lpm_dispatch_unconn,true
-	fetch 2,mem_context + coffset_tsniff	//role switch 
-	arg 0xffff,temp
-	isub temp,null
-	rtn zero
-	branch lpm_dispatch_next+9
-
-p_lpm_set_mult:
-	disable wake
-	fetch 1,mem_state
-	rtnbit0 state_insniff
-	nbranch lpm_not_match,match
-	call lpm_match
-	fetch 2,mem_rx_window_sniff
-	store 2,mem_rx_window
-	fetch 1,mem_arq
-	bbit1 wack,lpm_mult_short
-	bmark0 mark_lpm_mult_enable,lpm_mult_short
-	call l2cap_malloc_is_fifo_empty
-	nbranch lpm_mult_short,blank
-	call p_lpm_set_attemp_timeout,blank	//fixed bt3.0 connected high current
-	branch lpm_set_mult+13	
-p_lpm_set_attemp_timeout:
-	jam 1,mem_current_sniff_attempt
-	jam 0,mem_current_sniff_timeout
-	rtn	
-
-p_mouse_bb_disconnected:
-	jam ZCODE_01,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_hid_rx_process:
-	jam ZCODE_02,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_parse_lmp_accepted:
-	fetch 1,mem_rxbuf+1
-	store 1,mem_lmi_accepted_opcode
-	beq LMP_SWITCH_REQ,p_parse_lmp_accepted_switch
-	branch parse_lmp_accepted+3
-p_parse_lmp_accepted_switch:
-	call parse_lmp_accepted_switch
-	jam 1,mem_bt_rcvd_switch_req_accept
-	fetch 1,mem_bt_send_lmp_setup_complete
-	rtn blank
-	jam 2,mem_bt_send_lmp_setup_complete
-	rtn
-
-p_send_lmp:
-	jam ZCODE_10,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_process_conn_sm:
-	call lmo_fifo_check
-	nrtn blank
-p_process_conn_sm_continue:
-	fetch 1,mem_conn_sm
-	rtn blank
-ifdef DEBUGLOG
-ifdef DEBUGLOG_CONN_SM
-	call pdata_push
-	setarg DEBUGLOG_DTYPE_CONN_SM
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_conn_sm
-	store 2,mem_debuglog_dataval
-	call pdata_pull
-	call debuglog_push	
-endif
-endif
-	beq CONN_SM_SEND_CONN_REQ, p_host_create_conn_send_conn_req
-	beq CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION,p_host_creat_conn_wait_switch
-	branch process_conn_sm_continue+2
-
-p_host_creat_conn_wait_switch:
-	fetch 1,mem_switch_flag
-	rtneq SWITCH_FLAG_INIT
-	beq SWITCH_FLAG_ACCEPT,p_host_create_conn_switch_accept
-	branch host_creat_conn_wait_switch+3
-p_host_create_conn_switch_accept:
-	rtn master
-p_host_create_conn_auth_pair:
-	/* checking whether or not to do m/s switch */
-	fetch 1,mem_connection_options
-	bbit1 CONNECTION_AUTH,p_host_create_conn_auth_pair_true
-	branch host_create_conn_auth_pair+1
-p_host_create_conn_auth_pair_true:
-	fetch 1,mem_bt_send_lmp_setup_complete
-	beq 1,host_create_conn_auth_pair_true
-	//sumsung a5100 patch
-	fetch 1,mem_link_key_exists
-	branch host_create_conn_auth_pair_nokey,blank
-	fetch 1,mem_lmp_conn_state
-	rtnbit0 SENT_SETUP_COMPLETE
-	rtnbit0 RECEIVED_SETUP_COMPLETE
-	fetch 1,mem_bt_send_max_slot_req_accept_after_switch
-	rtn blank
-	jam 0,mem_bt_send_max_slot_req_accept_after_switch	
-	fetch 4,mem_aurand_send_delay_time
-	arg 20,temp
-	iadd temp,temp
-	copy clkn_bt,pdata
-	isub temp,null
-	nbranch p_bt_send_max_slot_req_accept_after_switch_wait,positive
-	branch host_create_conn_auth
-
-p_bt_send_max_slot_req_accept_after_switch_wait:
-	jam 1,mem_bt_send_max_slot_req_accept_after_switch
-	rtn
-
-p_host_create_conn_send_conn_req:
-	jam 20,mem_mouse_send_switch_req_timer
-	branch host_create_conn_send_conn_req
-
-	
-ifdef DEBUGLOG
-p_parse_lmp_opcode:
-ifdef DEBUGLOG
-ifdef DEBUGLOG_PARSE_LMP
-	setarg DEBUGLOG_DTYPE_PARSE_LMP
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_rxbuf+1
-	store 1,mem_debuglog_dataval+1 
-	fetch 1,mem_lmi_opcode2
-	store 2,mem_debuglog_dataval
-	call debuglog_push 
-endif
-endif
-	branch parse_lmp+21
-
-p_process_upper_sm_reconn:
-	fetch 1,mem_upper_sm_reconn
-	rtn blank
-ifdef DEBUGLOG
-ifdef DEBUGLOG_UPPER_SM
-	call pdata_push
-	setarg DEBUGLOG_DTYPE_UPPER_SM
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_upper_sm_reconn
-	store 2,mem_debuglog_dataval
-	call pdata_pull
-	call debuglog_push	
-endif
-endif
-	branch process_upper_sm_reconn+3
-
-endif	
-
-endif
-	
-ifdef DEBUGLOG
-p_ui_ipc_send_event:
-ifdef DEBUGLOG
-ifdef DEBUGLOG_EVENT
-	call pdata_push
-	setarg DEBUGLOG_DTYPE_EVENT
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_fifo_temp
-	store 2,mem_debuglog_dataval
-	call pdata_pull
-	call debuglog_push	
-endif
-endif
-	branch ui_ipc_send_event+1
-
-p_ui_ipc_send_cmd:
-ifdef DEBUGLOG
-ifdef DEBUGLOG_CMD
-	call pdata_push
-	setarg DEBUGLOG_DTYPE_CMD
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_fifo_temp
-	store 2,mem_debuglog_dataval
-	call pdata_pull
-	call debuglog_push
-endif
-endif
-	branch ui_ipc_send_cmd+1
-endif
-
-p_check_51cmd_once_continue:
-	call lmo_fifo_check
-	nbranch check_51cmd_restore,blank  //process this cmd next time while lmo fifo is full
-	fetch 1,mem_fifo_temp
-	bmark0 mark_context,check_51cmd_check_idle
-	beq BT_CMD_STORE_RECONN_INFO_LE,p_flash_store_le_reconn_info
-	beq BT_CMD_STORE_RECONN_INFO_BT,p_flash_store_bd_reconn_info
-	beq BT_CMD_LE_UPDATE_CONN,p_check_51cmd_ble_update_connect_param
-	branch check_51cmd_once_continue+2
-
-p_flash_store_le_reconn_info:
-	jam REC_4_MODE,mem_record_bt_mode
-	fetch 6,mem_le_plap
-	branch p_flash_store_reconn_info
-p_flash_store_bd_reconn_info:
-	jam REC_3_MODE,mem_record_bt_mode
-	fetch 6,mem_plap	
-p_flash_store_reconn_info:
-	store 6,mem_temp_lap
-p_mouse_store_remote_bdaddr:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_STORE_EEPROM_FLAG
-	arg MOUSE_STORE_EEPROM_FLAG,queue
-	call mouse_disable_function_flag
-	call mouse_check_device_addr
-p_mouse_unplug_clean_bdaddr:
-	call mouse_before_store_reconn_info
-	branch p_mouse_store_flash_device_info
-
-p_check_51cmd_ble_update_connect_param:
-	call le_fifo_check_full
-	nrtn blank
-	branch le_l2cap_tx_update_req
-
-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
-
-power_ctrl_start:
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_ADV
-	rtnbit1 UI_STATE_BT_RECONNECT
-	rtnbit1 UI_STATE_BT_DISCOVERY
-	
-	arg mem_rssi_signal_buf,rega
-	call p_rssi_average
-	storet 1,mem_rssi_avg_received
-
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	store 1,mem_debuglog_dataval
-	fetch 1,mem_rssi_avg_received
-	store 1,mem_debuglog_dataval+1
-	call debuglog_push	
-endif
-endif
-	setarg RSSI_DIS_MAX_24G
-	bmark1 mark_24g,power_ctrl_start_next
-	setarg RSSI_DIS_MAX_BLE
-power_ctrl_start_next:	
-	isub temp,null
-	nbranch power_ctrl_txpower_incrs_force,positive
-
-	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
-	rtnne 32
-	jam 0,mem_power_ctrl_pac_succ_cnt
-power_ctrl_txpower_decrs:
-	fetcht 1,mem_rssi_avg_received
-	setarg RSSI_DIS_MIN_24G
-	bmark1 mark_24g,power_ctrl_txpower_decrs_next
-	setarg RSSI_DIS_MIN_BLE	
-power_ctrl_txpower_decrs_next:	
-	isub temp,null
-	nrtn positive
-	fetch 1,mem_power_ctrl_level
-	beq 0,power_ctrl_decrs_level0
-	increase -1,pdata
-	store 1,mem_power_ctrl_level
-	beq 0,power_ctrl_decrs_level0
-power_ctrl_decrs_level1:
-power_ctrl_incrs_level1:	//0dBm
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	setarg MISC_TXPOWER_1
-	store 2,mem_debuglog_dataval
-	call debuglog_push
-endif
-endif
-	jam TX_POWER_0DB,mem_tx_power
-	rtn
-
-power_ctrl_txpower_incrs_force:
-	jam 0,mem_power_ctrl_pac_succ_cnt
-power_ctrl_txpower_incrs:
-	fetch 1,mem_power_ctrl_level
-	beq 2,power_ctrl_incrs_level2
-	increase 1,pdata
-	store 1,mem_power_ctrl_level
-	beq 1,power_ctrl_incrs_level1
-power_ctrl_incrs_level2:	//+6dBm
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	setarg MISC_TXPOWER_2
-	store 2,mem_debuglog_dataval
-	call debuglog_push
-endif
-endif
-	jam TX_POWER_5DB,mem_tx_power
-	rtn
-	
-power_ctrl_decrs_level0: //-5dBm
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	setarg MISC_TXPOWER_0
-	store 2,mem_debuglog_dataval
-	call debuglog_push
-endif
-endif
-	jam TX_POWER_f5DB,mem_tx_power
-	rtn
-
-endif
-
-p_set_freq_tx:
-	storet 1,mem_last_freq
-	add temp,0,rega			/* index to frequency */
-	call rf_write_freq
-	setarg param_pll_setup	//128us
-	call sleep
-p_rf_tx_enable:
-	jam 0x1,rfen_adc
-	jam 0x3c,rfen_rx
-	jam 0xe0,rfen_tx
-	nop 10 /* wait LDOs to turn ON*/
-	jam 0x01, rfen_mdm
-	jam 0x3d, rfen_mdm
-	nop 10 /* wait tx blocks to turn ON*/
-	jam 0xb7,rfen_sn
-	nop 10 /* wait tx lo buffer to turn ON*/
-	jam 0x7d, rfen_mdm
-	fetch 1,mem_tx_power
-//	beq TX_POWER_0DB,p_set_tx_power_0db
-//	beq TX_POWER_3DB,p_set_tx_power_3db	
-	beq TX_POWER_5DB,p_set_tx_power_5db
-//	beq TX_POWER_f3DB,p_set_tx_power_f3db	
-	beq TX_POWER_f5DB,p_set_tx_power_f5db
-	beq TX_POWER_PAIR,p_set_tx_power_pair
-//	branch p_set_tx_power_0db
-p_set_tx_power_0db:
-	call p_rx_low_sens
-//	jam 0xba,0x894b
-	jam 0xd0,0x8955
-	jam 0xe0,0x8956
-//	jam 0x88,0x8957
-	jam 0x6c,0x8958
-//	jam 0x10,0x8959
-	branch set_tx_power_0db
-
-//p_set_tx_power_3db:
-//	call p_rx_high_sens
-//	jam 0xba,0x894b
-//	jam 0xd0,0x8955
-//	jam 0xe0,0x8956
-//	jam 0x88,0x8957
-//	jam 0x3c,0x8958
-//	jam 0x10,0x8959
-//	branch set_tx_power_3db
-	
-p_set_tx_power_5db:
-	call p_rx_high_sens
-//	jam 0xba,0x894b
-	jam 0xd0,0x8955
-	jam 0xe0,0x8956
-//	jam 0x88,0x8957
-	jam 0x3c,0x8958
-//	jam 0x10,0x8959
-	branch set_tx_power_5db
-
-//p_set_tx_power_f3db:
-//	call p_rx_low_sens
-//	jam 0xba,0x894b
-//	jam 0xd0,0x8955
-//	jam 0xc0,0x8956
-//	jam 0x88,0x8957
-//	jam 0x6c,0x8958
-//	jam 0x10,0x8959
-//	branch set_tx_power_f3db
-	
-p_set_tx_power_f5db:
-	call p_rx_low_sens
-//	jam 0xba,0x894b
-	jam 0xd0,0x8955
-	jam 0xc0,0x8956
-//	jam 0x88,0x8957
-	jam 0x6c,0x8958
-//	jam 0x10,0x8959
-	branch set_tx_power_f5db
-
-p_rx_low_sens:
-	jam 0x5b,0x894c
-	jam 0x96,0x894d
-	jam 0x2c,0x894e 
-	jam 0x46,0x894f
-	rtn
-
-p_rx_high_sens:
-	jam 0xfb,0x894c 
-	jam 0xef,0x894d
-	jam 0xec,0x894e 
-	jam 0x5e,0x894f
-	rtn
-		
-p_set_tx_power_pair:	//50-100cm distance
-//	jam 0xba,0x894b
- 	jam 0xc2,0x8956
- 	jam 0xd0,0x8955
-	rtn	
-
-p_shutdown_radio:
-	force 8,radio_ctrl
-	branch shutdown_radio+1
-
-// input : mem_zcode_temp_param0 ---- zocde number(0~1f)
-p_zcode_entrance:
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_zcode_temp_param0
-	store 1,mem_debuglog_dataval
-	fetch 1,mem_zcode_current_number
-	istore 1,contw
-	call debuglog_push	
-endif
-endif
-	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 3,mem_xip_flash_offset
-	isub temp,pdata
-
-	fetcht 3,mem_flash_start_addr
-	iadd temp,pdata
-	increase -5,pdata
-	store 3,mem_flash_address
-	call p_flash_release_deep_power_down
-p_zcode_read_loop:
-	fetch 3,mem_flash_address
-	arg ZCODE_BUFF_SIZE,temp
-	arg mem_zcode_buff,rega
-	call spid_read_flash
-	fetch 4,mem_zcode_buff
-	branch p_zcode_read_loop,blank	//sometimes we will lost p_start,read flash again
-	call p_mouse_spi_init
-
-	setarg mem_zcode_buff
-	store 2,mem_patch_ptr
-	jam ZCODE_CODE_SIZE,mem_patch_len
-	call load_ucode
-	setarg 0
-	store 4,mem_patch_ptr
-p_zcode_run:
-	fetch 1,mem_zcode_temp_param0
-	branch p_zcode
-
-ifdef DEBUGLOG 
-pdata_push:
-	store 8,mem_debuglog_pdata
-	rtn
-
-pdata_pull:
-	fetch 8,mem_debuglog_pdata
-	rtn
-	
-debuglog_init:
-	call pdata_push
-	call debuglog_uart_init
-	call debuglog_mem_init
-	branch pdata_pull
- 
-debuglog_uart_init:
-	/*step1:SET IO TX:GPIO6	RX:GPIO7*/
-	hfetch 1,core_gpio_sel1
-	set1 2,pdata
-	hstore 1,core_gpio_sel1 //Open UARTGPIO MUX
-	hfetch 4,core_gpio_pu0	 //RX pull up
-	set1 7,pdata
-	hstore 4,core_gpio_pu0
-	
-	/*step2:sel UARTclk bit0	=0:crystal	 =1:48M*/
-	hfetch 1,core_uart_clksel
-	set1 0,pdata
-	hstore 1,core_uart_clksel
-
-	/*step3:Enable uart clk
-	core_clkoff(0x8050)bit15 = 0,Enable uart clk*/
-	hfetch 2,core_clkoff
-	set0 0x0f,pdata
-	hstore 2,core_clkoff
-
-	/*step3:Set Ring Buffer*/
-	setarg mem_module_rx_buf		//RX buf Start Addr
-	hstore 2,core_uart_rsaddr
-
-	setarg mem_module_rx_buf_end	//RX buf End Addr
-	hstore 2,core_uart_readdr
-
-	setarg mem_module_tx_buf		//TX BUF Start Addr
-	hstore 2,core_uart_tsaddr
-
-	setarg 0x1eff	//TX buf End Addr
-	hstore 2,core_uart_teaddr
-	
-	setarg mem_module_rx_buf		//RX buf RPTR
-	hstore 2,core_uart_rrptr
-
-	setarg mem_module_tx_buf		//TX buf WPTR
-	hstore 2,core_uart_twptr
-
-	hstore 2,core_uart_trptrp		//TX buf RPTR
-
-	/*step4:SET baud*/
-	//hstore 2,mem_baud
-	setarg 0x34
-	hstore 2,core_uart_baud
-
-	/*step5:SET DataLen,parity bit,flow control and enable UART
-	RW	0	Enable UART
-	RW	1	1: odd parity; 0: even parity
-	RW	2	UART Data length 1: 9 bits; 0: 8 bits
-	RW	3	1: HCI uart SLIP protocol
-	RW	4	1: enable RTS/CTS flow control
-	RW	5	1: enable 7816 smart card protocol
-	RW	6	1: enable half duplex single line UART
-	RW	7	1: Use baud settings 0:auto detect baud rate*/
-	jam 0x00,core_uart_ctrl
-	jam 0x81,core_uart_ctrl
-	rtn 
-
-debuglog_mem_init:
-	jam DEBUGLOG_HEAD,mem_debuglog_temp
-	jam DEBUGLOG_TYPE,mem_debuglog_type
-	jam DEBUGLOG_LEN ,mem_debuglog_datalen
-	jam DEBUGLOG_TAIL,mem_debuglog_tail
-	rtn	
-
-debuglog_push:
-	call pdata_push
-	hfetch 1,core_uart_status
-	rtnbit1 uart_status_tx_fifo_full
-	call uartd_prepare_tx
-	fetch 8,mem_debuglog_temp
-	istore 8,contwu
-	call uartd_send
-	branch pdata_pull 
-endif
-
-ifdef RF_DEBUG
-test_gpio_init:
-	arg TEST_GPIO,temp
-	call gpio_config_output
-test_gpio_low:
-	arg TEST_GPIO,temp
-	call gpio_out_active
-	nop 10
-	rtn
-test_gpio_high:
-	arg TEST_GPIO,temp
-	call gpio_out_inactive
-	nop 10
-	rtn
-
-test_h_l:
-	call test_gpio_high
-	branch test_gpio_low
-test_h_l_h:
-	call test_gpio_high
-	call test_gpio_low	
-	branch test_gpio_high
-endif
-
-ifdef MOUSE_SMOOTHER
-//notice: need to call p_mouse_drawing_optima_init when waked from mult
-p_drawing_optima:
-	fetch 4,mem_mouse_x
-	rtn blank
-	call p_data_abs_check
-	setarg 0x06	//asm_flag enable condition
-	call p_data_greater_than_check
-	setarg 0x03	//asm_flag disable condition
-	call p_data_less_than_check
-	fetch 1,mem_mouse_asm_flag
-	beq 1,p_drawing_optima_modify
-p_drawing_optima_init:
-	arg 5,loopcnt
-	arg mem_mouse_asm_flag,contw
-	branch clear_mem
-
-p_drawing_optima_modify:
-	fetch 2,mem_mouse_x_pre
-	store 2,mem_data_pre
-	fetch 2,mem_mouse_x
-	store 2,mem_data_current
-	call p_drawing_optima_data
-	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 p_drawing_optima_data
-	fetch 2,mem_data_pre
-	store 2,mem_mouse_y_pre
-	fetch 2,mem_data_current
-	store 2,mem_mouse_y
-	rtn
-
-/**********
-input:data_pre,data_current
-output:data_pre,data_current after optima
-***********/
-p_drawing_optima_data:
-	fetch 2,mem_data_pre
-	fetcht 2,mem_data_current
-	iadd temp,pdata
-	store 3,mem_data_sum
-	isolate1 16,pdata
-	branch p_data_sum_overflow,true
-	fetch 1,mem_data_sum+1
-	beq 0xff,p_data_sum_n
-	fetch 1,mem_data_sum
-p_data_store_pre:
-	rshift pdata,pdata
-	store 2,mem_data_pre
-	store 2,mem_data_current
-	rtn
-p_data_sum_overflow:
-	fetch 1,mem_data_sum+1	//sum positive
-	beq 0,p_data_sum_overflow_p
-	fetch 3,mem_data_sum	//全负相加
-	branch p_data_store_pre
-p_data_sum_overflow_p:
-	jam 0,mem_data_sum+2
-	fetch 1,mem_data_sum
-	branch p_data_store_pre
-
-p_data_sum_n:
-	fetch 1,mem_data_sum	//sum negetive
-	call p_pdata_get_half
-	store 1,mem_data_pre
-	store 1,mem_data_current
-	branch p_data_zero,blank
-	setarg 0xff
-p_data_set_direction:	
-	store 1,mem_data_pre+1
-	store 1,mem_data_current+1
-	rtn
-p_data_zero:
-	setarg 0
-	branch p_data_set_direction
-
-p_pdata_get_half:
-	sub pdata,0,pdata
-	store 1,mem_rega
-	fetch 1,mem_rega
-	rshift pdata,pdata
-	store 1,mem_rega
-	fetch 1,mem_rega
-	sub pdata,0,pdata
-	rtn
-
-//rega mouse_x, regb mouse_y, pdata refer
-p_data_greater_than_check:
-	isub rega,null
-	nbranch p_enable_asm,positive
-	isub regb,null
-	nbranch p_enable_asm,positive
-p_disable_asm:
-	jam 0,mem_mouse_asm_flag
-	rtn
-p_data_less_than_check:
-	isub rega,null
-	nrtn positive
-	isub regb,null
-	nrtn positive
-	branch p_disable_asm
-p_enable_asm:
-	jam 1,mem_mouse_asm_flag
-	rtn
-
-p_data_abs_check:
-	fetch 2,mem_mouse_x
-	store 2,mem_data_current
-	call p_data_abs
-	copy pdata,rega
-	fetch 2,mem_mouse_y
-	store 2,mem_data_current
-	call p_data_abs
-	copy pdata,regb
-	rtn
-
-/***********
-input: data_current
-output:pdata,abs
-************/
-p_data_abs:
-	fetch 1,mem_data_current+1
-	beq 0xff,p_data_reversal
-	fetch 1,mem_data_current
-p_data_abs_store:
-	and_into 0xff,pdata
-	//output:pdata
-	rtn
-p_data_reversal:
-	fetch 2,mem_data_current
-	sub pdata,0,pdata
-	branch p_data_abs_store
-
-endif
-
-ifdef TESTDATA
-//1 mem_m_key
-//2 mem_m_x
-//2 mem_m_y
-//1 mem_m_z
-//1 mem_m_tz
-//1 mem_24g_test
-p_g24_test_data:
-	fetch 1,mem_24g_test
-	increase 1,pdata
-	store 1,mem_24g_test
-	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 0x05
-	store 2,mem_m_x
-	setarg 0
-	store 2,mem_m_y
-	store 1,mem_m_z
-	store 1,mem_m_key
-	store 1,mem_m_tz
-p_data:	
-	enable user
-	fetch 7,mem_m_key
-	store 7,mem_mouse_key
-	rtn
-p_ms_y_up:
-	setarg 0x05
-	store 2,mem_m_y
-	setarg 0
-	store 2,mem_m_x
-	store 1,mem_m_z
-	store 1,mem_m_key
-	store 1,mem_m_tz
-	branch p_data
-p_ms_x_left:
-	setarg 0xfffb
-	store 2,mem_m_x
-	setarg 0
-	store 2,mem_m_y
-	store 1,mem_m_z
-	store 1,mem_m_key
-	store 1,mem_m_tz
-	branch p_data
-p_ms_y_down:
-	fetch 1,mem_24g_test
-	beq 200,p_mem_usb_data_square_cnt_set0
-	setarg 0xfffb
-	store 2,mem_m_y
-	setarg 0
-	store 2,mem_m_x
-	store 1,mem_m_z
-	store 1,mem_m_key
-	store 1,mem_m_tz
-	branch p_data
-p_mem_usb_data_square_cnt_set0:
-	jam 0,mem_24g_test
-	branch p_ms_y_down+2
-endif
-
-ifdef MEMLOG
-p_hci_log:
-	fetch 1,0x4d00
-	increase 1,pdata
-	sub pdata,50,null
-	branch p_hci_log_calc_ptr,positive
-	setarg 0
-p_hci_log_calc_ptr:
-	store 1,0x4d00
-	arg 8,temp
-	imul32 temp,pdata
-	arg 0x4d08,contw
-	iadd contw,contw
-p_hci_log_write_content:
-	fetch 1,0x4d00
-	istore 1,contw//counter
-	fetch 4,mem_le_supervision_timer
-	istore 4,contw
-	fetch 2,mem_le_superto
-	istore 2,contw	
-	rtn
-endif
-
-
Index: DPI_Switch/program/peripherals.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/peripherals.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/peripherals.prog	(nonexistent)
@@ -1,2440 +0,0 @@
-
-/* ===================== two wire SPI gpio ======================= */
-
-twspi_reset:
-	bpatchx patch31_4,mem_patch31
-	hfetch 1,core_gpio_oe3
-	arg 0x06,temp
-	ior temp,pdata
-	hstore 1,core_gpio_oe3
-	hfetch 1,core_gpio_out3
-	ior temp,pdata
-	hstore 1,core_gpio_out3
-	call twspi_disable
-	hfetch 1,core_gpio_out3
-	set0 1,pdata
-	set0 2,pdata
-	hstore 1,core_gpio_out3	
-	nop 30  
-	branch twspi_enable
-
-twspi_reset2:
-	hfetch 1,core_gpio_oe3
-	arg 0xc0,temp
-	ior temp,pdata
-	hstore 1,core_gpio_oe3
-	hfetch 1,core_gpio_out3
-	ior temp,pdata
-	hstore 1,core_gpio_out3
-	call twspi_disable
-	hfetch 1,core_gpio_out3
-	set0 6,pdata
-	set0 7,pdata
-	hstore 1,core_gpio_out3	
-	nop 30  
-	branch twspi_enable2
-
-twspi_disable:
-	hfetch 1,core_gpio_sel1
-	and pdata,0xfc,pdata
-	hstore 1,core_gpio_sel1  //disable spi
-	rtn
-twspi_enable:
-	hfetch 1,core_gpio_sel1
-	or pdata,0x01,pdata
-	hstore 1,core_gpio_sel1  //enable spi
-	rtn
-twspi_enable2:
-	hfetch 1,core_gpio_sel1
-	or pdata,0x03,pdata
-	set0 4,pdata
-	hstore 1,core_gpio_sel1  //enable spi2
-	rtn
-
-// input read reg number: pdata 
-//output reg data: pdata
-sensor_read:
-	copy pdata,regb
-	call spi_ncs_enable
-	nop 100
-	copy regb,pdata
-	call twspi_read
-	copy pdata,regb
-	call spi_ncs_disable
-	nop 100
-	copy regb,pdata
-	rtn
-// input write reg number: pdata 
-sensor_write:
-	copy pdata,regb
-	call spi_ncs_enable
-	nop 100
-	copy regb,pdata
-	call twspi_write
-	call spi_ncs_disable
-	nop 100
-	rtn
-//spi gpio init .
-//0xff :disable spi ncs gpio init
-spi_ncs_gpio_init:
-	fetcht 1,mem_spi_ncs_gpio
-	branch gpio_config_output
-
-//nsc gpio ouput low
-spi_ncs_enable:
-	fetcht 1,mem_spi_ncs_gpio
-	branch gpio_out_active
-
-//ncs gpio output high
-spi_ncs_disable:
-	fetcht 1,mem_spi_ncs_gpio
-	branch gpio_out_inactive
-
-
-twspi_write:
-	branch spid_write_reg
-	
-twspi_read:
-	branch spid_read_reg
-
-
-
-/* ===================== code loading ======================= */
-
-
-read_function_aes:
-	nbranch read_function,user
-	hfetch 1,core_gpio_key2
-	or_into 0x2,pdata   	// enable aes 
-	hstore 1,core_gpio_key2
-read_function:
-	copy temp,null
-	branch read_fuction_zero,zero
-	copy regc,pc
-read_fuction_zero:
-	isolate0 0,null
-	branch set_ucode_status
-	
-/* return temp = block length */
-get_block_header:
-	force 4,temp
-get_block_header0:
-	arg mem_ucode_buf,rega
-	hfetch 1,core_gpio_key2
-	and_into 0xfd,pdata   	// disable aes for header
-	hstore 1,core_gpio_key2
-	call read_function
-	arg 0x55aa,rega
-	fetch 2,mem_ucode_buf
-	ifetcht 2,contr
-	isub rega,null
-	rtn	
-
-read_first_block:
-	arg 2,temp
-	arg mem_ucode_ptr,rega
-	call read_function
-	fetch 2,mem_ucode_ptr
-	store 2,mem_addr_mi
-	call get_iv,user
-	rtn
-	
-get_iv:
-	arg 16,temp
-	arg mem_ucode_keybuf,rega
-	hfetch 1,core_gpio_key2
-	and_into 0xfd,pdata   // disable aes for iv
-	hstore 1,core_gpio_key2
-	call read_function
-	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_storage:
-	disable match
-	call get_block_header
-	nrtn zero
-	enable match
-	jam 0x80, core_ucode_ctrl
-	jam 0,core_ucode_hi
-	jam 0,core_ucode_low
-	arg core_ucode_data,rega
-	call read_function_aes
-	jam 0x0, core_ucode_ctrl
-load_storage_loop:
-	arg 6,temp
-	call get_block_header0
-	nrtn zero
-	ifetch 2,contr
-	iforce rega
-	call read_function
-	branch load_storage_loop
-
-	
-	/* only load memory data from eeprom */
-reload_eeprom:
-	call clean_mem
-	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:
-	call clean_mem
-	disable user
-	call otp_enable_chgpump
-	setarg otp_ucode_flag
-	arg mem_otp_ucode_flag,rega
-	arg 2,temp
-	call otpd_read_data
-	fetch 2,mem_otp_ucode_flag
-	bbit0 otp_uflag_aes, loadcode_otp
-	jam 0x25,core_clkoff			// disable debug uart
-	setarg otp_ucode_aeskey
-	arg mem_ucode_keybuf,rega
-	arg 16,temp
-	call otpd_read_data
-	jam lock_otp,core_misc_ctrl	// disable further read/write of key
-	set1 mark_otp_encrypt,mark	
-	arg mem_ucode_keybuf,contr
-	call load_key
-	enable user					// set user for aes
-loadcode_otp:
-	jam 0,mem_loadcode_times
-loadcode_otp_2:
-	call loadcode_check_times
-	fetch 2,mem_otp_ucode_flag
-	byteswap pdata,pdata
-	arg 0x7ff,temp
-	iand temp,pdata
-	branch loadcode_iic, zero
-	call otp_set_addr
-	arg otpd_read_code,regc
-	call get_iv,user
-	call load_storage
-	fetch 1,mem_ucode_status
-	bbit0 0,loadcode_otp_2			// crc error, try again
-	
-loadcode_iic:
-	call otp_disable_chgpump
-	jam 0,mem_loadcode_times
-loadcode_iic_2:	
-	call loadcode_check_times
-	call clear_eeprom_size_2k
-	fetch 1,mem_otp_ucode_flag
-	bbit1 otp_uflag_skip_eep,loadcode_spi
-	call loadcode_iic_by_eeprom
-	nbranch loadcode_iic_eeprom_2k,match
-	fetch 1,mem_ucode_status
-	bbit0 0,loadcode_iic_2			// crc error, try again
-	branch loadcode_hci
-loadcode_iic_eeprom_2k:
-	call set_eeprom_size_2k
-	fetch 1,mem_otp_ucode_flag
-	bbit1 otp_uflag_skip_eep,loadcode_spi
-	call loadcode_iic_by_eeprom
-	nbranch loadcode_spi,match
-	fetch 1,mem_ucode_status
-	bbit0 0,loadcode_iic_2			// crc error, try again
-	branch loadcode_hci
-	
-loadcode_spi:
-	jam 0,mem_loadcode_times
-loadcode_spi_2:
-	call loadcode_check_times
-	fetch 1,mem_otp_ucode_flag
-	bbit1 otp_uflag_skip_flash, loadcode_hci
-	setarg 0x0
-	store 3,mem_addr_hi
-	call spid_init_flash
-	arg spid_load_flash,regc
-	call read_first_block
-	call load_storage
-	nbranch loadcode_hci,match
-	fetch 1,mem_ucode_status
-	bbit0 0,loadcode_spi_2			// crc error, try again
-
-loadcode_hci:
-	bmark1 mark_otp_encrypt,loadcode_hci_enc
-	call clear_key_buf
-loadcode_hci_enc:
-	fetch 1,mem_otp_ucode_flag
-	bbit0 otp_uflag_hci,clear_key_buf
-	jam 0x21,core_clkoff			// enable debug uart
-	call hci_init
-loadcode_hci_loop:
-	call hci_rx_packet
-	branch loadcode_hci_loop
-
-clear_key_buf:
-	setarg 0
-	store 8,mem_ucode_keybuf
-	store 8,mem_ucode_keybuf+8
-	force regidx_key,regext_index
-	call aes_clear
-	jam 0x21,core_clkoff		// enable debug uart
-	rtn
-	
-
-loadcode_iic_by_eeprom:
-	setarg 0x0
-	store 2,mem_addr_mi
-	arg iicd_read_eep,regc
-	call iicd_init_12m
-	call read_first_block
-	branch load_storage
-
-
-loadcode_check_times:
-	fetch 1,mem_loadcode_times
-	increase 1,pdata
-	sub pdata,3,null
-	nbranch loadcode_error,positive
-	store 1,mem_loadcode_times
-	rtn
-
-loadcode_error:
-	call clear_key_buf
-	call ice_break
-	rtn
-
-
-/* true flag is set into status */
-set_ucode_status:
-	fetch 1,mem_ucode_status
-	lshift pdata,pdata
-	setflag true,0,pdata
-	isolate0 15,rega
-	rtn true
-	store 1,mem_ucode_status
-	rtn
-
-	/* queue is bit position of hw done status */
-decrypt_code:
-	hfetch 1,core_gpio_key2
-	rtnbit0 1
-	branch decrypt_code_skip	/* skip to key generation at first for speed */
-decrypt_code_loop:
-	hfetch 1,core_dma_status
-	qisolate1 pdata
-	rtn true
-decrypt_code_skip:
-	hfetch 1,core_misc_status
-	bbit0 1,decrypt_code_loop
-	call do_aes_cbc
-	branch decrypt_code_loop
-
-
-
-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
-	hstore 1,core_ucode_data
-	loop load_ucode_loop
-	jam 0x0, core_ucode_ctrl
-	rtn
-
-
-/* ===================== SPI dma ======================= */
-
-spid_init:
-	bpatchx patch31_5,mem_patch31
-	call spid_init_common
-	branch twspi_enable
-
-spid_init2:
-	call spid_init_common
-	call twspi_disable
-	branch twspi_enable2
-	
-spid_init_common:
-	fetch 1,mem_spi_init_clk
-	hstore 1,core_spid_ctrl	// A7530 should at least 34, or write fail
-	fetch 1,mem_spi_init_delay_time
-	hstore 1,core_spid_delay	// 4us delay
-	setarg mem_spid_tbuf
-	hstore 2,core_spid_txaddr
-	setarg mem_spid_rbuf
-	hstore 2,core_spid_rxaddr
-	branch twspi_disable
-	
-spid_reset:
-	hfetch 1,core_spid_ctrl
-	set1 7,pdata
-	hstore 1,core_spid_ctrl
-	set0 7,pdata
-	hstore 1,core_spid_ctrl
-	rtn
-
-
-/* pdata 6:0 is reg address, 15:8 is data to write */
-spid_write_reg:
-	set1 7,pdata
-	store 2,mem_spid_tbuf
-	bpatchx patch31_6,mem_patch31
-	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 */
-spid_read_reg:
-	force 1,temp
-/* pdata 6:0 is burst reg address, temp is bytes to read */
-spid_read_regs:
-//	nop 100
-	store 1,mem_spid_tbuf
-	bpatchx patch31_7,mem_patch31
-	jam 1,core_spid_txlen
-	hstoret 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
-	hfetch 1,core_dma_status
-	bbit0 spid_done,wait_spid_done
-	rtn
-
-spid_init_flash:
-	jam 0x40,core_spid_ctrl
-	jam 0x0,core_spid_delay
-	hfetch 1,core_gpio_sel1
-	set0 0,pdata
-	set1 1,pdata
-	hstore 1,core_gpio_sel1
-	setarg 0
-	store 4,mem_spid_tbuf
-	rtn
-
-
-spid_unlock_flash:
-	setarg 0
-	hstore 2,core_spid_rxlen
-	setarg 1
-	hstore 2,core_spid_txlen
-	setarg mem_spid_tbuf
-	hstore 2,core_spid_txaddr
-	jam 6,mem_spid_tbuf
-	jam spid_start,core_misc_ctrl
-	branch wait_spid_done
-
-
-/**
- ******************************************************************************
- ** \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 flash_write_start
-
-
-flash_write_spi_sm_timer:
-	fetch 1,mem_spi_write_flash_sm 	
-	beq FLASH_SM_START,flash_write_start
-	beq FLASH_SM_ERASE_SECTOR,flash_erase_sector
-	beq FLASH_SM_WAIT_ERASE_SECTOR,flash_wait_erase_sector
-	beq FLASH_SM_WRITE_DATA,flash_write_data
-	beq FLASH_SM_WAIT_WRITE_DATA,flash_wait_write_data
-	rtn
-
-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
-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
-	fetch 3,mem_spi_write_addr
-	jam 4,core_spid_txlen
-	arg FLASH_COMMAND_SECTOR_ERASE,temp
-	branch spid_write_flash_common
-	
-flash_wait_erase_sector:
-	call spid_init_flash
-	call spid_unlock_flash
-	setarg FLASH_READ_SATUS
-	call spid_read_reg
-	rtnbit1 FLASH_STATUS_WIP
-	jam FLASH_SM_WRITE_DATA,mem_spi_write_flash_sm
-	rtn
-flash_write_data:
-	call spid_init_flash
-	jam FLASH_SM_WAIT_WRITE_DATA,mem_spi_write_flash_sm
-	call spid_unlock_flash
-	call flash_data_preserve
-	call spid_write_flash
-	branch flash_data_recover
-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
-flash_data_recover:
-	fetch 4,mem_temp
-	fetcht 2,mem_spi_write_ptr
-	increase -4,temp
-	istore 4,temp
-	rtn
-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
-
-
-/* pdata is flash address, rega pointers to txdata(4 ahead bytes should be left), temp is length */
-spid_write_flash:
-	increase 4,temp
-	hstoret 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
-	hstore 2,core_spid_txaddr
-	setarg 0
-	hstore 2,core_spid_rxlen
-	jam spid_start,core_misc_ctrl
-	branch wait_spid_done
-
-
-/* temp is length, rega pointers to buf   */
-spid_read_flash:
-	hstoret 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
-	hstore 2,core_spid_txlen
-	jam FLASH_COMMAND_READ_DATA,mem_spid_tbuf
-	setarg mem_spid_tbuf
-	hstore 2,core_spid_txaddr
-	deposit rega
-	hstore 2,core_spid_rxaddr
-	hfetch 1,core_spid_ctrl
-	isolate0 15,rega
-	setflag true,6,pdata
-	hstore 1,core_spid_ctrl
-	jam spid_start,core_misc_ctrl
-spi_read_flash_wait:
-	hfetch 1,core_dma_status
-	bbit1 7,spi_read_flash_wait			// waiting for spid write
-	arg spid_done,queue
-	branch wait_spid_done
-
-
-/* temp is length, rega pointers to buf  */
-spid_load_flash:
-	hstoret 2,core_spid_rxlen
-	setarg 4
-	hstore 2,core_spid_txlen
-	jam 3,mem_spid_tbuf
-	setarg mem_spid_tbuf
-	hstore 2,core_spid_txaddr
-	deposit rega
-	hstore 2,core_spid_rxaddr
-	hfetch 1,core_spid_ctrl
-	isolate0 15,rega
-	setflag true,6,pdata
-	hstore 1,core_spid_ctrl
-	jam spid_start,core_misc_ctrl
-spi_load_flash_wait:
-	hfetch 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 1,mem_addr_mi
-	lshift8 pdata,pdata
-	ior regb,regb
-	fetch 1,mem_addr_lo
-	ior regb,pdata
-	iadd temp,pdata
-	store 1,mem_addr_lo
-	rshift8 pdata,pdata
-	store 1,mem_addr_mi
-	rshift8 pdata,pdata
-	store 1,mem_addr_hi
-	rtn
-
-/*****************************************************************************
-*soft reset chip
-*****************************************************************************/
-soft_reset_chip:
-	jam 1,core_reset
-	rtn
-
-
-
-/* ===================== I2C dma ======================= */
-
-iic_init_390k:	//390khz
-	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
-  	branch iicd_init_gpio	
-
-
-iicd_init_12m:
-	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
-iicd_init_gpio:	
-	hfetch 1,core_gpio_pu3
-	or_into 0xc0,pdata
-	hstore 1,core_gpio_pu3
-	hfetch 1,core_gpio_sel1
-	or_into 0x10,pdata
-	hstore 1,core_gpio_sel1
-	rtn
-
-
-
-wait_iicd_done:
-	hfetch 1,core_dma_status
-	bbit0 iicd_done,wait_iicd_done
-	rtn
-
-/*
-pdata is tx length
-rega is points to tx buffer
-regb is points to rx buffer
-temp is rx length
-*/
-iicd_read_data:
-	hstore 2,core_iicd_txlen
-	deposit rega
-	hstore 2,core_iicd_txaddr	
-	deposit regb
-	hstore 2,core_iicd_rxaddr
-	deposit temp	
-	hstore 2,core_iicd_rxlen
-	arg 1,temp
-	nsetflag blank,1,temp
-	hstore 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
-	hstore 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:
-	bpatchx patch32_0,mem_patch32
-	bmark1 mark_eeprom_size,iicd_read_eep_data_size_2k
-	fetch 2,mem_eeprom_base
-	iadd regb,pdata
-	byteswap pdata,pdata
-	store 2,mem_addr_mi
-
-/* rega pointers to buf, temp is length  */
-iicd_read_eep:
-	bpatchx patch32_1,mem_patch32
-	bmark1 mark_eeprom_size,iicd_read_eep_size_2k_lcadcode
-	setarg 4
-	hstore 2,core_iicd_txlen
-	jam 0xa0,mem_iicd_tbuf
-	jam 0xa1,mem_iicd_tbuf+3
-iicd_read_eep_common:	
-	setarg mem_iicd_tbuf
-	hstore 2,core_iicd_txaddr
-	hstoret 2,core_iicd_rxlen
-	deposit rega
-	hstore 2,core_iicd_rxaddr
-	setarg 2
-	isolate0 15,rega
-	setflag true,0,pdata
-	hstore 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
-	fetch 2,mem_addr_mi
-	byteswap pdata,pdata
-	iadd temp,pdata
-	byteswap pdata,pdata
-	store 2,mem_addr_mi
-	rtn
-
-iicd_read_eep_load_code_size_2k:
-	fetch 1,mem_addr_mi
-	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
-iicd_write_ota_data:
-	store 2,mem_pdatatemp //curr ptr
-	bpatchx patch32_2,mem_patch32
-	storet 2,mem_temp	//len
-	copy rega,pdata
-	store 2,mem_contr
-iicd_write_eep_loop:
-	call iicd_eep_transparency
-
-	fetcht 2,mem_regb
-	fetch 2,mem_contr
-	copy pdata,rega
-	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:
-	bpatchx patch32_3,mem_patch32
-	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:
-	increase 2,temp
-	hstoret 2,core_iicd_txlen
-	increase -2,rega
-	ifetcht 3,rega
-	copy temp,regb
-	arg 0xa0,temp
-	istoret 1,rega
-//	byteswap pdata,pdata
-	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
-	bpatchx patch32_4,mem_patch32
-	bmark1 mark_eeprom_size,iicd_write_eep_size_2k
-	copy regb,pdata
-	increase 3,temp
-	hstoret 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:	
-	deposit rega
-	hstore 2,core_iicd_txaddr
-	setarg 0
-	hstore 2,core_iicd_rxlen
-	jam 1,core_iicd_ctrl
-	jam iicd_start,core_misc_ctrl
-	call wait_iicd_done
-	copy regb,pdata
-	istore 3,rega
-	
-iic_check_eeprom_standby:
-	bpatchx patch32_5,mem_patch32
-	jam 0,mem_iicd_tbuf+3
-iic_check_eeprom_standby_wait:
-	setarg 1
-	hstore 2,core_iicd_txlen
-	jam 0xa0,mem_iicd_tbuf
-	setarg mem_iicd_tbuf
-	hstore 2,core_iicd_txaddr
-	setarg 0
-	hstore 2,core_iicd_rxlen
-	hstore 2,core_iicd_rxaddr
-	setarg 3
-	hstore 1,core_iicd_ctrl
-	jam iicd_start,core_misc_ctrl
-	call wait_iicd_done
-	hfetch 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
-
-/* ===================== OTP ======================= */
-
-otp_enable_chgpump:
-	jam 0x70,rfen_chgpump
-	nop param_chgpump_delay
-	rtn
-
-otp_disable_chgpump:
-	jam 0x30,rfen_chgpump
-	rtn
-	
-otp_set_addr:
-	lshift3 pdata,pdata
-	hstore 2,core_otp_addr
-	jam 0,core_otpd_ctrl
-	rtn	
-
-/* pdata = otp address, rega pointers data, loopcnt is count */
-otp_write:
-	call otp_set_addr
-	call otp_ce
-otp_program:
-	ifetcht 1,rega
-	increase 1,rega
-	force 0,queue
-otp_program_bit:
-	qisolate0 temp
-	branch otp_skip_0,true
-	hfetch 1,core_otp_din
-	set1 6,pdata				/* din */
-	set1 7,pdata				/* dle */
-	hstore 1,core_otp_din
-	jam 0x02,core_otp_ctrl	/* web */
-	jam 0x82,core_otp_ctrl
-	set0 7,pdata				/* dle */
-	hstore 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 */
-	hfetch 1,core_otp_rdata
-	jam 0x92,core_otp_ctrl	/* release readen */
-	nop 1
-	jam 0x82,core_otp_ctrl	/* release pgmvfy */
-	qisolate0 pdata
-	branch otp_program_bit,true	/* program error */
-otp_skip_0:
-	hfetch 2,core_otp_addr
-	increase 1,pdata
-	hstore 2,core_otp_addr
-	increase 1,queue
-	compare 8,queue,0xf
-	nbranch otp_program_bit,true
-	loop otp_program
-	jam 0x83,core_otp_ctrl
-	rtn
-
-otp_ce:
-	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
-
-	/* rega points to data, temp is count */
-otpd_read_init:
-	call otp_ce
-	jam 0xa2,core_otp_ctrl	/* readen */
-	deposit rega
-	hstore 2,core_otpd_addr
-	set1 11,temp
-	isolate0 15,pdata
-	setflag true,15,temp
-	hstoret 2,core_otpd_len
-	jam otpd_start,core_misc_ctrl
-	rtn
-
-otpd_wait_end:
-	hfetch 1,core_dma_status
-	bbit0 otpd_done,otpd_wait_end
-	rtn
-	
-	/* pdata=otp address, rega points to data, temp is count */
-otpd_read_data:
-	call otp_set_addr
-	call otpd_read_init
-	call otpd_wait_end
-	jam 0x83,core_otp_ctrl	/* release ceb */
-	rtn
-
-
-
-/* rega pointers to buf, temp is length */
-otpd_read_code:	
-	hfetch 2,core_current_otp_addr
-	hstore 2,core_otp_addr
-	call otpd_read_init
-	arg otpd_done,queue
-	call decrypt_code
-	call otpd_wait_end
-	isolate1 otpd_crcok,pdata	
-	call set_ucode_status
-	jam 0x83,core_otp_ctrl	/* release ceb */
-	rtn
-
-/* ===================== uart dma ======================= */
-uartd_prepare_tx:
-	hfetch 2,core_uart_twptr
-	iforce contwu
-	rtn
-
-uartd_send:
-	deposit contwu
-	hstore 2,core_uart_twptr
-	rtn
-
-uartd_rxdone:
-	deposit contru
-	hstore 2,core_uart_rrptr
-	rtn
-
-uartd_prepare_rx:
-	hfetch 2,core_uart_rrptr
-	copy pdata,contru
-	rtn
-
-uart_set_baud_by_mem:
-	fetch uart_baud_len,mem_baud
-	hstore uart_baud_len,core_uart_baud
-	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,contwu
-	rtn
-
-uart_tx_4_bytes:
-	ifetch 4,contr
-	istore 4,contwu
-	rtn
-
-uart_copy_tx_bytes:
-	deposit loopcnt
-	rtn blank
-uart_copy_tx_bytes_loop:
-	ifetch 1,contr
-	istore 1,contwu
-	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,contru
-	istore 8,contw
-	rtn
-
-uart_rx_4_bytes:
-	ifetch 4,contru
-	istore 4,contw
-	rtn
-
-
-uart_copy_rx_bytes:
-	deposit loopcnt
-	rtn blank
-uart_copy_rx_bytes_loop:
-	ifetch 1,contru
-	istore 1,contw
-	loop uart_copy_rx_bytes_loop
-	rtn
-
-
-uart_copy_rx2tx:
-	deposit loopcnt
-	rtn blank
-uart_copy_rx2tx_loop:
-	ifetch 1,contru
-	istore 1,contwu
-	loop uart_copy_rx2tx_loop
-	rtn
-
-
-/* ===================== eeprom data ======================= */
-
-app_store_nvram_event:
-	jam BT_EVT_STORE_NVRAM,mem_fifo_temp
-	branch ui_ipc_send_event
-
-check_51cmd_store_reconn_info:
-check_51cmd_update_device_record:
-	bpatchx patch32_6,mem_patch32
-	fetch 1,mem_nv_data_number
-	rtn blank		// not nv data
-	call check_nvram
-	call init_device_list,zero
-	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
-
-
-nvram_find_addr_from_bd_list:
-	call disable_user
-	fetch 1,mem_nv_data_number
-	rtn blank		// not nv data
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BT_CONNECTED,find_addr_from_bd_list_SPP_mode
-find_addr_from_bd_list_ble_mode:
-	bpatchx patch32_7,mem_patch32
-	fetch 1,mem_le_conn_peer_addr_type
-	beq MASTER_PUBLIC_ADDR,find_addr_from_bd_list_static_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
-	compare 0x00,pdata,0xc0
-	branch find_addr_from_bd_list_random_non_resolvable_private_address,true
-find_addr_from_bd_list_static_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
-	
-//input :pdata EDIV and rands
-find_addr_from_bd_list_SPP_mode:
-	bpatchx patch33_0,mem_patch33
-	jam REC_3_MODE,mem_temp_reconn_record
-	fetch 6,mem_plap
-find_addr_from_bd_list_common:
-	store 6,mem_temp_reconn_record+1
-	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:
-	bpatchx patch33_1,mem_patch33
-	call nvram_find_addr_from_bd_list
-	fetch 1,mem_state
-	setflag user,state_combkey,pdata	/* we have link key */
-	store 1,mem_state
-	nbranch clear_key_exists,user
-	add rega,10,contr
-//	copy rega,contr
-	arg mem_link_key,contw
-	call  memcpy16
-	branch check_link_key_load
-clear_key_exists:
-	jam 0,mem_link_key_exists
-	rtn
-
-load_device_list_mode_4:
-	fetch 9,mem_le_ediv
-	branch clear_ltk_exists,blank
-	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:
-	fetch 6,mem_le_plap
-	store 6,mem_temp_lap
-	jam REC_4_MODE,mem_record_bt_mode
-	branch eeprom_store_reconn_info
-eeprom_store_bd_reconn_info:
-	fetch 6,mem_plap
-	store 6,mem_temp_lap
-	jam REC_3_MODE,mem_record_bt_mode
-eeprom_store_reconn_info:
-	fetch 1,mem_device_option
-	beq dvc_op_module,check_51cmd_update_device_record
-	bbit1 dvc_op_mouse,mouse_store_remote_bdaddr
-	rtn
-	
-
-check_link_key_load:
-	fetch 8,mem_link_key
-	fetcht 8,mem_link_key+8
-	ior temp,pdata
-	rtn blank
-	jam 1,mem_link_key_exists
-	rtn
-	
-
-/* =============== GPIO CONTROL ================= */
-
-
-	//temp [4:0]=GPIO number, 0-31, 
-gpio_set_wake_by_current_state:
-	bpatchx patch33_2,mem_patch33
-	set1 7,temp
-	call gpio_get_bit
-	nsetflag true,7,temp
-	//branch gpio_set_wake
-	//fall through
-	
-	//temp [4:0]=GPIO number, 0-31, [7]=0, low active
-gpio_set_wake:
-	bpatchx patch33_3,mem_patch33
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	isolate0 7,temp
-	and temp,0x1f,queue
-	fetch 4,mem_gpio_wakeup_low
-	qsetflag true,pdata
-	store 4,mem_gpio_wakeup_low
-	fetch 4,mem_gpio_wakeup_high
-	nqsetflag true,pdata
-	store 4,mem_gpio_wakeup_high
-	rtn
-	
-	//temp [4:0]=GPIO number, 0-31, [7]=0, low active
-gpio_clr_wake:
-	bpatchx patch33_4,mem_patch33
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	isolate0 7,temp
-	and temp,0x1f,queue
-	fetch 4,mem_gpio_wakeup_low
-	qset0 pdata
-	store 4,mem_gpio_wakeup_low
-	fetch 4,mem_gpio_wakeup_high
-	qset0 pdata
-	store 4,mem_gpio_wakeup_high
-	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:
-	arg core_gpio_pd0,contw
-	call gpio_set_bit
-	setflip gpio_active_bit,temp
-	arg core_gpio_pu0,contw
-	call gpio_set_bit
-	set0 gpio_active_bit,temp
-	arg core_gpio_oe0,contw
-	branch gpio_set_bit
-
-
-gpio_set_high_impedance:
-	arg core_gpio_pd0,contw
-	call gpio_set_bit
-	set0 gpio_active_bit,temp
-	arg core_gpio_pu0,contw
-	call gpio_set_bit
-	set0 gpio_active_bit,temp
-	arg core_gpio_oe0,contw
-	branch gpio_set_bit
-
-
-	//temp [4:0]=GPIO number, 0-31, [7]=0, low active. set gpio to inactive state
-gpio_config_output:	
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	setflip gpio_active_bit,temp
-	call gpio_out
-gpio_config_output0:
-	set1 gpio_active_bit,temp
-	arg core_gpio_oe0,contw
-	branch gpio_set_bit
-	
-gpio_common:
-	and temp,0x07,queue
-	rshift3 temp,pdata
-	and_into 3,pdata
-	iadd contw,contw
-	ifetch 1,contw
-	rtn
-
-gpio_check_active:
-	arg core_gpio_out0,contw
-	branch get_bit_common
-
-	
-	/* temp is gpio number, return true if gpio active */
-gpio_get_bit:
-	arg core_gpio_in,contw
-get_bit_common:
-	call gpio_common
-	isolate1 gpio_active_bit,temp
-	branch gpio_get_bit_reverse,true
-	qisolate0 pdata
-	rtn
-gpio_get_bit_reverse:
-	qisolate1 pdata
-	rtn
-
-gpio_out_inactive:
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	isolate1 7,null
-	branch gpio_out_flag
-
-gpio_out_active:
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	isolate0 7,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:
-	arg core_gpio_out0,contw
-
-	//temp [4:0]=GPIO number, 0-31, [7]=bit value; contw is gpio reg base
-gpio_set_bit:
-	call gpio_common
-	isolate1 gpio_active_bit,temp
-	qsetflag true,pdata
-	istore 1,contw
-	rtn
-
-gpio_set_before_lpm_common:
-	arg -1,rega
-	hfetch 1,core_gpio_sel1
-	compare 0x02,pdata,0x03
-	call neglact4_from_23_pin,true	//spi
-
-	compare 0x01,pdata,0x03
-	call neglact2_form_25_pin,true	//two spi gpio25 26
-
-	compare 0x03,pdata,0x03
-	call neglact2_form_25_pin,true	//two spi gpio30 31
-	 	 
-	isolate1 2,pdata
-	call neglect2_from_6_pin,true	//uart
-	 
-	isolate1 3,pdata
-	call neglect4_from_9_pin,true	//spi
-
-	isolate1 4,pdata
-	call neglact2_form_30_pin,true	//IIC GPIO30 31
-
-	isolate1 6,pdata
-	nsetflag true,04,rega			//pwm0 gpio4
-
-	isolate1 7,pdata
-	nsetflag true,05,rega			//pwm1 gpio5
-
-	hfetch 1,core_gpio_sel2
-	isolate1 0,pdata
-	nsetflag true,27,rega			//pwm2 gpio27
-	isolate1 1,pdata
-	nsetflag true,28,rega			//pwm3 gpio28
-	isolate1 2,pdata
-	nsetflag true,03,rega			//pwm4 gpio03
-	isolate1 3,pdata
-	nsetflag true,08,rega			//pwm5 gpio08
-	isolate1 4,pdata
-	nsetflag true,20,rega			//pwm0 gpio20
-	isolate1 5,pdata
-	nsetflag true,21,rega			//pwm1 gpio21
-	isolate1 6,pdata
-	nsetflag true,22,rega			//pwm2 gpio22
-	isolate1 7,pdata
-	nsetflag true,23,rega			//pwm3 gpio23
-		
-	hfetch 1,core_gpio_sel
-	isolate1 0,pdata
-	nsetflag true,05,rega			//ADC GPIO05
-	isolate1 1,pdata
-	nsetflag true,06,rega			//ADC GPIO06
-	isolate1 2,pdata
-	nsetflag true,07,rega			//ADC GPIO07
-	isolate1 3,pdata
-	nsetflag true,18,rega			//ADC GPIO18
-	isolate1 4,pdata
-	nsetflag true,19,rega			//ADC GPIO19
-	isolate1 5,pdata
-	nsetflag true,20,rega			//ADC GPIO20
-	isolate1 6,pdata
-	nsetflag true,21,rega			//ADC GPIO21
-	isolate1 7,pdata
-	nsetflag true,22,rega			//ADC GPIO22
-	
-	hfetch 1,core_uart_ctrl
-	isolate1 4,pdata
-	call neglact2_form_2_pin,true
-	bpatchx patch33_5,mem_patch33
-
-	hfetch 4,core_gpio_pu0
-	hfetcht 4,core_gpio_pd0
-	ior temp,pdata
-	invert pdata,pdata
-	iand rega,pdata
-	//set0 4,pdata //revc
-	hstore 4,core_gpio_oe0
-	rtn
-	
-	
-neglect2_from_6_pin: //uart
-	 arg 6,queue
-	 branch neglect_2_pin
-neglect4_from_9_pin:
-	 arg 9,queue
-	 branch neglact_4_pin
-neglact4_from_23_pin:
-	 arg 23,queue
-	 branch neglact_4_pin
-neglact2_form_25_pin:
-	 arg 25,queue
-	 branch neglect_2_pin
-neglact2_form_30_pin:
-	 arg 30,queue
-	 branch neglect_2_pin
-neglact2_form_2_pin:
-	 arg 2,queue
-	 branch neglect_2_pin
-neglact_1_pin:
-	arg 1,loopcnt
-	branch neglect_pin_loop
-neglact_4_pin:
-	 arg 4,loopcnt
-	 branch neglect_pin_loop
-neglect_2_pin:
-	 arg 2,loopcnt
-neglect_pin_loop:
-	 qset0 rega
-	 increase 1,queue
-	 loop neglect_pin_loop
-	 rtn
-
-
-
-
-
-
-/* ===================== sniff GPIO CONTROL ======================= */
-gpio_cfg_uart_tx_output:
-	call gpio_uart2gpio
-	arg UART_WAKEUP_TX,temp
-	branch gpio_config_output
-
-gpio_pu_uart_tx:
-	call gpio_cfg_uart_tx_output
-	arg UART_WAKEUP_TX,temp
-	branch gpio_out_inactive
-
-
-
-gpio_rx_config_input_with_pu:
-	call gpio_uart2gpio
-	hfetch 1, core_gpio_pu0
-	set1 UART_WAKEUP_RX,pdata
-	hstore 1,core_gpio_pu0
-	arg UART_WAKEUP_RX,temp
-	branch gpio_config_input
-	
-gpio_uart2gpio:
-	hfetch 1,core_gpio_sel1
-	and_into 0xfb,pdata
-	hstore 1,core_gpio_sel1
-	rtn
-
-gpio_check_uart_state:
-	hfetch 1,core_gpio_sel1
-	isolate1 2,pdata
-	rtn
-
-load_chip_option:
-	call otp_enable_chgpump
-	setarg OTP_CHIP_FUNCTIONS
-	arg mem_chip_functions,rega
-	arg 0x02,temp
-	call otpd_read_data
-	branch otp_disable_chgpump
-
-
-load_adc_init:
-	call otp_enable_chgpump
-	setarg otp_adc_io_0_5V_addr
-	arg mem_0_5_adc_io_data,rega
-	arg 14,temp
-	call otpd_read_data
-	branch otp_disable_chgpump
-
-
-//mem_adc_config_flag 0:vinlpm 1:Hvin 2: GPIO
-adc_init_data:
-	bpatchx patch33_6,mem_patch33
-
-	call load_adc_init
-	
-	fetch 1,mem_adc_config_flag
-	beq ADC_CONFIG_VINLPM,adc_init_data_vinlpm
-	beq ADC_CONFIG_HVIN,adc_init_data_hvin
-	beq ADC_CONFIG_GPIO,adc_init_data_io
-	rtn	
-
-adc_init_data_vinlpm:
-	fetcht 2,mem_otp_adc_flag
-	setarg OTP_ADC_FLAG
-	isub temp,null
-	branch adc_check_data_vinlpm,zero
-	setarg 0x4dfa
-	store 2,mem_3v_adc_vinlpm_data	
-	setarg 0x4894
-	store 2,mem_2v_adc_vinlpm_data
-	branch set_vdd_reference_voltage_1v
-
-adc_check_data_vinlpm:
-	fetch 2,mem_3v_adc_vinlpm_data
-	nbranch adc_check_2v_vinlpm,blank
-	setarg 0x4dfa
-	store 2,mem_3v_adc_vinlpm_data
-adc_check_2v_vinlpm:	
-	fetch 2,mem_2v_adc_vinlpm_data
-	nbranch set_vdd_reference_voltage_1v,blank
-	setarg 0x4894
-	store 2,mem_2v_adc_vinlpm_data
-set_vdd_reference_voltage_1v:
-	setarg 100
-	store 2,mem_reference_voltage //set reference voltage = 1V
-	rtn		
-
-adc_init_data_hvin:
-	fetcht 2,mem_otp_adc_flag
-	setarg OTP_ADC_FLAG
-	isub temp,null
-	branch adc_check_data_hvin,zero
-	setarg 0x5932
-	store 2,mem_5v_adc_hvin_data	
-	setarg 0x4323
-	store 2,mem_1v_adc_hvin_data
-	branch set_vdd_reference_voltage_4v
-
-adc_check_data_hvin:
-	fetch 2,mem_5v_adc_hvin_data
-	nbranch adc_check_1v_hvin,blank
-	setarg 0x5932
-	store 2,mem_5v_adc_hvin_data
-adc_check_1v_hvin:	
-	fetch 2,mem_1v_adc_hvin_data
-	nbranch set_vdd_reference_voltage_4v,blank
-	setarg 0x4323
-	store 2,mem_1v_adc_hvin_data
-set_vdd_reference_voltage_4v:
-	setarg 400
-	store 2,mem_reference_voltage //set reference voltage = 4V
-	rtn 	
-
-adc_init_data_io:
-	fetcht 2,mem_otp_adc_flag
-	setarg OTP_ADC_FLAG
-	isub temp,null
-	branch adc_check_data_io,zero
-	setarg 0x6946
-	store 2,mem_1v_adc_io_data	
-	setarg 0x5377
-	store 2,mem_0_5_adc_io_data
-	branch set_vdd_reference_voltage_0_5v
-
-adc_check_data_io:
-	fetch 2,mem_1v_adc_io_data
-	nbranch adc_check_0_5v_io,blank
-	setarg 0x6946
-	store 2,mem_1v_adc_io_data
-adc_check_0_5v_io:
-	fetch 2,mem_0_5_adc_io_data
-	nbranch set_vdd_reference_voltage_0_5v,blank
-	setarg 0x5377
-	store 2,mem_0_5_adc_io_data
-set_vdd_reference_voltage_0_5v:
-	setarg 50
-	store 2,mem_reference_voltage //set reference voltage = 0.5V
-	rtn	
-
-
-adc_set_mode:
-	fetch 1,mem_adc_config_flag
-	beq ADC_CONFIG_VINLPM,adc_check_vinlpm
-	beq ADC_CONFIG_HVIN,adc_check_hvin
-	beq ADC_CONFIG_GPIO,adc_check_gpio
-	rtn
-adc_check_vinlpm:
-	jam 0xbf,rf_adc_mode	//read VINLPM voltage directly	
-	branch read_adc
-adc_check_hvin:
-	jam 0xaf,rf_adc_mode	//read HVIN voltage directly
-	branch read_adc
-adc_check_gpio:
-	jam 0x8f,rf_adc_mode
-	fetch 1,mem_adc_channel
-	hstore 1,rf_adc_ch
-	branch read_adc
-read_adc:
-	bpatchx patch33_7,mem_patch33
-	hfetch 1,core_uart_baud + 1
-	set1 7,pdata
-	hstore 1,core_uart_baud + 1 
-	hfetch 1,rf_adc_ch
-	or_into 0x30,pdata
-	hstore 1,rf_adc_ch
-	jam 0x7c,rfen_adc
-	jam 0xaa,rf_adc_gc
-	nop 5000
-	hfetcht 2,core_adc_sum
-	hfetch 1,core_uart_baud + 1
-	set0 7,pdata
-	hstore 1,core_uart_baud + 1
-	storet 2,mem_adc_current_value
-	rtn
-
-vdd_calculate_by_mode:
-	bpatchx patch34_0,mem_patch34
-	fetch 1,mem_adc_config_flag
-	beq ADC_CONFIG_VINLPM,vdd_calculate_vinlpm
-	beq ADC_CONFIG_HVIN,vdd_calculate_hvin
-	beq ADC_CONFIG_GPIO,vdd_calculate_io
-	rtn
-
-vdd_calculate_vinlpm:
-	fetch 2,mem_3v_adc_vinlpm_data
-	fetcht 2,mem_2v_adc_vinlpm_data
-	arg 200,regc
-	branch vdd_calculate
-
-vdd_calculate_hvin:
-	fetch 2,mem_5v_adc_hvin_data
-	fetcht 2,mem_1v_adc_hvin_data
-	arg 100,regc
-	branch vdd_calculate
-
-vdd_calculate_io:
-	fetch 2,mem_1v_adc_io_data
-	fetcht 2,mem_0_5_adc_io_data
-	arg 50,regc
-	branch vdd_calculate
-	
-vdd_calculate:
-	isub temp,rega
-	fetch 2,mem_adc_current_value
-	isub temp,pdata
-	nbranch vdd_calculate1,positive
-	fetcht 2,mem_reference_voltage
-	imul32 temp,regb
-	copy regc,pdata
-	imul32 rega,pdata
-	iadd regb,pdata
-vdd_calculate2:
-	idiv rega
-	call wait_div_end
-	quotient pdata	
-	rtn
-
-vdd_calculate1:
-	copy temp,pdata
-	fetcht 2,mem_adc_current_value
-	isub temp,pdata
-	fetcht 2,mem_reference_voltage
-	imul32 temp,regb
-	copy regc,pdata
-	imul32 rega,pdata
-	isub regb,pdata
-	branch vdd_calculate2
-
-/*	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
-	store 1,mem_adc_power_flag
-	rtn
-adc_set_no_power_flag:
-	fetcht 1,mem_adc_power_flag
-	set1 1,temp
-	storet 1,mem_adc_power_flag
-	rtn
-
-ifdef SPI_SIMULATE
-/******************************simulate spi slave start**********************************/
-
-/*
-// Define SPI struct, gpio config
-mem_spi_simulate_struct:
-02	#cs
-03	#sclk
-04	#mosi
-05	#miso
-08	#motion
-*/
-
-/*
-Brief: spi_simulate_init_slave
-Input: None
-Output: None
-Return: None
-Brief: cs_gpio,sclk_gpio,mosi_gpio : input
-	miso_gpio : output
-*/
-spi_simulate_init_slave:
-	call spi_simulate_variable_release_slave
-	branch spi_simulate_gpio_config_slave
-
-spi_simulate_variable_release_slave:
-	arg mem_spi_simulate_read_byte_slave,contw
-	arg 53,loopcnt
-	call buffer_release
-	arg mem_spi_simulate_write_byte_slave,contw
-	arg 54,loopcnt
-	branch buffer_release
-
-buffer_release:
-	setarg 0
-buffer_release_loop:
-	istore 1,contw
-	loop buffer_release_loop
-	rtn
-	
-spi_simulate_gpio_config_slave:
-	fetcht 1,mem_spi_simulate_cs_gpio
-	call gpio_config_input
-	fetcht 1,mem_spi_simulate_sclk_gpio
-	call gpio_config_input
-	fetcht 1,mem_spi_simulate_mosi_gpio
-	call gpio_config_input
-	fetcht 1,mem_spi_simulate_miso_gpio
-	call gpio_config_output
-	fetcht 1,mem_spi_simulate_motion_gpio
-	call gpio_config_output
-	branch spi_simulate_motion_disable
-
-spi_simulate_motion_enable:
-	fetcht 1,mem_spi_simulate_motion_gpio
-	branch gpio_out_inactive
-spi_simulate_motion_disable:
-	fetcht 1,mem_spi_simulate_motion_gpio
-	branch gpio_out_active
-	
-/*
-Brief: spi_simulate_read_byte_slave
-Input: rega: read length
-Output: mem_spi_simulate_read_byte_slave: read buffer
-Return: None
-Brief: when the cs_gpio is low level,slave reads data from master at the rising edge of the sclk gpio
-*/
-spi_simulate_read_byte_slave:
-	copy rega,pdata
-	store 1,mem_spi_simulate_read_length_slave
-	fetcht 1,mem_spi_simulate_cs_gpio
-	call gpio_get_bit
-	nrtn true
-spi_simulate_read_byte_slave1:	
-	jam 0,mem_spi_simulate_read_byte_slave_temp
-	arg 8,loopcnt
-spi_simulate_read_byte_slave_loop:
-	fetcht 1,mem_spi_simulate_cs_gpio
-	call gpio_get_bit
-	nbranch spi_simulate_read_byte_slave_end,true
-	
-	fetcht 1, mem_spi_simulate_sclk_gpio
-	call gpio_get_bit
-	branch spi_simulate_read_byte_slave_loop,true	
-	fetch 1,mem_spi_simulate_read_byte_slave_temp
-	lshift pdata,pdata
-	store 1,mem_spi_simulate_read_byte_slave_temp
-	fetcht 1, mem_spi_simulate_mosi_gpio
-	call gpio_get_bit
-	ncall spi_simulate_read_byte_or_one,true
-spi_simulate_read_byte_slave_loop1:	
-	fetcht 1,mem_spi_simulate_cs_gpio
-	call gpio_get_bit
-	nbranch spi_simulate_read_byte_slave_end,true
-
-	fetcht 1, mem_spi_simulate_sclk_gpio
-	call gpio_get_bit
-	nbranch spi_simulate_read_byte_slave_loop1,true
-	loop spi_simulate_read_byte_slave_loop
-	
-	fetcht 1,mem_spi_simulate_read_length_slave_temp
-	setarg mem_spi_simulate_read_byte_slave
-	iadd temp,contw
-	copy contw,regb
-	increase 1,temp
-	storet 1,mem_spi_simulate_read_length_slave_temp
-	fetch 1,mem_spi_simulate_read_byte_slave_temp
-	copy regb,contw
-	istore 1,contw
-
-	fetch 1,mem_spi_simulate_read_length_slave
-	increase -1,pdata
-	store 1,mem_spi_simulate_read_length_slave
-	nbranch spi_simulate_read_byte_slave1,blank
-	
-spi_simulate_read_byte_slave_loop2:	
-	fetcht 1, mem_spi_simulate_cs_gpio
-	call gpio_get_bit
-	nbranch spi_simulate_read_byte_slave_loop2,true
-spi_simulate_read_byte_slave_end:	
-	jam 0,mem_spi_simulate_read_length_slave
-	jam 0,mem_spi_simulate_read_length_slave_temp
-	jam 0,mem_spi_simulate_read_byte_slave_temp
-	rtn
-
-spi_simulate_read_byte_or_one:
-	fetch 1,mem_spi_simulate_read_byte_slave_temp
-	or_into 1,pdata
-	store 1,mem_spi_simulate_read_byte_slave_temp
-	rtn
-
-
-/*
-Brief: spi_simulate_write_byte_slave
-Input: rega: write length;  write buffer:mem_spi_simulate_write_byte_slave;
-Output: None
-Return: None
-Brief: when the cs_gpio is low level,slave writes data to master at the falling edge of the sclk gpio
-*/
-spi_simulate_write_byte_slave:
-	copy rega,pdata
-	store 1,mem_spi_simulate_write_length_slave
-	jam 0,mem_spi_simulate_write_length_slave_temp
-	jam 0,mem_spi_simulate_write_byte_slave_temp
-	fetcht 1,mem_spi_simulate_cs_gpio
-	call gpio_get_bit
-	nrtn true
-spi_simulate_write_byte_slave1:
-	fetcht 1,mem_spi_simulate_write_length_slave_temp
-	setarg mem_spi_simulate_write_byte_slave
-	iadd temp,contr
-	copy contr,regb
-	increase 1,temp
-	storet 1,mem_spi_simulate_write_length_slave_temp
-	copy regb,contr
-	ifetch 1,contr
-	store 1,mem_spi_simulate_write_byte_slave_temp
-	
-	arg 8,loopcnt
-spi_simulate_write_byte_slave_loop:
-	fetcht 1,mem_spi_simulate_cs_gpio
-	call gpio_get_bit
-	nbranch spi_simulate_write_byte_slave_end,true
-	fetcht 1, mem_spi_simulate_sclk_gpio
-	call gpio_get_bit
-	branch spi_simulate_write_byte_slave_loop,true
-spi_simulate_write_byte_slave_loop1:
-	fetch 1,mem_spi_simulate_write_byte_slave_temp
-	store 1,mem_spi_simulate_write_byte_slave_temp_temp
-	and_into 0x80,pdata
-	beq 0x80,spi_simulate_set_miso_gpio_high
-	call spi_simulate_set_miso_gpio_low
-spi_simulate_write_byte_slave_loop2:
-	fetcht 1,mem_spi_simulate_cs_gpio
-	call gpio_get_bit
-	nbranch spi_simulate_write_byte_slave_end,true
-	fetcht 1, mem_spi_simulate_sclk_gpio
-	call gpio_get_bit
-	nbranch spi_simulate_write_byte_slave_loop2,true	
-	fetch 1,mem_spi_simulate_write_byte_slave_temp_temp
-	lshift pdata,pdata
-	store 1,mem_spi_simulate_write_byte_slave_temp
-	loop spi_simulate_write_byte_slave_loop
-
-	fetch 1,mem_spi_simulate_write_length_slave
-	increase -1,pdata
-	store 1,mem_spi_simulate_write_length_slave
-	nbranch spi_simulate_write_byte_slave1,blank
-	
-spi_simulate_write_byte_slave_loop3:
-	fetcht 1,mem_spi_simulate_cs_gpio
-	call gpio_get_bit
-	branch spi_simulate_write_byte_slave_loop3,true
-spi_simulate_write_byte_slave_end:	
-	jam 0,mem_spi_simulate_write_length_slave_temp
-	jam 0,mem_spi_simulate_write_byte_slave_temp
-	jam 0,mem_spi_simulate_write_byte_slave_temp_temp
-	rtn
-	
-spi_simulate_set_miso_gpio_high:
-	fetcht 1,mem_spi_simulate_miso_gpio
-	call gpio_out_inactive
-	branch spi_simulate_write_byte_slave_loop2
-spi_simulate_set_miso_gpio_low:
-	fetcht 1,mem_spi_simulate_miso_gpio
-	branch gpio_out_active	
-
-/******************************simulate spi slave end**********************************/
-
-endif  //SPI_SIMULATE
-
-
-/****************************************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
-	jam 0,mem_key_value_temp
-keyscan_scan_key_lp1:
-	ifetcht 1, rega
-	call gpio_get_bit
-	bpatchx patch34_1,mem_patch34
-	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
-	ixor temp,null
-	rtn zero
-	enable user
-	rtn
-
-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 patch34_2,mem_patch34
-	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
-	rshift pdata,temp
-	storet 2,mem_key_value
-	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
-	rtn
-keyscan_send_key_data:
-	bpatchx patch34_3,mem_patch34
-	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:
-	hfetch 1,core_clksel
-	ior rega,pdata
-	hstore 1,core_clksel
-	hfetch 2,core_clkoff
-	set0 CLOCK_OFF_PWM,pdata
-	hstore 2,core_clkoff
-	nop 100
-	rtn
-
-/*	typedef struct
-*	{
-*		uint8 gpio_num
-*		uint8 pwm_channel
-*		uint24 frequency
-*		uint8 duty_cycle   //0-100
-*	}PWM_Style;
-	addr: mem_pdatatemp
-*/
-pwm_out_set:
-	fetcht 3,mem_pdatatemp+2
-	setarg PWM_12MHZ
-	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
-	branch pwm_enable
-
-//rega:pcnt ;regb:ncnt ;pdata:pwm channel select
-pwm_duty_cycle_set:
-	beq 0,pwm_pwm0_duty_set
-	beq 1,pwm_pwm1_duty_set
-	beq 2,pwm_pwm2_duty_set
-	beq 3,pwm_pwm3_duty_set
-	beq 4,pwm_pwm4_duty_set
-	beq 5,pwm_pwm5_duty_set
-pwm_pwm0_duty_set:
-	arg core_pwm_pcnt0,contw
-	branch pwm_set_pncnt
-pwm_pwm1_duty_set:
-	arg core_pwm_pcnt1,contw
-	branch pwm_set_pncnt
-pwm_pwm2_duty_set:
-	arg core_pwm_pcnt2,contw
-	branch pwm_set_pncnt
-pwm_pwm3_duty_set:
-	arg core_pwm_pcnt3,contw
-	branch pwm_set_pncnt
-pwm_pwm4_duty_set:
-	arg core_pwm_pcnt4,contw
-	branch pwm_set_pncnt
-pwm_pwm5_duty_set:
-	arg core_pwm_pcnt5,contw
-	branch pwm_set_pncnt
-pwm_set_pncnt:
-	copy rega,pdata
-	istore 2,contw
-	copy regb,pdata
-	istore 2,contw
-	rtn
-
-
-//pdata:gpio select
-pwm_enable:
-	enable user
-	branch pwm_gpio_set
-pwm_disable:
-	disable user
-pwm_gpio_set:
-	beq 4,pwm_gpio4_set
-	beq 5,pwm_gpio5_set
-	beq 27,pwm_gpio27_set
-	beq 28,pwm_gpio28_set
-	beq 3,pwm_gpio3_set
-	beq 8,pwm_gpio8_set
-	beq 20,pwm_gpio20_set
-	beq 21,pwm_gpio21_set
-	beq 22,pwm_gpio22_set
-	beq 23,pwm_gpio23_set
-	rtn
-
-
-pwm_gpio4_set:	//pwm 0
-	arg 6,queue
-	branch pwm_one_set_select
-pwm_gpio5_set:	//pwm 1
-  	arg 7,queue
-	branch pwm_one_set_select
-pwm_gpio27_set:	//pwm 2
-  	arg 8,queue
-	branch pwm_one_set_select
-pwm_gpio28_set:	//pwm 3
-	arg 9,queue
-	branch pwm_one_set_select
-pwm_gpio3_set:	//pwm 4
- 	arg 10,queue
-	branch pwm_one_set_select
-pwm_gpio8_set:	//pwm 5
-  	arg 11,queue
-	branch pwm_one_set_select
-pwm_gpio20_set:	//pwm 0
-  	arg 12,queue
-	branch pwm_tw0_set_select
-pwm_gpio21_set:	//pwm 1
-  	arg 13,queue
-	branch pwm_tw0_set_select
-pwm_gpio22_set:	//pwm 2
-   	arg 14,queue
-	branch pwm_tw0_set_select
-pwm_gpio23_set:	//pwm 3
-    	arg 15,queue
-	branch pwm_tw0_set_select
-
-pwm_set_select:
-	hfetch 2,core_gpio_sel1
-	qsetflag user,pdata
-	hstore 2,core_gpio_sel1
-	copy rega,queue
-	hfetch 1,core_gpio_key2
-   	qsetflag user,pdata
-   	hstore 1,core_gpio_key2
-	rtn
-
-pwm_one_set_select:
-	add queue,-4,rega
-	branch pwm_set_select
-
-pwm_tw0_set_select:
-	add queue,-10,rega
-	branch pwm_set_select
-
-
-	
Index: DPI_Switch/program/rfcomm.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/rfcomm.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/rfcomm.prog	(nonexistent)
@@ -1,960 +0,0 @@
-
-ifdef COMPILE_RFCOMM
-rfcomm_init:
-	rtn wake
-	jam 0,mem_rfcomm_send_more_pkt
-	jam BITS9600,memRemoteRPNBitRate        
-	jam DATABITS8,memRemotePRNDataBits      
-	jam 0x11,memRemotePRNXon
-	jam 0x13,memRemotePRNXoff
-	setarg 0
-	store 3,memRemotePRNStopBit
-	store 1,mem_spp_state                  
-	jam 0,memui_reconnect_mode
-	//branch rfcomm_init_spp
-rfcomm_init_spp:
-	bpatchx patch34_4,mem_patch34
-	setarg 0
-	store 1,mem_spp_state
-	store 1,mem_remote_spp_channel
-	store 1,mem_pn_dlci
-	fetch 1,mem_credit_flag
-	beq CREDIT_ENABLE,rfcomm_init_spp_with_credit
-	jam 0x50,mem_credit_given
-	rtn
-
-rfcomm_init_spp_with_credit:
-	jam 0x00,mem_credit_given
-	rtn
-
-set_CR_bit:
-	or_into 0x02,temp
-	rtn
-
-
-/*below added by koufan*/
-
-/*rfcomm_send */
-
-
-
-	/*rfcomm_calculate_FCS_sabm*/
-	/*input: address in temp*/
-	/*output: FCS in pdata  */
-rfcomm_calculate_FCS_sabm:
-	copy temp,pdata
-	reverse pdata,pdata //address
-	store 1,memFCStemp3
-	force INI_TX_SABM,pdata
-	reverse pdata,pdata
-	store 1,memFCStemp2
-	force 0x01,pdata                        
-	reverse pdata,pdata
-	store 1,memFCStemp1
-	call caculate_fcs
-	copy temp,pdata                        
-	rtn
-rfcomm_calculate_FCS_ua:
-	reverse pdata,pdata //address
-	store 1,memFCStemp3
-	force   RSP_TX_UA, pdata
-	reverse pdata, pdata
-	store   1, memFCStemp2
-	force   0x01, pdata
-	reverse pdata, pdata
-	store   1, memFCStemp1
-	branch caculate_fcs
-	/* FCS return from temp                */
-rfcomm_calculate_FCS_dlci0:
-	fetch 1,mem_rfcomm_initiator
-	branch rfcomm_calculate_FCS_dlci0_res,blank
-	setarg 0x70 //FCS of initiator
-	rtn
-rfcomm_calculate_FCS_dlci0_res:
-	setarg 0xaa//FCS of responder
-	rtn
-	
-rfcomm_save_FCS_uih:
-	reverse pdata, pdata //address 
-	store 1,memFCStemp3                     /* contw distroided                    */
-	force RSP_RX_UIH,pdata 
-	call caculate_UIHdata_fcs
-	fetcht 2,mem_contw_temp
-	copy temp,contw
-	istore 1,contw                      /* save FCS for later use              */
-	copy contw,temp
-	storet 2,mem_contw_temp
-	force RSP_RX_UIH_WDATA,pdata             /* P/F =1 + RSP_RX_UIH                 */
-	call caculate_UIHdata_fcs
-	fetcht 2,mem_contw_temp
-	copy temp,contw
-	istore 1,contw             /* save FCS for later use              */
-	rtn	
-/**********************************************************************/
-/* This subroutine caculates the FCS for UIH data                     */
-/* Input:                                                             */
-/*        the address byte at memFCStemp3(bit reversed), control byte */
-/*        at pdata (not bit reversed)                                 */
-/* Output:                                                            */
-/*        pdata: the FCS                                              */
-/**********************************************************************/  
-caculate_UIHdata_fcs:
-	reverse pdata,pdata
-	store   1,memFCStemp2
-	fetch   2, memFCStemp2                     
-	lshift8 pdata,pdata
-	store 3,mem_mod2div_temp
-	arg     0x107,regA
-	arg 0xf,regB
-	call mod2div
-	xor_into     0xd7, pdata
-	invert  pdata,pdata
-	reverse pdata,pdata
-	rtn
-	
-/**********************************************************************/
-/* This subroutine caculates the FCS                                  */
-/* Input:                                                             */
-/*        the address byte at memFCStemp3, control byte at memFCStemp2*/  
-/*        lenght at memFCStemp1 (all above data are bit reversed)     */
-/* Output:                                                            */
-/*        temp: the FCS                                               */
-/**********************************************************************/     
-caculate_fcs:
-	fetch 3, memFCStemp1                    /* load 3 bytes start at memFCStemp1   */
-	store 3,mem_mod2div_temp
-	arg 0x107,regA
-	arg 0xf,regB  //24bit(memFCStemp1+..+memFCStemp3) - 9bit(regA) = 15bit
-	call mod2div
-	lshift8 pdata,pdata 
-	arg 0x7, regB  //16bit(lshift8 pdata,pdata ) - 9bit(regA) = 7bit
-	call mod2div
-	xor_into     0x2b, pdata		//0x3d
-	invert  pdata, pdata                        
-	reverse pdata, pdata                      /* FCS at pdata                        */
-	copy    pdata, temp
-	rtn
-
-mod2div:
-	arg 0,regC
-	copy regB,loopcnt
-	call right_shift_n // right shift pdata (regB)bit
-	icopy temp
-mod2div_loop:
-	//jam 1,0x1fff
-//mod2div_loop1:
-	//fetch 1,0x1fff
-	//nbranch mod2div_loop1,blank
-	copy temp,pdata
-	lshift regC,regC//quotient
-	bbit0 8, mod2div_not_enough_reduction//the high bit of 0x107
-	ixor regA,temp// temp----remainer
-	increase 1,regC// quotient
-mod2div_not_enough_reduction: //Minuend smaller than Subtrahend
-	lshift temp,temp
-	fetch 3,mem_mod2div_temp
-	increase -1,regB
-	compare 0xff,regB,0xff
-	branch mod2div_end,true
-	copy regB,loopcnt
-	call right_shift_n // right shift pdata (regB)bit
-	isolate1 0,pdata
-	setflag true,0,temp //move a new bit from Dividend(queue) into Minuend(pdata)
-	branch mod2div_loop
-mod2div_end:
-	//output:remainer in pdata
-	rshift  temp,pdata
-	rtn
-
-get_rfcomm_snd_adss:
-	fetcht 1,mem_pn_dlci
-dlci_to_address_cmd:
-	//input DLCI from temp
-	lshift2 temp,temp
-	set1 RFCOMM_ADDRESS_EXT_LEN,temp
-	fetch 1,mem_rfcomm_initiator
-	ncall set_CR_bit,blank
-	storet 1,mem_rfcomm_send_adss
-	rtn
-
-channel_to_dlci:
-	//input channel from temp
-	lshift temp,temp
-	fetch 1,mem_rfcomm_initiator
-	setflag blank,0,temp //direction in dlci
-	//output dlci to temp
-	rtn
-rfcomm_rx_process_DLCI0_sabm:
-	fetcht 1,mem_current_channel //address
-	jam 0xd7,mem_current_fcs //FCS
-	call rfcomm_send_ua
-	fetch 1,mem_rfcomm_state
-	set1 L2CAP_CHANNEL_RFCOMM_ONLY_SABM,pdata
-	set1 L2CAP_CHANNEL_RFCOMM_ONLY_UA,pdata
-	store 1,mem_rfcomm_state
-	jam 0,mem_rfcomm_initiator
-	branch rfcomm_rx_process_end
-rfcomm_rx_process_DLCI0_ua:
-	fetch 1,mem_rfcomm_state
-	set1 L2CAP_CHANNEL_RFCOMM_ONLY_UA,pdata
-	store 1,mem_rfcomm_state
-	branch rfcomm_rx_process_end
-
-	
-rfcomm_rx_process:
-	bpatchx patch34_5,mem_patch34
-	fetch 1,memui_reconnect_mode
-	beq NO_RECONNECTION,rfcomm_rx_process_remote_page
-	branch rfcomm_rx_process_reconn
-
-rfcomm_rx_process_remote_page:
-	fetch 2,mem_l2cap_payload_ptr
-	copy pdata,contr
-	call get_rfcomm_head_struct
-	fetch 1,mem_current_channel
-	beq 0,parse_dlci0_rp
-	branch parse_uih_rp
-parse_dlci0_rp:
-	bpatchx patch34_6,mem_patch34
-	fetch 1,mem_current_frame_type
-	beq RFCOMM_FRAME_TYPE_SABM,rfcomm_rx_process_DLCI0_sabm
-	beq RFCOMM_FRAME_TYPE_UA,rfcomm_rx_process_DLCI0_ua
-	beq RFCOMM_FRAME_TYPE_UIH,parse_DLCI0_rp_uih
-	beq RFCOMM_FRAME_TYPE_DISCONN,parse_uih_rp_spp_disconn_send_event
-	rtn
-
-
-parse_DLCI0_rp_uih:
-	fetch 2,mem_rfcomm_uih_payload_ptr
-	copy pdata,contr
-	call get_rfcomm_uih_head_struct
-	fetch 1,mem_uih_cmd_type
-	beq UIH_PARAM_NEG_CMD,parse_DLCI0_rp_uih_pn_cmd
-	beq UIH_PARAM_NEG_RES,parse_DLCI0_rp_uih_pn_res
-	beq UIH_MODEM_STATUS_CMD,parse_DLCI0_rp_uih_ms_cmd
-	beq UIH_MODEM_STATUS_RES,parse_DLCI0_rp_uih_ms_res
-	beq UIH_PARAM_CMD_REMOVE_PORT,parse_DLCI0_rp_uih_cmd_port	
-	branch rfcomm_rx_process_end
-	
-parse_DLCI0_rp_uih_pn_cmd:
-	call parse_DLCI0_rp_uih_pn_res_common
-
-	branch parse_DLCI0_rp_uih_pn_cmd_spp
-
-parse_DLCI0_rp_uih_pn_cmd_spp:
-	fetch 1,mem_spp_state
-	set1 RFCOMM_CHANNEL_STATE_PN_CMD,pdata
-	set1 RFCOMM_CHANNEL_STATE_PN_RES,pdata
-	store 1,mem_spp_state
-	call rfcomm_send_param_neg_res
-	branch rfcomm_rx_process_end
-	
-parse_DLCI0_rp_uih_pn_res:
-	call parse_DLCI0_rp_uih_pn_res_common
-	branch rfcomm_rx_process_end
-
-parse_DLCI0_rp_uih_pn_res_common:
-	call get_param_payload_ptr
-	branch  get_rfcomm_prarmer_negotiation
-
-get_rfcomm_param_modem_status:
-	call get_param_payload_ptr
-	ifetch 1,contr
-	rshift3 pdata,pdata
-	store 1,mem_ms_channel
-	ifetch 1,contr
-	store 1,mem_ms_param
-	rtn
-
-
-get_rfcomm_head_struct:
-	ifetch 1,contr
-	store 1,mem_current_adss
-	rshift3 pdata,pdata
-	store 1,mem_current_channel
-	ifetch 1,contr
-	store 1,mem_current_frame_type
-get_rfcomm_current_length:
-	call get_rfcomm_length_common
-	storet 2,mem_current_length
-	copy contr,pdata
-	store 2,mem_rfcomm_uih_payload_ptr
-	rtn
-
-get_rfcomm_uih_head_struct:
-	ifetch 1,contr
-	rshift pdata,pdata
-	store 1,mem_uih_cmd_type
-	call get_rfcomm_length_common
-	storet 2,mem_uih_length
-	copy contr,pdata
-	store 2,mem_param_payload_ptr
-	rtn
-
-
-get_param_payload_ptr:
-	fetch 2,mem_param_payload_ptr
-	copy pdata,contr
-	rtn
-
-get_rfcomm_length_common:
-	ifetch 1,contr
-	copy pdata,temp
-	rshift temp,temp
-	rtnbit1 0
-	ifetch 1,contr
-	lshift3 pdata,pdata
-	lshift4 pdata,pdata
-	iadd temp,temp
-	rtn
-
-get_rfcomm_prarmer_negotiation:
-	ifetch 1,contr
-	store 1,mem_pn_dlci
-	ifetch 1,contr
-	store 1,mem_pn_credit_flow_type_info
-	ifetch 1,contr
-	store 1,mem_pn_priority
-	ifetch 1,contr
-	store 1,mem_pn_acknowledg_timer
-	ifetch 2,contr
-	store 2,mem_pn_max_frame_size
-	ifetch 1,contr
-	store 1,mem_pn_max_retrans
-	ifetch 1,contr
-	store 1,mem_remote_credits
-	rtn
-
-
-parse_DLCI0_rp_uih_ms_cmd:
-	call get_rfcomm_param_modem_status
-
-	branch parse_DLCI0_rp_uih_ms_cmd_spp
-
-parse_DLCI0_rp_uih_ms_cmd_spp:
-	fetch 1,mem_spp_state
-	set1 RFCOMM_CHANNEL_STATE_RCV_MS_CMD,pdata
-	set1 RFCOMM_CHANNEL_STATE_SND_MS_RES,pdata
-	store 1,mem_spp_state
-	fetcht 1,mem_pn_dlci
-	lshift2 temp,temp
-	or_into 3,temp
-	call rfcomm_send_modem_status_res
-	jam MORE_PKT_MSC_CMD_SPP,mem_rfcomm_send_more_pkt
-	branch rfcomm_rx_process_end
-	
-parse_DLCI0_rp_uih_ms_res:
-	jam BT_EVT_SPP_CONNECTED,mem_fifo_temp
-	call ui_ipc_send_event
-	call get_rfcomm_param_modem_status
-	fetch 1,mem_ms_channel
-	sub pdata,1,null
-	branch parse_DLCI0_rp_uih_MS_RES_spp,zero
-	branch assert
-parse_DLCI0_rp_uih_ms_res_spp:
-	fetch 1,mem_spp_state
-	set1 RFCOMM_CHANNEL_STATE_RCV_MS_RES,pdata
-	store 1,mem_spp_state
-	branch rfcomm_rx_process_end
-
-parse_DLCI0_rp_uih_cmd_port:
-	call get_param_payload_ptr
-	ifetch 1,contr
-	store 1,mem_rpn_dlci
-	call l2cap_malloc_rfcomm_channel
-	call l2cap_get_rfcomm_tx_buff
-	setarg 0x000e
-	istore 2,contw //l2cap len
-	fetch 2,mem_rfcomm_remote_cid
-	istore 2,contw//cid
-	fetch 1,mem_rfcomm_initiator
-	//setarg 5
-	lshift pdata,pdata
-	set1 0,pdata //ext len
-	istore 1,contw //DLCI0 address
-	bpatchx patch34_7,mem_patch34
-	setarg 0x15ef
-	istore 2,contw
-	setarg 0x1191
-	istore 2,contw
-	//fetch 1,mem_pn_dlci
-	//setarg 0x0b
-	fetch 1,mem_rpn_dlci
-	istore 1,contw //DLCI
-	setarg 0x000007
-	istore 5,contw
-//	setarg 0 //max frame size
-//	istore 2,contw 
-	setarg 0x01 //max retrans
-	istore 2,contw
-//	setarg 0x00
-//	istore 1,contw // init credits
-	call rfcomm_calculate_FCS_dlci0
-	istore 1,contw
-	rtn
-
-
-
-parse_uih_rp:
-	branch parse_uih_rp_spp
-
-parse_uih_rp_spp:
-	bpatchx patch35_0,mem_patch35
-	fetch 1,mem_current_frame_type
-	beq RFCOMM_FRAME_TYPE_UA,parse_uih_rp_spp_ua
-	beq RFCOMM_FRAME_TYPE_SABM,parse_uih_rp_spp_sabm
-	beq RFCOMM_FRAME_TYPE_UIH,parse_uih_spp_uih
-	beq RFCOMM_FRAME_TYPE_UIH_CREDITS,parse_uih_spp_uih_credits
-	beq RFCOMM_FRAME_TYPE_DISCONN,parse_uih_rp_spp_disconn
-	rtn
-parse_uih_rp_spp_ua:
-	fetch 1,mem_spp_state
-	set1 RFCOMM_CHANNEL_STATE_UA,pdata
-	store 1,mem_spp_state
-	branch rfcomm_rx_process_end
-parse_uih_rp_spp_sabm:
-	fetch 1,mem_spp_state
-	set1 RFCOMM_CHANNEL_STATE_UA,pdata
-	set1 RFCOMM_CHANNEL_STATE_SABM,pdata
-	store 1,mem_spp_state
-	fetch 1,mem_current_adss
-	call rfcomm_calculate_FCS_ua
-	store 1,mem_current_fcs
-	call rfcomm_send_ua
-	fetch 1,mem_current_adss
-	rshift2 pdata,pdata
-	store 1,mem_pn_dlci
-	lshift2 pdata,pdata
-	set0 RFCOMM_ADDRESS_CR,pdata
-	set1 RFCOMM_ADDRESS_EXT_LEN,pdata 
-	arg mem_HIUfcs_spp,temp // mem_HIUfcs_HF_WCredits in regB++
-	storet 2,mem_contw_temp
-	call rfcomm_save_FCS_uih
-	branch rfcomm_rx_process_end
-	
-parse_uih_spp_uih_credits:
-	fetch 2,mem_rfcomm_uih_payload_ptr
-	copy pdata,contr
-	increase 1,pdata
-	store 2,mem_rfcomm_uih_payload_ptr
-	ifetch 1,contr //remote credits
-	fetcht 1,mem_remote_credits
-	iadd temp,pdata
-	store 1,mem_remote_credits
-parse_uih_spp_uih:
-	call rfcomm_increase_credit_given
-parse_uih_spp_uih_cont:
-	call get_rfcomm_snd_adss
-	call rfcomm_send_uih_without_payload
-	call spp_process_rx_data
-	branch rfcomm_rx_process_end
-
-parse_uih_rp_spp_disconn_send_event:
-	jam BT_EVT_SPP_DISCONNECTED,mem_fifo_temp
-	call ui_ipc_send_event	
-parse_uih_rp_spp_disconn:
-	call rfcomm_init_spp
-	fetch 1,mem_current_adss
-	call rfcomm_calculate_FCS_ua
-	store 1,mem_current_fcs
-	call rfcomm_send_ua
-	branch rfcomm_rx_process_end
-	
-///////////////////////////////////////////
-///////////////////////////////////////////
-///////////////////////////////////////////
-rfcomm_rx_process_reconn:
-	fetch 2,mem_l2cap_payload_ptr
-	copy pdata,contr
-	call get_rfcomm_head_struct
-	fetch 1,mem_current_channel
-	beq 0,parse_DLCI0_reconn
-	branch parse_uih_reconn
-		
-parse_DLCI0_reconn:
-	bpatchx patch35_1,mem_patch35
-	fetch 1,mem_current_frame_type
-	beq RFCOMM_FRAME_TYPE_SABM,rfcomm_rx_process_DLCI0_sabm
-	beq RFCOMM_FRAME_TYPE_UA,rfcomm_rx_process_DLCI0_ua
-	beq RFCOMM_FRAME_TYPE_UIH,parse_DLCI0_reconn_uih
-	branch rfcomm_rx_process_end
-parse_DLCI0_reconn_uih:
-	fetch 2,mem_rfcomm_uih_payload_ptr
-	copy pdata,contr
-	call get_rfcomm_uih_head_struct
-	fetch 1,mem_uih_cmd_type
-	beq UIH_PARAM_NEG_CMD,parse_DLCI0_reconn_uih_pn_cmd
-	beq UIH_PARAM_NEG_RES,parse_DLCI0_reconn_uih_pn_cmd
-	beq UIH_MODEM_STATUS_CMD,parse_DLCI0_reconn_uih_ms_cmd
-	beq UIH_MODEM_STATUS_RES,parse_DLCI0_reconn_uih_ms_res
-	branch rfcomm_rx_process_end
-
-parse_DLCI0_reconn_uih_pn_cmd:
-	call parse_DLCI0_rp_uih_pn_res_common
-	fetch 1,mem_pn_dlci
-	rshift pdata,pdata
-	fetcht 1,mem_remote_spp_channel
-	isub temp,null
-	branch parse_DLCI0_reconn_uih_pn_cmd_spp,zero
-	branch assert
-parse_DLCI0_reconn_uih_pn_cmd_spp:
-	fetch 1,mem_spp_state
-	set1 RFCOMM_CHANNEL_STATE_PN_RES,pdata
-	store 1,mem_spp_state
-	branch rfcomm_rx_process_end
-
-parse_DLCI0_reconn_uih_ms_cmd:
-	call get_rfcomm_param_modem_status
-	fetch 1,mem_ms_channel
-	fetcht 1,mem_remote_spp_channel
-	isub temp,null
-	branch parse_DLCI0_reconn_uih_ms_cmd_spp,zero
-	branch assert
-	branch rfcomm_rx_process_end
-parse_DLCI0_reconn_uih_ms_cmd_spp:
-	fetch 1,mem_spp_state
-	set1 RFCOMM_CHANNEL_STATE_RCV_MS_CMD,pdata
-	set1 RFCOMM_CHANNEL_STATE_SND_MS_RES,pdata
-	store 1,mem_spp_state
-	fetcht 1,mem_pn_dlci
-	lshift2 temp,temp
-	or_into 3,temp
-	call rfcomm_send_modem_status_res
-	branch rfcomm_rx_process_end
-	
-parse_DLCI0_reconn_uih_ms_res:
-	call get_rfcomm_param_modem_status
-	fetch 1,mem_ms_channel
-	fetcht 1,mem_remote_spp_channel
-	isub temp,null
-	branch parse_DLCI0_reconn_uih_ms_res_spp,zero
-	branch assert
-parse_DLCI0_reconn_uih_ms_res_spp:
-	fetch 1,mem_spp_state
-	set1 RFCOMM_CHANNEL_STATE_RCV_MS_RES,pdata
-	store 1,mem_spp_state
-	branch rfcomm_rx_process_end
-
-parse_uih_reconn:
-	fetch 1,mem_current_channel
-	fetcht 1,mem_remote_spp_channel
-	isub temp,null
-	branch parse_uih_reconn_spp,zero
-	branch assert
-	branch rfcomm_rx_process_end
-
-parse_uih_reconn_spp:
-	fetch 1,mem_current_frame_type
-	beq RFCOMM_FRAME_TYPE_UA,parse_uih_reconn_spp_ua
-	beq RFCOMM_FRAME_TYPE_UIH,parse_uih_spp_uih
-	beq RFCOMM_FRAME_TYPE_UIH_CREDITS,parse_uih_spp_uih_credits
-	beq RFCOMM_FRAME_TYPE_DISCONN,parse_uih_reconn_spp_disconn
-parse_uih_reconn_spp_ua:
-	fetch 1,mem_spp_state
-	set1 RFCOMM_CHANNEL_STATE_UA,pdata
-	store 1,mem_spp_state
-	branch rfcomm_rx_process_end
-parse_uih_reconn_spp_sabm:
-	branch parse_uih_reconn_spp_sabm//loop
-parse_uih_reconn_spp_disconn:
-	branch parse_uih_rp_spp_disconn
-rfcomm_rx_process_end:
-	rtn
-	
-rfcomm_send_more_pkt:
-	fetch 1,mem_rfcomm_send_more_pkt
-	rtn blank
-	beq MORE_PKT_MSC_CMD_SPP,rfcomm_send_more_pkt_msc_cmd_spp
-	branch assert
-	
-rfcomm_send_more_pkt_msc_cmd_spp:
-	jam 0,mem_rfcomm_send_more_pkt
-	call l2cap_malloc_rfcomm_channel
-	arg SPP_SLAVE_CHANNEL,temp
-	fetcht 1,mem_pn_dlci
-	lshift2 temp,temp
-rfcomm_send_more_pkt_msc_cmd_spp0:
-	or_into 0x03,temp
-	arg 0xaa,regA
-	call rfcomm_send_modem_status_cmd
-	call l2cap_get_rfcomm_tx_buff
-	copy contw,contr
-	ifetch 2, contr
-	branch assert,blank
-	rtn
-
-rfcomm_send_sabm:
-	call l2cap_get_rfcomm_tx_buff
-	setarg 0x0004
-	istore 2,contw //l2cap len
-	fetch 2,mem_rfcomm_remote_cid
-	istore 2,contw//cid
-	fetch 1,mem_current_adss
-	istore 1,contw //address
-	bpatchx patch35_2,mem_patch35
-	setarg 0x013f
-	istore 2,contw
-	fetch 1,mem_current_fcs
-	istore 1,contw
-	rtn
-rfcomm_send_ua:
-	call l2cap_malloc_rfcomm_channel
-	call l2cap_get_rfcomm_tx_buff
-	setarg 0x0004
-	istore 2,contw //l2cap len
-	fetch 2,mem_rfcomm_remote_cid
-	istore 2,contw//cid
-	fetch 1,mem_current_adss
-	istore 1,contw //address
-	bpatchx patch35_3,mem_patch35
-	setarg 0x0173
-	istore 2,contw
-	fetch 1,mem_current_fcs
-	istore 1,contw
-	rtn
-rfcomm_send_param_neg_cmd:
-	call l2cap_get_rfcomm_tx_buff
-	setarg 0x000e
-	istore 2,contw //l2cap len
-	fetch 2,mem_rfcomm_remote_cid
-	istore 2,contw//cid
-	fetch 1,mem_rfcomm_initiator
-	lshift pdata,pdata
-	set1 0,pdata //ext len
-	istore 1,contw //DLCI0 address
-	bpatchx patch35_4,mem_patch35
-	setarg 0x15ef
-	istore 2,contw
-	setarg 0x1183
-	istore 2,contw
-	copy temp,pdata //DLCI in temp
-	istore 1,contw
-	setarg 0x0000f0
-	istore 3,contw
-	setarg RFCOMM_MAX_FRAME_SIZE
-	istore 2,contw
-	setarg 0
-	istore 1,contw
-	setarg 0x01		//change here later
-	istore 1,contw
-	call rfcomm_calculate_FCS_dlci0
-	istore 1,contw
-	jam 0x10,mem_credit_given
-	rtn
-rfcomm_send_param_neg_res:
-	call l2cap_malloc_rfcomm_channel
-	call l2cap_get_rfcomm_tx_buff
-	setarg 0x000e
-	istore 2,contw //l2cap len
-	fetch 2,mem_rfcomm_remote_cid
-	istore 2,contw//cid
-	fetch 1,mem_rfcomm_initiator
-	lshift pdata,pdata
-	set1 0,pdata //ext len
-	istore 1,contw //DLCI0 address
-	bpatchx patch35_5,mem_patch35
-	setarg 0x15ef
-	istore 2,contw
-	setarg 0x1181
-	istore 2,contw
-	fetch 1,mem_pn_dlci
-	istore 1,contw //DLCI
-	setarg 0x0000e0
-	istore 3,contw
-	fetch 2,mem_rfcomm_max_frame_size
-	istore 2,contw 
-	setarg 0x00 //max retrans
-	istore 1,contw
-	fetch 1,mem_rfcomm_credit_init_data
-	istore 1,contw // init credits
-	call rfcomm_calculate_FCS_dlci0
-	istore 1,contw
-	rtn
-rfcomm_send_modem_status_cmd:
-	call l2cap_get_rfcomm_tx_buff
-	setarg 0x0008
-	istore 2,contw //l2cap len
-	fetch 2,mem_rfcomm_remote_cid
-	istore 2,contw//cid
-	fetch 1,mem_rfcomm_initiator
-	lshift pdata,pdata
-	set1 0,pdata //ext len
-	istore 1,contw //DLCI0 address
-	bpatchx patch35_6,mem_patch35
-	setarg 0x09ef
-	istore 2,contw
-	setarg 0x05e3
-	istore 2,contw
-	copy temp,pdata //DLCI adress
-	istore 1,contw
-	setarg 0x8d
-	istore 1,contw
-	call rfcomm_calculate_FCS_dlci0
-	istore 1,contw
-	rtn
-
-rfcomm_send_modem_status_res:
-	call l2cap_malloc_rfcomm_channel
-	call l2cap_get_rfcomm_tx_buff
-	setarg 0x0008
-	istore 2,contw //l2cap len
-	fetch 2,mem_rfcomm_remote_cid
-	istore 2,contw//cid
-	copy temp,timeup
-	fetch 1,mem_rfcomm_initiator
-	lshift pdata,pdata
-	set1 0,pdata //ext len
-	istore 1,contw //DLCI0 address
-	bpatchx patch35_7,mem_patch35
-	setarg 0x09ef
-	istore 2,contw
-	setarg 0x05e1
-	istore 2,contw
-	copy timeup,pdata //DLCI address in temp
-	istore 1,contw
-	setarg 0x8d
-	istore 1,contw
-	call rfcomm_calculate_FCS_dlci0
-	istore 1,contw
-	rtn
-
-rfcomm_send_uih_without_payload:
-	bpatchx patch36_0,mem_patch36
-	fetch 1,mem_credit_given
-	rtn blank
-	hfetch 2,core_uart_rxitems
-	nrtn blank
-	copy rega,pdata
-	store 1,mem_pdatatemp+1
-	storet 1,mem_pdatatemp
-	call l2cap_malloc_is_fifo_full
-	nrtn blank
-	call l2cap_malloc_rfcomm_channel
-	call l2cap_get_rfcomm_tx_buff
-	setarg 0x05
-	istore 2,contw
-	fetch 2,mem_RFCOMM_remote_CID
-	istore 2,contw
-	fetch 1,mem_rfcomm_send_adss
-	istore 1,contw
-	setarg 0x01ff
-	istore 2,contw
-	fetch 1,mem_credit_given
-	istore 1,contw
-	fetch 1,mem_HIUfcs_SPP_WCredits
-	istore 1,contw
-	jam 0,mem_credit_given
-	rtn
-	
-rfcomm_increase_credit_given:
-	bpatchx patch36_1,mem_patch36
-	fetch 1,mem_credit_flag
-	rtneq CREDIT_ENABLE
-	fetch 2,mem_current_length
-	rtn blank
-	fetch 1,mem_credit_given
-	increase 1,pdata
-	store 1,mem_credit_given
-	rtn
-
-spp_process_rx_data:
-	fetch 2,mem_cb_receive_spp_data
-	branch callback_func
-
-spp_tx_rfcomm_packet:
-	bpatchx patch36_2,mem_patch36
-	//credit
-	fetch 1,mem_remote_credits
-	rtn blank
-	increase -1,pdata
-	store 1,mem_remote_credits
-	fetch 2,mem_pn_max_frame_size
-	fetcht 2,mem_current_packet_length
-	isub temp,null
-	branch ssp_tx_rfcomm_from_uart,positive
-	store 2,mem_current_packet_length
-ssp_tx_rfcomm_from_uart:
-	fetch 1,mem_credit_given
-	branch ssp_tx_rfcomm_from_uart_without_credit,blank
-	jam 1,mem_rfcomm_send_offset
-	fetch 1,mem_HIUfcs_SPP_WCredits
-	store 1,mem_rfcomm_send_fcs
-	setarg RSP_RX_UIH_WDATA
-	store 1,mem_rfcomm_send_frame_type
-	branch ssp_tx_rfcomm_from_uart_common
-ssp_tx_rfcomm_from_uart_without_credit:
-	jam 0,mem_rfcomm_send_offset
-	fetch 1,mem_HIUfcs_SPP
-	store 1,mem_rfcomm_send_fcs
-	setarg RSP_TX_UIH
-	store 1,mem_rfcomm_send_frame_type
-ssp_tx_rfcomm_from_uart_common:
-	bpatchx patch36_3,mem_patch36
-	fetch 2,mem_current_packet_length
-	sub pdata,127,null
-	branch ssp_tx_rfcomm_from_uart_common0,positive
-	fetch 1,mem_rfcomm_send_offset
-	increase 1,pdata
-	store 1,mem_rfcomm_send_offset
-ssp_tx_rfcomm_from_uart_common0:
-	call get_rfcomm_snd_adss
-	fetch 2,mem_current_packet_length
-	increase 8,pdata	//fcs + rfcommhead + l2caphead == 8
-	fetcht 1,mem_rfcomm_send_offset
-	iadd temp,rega
-	//rfcomm payload
-	call l2cap_malloc
-	store 2,mem_rfcomm_tx_buff_ptr
-	increase 4,pdata
-	store 2,mem_rfcomm_tx_payload_ptr
-	copy pdata,contw
-	fetch 1,mem_rfcomm_send_adss
-	istore 1,contw
-	fetch 1,mem_rfcomm_send_frame_type
-	istore 1,contw
-	call ssp_tx_write_length
-	call ssp_tx_write_given_credit
-	bpatchx patch36_4,mem_patch36
-	fetch 2,mem_nl_rx_data_src		//src
-	copy pdata,contru
-	fetch 2,mem_current_packet_length
-	copy pdata,loopcnt
-	call uart_copy_rx_bytes_fast
-	copy contw,temp
-	copy contru,pdata
-	store 2,mem_nl_rx_data_src
-	copy temp,contw	
-	fetch 1,mem_rfcomm_send_fcs
-	istore 1,contw
-	fetch 2,mem_rfcomm_tx_buff_ptr
-	copy pdata,contw
-	fetch 2,mem_current_packet_length
-	fetcht 1,mem_rfcomm_send_offset
-	iadd temp,pdata
-	increase 4,pdata
-	istore 2,contw
-	fetch 2,mem_rfcomm_remote_cid
-	istore 2,contw
-	jam 0,mem_credit_given	//whatever mem_credit_given is set to 0
-	fetch 2,mem_nl_rx_len_all
-	beq 0,module_hci_command_tx_spp_tx_complete
-	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
-	rtn
-
-ssp_tx_write_length:
-	bpatchx patch36_5,mem_patch36
-	fetch 2,mem_current_packet_length
-	sub pdata,0x7f,null
-	nbranch ssp_tx_write_long_packet,positive
-	lshift pdata,pdata
-	set1 0,pdata
-	istore 1,contw
-	rtn
-ssp_tx_write_long_packet:
-	fetch 2,mem_current_packet_length
-	rshift3 pdata,pdata
-	rshift4 pdata,temp
-	and_into 0x7f,pdata
-	lshift pdata,pdata
-	set0 0,pdata
-	istore 1,contw
-	istoret 1,contw
-	rtn
-ssp_tx_write_given_credit:
-	fetch 1,mem_credit_given
-	rtn blank
-	istore 1,contw
-	rtn
-
-	
-
-
-else
-
-rfcomm_init:
-	rtn
-rfcomm_init_spp:
-set_CR_bit:
-rfcomm_calculate_FCS_sabm:
-rfcomm_calculate_FCS_ua:
-rfcomm_calculate_FCS_dlci0:
-rfcomm_calculate_FCS_dlci0_res:
-rfcomm_save_FCS_uih:
-caculate_UIHdata_fcs:
-caculate_fcs:
-mod2div:
-mod2div_loop:
-mod2div_not_enough_reduction:
-mod2div_end:
-get_rfcomm_snd_adss:
-dlci_to_address_cmd:
-dlci_to_address_res:
-channel_to_dlci:
-rfcomm_rx_process_DLCI0_sabm:
-rfcomm_rx_process_DLCI0_ua:
-rfcomm_rx_process:
-rfcomm_rx_process_remote_page:
-parse_dlci0_rp:
-parse_DLCI0_rp_uih:
-parse_DLCI0_rp_uih_pn_cmd:
-parse_DLCI0_rp_uih_pn_cmd_spp:
-parse_DLCI0_rp_uih_pn_res:
-parse_DLCI0_rp_uih_pn_res_common:
-get_rfcomm_param_modem_status:
-get_rfcomm_head_struct:
-get_rfcomm_current_length:
-get_rfcomm_uih_head_struct:
-get_param_payload_ptr:
-get_rfcomm_param_length_common:
-get_rfcomm_length_common:
-get_rfcomm_prarmer_negotiation:
-parse_DLCI0_rp_uih_ms_cmd:
-parse_DLCI0_rp_uih_ms_cmd_spp:
-parse_DLCI0_rp_uih_ms_res:
-parse_DLCI0_rp_uih_ms_res_spp:
-parse_uih_rp:
-parse_uih_rp_spp:
-parse_uih_rp_spp_ua:
-parse_uih_rp_spp_sabm:
-parse_uih_spp_uih_credits:
-parse_uih_spp_uih:
-parse_uih_spp_uih_cont:
-parse_uih_rp_spp_disconn:
-rfcomm_rx_process_reconn:
-	branch assert 
-parse_DLCI0_reconn:
-parse_DLCI0_reconn_uih:
-parse_DLCI0_reconn_uih_pn_cmd:
-parse_DLCI0_reconn_uih_pn_cmd_spp:
-parse_DLCI0_reconn_uih_ms_cmd:
-parse_DLCI0_reconn_uih_ms_cmd_spp:
-parse_DLCI0_reconn_uih_ms_res:
-parse_DLCI0_reconn_uih_ms_res_noext:
-parse_DLCI0_reconn_uih_ms_res_spp:
-parse_uih_reconn:
-parse_uih_reconn_spp:
-parse_uih_reconn_spp_ua:
-parse_uih_reconn_spp_sabm:
-parse_uih_reconn_spp_disconn:
-rfcomm_rx_process_end:
-rfcomm_send_more_pkt:
-rfcomm_send_more_pkt_msc_cmd_spp:
-rfcomm_send_sabm:
-rfcomm_send_ua:
-rfcomm_send_param_neg_cmd:
-rfcomm_send_param_neg_res:
-rfcomm_send_modem_status_cmd:
-rfcomm_send_modem_status_res:
-rfcomm_send_uih_without_payload:
-rfcomm_increase_credit_given:
-spp_process_rx_data:
-spp_tx_rfcomm_packet:
-ssp_tx_rfcomm_from_uart:
-ssp_tx_rfcomm_from_uart_without_credit:
-ssp_tx_rfcomm_from_uart_common:
-ssp_tx_rfcomm_from_uart_common0:
-ssp_tx_write_length:
-ssp_tx_write_long_packet:
-ssp_tx_write_given_credit:
-	branch assert
-endif
Index: DPI_Switch/program/scheduler.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/scheduler.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/scheduler.prog	(nonexistent)
@@ -1,461 +0,0 @@
-scheduler_process:
-	bpatchx patch36_6,mem_patch36
-	call check_51cmd
-	call app_process_bb_event
-	call process_conn_sm
-/* check the connection state sequence byte */
-	bpatchx patch36_7,mem_patch36
-ifdef SIMPLE_PAIRING
-	call sp_calc_sequence
-	call simple_pairing_sequence
-	call master_simple_paring_sequence
-endif
-//return if it is hci mode. 'cause the following is host part.
-//notify BB to tx a l2cap packet
-	call l2cap_malloc_is_fifo_full
-	nrtn blank
-	//for conn to MTK 
-	call l2cap_call_proc_sigal_pending
-	call l2cap_malloc_is_fifo_full
-	nrtn blank
-	bpatchx patch37_0,mem_patch37
-//to generat a new l2cap packet
-	call process_upper_sm
-	call l2cap_send_config_req
-ifdef COMPILE_RFCOMM
-	call rfcomm_send_more_pkt//use this function to send msc_cmd after msc_rep sent
-endif
-scheduler_process0:
-	call scheduler_tx_disconnect_hid //may not used
-	bpatchx patch37_1,mem_patch37
-//	call l2cap_malloc_is_fifo_full
-//	nrtn blank
-	branch app_process_bt
-	
-scheduler_tx_disconnect_hid:
-	fetch 1,mem_CONTROL_tasks		
-	bbit1 L2CAP_DISCONNECT_INTERRUPT,L2CAP_disconnect_interrupt_req
-	bbit1 L2CAP_DISCONNECT_CONTROL,L2CAP_disconnect_control_req
-	rtn
-	
-scheduler_tx_l2cap_pkt:
-	bpatchx patch37_2,mem_patch37
-	call l2cap_malloc_is_fifo_empty
-	rtn blank //empty
-	fetch 1,mem_op
-	rtnbit1 op_txl2cap
-	call l2cap_malloc_fifo_out
-	store 2,mem_txptr
-	copy pdata,contr
-	ifetch 2,contr
-	increase 4,pdata
-	store 2,mem_tx_len
-	jam 6,mem_tx_lch//start pkt
-	bpatchx patch37_3,mem_patch37
-	fetch 2,mem_l2cap_tx_multi_offset
-	branch scheduler_tx_l2cap_start_pkt,blank
-	fetch 1,mem_op
-	rtnbit0 op_pkt_comp
-	set0 op_pkt_comp,pdata
-	store 1,mem_op
-	jam 5,mem_tx_lch//continue pkt
-	fetcht 2,mem_l2cap_tx_multi_offset
-	fetch 2,mem_txptr
-	iadd temp,pdata
-	store 2,mem_txptr
-	fetch 2,mem_tx_len
-	isub temp,pdata
-	store 2,mem_tx_len
-scheduler_tx_l2cap_start_pkt:
-	bpatchx patch37_4,mem_patch37
-	fetch 2,mem_tx_len
-	branch assert,blank
-	arg l2cap_max_pkt_len,temp //max len of dh3 pkt
-	isub temp,pdata
-	nbranch scheduler_Tx_l2cap_last_pkt,positive
-	bpatchx patch37_5,mem_patch37
-	storet 2,mem_tx_len //l2cap_max_pkt_len
-	fetch 2,mem_l2cap_tx_multi_offset
-	iadd temp,pdata
-	store 2,mem_l2cap_tx_multi_offset
-	branch scheduler_Tx_l2cap_pkt_end
-scheduler_Tx_l2cap_last_pkt:
-	setarg 0
-	store 2,mem_l2cap_tx_multi_offset
-scheduler_Tx_l2cap_pkt_end:
-	fetch 1,mem_op
-	set1 op_txl2cap,pdata
-	store 1,mem_op
-	rtn
-
-scheduler_start_upper_sm:
-	fetch 1,mem_UI_profile_supported
-	bbit1 support_HID,scheduler_start_upper_sm_hid
-	jam UPPERSM_RECONN_SDP_CONN,mem_upper_sm_reconn
-	rtn
-scheduler_start_upper_sm_hid:
-	jam UPPERSM_RECONN_HID_CTRL_CONN,mem_upper_sm_reconn
-	rtn
-	
-process_upper_sm:
-	fetch 1,memui_reconnect_mode
-	nbranch process_upper_sm_reconn,blank
-process_upper_sm_remote_page:
-	fetch 1,mem_upper_sm_remote_page
-	//beq UPPERSM_RP_IDLE,process_upper_sm_rp_idle
-	rtn blank
-	//nothing to do when remote page to create a connection.
-	jam 0,mem_upper_sm_remote_page
-process_upper_sm_rp_wait:
-	rtn
-
-
-process_upper_sm_reconn:
-	bpatchx patch37_6,mem_patch37
-	fetch 1,mem_upper_sm_reconn
-	rtn blank
-	beq UPPERSM_RECONN_SDP_CONN,process_upper_sm_reconn_sdp_conn
-	beq UPPERSM_RECONN_SDP_CONN_WAIT,process_upper_sm_reconn_sdp_conn_wait
-	beq UPPERSM_RECONN_SDP_CFG,process_upper_sm_reconn_sdp_cfg
-	beq UPPERSM_RECONN_SDP_CFG_WAIT,process_upper_sm_reconn_sdp_cfg_wait
-	beq UPPERSM_RECONN_SS_SPP,process_upper_sm_reconn_ss_spp
-	beq UPPERSM_RECONN_SS_SPP_WAIT,process_upper_sm_reconn_ss_spp_wait
-	beq UPPERSM_RECONN_SDP_DISCONN,process_upper_sm_reconn_sdp_disconn
-	beq UPPERSM_RECONN_SDP_DISCONN_WAIT,process_upper_sm_reconn_sdp_disconn_wait
-	beq UPPERSM_RECONN_HID_CTRL_CONN,process_upper_sm_reconn_hid_ctrl_conn
-	beq UPPERSM_RECONN_HID_CTRL_CONN_WAIT,process_upper_sm_reconn_hid_ctrl_conn_wait
-	beq UPPERSM_RECONN_HID_CTRL_CFG,process_upper_sm_reconn_hid_ctrl_cfg
-	beq UPPERSM_RECONN_HID_CTRL_CFG_WAIT,process_upper_sm_reconn_hid_ctrl_cfg_wait
-	beq UPPERSM_RECONN_HID_INT_CONN,process_upper_sm_reconn_hid_int_conn
-	beq UPPERSM_RECONN_HID_INT_CONN_WAIT,process_upper_sm_reconn_hid_int_conn_wait
-	beq UPPERSM_RECONN_HID_INT_CFG,process_upper_sm_reconn_hid_int_cfg
-	beq UPPERSM_RECONN_HID_INT_CFG_WAIT,process_upper_sm_reconn_hid_int_cfg_wait
-	beq UPPERSM_RECONN_RFCOMM_CONN,process_upper_sm_reconn_rfcomm_conn
-	beq UPPERSM_RECONN_RFCOMM_CONN_WAIT,process_upper_sm_reconn_rfcomm_conn_wait
-	beq UPPERSM_RECONN_RFCOMM_CFG,process_upper_sm_reconn_rfcomm_cfg
-	beq UPPERSM_RECONN_RFCOMM_CFG_WAIT,process_upper_sm_reconn_rfcomm_cfg_wait
-	beq UPPERSM_RECONN_RFCOMM_SABM,process_upper_sm_reconn_rfcomm_sabm
-	beq UPPERSM_RECONN_RFCOMM_SABM_WAIT,process_upper_sm_reconn_rfcomm_sabm_wait
-	beq UPPERSM_RECONN_SPP_CMD_PN,process_upper_sm_reconn_spp_cmd_pn
-	beq UPPERSM_RECONN_SPP_CMD_PN_WAIT,process_upper_sm_reconn_spp_cmd_pn_wait
-	beq UPPERSM_RECONN_SPP_SABM,process_upper_sm_reconn_spp_sabm
-	beq UPPERSM_RECONN_SPP_SABM_WAIT,process_upper_sm_reconn_spp_sabm_wait
-	beq UPPERSM_RECONN_SPP_CMD_MS,process_upper_sm_reconn_spp_cmd_ms
-	beq UPPERSM_RECONN_SPP_CMD_MS_WAIT,process_upper_sm_reconn_spp_cmd_ms_wait
-process_upper_sm_reconn_wait:
-	rtn
-process_upper_sm_reconn_sdp_conn:
-	call upper_sm_send_sdp_conn //return n-user if sending failed
-	jam UPPERSM_RECONN_SDP_CONN_WAIT,mem_upper_sm_reconn
-	fetch 1,mem_sdp_state
-	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
-	store 1,mem_sdp_state
-	rtn
-process_upper_sm_reconn_sdp_cfg:
-	jam UPPERSM_RECONN_SDP_CFG_WAIT,mem_upper_sm_reconn
-	fetch 1,mem_sdp_state
-	rtnbit1 L2CAP_CHANNEL_STATE_SND_CFG_REQ
-	jam UPPERSM_RECONN_SDP_CFG,mem_upper_sm_reconn
-	call upper_sm_send_sdp_cfg //return n-user if sending failed
-	jam UPPERSM_RECONN_SDP_CFG_WAIT,mem_upper_sm_reconn
-	fetch 1,mem_sdp_state
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
-	store 1,mem_sdp_state
-	rtn
-process_upper_sm_reconn_ss_spp:
-	call l2cap_malloc_is_fifo_empty
-	nrtn blank
-	call upper_sm_send_ss_spp
-	jam UPPERSM_RECONN_SS_SPP_WAIT,mem_upper_sm_reconn
-	rtn
-process_upper_sm_reconn_sdp_disconn:
-	call upper_sm_send_sdp_disconn
-	jam UPPERSM_RECONN_SDP_DISCONN_WAIT,mem_upper_sm_reconn
-	rtn
-process_upper_sm_reconn_hid_ctrl_conn:
-	call upper_sm_send_hid_ctrl_conn
-	jam UPPERSM_RECONN_HID_CTRL_CONN_WAIT,mem_upper_sm_reconn
-	fetch 1,mem_hid_control_state
-	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
-	store 1,mem_hid_control_state
-	rtn
-process_upper_sm_reconn_hid_ctrl_cfg:    
-	call upper_sm_send_hid_ctrl_cfg
-	jam UPPERSM_RECONN_HID_CTRL_CFG_WAIT,mem_upper_sm_reconn
-	fetch 1,mem_hid_control_state
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
-	store 1,mem_hid_control_state
-	rtn
-process_upper_sm_reconn_hid_int_conn:
-	call upper_sm_send_hid_int_conn
-	jam UPPERSM_RECONN_HID_INT_CONN_WAIT,mem_upper_sm_reconn
-	fetch 1,mem_hid_interrupt_state
-	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
-	store 1,mem_hid_interrupt_state
-	rtn
-process_upper_sm_reconn_hid_int_cfg:    
-	call upper_sm_send_hid_int_cfg
-	jam UPPERSM_RECONN_HID_INT_CFG_WAIT,mem_upper_sm_reconn
-	fetch 1,mem_hid_interrupt_state
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
-	store 1,mem_hid_interrupt_state
-	rtn
-process_upper_sm_reconn_rfcomm_conn:
-	call upper_sm_send_rfcomm_conn
-	jam UPPERSM_RECONN_RFCOMM_CONN_WAIT,mem_upper_sm_reconn
-	fetch 1,mem_rfcomm_state
-	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
-	store 1,mem_rfcomm_state
-	rtn
-process_upper_sm_reconn_rfcomm_cfg: 
-	call upper_sm_send_rfcomm_cfg
-	jam UPPERSM_RECONN_RFCOMM_CFG_WAIT,mem_upper_sm_reconn
-	fetch 1,mem_rfcomm_state
-	set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
-	store 1,mem_rfcomm_state
-	rtn
-process_upper_sm_reconn_rfcomm_sabm:
-	call upper_sm_send_rfcomm_sabm
-	jam UPPERSM_RECONN_RFCOMM_SABM_WAIT,mem_upper_sm_reconn
-	fetch 1,mem_rfcomm_state
-	set1 L2CAP_CHANNEL_RFCOMM_ONLY_SABM,pdata
-	store 1,mem_rfcomm_state
-	rtn
-process_upper_sm_reconn_spp_cmd_pn: 
-	call upper_sm_send_spp_cmd_pn
-	fetch 1,mem_spp_state
-	set1 RFCOMM_CHANNEL_STATE_PN_CMD
-	store 1,mem_spp_state
-	jam UPPERSM_RECONN_SPP_CMD_PN_WAIT,mem_upper_sm_reconn
-	rtn
-process_upper_sm_reconn_spp_sabm:   
-	call upper_sm_send_spp_sabm
-	fetch 1,mem_spp_state
-	set1 RFCOMM_CHANNEL_STATE_SABM
-	store 1,mem_spp_state
-	jam UPPERSM_RECONN_SPP_SABM_WAIT,mem_upper_sm_reconn
-	fetch 1,mem_remote_spp_channel //address in pdata
-	lshift3 pdata,pdata
-	or_into 3,pdata
-	arg mem_HIUfcs_SPP,temp // mem_HIUfcs_spp_WCredits in regB++
-	storet 2,mem_contw_temp
-	branch rfcomm_save_FCS_uih
-process_upper_sm_reconn_spp_cmd_ms: 
-	call upper_sm_send_spp_cmd_ms
-	fetch 1,mem_spp_state
-	set1 RFCOMM_CHANNEL_STATE_SND_MS_CMD
-	store 1,mem_spp_state
-	jam UPPERSM_RECONN_SPP_CMD_MS_WAIT,mem_upper_sm_reconn
-	rtn
-
-process_upper_sm_reconn_sdp_conn_wait:
-	fetch 1,mem_sdp_state
-	rtnbit0 L2CAP_CHANNEL_STATE_CONN_RES
-	jam UPPERSM_RECONN_SDP_CFG,mem_upper_sm_reconn
-	branch process_upper_sm_reconn
-process_upper_sm_reconn_sdp_cfg_wait:
-	fetch 1,mem_sdp_state
-	rtnne L2CAP_CHANNEL_SETUP_COMPLETE
-	jam UPPERSM_RECONN_SS_SPP ,mem_upper_sm_reconn
-process_upper_sm_reconn_ss_spp_wait:
-	fetch 1,mem_message_to_uppersm
-	rtnne RECIEVE_SS_REASULT_HF
-	jam 0,mem_message_to_uppersm
-	jam UPPERSM_RECONN_SDP_DISCONN,mem_upper_sm_reconn
-	branch process_upper_sm_reconn
-process_upper_sm_reconn_sdp_disconn_wait:
-	fetch 1,mem_sdp_state
-	nrtn blank
-	fetch 1,mem_UI_profile_supported
-	bbit1 support_HID,process_upper_sm_reconn_setup_hid
-	bbit1 support_SPP,process_upper_sm_reconn_setup_rfcomm
-	branch process_upper_sm_reconn_termination
-process_upper_sm_reconn_hid_ctrl_conn_wait:
-	fetch 1,mem_hid_control_state
-	rtnbit0 L2CAP_CHANNEL_STATE_CONN_RES
-	jam UPPERSM_RECONN_HID_CTRL_CFG,mem_upper_sm_reconn
-	branch process_upper_sm_reconn
-process_upper_sm_reconn_hid_ctrl_cfg_wait:
-	fetch 1,mem_hid_control_state
-	rtnne L2CAP_CHANNEL_SETUP_COMPLETE
-	jam UPPERSM_RECONN_HID_INT_CONN,mem_upper_sm_reconn
-	branch process_upper_sm_reconn
-process_upper_sm_reconn_hid_int_conn_wait:  
-	fetch 1,mem_hid_interrupt_state
-	rtnbit0 L2CAP_CHANNEL_STATE_CONN_RES
-	jam UPPERSM_RECONN_HID_INT_CFG,mem_upper_sm_reconn
-	branch process_upper_sm_reconn
-process_upper_sm_reconn_hid_int_cfg_wait:  
-	fetch 1,mem_hid_interrupt_state
-	rtnne L2CAP_CHANNEL_SETUP_COMPLETE
-	fetch 1,mem_UI_profile_supported
-	bbit1 support_SPP,process_upper_sm_reconn_setup_rfcomm
-	branch process_upper_sm_reconn_termination
-process_upper_sm_reconn_rfcomm_conn_wait: 
-	fetch 1,mem_rfcomm_state
-	rtnbit0 L2CAP_CHANNEL_STATE_CONN_RES
-	jam UPPERSM_RECONN_RFCOMM_CFG,mem_upper_sm_reconn
-	branch process_upper_sm_reconn
-process_upper_sm_reconn_rfcomm_cfg_wait:
-	fetch 1,mem_rfcomm_state
-	rtnne L2CAP_CHANNEL_SETUP_COMPLETE
-	jam UPPERSM_RECONN_RFCOMM_SABM,mem_upper_sm_reconn
-	branch process_upper_sm_reconn
-process_upper_sm_reconn_rfcomm_sabm_wait:  
-	fetch 1,mem_rfcomm_state
-	rtnne L2CAP_CHANNEL_RFCOMM_DLCI0_OPENED
-	fetch 1,mem_UI_profile_supported
-	bbit1 support_SPP,process_upper_sm_reconn_setup_spp
-	branch process_upper_sm_reconn_termination
-process_upper_sm_reconn_spp_cmd_pn_wait:
-	fetch 1,mem_spp_state
-	rtnbit0 RFCOMM_CHANNEL_STATE_PN_RES
-	jam UPPERSM_RECONN_SPP_SABM,mem_upper_sm_reconn
-	branch process_upper_sm_reconn
-process_upper_sm_reconn_spp_sabm_wait:
-	fetch 1,mem_spp_state
-	rtnbit0 RFCOMM_CHANNEL_STATE_UA
-	jam UPPERSM_RECONN_SPP_CMD_MS ,mem_upper_sm_reconn
-	branch process_upper_sm_reconn
-process_upper_sm_reconn_spp_cmd_ms_wait: 
-	fetch 1,mem_spp_state
-	rtnne RFCOMM_CHANNEL_SETUP_COMPLETE
-	branch process_upper_sm_reconn_termination
-
-process_upper_sm_reconn_setup_hid:
-	jam UPPERSM_RECONN_HID_CTRL_CONN,mem_upper_sm_reconn
-	branch process_upper_sm_reconn
-
-process_upper_sm_reconn_setup_rfcomm:
-	jam UPPERSM_RECONN_RFCOMM_CONN,mem_upper_sm_reconn
-	branch process_upper_sm_reconn
-process_upper_sm_reconn_setup_spp:
-	jam UPPERSM_RECONN_SPP_CMD_PN,mem_upper_sm_reconn
-	branch process_upper_sm_reconn
-
-
-
-process_upper_sm_reconn_termination:
-	jam 0,mem_upper_sm_reconn
-	rtn
-upper_sm_send_sdp_conn:
-	bpatchx patch37_7,mem_patch37
-	call l2cap_malloc_signal_channel
-	setarg PSM_SDP
-	copy pdata,temp
-	setarg L2CAP_SDP_channel
-	copy pdata,timeup
-	branch ML2CAP_send_signal_connect_req
-	
-upper_sm_send_sdp_cfg:
-	bpatchx patch38_0,mem_patch38
-	call l2cap_malloc_signal_channel
-	fetch 2,mem_SDP_remote_CID
-	copy pdata,temp
-	branch ML2CAP_send_signal_config_req
-	
-upper_sm_send_sdp_disconn:
-	bpatchx patch38_1,mem_patch38
-	call l2cap_malloc_signal_channel
-	fetch 2,mem_SDP_remote_CID
-	copy pdata,temp
-	arg L2CAP_SDP_channel,timeup
-	call ML2CAP_send_signal_disconn_req
-	fetch 1,mem_sdp_state
-	set0 L2CAP_CHANNEL_STATE_RCV_CFG_RES ,pdata
-	store 1,mem_sdp_state
-	rtn
-//service search
-upper_sm_send_ss_spp:
-	bpatchx patch38_2,mem_patch38
-	call l2cap_malloc_sdp_channel
-	call sdp_send_spp_request
-	branch MSDP_send_req_done
-
-upper_sm_send_rfcomm_conn:
-	bpatchx patch38_3,mem_patch38
-	call l2cap_malloc_signal_channel
-	setarg PSM_RFCOMM
-	copy pdata,temp
-	setarg L2CAP_RFCOMM_channel
-	copy pdata,timeup
-	branch ML2CAP_send_signal_connect_req
-
-upper_sm_send_rfcomm_cfg:
-	bpatchx patch38_4,mem_patch38
-	call l2cap_malloc_signal_channel
-	fetch 2,mem_rfcomm_remote_cid
-	copy pdata,temp
-	branch ML2CAP_send_signal_config_req
-
-upper_sm_send_hid_ctrl_conn:
-	bpatchx patch38_5,mem_patch38
-	call l2cap_malloc_signal_channel
-	setarg PSM_HID_control
-	copy pdata,temp
-	setarg L2CAP_HID_Control_channel
-	copy pdata,timeup
-	branch ML2CAP_send_signal_connect_req
-
-upper_sm_send_hid_ctrl_cfg:
-	bpatchx patch38_6,mem_patch38
-	call l2cap_malloc_signal_channel
-	fetch 2,mem_hid_ctrl_remote_cid
-	copy pdata,temp
-	branch ML2CAP_send_signal_config_req
-
-upper_sm_send_hid_int_conn:
-	bpatchx patch38_7,mem_patch38
-	call l2cap_malloc_signal_channel
-	setarg PSM_HID_interrupt
-	copy pdata,temp
-	setarg L2CAP_HID_interrupt_channel
-	copy pdata,timeup
-	branch ML2CAP_send_signal_connect_req
-	
-upper_sm_send_hid_int_cfg:
-	bpatchx patch39_0,mem_patch39
-	call l2cap_malloc_signal_channel
-	fetch 2,mem_hid_int_remote_cid
-	copy pdata,temp
-	branch ML2CAP_send_signal_config_req
-
-upper_sm_send_rfcomm_sabm:
-	bpatchx patch39_1,mem_patch39
-	call l2cap_malloc_rfcomm_channel
-	//force 3,temp //address
-	jam 3,mem_current_adss
-	jam 0x1c,mem_current_fcs
-	call rfcomm_send_sabm
-	jam 1,mem_rfcomm_initiator
-	rtn
-
-upper_sm_send_spp_cmd_pn:
-	bpatchx patch39_2,mem_patch39
-	call l2cap_malloc_rfcomm_channel
-	fetcht 1,mem_remote_spp_channel
-	call channel_to_dlci
-	storet 1,mem_pn_dlci
-	branch rfcomm_send_param_neg_cmd
-
-upper_sm_send_spp_sabm:
-	bpatchx patch39_3,mem_patch39
-	call l2cap_malloc_rfcomm_channel
-	fetcht 1,mem_pn_dlci
-	call dlci_to_address_cmd
-	call rfcomm_calculate_FCS_sabm //sabm fcs use once only,not need to save
-	store 1,mem_current_fcs
-	fetcht 1,mem_pn_dlci
-	call dlci_to_address_cmd
-	storet 1,mem_current_adss
-	branch rfcomm_send_sabm
-
-upper_sm_send_spp_cmd_ms:
-	bpatchx patch39_4,mem_patch39
-	call l2cap_malloc_rfcomm_channel
-	fetcht 1,mem_pn_dlci
-	call dlci_to_address_cmd //address in temp
-	branch rfcomm_send_modem_status_cmd
-
-
-
Index: DPI_Switch/program/sdp.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/sdp.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/sdp.prog	(nonexistent)
@@ -1,1206 +0,0 @@
-/**********************************************************************/
-/* Subroutine: sdp_process                                         */
-/* Process Service Discovery Request                                  */
-/* Called from L2CAP, check PDUID, branch to different req processings*/
-/*                                                                    */  
-/* Input:       mem_L2CAP_Rx_payload                                  */
-/* Output:      mem_SDP_Tx_payload, mem_SDP_Tx_pkt_length	      */
-/*                                                                    */
-/**********************************************************************/     
-sdp_process:
-	bpatchx patch39_5,mem_patch39
-	fetch 2,mem_l2cap_payload_ptr
-	iforce contr
-//	ifetchr regb,1,contr				/* PDUID */
-//	storer regb,1,mem_sdp_pduid
-	ifetch 1,contr
-	copy pdata,regb
-	store 1,mem_sdp_pduid
-	ifetch 2,contr
-	store 2,mem_sdp_transactionid			/* save transaction id */
-	ifetch 1,contr				/* higher byte of parameter length */
-	lshift8 pdata,timeup				
-	ifetch 1,contr				/* lower byte of parameter length */
-	iadd timeup,timeup				/* parameter length stored in "timeup" */
-	bpatchx patch39_6,mem_patch39
-	copy contr,temp
-	arg 4,loopcnt
-	arg mem_sdp_handle_list,contw
-	call memset0
-	copy temp,contr 
-	deposit regb						/* PDUID  */
-	beq SDP_ERROR_RES,sdp_process_error_res
-	beq SDP_SEARCH_REQ,sdp_process_ss_req
-	beq SDP_SEARCH_RES,sdp_process_ss_res
-	beq SDP_ATTRIBUTE_REQ,sdp_process_sa_req
-	beq SDP_ATTRIBUTE_RES,sdp_process_sa_res
-	beq SDP_SEARCHATTRIB_REQ,sdp_process_ssa_req
-	beq SDP_SEARCHATTRIB_RES,sdp_process_ssa_res
-	branch sdp_insufficient_resource
-
-/**********************************************************************/
-/* ss_req			                              */
-/* Processing Service Search Request                                  */
-/* Call: ask_serviceclassid, empty_response                     */
-/*                                                                    */  
-/* Input:       mem_L2CAP_Rx_payload pointer in contr                 */
-/* Output:      mem_SDP_Tx_payload, mem_SDP_Tx_pkt_length	      */
-/*                                                                    */
-/**********************************************************************/     
-sdp_process_ss_req:
-	bpatchx patch39_7,mem_patch39
-	call ask_serviceclassid
-	compare 1,temp,0xff
-	branch ss_empty_rsp,true
-	compare 0xff,temp,0xff
-	branch sdp_invalid_request_syntax,true
-
-	ifetch 2,contr				/* max aservice record count */
-	store 2,mem_sdp_record_maxcnt
-	increase -2,timeup
-
-	increase -1,timeup				/* continuation state 1 byte (0) */
-	nbranch sdp_invalid_pdu_size,zero		/* invalid pdu size */
-	arg mem_sdp_uuid_search_ptr,timeup
-	ifetch 2,timeup
-	rtn blank
-	call search_all_uuid
-	call l2cap_get_sdp_tx_payload			/* put the pointer to Tx buffer  */
-	force 3,pdata						/* PDUID 3, Service Search Response */
-	istore 1,contw
-	fetch 2,mem_sdp_transactionid			/* write transaction id */
-	istore 2,contw
-	lshift2 queue,pdata
-	add pdata,5,pdata
-	add pdata,5,regc
-	byteswap pdata,pdata
-	istore 2,contw							/* write parLength */
-	deposit queue
-	byteswap pdata,pdata
-	istore 2,contw							/* write TotSrvRecCount */
-	istore 2,contw							/* write CurSrvRecCount */
-	arg mem_sdp_handle_list,contr
-	copy queue,loopcnt
-	branch ss_req_blank,zero
-ss_req_loop:	
-	ifetch 4,contr
-	istore 4,contw
-	loop ss_req_loop
-ss_req_blank:	
-	force 0,pdata
-	istore 1,contw							/* continuation state */
-	deposit regc
-	store 2,mem_sdp_tx_pkt_length
-//	branch assert,blank
-	rtn
-
-/**********************************************************************/
-/* sa_req			                              */
-/* Processing Service Attribute Request                               */
-/* Call: ask_attributeid, empty_response (if 3 stored attr.     */
-/* not asked) or answer_attributelist                              */  
-/* Input:       mem_L2CAP_Rx_payload pointer in contr                 */
-/* Output:      mem_SDP_Tx_payload, mem_SDP_Tx_pkt_length	      */
-/*                                                                    */
-/**********************************************************************/     
-sdp_process_sa_req:
-	bpatchx patch3a_0,mem_patch3a
-	ifetch 4,contr				/* service record handle */
-	store 4,mem_sdp_record_handle	 
-	increase -4,timeup
-	call sdp_store_maxbyte
-	store 2,mem_sdp_attribute_maxbyte
-	increase -2,timeup
-	call dataelementtype6		/* result: data size stored in rega */
-	branch sdp_invalid_request_syntax,zero
-	compare 5,rega,0xff  // length
-	//branch sa_req_all,true
-	branch sa_judge_wholerange,true
-sa_isnot_wholerange:
-	arg mem_sdp_attrib_list,contw
-	force 0,queue
-	branch sa_req_loop
-sa_judge_wholerange:
-	ifetch 1,contr
-	bne SDP_ATTRIBUTE_RANGE,sdp_invalid_request_syntax
-	ifetch 2,contr
-	nbranch sa_judge_wholerange_false1,blank
-	ifetch 1,contr
-	bne 0xff,sa_judge_wholerange_false2
-	ifetch 1,contr
-	bne 0xff,sa_judge_wholerange_false3		//also exist potential bug because mem_sdp_attrib_list length is only 7f
-	branch sa_req_all
-sa_judge_wholerange_false3:
-	increase -5,contr
-	branch sa_isnot_wholerange
-sa_judge_wholerange_false2:
-	increase -4,contr
-	branch sa_isnot_wholerange
-sa_judge_wholerange_false1:
-	increase -3,contr
-	branch sa_isnot_wholerange
-sa_req_loop:	
-	ifetch 1,contr
-	beq SDP_ATTRIBUTE_ID, sa_req_one_id
-	beq SDP_ATTRIBUTE_RANGE, sa_req_range
-sa_req_range:
-	ifetch 2, contr
-	istore 2, contw
-	increase 1,queue
-	byteswap pdata,regb
-	ifetch 2, contr
-	byteswap pdata,pdata
-sa_req_range_id_increase:	
-	increase 1, regb
-	isub regb, null
-	nbranch sa_req_range_id_finish,positive
-	copy pdata, regc
-	byteswap regb,pdata
-	istore 2, contw
-	increase 1,queue
-	copy regc, pdata
-	branch sa_req_range_id_increase
-sa_req_range_id_finish:
-	increase -5,timeup
-	increase -5,rega
-	branch sa_req_check_next_id
-sa_req_one_id:
-	ifetch 2,contr
-	istore 2,contw //save the attribute id in mem_sdp_attrib_list
-	increase 1,queue
-	increase -3,timeup
-	increase -3,rega
-sa_req_check_next_id:	
-	nbranch sdp_invalid_request_syntax,positive
-	nbranch sa_req_loop,zero //another attribute 
-	increase -1,timeup
-	nbranch sdp_invalid_request_syntax,zero
-	
-	call l2cap_get_sdp_tx_payload
-	increase 10,contw
-	arg mem_sdp_attrib_list,rega
-sa_req_handle_attributelist_next:
-	copy queue,pdata
-	branch sa_req_handle_attributelist_end,blank
-	ifetch 2,rega
-	branch sa_req_handle_attributelist_end,blank
-	iforce regb /* regb is the attribute ID */
-	fetch 4,mem_sdp_record_handle	
-	iforce temp
-	call search_handle_attrib
-	copy contr,pdata
-	branch sa_req_handle_attributelist_notfound,blank
-	increase -3,contr
-	ifetch 3,contr
-	istore 3,contw
-	call sdp_data_len
-	iforce loopcnt	
-	call memcpy
-sa_req_handle_attributelist_notfound:
-	increase 2,rega
-	increase -1, queue
-	branch sa_req_handle_attributelist_next
-
-sa_req_handle_attributelist_end:	
-	arg SDP_ATTRIBUTE_RES,rega
-	call ssa_req_range_lastfreg_common
-	fetch 2,mem_sdp_tx_pkt_length	
-	beq 11,sa_empty_rsp
-	branch  ssa_req_range_attrbutes_length_no_continue
-
-
-sdp_store_continue_common:
-	ifetch 1, contr
-	beq 0, sdp_store_continue_0byte
-	beq 1,sdp_store_continue_1byte
-	beq 2, sdp_store_continue_2byte
-sdp_store_continue_0byte:	
-	increase -1,timeup				/* continuation state byte (0) */
-	branch sdp_store_continue_end
-sdp_store_continue_1byte:
-	ifetch 1, contr
-	increase -2,timeup				/* continuation state byte (1) */
-	branch sdp_store_continue_end
-sdp_store_continue_2byte:
-	ifetch 2, contr
-	byteswap pdata,pdata
-	increase -3,timeup				/* continuation state byte (2) */
-sdp_store_continue_end:
-	store 2, mem_sdp_continue_byte	
-	rtn
-	
-sa_req_all:	
-	increase -5,timeup
-	call sdp_store_continue_common
-	nbranch sdp_invalid_pdu_size,zero
-	fetcht 4,mem_sdp_record_handle		
-	call search_handle
-	nbranch sdp_invalid_service_record_handle,zero
-	copy contr,rega
-	call l2cap_get_sdp_tx_payload
-	copy rega,contr
-	increase 3,contw//arg mem_SDP_Tx_payload+3,contw
-	copy contr,timeup //sdp start pointer
-	call sdp_get_data
-	copy pdata, rega //sdp total length
-//	fetchr regb,2,mem_sdp_continue_byte
-	fetch 2,mem_sdp_continue_byte
-	copy pdata,regb
-	copy rega,pdata
-	isub regb,regb //total_length - continue_byte in regb
-	fetch 2, mem_sdp_attribute_maxbyte
-	isub regb, null
-	nbranch sa_req_all_fragment_sdp, positive
-	// the last fragment
-	disable user
-	fetch 2, mem_sdp_continue_byte
-	branch sa_req_all_fisrt_fragment,blank
-	iadd timeup, contr //set the read pointer
-	increase 3,regb //include the total length field, 3 bytes
-	copy regb, loopcnt
-	copy loopcnt, pdata
-	increase 3, pdata
-	byteswap pdata,pdata
-	istore 2, contw
-	copy loopcnt, pdata
-	byteswap pdata,pdata
-	istore 2, contw
-	branch sa_req_all_answer_attributelist_full_loop
-sa_req_all_fisrt_fragment:
-	add rega,6,loopcnt
-	branch sa_req_all_parlength_continue_byte, user
-	byteswap loopcnt,pdata
-	branch sa_req_all_parlength_continue_byte_end
-sa_req_all_parlength_continue_byte:
-	copy loopcnt, pdata
-	increase 2, pdata
-	byteswap pdata,pdata
-sa_req_all_parlength_continue_byte_end:
-	istore 2,contw				/* ParLength */
-	increase -3,loopcnt
-	byteswap loopcnt,pdata			
-	istore 2,contw				/* AttrListByteCount */
-	copy timeup,contr
-	branch sa_req_all_answer_attributelist_full_loop
-sa_req_all_fragment_sdp:
-	enable user
-//	fetchr rega,2,mem_sdp_attribute_maxbyte
-	fetch 2,mem_sdp_attribute_maxbyte
-	copy pdata,rega
-	copy rega,loopcnt
-	fetch 2, mem_sdp_continue_byte
-	branch sa_req_all_fisrt_fragment,blank
-	iadd timeup, contr
-	copy rega,pdata
-	increase 5,pdata
-	byteswap pdata,pdata	
-	istore 2, contw
-	copy rega,pdata
-	byteswap pdata,pdata
-	istore 2, contw
-sa_req_all_answer_attributelist_full_loop:
-	call memcpy
-	nbranch sa_req_all_last_frag_continue, user
-	force 2,pdata
-	istore 1,contw
-	copy contr, pdata
-	isub timeup, pdata
-	byteswap pdata,pdata
-	istore 2, contw   // continuation length
-	branch sa_req_all_frag_end
-sa_req_all_last_frag_continue:
-	force 0,pdata
-	istore 1,contw
-sa_req_all_frag_end:	
-	arg SDP_ATTRIBUTE_RES,rega
-	branch ssa_req_range_common	
-	
-/**********************************************************************/
-/* ssa_req                          		      */
-/* Processing Service Search Attribute Request                        */
-/* Call: ask_serviceclassid, ask_attributeid, empty_response */
-/*       or answer_attributelist                                   */  
-/* Input:       contr                                                 */
-/* Output:      mem_SDP_Tx_payload, mem_SDP_Tx_pkt_length             */
-/*                                                                    */
-/**********************************************************************/     
-sdp_process_ssa_req:
-	bpatchx patch3a_1,mem_patch3a
-	call ask_serviceclassid
-	compare 0xff,temp,0xff
-	branch sdp_invalid_request_syntax,true
-	call sdp_store_maxbyte
-	store 2,mem_sdp_attribute_maxbyte
-	increase -2,timeup
-	call dataelementtype6
-	arg mem_sdp_attrib_list,contw
-	force 0,queue
-ssa_req_loop:	
-	ifetch 1,contr 
-	beq SDP_ATTRIBUTE_RANGE,ssa_req_range
-	ifetch 2,contr 
-	istore 2,contw //save the attribute id in mem_sdp_attrib_list
-	increase 1,queue
-	increase -3,timeup
-	increase -3,rega
-	nbranch sdp_invalid_request_syntax,positive
-	nbranch ssa_req_loop,zero
-	increase -1,timeup
-	nbranch sdp_invalid_request_syntax,zero
-	call l2cap_get_sdp_tx_payload
-	increase 13,contw//arg mem_SDP_Tx_payload+13,contw
-	fetch 2,mem_sdp_uuid_search_ptr
-	iforce regc
-	arg mem_sdp_attrib_list,rega
-ssa_req_attributelist_next:	
-	ifetch 2,rega
-	branch ssa_req_attributelist_end,blank
-	iforce regb						/* regb is the attribute ID */
-	call search_attrib
-	branch ssa_req_attributelist_notfound,blank
-	increase -3,contr
-	ifetch 3,contr
-	istore 3,contw
-	call sdp_data_len
-	iforce loopcnt	
-  	call memcpy
-ssa_req_attributelist_notfound:
-	increase 2,rega
-	branch ssa_req_attributelist_next
-
-ssa_req_attributelist_end:
-	call ssa_req_range_lastfreg
-	fetch 2,mem_sdp_tx_pkt_length	
-	beq 14,ssa_empty_rsp
-	call ssa_req_range_attrbutes_length_no_continue
-	branch ssa_req_range_attrbutes_length_no_continue
-
-
-sdp_store_maxbyte:	
-	ifetch 2,contr				 
-	byteswap pdata,pdata
-	increase -3,pdata	
-	arg 200,temp
-	isub temp,null
-	nrtn positive
-	setarg 200
-	rtn
-	
-
-ssa_req_range:
-	increase 4,contr
-	increase -5,timeup
-	increase -5,rega
-	nbranch sdp_invalid_request_syntax,zero
-	call 	sdp_store_continue_common
-	nbranch sdp_invalid_pdu_size,zero
-	arg mem_sdp_uuid_search_ptr,timeup
-	call search_all_uuid  
-	deposit queue
-	branch ssa_empty_rsp,blank
-	store 1,mem_handle_humber
-//	storer regb,2,mem_sdp_all_length
-	copy regb,pdata
-	store 2,mem_sdp_all_length
-	arg 0,queue
-	arg 0,rega
-	call l2cap_get_sdp_tx_payload
-	increase 10,contw 
-ssa_req_range_find_handle:
-	call ssa_req_range_get_length	
-	nbranch assert,user
-	copy contr,timeup
-	copy pdata,regc
-	iadd rega,rega
-//	copy pdata,rega 
-//	fetch 2,mem_sdp_all_length
-	fetch 2,mem_sdp_continue_byte
-	copy pdata,regb
-	branch ssa_req_range_first_freg,blank
-ssa_req_range_later_freg_with_continue:
-	copy rega,pdata
-	isub regb,regb //total_length - continue_byte in rega
-	branch ssa_req_range_next_handle,zero
-	nbranch ssa_req_range_next_handle,positive
-	fetch 2, mem_sdp_attribute_maxbyte
-	isub regb, null
-	branch ssa_req_range_maxbyte_with_continue,zero
-	nbranch ssa_req_range_maxbyte_with_continue, positive  
-	
- // data length < =maxbyte 
-ssa_req_range_send_not_maxbyte:
- 	copy regb,loopcnt
-	call ssa_req_range_maxbyte_with_continue_cpy
- 	fetch 1,mem_handle_humber
-	increase 1,queue
-	isub queue,null
-	branch ssa_req_range_lastfreg,zero
-	branch ssa_req_range_freg_with_continue
-	
-ssa_req_range_maxbyte_with_continue:
- 	copy pdata,loopcnt
- 	call ssa_req_range_maxbyte_with_continue_cpy
- 	branch ssa_req_range_freg_with_continue
- 	
-ssa_req_range_maxbyte_with_continue_cpy:
-	increase -3,contw   
-	copy loopcnt,temp
- 	copy regc,pdata
-	isub regb,pdata
-	iadd timeup,contr
- 	branch memcpy
-
-ssa_req_range_next_handle:
-	fetch 1,mem_handle_humber
-	increase 1,queue
-	isub queue,null
-	rtn zero //
-	branch ssa_req_range_find_handle
-
-ssa_req_range_get_length:	
-	call disable_user
-	arg mem_sdp_handle_list,contr
-	lshift2 queue,pdata
-	iadd contr,contr
-	ifetcht 4, contr
-	call search_handle
-	nrtn zero
-	call sdp_data_len
-	branch enable_user
-
-ssa_req_range_first_freg:
-	fetch 2, mem_sdp_attribute_maxbyte
-	isub rega, null
-	nbranch ssa_req_range_firstfreg_maxbyte_with_continue,positive
-	copy rega,loopcnt
-	copy loopcnt,temp
-	copy timeup,contr
-	call memcpy
-	fetch 2,mem_sdp_all_length
-	isub rega,null
-	branch ssa_req_range_freg_no_continue,zero
-ssa_req_range_firstfreg_not_maxbyte_with_continue:
-	call ssa_req_range_freg_with_continue
-	branch ssa_req_range_attrbutes_length
-	
-ssa_req_range_freg_no_continue:
-	call ssa_req_range_lastfreg
-	branch ssa_req_range_attrbutes_length
-	
-ssa_req_range_lastfreg:
-	arg SDP_SEARCHATTRIB_RES,rega  //PUD ID
-ssa_req_range_lastfreg_common:
-	force 0,pdata
-	istore 1,contw
-	call ssa_req_range_common
-	fetcht 2,mem_sdp_tx_pkt_length
-	increase -5,temp
-	byteswap temp,pdata
-	istore 2, contw
-	increase -3,temp
-	byteswap temp,pdata
-	istore 2, contw  //attribute length
-	rtn
-
-ssa_req_range_firstfreg_maxbyte_with_continue:
-	copy pdata,loopcnt
-	copy loopcnt,temp
-	copy timeup,contr
-	call memcpy
-	call ssa_req_range_freg_with_continue
-ssa_req_range_attrbutes_length:	
-	setarg 0x36
-	istore 1,contw
-	fetch 2,mem_sdp_all_length
-	byteswap pdata,pdata
-	istore 2, contw 
-	rtn	
-
-ssa_req_range_attrbutes_length_no_continue:	
-	setarg 0x36
-	istore 1,contw
-	increase -3,temp
-	byteswap temp,pdata
-	istore 2, contw 
-	rtn	
-
-ssa_req_range_freg_with_continue:
-	arg SDP_SEARCHATTRIB_RES,rega  //PUD ID
-	setarg 2
-	istore 1,contw	
-	fetch 2,mem_sdp_continue_byte
-	iadd temp,temp
-	byteswap temp,pdata
-	istore 2,contw
-	call ssa_req_range_common
-	fetcht 2,mem_sdp_tx_pkt_length
-	increase -5,temp
-	byteswap temp,pdata
-	istore 2, contw
-	increase -5,temp
-	byteswap temp,pdata
-	istore 2, contw 
-	rtn	
-
-ssa_req_range_common:
-	fetch 2,mem_sdp_tx_payload_ptr
-	isub contw,pdata
-	sub pdata,0,pdata
-	store 2,mem_sdp_tx_pkt_length
-	call l2cap_get_sdp_tx_payload 
-	copy rega,pdata  //PUD ID
-	istore 1,contw
-	fetch 2,mem_sdp_transactionid
-	istore 2,contw
-	rtn
-
-
-
-
-/**********************************************************************/
-/* ssa_res			                      */
-/* Processing Service Search Attribute Response                       */
-/* Call: dataelementtype6, attribute_reading                    */
-/* Input:       contr                                                 */
-/* Output:      mem_sdp_record_handle,mem_sdp_search_failed           */
-/*                                                                    */
-/**********************************************************************/     
-sdp_process_ssa_res:
-sdp_process_ss_res:
-sdp_process_sa_res:
-sdp_process_error_res:
-	rtn
-/*
-sdp_process_ss_res:
-	bpatchx patch3a_2,mem_patch3a
-	ifetch 2,contr
-	ifetch 2,contr
-	byteswap pdata,pdata
-	bne 1,assert
-	ifetch 4,contr
-	store 4,mem_sdp_record_handle
-	fetchr regc,2,mem_sdp_l2capch_ptr
-	add regc,offset_lc_state,regc
-	ifetch 1,regc
-	set1 L2CAP_CHANNEL_STATE_RECV_SEARCH_RES,pdata
-	istore 1,regc
-	rtn
-	
-sdp_process_sa_res:
-	bpatchx patch3a_3,mem_patch3a
-	fetchr regc,2,mem_sdp_l2capch_ptr
-	add regc,offset_lc_state,regc
-	ifetch 1,regc
-	set1 L2CAP_CHANNEL_STATE_RECV_ATTRIB_RES,pdata
-	istore 1,regc
-	copy temp,contr
-	ifetch 2,contr
-	call search_rfcomm_cn
-	store 1,mem_profile_channel	
-	rtn
-*/
-
-				    
-
-sdp_invalid_service_record_handle:		
-	setarg 0x0200
-	store 2,mem_sdp_error_code
-	branch sdp_error_response
-sdp_invalid_pdu_size:				
-	setarg 0x0400
-	store 2,mem_sdp_error_code
-	branch sdp_error_response
-sdp_insufficient_resource:			
-	setarg 0x0600
-	store 2,mem_sdp_error_code
-	branch sdp_error_response
-sdp_invalid_request_syntax:			
-	setarg 0x0300
-	store 2,mem_sdp_error_code
-sdp_error_response:	
-	call l2cap_get_sdp_tx_payload
-	istore 1,contw
-	fetch 2,mem_sdp_transactionid			
-	istore 2,contw
-	setarg 0x0200					
-	istore 2,contw
-	fetch 2,mem_sdp_error_code			
-	istore 2,contw
-	jam  7,mem_sdp_tx_pkt_length
-	rtn
-
-
-//store uuid in mem_sdp_uuid_search_ptr,
-//return temp 0xff if wrong 
-ask_serviceclassid:  
-	arg 0,regb
-	force 0,temp					/* use "temp" to mark syntax error or to mark 128 bit uuid */
-	arg mem_sdp_uuid_search_ptr,contw
-	call dataelementtype6
-	branch asksrv_error,zero
-classidloop:
-	increase 1,regb
-	ifetch 1,contr
-	increase -1,rega
-	increase -1,timeup
-	compare 0x18,pdata,0xf8			/* 5 MSB: b00011: uuid */
-	nbranch asksrv_error,true
-	compare 0x04,pdata,0x07			/* 3 LSB: b100 128 bits uuid */
-	nbranch cmp032,true
-	force 1,temp					/* mark it as 128 bit uuid */
-skip2bytes:
-	ifetch 1,contr
-	increase -1,rega	
-	increase -1,timeup
-	bne 0x00, frstbwrong
-	ifetch 1,contr
-	increase -1,rega	
-	increase -1,timeup
-	beq 0x00, cmpuuid
-	branch scndbwrong
-frstbwrong:  
-	increase 1,contr
-	increase -1,rega	
-	increase -1,timeup
-scndbwrong:  
-	increase 2,contr				/* skip 2 bytes, first 2 bytes already wrong */
-	increase -2,rega	
-	increase -2,timeup
-	compare 0x00,temp,0xff                        /* 128 bits or 32 bits ? */
-	branch loopornot,true
-	increase 12,contr				/* skip 12 bytes, first 2 bytes already wrong */
-	increase -12,rega	
-	increase -12,timeup
-	branch loopornot
-cmp032:
-	compare 0x02,pdata,0x07			/* 3 LSB: b010 32 bits uuid */
-	nbranch cmp016,true
-	branch skip2bytes			
-cmp016:
-	compare 0x01,pdata,0x07			/* 3 LSB: b001 16 bit uuid */
-	nbranch asksrv_error,true
-cmpuuid:
-	increase -2,rega
-	increase -2,timeup
-	ifetch 2,contr				/* higher order byte */
-	sub regb,4,null
-	branch uuidsize,zero //max store uuids =3 
-	istore 2,contw
-uuidsize:
-	compare 0x00,temp,0xff			/* is this 128 bits uuid */
-	branch loopornot,true
-	copy contr,temp
-	ifetch 1,contr
-	bne 0x00, wrong12b
-	ifetch 1,contr
-	bne 0x00, wrong12b
-	ifetch 1,contr
-	bne 0x10, wrong12b
-	ifetch 1,contr
-	bne 0x00, wrong12b
-	ifetch 1,contr
-	bne 0x80, wrong12b
-	ifetch 1,contr
-	bne 0x00, wrong12b
-	ifetch 1,contr
-	bne 0x00, wrong12b
-	ifetch 1,contr
-	bne 0x80, wrong12b
-	ifetch 1,contr
-	bne 0x5f, wrong12b
-	ifetch 1,contr
-	bne 0x9b, wrong12b
-	ifetch 1,contr
-	bne 0x34, wrong12b
-	ifetch 1,contr
-	beq 0xfb, chck12dn
-wrong12b:
-	copy temp,contr  
-wrong12b1:
-	increase 12,contr				/* skip 12 bytes */
-	force 0x00,queue
-	force 0x00,temp
-	branch chck12dn
-
-chck12dn:
-	increase -12,timeup
-	increase -12,rega
-loopornot:
-	force 0x00,temp
-	compare 0x00,rega,0xff
-	nbranch classidloop,true
-	force 0,pdata
-	istore 2,contw			/* end list with null */
-	rtn
-asksrv_error:
-	arg 0xff,temp
-	rtn
-
-/**********************************************************************/
-/* Subroutine: dataelementtype6                                    */
-/* Parse Data Element Sequence, obtain the data size                  */
-/* Input:  SDP Rx Buf Pointer in contr, parameter count in timeup     */
-/* Output: data length in rega, data pointer in contr             */
-/*         and  parameter count in timeup, return with zero flag set: */
-/*         syntax error                                               */
-/**********************************************************************/     
-dataelementtype6:
-	bpatchx patch3a_4,mem_patch3a
-	ifetch 1,contr
-	increase -1,timeup
-	compare 0x30,pdata,0xf8			/* 5 MSB: b00110: type 6 */
-	nbranch dsize_error,true
-	compare 0x07,pdata,0x07			/* 3 LSB: b111: 32 bits */
-	branch dsize32,true
-	compare 0x06,pdata,0x07			/* 3 LSB: b110: 16 bits */
-	branch dsize16,true
-	compare 0x05,pdata,0x07			/* 3 LSB: b101: 8 bits */
-	nbranch dsize_error,true
-//	ifetchr rega,1,contr				/* data length in reg A */
-	ifetch 1,contr
-	copy pdata,rega
-	increase -1,timeup
-	branch dsize
-dsize32:
-	increase 2,contr				 
-	increase -2,timeup
-dsize16:
-	ifetch 2,contr
-	byteswap pdata,rega
-	increase -2,timeup
-dsize:
-	force 0x01,pdata
-	rtn
-dsize_error:
-	force 0x00,pdata
-	rtn
-
-/**********************************************************************/
-/* Subroutine: sa_empty_rsp                                      */
-/* Send empty response                                                */
-/*                                                                    */
-/* Input:       mem_sdp_pduid, mem_sdp_transactionid                  */
-/* Output:      mem_SDP_Tx_payload, mem_SDP_Tx_pkt_length             */
-/*                                                                    */
-/**********************************************************************/     
-ss_empty_rsp:
-	setarg SDP_SEARCH_RES
-	store 1, mem_sdp_pduid
-	branch empty_response
-sa_empty_rsp:
-	setarg SDP_ATTRIBUTE_RES
-	store 1, mem_sdp_pduid
-	branch empty_response
-ssa_empty_rsp:
-	setarg SDP_SEARCHATTRIB_RES
-	store 1, mem_sdp_pduid
-empty_response:
-	call l2cap_get_sdp_tx_payload			/* empty attribute list */
-//	fetchr regb,1,mem_sdp_pduid				/* PDUID */
-//	istorer regb,1,contw
-	fetch 1,mem_sdp_pduid
-	copy pdata,regb
-	istore 1,contw 
-	fetch 2,mem_sdp_transactionid			/* copy back transaction id */
-	istore 2,contw
-	setarg 0x0500
-	istore 2, contw
-	compare SDP_ATTRIBUTE_RES,regb,0xff			 
-	branch fullsearch,true
-	compare SDP_SEARCHATTRIB_RES,regb,0xff			 
-	branch fullsearch,true
-	setarg 0x000000
-	istore 5,contw
-	branch outempty
-
-fullsearch:					/* pduid must be 5 or 7 */
-	setarg 0x350200
-	istore 5,contw
-outempty:
-	jam 10,mem_sdp_tx_pkt_length
-	rtn
-
-//return length in pdata(whole element ,include header and data ), contr not change
-sdp_data_len:
-	call store_contw
-	call store_contr
-	call sdp_get_data
-	call get_contw
-	call get_contr
-	copy temp,pdata
-	rtn
-
-//return data length in pdata, contr is data pionter,return length in temp(whole element ,include header and data )
-sdp_get_data:
-	ifetch 1,contr
-	and pdata,0x7,loopcnt
-	rshift3 pdata,pdata
-	bne 0,sdp_get_data_type_not0
-sdp_get_data_type0:	
-	force 1,pdata
-	force 1,temp
-	rtn
-	
-sdp_get_data_type_not0_sizeindex01234:
-	call left_shift_n
-	add pdata,1,temp  //add header length
-	rtn
-sdp_get_data_type_not0:
-	deposit loopcnt
-	sub pdata,4,null
-	branch sdp_get_data_type_not0_sizeindex01234,positive
-	beq 5,sdp_get_data_type_not0_sizeindex5
-	beq 6,sdp_get_data_type_not0_sizeindex6
-	beq 7,sdp_get_data_type_not0_sizeindex7
-	rtn
-	
-sdp_get_data_type_not0_sizeindex5:
-	ifetch 1,contr
-	add pdata,2,temp  //add header length
-	rtn
-sdp_get_data_type_not0_sizeindex6:
-	ifetch 2,contr
-	byteswap pdata,pdata
-	add pdata,3,temp  //add header length
-	rtn
-sdp_get_data_type_not0_sizeindex7:
-	ifetch 2,contr	
-	byteswap pdata,pdata
-	ifetcht 2,contr	
-	byteswap temp,temp
-	lshift16 temp,temp
-	iadd temp,pdata
-	add pdata,5,temp  //add header length
-	rtn
-
-/* find with uuids
-input uuids pionter in timeup
-return handles in mem_sdp_handle_list; handles number in queue if found 
-return regb all length*/
-search_all_uuid:
-	bpatchx patch3a_5,mem_patch3a
-	force 0,queue
-	arg 0,regb
-	arg mem_sdp_handle_list,contw
-search_all_uuid_llop:
-	ifetch 2,timeup
- 	rtn blank
-	call search_uuid
-	copy queue,pdata
-	rtneq SDP_MAX_HANDLE_NUMBER 
-	increase 2,timeup
- 	branch search_all_uuid_llop
-	
-search_uuid:
-//	arg 0,regb
-	iforce regc
-//	force 0,queue
-	fetch 2, mem_ui_uuid_table
-	iforce contr
-search_uuid_next:
-	copy queue,pdata
-	rtneq SDP_MAX_HANDLE_NUMBER   
-	disable user
-	ifetch 1,contr
-	rtn blank
-	iforce loopcnt
-search_uuid_loop:	
-	ifetch 2,contr
-	isub regc,null
-	nbranch search_uuid_not_found,zero
-	enable user					// uuid match
-search_uuid_not_found:
-	loop search_uuid_loop
-	ifetcht 4,contr					// get handle 
-	copy contr,rega
-	nbranch search_uuid_nomatch,user
-	arg mem_sdp_handle_list,contr
-	arg SDP_MAX_HANDLE_NUMBER,loopcnt 
-search_uuid_check_same_handle:
-	ifetch 4,contr
-	branch search_uuid_store_handle,blank
-	isub temp,null
-	branch search_uuid_nomatch,zero
-	loop search_uuid_check_same_handle
-	rtn 
-search_uuid_store_handle:
-	istoret 4,contw
-	increase 1,queue
-	copy rega,contr
-	call sdp_data_len
-	iadd regb,regb
-	iadd contr,contr		 
-	branch search_uuid_next
-search_uuid_nomatch:	
-	copy rega,contr
-	call sdp_get_data
-	iadd contr,contr			// next paragraph 
-	branch search_uuid_next
-
-/* temp is handle,
-return zero  if found
-return data pointer in contr 
-*/
-search_handle:
-	bpatchx patch3a_6,mem_patch3a
-	fetch 2,mem_ui_uuid_table
-	iforce contr
-search_handle_loop:	
-	ifetch 1,contr
-	branch disable_zero,blank
-	lshift pdata,pdata
-	iadd contr,contr
-	ifetch 4,contr
-	isub temp,null
-	rtn zero
-	deposit contw
-	store 2,mem_contw
-	storet 8,mem_temp
-	call sdp_get_data
-	iadd contr,contr
-	copy contr,pdata
-	fetcht 2,mem_contw
-	copy temp,contw
-	fetcht 8,mem_temp
-	copy pdata,contr
-	branch search_handle_loop
-
-/**
-* input regb and regc.regb is the attribute ID and regc is UUID.
-* set contr if find attribute or 0 if not
-*/
-search_attrib:
-	bpatchx patch3a_7,mem_patch3a
-	fetch 2,mem_ui_uuid_table
-	iforce contr
-search_attrib_next:
-	ifetch 1,contr
-	branch search_attrib_end, blank
-	iforce loopcnt
-search_attrib_loop:	
-	ifetch 2,contr
-	isub regc,null						/* regc is UUID, compare it */
-	branch search_attrib_found_uuid,zero
-	loop search_attrib_loop
-	increase 4,contr
-	call sdp_get_data
-	iadd contr,contr			/* next paragraph */
-	branch search_attrib_next	
-search_attrib_found_uuid:
-	increase -1,loopcnt
-	lshift loopcnt,pdata
-	iadd contr,contr
-	increase 4,contr
-	call sdp_get_data
-	iadd contr,timeup					/* attribute list end */
-search_attrib_loop_attribs:	
-	increase 1,contr
-	ifetch 2,contr
-	isub regb,null
-	//force 0x1,pdata,zero
-//	setflag zero, 0,pdata
-//	copy timeup, timeup
-	branch disable_blank,zero			/* attribute found */
-	call sdp_data_len
-	iadd contr,contr
-	deposit timeup
-	isub contr,null
-	branch search_attrib_end, zero /*attribute end, not found the attribute, return contr = 0*/
-	branch search_attrib_loop_attribs	
-search_attrib_end:
-	force 0,contr
-	force 0,pdata
-	rtn
-	
-
-//search the attribute according the record handle
-//record handle in temp, attribute in regb
-//set the contr to zero if not found
-search_handle_attrib:	
-	bpatchx patch3b_0,mem_patch3b
-	fetch 2,mem_ui_uuid_table
-	iforce contr
-search_handle_attrib_next:
-	ifetch 1,contr
-	branch search_handle_attrib_end, blank
-	lshift pdata,pdata
-	iadd contr, contr
-	ifetch 4,contr
-	isub temp,null						/* regc is UUID, compare it */
-	branch search_handl_attrib_found_handle,zero
-	call sdp_get_data
-	iadd contr,contr			/* next paragraph */
-	branch search_handle_attrib_next	
-search_handl_attrib_found_handle:
-	call sdp_get_data
-	iadd contr,timeup					/* attribute list end */
-search_handle_attrib_loop_attribs:	
-	increase 1,contr
-	ifetch 2,contr
-	isub regb,null
-	rtn zero							/* attribute found */
-	call sdp_data_len
-	iadd contr,contr
-	deposit timeup
-	isub contr,null
-	branch search_handle_attrib_end, zero /*attribute end, not found the attribute, return contr = 0*/
-	branch search_handle_attrib_loop_attribs
-search_handle_attrib_end:
-	force 0,contr
-	rtn	
-
-
-//enable user if find rfcomm channel number, pdata is channel number
-search_rfcomm_cn:
-	arg 0x0400,regb  // attribute protocol edscriptor list
-	call search_handl_attrib_found_handle
-	arg 0x0300,regb  // uuid rfcomm
-	call search_uuid_in_data
-	nrtn user
-	sub rega,3,null
-	branch disable_user,positive
-	ifetch 1,contr
-	bne 0x08,disable_user
-	ifetch 1,contr
-	rtn
-	
- //input timeup is lenth
- //input contr is data ptr
- //return contr is end of uuid; enable user if found uuid
-search_uuid_in_data:
-	bpatchx patch3b_1,mem_patch3b
-	call sdp_get_data
-	copy pdata,rega
-search_uuid_in_data_loop:	
-	ifetch 1,contr
-	and pdata,0x7,loopcnt
-	rshift3 pdata,pdata
-	sub pdata,3,null
-	branch search_uuid_in_data_found_uuid,zero
-	copy loopcnt,pdata
-	beq 5,search_uuid_in_data_found_element_index5
-	beq 6,search_uuid_in_data_found_element_index6
-	beq 7,search_uuid_in_data_found_element_index7
-	increase -1,contr
-	call sdp_get_data
-	iadd contr,contr
-	copy rega,pdata
-	isub temp,rega
-	branch disable_user,zero
-	branch search_uuid_in_data_loop
-	
-search_uuid_in_data_found_element_index5:
-	increase -2,rega
-	increase 1,contr
-	branch search_uuid_in_data_loop
-search_uuid_in_data_found_element_index6:
-	increase -3,rega
-	increase 2,contr
-	branch search_uuid_in_data_loop
-search_uuid_in_data_found_element_index7:
-	increase -5,rega
-	increase 4,contr
-	branch search_uuid_in_data_loop		
-	
-search_uuid_in_data_found_uuid:
-	increase -1,rega
-	copy loopcnt,pdata
-	beq 1,search_uuid_in_data_type_uuid_16
-	beq 2,search_uuid_in_data_type_uuid_32
-	beq 4,search_uuid_in_data_type_uuid_128
-	branch disable_user 
-search_uuid_in_data_type_uuid_128:
-	increase -12,rega
-search_uuid_in_data_type_uuid_32:
-	ifetch 2,contr
-	increase -2,rega
-search_uuid_in_data_type_uuid_16:
-	ifetch 2,contr
-	isub regb,null
-	branch enable_user,zero
-	increase -2,rega
-	branch disable_user,zero
-	branch search_uuid_in_data_loop
-
-/*
-//rega:l2cap len ,mem_search_uuid:uuid to search
-sdp_send_search_req:
-	call l2cap_malloc_sdp_req
-	setarg SDP_SEARCH_REQ
-	istore 1,contw
-	fetch 2,mem_sdp_transactionid_local
-	byteswap pdata,pdata
-	istore 2,contw
-	increase -5,rega
-	byteswap rega,rega
-	//istorer rega,2,contw
-	copy rega,pdata
-	istore 2,contw
-	setarg 0x0335
-	istore 2,contw
-	setarg 0x19
-	istore 1,contw
-	fetch 2,mem_search_uuid
-	istore 2,contw
-	setarg 0x0008
-	istore 2,contw
-	setarg 0
-	istore 1,contw
-	rtn
-
-//rega:l2cap len
-sdp_send_attribute_req:
-	call l2cap_malloc_sdp_req
-	setarg SDP_ATTRIBUTE_REQ
-	istore 1,contw
-	fetch 2,mem_sdp_transactionid_local
-	byteswap pdata,pdata
-	istore 2,contw
-	increase -5,rega
-	byteswap rega,rega
-//	istorer rega,2,contw
-	copy rega,pdata
-	istore 2,contw
-	fetch 4,mem_sdp_record_handle
-	istore 4,contw
-	setarg 0x2c01
-	istore 2,contw
-	setarg 0x0535
-	istore 2,contw
-	setarg 0x0a
-	istore 1,contw
-	setarg 0
-	istore 2,contw
-	setarg -1
-	istore 2,contw
-	setarg 0
-	istore 1,contw
-	rtn
-*/	
-	
-
-sdp_send_spp_request:
-	call l2cap_get_sdp_tx_payload
-	copy pdata,contw
-	setarg 6//Search Attr Req
-	istore 1,contw
-	setarg sdp_tid_spp					
-	istore 2,contw
-	setarg 0x0f00 //length15
-	istore 2,contw
-	setarg 0x1a0535
-	istore 3,contw
-	setarg 0x0111
-	lshift16 pdata,pdata //UUID
-	istore 4,contw
-	setarg 0x2600 //max return len
-	istore 2,contw
-	setarg 0x0335
-	istore 2,contw
-	setarg 0x0009
-	istore 2,contw
-	setarg 0x0004
-	istore 2,contw
-	jam 0x14,mem_sdp_tx_pkt_length
-	rtn
-
Index: DPI_Switch/program/security.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/security.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/security.prog	(nonexistent)
@@ -1,1642 +0,0 @@
-
-ifdef SECURE_CONNECTION
-	
-function_g2:
-	bpatchx patch3b_2,mem_patch3b
-	jam 80,mem_AES_CMAC_data_length
-	arg memdat,contw
-	arg mem_le_srand,contr
-	call memcpy16
-	arg mem_le_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 memdat,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 patch3b_3,mem_patch3b
-	jam 65,mem_AES_CMAC_data_length
-	arg memdat,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 memdat,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 patch3b_4,mem_patch3b
-	jam 53,mem_AES_CMAC_data_length
-	setarg 0x100
-	store 2,memdat
-	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,memdat
-	arg mem_le_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,memdat
-	arg mem_le_pubkey_remote_x_256,contr
-	call memcpy32
-	arg mem_le_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 patch3b_5,mem_patch3b
-	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 memdat,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 memdat,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 memdat,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 memdat,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 patch3b_6,mem_patch3b
-	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 patch3b_7,mem_patch3b
-	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
-
-endif
-	
-generate_kinit:
-	call function_e22
-	arg mem_input_store,contr
-	arg mem_kinit,contw		/* Kinit is ready */
-	branch memcpy16
-
-
-function_e21:	/* rega pointers to bdaddr */
-	disable user
-	call function_expand
-	arg mem_random_number,contr
-	arg mem_x,contw
-	force 15,loopcnt
-	call memcpy			
-	ifetch 1,contr
-	xor_into 6,pdata
-	istore 1,contw
-	setarg mem_y
-	store 2,memp_ar_input
-	setarg mem_x
-	store 2,memp_ar_key
-	set1 mark_ar2,mark
-	branch function_ar
-
-
-	
-function_e22:		/* rega pointers to bdaddr */
-	fetcht 1,mem_pin_length
-	force 16,regb			/* total 16 bytes */
-	add temp,6,regc		/* regc is l' */
-	sub regc,16,null		
-	branch function_e22_pin_init,positive 
-	force 16,regc
-function_e22_pin_init:			/* generate x from pin and bdaddr */
-	arg mem_x,contw
-function_e22_genx_pin:
-	arg mem_pin,contr
-	copy temp,loopcnt
-	disable user
-function_e22_genx_loop:
-	ifetch 1,contr
-	istore 1,contw
-	increase -1,regb
-	branch function_e22_genx_end,zero
-	loop function_e22_genx_loop
-	branch function_e22_genx_pin,user
-	enable user
-	force 6,loopcnt
-	copy rega,contr
-	branch function_e22_genx_loop
-function_e22_genx_end:
-	arg mem_random_number,contr
-	arg mem_y,contw
-	call memcpy16
-	fetch 1,mem_y15
-	ixor regc,pdata
-	store 1,mem_y15	/* inpy[15] = rand_num[15]^l'; */
-	setarg mem_y
-	store 2,memp_ar_input
-	setarg mem_x
-	store 2,memp_ar_key
-	set1 mark_ar2,mark
-	branch function_ar
-
-
-
-
-function_e1:	/* rega pointers to bdaddr */
-	disable user
-	call function_expand
-	branch function_hash
-
-function_e3:
-	arg mem_aco,rega
-	enable user
-	call function_expand
-	call function_hash
-	arg mem_input_store,contr
-	arg mem_kc,contw
-	branch memcpy16
-
-	/* costs 41769 clocks */
-function_hash:
-	setarg mem_random_number
-	store 2,memp_ar_input
-	setarg mem_link_key
-	store 2,memp_ar_key
-	set0 mark_ar2,mark
-	call function_ar
-	arg mem_input_store,rega
-	arg mem_random_number,regb
-	arg mem_x,contw
-	call xor16
-	arg mem_x,rega
-	arg mem_y,regb
-	copy regb,contw
-	enable user
-	call add16
-	call key_offset
-	setarg mem_y
-	store 2,memp_ar_input
-	setarg mem_x
-	store 2,memp_ar_key
-	set1 mark_ar2,mark
-	branch function_ar
-	
-
-	/* totally costs 20700 clocks */
-function_ar:
-	jam 0,mem_ar_hround
-	fetch 2,memp_ar_key
-	iforce contr
-	arg mem_key_store,contw
-	call memcpy16
-	fetch 2,memp_ar_input
-	iforce contr
-	arg mem_input_store,contw
-	call memcpy16
-	
-function_ar_loop:
-	call key_scheduling
-	disable user
-	bmark0 mark_ar2,function_ar_original
-	fetch 1,mem_ar_hround
-	bne 4,function_ar_original
-	fetch 2,memp_ar_input
-	iforce regb
-	call xor_mod32_ar2
-function_ar_original:
-	call xor_mod32
-	call el_boxes
-	fetch 1,mem_ar_hround
-	increase 1,pdata
-	store 1,mem_ar_hround
-
-	call key_scheduling
-	enable user
-	call xor_mod32
-	call pht
-	call permute
-	call pht
-	call permute
-	call pht
-	call permute
-	call pht
-	fetch 1,mem_ar_hround
-	increase 1,pdata
-	store 1,mem_ar_hround
-	bne 16,function_ar_loop
-	call key_scheduling
-	disable user
-	branch xor_mod32
-	
-/* input round number and temp key in mem_key_store, and output the next temp key in mem_key_store */
-/* round key is generated and store in mem_round_key */
-key_scheduling:
-	fetch 1,mem_ar_hround
-	arg mem_key_store,contr
-	branch key_sched_zero,blank
-	iforce regb      			/* regb is half round */
-	force 17,loopcnt
-	copy contr,contw
-key_rotateloop:
-	ifetch 1,contr
-	lshift3 pdata,temp
-	rshift2 pdata,pdata
-	rshift3 pdata,pdata
-	ior temp,pdata
-	istore 1,contw
-	loop key_rotateloop
-	setarg mem_key_store
-	iadd regb,contr
-	force 16,loopcnt    
-	arg mem_round_key,contw
-key_select_octet_loop:
-	ifetch 1,contr
-	istore 1,contw
-	compare mem_key_store_end,contr,0xff
-	nbranch key_select_octet_nwrap,true
-	increase -17,contr
-key_select_octet_nwrap:
-	loop key_select_octet_loop
-	force 0,rega         /* rega is index of octet within row */
-	add regb,-1,regc    /* this is the row index, half_round#1 is 0 */
-	lshift2 regc,regc
-	lshift2 regc,regc
-	call enable_authrom
-	setarg mem_b_box
-	iadd regc,regc       /* regc hold the starting address of the row */
-	arg mem_round_key,contw
-	force 16,loopcnt
-bias_round_key_loop:
-	ifetcht 1,regc
-	ifetch 1,contw
-	iadd temp,pdata
-	istore 1,contw
-	increase 1,regc
-	loop bias_round_key_loop
-	branch disable_authrom
-
-key_sched_zero:    /* round 0, key1 */
-	force 16,loopcnt
-	force 0,temp
-create_byte_16_loop:
-	ifetch 1,contr
-	ixor temp,temp
-	loop create_byte_16_loop
-	deposit temp
-	istore 1,contr    	/* store the byte #16 */
-	arg mem_key_store,contr
-	arg mem_round_key,contw
-	branch memcpy16
-
-xor_mod32:     /* xor on 0,3, add on 1,2. if user is set, invert. x in rega and y in regb, out in contw */
-	arg mem_round_key,regb
-xor_mod32_ar2:
-	force 16,loopcnt
-	arg mem_input_store,rega
-	copy rega,contw
-xor_mod32_loop:	
-	ifetcht 1,rega
-	ifetch 1,regb
-	ixor temp,alarm
-	and loopcnt,3,regc
-	nbranch xor_mod32_invert,user
-	xor_into 3,regc
-xor_mod32_invert:
-	sub regc,1,regc
-	branch xor_even,positive
-	iadd temp,alarm
-xor_even:
-	deposit alarm
-	istore 1,contw
-	increase 1,rega
-	increase 1,regb
-	loop xor_mod32_loop
-	rtn
-
-el_boxes:
-	call enable_authrom
-	force 16,loopcnt
-	arg mem_input_store,rega
-el_box_loop:	
-	ifetch 1,rega
-	arg mem_e_box,contr
-	and loopcnt,3,regc
-	sub regc,1,null
-	branch e_boxes,positive
-	arg mem_l_box,contr
-e_boxes:
-	iadd contr,contr
-	ifetch 1,contr
-	istore 1,rega
-	increase 1,rega
-	loop el_box_loop
-	branch disable_authrom
-
-pht:				
-	force 8,loopcnt
-	arg mem_input_store,contr
-	copy contr,contw
-pht_loop:
-	ifetch 1,contr
-	iforce rega
-	ifetch 1,contr
-	iforce regb
-	lshift rega,pdata
-	iadd regb,pdata
-	istore 1,contw
-	deposit rega
-	iadd regb,pdata
-	istore 1,contw
-	loop pht_loop
-	rtn
-
-/* 8 11 12 15 2 1 6 5 10 9 14 13 0 7 4 3 */
-permute:			
-	setarg 0x8ae42c
-	iforce temp
-	force 7,loopcnt
-	call permute_exchange
-	setarg 0xd751b
-	iforce temp
-	force 5,loopcnt
-	call permute_exchange
-	fetch 1,mem_input_store+15
-	iforce rega
-	fetch 1,mem_input_store+3
-	store 1,mem_input_store+15
-	deposit rega
-	store 1,mem_input_store+3
-	rtn
-
-permute_exchange:
-	and temp,0xf,regb
-permute_loop:
-	and temp,0xf,pdata
-	arg mem_input_store,contw
-	iadd contw,contw
-	ifetch 1,contw
-	iforce regc
-	deposit rega
-	istore 1,contw
-	copy regc,rega
-	rshift4 temp,temp
-	loop permute_loop	
-	setarg mem_input_store
-	iadd regb,contw
-	deposit rega
-	istore 1,contw
-	rtn
-
-add16:
-	enable user
-	branch xor_add16
-
-xor16:
-	disable user
-xor_add16:	/* if user is set, do add, else do xor */
-	force 16,loopcnt	/* rega and regb pointers to src, contw is result */
-xoradd_loop:
-	ifetcht 1,rega
-	ifetch 1,regb
-	branch xoradd_add,user
-	ixor temp,pdata
-	branch xoradd_store
-xoradd_add:	
-	iadd temp,pdata
-xoradd_store:	
-	istore 1,contw
-	increase 1,rega
-	increase 1,regb
-	loop xoradd_loop
-	rtn
-
-	
-function_expand:		/* rega pointers to bdaddr, or aco and user is set */
-	arg mem_y,contw
-	ifetch 6,rega
-	istore 6,contw
-	branch expand_12,user
-	ifetch 6,rega
-	branch expand_cont
-expand_12:
-	ifetch 6,contr
-expand_cont:
-	istore 6,contw
-	ifetch 4,rega
-	istore 4,contw
-	rtn
-
-key_offset:
-	arg mem_link_key,contr
-	arg mem_x,contw
-	arg 0,temp
-	setarg 0x8395a7
-	call concatenate_temp24
-	setarg 0xb3c1df
-	call concatenate_temp24
-	setarg 0xe5e9
-	call concatenate_temp16
-	copy temp,regab
-	disable user
-	call key_addxor
-	copy regab,temp
-	enable user
-	branch key_addxor
-
-key_addxor:
-	force 8,loopcnt
-key_addxor_loop:	
-	ifetch 1,contr
-	compare 1,loopcnt,1
-	branch key_high,user
-	branch key_xor,true
-key_add:	
-	iadd temp,pdata
-	branch key_store
-key_high:
-	branch key_add,true
-key_xor:
-	ixor temp,pdata
-key_store:
-	istore 1,contw
-	rshift8 temp,temp
-	loop key_addxor_loop
-	rtn
-
-copy_aco:
-	fetch 6,mem_input_store+4
-	store 6,mem_aco
-	ifetch 6,contr
-	istore 6,contw
-	rtn
-	
-concatenate_temp24:
-	lshift8 temp,temp
-concatenate_temp16:
-	lshift16 temp,temp
-	ior temp,temp
-	rtn
-
-ifdef TESTING
-test_security:
-	fetch 1,0xff
-	branch test_security,blank
-
-	/* inrand */
-	setarg 0x1BC683
-	store 3,0x0
-	setarg 0x122980
-	istore 3,contw
-	setarg 0xD0DB17
-	istore 3,contw
-	setarg 0x2B1D78
-	istore 3,contw
-	setarg 0x2743A6
-	istore 3,contw
-	setarg 0xD8
-	istore 1,contw
-
-	/* comb A */
-	setarg 0xA6D0C9
-	store 3,0x10
-	setarg 0xA9E86C
-	istore 3,contw
-	setarg 0x9E89D5
-	istore 3,contw
-	setarg 0xC61838
-	istore 3,contw
-	setarg 0x6F0318
-	istore 3,contw
-	setarg 0x9F
-	istore 1,contw
-
-	/* comb B */
-	setarg 0x7F6833
-	store 3,0x20
-	setarg 0xE62E1B
-	istore 3,contw
-	setarg 0x9F67FC
-	istore 3,contw
-	setarg 0x8D3712
-	istore 3,contw
-	setarg 0x0B846C
-	istore 3,contw
-	setarg 0x4A
-	istore 1,contw
-
-	/* auth rand A */
-	setarg 0xFBB686
-	store 3,0x30
-	setarg 0x19FE7F
-	istore 3,contw
-	setarg 0x16A439
-	istore 3,contw
-	setarg 0xF4F6A4
-	istore 3,contw
-	setarg 0x10D61D
-	istore 3,contw
-	setarg 0xDE
-	istore 1,contw
-
-	/* auth rand B */
-	setarg 0x735B0C
-	store 3,0x40
-	setarg 0xA7F06B
-	istore 3,contw
-	setarg 0x04625E
-	istore 3,contw
-	setarg 0x3463B0
-	istore 3,contw
-	setarg 0xB8F17A
-	istore 3,contw
-	setarg 0x7C
-	istore 1,contw
-
-	/* address A */
-	setarg 0xf91330
-	store 3,0xb0
-	setarg 0x664c7d
-	istore 3,contw
-
-	/* address B */
-	setarg 0xdc7100
-	store 3,0xb8
-	setarg 0x2ea003
-	istore 3,contw
-
-	/* sres A */
-	setarg 0x2EEE19
-	store 3,0x50
-	setarg 0x7E
-	istore 1,contw
-
-	/* sres B */
-	setarg 0x4231A4
-	store 3,0x58
-	setarg 0xD1
-	istore 1,contw
-
-	/* linkA */
-	setarg 0xa6a026
-	store 3,0x60
-	setarg 0x2569d2
-	istore 3,contw
-	setarg 0xab4a9d
-	istore 3,contw
-	setarg 0x5e87c0
-	istore 3,contw
-	setarg 0x792aa9
-	istore 3,contw
-	setarg 0x4b
-	istore 1,contw
-
-	/* linkB */
-	setarg 0xa1f07d
-	store 3,0x70
-	setarg 0xec97a6
-	istore 3,contw
-	setarg 0xae31eb
-	istore 3,contw
-	setarg 0x6fe3c4
-	istore 3,contw
-	setarg 0xa1ae1a
-	istore 3,contw
-	setarg 0x3a
-	istore 1,contw
-
-	/* linkkey */
-	setarg 0x07505b
-	store 3,0x80
-	setarg 0xc9fe74
-	istore 3,contw
-	setarg 0x057b76
-	istore 3,contw
-	setarg 0x316404
-	istore 3,contw
-	setarg 0xd884b3
-	istore 3,contw
-	setarg 0x71
-	istore 1,contw
-
-	/* K */
-	setarg 0x0c333f
-	store 3,0x90
-	setarg 0x41de70
-	istore 3,contw
-	setarg 0x9b05a2
-	istore 3,contw
-	setarg 0xb954a2
-	istore 3,contw
-	setarg 0xb37516
-	istore 3,contw
-	setarg 0x36
-	istore 1,contw
-
-	/* kinit */
-	setarg 0x5ff91a
-	store 3,0xa0
-	setarg 0x39b5a4
-	istore 3,contw
-	setarg 0x258f2d
-	istore 3,contw
-	setarg 0x5d4a85
-	istore 3,contw
-	setarg 0x656ad3
-	istore 3,contw
-	setarg 0xab
-	istore 1,contw
-
-	arg 0,contr
-	arg mem_random_number,contw
-	call memcpy16
-	setarg 0x3131
-	store 2,mem_pin
-	istore 2,contw
-	jam 4,mem_pin_length
-	arg 0xb8,rega
-	call function_e22
-	arg mem_input_store,contr
-	arg mem_kinit,contw
-	call memcpy16
-	arg 0x10,rega
-	arg mem_kinit,regb
-	arg mem_random_number,contw
-	call xor16
-	arg 0xb0,rega
-	call function_e21
-	arg 0x60,regb
-	call compare16
-error_lka:
-	nbranch error_lka,zero
-	arg mem_input_store,contr
-	arg mem_link_key,contw	
-	call memcpy16
-	arg 0x20,rega
-	arg mem_kinit,regb
-	arg mem_random_number,contw
-	call xor16
-	arg 0xb8,rega
-	call function_e21
-	arg 0x70,regb
-	call compare16
-error_lkb:
-	nbranch error_lkb,zero
-	arg mem_input_store,rega
-	arg mem_link_key,regb
-	arg mem_link_key,contw
-	call xor16
-	arg 0x30,contr
-	arg mem_random_number,contw
-	call memcpy16
-	arg 0xb8,rega
-	call function_e1
-	arg 0x50,regb
-	force 4,loopcnt
-	call compare_key
-error_sresa:
-	nbranch error_sresa,zero
-	arg 0x40,contr
-	arg mem_random_number,contw
-	call memcpy16
-	arg 0xb0,rega
-	call function_e1
-	arg 0x58,regb
-	force 4,loopcnt
-	call compare_key
-error_sresb:
-	nbranch error_sresb,zero
-	branch loop1
-	
-	arg 0,contr
-	arg mem_random_number,contw
-	call memcpy16
-	force 12,loopcnt
-	call memcpy
-	arg 0x1c,contr
-	arg mem_link_key,contw
-	call memcpy16
-	arg 0x10,rega
-	call function_e3
-	branch loop1
-
-compare16:
-	force 16,loopcnt
-compare_key:
-	arg mem_input_store,rega
-	branch compare_loop
-
-compare_loop:
-	ifetch 1,rega
-	ifetcht 1,regb
-	isub temp,null
-	nrtn zero
-	increase 1,rega
-	increase 1,regb
-	loop compare_loop
-	force 0,pdata
-	rtn
-
-endif
-
-
-loop1:	
-	branch loop1
-
-/* ==================== LE security ================= */
-
-generate_stk:
-	bpatchx patch3c_0,mem_patch3c
-	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
-
-	/* 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			/* B0 */
-	lshift8 temp,regext
-	ior regext,regext
-	increase 1,regext_index
-	rshift8 temp,regext
-	rshift16 regext,regext
-	fetch 2,mem_le_ivm
-	lshift16,pdata,pdata
-	ior regext,regext				/* octet3&octet4 of counter and low 16 bit of IV */
-	increase 1,regext_index
-	ifetch 4,contr					/* IV2-IV5 */
-	iforce regext
-	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
-	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
-	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:
-	bpatchx patch3c_1,mem_patch3c
-	arg mem_le_txheader,regc
-	fetcht 5,mem_le_pcnt_tx
-	call generate_mic
-	force regidx_xor,regext_index
-	iforce regext
-	force 0,rega					/* rega is block counter */
-	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_le_pcnt_tx
-	increase 1,temp
-	storet 5,mem_le_pcnt_tx
-	rtn
-
-le_decrypt:
-	bpatchx patch3c_2,mem_patch3c
-	fetch 1,mem_le_rxbuf+1
-	sub pdata,20,null
-	branch le_dec_cont,positive
-le_dec_cont:
-	arg mem_le_rxbuf+2,regc
-	add pdata,-1,regb
-	increase -4,pdata				/* mic will be discarded */
-	store 1,mem_le_rxbuf+1
-	iadd regc,contr
-	ifetch 4,contr
-	force regidx_xor,regext_index
-	iforce regext
-	force 0,rega					/* rega is block counter */
-	fetcht 5,mem_le_pcnt_rx
-	call first_block_data
-	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				/* MIC ok? */
-	nrtn blank
-	fetch 4,mem_le_last_mic			/* reduntdant packet? */
-	isub temp,pdata
-	rtn blank
-	storet 4,mem_le_last_mic
-	fetch 5,mem_le_pcnt_rx
-	increase 1,pdata
-	store 5,mem_le_pcnt_rx
-	force 0,pdata
-	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
-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 patch3c_3,mem_patch3c
-	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
-
-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
-	force 0,null
-	rtn
-
-enable_authrom:
-	hfetch 1,core_clkoff
-	set0 CLOCK_OFF_AUTH_ROM,pdata
-	hstore 1,core_clkoff
-	rtn
-
-disable_authrom:
-	hfetch 1,core_clkoff
-	set1 CLOCK_OFF_AUTH_ROM,pdata
-	hstore 1,core_clkoff
-	rtn
-
-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
-
-
-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: DPI_Switch/program/sim.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/sim.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/sim.prog	(nonexistent)
@@ -1,518 +0,0 @@
-simstart:
-	force 8,radio_ctrl
-	force 0,radio_ctrl
-	jam 0xe0,0x8907			// set if_phase=7 for simulation environment
-	jam 0xe0,0x890a
-	jam 0x25,0x8912
-	jam 0xff,rfen_ck
-	jam 5,core_clksel
-//	call init_24m
-//	branch sim_usb
-//	branch sim_iic
-//	branch sim_clk
-//	call sim_uart
-//	branch sim_lpm
-//	branch sim_c1
-//	branch loop
-//	call sim_spi
-//	call sim_eep
-//	branch test_tx
-//	branch sim_le
-//	branch sim_250k
-	branch sim_main
-
-
-
-
-sim_lpm:
-	hfetch 1,0xffd
-	beq 1,sim_assert
-	branch sim_lpm_do
-	setarg 0
-	set1 31,pdata
-	store 8,mem_gpio_wakeup_low
-	branch lpm_hibernate
-sim_lpm_sleep:
-	jam 1,mem_context
-	branch sim_lpm_wait,wake
-	jam 0x70,core_bist_ctrl
-	jam ccnt_start,core_misc_ctrl
-sim_lpm_wait:
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	branch sim_lpm_wait,blank
-	call lpm_recover_clk,wake
-	jam 0x1b,mem_lpm_ldocnt
-	arg sim_assert,loopcnt
-	hfetch 1,core_gpio_wakeup_low+2
-	bbit0 2,sim_lpm_loop
-	until null,lpo_edge
-	jam 0x20,core_misc_ctrl
-	until null,lpo_edge
-sim_lpm_loop:
-	hfetch 1,core_misc_status
-	bbit1 6,sim_lpm_loop
-	hfetch 1,core_gpio_in+3
-	compare 0x20,pdata,0x20
-	setarg 0
-	setflag true,29,pdata
-	setflag true,30,pdata
-	store 4,mem_gpio_wakeup_low
-	setarg 0
-	nsetflag true,29,pdata
-	nsetflag true,30,pdata
-	store 4,mem_gpio_wakeup_high
-sim_lpm_do:
-	arg 30,temp
-	branch lpm_sleep
-
-sim_assert:
-	branch sim_assert
-
-
-sim_main:
-	call init_param
-	jam 0,core_clkoff
-	hfetch 1,0x17fd
-	beq 1,sim_slave
-
-	arg 3,temp
-	call set_freq_tx
-	nop 500
-	enable encode_fec0
-	disable is_rx
-	enable is_tx
-	set1 TXGFSK,radio_ctrl
-	call sim_access
-	preload access
-	inject mod,72
-	setarg 0x123456
-	inject mod,72
-	set1 PSK,radio_ctrl
-	setarg 0xabeee
-	inject mod,20
-	setarg 0x22aa33
-	inject mod,72
-	branch s_loop
-
-
-	jam dvc_op_hci,mem_device_option
-	fetch 6,mem_lap
-	store 6,mem_hci_plap
-	setarg 0xbdbdbd
-	store 3,mem_lap
-	istore 3,contw
-	jam hci_cmd_create_conn,mem_hci_cmd
-	force 0xf,pdata
-	add pdata,-2,clkn_bt
-	store 4,mem_page_clk
-	rshift clkn_bt,pdata
-	store 4,mem_last_clkn
-	jam 0,mem_scan_mode
-sim_loop:
-	call idle_dispatch
-	fetch 1,mem_context
-	bbit0 state_inconn,sim_skip
-	set1 mark_tx_l2cap,mark
-	fetch 1,mem_context + coffset_op		
-	set1 op_txl2cap,pdata
-	store 1,mem_context + coffset_op
-	jam 0,mem_context + coffset_lmp_to_send
-	jam 0,mem_lmo_opcode2
-	setarg 700
-	store 2,mem_tx_len
-	setarg mem_tmp_buffer
-	store 2,mem_txptr
-	jam 6,mem_tx_lch
-	jam 1,mem_hci_conn_handle
-sim_skip:
-	call connection_dispatch
-	branch sim_loop		
-
-sim_slave:
-
-	arg 3,temp
-	call set_freq_rx
-	call rf_rx_enable
-	call sim_access
-	enable is_rx
-	enable decode_fec0
-	correlate null,never
-	set1 PSK,radio_ctrl
-	correlate null,never
-	parse demod,bucket,72
-	branch s_loop
-
-
-	jam 2,mem_scan_mode
-	call page_scan_dispatch
-	branch sim_slave
-
-sim_access:
-	setarg 0x1234567
-	iforce lap
-	pulse recalc
-	nop 32
-	rtn
-
-sim_iic:
-	call iicd_init_12m
-	setarg 3
-	hstore 2,core_iicd_txlen
-	setarg 0x1f051e
-	store 3,mem_iicd_addr
-	setarg mem_iicd_addr
-	hstore 2,core_iicd_txaddr
-	setarg 1
-	hstore 2,core_iicd_rxlen
-	jam 3,core_iicd_ctrl
-	jam iicd_start,core_misc_ctrl
-	call wait_iicd_done
-	nop 300
-	setarg 0xd321d2
-	store 3,mem_iicd_addr
-	jam iicd_start,core_misc_ctrl
-	call wait_iicd_done
-s_loop:
-	branch s_loop
-
-sim_usb:
-	call usb_init
-sim_usb_loop:
-	call usb_isr
-	branch sim_usb_loop
-
-init_24m:
-	jam 0x4b,core_halfslot
-	jam 0x1d,core_halfslot + 1
-	jam 1,core_clksel
-	rtn
-
-
-p_transmit_sw:
-	reverse uap,regc				// hec init
-	enable encode_fec0
-	set0 mark_longpacket,mark
-	copy am_addr,temp
-	arg 3,loopcnt
-	call p_head
-	copy type,temp
-	arg 4,loopcnt
-	call p_head
-	fetch 1,mem_arq
-	lshift4 pdata,temp
-	arg 3,loopcnt
-	call p_head
-	copy regc,temp
-	arg 8,loopcnt
-	call p_head
-	reverse uap,regc
-	lshift8 regc,regc				// crc init
-	and type,0x1f,pdata
-	beq type_fhs, p_transmit_fhs
-
-
-
-p_transmit_fhs:
-	call fetch_self_bt_adr
-	pulse recalc
-	enable user
-	call p_fec2_init
-	fetch 1,mem_fhs_am_addr            /* this is the am_addr to assign to slave */
-	icopy am_addr
-	fetch 1,mem_fhs_misc
-	icopy fhs_misc    /* [7:6]SR [5:4]SP [3:1]PS [0]undef  */
-	fetch 3,mem_class   /* store away class */
-	icopy fhs_class
-	copy bt_adr,rega
-	nop 12                    /* 30 cycles after recalc for sync word generation */
-	copy bt_clk,timeup
-	fetch 4,mem_clkn_bt
-	icopy bt_clk
-	preload fhs0
-	iforce temp
-	arg 32,loopcnt
-	call p_fec2
-	preload fhs0
-	set1 58,pdata		/* eir */
-	rshift32 pdata,temp
-	arg 40,loopcnt
-	call p_fec2
-	preload fhs1
-	iforce temp
-	arg 32,loopcnt
-	call p_fec2
-	preload fhs1
-	rshift32 pdata,temp
-	arg 40,loopcnt
-	call p_fec2
-	copy timeup,bt_clk
-	copy rega,bt_adr
-	copy regc,temp
-	arg 16,loopcnt
-	disable user
-	call p_fec2
-	branch end_of_packet
-	
-// hec or crc is in regc
-p_hec:
-	deposit temp
-	ixor regc,pdata
-	rshift regc,regc
-	rtnbit0 0
-	xor_into 0xe5,regc
-	rtn
-
-// hec or crc is in regc
-p_crc:
-	deposit temp
-	ixor regc,pdata
-	rshift regc,regc
-	rtnbit0 0
-	setarg 0x8408
-	ixor regc,regc
-	rtn
-
-
-// white is in debug
-p_white:
-	isolate1 6,debug
-	lshift debug,debug
-	nrtn true
-	xor_into 0x11,debug
-	xor_into 1,temp
-	rtn
-
-// data in temp, length in loopcnt
-p_head:
-	call p_hec
-	call p_white
-	isolate0 0,temp
-	setarg 0
-	branch p_fec1_0,true
-	setarg 7
-p_fec1_0:
-	inject mod,3
-	rshift temp,temp
-	loop p_head
-	rtn
-
-p_fec0:
-	call p_white
-	deposit temp
-	inject mod,1
-	loop p_fec0
-	rtn
-
-p_fec2:
-	call p_crc,user
-	call p_white
-	deposit temp
-	ixor alarm,pdata
-	rshift alarm,alarm
-	bbit0 0,p_fec2_zero
-	xor_into 0x15,alarm
-p_fec2_zero:
-	deposit temp
-	inject mod,1
-	rshift temp,temp
-	increase -1,queue
-	nbranch p_fec2_nf,zero
-	deposit alarm
-	inject mod,5
-	call p_fec2_init
-p_fec2_nf:
-	loop p_fec2	
-	rtn
-
-p_fec2_init:
-	arg 10,queue
-	arg 0,alarm
-	rtn
-
-
-ifdef NULL
-sim_250k:
-	call init_250k
-	hfetch 1,1
-	bbit1 7,sim_250k_rx
-	call tx_radio_freq
-	call start_transmitter	/* get ready for that id packet */
-	nop 600
-	enable encode_fec0
-	set1 TXGFSK,radio_ctrl
-	force 0,pdata
-	inject mod,9
-	setarg 0xaa
-	inject mod,8
-	preload access
-	inject mod,32
-	setarg 0x1da861
-	inject mod,24
-	setarg 0x94445b
-	inject mod,24
-	setarg 0x1275f
-	inject mod,24
-	branch loop
-sim_250k_rx:
-	call rx_radio_freq
-	call start_receiver	/* wait for that id packet from master */
-	enable decode_fec0
-	correlate null,never
-	parse demod,bucket,72
-	branch loop
-
-	
-
-
-
-sim_uart:
-	setarg mem_le_test_uart_rxbuf
-	hstore 2,core_uart_tsaddr
-	hstore 2,core_uart_twptr
-	hstore 2,core_uart_trptrp
-	increase 0x80,pdata
-	hstore 2,core_uart_teaddr
-	hstore 2,core_uart_rsaddr
-	hstore 2,core_uart_rrptr
-	increase 0x80,pdata
-	hstore 2,core_uart_readdr
-	increase 1,pdata
-	jam 0x84,core_gpio_sel1
-	jam 0x80,core_gpio_pu2
-	jam 0xe5,core_uart_ctrl
-	setarg 0x30
-	hstore 2,core_uart_baud
-	hfetch 1,1
-	bbit1 7,sim_uart_wait
-	setarg 0x1357d9a
-	store 4,mem_le_test_uart_rxbuf
-	setarg 0x55aa69
-	istore 3,contw
-	setarg 0xfedcb3
-	istore 3,contw
-	deposit contw
-	hstore 2,core_uart_twptr
-sim_uart_wait:
-	nop 20000
-	rtn
-
-sim_spi:
-	call spid_init_flash
-	call spid_unlock_flash
-	call spid_init
-	setarg 0x35
-	call spid_read_reg
-	nop 200
-	force 4,temp
-	setarg 0x42
-	branch spid_read_regs
-
-sim_eep:
-	call iicd_init_12m
-	setarg 3
-	hstore 2,core_iicd_txlen
-	setarg 0x1f051e
-	store 3,mem_iicd_addr
-	setarg mem_iicd_addr
-	hstore 2,core_iicd_txaddr
-	setarg 1
-	hstore 2,core_iicd_rxlen
-	jam 3,core_iicd_ctrl
-	jam iicd_start,core_misc_ctrl
-	call wait_iicd_done
-	nop 200
-	setarg 0x18f7a3b
-	store 4,mem_iicd_addr
-	arg mem_iicd_addr,rega
-	arg 4,temp
-	setarg 0x1235
-	call iicd_write_eep
-	nop 300
-	arg mem_ucode_keybuf,rega
-	arg 1,temp
-	setarg 0x3512
-	store 2,mem_addr_mi
-	call iicd_read_eep
-	arg 1,temp
-	setarg 0x3512
-	store 2,mem_addr_mi
-	call iicd_read_eep
-	nop 200
-	setarg 0xa1
-	arg 3,temp
-	arg mem_ucode_keybuf,rega
-	branch iicd_read_data
-
-sim_otp:
-	setarg 0x123456
-	store 3,0x800
-	setarg 0x10
-	arg 0x800,rega
-	arg 0x10,loopcnt
-	branch otp_write
-
-sim_clk:
-	add lpo_time,12,alarm
-	snooze
-clock_loop:
-	nop 100
-	jam 1,core_config
-	setflag user,0,pdata
-	random pdata
-	and_into 0x1f,pdata
-	hstore 1,core_clksel
-	nop 70
-	jam 2,core_kick
-	nop 200
-	branch clock_loop
-	jam 2,core_clksel
-	setarg 1500
-	call sleep
-	jam 0x42,core_clksel
-	add lpo_time,200,alarm
-	snooze
-	branch 0x4000
-
-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
-
-	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
-endif
Index: DPI_Switch/program/simple_pairing.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/simple_pairing.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/simple_pairing.prog	(nonexistent)
@@ -1,2362 +0,0 @@
-
-publickey_init:
-	fetch 1,mem_ssp_enable
-	nbranch sp_initialize,blank
-	branch sp_initialize_256
-
-sp_calc_sequence_256_check:
-	bpatchx patch3c_4,mem_patch3c
-	fetch 1,mem_ssp_enable
-	rtn blank
-	fetch 1,mem_sp_local_key_invalid
-	rtnne SP_KEY_VALID
-	fetch 1,mem_le_secure_connect_enable
-	rtn blank
-	fetch 1,mem_le_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_le_sc_calc
-	beq SP_CALC_STANDBY,sp_initialize_256
-	rtn
-stop_publickey_calc_256:
-	jam SP_CALC_STANDBY,mem_le_sc_calc	
-	rtn
-	
-ifdef SIMPLE_PAIRING
-
-sp_initialize:
-	bpatchx patch3c_5,mem_patch3c
-	fetch 1,mem_ssp_enable 
-	branch ssp_disable, blank
-	call ssp_enable
-	call sp_clear_flags
-	branch sp_pubkey_calc 
-	
-sp_clear_flags:
-	setarg 0
-	store 8,mem_sp_state_start
-	store 4,mem_sp_flag_start
-	store 7,mem_sp_iocap_remote
-	rtn
-
-sp_generate_local_key:
-	jam SP_FLAG_COMMIT,mem_sp_flag  
-	branch sp_generate_local_key0
-sp_master_generate_local_key:
-	fetch 1,mem_sp_local_key_invalid
-	beq SP_KEY_VALID,sp_dhkey_calc
-	branch assert
-sp_generate_local_key0:
-	fetch 1,mem_sp_local_key_invalid
-	beq SP_KEY_VALID,sp_start_send_pubkey
-	branch sp_pubkey_calc
-    
-sp_start_send_pubkey:
-	call sp_dhkey_calc
-	fetch 1,mem_master_sp_state
-	nrtn blank
-	jam SP_STAT_KEY_SEND,mem_sp_state
-	rtn
-
-
-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	
-	
-sp_calc_check_publickey:
-	call sp_calc_b
-	arg mem_sp_pubkey_remote_y,regA
-	arg mem_t7_256,contw
-	call bn_sqrmod 
-	arg mem_sp_pubkey_remote_x,regA
-	arg mem_t2_256,contw
-	call bn_sqrmod
-  	arg mem_t2_256,regA
-	arg mem_sp_pubkey_remote_x,regB
-	arg mem_t2_256,contw
-	call bn_mulmod	
-  	arg mem_a,regA
-	arg mem_sp_pubkey_remote_x,regB
-	arg mem_t3_256,contw
-	call bn_mulmod	
-  	arg mem_t3_256,regA
-	arg mem_t2_256,regB
-	arg mem_t2_256,contw
-	call bn_addmod	 
-  	arg mem_t0_256,regA
-	arg mem_t2_256,regB
-	arg mem_t0_256,contw
-	call bn_addmod	 
- 	arg 24,loopcnt
- 	arg mem_t7_256,regA
-	arg mem_t0_256,regB
-	branch  string_compare
-	
-sp_calc_b:
-	arg mem_gy,regA
-	arg mem_t0_256,contw
-	call bn_sqrmod   
-	arg mem_gx,regA
-	arg mem_t2_256,contw
-  	call bn_sqrmod
-  	arg mem_t2_256,regA
-	arg mem_gx,regB
-	arg mem_t2_256,contw
-	call bn_mulmod	
-	arg mem_a,regA
-	arg mem_gx,regB
-	arg mem_t3_256,contw
-	call bn_mulmod	 
-  	arg mem_t3_256,regA
-	arg mem_t2_256,regB
-	arg mem_t2_256,contw
-	call bn_addmod	 
-  	arg mem_t0_256,regA
-	arg mem_t2_256,regB
-	arg mem_t0_256,contw
-	branch  bn_submod	
-
-   
-sp_calculate_commitment:
-	fetch 1,mem_sp_calc
-	bne SP_CALC_STANDBY,sp_calculate_commitment_wait_dhkey_calc
-	call sp_local_random_key_generator
-	arg mem_sp_prarm_stack,contw
-	setarg mem_sp_random_local_end
-	istore 2,contw
-	setarg mem_sp_pubkey_local_x_end
-	istore 2,contw
-	setarg mem_sp_pubkey_remote_x_end
-	istore 2,contw
-	branch sp_calculate_commitment0
-master_sp_calculate_commitment:
-	arg mem_sp_prarm_stack,contw
-	setarg mem_sp_random_remote_end
-	istore 2,contw
-	setarg mem_sp_pubkey_remote_x_end
-	istore 2,contw
-	setarg mem_sp_pubkey_local_x_end
-	istore 2,contw
-sp_calculate_commitment0:
-	call function_f1
-	fetch 1,mem_master_sp_state
-	beq SP_STAT_COMMIT_CALC,master_sp_calculate_commitment0
-	jam SP_FLAG_COMMIT,mem_sp_flag
-	jam SP_STAT_COMMIT_SEND,mem_sp_state
-	rtn
-master_sp_calculate_commitment0:
-	jam SP_STAT_COMMITMENT_COMPARE,mem_master_sp_state
-	call sp_master_generate_local_key
-	branch master_set_mem_master_sp_flag 
-
-sp_local_random_key_generator:
-	arg mem_sp_random_local,contw
-	force 8,queue
-	branch random_generator
-  
-sp_calculate_commitment_wait_dhkey_calc:
-	jam      SP_FLAG_COMMIT,mem_sp_flag
-	rtn
-    
-sp_confirm_check:
-    /* calculate Ea here */
-	bpatchx patch3c_6,mem_patch3c
-	arg      mem_addr_value,contw
-	fetch    6,mem_lap
-	istore   6,contw
-	fetch    6,mem_plap
-	istore   6,contw
-	fetch    3,mem_sp_iocap_remote
-	istore   3,contw 
-
-	call     function_f3a
-
-	arg      mem_sp_calc_result_high,regA
-	arg      mem_sp_check_result,regB    
-	force    4,queue 
-	call     compare4
-	nbranch  sp_confirm_check_failed,true  
-
-	call sp_confirm_check_success
-	jam LMP_DHKey_Check,mem_lmi_opcode2
-	branch tid_set_reply
-    
-sp_confirm_check_success:
-	fetch 1,mem_master_sp_state
-	beq SP_STAT_CONFIRM_CHECK,sp_confirm_check_success_master
-	jam SP_STAT_CONFIRM_CALC,mem_sp_state
-	jam SP_FLAG_COMMIT,mem_sp_flag  
-	jam LMP_ACCEPTED,mem_lmo_opcode2
-	rtn
-sp_confirm_check_success_master:
-	jam LMP_ACCEPTED,mem_lmo_opcode2
-	jam SP_STATE_END,mem_master_sp_state
-	branch master_set_mem_master_sp_flag
-	//accept opcode?
-	
-sp_confirm_check_failed:
-	fetch 1,mem_master_sp_state
-	beq SP_STAT_CONFIRM_CHECK,sp_confirm_check_failed_master
-	jam SP_STAT_NULL,mem_sp_state
-	jam LMP_NOT_ACCEPTED,mem_lmo_opcode2
-	//accept opcode?
-	jam      AUTHENTICATION_FAILURE_ERROR,mem_lmo_reason2 
-	rtn
-sp_confirm_check_failed_master:
-	jam LMP_NOT_ACCEPTED,mem_lmo_opcode2
-	jam SP_STAT_NULL,mem_master_sp_state
-	rtn
-    
-sp_confirm_calc:
-	fetch 1,mem_sp_dh_ready
-	beq SP_FLAG_COMMIT, sp_confirm_calc_ready
-	jam 	SP_STAT_CONFIRM_CALC,mem_master_sp_state
-	branch master_set_mem_master_sp_flag
-sp_confirm_calc_ready:
-	arg      mem_addr_value,contw
-	fetch    6,mem_plap
-	istore   6,contw
-	fetch    6,mem_lap
-	istore   6,contw
-	fetch    3,mem_sp_iocap_local
-	istore   3,contw 
-
-	call     function_f3b
-	fetch 1,mem_master_sp_state
-	beq SP_STAT_CONFIRM_CALC,sp_confirm_calc_master
-	jam      SP_STAT_CONFIRM_SEND,mem_sp_state
-	jam      SP_FLAG_COMMIT,mem_sp_flag
-	rtn
-sp_confirm_calc_master:
-	jam      SP_STAT_CONFIRM_SEND,mem_master_sp_state
-	jam      SP_FLAG_COMMIT,mem_master_sp_flag
-	rtn   
-
-sp_master_key_prarm_push:
-	arg mem_sp_prarm_stack,contw
-	fetch    6,mem_plap
-	istore   6,contw
-	fetch    6,mem_lap
-	istore   6,contw
-	setarg mem_sp_random_local_end
-	istore 2,contw
-	setarg mem_sp_random_remote_end
-	istore 2,contw
-	branch sp_link_key_calc
-sp_link_key_prarm_push:
-	jam      SP_STAT_DONE,mem_sp_state    
-	arg mem_sp_prarm_stack,contw
-	fetch    6,mem_lap
-	istore   6,contw
-	fetch    6,mem_plap
-	istore   6,contw
-	setarg mem_sp_random_remote_end
-	istore 2,contw
-	setarg mem_sp_random_local_end
-	istore 2,contw
-sp_link_key_calc:
-    /*calculate Link key here */
-	arg      mem_addr_value,contw
-	fetch    6,mem_sp_prarm_stack
-	istore   6,contw
-	fetch    6,mem_sp_prarm_stack+6
-	istore   6,contw
-	
-	call     function_f2    
-
-	/*handle linkkey  */
-	jam 1,mem_link_key_exists
-	arg mem_link_key,contw
-	arg mem_sp_calc_result_high,contr
-	call memcpy16
-	branch  generate_linkkey_continue
-
-    
-sp_pubkey_calc:
-	bpatchx patch3c_7,mem_patch3c
-	fetch    1,mem_sp_local_key_invalid
-	rtnne SP_KEY_INVALID
-	fetch    1,mem_sp_calc
-	rtnne  SP_CALC_STANDBY
-	arg      mem_sp_private_key,contw 
-	force    11,queue
-	call     random_generator
-	random   pdata
-	rshift   pdata,pdata
-	istore   2,contw 
-/* we don't need fixed private key,generate random key instead */ 
-	arg      mem_k,contw
-	arg      mem_sp_private_key,contr	
-	call     memcpy24 //mem_sp_private_key=>mem_k 24BYTES
-
-	arg      mem_ax,contw
-	arg      mem_gx,contr
-	call     memcpy48 //mem_gx=>mem_ax 48bytes
-
-	arg      mem_az,contw
-	call     bn_zero
-	jam      1,mem_az //0=>mem_az 24bytes
-
-	call     eckp_calc_init
-	jam SP_CALC_PUBKEY,mem_sp_calc
-	rtn    
-	
-sp_pubkey_generated:
-	arg      mem_sp_pubkey_local,contw
-	arg      mem_bx,contr
-	call     memcpy48   
-	jam      SP_KEY_VALID,mem_sp_local_key_invalid
-	jam      SP_CALC_STANDBY,mem_sp_calc
-	rtn
-
-sp_dhkey_calc:
-	bpatchx patch3d_0,mem_patch3d
-	fetch    1,mem_sp_dhkey_invalid
-	rtnne  SP_KEY_INVALID
-	fetch    1,mem_sp_calc
-	rtnne  SP_CALC_STANDBY
-
-	arg      mem_k,contw
-	arg      mem_sp_private_key,contr	
-	call     memcpy24
-
-	arg      mem_ax,contw
-	arg      mem_sp_pubkey_remote,contr
-	call     memcpy48
-
-	arg      mem_az,contw
-	call     bn_zero
-	jam      1,mem_az
-
-	call     eckp_calc_init
-	jam      SP_CALC_DHKEY,mem_sp_calc
-	rtn 	
-	
-sp_dhkey_generated:
-	jam SP_FLAG_COMMIT,mem_sp_dh_ready
-	arg mem_sp_dhkey,contw
-	arg mem_bx,contr
-	call memcpy24
-	jam SP_KEY_VALID,mem_sp_dhkey_invalid
-	jam SP_CALC_STANDBY,mem_sp_calc
-	rtn
-
-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:
-	disable  true
-	rtn
-compare4_success:
-	enable   true
-	rtn
-
-/*************************************************/
-/** Message state machine routines ***************/
-/*************************************************/
-// simple pairing support 
-
-simple_pairing_sequence:
-	bpatchx patch3d_1,mem_patch3d
-         fetch 1,mem_sp_flag
-         rtn blank
-	call lmo_fifo_check
-	nrtn blank
-	jam      SP_FLAG_STANDBY,mem_sp_flag
-	fetch    1,mem_sp_state
-	beq  SP_STAT_KEY_SEND,sp_send_LMP_ENCAPSULATED_HEADER
-	beq  SP_STAT_COMMIT_SEND,sp_send_LMP_SIMPLE_PAIRING_COMFIRM
-	beq  SP_STAT_RANDOM_SEND,sp_send_LMP_SIMPLE_PAIRING_NUMBER
-	beq  SP_STAT_CONFIRM_SEND,sp_send_LMP_DHKEY_CHECK
-	beq  SP_STAT_KEY_GENERATE,sp_generate_local_key
-	beq  SP_STAT_COMMIT_CALC,sp_calculate_commitment
-	beq  SP_STAT_CONFIRM_CHECK,sp_confirm_check
-	beq  SP_STAT_CONFIRM_CALC,sp_confirm_calc
-	beq  SP_STAT_LINK_KEY_CALC,sp_link_key_prarm_push
-	//beq  SP_STAT_FEATURE_EXT_SEND,send_LMP_FEATURES_REQ_EXT
-	rtn  
-
-master_simple_paring_sequence:
-	bpatchx patch3d_2,mem_patch3d
-	fetch 1,mem_master_sp_flag
-	rtn blank
-	call lmo_fifo_check
-	nrtn blank
-	jam SP_FLAG_STANDBY,mem_master_sp_flag
-	fetch 1,mem_master_sp_state
-	beq SP_MASTER_STAT_START_SKIP,sp_master_send_io_cap_get
-	beq SP_MASTER_STAT_START_DONE,sp_master_send_io_cap_send
-	beq SP_STAT_KEY_SEND,sp_master_send_LMP_ENCAPSULATED_HEADER
-	beq SP_STAT_COMMIT_CALC,master_sp_calculate_commitment
-	beq SP_STAT_COMMITMENT_COMPARE,sp_master_commitment_compare
-	beq SP_STAT_RANDOM_SEND,sp_master_send_LMP_SIMPLE_PAIRING_NUMBER
-	beq SP_STAT_CONFIRM_CALC,sp_confirm_calc
-	beq SP_STAT_CONFIRM_SEND,master_sp_send_lmp_dhkey_check
-	beq SP_STAT_CONFIRM_CHECK,sp_confirm_check
-	beq SP_STATE_END,master_sp_sm_end
-	rtn
-
-master_set_mem_master_sp_flag:
-	jam SP_FLAG_COMMIT,mem_master_sp_flag
-	rtn
-	
-master_clear_mem_master_sp_flag:
-	jam SP_FLAG_STANDBY,mem_master_sp_flag
-	rtn
-sp_calc_sequence:
-	bpatchx patch3d_3,mem_patch3d
-	fetch 1,mem_ssp_enable
-	rtn blank
-	fetch 1,mem_sp_calc
-	rtn blank
-	increase 0x80,pdata
-	store    1,mem_sp_calc
-	rtnbit1 7
-	fetch    1,mem_ec_loopc
-	branch   sp_calc_sequence_done,blank
-	branch   eckp_calc
-
-sp_calc_sequence_done:    
-	call ecunmapz
-	fetch 1,mem_sp_calc
-	beq  SP_CALC_PUBKEY,sp_pubkey_generated
-	beq  SP_CALC_DHKEY,sp_dhkey_generated
-	rtn
-
-
-bn_testbit:
-	and pdata,7,queue
-	rshift3 pdata,pdata
-	iadd contr,contr
-	ifetch 1,contr
-	qisolate0 pdata
-	rtn
-
-
-ec_copy:
-	call memcpy24
-	call memcpy24
-	branch memcpy24
-	
-	
-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_lshiftmod:
-	call bn_lshift
-bn_lshiftmod_ismod:	
-	isolate1 0,regC
-	branch bn_lshiftmod_0,true
-	arg mem_p,regB
-	copy regA,regC
-	increase -24,regA
-	call bn_bigeq
-	nrtn positive
-	copy regC,regA
-bn_lshiftmod_0:
-	increase -24,regA
-	arg mem_p,regB
-	copy regA,contw
-	branch bn_sub
-	
-
-bn_addmod:
-	call bn_add
-	copy contw,regA
-	branch bn_lshiftmod_ismod
-	
-bn_submod:
-	call bn_sub
-	isolate0 0,regC
-	rtn true
-	arg mem_p,regB
-	add contw,-24,regA
-	copy regA,contw
-	branch bn_add
-	
-
-bn_p192mod:
-	copy contw,timeup				/* save result ptr */
-	copy regA,alarm				/* temp save regA */
-	arg mem_tmp2,regB
-	copy regB,contw
-	add regA,24,contr
-	ifetch 8,contr
-	istore 8,contw
-	istore 8,contw
-	force 0,pdata
-	istore 8,contw
-	copy timeup,contw
-	call bn_addmod
-	arg mem_tmp2,regB
-	copy regB,contw
-	force 0,pdata
-	istore 8,contw
-	add alarm,32,contr
-	ifetch 8,contr
-	istore 8,contw
-	istore 8,contw
-	copy timeup,regA
-	copy regA,contw
-	call bn_addmod
-	arg mem_tmp2,regB
-	copy regB,contw
-	add alarm,40,contr
-	ifetch 8,contr
-	istore 8,contw
-	istore 8,contw
-	istore 8,contw
-	copy timeup,regA
-	copy regA,contw
-	branch bn_addmod
-		
-
-bn_load:
-	force 6,loopcnt
-bn_load_0:	
-	ifetch 4,contr
-	iforce regext
-	increase 1,regext_index
-	loop bn_load_0
-	rtn
-
-
-	/* cost 1562 clks */	
-bn_mulmod:
-	copy contw,timeup					/* save result ptr */
-	arg mem_tmp1,contw
-	call bn_zero
-	arg mem_tmp1,contw
-	copy regA,contr
-	force 0,regext_index
-	call bn_load
-	copy regB,contr
-	call bn_load
-	force 0,regB
-bn_mulmod_1:	
-	force 0,temp
-	force 6,regC
-bn_mulmod_0:
-	ifetch 4,contw					/* d[i+j] */
-	iforce regA
-	copy regB,regext_index
-	deposit regext
-	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 12,regC,0xff
-	nbranch bn_mulmod_0,true
-	deposit temp
-	istore 4,contw					/* d[i + 12] = u */
-	increase -24,contw
-	increase 1,regB
-	compare 6,regB,0xff
-	nbranch bn_mulmod_1,true
-	arg mem_tmp1,regA
-	copy timeup,contw
-	branch bn_p192mod
-
-	
-bn_sqrmod:
-	copy regA,regB
-	branch bn_mulmod
-
-bn_rshifteven:
-	copy regA,alarm
-bn_rshifteven_1:
-	copy alarm,regA
-	ifetch 1,regA
-	isolate1 0,pdata
-	rtn true
-	call bn_rshift6
-	ifetch 1,regB
-	isolate0 0,pdata
-	branch bn_rshifteven_0,true
-	arg mem_p,regA
-	copy regB,contw
-	call bn_add
-	ifetch 1,regB
-	iadd regC,pdata
-	istore 1,regB						/* [6] */
-	increase -24,regB
-bn_rshifteven_0:
-	add regB,24,regA
-	force 7,loopcnt
-	call bn_rshift
-	branch bn_rshifteven_1
-
-	/* cost 141910 clks */
-bn_invmod:
-	copy contw,timeup					/* save result ptr */
-	arg mem_tmp0,contw				/* x */
-	call bn_zero
-	force 0,pdata
-	store 4,mem_tmp5
-	store 4,mem_t2
-	jam 1,mem_tmp0
-	arg mem_tmp1,contw				/* y */
-	call bn_zero
-	arg mem_p,contr
-	arg mem_tmp2,contw				/* a */
-	call memcpy24
-	copy regA,contr
-	arg mem_tmp3,contw				/* b */
-	call memcpy24
-bn_invmod_2:	
-	arg mem_tmp3,contr
-	call bn_eq_zero
-	branch bn_invmod_0,blank
-	arg mem_tmp3,regA
-	arg mem_tmp0,regB
-	call bn_rshifteven
-
-	arg mem_tmp2,regA
-	arg mem_tmp1,regB
-	call bn_rshifteven
-	arg mem_tmp3,regA
-	arg mem_tmp2,regB
-	call bn_bigeq
-	branch bn_invmod_1,positive
-	arg mem_tmp2,regA
-	arg mem_tmp3,regB
-	copy regA,contw
-	call bn_sub
-	arg mem_tmp0,regA
-	arg mem_tmp1,regB
-	copy regB,contw
-	call bn_add
-	ifetch 1,regA
-	iadd regC,regC
-	ifetch 1,regB
-	iadd regC,pdata
-	istore 1,regB
-	branch bn_invmod_2
-bn_invmod_1:
-	arg mem_tmp3,regA
-	arg mem_tmp2,regB
-	copy regA,contw
-	call bn_sub
-	arg mem_tmp1,regA
-	arg mem_tmp0,regB
-	copy regB,contw
-	call bn_add
-	ifetch 1,regA
-	iadd regC,regC
-	ifetch 1,regB
-	iadd regC,pdata
-	istore 1,regB
-	branch bn_invmod_2
-bn_invmod_0:
-	arg mem_tmp0,contw
-	call bn_zero
-	fetch 1,mem_tmp5
-	store 1,mem_tmp0
-	store 1,mem_tmp0a
-	arg mem_tmp0,regA
-	arg mem_tmp1,regB
-	copy regB,contw
-	call bn_addmod
-	arg mem_p,regA
-	arg mem_tmp1,regB
-	copy timeup,contw
-	branch bn_submod
-	
-
-
-	/* cost 64742 clks */
-ecdbl:
-	arg mem_cz,regA
-	arg mem_t2,contw
-	call bn_sqrmod
-	arg mem_t2,regA
-	arg mem_t3,contw
-	call bn_sqrmod
-	arg mem_a,regA
-	arg mem_t3,regB
-	arg mem_t3,contw
-	call bn_mulmod		/* t3=a*z4	*/
-	arg mem_cx,regA
-	arg mem_t2,contw
-	call bn_sqrmod
-	arg mem_t2,contr
-	arg mem_t1,contw
-	call memcpy24
-	arg mem_t1,regA
-	call bn_lshiftmod
-	arg mem_t2,regA
-	arg mem_t1,regB
-	arg mem_t2,contw
-	call bn_addmod
-	arg mem_t2,regA
-	arg mem_t3,regB
-	arg mem_t2,contw
-	call bn_addmod		/* t2=3*x2 + z*z4		D  */
-	arg mem_cx,contr
-	arg mem_t1,contw
-	call memcpy24
-	arg mem_cy,regA
-	arg mem_t3,contw
-	call bn_sqrmod
-	arg mem_t1,regA
-	call bn_lshiftmod
-	arg mem_t1,regA
-	call bn_lshiftmod
-	arg mem_t1,regA		
-	arg mem_t3,regB
-	arg mem_t1,contw
-	call bn_mulmod		/* t1=4x*y2	B	*/
-	arg mem_t3,regA
-	arg mem_t0,contw
-	call bn_sqrmod
-	arg mem_t0,regA
-	call bn_lshiftmod
-	arg mem_t0,regA
-	call bn_lshiftmod		
-	arg mem_t0,regA		
-	call bn_lshiftmod		/* t0=8*y4		C */
-	arg mem_cy,contr
-	arg mem_t3,contw
-	call memcpy24
-	arg mem_t3,regA
-	call bn_lshiftmod
-	arg mem_t3,regA
-	arg mem_cz,regB
-	arg mem_cz,contw
-	call bn_mulmod		
-	arg mem_t2,regA
-	arg mem_t3,contw
-	call bn_sqrmod
-	arg mem_t3,regA
-	arg mem_t1,regB
-	arg mem_t3,contw
-	call bn_submod
-	arg mem_t3,regA
-	arg mem_t1,regB
-	arg mem_cx,contw
-	call bn_submod
-	arg mem_t1,regA
-	arg mem_cx,regB
-	arg mem_t3,contw
-	call bn_submod
-	arg mem_t3,regA
-	arg mem_t2,regB
-	arg mem_t3,contw
-	call bn_mulmod		
-	arg mem_t3,regA
-	arg mem_t0,regB
-	arg mem_cy,contw
-	branch bn_submod
-	
-
-	/* cost 104904	clks */
-ecadd:
-	arg mem_az,regA
-	arg mem_t7,contw
-	call bn_sqrmod
-	arg mem_cx,regA
-	arg mem_t7,regB
-	arg mem_t0,contw
-	call bn_mulmod		/* n1=t0=xa*zb2  */
-	arg mem_az,regA
-	arg mem_t7,regB
-	arg mem_t7,contw
-	call bn_mulmod	
-	arg mem_cy,regA
-	arg mem_t7,regB
-	arg mem_t1,contw
-	call bn_mulmod		/* n2=t1=ya*zb3 */
-	arg mem_cz,regA
-	arg mem_t7,contw
-	call bn_sqrmod
-	arg mem_ax,regA
-	arg mem_t7,regB
-	arg mem_t2,contw
-	call bn_mulmod		/* n3=t2=xb*za2 */
-	arg mem_cz,regA
-	arg mem_t7,regB
-	arg mem_t7,contw
-	call bn_mulmod	
-	arg mem_ay,regA
-	arg mem_t7,regB
-	arg mem_t3,contw
-	call bn_mulmod		/* n4=t3=yb*za3 */
-	arg mem_t0,regA
-	arg mem_t2,regB
-	arg mem_t7,contw
-	call bn_submod		/* n5=t7=n1-n3=t0-t2 */
-	arg mem_t0,regA
-	arg mem_t2,regB
-	arg mem_t0,contw
-	call bn_addmod		/* n7=t0=n1+n3=t0+t2 */
-	arg mem_t1,regA
-	arg mem_t3,regB
-	arg mem_t2,contw
-	call bn_submod		/* n6=t2=n2-n4=t1-t3 */
-	arg mem_t1,regA
-	arg mem_t3,regB
-	arg mem_t1,contw
-	call bn_addmod		/* n8=t1=n2+n4=t1+t3 */
-	arg mem_t1,regA
-	arg mem_t7,regB
-	arg mem_t1,contw
-	call bn_mulmod		/* t1=n8*n5 */
-	arg mem_cz,regA
-	arg mem_az,regB
-	arg mem_t3,contw
-	call bn_mulmod	
-	arg mem_t3,regA
-	arg mem_t7,regB
-	arg mem_cz,contw
-	call bn_mulmod		/* z=za*zb*n5 */
-	arg mem_t7,regA
-	arg mem_t7,contw
-	call bn_sqrmod		/* t7=n5^2 */
-	arg mem_t7,regA
-	arg mem_t0,regB
-	arg mem_t3,contw
-	call bn_mulmod		/* t3=n5^2*n7 */
-	arg mem_t7,regA
-	arg mem_t1,regB
-	arg mem_t1,contw
-	call bn_mulmod		/* t1=n8*n5^3 */
-	arg mem_t2,regA
-	arg mem_cx,contw
-	call bn_sqrmod		
-	arg mem_cx,regA
-	arg mem_t3,regB
-	arg mem_cx,contw
-	call bn_submod		/* x=n6^2-n5^2*n7 */
-	arg mem_cx,contr
-	arg mem_t7,contw
-	call memcpy24
-	arg mem_t7,regA
-	call bn_lshiftmod		/* t7=2*x */
-	arg mem_t3,regA
-	arg mem_t7,regB
-	arg mem_t3,contw
-	call bn_submod		/* t3=n9 */
-	arg mem_t3,regA
-	arg mem_t2,regB
-	arg mem_t2,contw
-	call bn_mulmod		/* t2=n9*n6 */
-	arg mem_t2,regA
-	arg mem_t1,regB
-	arg mem_cy,contw
-	call bn_submod	
-	arg mem_cy,regA
-	arg mem_p,regB
-	arg mem_cy,contw
-	force 0,regC
-	fetch 1,mem_cy
-	isolate1 0,pdata
-	call bn_add,true
-	copy regC,alarm
-	arg mem_cy,regA
-	call bn_rshift6
-	fetch 1,mem_cy5
-	isolate1 0,alarm
-	setflag true,7,pdata
-	store 1,mem_cy5
-	rtn
-
-	/* cost 22276983 clks */
-
-eckp_0:	
-	fetch 1,mem_ec_loopc
-	increase -1,pdata
-	nrtn positive
-	store 1,mem_ec_loopc
-	fetch 1,mem_ec_infinite
-	call ecdbl,blank
-	fetch 1,mem_ec_loopc
-	arg mem_k,contr
-	call bn_testbit
-	branch eckp_0,true
-	fetch 1,mem_ec_infinite
-	nbranch eckp_1,blank
-	call ecadd
-	branch eckp_0
-eckp_1:
-	jam 0,mem_ec_infinite
-	arg mem_ax,contr
-	arg mem_cx,contw
-	call ec_copy
-	branch eckp_0
-
-	/* cost 162522 clks */
-ecunmapz:
-	arg mem_cz,regA
-	arg mem_t3,contw
-	call bn_invmod			/* t3 = 1/z */
-	arg mem_t3,regA
-	arg mem_t1,contw		
-	call bn_sqrmod			/* t1 = 1/z2 */
-	arg mem_cx,regA
-	arg mem_t1,regB
-	arg mem_bx,contw
-	call bn_mulmod
-	arg mem_t3,regA
-	arg mem_t1,regB
-	arg mem_t2,contw			
-	call bn_mulmod			/* t2 = 1/z3 */
-	arg mem_cy,regA
-	arg mem_t2,regB
-	arg mem_by,contw
-	branch bn_mulmod		
-	
-	
-
-sha_endian_swap2:	
-	ifetch 4,contr
-	force 4,regA
-	increase 3,contw
-sha_endian_loop:	
-	istore 1,contw
-	rshift8 pdata,pdata
-	increase -2,contw
-	increase -1,regA
-	nbranch sha_endian_loop,zero
-	increase 5,contw
-	loop sha_endian_swap2
-	rtn	
-
-
-sha_getw:
-	lshift2 queue,pdata
-	iadd timeup,contr
-	ifetch 4,contr
-	rtn
-	
-sha_r:
-	force 16,alarm
-	arg memdat,timeup
-sha_r_loop:	
-	add alarm,-7,queue
-	call sha_getw
-	iforce temp						/* W[t - 7] */
-	add alarm,-16,queue
-	call sha_getw
-	iadd temp,temp					/* W[t-7] + W[t-16] */
-	add alarm,-2,queue
-	call sha_getw
-	shasx pdata,1,pdata
-	iadd temp,temp					/* S1(W[t -  2]) + W[t-7] + W[t-16] */
-	add alarm,-15,queue
-	call sha_getw
-	shasx pdata,0,pdata
-	iadd temp,temp					/* S0(W[t - 15]) + S1(W[t -  2]) + W[t-7] + W[t-16] */
-	lshift2 alarm,pdata
-	iadd timeup,contw
-	istoret 4,contw
-	increase 1,alarm
-	compare 64,alarm,0xff
-	nbranch sha_r_loop,true
-	rtn
-	
-
-sha_init:
-	arg memh0,contr
-	force 7,regext_index
-sha_init_0:	
-	ifetch 4,contr
-	iforce regext
-	increase -1,regext_index
-	branch sha_init_0,positive
-	rtn
-
-sha:
-	bpatchx patch3d_4,mem_patch3d
-	call sha_r		/* preprocessing data into R() */
-	arg memahbak,contw
-	force 0,regext_index
-sha_0:	
-	deposit regext
-	istore 4,contw
-	increase 1,regext_index
-	compare 8,regext_index,0xff
-	nbranch sha_0,true
-	call enable_authrom
-	arg memk,timeup
-	arg memdat,alarm
-	force 64,loopcnt
-sha_loop:	
-	ifetcht 4,alarm
-	ifetch 4,timeup
-	increase 4,timeup
-	increase 4,alarm
-	iadd temp,pdata			/* x+K */
-	force 7,regext_index
-	iadd regext,temp			/* x+K+h */
-	force 4,regext_index
-	shasx regext,3,pdata
-	iadd temp,temp			/* temp = s3(e)+x+K+h */
-	force 5,regext_index
-	deposit regext
-	force 6,regext_index
-	ixor regext,pdata
-	force 4,regext_index
-	iand regext,pdata			/* (e & (f ^ g)) */
-	force 6,regext_index
-	ixor regext,pdata			/* F1(e, f, g) = g ^ (e & (f ^ g)) */
-	iadd temp,temp			/* temp1 = h + S3(e) + F1(e,f,g) + K + x */
-	force 7,regext_index
-	copy temp,regext			/* save to H */
-	force 3,regext_index
-	deposit regext
-	iadd temp,regext			/* save to D */
-	force 0,regext_index
-	deposit regext
-	force 1,regext_index
-	iand regext,temp			/* a & b */
-	ior regext,pdata			/* a | b */			
-	force 2,regext_index
-	iand regext,pdata			/* (c & (a | b)) */
-	ior temp,temp				/* F0:(a & b) | (c & (a | b)) */
-	force 0,regext_index
-	shasx regext,2,pdata
-	iadd temp,pdata			/* temp2 = S2(a) + F0(a,b,c) */
-	force 7,regext_index
-	iadd regext,regext			/* h = temp1 + temp2 */
-	regexrot					/* rotate move h,a-g => a-h */
-	loop sha_loop
-	arg memahbak,contr
-	force 0,regext_index
-sha_1:	
-	ifetch 4,contr
-	iadd regext,regext
-	increase 1,regext_index
-	compare 8,regext_index,0xff
-	nbranch sha_1,true
-	branch disable_authrom
-
-	
-sha_result:
-	arg   memresult,contw
-	force 7,regext_index
-sha_regext_save:
-	deposit regext
-	istore  4,contw 
-	increase -1,regext_index
-	branch   sha_regext_save,positive
-	rtn	
-
-pad_xor:
-//	arg memx_end,contr
-	arg      memdat,contw
-	increase -4,contr
-	sub      loopcnt,16,regA
-pad_xor_0:	    
-	ifetch   4,contr
-	ixor     temp,pdata
-	istore   4,contw	
-	increase -8,contr	
-	loop  pad_xor_0
-	copy     regA,loopcnt
-	deposit  temp
-pad_xor_1:	
-	istore 4,contw
-	loop pad_xor_1
-	rtn
-
-g_noninit_number_confirm:
-	call g_noninit0
-	call sha_result
-	branch g_common0
-
-g_noninit:
-	call g_noninit0
-	branch g_common0
-	
-g_noninit0:
- 	arg      mem_sp_pubkey_remote_x_end,contr
-	arg      memdat,contw
-	force    6,loopcnt
-	call     memcpy_dword_swap
-	arg      mem_sp_pubkey_local_x_end,contr
-	force    6,loopcnt
-	call     memcpy_dword_swap
-	arg      mem_sp_random_remote_end,contr
-	call     memcpy_dword_swap4
-	call     sha_init
-	call     sha	
- 	arg      mem_sp_random_local_end,contr
-	arg      memdat,contw
-	branch g_common
-	
-g_init:
- 	arg      mem_sp_pubkey_local_x_end,contr
-	arg      memdat,contw
-	force    6,loopcnt
-	call     memcpy_dword_swap
-	arg      mem_sp_pubkey_remote_x_end,contr
-	force    6,loopcnt
-	call     memcpy_dword_swap
-	arg      mem_sp_random_local_end,contr
-	call     memcpy_dword_swap4
-	call     sha_init
-	call     sha	
- 	arg      mem_sp_random_remote_end,contr
-	arg      memdat,contw
-	call g_common
-	branch g_common0
-	
-g_common:	
-	call     memcpy_dword_swap4
-	setarg   0x800000
-	lshift8  pdata,pdata 
-	istore   4,contw
-	force    5,loopcnt
-	call memset0
-	setarg 640
-	istore 4,contw
-	branch sha
-g_common0:
-	fetch 4,memresult
-//	store 4,mem_gkey
-	arg 1000,rega
-	idiv rega
-	call wait_div_end
-	remainder pdata
-	store 4,mem_gkey
-	quotient pdata
-	arg 1000,rega
-	idiv rega
-	call wait_div_end
-	remainder pdata
-	arg 1000,rega
-	imul32 rega,pdata
-	fetcht 4,mem_gkey
-	iadd temp,pdata
-	store 4,mem_gkey
-	rtn
-
-function_f1_no_key:
-	jam 0,mem_passkey_1bit
-	branch function_f1_common
-	
-function_f1:
-	fetch 1,mem_ssp_mode_flag
-	bne  SSP_MODE_PASSKEY_ENTRY_FLAG,function_f1_no_key
-function_f1_common:
-	bpatchx patch3d_5,mem_patch3d
-	setarg   0x363636
-	lshift8  pdata,temp
-	or_into       0x36,temp
-	fetch 2,mem_sp_prarm_stack
-	copy pdata,contr
-	force    4,loopcnt
-	call     pad_xor
-	call     sha_init
-	call     sha
-	fetch 2,mem_sp_prarm_stack+2
-	copy pdata,contr
-	arg      memdat,contw
-	force    6,loopcnt
-	call     memcpy_dword_swap
-	fetch 2,mem_sp_prarm_stack+4
-	copy pdata,contr
-	force    6,loopcnt
-	call     memcpy_dword_swap
-	setarg   0x800000
-	istore   3,contw
-	
-	fetch 1,mem_passkey_1bit
-	
-	istore   1,contw
-	force    0,pdata
-	istore   8,contw
-	setarg   0x0388
-	istore   4,contw
-	call     sha
-	call     sha_result
-	arg      memresult,contr
-	arg      memahsave,contw 
-	call     memcpy32
-    
-	setarg   0x5c5c5c
-	lshift8  pdata,temp
-	or_into       0x5c,temp
-	fetch 2,mem_sp_prarm_stack
-	copy pdata,contr
-	force    4,loopcnt
-	call     pad_xor
-	call     sha_init
-	call     sha
-	arg      memahsave_end,contr
-	arg      memdat,contw
-	force    8,loopcnt
-	call     memcpy_dword_swap
-	setarg   0x800000
-	lshift8  pdata,pdata 
-	istore   4,contw
-	call		bn_zero
-	setarg   0x0300
-	istore   4,contw
-	call     sha
-	branch     sha_result
-	
-	
-function_f2:
-	setarg   0x363636
-	lshift8  pdata,temp
-	or_into       0x36,temp
-	arg      mem_sp_dhkey_end,contr
-	force    6,loopcnt
-	call     pad_xor
-	call     sha_init
-	call     sha
-	fetch 2,mem_sp_prarm_stack+12
-	copy pdata,contr
-	arg      memdat,contw
-	call     memcpy_dword_swap4
-	fetch 2,mem_sp_prarm_stack+14
-	copy pdata,contr
-	call     memcpy_dword_swap4
-
-	setarg   0x62746c
-	lshift8  pdata,pdata
-	or_into       0x6b,pdata       
-	istore   4,contw
-	arg      mem_addr_value_end,contr
-	force    3,loopcnt
-	call     memcpy_dword_swap
-	
-	setarg   0x800000
-	lshift8  pdata,pdata 
-	istore   4,contw
-	force    0,pdata
-	istore   8,contw
-	setarg   0x0380
-	istore   4,contw
-	call     sha
-
-	call     sha_result
-	arg      memresult,contr
-	arg      memahsave,contw 
-	call     memcpy32
-    
-	setarg   0x5c5c5c
-	lshift8  pdata,temp
-	or_into       0x5c,temp
-	arg      mem_sp_dhkey_end,contr 
-	force    6,loopcnt
-	call     pad_xor
-	call     sha_init
-	call     sha
-	arg      memahsave_end,contr
-	arg      memdat,contw
-	force    8,loopcnt
-	call     memcpy_dword_swap
-	setarg   0x800000
-	lshift8  pdata,pdata 
-	istore   4,contw
-	call bn_zero
-	setarg   0x0300
-	istore   4,contw
-	call     sha
-	branch     sha_result
-	
-
-function_f3a:
-	fetch 1,mem_ssp_mode_flag
-	bne  SSP_MODE_PASSKEY_ENTRY_FLAG,function_f3a_no_pin
-function_f3a_common:
-	bpatchx patch3d_6,mem_patch3d
-	setarg   0x363636
-	lshift8  pdata,temp
-	or_into       0x36,temp
-	arg      mem_sp_dhkey_end,contr
-	force    6,loopcnt
-	call     pad_xor
-	call     sha_init
-	call     sha
-	arg      mem_sp_random_remote_end,contr
-	arg      memdat,contw
-	call     memcpy_dword_swap4
-	arg      mem_sp_random_local_end,contr
-	call     memcpy_dword_swap4
-	branch function_f3_common
-
-function_f3a_no_pin:
-	setarg 0
-	store 4,mem_pin
-	branch function_f3a_common
-
-function_f3b_no_pin:
-	setarg 0
-	store 4,mem_pin
-	branch function_f3b_common
-
-
-function_f3b:
-	fetch 1,mem_ssp_mode_flag
-	bne  SSP_MODE_PASSKEY_ENTRY_FLAG,function_f3b_no_pin
-function_f3b_common:
-	setarg   0x363636
-	lshift8  pdata,temp
-	or_into       0x36,temp
-	arg      mem_sp_dhkey_end,contr
-	force    6,loopcnt
-	call     pad_xor
-	call     sha_init
-	call     sha
-
-	arg      mem_sp_random_local_end,contr
-	arg      memdat,contw
-	call     memcpy_dword_swap4
-	arg      mem_sp_random_remote_end,contr
-	call     memcpy_dword_swap4
-function_f3_common:    
-	setarg   0x0    
-	istore   8,contw
-	istore   4,contw
-	fetch 4,mem_pin
-	istore   4,contw
-	
-	copy     contw,temp
-	jam      0x80,mem_addr_padding
-	copy     temp,contw
-	arg      mem_addr_iocap_end,contr
-	call     memcpy_dword_swap4
-
-	call     sha
-    
-	arg      memdat,contw
-	force 7,loopcnt
-	call memset0
-	istore   4,contw
-	setarg   0x03F8
-	istore   4,contw
-	call     sha
-	call     sha_result
-	
-	arg      memresult,contr
-	arg      memahsave,contw 
-	call     memcpy32
-    
-	setarg   0x5c5c5c
-	lshift8  pdata,temp
-	or_into       0x5c,temp
-	arg      mem_sp_dhkey_end,contr 
-	force    6,loopcnt
-	call     pad_xor
-	call     sha_init
-	call     sha
-	arg      memahsave_end,contr
-	arg      memdat,contw
-	force    8,loopcnt
-	call     memcpy_dword_swap
-	setarg   0x800000
-	lshift8  pdata,pdata 
-	istore   4,contw
-	call bn_zero
-	setarg   0x0300
-	istore   4,contw
-	call     sha	
-	branch     sha_result
-		
-/*
-eckp:
-	jam 192,mem_ec_loopc
-	jam 1,mem_ec_infinite
-*/
-eckp_calc_init:
-	jam      192,mem_ec_loopc
-eckp_calc_init_1:    
-	fetch    1,mem_ec_loopc
-	rtn      blank
-	increase -1,pdata
-	store    1,mem_ec_loopc 	
-	arg      mem_k,contr
-	call     bn_testbit
-	branch eckp_calc_init_1,true
-	arg      mem_ax,contr
-	arg      mem_cx,contw
-	branch     ec_copy	
-	
-eckp_calc:
-	call     ecdbl  
-	fetch    1,mem_ec_loopc
-	increase -1,pdata
-	store    1,mem_ec_loopc
-	arg      mem_k,contr
-	call     bn_testbit
-	rtn	true
-	branch     ecadd                
-	             
-memcpy_dword_swap4:
-	force 4,loopcnt
-memcpy_dword_swap:
-	increase -4,contr
-memcpy_dword_swap_loop:
-	ifetch   4,contr
-	istore   4,contw
-	increase -8,contr
-	loop   memcpy_dword_swap_loop 
-    	rtn
-
-else
-sp_initialize:
-	rtn
-
-endif
-	
-
-ifdef SECURE_CONNECTION
-
-sp_initialize_256:	
-	bpatchx patch3d_7,mem_patch3d
-	fetch 1,mem_le_secure_connect_enable
-	branch  le_secure_connection_disable,blank
-	call le_secure_connection_enable
-	call sp_clear_flags
-//	jam SP_KEY_INVALID_256,mem_le_sc_local_key_invalid
-	branch sp_pubkey_calc_256
-    	
-
-
-
-sp_pubkey_calc_256:
-	fetch    1,mem_le_sc_local_key_invalid
-	rtnne SP_KEY_INVALID
-	fetch    1,mem_le_sc_calc
-	rtnne  SP_CALC_STANDBY
-	
-	arg      mem_le_private_key_256,contw 
-	force    15,queue
-	call     random_generator
-	random   pdata
-	rshift   pdata,pdata
-	istore   2,contw 
-
-	arg      mem_k_256,contw
-	arg      mem_le_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_le_sc_calc
-	rtn    
-
-sp_pubkey_generated_256:
-	arg      mem_le_pubkey_local_x_256,contw
-	arg      mem_bx_256,contr
-	call     memcpy64   
-	jam      SP_KEY_VALID_256,mem_le_sc_local_key_invalid
-	jam      SP_CALC_STANDBY,mem_le_sc_calc
-	rtn
-	
-
-
-sp_dhkey_calc_256:
-	fetch    1,mem_sp_dhkey_invalid
-	rtnne  SP_KEY_INVALID
-	fetch    1,mem_le_sc_calc
-	rtnne  SP_CALC_STANDBY
-
-	arg      mem_k_256,contw
-	arg      mem_le_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_le_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_le_sc_calc
-	rtn
-
-
-
-sp_calc_sequence_256:
-	fetch 1,mem_le_secure_connect_enable
-	rtn blank
-	fetch 1,mem_le_sc_calc
-	rtn blank
-	increase 0x80,pdata
-	store    1,mem_le_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 patch3e_0,mem_patch3e
-	call ecunmapz_256
-	fetch 1,mem_le_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 patch3e_1,mem_patch3e
-	setarg 256,pdata
-	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 patch3e_2,mem_patch3e
-	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		
-
-else
-sp_initialize_256:
-	rtn
-
-endif
-
-
Index: DPI_Switch/program/ui.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/ui.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/ui.prog	(nonexistent)
@@ -1,701 +0,0 @@
-ui_init:
-	call lpm_disable_exen_output
-	rtn wake
-	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 patch3e_3,mem_patch3e
-	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
-	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
-	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:
-	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 gpio_config_output
-	call ui_led_off_static
-	increase LED_OFFSET_LENGTH,regb
-	loop ui_led_init_loop
-	rtn
-
-	
-//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 patch3e_4,mem_patch3e
-	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
-	//call ice_break
-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:
-	bpatchx patch3e_5,mem_patch3e
-	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 patch3e_6,mem_patch3e
-	call ui_ipc_get_lock
-	copy rega,pdata
-	store 4,mem_ipc_rega_temp
-	arg mem_ipc_fifo_bt2c51,rega
-	call fifo_in
-	fetch 4,mem_ipc_rega_temp
-	copy pdata,rega
-	branch ui_ipc_put_lock
-
-ui_ipc_send_cmd:
-	bpatchx patch3e_7,mem_patch3e
-	call ui_ipc_get_lock
-	copy rega,pdata
-	store 4,mem_ipc_rega_temp	
-	arg mem_ipc_fifo_c512bt,rega
-	call fifo_in
-	fetch 4,mem_ipc_rega_temp
-	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 patch3f_0,mem_patch3f
-	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 patch3f_1,mem_patch3f
-	copy temp,pdata
-	rtn blank
- 	beq BT_CMD_START_DISCOVERY,check_51cmd_start_discovery
-  	beq BT_CMD_STOP_DISCOVERY,check_51cmd_stop_discovery
-  	beq BT_CMD_RECONNECT,check_51cmd_reconnect
-  	beq BT_CMD_ENTER_SNIFF_SUBRATING,check_51cmd_enter_sniff_subrating
-  	beq BT_CMD_EXIT_SNIFF_SUBRATING,check_51cmd_exit_sniff_subrating
-  	beq BT_CMD_SNIFF_TEST,check_51cmd_sniff_test
-	beq BT_CMD_START_INQUIRY,check_51cmd_inq
-	beq BT_CMD_STOP_INQUIRY,check_51cmd_stop_inq
-	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
-	beq BT_CMD_LE_SMP_SECURITY_REQUEST,check_51cmd_le_smp_sec_req
-	beq BT_CMD_BB_RECONN_CANCEL,check_51cmd_bb_reconn_cancel
-	//context related, process in context
-	store 1,mem_fifo_temp
-	bpatchx patch3f_2,mem_patch3f
-	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
-	beq BT_CMD_DISCONNECT,check_51cmd_disconnect
-  	beq BT_CMD_ENTER_SNIFF,cmd_in_sniff
-  	beq BT_CMD_EXIT_SNIFF,cmd_exit_sniff
-  	beq BT_CMD_SET_PIN_CODE,check_51cmd_pincode
-	beq BT_CMD_LE_DISCONNECT,check_51cmd_le_disconnect
-	beq BT_CMD_LE_UPDATE_CONN,check_51cmd_ble_update_connect_param
-	beq BT_CMD_ROLE_SWITCH,check_51cmd_role_switch
-	beq BT_CMD_STORE_RECONN_INFO_LE,eeprom_store_le_reconn_info
-	beq BT_CMD_STORE_RECONN_INFO_BT,eeprom_store_bd_reconn_info
-	beq BT_CMD_DHKEY_NOT_ACCEPT,check_51cmd_dhkey_not_accept
-	beq BT_CMD_STORE_RECONN_INFO,check_51cmd_store_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 0x01	
-check_51cmd_start_discovery:
-	fetch 2,mem_ui_state_map
-	set1 UI_STATE_BT_DISCOVERY
-	store 2,mem_ui_state_map
-	jam 3,mem_scan_mode
-	rtn
-
-
-//command opcode 0x02	
-check_51cmd_stop_discovery:
-	jam 0,mem_hid_handshake_timer_count
-	jam 0,mem_scan_mode
-	fetch 2,mem_ui_state_map
-	set0 UI_STATE_BT_DISCOVERY
-	store 2,mem_ui_state_map
-	rtn	
-
-
-//command opcode 0x03	
-check_51cmd_reconnect:	
-	jam hci_cmd_create_conn,mem_hci_cmd
-	rtn	
-
-
-//command opcode 0x04
-check_51cmd_disconnect:
-	jam LMP_DETACH,mem_lmo_opcode2
-	jam OTHER_END_TERMINATED,mem_disconn_reason_send
-	rtn
-
-	
-//command opcode 0x07
-check_51cmd_enter_sniff_subrating:
-	rtn
-
-
-//command opcode 0x08
-check_51cmd_exit_sniff_subrating:
-	rtn	
-
-
-//command opcode 0x09
-check_51cmd_sniff_test:
-	rtn	
-
-
-//command opcode 0x10
-check_51cmd_pincode:
-	jam pincode_state_pincode_ready,mem_pincode_state
-	branch cmd_pair
-
-
-//command opcode 0x11
-check_51cmd_inq:
-	rtn
-
-
-//command opcode 0x12
-check_51cmd_stop_inq:
-	rtn
-
-
-//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
-	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
-
-
-//command opcode 0x29
-check_51cmd_role_switch:
-  	jam LMP_SLOT_OFFSET,mem_lmo_opcode2
-	set1 mark_switch_initiated,mark
-	nrtn master
-	jam SWITCH_FLAG_INIT,mem_switch_flag
-	jam LMP_SWITCH_REQ ,mem_lmo_opcode2
-	fetch 1,mem_connection_options
-	set0 CONNECTION_SWITCH,pdata
-	store 1,mem_connection_options
-	rtn
-
-
-//command opcode 0x30
-check_51cmd_bb_reconn_cancel:
-	force page_length_timer,queue
-	branch timer_stop
-
-
-//command opcode 0x33
-check_51cmd_dhkey_not_accept:
-	call tid_set_reply
-	jam LMP_DHKey_Check,mem_lmi_opcode2
-	branch parse_lmp_dhkey_check_reject	
-
-
-ui_check_paring_button:
-	fetch 1,mem_ui_state_map
-	rtnbit0 UI_STATE_BTN_DOWN
-	rtnbit0 UI_STATE_BT_RECONNECT
-	branch check_51cmd_bb_reconn_cancel
-
-
-
-///////////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:
-	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:
-	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
-
-
-//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: DPI_Switch/program/utility.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/utility.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/utility.prog	(nonexistent)
@@ -1,614 +0,0 @@
-
-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
-push_stack:
-	deposit contw
-	store 2, mem_contw
-	storet 8,mem_temp
-	deposit timeup
-	store 4,mem_timeup
-	call push_stack_rega_b_c
-	deposit contr
-	store 2, mem_contr
-	rtn
-
-push_stack_rega_b_c:
-	deposit rega
-	store 4, mem_rega
-	deposit regb
-	store 4, mem_regb
-	deposit regc
-	store 3, mem_regc
-	rtn
-
-pop_stack:
-	fetcht 8,mem_temp
-	fetch 4,mem_timeup
-	iforce timeup
-	call pop_stack_rega_b_c
-	fetch 2, mem_contw
-	iforce contw
-	fetch 2, mem_contr
-	iforce contr
-	rtn
-
-pop_stack_rega_b_c:
-	fetch 4, mem_rega
-	iforce rega
-	fetch 4, mem_regb
-	iforce regb
-	fetch 3,mem_regc
-	iforce regc
-	rtn
-
-get_contw:
-	fetch 2,mem_contw
-	copy pdata,contw
-	rtn
-get_contr:
-	fetch 2,mem_contr
-	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_hold_contw
-	copy contr,pdata
-	store 2,mem_hold_contr
-	rtn
-load_cont_pointers:
-	fetch 2,mem_hold_contw
-	copy pdata,contw
-	fetch 2,mem_hold_contr
-	copy pdata,contr
-	rtn
-
-memcpy96:
-	call memcpy32
-memcpy64:
-	call memcpy32
-	branch memcpy32
-memcpy12:
-	call memcpy8
-memcpy4:
-	ifetch 4,contr
-	istore 4,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_10ms:
-	arg 10,loopcnt
-delay_ms_wait:
-	nop 12000
-	loop delay_ms_wait
-	rtn
-
-bn_zero:
-	force 3,loopcnt
-memset0:
-	force 0,pdata
-memset8:
-	istore   8,contw
-	loop   memset8
-	rtn
-
-memset0_8:
-	force 0,pdata
-	istore 8,contw
-	rtn
-memset0_4:
-	force 0,pdata
-	istore 4,contw
-	rtn	
-	
-clear_mem_256:
-	force 4,loopcnt
-	branch memset0 
-clear_mem_512:
-	force 8,loopcnt
-	branch memset0 
-
-clear_mem:
-	deposit loopcnt
-	rtn blank
-	setarg 0
-clear_mem_loop:
-	istore 1,contw
-	loop clear_mem_loop
-	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 patch3f_3,mem_patch3f
-	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
-
-
-memcpy_fast:
-	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
-	arg mem_timers,contw
-	iforce temp
-	lshift queue,pdata
-	iadd contw,contw
-	istoret 2,contw
-	bpatchx patch3f_4,mem_patch3f
-	rtn
-
-timer_check_timeout:
-	arg 0x800,timeup
-	lshift16 timeup,timeup
-	iadd timeup,pdata
-	rtn
-
-
-timer_reinit:
-	arg 0,queue
-timer_check:
-	bpatchx patch3f_5,mem_patch3f
-	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
-	setarg 3750
-	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
-	arg -61786,temp
-	iadd temp,pdata
-	set0 64,pdata
-	rtn
-
-clk2rt:
-	iforce contr
-	rshift16 pdata,pdata
-	arg 3750,temp
-	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:
-	arg 3750,temp
-	idiv temp
-	call wait_div_end
-	quotient pdata
-	lshift16 pdata,pdata
-	remainder temp
-	ior temp,temp
-	rtn
-
-
-
-//input:contru 
-//output:temp
-//used register: temp regc
-string2dec_from_uart:
-	arg 0,temp
-string2dec_from_uart_done:
-         copy temp,regc
-	ifetch 1,contru
-	call uchar2dialog	
-	copy regc,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
-
-pn9:
-	copy temp,alarm
-	setarg 0x1ff
-	force 0,regb
-pn9_loop:	
-	rshift3 pdata,rega
-	rshift rega,rega
-	ixor rega,rega
-	isolate1 0,rega
-	setflag true,9,pdata
-	rshift temp,temp
-	isolate1 0,pdata
-	setflag true,7,temp
-	rshift pdata,pdata
-	increase 1,regb
-	compare 0,regb,0x7
-	nbranch pn9_loop,true
-	istoret 1,contw
-	loop pn9_loop
-	copy alarm,temp
-	rtn
-
-
-wait_div_end:	
-	rtn modone
-	branch wait_div_end
-
-
-
-//input:
-//	count:loopcnt str1:rega str2:regb
-//output:
-//	same:set falg true ,diff set falg false
-// 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
-	force 0,null
-	rtn
-
-	/* 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_mem:
-	arg 0x200,loopcnt
-	arg 0x4000,contw
-	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:
-	hfetch 2,core_uart_txitems
-	nbranch wait_uarttx,blank
-	rtn
-
-ice_break:
-	jam 0x1,core_ice_ctrl
-	rtn
-
-ice_setbp:
-	hstore 2,core_ice_break0
-	hfetch 1,core_ice_ctrl
-	set1 4,pdata
-	hstore 1,core_ice_ctrl
-	rtn
-ice_setbp2:
-	hstore 2,core_ice_break1
-	hfetch 1,core_ice_ctrl
-	set1 6,pdata
-	hstore 1,core_ice_ctrl
-	rtn
-	
-ice_set_write_bp:
-	hstore 2,core_ice_break0
-	jam 0x30,core_ice_ctrl
-	rtn
-	
-
-
-test_enable_white:
-	hfetch 1,core_config
-	set0 whiteoff_bit,pdata
-	hstore 1,core_config			/* whitening on */
-	rtn
-
-check_uart_tx_buff:
-	hfetch 2,core_uart_txitems
-	arg UART_AIR_CONTROL_THRESHOLD,temp
-pdata_sub_temp:
-	isub temp,null
-	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 patch3f_6,mem_patch3f
-	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 patch3f_7,mem_patch3f
-	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
-	
-not_greater_than:
-	isub temp,null
-	nrtn positive
-	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
-
-disable_blank:
-	setarg 1
-	rtn
-
-enable_blank:
-	setarg 0
-	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
-
-
Index: DPI_Switch/program/z.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/z.prog	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/program/z.prog	(nonexistent)
@@ -1,806 +0,0 @@
-
-org 0x10001
-z_entrance0:
-	beq ZCODE_00,z_page_wait_fhs_reply_ok
-	beq ZCODE_01,z_mouse_bb_disconnected
-	beq ZCODE_02,z_hid_rx_process
-	rtn
-
-z_page_wait_fhs_reply_ok:
- 	fetch 1, mem_page_rcv_fhs
-	increase 1,pdata
-	store 1, mem_page_rcv_fhs
-	call prepare_newconn
-z_master_newconn_loop:
- 	set1 mark_first_packet,mark
-	call master_newconn_once
-	branch z_newconn_poll_responded,sync
-	set0 mark_first_packet,mark
-	call new_conn_timeout
-	nbranch z_master_newconn_loop,blank
-	branch page_restart
-z_newconn_poll_responded:
-	set0 mark_first_packet,mark
-	branch newconn_poll_responded
-
-z_mouse_bb_disconnected:
-	jam 0,mem_mouse_enter_sniff_count
-	jam 0x0e,mem_sniff_param_interval	//115Hz
-	call mouse_bb_discon_clear_stack
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
-	bbit1 APP_DISC_BLE,mouse4_0_event_bb_disconn
-	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
-	bbit1 APP_DISC_AFTER_PAIRING,z_mouse_event_light_state_pairing
-	bbit1 APP_DISC_AFTER_RECONN,z_mouse_event_light_state_hibernate
-	bbit1 APP_DISC_AFTER_SNIFF,z_mouse_event_light_state_hibernate
-	branch mouse_start_discovery
-	
-z_mouse_event_light_state_pairing:
-	bbit1 APP_DISC_AFTER_HANDSHAKE,z_mouse_event_light_state_hibernate
-	bbit1 APP_DISC_AFTER_SNIFF,z_mouse_event_light_state_hibernate
-	branch mouse_start_discovery
-z_mouse_event_light_state_hibernate:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
-	call app_disconn_reason_clear
-	call p_mouse_check_key_gpio	//mult_key pair
-	beq MOUSE_LMR_BUTTON,z_mouse_null_enter_hibernate_enable
-	branch app_bb_hibernate
-
-z_mouse_null_enter_hibernate_enable:	//ble never connected
-	jam 1,mem_mouse_null_enter_hibernate_flag
-	jam 40,mem_mouse_null_enter_hibernate_timer	//lmr 3s
-	rtn	
-
-z_hid_rx_process:
-	fetch 2,mem_l2cap_payload_ptr
-	copy pdata,contr
-	ifetch 1,contr
-	store 1,mem_l2cap_rcv
-	and pdata,0x0f,temp
-	rshift4 pdata,pdata //hidtype
-	beq hid_type_set_protocol,z_hid_rx_set_protocol
-	beq HID_TYPE_CONTROL,z_hid_rx_process_hid_control
-	branch hid_rx_process+6
-z_hid_rx_set_protocol:
-	call hid_rx_process_handshake
-	jam 0,mem_mouse_bt_boot_mode
-	fetch 1,mem_l2cap_rcv
-	isolate1 0,pdata
-	rtn true
-	jam 1,mem_mouse_bt_boot_mode	//boot mode
-	rtn
-
-z_hid_rx_process_hid_control:
-	copy temp,pdata
-	beq HID_CONTROL_P_VIRTUALCABLEUNPLUG,p_mouse_irtual_cable_unplug
-	branch hid_rx_process_hid_control+2
-
-org 0x20001
-
-z_entrance1:
-	beq ZCODE_10,z_send_lmp
-	beq ZCODE_11,z_mouse4_0_check_reconn_target
-	rtn
-
-z_mouse4_0_check_reconn_target:
-	call p_mouse_mode_bt_device1_multi_led_blink3s
-	jam 1,mem_le_send_security_request_flag
-	jam 1,mem_mouse_le_reconnect_flag
-	fetch 2,mem_mouse_direct_timeout
-	store 2,mem_mouse_direct_timer
-	call p_mouse_store_eeprom_enable
-	call app_lpm_mult_disable
-	arg mem_le_scan_data,contr
-	call p_le_adv_data_update
-	jam 0x1f,mem_le_scan_data_len
-	branch check_51cmd_adv
-
-z_send_lmp:
-	disable user
-	call lmo_fifo_process
-
-ifdef DEBUGLOG
-ifdef DEBUGLOG_SEND_LMP
-	setarg DEBUGLOG_DTYPE_SEND_LMP
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_lmi_opcode
-	store 1,mem_debuglog_dataval+1
-	fetch 1,mem_lmp_to_send
-	store 1,mem_debuglog_dataval
-	fetch 1,mem_lmp_to_send
-	store 2,mem_debuglog_dataval
-	ncall debuglog_push,blank
-endif
-endif
-	
-	fetch 1,mem_lmp_to_send
-	rtn blank
-	bbit1 7,z_send_lmp_escape
-	beq LMP_ACCEPTED,z_send_lmp_accepted
-	beq LMP_SETUP_COMPLETE,z_send_lmp_setup_complete
-	beq LMP_SNIFF_REQ, z_send_lmp_sniff_req
-	branch send_lmp0
-z_send_lmp_escape:
-	beq LMP_EXT_FEATURES_RES,z_send_lmpext_features_res
-	beq LMP_EXT_FEATURES_REQ,z_send_lmpext_features_req	
-	branch send_lmp_escape
-z_send_lmpext_features_res:
-	call z_check_ssp_enable
-	fetch 1,mem_lmp_to_send
-	branch send_lmpext_features_res
-z_send_lmpext_features_req:
-	call z_check_ssp_enable
-	fetch 1,mem_lmp_to_send
-	branch send_lmpext_features_req
-z_check_ssp_enable:
-	fetch 1,mem_ssp_enable 
-	branch ssp_disable,blank
-	branch ssp_enable
-
-z_send_lmp_setup_complete:
-	jam 1,mem_bt_send_lmp_setup_complete
-	branch send_lmp_setup_complete
-
-z_send_lmp_sniff_req:
-	jam 4,mem_mouse_bt_send_first_package_timer
-	branch send_lmp_sniff_req
-	
-
-z_send_lmp_accepted:
-	force 2,pdata
-	call msg_send_lmp
-	fetch 1,mem_lmi_opcode
-	istore 1,contw
-	store 1,mem_lmi_opcode_temp
-	call send_lmp_follow
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_lmi_opcode_temp
-	store 1,mem_debuglog_dataval
-	call debuglog_push	
-endif
-endif
-	fetch 1,mem_lmi_opcode_temp
-	beq LMP_MAX_SLOT_REQ,z_send_lmp_accepted_max_slot_req	//sumsung a5100 patch
-	branch send_lmp_accepted+7
-
-z_send_lmp_accepted_max_slot_req:
-	fetch 1,mem_bt_rcvd_switch_req_accept
-	rtn blank
-	jam 0,mem_bt_rcvd_switch_req_accept
-	fetch 1,mem_bt_send_lmp_setup_complete
-	rtnne 2
-	jam 1,mem_bt_send_max_slot_req_accept_after_switch
-	copy clkn_bt,pdata
-	store 4,mem_aurand_send_delay_time
-	rtn
-	
-org 0x30001
-
-z_entrance2:
-	beq ZCODE_20,z_le_update_param
-	beq ZCODE_21,z_le_update_channel_map
-	rtn
-
-z_le_update_param:
-	call z_mouse_le_conn_param_check
-	branch le_update_param+8
-z_mouse_le_lpm_mult_reinit:
-	fetch 1,mem_lpm_mult_init
-	store 1,mem_lpm_mult
-z_mouse_le_conn_param_lpm_enable:
-	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
-	rtn
-z_mouse_le_conn_param_lpm_disable:
-	jam LE_LPM_DISABLE,mem_mouse_le_conn_param_reject
-	rtn
-z_mouse_le_conn_param_check:
-	fetch 1,mem_le_new_conninterval
-	sub pdata,LE_INTERVAL_15MS,null
-	nbranch z_mouse_le_conn_param_lpm_disable,positive
-	fetch 1,mem_le_new_connslavelatency
-	fetcht 1,mem_lpm_mult_init
-	isub temp,null
-	branch z_mouse_le_lpm_mult_reinit,positive
-	fetch 1,mem_le_new_connslavelatency
-	store 1,mem_lpm_mult
-	branch z_mouse_le_conn_param_lpm_enable
-
-z_le_update_channel_map:
-	fetch 1,mem_le_state
-	rtnbit0 lestate_update_map
-	call z_le_channel_map_overflow_check
-	nrtn user
-	branch le_update_channel_map+3
-z_le_channel_map_overflow_check:
-	enable user
-	fetch 1,mem_le_event_count+1
-	rshift4 pdata,pdata
-	rtnne 0x0f
-	fetch 1,mem_le_instant+1
-	rshift4 pdata,pdata
-	rtnne 0x00
-	branch disable_user
-
-org 0x40001
-
-z_entrance3:
-	beq ZCODE_30,z_mouse_start_discovery
-	rtn
-
-z_mouse_start_discovery:
-	call p_mouse_tx_power_init
-	jam 0,mem_le_send_security_request_flag
-	jam 1,mem_mouse_start_discovery_enable
-	jam MODE_BT_DEVICE1,mem_device_flag
-	jam 0,mem_mouse_clear_sensor_data_flag
-z_mouse_start_discovery_norandom:
-ifdef BLE_FAST_CONN_ENABLE
-	fetch 6,mem_le_normal_lap
-	store 6,mem_le_lap
-endif
-	call app_lpm_mult_disable
-	fetch 2,mem_discovery_timeout
-	store 2,mem_mouse_discovery_timer
-	jam 6,mem_connection_options
-	setarg 0
-	store 2,mem_mouse_no_data_timer
-	store 2,mem_mouse_direct_timer
-	call p_mouse_store_eeprom_enable
-	call mouse_bt_discovery_button_down_disable
-
-	call p_mouse_load_flash_device_info
-	fetch 1,mem_xrecord_mode
-	sub pdata,REC_3_MODE,null
-	call z3_check_51cmd_adv,zero
-
-	fetch 1,mem_device_option
-	isolate1 MODE_3_MOUSE,pdata
-	call check_51cmd_start_discovery,true
-	branch p_mouse_discovery_multi_led_blink
-
-z3_check_51cmd_adv:
-ifdef BLE_FAST_CONN_ENABLE
-	fetch 6,mem_le_normal_lap
-	store 6,mem_le_lap
-endif
-	call p_mouse_le_adv_data_update
-	branch check_51cmd_adv
-
-org 0x50001
-
-z_entrance4:
-	beq ZCODE_40,z_g24_start_24g_mode
-	beq ZCODE_41,z_g24_auto_pair_start	
-	beq ZCODE_42,z_mouse_24g_pairing_button
-	rtn
-
-z_g24_start_24g_mode:
-	call z_g24_factory_check
-	branch p_g24_auto_pair_start,user
-	set1 mark_24g,mark
-	fetch 1,mem_24g_conn_sm
-	set1 STATE_24G_RECONN,pdata
-	store 1,mem_24g_conn_sm
-	call p_g24_syncword_crc8
-	call p_g24_ch
-	branch z_g24_auto_pair_timeout_init
-
-z_g24_factory_check:
-	arg 2,loopcnt
-	arg mem_24g_addr,contr
-	call enable_user
-	setarg 0xffff
-z4_pdata_0xff_check_loop:
-	ifetcht 2,contr
-	isub temp,null
-	ncall disable_user,zero
-	loop z4_pdata_0xff_check_loop
-	rtn
-
-z_g24_auto_pair_start:
-	set1 mark_24g,mark
-	fetch 1,mem_24g_conn_sm
-	set1 STATE_24G_PAIR,pdata
-	store 1,mem_24g_conn_sm
-z_g24_auto_pair_timeout_init:
-	setarg G24_DISCONN_NODATA_TIMER
-	store 2,mem_24g_stop_g24_mode_timeout
-	jam 0,mem_24g_stop_g24_mode
-	rtn	
-	
-z_mouse_24g_pairing_button:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_24G
-	rtnbit1 MOSUE_24G_PAIRING_FLAG
-	rtnmark1 mark_24g
-	call mouse_devce_led_off
-	arg MOSUE_24G_PAIRING_FLAG,queue
-	call mouse_enable_function_flag
-	setarg 0
-	store 2,mem_mouse_direct_timer
-	store 1,mem_mouse_send_blank_timer
-	store 2,mem_24g_check_dongle_times
-	call mouse_stop_discovery
-	branch p_g24_auto_pair_start
-	
-
-org 0x60001
-
-z_entrance5:
-	beq ZCODE_50,z_mouse_24g_pairing_complete
-	beq ZCODE_51,z_mouse_24g_attempt_fail
-	beq ZCODE_52,z_mouse_24g_attempt_success
-	beq ZCODE_53,z_g24_reconn_dispatch
-	rtn
-
-z_mouse_24g_pairing_complete:
-	arg MOSUE_24G_PAIRING_FLAG,queue
-	call mouse_disable_function_flag
-	jam 0,mem_mouse_move_flag
-	call mouse_read_sensor_common
-	call p_mouse_tx_power_init
-	branch z_mouse_24g_attempt_success
-
-z_mouse_24g_attempt_fail:
-	jam G24_TX_TIMER_INT_DISABLE,mem_24g_transmit_by_interrupt
-	call p_mouse_tx_power_init
-	call p_g24_check_51cmd_stop_24g
-	branch app_enter_hibernate
-
-z_mouse_24g_attempt_success:
-	call z_g24_auto_pair_timeout_clear
-	call p_mouse_null_enter_hibernate_disable
-	call mouse_no_data_timer_init
-	fetch 4,mem_24g_addr
-	store 4,mem_mouse_24g_addr
-	call mouse_cheak_select_24gdevice
-	branch p_mouse_store_flash_device_info
-
-z_g24_auto_pair_timeout_clear:
-	setarg 0
-	store 3,mem_24g_stop_g24_mode
-	rtn
-
-z_g24_reconn_dispatch:
-	fetch 1,mem_24g_stop_g24_mode
-	beq 1,g24_stop_24g_mode
-	call z_g24_tx_attemp_data_prep
-	call p_g24_transmit_receive_ack
-	nbranch p_g24_ch,sync
-	nbranch p_g24_ch,user3
-	fetch 1,mem_24g_conn_sm
-	set0 STATE_24G_RECONN,pdata
-	store 1,mem_24g_conn_sm
-z_g24_tx_attemp_dongle_succ:
-	jam 0,mem_mouse_long_mult_flag
-	call g24_app_tx_attempt_success
-	call p_g24_txbuf_clear
-	branch p_g24_transmit_by_interrupt_enable
-
-
-z_g24_store_dongle_addr:
-	fetch 4,mem_24g_rxpayload+2
-	branch p_g24_update_addr_and_synccrc8
-
-z_g24_tx_attemp_data_prep:
-	jam 0xff,mem_24g_common_temp
-	fetch 1,mem_24g_data_type
-	store 1,mem_24g_common_temp+1
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_common_temp+2
-	arg 6,temp
-	arg mem_24g_common_temp,rega
-	call p_g24_put_data_in_buff
-	branch p_g24_transmit_prep
-
-	
-endif
-
-
-org 0x70001
-
-z_entrance6:
-//	beq ZCODE_60,z_g24_pair_dispatch
-z_g24_pair_dispatch:
-	fetch 1,mem_24g_stop_g24_mode
-	beq 1,g24_stop_24g_mode
-	jam 0xff,mem_24g_common_temp
-	fetch 1,mem_24g_data_type
-	store 1,mem_24g_common_temp+1
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_common_temp+2
-	arg 6,temp
-	arg mem_24g_common_temp,rega
-	call p_g24_put_data_in_buff
-	call p_g24_transmit_prep
-	call p_g24_transmit_receive_ack
-	nbranch z_g24_pair_txdata_retry,sync
-	nbranch z_g24_pair_txdata_retry,user3
-//	fetch 1,mem_24g_conn_sm
-//	set0 STATE_24G_PAIR,pdata
-//	store 1,mem_24g_conn_sm
-	jam 0,mem_24g_conn_sm
-	call p_g24_ackpayload_parse
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_allpowerful_addr
-	isub temp,null
-	branch z_g24_auto_pair_skip_rx_length,zero
-	fetch 1,mem_24g_rxdata_length	//ack payload length
-	rtn blank
-z_g24_auto_pair_skip_rx_length:
-	call p_mouse_tx_power_init
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_paring_addr
-	isub temp,null
-	branch p_g24_start_pairing_sm1,zero
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_device_addr
-	isub temp,null
-	call z7_g24_store_dongle_addr,zero
-	jam 0,mem_mouse_long_mult_flag
-	call g24_app_tx_attempt_success
-	call p_g24_txbuf_clear
-	branch p_g24_transmit_by_interrupt_enable
-
-z7_g24_store_dongle_addr:
-	fetch 4,mem_24g_rxpayload+2
-	branch p_g24_update_addr_and_synccrc8
-
-z_g24_pair_txdata_retry:
-z_g24_pair_txdata_switch:
-	fetch 1,mem_24g_auto_paring_switch
-	increase 1,pdata
-	and_into 3,pdata
-	store 1,mem_24g_auto_paring_switch
-	beq 0,z_g24_auto_pair_first_attemp
-	beq 2,z_g24_auto_pair_all_powerful
-	branch p_g24_pair_init
-	
-z_g24_auto_pair_first_attemp:
-	call p_mouse_tx_power_init
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_addr
-	fetch 1,mem_24g_pair_current_ch_num
-	store 1,mem_24g_current_ch_number
-	call z_g24_ch_syncword_crc8_init
-	storet 1,mem_24g_pair_current_ch_num
-	rtn
-
-z_g24_ch_syncword_crc8_init:
-	call p_g24_syncword_crc8
-	branch p_g24_ch
-
-z_g24_auto_pair_all_powerful:
-	jam TX_POWER_PAIR,mem_tx_power
-	fetch 4,mem_24g_allpowerful_addr
-	store 4,mem_24g_addr
-	fetch 1,mem_24g_powerful_current_ch_num
-	store 1,mem_24g_current_ch_number
-	call z_g24_ch_syncword_crc8_init
-	storet 1,mem_24g_powerful_current_ch_num
-	rtn
-
-org 0x80001
-
-z_entrance7:
-	beq ZCODE_70,z_mouse_irtual_cable_unplug
-	rtn
-
-z_mouse_irtual_cable_unplug:
-	setarg -1
-	store 6,mem_plap
-	jam REC_3_MODE,mem_record_bt_mode
-	jam 0xff,mem_mouse_fast_conn_flag
-	call mouse_before_store_reconn_info
-	jam 0xff,mem_device1_type
-	branch p_mouse_store_flash_device_info
-
-
-
-
-org 0x90001
-
-z_entrance8:
-	beq ZCODE_80,z_mouse_setting_config
-	rtn
-
-z_mouse_setting_config:
-ifdef G24
-	fetch 4,mem_lap
-	store 4,mem_24g_device_addr
-endif
-//	//disable usb function
-//	hfetch 1,core_usb_config
-//	set0 4,pdata
-//	hstore 1,core_usb_config
-	call mouse_gpio_init
-	call p_mouse_multi_led_gpio_set_float
-	fetcht 1,mem_flash_ncs_gpio
-	call gpio_config_output
-	
-	call mouse_param_init
-
-//	setarg 0x1802	//16M XTAL
-//	store 2,mem_fcomp_mul	
-	
-ifdef CLASSIC_BT
-	call z_mouse_bt_sdp_update
-endif	
-	setarg 0
-	store 2,mem_lpm_interval
-	call load_adc_init
-	call mouse_adc_init
-ifdef BLE	
-	call le_set_config_fixed_ltk
-	call le_set_justwork
-	call le_set_fixed_ltk
-	call le_set_config_read_authentication
-endif
-	branch p_mouse_load_flash_info_check
-
-
-ifdef CLASSIC_BT
-z_mouse_bt_sdp_update:
-	call enable_authrom
-	arg 0x8c00,contr
-	arg mem_mouse_uuid_list,contw
-	arg 369,loopcnt
-	call memcpy
-	//Attribute: HID SSR Host Max Latency
-	setarg 0x0f0209
-	istore 3,contw
-	setarg 0x120009
-	istore 3,contw
-	//Attribute: HID SSR Host Min Timeout
-	setarg 0x100209
-	istore 3,contw
-	setarg 0x000009
-	istore 3,contw
-	arg 0x8d71,contr
-	arg 265,loopcnt
-	call memcpy
-	
-	jam 0,mem_mouse_uuid_list+23	//Service Record Handle: 0x 00 01 00 00
-	jam 0x6d,mem_mouse_uuid_list+15	//total length
-	setarg 0x401f
-	store 2,mem_mouse_uuid_list+357	//timeout
-	setarg 0x6d04
-	store 2,mem_mouse_uuid_list+462	//VID
-	setarg 0x16b0
-	store 2,mem_mouse_uuid_list+468	//PID
-
-	setarg mem_mouse_uuid_list				//bt sdp start address
-	store 2,mem_ui_uuid_table
-	rtn
-endif	
-
-
-
-org 0xa0001
-
-z_entrance9:
-	beq ZCODE_90,z_g24_pairing_sm
-	beq ZCODE_91,z_g24_paring_mode
-	rtn
-
-z_g24_pairing_sm:
-	fetch 1,mem_24g_ensure
-	beq ENSURE_ON_24G,enable_user
-	fetch 1,mem_24g_pairing_sm
-	beq STATE_24G_PAIRING_1,z_g24_pairing_sm_1
-	beq STATE_24G_PAIRING_2,z_g24_pairing_sm_2
-	beq STATE_24G_PAIRING_3,z_g24_pairing_sm_3
-	branch assert
-
-z_g24_pairing_sm_1:
-	jam STATE_24G_PAIRING_1_WAITING_ACK,mem_24g_pairing_sm
-	jam 0xaa,mem_24g_common_temp
-	branch z_g24_pairing_sm_common
-z_g24_pairing_sm_2:
-	jam STATE_24G_PAIRING_2_WAITING_ACK,mem_24g_pairing_sm
-	jam 0x55,mem_24g_common_temp
-	branch z_g24_pairing_sm_common
-z_g24_pairing_sm_3:
-	jam STATE_24G_PAIRING_3_WAITING_ACK,mem_24g_pairing_sm
-	jam 0x22,mem_24g_common_temp
-z_g24_pairing_sm_common:
-	fetch 1,mem_24g_data_type
-	and_into bits_data,pdata
-	store 1,mem_24g_common_temp+1
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_common_temp+2
-z_g24_put_pairing_data_in_buff:
-	jam 0,mem_24g_common_temp+6
-	arg mem_24g_common_temp,rega
-	arg 7,temp
-	call p_g24_put_data_in_buff
-	call p_g24_txdata_enable_tx
-	branch enable_user
-
-z_g24_paring_mode:
-	fetch 1,mem_24g_pairing_sm
-	rtneq STATE_24G_PAIRING_SUCCESS
-	beq STATE_24G_PAIRING_1_WAITING_ACK,z_g24_pairing_sm_1_waiting_ack
-	beq STATE_24G_PAIRING_2_WAITING_ACK,z_g24_pairing_sm_2_waiting_ack
-	beq STATE_24G_PAIRING_3_WAITING_ACK,z_g24_pairing_sm_3_waiting_ack
-	rtn
-
-z_g24_pairing_sm_1_waiting_ack:
-	jam STATE_24G_PAIRING_2,mem_24g_pairing_sm
-	branch p_g24_transmit_abandon
-z_g24_pairing_sm_2_waiting_ack:
-	jam STATE_24G_PAIRING_3,mem_24g_pairing_sm
-	branch p_g24_transmit_abandon
-z_g24_pairing_sm_3_waiting_ack:
-	jam STATE_24G_PAIRING_SUCCESS,mem_24g_pairing_sm
-	jam BT_EVT_24G_PAIRING_COMPLETE,mem_fifo_temp
-	call ui_ipc_send_event	
-	fetch 4,mem_24g_rxpayload+2
-	call p_g24_update_addr_and_synccrc8
-	branch p_g24_transmit_abandon
-
-
-org 0xb0001
-
-z_entranceA:
-	beq ZCODE_A0,z_mouse_before_hibernate
-	beq ZCODE_A1,z_mouse_le_conn_param_update_rsp_recieved
-	beq ZCODE_A2,z_mouse_le_bb_disconnected
-	beq ZCODE_A3,z_mouse_bb_event_reconn_timeout
-	rtn
-
-z_mouse_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
-	branch z_mouse_le_conn_param_update_rsp_not_accepted,positive
-	setarg LE_INTERVAL_11_25MS
-	store 2,mem_le_interval_min
-	store 2,mem_le_interval_min+2
-	call p_app_updata_le_param
-	jam LE_LPM_DISABLE,mem_mouse_le_conn_param_reject
-	rtn
-//ipad not accepted updata, need reinit mem_lpm_mult.   mem_lpm_mult = CONNECT_IND latency = 0
-z_mouse_le_conn_param_update_rsp_not_accepted:
-	jam 1,mem_mouse_le_updata_not_accepted_flag
-	branch p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset
-
-z_mouse_bb_event_reconn_timeout:
-z_mouse_bb_event_reconn_failed:
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BTN_DOWN
-	rtnbit1 UI_STATE_BT_DISCOVERY
-	rtnbit1 UI_STATE_BLE_ADV
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
-	branch app_bb_hibernate
-
-z_mouse_le_bb_disconnected:
-	jam 0,mem_mouse_le_bb_connected_flag
-	setarg LE_INTERVAL_8_75MS
-	store 2,mem_le_interval_min
-	store 2,mem_le_interval_min+2
-	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
-	jam 0,mem_mouse_clear_sensor_data_flag
-	call p_mouse_data_init
-	call le_clr_config_more_data
-	call mouse_bb_disconnected
-	fetch 1,mem_mouse_start_discovery_enable
-	rtn blank
-z_check_51cmd_adv:
-ifdef BLE_FAST_CONN_ENABLE
-	fetch 6,mem_le_normal_lap
-	store 6,mem_le_lap
-endif
-	call p_mouse_le_adv_data_update
-	branch check_51cmd_adv
-
-z_mouse_before_hibernate:
-	hfetch 4,core_lpm_ctrl
-	set1 26,pdata
-	hstore 4,core_lpm_reg
-	call lpm_write_ctrl
-	call disable_authrom
-	call mouse_devce_led_off
-	call mouse_before_hibernate_wheel_gpio_set
-	call p_mouse_setgpio_hibernate
-
-	call p_flash_deep_power_down
-	hfetch 1,core_gpio_sel1
-	and pdata,0xf7,pdata
-	hstore 1,core_gpio_sel1  //disable flash spi
-	hfetch 1,core_gpio_pd3	//gpio24 can not be set pulldown
-	set1 0,pdata
-	hstore 1,core_gpio_pd3
-	fetch 8,mem_gpio_wakeup_low
-	set0 20,pdata	//disable R Key wake
-	store 8,mem_gpio_wakeup_low
-	fetcht 1,mem_dpi_button_gpio
-	call p_gpio_set_input_pd
-	fetch 8,mem_gpio_wakeup_low
-	set1 52,pdata	//enable dpi wake
-	store 8,mem_gpio_wakeup_low
-	rtn	
-
-	
-org 0xc0001
-
-z_entranceB:
-	beq ZCODE_B0,z_mouse_le_bb_event_connected
-	beq ZCODE_B1,z_mouse_sniff_not_accept
-	beq ZCODE_B2,z_mouse_enter_sniff_check
-	beq ZCODE_B3,z_mouse_le_ll_start_encryt
-	beq ZCODE_B4,z_mouse_bb_event_disconnected
-	rtn
-
-z_mouse_le_bb_event_connected:
-ifdef BLE_FAST_CONN_ENABLE
-	setarg 0
-	store 3,mem_le_switch_adv_flag
-	arg 3,loopcnt
-	arg mem_le_lap,contr
-	call z_pdata_0xff_check
-	ncall p_mouse_fast_conn_quit,user
-endif
-	jam 1,mem_mouse_le_bb_connected_flag
-	fetch 1,mem_mouse_le_reconnect_flag
-	nbranch z_mouse_le_bb_event_connected_next,blank
-	jam 0x14,mem_mouse_send_secutiry_request_timer
-z_mouse_le_bb_event_connected_next:
-	jam 0,mem_mouse_le_not_tx_disconn
-	jam 0,mem_mouse_start_discovery_enable
-	call p_mouse_null_enter_hibernate_disable
-	call p_mouse_data_init
-	branch mouse_le_bb_event_connected
-
-z_pdata_0xff_check:
-	call enable_user
-	setarg 0xffff
-z_pdata_0xff_check_loop:
-	ifetcht 2,contr
-	isub temp,null
-	ncall disable_user,zero
-	loop z_pdata_0xff_check_loop
-	rtn
-
-z_mouse_sniff_not_accept:
-	fetch 1,mem_mouse_enter_sniff_count
-	rtneq 2
-	increase 1,pdata
-	store 1,mem_mouse_enter_sniff_count
-	jam 0x12,mem_sniff_param_interval	//89Hz
-	branch app_bt_enter_sniff
-
-z_mouse_enter_sniff_check:
-	fetch 1,mem_mouse_enter_sniff_count
-	rtnne 2
-	jam 0,mem_mouse_enter_sniff_count
-	jam 0x0e,mem_sniff_param_interval	//89Hz
-	branch app_bt_enter_sniff
-
-z_mouse_le_ll_start_encryt:
-	fetch 1,mem_mouse_le_reconnect_flag
-	beq 1,z_mouse_le_ll_reconn_start_encryt
-	jam 20,mem_le_start_encrypt_timer
-	branch z_mouse_le_ll_enable_start_enc_flag
-z_mouse_le_ll_reconn_start_encryt:
-	call p_app_updata_le_param
-	jam 10,mem_le_start_encrypt_timer
-z_mouse_le_ll_enable_start_enc_flag:
-	arg LL_START_ENC_FLAG,queue
-	branch mouse_le_enable_connect_flag
-
-z_mouse_bb_event_disconnected:
-	jam 0,mem_bt_rcvd_switch_req_accept
-	jam 0,mem_bt_send_lmp_setup_complete
-	jam 0,mem_mouse_bt_send_first_package_flag
-	branch mouse_bb_disconnected
-
-
-
Index: DPI_Switch/sched/109x.dat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/sched/109x.dat	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/sched/109x.dat	(nonexistent)
@@ -1,37 +0,0 @@
-
-mem_lpm_config:8f 1f ce	#4khz
-mem_lpm_xtalcnt:00 0a 0b ef 07
-mem_lpm_hibernate_switch:00
-mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
-#mem_fcomp_mul:02
-#mem_fcomp_div:24
-mem_iscan_window:12 00
-mem_iscan_interval:80 00
-mem_pscan_window:12 00
-mem_pscan_interval:80 00
-mem_inq_window:20 00
-mem_page_window:20 00
-mem_page_to:00 40
-mem_rx_window_init:80 04
-mem_rx_window_sniff:00 08
-
-mem_seqi:00
-
-
-
-mem_tx_power:00#0dbm
-mem_rf_init_data_new:
-# tx power
-4b ba
-55 d0
-56 e0
-57 88
-58 6c
-59 10
-#xtal 16M
-#68 e6
-ff
-mem_rf_init_ptr:mem_rf_init_data_new
-
-
-
Index: DPI_Switch/sched/mouse.dat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/sched/mouse.dat	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/sched/mouse.dat	(nonexistent)
@@ -1,953 +0,0 @@
-mem_patch00:06
-mem_patch03:08
-mem_patch04:40
-mem_patch09:05
-mem_patch0a:02
-mem_patch0b:02
-mem_patch10:20
-mem_patch11:02
-mem_patch14:82
-mem_patch15:20
-mem_patch16:06
-mem_patch18:10
-mem_patch19:08
-mem_patch1c:48
-mem_patch1d:1e
-mem_patch20:20
-mem_patch27:02
-mem_patch28:08
-mem_patch29:04
-mem_patch2a:80
-mem_patch2b:02
-mem_patch2c:c8
-mem_patch2d:04
-mem_patch2e:80
-mem_patch30:05
-mem_patch31:31
-mem_patch3f:04
-
-
-#debug
-#mem_patch2f:40
-#mem_patch37:40
-#mem_patch3e:c0
-
-
-mem_device_option:43
-mem_lpm_mode:01
-mem_lpm_mult:20
-mem_lpm_mult_init:20
-#mem_lpm_interval:00 00
-
-mem_mouse_function_enable:
-#bit0 MOUSE_ENABLE_USB
-#bit1 MOUSE_ENABLE_24G
-#bit2 MOUSE_ENABLE_SPI2
-#bit3 MOUSE_ENABLE_FLASH
-#bit4 MOUSE_ENABLE_EEPROM
-#bit5 MOUSE_ENABLE_STATUE_UP_THREE_LED
-#bit6 MOUSE_ENABLE_STATUE_UP
-#bit7 MOUSE_ENABLE_DPI_LED_BLINK
-0a
-#bit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE
-#bit1 MOUSE_ENABLE_2K_EEPROM
-#bit2 MOUSE_ENABLE_ADC
-#bit3 MOUSE_ENABLE_INIT_DELAY
-#bit4 MOUSE_ENABLE_DISCOVERY_SENSOR_LED
-#bit5 MOUSE_ENABLE_AUTO_24G_PARING
-#bit6 MOUSE_ENABLE_WAKEUP_FROM_POWER
-#bit7 MOUSE_ENABLE_GPIO_CONTROL_ADC_SENSOR
-00
-
-mem_app_connection_options:06
-mem_lap:20 51 17 01 20 20
-mem_local_name_length:
-'BT3.0 Mouse
-mem_sniff_param_interval:
-0e 00 
-01 00 ##mem_sniff_param_attempt:01 00
-02##mem_sniff_param_timeout:00 00
-
-
-mem_unsniff2sniff_timer:0a
-mem_ssp_mode_flag:03
-mem_ssp_enable:01
-##mem_all_uuid_16bits:
-##06
-##03#Type: Complete list of 16-bit UUIDs
-##0011 0100 1002 1124  1200  0001
-mem_all_uuid_128bits:00
-mem_ptt:00
-
-
-mem_sp_iocap_local:03 00 04
-mem_ui_profile_supported:01
-mem_eir_enable:01
-
-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
-'\09BT5.0 Mouse
-
-mem_le_scan_data_len:1f
-mem_le_scan_data:
-#name
-'\09BT5.0 Mouse
-
-
-#max 20bytes, att list data rom limits
-mem_le_name_len:
-'BT5.0 Mouse
-
-
-mem_le_interval_min:
-07 00 #min interval
-07 00 #max interval
-20 00 #latency
-2c 01 #timeout
-
-
-mem_le_adv_interval:00 00
-mem_le_adv_type:00 
-mem_le_adv_own_addr_type:00
-mem_le_adv_channel_map:07 
-
-mem_le_lap:8e 45 34 0e 8e ed
-
-mem_le_transmit_window:50
-
-mem_le_notify_handle:19 00
-mem_le_pairing_handle:22 00
-
-
-mem_discovery_timeout:08 07#3min
-mem_mouse_direct_timeout:50 00#8s
-mem_mouse_no_data_timeout:70 17#30min
-
-mem_flash_ncs_gpio:0a
-mem_spi_ncs_gpio:ff
-mem_ui_button_gpio:ff
-mem_ui_button_timeout:1e
-
-mem_device_number:02 #max device number
-mem_24g_device_number:02 #devie 2 :24g mode
-mem_adc_config_flag:01 #0 vinlpm 1 hvin 2 gpio
-mem_adc_channel:32 #gpio5
-mem_mouse_vdd_full_vol:a4 01#4.2V
-18 01#mem_mouse_vdd_empty_vol:5a 00# 2.8V
-40 01#mem_mouse_vdd_low_vol:64 00  #3.2v
-
-mem_config_sensor_type:00
-02 #mem_config_sensor_motion:02
-06 #mem_lbutton_gpio:04
-14 #mem_rbutton_gpio:1b
-1d #mem_mbutton_gpio:17
-ff #mem_bk_button_gpio:ff
-ff #mem_fw_button_gpio:ff
-14 #mem_dpi_button_gpio:06
-1c #mem_whee_a_data_gpio:02
-1b #mem_whee_b_data_gpio:03
-ff #mem_whee_ta_data_gpio:ff
-ff #mem_whee_tb_data_gpio:ff
-ff #mem_config_bt_button_gpio:ff
-14 #mem_config_select_device_button_gpio:ff
-ff #mem_config_paraing_led_gpio:ff
-ff #mem_config_low_voltage_alarm_gpio:08
-ff #mem_config_device1_led_gpio:08
-ff #mem_config_device2_led_gpio:ff
-ff #mem_config_device3_led_gpio:ff
-ff #mem_sensor_data_gpio:18
-ff #mem_dpi_led_gpio:08
-20 #mem_config_function_enable:04
-03 #mem_config_sensor_angle:00
-ff #mem_select_sensor_angle_gpio:ff
-ff #mem_select_adc_gpio:ff
-
-#mouse sensor angle
-#0x00 MOUSE_6CLK_ANGLE
-#0X01 MOUSE_9CLK_ANGLE
-#0X02 MOUSE_12CLK_ANGLE
-#0X03 MOUSE_3CLK_ANGLE
-
-
-mem_eeprom_wp_gpio:ff
-mem_sensor_reset_gpio:ff
-mem_sensor_squal_reg:07# 07:3205         	06:3610
-mem_usb_offline_check_gpio:ff
-#mem_wire_usb_interval:19 #128
-
-#mem_config_function_enable:
-#bit0 ENABLE_BT_DISCOVERY_BY_GPIO_LED
-#bit1 ENABLE_MODE_LED
-#bit2 ENABLE_LOW_VOLTAGE_LED
-#bit3 ENABLE_DEVICE_LED
-#bit4 ENABLE_BT_BUTTON
-#bit5 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON
-#bit6 ENABLE_SELECT_DEVICE_BY_SWITCH
-#bit7 ENABLE_SENSOR_MOTION_PIN
-#20
-
-mem_mouse_dpi_seting:
-01##mem_320x_dpi_1
-02##mem_320x_dpi_2
-03##mem_320x_dpi_3
-04##mem_320x_dpi_4
-
-#15##mem_3212_dpi_1#800
-#1f##mem_3212_dpi_2#1200
-#2a##mem_3212_dpi_3#1600
-#3f##mem_3212_dpi_4#2400
-
-#04##mem_3610_dpi_1
-#05##mem_3610_dpi_2
-#07##mem_3610_dpi_3
-#08##mem_3610_dpi_4
-
-mem_mouse_3065xy_dpi_seting:
-00
-01
-02
-03
-
-
-mem_ui_led_struct_ptr:mem_mouse_led_type
-mem_ui_led_struct_num:01
-
-
-mem_mouse_le_uuid_sup:
-25 00 02 03 28 01 12 
-26 00 02 4d 2a 07 00 00 00 00 00 00 00 
-27 00 02 02 29 02 00 00
-28 00 02 08 29 02 11 01
-29 00 02 03 28 01 0e 
-2a 00 02 4d 2a 07 00 00 00 00 00 00 00
-2b 00 02 08 29 02 11 02
-
-
-#mem_le_att_pnp_id_len:07
-#mem_le_att_pnp_id:
-#02		#verdor ID source
-#35 12	#usb verdor ID
-#22 aa 	#product ID
-#01 00	#product version
-
-  
-#24g init
-mem_24g_mode:01#tx
-mem_24g_data_type:01        #mouse 1,kb 2
-mem_24g_max_retry:04#max tx retry
-mem_24g_no_ack:00#with ack
-mem_24g_rx_window:c0 12     #400us
-mem_24g_interval:19
-mem_24g_interval_min:19
-mem_24g_interval_max:1c
-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
-mem_24g_pairing_sm:ff
-mem_24g_paring_addr:20 15 10 05
-mem_24g_allpowerful_addr:0f 0f 0f 0f
-mem_24g_common_temp:00 00 00 00 00 00 00 00 00 00
-mem_24g_enter_hibernate:80 ee 36
-
-mem_device_flag:
-02
-ff
-ff ff ff ff ff ff
-#mem_device2_type:
-#34
-#11 22 33 44 55 66
-#mem_device3_type:
-#34
-#11 22 33 44 55 66
-mem_mouse_fast_conn_flag:ff
-mem_mouse_long_button_select_device:ff
-mem_mouse_24g_addr_init:ff ff ff ff
-
-
-mem_flash_base:00 50 00
-#mem_eeprom_base:90 1f
-#mem_eeprom_block_size:80
-mem_reconn_times_init:00
-mem_bt_discovey_button_statue:01#default: button up
-mem_mouse_dpi_button_state:01
-mem_empty_count:03
-
-mem_mouse_multi_led_gpio:05
-mem_mouse_multi_led_on_timer_init:14
-mem_mouse_multi_led_blink_timer_init:03
-
-#select device timer init 3s
-mem_mouse_button_select_device_timer_init:19
-
-#zcode
-mem_zcode_current_number:ff
-mem_xip_flash_offset:00 00 00
-
-#yichip sdp
-#04 0011 0100 1002 1124
-#00 01 00 00
-#36 01 6d
-#09
-#00
-#00
-#0a
-#00
-#01
-#00
-#00
-#09
-#00
-#01
-#35
-#03
-#19
-#11
-#24
-#09
-#00
-#04
-#35
-#0d
-#35
-#06
-#19
-#01
-#00
-#09
-#00
-#11
-#35
-#03
-#19
-#00
-#11
-#09
-#00
-#05
-#35
-#03
-#19
-#10
-#02
-#09
-#00
-#06
-#35
-#09
-#09
-#65
-#6e
-#09
-#00
-#6a
-#09
-#01
-#00
-#09
-#00
-#09
-#35
-#08
-#35
-#06
-#19
-#11
-#24
-#09
-#01
-#00
-#09
-#00
-#0d
-#35
-#0f
-#35
-#0d
-#35
-#06
-#19
-#01
-#00
-#09
-#00
-#13
-#35
-#03
-#19
-#00
-#11
-#09
-#01
-#00
-#25
-#16
-#59
-#69
-#43
-#68
-#69
-#70
-#20
-#42
-#6c
-#75
-#65
-#74
-#6f
-#6f
-#74
-#68
-#20
-#4d
-#6f
-#75
-#73
-#65
-#09
-#01
-#01
-#25
-#05
-#4d
-#6f
-#75
-#73
-#65
-#09
-#01
-#02
-#25
-#06
-#59
-#69
-#43
-#68
-#69
-#70
-#09
-#02
-#00
-#09
-#01
-#00
-#09
-#02
-#01
-#09
-#01
-#11
-#09
-#02
-#02
-#08
-#80
-#09
-#02
-#03
-#08
-#21
-#09
-#02
-#04
-#28
-#01
-#09
-#02
-#05
-#28
-#01
-#09
-#02
-#06
-#35
-#81
-#35
-#7f
-#08
-#22
-#25
-#7b
-#05
-#01
-#09
-#02
-#a1
-#01
-#85
-#02
-#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
-#75
-#08
-#95
-#01
-#81
-#06
-#c0
-#c0
-#05
-#0c
-#09
-#01
-#a1
-#01
-#85
-#03
-#75
-#10
-#95
-#02
-#15
-#01
-#26
-#8c
-#02
-#19
-#01
-#2a
-#8c
-#02
-#81
-#60
-#c0
-#06
-#00
-#ff
-#09
-#01
-#a1
-#01
-#85
-#10
-#75
-#08
-#95
-#06
-#15
-#00
-#26
-#ff
-#00
-#09
-#01
-#81
-#00
-#09
-#01
-#91
-#00
-#c0
-#09
-#02
-#07
-#35
-#08
-#35
-#06
-#09
-#04
-#09
-#09
-#01
-#00
-#09
-#02
-#08
-#28
-#00
-#09
-#02
-#09
-#28
-#01
-#09
-#02
-#0a
-#28
-#01
-#09
-#02
-#0b
-#09
-#01
-#00
-#09
-#02
-#0c
-#09
-#1f
-#40
-#09
-#02
-#0d
-#28
-#00
-#09
-#02
-#0e
-#28
-#01
-#09
-#02
-#0f
-#09
-#00
-#12
-#09
-#02
-#10
-#09
-#00
-#00
-#
-#04 1002 1200 0100 0001
-#00 01 00 01
-#36 00 5a
-#09
-#00
-#00
-#0a
-#00
-#01
-#00
-#01
-#09
-#00
-#01
-#35
-#03
-#19
-#12
-#00
-#09
-#00
-#04
-#35
-#0d
-#35
-#06
-#19
-#01
-#00
-#09
-#00
-#01
-#35
-#03
-#19
-#00
-#01
-#09
-#00
-#05
-#35
-#03
-#19
-#10
-#02
-#09
-#00
-#09
-#35
-#08
-#35
-#06
-#19
-#12
-#00
-#09
-#01
-#00
-#09
-#02
-#00
-#09
-#01
-#03
-#09
-#02
-#01
-#09
-#04
-#6d
-#09
-#02
-#02
-#09
-#b0
-#16
-#09
-#02
-#03
-#09
-#01
-#29
-#09
-#02
-#04
-#28
-#01
-#09
-#02
-#05
-#09
-#00
-#02
-#00
-#00
-#
-#01 0001
-#00 01 00 01
-#36 00 5a
-#09
-#00
-#00
-#0a
-#00
-#01
-#00
-#01
-#09
-#00
-#01
-#35
-#03
-#19
-#12
-#00
-#09
-#00
-#04
-#35
-#0d
-#35
-#06
-#19
-#01
-#00
-#09
-#00
-#01
-#35
-#03
-#19
-#00
-#01
-#09
-#00
-#05
-#35
-#03
-#19
-#10
-#02
-#09
-#00
-#09
-#35
-#08
-#35
-#06
-#19
-#12
-#00
-#09
-#01
-#00
-#09
-#02
-#00
-#09
-#01
-#00
-#09
-#02
-#01
-#09
-#05
-#ac
-#09
-#02
-#02
-#09
-#02
-#39
-#09
-#02
-#03
-#09
-#00
-#44
-#09
-#02
-#04
-#28
-#01
-#09
-#02
-#05
-#09
-#00
-#02
-#
-#03 1101 0003 0100
-#00 01 00 02
-#36 00 2f
-#09
-#00
-#00
-#0a
-#00
-#01
-#00
-#02
-#09
-#00
-#01
-#35
-#03
-#19
-#11
-#01
-#09
-#00
-#04
-#35
-#0c
-#35
-#03
-#19
-#01
-#00
-#35
-#05
-#19
-#00
-#03
-#08
-#01
-#09
-#01
-#00
-#25
-#09
-#53
-#50
-#50
-#20
-#73
-
-
-
-#logi sdp
-#04 1000 0100 0001 1002
-#00 00 00 00
-#36 00 92 
-#09 00 00 0a 00 00 00 00 09 00 01 35 03 19 10 00 09 00 04 35 0d 35 06 
-#19 01 00 09 00 01 35 03 19 00 01 09 00 05 35 03 19 10 02 09 00 06 35 
-#09 09 65 6e 09 00 6a 09 01 00 09 00 09 35 08 35 06 19 01 00 09 01 00 
-#09 01 00 25 2c 4c 6f 67 69 74 65 63 68 20 42 6c 75 65 74 6f 6f 74 68 20 
-#57 69 72 65 6c 65 73 73 20 4d 6f 75 73 65 20 53 44 50 20 53 65 72 76 65 
-#72 09 01 01 25 0f 42 6c 75 65 74 6f 6f 74 68 20 4d 6f 75 73 65 09 02 00 35 03 09 01 00
-
-#04 1124 0100 0011 1002
-#00 01 00 00
-#36 01 ee 
-#09 00 00 0a 00 01 00 00 09 00 01 35 03 19 11 24 09 00 04 35 
-#0d 35 06 19 01 00 09 00 11 35 03 19 00 11 09 00 05 35 03 19 10 02 
-#09 00 06 35 09 09 65 6e 09 00 6a 09 01 00 09 00 09 35 08 35 06 19 11 24 
-#09 01 01 09 00 0d 35 0f 35 0d 35 06 19 01 00 09 00 13 35 03 19 00 11 09 01 
-#00 25 21 4c 6f 67 69 74 65 63 68 20 42 6c 75 65 74 6f 6f 74 68 20 57 69 72 65 6c 
-#65 73 73 20 4d 6f 75 73 65 09 01 01 25 0f 42 6c 75 65 74 6f 6f 74 68 20 4d 6f 75 
-#73 65 09 01 02 25 08 4c 6f 67 69 74 65 63 68 09 02 01 09 01 11 09 02 02 08 80 09 02 
-#03 08 21 09 02 04 28 01 09 02 05 28 01 09 02 06 35 fc 35 fa 08 22 25 f6 05 01 09 02 a1 01 
-#85 02 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 0c 95 02 81 06 09 38 15 81 25 7f 75 08 95 01 81 06 05 0c 0a 38 02 75 08 95 01 81 
-#06 c0 c0 05 0c 09 01 a1 01 85 03 05 06 09 20 15 00 26 64 00 75 08 95 01 81 02 c0 06 00 ff 09 01 
-#a1 01 85 10 75 08 95 06 15 00 26 ff 00 09 01 81 00 09 01 91 00 c0 06 00 ff 09 02 a1 01 85 11 75 
-#08 95 13 15 00 26 ff 00 09 02 81 00 09 02 91 00 c0 05 01 09 06 a1 01 85 04 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 29 ff 81 00 c0 05 0c 09 01 a1 01 85 05 
-#15 00 25 01 75 01 95 02 0a 25 02 0a 24 02 81 02 95 01 75 06 81 03 c0 09 02 07 35 08 35 
-#06 09 04 09 09 01 00 09 02 09 28 01 09 02 0a 28 01 09 02 0c 09 1f 40 09 02 0d 28 00 09 
-#02 0e 28 01 09 02 0f 09 00 12 09 02 10 09 00 00
-
-#04 1200 0100 0001 1002
-#00 01 00 01
-#36 00 ad 
-#09 00 00 0a 00 01 00 01 09 00 01 35 03 19 12 00 09 00 04 35 0d 35 06 19 01 
-#00 09 00 01 35 03 19 00 01 09 00 05 35 03 19 10 02 09 00 06 35 09 09 65 
-#6e 09 00 6a 09 01 00 09 00 09 35 08 35 06 19 12 00 09 01 00 09 01 00 
-#25 2c 4c 6f 67 69 74 65 63 68 20 42 6c 75 65 74 6f 6f 74 68 20 57 69 72 
-#65 6c 65 73 73 20 4d 6f 75 73 65 20 50 6e 50 20 53 65 72 76 65 72 09 01 
-#01 25 0f 42 6c 75 65 74 6f 6f 74 68 20 4d 6f 75 73 65 09 02 00 09 01 03 09 
-#02 01 09 04 6d 09 02 02 09 b0 16 09 02 03 09 12 03 09 02 04 28 01 09 02 05 09 00 02 00
-
-
Index: DPI_Switch/util/crc16.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: DPI_Switch/util/crc16.exe
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/crc16.exe	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/crc16.exe	(nonexistent)

Property changes on: DPI_Switch/util/crc16.exe
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: DPI_Switch/util/crc16.pl
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/crc16.pl	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/crc16.pl	(nonexistent)
@@ -1,27 +0,0 @@
-$debug = 0;
-$crc = 0xffff;
-$i = 0;
-$offset = 0xffff;
-$source_file = $ARGV[0];
-$offset = $ARGV[1];
-
-open(EEP,"$source_file") or die $!;
-
-while (<EEP>) {    
-	$c = hex();
-
-  if($i >= $offset){
-  	if($debug){printf "%02x\t", $c;}
-  	$crc  = ($crc >> 8) | ($crc << 8);
-		$crc ^= $c & 0xff;
-		$crc ^= ($crc & 0xff) >> 4;
-		$crc ^= $crc << 12;
-		$crc ^= ($crc & 0xff) << 5;
-		$crc &= 0xffff;
-  }
-  $i ++;
-  if($debug){printf "%02x\t", $crc;}
-  printf "%02x\n", $c;
-}
-
-printf "%02x\n%02x\n", (($crc >> 8) & 0xff),($crc & 0xff);
Index: DPI_Switch/util/eeprom2fulleeprom.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: DPI_Switch/util/eeprom2fulleeprom.exe
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/eeprom2fulleeprom.exe	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/eeprom2fulleeprom.exe	(nonexistent)

Property changes on: DPI_Switch/util/eeprom2fulleeprom.exe
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: DPI_Switch/util/eeprom2fulleeprom.pl
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/eeprom2fulleeprom.pl	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/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: DPI_Switch/util/flash_dat2eeprom_dat.pl
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/flash_dat2eeprom_dat.pl	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/flash_dat2eeprom_dat.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=3;
-	print file_out "00\n02\n";
-	while($j<$length){
-			print file_out "$lines[$j]";
-			$j++;
-	}
-#	print "----- reverse end -----";
-	close(file);
-	close(file_out);
-}
Index: DPI_Switch/util/genotp.pl
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/genotp.pl	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/genotp.pl	(nonexistent)
@@ -1,38 +0,0 @@
-#!/usr/bin/perl
-
-open(FILE,"program.lis") or die $!;
-$page_size = 64;
-$j = $page_size;
-while(<FILE>){
-	if(/^([0-9a-f]+)\s+([0-9a-f]+)/ && hex($1) >= 0x10000) {
-		#print $1,"\n",$j,"\n";
-		if(hex(substr($1,length($1)-4,4)) == 1){
-
-			#print "aaa\n";
-			for(;$j < $page_size;$j++) {
-					print "00\n00\n00\n00\n";
-					#print $j,"\n";
-			}
-			$j = 0;
-		}
-		if($j == 0){
-			print "20\n20\n00\n40\n";
-			$j ++;
-		}
-		for($i = 0;$i < 4;$i++) {
-			print substr($2, $i*2, 2),"\n"; 
-
-		}
-		$j ++;
-		if($j == $page_size){
-			$j = 0;
-		}elsif($j > $page_size){
-			print "Overflow at 0x",$1," !\n";
-			close(FILE);
-			die;
-		}
-
-	}
-}
-#print "codecnt = ",$codecnt,"\n";
-close(FILE);
\ No newline at end of file
Index: DPI_Switch/util/memalloc.pl
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/memalloc.pl	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/memalloc.pl	(nonexistent)
@@ -1,74 +0,0 @@
-#!/usr/bin/perl
-$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;$i < @f;$i++) { $cmalloc[$i] = (); }
-for($i = 0;$i < @f;$i++) { 
-	$_ = $f[$i];
-	$start = 1 if(/^\s*memalloc\s*\(\s*$/);
-	$start = 2 if(/^\s*xmemalloc\s*\(\s*$/);
-	$start = 3 if(/^\s*omemalloc\s*\(\s*$/);
-	$start = 10 + $1 if(/^\s*cmemalloc\s+([0-9])\s*\(\s*$/);
-	if($start) {
-		if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
-			if($start == 1) {
-				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
-				$addr += $1;
-				$bstr .= $str;
-				$sstr .= $str;
-			} elsif($start == 2) {
-				$str = sprintf "0x%04x %s%s\n", $xaddr, $2, $3;
-				$xaddr += $1;
-				$xstr .= $str;
-			} else {
-				push @ostr, $_;
-			}
-		}
-		if(/^\s*\)\s*$/) {
-			if(@ostr > 0) {
-				if($start == 3) {
-					push @omalloc,[@ostr];
-				} elsif($start > 9) {
-					$j = $start - 10;
-					push @{$cmalloc[$j]},@ostr;
-				} 
-			}
-			$start = 0;
-			@ostr = ();
-		}
-	} else {
-		$sstr .= $_;
-	}
-}
-for($i = 0;$i <= $#cmalloc;$i++) {
-	push @omalloc,$cmalloc[$i];
-#	for($j = 0;$j <= $#{$cmalloc[$i]};$j++) {		print $cmalloc[$i][$j];	}
-}
-
-$xend = $xaddr;
-for($i = 0;$i <= $#omalloc;$i++) {
-	for($j = 0, $oaddr = $xaddr;$j <= $#{$omalloc[$i]};$j++) {
-		if($omalloc[$i][$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
-			$str = sprintf "0x%04x %s%s\n", $oaddr, $2, $3;
-			$oaddr += $1;
-			$xstr .= $str;
-		}
-	}
-}
-$xend = $oaddr if($oaddr > $xend);
-print file $xstr, $sstr;
-print file1 $bstr, $xstr;
-close file;
-close file1;
-printf "\nLast allocated address is %04x\n", $addr;
-printf "\nLast allocated xmem address is %04x\n", $xend;
\ No newline at end of file
Index: DPI_Switch/util/mergepatch.pl
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/mergepatch.pl	(revision 1510)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DPI_Switch/util/mergepatch.pl	(nonexistent)
@@ -1,44 +0,0 @@
-#!/usr/bin/perl
-$defs = "";
-$fmt = 0;
-
-
-sub parseif {
-	my($fname) = @_;
-	open file, $fname;
-	@f = <file>;
-	close file;
-	open file, ">$fname";
-	@valid = (1);
-	for($i = 0;$i < @f;$i++) { 
-		$_ = $f[$i];
-		$defs .= $1 . " " if(/^define\s+(\w+)\s*/);
-		if(/^ifdef\s+(\w+)\s*/) {
-			push @valid, ($defs =~ /(^|\s)$1(\s|$)/ ? 1 : 0) & $valid[$#valid];
-		} elsif(/^ifndef\s+(\w+)\s*/) {
-			push @valid, ($defs =~ /(^|\s)$1(\s|$)/ ? 0 : 1) & $valid[$#valid];
-		} elsif(/^else/) {
-			printf "%s\nelse without if at line %d\n", $f[$i - 3], $i if($#valid == 0);
-			$valid[$#valid] = (1 - $valid[$#valid]) & $valid[$#valid - 1];
-		} elsif(/^endif/) {
-			printf "%s\nendif without if at line %d\n", $_, $i if($#valid == 0);
-			pop @valid;
-		} elsif($valid[$#valid]) {
-			if(/^include\s+(.+)\s*/) {
-				open file2, "program/$1";
-				@f2 = <file2>;
-				close file2;
-				splice(@f, $i + 1, 0, @f2);
-			} else {
-				print file $_;
-			}
-		}
-	}
-	close file;
-}
-
-parseif("output/bt_program23.meta");
-$fmt = 1;
-parseif("output/bt_format.meta");
-
-
Index: DpiSwitch/c
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/c	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/c	(working copy)
@@ -0,0 +1,99 @@
+#!/bin/bash
+
+gensched () {
+if [ -f output/sched.rom ];then rm output/sched.rom; fi
+while [ 1 ];do
+	if [ -n "$1" ];then cat sched/$1.dat >> output/sched.rom; else return; fi
+	shift
+done
+}
+
+#enckey="-k 00000000000000000000000000000000"
+
+cd ${0%/*}
+for f in program/*.prog 
+  do if [[ ! $f =~ "bt.prog" && ! $f =~ "patch.prog" && ! $f =~ "sim.prog" ]] ; then progs="$progs $f"; fi; done
+cat program/bt.prog $progs  > output/bt_program23.meta
+
+case $1 in
+s)
+#	gensched sim usb
+	gensched sim
+#	enckey="-k key -i iv"
+	sed '1,4 c define REVD\ndefine ROMCODE\ndefine SIM' -i output/bt_program23.meta;;
+p)
+	echo 'mem_patch00:0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' > output/sched.rom
+	echo 'mem_lap:00 00 00 00 00 00' >> output/sched.rom
+	sed '3 d' -i output/bt_program23.meta;;
+f)
+	gensched test usb fpga
+	enckey="-k key"
+	sed '2 c define FPGA' -i output/bt_program23.meta;;
+t)
+	echo test;gensched test 109x;;
+d)
+        gensched 109x usb
+	sed '2 c define DONGLE' -i output/bt_program23.meta;;
+m)
+        gensched 109x mouse
+	sed '2 c define MOUSE' -i output/bt_program23.meta;;
+esac
+
+
+for f in format/*.format; do if [[ ! $f =~ "bt.format" && ! $f =~ "command.format" ]] ; then fmts="$fmts $f"; fi; done
+cat format/bt.format $fmts format/command.format > output/bt_format.meta
+perl $UTIL/mergepatch.pl 
+perl $UTIL/memalloc.pl
+cd output
+osiuasm bt_program23 -O-W
+sed 's/\(.*\)\r/\1/' -i bt_program23.meta 
+
+
+defs=( FPGA SIM ROMCODE BLE REVA REVB )
+for i in $(seq 0 $((${#defs[@]} - 1))) ; do
+	grep  "^define ${defs[$i]}$" bt_program23.meta -q
+	tsts[$i]=$?
+done
+
+#for i in $(seq 0 $((${#defs[@]} - 1))) ; do echo test ${tsts[$i]};done
+
+geneep -n $enckey
+
+if [[ $2 == "o" ]];then exit;fi
+
+if [ ${tsts[1]} -eq 0 ] ; then
+	sed '8193,24576d' < romcode.rom > romcode0.rom
+	sed '1,8192d' < romcode.rom > romcode1.rom
+	cp romcode0.rom romcode1.rom ../../sim
+	cp romcode.rom ramcode.rom ../../sim
+	if [ -f eeprom.dat ] ; then cp eeprom.dat ../../sim/ ; fi
+	if [ -f otp.rom ] ; then sed '7 c 1' < otp.rom > ../../sim/otp.rom ; fi
+else
+	if [ ${tsts[0]} -eq 0 ] ; then
+		if [ ${tsts[2]} -eq 0 ] ; then
+			sed '8193,24576d' < romcode.rom > romcode0.rom
+			sed '1,8192d' < romcode.rom > romcode1.rom
+			perl $UTIL/rom2mif.pl < romcode.rom > romcode.mif; mv romcode.mif  ../../fpga/
+			echo fpga
+			if [ -f otp.rom ] ; then perl $UTIL/rom2mif.pl < otp.rom > otp.mif; mv otp.mif ../../fpga/ ; fi
+			if [[ $2 == o ]] ; then exit; fi
+			e ku; e hu ramcode.rom 0
+			e su sched.rom;exit 
+		fi
+#		if [[ $1 == "f" ]] ; then 	../../fpga/p u;sleep 1; e su sched.rom;exit; fi
+	fi
+	if [ ! -s ramcode.rom ] ; then exit; fi
+	if [[ $2 =~ e ]];then 
+		e pu;cd ..;e ep;e ku
+	elif [[ $2 =~ [f] ]];then 
+		e ku;e hu romcode.rom 2000;e hu ramcode.rom 0; e su sched.rom;e ku
+	else
+		if [ -f sched.rom ]; then
+			e ku; e hu ramcode.rom 0;e su sched.rom;e pu;e cu
+		else
+			e ku;e hu
+		fi
+	fi
+fi
+
+cd ..
Index: DpiSwitch/do.bat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/do.bat	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/do.bat	(working copy)
@@ -0,0 +1,168 @@
+@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=shutter
+@rem set device_option=antilost
+@rem set device_option=hci
+@rem set device_option=kb
+@set device_option=mouse
+@rem set device_option=le_kb
+@rem set device_option=dongle
+@rem set device_option=module
+@rem set device_option=prcp
+@rem set device_option=car
+@rem set device_option=remote_car
+@echo off
+
+setlocal enabledelayedexpansion
+for /f %%f in ('dir /b /o program\*.prog') do @if not %%f==bt.prog if not %%f==patch.prog if not %%f==sim.prog set progs=!progs! program\%%f
+type program\bt.prog %progs% > output\bt_program23.meta
+for /f %%f in ('dir /b /o format\*.format') do @if not %%f==bt.format if not %%f==command.format set fmts=!fmts! format\%%f
+type format\bt.format %fmts% format\command.format > output\bt_format.meta
+perl util/mergepatch.pl output/bt_program23.meta
+perl util/memalloc.pl output/bt_format.meta
+
+cd output
+osiuasm bt_program23 -O-W
+
+if "%device_option%" equ "hci" (
+  copy ..\sched\hci_boot.dat ..\output\sched.rom
+) else if "%device_option%" equ "kb" (
+copy ..\sched\ssp.dat + ..\sched\kb.dat +  ..\sched\fpga.dat ..\output\sched.rom
+) else if "%device_option%" equ "le_kb" (
+  copy ..\sched\le_kb.dat + ..\sched\fpga.dat ..\output\sched.rom
+) else if "%device_option%" equ "mouse" (
+  copy ..\sched\109x.dat + ..\sched\mouse.dat ..\output\sched.rom
+) else if "%device_option%" equ "module" (
+  copy ..\sched\DM_module.dat + ..\sched\109x.dat ..\output\sched.rom
+) else if "%device_option%" equ "shutter" (
+  copy ..\sched\shutter.dat + ..\sched\109x.dat ..\output\sched.rom
+) else if "%device_option%" equ "antilost" (
+  copy ..\sched\antilost.dat + ..\sched\109x.dat ..\output\sched.rom
+) else if "%device_option%" equ "dongle" (
+  copy  ..\sched\109x.dat + ..\sched\usb.dat ..\output\sched.rom
+) else if "%device_option%" equ "prcp" (
+  copy ..\sched\Le_prcp.dat + ..\sched\fpga.dat ..\output\sched.rom
+) else if "%device_option%" equ "test" (
+  copy ..\sched\test.dat + ..\sched\fpga.dat ..\output\sched.rom
+) else if "%device_option%" equ "car" (
+  copy ..\sched\car.dat + ..\sched\109x.dat ..\output\sched.rom
+) else if "%device_option%" equ "remote_car" (
+  copy ..\sched\remote_car.dat + ..\sched\109x.dat ..\output\sched.rom
+) else (
+
+cd ..
+echo **********************************
+echo Error: illegal device_option !
+echo **********************************
+goto end
+) 
+
+if "%1" equ "eep" (
+	goto genromrevc
+)else (
+  goto downloadram
+)
+
+:geneeprom
+@rem echo on
+@echo Start to generate EEPROM code
+copy ..\sched\mouse.dat ..\output\sched.rom
+
+..\util\geneep ramcode.rom fwram.rom sched.rom %enc% %enckey% a
+perl ..\util\a1bugfix.pl
+osiuasm bt_program23 -O-W
+..\util\geneep ramcode.rom fwram.rom sched.rom %enc% %enckey% a
+goto gen_eep_end
+
+
+
+
+:genromrevb
+echo off
+@echo Start to generate EEPROM code
+..\..\regedr\geneep ramcode.rom fwram.rom sched.rom %enc% %enckey% b
+goto gen_eep_end
+
+
+:genromrevc
+echo off
+@echo Start to generate EEPROM code
+
+geneep -n -f -z  ramcode.rom sched.rom 0 %enckey% c
+
+rem geneep -n -k key.txt
+
+
+cd ..\output
+copy flash.dat ..\util\flash1.dat
+del flash.dat
+
+cd ..\util
+perl flash_dat2eeprom_dat.pl flash1.dat flash.dat
+copy flash.dat ..\output\flash.dat
+del flash1.dat
+del flash.dat
+
+
+cd ..\output
+echo flash.dat Generated......
+
+if "%device_option%" equ "module" (
+perl eeprom2hciimage_1021s.pl
+echo bt_patch.bin Generated......
+perl bin2array.pl > bt_patch.h
+echo bt_patch.h Generated......
+)
+
+
+:gen_eep_end
+cd ..
+echo **********************************
+echo FLASH Generated.
+echo The Device is %device_option%. 
+echo Use command "e fp" to download FLASH.
+echo **********************************
+goto end
+
+
+
+
+:genrom
+@rem echo on
+perl ..\util\rom2mif.pl romcode
+del ..\..\%FPGA_PATH%\romcode.mif
+copy .\romcode.mif ..\..\%FPGA_PATH%\romcode.mif
+perl ..\util\gen_patch_h.pl >%YC_PATCH_FILE%
+copy .\%YC_PATCH_FILE% ..\..\%MV_PATCH%\%YC_PATCH_FILE%
+copy .\%YC_PATCH_FILE% D:\work\yichip\mv_proj\src\inc\%YC_PATCH_FILE%
+cd ..\..\%FPGA_PATH%
+quartus_cdb btspi -c btspi --update_mif
+quartus_asm --read_settings_files=off --write_settings_files=off btspi -c btspi
+quartus_pgm -c USB-Blaster[USB-0] -m jtag -o "p;.\output\btspi.sof" 
+@echo bitstream_compression=on >1
+@echo memory_map_file=on >> 1
+quartus_cpf -c -o 1 -s EP3C55 -d EPCS16 output\btspi.sof output\btspi.jic  
+@rem quartus_pgm -c USB-Blaster[USB-0] -m jtag -o "pi;.\output\btspi.jic"   
+@del 1
+goto end
+
+
+
+:downloadram
+echo on
+@echo Start to download ram code
+e ku
+e hu
+e su sched.rom
+@echo **********************************
+@echo RAM CODE has been downloaded.
+@echo The Device is %device_option%. 
+@echo **********************************
+cd ..
+
+
+:end
Index: DpiSwitch/flash_clear.bat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/flash_clear.bat	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/flash_clear.bat	(working copy)
@@ -0,0 +1,6 @@
+e pu
+e 8070l20
+e 8081 8
+e fr 0 10
+e fc
+e fr 0 10
\ No newline at end of file
Index: DpiSwitch/flash_download.bat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/flash_download.bat	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/flash_download.bat	(working copy)
@@ -0,0 +1,12 @@
+call do.bat eep
+e ku
+ping -n 2 127.1 >nul
+e pu
+
+e 8081 8
+
+e fc
+e fp
+e fr 0 10
+e ku
+e au
Index: DpiSwitch/format/Hid.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/Hid.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/Hid.format	(working copy)
@@ -0,0 +1,21 @@
+
+(
+/*HID TYPE*/
+0x01 HID_TYPE_CONTROL
+0x04 HID_TYPE_GET_REPORT
+0x05 HID_TYPE_SET_REPORT
+0x07 HID_TYPE_SET_PROTOCOL
+0x09 HID_TYPE_SET_IDLE
+0x0a HID_TYPE_DATA
+/*HID REPORT ID*/
+0x01 HID_REPORT_ID_KB
+
+0x00 HID_CONTROL_P_NOOPERATION
+0x01 HID_CONTROL_P_HARDRESET
+0x02 HID_CONTROL_P_SOFTRESET
+0x03 HID_CONTROL_P_SUSPEND
+0x04 HID_CONTROL_P_EXITSUSPEND
+0x05 HID_CONTROL_P_VIRTUALCABLEUNPLUG
+)
+
+
Index: DpiSwitch/format/app.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app.format	(working copy)
@@ -0,0 +1,326 @@
+
+memalloc(
+
+/* load code */
+1 mem_ucode_status
+2 mem_otp_ucode_flag
+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
+2 mem_ucode_ptr
+16 mem_ucode_keybuf
+18 mem_check_plap_temp
+
+
+1 mem_reconnect_flag
+1 mem_switch_fail_master_count
+1 mem_app_evt_timer_count
+
+)
+
+xmemalloc(
+1 mem_app_handshake_flag
+2 mem_sniff_param_interval
+2 mem_sniff_param_attempt
+2 mem_sniff_param_timeout
+
+/*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_bt_process
+2 mem_cb_idle_process
+2 mem_cb_bb_event_process
+2 mem_cb_discovry_timeout
+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_eeprom_base
+
+1 mem_unsniff2sniff_timer_count
+//lpm mode
+1 mem_wake_up_delay_timer
+
+1 mem_app_connection_options
+
+//
+2 mem_app_disconn_reason
+2 mem_app_disconn_reason_flag
+4 mem_lpm_delay_after_sniff
+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
+
+1 mem_ui_led_struct_num
+2 mem_ui_led_struct_ptr
+
+//adc
+2 mem_0_5_adc_io_data
+2 mem_1v_adc_hvin_data
+2 mem_2v_adc_vinlpm_data
+2 mem_1v_adc_io_data
+2 mem_5v_adc_hvin_data
+2 mem_3v_adc_vinlpm_data
+2 mem_otp_adc_flag
+2 mem_reference_voltage
+1 mem_adc_config_flag
+1 mem_adc_channel
+2 mem_adc_current_value
+1 mem_adc_power_flag	//bit0:low power falg ; bit1:no power flag
+
+3 mem_spi_write_addr
+2 mem_spi_write_ptr
+2 mem_spi_write_len
+1 mem_spi_write_flash_sm
+1 mem_eeprom_wp_gpio
+2 mem_kscan_ptr
+ifdef SPI_SIMULATE
+//spi gpio config
+0 mem_spi_simulate_struct
+1 mem_spi_simulate_cs_gpio
+1 mem_spi_simulate_sclk_gpio
+1 mem_spi_simulate_mosi_gpio
+1 mem_spi_simulate_miso_gpio
+1 mem_spi_simulate_motion_gpio
+//spi slave read byte
+50 mem_spi_simulate_read_byte_slave
+1 mem_spi_simulate_read_byte_slave_temp
+1 mem_spi_simulate_read_length_slave
+1 mem_spi_simulate_read_length_slave_temp
+//spi slave write byte
+50 mem_spi_simulate_write_byte_slave
+1 mem_spi_simulate_write_byte_slave_temp
+1 mem_spi_simulate_write_byte_slave_temp_temp
+1 mem_spi_simulate_write_length_slave
+1 mem_spi_simulate_write_length_slave_temp
+endif
+
+0 mem_key_num_ptr
+2 mem_keyscan_ptr
+
+2 mem_power_param_ptr
+
+0 mem_power_on_flag	//forbid to move this variable
+2 mem_24g_head_ptr
+)
+//adc read
+(
+0 ADC_CONFIG_VINLPM
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+
+
+(
+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
+0x20 FLASH_COMMAND_SECTOR_ERASE
+)
+
+0x0000 otp_ucode_flag
+0x07f0 otp_ucode_aeskey
+
+/* adc data addr and flag */
+(
+0x07e0 OTP_CHIP_FUNCTIONS
+0x07e2 otp_adc_io_0_5V_addr
+0x07e4 otp_adc_hvin_1V_addr
+0x07e6 otp_adc_vinlpm_2V_addr
+0x07e8 otp_adc_io_1V_addr
+0x07ea otp_adc_hvin_5V_addr
+0x07ec otp_adc_vinlpm_3V_addr
+0x07ee otp_adc_flag_addr
+0xaa55 OTP_ADC_FLAG
+)
+
+/* data stored in eeprom */
+(
+0	eeprom_nv_ram
+
+195	eeprom_module_init_flag//2
+
+)
+
+/*mem_app_handshake_flag*/
+(
+0 APP_HANDSHAKE_NULL
+1 APP_HANDSHAKE_DONE
+
+)
+/*mem_device_option*/
+(
+1 dvc_op_hci
+4 dvc_op_dongle
+5 dvc_op_spp
+6 dvc_op_ukey
+7 dvc_op_ir
+
+9 dvc_op_shutter
+10 dvc_op_module
+11 dvc_op_ble_mouse
+12 dvc_op_ble_kb
+13 dvc_op_ble_prcp
+14 dvc_op_car
+15 dvc_op_AntiLost
+16 dvc_op_remote_car
+255 dvc_op_test
+//device option hight 4
+6 dvc_op_mouse
+7 dvc_op_keyboard
+//device option low 2
+(
+0 MODE_3_MOUSE
+1 MODE_4_MOUSE
+)
+)
+
+(
+3 twspi_sclk
+4 twspi_sdio
+)
+
+(
+4 pan_clk_bit
+5 pan_dat_bit
+6 pan_mov_bit
+)
+
+(
+7 otp_uflag_aes
+6 otp_uflag_skip_eep
+5 otp_uflag_skip_flash
+4 otp_uflag_hci
+)
+
+/* ir command */
+(
+1 ircmd_record
+2 ircmd_play
+3 ircmd_write_pulse
+4 ircmd_write_seq
+5 ircmd_write_next
+
+8 ircmd_test_play
+9 ircmd_test_rec
+
+10 ircmd_report_pulse
+11 ircmd_report_seq
+12 ircmd_report_raw
+
+20 ircmd_screen_on
+21 ircmd_screen_off
+)
+
+(
+7 gpio_active_bit
+)
+(
+2 HID_HANDSHAKE_TIMEOUT
+
+)
+
+(
+1 APP_FLAG_RECONNECT
+)
+(
+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
+1 APP_DISC_AFTER_PAIRING
+2 APP_DISC_AFTER_RECONN
+3 APP_DISC_AFTER_SNIFF
+4 APP_DISC_AFTER_SETUP_DONE
+5 APP_DISC_AFTER_HANDSHAKE
+6 APP_DISC_BT
+7 APP_DISC_BLE
+8 APP_DISC_L2CAP_REFUSED
+9 APP_DISC_SWITCH_FAIL
+)
+//eeprom init flag
+(
+	0xaa55 EEPROM_INIT_FLAG
+)
+
+(
+1 KEY_CONF_STRUCT_LEN
+0 KEY_PIN_OFFSET
+)
+
+(
+12000000 PWM_12MHZ
+)
+(
+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
+)
+
Index: DpiSwitch/format/app_antiLost.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_antiLost.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_antiLost.format	(working copy)
@@ -0,0 +1,202 @@
+omemalloc(
+// memblock for cover the variables portion at shutter.format
+2 mem_antl_lpm_interval
+2 mem_antl_adv_interval
+2 mem_antl_slow_adv_lpm_interval
+2 mem_antl_slow_adv_adv_interval
+0 mem_antl_led_style
+1 mem_antl_led_type
+1 mem_antl_led_blink_count
+1 mem_antl_led_gpio
+2 mem_antl_led_on_time
+2 mem_antl_led_off_time
+2 mem_antl_led_cb_on
+2 mem_antl_led_cb_off
+
+0 mem_antl_buzzer_style
+1 mem_antl_buzzer_type
+1 mem_antl_buzzer_blink_count
+1 mem_antl_buzzer_gpio
+2 mem_antl_buzzer_on_time
+2 mem_antl_buzzer_off_time
+2 mem_antl_buzzer_cb_on
+2 mem_antl_buzzer_cb_off
+
+0 mem_antl_fast_adv_led_style
+1 mem_antl_fast_adv_led_type
+1 mem_antl_fast_adv_led_blink_count
+1 mem_antl_fast_adv_led_gpio
+2 mem_antl_fast_adv_led_on_time
+2 mem_antl_fast_adv_led_off_time
+
+0 mem_antl_slow_adv_led_style
+1 mem_antl_slow_adv_led_type
+1 mem_antl_slow_adv_led_blink_count
+1 mem_antl_slow_adv_led_gpio
+2 mem_antl_slow_adv_led_on_time
+2 mem_antl_slow_adv_led_off_time
+
+0 mem_antl_power_starting_led_style
+1 mem_antl_power_starting_led_type
+1 mem_antl_power_starting_led_blink_count
+1 mem_antl_power_starting_led_gpio
+2 mem_antl_power_starting_led_on_time
+2 mem_antl_power_starting_led_off_time
+
+7 mem_antl_power_starting_buzzer_style
+
+0 mem_antl_power_off_led_style
+1 mem_antl_power_off_led_type
+1 mem_antl_power_off_led_link_count
+1 mem_antl_power_off_led_gpio
+2 mem_antl_power_off_led_on_time
+2 mem_antl_power_off_led_off_time
+
+0 mem_antl_power_off_buzzer_style
+1 mem_antl_power_off_buzzer_type
+1 mem_antl_power_off_buzzer_link_count
+1 mem_antl_power_off_buzzer_gpio
+2 mem_antl_power_off_buzzer_on_time
+2 mem_antl_power_off_buzzer_off_time
+
+7 mem_antl_alert_led_stlye
+
+0 mem_antl_alert_buzzer_stlye
+1 mem_antl_alert_buzzer_type
+1 mem_antl_alert_buzzer_blink_count
+1 mem_antl_alert_buzzer_gpio
+2 mem_antl_alert_buzzer_on_time
+2 mem_antl_alert_buzzer_off_time
+
+0 mem_antl_key_led_style
+1 mem_antl_key_led_type
+1 mem_antl_key_led_blink_count
+1 mem_antl_key_led_gpio
+2 mem_antl_key_led_on_time
+2 mem_antl_key_led_off_time
+
+7 mem_antl_key_buzzer_style
+
+1 mem_antl_queue_width
+1 mem_antl_queue_depth
+1 mem_antl_queue_curr_num
+1 mem_antl_queue_read_ptr
+1 mem_antl_queue_write_ptr
+80 mem_antl_queue_buff
+
+1 mem_antl_key_scan_enable
+1 mem_antl_led_num
+4 mem_antl_led_gpio_map
+
+0 mem_antl_power_param
+1 mem_antl_power_state
+1 mem_antl_power_timer
+1 mem_antl_power_off_timeout
+1 mem_antl_power_starting_timeout
+2 mem_antl_power_off_cb
+2 mem_antl_power_starting_cb
+2 mem_antl_power_standby_cb
+2 mem_event_button_up_cb
+
+1 mem_antl_key_num
+2 mem_cb_antl_key
+4 mem_antl_key_conf0
+
+15 mem_antl_key0_press
+15 mem_antl_key0_release
+
+///////
+1 mem_antl_conn_updata_procedure_state
+2 mem_client_characteristic_configuration_descriptor
+///////
+
+
+//100ms timer
+2 mem_adc_timer
+1 mem_antl_conn_update_timer
+1 mem_antl_send_updata_le_param_timer
+////
+
+2 mem_antl_le_sleep_timer
+2 mem_antl_fast_adv_timer
+2 mem_antl_fast_adv_timeout
+2 mem_antl_le_sleep_timeout
+1 mem_double_click_timer
+1 mem_butten_click_cnt
+
+//1 mem_dvc_seq
+/////////anti lost alarm state/////
+1 mem_antl_led_state
+1 mem_antl_buzzer_state
+1 mem_antl_key_state
+1 mem_antl_lost_mode
+1 mem_alarm_config
+1 mem_alarm_config_notfy_cnt
+
+6 mem_buzzer_pwm_conf
+
+
+/////////anti lost battery adc read////////
+2 mem_adc_timeout
+1 mem_voltage_remain_percent
+
+0 mem_battery_calculate_set
+2 mem_battery_full_voltage
+2 mem_battery_empty_voltage
+2 mem_battery_low_voltage
+2 mem_battery_current_voltage
+
+
+2 mem_rx_window_sniff_inc
+2 mem_interval_increment
+
+2 mem_antl_le_interval_min
+2 mem_antl_le_interval_max
+2 mem_antl_le_latency
+2 mem_antl_le_timeout
+2 mem_antl_le_unnormal_interval_min
+2 mem_antl_le_unnormal_interval_max
+2 mem_antl_le_unnormal_latency
+2 mem_antl_le_unnormal_timeout
+
+400 mem_AntiLost_le_att_list
+)
+
+//app new specific
+(
+0 CONN_PARAM_UPDATA_PROCEDURE_NO_INIT
+1 CONN_PARAM_UPDATA_PROCEDURE_STARTING
+2 CONN_PARAM_UPDATA_PROCEDURE_COMPLETE
+3 CONN_PARAM_UPDATA_PROCEDURE_FAILD
+)
+(
+0 NEW_SPEC_HEADER_OFFSET
+2 NEW_SPEC_OPCODE_OFFSET
+3 NEW_SPEC_DLEGTH_OFFSET  //data length offset
+5 NEW_SPEC_DADDR_OFFSET   //data address offset
+)
+(
+1 OPCODE1_BUTTEN_CLICK_ONCE
+2 OPCODE2_BUTTEN_DOUBLE_CLICK
+3 OPCODE3_ANTL_START_ALRAM
+4 OPCODE4_CURRENT_ALARM_STATE
+5 OPCODE5_BATTER_INFORMATION
+7 OPCODE7_ANTL_CONFIG_ALRAM
+)
+(
+0x0a NEW_SPEC_NOTIFY_HANDLE
+0x0b NEW_SPEC_NOTIFICATION_ENABLE_HANDLE
+0x0d NEW_SPEC_WRITE_HANDLE
+)
+//app new specific end
+
+//mem_anti_lost_mode
+(
+0x01 ANTI_LE_ALARM_ON
+0x00 ANTI_LE_ALARM_OFF
+)
+(
+0 NOTIFICATION_ENABLE_BIT
+1 INDICATION_ENABLE_BIT
+)
+
Index: DpiSwitch/format/app_car.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_car.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_car.format	(working copy)
@@ -0,0 +1,287 @@
+
+
+omemalloc(
+1 mem_car_hard_soft_switch
+1 mem_car_queue_each_size
+1 mem_car__queue_length
+
+1 mem_car_queue_curr_num
+1 mem_car_queue_read_ptr
+1 mem_car_queue_write_ptr
+120 mem_car_queue_ele
+
+20 mem_car_pop_queue_buff
+
+1 mem_car_led_num
+10 mem_car_led_map
+
+1 mem_car_style1_led_type
+1 mem_car_style1_blink_count
+1 mem_car_style1_struct_led_gpio
+2 mem_car_style1_on_time
+2 mem_car_style1_off_time
+2 mem_car_style1_cb_ledon
+2 mem_car_style1_cb_ledoff
+
+1 mem_car_style2_led_type
+1 mem_car_style2_blink_count
+1 mem_car_style2_struct_led_gpio
+2 mem_car_style2_on_time
+2 mem_car_style2_off_time
+2 mem_car_style2_cb_ledon
+2 mem_car_style2_cb_ledoff
+
+//////motor
+0 mem_le_receive_data
+2 mem_le_receive_packet_head
+1 mem_le_receive_cmd
+2 mem_le_receive_length
+10 mem_le_receive_payload
+1 mem_le_receive_checksum
+1 mem_motor1_status
+1 mem_motor1_speed
+1 mem_motor2_status
+1 mem_motor2_speed
+1 mem_motor3_status
+1 mem_motor3_speed
+
+0 mem_motor1_pwm_set
+1 mem_motor1_pwm_pin1_set
+1 mem_motor1_pwm_pin2_set
+1 mem_motor1_pwm_pin_set
+1 mem_motor1_pwm_channel_set
+3 mem_motor1_pwm_freq_set
+1 mem_motor1_pwm_dute_set
+0 mem_motor2_pwm_set
+1 mem_motor2_pwm_pin1_set
+1 mem_motor2_pwm_pin2_set
+1 mem_motor2_pwm_pin_set
+1 mem_motor2_pwm_channel_set
+3 mem_motor2_pwm_freq_set
+1 mem_motor2_pwm_dute_set
+0 mem_motor3_pwm_set
+1 mem_motor3_pwm_pin1_set
+1 mem_motor3_pwm_pin2_set
+1 mem_motor3_pwm_pin_set
+1 mem_motor3_pwm_channel_set
+3 mem_motor3_pwm_freq_set
+1 mem_motor3_pwm_dute_set
+
+1 mem_motor_select_p_n
+1 mem_car_motor_status
+1 mem_car_motor_speed
+0 mem_motor_pwm_set
+1 mem_motor_pwm_pin1_set
+1 mem_motor_pwm_pin2_set
+1 mem_motor_pwm_pin_set
+1 mem_motor_pwm_channel_set
+3 mem_motor_pwm_freq_set
+1 mem_motor_pwm_dute_set
+
+1 mem_ir_rx_gpio
+2 mem_ir_data
+2 mem_ir_rx_buf
+4 mem_ir_receive_clkn
+
+3 mem_ir_notify_data
+5 mem_ir_notify_data_head
+2 mem_ir_notify_data_payload
+1 mem_ir_notify_data_check_sum
+1 mem_car_ir_breakdown_check_timer
+1 mem_car_ir_breakdown_flag
+
+0 mem_car_led_control
+1 mem_car_led1_status
+1 mem_car_led2_status
+1 mem_car_led3_status
+1 mem_car_led4_status
+1 mem_car_led5_status
+1 mem_car_led6_status
+1 mem_car_led7_status
+1 mem_car_led8_status
+1 mem_car_led_control_timer
+1 mem_car_led_blink_status
+1 mem_car_led_no
+
+3 mem_car_info_request
+5 mem_car_info_request_head
+8 mem_car_info_request_payload
+1 mem_car_info_request_checksum
+
+0 mem_car_config_param
+1 mem_car_config_setting_flag
+1 mem_car_config_device_select
+1 mem_car_config_motor_layout
+1 mem_car_config_ir_enable
+1 mem_car_config_ir_rx_gpio
+1 mem_car_config_pairing_led_conn_status
+1 mem_car_config_pairing_led_gpio
+1 mem_car_config_led_num
+0 mem_car_config_blood_led_gpio
+1 mem_car_config_blood_led1_gpio
+1 mem_car_config_blood_led2_gpio
+1 mem_car_config_blood_led3_gpio
+1 mem_car_config_blood_led4_gpio
+1 mem_car_config_blood_led5_gpio
+1 mem_car_config_blood_led6_gpio
+1 mem_car_config_blood_led7_gpio
+1 mem_car_config_blood_led8_gpio
+1 mem_car_config_bat_notify_enable
+1 mem_car_config_low_voltage_led_gpio
+1 mem_car_config_low_voltage_percent
+1 mem_car_config_soft_switch_enable
+1 mem_car_config_soft_switch_gpio
+
+1 mem_car_notify_vdd_count
+1 mem_car_notify_vdd_timer
+1 mem_car_notify_vdd_value_last
+1 mem_car_notify_vdd_percent
+1 mem_car_working_flag
+1 mem_low_bat_flag
+
+3 mem_notify_bat_packet
+5 mem_notify_bat_head
+1 mem_notify_bat_payload
+1 mem_notify_bat_check_sum
+
+1 mem_vdd_notify_flag
+2 mem_car_current_vdd_value_temp
+2 mem_car_last_vdd_value
+
+0 mem_vdd_calculate_set
+2 mem_vdd_full_vol
+2 mem_vdd_empty_vol
+2 mem_vdd_low_vol
+2 mem_vdd_now_vol
+
+
+1 mem_car_24g_status
+2 mem_car_24g_no_data_timeout_count
+2 mem_car_24g_no_data_timeout_timer
+
+1 mem_car_24g_ir_receive_attack_count
+1 mem_car_24g_go_die_flag
+1 mem_car_attack_shake_timer
+1 mem_car_attack_shake_flag
+
+0 mem_car_soft_power
+1 mem_car_power_state
+1 mem_car_power_timer
+1 mem_car_power_off_timeout
+1 mem_car_power_starting_timeout
+2 mem_car_power_off_cb
+2 mem_car_power_starting_cb
+2 mem_car_power_standby_cb
+2 mem_car_ui_button_up_cb
+
+
+500 mem_car_le_att_list
+
+1 mem_car_moto1_blank_timer
+1 mem_car_moto2_blank_timer
+1 mem_car_moto3_blank_timer
+1 mem_car_24g_received_pac
+400 mem_24g_car_head_ptr
+)
+
+(
+//20ms
+0x0020	FAST_ADV_INTERVAL_VALUE_CAR
+)
+
+(
+0x14 ATT_CAR_CONTROL_HANDLE
+0x14 ATT_SPEED_SET_HANDLE
+)
+
+
+(
+0 TURN_FRONT
+1 TURN_LEFT
+2 TURN_RIGHT
+0 MOTOR_STOP
+1 GO_FRONT
+2 GO_BACK
+0x6b5a LE_RECEIVE_PACKET_HEAD
+)
+
+(
+0 FLAG_IR_DISABLE
+1 FLAG_IR_ENABLE
+)
+
+(
+0 DEVICE_CAR
+1 DEVICE_TANK
+2 DEVICE_BATTLE_CAR
+3 DEVICE_BATTLE_TANK
+4 DEVICE_REMOTE
+)
+
+(
+0 F_B_MOTOR
+1 L_R_MOTOR
+2 F_B_BATTERY
+3 L_R_BATTERY
+)
+
+
+
+(
+1 SPEED_LEVEL_1
+2 SPEED_LEVEL_2
+3 SPEED_LEVEL_3
+4 SPEED_LEVEL_4
+5 SPEED_LEVEL_5
+6 SPEED_LEVEL_6
+7 SPEED_LEVEL_7
+8 SPEED_LEVEL_8
+9 SPEED_LEVEL_9
+10 SPEED_LEVEL_10
+)
+
+(
+0 PWM0_DUTY_SETTING
+1 PWM1_DUTY_SETTING
+2 PWM2_DUTY_SETTING
+)
+
+(
+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
+)
+
+(
+0 CAR_REMOTE_CHECK_BUTTON
+1 CAR_REMOTE_CHECK_ROCKER
+)
+
+(
+0x11 CAR_NOTIFY_HANDLE
+)
+
+(
+0 LED_OFF
+1 LED_ON
+2 LED_BLINK
+0xFF LED_INVALID
+)
+
+(
+0xFF INVALID_PIN_NUM
+)
+
+
+(
+0 POWER_ON
+1 WORK_PAIRED
+2 WORK_SEARCH
+)
+
+
Index: DpiSwitch/format/app_light.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_light.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_light.format	(working copy)
@@ -0,0 +1,34 @@
+omemalloc(
+1 mem_light_pwm0
+1 mem_light_pwm1
+1 mem_light_pwm2
+1 mem_light_pwm3
+1 mem_light_pwm4
+1 mem_light_pwm5
+
+1 mem_light_pairing_enable
+2 mem_light_pairing_timer
+1 mem_light_cnum
+1 mem_light_next_record
+80 mem_light_clist
+
+
+1 mem_light_crr_cmd_count
+1 mem_curr_packet_num
+)
+
+(
+0 LIGHT_GROUP0
+)
+
+(
+0 LIGHT_CMD_PWM0
+1 LIGHT_CMD_PWM1
+2 LIGHT_CMD_PWM2
+3 LIGHT_CMD_PWM3
+4 LIGHT_CMD_PWM4
+5 LIGHT_CMD_PWM5
+6 LIGHT_CMD_AUTO_MODE
+0xff LIGHT_CMD_PAIRING
+
+)
Index: DpiSwitch/format/app_lightc.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_lightc.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_lightc.format	(working copy)
@@ -0,0 +1,30 @@
+omemalloc(
+1 mem_lightc_led_gpio
+6 mem_lightc_row
+6 mem_lightc_col
+
+1 mem_adv_time
+
+20 mem_cmd0_string
+20 mem_cmd1_string
+20 mem_cmd2_string
+20 mem_cmd3_string
+20 mem_cmd4_string
+20 mem_cmd5_string
+20 mem_cmd6_string
+20 mem_cmd7_string
+20 mem_cmd8_string
+20 mem_cmd9_string
+20 mem_cmd10_string
+20 mem_cmd11_string
+20 mem_cmd12_string
+20 mem_cmd13_string
+20 mem_cmd14_string
+20 mem_cmd15_string
+20 mem_cmd16_string
+20 mem_cmd17_string
+20 mem_cmd18_string
+20 mem_cmd19_string
+20 mem_cmd20_string
+)
+
Index: DpiSwitch/format/app_module.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_module.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_module.format	(working copy)
@@ -0,0 +1,221 @@
+
+omemalloc(	
+	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_spp_lpm_mult
+	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
+
+	//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_le_rx_data_len
+	2 mem_module_le_rx_data_address
+	2 mem_module_le_rx_data_handle
+	//ble write handle
+	2 mem_module_data_write_handle
+	2 mem_module_data_write_handle2
+	//flag
+	1 mem_module_flag
+
+	1 mem_module_hci_notify_len
+	2 mem_module_hci_notify_handle
+	2 mem_module_hci_nofiy_addr
+
+	4 mem_last_transmite_clock
+	
+	300 mem_module_uuid_list
+	0 mem_module_uuid_list_end
+	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
+)
+
+
+(//mem_module_flag
+//bit0~bit3 config module function
+0 MODULE_FLAG_UART_FLOW_CONTROL
+1 MODULE_FLAG_BLE_SEND_MTU23
+2 MODULE_FLAG_BLE_DATA_ENCRYPT
+
+//bit4~bit7 module states change
+4 MODULE_FLAG_BLE_DATA_FINISH
+5 MOUDLE_TASK_UNSNIFF
+6 MOUDLE_TASK_SNIFF
+
+)
+
+(
+34 NV_DATA_LEN
+-1 DECREASED_ONE
+)
+
+
+
+(
+	10 FLAG_MODULE_READ_VDD_COUNT
+)
+
+(
+	110  DM_REFCOM_BUFF_LEN
+)
+(
+	0x200 UART_AIR_CONTROL_THRESHOLD
+)
+
+(
+0x01 HCI_DISCARD_PACKET
+0x00 HCI_NOT_DISCARD_PACKET
+)
+
+
+
+(//Command
+0x00 HCI_CMD_SET_BT_ADDR_REQ
+0x01 HCI_CMD_SET_LE_ADDR_REQ
+0x02 HCI_CMD_SET_VISIBILITY_REQ
+0x03 HCI_CMD_SET_BT_NAME_REQ
+0x04 HCI_CMD_SET_LE_NAME_REQ
+0x05 HCI_CMD_SPP_DATA_REQ
+0x09 HCI_CMD_LE_DATA_REQ
+0x0b HCI_CMD_STATUS_IRQ
+0x0c HCI_CMD_SET_PAIRING_REQ
+0x0d HCI_CMD_SET_PINCODE_REQ
+0x0e HCI_CMD_SET_UARTCONTROL_REQ
+0x0f HCI_CMD_SET_UART_BAUD_REQ
+0x10 HCI_CMD_VERSION_REQ
+0x11 HCI_CMD_BT_DISCONNECT
+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
+0x29 HCI_CMD_SET_CREDIT_GIVEN
+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
+
+0xff HCI_TEST_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
+0x0b HCI_EVENT_FINISH_PACK_NUM
+0X0C HCI_EVENT_SNIFF_MD_CHANGE
+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
+
+)
+
+
+(//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
+)
+
+
+
+(
+0x7e0 OTP_ADDR_RF_PARAM_FIX
+//struct of RF_PARAM_FIX
+// uint8       //length = param_pair_count * 2 
+// uint16     //param-pair-1
+// uint16     //param-pair-2
+// uint16     //param-pair-3
+// uint16     //param-pair-4
+// uint16     //param-pair-5
+// uint16     //param-pair-6
+// uint16     //param-pair-7
+)
+
+(
+0	PAIRING_PINCODE
+1	PAIRING_JUSTWORK
+2	PAIRING_PASSKEY
+3	PAIRING_CONFIRM
+)
+
+
+(
+0x0001	FLAG_BT_PAIRING_SUCCESS
+0x0101	FLAG_BT_PAIRING_FAIL
+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
+)
+
Index: DpiSwitch/format/app_mouse.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_mouse.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_mouse.format	(working copy)
@@ -0,0 +1,528 @@
+
+memalloc(
+2 mem_init_cnt
+)
+//dpi eeprom addr
+
+
+cmemalloc 0(
+// Mouse Work Area
+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_sensor_shutter_hi
+1 mem_sensor_shutter_lo
+1 mem_sensor_smart_flag
+1 mem_sensor_squal_reg
+1 mem_sensor_iqc
+1 mem_mouse_move_flag
+2 mem_mouse_direct_timeout
+2 mem_mouse_no_data_timeout
+2 mem_mouse_discovery_timer
+2 mem_mouse_direct_timer
+2 mem_mouse_no_data_timer
+2 mem_mouse_blank_data_timer
+1 mem_mouse_send_blank_timer
+
+1 mem_mouse_cpi_count
+1 mem_mouse_dpi_button_state
+
+
+//mouse T wheel
+1 mem_wheel_tb_old_pinlevel
+1 mem_wheel_tb_new_pinlevel
+1 mem_wheel_tog 
+1 mem_mouse_tz_data
+1 mem_mouse_tz_data_count
+1 mem_mouse_tz_data_count1
+
+
+1 mem_mwheel_b_old_pinlevel
+1 mem_mwheel_b_new_pinlevel
+1 mem_mwheel_tog 
+1 mem_mouse_z_data
+1 mem_mouse_z_data_count
+1 mem_mouse_z_data_count1
+
+1 mem_reconn_mode
+1 mem_mouse_statue_led_timer  
+1 mem_le_connect_status_flag
+1 mem_le_start_encrypt_timer
+
+7 mem_device_addr_temp
+
+1 mem_adc_read_timer
+1 mem_adc_low_volatage_led_timer_count
+2 mem_adc_reference_voltage
+1 mem_device_number
+2 mem_mouse_flag
+2 mem_mouse_function_enable
+1 mem_combination_select_device_timer_init
+1 mem_combination_select_device_count
+1 mem_select_device_button_statue
+
+1 mem_combination_ui_button_count
+1 mem_bt_discovey_button_statue
+1 mem_sensor_reset_gpio	
+
+1 mem_sensor_id1
+1 mem_sensor_id2
+//eeprom config param
+1 mem_mouse_dpi_led_delay_count
+1 mem_config_sensor_type
+1 mem_config_sensor_motion
+1 mem_lbutton_gpio
+1 mem_rbutton_gpio
+1 mem_mbutton_gpio
+1 mem_bk_button_gpio
+1 mem_fw_button_gpio
+1 mem_dpi_button_gpio
+1 mem_whee_a_data_gpio
+1 mem_whee_b_data_gpio
+1 mem_whee_ta_data_gpio
+1 mem_whee_tb_data_gpio
+1 mem_config_bt_button_gpio
+1 mem_config_select_device_button_gpio
+1 mem_config_paraing_led_gpio
+1 mem_config_low_voltage_alarm_gpio
+1 mem_config_device1_led_gpio
+1 mem_config_device2_led_gpio
+1 mem_config_device3_led_gpio	
+1 mem_sensor_data_gpio
+1 mem_dpi_led_gpio
+1 mem_config_function_enable
+1 mem_config_sensor_angle
+1 mem_select_sensor_angle_gpio
+1 mem_select_adc_gpio
+0 mem_config_end
+//max length 1f								
+4 mem_btclk_sensor
+1 mem_wire_usb_interval
+1 mem_mouse_mode_flag
+1 mem_usb_addr
+3 mem_flash_base
+1 mem_24g_device_number
+1 mem_24g_enter_lpm_timer
+1 mem_mouse_1step_up_count
+1 mem_mouse_2step_up_count
+2 mem_24g_pairing_timer_count
+
+//adc struct
+0 mem_mouse_vdd_calculate_set
+2 mem_mouse_vdd_full_vol
+2 mem_mouse_vdd_empty_vol
+2 mem_mouse_vdd_low_vol
+2 mem_mouse_vdd_now_vol
+// sensor led 
+1 mem_mouse_sensor_timer_count
+1 mem_sensor_led_style
+
+//led struct
+1 mem_mouse_led_type
+1 mem_mouse_blink_count
+1 mem_mouse_struct_led_gpio
+2 mem_mouse_on_time
+2 mem_mouse_off_time
+2 mem_mouse_cb_ledon
+2 mem_mouse_cb_ledoff
+
+//three devices param
+1 mem_reconn_times
+1 mem_reconn_times_init
+0 mem_mouse_information_start
+1 mem_device_flag
+1 mem_device1_type
+6 mem_device1_addr
+16 mem_device1_link_key
+6 mem_device1_locall_addr
+
+1 mem_device2_type
+6 mem_device2_addr
+16 mem_device2_link_key
+6 mem_device2_locall_addr
+
+1 mem_device3_type
+6 mem_device3_addr
+16 mem_device3_link_key
+6 mem_device3_locall_addr
+2 mem_store_flag
+1 mem_mouse_dpi
+4 mem_mouse_24g_addr
+0 mem_mouse_information_end
+
+0 mem_mouse_dpi_seting
+1 mem_320x_dpi_1
+1 mem_320x_dpi_2
+1 mem_320x_dpi_3
+1 mem_320x_dpi_4
+
+1 mem_3212_dpi_1
+1 mem_3212_dpi_2
+1 mem_3212_dpi_3
+1 mem_3212_dpi_4
+
+1 mem_3610_dpi_1
+1 mem_3610_dpi_2
+1 mem_3610_dpi_3
+1 mem_3610_dpi_4
+
+1 mem_mouse_24g_enter_lpm_enable
+
+//-------------- patch variable ------------------
+2 mem_le_rx_window_inc
+1 mem_empty_count
+15 mem_rf_init_data_new
+
+1 mem_mouse_clear_sensor_data_flag
+1 mem_mouse_null_enter_hibernate_flag
+1 mem_mouse_null_enter_hibernate_timer
+1 mem_mouse_le_reconnect_flag
+
+33 mem_mouse_data_queue
+1 mem_mouse_data_queue_num
+
+1 mem_mouse_le_conn_param_reject
+1 mem_lpm_mult_init
+64 mem_mouse_le_uuid_sup
+
+1 mem_mouse_wheel_trigger
+1 mem_mouse_wheel_trigger_timer
+
+1 mem_mouse_enter_sniff_count
+1 mem_mouse_send_switch_req_timer
+
+27 mem_le_tx_buffer0_omemalloc
+27 mem_le_tx_buffer1_omemalloc
+27 mem_le_tx_buffer2_omemalloc
+27 mem_le_tx_buffer3_omemalloc
+
+
+646 mem_mouse_uuid_list
+1 mem_lmi_opcode_temp
+
+1 mem_mouse_button_select_device_timer_init
+1 mem_mouse_button_select_device_count
+
+1 mem_mouse_adc_last_low_voltage_flag
+1 mem_mouse_init_sensor_reset_flag
+
+1 mem_bt_rcvd_switch_req_accept
+1 mem_bt_send_max_slot_req_accept_after_switch
+1 mem_bt_send_lmp_setup_complete
+
+1 mem_l2cap_rcv
+1 mem_mouse_bt_boot_mode
+5 mem_mouse_bt_boot_data
+
+1 mem_mouse_bt_send_first_package_timer
+1 mem_mouse_bt_send_first_package_flag
+
+1 mem_mouse_asm_flag
+2 mem_mouse_x_pre
+2 mem_mouse_y_pre
+
+19 mem_le_adv_swift_pair
+
+1 mem_mouse_multi_led_blink_enable
+1 mem_mouse_multi_led_gpio
+1 mem_mouse_multi_led_state
+1 mem_mouse_multi_led_type
+1 mem_mouse_multi_led_on_timer
+1 mem_mouse_multi_led_on_timer_init
+1 mem_mouse_multi_led_blink_timer_init
+1 mem_mouse_multi_led_blink_timer
+1 mem_mouse_multi_led_blink_count
+1 mem_mouse_multi_led_blink_count_limited
+1 mem_mouse_multi_led_on_poweron2s_flag
+1 mem_mouse_multi_led_blink_poweron3s_flag
+
+1 mem_mouse_priority_bb_event
+2 mem_mouse_le_parse_l2cap_ptr
+1 mem_low_power_no_data_off_led_time
+1 mem_low_power_check_count
+1 mem_low_power_led_blink_flag
+
+0 mem_mouse_3065xy_dpi_seting
+1 mem_3065xy_dpi_1
+1 mem_3065xy_dpi_2
+1 mem_3065xy_dpi_3
+1 mem_3065xy_dpi_4
+
+//modified pnp id
+1 mem_le_att_pnp_id_len
+7 mem_le_att_pnp_id
+
+//no motion pin
+1 mem_mouse_long_mult_flag
+1 mem_mouse_le_current_mult_timer
+1 mem_24g_long_sleep_param_update_timer
+
+//flash
+1 mem_flash_ncs_gpio
+1 mem_select_ui_button_count
+4 mem_write_flash_head_temp
+1 mem_mouse_poweron_led_timer
+4 mem_mouse_24g_addr_init
+
+//zcode
+1 mem_zcode_current_number
+3 mem_xip_flash_offset
+3 mem_flash_start_addr
+3 mem_flash_address
+
+1 mem_mouse_select_device_button_wakeup_flag
+1 mem_mouse_le_updata_not_accepted_flag
+
+
+//fast le conn
+6 mem_le_normal_lap
+1 mem_le_switch_adv_flag
+1 mem_le_switch_adv_timer
+1 mem_le_switch_adv_count
+1 mem_mouse_start_discovery_enable
+1 mem_mouse_le_adv_start
+
+1 mem_mouse_send_secutiry_request_timer
+1 mem_le_send_security_request_flag
+1 mem_mouse_le_bb_connected_flag
+
+
+//user flash data
+0 mem_mouse_flash_start_temp
+2 mem_random_addr_increase_count
+1 mem_mouse_long_button_select_device
+2 mem_eeprom_init_flag
+1 mem_mouse_fast_conn_flag
+1 mem_mouse_latest_mode
+0 mem_mouse_flash_end_temp
+
+1 mem_mouse_le_not_tx_disconn
+)
+
+(
+//SPI GPIO 
+0x19 MOUSE_SPI1_CLK_GPIO
+0x1A MOUSE_SPI1_SDIO_GPIO
+0X1E MOUSE_SPI2_CLK_GPIO
+0X1F MOUSE_SPI2_SDIO_GPIO
+//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
+//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
+//bt mode device number
+0x01 MODE_BT_DEVICE1
+0x02 MODE_BT_DEVICE2
+0x03 MODE_BT_DEVICE3
+0x02 MODE_24G_DEVICE
+0xff MODE_DEFAULT_DEVICE
+
+//mouse  flag
+0X00 WRITE_REQ_ENABLE_FLAG
+0X01 LL_START_ENC_FLAG
+0X02 LL_PAIRING_SUCCESS_FLAG
+
+
+//mouse_function_flag
+0X04 MOUSE_FLAG_LEN
+//1byte
+0X00 MOUSE_SELECT_DEVICE_FLAG
+0X01 MOUSE_CPI_FLAG
+0X02 MOUSE_BT_CANNEL_RECONN_FLAG
+0X03 MOSUE_24G_PAIRING_FLAG
+0X04 MOUSE_LOW_VOLTAGE_FLAG
+0X05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0X06 MOUSE_LONG_BT_BUTTON_FLAG
+0X07 MOUSE_STORE_EEPROM_FLAG
+0x08 MOUSE_STATUE_UP_FLAG
+0X09 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+
+
+//3byte
+0X10 MOUSE_ENABLE_USB
+0X11 MOUSE_ENABLE_24G
+0X12 MOUSE_ENABLE_SPI2
+0X13 MOUSE_ENABLE_FLASH
+0X14 MOUSE_ENABLE_EEPROM
+0X15 MOUSE_ENABLE_STATUE_UP_THREE_LED
+0X16 MOUSE_ENABLE_STATUE_UP
+0X17 MOUSE_ENABLE_DPI_LED_BLINK
+//4byte
+0X18 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+0X19 MOUSE_ENABLE_2K_EEPROM
+0X1A MOUSE_ENABLE_ADC
+0X1B MOUSE_ENABLE_INIT_DELAY
+0X1C MOUSE_ENABLE_DISCOVERY_SENSOR_LED
+0X1D MOUSE_ENABLE_AUTO_24G_PARING
+0X1E MOUSE_ENABLE_WAKEUP_FROM_POWER
+0X1F MOUSE_ENABLE_GPIO_CONTROL_ADC_SENSOR
+
+
+
+//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
+
+
+//mem_config_function_enable
+0 ENABLE_BT_DISCOVERY_BY_GPIO_LED
+1 ENABLE_MODE_LED
+2 ENABLE_LOW_VOLTAGE_LED
+3 ENABLE_DEVICE_LED
+4 ENABLE_BT_BUTTON
+5 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON
+6 ENABLE_SELECT_DEVICE_BY_SWITCH
+7 ENABLE_SENSOR_MOTION_PIN
+
+0xFF GPIO_DISABLE
+
+
+//DPI button state 
+0x00 DPI_BUTTON_STATE_DOWN
+0x01 DPI_BUTTON_STATE_UP
+
+
+//eeprom address offect
+0X00 MOUSE_INFO_EEPROM_OFFECT
+0X5A MOUSE_DPI_EEPROM_OFFECT	//1byte
+0X5B MOUSE_G24_ADDR_EEPROM_OFFECT	//4bytes
+0x5F MOUSE_USER_DATA_OFFECT
+0X5F MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET	//2bytes
+0X61 MOUSE_DEVICE_MODE_EEPROM_OFFSET	//1byte	
+0X62 MOUSE_EEPROM_MODULE_INIT_FLAG		//eeprom_module_init_flag 2bytes
+0X64 MOUSE_FAST_CONN_FLAG_OFFSET	//1byte
+0X65 MOUSE_LATEST_MODE_OFFSET	//1byte
+
+// Sensor id number
+0x30 P32XX_ID1
+0x31 P3065_ID1
+0x3E P3610_ID1
+0x02 P3212_ID2
+0xD1 P3205_TJ3T_ID2
+0XD2 P3204_TJ3L_ID2
+0x54 PKA8_ID2
+0x70 P3065_XY_ID2
+0x5a MA8650_ID2
+
+
+//Sensor type
+0X00 P3205
+0X01 P3065
+0X02 KA8
+0X03 P3204
+0X04 P3212
+0X05 P3610
+0X06 P3065_XY
+0X07 MA8650
+0x07 MX8650
+
+
+//p3610 smart enable flag
+0X00 P3610_SMART_ENABLE
+0X01 P3610_SMART_DISABLE
+
+
+//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
+
+
+0x06 MOUSE_FPGA_RF_WORK_DEBUG_GPIO
+0x02 MOUSE_FPGA_DEBUG_GPIO
+
+)
+
+(
+0x01 ADV_FLAG_LIMITED_DISCOVERABLE
+0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
+)
+
+(
+4 TEST_GPIO
+)
+
+(
+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
+)
+
+(
+0xb9 FLASH_COMMAND_DEEP_POWER_DOWN
+0xab FLASH_COMMAND_RELEASE_DEEP_POWER_DOWN
+)
+
+(
+0 MULTI_LED_ON
+1 MULTI_LED_BLINK
+)
+
+(
+0 DIS_BUTTON_UP
+1 DIS_BT_BUTTON
+2 DIS_COMM_BUTTON
+)
+
+(
+0x017700 G24_LONG_SLEEP_STEP1	//8ms
+0x249f00 G24_LONG_SLEEP_STEP2	//200ms
+0x604800 G24_LONG_SLEEP_STEP3	//500ms
+)
+
+(
+8 LOW_VOLTAGE_LED_COUNT
+)
+
+(
+0x0708 BLE_DIRECT_ADV_TIMEOUT
+0x0a BLE_POWERON_RECONN_TIMER
+)
+
Index: DpiSwitch/format/app_remote_car.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_remote_car.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_remote_car.format	(working copy)
@@ -0,0 +1,150 @@
+
+omemalloc(
+1 mem_remote_car_hard_soft_switch
+
+1 mem_remote_car_queue_each_size
+1 mem_remote_car_queue_length
+
+1 mem_remote_car_queue_curr_num
+1 mem_remote_car_queue_read_ptr
+1 mem_remote_car_queue_write_ptr
+90 mem_remote_car_queue_ele
+
+1 mem_remote_style_led_type
+1 mem_remote_style_blink_count
+1 mem_remote_style_struct_led_gpio
+2 mem_remote_style_on_time
+2 mem_remote_style_off_time
+2 mem_remote_style_cb_ledon
+2 mem_remote_style_cb_ledoff
+
+
+1 mem_remote_car_led_num
+8 mem_remote_car_led_map
+
+0 mem_remote_car_keyscan
+1 mem_remote_car_key_num
+2 mem_cb_remote_car_keyscan
+
+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
+
+
+//rocker
+1 mem_rocker_negative_flag
+1 mem_rocker_work_status
+2 mem_current_vdd_value_default_mid_x
+2 mem_current_vdd_value_default_mid_y
+2 mem_current_vdd_value_default_mid_temp
+2 mem_current_vdd_default_range
+2 mem_rocker_last_status
+0 mem_rocker_status
+1 mem_rocker_x_status
+1 mem_rocker_y_status
+
+0 mem_remote_car_config_param
+1 mem_remote_car_config_setting_flag
+1 mem_remote_car_config_key_map
+1 mem_remote_car_config_layout
+1 mem_remote_car_config_connect_led_gpio
+1 mem_remote_car_config_check_way
+1 mem_remote_car_config_soft_switch_enable
+1 mem_remote_car_config_soft_switch_gpio
+1 mem_remote_car_config_timeout_shutdown_enable
+
+0 mem_remote_car_24g_motor_packet
+1 mem_remote_car_24g_motor_packet_lenght
+2 mem_remote_car_24g_motor_send_packet_head
+1 mem_remote_car_24g_motor_send_cmd
+2 mem_remote_car_24g_motor_send_length
+0 mem_remote_car_24g_motor_send_payload
+2 mem_remote_car_24g_motor1_payload
+2 mem_remote_car_24g_motor2_payload
+2 mem_remote_car_24g_motor3_payload
+1 mem_remote_car_24g_motor_send_checksum
+
+0 mem_remote_car_24g_fire_packet
+1 mem_remote_car_24g_fire_packet_lenght
+2 mem_remote_car_24g_fire_send_packet_head
+1 mem_remote_car_24g_fire_send_cmd
+2 mem_remote_car_24g_fire_send_length
+2 mem_remote_car_24g_fire_send_payload
+1 mem_remote_car_24g_fire_send_checksum
+
+15 mem_remote_car_24g_tx_temp
+
+2 mem_remote_car_no_data_timeout
+2 mem_remote_car_no_data_timer
+
+0 mem_remote_car_soft_power
+1 mem_remote_car_power_state
+1 mem_remote_car_power_timer
+1 mem_remote_car_power_off_timeout
+1 mem_remote_car_power_starting_timeout
+2 mem_remote_car_power_off_cb
+2 mem_remote_car_power_starting_cb
+2 mem_remote_car_power_standby_cb
+
+1 mem_remote_key_status
+1 mem_remote_car_24g_status
+
+1 mem_remote_car_24g_auto_work_step
+1 mem_remote_car_24g_pair_success_flag
+1 mem_remote_car_24g_enter_lpm_enable
+1 mem_remote_car_empty_packet
+400 mem_24g_RC_head_ptr
+)
+
+
+(
+// eeprom config
+0xb0 REMOTE_PARAM_EEPROM_CONFIG_ADDR
+
+)
+
+
+(
+0x00 CONTROL_F_B_MOTOR
+0x02 CONTROL_L_R_MOTOR
+)
+
+(
+0x00 KEY_MAP_TEN
+0x01 KEY_MAP_LR
+)
+
+(
+0x00 CONTROL_F_B_TEN
+0x02 CONTROL_L_R_TEN
+0x03 CONTROL_L_R_LR
+)
+
+(
+0 KEY_CHECK
+1 ROCKER_CHECK
+)
+
+(
+1 MOTOR_POSITIVE
+2 MOTOR_NEGATIVE
+)
+
+(
+0 ROCKER_MIDDLE_KEY
+1 ROCKER_POSITIVE_KEY
+2 ROCKER_NEGATIVE_KEY
+)
+
+
Index: DpiSwitch/format/app_shutter.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_shutter.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_shutter.format	(working copy)
@@ -0,0 +1,252 @@
+
+
+omemalloc(
+
+////////////////////////////////////
+//shutter common config
+1 mem_shutter_bluetooth_type
+////////////////////////////////////
+
+//shutter config name by GPIO
+1 mem_shutter_config_enable
+2 mem_shutter_config_otp_base_address
+1 mem_shutter_config_size
+1 mem_shutter_config_select_gpio1
+1 mem_shutter_config_select_gpio2
+1 mem_shutter_config_select_gpio3
+
+2 mem_shutter_config_user_otp_address
+2 mem_shutter_config_eeprom_offset_addr
+
+////////
+2 mem_shutter_config_eeprom_start_flag
+1 mem_shutter_config_user_size
+///////
+1 mem_shutter_config_label
+2 mem_shutter_config_otp_addr
+///////////////////////////////////
+
+////////////////////////////////////
+//classic shutter config
+1 mem_classic_shutter_cable_unplug_conut
+1 mem_classic_shutter_hid_disconn_count
+2 mem_classic_shutter_random_mac_offset_addr
+////////////////////////////////////
+
+////////////////////////////////////
+//ble shutter config
+1 mem_ble_shutter_enable_notify
+2 mem_ble_shutter_reconn_dav_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_classic_shutter_discovery_timeout
+2 mem_classic_shutter_connect_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
+1 mem_shutter_key_conf2
+1 mem_shutter_key_conf3
+1 mem_shutter_key_conf4
+1 mem_shutter_key_conf5
+1 mem_shutter_key_conf6
+1 mem_shutter_key_conf7
+
+
+5 mem_key0_press
+5 mem_key1_press
+5 mem_key2_press
+5 mem_key3_press
+5 mem_key4_press
+5 mem_key5_press
+5 mem_key6_press
+5 mem_key7_press
+
+5 mem_key0_release	
+5 mem_key1_release
+5 mem_key2_release
+5 mem_key3_release
+5 mem_key4_release
+5 mem_key5_release
+5 mem_key6_release
+5 mem_key7_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
+
+5 mem_classic_data_buffer
+
+5 mem_classic_data_buffer1
+5 mem_classic_data_buffer2
+5 mem_classic_data_buffer3
+5 mem_classic_data_buffer4
+5 mem_classic_data_buffer5
+5 mem_classic_data_buffer6
+5 mem_classic_data_buffer7
+5 mem_classic_data_buffer8
+50 mem_classic_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
+
+)
+
+
+
+
+(
+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
+382		BLE_GATT_LIST_SIZE
+487		BT_SDP_LIST_SIZE
+40		BLE_KEY_VALUE_LIST_SIZE
+40		BT_KEY_VALUE_LIST_SIZE
+0x913A	BLE_SHUTTER_GATT_LIST
+0x92B8	CLASSIC_SHUTTER_SDP_LIST
+0x949F	BLE_SHUTTER_KEY_VALUE_LIST
+0x94C7	CLASSIC_SHUTTER_KEY_VALUE_LIST
+)
+
+
+(//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
+
+)
+
Index: DpiSwitch/format/app_usb.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_usb.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/app_usb.format	(working copy)
@@ -0,0 +1,203 @@
+
+omemalloc(
+
+)
+
+//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
+)
+
+(
+4 USB_STATUS_SETUP
+6 USB_STATUS_NAK
+)
+
+(
+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
+0x01 MAC_BOOT_MODE
+0x02 R_KEY
+0x03 LR_KEY
+)
+
+(
+0x8ffa	HID_KBDATA_ADDR
+0x903a	HID_MSDATA_ADDR
+0x90fe	HID_CONFDATA_ADDR
+)
+
+
+(
+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
+)
+
+
+(
+0x1A0 AT_baud_115200
+0x4e2 AT_baud_38400
+0x1388 AT_baud_9600
+)
+
+(
+0x4e00 mem_module_rx_buf//0x400
+0x4fff mem_module_rx_buf_end
+0x1c00 mem_module_tx_buf
+0x1fff mem_module_tx_buf_end
+)
+
+(
+0x01 BIND_ACKPAYLOAD
+0x02 USER_ACKPAYLOAD
+
+0xcf CMD_OTA
+0xc0 CMD_OTA_START
+0xc1 CMD_OTA_DATA
+0xc2 CMD_OTA_EXIT
+0x55 OTA_STA_SUCCESS
+0xaa OTA_STA_FAIL
+)
+
+(
+0 TIMER_NAK
+640 TIMER_NAK_DELAY
+15 TIMER_WAKEUP
+5000 TIMER_WAKEUP_DELAY
+)
+
Index: DpiSwitch/format/bt.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/bt.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/bt.format	(working copy)
@@ -0,0 +1,1027 @@
+
+	width = 32
+	const length = 12000
+
+	/* ========= memory ============== */
+memalloc(
+/* 00-0f most frequently used area  */
+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_inquiryscan_waitcnt
+1 mem_inquiryscan_rcvcnt
+1 mem_pagescan_waitcnt
+1 mem_pagescan_rcvcnt
+1 mem_pagescan_rcvfhscnt
+1 mem_slave_rcvcnt
+1 mem_page_transmit
+1 mem_page_rcv
+1 mem_page_rcv_fhs
+1 mem_master_rcvcnt
+
+/* 10-1f debug area */
+1 mem_fhs_wait_counter
+1 mem_newconnto_counter
+1 mem_inquiry_transmit
+1 mem_inquiry_rcv
+1 mem_fw_ver
+1 mem_current_context
+1 mem_le_ch_mapped
+1 mem_last_freq
+1 mem_rssi
+1 mem_rx_type
+2 mem_rx_hec_err
+2 mem_rx_crc_err
+2 mem_context_ptr
+8 mem_display
+8 mem_bcd
+
+		/* context swappable area */
+1 mem_state
+1 mem_mode
+2 mem_tsniff
+4 mem_sniff_anchor
+6 mem_clk_offset
+2 mem_rx_window
+3 mem_plap
+1 mem_puap
+2 mem_pnap
+1 mem_conn_handle
+1 mem_arq
+1 mem_lmp_to_send
+1 mem_lmi_opcode
+1 mem_lmo_reason
+1 mem_op
+1 mem_state_map
+4 mem_supervision_timer
+2 mem_supervision_to
+1 mem_name_offset
+1 mem_key_size
+1 mem_conn_sm
+12 mem_aco
+16 mem_kc
+1 mem_conn_timer
+1 mem_sniff_attempt
+1 mem_sniff_timeout
+2 mem_dsniff
+1 mem_amaddr
+1 mem_lmo_opcode1
+1 mem_lmi_opcode1
+1 mem_lmo_reason1
+1 mem_lmo_tid1
+1 mem_lmo_opcode2
+1 mem_lmi_opcode2
+1 mem_lmo_reason2
+1 mem_lmo_tid2
+
+3 mem_hci_version
+2 mem_acl_pktlen
+1 mem_sco_pktlen
+2 mem_acl_pktcnt
+2 mem_sco_pktcnt
+
+1 mem_current_sniff_attempt
+1 mem_current_sniff_timeout
+1 mem_sniff_timeout_temp
+1 mem_nfreq_index_inq
+1 mem_nfreq_index_page
+1 mem_ninqy_index
+1 mem_fhs_misc
+
+
+
+/* lpo related */
+4 mem_subsniff_instant
+1 mem_subsniff_rate
+2 mem_subsniff_tcmax
+1 mem_subsniff_tsniff
+1 mem_lpm_adjust
+6 mem_sync_clke
+1 mem_lpm_current_mult
+4 mem_gpio_wakeup_low
+4 mem_gpio_wakeup_high
+	
+
+/* sco & esco */
+1 mem_air_mode
+1 mem_sco_asso_handle
+2 mem_sco_handle
+1 mem_esco_desco
+1 mem_esco_type
+1 mem_neogotiation_state
+1 mem_saved_amaddr
+1 mem_esco_arq
+1 mem_esco_saved_arq
+30 mem_sco_obuf
+30 mem_sco_ibuf
+1 mem_sco_poll
+
+
+
+//page
+1 mem_npage_index
+1 mem_page_mode
+4 mem_page_clk
+
+
+/* test related */
+2 mem_tst_pktcnt_sync
+2 mem_tst_pktcnt_hec
+2 mem_tst_pktcnt_crc
+2 mem_tst_pktcnt_dmh
+3 mem_tmp_buffer_head
+80 mem_tmp_buffer
+
+
+1 mem_tester_emulate
+0 mem_temp_payload
+1 test_mode_scenario
+1 test_mode_hopping_mode
+1 test_mode_tx_freq
+1 test_mode_rx_freq
+1 test_mode_power_mode
+1 test_mode_poll_period
+1 test_mode_packet_type
+2 test_mode_data_length
+1 mem_test_mode_old_debug_config
+1 mem_tester_cnt
+
+
+/*temp mem*/
+1 mem_temp_am_addr
+1 mem_temp_arq
+
+//
+2 mem_len
+4 mem_clkn_bt
+4 mem_clke_bt
+4 mem_dpll_clkn
+1 mem_connection_options
+
+1 mem_nameres_cnt
+2 mem_txptr
+2 mem_slot_offset
+
+//extm
+1 extm_fhs_misc
+1 extm_newconn_am_addr
+3 extm_class
+3 extm_lap
+1 extm_uap
+3 extm_nap
+
+
+//debug
+1 mem_debug_config
+1 mem_lch_code
+1 mem_fhs_am_addr
+2 mem_dpll_error
+1 mem_select_list_item
+0 mem_temp_reconn_record
+1 mem_record_bt_mode
+6 mem_temp_lap
+2 mem_list_item_ptr
+
+100 mem_eir
+)
+
+
+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  */
+80 mem_context
+1 mem_current_amaddr
+1 mem_lpm_mode
+1 mem_device_option
+1 mem_scan_mode
+4 mem_last_clkn
+
+	/* parameters */
+8 mem_features
+3 mem_lap
+1 mem_uap
+2 mem_nap
+1 mem_npage
+3 mem_glap
+3 mem_class
+2 mem_iscan_window
+2 mem_iscan_interval
+2 mem_pscan_window
+2 mem_pscan_interval
+2 mem_page_interval
+2 mem_page_window
+2 mem_page_to
+2 mem_inq_window
+1 mem_fcomp_mul
+1 mem_fcomp_div
+2 mem_rx_window_init
+2 mem_rx_window_sniff
+2 mem_rf_init_ptr
+
+	/* connection related */
+1 mem_last_type
+1 mem_last_type_esco
+1 mem_last_type_saved
+2 mem_retransmission_cnt
+4 mem_next_btclk
+
+1 mem_rf_rccal
+1 mem_handle_num
+1 mem_max_slot
+1 mem_eir_enable
+
+/* AFH related */
+4 mem_afh_instant
+2 mem_afh_error_total
+1 mem_afh_cfg
+1 mem_afh_new_mod
+5 mem_afh_map_lo
+5 mem_afh_map_hi
+1 mem_afh_used
+2 mem_afh_index
+11 mem_afh_map_new
+80 mem_afh_map
+4 mem_afh_timer
+10 mem_afh_classify_channel_map
+
+
+	/* 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_esco_addr
+1 mem_sniff_unint_lost
+1 mem_ptt
+4 mem_sleep_counter   //should be 0x41fc in REVC
+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
+
+/* 8139-813b lpm_ctrl[31:12] */
+3 mem_lpm_config				
+
+1 mem_lpm_xtalcnt
+1 mem_lpm_buckcnt
+1 mem_lpm_ldocnt
+1 mem_lpm_isogate
+1 mem_lpm_isogate_final
+16 mem_saved_gpio	// should be 0x421e in REVC
+3 mem_saved_gsel
+8 mem_saved_mark
+1 mem_saved_spidctrl
+2 mem_patch_ptr
+2 mem_patch_len
+
+32 mem_timers
+
+/*LINK KEY*/
+1 mem_link_key_exists
+16 mem_link_key
+
+
+/* HCI */
+1 mem_hci_cmd
+1 mem_hci_conn_handle
+3 mem_hci_plap
+1 mem_hci_puap
+2 mem_hci_pnap
+
+/*Peripherals*/
+1 mem_uartd_rxitems_got_data
+1 mem_uartd_rxitems_threshold
+2 mem_uartd_rx_timeout
+
+1 mem_loadcode_times
+
+1 mem_tx_lch
+2 mem_tx_len
+
+1 mem_tx_power
+
+1 mem_context_number
+
+1 mem_250k_freq_enable
+
+ifdef DEBUG_RF_INIT
+1 mem_rf_init_data
+endif
+)
+
+(//bluetooth tx power
+0 TX_POWER_0DB
+1 TX_POWER_3DB
+2 TX_POWER_5DB
+3 TX_POWER_f3DB
+4 TX_POWER_f5DB
+
+0x20 TX_POWER_PAIR
+)
+
+
+ifdef RAM_VERSION
+0x4b17 rom_lpm_sleep
+0x4b1d rom_lpm_enter_sleep
+0x4b16 rom_lpm_write_ctrl
+0x6b1a rom_otpd_read_data
+0x6ada rom_otp_write
+else
+0x3b17 rom_lpm_sleep
+0x59e0 rom_save_ucode
+
+0x4219 rom_mem_lpm_xtalcnt
+0x423b rom_mem_patch_ptr
+0x423d rom_mem_patch_len
+
+0x5b1a rom_otpd_read_data
+0x5ada rom_otp_write
+endif
+	/* 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 */
+0x18 coffset_lmp_to_send
+0x1b coffset_op
+0x1c coffset_state_map
+	/* le only */
+0x18 coffset_le_ch
+0x19 coffset_le_hop
+0x1a coffset_le_event_cnt
+
+80 context_size
+1 context_num
+)
+
+(
+0 lpm_flag_wake
+1 lpm_flag_loadcode
+)
+
+/* ========= parameters ============== */
+(
+0x0050 param_newconn_arq
+0x0007 param_esco_addr
+0x0010 param_conn_handle
+0x01f0 param_conn_handle_comp
+0x0020 param_newconnto
+0x0008 param_pagerespto
+0x0a00 param_snooze_setup_orig
+0x5353 param_snooze_ahead_orig
+0x00ff param_ninquiry
+0x2000 param_page_to
+0x0005 param_max_slot
+0x0010 param_sco_poll
+
+/* 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
+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
+endif
+
+110 param_lpm_fix
+10 param_lpo_extra
+200 param_lpm_adjmax
+
+ifdef SIM
+20 param_hibernate_clks
+3 param_chgpump_delay
+else
+-1 param_hibernate_clks
+3000 param_chgpump_delay
+endif
+
+3 param_featrue_ssp
+0x0101 param_lmpext_ssp_enable
+339 param_acl_pktlen
+30   param_sco_pktlen
+1     param_acl_pktcnt		/*buffer acl pkt cnt*/
+7     param_sco_pktcnt
+
+
+0x8fffff param_features0
+0x9d83fe param_features1  // not support afh
+0x8359     param_features2
+0x000033 param_unap
+0x001177 param_lap
+0x9e8b33 param_glap
+0x002540 param_class//0x180208 //0x002580//402500//240404
+0x12e904 param_hci_version
+0x000a04 param_lmp_version//0x0a04
+0x000a06 param_lmp_version0
+0x12e9 param_lmp_subversion
+0x0012 param_tisw
+0x0012 param_tpsw
+0x1000 param_tisi
+0x0800 param_tpsi
+0x0020 param_page_window
+0x0020 param_inq_window
+0x1c80 param_supervision_to
+39 param_fcomp_div
+2 param_fcomp_mul
+6     param_name_len
+0x535442 param_name
+0x344950 param_name1
+
+
+)
+
+/* ======= packet types  ========= */
+(
+0x0      type_null    
+0x1      type_poll   
+0x2      type_fhs    
+0x3      type_dm1    
+0x4      type_dh1    
+0x5      type_hv1    
+0x6      type_hv2    
+0x7      type_hv3    
+0x8      type_3dh1     
+0x9      type_aux1   
+0xa      type_dm3    
+0xb      type_dh3    
+0xe      type_dm5    
+0xf      type_dh5    
+0x10     type_id
+0x11     type_shutdown
+0x13     type_lmp
+)
+
+/* ========== 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 */
+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       slave2         /* 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 */
+54       le		/* bluetooth 4.0 LE enable */
+55       aes_ready	/* set when aes is ok */
+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        contru  /* contr 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       contwu   /* 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       interrupts    /* 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 */
+21       ctrl_reg     /* 2023 and after */
+22       jtag_addr    /* load jtag address field, lsb */
+23       freq_index   /* 7 bit read only */
+24       jtag_data    /* wdata to and rdata from jtag */
+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
+/* wire even_train    = freq_mode[4];    // odd even train                            */
+/* wire conn_mode     = 3;    // connection                                           */
+/* wire iqpgscan_mode = 2;    // slave in inquiry and page (not response)             */
+/* wire iqpgresp_mode = 1;    // slave in inquriy and page (response only)            */
+/* wire inqypage_mode = 0;    // master in inquiry and page(response or not response) */
+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 */
+43       host_mode         /* generic stuff for kick starts */
+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		
+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 ============= *//*0 - 47 */
+(
+
+0  mark_fhs_eir  
+1  mark_rxbuf_inuse
+2  mark_tx_l2cap
+3  mark_switch_initiated
+4  mark_accept_switch
+5  mark_loopback
+7  mark_esco
+8  mark_esco_rxok
+9  mark_context
+10 mark_am_addr_broadcast
+11 mark_fhs_already_good
+12 mark_page_trainb
+13 mark_lpm_mult_enable
+14 mark_usb_flag
+15 mark_old_packet
+16 mark_longpacket
+17 mark_testmode
+18 mark_ar2
+19 mark_h5tx_rp
+20 mark_h5tx_crc	
+21 mark_h5tx_retransmit
+22 mark_h5rx_pstart
+23 mark_h5_sync
+24 mark_h5_reinit
+28 mark_inquiry_on
+29 mark_inquiry_state
+30 mark_inquiry_trainb
+31 mark_periodical_diac
+32 mark_all_diac
+33 mark_slave_in_rand_accepted
+34 mark_reconn_recieve_switch
+35 mark_isstr
+36 mark_loadcode
+37 mark_ext_patch
+38 mark_24g
+39 mark_24g_conext
+40 mark_eeprom_size
+// REVAB:max 35, REVC:max 63
+41 mark_ble_tx_md
+42 mark_ble_rx_md
+43 mark_otp_encrypt
+44 mark_first_packet
+45 mark_role_switch_receive_fhs
+)
+
+(
+1 reload_type_otp
+2 reload_type_spi
+3 reload_type_iic
+)
+
+
+/* ============== soft timers ============== */
+(
+0 le_adv_interval_timer
+1 inquiry_length_timer
+2 le_scan_interval_timer
+3 page_length_timer
+4 iscan_interval_timer
+5 pscan_interval_timer
+6 switch_wait_timer
+7 enpt_delay_timer
+8 page_interval_timer
+9 key_scan_timer
+10 smp_pairing_timer
+11  ui_led_blink   //led timer չ
+12  ui_led_blink1
+13 ui_led_blink2
+ 
+)
+
+(
+1 hci_cmd_inquiry
+2 hci_cmd_inquiry_cancel
+3 hci_cmd_remote_name_req
+4 hci_cmd_remote_feature_req
+5 hci_cmd_create_conn
+6 hci_cmd_disconn
+7 hci_cmd_accept_conn
+8 hci_cmd_reject_conn
+9 hci_cmd_pair
+10 hci_cmd_nopair
+11 hci_cmd_linkkey
+12 hci_cmd_nokey
+13 hci_cmd_auth
+14 hci_cmd_stopencrypt
+15 hci_cmd_startencrypt
+16 hci_cmd_setup_sco
+17 hci_cmd_disconn_sco
+18 hci_cmd_in_sniff
+19 hci_cmd_exit_sniff
+20 hci_cmd_remote_version_req
+21 hci_cmd_remote_ext_features_req
+22 hci_cmd_io_cap
+23 hci_cmd_role_discovery
+24 hci_cmd_role_switch
+25 hci_cmd_accept_with_switch
+26 hci_cmd_detach
+27 hci_cmd_le_create_conn
+28 hci_cmd_accept_sco_conn
+80 hci_cmd_wait_remote_feature
+81 hci_cmd_wait_remote_ext_feature
+82 hci_cmd_wait_remote_name
+)
+
+
+
+/* ============== debug ============= */
+(
+0 debug_neg_skew
+1 debug_bitbucket
+2 debug_dont_clear_got_tx
+3 debug_scatter_enabled
+4 debug_tx_fixed_freq
+5 debug_rx_fixed_freq
+6 debug_tx_pattern
+)
+
+/* ============== tester_emulator ============= */
+(
+0 tester_fixed_flow
+1 tester_fixed_flow_polarity
+2 tester_change
+3 tester_exit
+4 tester_pattern_test
+5 tester_whitening_change
+6 tester_fixed_freq
+7 tester_no_whitening
+)
+
+/* ============== mode ==========*/
+(
+0 mode_le
+1 mode_master
+2 afh_enable
+3 afh_change
+4 send_sco_when_slave
+5 first_seqnx
+)
+
+/* ============== state_map ==========*/
+(
+0 smap_lmptidinit
+1 smap_lmptid
+2 smap_encryption
+3 smap_name_res
+4 smap_name_req
+5 smap_edr
+6 smap_rxlmp
+7 smap_rxl2cap
+)
+(
+0 state_inconn
+1 state_insniff
+2 state_insco 
+3 state_inpage
+4 state_conn_comp
+5 state_init_seq
+6 state_combkey
+7 state_linkkey
+)
+(
+0 op_send_sres
+1 op_auth_req
+2 op_inrand_req
+3 op_disconn
+4 op_stop_enc
+5 op_start_enc
+6 op_txl2cap
+7 op_pkt_comp
+)
+
+
+/* ============== arq [3] ================ */
+(
+0 flow
+1 arqn
+2 seqn
+3 wack
+4 flowx              /* out */  /* not really in memory */
+5 arqnx              /* out */
+6 seqnx              /* out */
+7 bcast1             /* first broadcast received */
+)
+
+/* arq          {flow,arqn,seqn}, read/write */
+/* [0] flow r/w  acl full status of the other, store during rx, checked during tx */
+/* [1] arqn r/w  ack of the other during rx (ack tx fifo),                        */
+/* [2] seqn r/w  seqn of the other, check during rx                               */ 
+/* arqx         {flowx,arqnx,seqnx} */
+/* [0] flowx r/o flow back to the other, 1 alow send, 0 not to send, read only tx */
+/* [1] arqnx r/w ack to the other, set by rx, send back on tx                     */
+/* [2] seqnx r/w toggled by arqn, to be send during tx                            */ 
+
+(
+0 llid0
+1 llid1
+2 nesn
+3 sn
+4 md
+5 wak
+)
+
+/* AFH flags */
+(
+0 AFH_CFG_ON
+1 AFH_CFG_TIMER
+2 send_lmp_set_afh
+3 AFH_CFG_REPORT_MODE
+4 AFH_CFG_MASTER_SENT_REQ
+)
+
+/* LLID CODE */
+(	
+1 LLID_L2CAP_CONT
+2 LLID_L2CAP_START
+3 LLID_LMP
+)
+
+/* ============== master_state ==========*/
+(
+0  master_in_idle
+1  master_in_inquiry
+2  master_in_page
+10 master_in_becoming_slave
+15 master_in_conn
+)
+(
+0 newrev_feature_bettx
+1 newrev_feature_betplltx
+2 newrev_feature_skip_retransmit
+3 newrev_feature_init_radio_after_sleep
+4 newrev_feature_no_lpolog
+)
+/*************mem_pincode_state****************/
+(
+0 pincode_state_ilde
+1 pincode_state_wait_pincode
+2 pincode_state_pincode_ready
+)
+
+
+// lpm_write
+(
+1 lpmreg_sel_ctrl
+2 lpmreg_sel_ctrl2
+4 lpmreg_sel_gpiolow
+8 lpmreg_sel_gpiohigh
+16 lpmreg_sel_counter
+)
+
+//scan_mode
+(
+0 inq_scan_mode
+1 page_scan_mode
+2 page_inq_enable
+)
+//mem_neogotiation_state
+(
+ 0 default_neogotiation_state
+ 1 prarm_neogotiation
+)
+
+//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
+10 wake_lock_lmp_tx
+11 wake_lock_lmp_rx
+12 wake_lock_l2cap_tx
+13 wake_lock_l2cap_rx
+14 wake_lock_ipc_c512bt
+15 wake_lock_ipc_bt2c51
+
+)
+
+(
+0 bt_disabled
+1 ble_disabled
+2 module_disable
+
+)
+
+(
+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
+)
+
+
+//sniff UART_TX UART_RX
+(
+6 UART_WAKEUP_TX
+7 UART_WAKEUP_RX
+)
+
+
Index: DpiSwitch/format/command.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/command.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/command.format	(working copy)
@@ -0,0 +1,1384 @@
+
+/* 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
+  ! 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
+  ! 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
+  ! 0x0c store          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c hstore          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istore        /* write to memory, data from pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg            /* hold address */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0d fetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d hfetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d crc         /* read from memory, count from loopcnt, put crc result into pdata */
+  % addr
+  [5] opcode
+  [6] 0
+  [1] 0
+  [1] 0
+  [4] 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] reg             /* hold address */
+  [1] 0
+  [1] 0
+  [4] 0
+  [15] 0
+end
+
+
+format
+  ! 0x1d ifetch         /* read from memory, data into pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0c storet          /* write to memory, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c hstoret          /* write to corereg, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istoret        /* write to memory, data from temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg            /* hold address */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0d fetcht          /* read from memory, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d hfetcht          /* read from corereg, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetcht         /* read from memory, data into temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] 0
+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 mult                  /* immediate mult regr */  /* the product will be ready 17 clks later */
+  % immediate                                   /* use "product" instruction to get the result */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 16                   /* generate diven pulse to div */
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 imult           /* pdata mult regr */  /* the product will be ready after 15 nops */
+  % reg                                         /* use product opcode to get the result */
+  [5] opcode
+  [6] reg
+  [6] 16                   /* generate mult pulse to multiplier */
+  [6] null
+  [9] 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
+  ! 3 product              /* harvest mult product */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 17
+  [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
+
Index: DpiSwitch/format/g24.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/g24.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/g24.format	(working copy)
@@ -0,0 +1,492 @@
+
+cmemalloc 0 (
+34 mem_24g_rxbuf
+32 mem_24g_txbuf
+34 mem_24g_txpayload
+32 mem_24g_rxpayload
+1 mem_24g_rxdata_length
+1 mem_24g_pid
+1 mem_24g_datalen
+1 mem_24g_data_type
+1 mem_24g_txlen
+2 mem_24g_rx_window
+1 mem_24g_ensure
+2 mem_24g_txfail_cnt
+1 mem_24g_get_ack_fail
+1 mem_24g_retry
+1 mem_24g_ch
+1 mem_24g_current_ch_number
+4 mem_24g_paring_addr
+1 mem_24g_pairing_sm
+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
+4 mem_24g_addr
+1 mem_24g_abort_pac
+2 mem_24g_check_dongle_times
+
+8 mem_24g_enter_hibernate
+4 mem_24g_device_addr
+1 mem_24g_pac_index
+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_max_retry
+1 mem_24g_mode
+
+34 mem_24g_rxdata_temp
+4 mem_24g_rx_addr
+1 mem_dongle_mode_init
+1 mem_dongle_work_mode
+1 mem_dongle_ms_bind_step
+1 mem_dongle_kb_bind_step
+1 mem_dongle_bind_device_status
+8 mem_24g_bind_payload
+1 mem_24g_abort_packet
+1 mem_24g_rf_laststa
+4 mem_24g_hop_btclk
+1 mem_24g_hop_interval
+1 mem_24g_mode_switch
+1 mem_24g_ackpayload_enable
+1 mem_24g_hop_packet
+1 mem_24g_pair_mode
+1 mem_24g_nodata_timer_enable
+1 mem_24g_time_slice
+8 mem_24g_kb_data_sta_data
+8 mem_24g_kb_data_last_data
+3 mem_24g_kb_multikey_sta_data
+3 mem_24g_kb_multikey_last_data
+1 mem_24g_kb_blank_data_enable
+1 mem_24g_kb_mul_blank_data_enable
+1 mem_24g_ms_blank_data_enable
+4 mem_24g_kb_addr
+4 mem_24g_ms_addr
+
+1 mem_24g_dg_last_ch
+1 mem_24g_dg_ch_number
+1 mem_24g_dg_config_ch_once
+1 mem_24g_kb_last_ch
+1 mem_24g_kb_ch_number
+1 mem_24g_kb_config_ch_once
+1 mem_24g_ms_last_ch
+1 mem_24g_ms_ch_number
+1 mem_24g_ms_config_ch_once
+
+2 mem_24g_syncword
+1 mem_24g_syncword_crc8
+1 mem_24g_get_syncword_crc8
+2 mem_24g_ota_sta_pid
+
+1 mem_tx_power_temp
+
+1 mem_rssi_hex
+1 mem_rssi_noise_avg
+1 mem_rssi_noise_index
+1 mem_rssi_signal_index
+1 mem_rssi_noise_dg_avg
+1 mem_rssi_noise_kb_avg
+1 mem_rssi_noise_ms_avg
+1 mem_rssi_noise_dg_index
+1 mem_rssi_noise_kb_index
+1 mem_rssi_noise_ms_index
+8 mem_rssi_signal_buf
+
+1 mem_queue_ele_num
+2 mem_queue_read
+2 mem_queue_write
+0 mem_queue_start
+32 mem_data_ele0
+32 mem_data_ele1
+32 mem_data_ele2
+0 mem_queue_end
+2 mem_queue_temp
+
+2 mem_cb_24g_data
+1 mem_24g_hop_fastly_cnt
+1 mem_24g_hop_pac_retry
+1 mem_24g_rf_hop_ch
+1 mem_24g_rf_last_sta
+1 mem_24g_rf_work_stage
+1 mem_24g_sync_cnt
+1 mem_power_ctrl_pac_succ_cnt
+1 mem_rssi_avg_received
+1 mem_rssi_hex_received
+1 mem_power_ctrl_level
+
+1 mem_seqi
+1 mem_24g_auto_paring_switch
+1 mem_24g_paccnt
+1 mem_24g_transmit_by_interrupt
+2 mem_24g_transmit_by_interrupt_exit_count
+2 mem_24g_transmit_by_interrupt_exit_count_init
+4 mem_24g_allpowerful_addr
+
+1 mem_24g_stop_g24_mode
+2 mem_24g_stop_g24_mode_timeout
+1 mem_24g_pair_current_ch_num
+1 mem_24g_powerful_current_ch_num
+
+1 mem_24g_search_dongle_action
+1 mem_24g_search_dongle_count
+1 mem_24g_search_dongle_ch
+1 mem_24g_search_dongle_delay_count
+
+
+1 mem_24g_conn_sm
+)
+
+(
+//add
+0   offset_24g_rxbuf
+1   offset_24g_rxbuf_add1
+2   offset_24g_rxbuf_add2
+34  offset_24g_txbuf
+66  offset_24g_txpayload
+100 offset_24g_rxpayload
+102 offset_24g_rxpayload_add2
+132 offset_24g_rxdata_length
+133 offset_24g_pid
+134 offset_24g_datalen
+135 offset_24g_data_type
+136 offset_24g_txlen
+137 offset_24g_rx_window
+139 offset_24g_ensure
+140 offset_24g_txfail_cnt
+141 offset_24g_get_ack_fail
+142 offset_24g_tx_without_int
+143 offset_24g_retry
+144 offset_24g_ch
+145 offset_24g_current_ch_number
+146 offset_24g_paring_addr
+150 offset_24g_pairing_sm
+151 offset_24g_ch_map1
+155 offset_24g_ch_map2
+159 offset_24g_ch_map3
+163 offset_24g_ch_map4
+167 offset_24g_tx_btclk
+171 offset_24g_interval
+172 offset_24g_interval_min
+173 offset_24g_interval_max
+174 offset_24g_addr
+178 offset_24g_abort_pac
+179 offset_24g_sync_pac
+180 offset_24g_hop_pac
+181 offset_24g_check_dongle_times
+182 offset_24g_enter_hibernate
+190 offset_24g_device_addr
+194 offset_24g_pac_index
+195 offset_24g_no_ack
+196 offset_24g_sta_crc
+199 offset_24g_last_crc
+202 offset_24g_sta_pid
+203 offset_24g_last_pid
+204 offset_24g_max_retry
+205 offset_24g_mode
+206 offset_24g_rf_last_sta
+207 offset_24g_rf_hop_ch
+208 offset_24g_sync_cnt
+209 offset_24g_hop_pac_retry
+210 offset_24g_rf_work_stage
+211 offset_24g_hop_fastly_cnt
+212 offset_24g_short_sleep_timer
+216 offset_24g_cb_data
+218 offset_24g_cb_lpm_prepare
+220 offset_24g_cb_lpm_before
+222 offset_24g_cb_rxdata_type1
+224 offset_rssi_signal_index
+225 offset_rssi_signal_avg
+226 offset_rssi_signal_buf
+234 offset_rssi_noise_index
+235 offset_rssi_noise_avg
+236 offset_rssi_noise_buf
+244 offset_rssi_ctrl_threshold_down
+245 offset_rssi_noise_dg_index
+246 offset_rssi_noise_kb_index
+247 offset_rssi_noise_ms_index
+248 offset_rssi_noise_dg_avg
+249 offset_rssi_noise_kb_avg
+250 offset_rssi_noise_ms_avg
+251 offset_tx_power_temp
+252 offset_power_ctrl_packet_cnt
+253 offset_power_ctrl_ack_cnt
+254 offset_power_ctrl_level
+255 offset_power_ctrl_txpwr_level2
+//iadd
+256 offset_power_ctrl_txpwr_level1
+257 offset_power_ctrl_txpwr_level0
+258 offset_power_ctrl_threshold_up
+259 offset_power_ctrl_threshold_down
+260 offset_dongle_mode_init
+261 offset_dongle_work_mode
+262 offset_dongle_ms_bind_step
+263 offset_dongle_kb_bind_step
+264 offset_dongle_bind_device_status
+265 offset_24g_rxdata_temp
+267 offset_24g_rxdata_temp_add2
+268 offset_24g_rxdata_temp_add3
+269 offset_24g_rxdata_temp_add4
+299 offset_24g_rx_addr
+303 offset_24g_bind_payload
+304 offset_24g_bind_payload_add1
+305 offset_24g_bind_payload_add2
+309 offset_24g_rf_laststa
+310 offset_24g_hop_btclk
+314 offset_24g_hop_interval
+315 offset_24g_ackpayload_enable
+316 offset_24g_ackpayload
+348 offset_24g_mode_switch
+349 offset_24g_pair_mode
+350 offset_24g_nodata_timer_enable
+351 offset_24g_time_slice
+352 offset_24g_mouse_addr
+356 offset_24g_kb_addr
+360 offset_24g_kb_data_sta_data
+368 offset_24g_kb_data_last_data
+376 offset_24g_kb_multikey_sta_data
+379 offset_24g_kb_multikey_last_data
+382 offset_24g_kb_blank_data_enable
+383 offset_24g_kb_mul_blank_data_enable
+384 offset_24g_ms_blank_data_enable
+385 offset_24g_dg_last_ch
+386 offset_24g_dg_ch_number
+387 offset_24g_dg_config_ch_once
+388 offset_24g_kb_last_ch
+389 offset_24g_kb_ch_number
+390 offset_24g_kb_config_ch_once
+391 offset_24g_ms_last_ch
+392 offset_24g_ms_ch_number
+393 offset_24g_ms_config_ch_once
+394 offset_24g_pair_txpower
+395 offset_24g_auto_pair_switch
+)
+
+(
+3 QUEUE_ELE_COUNT
+32 QUEUE_ELE_LENGTH
+)
+
+(
+3 retry_24g
+1 NO_ACK_24G
+0 WITH_ACK_24G
+
+0 ENSURE_OFF_24G
+1 ENSURE_ON_24G
+
+0x10 ABORT_DATA
+0x40 RSSI_SENSITIVITY
+
+0x4e G24_PAIR_CH
+)
+
+(
+0 disable_24g
+1 tx_24g
+2 rx_24g
+
+0 bit_ack_24g
+)
+
+//mem_24g_interrupt
+(
+0 rx_dr
+1 rx_sync
+4 tx_ds
+5 tx_fail
+)
+
+//mem_24g_data_type
+(
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+
+(
+0 STATE_24G_STOP
+0 STATE_24G_START
+1 STATE_24G_PAIR
+2 STATE_24G_RECONN
+)
+
+
+//mem_24g_pairing_sm
+(
+0 STATE_24G_PAIRING_NULL
+1 STATE_24G_PAIRING_1
+2 STATE_24G_PAIRING_2
+3 STATE_24G_PAIRING_3
+0X11 STATE_24G_PAIRING_1_WAITING_ACK
+0X12 STATE_24G_PAIRING_2_WAITING_ACK
+0X13 STATE_24G_PAIRING_3_WAITING_ACK
+0XFF STATE_24G_PAIRING_SUCCESS
+)
+
+(
+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
+)
+
+(
+0x01 DATATYPE_MOUSE	//mouse
+0x02 DATATYPE_KEYBOARD	//keyboard
+0xAA DATATYPE_BIND		//bind step 1
+0x55 DATATYPE_CONFIG	//bind step 2
+0x22 DATATYPE_OK	//bind step 3
+
+0x01 BIND_MOUSE
+0x02 BIND_KEYBOARD
+)
+
+(
+112 G24_DONGLE_ADDR
+)
+
+(
+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
+)
+
+//user defined cmd
+(
+0xb0 COMMAND_USER_DEFINED
+)
+
+(
+0x15 PRODUCT_ID
+0 FW_VERSION0
+0 FW_VERSION1
+1 FW_VERSION2
+7 FW_VERSION3
+)
+
+
+(
+8 TIMER_NODATA
+640 TIMER_NODATA_DELAY	//200ms
+
+11 TIMER_MS_BLANK
+320 TIMER_MS_BLANK_DELAY
+
+12 TIMER_KB_MUL_BLANK
+320 TIMER_KB_MUL_BLANK_DELAY
+
+14 TIMER_KB_BLANK
+320 TIMER_KB_BLANK_DELAY
+)
+
+(
+0 KB_NORMAL_REPORT_ID
+1 MS_REPORT_ID
+3 KB_MULTIKEY_REPORT_ID
+)
+
+(
+7 RSSI_BUF_LEN_SIGNAL
+255 RSSI_BUF_LEN_NOISE
+0x50 RSSI_THRESH_NOISE
+
+0x77 RSSI_DIS_MIN_24G
+0x82 RSSI_DIS_MAX_24G
+
+0x75 RSSI_DIS_MIN_BLE
+0x80 RSSI_DIS_MAX_BLE
+)
+
+(
+//power control
+0x01 TXPWR_0DB
+0x02 TXPWR_3DB
+0x04 TXPWR_5DB
+0x10 TXPWR_f5DB
+
+124 POWER_CTRL_MAX_PACKET_CNT
+
+2 POWER_CTRL_LOSSPAC_THRESH_UP0
+0 POWER_CTRL_LOSSPAC_THRESH_DOWN0
+0x20 POWER_CTRL_RSSI_THRESH_DOWN0
+
+5 POWER_CTRL_LOSSPAC_THRESH_UP1
+0 POWER_CTRL_LOSSPAC_THRESH_DOWN1
+0x60 POWER_CTRL_RSSI_THRESH_DOWN1
+
+10 POWER_CTRL_LOSSPAC_THRESH_UP2
+0 POWER_CTRL_LOSSPAC_THRESH_DOWN2
+0x80 POWER_CTRL_RSSI_THRESH_DOWN2
+)
+
+//mem_send_data_24g_short_lpm
+(
+0 SHORT_LPM_STATE_POLLING 	
+1 SHORT_LPM_STATE_DATA
+2 SHORT_LPM_STATE_NODATA
+3 SHORT_LPM_STATE_BUTTON_WHEEL
+)
+
+(
+81000 G24_8125_INTERVAL_PARAM
+78000 G24_78125_INTERVAL_PARAM
+)
+
+(
+1 G24_TX_TIMER_INT_ENABLE
+0 G24_TX_TIMER_INT_DISABLE
+)
+
+(
+0 G24_DISCONN_STATE
+1 G24_CONN_STATE
+
+
+4 G24_CH_NUMBER
+8 G24_CH_POLL_COUNT
+0x0708 G24_DISCONN_NODATA_TIMER
+)
+
+
Index: DpiSwitch/format/hci.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/hci.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/hci.format	(working copy)
@@ -0,0 +1,570 @@
+
+
+memalloc(
+1 mem_h5rx_ackcnt
+1 mem_check_err_acl_cont
+
+1 mem_rp_packets
+2 mem_packet_type
+
+2 mem_hci_sniff_conn_handle
+2 mem_hci_sniff_max_interval
+2 mem_hci_sniff_min_interval
+2 mem_hci_sniff_attempt
+2 mem_hci_sniff_timeout
+2 mem_voice_setting
+1 mem_retransmission_effort
+2 mem_sco_ptype
+3 mem_extm_uap_restore
+
+2 mem_h5rx_rptr
+1 mem_h5rx_ack
+1 mem_h5tx_ack
+2 mem_h5tx_rptr
+2 mem_h5tx_wptr
+2 mem_h5tx_free
+1 mem_h5rx_tmp
+1 mem_h5tx_seq
+
+2 mem_hci_acl_queue_wptr
+2 mem_hci_acl_queue_rptr
+2 mem_hci_acl_queue_end
+1 mem_hci_acl_queue_wcnt
+1 mem_hci_acl_cnt
+
+2 mem_hci_acl_tx_trigger_wptr //tx via uart
+
+
+1 mem_hci_curr_len
+2 mem_hci_curr_target 
+) 
+
+xmemalloc(
+
+2 mem_baud
+1 mem_hci_lt_rx_state
+)
+
+15 hci_flag_rp
+//mem_hci_options bit map
+(
+1 hci_option_h4
+2 hci_option_protocol2
+3 hci_option_protocol3
+4 hci_option_uart
+5 hci_option_usb
+6 hci_option_phy2
+7 hci_option_phy3
+)
+// UART baud rate @6MHz
+(
+0 uart_ctrl_bit_enable
+3 uart_ctrl_bit_slip_protocol
+
+)
+
+//bit map of core_uart_ctrl
+(
+
+)
+//bit map of core_uart_status
+(
+0 uart_status_tx_fifo_full
+1 uart_status_tx_fifo_empty
+2 uart_status_tx_busy
+3 uart_status_rx_fifo_empty
+
+)
+//HCI H4 LOG related
+(
+0x4850 mem_hci_log
+8 hci_log_size
+100 hci_log_cnt
+
+)
+//HCI H4 Packet TYPE
+(
+0x01 HCI_H4_TYPE_CMD
+0x02 HCI_H4_TYPE_ACL
+0x04 HCI_H4_TYPE_EVENT
+
+)
+// HCI command opcode group field values
+(
+0x01 HCI_OGF_LINK_CONTROL
+0x02 HCI_OGF_LINK_POLICY
+0x03 HCI_OGF_BASEBAND
+0x04 HCI_OGF_INFO
+0x05 HCI_OGF_STATUS
+0x06 HCI_OGF_TEST
+0x08 HCI_OGF_LOW_ENERGY
+0x3e HCI_OGF_LOGO_TESTING
+0x3f HCI_OGF_VENDOR_SPECIFIC
+)
+
+// 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
+)
+
+//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
+)
+
+(
+0x00 HCI_LPM_OFF
+0x01 HCI_LPM_ON
+)
+
+
+(
+33 HOST_WAKE_TIME
+)
+
+(
+1 HCI_RX_WAKE
+0 HCI_RX_READY
+)
+
Index: DpiSwitch/format/kscan_peipherals.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/kscan_peipherals.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/kscan_peipherals.format	(working copy)
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+//0 mem_kscan_head_ptr
+//1 mem_col_num
+//1 mem_row_num
+//4 mem_col_conf_pin
+//4 mem_row_conf_pin
+//1 mem_row_count
+//1 mem_count_shift
+//2 mem_kscan_value_temp
+//2 mem_kscan_lastvalue
+//2 mem_kscan_value
+//4 mem_btclk_kscan
+//1 mem_btclk_kscan_interval
+
+
+0x00 KEYSCAN_OFFECT_COL_NUM
+0x01 KEYSCAN_OFFECT_ROW_NUM
+0x02 KEYSCAN_OFFECT_COL_CONF_PIN
+0x06 KEYSCAN_OFFECT_ROW_CONF_PIN
+
+0x0a KEYSCAN_OFFECT_ROW_COUNT
+0x0b KEYSCAN_OFFECT_SHIFT_COUNT
+
+0X0C KEYSCAN_OFFECT_VALUE_TEMP
+0X0E KEYSCAN_OFFECT_LASVALUE
+0X10 KEYSCAN_OFFECT_VALUE
+0x12 KEYSCAN_OFFECT_BTCLK
+0x16 KEYSCAN_OFFECT_BTCLK_INTERVAL
+
+
Index: DpiSwitch/format/l2cap.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/l2cap.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/l2cap.format	(working copy)
@@ -0,0 +1,442 @@
+
+memalloc(
+0 mem_l2cap_mem_start
+// L2CAP RX 
+2 mem_l2cap_rxbuff1_len
+2 mem_l2cap_rxbuff2_len
+2 mem_l2cap_rxbuff_new
+1 mem_l2cap_rxbuff_inuse
+2 mem_l2cap_payload_ptr
+2 mem_l2cap_rx_pkt_length
+2 mem_l2cap_rx_cid
+1 mem_l2cap_rx_done
+
+
+
+// L2CAP TX Signal channel
+2 mem_l2cap_signal_tx_buff_ptr
+2 mem_l2cap_signal_tx_payload_ptr
+2 mem_l2cap_signal_tx_length
+// L2CAP TX SDP channel
+2 mem_sdp_tx_buff_ptr
+2 mem_sdp_tx_payload_ptr
+2 mem_sdp_tx_pkt_length
+// L2CAP TX RFCOMM channel
+2 mem_rfcomm_tx_buff_ptr
+2 mem_rfcomm_tx_payload_ptr
+2 mem_rfcomm_tx_pkt_length
+
+
+
+//L2CAP Util
+
+2 memL2CAP_T1
+
+1 mem_CONTROL_tasks
+1 mem_send_config_req
+
+
+1 mem_config_identifier
+2 mem_config_req_dest_CID
+1 mem_rfcomm_malloc_fail_flag
+
+//L2CAP STATE MACHINE
+1 mem_message_to_uppersm
+1 mem_upper_sm_remote_page
+1 mem_upper_sm_reconn
+1 mem_upper_sm_ss
+
+
+64 mem_tx_malloc_log
+0 mem_l2cap_mem_end
+
+
+2 mem_scid
+2 mem_cmd_length
+2 mem_tt2
+2 mem_tt3
+2 mem_id
+2 mem_psm
+
+
+4 mem_l2cap_sdpres_delay_time
+)
+
+xmemalloc(
+0 mem_l2cap_xmem_start
+//*******************L2CAP TX MULTI-PACKET*********************//
+2 mem_l2cap_tx_multi_offset //0 means single packet
+
+//*******************CHANNEL ID*********************//
+2 mem_sdp_remote_cid
+2 mem_rfcomm_remote_cid
+2 mem_hid_ctrl_remote_cid
+2 mem_hid_int_remote_cid
+//*******************CHANNEL STATE*********************//
+1 mem_sdp_state
+1 mem_rfcomm_state
+1 mem_hid_control_state
+1 mem_hid_interrupt_state
+1 mem_spp_state
+1 mem_ML2CAP_comm_id
+
+//*******************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
+256 mem_l2cap_lpm_txbuf
+//*******************MISC*********************//
+1 mem_l2cap_flow_ctrl_flag
+1 mem_l2cap_pending_item
+0 mem_l2cap_xmem_end
+
+)
+
+
+//mem_l2cap_lpm_txbuf
+(
+256 l2cap_lpm_txbuf_len
+)
+
+(
+4 L2CAP_TX_FIFO_SIZE
+8 L2CAP_TX_BUFF_CNT
+
+)
+(
+0x0002 L2CAP_SIG_EXT_FEATRUE
+0x0003 L2CAP_SIG_FIX_FEATRUE
+)
+
+
+(
+0 HS_IDLE
+1 AG_INIT_CALL
+2 HS_INIT_CALL
+)
+(
+0 M_ACL_LINK_ABSENT
+1 M_ACL_LINK_EXIST
+)
+
+(
+0 L2CAP_INUSE_BUFF1
+1 L2CAP_INUSE_BUFF2
+)
+/* upper layer interface w/ lower layer */
+(
+1 MAX_NUM_LINKS_ALLOWED
+1 MAX_NUM_SCO_ALLOWED
+1 ACL_LINK_PRESENT
+0 ACL_LINK_ABSENT
+)
+(
+1 L2CAP_RX_DONE 
+0 L2CAP_RX_CLEAR
+)
+/* Scheduler */
+(
+0 L2CAP_DISCONNECT_INTERRUPT
+1 RFCOMM_wants_service
+2 L2CAP_sig_Tx_buff_full
+3 RFCOMM_Tx_buff_full
+4 SDP_Tx_buff_full
+5 got_complete_L2CAP_pkt	
+6 L2CAP_init_Config_Req
+7 L2CAP_DISCONNECT_CONTROL
+)
+
+/* mem_CONTROL_tasks2 */
+(
+0 UI_NEED_SERVICE
+)
+/* L2CAP logic channel identifiers (2 bytes) p.261 */
+(
+0x0001 L2CAP_signal_channel
+0x0050 L2CAP_SDP_channel
+0x0051 L2CAP_RFCOMM_channel
+0x0052 L2CAP_HID_Control_channel   
+0x0053 L2CAP_HID_Interrupt_channel
+0x0077 L2CAP_AVDTP_signal_channel		//------avdtp
+0x0078 L2CAP_AVDTP_media_channel
+0x0079 L2CAP_AVDTP_report_channel
+0x0080 L2CAP_AVDTP_recovery_channel
+0x00dd L2CAP_AVCTP_Control_channel
+)
+/* L2CAP signalling command codes (1 byte) p.284 */
+(
+0x00 reserved
+0x01 signal_cmd_reject
+0x02 signal_connect_req
+0x03 signal_connect_rsp
+0x04 signal_config_req
+0x05 signal_config_rsp
+0x06 signal_disconnect_req
+0x07 signal_disconnect_rsp
+0x08 signal_echo_req
+0x09 signal_echo_rsp
+0x0a signal_info_req
+0x0b signal_info_rsp
+)
+/* L2CAP signal_command_reject reason code (2 bytes), p.285 */
+(
+0x0000 cmd_not_understood
+0x0001 signalling_MTU_exceeded
+0x0002 invalid_CID_in_req
+)
+/* L2CAP PSM values used in signal_connect_req (2 bytes), p.286 */
+(
+0x0001 PSM_SDP
+0x0003 PSM_RFCOMM
+0x0005 PSM_TCS
+0x0011 PSM_HID_control
+0x0013 PSM_HID_interrupt
+0x0017 PSM_AVCTP
+0x0019 PSM_AVDTP
+)
+/* L2CAP connection response result code (2 bytes), p.288 */
+(
+0x0000 L2CAP_connect_successful
+0x0001 L2CAP_connect_pending
+0x0002 L2CAP_connect_refused_PSM_unsupported
+0x0003 L2CAP_connect_refused_security_block
+0x0004 L2CAP_connect_refused_no_resources
+)
+/* L2CAP connection status values (2 bytes), p.288 */
+(
+0x0000 L2CAP_no_info_available
+0x0001 L2CAP_authentication_pending
+0x0002 L2CAP_authorization_pending
+)
+/* L2CAP configuration response result code (2 bytes), p.292 */
+(
+0x0000 L2CAP_config_success
+0x0001 L2CAP_config_failure_bad_parameters
+0x0002 L2CAP_config_failure_no_reason
+0x0003 L2CAP_config_failure_unknown_options
+)
+/* L2CAP constant definitions */
+(
+128 L2CAP_Rx_buff_size
+48  L2CAP_signal_Tx_buff_size
+128 SDP_Tx_buff_size
+128 RFCOMM_Tx_buff_size
+1 AM_ADDRESS
+3 DM1TYPE
+4 DH1TYPE
+11 DH3TYPE
+8 DVTYPE
+0 channel_state_closed
+1 channel_state_config
+2 channel_state_open
+0x0030 L2CAP_config_MTU_SDP
+0xffff L2CAP_config_ftimeout_SDP
+0x03e3 L2CAP_config_MTU_RFCOMM
+0xffff L2CAP_config_ftimeout_RFCOMM
+260 l2cap_max_pkt_len
+)
+
+(
+0 FAILURE
+1 SUCCESS
+2 IN_PROGRESS
+)
+(
+0x00	IDLE
+0x01	WAIT_4_BB_PAGE
+0x02	WAIT_4_LMP_CONN
+0x03	WAIT_4_SCO_CONN
+0x04	WAIT_4_SCO_KILLED
+)
+
+/*mem_master_mss*/
+(
+0 STOP_ENC
+1 SEND_SWITCH_REQ
+)
+(
+0 HF_HS_READY
+1 HF_AG_READY
+)
+/* mem_hf_state */
+(
+0 HF_STATE_WAITING_RFCOMM_CONN
+1 HF_STATE_HF_SEND_FEATURE
+2 HF_STATE_WAITING_AG_FEATURE_OK
+3 HF_STATE_HF_SEND_INDICATORS
+4 HF_STATE_WAITING_AG_INDICATORS_OK
+5 HF_STATE_HF_SEND_CURR_STATUS
+6 HF_STATE_WAITING_AG_STATUS_OK
+7 HF_STATE_HF_SEND_UPDATE_STATUS
+8 HF_STATE_WAITING_AG_UPDATE_STATUS_OK
+9 HF_STATE_CONNECTED
+0x0a HF_STATE_HF_SEND_RECEIVE_INFO
+0x0b HF_STATE_WAITING_AG_INFO
+0x0c HF_STATE_HF_SEND_AT_CLIP
+0x0d HF_STATE_WAITING_AT_CLIP
+0x0e HF_STATE_HF_SEND_AT_CCWA
+0x0f HF_STATE_WAITING_AT_CCWA
+)
+/*mem_hf_call_state*/
+(
+0 HF_CALL_STATE_INACTIVE
+1 HF_CALL_STATE_SETUP
+2 HF_CALL_STATE_ACTIVE 
+)
+/* mem_pairing_state bit definition */
+(
+0 PAIR_INQUIRY_START
+1 PAIR_INQUIRY_TIME_OUT
+2 PAIR_INQUIRY_FAILED
+3 PAIR_INQUIRY_SUCCESS
+4 PAIR_READY_CONN
+5 PAIR_WAIT_CANCEL_RESPONSE
+6 PAIR_CONN_SUCCESS
+7 PAIR_WAIT_DETACH
+)  
+
+/* mem_pairing_mode bit definition */
+(
+0 FORCE_AUTHENTICATION
+)
+/* mem_hid_protecol_type */
+(
+0 PROTECOL_BOOT /*default*/
+1 PROTECOL_REPORT
+)
+
+/* mem_upper_sm_reconn */
+(
+1 UPPERSM_SEND_SDP_CONN_REQ
+2 UPPERSM_SEND_SDP_CFG_REQ
+3 UPPERSM_SEND_SDP_HF_SS
+4 UPPERSM_SEND_SDP_DISC_REQ
+5 UPPERSM_SEND_RFCOMM_CONN_REQ
+6 UPPERSM_SEND_RFCOMM_CFG_REQ
+7 UPPERSM_SEND_SABM_CMD
+8 UPPERSM_SEND_DISC
+9 UPPERSM_SEND_WAIT
+10 UPPERSM_SEND_HID_CONTROL_CONN_REQ
+11 UPPERSM_SEND_HID_CONTROL_CFG_REQ
+12 UPPERSM_SEND_HID_INTERRUPT_CONN_REQ
+13 UPPERSM_SEND_HID_INTERRUPT_CFG_REQ
+14 UPPERSM_SEND_SDP_HS_SS
+15 UPPERSM_SEND_SDP_PBAP_SS
+16 UPPERSM_SEND_SDP_AVTARG_SS
+)
+/* mem_upper_sm_remote_page */
+(
+1 UPPERSM_RP_SEND_SDP_CONN_REQ
+2 UPPERSM_RP_SEND_SDP_CFG_REQ
+3 UPPERSM_RP_SEND_SDP_HF_SS
+4 UPPERSM_RP_SEND_SDP_HS_SS
+5 UPPERSM_RP_SEND_SDP_PBAP_SS
+6 UPPERSM_RP_SEND_SDP_AVTARG_SS
+7 UPPERSM_RP_SEND_SDP_DISC_REQ
+8 UPPERSM_RP_SEND_AVCTP_CONN_REQ
+9 UPPERSM_RP_SEND_AVCTP_CFG_REQ
+)
+
+/* mem_ML2CAP_flag */
+(
+0 MSCHEDULER_HID_CONTROL_CONN_DONE
+1 MSCHEDULER_HID_INTERRUPT_CONN_DONE
+2 MSCHEDULER_HID_CONTROL_CFG_REQ_DONE
+3 MSCHEDULER_HID_CONTROL_CFG_RSP_DONE
+4 MSCHEDULER_HID_INTERRUPT_CFG_REQ_DONE
+5 MSCHEDULER_HID_INTERRUPT_CFG_RSP_DONE
+6 MSCHEDULER_HID_CONTROL_DISC_DONE
+7 MSCHEDULER_HID_INTERRUPT_DISC_DONE
+)
+/*    ui event    --add by lj*/
+(
+0x00 UI_DATA_EVNET_NONE
+0x01 UI_DATA_EVNET_HID
+0x02 UI_DATA_EVNET_AVDTP_S
+0x03 UI_DATA_EVNET_AVDTP_M
+0x04 UI_DATA_EVNET_AVCTP
+0x05 UI_DATA_EVNET_HS
+0x06 UI_DATA_EVNET_HF
+0x07 UI_DATA_EVNET_SPP
+0x08 UI_DATA_EVNET_OBEX
+)
+/*    ui ack --add by lj*/
+(
+0x00 UI_DATA_TX_NONE
+0x01 UI_DATA_TX_HID
+0x02 UI_DATA_TX_AVDTP_S
+0x03 UI_DATA_TX_AVDTP_M
+0x04 UI_DATA_TX_AVCTP
+0x05 UI_DATA_TX_HS
+0x06 UI_DATA_TX_HF
+0x07 UI_DATA_TX_SPP
+0x08 UI_DATA_TX_OBEX
+0x10 ACL_TX_L2CAP_SIGNAL
+0x11 ACL_TX_SDP
+0x12 ACL_TX_RFCOMM
+
+)
+
+(
+0 L2CAP_SDP_interface_conn
+1 L2CAP_SDP_interface_cfg
+)
+
+(                                   
+0 L2CAP_CHANNEL_STATE_CONN_REQ      
+1 L2CAP_CHANNEL_STATE_CONN_RES      
+2 L2CAP_CHANNEL_STATE_SND_CFG_REQ   
+3 L2CAP_CHANNEL_STATE_SND_CFG_RES   
+4 L2CAP_CHANNEL_STATE_RCV_CFG_REQ   
+5 L2CAP_CHANNEL_STATE_RCV_CFG_RES
+6 L2CAP_CHANNEL_RFCOMM_ONLY_SABM
+7 L2CAP_CHANNEL_RFCOMM_ONLY_UA
+6 L2CAP_CHANNEL_AVDTP_SIGNAL_INIT //set avdtp init complete
+6 L2CAP_CHANNEL_HID_HANDSHAKE_DONE
+0x3f L2CAP_CHANNEL_SETUP_COMPLETE
+0x7f L2CAP_CHANNEL_AVDTP_SIGNAL_COMPLETE
+0xff L2CAP_CHANNEL_RFCOMM_DLCI0_OPENED
+)                                     
+
+/*  AVDTP---lj*/
+(
+0 L2CAP_AVDTP_SIGNAL_CONNECT
+1 L2CAP_AVDTP_SIGNAL_CONFIG
+2 L2CAP_AVDTP_MEDIA_CONNECT
+3 L2CAP_AVDTP_MEDIA_CONFIG
+4 L2CAP_AVDTP_REPORT_CONNECT
+5 L2CAP_AVDTP_REPORT_CONFIG
+6 L2CAP_AVDTP_RECOVERY_CONNECT
+7 L2CAP_AVDTP_RECOVERY_CONFIG
+)
+/*  AVCTP---lj*/
+(
+0 L2CAP_AVCTP_SIGNAL_CONNECT
+1 L2CAP_AVCTP_SIGNAL_CONFIG
+)
+
+127 L2CAP_SIGNAL_MALLOC_SIZE
+
+//1 mem_rfcomm_malloc_fail_flag
+(
+0 RFCOMM_MALLOC_SUCCEED
+1 RFCOMM_MALLOC_FAIL
+)
+
+//mem_l2cap_flow_ctrl_flag
+(
+0 L2CAP_FLOW_CTRL_DISABLE
+1 L2CAP_FLOW_CTRL_ENABLE
+)
+
Index: DpiSwitch/format/le.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/le.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/le.format	(working copy)
@@ -0,0 +1,724 @@
+
+memalloc(
+56 mem_le_rxbuf
+262 mem_le_l2capbuf
+
+
+/* security temp */
+4 mem_le_mic
+4 mem_le_peer_mic
+//8 mem_le_skdm
+//8 mem_le_skds
+16 mem_le_peer_ltk
+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
+
+2 mem_le_no_using
+1 mem_le_peer_sca
+
+/* should be together */
+1 mem_le_att_opcode
+2 mem_le_att_handle
+
+1 mem_le_err_code
+1 mem_le_ll_pairing_fail_reason
+
+16 mem_le_sk
+
+/* test */
+1 mem_le_testtype
+2 mem_le_test_sync
+2 mem_le_test_pcnt
+
+6 mem_le_rxon_ts
+
+1 mem_le_rx_ll_opcode
+
+2 mem_le_notify_attr_start
+1 mem_le_notify_len
+
+1 mem_cmd_le_create_conn
+
+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
+
+1 mem_le_curr_att_len
+1 mem_le_search_res
+
+1 mem_le_continue_type
+
+)
+
+
+xmemalloc(
+2 mem_le_dsniff
+
+// parameters
+2 mem_le_conn_interval
+1 mem_le_scan_enable
+2 mem_le_scan_interval
+2 mem_le_scan_window
+
+1 mem_le_adv_enable
+1 mem_le_adv_data_len
+31 mem_le_adv_data
+1 mem_le_scan_data_len
+31 mem_le_scan_data
+
+//modified name
+1 mem_le_name_len
+30 mem_le_name
+
+
+5 mem_le_new_map
+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
+
+1 mem_le_txheader
+1 mem_le_txlen
+2 mem_le_txpayload
+2 mem_le_txcid
+1 mem_le_l2cap
+1 mem_le_l2cap_response
+31 mem_le_txbdy
+
+/* smp related */
+5 mem_le_pcnt_tx
+5 mem_le_pcnt_rx
+4 mem_le_last_mic
+4 mem_le_ivm
+4 mem_le_ivs
+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
+
+/* att related */
+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
+2 mem_le_notify_handle
+1 mem_le_search_uuid_length
+16 mem_le_search_uuid
+
+
+//START of LE adv parameter structure
+0 mem_le_adv_param
+2 mem_le_adv_interval
+1 mem_le_adv_type
+1 mem_le_adv_own_addr_type
+1 mem_le_adv_direct_addr_type
+6 mem_le_adv_direct_addr
+1 mem_le_adv_channel_map
+//END of LE adv parameter structure
+
+//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
+
+//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
+
+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_enable
+1 mem_le_secure_connect_flag
+1 mem_le_sc_calc
+1 mem_le_secure_connect_state
+1 mem_le_sc_confirm_gkey_flag
+1 mem_le_sc_local_key_invalid
+
+
+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
+
+//for continue
+2 mem_le_l2cap_size
+1 mem_le_packet_len_recved
+
+//for fifo
+1 mem_le_tx_buff_used
+2 mem_le_tx_ptr0
+2 mem_le_tx_ptr1
+2 mem_le_tx_ptr2
+2 mem_le_tx_ptr3
+
+//ble gatt signaling
+1 mem_le_signaling_identifier
+2 mem_le_l2cap_signaling_conn_param_update_rsp_result
+
+1 mem_le_packet_size
+1 mem_le_packet_llid
+2 mem_le_payload_ptr
+
+1 mem_le_md_count
+
+)
+
+
+(
+0x000001 param_le_features
+0x000a06 param_le_version
+0x1d87 param_le_subversion
+1636 param_sifs
+0x1e0 param_clke_cal_le
+0xa0 param_le_sca
+)
+
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+
+
+(
+27 LE_MAX_PAKET_LEN
+)
+
+/* advertising channel PDU type */
+(
+0 ADV_IND
+1 ADV_DIRECT_IND
+2 ADV_NONCONN_IND
+3 SCAN_REQ
+4 SCAN_RSP
+5 CONNECT_REQ
+6 ADV_SCAN_IND
+)
+
+(
+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
+0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
+)
+
+
+	/* LE control packet type */
+	(
+	0x00 LL_CONNECTION_UPDATE_REQ
+	0x01 LL_CHANNEL_MAP_REQ
+	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
+	)
+
+	/* 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
+	)
+
+	/* L2CAP Signaling OPCODE */
+	(
+	0x12 L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST
+	0x13 L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE
+	)
+
+	/* 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
+	)
+	/*	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	
+	)
+
+	(// 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
+	)
+
+
+	//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
+	)
+
+
+	//modified_name
+	(
+	0x14 MAX_NAME_LEN
+	0x16 ADV_DATA_NAME_LEN
+	0X20 SPACE
+	
+	)
+	/* 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
+	)
+	/* 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
+	)
+
+	(
+	0x0000 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+	0x0001 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED
+	)
+
+//	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
+)
+
+// 	le mode
+(
+0 lemode_idle
+1 lemode_slave
+3 lemode_master
+)
+
+
+(
+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
+)
+
+(
+0x00 LE_PAIRING_MODE_NONE
+0x01 LE_PAIRING_MODE_LAGACY_JUSTWORK
+0x02 LE_PAIRING_MODE_LAGACY_PASSKEY
+0x81 LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
+0x82 LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+0x83 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+
+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
+)
+
+(
+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
+)
+
+
+(
+96000 TIMER_SMP_PAIRING_TIMEOUT //30S
+)
+//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_AUTH
+5 FLAG_LE_PAIRING_AFTER_AUTH
+6 FLAG_LE_PAIRING_SEND_START_ENC_RSP
+7 FLAG_LE_PARING_SEND_ENC_INFORMATION
+8 FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION 
+9 FLAG_LE_PARING_SEND_INDENTITY_INFORMATION
+0xff FLAG_LE_PAIRING_END
+)
+
+
+
+/*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
+)
+
+//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
+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
+
+)
+
+(
+0 BIT_ADV_CHANNEL_MAP_37
+1 BIT_ADV_CHANNEL_MAP_38
+2 BIT_ADV_CHANNEL_MAP_39
+)
+
+
+
Index: DpiSwitch/format/lmp.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/lmp.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/lmp.format	(working copy)
@@ -0,0 +1,224 @@
+
+memalloc(
+
+1 mem_lmo_header_length
+1 mem_lmo_header_opcode
+17 mem_lmo_payload
+1 mem_lmi_accepted_opcode
+1 mem_disconn_reason_send
+1 mem_tx_fixed_freq
+1 mem_rx_fixed_freq
+1 mem_ext_features_page
+2 mem_lmpext_ssp_enable
+1 mem_remote_sppcap
+
+1 mem_lmp_conn_state
+2 mem_soft_timer
+1 mem_pincode_state
+
+1 mem_sres_tid
+1 mem_accptsco_tid
+
+1 mem_auth_enable
+1 mem_wait_encryption
+
+16 mem_sniff_payload
+4 mem_aurand_send_delay_time
+)
+
+xmemalloc(
+3 mem_lmp_version
+2 mem_lmp_subversion
+1 mem_local_name_length
+3 mem_local_name
+64 mem_local_name2
+1 mem_local_name_end
+1 mem_unsniff2sniff_timer
+1 mem_switch_flag
+1 mem_classic_bt_flag
+)
+
+	(
+	//bit flag:mem_classic_bt_flag
+	0 FLAG_SSP_REJECT_JUSTWORK
+	1 SHORT_MULT_FLAG
+	)
+	
+	(
+	//bit map
+	0 pair_state_inrand
+	1 pair_state_inrand_acpt
+	2 pair_state_send_comb
+	3 pair_state_recv_comb
+	4 pair_state_send_aurand
+	5 pair_state_recv_sres
+	6 pair_state_recv_aurand
+	7 pair_state_send_sres	
+	)
+	/* LMP opcodes */
+	(
+	1 LMP_NAME_REQ 
+	2 LMP_NAME_RES 
+	3 LMP_ACCEPTED 
+	4 LMP_NOT_ACCEPTED 
+	5 LMP_CLKOFFSET_REQ 
+	6 LMP_CLKOFFSET_RES 
+	7 LMP_DETACH 
+	8 LMP_IN_RAND 
+	9 LMP_COMB_KEY 
+	10 LMP_UNIT_KEY 
+	11 LMP_AU_RAND 
+	12 LMP_SRES 
+	13 LMP_TEMP_RAND 
+	14 LMP_TEMP_KEY 
+	15 LMP_ENCRYPTION_MODE_REQ 
+	16 LMP_ENCRYPTION_KEY_SIZE_REQ 
+	17 LMP_START_ENCRYPTION_REQ 
+	18 LMP_STOP_ENCRYPTION_REQ 
+	19 LMP_SWITCH_REQ 
+	20 LMP_HOLD
+	21 LMP_HOLD_REQ
+	23 LMP_SNIFF_REQ 
+	24 LMP_UNSNIFF_REQ 
+	26 LMP_PARK_REQ 
+	27 LMP_SET_BROADCAST_SCAN_WINDOW 
+	28 LMP_MODIFY_BEACON 
+	29 LMP_UNPARK_BD_ADDR_REQ 
+	30 LMP_UNPARK_PM_ADDR_REQ 
+	31 LMP_INCR_POWER_REQ 
+	32 LMP_DECR_POWER_REQ 
+	33 LMP_MAX_POWER 
+	34 LMP_MIN_POWER 
+	35 LMP_AUTO_RATE 
+	36 LMP_PREFERRED_RATE 
+	37 LMP_VERSION_REQ 
+	38 LMP_VERSION_RES 
+	39 LMP_FEATURES_REQ 
+	40 LMP_FEATURES_RES 
+	41 LMP_QUALITY_OF_SERVICE 
+	42 LMP_QUALITY_OF_SERVICE_REQ 
+	43 LMP_SCO_LINK_REQ 
+	44 LMP_REMOVE_SCO_LINK_REQ 
+	45 LMP_MAX_SLOT 
+	46 LMP_MAX_SLOT_REQ 
+	47 LMP_TIMING_ACCURACY_REQ 
+	48 LMP_TIMING_ACCURACY_RES 
+	49 LMP_SETUP_COMPLETE 
+	50 LMP_USE_SEMI_PERMANENT_KEY 
+	51 LMP_HOST_CONNECTION_REQ 
+	52 LMP_SLOT_OFFSET 
+	53 LMP_PAGE_MODE_REQ 
+	54 LMP_PAGE_SCAN_MODE_REQ 
+	55 LMP_SUPERVISION_TIMEOUT 
+	56 LMP_TEST_ACTIVATE
+	57 LMP_TEST_CONTROL
+	58 LMP_ENC_KEY_SIZE_MASK_REQ
+	59 LMP_ENC_KEY_SIZE_MASK_RES
+	60 LMP_SET_AFH
+
+	/* simple pairing support */
+	61 LMP_ENCAPSULATED_HEADER
+	62 LMP_ENCAPSULATED_PAYLOAD
+	63 LMP_SIMPLE_PAIRING_CONFIRM
+	64 LMP_SIMPLE_PAIRING_NUMBER
+	65 LMP_DHKEY_CHECK
+	127 LMP_ESCAPE
+	127 LMP_ESCAPE_4   /* add 2bytes LMP header support  */   
+	)
+	/* LMP EXT opcodes, ORed with bit 7 to make difference to nonEXT */
+	(
+	129 LMP_EXT_ACCEPTED
+	130 LMP_NOT_ACCEPTED_EXT
+	131 LMP_EXT_FEATURES_REQ
+	132 LMP_EXT_FEATURES_RES
+	139 LMP_PACKET_TYPE_TABLE_REQ
+	140 LMP_EXT_ESCO_LINK_REQ
+	141 LMP_EXT_REMOVE_ESCO_REQ
+	144 LMP_EXT_CHN_CLASSIFICATION_REQ
+	145 LMP_EXT_CHN_CLASSIFICATION
+	149 LMP_SNIFF_SUBRATING_REQ
+	150 LMP_SNIFF_SUBRATING_RES
+	151 LMP_PAUSE_ENCRYPTION_REQ
+	152 LMP_RESUME_ENCRYPTION_REQ
+	153 LMP_IO_CAP_REQ
+	154 LMP_IO_CAP_RES
+	)
+	/* LMP reason codes */
+	(
+	0x05 AUTHENTICATION_FAILURE_ERROR
+	0x06 KEY_MISSING
+	0x0b ACL_CONNECTION_ALREADY_EXISTS
+	0x13 OTHER_END_TERMINATED
+	0x15 ABOUT_TO_POEWR_OFF
+	0x16 LOCAL_HOST
+	0x18 PAIRING_NOT_ALLOWED
+	0x19 UNKNOWN_LMP_PDU
+	0x1A UNSUPPORTED_LMP_FEATURE 
+	0x1F UNSPECIFIED_ERROR
+	0x20 UNSUPPORTED_PARAMETERS
+	0x21 SWITCH_NOT_ALLOWED
+	0x23 TRANSACTION_COLLISION
+	0x24 PDU_NOT_ALLOWED
+	0x25 ENCRYPTION_MODE_NOT_ACCEPTABLE
+	0x2e NOT_SUPPORT_CHN_CLASSIFICATION
+	0x37 NOT_SUPPORT_SSP
+	)
+
+	/* test mode scenarios */
+	(
+	0 PAUSE_TEST_MODE
+	1 ZERO_PATTERN
+	2 ONE_PATTERN
+	3 ALT_PATTERN
+	4 PSEUDORANDOM
+	5 CLOSED_LOOP_BACK_ACL
+	6 CLOSED_LOOP_BACK_SCO
+	7 ACL_WITHOUT_WHITENING
+	8 SCO_WITHOUT_WHITENING
+	9 ALT2_PATTERN
+	255 EXIT_TEST_MODE
+	)
+	/* test mode hoppig modes */
+	(
+	0 FIXED_FREQ
+	1 NORMAL_HOP
+	)
+
+	/* mem_lmp_tid indicates which type of LMP will be sent */
+	(
+	0 TID_NORM_REPLY
+	1 TID_NORM_SEND
+	2 TID_ONE
+	3 TID_ZERO
+	4 TID_PAIRING
+	5 TID_ENCRYPTION
+	6 TID_VARIABLE
+	7 TID_RX
+	)
+
+	/* ============== lmp status ==========*/
+	(
+	0 lmp_incoming
+	1 lmp_outgoing
+	2 lmp_reject_msg
+	3 lmp_clear_msg
+	4 upper_reject_msg
+	5 upper_clear_msg
+	)
+
+(
+0x2ee00 TIMER_ONE_MINUTE //96000*2
+80 TIMER_SWITCH_WAITE
+12 TIMER_ENPT_WAITE
+)
+
+(
+0 SWITCH_FLAG_INIT
+1 SWITCH_FLAG_ACCEPT
+2 SWITCH_FLAG_NOT_ACCEPT
+)
+(
+0 NULL_ENCRYP
+1 DONE_ENCRYP
+)
+
Index: DpiSwitch/format/memblocks.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/memblocks.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/memblocks.format	(working copy)
@@ -0,0 +1,64 @@
+//
+//
+//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.
+
+// USB C51 exchange area
+(
+0xff0 mem_mcmd
+0xff1 mem_mouse_data
+)
+
+//l2cap RX buffers
+(
+0x1000 mem_l2cap_rxbuff1		//0x400
+0x1400 mem_l2cap_rxbuff2		//0x400
+//end address:0x17ff
+)
+//l2cap TX buffers
+(
+0x1800 mem_tx_buff0		//128
+0x1880 mem_tx_buff1		//128
+0x1900 mem_tx_buff2		//128
+0x1980 mem_tx_buff3		//128
+0x1a00 mem_tx_buff4		//128
+0x1a80 mem_tx_buff5		//128
+0x1b00 mem_tx_buff6		//128
+0x1b80 mem_tx_buff7		//128
+//end address: 0x1bff
+)
+
+(
+0x1800 mem_le_tx_buffer0
+0x1900 mem_le_tx_buffer1
+0x1a00 mem_le_tx_buffer2
+0x1b00 mem_le_tx_buffer3
+//end addr:0x1dff
+)
+
+
+//uart buffer
+(
+0x1800 mem_h5rx_buf//0x400
+0x1bff mem_h5rx_buf_end
+0x1c00 mem_h5tx_buf
+0x1fff mem_h5tx_buf_end
+)
+
+
+(
+0x1800 mem_ir_record
+0x1c      mem_ir_record_max
+)
+
+ifndef REVD 
+(
+0x4b00 memk
+)
+
+
+endif
+
Index: DpiSwitch/format/patch.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/patch.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/patch.format	(working copy)
@@ -0,0 +1,516 @@
+
+(
+	  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: DpiSwitch/format/regs.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/regs.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/regs.format	(working copy)
@@ -0,0 +1,302 @@
+(
+  0x8000 core_chipid
+  0x8003 core_kick
+  0x8005 core_lpm_wr
+  0x8006 core_misc_ctrl
+  0x8007 core_otp_rdata
+  0x8009 core_pcmoutfifo
+  0x8010 core_reset
+  0x8011 core_encrypt
+  0x8015 core_uart_txd
+  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_xtal_stable_time
+  0x8045 core_otp_addr
+  0x8046 core_otp_din
+  0x8047 core_otp_ctrl
+  0x8048 core_otpd_addr
+  0x804a core_otpd_len
+  0x804b core_otpd_ctrl
+  0x804c core_lpm_reg
+  0x804f core_lpm_isogate
+  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_trptrp
+  0x8062 core_uart_ctrl
+  0x8063 core_bist_ctrl
+  0x8064 core_pwm_pcnt3
+  0x8066 core_pwm_ncnt3 
+  0x8068 core_pwm_pcnt4
+  0x806a core_pwm_ncnt4
+  0x806c core_pwm_pcnt5
+  0x806e core_pwm_ncnt5
+  0x8070 core_gpio_oe0
+  0x8071 core_gpio_oe1
+  0x8072 core_gpio_oe2
+  0x8073 core_gpio_oe3
+  0x8074 core_gpio_out0
+  0x8075 core_gpio_out1
+  0x8076 core_gpio_out2
+  0x8077 core_gpio_out3
+  0x8078 core_gpio_pu0
+  0x8079 core_gpio_pu1
+  0x807a core_gpio_pu2
+  0x807b core_gpio_pu3
+  0x807c core_gpio_pd0
+  0x807d core_gpio_pd1
+  0x807e core_gpio_pd2
+  0x807f core_gpio_pd3
+  0x8080 core_gpio_sel
+  0x8081 core_gpio_sel1
+  0x8082 core_gpio_sel2
+  0x8083 core_gpio_key0
+  0x8084 core_gpio_key1
+  0x8085 core_gpio_key2
+  0x8086 core_spid_ctrl
+  0x8087 core_spid_delay
+  0x8088 core_spid_txlen
+  0x808a core_spid_txaddr
+  0x808c core_spid_rxaddr
+  0x808e core_spid_rxlen
+  0x8090 core_iicd_ctrl
+  0x8091 core_iicd_scl_low
+  0x8092 core_iicd_scl_high
+  0x8093 core_iicd_start_setup
+  0x8094 core_iicd_start_hold
+  0x8095 core_iicd_stop_setup
+  0x8096 core_iicd_data_setup
+  0x8097 core_iicd_data_hold
+  0x8098 core_iicd_txlen
+  0x809a core_iicd_txaddr
+  0x809c core_iicd_rxaddr
+  0x809e core_iicd_rxlen
+  0x80a0 core_pwm_pcnt0
+  0x80a2 core_pwm_ncnt0
+  0x80a4 core_pwm_pcnt1
+  0x80a6 core_pwm_ncnt1
+  0x80a8 core_pwm_pcnt2
+  0x80aa core_pwm_ncnt2
+  0x80b0 core_enc_ctrl
+  0x80b1 core_cvsd_ctrl
+  0x80b2 core_codec_ctrl
+  0x80b3 core_dec_ctrl
+
+
+
+
+  
+  0x8108 core_misc_status
+  0x8109 core_qdec_cntx
+  0x810a core_qdec_cnty
+  0x810b core_qdec_cntz
+  0x810c core_uart_status
+  0x810d core_uart_rbaud
+  0x810e core_uart_txitems
+  0x8110 core_uart_trptr
+  0x8112 core_uart_rxitems
+  0x8114 core_uart_rdptr
+  0x8116 core_uart_rwptr
+  0x8119 core_kscn_kstat
+  0x811a core_kscn_event
+  0x811b core_kscn_event_num
+  0x811c core_gpio_in
+  0x811d core_gpio_in1
+  0x8124 core_current_otp_addr
+  0x8126 core_otpd_remain
+  0x8128 core_spid_remain
+  0x812a core_iicd_remain
+  0x812c core_dma_status
+  0x812d core_perf_status
+  0x812e core_adc_in
+  0x8134 core_pcminfifo
+  0x8135 core_pcminfifo_remain
+  0x8136 core_pcmoutfifo_remain
+  0x8138 core_lpm_ctrl
+  0x813c core_lpm_xtalcnt
+  0x813d core_lpm_buckcnt
+  0x813e core_lpm_ldocnt
+  0x813f core_lpm_latch
+  0x8140 core_gpio_wakeup_low
+  0x8144 core_gpio_wakeup_high
+  0x8149 core_clk_counter
+  0x8150 core_adc_sum
+// dummy regs  
+
+  0x8203 core_ice_ctrl
+  0x8204 core_ice_status
+  0x8205 core_ice_break0
+  0x8207 core_ice_break1
+  
+  0x8280 core_docd_ctrl
+  0x8288 core_docd_paddr
+  0x828a core_docd_pdata
+
+  0x8300 iic_prer_low		
+  0x8301 iic_slave_addr	
+  0x8302 iic_ctr					
+  0x8303 iic_cr					
+  0x8304 iic_rxr					
+  0x8305 iic_txr					
+  0x8306 iic_sr					
+  0x8307 iic_fifo				
+
+  0x8400   mem_b_box          /* entire bank */
+  0x8500   mem_e_box          /* entire bank */
+  0x8600   mem_l_box          /* entire bank */
+
+ifdef REVD
+  0x8700 memk
+endif
+
+  0x8900 rfen_rx
+  0x8901 rfen_tx
+  0x8902 rfen_mdm
+  0x8903 rfen_sn
+  0x8904 rfen_msc
+  0x8905 rfen_ck
+  0x8906 rfen_adc
+  0x890a  rf_iq_gain
+  0x890b  rf_agc_nsat
+  0x890f  rf_adc_goff
+  0x8912 rf_agc_ctrl
+  0x8914 rfen_ulp
+  0x8973 rfen_chgpump
+  0x894b rf_rx_vctrl_reg1
+  0x894c rf_rx_vctrl_reg2
+  0x894d rf_rx_ib_lna
+  0x894e rf_rx_lna_ctrim
+
+  0x8950 rf_bpf_ctrim
+  0x8951 rf_bpf_ib
+  0x8952 rf_adc_rccal
+  0x8952 rf_rccal_ctrl
+  0x8953 rf_rccal_sel
+  0x8955 rf_tx_pa_ib
+  0x8956 rf_tx_pa_gc
+  0x895f rf_pll_rstn
+  0x8964 rf_sdm_en
+  0x8960 rf_pll_intg
+  0x8961 rf_pll_frac
+  0x8963 rf_pll_frachi
+  0x896c rf_afc_cap
+  0x8967 rf_clkpll_bias
+  0x896f rf_clkpll_en
+  0x8968 rf_clkpll_int
+  0x8969 rf_clkpll_frac
+  0x896d rf_balun_ctrim
+  0x8971 rf_adc_mode
+  0x8972 rf_adc_gc
+  0x8973 rf_adc_ch
+  0x8980 rf_rccal_result
+  0x8981 rf_afc_d2a
+  0x8982 rf_rssi
+
+
+0x8a00 core_usb_config		
+0x8a01 core_usb_int_mask	
+0x8a04 core_usb_addr
+0x8a10 core_usb_trig	
+0x8a11 core_usb_stall		
+0x8a12 core_usb_clear		
+0x8a18 core_usb_ep
+0x8a18 core_usb_dfifo0 
+0x8a19 core_usb_dfifo1  
+0x8a1a core_usb_dfifo2 
+0x8a20 core_usb_ep_len
+0x8a26 core_usb_status		
+0x8a27 core_usb_fifo_empty
+0x8a28 core_usb_fifo_full
+
+
+4 rx_freq_offset
+1 tx_freq_offset
+
+/* bit difinitions */
+  4 whiteoff_bit
+  6 clksel_rc
+  5 clksel_dpll
+  4 clksel_xtal
+  5 adc_rccal
+  0 bpf_rccal
+  1 demod_clkoff
+
+(
+  2 reload_code
+  3 gpio_latch
+  4 enable_retmem
+  7 cold_wake
+  0xef isogate_mask
+  0xe0 cs_mask
+)
+
+// misc ctrl
+(
+  0x01 otpd_start
+  0x02 spid_start
+  0x04 iicd_start
+  0x08 lock_otp
+  0x10 x_sethi
+  0x20 y_sethi
+  0x40 z_sethi
+  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
+)
+
+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
+0x2dc6c00 uart_clk
+0x16E3600 uart_clk_24
+
+//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_8051
+	9 CLOCK_OFF_KEYSCAN
+	0x0a CLOCK_OFF_USB
+	0x0b CLOCK_OFF_QDECODER
+	0x0c CLOCK_OFF_SPI
+	0x0d CLOCK_OFF_PWM
+	0x0e CLOCK_OFF_CODEC
+	0x0f CLOCK_OFF_UART
+)
+
+
Index: DpiSwitch/format/rfcomm.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/rfcomm.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/rfcomm.format	(working copy)
@@ -0,0 +1,391 @@
+/*****************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                                */
+/* $Author: Administrator $                                                           */
+/* $Id: bt_rfcomm_format.upper,v 1.1 2009-09-28 04:06:17 Administrator Exp $ */
+/* Orisil Technology                                                      */
+/*****************************************************************************/
+
+/**********/
+/* memory */
+/**********/
+
+memalloc(
+1 memRemoteRPNBitRate
+1 memRemotePRNDataBits
+1 memRemotePRNStopBit
+1 memRemotePRNParity
+1 memRemotePRNFlowControl
+1 memRemotePRNXon
+1 memRemotePRNXoff
+
+
+3 mem_mod2div_temp
+2 mem_contw_temp
+2 mem_attrib_list
+
+//rfcomm head
+1 mem_current_adss
+1 mem_current_channel
+1 mem_current_frame_type
+1 mem_current_fcs
+2 mem_current_length
+2 mem_rfcomm_uih_payload_ptr
+
+//rfcomm uih
+1 mem_uih_cmd_type
+2 mem_uih_length
+2 mem_param_payload_ptr
+
+
+//rfcomm modem status
+1 mem_ms_param
+
+//rfcomm pn
+1 mem_pn_credit_flow_type_info
+1 mem_pn_priority
+1 mem_pn_acknowledg_timer
+1 mem_pn_max_retrans
+
+1 mem_rfcomm_send_adss
+1 mem_rfcomm_send_frame_type
+1 mem_rfcomm_send_fcs
+1 mem_rfcomm_send_offset
+
+)
+
+xmemalloc(
+1 mem_pn_dlci
+2 mem_pn_max_frame_size
+
+1 memFCStemp1
+1 memFCStemp2
+1 memFCStemp3
+
+1 mem_rfcomm_initiator
+
+1 mem_remote_spp_channel
+
+1 mem_HIUfcs_SPP
+1 mem_HIUfcs_SPP_WCredits
+
+1 mem_rfcomm_send_more_pkt
+
+1 mem_remote_credits
+1 mem_credit_given
+
+//rfcomm modem status
+1 mem_ms_channel
+
+1 mem_credit_flag
+
+2 mem_rfcomm_max_frame_size
+1 mem_rfcomm_credit_init_data
+
+2 mem_cb_receive_spp_data
+
+2 mem_nl_rx_data_src
+2 mem_nl_rx_len_all
+)
+
+
+(
+0 CREDIT_DISABLE
+1 CREDIT_ENABLE
+)
+
+
+/************************************************************************/
+  
+
+ 
+/************/
+/* constant */
+/************/
+
+/* RFCOMM state for Headset (memRFCOMM_State) */ 
+  (
+    0 RFCOMM_IDLE           /* before the responsor HS receive SABM            */
+    1 RFCOMM_W4_DLCI0_OPEN
+    2 RFCOMM_W4_DLCI0_CLOSE
+    3 RFCOMM_START_DLCI0    /* After respond SABM frame (DLCI=0)               */
+    4 RFCOMM_W4_DLCI_OPEN
+    5 RFCOMM_W4_DLCI_CLOSE
+    6 RFCOMM_DLCI_OPENED    
+   
+  )
+  
+/* RFCOMM timer constants   */
+  (
+    1000  RFCOMM_T1         /* Used by SABM and DISC frames,100*20ms = 20s     */     
+    1000  RFCOMM_T2         /* Used by commands send in UIH on DLCI0,          */
+    300   RFCOMM_T3_RINGON  /* 6s for ring fade time                           */
+  
+  )
+
+/* Command Type */
+  (
+    0x3F RSP_RX_SABM        /*responsor expect SABM from initiator             */
+    0x3F INI_TX_SABM
+	
+    0x73 RSP_TX_UA          /*responsor send out UA command                    */
+    0x73 UA_WFBIT_SET	    /* UA control field with F bit set                 */
+	
+    0xEF RSP_RX_UIH         /*responsor expect UIH from initiator              */
+
+    0xEF RSP_TX_UIH         /*responsor send UIH to initiator                  */
+     
+    0x1F RSP_TX_DM          /*responsor send DM to initiator                   */
+    0x1F DM_WFBIT_SET       /* DM control field with F bit set                 */
+    0x0F DM_WFBIT_CLEAR     /* DM control field with F bit clear               */
+
+    0x53 RSP_RX_DISC        /*responsor expect DISC from initiator             */
+    0x53 INI_TX_DISC	    /*initiator send DISC control type command         */
+     
+    0xFF RSP_RX_UIH_WDATA   /*UIH data with credit flow control info           */
+    
+    
+  )
+
+/* Multiplexor commands and responses frames */
+  (
+    0x83 PN_COMMAND           /* Bit 0 EA C/R Type = 000001         */
+    0x81 PN_RESPONSOR         /* Bit 0 EA C/R Type = 000001         */
+    
+    0xE3 MSC_COMMAND          /* Bit 0 EA C/R Type = 000111         */
+    0xE1 MSC_RESPONSOR
+ 
+    0x13 NSC_COMMAND          /* Bit 0 EA C/R Type = 001000         */
+    0x11 NSC_RESPONSOR        /* Bit 0 EA C/R Type = 001000         */
+
+    0x23 TEST_COMMAND         /* Bit 0 EA C/R Type = 000111         */
+    0x21 TEST_RESPONSOR 
+    
+    0x93 RPN_COMMAND          /* Bit 0 EA C/R Type = 001001         */
+    0x91 RPN_RESPONSOR 
+    
+    0x53 RLS_COMMAND          /* Bit 0 EA C/R Type = 001010         */
+    0x51 RLS_RESPONSOR 
+
+    0xA3 FCON_COMMAND         /* Bit 0 EA C/R Type = 000101         */
+    0xA1 FCON_RESPONSOR 
+    
+    0x63 FCOFF_COMMAND        /* Bit 0 EA C/R Type = 000110         */
+    0x61 FCOFF_RESPONSOR 
+    	
+    0x03 RLS_OVERRUN
+    0x05 RLS_PARITY_ERROR
+    0x09 RLS_FRAMING_ERROR
+  )
+
+/* memLocalCredit */
+  (
+    0x01 RFCOMM_CREDIT
+  )
+
+  (
+  	0x007f RFCOMM_MAX_FRAME_SIZE
+  )
+
+/* UIH received Data length */
+  (
+    0  LENGTH_ZERO
+    
+    6  LENGTH_OK
+    7  LENGTH_HOT
+    8  LENGTH_RING
+    9  LENGTH_ERROR
+    9  LENGTH_AGVOL_ONEBYTE
+    10 LENGTH_AGVOL_TWOBYTE
+    10 LENGTH_VOL_ONEBYTE
+    11 LENGTH_VOL_TWOBYTE
+    12 LENGTH_BRSF
+    13 LENGTH_PLUS_CIEV
+    15 LENGTH_INBANDRING
+    14 LENGTH_CIEV_CALL
+    17 LENGTH_CRING
+    20 LENGTH_BRSF_OK
+    24 LENGTH_CIND0
+    28 LENGTH_CIEV_TWO
+    32 LENGTH_CIND_OK
+    59 LENGTH_CIND_OK2
+    100 LENGTH_DISCARD
+  )
+  
+/************/
+/* flags    */
+/************/
+  
+/* memRFCOMM_L2CAP_Interface */
+  (
+    0 RFCOMM_TX_W4BUF_FLAG    /* Wait for Tx buffer empty flag */
+    1 RFCOMM_CLOSE_LINK_FLAG
+  )
+  
+
+    
+/* memRemoteMSC		*/
+  (
+    0 MSC_EA_BIT
+    1 MSC_FC_BIT
+    2 MSC_RTC_BIT
+    3 MSC_RTR_BIT
+    6 MSC_IC_BIT
+    7 MSC_DV_BIT
+  )
+
+/* memRemoteRLS         */
+  (
+    0x0C OVERRUN_ERROR
+    0x0A PARITY_ERROR
+    0x09 FRAMING_RERROR
+  )
+  
+/* memRemoteRPNBitRate  */
+  (
+    0x00 BITS2400
+    0x01 BITS4800
+    0x02 BITS7200
+    0x03 BITS9600
+    0x04 BITS19200
+    0x05 BITS38400
+    0x06 BITS57600
+    0x07 BITS115200
+    0x08 BITS230400
+  )
+  
+/* memRemotePRNDataBits	*/
+  (
+    0x00 DATABITS5
+    0x01 DATABITS6
+    0x02 DATABITS7
+    0x03 DATABITS8
+  )
+  
+/* memRemotePRNStopBit	*/
+  (
+    0    ONESTOP
+    1    ONEHALFSTOP
+  )
+  
+/* memRemotePRNParity   */
+  (
+    0    ODDPARITY
+    1    EVENPARITY
+    2    MARKPARITY
+    3    SPACEPARITY
+    
+    7    PARITY_ENABLE_BIT
+  )
+
+/* RPN bit mask(in)     */
+  (
+     0   BIT_RATE_MASK_BIT
+     1   DATA_BITS_MASK_BIT
+     2   STOP_BITS_MASK_BIT
+     3   PARITY_MASK_BIT
+     4   PARITY_TYPE_MASK_BIT
+     5   XON_CHAR_MASK_BIT
+     6   XOFF_CHAR_MASK_BIT
+  )
+  
+/* RPN bit mask(in) 2    */
+  (
+     0   XON_XOFF_INPUT_MASK_BIT
+     1   XON_XOFF_OUTPUT_MASK_BIT
+     2	 RTR_INPUT_MASK_BIT
+     3   RTR_OUTPUT_MASK_BIT
+     4   RTC_INPUT_MASK_BIT
+     5   RTC_OUTPUT_MASK_BIT
+
+  )
+
+/* memRFCOMM_Request	*/
+  (
+    0 SEND_MSC_CMD_REQ_FLAG
+    1 SEND_AT_CKPD_REQ_FLAG
+    2 SEND_RING_REQ_FLAG
+    3 SEND_SABM_CMD
+  )
+  
+/* memRFCOMM_Misc_Flag  */
+  (
+    0 MSC_CDM_ALREADY_SEND_FLAG
+    1 CREDIT_FLOW_USED_FLAG
+    2 DONT_EMBEDDED_CREDIT_FLAG 
+    3 MSC_EXCHANGE_DONE_FLAG
+    4 FLOW_CONTROL_FCOFF_BIT            /* set when receive FCoff, clear when FCon   */
+  )
+  
+/* memRemoteMSC		*/
+  (
+    1 FLOW_CONTROL_FC_BIT		/* received MSC FC bits                      */
+  
+  )
+/* Address filed        */
+  (
+    0 ADDR_EA_BIT
+    1 ADDR_CR_BIT
+    2 ADDR_D_BIT
+  )
+//should be same as descripted in SDP
+(
+    1 SPP_SLAVE_CHANNEL
+    7 OBEX_SERVER_CHANNEL
+    8 HF_SERVER_CHANNEL 
+    9 HS_SERVER_CHANNEL
+)
+/* memRFCOMM_Flag */
+(
+	0 USING_HF_PROFILE
+	1 USING_HS_PROFILE
+	2 USING_SPP_PROFILE
+)
+/*RFCOMM Frame Type*/
+(
+	0x3f RFCOMM_FRAME_TYPE_SABM
+	0x73 RFCOMM_FRAME_TYPE_UA
+	0xEF RFCOMM_FRAME_TYPE_UIH
+	0xFF RFCOMM_FRAME_TYPE_UIH_CREDITS
+	0x53 RFCOMM_FRAME_TYPE_DISCONN
+)
+/*RFCOMM UIH CMD TYPE*/
+(
+	0x41 UIH_PARAM_NEG_CMD
+	0x40 UIH_PARAM_NEG_RES
+	0x49 UIH_PARAM_CMD_REMOVE_PORT
+	0x71 UIH_MODEM_STATUS_CMD
+	0x70 UIH_MODEM_STATUS_RES
+)
+
+/*bits in rfcomm address*/
+(
+	0 RFCOMM_ADDRESS_EXT_LEN
+	1 RFCOMM_ADDRESS_CR
+	2 RFCOMM_ADDRESS_DERECTION
+
+
+)
+
+	(                                   
+	0 RFCOMM_CHANNEL_STATE_PN_CMD
+	1 RFCOMM_CHANNEL_STATE_PN_RES
+	2 RFCOMM_CHANNEL_STATE_SABM
+	3 RFCOMM_CHANNEL_STATE_UA
+	4 RFCOMM_CHANNEL_STATE_SND_MS_CMD
+	5 RFCOMM_CHANNEL_STATE_RCV_MS_CMD
+	6 RFCOMM_CHANNEL_STATE_SND_MS_RES
+	7 RFCOMM_CHANNEL_STATE_RCV_MS_RES
+	0xff RFCOMM_CHANNEL_SETUP_COMPLETE
+	) 
+
+	/*mem_rfcomm_send_more_pkt*/
+	(
+	1 MORE_PKT_MSC_CMD_HF
+	2 MORE_PKT_MSC_CMD_HS
+	3 MORE_PKT_MSC_CMD_SPP
+	4 MORE_PKT_MSC_CMD_OBEX
+	)
+
+	(
+	127 RFCOMM_MALLOC_SIZE
+	)
\ No newline at end of file
Index: DpiSwitch/format/sdp.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/sdp.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/sdp.format	(working copy)
@@ -0,0 +1,70 @@
+
+memalloc(
+0 mem_sdp_mem_start
+8 mem_sdp_uuid_search_ptr
+2 mem_sdp_continue_byte
+1 mem_sdp_pduid
+2 mem_sdp_transactionid
+2 mem_sdp_transactionid_local
+2 mem_sdp_attribute_maxbyte
+2 mem_sdp_record_maxcnt
+4 mem_sdp_record_handle
+1 mem_sdp_LACAP_found
+1 mem_sdp_RFCOMM_found
+0 mem_sdp_handle_list
+32 mem_sdp_attrib_list
+2 mem_sdp_error_code
+2 mem_sdp_all_length
+1 mem_handle_humber
+2 mem_search_uuid
+0 mem_sdp_mem_end
+)
+xmemalloc(
+2 mem_ui_uuid_table
+22 mem_all_uuid_16bits
+34 mem_all_uuid_128bits
+2 mem_sdp_l2capch_ptr
+)
+(
+0 AGORHS_SERVICE
+1 GENAUDIO_SERVICE
+2 HANDSFREE_SERVICE
+)
+(
+0 ATTRIBUTEID_0000
+1 ATTRIBUTEID_0001
+2 ATTRIBUTEID_0004
+3 ATTRIBUTEID_0009
+4 ATTRIBUTEID_0100
+5 ATTRIBUTEID_0302
+6 ATTRIBUTEID_0006
+7 ATTRIBUTEID_0311
+)
+
+(
+0x01 SDP_ERROR_RES
+0x02 SDP_SEARCH_REQ
+0x03 SDP_SEARCH_RES
+0x04 SDP_ATTRIBUTE_REQ
+0x05 SDP_ATTRIBUTE_RES
+0x06 SDP_SEARCHATTRIB_REQ
+0x07 SDP_SEARCHATTRIB_RES
+)
+0x2600 sdp_max_amount
+250 SDP_MALLOC_SIZE
+0x6e sdp_tid_spp //any number
+
+(
+0x1f11 SDP_UUID_HS_AUDIO_GATEWAY
+)
+
+(
+0X09 SDP_ATTRIBUTE_ID
+0x0a SDP_ATTRIBUTE_RANGE
+)
+
+(//mem_sdp_handle_list
+7 SDP_MAX_HANDLE_NUMBER
+)
+
+ 
Index: DpiSwitch/format/security.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/security.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/security.format	(working copy)
@@ -0,0 +1,141 @@
+
+memalloc(
+/* moved from bt.format for 3dh5 1021bytes packet buffer */
+17 mem_rxbuf
+
+16 mem_random_number
+16 mem_round_key
+16 mem_kinit
+
+16 mem_input_store
+16 mem_x
+15 mem_y
+1 mem_y15
+17 mem_key_store
+1 mem_key_store_end
+2 memp_ar_key
+2 memp_ar_input
+10 mem_ar_hround
+
+
+1 mem_ec_infinite
+2 mem_ec_loopc
+1 mem_aes_cmac_data_length
+
+0 memdat
+/* ecc calculation */
+
+24 mem_ax
+24  mem_ay
+24  mem_az
+24 mem_bx
+0 mem_ax_256 //32 bytes
+24 mem_by
+8 mem_bz
+16 mem_ay_256 // 32 bytes
+16 mem_cx
+8 mem_az_256 // 32 bytes
+23 mem_cy
+1 mem_cy5
+0 mem_bx_256 // 32 bytes
+24 mem_cz
+8  mem_k
+16 mem_by_256 // 31 bytes
+16 mem_align
+
+0 mem_bz_256  //32 bytes
+0 mem_tmp1
+24 memahbak
+8 mem_tmp5
+0 mem_cx_256  //32 bytes
+16 memahsave
+16  mem_tmp2
+0 mem_cy_256  // 32 bytes
+0  memahsave_end 
+1  mem_addr_padding 
+7   mem_addr_value         /* 12 bytes     */ 
+0 mem_tmp3
+5 mem_t1
+3  mem_addr_value_end   
+15 mem_addr_iocap_end
+1 mem_cy5_256 // 1 byte
+0 mem_cz_256 // 32 bytes
+0 mem_tmp0
+8 mem_t0
+16 mem_tmp0a
+8  mem_t2
+16 mem_k_256 //32 bytes
+16 mem_t3
+8  mem_tmp1_256 //32 bytes
+24 mem_t7
+
+
+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
+
+//p256
+//2 mem_ec_loopc_256
+//32 mem_ax_256
+//32 mem_ay_256
+//32 mem_az_256
+//32 mem_bx_256
+//32 mem_by_256
+//32 mem_bz_256
+//32 mem_cx_256
+//31 mem_cy_256
+//1 mem_cy5_256
+//32 mem_cz_256
+//32 mem_k_256
+
+
+//32 mem_tmp1_256
+//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
+
+32 mem_p_256		
+32 mem_a_256
+32 mem_gx_256
+32 mem_gy_256
+//4 mem_le_keyid
+16 mem_le_slat
+
+
+//64 mem_regext
+//1 mem_regext_index
+
+//16 mem_le_mackey
+
+
+//1 mem_AES_CMAC_flag
+//16 mem_AES_CMAC_temp
+//16 mem_AES_CMAC_M_last
+
+//4 mem_le_gkey
+
+//16 mem_le_r
+
+)
+
+
Index: DpiSwitch/format/simple_pairing.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/simple_pairing.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/simple_pairing.format	(working copy)
@@ -0,0 +1,188 @@
+/* simple pairing page */
+
+memalloc(
+
+//4 mem_hci_ssp_mode
+0 mem_sp_state_start
+1 mem_sp_state
+1 mem_master_sp_state
+1 mem_sp_flag
+1 mem_master_sp_flag
+1 mem_sp_calc
+1 mem_sp_dh_ready
+1 mem_sp_localsm
+1 mem_pairing_auth
+
+0 mem_sp_flag_start
+1 mem_sp_local_key_send_count
+1 mem_sp_remote_key_recv_count
+1 mem_sp_remote_key_invalid
+1 mem_sp_dhkey_invalid
+
+
+4 mem_gkey
+
+
+8 mem_le_pubkey_remote_x_256
+0 mem_sp_pubkey_remote
+24 mem_sp_pubkey_remote_x
+0 mem_sp_pubkey_remote_x_end
+8 mem_le_pubkey_remote_y_256
+24 mem_sp_pubkey_remote_y
+
+8 mem_le_dhkey_256
+24 mem_sp_dhkey
+0 mem_sp_dhkey_end
+
+16 mem_sp_random_local
+0 mem_sp_random_local_end
+16 mem_sp_random_remote
+0 mem_sp_random_remote_end
+0 memresult
+0 mem_sp_calc_result
+4 memh
+4 memg
+4 memf
+4 meme
+0 mem_sp_calc_result_high
+4 memd
+4 memc
+4 memb
+4 mema
+16 mem_sp_check_result
+16 mem_sp_confirm_remote
+16 mem_sp_prarm_stack
+)
+
+xmemalloc(
+1 mem_sp_local_key_invalid
+
+
+32 mem_le_private_key_256
+32 mem_le_pubkey_local_x_256
+32 mem_le_pubkey_local_y_256
+
+24 mem_sp_private_key
+0 mem_sp_pubkey_local
+24 mem_sp_pubkey_local_x
+0 mem_sp_pubkey_local_x_end
+24 mem_sp_pubkey_local_y
+
+1 mem_ssp_enable
+3 mem_sp_iocap_local
+3 mem_sp_iocap_remote
+
+1 mem_flag_mode_ssp_pin
+1 mem_ssp_mode_flag
+1 mem_authentication_passkey_times
+1 mem_passkey_1bit
+1 mem_flag_pairing_state
+
+)
+/* simple pairing status flag */
+(
+  0x00   SP_FLAG_STANDBY
+  0x01   SP_FLAG_COMMIT
+  0x02   LE_SP_FLAG_COMMIT_256
+
+)
+
+/* simple pairing calc flag */
+(
+  0x00   SP_CALC_STANDBY
+  0x01   SP_CALC_PUBKEY
+  0x02   SP_CALC_DHKEY
+  0x03   SP_CALC_PUBKEY_256
+  0x04   SP_CALC_DHKEY_256
+)
+
+/* simple pairing state */
+(
+  0x00   SP_STAT_NULL
+  0x01   SP_STAT_KEY_RECV
+  0x02   SP_STAT_KEY_GENERATE
+  0x03   SP_STAT_KEY_SEND
+  0x04   SP_STAT_COMMIT_CALC
+  0x05   SP_STAT_COMMIT_SEND
+  0x06   SP_STAT_RANDOM_RECV
+  0x07   SP_STAT_RANDOM_SEND
+  0x08   SP_STAT_CONFIRM_RECV
+  0x09   SP_STAT_CONFIRM_CHECK
+  0x0A   SP_STAT_CONFIRM_CALC
+  0x0B   SP_STAT_CONFIRM_SEND
+  0x0C   SP_STAT_LINK_KEY_CALC
+  0x0F   SP_STAT_DONE
+  0x10   SP_STAT_FEATURE_EXT_SEND
+  0x11   SP_STAT_GKEY_CALC
+  /*simple pairing master only*/
+  0x12   SP_MASTER_STAT_START_SKIP
+  0x13   SP_MASTER_STAT_START_DONE
+  0x14   SP_STAT_COMMITMENT_COMPARE
+  0x15   SP_STATE_END
+)
+
+
+/* simple paring invalid flag */
+(
+  0x00   SP_KEY_INVALID
+  0x01   SP_KEY_VALID
+  0x03   SP_KEY_VALID_256
+
+)
+
+/* encapsulated defination for P-192 key */
+(
+  0x01  ENCAPSULATED_MAJOR_TYPE_P192
+  0x01  ENCAPSULATED_MINOR_TYPE_P192
+  0x30  ENCAPSULATED_LEN_P192
+)
+
+/* bluetooth 2.1 support flag */
+(
+  0x00  SIMPLE_PAIRING_ENABLE
+  0x01  ENCRYPTION_PAUSE_ENABLE
+  0x02  EXTENDED_INQUIRY_RESPOSE_ENABLE
+  0x03  SNIFF_SUBRATING_ENABLE
+)
+
+/*mem_sp_localsm*/
+(
+  0x00 DEFAULT_STATEMACHINE
+  0x01 LOCAL_STATEMACHINE
+)
+
+(
+ 0x00 DEFALT_PAIRING_AUTH
+ 0x01 PAIRING_AUTH
+)
+
+(
+1 SSP_MODE_SSP_PIN_FLAG
+2 SSP_MODE_PASSKEY_ENTRY_FLAG
+3 SSP_MODE_JUST_WORK_FLAG
+)
+
+(//ssp mode
+0x040003 SSP_MODE_JUST_WORK_IO_CAP_DATA
+0X040001 SSP_MODE_SSP_PIN_IO_CAP_DATA
+0X040002 SSP_MODE_PASSKEY_IO_CAP_DATA
+)
+
+(
+0x00 DISPLAY_ONLY
+0x01 DISPLAY_YESNO
+0x02 KEYBOARD_ONLY
+0x03 NO_INPUT_NO_OUTPUT
+)
+
+(
+7 FLAG_MODE_SSP_PIN_REVICEVE_COMPARISON_BIT
+6 FLAG_MODE_SSP_PIN_RECIEVE_DHKEY_BIT
+0 FLAG_MODE_SSP_PIN_COMPARISON_RESULT_BIT
+)
+(
+1 FLAG_PAIRING_STATE_PAIRING
+0 FLAG_PAIRING_STATE_NOT_PAIRING
+)
+
+  
Index: DpiSwitch/format/ui.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/ui.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/ui.format	(working copy)
@@ -0,0 +1,448 @@
+/*****************************************************************************/
+/* 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(
+2 mem_UI_data_txbuff_length
+
+1 mem_ipc_skip_continue_proc
+0 mem_ui_timer_temp  //length 4
+4 mem_ipc_rega_temp
+) 
+
+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_discovery_timeout_timer_count
+1 mem_hid_handshake_timer_count
+1 memui_reconnect_mode
+2 mem_ui_state_map
+
+//UI Config area
+1 mem_ui_profile_supported
+1 mem_ui_button_timeout
+1 mem_ui_button_gpio
+2 mem_discovery_timeout
+1 mem_pin_length
+16 mem_pin
+
+)
+/************/
+/* constant */
+/************/
+
+//mem_ui_state_map
+(
+0 UI_STATE_BT_CONNECTED
+1 UI_STATE_BT_SETUP_COMPLETE
+2 UI_STATE_BT_HID_CONN
+3 UI_STATE_BT_HID_HANDSHAKE
+4 UI_STATE_BT_SPP_CONN
+5 UI_STATE_BT_SNIFF
+6 UI_STATE_BT_DISCOVERY
+7 UI_STATE_BT_RECONNECT
+8 UI_STATE_BT_SLAVE_ROLE
+9 UI_STATE_BLE_CONNECTED
+10 UI_STATE_BLE_WRITE_RCV
+11 UI_STATE_BLE_ADV
+12 UI_STATE_BTN_DOWN
+)
+
+(
+1 UI_STATE_SPP_NL_AUTO_DISCOVER
+
+)
+
+/* UI state for Headset (memui_HS_State) */ 
+   (
+    0 UI_HEADSET_DISCONNECT
+    1 UI_HEADSET_IDLE                   /* before the responsor HS receive SABM      */
+    2 UI_HEADSET_W4CONNECT
+    3 UI_HEADSET_RINGING
+    4 UI_HEADSET_CONNECTED
+    5 UI_HEADSET_PARING
+  )
+/* memui_BB_State */
+(
+  0 UI_BB_OFF
+  1 UI_BB_IDLE
+  2 UI_BB_DISCOVERY
+  3 UI_BB_CONNECTED_ACTIVE_NO_SCO
+  4 UI_BB_CONNECTED_ACTIVE_WITH_SCO
+  5 UI_BB_CONNECTED_ACTIVE_WAIT_SNIFF
+  6 UI_BB_CONNECTED_SNIFF
+  7 UI_BB_RECONNECT
+  8 UI_BB_CONNECTED_SNIFF_WITH_SCO
+)
+
+/************/
+/* flags    */
+/************/
+  
+/* memui_Misc_Flags */
+  (
+    5 NO_IDLE_TURN_OFF
+    7 ANSWER_RING_FLAG               /* 1 Answer,0 no*/
+  )
+
+/* mem_UI_SCH_Interface */
+  (
+    0  UI_HS_PAIRING 
+    2  UI_REQ_CLOSE_RFCOMM
+    3  UI_LINK_LOST
+    4  UI_REQ_OPEN_SCO
+    6  UI_REQ_CLOSE_SCO
+  )
+  
+/* memui_PassOverKey */
+  (
+    0  ANSWER_RING_BIT
+    0  AG_SEND_RING_BIT
+    1  VOL_UP_BIT
+    2  VOL_DOWN_BIT
+    3  INI_CALL_BIT
+    4  DAIL_LAST_CALL
+    5  END_CALL_BIT
+    6  NOKIA_VOICE_ACTIVE 
+    7  REJECT_CALL_BIT
+  )
+  
+/* memui_reconnect_mode */
+(
+  0 NO_RECONNECTION
+  1 RECONNECT_HID
+  2 RECONNECT_HF
+  3 RECONNECT_HS
+  4 RECONNECT_HID_HF
+  5 RECONNECT_HID_HS
+)
+/* memui_Commands */
+(
+0 BT_CMD_STANDBY
+1 BT_CMD_START_DISCOVERY
+2 BT_CMD_STOP_DISCOVERY
+3 BT_CMD_RECONNECT
+4 BT_CMD_DISCONNECT
+5 BT_CMD_ENTER_SNIFF
+6 BT_CMD_EXIT_SNIFF
+7 BT_CMD_ENTER_SNIFF_SUBRATING
+8 BT_CMD_EXIT_SNIFF_SUBRATING
+9 BT_CMD_SNIFF_TEST
+10 BT_CMD_SET_PIN_CODE
+11 BT_CMD_START_INQUIRY
+12 BT_CMD_STOP_INQUIRY
+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
+29 BT_CMD_ROLE_SWITCH
+30 BT_CMD_BB_RECONN_CANCEL
+31 BT_CMD_STORE_RECONN_INFO_LE
+32 BT_CMD_STORE_RECONN_INFO_BT
+33 BT_CMD_DHKEY_NOT_ACCEPT
+34 BT_CMD_START_24G
+35 BT_CMD_STOP_24G
+36 BT_CMD_PAIR_24G
+37 BT_CMD_STORE_RECONN_INFO
+)
+
+(
+0x00 BT_EVT_NULL
+0x01 BT_EVT_BB_CONNECTED
+0x02 BT_EVT_BB_DISCONNECTED
+0x03 BT_EVT_RECONN_STARTED
+0x04 BT_EVT_RECONN_FAILED
+0x05 BT_EVT_SETUP_COMPLETE
+0x06 BT_EVT_HID_CONNECTED
+0x07 BT_EVT_HID_DISCONNECTED
+0x08 BT_EVT_SPP_CONNECTED
+0x09 BT_EVT_SPP_DISCONNECTED
+0x0A BT_EVT_PINCODE_REQ
+0x0B BT_EVT_ENTER_SNIFF
+0x0C BT_EVT_EXIT_SNIFF
+0x0D BT_EVT_ENTER_SNIFF_SUB
+0x0E BT_EVT_EXIT_SNIFF_SUB
+0x0F BT_EVT_DISCOVERY_STOPED
+0x10 BT_EVT_BUTTON_LONG_PRESSED
+0x12 BT_EVT_HID_HANDSHAKE
+0X13 BT_EVT_RECONN_PAGE_TIMEOUT
+0x14 BT_EVT_LE_CONNECTED
+0X15 BT_EVT_LE_DISCONNECTED
+0x16 BT_EVT_ML2CAP_CONN_REFUSED
+0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
+0x18 BT_EVT_LINKKEY_GENERATE
+0x19 BT_EVT_SWITCH_NOT_ACCEPT
+0x20 BT_EVT_SWITCH_ACCEPT
+0x21 BT_EVT_SNIFF_NOT_ACCEPT
+0x22 BT_EVT_SNIFF_ACCEPT
+0x23 BT_EVT_UNSNIFF_ACCEPT
+0x24 BT_EVT_UNSNIFF_NOT_ACCEPT
+0x25 BT_EVT_BUTTON_ADJUST_DPI
+0x26 BT_EVT_SEND_UNSNIFF_ACCEPT
+0x27 BT_EVT_VIRTUAL_CABLE_UNPLUG
+0x28 BT_EVT_LE_WRITE_REQUEST
+0x29 BT_EVT_LE_ENC_INFO
+0x2a BT_EVT_SWITCH_FAIL_MASTER
+0x2b BT_EVT_SWITCH_SUCCESS_MASTER
+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
+0x37 BT_EVT_BT_PAIRING_FAIL
+0x38 BT_EVT_BT_PAIRING_SUCCESS
+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
+)
+//switch
+(
+0 OFF
+1 ON
+)
+/* memui_mem_lock */
+(
+    0 MEM_UNLOCK
+    1 MEM_LOCK
+)
+/* memui_flag0 */
+(
+    0 UI_USER_DATA_FLAG
+    1 UI_WII_WAITING_SLEEP
+    2 UI_KEYBOARD_SNIFF_SKIP
+)
+/* mem_master_type */
+(
+    0 MTYPE_HID_DEFAULT
+    1 MTYPE_HID_SSP
+    2 MTYPE_SPP
+)
+
+	(	
+	0x01 RECIEVE_SDP_CONN_RES
+	0x02 RECIEVE_SDP_CFG_REQ
+	0x03 RECIEVE_SDP_CFG_RES
+	0x04 RECIEVE_RFCOMM_CONN_RES
+	0x05 RECIEVE_RFCOMM_CFG_REQ
+	0x06 RECIEVE_RFCOMM_CFG_RES
+	0x07 RECIEVE_HID_CTRL_CONN_RES
+	0x08 RECIEVE_HID_CTRL_CFG_REQ
+	0x09 RECIEVE_HID_CTRL_CFG_RES
+	0x0A RECIEVE_HID_INT_CONN_RES
+	0x0B RECIEVE_HID_INT_CFG_REQ
+	0x0C RECIEVE_HID_INT_CFG_RES
+	0x0D RECIEVE_AVCTP_CONN_RES
+	0x0E RECIEVE_AVCTP_CFG_REQ
+	0x0F RECIEVE_AVCTP_CFG_RES
+	0x10 RECIEVE_AVDTP_SIGNAL_CONN_RES
+	0x11 RECIEVE_AVDTP_SIGNAL_CFG_REQ
+	0x12 RECIEVE_AVDTP_SIGNAL_CFG_RES
+	0x13 RECIEVE_AVDTP_MEDIA_CONN_RES
+	0x14 RECIEVE_AVDTP_MEDIA_CFG_REQ
+	0x15 RECIEVE_AVDTP_MEDIA_CFG_RES
+	0x16 RECIEVE_SS_REASULT_HS                  
+	0x17 RECIEVE_SS_REASULT_HF                  
+	0x18 RECIEVE_SS_REASULT_AVTARG		          
+	0x19 RECIEVE_SS_REASULT_OBEX		            
+	0x1A RECIEVE_DLCI0_UA
+	0x1B RECIEVE_HS_PARAM_NEG_RES
+	0x1C RECIEVE_HS_UA
+	0x1D RECIEVE_HS_MODEM_STATUS_RES
+	0x1E RECIEVE_HS_MODEm_STATUS_CMD
+	0x1F RECIEVE_HF_PARAM_NEG_RES   
+	0x20 RECIEVE_HF_UA              
+	0x21 RECIEVE_HF_MODEM_STATUS_RES
+	0x22 RECIEVE_HF_MODEm_STATUS_CMD 
+	0x23 RECIEVE_OBEX_PARAM_NEG_RES     
+	0x24 RECIEVE_OBEX_UA              
+	0x25 RECIEVE_OBEX_MODEM_STATUS_RES
+	0x26 RECIEVE_OBEX_MODEm_STATUS_CMD    
+	0x27 RECIEVE_SPP_PARAM_NEG_RES   
+	0x28 RECIEVE_SPP_UA              
+	0x29 RECIEVE_SPP_MODEM_STATUS_RES
+	0x2A RECIEVE_SPP_MODEm_STATUS_CMD
+	0x2b RECIEVE_SDP_DISCONN_RES
+	)
+
+
+
+	(
+	0 UPPERSM_RP_IDLE
+	1 UPPERSM_RP_SDP_CONN
+	2 UPPERSM_RP_SDP_CONN_WAIT
+	3 UPPERSM_RP_SDP_CFG
+	4 UPPERSM_RP_SDP_CFG_WAIT
+	5 UPPERSM_RP_SS_AVTARG
+	6 UPPERSM_RP_SS_AVTARG_WAIT
+	7 UPPERSM_RP_SS_OBEX
+	8 UPPERSM_RP_SS_OBEX_WAIT
+	9 UPPERSM_RP_SDP_DISCONN
+	10 UPPERSM_RP_SDP_DISCONN_WAIT
+	11 UPPERSM_RP_AVDTP_CONN_WAIT
+	12 UPPERSM_RP_AVCTP_CONN
+	13 UPPERSM_RP_AVCTP_CONN_WAIT
+	14 UPPERSM_RP_AVCTP_CFG
+	15 UPPERSM_RP_AVCTP_CFG_WAIT
+	16 UPPERSM_RP_OBEX_CMD_PN
+	17 UPPERSM_RP_OBEX_CMD_PN_WAIT
+	18 UPPERSM_RP_OBEX_SABM
+	19 UPPERSM_RP_OBEX_SABM_WAIT
+	20 UPPERSM_RP_OBEX_CMD_MS
+	21 UPPERSM_RP_OBEX_CMD_MS_WAIT
+	)
+	(		/*mem_upper_sm_reconn*/
+	0 UPPERSM_RECONN_IDLE		
+	1 UPPERSM_RECONN_SDP_CONN		
+	2 UPPERSM_RECONN_SDP_CONN_WAIT		
+	3 UPPERSM_RECONN_SDP_CFG		
+	4 UPPERSM_RECONN_SDP_CFG_WAIT		
+	5 UPPERSM_RECONN_SS_HS
+	6 UPPERSM_RECONN_SS_HS_WAIT
+	7 UPPERSM_RECONN_SS_HF
+	8 UPPERSM_RECONN_SS_HF_WAIT
+	9 UPPERSM_RECONN_SS_AVTARG		
+	10 UPPERSM_RECONN_SS_AVTARG_WAIT		    
+	11 UPPERSM_RECONN_SS_OBEX		            
+	12 UPPERSM_RECONN_SS_OBEX_WAIT		      
+	13 UPPERSM_RECONN_SDP_DISCONN		        
+	14 UPPERSM_RECONN_SDP_DISCONN_WAIT      
+	15 UPPERSM_RECONN_HID_CTRL_CONN		      
+	16 UPPERSM_RECONN_HID_CTRL_CONN_WAIT		
+	17 UPPERSM_RECONN_HID_CTRL_CFG		      
+	18 UPPERSM_RECONN_HID_CTRL_CFG_WAIT     
+	19 UPPERSM_RECONN_HID_INT_CONN		      
+	20 UPPERSM_RECONN_HID_INT_CONN_WAIT		  
+	21 UPPERSM_RECONN_HID_INT_CFG		        
+	22 UPPERSM_RECONN_HID_INT_CFG_WAIT      
+	23 UPPERSM_RECONN_RFCOMM_CONN		        
+	24 UPPERSM_RECONN_RFCOMM_CONN_WAIT		  
+	25 UPPERSM_RECONN_RFCOMM_CFG		        
+	26 UPPERSM_RECONN_RFCOMM_CFG_WAIT       
+	27 UPPERSM_RECONN_RFCOMM_SABM		        
+	28 UPPERSM_RECONN_RFCOMM_SABM_WAIT		  
+	29 UPPERSM_RECONN_SPP_CMD_PN		        
+	30 UPPERSM_RECONN_SPP_CMD_PN_WAIT		    
+	31 UPPERSM_RECONN_SPP_SABM		          
+	32 UPPERSM_RECONN_SPP_SABM_WAIT		      
+	33 UPPERSM_RECONN_SPP_CMD_MS		        
+	34 UPPERSM_RECONN_SPP_CMD_MS_WAIT       
+	35 UPPERSM_RECONN_HF_CMD_PN		          
+	36 UPPERSM_RECONN_HF_CMD_PN_WAIT		    
+	37 UPPERSM_RECONN_HF_SABM		            
+	38 UPPERSM_RECONN_HF_SABM_WAIT		      
+	39 UPPERSM_RECONN_HF_CMD_MS		          
+	40 UPPERSM_RECONN_HF_CMD_MS_WAIT        
+	41 UPPERSM_RECONN_AVDTPs_CONN		        
+	42 UPPERSM_RECONN_AVDTPs_CONN_WAIT		  
+	43 UPPERSM_RECONN_AVDTPs_CFG		        
+	44 UPPERSM_RECONN_AVDTPs_CFG_WAIT       
+	45 UPPERSM_RECONN_AVDTPm_CONN		        
+	46 UPPERSM_RECONN_AVDTPm_CONN_WAIT		  
+	47 UPPERSM_RECONN_AVDTPm_CFG		        
+	48 UPPERSM_RECONN_AVDTPm_CFG_WAIT       
+	49 UPPERSM_RECONN_AVCTP_CONN		        
+	50 UPPERSM_RECONN_AVCTP_CONN_WAIT		    
+	51 UPPERSM_RECONN_AVCTP_CFG		          
+	52 UPPERSM_RECONN_AVCTP_CFG_WAIT		    
+	53 UPPERSM_RECONN_OBEX_CMD_PN		        
+	54 UPPERSM_RECONN_OBEX_CMD_PN_WAIT		  
+	55 UPPERSM_RECONN_OBEX_SABM		          
+	56 UPPERSM_RECONN_OBEX_SABM_WAIT		    
+	57 UPPERSM_RECONN_OBEX_CMD_MS		        
+	58 UPPERSM_RECONN_OBEX_CMD_MS_WAIT     
+	59 UPPERSM_RECONN_SS_SPP
+	60 UPPERSM_RECONN_SS_SPP_WAIT
+	)
+	(/*mem_UI_profile_supported*/
+	0 support_HID
+	1 support_A2DP
+	2 support_AVRCP
+	3 support_HF
+	4 support_HS
+	5 support_PBAP
+	6 support_SPP
+	)
+	/*mem_upper_sm_ss*/
+	(
+	0 UPPERSM_SS_HS
+	1 UPPERSM_SS_HF
+	2 UPPERSM_SS_AVTARG
+	3 UPPERSM_SS_OBEX
+	)
+
+	(
+	160 UI_HUNDRED_MILLISECOND_TIME
+	0XFF UI_BUTTON_GPIO_DISABLE
+	)
+	(
+	0x01 UI_BB_INCONNECT
+	0x10 UI_BB_DISCONNECT
+	)
+(
+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: DpiSwitch/format/utility.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/utility.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/utility.format	(working copy)
@@ -0,0 +1,381 @@
+/**
+*  @file:bt_utility_format.upper
+*  @author: lei.zhu
+*  utility header file. inlcude timer
+*  Copyright:  (C)Hanlynn Technology    
+*/
+
+memalloc(
+
+/*
+    temp parameter
+*/
+2 mem_hold_contr
+2 mem_hold_contw
+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
+
+1 mem_wakup_from_power_flag
+4 mem_saved_gpio_in
+
+0 mem_shutter_random_mac_data_temp
+0 mem_shutter_config_data_temp
+0 mem_le_adv_channel_map_temp
+0 mem_le_data_len_temp	//1byte
+0 mem_tx_fifo_map_temp
+0 mem_rpn_dlci		//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_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
+
+1 mem_usb_status
+1 mem_usb_fifo_empty
+1 mem_usb_read_len
+64 mem_usb_rxbuf
+2 mem_bufptr
+1 mem_remain
+20 mem_devicedesc
+2 mem_hidreportdesc_kb
+2 mem_hidreportdesc_m
+100 mem_confdesc
+5 mem_string0
+30 mem_string1
+64 mem_string2
+30 mem_string3
+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
+1 mem_usb_tx_interval
+
+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_setup
+64 mem_usb0_set_report_data
+64 mem_usb0_get_report_data
+1 mem_usb_state
+1 mem_usb_tx_wait
+1 mem_usb_tx_enable
+1 mem_usb_remote_wakeup
+1 mem_usb_clear_remote_wakeup
+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_usb0_data_ready_report
+1 mem_usb_tx_win_enable
+1 mem_usb_tx_mac_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_set_protocol_value
+1 mem_usb_set_protocol_status
+1 mem_usb_get_protocol_flag
+1 mem_usb_idle_flag
+1 mem_usb_idle_rate
+2 mem_usb_setup_bValue_temp
+1 mem_usb0_get_set_report
+1 mem_usb_ep1_data
+1 mem_usb_ep2_data
+1 mem_usb_clear_halt
+16 mem_usb_mouse_data
+16 mem_usb_kb_data
+16 mem_usb_kb_multikey
+8 mem_usb_kb_data_sta_data
+8 mem_usb_kb_data_last_data
+3 mem_usb_kb_multikey_sta_data
+3 mem_usb_kb_multikey_last_data
+1 mem_usb_kb_blank_data_enable
+1 mem_usb_kb_mul_blank_data_enable
+1 mem_usb_test_cnt
+0 mem_usb_clear_mem_end
+1 mem_usb_test_kb
+
+256 mem_rssi_noise_buffer
+256 mem_rssi_noise_dg_buffer
+256 mem_rssi_noise_ms_buffer
+256 mem_rssi_noise_kb_buffer
+32 mem_24g_common_temp
+
+2 mem_data_pre
+2 mem_data_current
+3 mem_data_sum
+
+//zcode
+1 mem_zcode_temp_param0	//zcode num
+2 mem_zcode_temp_param1	//patch ram func addr
+2 mem_zcode_temp_param2	//patch ram func addr
+
+
+ifdef DEBUGLOG
+1   mem_debuglog_temp
+1   mem_debuglog_type
+1	mem_debuglog_datalen
+2	mem_debuglog_dataval
+2	mem_debuglog_datatype
+1	mem_debuglog_tail
+8	mem_debuglog_pdata
+endif
+
+)
+
+
+(
+/*mem_util_timer_flag0_7*/
+    0   UTIL_TIMER_0_USED
+    1   UTIL_TIMER_1_USED
+    2   UTIL_TIMER_2_USED
+    3   UTIL_TIMER_3_USED
+    4   UTIL_TIMER_4_USED
+    5   UTIL_TIMER_5_USED
+    6   UTIL_TIMER_6_USED
+    7   UTIL_TIMER_7_USED
+/*mem_util_timer_flag8_15*/
+    0   UTIL_TIMER_8_USED
+    1   UTIL_TIMER_9_USED
+    2   UTIL_TIMER_10_USED
+    3   UTIL_TIMER_11_USED
+    4   UTIL_TIMER_12_USED
+    5   UTIL_TIMER_13_USED
+    6   UTIL_TIMER_14_USED
+    7   UTIL_TIMER_15_USED
+)
+
+//util fifo param
+(
+
+8 UTIL_FIFO_LEN
+-1 UTIL_FIFO_OFFSET
+)
+
+
+(
+	0xAA DEBUGLOG_HEAD
+	0x00 DEBUGLOG_TYPE
+	0x04 DEBUGLOG_LEN
+	0xBB DEBUGLOG_TAIL
+)
+
+(
+	0x1000 DEBUGLOG_DTYPE_CALLBACK
+	0x1001 DEBUGLOG_DTYPE_EVENT
+	0x1002 DEBUGLOG_DTYPE_CMD
+	0x1003 DEBUGLOG_DTYPE_STATUS
+	0x1004 DEBUGLOG_DTYPE_MISC
+	0x1005 DEBUGLOG_DTYPE_CONN_SM
+	0x1006 DEBUGLOG_DTYPE_UPPER_SM
+	0x1007 DEBUGLOG_DTYPE_PARSE_LMP
+	0x1008 DEBUGLOG_DTYPE_SEND_LMP
+)
+
+//DEBUGLOG_DTYPE_CALLBACK
+(
+	0x0000 CALLBACK_24G_DATA
+	0x0001 CALLBACK_LE_PROCESS
+	0x0002 CALLBACK_BT_PROCESS
+	0x0003 CALLBACK_BEFORE_LPM
+	0x0004 CALLBACK_BB_EVENT_PROCESS
+	0x0005 CALLBACK_IDLE_PROCESS
+	0x0006 CALLBACK_BEFORE_HIBERNATE
+	0x0007 CALLBACK_ATT_WRITE
+	0x0008 CALLBACK_EVENT_TIMER
+)
+
+//DEBUGLOG_DTYPE_EVENT
+//(
+
+//)
+
+//DEBUGLOG_DTYPE_CMD
+//(
+
+//)
+
+//DEBUGLOG_DTYPE_STATUS
+(
+	0x0000 STATUS_CODE_WAKE
+	0x0001 STATUS_LPM_WAKE
+	0x0004 STATUS_24G_START 
+)
+//DEBUG_DTYPE_MISC
+(
+	0x0000 MISC_LE_RETRANSMIT
+	0x0001 MISC_LOST_MOUSEDATA
+	0x0002 MISC_TXPOWER_0
+	0x0003 MISC_TXPOWER_1
+	0x0004 MISC_TXPOWER_2
+	0x0006 MISC_PULL_MOUSEDATA
+	0x0007 MISC_PUSH_MOUSEDATA
+	0x0008 MISC_LE_RETRANSMIT_MD
+
+
+)
+
+0x1f00 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: DpiSwitch/format/var.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/var.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/format/var.format	(working copy)
@@ -0,0 +1,442 @@
+/************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                           */
+/* $Author: Administrator $                                                     */
+/* $Id: bt_var.osi,v 1.1 2009-09-28 04:06:18 Administrator Exp $   */
+/* Orisil Technology                                                 */
+/************************************************************************/
+
+
+/* packet types */
+(
+  0x02 FHS_PACKET 
+  0x03 DM1_PACKET 
+  0x03 DM1_LMP_PACKET 
+  0x04 DH1_PACKET 
+  0x05 HV1_PACKET 
+  0x06 HV2_PACKET 
+  0x07 HV3_PACKET 
+  0x08 DV_PACKET 
+  0x09 AUX1_PACKET 
+  0x0a DM3_PACKET 
+  0x0b DH3_PACKET 
+  0x0e DM5_PACKET 
+  0x0f DH5_PACKET 
+)
+
+
+/* mem_lmp_respond */
+(
+  0 RESPOND_TO_ALL
+  1 PASS_EVERYTHING
+  2 PASS_ONLY_UNKNOWNS
+  3 RESPOND_TO_LMPS
+)
+/* SCO algorithm defines */
+(
+  0 ULAW
+  1 ALAW
+  2 CVSD
+)
+/* encryption modes */
+(
+  0 NO_ENCRYPTION
+  1 PT_PT_ENCRYPTION
+  2 PT_BROADCAST_ENCRYPTION
+)
+
+/* bits used in mem_lmp_state1 variable */
+(
+  0 LMP_STATE_DETACH
+  1 LMP_STATE_HOLD
+  2 LMP_STATE_SNIFF
+  3 LMP_STATE_PARK
+  4 LMP_STATE_WAIT_SCO_CREATE
+  5 LMP_STATE_WAIT_SCO_KILL
+  6 LMP_STATE_SCO3
+  7 LMP_STATE_WAIT_SCO_START
+)
+/* mem_lmp_state2 */
+(
+  0 LMP_WAIT_FOR_SNIFF_ACCEPT
+  1 LMP_WAIT_FOR_PARK_ACCEPT
+  2 LMP_SEND_UNPARK_ACCEPTED
+  3 LMP_SEND_ENCRYPTION_START
+  4 LMP_SEND_ENCRYPTION_STOP
+  5 MESSAGE_QUEUE
+  7 LMP_STATE_WAIT_BEACON
+)
+/* mem_lmp_state3 */
+(
+ 0 INQUIRY_STATE_CHECK
+ 1 HOST_DELAY_MESSAGE
+ 2 VARIABLE_DELAY
+ 3 TEST_MODE_START_LOOPBACK
+ 4 TEST_MODE_START_PATTERN
+ 5 PARSE_TEST_CONTROL_MESSAGE
+ 6 H_AUTH_SEND_COMB_KEY
+)
+/* mem_rx_status */
+(
+  0 FROM_MASTER
+)
+/* mem_ms_flag */
+(
+  0 MS_RECEIVE_SWITCH_REQ
+  1 MS_SEND_SETUP_COMPLATE
+)
+/* mem_conn_sm */
+(
+  0 CONN_SM_STANDBY
+  1 CONN_SM_WAIT_PAGE
+  2 CONN_SM_SEND_FEATURES
+  3 CONN_SM_WAIT_FEATURES_RES
+  4 CONN_SM_SEND_CONN_REQ
+  5 CONN_SM_WAIT_CONN_ACCEPT
+  6 CONN_SM_AUTH_PAIR
+  7 CONN_SM_AUTH_PAIR_WAIT
+  8 CONN_SM_WAIT_MUTAL_AUTH
+  9 CONN_SM_ENCRYPT
+  0xa CONN_SM_ENCRYPT_WAIT
+  0xb CONN_SM_ENCRYPT_WAIT_CLEAR
+  0xc CONN_SM_SEND_SETUP_COMPLETE
+  0xd CONN_SM_WAIT_SETUP_COMPLETE 
+  0xe CONN_SM_SEND_SWITCH
+  0xf CONN_SM_DETACH_DELAY
+  0x10 CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION
+  0x11 CONN_SM_DELAY_RESTART_CONNECTION
+  0x12 CONN_SM_SEND_VERSION
+  0X13 CONN_SM_WAIT_VERSION
+  0x14 CONN_SM_SEND_FEATURES_EXT
+  0x15 CONN_SM_WAIT_FEATURES_EXT
+  0x16 CONN_SM_PAIRING
+  0x17 CONN_SM_AUTH
+  0x18 CONN_SM_PAIRING_WAIT
+  0x19 CONN_SM_AUTH_WAIT
+  0x1a CONN_SM_DONE
+  0x1b CONN_SM_WAIT_DONE
+)
+
+/* btStateConn1 */
+(
+  0 CONN_STANDBY
+  1 CONN_MASTER_SEND_CONN_REQ
+  2 CONN_MASTER_WAIT_FOR_CONN_ACCEPTED
+  3 CONN_MASTER_AUTH
+  4 CONN_MASTER_WAIT_FOR_FEATURES
+  5 CONN_MASTER_WAIT_FOR_SETUP_COMPLETE
+  6 CONN_MASTER_WAIT_FOR_MAX_SLOT
+  7 CONN_SLAVE_CONN_REQUESTED
+  8 CONN_SLAVE_WAIT_FOR_SETUP_COMPLETE
+  9 CONN_SLAVE_AUTH
+  10 CONN_USING_HOST_OPCODE
+  11 CONN_SLAVE_AUTH_WAIT
+  12 CONN_SLAVE_ENCRYPT_WAIT
+)
+
+/* mem_lmp_conn_state */
+(
+  0 RECEIVED_CONN_REQ
+  1 SENT_CONN_REQ
+  2 RECEIVED_SETUP_COMPLETE
+  3 SENT_SETUP_COMPLETE
+  4 HOST_CONNECTION_MADE
+  6 INIT_COMPLETE
+  7 SNIFF_NEGOTIATE
+)
+/* btStateAuth1 */
+(
+  0 WAIT_FOR_KINIT
+  1 WAIT_FOR_LKA
+  2 WAIT_FOR_LKB
+  3 WAIT_FOR_SRES
+  4 EXAMINE_RECEIVED_SRES
+  5 SEND_AU_RAND
+  6 WAIT_FOR_KC
+  7 DELAYED_ENCRYPT_RESPONSE
+)
+/* btStateAuth2 */
+(
+  0 SENT_SRES
+  1 RECEIVED_IN_RAND
+  2 SENT_AU_RAND
+  3 AUTHENTICATION_FAILED
+  4 AUTHENTICATION_PASSED
+  5 STARTED_AUTH
+  6 SENT_COMB_KEY
+  7 SENT_IN_RAND
+)
+/* btStateAuth3 */
+(
+  0 RECEIVED_AU_RAND
+  1 RECEIVED_SRES
+  2 MUTUALLY_AUTHENTICATE
+)
+/* btStateHost */
+(
+  0 H_AUTH_STARTED
+  2 H_ENCRYPTION_MODE_REQ_PT
+  3 H_ENCRYPTION_KEY_SIZE
+  4 H_ENCRYPTION_START
+  5 H_ENCRYPTION_STOP
+  6 H_AUTH_SECOND_TRY
+)
+/* btStateEncrypt2 */
+(
+  0 RECEIVED_ENCRYPT_MODE_REQ_PT
+  1 RECEIVED_ENCRYPT_KEY_SIZE
+  2 RECEIVED_ENCRYPT_START
+  3 RECEIVED_ENCRYPT_STOP
+  4 STARTED_ENCRYPT_START
+)
+/* mem_ms_state */
+(
+  0x00 MS_STANDBY
+  0x11 M_MINIT_1
+  0x12 M_MINIT_2
+  0x20 M_SINIT_0
+  0x30 S_MINIT_0
+  0x31 S_MINIT_1
+  0x32 S_MINIT_2
+  0x41 S_SINIT_1
+  0x42 S_SINIT_2
+  0x43 S_SINIT_3
+)
+/* mem_test_mode */
+(
+  0 TEST_MODE_ALLOWED
+  1 TEST_MODE_ACTIVE
+)
+/* values for mem_tester_emulate */
+(
+  0x00 NO_TEST_MODE
+  0x00 CONTINUOUS_TRANSMIT
+  0x10 TRANSMIT_TEST
+  0x08 LOOPBACK
+)
+
+/* mem_tx_misc */
+(
+  1 SEND_TX_ADDR
+)
+/* BBHWREG_page_stat */
+(
+  5 PAGE_MODE_END
+)
+/* host_return_parameters_status codes */
+(
+  0x00 HOST_RETURN_SUCCESS
+  0x01 HOST_RETURN_SLAVE_CANT_ISSUE
+  0x02 HOST_RETURN_NO_CONNECTION
+  0x04 HOST_RETURN_PAGE_TIMEOUT
+  0x05 HOST_RETURN_INQUIRY_TIMEOUT
+  0x08 HOST_RETURN_CONNECTION_TIMEOUT
+  0x09 HOST_RETURN_MAX_NUM_CONNECTIONS
+  0x0a HOST_RETURN_MAX_NUM_SCO
+  0x0b HOST_RETURN_MAX_NUM_ACL
+  0x0c HOST_RETURN_SECURITY_REASONS
+  0x10 HOST_RETURN_HOST_TIMEOUT
+  0x11 HOST_RETURN_UNSUPPORTED_FEATURE_PARAMETER
+  0x13 HOST_RETURN_OTHER_END_USER
+  0x14 HOST_RETURN_OTHER_END_LOW_RESOURCE
+  0x15 HOST_RETURN_OTHER_END_POWER_OFF
+  0x16 HOST_RETURN_LOCAL_HOST
+  0x18 HOST_RETURN_PAIRING_NOT_ALLOWED
+  0x19 HOST_RETURN_UNKNOWN_PDU
+  0x1a HOST_RETURN_UNSUPPORTED_REMOTE_FEATURE
+  0x1d HOST_RETURN_SCO_AIR_MODE_REJECTED
+  0x20 HOST_RETURN_UNSUPPORTED_LMP_VALUE
+  0x21 HOST_RETURN_AUTHENTICATION_FAILURE
+  0x22 HOST_RETURN_CHANGED_EXISTING_SCO
+  0x23 HOST_RETURN_HOST_REJECTED
+  0x24 HOST_RETURN_UNSPECIFIED_ERROR
+  0x25 HOST_RESET
+  0x26 HOST_RETURN_BAD_HANDLE
+
+  0x00 HOST_RETURN_ACCEPT_COMMAND
+  0x01 HOST_RETURN_REJECT_COMMAND
+)
+/* host_present */
+(
+  0 HOST_IS_PRESENT
+  1 BCI_IS_PRESENT
+  2 DONT_INIT_RADIO
+)
+/* mem_master_state */
+(
+  0 MASTER_STATE_STANDBY
+  1 MASTER_INQUIRY
+)
+/* misc */
+(
+  92 SECOND_SWITCH_REQ
+  93 SLAVE_DELAY_DETACH
+  94 MASTER_DELAY_DETACH
+  95 UNSNIFF_DELAY_DETACH
+  0 WE_STARTED_AS_MASTER
+  1 WE_STARTED_AS_SLAVE
+)
+/* mem_host_commands */
+(
+  0x01 HOST_INQUIRY
+  0x02 HOST_INQUIRY_CANCEL
+  0x03 HOST_CREATE_CONNECTION
+  0x04 HOST_DISCONNECT_CONNECTION
+  0x05 HOST_ADD_SCO_REQUEST
+  0x06 HOST_REMOTE_NAME_REQUEST
+  0x07 HOST_WRITE_SUPPORTED_FEATURES
+  0x08 HOST_SET_TX_LEVEL
+  0x09 HOST_SET_RX_LEVEL
+  0x0a HOST_SNIFF_REQUEST
+  0x0b HOST_UNSNIFF_REQUEST
+  0x0c HOST_WRITE_LINK_SUPERVISION_TIMEOUT
+  0x0e HOST_WRITE_SCAN_ENABLE
+  0x0f HOST_READ_AUDIO_QUALITY
+  0x10 HOST_ENABLE_DEVICE_UNDER_TEST
+  0x14 HOST_BUTTON_CONFIGURE
+  0x15 HOST_SET_LOW_BATTERY_LEVEL
+  0x16 HOST_WRITE_LOCAL_NAME
+  0x17 HOST_WRITE_LOCAL_PIN
+  0x18 HOST_KILL_SCO_REQUEST
+  0x19 HOST_QOS_REQ
+
+  0x1a HOST_FEATURES_REQUEST
+  0x1b HOST_VERSION_REQUEST
+  0x1c HOST_TIMING_REQUEST
+  0x1d HOST_CLK_OFFSET_REQUEST
+  0x1e HOST_AUTHENTICATE
+  0x1f HOST_START_ENCRYPTION
+  0x20 HOST_STOP_ENCRYPTION
+  0x21 HOST_HOLD_REQUEST
+  0x22 HOST_HOLD_FORCE
+  0x23 HOST_PARK_REQUEST
+  0x24 HOST_MOD_BEACON
+  0x25 HOST_SET_BROADCAST_SCAN_WINDOW
+  0x26 HOST_UNPARK_PM_REQUEST
+  0x27 HOST_UNPARK_BD_REQUEST
+  0x28 HOST_SLAVE_REQUEST_UNPARK
+  0x29 HOST_DECREASE_POWER_REQUEST
+  0x2a HOST_INCREASE_POWER_REQUEST
+  0x2b HOST_SEND_PREFERRED_RATE
+  0x2c HOST_MAX_SLOT_REQ
+  0x2d HOST_MAX_SLOT_FORCE
+  0x2e HOST_PAGE_MODE_REQUEST
+  0x2f HOST_PAGE_SCAN_MODE_REQUEST
+  0x30 HOST_MASTER_SLAVE_SWITCH
+  0x31 HOST_SEND_AUTO_RATE
+  0x32 HOST_PAGE_CANCEL
+  0x33 HOST_CHANGE_LINK_KEY
+  0x34 HOST_RADIO_READ
+  0x35 HOST_RADIO_WRITE
+  0x36 HOST_REMOTE_SLAVE_INIT_UNPARK_REQUESTED
+
+  0x40 HOST_REMOTE_CONNECTION_REQUESTED
+  0x41 HOST_REMOTE_DETACH
+  0x42 HOST_REMOTE_SCO_CREATE_REQUESTED
+  0x43 HOST_REMOTE_SCO_KILL_REQUESTED
+  0x44 HOST_REMOTE_PARK_REQUESTED
+  0x45 HOST_REMOTE_UNPARK_REQUESTED
+  0x46 HOST_REMOTE_SNIFF_REQUESTED
+  0x47 HOST_REMOTE_UNSNIFF_REQUESTED
+  0x48 HOST_REMOTE_HOLD_REQUESTED
+  0x49 HOST_REMOTE_AUTHENTICATION
+  0x4a HOST_REMOTE_START_ENCRYPTION_REQUESTED
+  0x4b HOST_REMOTE_STOP_ENCRYPTION_REQUESTED
+  0x4c HOST_MODE_CHANGE_EVENT
+  0x4d HOST_REMOTE_TEST_ACTIVATE
+  0x4e HOST_REMOTE_TEST_CONTROL
+  0x4f HOST_REMOTE_TIMING_REQUEST
+)
+/* BCI interface (not used if not compiled in ) */
+(
+  0x01 BCI_INQUIRY
+  0x02 BCI_INQUIRY_CANCEL
+  0x03 BCI_CREATE_CONNECTION
+  0x04 BCI_DISCONNECT
+  0x05 BCI_ADD_SCO_CONNECTION
+  0x06 BCI_REMOTE_NAME_REQUEST
+  0x07 BCI_WRITE_SUPPORTED_FEATURES
+  0x08 BCI_SET_TX_POWER_LEVEL
+  0x09 BCI_SET_RX_POWER_LEVEL
+  0x0a BCI_SNIFF_MODE
+  0x0b BCI_EXIT_SNIFF_MODE
+  0x0c BCI_WRITE_LINK_SUPERVISION_TIMEOUT
+  0x0d BCI_WRITE_PAGE_TIMEOUT
+  0x0e BCI_WRITE_SCAN_ENABLE
+  0x0f BCI_GET_AUDIO_QUALITY
+  0x10 BCI_ENABLE_DEVICE_UNDER_TEST
+  0x11 BCI_SEND_DATA
+  0x12 BCI_REGISTER_SERVICE_RECORD
+  0x13 BCI_SERVICE_SEARCH_ATTRIB_REQ
+  0x14 BCI_BUTTON_CONFIGURE
+  0x15 BCI_SET_LOW_BATTERY_LEVEL
+  0x16 BCI_WRITE_LOCAL_NAME
+  0x17 BCI_WRITE_LOCAL_PIN
+  0x18 BCI_REMOVE_SCO_CONNECTION
+  0x19 BCI_QUALITY_OF_SERVICE
+  0x40 BCI_REMOTE_CONNECTION_REQUEST
+  0x41 BCI_REMOTE_DETACH
+  0x42 BCI_REMOTE_ADD_SCO_REQUEST
+  0x43 BCI_REMOTE_REMOVE_SCO_REQUEST
+  0x44 BCI_REMOTE_PARK_REQUEST
+  0x45 BCI_REMOTE_UNPARK_REQUEST
+  0x46 BCI_REMOTE_SNIFF_REQUEST
+  0x47 BCI_REMOTE_UNSNIFF_REQUEST
+  0x48 BCI_REMOTE_HOLD_REQUEST
+  0x49 BCI_REMOTE_AUTHENTICATION_PAIRING_REQUEST
+  0x4a BCI_REMOTE_START_ENCRYPTION_REQUEST
+  0x4b BCI_REMOTE_STOP_ENCRYPTION_REQUEST
+  0x4c BCI_MODE_CHANGE_EVENT
+)
+/* mode changes */
+(
+  0 MODE_CHANGE_ACTIVE
+  1 MODE_CHANGE_SNIFFING
+  2 MODE_CHANGE_PARKED
+  3 MODE_CHANGE_HOLDING
+  4 MODE_CHANGE_SCO_ADDED
+  5 MODE_CHANGE_SCO_REMOVED
+  6 MODE_CHANGE_ACL_CONNECTION
+  7 MODE_CHANGE_DISCONNECT
+  8 MODE_CHANGE_SCO_CHANGED
+  9 MODE_CHANGE_ENCRYPTING
+  10 MODE_CHANGE_NOT_ENCRYPTING
+  11 MODE_CHANGE_BUTTON_UP
+  12 MODE_CHANGE_BUTTON_DOWN
+  13 MODE_CHANGE_BATTERY_LOW
+  14 MODE_CHANGE_RESET
+  15 MODE_CHANGE_INQUIRY_CANCELED_RMTCMD
+  16 MODE_ACTIVE_MSSWITCH_PASSED
+  17 MODE_ACTIVE_MSSWITCH_FAILED
+)
+/* mem_battery - low nibble is level information, upper nibble is status info */
+(
+  6 BATTERY_CHECK_LEVEL
+  7 BATTERY_SENT_STATUS
+)
+/* mem_radio_version */
+(
+  0x02 RADIO_2001
+  0x12 RADIO_2002
+  0x32 RADIO_2002_DDM
+  0x42 RADIO_1008A1
+  0x52 RADIO_1018A0
+)
+/* mem_slave_initiated_conn */
+(
+  0 SLAVE_INIT_AUTHENTICATION
+  1 SLAVE_INIT_ENCRYPTION
+  2 SLAVE_INIT_MASTER_SLAVE_SWITCH
+)
+/* connection_options */
+(
+  0 CONNECTION_AUTH
+  1 CONNECTION_ENCRYPT
+  2 CONNECTION_SWITCH
+  3 CONNECTION_ACL
+  4 CONNECTION_FEATURE_EXT
+)
+/* mem_debug_config */
+(
+  7 AA_INSERTION
+)
+
Index: DpiSwitch/output/flash.dat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/output/flash.dat	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/output/flash.dat	(working copy)
@@ -0,0 +1,12251 @@
+00
+02
+aa
+55
+fa
+1f
+20
+20
+00
+40
+20
+40
+03
+ac
+68
+00
+c1
+de
+60
+00
+cc
+b0
+20
+40
+07
+0d
+68
+00
+c6
+85
+60
+00
+c6
+da
+20
+40
+04
+e6
+20
+40
+03
+24
+20
+40
+07
+a3
+20
+40
+00
+0d
+20
+40
+00
+20
+20
+20
+02
+f8
+58
+00
+03
+6c
+60
+01
+4d
+2a
+58
+00
+03
+98
+60
+01
+41
+ef
+58
+00
+06
+4e
+60
+01
+41
+f9
+58
+00
+03
+c7
+60
+01
+41
+f1
+58
+00
+02
+c1
+60
+01
+41
+ed
+58
+00
+04
+0d
+60
+01
+41
+f5
+58
+00
+03
+f0
+60
+01
+41
+f3
+58
+00
+04
+46
+60
+01
+41
+eb
+58
+00
+04
+53
+60
+01
+41
+fd
+20
+60
+00
+00
+58
+00
+00
+19
+60
+01
+4d
+3c
+24
+55
+80
+2c
+20
+40
+02
+e9
+20
+40
+04
+4c
+68
+00
+c7
+1f
+60
+00
+c7
+1e
+68
+03
+44
+a0
+60
+03
+4b
+5d
+68
+00
+c2
+41
+c3
+81
+00
+00
+20
+20
+03
+95
+58
+00
+01
+77
+60
+01
+4d
+3c
+20
+60
+00
+00
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+c2
+84
+00
+59
+c0
+00
+80
+75
+c0
+01
+00
+7e
+c0
+42
+87
+79
+c0
+44
+87
+4a
+c0
+0d
+86
+68
+c0
+13
+06
+6a
+c0
+24
+06
+85
+c0
+25
+06
+8c
+c0
+28
+86
+95
+c0
+2c
+86
+83
+c0
+53
+86
+9a
+c0
+56
+86
+b0
+c0
+65
+b3
+e4
+c0
+74
+86
+c1
+c0
+50
+80
+87
+c0
+58
+80
+8c
+c0
+59
+00
+9a
+c0
+62
+02
+ce
+c0
+71
+85
+46
+c0
+73
+05
+68
+c0
+75
+05
+95
+c0
+75
+85
+9e
+c0
+76
+05
+a0
+20
+20
+2a
+8e
+c0
+1c
+85
+a4
+c0
+21
+85
+ac
+c0
+25
+05
+b2
+c0
+2b
+85
+b5
+c0
+2c
+85
+b7
+c0
+31
+85
+b9
+c0
+33
+05
+e3
+c0
+33
+86
+02
+c0
+35
+06
+3a
+c0
+3b
+86
+45
+c0
+7d
+06
+f5
+c0
+02
+86
+c3
+c0
+40
+06
+c5
+c0
+41
+06
+cf
+c0
+44
+06
+d1
+c0
+46
+06
+55
+c0
+46
+86
+61
+20
+20
+2a
+8e
+1f
+e2
+22
+00
+68
+08
+cc
+b4
+58
+00
+4c
+bb
+98
+40
+8a
+00
+1a
+22
+7e
+00
+e0
+a0
+80
+00
+18
+40
+84
+01
+18
+41
+04
+07
+60
+08
+cc
+b4
+20
+60
+00
+00
+d8
+a0
+09
+ae
+df
+20
+00
+0c
+20
+40
+7e
+d4
+20
+40
+03
+7d
+20
+40
+6a
+03
+20
+40
+5c
+f6
+24
+55
+ac
+65
+20
+40
+7c
+cd
+20
+20
+20
+0c
+20
+55
+b2
+e3
+20
+40
+75
+6a
+20
+55
+ab
+41
+20
+40
+76
+dc
+68
+00
+c6
+5a
+20
+3a
+20
+12
+68
+00
+c5
+b1
+20
+3a
+00
+81
+20
+20
+20
+12
+58
+00
+0a
+06
+60
+01
+c5
+10
+58
+00
+1d
+87
+60
+01
+45
+13
+20
+20
+2a
+a2
+c6
+13
+00
+00
+68
+00
+cb
+27
+24
+3a
+7f
+ef
+68
+00
+cb
+2d
+24
+3a
+7f
+ef
+68
+00
+c7
+9e
+20
+3a
+7f
+ef
+68
+00
+c7
+c4
+c0
+00
+ff
+ef
+68
+01
+42
+48
+24
+3a
+7f
+ef
+68
+00
+c8
+06
+24
+3a
+7f
+ef
+20
+20
+7f
+f1
+c6
+93
+00
+00
+68
+00
+cd
+4b
+c2
+80
+80
+b0
+c2
+81
+00
+b2
+68
+00
+cd
+39
+c0
+00
+80
+b8
+20
+40
+01
+80
+24
+34
+00
+d3
+70
+4d
+4a
+0a
+20
+40
+01
+5b
+20
+40
+01
+a3
+68
+00
+cc
+09
+c1
+ff
+80
+00
+20
+40
+07
+1e
+20
+40
+00
+b4
+68
+00
+cb
+27
+c0
+00
+83
+6f
+20
+40
+00
+e5
+24
+74
+00
+00
+20
+40
+02
+c8
+58
+00
+ec
+54
+20
+20
+2b
+93
+70
+11
+c5
+60
+20
+20
+07
+7b
+70
+11
+c5
+53
+20
+20
+07
+7b
+58
+01
+77
+00
+60
+01
+cc
+28
+70
+4b
+45
+14
+20
+60
+00
+00
+20
+40
+02
+a1
+24
+74
+00
+00
+20
+40
+00
+cd
+68
+01
+4d
+3a
+1f
+e0
+fe
+01
+60
+01
+4d
+3a
+68
+09
+4d
+3c
+98
+46
+7c
+00
+20
+42
+80
+c2
+20
+20
+00
+a0
+70
+4d
+39
+00
+58
+00
+00
+00
+60
+01
+4d
+3a
+58
+00
+00
+19
+60
+01
+4d
+3c
+70
+4c
+34
+00
+68
+00
+cc
+1f
+60
+00
+cc
+1e
+20
+60
+00
+00
+68
+00
+cc
+20
+20
+20
+00
+c9
+68
+00
+cc
+34
+1f
+e0
+fe
+01
+60
+00
+cc
+34
+c0
+02
+00
+cb
+c0
+02
+80
+c7
+20
+60
+00
+00
+68
+00
+cc
+25
+20
+5a
+00
+fd
+68
+00
+cb
+2d
+24
+7a
+00
+00
+68
+00
+cb
+27
+c1
+00
+80
+00
+68
+00
+cd
+39
+c1
+00
+80
+00
+20
+40
+01
+0f
+68
+00
+cd
+49
+c1
+82
+00
+00
+70
+4d
+49
+00
+20
+40
+00
+e5
+24
+74
+00
+00
+68
+01
+cc
+28
+20
+40
+7f
+49
+60
+0a
+41
+5b
+20
+20
+2b
+2a
+78
+34
+7c
+00
+20
+40
+2a
+fa
+68
+01
+c1
+6f
+20
+3a
+7f
+e9
+68
+00
+c0
+91
+20
+3a
+7f
+e9
+68
+00
+cd
+39
+c0
+00
+ff
+e9
+20
+40
+02
+cb
+20
+40
+02
+c8
+20
+40
+3e
+bf
+20
+40
+02
+fa
+68
+12
+00
+70
+68
+1a
+00
+78
+98
+41
+84
+00
+18
+44
+04
+00
+60
+1a
+00
+7c
+68
+10
+80
+7d
+79
+3f
+fe
+02
+60
+10
+80
+7d
+68
+10
+80
+7e
+79
+3f
+fe
+06
+60
+10
+80
+7e
+20
+20
+05
+3c
+70
+4c
+25
+01
+70
+4d
+2e
+00
+20
+40
+01
+33
+60
+00
+cb
+95
+58
+00
+00
+00
+60
+03
+cb
+96
+68
+02
+4c
+30
+60
+02
+4b
+9d
+70
+4b
+f9
+0c
+68
+00
+cb
+fa
+79
+20
+7e
+03
+60
+00
+cb
+fa
+20
+40
+01
+83
+20
+40
+01
+a3
+20
+20
+07
+1e
+58
+00
+00
+00
+60
+01
+cd
+47
+20
+60
+00
+00
+68
+00
+cd
+4a
+24
+7a
+00
+00
+68
+00
+cc
+25
+20
+7a
+00
+00
+68
+00
+cd
+49
+1f
+e0
+fe
+01
+60
+00
+cd
+49
+20
+40
+01
+6e
+20
+40
+00
+fe
+68
+00
+cd
+49
+c0
+82
+01
+13
+68
+00
+cd
+48
+1f
+e0
+fe
+01
+60
+00
+cd
+48
+c0
+04
+01
+1f
+20
+60
+00
+00
+70
+4d
+48
+00
+68
+00
+cd
+47
+c3
+80
+00
+00
+79
+20
+7e
+00
+60
+00
+cd
+47
+58
+00
+07
+08
+60
+01
+46
+b0
+20
+20
+04
+4c
+68
+00
+cc
+25
+20
+3a
+01
+0c
+70
+4d
+48
+00
+70
+4d
+49
+04
+68
+00
+cd
+47
+c4
+00
+00
+00
+79
+3f
+fe
+00
+60
+00
+cd
+47
+20
+40
+3f
+8d
+20
+20
+03
+ee
+70
+4d
+2f
+01
+70
+4d
+31
+00
+68
+00
+cb
+fa
+1f
+e1
+7e
+07
+60
+00
+cb
+fa
+20
+60
+00
+00
+68
+00
+cb
+fa
+79
+20
+7e
+04
+60
+00
+cb
+fa
+60
+00
+cb
+b5
+20
+60
+00
+00
+68
+00
+cb
+fa
+79
+3f
+fe
+04
+60
+00
+cb
+fa
+60
+00
+cb
+b5
+20
+40
+07
+14
+20
+20
+01
+6e
+68
+00
+cd
+2e
+c0
+80
+81
+33
+68
+00
+cd
+2c
+1f
+e0
+fe
+01
+60
+00
+cd
+2c
+c0
+02
+01
+4b
+20
+40
+01
+6e
+70
+4c
+3e
+02
+20
+20
+01
+a3
+20
+40
+07
+14
+70
+4d
+2c
+00
+20
+20
+01
+33
+70
+4d
+31
+02
+70
+4d
+2f
+01
+70
+4d
+2e
+00
+20
+20
+01
+33
+68
+00
+cd
+30
+c0
+01
+81
+4f
+68
+00
+cb
+fa
+2f
+ec
+00
+04
+20
+20
+81
+31
+68
+00
+cd
+30
+c0
+00
+81
+4e
+c0
+01
+01
+4f
+20
+60
+00
+00
+68
+00
+cc
+09
+c1
+ff
+80
+00
+20
+40
+01
+60
+24
+56
+01
+68
+20
+60
+00
+00
+78
+56
+7c
+00
+68
+00
+cd
+2f
+c1
+80
+80
+00
+68
+00
+cd
+31
+c1
+80
+00
+00
+70
+4d
+30
+01
+70
+4c
+3e
+04
+20
+20
+7f
+eb
+68
+00
+cd
+31
+20
+3a
+01
+7b
+1f
+e0
+ff
+ff
+60
+00
+cd
+31
+70
+4d
+30
+02
+70
+4c
+3e
+04
+68
+08
+cc
+04
+68
+00
+cc
+21
+1f
+e1
+7e
+03
+1f
+ef
+a2
+04
+58
+00
+4c
+0a
+9a
+20
+fe
+00
+98
+40
+8c
+00
+e8
+c0
+80
+00
+60
+00
+cc
+03
+18
+40
+84
+01
+18
+41
+04
+03
+60
+08
+cc
+04
+20
+60
+00
+00
+70
+4d
+30
+03
+68
+00
+cd
+2e
+24
+3a
+01
+42
+70
+4c
+3e
+02
+20
+20
+01
+6e
+68
+00
+cc
+09
+c0
+ff
+82
+05
+20
+40
+01
+86
+20
+40
+02
+25
+70
+4b
+fe
+01
+20
+60
+00
+00
+68
+01
+4d
+2a
+20
+40
+7f
+9c
+20
+34
+01
+8c
+68
+03
+cb
+96
+20
+7a
+00
+00
+20
+20
+7f
+e7
+20
+40
+03
+89
+70
+4c
+25
+00
+1a
+20
+fe
+01
+60
+00
+cb
+f9
+20
+40
+01
+33
+60
+00
+cb
+95
+e8
+a8
+80
+00
+ea
+40
+80
+00
+98
+41
+fe
+00
+e0
+a0
+80
+00
+1a
+40
+a4
+01
+ea
+42
+00
+00
+e0
+a2
+00
+00
+1a
+40
+a4
+04
+d8
+a0
+4b
+9b
+df
+20
+00
+02
+ea
+40
+80
+00
+e8
+a8
+80
+00
+98
+40
+fe
+00
+e0
+a0
+80
+00
+1a
+40
+a4
+01
+c2
+00
+01
+9c
+20
+60
+00
+00
+70
+4c
+02
+00
+d9
+60
+0d
+00
+34
+73
+02
+00
+20
+40
+01
+be
+24
+2c
+01
+cb
+24
+37
+81
+cb
+20
+40
+01
+27
+20
+40
+01
+b8
+20
+40
+01
+e8
+20
+40
+07
+10
+68
+00
+cb
+f8
+1f
+e0
+fe
+01
+60
+00
+cb
+f8
+20
+40
+01
+bb
+68
+00
+cc
+09
+c0
+ff
+82
+07
+20
+40
+01
+52
+58
+00
+00
+00
+60
+02
+4b
+fe
+60
+00
+cd
+2d
+20
+60
+00
+00
+df
+20
+00
+04
+d8
+a0
+4b
+95
+20
+20
+7e
+c6
+68
+00
+cb
+fa
+c2
+82
+01
+3c
+20
+60
+00
+00
+78
+57
+fc
+00
+20
+40
+02
+80
+18
+00
+2a
+00
+68
+02
+4c
+21
+98
+00
+12
+00
+68
+08
+80
+17
+20
+40
+29
+1f
+20
+40
+29
+24
+20
+40
+02
+40
+20
+57
+82
+79
+20
+60
+00
+00
+20
+40
+02
+79
+20
+20
+01
+ad
+68
+00
+cc
+25
+24
+7a
+00
+00
+68
+01
+4b
+ff
+1f
+e0
+fe
+01
+60
+01
+4b
+ff
+68
+00
+cc
+00
+c2
+82
+2d
+d4
+68
+00
+cc
+09
+c0
+ff
+81
+d6
+20
+40
+01
+de
+20
+20
+01
+a4
+68
+00
+cb
+ff
+c1
+ff
+80
+00
+58
+00
+00
+00
+60
+01
+4b
+ff
+20
+20
+2d
+d4
+20
+40
+07
+41
+20
+40
+07
+14
+20
+20
+01
+6e
+68
+00
+cc
+02
+1f
+e6
+7c
+0b
+24
+21
+01
+db
+1f
+e0
+fe
+01
+60
+00
+cc
+02
+c0
+01
+01
+37
+c0
+03
+01
+3c
+c0
+04
+01
+37
+c0
+06
+01
+3c
+20
+60
+00
+00
+20
+40
+02
+18
+68
+00
+cb
+f7
+20
+7a
+00
+00
+98
+00
+72
+00
+d8
+c0
+4b
+75
+d8
+a0
+4b
+d7
+20
+20
+7f
+01
+70
+41
+de
+00
+70
+4b
+f8
+00
+70
+4c
+03
+4e
+68
+02
+4c
+05
+60
+02
+4c
+21
+da
+20
+00
+00
+df
+20
+00
+04
+d8
+c0
+4c
+21
+e8
+c0
+80
+00
+9a
+20
+a2
+00
+c2
+00
+01
+f7
+1a
+22
+7e
+00
+60
+01
+4c
+aa
+68
+00
+cc
+aa
+68
+08
+cc
+ab
+98
+40
+fe
+00
+60
+00
+cc
+ac
+20
+60
+00
+00
+79
+20
+00
+26
+20
+40
+01
+ef
+70
+4c
+09
+01
+20
+60
+00
+00
+70
+11
+c5
+90
+20
+20
+07
+7b
+20
+40
+07
+0d
+70
+11
+c5
+91
+20
+20
+07
+7b
+70
+11
+c5
+40
+20
+20
+07
+7b
+70
+11
+c5
+41
+20
+20
+07
+7b
+79
+3f
+80
+26
+70
+4d
+4b
+00
+20
+40
+53
+ce
+d8
+e0
+00
+03
+20
+20
+43
+d2
+60
+08
+cb
+f9
+18
+42
+72
+00
+d8
+a0
+4b
+95
+1a
+22
+0c
+00
+20
+20
+7f
+01
+68
+00
+cb
+74
+1f
+e9
+7e
+00
+60
+00
+cb
+f7
+1f
+e0
+fe
+01
+d8
+c0
+4b
+74
+98
+c0
+8c
+00
+e8
+c1
+80
+00
+60
+01
+cc
+36
+68
+00
+cb
+74
+1f
+e3
+7e
+00
+1f
+e1
+7e
+03
+60
+00
+cc
+3c
+20
+60
+00
+00
+68
+00
+cb
+f9
+1f
+e0
+fe
+02
+60
+00
+cb
+fb
+68
+00
+cb
+fa
+60
+00
+cb
+b5
+68
+00
+cb
+f9
+1f
+e9
+fe
+00
+68
+08
+cb
+f8
+18
+41
+04
+03
+18
+43
+84
+00
+98
+41
+fe
+00
+68
+08
+cc
+35
+98
+40
+fe
+00
+e0
+a0
+80
+00
+68
+00
+cb
+f9
+98
+00
+72
+00
+d8
+c0
+4b
+95
+20
+20
+7f
+01
+78
+44
+fc
+00
+78
+43
+fc
+00
+58
+55
+55
+55
+98
+00
+1e
+00
+68
+00
+cc
+03
+1f
+ed
+84
+00
+79
+20
+04
+01
+18
+43
+1c
+00
+20
+60
+00
+00
+20
+40
+02
+37
+78
+57
+fc
+00
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+78
+28
+7c
+00
+68
+01
+4b
+fc
+98
+00
+36
+00
+37
+c1
+84
+00
+24
+2c
+02
+79
+78
+46
+fc
+00
+78
+25
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+20
+40
+02
+76
+60
+00
+cc
+ad
+68
+08
+cc
+ac
+98
+46
+7c
+00
+24
+22
+82
+79
+20
+40
+02
+76
+60
+00
+cb
+73
+68
+00
+cb
+73
+68
+08
+cb
+fa
+a8
+40
+0e
+00
+24
+20
+82
+79
+20
+40
+02
+76
+e0
+a0
+80
+00
+1f
+e9
+7e
+00
+1f
+e1
+72
+1f
+20
+22
+82
+61
+20
+40
+02
+76
+e0
+a0
+80
+00
+c2
+00
+02
+5e
+18
+a2
+22
+00
+20
+40
+02
+76
+60
+00
+cd
+34
+1a
+22
+0a
+00
+09
+80
+00
+18
+78
+28
+7c
+00
+db
+60
+06
+64
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e0
+a1
+80
+00
+78
+45
+fc
+00
+20
+23
+02
+79
+78
+37
+fc
+00
+68
+00
+80
+17
+1f
+e0
+a2
+00
+20
+40
+29
+81
+78
+46
+fc
+00
+20
+40
+29
+18
+68
+00
+cd
+34
+20
+40
+00
+6b
+20
+60
+00
+00
+09
+80
+00
+08
+19
+89
+7e
+00
+20
+60
+00
+00
+78
+4d
+fc
+00
+78
+45
+fc
+00
+20
+40
+26
+4d
+20
+60
+00
+00
+20
+40
+29
+18
+68
+08
+cc
+03
+20
+20
+29
+33
+20
+40
+53
+c4
+68
+02
+4c
+21
+98
+00
+12
+00
+20
+40
+02
+37
+20
+40
+02
+7d
+79
+20
+2a
+00
+78
+2e
+fc
+00
+78
+30
+7c
+00
+78
+50
+fc
+00
+19
+31
+7e
+00
+1f
+ec
+fe
+00
+1f
+f1
+fe
+00
+08
+00
+86
+28
+78
+4e
+fc
+00
+78
+2d
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+68
+00
+cc
+ac
+08
+00
+86
+08
+68
+00
+cb
+fb
+98
+00
+72
+00
+d8
+c0
+4b
+b5
+e8
+c0
+80
+00
+08
+00
+86
+08
+c2
+00
+02
+96
+78
+24
+7c
+00
+08
+00
+86
+18
+78
+44
+7c
+00
+37
+d3
+82
+00
+20
+00
+00
+64
+78
+4e
+fc
+00
+78
+4d
+fc
+00
+20
+60
+00
+00
+20
+40
+7f
+e9
+68
+0a
+4c
+1a
+1c
+42
+7e
+00
+98
+46
+7c
+00
+24
+41
+2d
+18
+1f
+e2
+24
+00
+68
+02
+4c
+1a
+68
+08
+cc
+1e
+98
+40
+84
+00
+1a
+42
+7e
+00
+98
+46
+7c
+00
+24
+61
+00
+00
+79
+3f
+fe
+1c
+60
+02
+4c
+1a
+20
+20
+7f
+e7
+d8
+40
+00
+00
+df
+20
+00
+08
+1a
+22
+0c
+00
+e8
+c0
+80
+00
+98
+40
+84
+00
+c2
+00
+02
+b3
+18
+49
+7e
+00
+1f
+e2
+04
+00
+c6
+93
+00
+00
+1f
+e6
+fc
+0a
+20
+40
+7f
+86
+18
+07
+fe
+00
+1f
+f2
+7e
+00
+18
+07
+04
+00
+98
+41
+84
+00
+20
+60
+00
+00
+20
+60
+00
+00
+c6
+13
+00
+00
+20
+40
+03
+73
+20
+40
+00
+ed
+68
+00
+c0
+40
+c3
+00
+02
+c8
+68
+00
+80
+a0
+24
+7a
+00
+00
+58
+00
+00
+00
+60
+04
+00
+a1
+20
+60
+00
+00
+68
+00
+cb
+00
+20
+7a
+00
+00
+20
+20
+05
+46
+20
+40
+34
+16
+20
+40
+74
+b9
+20
+35
+82
+df
+20
+40
+00
+01
+20
+40
+02
+e0
+68
+00
+c7
+20
+c0
+01
+03
+65
+68
+00
+c2
+10
+c0
+19
+82
+e3
+c0
+1a
+02
+e7
+68
+00
+cb
+70
+1f
+e6
+7c
+ff
+20
+42
+83
+59
+20
+40
+04
+f9
+70
+01
+6d
+06
+20
+40
+04
+7e
+20
+20
+7d
+dd
+20
+20
+03
+24
+68
+00
+cc
+b0
+60
+00
+c1
+de
+20
+60
+00
+00
+20
+40
+05
+3f
+68
+03
+41
+d0
+20
+3a
+33
+eb
+20
+20
+42
+74
+70
+11
+c5
+11
+20
+20
+07
+7b
+20
+40
+03
+24
+20
+40
+40
+c0
+20
+40
+40
+d9
+c0
+18
+02
+f1
+c0
+18
+82
+f3
+20
+40
+40
+d1
+20
+00
+03
+e8
+20
+20
+02
+eb
+20
+40
+03
+8e
+20
+20
+40
+e0
+20
+40
+03
+8e
+68
+00
+c6
+de
+c0
+38
+40
+e8
+70
+46
+e0
+01
+20
+60
+00
+00
+70
+11
+c5
+80
+20
+20
+07
+7b
+68
+08
+cb
+46
+20
+20
+68
+25
+70
+80
+86
+40
+70
+80
+87
+00
+68
+10
+80
+81
+79
+3f
+fe
+00
+79
+3f
+fe
+01
+79
+20
+7e
+03
+79
+3f
+fe
+04
+60
+10
+80
+81
+58
+00
+00
+00
+60
+02
+01
+f5
+68
+10
+80
+7f
+79
+3f
+fe
+00
+60
+10
+80
+7f
+20
+60
+00
+00
+20
+40
+03
+52
+20
+40
+44
+23
+68
+01
+47
+78
+d8
+40
+aa
+55
+98
+46
+7c
+00
+20
+22
+83
+46
+60
+09
+47
+78
+20
+40
+44
+1c
+68
+00
+c6
+e1
+60
+00
+c7
+7a
+68
+02
+4b
+4d
+60
+02
+47
+7b
+60
+02
+4c
+21
+20
+40
+03
+52
+20
+40
+03
+26
+20
+40
+03
+3d
+20
+40
+03
+32
+20
+40
+03
+29
+d8
+40
+00
+07
+da
+20
+4b
+6b
+da
+40
+00
+5f
+68
+01
+c7
+00
+9a
+40
+fe
+00
+20
+40
+03
+32
+20
+40
+03
+29
+20
+40
+03
+4c
+70
+42
+12
+76
+20
+20
+3d
+36
+68
+01
+c7
+00
+60
+01
+c2
+32
+20
+40
+65
+2a
+58
+01
+86
+a0
+20
+40
+2a
+8f
+20
+40
+65
+0b
+58
+00
+01
+fa
+60
+11
+00
+8c
+58
+00
+00
+05
+20
+40
+64
+f3
+c2
+80
+03
+29
+20
+60
+00
+00
+1f
+e2
+26
+00
+1a
+22
+7e
+00
+1f
+e0
+ff
+fc
+1f
+e2
+24
+00
+ea
+42
+00
+00
+60
+02
+4b
+48
+1a
+62
+7e
+00
+20
+40
+65
+52
+68
+02
+4b
+48
+e2
+42
+00
+00
+20
+60
+00
+00
+58
+00
+47
+7f
+d8
+40
+47
+20
+98
+46
+04
+00
+68
+01
+c7
+00
+da
+20
+47
+20
+20
+60
+00
+00
+20
+40
+03
+52
+20
+40
+03
+3d
+20
+20
+65
+62
+20
+40
+03
+43
+20
+40
+03
+5e
+20
+40
+43
+1a
+68
+02
+47
+7b
+60
+02
+4c
+21
+20
+60
+00
+00
+70
+0a
+a2
+b9
+20
+40
+02
+fc
+20
+40
+65
+0b
+da
+20
+4b
+48
+68
+08
+8a
+a2
+20
+20
+65
+56
+70
+0a
+a2
+ab
+20
+20
+03
+4d
+58
+00
+00
+50
+60
+01
+46
+ae
+20
+40
+34
+10
+70
+4b
+70
+5a
+20
+20
+03
+17
+70
+4b
+64
+01
+70
+4b
+63
+01
+5f
+ff
+ff
+ff
+60
+03
+44
+a0
+20
+60
+00
+00
+20
+40
+03
+52
+d8
+40
+00
+07
+da
+20
+4b
+6b
+da
+40
+00
+5f
+68
+01
+c7
+00
+9a
+40
+fe
+00
+20
+20
+65
+62
+20
+40
+05
+40
+68
+00
+c2
+41
+c2
+81
+02
+0a
+68
+02
+4b
+4d
+60
+02
+4c
+21
+20
+40
+03
+17
+20
+20
+02
+0c
+20
+40
+44
+01
+68
+01
+46
+9f
+20
+7a
+00
+00
+70
+4d
+39
+01
+58
+00
+00
+00
+60
+01
+4d
+3a
+20
+60
+00
+00
+d8
+c0
+18
+00
+d8
+a0
+48
+0a
+20
+40
+03
+7b
+d8
+c0
+19
+00
+20
+40
+03
+7b
+d8
+c0
+1a
+00
+20
+40
+03
+7b
+d8
+c0
+1b
+00
+df
+20
+00
+1b
+20
+20
+7f
+01
+d8
+c0
+48
+0a
+d8
+a0
+18
+00
+20
+40
+03
+7b
+d8
+a0
+19
+00
+20
+40
+03
+7b
+d8
+a0
+1a
+00
+20
+40
+03
+7b
+d8
+a0
+1b
+00
+20
+20
+03
+7b
+70
+41
+72
+00
+70
+4b
+44
+1e
+20
+60
+00
+00
+68
+00
+cb
+43
+c1
+80
+80
+00
+58
+00
+00
+00
+60
+00
+cb
+43
+60
+02
+46
+9b
+20
+40
+03
+24
+58
+00
+80
+06
+20
+40
+64
+13
+20
+00
+2e
+e0
+68
+00
+c7
+7a
+c0
+7f
+83
+95
+20
+20
+05
+46
+68
+00
+c6
+e1
+60
+00
+c7
+7a
+20
+20
+05
+46
+20
+40
+58
+92
+24
+7a
+00
+00
+68
+00
+cb
+70
+c0
+7f
+83
+9f
+68
+00
+c6
+c5
+1f
+e1
+7e
+03
+c1
+81
+80
+00
+68
+00
+c7
+9e
+20
+5a
+03
+ec
+68
+02
+46
+d3
+c2
+82
+c1
+79
+20
+40
+3f
+97
+24
+74
+00
+00
+20
+40
+03
+86
+20
+40
+03
+89
+20
+40
+03
+c2
+da
+20
+46
+9a
+20
+40
+7e
+3d
+20
+54
+03
+b1
+20
+60
+00
+00
+70
+47
+a2
+07
+70
+47
+a3
+04
+58
+00
+47
+a2
+60
+01
+42
+18
+20
+20
+7e
+38
+68
+00
+c7
+c3
+1f
+e0
+fe
+01
+60
+00
+c7
+c3
+20
+60
+00
+00
+da
+20
+46
+9a
+20
+40
+7e
+54
+20
+34
+03
+b9
+20
+60
+00
+00
+20
+40
+56
+52
+68
+00
+c7
+c3
+1f
+e6
+7c
+01
+24
+41
+56
+50
+68
+00
+c7
+c3
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+c7
+c3
+20
+20
+3f
+90
+68
+01
+46
+9f
+20
+7a
+00
+00
+70
+48
+06
+01
+70
+48
+07
+0a
+20
+60
+00
+00
+20
+77
+00
+00
+68
+00
+c1
+e2
+20
+7a
+00
+00
+20
+40
+52
+71
+24
+7a
+00
+00
+68
+00
+c7
+9e
+20
+5a
+03
+ec
+68
+02
+46
+d3
+c2
+82
+bf
+8a
+c2
+84
+bf
+8a
+20
+40
+3f
+97
+24
+74
+00
+00
+20
+40
+03
+86
+20
+40
+03
+89
+20
+40
+03
+c2
+68
+00
+cb
+05
+c0
+00
+83
+db
+68
+00
+cb
+0c
+20
+7a
+00
+00
+20
+20
+3f
+81
+68
+00
+c6
+9a
+60
+00
+cb
+06
+68
+00
+c6
+9b
+e0
+a0
+80
+00
+68
+00
+c6
+9d
+e0
+a0
+80
+00
+68
+01
+46
+9f
+e0
+a1
+00
+00
+da
+20
+00
+07
+20
+40
+4d
+63
+68
+01
+42
+4e
+e0
+a1
+00
+00
+58
+00
+02
+a1
+e0
+a1
+00
+00
+68
+02
+cb
+06
+e0
+a2
+80
+00
+20
+60
+00
+00
+70
+47
+9e
+01
+20
+40
+58
+14
+70
+4b
+00
+01
+20
+20
+02
+e9
+20
+40
+7e
+34
+20
+40
+03
+f3
+20
+20
+3e
+e0
+68
+08
+c6
+e7
+20
+40
+05
+8c
+68
+08
+c6
+e7
+20
+40
+68
+1d
+20
+20
+83
+fd
+20
+40
+05
+87
+68
+00
+c6
+b6
+c1
+00
+00
+00
+70
+46
+b6
+00
+20
+60
+00
+00
+20
+40
+05
+87
+68
+00
+c6
+b6
+c1
+00
+80
+00
+70
+46
+b6
+01
+20
+40
+03
+5e
+68
+00
+cb
+6d
+20
+3a
+04
+b5
+68
+00
+c7
+7a
+1f
+e0
+fe
+01
+1f
+e1
+7e
+03
+60
+00
+c7
+7a
+1f
+e0
+fe
+02
+60
+00
+cb
+2d
+20
+40
+05
+43
+20
+40
+3d
+7e
+20
+20
+03
+17
+1a
+62
+7e
+00
+c0
+0a
+04
+1e
+c0
+0a
+84
+21
+c0
+14
+84
+24
+c0
+19
+04
+26
+c0
+20
+04
+28
+c0
+02
+04
+2a
+c0
+09
+84
+2a
+c0
+0c
+b3
+df
+c0
+10
+84
+2e
+c0
+00
+84
+30
+c0
+01
+04
+38
+c0
+15
+84
+3b
+c0
+1c
+84
+3d
+c0
+1d
+04
+40
+c0
+1e
+04
+43
+20
+20
+41
+7d
+20
+40
+03
+ee
+70
+11
+c5
+b0
+20
+20
+07
+7b
+20
+40
+04
+49
+70
+11
+c5
+a2
+20
+20
+07
+7b
+70
+0a
+99
+12
+20
+20
+7d
+8f
+70
+11
+c5
+b3
+20
+20
+07
+7b
+70
+11
+c5
+a1
+20
+20
+07
+7b
+70
+11
+c5
+a3
+20
+20
+07
+7b
+70
+11
+c5
+70
+20
+20
+07
+7b
+70
+11
+c5
+b1
+20
+20
+07
+7b
+20
+40
+04
+7c
+20
+40
+03
+ee
+58
+00
+00
+00
+60
+01
+cb
+63
+20
+40
+03
+57
+20
+40
+05
+0a
+70
+48
+09
+00
+20
+20
+42
+ca
+20
+40
+04
+49
+70
+11
+c5
+b4
+20
+20
+07
+7b
+70
+11
+c5
+b2
+20
+20
+07
+7b
+20
+40
+03
+ee
+70
+11
+c5
+50
+20
+20
+07
+7b
+20
+40
+04
+49
+70
+11
+c5
+51
+20
+20
+07
+7b
+20
+40
+03
+ee
+70
+11
+c5
+52
+20
+20
+07
+7b
+20
+40
+04
+49
+70
+11
+c5
+a0
+20
+20
+07
+7b
+68
+00
+cb
+00
+20
+7a
+00
+00
+70
+4b
+00
+00
+20
+40
+02
+e9
+58
+00
+00
+06
+20
+40
+64
+14
+1f
+e1
+fe
+08
+1f
+ed
+7e
+00
+1f
+e0
+fe
+06
+20
+20
+64
+13
+20
+40
+04
+65
+20
+40
+05
+0d
+20
+40
+04
+d8
+20
+40
+04
+fc
+20
+40
+04
+dd
+20
+40
+42
+34
+20
+40
+04
+92
+20
+40
+04
+83
+20
+40
+04
+8a
+20
+40
+04
+8d
+20
+40
+04
+c1
+20
+40
+04
+c7
+20
+40
+04
+ca
+20
+40
+04
+d2
+20
+40
+04
+b9
+20
+40
+42
+31
+20
+40
+04
+bc
+20
+20
+42
+3a
+68
+00
+cb
+63
+20
+7a
+00
+00
+da
+60
+4b
+64
+da
+40
+04
+6a
+20
+20
+33
+6d
+70
+4b
+64
+01
+68
+00
+cb
+65
+1f
+e0
+fe
+01
+1f
+e1
+7e
+01
+60
+00
+cb
+65
+c0
+00
+04
+7e
+68
+03
+4b
+5d
+60
+03
+44
+a0
+20
+40
+04
+74
+20
+20
+7d
+f4
+70
+43
+6f
+1f
+70
+43
+8f
+1f
+20
+40
+04
+7c
+d8
+c0
+4b
+12
+d8
+a0
+43
+7b
+df
+20
+00
+13
+20
+40
+7f
+01
+20
+20
+57
+b8
+d8
+e0
+00
+07
+20
+20
+43
+ce
+70
+43
+6f
+00
+70
+43
+8f
+00
+d8
+e0
+00
+07
+20
+40
+43
+d2
+20
+20
+03
+5b
+da
+60
+4b
+45
+da
+40
+04
+86
+20
+20
+33
+6d
+58
+24
+9f
+00
+60
+01
+cc
+28
+70
+4b
+43
+01
+20
+60
+00
+00
+da
+60
+4d
+4a
+da
+40
+00
+00
+20
+20
+33
+6d
+da
+60
+4d
+43
+da
+40
+04
+90
+20
+20
+33
+74
+70
+4d
+42
+01
+20
+60
+00
+00
+68
+08
+c6
+ed
+20
+40
+05
+8c
+68
+08
+c6
+ed
+20
+40
+68
+1d
+24
+20
+84
+9f
+20
+40
+05
+87
+68
+00
+ca
+fd
+60
+00
+ca
+fe
+68
+00
+c6
+d9
+c1
+00
+80
+00
+70
+46
+d9
+01
+d8
+e0
+00
+06
+20
+20
+43
+d2
+20
+40
+05
+87
+20
+40
+04
+a6
+20
+40
+05
+03
+68
+00
+c6
+d9
+c1
+00
+00
+00
+70
+46
+d9
+00
+20
+60
+00
+00
+da
+60
+4a
+fe
+da
+40
+04
+a9
+20
+20
+33
+6d
+68
+02
+46
+d3
+c3
+83
+00
+00
+20
+40
+04
+b7
+70
+41
+bd
+00
+68
+08
+c7
+20
+18
+40
+84
+01
+68
+00
+c6
+d2
+98
+46
+7c
+00
+24
+41
+43
+cc
+60
+08
+c7
+20
+20
+40
+03
+17
+20
+20
+43
+78
+70
+4b
+6d
+ff
+20
+20
+03
+17
+70
+4b
+6d
+00
+20
+20
+03
+17
+da
+60
+48
+09
+da
+40
+63
+7a
+20
+20
+33
+6d
+da
+60
+4b
+0b
+da
+40
+04
+bf
+20
+20
+33
+6d
+70
+4b
+0c
+01
+20
+60
+00
+00
+da
+60
+46
+ae
+da
+40
+04
+c4
+20
+20
+33
+74
+70
+4b
+72
+01
+20
+40
+04
+f2
+20
+20
+04
+e6
+da
+60
+46
+c6
+da
+40
+3d
+60
+20
+20
+33
+6d
+68
+00
+cb
+6a
+20
+7a
+00
+00
+da
+60
+4b
+68
+da
+40
+04
+cf
+20
+20
+33
+6d
+68
+00
+cb
+69
+24
+7a
+00
+00
+20
+20
+5b
+f5
+da
+60
+4b
+44
+da
+40
+04
+d5
+20
+20
+33
+6d
+68
+00
+c7
+c5
+60
+00
+c1
+72
+20
+20
+04
+88
+da
+60
+48
+07
+da
+40
+04
+db
+20
+20
+33
+6d
+70
+48
+06
+00
+20
+60
+00
+00
+68
+00
+c7
+20
+c1
+01
+00
+00
+20
+40
+05
+74
+c0
+03
+84
+e9
+68
+00
+c6
+85
+60
+00
+c6
+da
+68
+00
+c6
+db
+c1
+00
+80
+00
+70
+46
+db
+01
+d8
+e0
+00
+09
+20
+40
+43
+d2
+20
+20
+43
+ca
+70
+47
+a0
+28
+20
+40
+04
+ec
+20
+20
+43
+b0
+da
+60
+46
+da
+da
+40
+04
+ef
+20
+20
+33
+6d
+20
+40
+04
+b7
+68
+00
+cb
+63
+24
+3a
+04
+f9
+20
+40
+04
+74
+68
+01
+46
+82
+2f
+ef
+fe
+07
+20
+40
+c3
+92
+d8
+e0
+00
+09
+20
+40
+43
+ce
+20
+20
+43
+b8
+68
+01
+46
+87
+60
+01
+46
+ac
+20
+60
+00
+00
+68
+00
+c7
+9f
+20
+7a
+00
+00
+da
+60
+47
+a0
+da
+40
+05
+01
+20
+20
+33
+6d
+70
+47
+9f
+00
+20
+20
+34
+0a
+68
+01
+46
+82
+c3
+84
+80
+00
+c3
+80
+00
+00
+c6
+13
+00
+00
+70
+47
+9f
+01
+70
+47
+a0
+28
+20
+60
+00
+00
+70
+47
+9f
+00
+70
+47
+a0
+00
+20
+60
+00
+00
+68
+00
+cb
+25
+20
+7a
+00
+00
+20
+20
+05
+18
+70
+4b
+30
+00
+70
+4b
+2b
+05
+70
+4b
+2e
+00
+70
+4b
+2d
+01
+70
+4b
+2c
+05
+70
+4b
+25
+01
+70
+4b
+28
+01
+20
+60
+00
+00
+da
+60
+4b
+2c
+da
+40
+05
+1b
+20
+20
+33
+6d
+68
+00
+cb
+2b
+60
+00
+cb
+2c
+68
+00
+cb
+2e
+20
+3a
+05
+23
+68
+00
+cb
+2d
+20
+3a
+05
+33
+1f
+e0
+ff
+ff
+60
+00
+cb
+2d
+68
+00
+cb
+27
+c0
+00
+85
+35
+70
+4b
+27
+01
+68
+00
+c7
+20
+c0
+00
+85
+2d
+68
+08
+cb
+26
+79
+20
+04
+07
+20
+40
+68
+0e
+68
+08
+cb
+26
+20
+20
+68
+29
+68
+08
+cb
+26
+20
+40
+68
+0e
+68
+08
+cb
+26
+20
+20
+68
+25
+68
+00
+cb
+30
+24
+7a
+00
+00
+58
+00
+00
+00
+60
+01
+cb
+2c
+68
+00
+cb
+2d
+24
+3a
+05
+3a
+70
+4b
+30
+00
+70
+4b
+25
+00
+70
+4b
+28
+00
+70
+4b
+29
+00
+70
+4b
+27
+00
+68
+08
+cb
+26
+79
+3f
+84
+07
+20
+20
+68
+06
+70
+4b
+30
+01
+70
+4b
+2d
+1b
+70
+4b
+2b
+01
+20
+20
+05
+44
+70
+4b
+2b
+05
+70
+4b
+2e
+01
+20
+20
+05
+14
+68
+00
+c6
+e0
+c0
+03
+05
+53
+c0
+03
+85
+53
+c0
+01
+05
+60
+68
+00
+c7
+7a
+1f
+e6
+7c
+01
+20
+42
+85
+51
+68
+00
+c7
+7a
+c0
+00
+3d
+8a
+c0
+01
+bd
+8e
+20
+20
+3d
+8c
+70
+47
+7a
+02
+20
+60
+00
+00
+68
+00
+c7
+7a
+1f
+e6
+7c
+01
+20
+42
+85
+51
+68
+00
+c7
+7a
+c0
+00
+05
+5c
+c0
+01
+85
+5e
+68
+00
+cb
+39
+60
+00
+c6
+b5
+20
+20
+3d
+c1
+68
+00
+cb
+37
+20
+20
+05
+5a
+68
+00
+cb
+3a
+20
+20
+05
+5a
+68
+00
+c7
+7a
+20
+5a
+05
+51
+68
+00
+c7
+7a
+c0
+00
+bd
+88
+c0
+01
+85
+66
+20
+20
+3d
+8e
+58
+00
+00
+05
+20
+20
+3d
+be
+78
+54
+7c
+00
+58
+00
+00
+00
+60
+03
+46
+9b
+20
+40
+05
+92
+20
+40
+40
+79
+20
+40
+40
+7e
+20
+40
+05
+72
+24
+34
+07
+a3
+20
+40
+07
+9a
+20
+20
+3f
+a0
+20
+40
+05
+74
+20
+20
+40
+9a
+da
+20
+00
+00
+20
+40
+05
+77
+20
+20
+40
+8e
+68
+08
+c6
+e2
+20
+40
+05
+87
+68
+08
+c6
+e2
+20
+40
+68
+1d
+79
+20
+a2
+00
+68
+08
+c6
+e3
+20
+40
+05
+87
+68
+08
+c6
+e3
+20
+40
+68
+1d
+79
+20
+a2
+01
+68
+08
+c6
+e4
+20
+40
+05
+87
+68
+08
+c6
+e4
+20
+40
+68
+1d
+79
+20
+a2
+02
+20
+60
+00
+00
+79
+20
+04
+07
+d8
+a0
+80
+78
+20
+40
+68
+30
+79
+3f
+84
+07
+20
+20
+05
+90
+79
+3f
+84
+07
+d8
+a0
+80
+78
+20
+40
+68
+30
+79
+20
+04
+07
+d8
+a0
+80
+7c
+20
+20
+68
+0a
+20
+40
+3f
+c0
+78
+54
+7c
+00
+20
+20
+3f
+e7
+20
+40
+05
+0a
+28
+0f
+fe
+26
+20
+40
+82
+0e
+70
+46
+b4
+00
+68
+00
+cb
+72
+20
+5a
+43
+86
+58
+00
+00
+00
+60
+01
+46
+b0
+20
+20
+42
+6f
+70
+11
+c5
+30
+20
+20
+07
+7b
+20
+40
+05
+31
+70
+4b
+00
+01
+20
+40
+03
+8e
+20
+20
+42
+cb
+68
+00
+c5
+0f
+1f
+e0
+fe
+01
+60
+00
+c5
+0f
+c0
+06
+53
+95
+20
+40
+55
+aa
+20
+40
+56
+1e
+20
+40
+07
+1e
+20
+20
+53
+8f
+68
+00
+80
+16
+1f
+e0
+fe
+01
+60
+00
+80
+16
+c1
+94
+00
+00
+70
+00
+16
+25
+20
+60
+00
+00
+20
+40
+29
+bb
+20
+40
+00
+6b
+20
+20
+54
+a3
+70
+11
+c5
+20
+20
+20
+07
+7b
+70
+11
+c5
+21
+20
+20
+07
+7b
+68
+00
+84
+56
+c2
+82
+85
+cd
+20
+40
+07
+10
+68
+00
+c7
+8e
+24
+3a
+05
+c3
+68
+00
+84
+3f
+c3
+02
+05
+c7
+68
+00
+82
+da
+20
+3a
+05
+c7
+20
+20
+56
+64
+68
+00
+c7
+8e
+1f
+e0
+ff
+ff
+60
+00
+c7
+8e
+20
+20
+56
+64
+68
+00
+c4
+c4
+c0
+82
+85
+ca
+70
+47
+8e
+03
+20
+40
+58
+92
+20
+5a
+03
+b5
+20
+20
+56
+22
+20
+40
+05
+cf
+20
+20
+05
+db
+68
+00
+c6
+c5
+1f
+e1
+7e
+03
+c1
+81
+80
+00
+68
+00
+c7
+c3
+20
+7a
+00
+00
+68
+00
+c3
+dd
+20
+7a
+00
+00
+68
+00
+c3
+dc
+79
+20
+7e
+04
+60
+00
+c3
+dc
+20
+40
+56
+50
+20
+60
+00
+00
+20
+20
+07
+14
+68
+00
+c7
+a1
+20
+7a
+00
+00
+68
+00
+c6
+c5
+1f
+e1
+7e
+03
+c1
+01
+80
+00
+70
+46
+c6
+02
+20
+60
+00
+00
+c6
+07
+80
+00
+20
+40
+58
+90
+24
+7a
+00
+00
+68
+00
+82
+d9
+1f
+e1
+7e
+03
+60
+00
+c5
+0c
+e8
+c0
+80
+00
+1f
+e1
+7e
+1f
+60
+00
+c5
+0b
+20
+7a
+00
+00
+18
+c2
+7e
+00
+60
+01
+45
+0d
+68
+00
+c5
+0c
+c0
+01
+85
+f2
+20
+20
+56
+8d
+68
+00
+82
+db
+c0
+00
+05
+f6
+c0
+00
+85
+fd
+20
+20
+5c
+65
+20
+40
+5c
+7b
+68
+00
+cb
+5c
+20
+7a
+00
+00
+68
+00
+c3
+d8
+60
+00
+c1
+72
+60
+00
+c7
+c5
+20
+60
+00
+00
+e8
+c2
+80
+00
+60
+02
+c3
+ce
+e8
+c1
+00
+00
+60
+01
+04
+5f
+20
+20
+5c
+8a
+e8
+c1
+00
+00
+c0
+02
+06
+06
+c0
+03
+06
+32
+20
+20
+56
+98
+20
+40
+7e
+a5
+20
+40
+05
+dc
+20
+40
+7e
+9f
+e8
+c1
+80
+00
+60
+01
+84
+77
+c0
+08
+06
+15
+1f
+ec
+84
+00
+18
+46
+7c
+24
+20
+21
+06
+23
+d8
+40
+47
+c6
+60
+09
+44
+bc
+20
+40
+58
+ad
+58
+00
+8e
+7a
+60
+01
+44
+bc
+20
+60
+00
+00
+20
+40
+59
+fa
+20
+40
+58
+79
+18
+c0
+8c
+07
+e8
+c0
+80
+00
+c1
+88
+80
+00
+18
+c0
+8c
+05
+e8
+c1
+00
+00
+d8
+40
+18
+12
+98
+46
+7c
+00
+24
+62
+80
+00
+18
+c0
+8d
+fc
+58
+00
+00
+2b
+e0
+c1
+00
+00
+20
+60
+00
+00
+c0
+05
+06
+25
+20
+20
+58
+ad
+68
+09
+04
+78
+68
+00
+c4
+e9
+c2
+81
+86
+2c
+68
+01
+04
+78
+c0
+09
+da
+76
+68
+09
+04
+78
+20
+20
+59
+bf
+68
+01
+44
+fa
+98
+46
+7c
+00
+24
+22
+86
+28
+20
+40
+5a
+42
+24
+34
+06
+28
+20
+20
+59
+e2
+e8
+c0
+80
+00
+c0
+00
+86
+36
+c0
+02
+86
+38
+20
+20
+5a
+f5
+70
+4b
+69
+01
+20
+20
+5b
+09
+70
+11
+c5
+82
+20
+20
+07
+7b
+68
+00
+80
+16
+c0
+93
+d6
+f2
+20
+40
+06
+40
+d8
+e0
+00
+00
+68
+01
+44
+82
+20
+20
+7f
+08
+18
+0a
+7e
+00
+d8
+40
+01
+ff
+98
+41
+7e
+00
+1f
+e0
+fe
+fa
+20
+20
+3c
+be
+78
+55
+fc
+00
+20
+37
+06
+48
+24
+36
+d8
+06
+20
+40
+2b
+cb
+68
+01
+40
+c1
+60
+01
+04
+4d
+68
+00
+c6
+c5
+c0
+81
+ab
+de
+20
+20
+57
+fb
+68
+00
+c7
+a1
+24
+7a
+00
+00
+68
+00
+84
+78
+1f
+e6
+7e
+1a
+24
+62
+80
+00
+70
+46
+c6
+00
+20
+20
+3d
+60
+68
+10
+80
+77
+1f
+e1
+7e
+fd
+60
+10
+80
+77
+68
+18
+80
+73
+18
+41
+84
+02
+60
+18
+80
+73
+20
+40
+63
+ee
+18
+41
+04
+fd
+20
+00
+00
+0d
+20
+40
+06
+62
+60
+18
+80
+73
+20
+60
+00
+00
+20
+40
+64
+dd
+68
+10
+80
+81
+79
+20
+7e
+00
+79
+3f
+fe
+01
+79
+3f
+fe
+03
+60
+10
+80
+81
+20
+60
+00
+00
+70
+11
+c5
+00
+20
+20
+07
+7b
+20
+40
+21
+c9
+24
+74
+00
+00
+78
+54
+7c
+00
+70
+00
+11
+20
+79
+3f
+80
+0b
+79
+3f
+80
+2d
+20
+40
+2a
+4f
+20
+40
+22
+e6
+c5
+05
+86
+77
+20
+40
+24
+55
+24
+3a
+06
+70
+c5
+16
+86
+7f
+20
+20
+21
+ec
+20
+40
+2a
+4d
+d8
+20
+00
+10
+20
+40
+22
+dc
+79
+20
+00
+2d
+79
+3f
+80
+0b
+18
+00
+08
+01
+70
+00
+11
+02
+20
+20
+06
+70
+68
+02
+01
+65
+1f
+e0
+fe
+08
+60
+02
+01
+65
+20
+20
+21
+f8
+c5
+16
+26
+4d
+20
+20
+25
+8f
+20
+40
+33
+af
+20
+40
+26
+e9
+70
+0a
+99
+02
+20
+40
+7d
+86
+20
+40
+5c
+f7
+20
+40
+4d
+6b
+20
+20
+24
+6e
+68
+00
+80
+30
+2f
+ef
+fe
+00
+20
+40
+86
+90
+20
+20
+24
+8a
+68
+00
+80
+47
+2f
+ef
+fe
+03
+20
+40
+87
+14
+24
+40
+87
+10
+20
+20
+07
+1e
+20
+40
+24
+f0
+24
+2c
+28
+f9
+20
+40
+29
+bb
+20
+40
+00
+6b
+20
+20
+25
+18
+c6
+13
+00
+00
+20
+40
+2a
+fa
+68
+01
+c1
+6f
+20
+7a
+00
+00
+68
+00
+c0
+91
+20
+7a
+00
+00
+68
+00
+c6
+5a
+20
+3a
+06
+a4
+68
+00
+c5
+b1
+20
+7a
+00
+00
+68
+00
+c4
+c0
+24
+7a
+00
+00
+20
+40
+2c
+3a
+24
+7a
+00
+00
+68
+00
+c0
+40
+2f
+e0
+0e
+03
+24
+20
+ab
+9d
+68
+01
+40
+42
+d8
+40
+ff
+ff
+98
+46
+7c
+00
+20
+62
+80
+00
+20
+20
+2b
+7d
+78
+55
+fc
+00
+68
+00
+80
+30
+c4
+00
+80
+00
+24
+36
+ab
+d0
+20
+40
+2b
+cb
+68
+01
+40
+c1
+60
+01
+00
+3e
+68
+00
+80
+47
+c2
+81
+ab
+de
+c5
+86
+ab
+de
+20
+40
+52
+74
+24
+3a
+2b
+de
+20
+5a
+06
+be
+20
+20
+2b
+be
+70
+00
+8a
+01
+70
+00
+8b
+00
+20
+60
+00
+00
+70
+11
+c5
+01
+20
+20
+07
+7b
+70
+11
+c5
+02
+20
+20
+07
+7b
+68
+00
+85
+52
+60
+00
+84
+c9
+c0
+09
+86
+c9
+20
+20
+5d
+b4
+20
+40
+5d
+cf
+70
+4b
+01
+01
+68
+00
+cb
+03
+20
+7a
+00
+00
+70
+4b
+03
+02
+20
+60
+00
+00
+70
+11
+c5
+10
+20
+20
+07
+7b
+20
+40
+62
+bc
+24
+7a
+00
+00
+68
+00
+80
+55
+20
+7a
+00
+00
+c0
+02
+06
+f3
+c0
+08
+06
+d8
+20
+20
+63
+20
+68
+00
+c5
+5b
+c1
+00
+00
+00
+c0
+00
+86
+dc
+20
+20
+63
+5f
+20
+74
+80
+00
+68
+00
+81
+6d
+c2
+80
+06
+e0
+20
+20
+63
+99
+68
+00
+cb
+03
+c0
+00
+e3
+9d
+68
+00
+c1
+bd
+20
+3a
+63
+a9
+68
+00
+84
+d1
+c4
+01
+80
+00
+c4
+01
+00
+00
+68
+00
+cb
+02
+20
+7a
+00
+00
+70
+4b
+02
+00
+68
+02
+04
+e9
+d8
+40
+00
+14
+98
+40
+84
+00
+1c
+42
+7e
+00
+98
+46
+7c
+00
+24
+21
+06
+f1
+20
+20
+63
+49
+70
+4b
+02
+01
+20
+60
+00
+00
+70
+48
+09
+14
+20
+20
+63
+6f
+20
+40
+62
+bc
+24
+3a
+7d
+db
+68
+00
+8a
+99
+c5
+84
+fd
+d6
+c0
+0f
+86
+fd
+c0
+10
+07
+00
+c0
+09
+07
+0a
+20
+20
+7d
+ca
+70
+01
+85
+34
+68
+03
+04
+4f
+20
+20
+07
+02
+70
+01
+85
+33
+68
+03
+00
+40
+60
+03
+01
+86
+68
+02
+46
+d3
+c4
+03
+80
+00
+d8
+e0
+00
+07
+20
+40
+43
+d2
+20
+40
+42
+e8
+20
+40
+42
+fb
+20
+20
+03
+17
+20
+40
+58
+90
+24
+7a
+00
+00
+20
+20
+5a
+bf
+70
+4d
+35
+01
+70
+4d
+32
+00
+20
+60
+00
+00
+68
+00
+cd
+32
+1f
+e0
+fe
+01
+60
+00
+cd
+32
+20
+60
+00
+00
+68
+00
+cd
+32
+1f
+e6
+7c
+02
+24
+41
+07
+1c
+68
+00
+cd
+32
+c1
+00
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+cd
+32
+20
+60
+00
+00
+70
+4d
+32
+03
+20
+60
+00
+00
+68
+01
+46
+82
+c3
+85
+80
+00
+c3
+83
+80
+00
+c3
+83
+00
+00
+da
+20
+4c
+bb
+20
+40
+02
+b0
+60
+08
+cd
+33
+58
+00
+00
+82
+c5
+13
+07
+28
+58
+00
+00
+80
+98
+46
+7c
+00
+24
+21
+07
+40
+68
+00
+cd
+32
+1f
+e6
+7c
+02
+24
+21
+07
+30
+68
+00
+cd
+32
+c0
+00
+07
+41
+20
+60
+00
+00
+68
+00
+cd
+32
+c1
+90
+00
+00
+70
+4d
+32
+00
+68
+08
+cd
+33
+58
+00
+00
+77
+c5
+13
+07
+37
+58
+00
+00
+75
+98
+46
+7c
+00
+24
+61
+00
+00
+68
+00
+cd
+35
+c0
+00
+07
+48
+1f
+e0
+ff
+ff
+60
+00
+cd
+35
+c0
+00
+07
+48
+70
+41
+de
+00
+20
+60
+00
+00
+70
+4d
+32
+00
+68
+00
+cd
+35
+c0
+01
+07
+46
+1f
+e0
+fe
+01
+60
+00
+cd
+35
+c0
+00
+87
+3e
+70
+41
+de
+02
+20
+60
+00
+00
+70
+41
+de
+04
+20
+60
+00
+00
+60
+08
+80
+17
+18
+40
+a2
+00
+20
+40
+29
+81
+58
+00
+05
+00
+20
+40
+2a
+8f
+70
+89
+06
+01
+70
+89
+00
+3c
+70
+89
+01
+e0
+20
+00
+00
+0a
+70
+89
+02
+01
+70
+89
+02
+3d
+20
+00
+00
+0a
+70
+89
+03
+b7
+20
+00
+00
+0a
+70
+89
+02
+7d
+68
+00
+c1
+de
+c0
+01
+07
+62
+c0
+02
+07
+67
+c0
+10
+07
+76
+20
+40
+07
+6c
+70
+89
+55
+d0
+70
+89
+56
+e0
+70
+89
+58
+6c
+20
+20
+29
+4b
+20
+40
+07
+71
+70
+89
+55
+d0
+70
+89
+56
+e0
+70
+89
+58
+3c
+20
+20
+29
+53
+20
+40
+07
+6c
+70
+89
+55
+d0
+70
+89
+56
+c0
+70
+89
+58
+6c
+20
+20
+29
+5b
+70
+89
+4c
+5b
+70
+89
+4d
+96
+70
+89
+4e
+2c
+70
+89
+4f
+46
+20
+60
+00
+00
+70
+89
+4c
+fb
+70
+89
+4d
+ef
+70
+89
+4e
+ec
+70
+89
+4f
+5e
+20
+60
+00
+00
+70
+89
+56
+c2
+70
+89
+55
+d0
+20
+60
+00
+00
+18
+00
+2a
+08
+20
+20
+28
+fa
+68
+08
+91
+c5
+18
+51
+84
+00
+68
+00
+cb
+51
+98
+46
+7c
+00
+20
+22
+87
+98
+60
+08
+cb
+51
+18
+40
+84
+01
+58
+00
+01
+00
+98
+4f
+84
+00
+68
+01
+cb
+52
+98
+46
+7e
+00
+68
+09
+cb
+55
+98
+40
+fe
+00
+1f
+e0
+ff
+fb
+60
+01
+cb
+58
+20
+40
+03
+52
+68
+01
+cb
+58
+d8
+40
+01
+00
+da
+20
+1f
+00
+20
+40
+65
+62
+68
+02
+1f
+00
+20
+3a
+07
+8b
+20
+40
+03
+24
+58
+00
+1f
+00
+60
+01
+41
+99
+70
+41
+9b
+40
+20
+40
+64
+ca
+58
+00
+00
+00
+60
+02
+41
+99
+68
+00
+91
+c5
+20
+20
+00
+01
+68
+02
+46
+9b
+20
+7a
+00
+00
+20
+40
+07
+ed
+58
+00
+00
+06
+20
+40
+07
+e0
+58
+00
+00
+03
+20
+40
+07
+e6
+68
+00
+cb
+0d
+c0
+00
+87
+a6
+df
+20
+00
+05
+d8
+a0
+4b
+0d
+20
+20
+7e
+d4
+68
+01
+4b
+0e
+60
+01
+11
+be
+68
+01
+46
+9b
+60
+01
+11
+c0
+20
+40
+07
+b9
+68
+01
+11
+be
+60
+01
+4b
+0e
+68
+01
+11
+c0
+60
+01
+46
+9b
+68
+01
+4b
+10
+60
+01
+11
+be
+68
+01
+46
+9d
+60
+01
+11
+c0
+20
+40
+07
+b9
+68
+01
+11
+be
+60
+01
+4b
+10
+68
+01
+11
+c0
+60
+01
+46
+9d
+20
+60
+00
+00
+68
+01
+11
+be
+68
+09
+11
+c0
+98
+40
+fe
+00
+60
+01
+91
+c2
+2f
+ef
+fe
+10
+20
+20
+87
+c6
+68
+00
+91
+c3
+c0
+7f
+87
+cd
+68
+00
+91
+c2
+1f
+e3
+7e
+00
+60
+01
+11
+be
+60
+01
+11
+c0
+20
+60
+00
+00
+68
+00
+91
+c3
+c0
+00
+07
+ca
+68
+01
+91
+c2
+20
+20
+07
+c2
+70
+11
+c4
+00
+68
+00
+91
+c2
+20
+20
+07
+c2
+68
+00
+91
+c2
+20
+40
+07
+d8
+60
+00
+91
+be
+60
+00
+91
+c0
+20
+3a
+07
+d6
+58
+00
+00
+ff
+60
+00
+91
+bf
+60
+00
+91
+c1
+20
+60
+00
+00
+58
+00
+00
+00
+20
+20
+07
+d3
+1f
+e6
+7e
+00
+60
+00
+8a
+ae
+68
+00
+8a
+ae
+1f
+e3
+7e
+00
+60
+00
+8a
+ae
+68
+00
+8a
+ae
+1f
+e6
+7e
+00
+20
+60
+00
+00
+9a
+26
+7c
+00
+24
+21
+07
+eb
+9a
+46
+7c
+00
+24
+21
+07
+eb
+70
+4b
+0d
+00
+20
+60
+00
+00
+9a
+26
+7c
+00
+24
+61
+00
+00
+9a
+46
+7c
+00
+24
+61
+00
+00
+20
+20
+07
+e4
+70
+4b
+0d
+01
+20
+60
+00
+00
+68
+01
+46
+9b
+60
+01
+11
+c0
+20
+40
+07
+f6
+1f
+e2
+22
+00
+68
+01
+46
+9d
+60
+01
+11
+c0
+20
+40
+07
+f6
+1f
+e2
+24
+00
+20
+60
+00
+00
+68
+00
+91
+c1
+c0
+7f
+87
+fb
+68
+00
+91
+c0
+1f
+e1
+7e
+ff
+20
+60
+00
+00
+68
+01
+11
+c0
+1f
+e6
+7e
+00
+20
+20
+07
+f9
+fc
+26
+aa
+55
+08
+00
+75
+41
+8f
+1f
+ce
+00
+0a
+0b
+ef
+07
+aa
+55
+01
+00
+57
+41
+00
+aa
+55
+08
+00
+a1
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+ad
+40
+12
+00
+80
+00
+12
+00
+80
+00
+aa
+55
+02
+00
+bb
+40
+20
+00
+aa
+55
+04
+00
+b7
+40
+20
+00
+00
+40
+aa
+55
+04
+00
+bf
+40
+80
+04
+00
+08
+aa
+55
+01
+00
+36
+4d
+00
+aa
+55
+01
+00
+de
+41
+00
+aa
+55
+0d
+00
+8f
+47
+4b
+ba
+55
+d0
+56
+e0
+57
+88
+58
+6c
+59
+10
+ff
+aa
+55
+02
+00
+c3
+40
+8f
+47
+aa
+55
+01
+00
+00
+40
+06
+aa
+55
+02
+00
+03
+40
+08
+40
+aa
+55
+03
+00
+09
+40
+05
+02
+02
+aa
+55
+02
+00
+10
+40
+20
+02
+aa
+55
+03
+00
+14
+40
+82
+20
+06
+aa
+55
+02
+00
+18
+40
+10
+08
+aa
+55
+02
+00
+1c
+40
+48
+1e
+aa
+55
+01
+00
+20
+40
+20
+aa
+55
+08
+00
+27
+40
+02
+08
+04
+80
+02
+c8
+04
+80
+aa
+55
+02
+00
+30
+40
+05
+31
+aa
+55
+01
+00
+3f
+40
+04
+aa
+55
+01
+00
+92
+40
+43
+aa
+55
+01
+00
+91
+40
+01
+aa
+55
+01
+00
+72
+41
+20
+aa
+55
+01
+00
+c5
+47
+20
+aa
+55
+02
+00
+d5
+46
+0a
+00
+aa
+55
+01
+00
+07
+42
+06
+aa
+55
+06
+00
+a0
+40
+20
+51
+17
+01
+20
+20
+aa
+55
+0c
+00
+15
+45
+0b
+42
+54
+33
+2e
+30
+20
+4d
+6f
+75
+73
+65
+aa
+55
+05
+00
+e3
+41
+0e
+00
+01
+00
+02
+aa
+55
+01
+00
+5a
+45
+0a
+aa
+55
+01
+00
+62
+46
+03
+aa
+55
+01
+00
+5a
+46
+01
+aa
+55
+01
+00
+8d
+45
+00
+aa
+55
+01
+00
+5a
+41
+00
+aa
+55
+03
+00
+5b
+46
+03
+00
+04
+aa
+55
+01
+00
+84
+46
+01
+aa
+55
+01
+00
+d1
+40
+01
+aa
+55
+0c
+00
+6f
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c2
+03
+aa
+55
+14
+00
+12
+4b
+06
+ff
+06
+00
+03
+00
+80
+0c
+09
+42
+54
+35
+2e
+30
+20
+4d
+6f
+75
+73
+65
+aa
+55
+0e
+00
+8f
+43
+1f
+0c
+09
+42
+54
+35
+2e
+30
+20
+4d
+6f
+75
+73
+65
+aa
+55
+0c
+00
+af
+43
+0b
+42
+54
+35
+2e
+30
+20
+4d
+6f
+75
+73
+65
+aa
+55
+08
+00
+96
+44
+07
+00
+07
+00
+20
+00
+2c
+01
+aa
+55
+04
+00
+82
+44
+00
+00
+00
+00
+aa
+55
+01
+00
+8d
+44
+07
+aa
+55
+06
+00
+a0
+44
+8e
+45
+34
+0e
+8e
+ed
+aa
+55
+01
+00
+e5
+44
+50
+aa
+55
+02
+00
+6f
+44
+19
+00
+aa
+55
+02
+00
+fa
+44
+22
+00
+aa
+55
+02
+00
+87
+46
+08
+07
+aa
+55
+04
+00
+a8
+46
+50
+00
+70
+17
+aa
+55
+01
+00
+46
+4b
+0a
+aa
+55
+01
+00
+14
+42
+ff
+aa
+55
+01
+00
+86
+46
+ff
+aa
+55
+01
+00
+85
+46
+1e
+aa
+55
+01
+00
+d2
+46
+02
+aa
+55
+01
+00
+03
+47
+02
+aa
+55
+02
+00
+2d
+42
+01
+32
+aa
+55
+06
+00
+09
+47
+a4
+01
+18
+01
+40
+01
+aa
+55
+19
+00
+e0
+46
+00
+02
+06
+14
+1d
+ff
+ff
+14
+1c
+1b
+ff
+ff
+ff
+14
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+20
+03
+ff
+ff
+aa
+55
+01
+00
+3a
+42
+ff
+aa
+55
+01
+00
+dc
+46
+ff
+aa
+55
+01
+00
+a5
+46
+07
+aa
+55
+01
+00
+6c
+0c
+ff
+aa
+55
+04
+00
+7f
+47
+01
+02
+03
+04
+aa
+55
+04
+00
+37
+4b
+00
+01
+02
+03
+aa
+55
+02
+00
+1b
+42
+13
+47
+aa
+55
+01
+00
+1a
+42
+01
+aa
+55
+40
+00
+c6
+47
+25
+00
+02
+03
+28
+01
+12
+26
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+27
+00
+02
+02
+29
+02
+00
+00
+28
+00
+02
+08
+29
+02
+11
+01
+29
+00
+02
+03
+28
+01
+0e
+2a
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+2b
+00
+02
+08
+29
+02
+11
+02
+aa
+55
+01
+00
+3f
+4c
+01
+aa
+55
+01
+00
+fa
+4b
+01
+aa
+55
+01
+00
+3e
+4c
+04
+aa
+55
+01
+00
+35
+4c
+00
+aa
+55
+02
+00
+fc
+4b
+c0
+12
+aa
+55
+03
+00
+1e
+4c
+19
+19
+1c
+aa
+55
+10
+00
+0a
+4c
+00
+13
+2c
+42
+06
+15
+36
+48
+0f
+1a
+3a
+4c
+11
+23
+31
+4d
+aa
+55
+01
+00
+09
+4c
+ff
+aa
+55
+04
+00
+05
+4c
+20
+15
+10
+05
+aa
+55
+04
+00
+3e
+4d
+0f
+0f
+0f
+0f
+aa
+55
+0a
+00
+9e
+11
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+03
+00
+28
+4c
+80
+ee
+36
+aa
+55
+08
+00
+20
+47
+02
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+aa
+55
+01
+00
+70
+4b
+ff
+aa
+55
+01
+00
+6d
+4b
+ff
+aa
+55
+04
+00
+4d
+4b
+ff
+ff
+ff
+ff
+aa
+55
+03
+00
+00
+47
+00
+50
+00
+aa
+55
+01
+00
+1f
+47
+00
+aa
+55
+01
+00
+db
+46
+01
+aa
+55
+01
+00
+b6
+46
+01
+aa
+55
+01
+00
+8e
+47
+03
+aa
+55
+01
+00
+26
+4b
+05
+aa
+55
+02
+00
+2a
+4b
+14
+03
+aa
+55
+01
+00
+fd
+4a
+19
+aa
+55
+04
+00
+51
+4b
+ff
+00
+00
+00
+aa
+55
+03
+00
+52
+4b
+da
+2f
+00
+ff
+20
+20
+00
+40
+c0
+58
+00
+07
+c0
+58
+80
+1d
+c0
+59
+00
+23
+c0
+59
+80
+28
+c0
+5a
+00
+30
+20
+60
+00
+00
+58
+00
+00
+00
+60
+01
+cb
+63
+df
+20
+00
+03
+d8
+c0
+44
+a0
+20
+40
+00
+16
+24
+54
+03
+54
+70
+4b
+6a
+01
+68
+00
+c7
+a1
+24
+3a
+00
+11
+70
+4b
+68
+14
+70
+4b
+72
+00
+70
+4b
+66
+00
+20
+40
+05
+0a
+20
+40
+03
+ac
+20
+20
+41
+c3
+20
+40
+7f
+e7
+58
+00
+ff
+ff
+e8
+c9
+00
+00
+98
+46
+7c
+00
+24
+42
+ff
+e9
+c2
+00
+00
+18
+20
+60
+00
+00
+68
+00
+c8
+08
+c1
+01
+00
+00
+1f
+e0
+fe
+01
+60
+00
+c8
+08
+70
+41
+e3
+12
+20
+20
+34
+0e
+68
+00
+c8
+08
+c1
+81
+00
+00
+70
+48
+08
+00
+70
+41
+e3
+0e
+20
+20
+34
+0e
+68
+00
+c7
+a1
+c0
+00
+80
+2c
+70
+46
+c6
+14
+20
+20
+00
+2e
+20
+40
+04
+24
+70
+46
+c6
+0a
+d8
+e0
+00
+01
+20
+20
+41
+b9
+70
+4b
+01
+00
+70
+4b
+03
+00
+70
+4b
+0c
+00
+20
+20
+41
+d9
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+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
+50
+00
+2a
+c0
+50
+80
+06
+c0
+51
+00
+1b
+c0
+51
+80
+14
+20
+60
+00
+00
+68
+01
+45
+09
+c1
+00
+00
+00
+68
+00
+84
+41
+1f
+eb
+7e
+00
+1f
+e6
+7c
+0c
+20
+21
+00
+12
+58
+00
+00
+09
+60
+01
+44
+96
+60
+01
+44
+98
+20
+40
+04
+24
+70
+47
+c4
+01
+20
+60
+00
+00
+70
+4b
+5c
+01
+20
+20
+05
+f9
+68
+01
+46
+82
+c3
+86
+00
+00
+c3
+83
+00
+00
+c3
+85
+80
+00
+68
+02
+46
+d3
+c3
+82
+80
+00
+20
+20
+33
+a7
+70
+4b
+6a
+00
+58
+00
+00
+07
+60
+01
+44
+96
+60
+01
+44
+98
+70
+47
+c4
+00
+70
+47
+9e
+00
+20
+40
+03
+ac
+20
+40
+58
+16
+20
+40
+41
+d9
+68
+00
+cb
+66
+20
+7a
+00
+00
+68
+03
+4b
+5d
+60
+03
+44
+a0
+20
+40
+04
+74
+20
+20
+7d
+f4
+68
+12
+01
+38
+79
+20
+7e
+1a
+60
+12
+00
+4c
+20
+40
+2c
+21
+20
+40
+74
+bd
+20
+40
+44
+82
+20
+40
+3e
+9f
+20
+40
+00
+ef
+20
+40
+03
+4c
+68
+10
+80
+81
+1f
+e1
+7e
+f7
+60
+10
+80
+81
+68
+10
+80
+7f
+79
+20
+7e
+00
+60
+10
+80
+7f
+68
+04
+00
+a1
+79
+3f
+fe
+14
+60
+04
+00
+a1
+68
+08
+c6
+e7
+20
+40
+05
+8c
+68
+04
+00
+a1
+79
+20
+7e
+34
+20
+20
+00
+40
+c0
+48
+00
+04
+c0
+48
+80
+1e
+20
+60
+00
+00
+68
+00
+cb
+fe
+c0
+00
+ff
+e7
+68
+00
+cc
+09
+c0
+00
+80
+0b
+c0
+01
+00
+0e
+c0
+01
+80
+11
+20
+20
+2a
+8c
+70
+4c
+09
+11
+70
+11
+9e
+aa
+20
+20
+00
+13
+70
+4c
+09
+12
+70
+11
+9e
+55
+20
+20
+00
+13
+70
+4c
+09
+13
+70
+11
+9e
+22
+68
+00
+cb
+fa
+1f
+e1
+7e
+07
+60
+00
+91
+9f
+68
+02
+4c
+30
+60
+02
+11
+a0
+70
+11
+a4
+00
+da
+20
+11
+9e
+d8
+40
+00
+07
+20
+40
+02
+13
+20
+40
+01
+83
+20
+20
+7f
+e7
+68
+00
+cc
+09
+c1
+7f
+80
+00
+c0
+08
+80
+24
+c0
+09
+00
+26
+c0
+09
+80
+28
+20
+60
+00
+00
+70
+4c
+09
+02
+20
+20
+01
+b4
+70
+4c
+09
+03
+20
+20
+01
+b4
+70
+4c
+09
+ff
+70
+0a
+99
+39
+20
+40
+7d
+86
+68
+02
+4b
+d9
+20
+40
+01
+f3
+20
+20
+01
+b4
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+20
+20
+00
+40
+c0
+40
+00
+03
+20
+60
+00
+00
+68
+02
+40
+a0
+60
+02
+4c
+30
+20
+40
+3e
+6e
+20
+40
+05
+3c
+68
+08
+cb
+46
+20
+40
+68
+0e
+20
+40
+3e
+1e
+20
+40
+00
+14
+58
+00
+00
+00
+60
+01
+41
+54
+20
+40
+68
+a2
+20
+40
+3e
+54
+20
+40
+58
+10
+20
+40
+58
+39
+20
+40
+58
+2c
+20
+40
+58
+18
+20
+20
+03
+0a
+20
+40
+74
+b9
+d8
+c0
+8c
+00
+d8
+a0
+48
+76
+df
+20
+01
+71
+20
+40
+7f
+01
+58
+0f
+02
+09
+e0
+a1
+80
+00
+58
+12
+00
+09
+e0
+a1
+80
+00
+58
+10
+02
+09
+e0
+a1
+80
+00
+58
+00
+00
+09
+e0
+a1
+80
+00
+d8
+c0
+8d
+71
+df
+20
+01
+09
+20
+40
+7f
+01
+70
+48
+8d
+00
+70
+48
+85
+6d
+58
+00
+40
+1f
+60
+01
+49
+db
+58
+00
+6d
+04
+60
+01
+4a
+44
+58
+00
+16
+b0
+60
+01
+4a
+4a
+58
+00
+48
+76
+60
+01
+45
+75
+20
+60
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+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
+38
+00
+03
+20
+60
+00
+00
+5f
+ff
+ff
+ff
+60
+03
+00
+40
+70
+01
+85
+33
+70
+4b
+70
+ff
+20
+40
+42
+fb
+70
+47
+21
+ff
+20
+20
+03
+17
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+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
+68
+00
+cd
+42
+c0
+00
+ad
+d4
+70
+11
+9e
+ff
+68
+00
+cb
+fa
+60
+00
+91
+9f
+68
+02
+4c
+30
+60
+02
+11
+a0
+d8
+40
+00
+06
+da
+20
+11
+9e
+20
+40
+02
+13
+20
+40
+02
+25
+20
+40
+01
+be
+24
+2c
+00
+26
+24
+37
+80
+26
+70
+4d
+4b
+00
+20
+40
+01
+e8
+68
+02
+4c
+21
+68
+0a
+4d
+3e
+98
+46
+7c
+00
+20
+22
+80
+17
+68
+00
+cb
+f7
+20
+7a
+00
+00
+20
+40
+02
+e0
+68
+02
+4c
+21
+68
+0a
+4c
+05
+98
+46
+7c
+00
+20
+22
+82
+01
+68
+02
+4c
+21
+68
+0a
+4c
+30
+98
+46
+7c
+00
+20
+42
+80
+24
+70
+4b
+43
+00
+20
+40
+2f
+20
+20
+40
+01
+b8
+20
+20
+03
+6f
+68
+02
+4b
+d9
+20
+20
+01
+f3
+68
+00
+cd
+37
+1f
+e0
+fe
+01
+1f
+e1
+7e
+03
+60
+00
+cd
+37
+c0
+00
+00
+2d
+c0
+01
+00
+37
+20
+20
+01
+ef
+20
+40
+02
+e0
+68
+02
+4c
+30
+60
+02
+4c
+21
+68
+00
+cd
+45
+60
+00
+cc
+04
+20
+40
+00
+35
+60
+08
+cd
+45
+20
+60
+00
+00
+20
+40
+01
+f4
+20
+20
+01
+6e
+70
+41
+de
+20
+68
+02
+4d
+3e
+60
+02
+4c
+21
+68
+00
+cd
+46
+60
+00
+cc
+04
+20
+40
+00
+35
+60
+08
+cd
+46
+20
+60
+00
+00
+00
+00
+00
+00
+20
+20
+00
+40
+c0
+28
+00
+06
+c0
+28
+80
+0c
+c0
+29
+00
+10
+c0
+29
+80
+1a
+20
+60
+00
+00
+d8
+e0
+00
+03
+20
+40
+43
+d2
+70
+46
+a7
+00
+20
+40
+40
+5d
+20
+40
+02
+e0
+20
+20
+00
+10
+70
+4d
+39
+00
+20
+40
+02
+e0
+20
+40
+02
+0e
+20
+20
+34
+0a
+20
+40
+00
+17
+20
+40
+05
+0a
+20
+40
+3f
+8d
+68
+02
+4c
+21
+60
+02
+47
+7b
+20
+40
+43
+66
+20
+20
+03
+17
+58
+00
+00
+00
+60
+01
+cd
+42
+20
+60
+00
+00
+68
+00
+cd
+42
+c0
+00
+ad
+d4
+20
+40
+00
+29
+20
+40
+01
+be
+24
+2c
+01
+6e
+24
+37
+81
+6e
+68
+00
+cd
+4b
+79
+3f
+fe
+02
+60
+00
+cd
+4b
+70
+4b
+43
+00
+20
+40
+2f
+20
+20
+40
+01
+b8
+20
+20
+03
+6f
+68
+02
+4b
+d9
+20
+20
+01
+f3
+70
+11
+9e
+ff
+68
+00
+cb
+fa
+60
+00
+91
+9f
+68
+02
+4c
+30
+60
+02
+11
+a0
+d8
+40
+00
+06
+da
+20
+11
+9e
+20
+40
+02
+13
+20
+20
+02
+25
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+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
+05
+c0
+20
+80
+17
+c0
+21
+00
+1f
+20
+60
+00
+00
+20
+40
+00
+0e
+20
+34
+02
+0c
+79
+20
+00
+26
+68
+00
+cd
+4b
+79
+20
+7e
+02
+60
+00
+cd
+4b
+20
+40
+01
+f4
+20
+40
+01
+6e
+20
+20
+00
+1b
+df
+20
+00
+02
+d8
+c0
+4c
+21
+20
+40
+7f
+e7
+58
+00
+ff
+ff
+e8
+c9
+00
+00
+98
+46
+7c
+00
+24
+42
+ff
+e9
+c2
+00
+00
+12
+20
+60
+00
+00
+79
+20
+00
+26
+68
+00
+cd
+4b
+79
+20
+7e
+01
+60
+00
+cd
+4b
+58
+00
+07
+08
+60
+01
+4d
+43
+70
+4d
+42
+00
+20
+60
+00
+00
+68
+02
+46
+d3
+c4
+08
+80
+00
+c3
+81
+80
+00
+c6
+13
+00
+00
+20
+40
+44
+82
+d8
+e0
+00
+03
+20
+40
+43
+ce
+58
+00
+00
+00
+60
+01
+46
+ae
+60
+00
+c6
+b4
+60
+01
+4c
+26
+20
+40
+42
+ca
+20
+20
+02
+0c
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+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
+18
+00
+03
+20
+60
+00
+00
+20
+40
+02
+e0
+70
+4b
+69
+00
+70
+4b
+66
+01
+70
+47
+20
+01
+70
+47
+9e
+00
+68
+03
+4b
+5d
+60
+03
+44
+a0
+20
+40
+34
+18
+68
+01
+46
+87
+60
+01
+46
+ac
+70
+01
+6d
+06
+58
+00
+00
+00
+60
+01
+46
+b0
+60
+01
+46
+ae
+20
+40
+04
+7c
+20
+40
+43
+ca
+20
+40
+03
+46
+68
+00
+c2
+10
+1f
+e6
+7c
+33
+20
+42
+80
+1b
+68
+00
+c0
+92
+2f
+ef
+fe
+00
+20
+40
+fd
+dd
+20
+20
+05
+10
+68
+03
+4b
+5d
+60
+03
+44
+a0
+20
+40
+04
+74
+20
+20
+7d
+f4
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+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
+04
+c0
+10
+80
+16
+20
+60
+00
+00
+20
+40
+00
+0c
+20
+20
+55
+7d
+68
+00
+c7
+c5
+60
+00
+c1
+72
+70
+47
+c4
+00
+20
+60
+00
+00
+70
+47
+c4
+01
+20
+60
+00
+00
+68
+00
+c3
+d6
+1f
+e6
+7c
+0c
+24
+21
+00
+0a
+68
+00
+c3
+d8
+68
+08
+c7
+c5
+98
+46
+7c
+00
+20
+21
+00
+06
+68
+00
+c3
+d8
+60
+00
+c1
+72
+20
+20
+00
+08
+68
+00
+84
+3f
+c4
+03
+00
+00
+20
+40
+00
+1b
+24
+74
+00
+00
+20
+20
+55
+a0
+78
+34
+7c
+00
+68
+00
+84
+5a
+1f
+f1
+fe
+00
+c1
+87
+80
+00
+68
+00
+84
+60
+1f
+f1
+fe
+00
+c1
+80
+00
+00
+20
+20
+7f
+e9
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+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
+0f
+c0
+08
+80
+04
+20
+60
+00
+00
+20
+40
+05
+3f
+70
+4b
+69
+01
+70
+47
+a1
+01
+68
+01
+46
+a8
+60
+01
+46
+ae
+20
+40
+04
+7c
+20
+40
+34
+18
+d8
+c0
+43
+90
+20
+40
+04
+78
+70
+43
+8f
+1f
+20
+20
+7d
+f4
+78
+54
+7c
+00
+20
+40
+62
+c1
+68
+00
+80
+48
+20
+7a
+00
+00
+c2
+83
+80
+18
+c0
+01
+80
+28
+c0
+18
+80
+24
+c0
+0b
+80
+26
+20
+20
+60
+10
+c0
+42
+00
+1b
+c0
+41
+80
+1e
+20
+20
+60
+3f
+20
+40
+00
+21
+68
+00
+80
+48
+20
+20
+60
+99
+20
+40
+00
+21
+68
+00
+80
+48
+20
+20
+61
+0d
+68
+00
+c6
+5a
+20
+3a
+61
+2b
+20
+20
+61
+24
+70
+4b
+03
+01
+20
+20
+61
+c3
+70
+4b
+0b
+04
+20
+20
+61
+a4
+18
+00
+7e
+02
+20
+40
+62
+98
+68
+00
+80
+49
+e0
+a0
+80
+00
+60
+00
+ca
+fc
+20
+40
+62
+a7
+68
+00
+ca
+fc
+c0
+17
+00
+31
+20
+20
+60
+51
+68
+00
+cb
+01
+20
+7a
+00
+00
+70
+4b
+01
+00
+68
+00
+cb
+03
+c1
+81
+00
+00
+70
+4b
+02
+01
+1c
+42
+7e
+00
+60
+02
+04
+e9
+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
+20
+20
+00
+40
+c0
+00
+00
+05
+c0
+00
+80
+12
+c0
+01
+00
+28
+20
+60
+00
+00
+68
+00
+80
+0e
+1f
+e0
+fe
+01
+60
+00
+80
+0e
+20
+40
+24
+35
+79
+20
+00
+2c
+20
+40
+22
+f2
+20
+2c
+00
+10
+79
+3f
+80
+2c
+20
+40
+24
+55
+24
+3a
+00
+09
+20
+20
+20
+fc
+79
+3f
+80
+2c
+20
+20
+21
+5f
+70
+48
+08
+00
+70
+41
+e3
+0e
+20
+40
+41
+e7
+68
+01
+42
+08
+c2
+83
+c1
+f5
+c2
+80
+33
+a9
+c2
+80
+80
+1c
+c2
+81
+00
+1f
+c2
+81
+80
+1f
+20
+20
+42
+b0
+c2
+82
+80
+1f
+c2
+81
+80
+1f
+20
+20
+42
+b0
+68
+01
+46
+82
+c2
+86
+42
+b0
+20
+40
+33
+a9
+20
+40
+05
+74
+c0
+03
+80
+25
+20
+20
+33
+a7
+70
+47
+9f
+01
+70
+47
+a0
+28
+20
+60
+00
+00
+68
+01
+02
+64
+1f
+e2
+0c
+00
+e8
+c0
+80
+00
+60
+00
+cb
+04
+1f
+e1
+04
+0f
+1f
+f1
+fe
+00
+c0
+03
+80
+31
+c0
+00
+80
+38
+20
+20
+4d
+39
+20
+40
+4d
+53
+70
+4b
+05
+00
+68
+00
+cb
+04
+2f
+ef
+fe
+00
+20
+60
+80
+00
+70
+4b
+05
+01
+20
+60
+00
+00
+18
+42
+7e
+00
+c0
+02
+84
+2c
+20
+20
+4d
+41
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+00
+00
+34
+a0
Index: DpiSwitch/output/memmap.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/output/memmap.format	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/output/memmap.format	(working copy)
@@ -0,0 +1,1956 @@
+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_inquiryscan_waitcnt
+0x0007 mem_inquiryscan_rcvcnt
+0x0008 mem_pagescan_waitcnt
+0x0009 mem_pagescan_rcvcnt
+0x000a mem_pagescan_rcvfhscnt
+0x000b mem_slave_rcvcnt
+0x000c mem_page_transmit
+0x000d mem_page_rcv
+0x000e mem_page_rcv_fhs
+0x000f mem_master_rcvcnt
+0x0010 mem_fhs_wait_counter
+0x0011 mem_newconnto_counter
+0x0012 mem_inquiry_transmit
+0x0013 mem_inquiry_rcv
+0x0014 mem_fw_ver
+0x0015 mem_current_context
+0x0016 mem_le_ch_mapped
+0x0017 mem_last_freq
+0x0018 mem_rssi
+0x0019 mem_rx_type
+0x001a mem_rx_hec_err
+0x001c mem_rx_crc_err
+0x001e mem_context_ptr
+0x0020 mem_display
+0x0028 mem_bcd
+0x0030 mem_state
+0x0031 mem_mode
+0x0032 mem_tsniff
+0x0034 mem_sniff_anchor
+0x0038 mem_clk_offset
+0x003e mem_rx_window
+0x0040 mem_plap
+0x0043 mem_puap
+0x0044 mem_pnap
+0x0046 mem_conn_handle
+0x0047 mem_arq
+0x0048 mem_lmp_to_send
+0x0049 mem_lmi_opcode
+0x004a mem_lmo_reason
+0x004b mem_op
+0x004c mem_state_map
+0x004d mem_supervision_timer
+0x0051 mem_supervision_to
+0x0053 mem_name_offset
+0x0054 mem_key_size
+0x0055 mem_conn_sm
+0x0056 mem_aco
+0x0062 mem_kc
+0x0072 mem_conn_timer
+0x0073 mem_sniff_attempt
+0x0074 mem_sniff_timeout
+0x0075 mem_dsniff
+0x0077 mem_amaddr
+0x0078 mem_lmo_opcode1
+0x0079 mem_lmi_opcode1
+0x007a mem_lmo_reason1
+0x007b mem_lmo_tid1
+0x007c mem_lmo_opcode2
+0x007d mem_lmi_opcode2
+0x007e mem_lmo_reason2
+0x007f mem_lmo_tid2
+0x0080 mem_hci_version
+0x0083 mem_acl_pktlen
+0x0085 mem_sco_pktlen
+0x0086 mem_acl_pktcnt
+0x0088 mem_sco_pktcnt
+0x008a mem_current_sniff_attempt
+0x008b mem_current_sniff_timeout
+0x008c mem_sniff_timeout_temp
+0x008d mem_nfreq_index_inq
+0x008e mem_nfreq_index_page
+0x008f mem_ninqy_index
+0x0090 mem_fhs_misc
+0x0091 mem_subsniff_instant
+0x0095 mem_subsniff_rate
+0x0096 mem_subsniff_tcmax
+0x0098 mem_subsniff_tsniff
+0x0099 mem_lpm_adjust
+0x009a mem_sync_clke
+0x00a0 mem_lpm_current_mult
+0x00a1 mem_gpio_wakeup_low
+0x00a5 mem_gpio_wakeup_high
+0x00a9 mem_air_mode
+0x00aa mem_sco_asso_handle
+0x00ab mem_sco_handle
+0x00ad mem_esco_desco
+0x00ae mem_esco_type
+0x00af mem_neogotiation_state
+0x00b0 mem_saved_amaddr
+0x00b1 mem_esco_arq
+0x00b2 mem_esco_saved_arq
+0x00b3 mem_sco_obuf
+0x00d1 mem_sco_ibuf
+0x00ef mem_sco_poll
+0x00f0 mem_npage_index
+0x00f1 mem_page_mode
+0x00f2 mem_page_clk
+0x00f6 mem_tst_pktcnt_sync
+0x00f8 mem_tst_pktcnt_hec
+0x00fa mem_tst_pktcnt_crc
+0x00fc mem_tst_pktcnt_dmh
+0x00fe mem_tmp_buffer_head
+0x0101 mem_tmp_buffer
+0x0151 mem_tester_emulate
+0x0152 mem_temp_payload
+0x0152 test_mode_scenario
+0x0153 test_mode_hopping_mode
+0x0154 test_mode_tx_freq
+0x0155 test_mode_rx_freq
+0x0156 test_mode_power_mode
+0x0157 test_mode_poll_period
+0x0158 test_mode_packet_type
+0x0159 test_mode_data_length
+0x015b mem_test_mode_old_debug_config
+0x015c mem_tester_cnt
+0x015d mem_temp_am_addr
+0x015e mem_temp_arq
+0x015f mem_len
+0x0161 mem_clkn_bt
+0x0165 mem_clke_bt
+0x0169 mem_dpll_clkn
+0x016d mem_connection_options
+0x016e mem_nameres_cnt
+0x016f mem_txptr
+0x0171 mem_slot_offset
+0x0173 extm_fhs_misc
+0x0174 extm_newconn_am_addr
+0x0175 extm_class
+0x0178 extm_lap
+0x017b extm_uap
+0x017c extm_nap
+0x017f mem_debug_config
+0x0180 mem_lch_code
+0x0181 mem_fhs_am_addr
+0x0182 mem_dpll_error
+0x0184 mem_select_list_item
+0x0185 mem_temp_reconn_record
+0x0185 mem_record_bt_mode
+0x0186 mem_temp_lap
+0x018c mem_list_item_ptr
+0x018e mem_eir
+0x01f2 mem_ucode_status
+0x01f3 mem_otp_ucode_flag
+0x01f5 mem_spid_tbuf/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0x01f6 mem_iicd_tbuf/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+0x01f6 mem_addr_hi
+0x01f7 mem_addr_mi
+0x01f8 mem_addr_lo
+0x01f9 mem_iicd_addr
+0x01fa mem_spid_rbuf
+0x01fe mem_ucode_buf
+0x0200 mem_ucode_len
+0x0202 mem_sched_addr
+0x0204 mem_ucode_ptr
+0x0206 mem_ucode_keybuf
+0x0216 mem_check_plap_temp
+0x0228 mem_reconnect_flag
+0x0229 mem_switch_fail_master_count
+0x022a mem_app_evt_timer_count
+0x022b mem_init_cnt
+0x022d mem_h5rx_ackcnt
+0x022e mem_check_err_acl_cont
+0x022f mem_rp_packets
+0x0230 mem_packet_type
+0x0232 mem_hci_sniff_conn_handle
+0x0234 mem_hci_sniff_max_interval
+0x0236 mem_hci_sniff_min_interval
+0x0238 mem_hci_sniff_attempt
+0x023a mem_hci_sniff_timeout
+0x023c mem_voice_setting
+0x023e mem_retransmission_effort
+0x023f mem_sco_ptype
+0x0241 mem_extm_uap_restore
+0x0244 mem_h5rx_rptr
+0x0246 mem_h5rx_ack
+0x0247 mem_h5tx_ack
+0x0248 mem_h5tx_rptr
+0x024a mem_h5tx_wptr
+0x024c mem_h5tx_free
+0x024e mem_h5rx_tmp
+0x024f mem_h5tx_seq
+0x0250 mem_hci_acl_queue_wptr
+0x0252 mem_hci_acl_queue_rptr
+0x0254 mem_hci_acl_queue_end
+0x0256 mem_hci_acl_queue_wcnt
+0x0257 mem_hci_acl_cnt
+0x0258 mem_hci_acl_tx_trigger_wptr//tx via uart
+0x025a mem_hci_curr_len
+0x025b mem_hci_curr_target
+0x025d mem_l2cap_mem_start
+0x025d mem_l2cap_rxbuff1_len
+0x025f mem_l2cap_rxbuff2_len
+0x0261 mem_l2cap_rxbuff_new
+0x0263 mem_l2cap_rxbuff_inuse
+0x0264 mem_l2cap_payload_ptr
+0x0266 mem_l2cap_rx_pkt_length
+0x0268 mem_l2cap_rx_cid
+0x026a mem_l2cap_rx_done
+0x026b mem_l2cap_signal_tx_buff_ptr
+0x026d mem_l2cap_signal_tx_payload_ptr
+0x026f mem_l2cap_signal_tx_length
+0x0271 mem_sdp_tx_buff_ptr
+0x0273 mem_sdp_tx_payload_ptr
+0x0275 mem_sdp_tx_pkt_length
+0x0277 mem_rfcomm_tx_buff_ptr
+0x0279 mem_rfcomm_tx_payload_ptr
+0x027b mem_rfcomm_tx_pkt_length
+0x027d memL2CAP_T1
+0x027f mem_CONTROL_tasks
+0x0280 mem_send_config_req
+0x0281 mem_config_identifier
+0x0282 mem_config_req_dest_CID
+0x0284 mem_rfcomm_malloc_fail_flag
+0x0285 mem_message_to_uppersm
+0x0286 mem_upper_sm_remote_page
+0x0287 mem_upper_sm_reconn
+0x0288 mem_upper_sm_ss
+0x0289 mem_tx_malloc_log
+0x02c9 mem_l2cap_mem_end
+0x02c9 mem_scid
+0x02cb mem_cmd_length
+0x02cd mem_tt2
+0x02cf mem_tt3
+0x02d1 mem_id
+0x02d3 mem_psm
+0x02d5 mem_l2cap_sdpres_delay_time
+0x02d9 mem_le_rxbuf
+0x0311 mem_le_l2capbuf
+0x0417 mem_le_mic
+0x041b mem_le_peer_mic
+0x041f mem_le_peer_ltk
+0x042f mem_le_mrand
+0x043f mem_le_state
+0x0440 mem_le_mode
+0x0441 mem_le_tsniff
+0x0443 mem_le_anchor
+0x0447 mem_le_clk_offset
+0x044d mem_le_receive_window
+0x044f mem_le_plap
+0x0455 mem_le_conn_handle
+0x0456 mem_le_arq
+0x0457 mem_le_ch
+0x0458 mem_le_hop
+0x0459 mem_le_event_count
+0x045b mem_le_supervision_timer
+0x045f mem_le_instant
+0x0461 mem_le_channels
+0x0462 mem_le_op
+0x0463 mem_le_access
+0x0467 mem_le_crcinit
+0x046a mem_le_window_size
+0x046b mem_le_slave_latency
+0x046d mem_le_superto
+0x046f mem_le_channel_map
+0x0474 mem_le_no_using
+0x0476 mem_le_peer_sca
+0x0477 mem_le_att_opcode
+0x0478 mem_le_att_handle
+0x047a mem_le_err_code
+0x047b mem_le_ll_pairing_fail_reason
+0x047c mem_le_sk
+0x048c mem_le_testtype
+0x048d mem_le_test_sync
+0x048f mem_le_test_pcnt
+0x0491 mem_le_rxon_ts
+0x0497 mem_le_rx_ll_opcode
+0x0498 mem_le_notify_attr_start
+0x049a mem_le_notify_len
+0x049b mem_cmd_le_create_conn
+0x049c mem_le_cur_attlist_start_ptr
+0x049e mem_le_cur_handle_start
+0x04a0 mem_le_cur_handle_end
+0x04a2 mem_le_cur_uuid_length
+0x04a3 mem_le_cur_uuid
+0x04b3 mem_le_curr_att_len
+0x04b4 mem_le_search_res
+0x04b5 mem_le_continue_type
+0x04b6 mem_lmo_header_length
+0x04b7 mem_lmo_header_opcode
+0x04b8 mem_lmo_payload
+0x04c9 mem_lmi_accepted_opcode
+0x04ca mem_disconn_reason_send
+0x04cb mem_tx_fixed_freq
+0x04cc mem_rx_fixed_freq
+0x04cd mem_ext_features_page
+0x04ce mem_lmpext_ssp_enable
+0x04d0 mem_remote_sppcap
+0x04d1 mem_lmp_conn_state
+0x04d2 mem_soft_timer
+0x04d4 mem_pincode_state
+0x04d5 mem_sres_tid
+0x04d6 mem_accptsco_tid
+0x04d7 mem_auth_enable
+0x04d8 mem_wait_encryption
+0x04d9 mem_sniff_payload
+0x04e9 mem_aurand_send_delay_time
+0x04ed memRemoteRPNBitRate
+0x04ee memRemotePRNDataBits
+0x04ef memRemotePRNStopBit
+0x04f0 memRemotePRNParity
+0x04f1 memRemotePRNFlowControl
+0x04f2 memRemotePRNXon
+0x04f3 memRemotePRNXoff
+0x04f4 mem_mod2div_temp
+0x04f7 mem_contw_temp
+0x04f9 mem_attrib_list
+0x04fb mem_current_adss
+0x04fc mem_current_channel
+0x04fd mem_current_frame_type
+0x04fe mem_current_fcs
+0x04ff mem_current_length
+0x0501 mem_rfcomm_uih_payload_ptr
+0x0503 mem_uih_cmd_type
+0x0504 mem_uih_length
+0x0506 mem_param_payload_ptr
+0x0508 mem_ms_param
+0x0509 mem_pn_credit_flow_type_info
+0x050a mem_pn_priority
+0x050b mem_pn_acknowledg_timer
+0x050c mem_pn_max_retrans
+0x050d mem_rfcomm_send_adss
+0x050e mem_rfcomm_send_frame_type
+0x050f mem_rfcomm_send_fcs
+0x0510 mem_rfcomm_send_offset
+0x0511 mem_sdp_mem_start
+0x0511 mem_sdp_uuid_search_ptr
+0x0519 mem_sdp_continue_byte
+0x051b mem_sdp_pduid
+0x051c mem_sdp_transactionid
+0x051e mem_sdp_transactionid_local
+0x0520 mem_sdp_attribute_maxbyte
+0x0522 mem_sdp_record_maxcnt
+0x0524 mem_sdp_record_handle
+0x0528 mem_sdp_LACAP_found
+0x0529 mem_sdp_RFCOMM_found
+0x052a mem_sdp_handle_list
+0x052a mem_sdp_attrib_list
+0x054a mem_sdp_error_code
+0x054c mem_sdp_all_length
+0x054e mem_handle_humber
+0x054f mem_search_uuid
+0x0551 mem_sdp_mem_end
+0x0551 mem_rxbuf
+0x0562 mem_random_number
+0x0572 mem_round_key
+0x0582 mem_kinit
+0x0592 mem_input_store
+0x05a2 mem_x
+0x05b2 mem_y
+0x05c1 mem_y15
+0x05c2 mem_key_store
+0x05d3 mem_key_store_end
+0x05d4 memp_ar_key
+0x05d6 memp_ar_input
+0x05d8 mem_ar_hround
+0x05e2 mem_ec_infinite
+0x05e3 mem_ec_loopc
+0x05e5 mem_aes_cmac_data_length
+0x05e6 memdat
+0x05e6 mem_ax
+0x05fe mem_ay
+0x0616 mem_az
+0x062e mem_bx
+0x0646 mem_ax_256//32 bytes
+0x0646 mem_by
+0x065e mem_bz
+0x0666 mem_ay_256// 32 bytes
+0x0676 mem_cx
+0x0686 mem_az_256// 32 bytes
+0x068e mem_cy
+0x06a5 mem_cy5
+0x06a6 mem_bx_256// 32 bytes
+0x06a6 mem_cz
+0x06be mem_k
+0x06c6 mem_by_256// 31 bytes
+0x06d6 mem_align
+0x06e6 mem_bz_256//32 bytes
+0x06e6 mem_tmp1
+0x06e6 memahbak
+0x06fe mem_tmp5
+0x0706 mem_cx_256//32 bytes
+0x0706 memahsave
+0x0716 mem_tmp2
+0x0726 mem_cy_256// 32 bytes
+0x0726 memahsave_end
+0x0726 mem_addr_padding
+0x0727 mem_addr_value/* 12 bytes     */ 
+0x072e mem_tmp3
+0x072e mem_t1
+0x0733 mem_addr_value_end
+0x0736 mem_addr_iocap_end
+0x0745 mem_cy5_256// 1 byte
+0x0746 mem_cz_256// 32 bytes
+0x0746 mem_tmp0
+0x0746 mem_t0
+0x074e mem_tmp0a
+0x075e mem_t2
+0x0766 mem_k_256//32 bytes
+0x0776 mem_t3
+0x0786 mem_tmp1_256//32 bytes
+0x078e mem_t7
+0x07a6 mem_tmp5_256
+0x07c6 mem_tmp2_256
+0x07e6 mem_tmp3_256
+0x07e6 mem_t1_256
+0x0806 mem_tmp0_256
+0x0806 mem_t0_256
+0x0826 mem_t2_256
+0x0846 mem_t3_256
+0x0866 mem_t7_256
+0x0886 mem_p
+0x089e mem_a
+0x08b6 mem_b
+0x08ce mem_gx
+0x08e6 mem_gy
+0x08fe memh0
+0x091e mem_p_256
+0x093e mem_a_256
+0x095e mem_gx_256
+0x097e mem_gy_256
+0x099e mem_le_slat
+0x09ae mem_sp_state_start
+0x09ae mem_sp_state
+0x09af mem_master_sp_state
+0x09b0 mem_sp_flag
+0x09b1 mem_master_sp_flag
+0x09b2 mem_sp_calc
+0x09b3 mem_sp_dh_ready
+0x09b4 mem_sp_localsm
+0x09b5 mem_pairing_auth
+0x09b6 mem_sp_flag_start
+0x09b6 mem_sp_local_key_send_count
+0x09b7 mem_sp_remote_key_recv_count
+0x09b8 mem_sp_remote_key_invalid
+0x09b9 mem_sp_dhkey_invalid
+0x09ba mem_gkey
+0x09be mem_le_pubkey_remote_x_256
+0x09c6 mem_sp_pubkey_remote
+0x09c6 mem_sp_pubkey_remote_x
+0x09de mem_sp_pubkey_remote_x_end
+0x09de mem_le_pubkey_remote_y_256
+0x09e6 mem_sp_pubkey_remote_y
+0x09fe mem_le_dhkey_256
+0x0a06 mem_sp_dhkey
+0x0a1e mem_sp_dhkey_end
+0x0a1e mem_sp_random_local
+0x0a2e mem_sp_random_local_end
+0x0a2e mem_sp_random_remote
+0x0a3e mem_sp_random_remote_end
+0x0a3e memresult
+0x0a3e mem_sp_calc_result
+0x0a3e memh
+0x0a42 memg
+0x0a46 memf
+0x0a4a meme
+0x0a4e mem_sp_calc_result_high
+0x0a4e memd
+0x0a52 memc
+0x0a56 memb
+0x0a5a mema
+0x0a5e mem_sp_check_result
+0x0a6e mem_sp_confirm_remote
+0x0a7e mem_sp_prarm_stack
+0x0a8e mem_UI_data_txbuff_length
+0x0a90 mem_ipc_skip_continue_proc
+0x0a91 mem_ui_timer_temp//length 4
+0x0a91 mem_ipc_rega_temp
+0x0a95 mem_hold_contr
+0x0a97 mem_hold_contw
+0x0a99 mem_fifo_temp
+0x0a9a mem_pdatatemp
+0x0aa2 mem_temp//8 bytes
+0x0aaa mem_timeup// 4 bytes
+0x0aae mem_rega//4 bytes
+0x0ab2 mem_regb//4 bytes
+0x0ab6 mem_regc//3 bytes
+0x0ab9 mem_contr//2 bytes
+0x0abb mem_contw//2 bytes
+0x0abd mem_wakup_from_power_flag
+0x0abe mem_saved_gpio_in
+0x0ac2 mem_shutter_random_mac_data_temp
+0x0ac2 mem_shutter_config_data_temp
+0x0ac2 mem_le_adv_channel_map_temp
+0x0ac2 mem_le_data_len_temp//1byte
+0x0ac2 mem_tx_fifo_map_temp
+0x0ac2 mem_rpn_dlci//1byte
+0x0ac2 mem_event_cmd_response_content//2byte
+0x0ac2 mem_le_prand//16byte
+0x0ac2 mem_AES_CMAC_k//16 bytes
+0x0ac2 mem_regext_index//1 bytes
+0x0ac2 mem_temp_block0
+0x0ac3 mem_le_data_temp//15bytes
+0x0ac3 mem_temp_block1
+0x0ad2 mem_le_aes_128//16byte
+0x0ad2 mem_regext//64 bytes
+0x0ad2 mem_AES_CMAC_k1//16 bytes
+0x0ad2 mem_temp_block2
+0x0ae2 mem_AES_CMAC_k2//16 bytes
+0x0ae2 mem_temp_block3
+0x0af2 mem_AES_CMAC_temp// 16 bytes
+0x0af2 mem_temp_block4
+0x0b02 mem_AES_CMAC_M_last// 16 bytes
+0x0b02 mem_module_uart_cmd
+0x0b03 mem_module_uart_opcode
+0x0b04 mem_module_uart_len
+0x0b05 mem_module_temp_nl_discard_packet
+0x0b06 mem_temp_block5
+0x0b12 mem_le_mackey//16 bytes
+0x0b12 mem_app_receive_temp
+0x0b12 mem_key_value_temp
+0x0b14 mem_key_value
+0x0b16 mem_key_value_temp1
+0x0b17 mem_key_value_temp2
+0x0b18 mem_key_value_temp3
+0x0b19 mem_key_value_temp4
+0x0b1a mem_key_value_temp5
+0x0b1b mem_key_value_temp6
+0x0b1c mem_temp_block6
+0x0b22 mem_usb_status
+0x0b23 mem_usb_fifo_empty
+0x0b24 mem_usb_read_len
+0x0b25 mem_usb_rxbuf
+0x0b65 mem_bufptr
+0x0b67 mem_remain
+0x0b68 mem_devicedesc
+0x0b7c mem_hidreportdesc_kb
+0x0b7e mem_hidreportdesc_m
+0x0b80 mem_confdesc
+0x0be4 mem_string0
+0x0be9 mem_string1
+0x0c07 mem_string2
+0x0c47 mem_string3
+0x0c65 mem_usb_zero_packet
+0x0c67 mem_usb_ones_packet
+0x0c69 mem_usb_two_packet
+0x0c6b mem_usb0_state
+0x0c6c mem_usb_offline_check_gpio
+0x0c6d mem_usb_tx_interval
+0x0c6e mem_usb_clear_mem_start
+0x0c6e mem_usb_setup
+0x0c6e mem_usb_setup_bmRequestType
+0x0c6f mem_usb_setup_bRequest
+0x0c70 mem_usb_setup_bValue
+0x0c71 mem_usb_setup_bValueH
+0x0c72 mem_usb_setup_wIndex
+0x0c74 mem_usb_setup_bLength
+0x0c75 mem_usb_setup_bLengthH
+0x0c76 mem_usb0_setup
+0x0cb6 mem_usb0_set_report_data
+0x0cf6 mem_usb0_get_report_data
+0x0d36 mem_usb_state
+0x0d37 mem_usb_tx_wait
+0x0d38 mem_usb_tx_enable
+0x0d39 mem_usb_remote_wakeup
+0x0d3a mem_usb_clear_remote_wakeup
+0x0d3b mem_usb_ep0_stall_status
+0x0d3c mem_usb_ep1_stall_status
+0x0d3d mem_usb_ep2_stall_status
+0x0d3e mem_usb_ep3_stall_status
+0x0d3f mem_dsc_info_data_pointer
+0x0d41 mem_dsc_info_len
+0x0d42 mem_usb0_data_ready_report
+0x0d43 mem_usb_tx_win_enable
+0x0d44 mem_usb_tx_mac_enable
+0x0d45 mem_usb_device_enumeration_endflag
+0x0d46 mem_usb_wakestate_onetime_flag
+0x0d47 mem_usb_mac_wakeup_trig
+0x0d48 mem_usb_set_high_addr_flag
+0x0d49 mem_usb_set_protocol_value
+0x0d4a mem_usb_set_protocol_status
+0x0d4b mem_usb_get_protocol_flag
+0x0d4c mem_usb_idle_flag
+0x0d4d mem_usb_idle_rate
+0x0d4e mem_usb_setup_bValue_temp
+0x0d50 mem_usb0_get_set_report
+0x0d51 mem_usb_ep1_data
+0x0d52 mem_usb_ep2_data
+0x0d53 mem_usb_clear_halt
+0x0d54 mem_usb_mouse_data
+0x0d64 mem_usb_kb_data
+0x0d74 mem_usb_kb_multikey
+0x0d84 mem_usb_kb_data_sta_data
+0x0d8c mem_usb_kb_data_last_data
+0x0d94 mem_usb_kb_multikey_sta_data
+0x0d97 mem_usb_kb_multikey_last_data
+0x0d9a mem_usb_kb_blank_data_enable
+0x0d9b mem_usb_kb_mul_blank_data_enable
+0x0d9c mem_usb_test_cnt
+0x0d9d mem_usb_clear_mem_end
+0x0d9d mem_usb_test_kb
+0x0d9e mem_rssi_noise_buffer
+0x0e9e mem_rssi_noise_dg_buffer
+0x0f9e mem_rssi_noise_ms_buffer
+0x109e mem_rssi_noise_kb_buffer
+0x119e mem_24g_common_temp
+0x11be mem_data_pre
+0x11c0 mem_data_current
+0x11c2 mem_data_sum
+0x11c5 mem_zcode_temp_param0//zcode num
+0x11c6 mem_zcode_temp_param1//patch ram func addr
+0x11c8 mem_zcode_temp_param2//patch ram func addr
+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
+0x4090 mem_current_amaddr
+0x4091 mem_lpm_mode
+0x4092 mem_device_option
+0x4093 mem_scan_mode
+0x4094 mem_last_clkn
+0x4098 mem_features
+0x40a0 mem_lap
+0x40a3 mem_uap
+0x40a4 mem_nap
+0x40a6 mem_npage
+0x40a7 mem_glap
+0x40aa mem_class
+0x40ad mem_iscan_window
+0x40af mem_iscan_interval
+0x40b1 mem_pscan_window
+0x40b3 mem_pscan_interval
+0x40b5 mem_page_interval
+0x40b7 mem_page_window
+0x40b9 mem_page_to
+0x40bb mem_inq_window
+0x40bd mem_fcomp_mul
+0x40be mem_fcomp_div
+0x40bf mem_rx_window_init
+0x40c1 mem_rx_window_sniff
+0x40c3 mem_rf_init_ptr
+0x40c5 mem_last_type
+0x40c6 mem_last_type_esco
+0x40c7 mem_last_type_saved
+0x40c8 mem_retransmission_cnt
+0x40ca mem_next_btclk
+0x40ce mem_rf_rccal
+0x40cf mem_handle_num
+0x40d0 mem_max_slot
+0x40d1 mem_eir_enable
+0x40d2 mem_afh_instant
+0x40d6 mem_afh_error_total
+0x40d8 mem_afh_cfg
+0x40d9 mem_afh_new_mod
+0x40da mem_afh_map_lo
+0x40df mem_afh_map_hi
+0x40e4 mem_afh_used
+0x40e5 mem_afh_index
+0x40e7 mem_afh_map_new
+0x40f2 mem_afh_map
+0x4142 mem_afh_timer
+0x4146 mem_afh_classify_channel_map
+0x4150 mem_chip_functions
+0x4152 mem_lpm_wake_lock
+0x4154 mem_lpm_interval
+0x4156 mem_lpm_overhead
+0x4157 mem_lpm_hibernate_switch
+0x4158 mem_esco_addr
+0x4159 mem_sniff_unint_lost
+0x415a mem_ptt
+0x415b mem_sleep_counter//should be 0x41fc in REVC
+0x415f mem_sleep_counter_all
+0x4163 mem_sleep_clkn
+0x4169 mem_sniff_rcv
+0x416c mem_sniff_lost
+0x416f mem_clks_per_lpo
+0x4172 mem_lpm_mult
+0x4173 mem_lpm_mult_timeout
+0x4174 mem_lpm_mult_cnt
+0x4175 mem_lpm_config
+0x4178 mem_lpm_xtalcnt
+0x4179 mem_lpm_buckcnt
+0x417a mem_lpm_ldocnt
+0x417b mem_lpm_isogate
+0x417c mem_lpm_isogate_final
+0x417d mem_saved_gpio// should be 0x421e in REVC
+0x418d mem_saved_gsel
+0x4190 mem_saved_mark
+0x4198 mem_saved_spidctrl
+0x4199 mem_patch_ptr
+0x419b mem_patch_len
+0x419d mem_timers
+0x41bd mem_link_key_exists
+0x41be mem_link_key
+0x41ce mem_hci_cmd
+0x41cf mem_hci_conn_handle
+0x41d0 mem_hci_plap
+0x41d3 mem_hci_puap
+0x41d4 mem_hci_pnap
+0x41d6 mem_uartd_rxitems_got_data
+0x41d7 mem_uartd_rxitems_threshold
+0x41d8 mem_uartd_rx_timeout
+0x41da mem_loadcode_times
+0x41db mem_tx_lch
+0x41dc mem_tx_len
+0x41de mem_tx_power
+0x41df mem_context_number
+0x41e0 mem_250k_freq_enable
+0x41e1 mem_rf_init_data
+0x41e2 mem_app_handshake_flag
+0x41e3 mem_sniff_param_interval
+0x41e5 mem_sniff_param_attempt
+0x41e7 mem_sniff_param_timeout
+0x41e9 mem_cb_check_wakelock
+0x41eb mem_cb_before_hibernate
+0x41ed mem_cb_before_lpm
+0x41ef mem_cb_le_process
+0x41f1 mem_cb_bt_process
+0x41f3 mem_cb_idle_process
+0x41f5 mem_cb_bb_event_process
+0x41f7 mem_cb_discovry_timeout
+0x41f9 mem_cb_att_write
+0x41fb mem_cb_ble_transmit
+0x41fd mem_cb_event_timer
+0x41ff mem_cb_bt_set_mult
+0x4201 mem_cb_spi_flash_write_complate
+0x4203 mem_eeprom_base
+0x4205 mem_unsniff2sniff_timer_count
+0x4206 mem_wake_up_delay_timer
+0x4207 mem_app_connection_options
+0x4208 mem_app_disconn_reason
+0x420a mem_app_disconn_reason_flag
+0x420c mem_lpm_delay_after_sniff
+0x4210 mem_xrecord_mode
+0x4211 mem_eeprom_block_size
+0x4212 mem_spi_init_clk
+0x4213 mem_spi_init_delay_time
+0x4214 mem_spi_ncs_gpio
+0x4215 mem_nv_data_ptr
+0x4217 mem_nv_data_number
+0x4218 mem_queue_ptr
+0x421a mem_ui_led_struct_num
+0x421b mem_ui_led_struct_ptr
+0x421d mem_0_5_adc_io_data
+0x421f mem_1v_adc_hvin_data
+0x4221 mem_2v_adc_vinlpm_data
+0x4223 mem_1v_adc_io_data
+0x4225 mem_5v_adc_hvin_data
+0x4227 mem_3v_adc_vinlpm_data
+0x4229 mem_otp_adc_flag
+0x422b mem_reference_voltage
+0x422d mem_adc_config_flag
+0x422e mem_adc_channel
+0x422f mem_adc_current_value
+0x4231 mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
+0x4232 mem_spi_write_addr
+0x4235 mem_spi_write_ptr
+0x4237 mem_spi_write_len
+0x4239 mem_spi_write_flash_sm
+0x423a mem_eeprom_wp_gpio
+0x423b mem_kscan_ptr
+0x423d mem_key_num_ptr
+0x423d mem_keyscan_ptr
+0x423f mem_power_param_ptr
+0x4241 mem_power_on_flag//forbid to move this variable
+0x4241 mem_24g_head_ptr
+0x4243 mem_baud
+0x4245 mem_hci_lt_rx_state
+0x4246 mem_l2cap_xmem_start
+0x4246 mem_l2cap_tx_multi_offset//0 means single packet
+0x4248 mem_sdp_remote_cid
+0x424a mem_rfcomm_remote_cid
+0x424c mem_hid_ctrl_remote_cid
+0x424e mem_hid_int_remote_cid
+0x4250 mem_sdp_state
+0x4251 mem_rfcomm_state
+0x4252 mem_hid_control_state
+0x4253 mem_hid_interrupt_state
+0x4254 mem_spp_state
+0x4255 mem_ML2CAP_comm_id
+0x4256 mem_used_map
+0x4257 mem_tx_fifo0
+0x4257 mem_tx_fifo0_map
+0x4258 mem_tx_fifo0_ptr
+0x425a mem_tx_fifo1
+0x425a mem_tx_fifo1_map
+0x425b mem_tx_fifo1_ptr
+0x425d mem_tx_fifo2
+0x425d mem_tx_fifo2_map
+0x425e mem_tx_fifo2_ptr
+0x4260 mem_tx_fifo3
+0x4260 mem_tx_fifo3_map
+0x4261 mem_tx_fifo3_ptr
+0x4263 mem_tx_fifo_end
+0x4263 mem_l2cap_lpm_txbuf
+0x4363 mem_l2cap_flow_ctrl_flag
+0x4364 mem_l2cap_pending_item
+0x4365 mem_l2cap_xmem_end
+0x4365 mem_le_dsniff
+0x4367 mem_le_conn_interval
+0x4369 mem_le_scan_enable
+0x436a mem_le_scan_interval
+0x436c mem_le_scan_window
+0x436e mem_le_adv_enable
+0x436f mem_le_adv_data_len
+0x4370 mem_le_adv_data
+0x438f mem_le_scan_data_len
+0x4390 mem_le_scan_data
+0x43af mem_le_name_len
+0x43b0 mem_le_name
+0x43ce mem_le_new_map
+0x43d3 mem_le_new_param
+0x43d3 mem_le_new_transmitwindowsize
+0x43d4 mem_le_new_transmitwindowoffset
+0x43d6 mem_le_new_conninterval
+0x43d8 mem_le_new_connslavelatency
+0x43da mem_le_new_connsupervisiontimeout
+0x43dc mem_le_txheader
+0x43dd mem_le_txlen
+0x43de mem_le_txpayload
+0x43e0 mem_le_txcid
+0x43e2 mem_le_l2cap
+0x43e3 mem_le_l2cap_response
+0x43e4 mem_le_txbdy
+0x4403 mem_le_pcnt_tx
+0x4408 mem_le_pcnt_rx
+0x440d mem_le_last_mic
+0x4411 mem_le_ivm
+0x4415 mem_le_ivs
+0x4419 mem_le_ltk
+0x4429 mem_ltk_exists
+0x442a mem_le_rconfirm
+0x443a mem_le_srand
+0x444a mem_le_iat
+0x444b mem_le_rat
+0x444c mem_le_preq
+0x444d mem_le_preq_iocap
+0x444e mem_le_preq_oob
+0x444f mem_le_preq_auth
+0x4450 mem_le_preq_max_keysize
+0x4451 mem_le_preq_init_key_distribution
+0x4452 mem_le_preq_resp_key_distribution
+0x4453 mem_le_pres
+0x4454 mem_le_pres_iocap
+0x4455 mem_le_pres_oob
+0x4456 mem_le_pres_auth
+0x4457 mem_le_pres_max_keysize
+0x4458 mem_le_pres_init_key_distribution
+0x4459 mem_le_pres_resp_key_distribution
+0x445a mem_le_search_handle_start
+0x445c mem_le_search_handle_end
+0x445e mem_le_att_offset
+0x445e mem_le_search_att_type_length
+0x445f mem_le_search_att_type
+0x446f mem_le_notify_handle
+0x4471 mem_le_search_uuid_length
+0x4472 mem_le_search_uuid
+0x4482 mem_le_adv_param
+0x4482 mem_le_adv_interval
+0x4484 mem_le_adv_type
+0x4485 mem_le_adv_own_addr_type
+0x4486 mem_le_adv_direct_addr_type
+0x4487 mem_le_adv_direct_addr
+0x448d mem_le_adv_channel_map
+0x448e mem_le_conn_param
+0x448e mem_le_conn_peer_addr_type
+0x448f mem_le_conn_peer_addr
+0x4495 mem_le_conn_own_addr_type
+0x4496 mem_le_interval_min
+0x4498 mem_le_interval_max
+0x449a mem_le_latency
+0x449c mem_le_timeout
+0x449e mem_le_scan_params
+0x449e mem_le_scan_type
+0x449f mem_le_scan_own_addr_type
+0x44a0 mem_le_lap
+0x44a3 mem_le_uap
+0x44a4 mem_le_nap
+0x44a6 mem_le_local_mtu
+0x44a8 mem_le_remote_mtu
+0x44aa mem_le_skdm
+0x44b2 mem_le_skds
+0x44ba mem_le_init_superto
+0x44bc mem_ui_le_uuid_table
+0x44be mem_le_secure_connect_enable
+0x44bf mem_le_secure_connect_flag
+0x44c0 mem_le_sc_calc
+0x44c1 mem_le_secure_connect_state
+0x44c2 mem_le_sc_confirm_gkey_flag
+0x44c3 mem_le_sc_local_key_invalid
+0x44c4 mem_le_pairing_state
+0x44c5 mem_le_enc_state
+0x44c6 mem_le_pairing_mode
+0x44c7 mem_le_tk
+0x44cb mem_le_ediv
+0x44cd mem_le_rand
+0x44d5 mem_le_irk
+0x44e5 mem_le_transmit_window
+0x44e9 mem_le_configuration
+0x44ea mem_le_fixed_ltk
+0x44fa mem_le_pairing_handle
+0x44fc mem_le_l2cap_size
+0x44fe mem_le_packet_len_recved
+0x44ff mem_le_tx_buff_used
+0x4500 mem_le_tx_ptr0
+0x4502 mem_le_tx_ptr1
+0x4504 mem_le_tx_ptr2
+0x4506 mem_le_tx_ptr3
+0x4508 mem_le_signaling_identifier
+0x4509 mem_le_l2cap_signaling_conn_param_update_rsp_result
+0x450b mem_le_packet_size
+0x450c mem_le_packet_llid
+0x450d mem_le_payload_ptr
+0x450f mem_le_md_count
+0x4510 mem_lmp_version
+0x4513 mem_lmp_subversion
+0x4515 mem_local_name_length
+0x4516 mem_local_name
+0x4519 mem_local_name2
+0x4559 mem_local_name_end
+0x455a mem_unsniff2sniff_timer
+0x455b mem_switch_flag
+0x455c mem_classic_bt_flag
+0x455d mem_pn_dlci
+0x455e mem_pn_max_frame_size
+0x4560 memFCStemp1
+0x4561 memFCStemp2
+0x4562 memFCStemp3
+0x4563 mem_rfcomm_initiator
+0x4564 mem_remote_spp_channel
+0x4565 mem_HIUfcs_SPP
+0x4566 mem_HIUfcs_SPP_WCredits
+0x4567 mem_rfcomm_send_more_pkt
+0x4568 mem_remote_credits
+0x4569 mem_credit_given
+0x456a mem_ms_channel
+0x456b mem_credit_flag
+0x456c mem_rfcomm_max_frame_size
+0x456e mem_rfcomm_credit_init_data
+0x456f mem_cb_receive_spp_data
+0x4571 mem_nl_rx_data_src
+0x4573 mem_nl_rx_len_all
+0x4575 mem_ui_uuid_table
+0x4577 mem_all_uuid_16bits
+0x458d mem_all_uuid_128bits
+0x45af mem_sdp_l2capch_ptr
+0x45b1 mem_sp_local_key_invalid
+0x45b2 mem_le_private_key_256
+0x45d2 mem_le_pubkey_local_x_256
+0x45f2 mem_le_pubkey_local_y_256
+0x4612 mem_sp_private_key
+0x462a mem_sp_pubkey_local
+0x462a mem_sp_pubkey_local_x
+0x4642 mem_sp_pubkey_local_x_end
+0x4642 mem_sp_pubkey_local_y
+0x465a mem_ssp_enable
+0x465b mem_sp_iocap_local
+0x465e mem_sp_iocap_remote
+0x4661 mem_flag_mode_ssp_pin
+0x4662 mem_ssp_mode_flag
+0x4663 mem_authentication_passkey_times
+0x4664 mem_passkey_1bit
+0x4665 mem_flag_pairing_state
+0x4666 mem_ipc_lock_bt
+0x4667 mem_ipc_lock_c51
+0x4668 mem_ipc_fifo_bt2c51
+0x4670 mem_ipc_fifo_c512bt
+0x4678 mem_ui_button_timer
+0x4679 mem_ui_button_last_state
+0x467a mem_ui_timer_last_btclk
+0x467e mem_discovery_timeout_timer_count
+0x4680 mem_hid_handshake_timer_count
+0x4681 memui_reconnect_mode
+0x4682 mem_ui_state_map
+0x4684 mem_ui_profile_supported
+0x4685 mem_ui_button_timeout
+0x4686 mem_ui_button_gpio
+0x4687 mem_discovery_timeout
+0x4689 mem_pin_length
+0x468a mem_pin
+0x469a mem_antl_lpm_interval
+0x469c mem_antl_adv_interval
+0x469e mem_antl_slow_adv_lpm_interval
+0x46a0 mem_antl_slow_adv_adv_interval
+0x46a2 mem_antl_led_style
+0x46a2 mem_antl_led_type
+0x46a3 mem_antl_led_blink_count
+0x46a4 mem_antl_led_gpio
+0x46a5 mem_antl_led_on_time
+0x46a7 mem_antl_led_off_time
+0x46a9 mem_antl_led_cb_on
+0x46ab mem_antl_led_cb_off
+0x46ad mem_antl_buzzer_style
+0x46ad mem_antl_buzzer_type
+0x46ae mem_antl_buzzer_blink_count
+0x46af mem_antl_buzzer_gpio
+0x46b0 mem_antl_buzzer_on_time
+0x46b2 mem_antl_buzzer_off_time
+0x46b4 mem_antl_buzzer_cb_on
+0x46b6 mem_antl_buzzer_cb_off
+0x46b8 mem_antl_fast_adv_led_style
+0x46b8 mem_antl_fast_adv_led_type
+0x46b9 mem_antl_fast_adv_led_blink_count
+0x46ba mem_antl_fast_adv_led_gpio
+0x46bb mem_antl_fast_adv_led_on_time
+0x46bd mem_antl_fast_adv_led_off_time
+0x46bf mem_antl_slow_adv_led_style
+0x46bf mem_antl_slow_adv_led_type
+0x46c0 mem_antl_slow_adv_led_blink_count
+0x46c1 mem_antl_slow_adv_led_gpio
+0x46c2 mem_antl_slow_adv_led_on_time
+0x46c4 mem_antl_slow_adv_led_off_time
+0x46c6 mem_antl_power_starting_led_style
+0x46c6 mem_antl_power_starting_led_type
+0x46c7 mem_antl_power_starting_led_blink_count
+0x46c8 mem_antl_power_starting_led_gpio
+0x46c9 mem_antl_power_starting_led_on_time
+0x46cb mem_antl_power_starting_led_off_time
+0x46cd mem_antl_power_starting_buzzer_style
+0x46d4 mem_antl_power_off_led_style
+0x46d4 mem_antl_power_off_led_type
+0x46d5 mem_antl_power_off_led_link_count
+0x46d6 mem_antl_power_off_led_gpio
+0x46d7 mem_antl_power_off_led_on_time
+0x46d9 mem_antl_power_off_led_off_time
+0x46db mem_antl_power_off_buzzer_style
+0x46db mem_antl_power_off_buzzer_type
+0x46dc mem_antl_power_off_buzzer_link_count
+0x46dd mem_antl_power_off_buzzer_gpio
+0x46de mem_antl_power_off_buzzer_on_time
+0x46e0 mem_antl_power_off_buzzer_off_time
+0x46e2 mem_antl_alert_led_stlye
+0x46e9 mem_antl_alert_buzzer_stlye
+0x46e9 mem_antl_alert_buzzer_type
+0x46ea mem_antl_alert_buzzer_blink_count
+0x46eb mem_antl_alert_buzzer_gpio
+0x46ec mem_antl_alert_buzzer_on_time
+0x46ee mem_antl_alert_buzzer_off_time
+0x46f0 mem_antl_key_led_style
+0x46f0 mem_antl_key_led_type
+0x46f1 mem_antl_key_led_blink_count
+0x46f2 mem_antl_key_led_gpio
+0x46f3 mem_antl_key_led_on_time
+0x46f5 mem_antl_key_led_off_time
+0x46f7 mem_antl_key_buzzer_style
+0x46fe mem_antl_queue_width
+0x46ff mem_antl_queue_depth
+0x4700 mem_antl_queue_curr_num
+0x4701 mem_antl_queue_read_ptr
+0x4702 mem_antl_queue_write_ptr
+0x4703 mem_antl_queue_buff
+0x4753 mem_antl_key_scan_enable
+0x4754 mem_antl_led_num
+0x4755 mem_antl_led_gpio_map
+0x4759 mem_antl_power_param
+0x4759 mem_antl_power_state
+0x475a mem_antl_power_timer
+0x475b mem_antl_power_off_timeout
+0x475c mem_antl_power_starting_timeout
+0x475d mem_antl_power_off_cb
+0x475f mem_antl_power_starting_cb
+0x4761 mem_antl_power_standby_cb
+0x4763 mem_event_button_up_cb
+0x4765 mem_antl_key_num
+0x4766 mem_cb_antl_key
+0x4768 mem_antl_key_conf0
+0x476c mem_antl_key0_press
+0x477b mem_antl_key0_release
+0x478a mem_antl_conn_updata_procedure_state
+0x478b mem_client_characteristic_configuration_descriptor
+0x478d mem_adc_timer
+0x478f mem_antl_conn_update_timer
+0x4790 mem_antl_send_updata_le_param_timer
+0x4791 mem_antl_le_sleep_timer
+0x4793 mem_antl_fast_adv_timer
+0x4795 mem_antl_fast_adv_timeout
+0x4797 mem_antl_le_sleep_timeout
+0x4799 mem_double_click_timer
+0x479a mem_butten_click_cnt
+0x479b mem_antl_led_state
+0x479c mem_antl_buzzer_state
+0x479d mem_antl_key_state
+0x479e mem_antl_lost_mode
+0x479f mem_alarm_config
+0x47a0 mem_alarm_config_notfy_cnt
+0x47a1 mem_buzzer_pwm_conf
+0x47a7 mem_adc_timeout
+0x47a9 mem_voltage_remain_percent
+0x47aa mem_battery_calculate_set
+0x47aa mem_battery_full_voltage
+0x47ac mem_battery_empty_voltage
+0x47ae mem_battery_low_voltage
+0x47b0 mem_battery_current_voltage
+0x47b2 mem_rx_window_sniff_inc
+0x47b4 mem_interval_increment
+0x47b6 mem_antl_le_interval_min
+0x47b8 mem_antl_le_interval_max
+0x47ba mem_antl_le_latency
+0x47bc mem_antl_le_timeout
+0x47be mem_antl_le_unnormal_interval_min
+0x47c0 mem_antl_le_unnormal_interval_max
+0x47c2 mem_antl_le_unnormal_latency
+0x47c4 mem_antl_le_unnormal_timeout
+0x47c6 mem_AntiLost_le_att_list
+0x469a mem_car_hard_soft_switch
+0x469b mem_car_queue_each_size
+0x469c mem_car__queue_length
+0x469d mem_car_queue_curr_num
+0x469e mem_car_queue_read_ptr
+0x469f mem_car_queue_write_ptr
+0x46a0 mem_car_queue_ele
+0x4718 mem_car_pop_queue_buff
+0x472c mem_car_led_num
+0x472d mem_car_led_map
+0x4737 mem_car_style1_led_type
+0x4738 mem_car_style1_blink_count
+0x4739 mem_car_style1_struct_led_gpio
+0x473a mem_car_style1_on_time
+0x473c mem_car_style1_off_time
+0x473e mem_car_style1_cb_ledon
+0x4740 mem_car_style1_cb_ledoff
+0x4742 mem_car_style2_led_type
+0x4743 mem_car_style2_blink_count
+0x4744 mem_car_style2_struct_led_gpio
+0x4745 mem_car_style2_on_time
+0x4747 mem_car_style2_off_time
+0x4749 mem_car_style2_cb_ledon
+0x474b mem_car_style2_cb_ledoff
+0x474d mem_le_receive_data
+0x474d mem_le_receive_packet_head
+0x474f mem_le_receive_cmd
+0x4750 mem_le_receive_length
+0x4752 mem_le_receive_payload
+0x475c mem_le_receive_checksum
+0x475d mem_motor1_status
+0x475e mem_motor1_speed
+0x475f mem_motor2_status
+0x4760 mem_motor2_speed
+0x4761 mem_motor3_status
+0x4762 mem_motor3_speed
+0x4763 mem_motor1_pwm_set
+0x4763 mem_motor1_pwm_pin1_set
+0x4764 mem_motor1_pwm_pin2_set
+0x4765 mem_motor1_pwm_pin_set
+0x4766 mem_motor1_pwm_channel_set
+0x4767 mem_motor1_pwm_freq_set
+0x476a mem_motor1_pwm_dute_set
+0x476b mem_motor2_pwm_set
+0x476b mem_motor2_pwm_pin1_set
+0x476c mem_motor2_pwm_pin2_set
+0x476d mem_motor2_pwm_pin_set
+0x476e mem_motor2_pwm_channel_set
+0x476f mem_motor2_pwm_freq_set
+0x4772 mem_motor2_pwm_dute_set
+0x4773 mem_motor3_pwm_set
+0x4773 mem_motor3_pwm_pin1_set
+0x4774 mem_motor3_pwm_pin2_set
+0x4775 mem_motor3_pwm_pin_set
+0x4776 mem_motor3_pwm_channel_set
+0x4777 mem_motor3_pwm_freq_set
+0x477a mem_motor3_pwm_dute_set
+0x477b mem_motor_select_p_n
+0x477c mem_car_motor_status
+0x477d mem_car_motor_speed
+0x477e mem_motor_pwm_set
+0x477e mem_motor_pwm_pin1_set
+0x477f mem_motor_pwm_pin2_set
+0x4780 mem_motor_pwm_pin_set
+0x4781 mem_motor_pwm_channel_set
+0x4782 mem_motor_pwm_freq_set
+0x4785 mem_motor_pwm_dute_set
+0x4786 mem_ir_rx_gpio
+0x4787 mem_ir_data
+0x4789 mem_ir_rx_buf
+0x478b mem_ir_receive_clkn
+0x478f mem_ir_notify_data
+0x4792 mem_ir_notify_data_head
+0x4797 mem_ir_notify_data_payload
+0x4799 mem_ir_notify_data_check_sum
+0x479a mem_car_ir_breakdown_check_timer
+0x479b mem_car_ir_breakdown_flag
+0x479c mem_car_led_control
+0x479c mem_car_led1_status
+0x479d mem_car_led2_status
+0x479e mem_car_led3_status
+0x479f mem_car_led4_status
+0x47a0 mem_car_led5_status
+0x47a1 mem_car_led6_status
+0x47a2 mem_car_led7_status
+0x47a3 mem_car_led8_status
+0x47a4 mem_car_led_control_timer
+0x47a5 mem_car_led_blink_status
+0x47a6 mem_car_led_no
+0x47a7 mem_car_info_request
+0x47aa mem_car_info_request_head
+0x47af mem_car_info_request_payload
+0x47b7 mem_car_info_request_checksum
+0x47b8 mem_car_config_param
+0x47b8 mem_car_config_setting_flag
+0x47b9 mem_car_config_device_select
+0x47ba mem_car_config_motor_layout
+0x47bb mem_car_config_ir_enable
+0x47bc mem_car_config_ir_rx_gpio
+0x47bd mem_car_config_pairing_led_conn_status
+0x47be mem_car_config_pairing_led_gpio
+0x47bf mem_car_config_led_num
+0x47c0 mem_car_config_blood_led_gpio
+0x47c0 mem_car_config_blood_led1_gpio
+0x47c1 mem_car_config_blood_led2_gpio
+0x47c2 mem_car_config_blood_led3_gpio
+0x47c3 mem_car_config_blood_led4_gpio
+0x47c4 mem_car_config_blood_led5_gpio
+0x47c5 mem_car_config_blood_led6_gpio
+0x47c6 mem_car_config_blood_led7_gpio
+0x47c7 mem_car_config_blood_led8_gpio
+0x47c8 mem_car_config_bat_notify_enable
+0x47c9 mem_car_config_low_voltage_led_gpio
+0x47ca mem_car_config_low_voltage_percent
+0x47cb mem_car_config_soft_switch_enable
+0x47cc mem_car_config_soft_switch_gpio
+0x47cd mem_car_notify_vdd_count
+0x47ce mem_car_notify_vdd_timer
+0x47cf mem_car_notify_vdd_value_last
+0x47d0 mem_car_notify_vdd_percent
+0x47d1 mem_car_working_flag
+0x47d2 mem_low_bat_flag
+0x47d3 mem_notify_bat_packet
+0x47d6 mem_notify_bat_head
+0x47db mem_notify_bat_payload
+0x47dc mem_notify_bat_check_sum
+0x47dd mem_vdd_notify_flag
+0x47de mem_car_current_vdd_value_temp
+0x47e0 mem_car_last_vdd_value
+0x47e2 mem_vdd_calculate_set
+0x47e2 mem_vdd_full_vol
+0x47e4 mem_vdd_empty_vol
+0x47e6 mem_vdd_low_vol
+0x47e8 mem_vdd_now_vol
+0x47ea mem_car_24g_status
+0x47eb mem_car_24g_no_data_timeout_count
+0x47ed mem_car_24g_no_data_timeout_timer
+0x47ef mem_car_24g_ir_receive_attack_count
+0x47f0 mem_car_24g_go_die_flag
+0x47f1 mem_car_attack_shake_timer
+0x47f2 mem_car_attack_shake_flag
+0x47f3 mem_car_soft_power
+0x47f3 mem_car_power_state
+0x47f4 mem_car_power_timer
+0x47f5 mem_car_power_off_timeout
+0x47f6 mem_car_power_starting_timeout
+0x47f7 mem_car_power_off_cb
+0x47f9 mem_car_power_starting_cb
+0x47fb mem_car_power_standby_cb
+0x47fd mem_car_ui_button_up_cb
+0x47ff mem_car_le_att_list
+0x49f3 mem_car_moto1_blank_timer
+0x49f4 mem_car_moto2_blank_timer
+0x49f5 mem_car_moto3_blank_timer
+0x49f6 mem_car_24g_received_pac
+0x49f7 mem_24g_car_head_ptr
+0x469a mem_light_pwm0
+0x469b mem_light_pwm1
+0x469c mem_light_pwm2
+0x469d mem_light_pwm3
+0x469e mem_light_pwm4
+0x469f mem_light_pwm5
+0x46a0 mem_light_pairing_enable
+0x46a1 mem_light_pairing_timer
+0x46a3 mem_light_cnum
+0x46a4 mem_light_next_record
+0x46a5 mem_light_clist
+0x46f5 mem_light_crr_cmd_count
+0x46f6 mem_curr_packet_num
+0x469a mem_lightc_led_gpio
+0x469b mem_lightc_row
+0x46a1 mem_lightc_col
+0x46a7 mem_adv_time
+0x46a8 mem_cmd0_string
+0x46bc mem_cmd1_string
+0x46d0 mem_cmd2_string
+0x46e4 mem_cmd3_string
+0x46f8 mem_cmd4_string
+0x470c mem_cmd5_string
+0x4720 mem_cmd6_string
+0x4734 mem_cmd7_string
+0x4748 mem_cmd8_string
+0x475c mem_cmd9_string
+0x4770 mem_cmd10_string
+0x4784 mem_cmd11_string
+0x4798 mem_cmd12_string
+0x47ac mem_cmd13_string
+0x47c0 mem_cmd14_string
+0x47d4 mem_cmd15_string
+0x47e8 mem_cmd16_string
+0x47fc mem_cmd17_string
+0x4810 mem_cmd18_string
+0x4824 mem_cmd19_string
+0x4838 mem_cmd20_string
+0x469a mem_soft_version_num
+0x469c mem_module_wake_up_gpio
+0x469d mem_module_state_gpio
+0x469e mem_module_connect_state_gpio
+0x469f mem_current_packet_length
+0x46a1 mem_module_state
+0x46a2 mem_module_mcu_wake_pin
+0x46a3 mem_module_mcu_wake_delay_us
+0x46a7 mem_module_spp_lpm_mult
+0x46a8 mem_module_le_lpm_mult
+0x46a9 mem_module_bluetooth_stauts_by_command
+0x46aa mem_module_uart_rx_buffer
+0x46ac mem_module_uart_rx_buffer_end
+0x46ae mem_module_uart_tx_buffer
+0x46b0 mem_module_uart_tx_buffer_end
+0x46b2 mem_module_read_vdd_flag
+0x46b3 mem_module_read_vdd_count
+0x46b4 mem_module_vdd_quotient
+0x46b5 mem_module_vdd_remainder
+0x46b6 mem_module_le_rx_data_len
+0x46b7 mem_module_le_rx_data_address
+0x46b9 mem_module_le_rx_data_handle
+0x46bb mem_module_data_write_handle
+0x46bd mem_module_data_write_handle2
+0x46bf mem_module_flag
+0x46c0 mem_module_hci_notify_len
+0x46c1 mem_module_hci_notify_handle
+0x46c3 mem_module_hci_nofiy_addr
+0x46c5 mem_last_transmite_clock
+0x46c9 mem_module_uuid_list
+0x47f5 mem_module_uuid_list_end
+0x47f5 mem_module_le_att_list
+0x4a4d mem_module_le_att_list_end
+0x4a4d mem_module_nv_data
+0x4a4d mem_module_nv_data0
+0x4a6f mem_module_nv_data1
+0x4a91 mem_module_nv_data2
+0x4ab3 mem_module_nv_data3
+0x4ad5 mem_module_nv_data4
+0x469a mem_remote_car_hard_soft_switch
+0x469b mem_remote_car_queue_each_size
+0x469c mem_remote_car_queue_length
+0x469d mem_remote_car_queue_curr_num
+0x469e mem_remote_car_queue_read_ptr
+0x469f mem_remote_car_queue_write_ptr
+0x46a0 mem_remote_car_queue_ele
+0x46fa mem_remote_style_led_type
+0x46fb mem_remote_style_blink_count
+0x46fc mem_remote_style_struct_led_gpio
+0x46fd mem_remote_style_on_time
+0x46ff mem_remote_style_off_time
+0x4701 mem_remote_style_cb_ledon
+0x4703 mem_remote_style_cb_ledoff
+0x4705 mem_remote_car_led_num
+0x4706 mem_remote_car_led_map
+0x470e mem_remote_car_keyscan
+0x470e mem_remote_car_key_num
+0x470f mem_cb_remote_car_keyscan
+0x4711 mem_remote_car_key_conf0
+0x4711 mem_remote_car_key_conf0_pin
+0x4712 mem_remote_car_key_conf1
+0x4712 mem_remote_car_key_conf1_pin
+0x4713 mem_remote_car_key_conf2
+0x4713 mem_remote_car_key_conf2_pin
+0x4714 mem_remote_car_key_conf3
+0x4714 mem_remote_car_key_conf3_pin
+0x4715 mem_remote_car_key_conf4
+0x4715 mem_remote_car_key_conf4_pin
+0x4716 mem_remote_car_key_conf5
+0x4716 mem_remote_car_key_conf5_pin
+0x4717 mem_remote_car_key_conf6
+0x4717 mem_remote_car_key_conf6_pin
+0x4718 mem_rocker_negative_flag
+0x4719 mem_rocker_work_status
+0x471a mem_current_vdd_value_default_mid_x
+0x471c mem_current_vdd_value_default_mid_y
+0x471e mem_current_vdd_value_default_mid_temp
+0x4720 mem_current_vdd_default_range
+0x4722 mem_rocker_last_status
+0x4724 mem_rocker_status
+0x4724 mem_rocker_x_status
+0x4725 mem_rocker_y_status
+0x4726 mem_remote_car_config_param
+0x4726 mem_remote_car_config_setting_flag
+0x4727 mem_remote_car_config_key_map
+0x4728 mem_remote_car_config_layout
+0x4729 mem_remote_car_config_connect_led_gpio
+0x472a mem_remote_car_config_check_way
+0x472b mem_remote_car_config_soft_switch_enable
+0x472c mem_remote_car_config_soft_switch_gpio
+0x472d mem_remote_car_config_timeout_shutdown_enable
+0x472e mem_remote_car_24g_motor_packet
+0x472e mem_remote_car_24g_motor_packet_lenght
+0x472f mem_remote_car_24g_motor_send_packet_head
+0x4731 mem_remote_car_24g_motor_send_cmd
+0x4732 mem_remote_car_24g_motor_send_length
+0x4734 mem_remote_car_24g_motor_send_payload
+0x4734 mem_remote_car_24g_motor1_payload
+0x4736 mem_remote_car_24g_motor2_payload
+0x4738 mem_remote_car_24g_motor3_payload
+0x473a mem_remote_car_24g_motor_send_checksum
+0x473b mem_remote_car_24g_fire_packet
+0x473b mem_remote_car_24g_fire_packet_lenght
+0x473c mem_remote_car_24g_fire_send_packet_head
+0x473e mem_remote_car_24g_fire_send_cmd
+0x473f mem_remote_car_24g_fire_send_length
+0x4741 mem_remote_car_24g_fire_send_payload
+0x4743 mem_remote_car_24g_fire_send_checksum
+0x4744 mem_remote_car_24g_tx_temp
+0x4753 mem_remote_car_no_data_timeout
+0x4755 mem_remote_car_no_data_timer
+0x4757 mem_remote_car_soft_power
+0x4757 mem_remote_car_power_state
+0x4758 mem_remote_car_power_timer
+0x4759 mem_remote_car_power_off_timeout
+0x475a mem_remote_car_power_starting_timeout
+0x475b mem_remote_car_power_off_cb
+0x475d mem_remote_car_power_starting_cb
+0x475f mem_remote_car_power_standby_cb
+0x4761 mem_remote_key_status
+0x4762 mem_remote_car_24g_status
+0x4763 mem_remote_car_24g_auto_work_step
+0x4764 mem_remote_car_24g_pair_success_flag
+0x4765 mem_remote_car_24g_enter_lpm_enable
+0x4766 mem_remote_car_empty_packet
+0x4767 mem_24g_RC_head_ptr
+0x469a mem_shutter_bluetooth_type
+0x469b mem_shutter_config_enable
+0x469c mem_shutter_config_otp_base_address
+0x469e mem_shutter_config_size
+0x469f mem_shutter_config_select_gpio1
+0x46a0 mem_shutter_config_select_gpio2
+0x46a1 mem_shutter_config_select_gpio3
+0x46a2 mem_shutter_config_user_otp_address
+0x46a4 mem_shutter_config_eeprom_offset_addr
+0x46a6 mem_shutter_config_eeprom_start_flag
+0x46a8 mem_shutter_config_user_size
+0x46a9 mem_shutter_config_label
+0x46aa mem_shutter_config_otp_addr
+0x46ac mem_classic_shutter_cable_unplug_conut
+0x46ad mem_classic_shutter_hid_disconn_count
+0x46ae mem_classic_shutter_random_mac_offset_addr
+0x46b0 mem_ble_shutter_enable_notify
+0x46b1 mem_ble_shutter_reconn_dav_interval
+0x46b3 mem_ble_shutter_discovery_adv_interval
+0x46b5 mem_ble_shutter_reconn_timeout
+0x46b7 mem_ble_shutter_reconn_timer
+0x46b9 mem_ble_shutter_reconn_blink_on_time
+0x46bb mem_ble_shutter_reconn_blink_off_time
+0x46bd mem_ble_shutter_discovery_blink_on_time
+0x46bf mem_ble_shutter_discovery_blink_off_time
+0x46c1 mem_ble_shutter_interval_min
+0x46c3 mem_ble_shutter_interval_max
+0x46c5 mem_ble_shutter_latency
+0x46c7 mem_ble_shutter_timeout
+0x46c9 mem_ble_shutter_interval_min_new
+0x46cb mem_ble_shutter_interval_max_new
+0x46cd mem_ble_shutter_latency_new
+0x46cf mem_ble_shutter_timeout_new
+0x46d1 mem_classic_shutter_discovery_timeout
+0x46d3 mem_classic_shutter_connect_timeout
+0x46d5 mem_ble_shutter_discovery_timeout
+0x46d7 mem_ble_shutter_connect_timeout
+0x46d9 mem_shutter_sleep_timeout
+0x46db mem_shutter_sleep_timer
+0x46dd mem_shutter_hard_soft_switch_case
+0x46de mem_shutter_soft_switch_button_gpio
+0x46df mem_shutter_soft_switch_power_state
+0x46e0 mem_shutter_soft_switch_poweron_time
+0x46e1 mem_shutter_soft_switch_poweroff_time
+0x46e2 mem_shutter_soft_switch_poweron_callback_function
+0x46e4 mem_shutter_soft_switch_poweroff_callback_function
+0x46e6 mem_shutter_keyscan
+0x46e6 mem_shutter_key_num
+0x46e7 mem_cb_shutter_keycan
+0x46e9 mem_shutter_key_conf0
+0x46ea mem_shutter_key_conf1
+0x46eb mem_shutter_key_conf2
+0x46ec mem_shutter_key_conf3
+0x46ed mem_shutter_key_conf4
+0x46ee mem_shutter_key_conf5
+0x46ef mem_shutter_key_conf6
+0x46f0 mem_shutter_key_conf7
+0x46f1 mem_key0_press
+0x46f6 mem_key1_press
+0x46fb mem_key2_press
+0x4700 mem_key3_press
+0x4705 mem_key4_press
+0x470a mem_key5_press
+0x470f mem_key6_press
+0x4714 mem_key7_press
+0x4719 mem_key0_release
+0x471e mem_key1_release
+0x4723 mem_key2_release
+0x4728 mem_key3_release
+0x472d mem_key4_release
+0x4732 mem_key5_release
+0x4737 mem_key6_release
+0x473c mem_key7_release
+0x4741 mem_ble_data_buffer1
+0x4746 mem_ble_data_buffer2
+0x474b mem_ble_data_buffer3
+0x4750 mem_ble_data_buffer4
+0x4755 mem_ble_data_buffer5
+0x475a mem_ble_data_buffer6
+0x475f mem_ble_data_buffer7
+0x4764 mem_ble_data_buffer8
+0x4769 mem_ble_data_buffer9_58
+0x479b mem_classic_data_buffer
+0x47a0 mem_classic_data_buffer1
+0x47a5 mem_classic_data_buffer2
+0x47aa mem_classic_data_buffer3
+0x47af mem_classic_data_buffer4
+0x47b4 mem_classic_data_buffer5
+0x47b9 mem_classic_data_buffer6
+0x47be mem_classic_data_buffer7
+0x47c3 mem_classic_data_buffer8
+0x47c8 mem_classic_data_buffer9_58
+0x47fa mem_queue_each_size
+0x47fb mem_queue_length
+0x47fc mem_queue_curr_num
+0x47fd mem_queue_read_ptr
+0x47fe mem_queue_write_ptr
+0x47ff mem_queue_ele
+0x481f mem_shutter_nv_data
+0x48c9 mem_shutter_led_struct_app_led
+0x48c9 mem_shutter_led_struct_app_led_type
+0x48ca mem_shutter_led_struct_app_led_blink_count
+0x48cb mem_shutter_led_struct_app_led_gpio
+0x48cc mem_shutter_led_struct_app_led_on_time
+0x48ce mem_shutter_led_struct_app_led_off_time
+0x48d0 mem_shutter_led_struct_app_led_on_callback
+0x48d2 mem_shutter_led_struct_app_led_off_callback
+0x48d4 mem_shutter_power_off_led_style
+0x48d4 mem_shutter_power_off_led_style_type
+0x48d5 mem_shutter_power_off_led_style_blink_count
+0x48d6 mem_shutter_power_off_led_style_gpio
+0x48d7 mem_shutter_power_off_led_style_on_time
+0x48d9 mem_shutter_power_off_led_style_off_time
+0x48db mem_shutter_power_off_led_style_on_callback
+0x48dd mem_shutter_power_off_led_style_off_callback
+0x48df mem_shutter_soft_swtich_botton_down
+0x48e0 mem_shutter_soft_swtich_led_struct_temp
+0x48eb mem_shutter_power_off_timeout
+0x48ec mem_shutter_power_off_timer
+0x469a mem_mouse_key
+0x469b mem_mouse_x
+0x469d mem_mouse_y
+0x469f mem_mouse_z
+0x46a0 mem_mouse_tz
+0x46a1 mem_mouse_xy_h
+0x46a2 mem_sensor_shutter_hi
+0x46a3 mem_sensor_shutter_lo
+0x46a4 mem_sensor_smart_flag
+0x46a5 mem_sensor_squal_reg
+0x46a6 mem_sensor_iqc
+0x46a7 mem_mouse_move_flag
+0x46a8 mem_mouse_direct_timeout
+0x46aa mem_mouse_no_data_timeout
+0x46ac mem_mouse_discovery_timer
+0x46ae mem_mouse_direct_timer
+0x46b0 mem_mouse_no_data_timer
+0x46b2 mem_mouse_blank_data_timer
+0x46b4 mem_mouse_send_blank_timer
+0x46b5 mem_mouse_cpi_count
+0x46b6 mem_mouse_dpi_button_state
+0x46b7 mem_wheel_tb_old_pinlevel
+0x46b8 mem_wheel_tb_new_pinlevel
+0x46b9 mem_wheel_tog
+0x46ba mem_mouse_tz_data
+0x46bb mem_mouse_tz_data_count
+0x46bc mem_mouse_tz_data_count1
+0x46bd mem_mwheel_b_old_pinlevel
+0x46be mem_mwheel_b_new_pinlevel
+0x46bf mem_mwheel_tog
+0x46c0 mem_mouse_z_data
+0x46c1 mem_mouse_z_data_count
+0x46c2 mem_mouse_z_data_count1
+0x46c3 mem_reconn_mode
+0x46c4 mem_mouse_statue_led_timer
+0x46c5 mem_le_connect_status_flag
+0x46c6 mem_le_start_encrypt_timer
+0x46c7 mem_device_addr_temp
+0x46ce mem_adc_read_timer
+0x46cf mem_adc_low_volatage_led_timer_count
+0x46d0 mem_adc_reference_voltage
+0x46d2 mem_device_number
+0x46d3 mem_mouse_flag
+0x46d5 mem_mouse_function_enable
+0x46d7 mem_combination_select_device_timer_init
+0x46d8 mem_combination_select_device_count
+0x46d9 mem_select_device_button_statue
+0x46da mem_combination_ui_button_count
+0x46db mem_bt_discovey_button_statue
+0x46dc mem_sensor_reset_gpio
+0x46dd mem_sensor_id1
+0x46de mem_sensor_id2
+0x46df mem_mouse_dpi_led_delay_count
+0x46e0 mem_config_sensor_type
+0x46e1 mem_config_sensor_motion
+0x46e2 mem_lbutton_gpio
+0x46e3 mem_rbutton_gpio
+0x46e4 mem_mbutton_gpio
+0x46e5 mem_bk_button_gpio
+0x46e6 mem_fw_button_gpio
+0x46e7 mem_dpi_button_gpio
+0x46e8 mem_whee_a_data_gpio
+0x46e9 mem_whee_b_data_gpio
+0x46ea mem_whee_ta_data_gpio
+0x46eb mem_whee_tb_data_gpio
+0x46ec mem_config_bt_button_gpio
+0x46ed mem_config_select_device_button_gpio
+0x46ee mem_config_paraing_led_gpio
+0x46ef mem_config_low_voltage_alarm_gpio
+0x46f0 mem_config_device1_led_gpio
+0x46f1 mem_config_device2_led_gpio
+0x46f2 mem_config_device3_led_gpio
+0x46f3 mem_sensor_data_gpio
+0x46f4 mem_dpi_led_gpio
+0x46f5 mem_config_function_enable
+0x46f6 mem_config_sensor_angle
+0x46f7 mem_select_sensor_angle_gpio
+0x46f8 mem_select_adc_gpio
+0x46f9 mem_config_end
+0x46f9 mem_btclk_sensor
+0x46fd mem_wire_usb_interval
+0x46fe mem_mouse_mode_flag
+0x46ff mem_usb_addr
+0x4700 mem_flash_base
+0x4703 mem_24g_device_number
+0x4704 mem_24g_enter_lpm_timer
+0x4705 mem_mouse_1step_up_count
+0x4706 mem_mouse_2step_up_count
+0x4707 mem_24g_pairing_timer_count
+0x4709 mem_mouse_vdd_calculate_set
+0x4709 mem_mouse_vdd_full_vol
+0x470b mem_mouse_vdd_empty_vol
+0x470d mem_mouse_vdd_low_vol
+0x470f mem_mouse_vdd_now_vol
+0x4711 mem_mouse_sensor_timer_count
+0x4712 mem_sensor_led_style
+0x4713 mem_mouse_led_type
+0x4714 mem_mouse_blink_count
+0x4715 mem_mouse_struct_led_gpio
+0x4716 mem_mouse_on_time
+0x4718 mem_mouse_off_time
+0x471a mem_mouse_cb_ledon
+0x471c mem_mouse_cb_ledoff
+0x471e mem_reconn_times
+0x471f mem_reconn_times_init
+0x4720 mem_mouse_information_start
+0x4720 mem_device_flag
+0x4721 mem_device1_type
+0x4722 mem_device1_addr
+0x4728 mem_device1_link_key
+0x4738 mem_device1_locall_addr
+0x473e mem_device2_type
+0x473f mem_device2_addr
+0x4745 mem_device2_link_key
+0x4755 mem_device2_locall_addr
+0x475b mem_device3_type
+0x475c mem_device3_addr
+0x4762 mem_device3_link_key
+0x4772 mem_device3_locall_addr
+0x4778 mem_store_flag
+0x477a mem_mouse_dpi
+0x477b mem_mouse_24g_addr
+0x477f mem_mouse_information_end
+0x477f mem_mouse_dpi_seting
+0x477f mem_320x_dpi_1
+0x4780 mem_320x_dpi_2
+0x4781 mem_320x_dpi_3
+0x4782 mem_320x_dpi_4
+0x4783 mem_3212_dpi_1
+0x4784 mem_3212_dpi_2
+0x4785 mem_3212_dpi_3
+0x4786 mem_3212_dpi_4
+0x4787 mem_3610_dpi_1
+0x4788 mem_3610_dpi_2
+0x4789 mem_3610_dpi_3
+0x478a mem_3610_dpi_4
+0x478b mem_mouse_24g_enter_lpm_enable
+0x478c mem_le_rx_window_inc
+0x478e mem_empty_count
+0x478f mem_rf_init_data_new
+0x479e mem_mouse_clear_sensor_data_flag
+0x479f mem_mouse_null_enter_hibernate_flag
+0x47a0 mem_mouse_null_enter_hibernate_timer
+0x47a1 mem_mouse_le_reconnect_flag
+0x47a2 mem_mouse_data_queue
+0x47c3 mem_mouse_data_queue_num
+0x47c4 mem_mouse_le_conn_param_reject
+0x47c5 mem_lpm_mult_init
+0x47c6 mem_mouse_le_uuid_sup
+0x4806 mem_mouse_wheel_trigger
+0x4807 mem_mouse_wheel_trigger_timer
+0x4808 mem_mouse_enter_sniff_count
+0x4809 mem_mouse_send_switch_req_timer
+0x480a mem_le_tx_buffer0_omemalloc
+0x4825 mem_le_tx_buffer1_omemalloc
+0x4840 mem_le_tx_buffer2_omemalloc
+0x485b mem_le_tx_buffer3_omemalloc
+0x4876 mem_mouse_uuid_list
+0x4afc mem_lmi_opcode_temp
+0x4afd mem_mouse_button_select_device_timer_init
+0x4afe mem_mouse_button_select_device_count
+0x4aff mem_mouse_adc_last_low_voltage_flag
+0x4b00 mem_mouse_init_sensor_reset_flag
+0x4b01 mem_bt_rcvd_switch_req_accept
+0x4b02 mem_bt_send_max_slot_req_accept_after_switch
+0x4b03 mem_bt_send_lmp_setup_complete
+0x4b04 mem_l2cap_rcv
+0x4b05 mem_mouse_bt_boot_mode
+0x4b06 mem_mouse_bt_boot_data
+0x4b0b mem_mouse_bt_send_first_package_timer
+0x4b0c mem_mouse_bt_send_first_package_flag
+0x4b0d mem_mouse_asm_flag
+0x4b0e mem_mouse_x_pre
+0x4b10 mem_mouse_y_pre
+0x4b12 mem_le_adv_swift_pair
+0x4b25 mem_mouse_multi_led_blink_enable
+0x4b26 mem_mouse_multi_led_gpio
+0x4b27 mem_mouse_multi_led_state
+0x4b28 mem_mouse_multi_led_type
+0x4b29 mem_mouse_multi_led_on_timer
+0x4b2a mem_mouse_multi_led_on_timer_init
+0x4b2b mem_mouse_multi_led_blink_timer_init
+0x4b2c mem_mouse_multi_led_blink_timer
+0x4b2d mem_mouse_multi_led_blink_count
+0x4b2e mem_mouse_multi_led_blink_count_limited
+0x4b2f mem_mouse_multi_led_on_poweron2s_flag
+0x4b30 mem_mouse_multi_led_blink_poweron3s_flag
+0x4b31 mem_mouse_priority_bb_event
+0x4b32 mem_mouse_le_parse_l2cap_ptr
+0x4b34 mem_low_power_no_data_off_led_time
+0x4b35 mem_low_power_check_count
+0x4b36 mem_low_power_led_blink_flag
+0x4b37 mem_mouse_3065xy_dpi_seting
+0x4b37 mem_3065xy_dpi_1
+0x4b38 mem_3065xy_dpi_2
+0x4b39 mem_3065xy_dpi_3
+0x4b3a mem_3065xy_dpi_4
+0x4b3b mem_le_att_pnp_id_len
+0x4b3c mem_le_att_pnp_id
+0x4b43 mem_mouse_long_mult_flag
+0x4b44 mem_mouse_le_current_mult_timer
+0x4b45 mem_24g_long_sleep_param_update_timer
+0x4b46 mem_flash_ncs_gpio
+0x4b47 mem_select_ui_button_count
+0x4b48 mem_write_flash_head_temp
+0x4b4c mem_mouse_poweron_led_timer
+0x4b4d mem_mouse_24g_addr_init
+0x4b51 mem_zcode_current_number
+0x4b52 mem_xip_flash_offset
+0x4b55 mem_flash_start_addr
+0x4b58 mem_flash_address
+0x4b5b mem_mouse_select_device_button_wakeup_flag
+0x4b5c mem_mouse_le_updata_not_accepted_flag
+0x4b5d mem_le_normal_lap
+0x4b63 mem_le_switch_adv_flag
+0x4b64 mem_le_switch_adv_timer
+0x4b65 mem_le_switch_adv_count
+0x4b66 mem_mouse_start_discovery_enable
+0x4b67 mem_mouse_le_adv_start
+0x4b68 mem_mouse_send_secutiry_request_timer
+0x4b69 mem_le_send_security_request_flag
+0x4b6a mem_mouse_le_bb_connected_flag
+0x4b6b mem_mouse_flash_start_temp
+0x4b6b mem_random_addr_increase_count
+0x4b6d mem_mouse_long_button_select_device
+0x4b6e mem_eeprom_init_flag
+0x4b70 mem_mouse_fast_conn_flag
+0x4b71 mem_mouse_latest_mode
+0x4b72 mem_mouse_flash_end_temp
+0x4b72 mem_mouse_le_not_tx_disconn
+0x4b73 mem_24g_rxbuf
+0x4b95 mem_24g_txbuf
+0x4bb5 mem_24g_txpayload
+0x4bd7 mem_24g_rxpayload
+0x4bf7 mem_24g_rxdata_length
+0x4bf8 mem_24g_pid
+0x4bf9 mem_24g_datalen
+0x4bfa mem_24g_data_type
+0x4bfb mem_24g_txlen
+0x4bfc mem_24g_rx_window
+0x4bfe mem_24g_ensure
+0x4bff mem_24g_txfail_cnt
+0x4c01 mem_24g_get_ack_fail
+0x4c02 mem_24g_retry
+0x4c03 mem_24g_ch
+0x4c04 mem_24g_current_ch_number
+0x4c05 mem_24g_paring_addr
+0x4c09 mem_24g_pairing_sm
+0x4c0a mem_24g_ch_map1
+0x4c0e mem_24g_ch_map2
+0x4c12 mem_24g_ch_map3
+0x4c16 mem_24g_ch_map4
+0x4c1a mem_24g_tx_btclk
+0x4c1e mem_24g_interval
+0x4c1f mem_24g_interval_min
+0x4c20 mem_24g_interval_max
+0x4c21 mem_24g_addr
+0x4c25 mem_24g_abort_pac
+0x4c26 mem_24g_check_dongle_times
+0x4c28 mem_24g_enter_hibernate
+0x4c30 mem_24g_device_addr
+0x4c34 mem_24g_pac_index
+0x4c35 mem_24g_no_ack
+0x4c36 mem_24g_sta_crc
+0x4c39 mem_24g_last_crc
+0x4c3c mem_24g_sta_pid
+0x4c3d mem_24g_last_pid
+0x4c3e mem_24g_max_retry
+0x4c3f mem_24g_mode
+0x4c40 mem_24g_rxdata_temp
+0x4c62 mem_24g_rx_addr
+0x4c66 mem_dongle_mode_init
+0x4c67 mem_dongle_work_mode
+0x4c68 mem_dongle_ms_bind_step
+0x4c69 mem_dongle_kb_bind_step
+0x4c6a mem_dongle_bind_device_status
+0x4c6b mem_24g_bind_payload
+0x4c73 mem_24g_abort_packet
+0x4c74 mem_24g_rf_laststa
+0x4c75 mem_24g_hop_btclk
+0x4c79 mem_24g_hop_interval
+0x4c7a mem_24g_mode_switch
+0x4c7b mem_24g_ackpayload_enable
+0x4c7c mem_24g_hop_packet
+0x4c7d mem_24g_pair_mode
+0x4c7e mem_24g_nodata_timer_enable
+0x4c7f mem_24g_time_slice
+0x4c80 mem_24g_kb_data_sta_data
+0x4c88 mem_24g_kb_data_last_data
+0x4c90 mem_24g_kb_multikey_sta_data
+0x4c93 mem_24g_kb_multikey_last_data
+0x4c96 mem_24g_kb_blank_data_enable
+0x4c97 mem_24g_kb_mul_blank_data_enable
+0x4c98 mem_24g_ms_blank_data_enable
+0x4c99 mem_24g_kb_addr
+0x4c9d mem_24g_ms_addr
+0x4ca1 mem_24g_dg_last_ch
+0x4ca2 mem_24g_dg_ch_number
+0x4ca3 mem_24g_dg_config_ch_once
+0x4ca4 mem_24g_kb_last_ch
+0x4ca5 mem_24g_kb_ch_number
+0x4ca6 mem_24g_kb_config_ch_once
+0x4ca7 mem_24g_ms_last_ch
+0x4ca8 mem_24g_ms_ch_number
+0x4ca9 mem_24g_ms_config_ch_once
+0x4caa mem_24g_syncword
+0x4cac mem_24g_syncword_crc8
+0x4cad mem_24g_get_syncword_crc8
+0x4cae mem_24g_ota_sta_pid
+0x4cb0 mem_tx_power_temp
+0x4cb1 mem_rssi_hex
+0x4cb2 mem_rssi_noise_avg
+0x4cb3 mem_rssi_noise_index
+0x4cb4 mem_rssi_signal_index
+0x4cb5 mem_rssi_noise_dg_avg
+0x4cb6 mem_rssi_noise_kb_avg
+0x4cb7 mem_rssi_noise_ms_avg
+0x4cb8 mem_rssi_noise_dg_index
+0x4cb9 mem_rssi_noise_kb_index
+0x4cba mem_rssi_noise_ms_index
+0x4cbb mem_rssi_signal_buf
+0x4cc3 mem_queue_ele_num
+0x4cc4 mem_queue_read
+0x4cc6 mem_queue_write
+0x4cc8 mem_queue_start
+0x4cc8 mem_data_ele0
+0x4ce8 mem_data_ele1
+0x4d08 mem_data_ele2
+0x4d28 mem_queue_end
+0x4d28 mem_queue_temp
+0x4d2a mem_cb_24g_data
+0x4d2c mem_24g_hop_fastly_cnt
+0x4d2d mem_24g_hop_pac_retry
+0x4d2e mem_24g_rf_hop_ch
+0x4d2f mem_24g_rf_last_sta
+0x4d30 mem_24g_rf_work_stage
+0x4d31 mem_24g_sync_cnt
+0x4d32 mem_power_ctrl_pac_succ_cnt
+0x4d33 mem_rssi_avg_received
+0x4d34 mem_rssi_hex_received
+0x4d35 mem_power_ctrl_level
+0x4d36 mem_seqi
+0x4d37 mem_24g_auto_paring_switch
+0x4d38 mem_24g_paccnt
+0x4d39 mem_24g_transmit_by_interrupt
+0x4d3a mem_24g_transmit_by_interrupt_exit_count
+0x4d3c mem_24g_transmit_by_interrupt_exit_count_init
+0x4d3e mem_24g_allpowerful_addr
+0x4d42 mem_24g_stop_g24_mode
+0x4d43 mem_24g_stop_g24_mode_timeout
+0x4d45 mem_24g_pair_current_ch_num
+0x4d46 mem_24g_powerful_current_ch_num
+0x4d47 mem_24g_search_dongle_action
+0x4d48 mem_24g_search_dongle_count
+0x4d49 mem_24g_search_dongle_ch
+0x4d4a mem_24g_search_dongle_delay_count
+0x4d4b mem_24g_conn_sm
Index: DpiSwitch/output/program.lis
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/output/program.lis	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/output/program.lis	(working copy)
@@ -0,0 +1,36205 @@
+include "bt_format "
+org 0x0000
+
+p_start:
+0000 20200040 branch p_patch_array 
+
+p_zcode:
+
+p_wake_from_power:
+0001 204003ac call p_mouse_data_init 
+0002 6800c1de fetch 1 ,mem_tx_power 
+0003 6000ccb0 store 1 ,mem_tx_power_temp 
+0004 2040070d call power_ctrl_pac_succ_cnt_init 
+0005 6800c685 fetch 1 ,mem_ui_button_timeout 
+0006 6000c6da store 1 ,mem_combination_ui_button_count 
+0007 204004e6 call p_mouse_bt_discovery_button_up_init 
+0008 20400324 call p_mouse_spi_init 
+0009 204007a3 call p_drawing_optima_init 
+000a 2040000d call p_mouse_cb_fuction 
+000b 20400020 call p_mouse_wakeup_from_power 
+000c 202002f8 branch p_mouse_setting_config 
+
+p_mouse_cb_fuction:
+000d 5800036c setarg p_mouse_g24_package_data 
+000e 60014d2a store 2 ,mem_cb_24g_data 
+000f 58000398 setarg p_mouse_le 
+0010 600141ef store 2 ,mem_cb_le_process 
+0011 5800064e setarg p_le_mouse_bb_event_connect_complete 
+0012 600141f9 store 2 ,mem_cb_att_write 
+0013 580003c7 setarg p_mouse_bt 
+0014 600141f1 store 2 ,mem_cb_bt_process 
+0015 580002c1 setarg p_mouse_before_lpm 
+0016 600141ed store 2 ,mem_cb_before_lpm 
+0017 5800040d setarg p_mouse_priority_bb_event 
+0018 600141f5 store 2 ,mem_cb_bb_event_process 
+0019 580003f0 setarg p_mouse_idle 
+001a 600141f3 store 2 ,mem_cb_idle_process 
+001b 58000446 setarg p_mouse_before_hibernate 
+001c 600141eb store 2 ,mem_cb_before_hibernate 
+001d 58000453 setarg p_mouse_bb_event_timer 
+001e 600141fd store 2 ,mem_cb_event_timer 
+001f 20600000 rtn 
+
+p_mouse_wakeup_from_power:
+0020 58000019 setarg 25 
+0021 60014d3c store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+0022 2455802c ncall p_mouse_24g_transmit_by_interrupt_exit_count_max ,wake 
+0023 204002e9 call p_mouse_init_sunt 
+0024 2040044c call p_mouse_sensor_powerdown 
+
+p_mouse_wakeup_no_from_power:
+0025 6800c71f fetch 1 ,mem_reconn_times_init 
+0026 6000c71e store 1 ,mem_reconn_times 
+0027 680344a0 fetch 6 ,mem_le_lap 
+0028 60034b5d store 6 ,mem_le_normal_lap 
+0029 6800c241 fetch 1 ,mem_power_on_flag 
+002a c3810000 rtnbit1 2 
+002b 20200395 branch p_mouse_dpi_config_default 
+
+p_mouse_24g_transmit_by_interrupt_exit_count_max:
+002c 58000177 setarg 375 
+002d 60014d3c store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+002e 20600000 rtn 
+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 c2840059 bbit1 8 ,pf_patch_ext 
+0041 c0008075 beq patch00_1 ,p_soft_reset_1 
+0042 c001007e beq patch00_2 ,p_soft_reset_2 
+0043 c0428779 beq patch10_5 ,p_shutdown_radio 
+0044 c044874a beq patch11_1 ,p_set_freq_tx 
+0045 c00d8668 beq patch03_3 ,p_page_wait_fhs_reply_ok 
+0046 c013066a beq patch04_6 ,p_role_switch_master 
+0047 c0240685 beq patch09_0 ,p_quit_connection_cont 
+0048 c025068c beq patch09_2 ,p_prepare_tx 
+0049 c0288695 beq patch0a_1 ,p_slave_conn_recv_packet 
+004a c02c8683 beq patch0b_1 ,p_process_dmh 
+004b c053869a beq patch14_7 ,p_lpm_dispatch 
+004c c05686b0 beq patch15_5 ,p_lpm_set_mult 
+004d c065b3e4 beq patch19_3 ,app_bt_start_reconnect + 3 
+004e c07486c1 beq patch1d_1 ,p_mouse_bb_disconnected 
+004f c0508087 beq patch14_1 ,p_init_param 
+0050 c058808c beq patch16_1 ,p_lpm_check_wake_lock 
+0051 c059009a beq patch16_2 ,p_g24_dispatch 
+0052 c06202ce beq patch18_4 ,p_device_init 
+0053 c0718546 beq patch1c_3 ,p_mouse_seting_dpi 
+0054 c0730568 beq patch1c_6 ,p_mouse_motion 
+0055 c0750595 beq patch1d_2 ,p_mouse_bb_event_discovery_btn 
+0056 c075859e beq patch1d_3 ,p_mouse_start_discovery 
+0057 c07605a0 beq patch1d_4 ,p_mouse_stop_discovery 
+0058 20202a8e branch loop 
+
+pf_patch_ext:
+0059 c01c85a4 beq patch27_1 ,p_le_slave_match 
+005a c02185ac beq patch28_3 ,p_le_next_adv_channel 
+005b c02505b2 beq patch29_2 ,p_le_receive_skip 
+005c c02b85b5 beq patch2a_7 ,p_le_update_param 
+005d c02c85b7 beq patch2b_1 ,p_le_update_channel_map 
+005e c03185b9 beq patch2c_3 ,p_le_prepare_tx 
+005f c03305e3 beq patch2c_6 ,p_le_parse 
+0060 c0338602 beq patch2c_7 ,p_le_parse_l2cap 
+0061 c035063a beq patch2d_2 ,p_le_adv_not_match 
+0062 c03b8645 beq patch2e_7 ,p_le_lpm_setmult 
+0063 c07d06f5 beq patch3f_2 ,p_check_51cmd_once_continue 
+0064 c00286c3 beq patch20_5 ,p_hid_rx_process 
+0065 c04006c5 beq patch30_0 ,p_parse_lmp_accepted 
+0066 c04106cf beq patch30_2 ,p_send_lmp 
+0067 c04406d1 beq patch31_0 ,p_process_conn_sm 
+0068 c0460655 beq patch31_4 ,p_twspi_reset 
+0069 c0468661 beq patch31_5 ,p_spid_init 
+006a 20202a8e branch loop 
+
+p_rssi_signal:
+006b 1fe22200 copy pdata ,rega 
+006c 6808ccb4 fetcht 1 ,mem_rssi_signal_index 
+006d 58004cbb setarg mem_rssi_signal_buf 
+006e 98408a00 iadd temp ,contw 
+006f 1a227e00 copy rega ,pdata 
+0070 e0a08000 istore 1 ,contw 
+0071 18408401 increase 1 ,temp 
+0072 18410407 and_into rssi_buf_len_signal ,temp 
+0073 6008ccb4 storet 1 ,mem_rssi_signal_index 
+0074 20600000 rtn 
+
+p_soft_reset_1:
+0075 d8a009ae arg mem_sp_state ,contw 
+0076 df20000c arg 12 ,loopcnt 
+0077 20407ed4 call clear_mem 
+0078 2040037d call p_mouse_le_txbuff_load 
+0079 20406a03 call rfcomm_init 
+007a 20405cf6 call init_lmp 
+007b 2455ac65 ncall lpm_disable_exen_output ,wake 
+007c 20407ccd call ui_init + 1 
+007d 2020200c branch soft_reset + 11 
+
+p_soft_reset_2:
+007e 2055b2e3 call app_lpm_init ,wake 
+007f 2040756a call publickey_init 
+0080 2055ab41 call lpm_recover_clk ,wake 
+
+p_sp_cal_loop:
+0081 204076dc call sp_calc_sequence 
+0082 6800c65a fetch 1 ,mem_ssp_enable 
+0083 203a2012 branch main_loop ,blank 
+0084 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
+0085 203a0081 branch p_sp_cal_loop ,blank 
+0086 20202012 branch main_loop 
+
+p_init_param:
+0087 58000a06 setarg param_le_version 
+0088 6001c510 store 3 ,mem_lmp_version 
+0089 58001d87 setarg param_le_subversion 
+008a 60014513 store 2 ,mem_lmp_version + 3 
+008b 20202aa2 branch init_param + 12 
+
+p_lpm_check_wake_lock:
+008c c6130000 rtnmark1 mark_24g 
+008d 6800cb27 fetch 1 ,mem_mouse_multi_led_state 
+008e 243a7fef nbranch disable_blank ,blank 
+008f 6800cb2d fetch 1 ,mem_mouse_multi_led_blink_count 
+0090 243a7fef nbranch disable_blank ,blank 
+0091 6800c79e fetch 1 ,mem_mouse_clear_sensor_data_flag 
+0092 203a7fef branch disable_blank ,blank 
+0093 6800c7c4 fetch 1 ,mem_mouse_le_conn_param_reject 
+0094 c000ffef beq le_lpm_disable ,disable_blank 
+0095 68014248 fetch 2 ,mem_sdp_remote_cid 
+0096 243a7fef nbranch disable_blank ,blank 
+0097 6800c806 fetch 1 ,mem_mouse_wheel_trigger 
+0098 243a7fef nbranch disable_blank ,blank 
+0099 20207ff1 branch enable_blank 
+
+p_g24_dispatch:
+009a c6930000 rtnmark0 mark_24g 
+009b 6800cd4b fetch 1 ,mem_24g_conn_sm 
+009c c28080b0 bbit1 state_24g_pair ,p_g24_pair_dispatch 
+009d c28100b2 bbit1 state_24g_reconn ,p_g24_reconn_dispatch 
+009e 6800cd39 fetch 1 ,mem_24g_transmit_by_interrupt 
+009f c00080b8 beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
+
+p_g24_transmit_process:
+00a0 20400180 call p_g24_txdata_prep 
+00a1 243400d3 nbranch p_g24_nodata_transmit ,user 
+00a2 704d4a0a jam 10 ,mem_24g_search_dongle_delay_count 
+00a3 2040015b call p_g24_rf_sta_check 
+
+p_g24_transmit_start:
+00a4 204001a3 call p_g24_transmit_packet 
+00a5 6800cc09 fetch 1 ,mem_24g_pairing_sm 
+00a6 c1ff8000 rtnne state_24g_pairing_success 
+00a7 2040071e call power_ctrl_start 
+00a8 204000b4 call g24_long_sleep_shorter_param_update 
+00a9 6800cb27 fetch 1 ,mem_mouse_multi_led_state 
+00aa c000836f beq on ,p_g24_transmit_by_interrupt_enable 
+
+p_g24_short_sleep:
+00ab 204000e5 call p_g24_lpm_wait 
+00ac 24740000 nrtn user 
+00ad 204002c8 call p_clear_wake 
+00ae 5800ec54 setarg 60500 
+00af 20202b93 branch lpm_dispatch_sleep 
+
+p_g24_pair_dispatch:
+00b0 7011c560 jam zcode_60 ,mem_zcode_temp_param0 
+00b1 2020077b branch p_zcode_entrance 
+
+p_g24_reconn_dispatch:
+00b2 7011c553 jam zcode_53 ,mem_zcode_temp_param0 
+00b3 2020077b branch p_zcode_entrance 
+
+g24_long_sleep_shorter_param_update:
+00b4 58017700 setarg g24_long_sleep_step1 
+00b5 6001cc28 store 3 ,mem_24g_enter_hibernate 
+00b6 704b4514 jam 20 ,mem_24g_long_sleep_param_update_timer 
+00b7 20600000 rtn 
+
+p_g24_transmit_by_interrupt:
+00b8 204002a1 call p_g24_timer_check 
+00b9 24740000 nrtn user 
+00ba 204000cd call p_g24_interval_calibrate 
+00bb 68014d3a fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
+00bc 1fe0fe01 increase 1 ,pdata 
+00bd 60014d3a store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+00be 68094d3c fetcht 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+00bf 98467c00 isub temp ,null 
+00c0 204280c2 call p_g24_transmit_by_interrupt_exit ,zero 
+00c1 202000a0 branch p_g24_transmit_process 
+
+p_g24_transmit_by_interrupt_exit:
+00c2 704d3900 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
+00c3 58000000 setarg 0 
+00c4 60014d3a store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+00c5 58000019 setarg 25 
+00c6 60014d3c store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+
+p_g24_interval_min:
+00c7 704c3400 jam 0 ,mem_24g_pac_index 
+00c8 6800cc1f fetch 1 ,mem_24g_interval_min 
+
+p_g24_interval_store:
+00c9 6000cc1e store 1 ,mem_24g_interval 
+00ca 20600000 rtn 
+
+p_g24_interval_max:
+00cb 6800cc20 fetch 1 ,mem_24g_interval_max 
+00cc 202000c9 branch p_g24_interval_store 
+
+p_g24_interval_calibrate:
+00cd 6800cc34 fetch 1 ,mem_24g_pac_index 
+00ce 1fe0fe01 increase 1 ,pdata 
+00cf 6000cc34 store 1 ,mem_24g_pac_index 
+00d0 c00200cb beq 4 ,p_g24_interval_max 
+00d1 c00280c7 beq 5 ,p_g24_interval_min 
+00d2 20600000 rtn 
+
+p_g24_nodata_transmit:
+00d3 6800cc25 fetch 1 ,mem_24g_abort_pac 
+00d4 205a00fd call p_g24_send_abort_packet ,blank 
+00d5 6800cb2d fetch 1 ,mem_mouse_multi_led_blink_count 
+00d6 247a0000 nrtn blank 
+00d7 6800cb27 fetch 1 ,mem_mouse_multi_led_state 
+00d8 c1008000 rtneq on 
+00d9 6800cd39 fetch 1 ,mem_24g_transmit_by_interrupt 
+00da c1008000 rtneq g24_tx_timer_int_enable 
+00db 2040010f call p_g24_search_dongle 
+00dc 6800cd49 fetch 1 ,mem_24g_search_dongle_ch 
+00dd c1820000 rtnne g24_ch_number 
+00de 704d4900 jam 0 ,mem_24g_search_dongle_ch 
+
+p_g24_long_sleep:
+00df 204000e5 call p_g24_lpm_wait 
+00e0 24740000 nrtn user 
+00e1 6801cc28 fetch 3 ,mem_24g_enter_hibernate 
+00e2 20407f49 call clk2lpo 
+00e3 600a415b storet 4 ,mem_sleep_counter 
+00e4 20202b2a branch lpm_sleep 
+
+p_g24_lpm_wait:
+00e5 78347c00 enable user 
+00e6 20402afa call lpo_calibration 
+00e7 6801c16f fetch 3 ,mem_clks_per_lpo 
+00e8 203a7fe9 branch disable_user ,blank 
+00e9 6800c091 fetch 1 ,mem_lpm_mode 
+00ea 203a7fe9 branch disable_user ,blank 
+00eb 6800cd39 fetch 1 ,mem_24g_transmit_by_interrupt 
+00ec c000ffe9 beq g24_tx_timer_int_enable ,disable_user 
+
+p_mouse_setgpio_lpm:
+00ed 204002cb call p_mouse_set_sdio_high 
+00ee 204002c8 call p_clear_wake 
+
+p_mouse_setgpio_hibernate:
+00ef 20403ebf call mouse_lpm_before_common 
+00f0 204002fa call p_flash_ncs_disable 
+00f1 68120070 hfetch 4 ,core_gpio_oe0 
+00f2 681a0078 hfetcht 4 ,core_gpio_pu0 
+00f3 98418400 ior temp ,temp 
+00f4 18440400 invert temp ,temp 
+00f5 601a007c hstoret 4 ,core_gpio_pd0 
+00f6 6810807d hfetch 1 ,core_gpio_pd1 
+00f7 793ffe02 set0 2 ,pdata 
+00f8 6010807d hstore 1 ,core_gpio_pd1 
+00f9 6810807e hfetch 1 ,core_gpio_pd2 
+00fa 793ffe06 set0 6 ,pdata 
+00fb 6010807e hstore 1 ,core_gpio_pd2 
+00fc 2020053c branch p_mouse_multi_led_gpio_set_float 
+
+p_g24_send_abort_packet:
+00fd 704c2501 jam 1 ,mem_24g_abort_pac 
+
+p_g24_send_abort_packet1:
+00fe 704d2e00 jam 0 ,mem_24g_rf_hop_ch 
+00ff 20400133 call p_g24_transmit_rf_ctrl_clear 
+0100 6000cb95 store 1 ,mem_24g_txbuf 
+0101 58000000 setarg 0 
+0102 6003cb96 store 7 ,mem_24g_txbuf + 1 
+0103 68024c30 fetch 4 ,mem_24g_device_addr 
+0104 60024b9d store 4 ,mem_24g_txbuf + 8 
+0105 704bf90c jam 12 ,mem_24g_datalen 
+0106 6800cbfa fetch 1 ,mem_24g_data_type 
+0107 79207e03 set1 bit_abort ,pdata 
+0108 6000cbfa store 1 ,mem_24g_data_type 
+0109 20400183 call p_g24_txdata_enable_tx 
+010a 204001a3 call p_g24_transmit_packet 
+010b 2020071e branch power_ctrl_start 
+
+p_g24_search_dongle_init:
+010c 58000000 setarg 0 
+010d 6001cd47 store 3 ,mem_24g_search_dongle_action 
+010e 20600000 rtn 
+
+p_g24_search_dongle:
+010f 6800cd4a fetch 1 ,mem_24g_search_dongle_delay_count 
+0110 247a0000 nrtn blank 
+0111 6800cc25 fetch 1 ,mem_24g_abort_pac 
+0112 207a0000 rtn blank 
+
+p_g24_search_dongle_loop:
+0113 6800cd49 fetch 1 ,mem_24g_search_dongle_ch 
+0114 1fe0fe01 increase 1 ,pdata 
+0115 6000cd49 store 1 ,mem_24g_search_dongle_ch 
+0116 2040016e call p_g24_ch 
+0117 204000fe call p_g24_send_abort_packet1 
+0118 6800cd49 fetch 1 ,mem_24g_search_dongle_ch 
+0119 c0820113 bne g24_ch_number ,p_g24_search_dongle_loop 
+011a 6800cd48 fetch 1 ,mem_24g_search_dongle_count 
+011b 1fe0fe01 increase 1 ,pdata 
+011c 6000cd48 store 1 ,mem_24g_search_dongle_count 
+011d c004011f beq g24_ch_poll_count ,p_g24_search_dongle_check 
+011e 20600000 rtn 
+
+p_g24_search_dongle_check:
+011f 704d4800 jam 0 ,mem_24g_search_dongle_count 
+0120 6800cd47 fetch 1 ,mem_24g_search_dongle_action 
+0121 c3800000 rtnbit1 g24_disconn_state 
+0122 79207e00 set1 g24_disconn_state ,pdata 
+0123 6000cd47 store 1 ,mem_24g_search_dongle_action 
+0124 58000708 setarg g24_disconn_nodata_timer 
+0125 600146b0 store 2 ,mem_mouse_no_data_timer 
+0126 2020044c branch p_mouse_sensor_powerdown 
+
+p_g24_search_dongle_success:
+0127 6800cc25 fetch 1 ,mem_24g_abort_pac 
+0128 203a010c branch p_g24_search_dongle_init ,blank 
+0129 704d4800 jam 0 ,mem_24g_search_dongle_count 
+012a 704d4904 jam g24_ch_number ,mem_24g_search_dongle_ch 
+012b 6800cd47 fetch 1 ,mem_24g_search_dongle_action 
+012c c4000000 rtnbit0 g24_disconn_state 
+012d 793ffe00 set0 g24_disconn_state ,pdata 
+012e 6000cd47 store 1 ,mem_24g_search_dongle_action 
+012f 20403f8d call mouse_no_data_timer_init 
+0130 202003ee branch p_mouse_init_sensor_reset 
+
+p_g24_transmit_rf_sta_init:
+0131 704d2f01 jam 1 ,mem_24g_rf_last_sta 
+0132 704d3100 jam 0 ,mem_24g_sync_cnt 
+
+p_g24_transmit_rf_ctrl_clear:
+0133 6800cbfa fetch 1 ,mem_24g_data_type 
+0134 1fe17e07 and_into bits_data ,pdata 
+0135 6000cbfa store 1 ,mem_24g_data_type 
+0136 20600000 rtn 
+
+p_g24_hop_ch_enable:
+0137 6800cbfa fetch 1 ,mem_24g_data_type 
+0138 79207e04 set1 bit_hop ,pdata 
+0139 6000cbfa store 1 ,mem_24g_data_type 
+013a 6000cbb5 store 1 ,mem_24g_txpayload 
+013b 20600000 rtn 
+
+p_g24_hop_ch_disable:
+013c 6800cbfa fetch 1 ,mem_24g_data_type 
+013d 793ffe04 set0 bit_hop ,pdata 
+013e 6000cbfa store 1 ,mem_24g_data_type 
+013f 6000cbb5 store 1 ,mem_24g_txpayload 
+0140 20400714 call power_ctrl_pac_succ_decrs 
+0141 2020016e branch p_g24_ch 
+
+p_g24_rf_hop_attemp_again:
+0142 6800cd2e fetch 1 ,mem_24g_rf_hop_ch 
+0143 c0808133 bne 1 ,p_g24_transmit_rf_ctrl_clear 
+
+p_g24_rf_hop_fastly:
+0144 6800cd2c fetch 1 ,mem_24g_hop_fastly_cnt 
+0145 1fe0fe01 increase 1 ,pdata 
+0146 6000cd2c store 1 ,mem_24g_hop_fastly_cnt 
+0147 c002014b beq 4 ,p_g24_rf_hop_fastly_exit 
+0148 2040016e call p_g24_ch 
+0149 704c3e02 jam 2 ,mem_24g_max_retry 
+014a 202001a3 branch p_g24_transmit_packet 
+
+p_g24_rf_hop_fastly_exit:
+014b 20400714 call power_ctrl_pac_succ_decrs 
+014c 704d2c00 jam 0 ,mem_24g_hop_fastly_cnt 
+014d 20200133 branch p_g24_transmit_rf_ctrl_clear 
+
+p_g24_transmit_hop_pac_succ_wo_hop:
+014e 704d3102 jam 2 ,mem_24g_sync_cnt 
+
+p_g24_transmit_hop_pac_succ:
+014f 704d2f01 jam 1 ,mem_24g_rf_last_sta 
+0150 704d2e00 jam 0 ,mem_24g_rf_hop_ch 
+0151 20200133 branch p_g24_transmit_rf_ctrl_clear 
+
+p_g24_transmit_succ_rf_config:
+0152 6800cd30 fetch 1 ,mem_24g_rf_work_stage 
+0153 c001814f beq 3 ,p_g24_transmit_hop_pac_succ 
+0154 6800cbfa fetch 1 ,mem_24g_data_type 
+0155 2fec0004 isolate0 bit_hop ,pdata 
+0156 20208131 branch p_g24_transmit_rf_sta_init ,true 
+0157 6800cd30 fetch 1 ,mem_24g_rf_work_stage 
+0158 c000814e beq 1 ,p_g24_transmit_hop_pac_succ_wo_hop 
+0159 c001014f beq 2 ,p_g24_transmit_hop_pac_succ 
+015a 20600000 rtn 
+
+p_g24_rf_sta_check:
+015b 6800cc09 fetch 1 ,mem_24g_pairing_sm 
+015c c1ff8000 rtnne state_24g_pairing_success 
+015d 20400160 call p_g24_rf_laststa_synccnt_check 
+015e 24560168 ncall p_g24_rf_sync_cnt_check ,user2 
+015f 20600000 rtn 
+
+p_g24_rf_laststa_synccnt_check:
+0160 78567c00 disable user2 
+0161 6800cd2f fetch 1 ,mem_24g_rf_last_sta 
+0162 c1808000 rtnne 1 
+0163 6800cd31 fetch 1 ,mem_24g_sync_cnt 
+0164 c1800000 rtnne 0 
+0165 704d3001 jam 1 ,mem_24g_rf_work_stage 
+0166 704c3e04 jam 4 ,mem_24g_max_retry 
+0167 20207feb branch enable_user2 
+
+p_g24_rf_sync_cnt_check:
+0168 6800cd31 fetch 1 ,mem_24g_sync_cnt 
+0169 203a017b branch p_g24_rf_hop_attemp ,blank 
+016a 1fe0ffff increase -1 ,pdata 
+016b 6000cd31 store 1 ,mem_24g_sync_cnt 
+016c 704d3002 jam 2 ,mem_24g_rf_work_stage 
+016d 704c3e04 jam 4 ,mem_24g_max_retry 
+
+p_g24_ch:
+016e 6808cc04 fetcht 1 ,mem_24g_current_ch_number 
+016f 6800cc21 fetch 1 ,mem_24g_addr 
+0170 1fe17e03 and_into 0x03 ,pdata 
+0171 1fefa204 mul32 pdata ,4 ,rega 
+0172 58004c0a setarg mem_24g_ch_map1 
+0173 9a20fe00 iadd rega ,pdata 
+0174 98408c00 iadd temp ,contr 
+0175 e8c08000 ifetch 1 ,contr 
+0176 6000cc03 store 1 ,mem_24g_ch 
+0177 18408401 increase 1 ,temp 
+0178 18410403 and_into 3 ,temp 
+0179 6008cc04 storet 1 ,mem_24g_current_ch_number 
+017a 20600000 rtn 
+
+p_g24_rf_hop_attemp:
+017b 704d3003 jam 3 ,mem_24g_rf_work_stage 
+017c 6800cd2e fetch 1 ,mem_24g_rf_hop_ch 
+017d 243a0142 nbranch p_g24_rf_hop_attemp_again ,blank 
+017e 704c3e02 jam 2 ,mem_24g_max_retry 
+017f 2020016e branch p_g24_ch 
+
+p_g24_txdata_prep:
+0180 6800cc09 fetch 1 ,mem_24g_pairing_sm 
+0181 c0ff8205 bne state_24g_pairing_success ,p_g24_pairing_sm 
+
+p_g24_txdata_prep_packeage_data:
+0182 20400186 call p_g24_package_data 
+
+p_g24_txdata_enable_tx:
+0183 20400225 call p_g24_transmit_prep 
+0184 704bfe01 jam ensure_on_24g ,mem_24g_ensure 
+0185 20600000 rtn 
+
+p_g24_package_data:
+0186 68014d2a fetch 2 ,mem_cb_24g_data 
+0187 20407f9c call callback_func 
+0188 2034018c branch p_g24_accumulate_mouse_data ,user 
+0189 6803cb96 fetch 7 ,mem_24g_txbuf + 1 
+018a 207a0000 rtn blank 
+018b 20207fe7 branch enable_user 
+
+p_g24_accumulate_mouse_data:
+018c 20400389 call p_mouse_data_xy_release 
+018d 704c2500 jam 0 ,mem_24g_abort_pac 
+018e 1a20fe01 add rega ,1 ,pdata 
+018f 6000cbf9 store 1 ,mem_24g_datalen 
+0190 20400133 call p_g24_transmit_rf_ctrl_clear 
+0191 6000cb95 store 1 ,mem_24g_txbuf 
+0192 e8a88000 ifetcht 1 ,contw 
+0193 ea408000 ifetch 1 ,regb 
+0194 9841fe00 ior temp ,pdata 
+0195 e0a08000 istore 1 ,contw 
+0196 1a40a401 increase 1 ,regb 
+0197 ea420000 ifetch 4 ,regb 
+0198 e0a20000 istore 4 ,contw 
+0199 1a40a404 increase 4 ,regb 
+019a d8a04b9b arg mem_24g_txbuf + 6 ,contw 
+019b df200002 arg 2 ,loopcnt 
+
+p_g24_accumulation_loop:
+019c ea408000 ifetch 1 ,regb 
+019d e8a88000 ifetcht 1 ,contw 
+019e 9840fe00 iadd temp ,pdata 
+019f e0a08000 istore 1 ,contw 
+01a0 1a40a401 increase 1 ,regb 
+01a1 c200019c loop p_g24_accumulation_loop 
+01a2 20600000 rtn 
+
+p_g24_transmit_packet:
+01a3 704c0200 jam 0 ,mem_24g_retry 
+
+p_g24_transmit_loop:
+01a4 d9600d00 arg param_rx_setup ,timeup 
+01a5 34730200 until clkn_rt ,meet 
+01a6 204001be call p_g24_transmit_receive_ack 
+01a7 242c01cb nbranch p_g24_retransmit ,sync 
+01a8 243781cb nbranch p_g24_retransmit ,user3 
+01a9 20400127 call p_g24_search_dongle_success 
+01aa 204001b8 call p_g24_txbuf_clear 
+01ab 204001e8 call p_g24_ackpayload_parse 
+01ac 20400710 call power_ctrl_pac_succ_incrs 
+
+p_g24_transmit_next_packet:
+01ad 6800cbf8 fetch 1 ,mem_24g_pid 
+01ae 1fe0fe01 increase 1 ,pdata 
+01af 6000cbf8 store 1 ,mem_24g_pid 
+01b0 204001bb call p_g24_hop_enable_packet 
+01b1 6800cc09 fetch 1 ,mem_24g_pairing_sm 
+01b2 c0ff8207 bne state_24g_pairing_success ,p_g24_paring_mode_start 
+01b3 20400152 call p_g24_transmit_succ_rf_config 
+
+p_g24_transmit_abandon:
+01b4 58000000 setarg 0 
+01b5 60024bfe store 4 ,mem_24g_ensure 
+01b6 6000cd2d store 1 ,mem_24g_hop_pac_retry 
+01b7 20600000 rtn 
+
+p_g24_txbuf_clear:
+01b8 df200004 arg 4 ,loopcnt 
+01b9 d8a04b95 arg mem_24g_txbuf ,contw 
+01ba 20207ec6 branch memset0 
+
+p_g24_hop_enable_packet:
+01bb 6800cbfa fetch 1 ,mem_24g_data_type 
+01bc c282013c bbit1 bit_hop ,p_g24_hop_ch_disable 
+01bd 20600000 rtn 
+
+p_g24_transmit_receive_ack:
+01be 7857fc00 disable user3 
+01bf 20400280 call p_g24_transmit 
+01c0 18002a00 force 0 ,radio_ctrl 
+01c1 68024c21 fetch 4 ,mem_24g_addr 
+01c2 98001200 iforce access 
+01c3 68088017 fetcht 1 ,mem_last_freq 
+01c4 2040291f call set_freq_rx 
+01c5 20402924 call rf_rx_enable 
+01c6 20400240 call p_g24_receive_rxon 
+01c7 20578279 call p_g24_end_of_packet ,user3 
+01c8 20600000 rtn 
+
+p_g24_transmit_no_ack:
+01c9 20400279 call p_g24_end_of_packet 
+01ca 202001ad branch p_g24_transmit_next_packet 
+
+p_g24_retransmit:
+01cb 6800cc25 fetch 1 ,mem_24g_abort_pac 
+01cc 247a0000 nrtn blank 
+01cd 68014bff fetch 2 ,mem_24g_txfail_cnt 
+01ce 1fe0fe01 increase 1 ,pdata 
+01cf 60014bff store 2 ,mem_24g_txfail_cnt 
+01d0 6800cc00 fetch 1 ,mem_24g_txfail_cnt + 1 
+01d1 c2822dd4 bbit1 4 ,g24_stop_24g_mode 
+01d2 6800cc09 fetch 1 ,mem_24g_pairing_sm 
+01d3 c0ff81d6 bne state_24g_pairing_success ,p_g24_tx_paring_retry 
+01d4 204001de call p_g24_tx_hop_ch_process 
+01d5 202001a4 branch p_g24_transmit_loop 
+
+p_g24_tx_paring_retry:
+01d6 6800cbff fetch 1 ,mem_24g_txfail_cnt 
+01d7 c1ff8000 rtnne 0xff 
+
+p_g24_tx_attempt_fail:
+01d8 58000000 setarg 0 
+01d9 60014bff store 2 ,mem_24g_txfail_cnt 
+01da 20202dd4 branch g24_stop_24g_mode 
+
+p_g24_tx_fast_hop:
+01db 20400741 call power_ctrl_txpower_incrs 
+01dc 20400714 call power_ctrl_pac_succ_decrs 
+01dd 2020016e branch p_g24_ch 
+
+p_g24_tx_hop_ch_process:
+01de 6800cc02 fetch 1 ,mem_24g_retry 
+01df 1fe67c0b sub pdata ,11 ,null 
+01e0 242101db nbranch p_g24_tx_fast_hop ,positive 
+01e1 1fe0fe01 increase 1 ,pdata 
+01e2 6000cc02 store 1 ,mem_24g_retry 
+01e3 c0010137 beq 2 ,p_g24_hop_ch_enable 
+01e4 c003013c beq 6 ,p_g24_hop_ch_disable 
+01e5 c0040137 beq 8 ,p_g24_hop_ch_enable 
+01e6 c006013c beq 12 ,p_g24_hop_ch_disable 
+01e7 20600000 rtn 
+
+p_g24_ackpayload_parse:
+01e8 20400218 call p_g24_read_len_pid_crc 
+01e9 6800cbf7 fetch 1 ,mem_24g_rxdata_length 
+01ea 207a0000 rtn blank 
+01eb 98007200 iforce loopcnt 
+01ec d8c04b75 arg mem_24g_rxbuf + 2 ,contr 
+01ed d8a04bd7 arg mem_24g_rxpayload ,contw 
+01ee 20207f01 branch memcpy 
+
+p_g24_pair_init:
+01ef 7041de00 jam tx_power_0db ,mem_tx_power 
+01f0 704bf800 jam 0 ,mem_24g_pid 
+01f1 704c034e jam g24_pair_ch ,mem_24g_ch 
+01f2 68024c05 fetch 4 ,mem_24g_paring_addr 
+
+p_g24_update_addr_and_synccrc8:
+01f3 60024c21 store 4 ,mem_24g_addr 
+
+p_g24_syncword_crc8:
+01f4 da200000 arg 0 ,rega 
+01f5 df200004 arg 4 ,loopcnt 
+01f6 d8c04c21 arg mem_24g_addr ,contr 
+
+p_g24_syncword_crc8_loop:
+01f7 e8c08000 ifetch 1 ,contr 
+01f8 9a20a200 iadd rega ,rega 
+01f9 c20001f7 loop p_g24_syncword_crc8_loop 
+01fa 1a227e00 copy rega ,pdata 
+01fb 60014caa store 2 ,mem_24g_syncword 
+01fc 6800ccaa fetch 1 ,mem_24g_syncword 
+01fd 6808ccab fetcht 1 ,mem_24g_syncword + 1 
+01fe 9840fe00 iadd temp ,pdata 
+01ff 6000ccac store 1 ,mem_24g_syncword_crc8 
+0200 20600000 rtn 
+
+p_g24_start_pairing_sm1:
+0201 79200026 set1 mark_24g ,mark 
+0202 204001ef call p_g24_pair_init 
+
+p_g24_set_pairing_sm_1:
+0203 704c0901 jam state_24g_pairing_1 ,mem_24g_pairing_sm 
+0204 20600000 rtn 
+
+p_g24_pairing_sm:
+0205 7011c590 jam zcode_90 ,mem_zcode_temp_param0 
+0206 2020077b branch p_zcode_entrance 
+
+p_g24_paring_mode_start:
+0207 2040070d call power_ctrl_pac_succ_cnt_init 
+
+p_g24_paring_mode:
+0208 7011c591 jam zcode_91 ,mem_zcode_temp_param0 
+0209 2020077b branch p_zcode_entrance 
+
+p_g24_start_24g_mode:
+020a 7011c540 jam zcode_40 ,mem_zcode_temp_param0 
+020b 2020077b branch p_zcode_entrance 
+
+p_g24_auto_pair_start:
+020c 7011c541 jam zcode_41 ,mem_zcode_temp_param0 
+020d 2020077b branch p_zcode_entrance 
+
+p_g24_check_51cmd_stop_24g:
+020e 793f8026 set0 mark_24g ,mark 
+020f 704d4b00 jam state_24g_stop ,mem_24g_conn_sm 
+0210 204053ce call le_disable 
+
+p_mouse_disable_g24_pairing_flag:
+0211 d8e00003 arg mosue_24g_pairing_flag ,queue 
+0212 202043d2 branch mouse_disable_function_flag 
+
+p_g24_put_data_in_buff:
+0213 6008cbf9 storet 1 ,mem_24g_datalen 
+0214 18427200 copy temp ,loopcnt 
+0215 d8a04b95 arg mem_24g_txbuf ,contw 
+0216 1a220c00 copy rega ,contr 
+0217 20207f01 branch memcpy 
+
+p_g24_read_len_pid_crc:
+0218 6800cb74 fetch 1 ,mem_24g_rxbuf + 1 
+0219 1fe97e00 rshift3 pdata ,pdata 
+021a 6000cbf7 store 1 ,mem_24g_rxdata_length 
+021b 1fe0fe01 increase 1 ,pdata 
+021c d8c04b74 arg mem_24g_rxbuf + 1 ,contr 
+021d 98c08c00 iadd contr ,contr 
+021e e8c18000 ifetch 3 ,contr 
+021f 6001cc36 store 3 ,mem_24g_sta_crc 
+0220 6800cb74 fetch 1 ,mem_24g_rxbuf + 1 
+0221 1fe37e00 rshift pdata ,pdata 
+0222 1fe17e03 and pdata ,0x03 ,pdata 
+0223 6000cc3c store 1 ,mem_24g_sta_pid 
+0224 20600000 rtn 
+
+p_g24_transmit_prep:
+0225 6800cbf9 fetch 1 ,mem_24g_datalen 
+0226 1fe0fe02 increase 2 ,pdata 
+0227 6000cbfb store 1 ,mem_24g_txlen 
+0228 6800cbfa fetch 1 ,mem_24g_data_type 
+0229 6000cbb5 store 1 ,mem_24g_txpayload 
+022a 6800cbf9 fetch 1 ,mem_24g_datalen 
+022b 1fe9fe00 lshift3 pdata ,pdata 
+022c 6808cbf8 fetcht 1 ,mem_24g_pid 
+022d 18410403 and temp ,0x03 ,temp 
+022e 18438400 lshift temp ,temp 
+022f 9841fe00 ior temp ,pdata 
+0230 6808cc35 fetcht 1 ,mem_24g_no_ack 
+0231 9840fe00 iadd temp ,pdata 
+0232 e0a08000 istore 1 ,contw 
+0233 6800cbf9 fetch 1 ,mem_24g_datalen 
+0234 98007200 iforce loopcnt 
+0235 d8c04b95 arg mem_24g_txbuf ,contr 
+0236 20207f01 branch memcpy 
+
+p_g24_prep:
+0237 7844fc00 disable enable_crc 
+0238 7843fc00 disable enable_white 
+0239 58555555 setarg 0x555555 
+023a 98001e00 iforce crc24_init 
+023b 6800cc03 fetch 1 ,mem_24g_ch 
+023c 1fed8400 reverse pdata ,temp 
+023d 79200401 set1 1 ,temp 
+023e 18431c00 rshift temp ,white_init 
+023f 20600000 rtn 
+
+p_g24_receive_rxon:
+0240 20400237 call p_g24_prep 
+0241 7857fc00 disable user3 
+0242 7826fc00 enable decode_fec0 
+0243 7830fc00 enable is_rx 
+0244 78507c00 disable is_tx 
+0245 78287c00 enable swfine 
+0246 68014bfc fetch 2 ,mem_24g_rx_window 
+0247 98003600 iforce stop_watch 
+0248 37c18400 correlate null ,timeout 
+0249 242c0279 nbranch p_g24_sync_timeout ,sync 
+024a 7846fc00 disable decode_fec0 
+024b 7825fc00 enable decode_fec1 
+024c 7823fc00 enable enable_white 
+024d 7824fc00 enable enable_crc 
+024e 20400276 call p_g24_receive_byte 
+024f 6000ccad store 1 ,mem_24g_get_syncword_crc8 
+0250 6808ccac fetcht 1 ,mem_24g_syncword_crc8 
+0251 98467c00 isub temp ,null 
+0252 24228279 nbranch p_g24_end_of_packet ,zero 
+0253 20400276 call p_g24_receive_byte 
+0254 6000cb73 store 1 ,mem_24g_rxbuf 
+0255 6800cb73 fetch 1 ,mem_24g_rxbuf 
+0256 6808cbfa fetcht 1 ,mem_24g_data_type 
+0257 a8400e00 icompare bits_data ,temp 
+0258 24208279 nbranch p_g24_end_of_packet ,true 
+
+p_g24_receive_skip:
+0259 20400276 call p_g24_receive_byte 
+025a e0a08000 istore 1 ,contw 
+025b 1fe97e00 rshift3 pdata ,pdata 
+025c 1fe1721f and pdata ,0x1f ,loopcnt 
+025d 20228261 branch p_g24rx_nopayload ,zero 
+
+p_g24rx_loop:
+025e 20400276 call p_g24_receive_byte 
+025f e0a08000 istore 1 ,contw 
+0260 c200025e loop p_g24rx_loop 
+
+p_g24rx_nopayload:
+0261 18a22200 copy contw ,rega 
+0262 20400276 call p_g24_receive_byte 
+0263 6000cd34 store 1 ,mem_rssi_hex_received 
+0264 1a220a00 copy rega ,contw 
+0265 09800018 parse demod ,bucket ,24 
+0266 78287c00 enable swfine 
+0267 db600664 arg param_sifs ,stop_watch 
+0268 1fef7e00 rshift32 pdata ,pdata 
+0269 1ff17e00 rshift16 pdata ,pdata 
+026a e0a18000 istore 3 ,contw 
+026b 7845fc00 disable decode_fec1 
+026c 20230279 branch p_g24_end_of_packet ,crc_failed 
+026d 7837fc00 enable user3 
+026e 68008017 fetch 1 ,mem_last_freq 
+026f 1fe0a200 add pdata ,0 ,rega 
+0270 20402981 call rf_write_freq 
+0271 7846fc00 disable decode_fec0 
+0272 20402918 call set_sync_on 
+0273 6800cd34 fetch 1 ,mem_rssi_hex_received 
+0274 2040006b call p_rssi_signal 
+0275 20600000 rtn 
+
+p_g24_receive_byte:
+0276 09800008 parse demod ,bucket ,8 
+0277 19897e00 rshift3 pwindow ,pdata 
+0278 20600000 rtn 
+
+p_g24_sync_timeout:
+
+p_g24_end_of_packet:
+0279 784dfc00 disable encode_fec1 
+027a 7845fc00 disable decode_fec1 
+027b 2040264d call end_of_packet 
+027c 20600000 rtn 
+
+p_g24_set_freq_tx:
+027d 20402918 call set_sync_on 
+027e 6808cc03 fetcht 1 ,mem_24g_ch 
+027f 20202933 branch set_freq_tx 
+
+p_g24_transmit:
+0280 204053c4 call le_enable 
+0281 68024c21 fetch 4 ,mem_24g_addr 
+0282 98001200 iforce access 
+0283 20400237 call p_g24_prep 
+0284 2040027d call p_g24_set_freq_tx 
+0285 79202a00 set1 txgfsk ,radio_ctrl 
+0286 782efc00 enable encode_fec0 
+0287 78307c00 enable is_tx 
+0288 7850fc00 disable is_rx 
+0289 19317e00 rshift16 access ,pdata 
+028a 1fecfe00 rshift8 pdata ,pdata 
+028b 1ff1fe00 rshift4 pdata ,pdata 
+028c 08008628 inject mod ,40 
+028d 784efc00 disable encode_fec0 
+028e 782dfc00 enable encode_fec1 
+028f 7823fc00 enable enable_white 
+0290 7824fc00 enable enable_crc 
+0291 6800ccac fetch 1 ,mem_24g_syncword_crc8 
+0292 08008608 inject mod ,8 
+0293 6800cbfb fetch 1 ,mem_24g_txlen 
+0294 98007200 iforce loopcnt 
+0295 d8c04bb5 arg mem_24g_txpayload ,contr 
+
+p_g24tr_loop:
+0296 e8c08000 ifetch 1 ,contr 
+0297 08008608 inject mod ,8 
+0298 c2000296 loop p_g24tr_loop 
+0299 78247c00 enable enable_parity 
+029a 08008618 inject mod ,24 
+029b 78447c00 disable enable_parity 
+029c 37d38200 until null ,tx_clear 
+029d 20000064 nop 100 
+029e 784efc00 disable encode_fec0 
+029f 784dfc00 disable encode_fec1 
+02a0 20600000 rtn 
+
+p_g24_timer_check:
+02a1 20407fe9 call disable_user 
+02a2 680a4c1a fetcht 4 ,mem_24g_tx_btclk 
+02a3 1c427e00 copy clkn_bt ,pdata 
+02a4 98467c00 isub temp ,null 
+02a5 24412d18 ncall g24_timer_timeout ,positive 
+02a6 1fe22400 copy pdata ,regb 
+02a7 68024c1a fetch 4 ,mem_24g_tx_btclk 
+02a8 6808cc1e fetcht 1 ,mem_24g_interval 
+02a9 98408400 iadd temp ,temp 
+02aa 1a427e00 copy regb ,pdata 
+02ab 98467c00 isub temp ,null 
+02ac 24610000 nrtn positive 
+02ad 793ffe1c set0 28 ,pdata 
+02ae 60024c1a store 4 ,mem_24g_tx_btclk 
+02af 20207fe7 branch enable_user 
+
+p_rssi_average:
+02b0 d8400000 arg 0 ,temp 
+02b1 df200008 arg rssi_buf_len_signal + 1 ,loopcnt 
+02b2 1a220c00 copy rega ,contr 
+
+p_rssi_average_loop:
+02b3 e8c08000 ifetch 1 ,contr 
+02b4 98408400 iadd temp ,temp 
+02b5 c20002b3 loop p_rssi_average_loop 
+02b6 18497e00 rshift3 temp ,pdata 
+02b7 1fe20400 copy pdata ,temp 
+02b8 c6930000 rtnmark0 mark_24g 
+02b9 1fe6fc0a div pdata ,10 
+02ba 20407f86 call wait_div_end 
+02bb 1807fe00 quotient pdata 
+02bc 1ff27e00 lshift4 pdata ,pdata 
+02bd 18070400 remainder temp 
+02be 98418400 ior temp ,temp 
+02bf 20600000 rtn 
+02c0 20600000 rtn 
+
+p_mouse_before_lpm:
+02c1 c6130000 rtnmark1 mark_24g 
+02c2 20400373 call p_mouse_le_txbuff_save 
+02c3 204000ed call p_mouse_setgpio_lpm 
+02c4 6800c040 fetch 1 ,mem_context 
+02c5 c30002c8 bbit0 state_inconn ,p_clear_wake 
+02c6 680080a0 fetch 1 ,mem_lpm_current_mult 
+02c7 247a0000 nrtn blank 
+
+p_clear_wake:
+02c8 58000000 setarg 0 
+02c9 600400a1 store 8 ,mem_gpio_wakeup_low 
+02ca 20600000 rtn 
+
+p_mouse_set_sdio_high:
+02cb 6800cb00 fetch 1 ,mem_mouse_init_sensor_reset_flag 
+02cc 207a0000 rtn blank 
+02cd 20200546 branch p_mouse_seting_sensor_type 
+
+p_device_init:
+02ce 20403416 call app_lpm_mult_enable 
+02cf 204074b9 call enable_authrom 
+02d0 203582df branch p_device_wake_from_lpm ,wake 
+
+p_device_wake_from_power:
+02d1 20400001 call p_wake_from_power 
+
+p_mouse_check_reconn_target:
+02d2 204002e0 call p_mouse_tx_power_init 
+02d3 6800c720 fetch 1 ,mem_device_flag 
+02d4 c0010365 beq mode_24g_device ,p_mouse_connect_24g_mode 
+02d5 6800c210 fetch 1 ,mem_xrecord_mode 
+02d6 c01982e3 beq rec_3_mode ,p_mouse3_0_check_reconn_target 
+02d7 c01a02e7 beq rec_4_mode ,p_mouse4_0_check_reconn_target 
+02d8 6800cb70 fetch 1 ,mem_mouse_fast_conn_flag 
+02d9 1fe67cff sub pdata ,0xff ,null 
+02da 20428359 call p_mouse_fast_conn_le_switch_adv ,zero 
+02db 204004f9 call p_mouse_fast_conn_adv_switch_timer_reinit 
+02dc 70016d06 jam 6 ,mem_connection_options 
+02dd 2040047e call p_mouse_check_fast_conn_adv_start 
+02de 20207ddd branch check_51cmd_start_discovery 
+
+p_device_wake_from_lpm:
+02df 20200324 branch p_mouse_spi_init 
+
+p_mouse_tx_power_init:
+02e0 6800ccb0 fetch 1 ,mem_tx_power_temp 
+02e1 6000c1de store 1 ,mem_tx_power 
+02e2 20600000 rtn 
+
+p_mouse3_0_check_reconn_target:
+02e3 2040053f call p_mouse_mode_bt_device1_multi_led_blink3s 
+02e4 680341d0 fetch 6 ,mem_hci_plap 
+02e5 203a33eb branch app_bt_start_discovery_short ,blank 
+02e6 20204274 branch mouse3_0_check_reconn_target + 3 
+
+p_mouse4_0_check_reconn_target:
+02e7 7011c511 jam zcode_11 ,mem_zcode_temp_param0 
+02e8 2020077b branch p_zcode_entrance 
+
+p_mouse_init_sunt:
+02e9 20400324 call p_mouse_spi_init 
+02ea 204040c0 call mouse_spi_sdio_gpio_pollup 
+
+p_mouse_init_sensor:
+02eb 204040d9 call mouse_read_sensor_id 
+02ec c01802f1 beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
+02ed c01882f3 beq p3065_id1 ,p_mouse_p3065_init_param 
+02ee 204040d1 call mouse_twspi_reset 
+02ef 200003e8 nop 1000 
+02f0 202002eb branch p_mouse_init_sensor 
+
+p_mouse_init_p32xx_id2_judge:
+02f1 2040038e call p_mouse_sensor_poweron 
+02f2 202040e0 branch mouse_init_p32xx_id2_judge 
+
+p_mouse_p3065_init_param:
+02f3 2040038e call p_mouse_sensor_poweron 
+02f4 6800c6de fetch 1 ,mem_sensor_id2 
+02f5 c03840e8 beq p3065_xy_id2 ,mouse_p3065xy_init_param 
+02f6 7046e001 jam p3065 ,mem_config_sensor_type 
+02f7 20600000 rtn 
+
+p_mouse_setting_config:
+02f8 7011c580 jam zcode_80 ,mem_zcode_temp_param0 
+02f9 2020077b branch p_zcode_entrance 
+
+p_flash_ncs_disable:
+02fa 6808cb46 fetcht 1 ,mem_flash_ncs_gpio 
+02fb 20206825 branch gpio_out_inactive 
+
+p_spid_init_flash:
+02fc 70808640 jam 0x40 ,core_spid_ctrl 
+02fd 70808700 jam 0x0 ,core_spid_delay 
+02fe 68108081 hfetch 1 ,core_gpio_sel1 
+02ff 793ffe00 set0 0 ,pdata 
+0300 793ffe01 set0 1 ,pdata 
+0301 79207e03 set1 3 ,pdata 
+0302 793ffe04 set0 4 ,pdata 
+0303 60108081 hstore 1 ,core_gpio_sel1 
+0304 58000000 setarg 0 
+0305 600201f5 store 4 ,mem_spid_tbuf 
+0306 6810807f hfetch 1 ,core_gpio_pd3 
+0307 793ffe00 set0 0 ,pdata 
+0308 6010807f hstore 1 ,core_gpio_pd3 
+0309 20600000 rtn 
+
+p_mouse_load_flash_info_check:
+030a 20400352 call p_flash_release_deep_power_down 
+030b 20404423 call mouse_load_flash_flag 
+030c 68014778 fetch 2 ,mem_store_flag 
+030d d840aa55 arg eeprom_init_flag ,temp 
+030e 98467c00 isub temp ,null 
+030f 20228346 branch p_mouse_load_flash_device_info ,zero 
+0310 60094778 storet 2 ,mem_store_flag 
+0311 2040441c call mouse_ble_init_address 
+0312 6800c6e1 fetch 1 ,mem_config_sensor_motion 
+0313 6000c77a store 1 ,mem_mouse_dpi 
+0314 68024b4d fetch 4 ,mem_mouse_24g_addr_init 
+0315 6002477b store 4 ,mem_mouse_24g_addr 
+0316 60024c21 store 4 ,mem_24g_addr 
+
+p_mouse_store_flash_device_info:
+0317 20400352 call p_flash_release_deep_power_down 
+0318 20400326 call p_flash_erase_sector 
+0319 2040033d call p_mouse_information_flash_parameters 
+031a 20400332 call p_spid_write_flash 
+031b 20400329 call p_wait_flash_done 
+031c d8400007 arg 7 ,temp 
+031d da204b6b arg mem_mouse_flash_start_temp ,rega 
+031e da40005f arg mouse_user_data_offect ,regb 
+031f 6801c700 fetch 3 ,mem_flash_base 
+0320 9a40fe00 iadd regb ,pdata 
+0321 20400332 call p_spid_write_flash 
+0322 20400329 call p_wait_flash_done 
+0323 2040034c call p_flash_deep_power_down 
+
+p_mouse_spi_init:
+0324 70421276 jam 0x76 ,mem_spi_init_clk 
+0325 20203d36 branch mouse_spi_init 
+
+p_flash_erase_sector:
+0326 6801c700 fetch 3 ,mem_flash_base 
+0327 6001c232 store 3 ,mem_spi_write_addr 
+0328 2040652a call flash_erase_sector + 2 
+
+p_wait_flash_done:
+0329 580186a0 setarg 100000 
+032a 20402a8f call sleep 
+032b 2040650b call spid_unlock_flash 
+032c 580001fa setarg mem_spid_rbuf 
+032d 6011008c hstore 2 ,core_spid_rxaddr 
+032e 58000005 setarg flash_read_satus 
+032f 204064f3 call spid_read_reg 
+0330 c2800329 bbit1 flash_status_wip ,p_wait_flash_done 
+0331 20600000 rtn 
+
+p_spid_write_flash:
+0332 1fe22600 copy pdata ,regc 
+0333 1a227e00 copy rega ,pdata 
+0334 1fe0fffc increase -4 ,pdata 
+0335 1fe22400 copy pdata ,regb 
+0336 ea420000 ifetch 4 ,regb 
+0337 60024b48 store 4 ,mem_write_flash_head_temp 
+0338 1a627e00 copy regc ,pdata 
+0339 20406552 call spid_write_flash 
+033a 68024b48 fetch 4 ,mem_write_flash_head_temp 
+033b e2420000 istore 4 ,regb 
+033c 20600000 rtn 
+
+p_mouse_information_flash_parameters:
+033d 5800477f setarg mem_mouse_information_end 
+033e d8404720 arg mem_mouse_information_start ,temp 
+033f 98460400 isub temp ,temp 
+0340 6801c700 fetch 3 ,mem_flash_base 
+0341 da204720 arg mem_mouse_information_start ,rega 
+0342 20600000 rtn 
+
+p_mouse_read_flash:
+0343 20400352 call p_flash_release_deep_power_down 
+0344 2040033d call p_mouse_information_flash_parameters 
+0345 20206562 branch spid_read_flash 
+
+p_mouse_load_flash_device_info:
+0346 20400343 call p_mouse_read_flash 
+0347 2040035e call p_mouse_load_flash_user_data 
+0348 2040431a call mouse_select_reconn_device 
+0349 6802477b fetch 4 ,mem_mouse_24g_addr 
+034a 60024c21 store 4 ,mem_24g_addr 
+034b 20600000 rtn 
+
+p_flash_deep_power_down:
+034c 700aa2b9 jam flash_command_deep_power_down ,mem_temp 
+
+p_spid_write_flash_cmd:
+034d 204002fc call p_spid_init_flash 
+034e 2040650b call spid_unlock_flash 
+034f da204b48 arg mem_write_flash_head_temp ,rega 
+0350 68088aa2 fetcht 1 ,mem_temp 
+0351 20206556 branch spid_write_flash_common 
+
+p_flash_release_deep_power_down:
+0352 700aa2ab jam flash_command_release_deep_power_down ,mem_temp 
+0353 2020034d branch p_spid_write_flash_cmd 
+
+p_mouse_fast_conn_quit:
+0354 58000050 setarg 0x50 
+0355 600146ae store 2 ,mem_mouse_direct_timer 
+0356 20403410 call app_ble_store_reconn_info 
+
+p_mouse_store_fast_conn_flag:
+0357 704b705a jam 0x5a ,mem_mouse_fast_conn_flag 
+0358 20200317 branch p_mouse_store_flash_device_info 
+
+p_mouse_fast_conn_le_switch_adv:
+0359 704b6401 jam 1 ,mem_le_switch_adv_timer 
+035a 704b6301 jam 1 ,mem_le_switch_adv_flag 
+
+p_mouse_fast_conn_init:
+035b 5fffffff setarg -1 
+035c 600344a0 store 6 ,mem_le_lap 
+035d 20600000 rtn 
+
+p_mouse_load_flash_user_data:
+035e 20400352 call p_flash_release_deep_power_down 
+035f d8400007 arg 7 ,temp 
+0360 da204b6b arg mem_mouse_flash_start_temp ,rega 
+0361 da40005f arg mouse_user_data_offect ,regb 
+0362 6801c700 fetch 3 ,mem_flash_base 
+0363 9a40fe00 iadd regb ,pdata 
+0364 20206562 branch spid_read_flash 
+
+p_mouse_connect_24g_mode:
+0365 20400540 call p_mouse_mode_24g_device_multi_led_blink3s 
+
+p_mouse_start_24g_mode:
+0366 6800c241 fetch 1 ,mem_power_on_flag 
+0367 c281020a bbit1 2 ,p_g24_start_24g_mode 
+0368 68024b4d fetch 4 ,mem_mouse_24g_addr_init 
+0369 60024c21 store 4 ,mem_24g_addr 
+036a 20400317 call p_mouse_store_flash_device_info 
+036b 2020020c branch p_g24_auto_pair_start 
+
+p_mouse_g24_package_data:
+036c 20404401 call mouse_g24_package_data 
+036d 6801469f fetch 2 ,mem_mouse_z 
+036e 207a0000 rtn blank 
+
+p_g24_transmit_by_interrupt_enable:
+036f 704d3901 jam g24_tx_timer_int_enable ,mem_24g_transmit_by_interrupt 
+0370 58000000 setarg 0 
+0371 60014d3a store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0372 20600000 rtn 
+
+p_mouse_le_txbuff_save:
+0373 d8c01800 arg mem_le_tx_buffer0 ,contr 
+0374 d8a0480a arg mem_le_tx_buffer0_omemalloc ,contw 
+0375 2040037b call p_mouse_le_txbuff_copy 
+0376 d8c01900 arg mem_le_tx_buffer1 ,contr 
+0377 2040037b call p_mouse_le_txbuff_copy 
+0378 d8c01a00 arg mem_le_tx_buffer2 ,contr 
+0379 2040037b call p_mouse_le_txbuff_copy 
+037a d8c01b00 arg mem_le_tx_buffer3 ,contr 
+
+p_mouse_le_txbuff_copy:
+037b df20001b arg 27 ,loopcnt 
+037c 20207f01 branch memcpy 
+
+p_mouse_le_txbuff_load:
+037d d8c0480a arg mem_le_tx_buffer0_omemalloc ,contr 
+037e d8a01800 arg mem_le_tx_buffer0 ,contw 
+037f 2040037b call p_mouse_le_txbuff_copy 
+0380 d8a01900 arg mem_le_tx_buffer1 ,contw 
+0381 2040037b call p_mouse_le_txbuff_copy 
+0382 d8a01a00 arg mem_le_tx_buffer2 ,contw 
+0383 2040037b call p_mouse_le_txbuff_copy 
+0384 d8a01b00 arg mem_le_tx_buffer3 ,contw 
+0385 2020037b branch p_mouse_le_txbuff_copy 
+
+p_mouse_le_current_mult_update:
+0386 70417200 jam 0 ,mem_lpm_mult 
+0387 704b441e jam 30 ,mem_mouse_le_current_mult_timer 
+0388 20600000 rtn 
+
+p_mouse_data_xy_release:
+0389 6800cb43 fetch 1 ,mem_mouse_long_mult_flag 
+038a c1808000 rtnne 1 
+038b 58000000 setarg 0 
+038c 6000cb43 store 1 ,mem_mouse_long_mult_flag 
+038d 6002469b store 4 ,mem_mouse_x 
+
+p_mouse_sensor_poweron:
+038e 20400324 call p_mouse_spi_init 
+038f 58008006 setarg 0x8006 
+0390 20406413 call twspi_write 
+0391 20002ee0 nop 12000 
+
+p_mouse_dpi_config:
+0392 6800c77a fetch 1 ,mem_mouse_dpi 
+0393 c07f8395 beq 0xff ,p_mouse_dpi_config_default 
+0394 20200546 branch p_mouse_seting_dpi 
+
+p_mouse_dpi_config_default:
+0395 6800c6e1 fetch 1 ,mem_config_sensor_motion 
+0396 6000c77a store 1 ,mem_mouse_dpi 
+0397 20200546 branch p_mouse_seting_dpi 
+
+p_mouse_le:
+0398 20405892 call le_fifo_check_nearly_full 
+0399 247a0000 nrtn blank 
+039a 6800cb70 fetch 1 ,mem_mouse_fast_conn_flag 
+039b c07f839f beq 0xff ,p_mouse_le_next 
+039c 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+039d 1fe17e03 and pdata ,0x03 ,pdata 
+039e c1818000 rtnne 0x03 
+
+p_mouse_le_next:
+039f 6800c79e fetch 1 ,mem_mouse_clear_sensor_data_flag 
+03a0 205a03ec call p_mouse_clear_sensor_data ,blank 
+03a1 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+03a2 c282c179 bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
+03a3 20403f97 call mouse_motion 
+03a4 24740000 nrtn user 
+03a5 20400386 call p_mouse_le_current_mult_update 
+03a6 20400389 call p_mouse_data_xy_release 
+03a7 204003c2 call p_mouse_wheel_trigger 
+
+p_mouse_data_push:
+03a8 da20469a arg mem_mouse_key ,rega 
+03a9 20407e3d call queue_push 
+03aa 205403b1 call p_mouse_queue_increase ,user 
+03ab 20600000 rtn 
+
+p_mouse_data_init:
+03ac 7047a207 jam 7 ,mem_mouse_data_queue 
+03ad 7047a304 jam 4 ,mem_mouse_data_queue + 1 
+03ae 580047a2 setarg mem_mouse_data_queue 
+03af 60014218 store 2 ,mem_queue_ptr 
+03b0 20207e38 branch queue_init 
+
+p_mouse_queue_increase:
+03b1 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
+03b2 1fe0fe01 increase 1 ,pdata 
+03b3 6000c7c3 store 1 ,mem_mouse_data_queue_num 
+03b4 20600000 rtn 
+
+p_mouse_data_pull:
+03b5 da20469a arg mem_mouse_key ,rega 
+03b6 20407e54 call queue_pop 
+03b7 203403b9 branch p_mouse_fill_data_le ,user 
+03b8 20600000 rtn 
+
+p_mouse_fill_data_le:
+03b9 20405652 call le_clear_md 
+03ba 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
+03bb 1fe67c01 sub pdata ,1 ,null 
+03bc 24415650 ncall le_set_md ,positive 
+03bd 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
+03be 207a0000 rtn blank 
+03bf 1fe0ffff increase -1 ,pdata 
+03c0 6000c7c3 store 1 ,mem_mouse_data_queue_num 
+03c1 20203f90 branch mouse_fill_data_le 
+
+p_mouse_wheel_trigger:
+03c2 6801469f fetch 2 ,mem_mouse_z 
+03c3 207a0000 rtn blank 
+03c4 70480601 jam 1 ,mem_mouse_wheel_trigger 
+03c5 7048070a jam 10 ,mem_mouse_wheel_trigger_timer 
+03c6 20600000 rtn 
+
+p_mouse_bt:
+03c7 20770000 rtn attempt 
+03c8 6800c1e2 fetch 1 ,mem_app_handshake_flag 
+03c9 207a0000 rtn blank 
+03ca 20405271 call l2cap_malloc_is_fifo_nearly_full 
+03cb 247a0000 nrtn blank 
+03cc 6800c79e fetch 1 ,mem_mouse_clear_sensor_data_flag 
+03cd 205a03ec call p_mouse_clear_sensor_data ,blank 
+03ce 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+03cf c282bf8a bbit1 mouse_bt_discovery_button_down_flag ,mouse_send_empty_data 
+03d0 c284bf8a bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_send_empty_data 
+03d1 20403f97 call mouse_motion 
+03d2 24740000 nrtn user 
+03d3 20400386 call p_mouse_le_current_mult_update 
+03d4 20400389 call p_mouse_data_xy_release 
+03d5 204003c2 call p_mouse_wheel_trigger 
+03d6 6800cb05 fetch 1 ,mem_mouse_bt_boot_mode 
+03d7 c00083db beq 1 ,p_mouse_send_data_boot_mode 
+03d8 6800cb0c fetch 1 ,mem_mouse_bt_send_first_package_flag 
+03d9 207a0000 rtn blank 
+03da 20203f81 branch mouse_send_data 
+
+p_mouse_send_data_boot_mode:
+03db 6800c69a fetch 1 ,mem_mouse_key 
+03dc 6000cb06 store 1 ,mem_mouse_bt_boot_data 
+03dd 6800c69b fetch 1 ,mem_mouse_x 
+03de e0a08000 istore 1 ,contw 
+03df 6800c69d fetch 1 ,mem_mouse_y 
+03e0 e0a08000 istore 1 ,contw 
+03e1 6801469f fetch 2 ,mem_mouse_z 
+03e2 e0a10000 istore 2 ,contw 
+03e3 da200007 arg 7 ,rega 
+03e4 20404d63 call hid_malloc_tx_buff 
+03e5 6801424e fetch 2 ,mem_hid_int_remote_cid 
+03e6 e0a10000 istore 2 ,contw 
+03e7 580002a1 setarg 0x02a1 
+03e8 e0a10000 istore 2 ,contw 
+03e9 6802cb06 fetch 5 ,mem_mouse_bt_boot_data 
+03ea e0a28000 istore 5 ,contw 
+03eb 20600000 rtn 
+
+p_mouse_clear_sensor_data:
+03ec 70479e01 jam 1 ,mem_mouse_clear_sensor_data_flag 
+03ed 20405814 call le_set_config_more_data 
+
+p_mouse_init_sensor_reset:
+03ee 704b0001 jam 1 ,mem_mouse_init_sensor_reset_flag 
+03ef 202002e9 branch p_mouse_init_sunt 
+
+p_mouse_idle:
+03f0 20407e34 call ui_check_paring_button 
+03f1 204003f3 call p_mouse_dpi_check 
+03f2 20203ee0 branch mouse_wheel_check 
+
+p_mouse_dpi_check:
+03f3 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
+03f4 2040058c call p_gpio_set_input_pd 
+03f5 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
+03f6 2040681d call gpio_get_bit 
+03f7 202083fd branch p_mouse_dpi_up ,true 
+03f8 20400587 call p_gpio_set_input_pu 
+
+p_mouse_dpi_down:
+03f9 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
+03fa c1000000 rtneq dpi_button_state_down 
+03fb 7046b600 jam dpi_button_state_down ,mem_mouse_dpi_button_state 
+03fc 20600000 rtn 
+
+p_mouse_dpi_up:
+03fd 20400587 call p_gpio_set_input_pu 
+03fe 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
+03ff c1008000 rtneq dpi_button_state_up 
+0400 7046b601 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+0401 2040035e call p_mouse_load_flash_user_data 
+0402 6800cb6d fetch 1 ,mem_mouse_long_button_select_device 
+0403 203a04b5 branch p_mouse_select_device_and_reset ,blank 
+0404 6800c77a fetch 1 ,mem_mouse_dpi 
+0405 1fe0fe01 increase 1 ,pdata 
+0406 1fe17e03 and pdata ,0x03 ,pdata 
+0407 6000c77a store 1 ,mem_mouse_dpi 
+0408 1fe0fe02 increase 2 ,pdata 
+0409 6000cb2d store 1 ,mem_mouse_multi_led_blink_count 
+040a 20400543 call p_mouse_dpi_multi_led_blink 
+040b 20403d7e call mouse_seting_dpi 
+040c 20200317 branch p_mouse_store_flash_device_info 
+
+p_mouse_priority_bb_event:
+040d 1a627e00 copy regc ,pdata 
+040e c00a041e beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
+040f c00a8421 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
+0410 c0148424 beq bt_evt_le_enc_info ,p_mouse_le_enc_info 
+0411 c0190426 beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
+0412 c0200428 beq bt_evt_le_parse_conn_papa_update_rsp ,p_mouse_le_conn_param_update_rsp_recieved 
+0413 c002042a beq bt_evt_reconn_failed ,p_mouse_bb_event_reconn_failed 
+0414 c009842a beq bt_evt_reconn_page_timeout ,p_mouse_bb_event_reconn_timeout 
+0415 c00cb3df beq bt_evt_switch_not_accept ,app_bt_role_switch 
+0416 c010842e beq bt_evt_sniff_not_accept ,p_mouse_sniff_not_accept 
+0417 c0008430 beq bt_evt_bb_connected ,p_mouse_bb_event_connected 
+0418 c0010438 beq bt_evt_bb_disconnected ,p_mouse_bb_event_disconnected 
+0419 c015843b beq bt_evt_switch_success_master ,p_mouse_enter_sniff_check 
+041a c01c843d beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
+041b c01d0440 beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
+041c c01e0443 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
+041d 2020417d branch mouse_priority_bb_event + 1 
+
+p_mouse_le_bb_event_connected:
+041e 204003ee call p_mouse_init_sensor_reset 
+041f 7011c5b0 jam zcode_b0 ,mem_zcode_temp_param0 
+0420 2020077b branch p_zcode_entrance 
+
+p_mouse_le_bb_disconnected:
+0421 20400449 call p_mouse_sensor_powerdown_check 
+0422 7011c5a2 jam zcode_a2 ,mem_zcode_temp_param0 
+0423 2020077b branch p_zcode_entrance 
+
+p_mouse_le_enc_info:
+
+p_app_updata_le_param:
+0424 700a9912 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+0425 20207d8f branch ui_ipc_send_cmd 
+
+p_mouse_le_ll_start_encryt:
+0426 7011c5b3 jam zcode_b3 ,mem_zcode_temp_param0 
+0427 2020077b branch p_zcode_entrance 
+
+p_mouse_le_conn_param_update_rsp_recieved:
+0428 7011c5a1 jam zcode_a1 ,mem_zcode_temp_param0 
+0429 2020077b branch p_zcode_entrance 
+
+p_mouse_bb_event_reconn_timeout:
+
+p_mouse_bb_event_reconn_failed:
+042a 7011c5a3 jam zcode_a3 ,mem_zcode_temp_param0 
+042b 2020077b branch p_zcode_entrance 
+
+p_mouse_irtual_cable_unplug:
+042c 7011c570 jam zcode_70 ,mem_zcode_temp_param0 
+042d 2020077b branch p_zcode_entrance 
+
+p_mouse_sniff_not_accept:
+042e 7011c5b1 jam zcode_b1 ,mem_zcode_temp_param0 
+042f 2020077b branch p_zcode_entrance 
+
+p_mouse_bb_event_connected:
+0430 2040047c call p_mouse_store_eeprom_enable 
+0431 204003ee call p_mouse_init_sensor_reset 
+0432 58000000 setarg 0 
+0433 6001cb63 store 3 ,mem_le_switch_adv_flag 
+0434 20400357 call p_mouse_store_fast_conn_flag 
+0435 2040050a call p_mouse_null_enter_hibernate_disable 
+0436 70480900 jam 0 ,mem_mouse_send_switch_req_timer 
+0437 202042ca branch mouse_stop_discovery 
+
+p_mouse_bb_event_disconnected:
+0438 20400449 call p_mouse_sensor_powerdown_check 
+0439 7011c5b4 jam zcode_b4 ,mem_zcode_temp_param0 
+043a 2020077b branch p_zcode_entrance 
+
+p_mouse_enter_sniff_check:
+043b 7011c5b2 jam zcode_b2 ,mem_zcode_temp_param0 
+043c 2020077b branch p_zcode_entrance 
+
+p_mouse_24g_pairing_complete:
+043d 204003ee call p_mouse_init_sensor_reset 
+043e 7011c550 jam zcode_50 ,mem_zcode_temp_param0 
+043f 2020077b branch p_zcode_entrance 
+
+p_mouse_24g_attempt_fail:
+0440 20400449 call p_mouse_sensor_powerdown_check 
+0441 7011c551 jam zcode_51 ,mem_zcode_temp_param0 
+0442 2020077b branch p_zcode_entrance 
+
+p_mouse_24g_attempt_success:
+0443 204003ee call p_mouse_init_sensor_reset 
+0444 7011c552 jam zcode_52 ,mem_zcode_temp_param0 
+0445 2020077b branch p_zcode_entrance 
+
+p_mouse_before_hibernate:
+0446 20400449 call p_mouse_sensor_powerdown_check 
+0447 7011c5a0 jam zcode_a0 ,mem_zcode_temp_param0 
+0448 2020077b branch p_zcode_entrance 
+
+p_mouse_sensor_powerdown_check:
+0449 6800cb00 fetch 1 ,mem_mouse_init_sensor_reset_flag 
+044a 207a0000 rtn blank 
+044b 704b0000 jam 0 ,mem_mouse_init_sensor_reset_flag 
+
+p_mouse_sensor_powerdown:
+044c 204002e9 call p_mouse_init_sunt 
+044d 58000006 setarg 0x06 
+044e 20406414 call twspi_read 
+044f 1fe1fe08 or pdata ,0x08 ,pdata 
+0450 1fed7e00 lshift8 pdata ,pdata 
+0451 1fe0fe06 add pdata ,0x06 ,pdata 
+0452 20206413 branch twspi_write 
+
+p_mouse_bb_event_timer:
+0453 20400465 call p_mouse_le_switch_adv_timer 
+0454 2040050d call p_mouse_multi_led_blink_timer 
+0455 204004d8 call p_mouse_wheel_trigger_timer 
+0456 204004fc call p_mouse_null_enter_hibernate_timer 
+0457 204004dd call p_mouse_bt_discovery_check 
+0458 20404234 call mouse_check_discovery_timeout_timer 
+0459 20400492 call p_mouse_select_device 
+045a 20400483 call p_mouse_g24_long_sleep_param_update_timer 
+045b 2040048a call p_mouse_g24_search_dongle_delay_timer 
+045c 2040048d call p_mouse_g24_stop_mode_timeout_timer 
+045d 204004c1 call p_mouse_check_direct_timeout_timer 
+045e 204004c7 call p_mouse_le_enable_att_list_timer 
+045f 204004ca call p_le_send_smp_security_request_timer 
+0460 204004d2 call p_mouse_le_current_mult_update_timer 
+0461 204004b9 call p_mouse_send_switch_req_timer 
+0462 20404231 call mouse_check_hid_handshake_timer 
+0463 204004bc call p_mouse_bt_check_sniff_req_timeout_timer 
+0464 2020423a branch mouse_check_no_data_timeout_timer 
+
+p_mouse_le_switch_adv_timer:
+0465 6800cb63 fetch 1 ,mem_le_switch_adv_flag 
+0466 207a0000 rtn blank 
+0467 da604b64 arg mem_le_switch_adv_timer ,regc 
+0468 da40046a arg p_mouse_le_switch_adv ,regb 
+0469 2020336d branch timer_single_step 
+
+p_mouse_le_switch_adv:
+046a 704b6401 jam 1 ,mem_le_switch_adv_timer 
+046b 6800cb65 fetch 1 ,mem_le_switch_adv_count 
+046c 1fe0fe01 increase 1 ,pdata 
+046d 1fe17e01 and_into 1 ,pdata 
+046e 6000cb65 store 1 ,mem_le_switch_adv_count 
+046f c000047e beq 0 ,p_mouse_check_fast_conn_adv_start1 
+
+p_check_51cmd_adv:
+0470 68034b5d fetch 6 ,mem_le_normal_lap 
+0471 600344a0 store 6 ,mem_le_lap 
+0472 20400474 call p_mouse_le_adv_data_update 
+0473 20207df4 branch check_51cmd_adv 
+
+p_mouse_le_adv_data_update:
+0474 70436f1f jam 0x1f ,mem_le_adv_data_len 
+0475 70438f1f jam 0x1f ,mem_le_scan_data_len 
+0476 2040047c call p_mouse_store_eeprom_enable 
+0477 d8c04b12 arg mem_le_adv_swift_pair ,contr 
+
+p_le_adv_data_update:
+0478 d8a0437b arg mem_le_adv_data + 11 ,contw 
+0479 df200013 arg 19 ,loopcnt 
+047a 20407f01 call memcpy 
+047b 202057b8 branch le_modified_name_adv 
+
+p_mouse_store_eeprom_enable:
+047c d8e00007 arg mouse_store_eeprom_flag ,queue 
+047d 202043ce branch mouse_enable_function_flag 
+
+p_mouse_check_fast_conn_adv_start:
+
+p_mouse_check_fast_conn_adv_start1:
+047e 70436f00 jam 0 ,mem_le_adv_data_len 
+047f 70438f00 jam 0 ,mem_le_scan_data_len 
+0480 d8e00007 arg mouse_store_eeprom_flag ,queue 
+0481 204043d2 call mouse_disable_function_flag 
+0482 2020035b branch p_mouse_fast_conn_init 
+
+p_mouse_g24_long_sleep_param_update_timer:
+0483 da604b45 arg mem_24g_long_sleep_param_update_timer ,regc 
+0484 da400486 arg p_mouse_g24_long_sleep_normal_param ,regb 
+0485 2020336d branch timer_single_step 
+
+p_mouse_g24_long_sleep_normal_param:
+0486 58249f00 setarg g24_long_sleep_step2 
+0487 6001cc28 store 3 ,mem_24g_enter_hibernate 
+
+p_mouse_long_mult_flag_enable:
+0488 704b4301 jam 1 ,mem_mouse_long_mult_flag 
+0489 20600000 rtn 
+
+p_mouse_g24_search_dongle_delay_timer:
+048a da604d4a arg mem_24g_search_dongle_delay_count ,regc 
+048b da400000 arg 0 ,regb 
+048c 2020336d branch timer_single_step 
+
+p_mouse_g24_stop_mode_timeout_timer:
+048d da604d43 arg mem_24g_stop_g24_mode_timeout ,regc 
+048e da400490 arg p_mouse_g24_stop_mode_timeout ,regb 
+048f 20203374 branch timer_single_step_2b 
+
+p_mouse_g24_stop_mode_timeout:
+0490 704d4201 jam 1 ,mem_24g_stop_g24_mode 
+0491 20600000 rtn 
+
+p_mouse_select_device:
+
+p_mouse_select_device_by_button:
+0492 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
+0493 2040058c call p_gpio_set_input_pd 
+0494 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
+0495 2040681d call gpio_get_bit 
+0496 2420849f nbranch p_mouse_select_device_button_down ,true 
+
+p_mouse_select_device_button_up:
+0497 20400587 call p_gpio_set_input_pu 
+0498 6800cafd fetch 1 ,mem_mouse_button_select_device_timer_init 
+0499 6000cafe store 1 ,mem_mouse_button_select_device_count 
+049a 6800c6d9 fetch 1 ,mem_select_device_button_statue 
+049b c1008000 rtneq dpi_button_state_up 
+049c 7046d901 jam dpi_button_state_up ,mem_select_device_button_statue 
+049d d8e00006 arg mouse_long_bt_button_flag ,queue 
+049e 202043d2 branch mouse_disable_function_flag 
+
+p_mouse_select_device_button_down:
+049f 20400587 call p_gpio_set_input_pu 
+04a0 204004a6 call p_mouse_button_select_device_timer 
+04a1 20400503 call p_mouse_null_enter_hibernate_check 
+04a2 6800c6d9 fetch 1 ,mem_select_device_button_statue 
+04a3 c1000000 rtneq dpi_button_state_down 
+04a4 7046d900 jam dpi_button_state_down ,mem_select_device_button_statue 
+04a5 20600000 rtn 
+
+p_mouse_button_select_device_timer:
+04a6 da604afe arg mem_mouse_button_select_device_count ,regc 
+04a7 da4004a9 arg p_mouse_long_button_select_device ,regb 
+04a8 2020336d branch timer_single_step 
+
+p_mouse_long_button_select_device:
+04a9 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+04aa c3830000 rtnbit1 mouse_long_bt_button_flag 
+04ab 204004b7 call p_mouse_long_button_state_clear 
+
+p_mouse_ready_reconnection_by_button:
+04ac 7041bd00 jam 0 ,mem_link_key_exists 
+04ad 6808c720 fetcht 1 ,mem_device_flag 
+04ae 18408401 increase 1 ,temp 
+04af 6800c6d2 fetch 1 ,mem_device_number 
+04b0 98467c00 isub temp ,null 
+04b1 244143cc ncall mouse_select_device_count_clean ,positive 
+04b2 6008c720 storet 1 ,mem_device_flag 
+04b3 20400317 call p_mouse_store_flash_device_info 
+04b4 20204378 branch mouse_ready_reconnection_by_button + 8 
+
+p_mouse_select_device_and_reset:
+04b5 704b6dff jam 0xff ,mem_mouse_long_button_select_device 
+04b6 20200317 branch p_mouse_store_flash_device_info 
+
+p_mouse_long_button_state_clear:
+04b7 704b6d00 jam 0 ,mem_mouse_long_button_select_device 
+04b8 20200317 branch p_mouse_store_flash_device_info 
+
+p_mouse_send_switch_req_timer:
+04b9 da604809 arg mem_mouse_send_switch_req_timer ,regc 
+04ba da40637a arg host_create_conn_resend ,regb 
+04bb 2020336d branch timer_single_step 
+
+p_mouse_bt_check_sniff_req_timeout_timer:
+04bc da604b0b arg mem_mouse_bt_send_first_package_timer ,regc 
+04bd da4004bf arg p_mouse_bt_send_first_package ,regb 
+04be 2020336d branch timer_single_step 
+
+p_mouse_bt_send_first_package:
+04bf 704b0c01 jam 1 ,mem_mouse_bt_send_first_package_flag 
+04c0 20600000 rtn 
+
+p_mouse_check_direct_timeout_timer:
+04c1 da6046ae arg mem_mouse_direct_timer ,regc 
+04c2 da4004c4 arg p_mouse_check_direct_timeout ,regb 
+04c3 20203374 branch timer_single_step_2b 
+
+p_mouse_check_direct_timeout:
+04c4 704b7201 jam 1 ,mem_mouse_le_not_tx_disconn 
+04c5 204004f2 call p_mouse_long_button_bt_normal_discovery 
+04c6 202004e6 branch p_mouse_bt_discovery_button_up_init 
+
+p_mouse_le_enable_att_list_timer:
+04c7 da6046c6 arg mem_le_start_encrypt_timer ,regc 
+04c8 da403d60 arg mouse_le_write_enable ,regb 
+04c9 2020336d branch timer_single_step 
+
+p_le_send_smp_security_request_timer:
+04ca 6800cb6a fetch 1 ,mem_mouse_le_bb_connected_flag 
+04cb 207a0000 rtn blank 
+04cc da604b68 arg mem_mouse_send_secutiry_request_timer ,regc 
+04cd da4004cf arg p_le_pairing_sm_start_check ,regb 
+04ce 2020336d branch timer_single_step 
+
+p_le_pairing_sm_start_check:
+04cf 6800cb69 fetch 1 ,mem_le_send_security_request_flag 
+04d0 247a0000 nrtn blank 
+04d1 20205bf5 branch le_pairing_sm_start 
+
+p_mouse_le_current_mult_update_timer:
+04d2 da604b44 arg mem_mouse_le_current_mult_timer ,regc 
+04d3 da4004d5 arg p_mouse_le_current_mult_reinit ,regb 
+04d4 2020336d branch timer_single_step 
+
+p_mouse_le_current_mult_reinit:
+04d5 6800c7c5 fetch 1 ,mem_lpm_mult_init 
+04d6 6000c172 store 1 ,mem_lpm_mult 
+04d7 20200488 branch p_mouse_long_mult_flag_enable 
+
+p_mouse_wheel_trigger_timer:
+04d8 da604807 arg mem_mouse_wheel_trigger_timer ,regc 
+04d9 da4004db arg p_mouse_wheel_trigger_disable ,regb 
+04da 2020336d branch timer_single_step 
+
+p_mouse_wheel_trigger_disable:
+04db 70480600 jam 0 ,mem_mouse_wheel_trigger 
+04dc 20600000 rtn 
+
+p_mouse_bt_discovery_check:
+04dd 6800c720 fetch 1 ,mem_device_flag 
+04de c1010000 rtneq mode_24g_device 
+
+p_mouse_bt_discovery_commbination_key:
+04df 20400574 call p_mouse_check_key_gpio 
+04e0 c00384e9 beq mouse_lmr_button ,p_mouse_bt_discovery_commbination_key_down 
+
+p_mouse_bt_discovery_commbination_key_up:
+04e1 6800c685 fetch 1 ,mem_ui_button_timeout 
+04e2 6000c6da store 1 ,mem_combination_ui_button_count 
+04e3 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
+04e4 c1008000 rtneq dpi_button_state_up 
+04e5 7046db01 jam dpi_button_state_up ,mem_bt_discovey_button_statue 
+
+p_mouse_bt_discovery_button_up_init:
+04e6 d8e00009 arg mouse_bt_discovery_button_long_down_flag ,queue 
+04e7 204043d2 call mouse_disable_function_flag 
+04e8 202043ca branch mouse_bt_discovery_button_down_disable 
+
+p_mouse_bt_discovery_commbination_key_down:
+04e9 7047a028 jam 40 ,mem_mouse_null_enter_hibernate_timer 
+04ea 204004ec call p_mouse_bt_discovery_timer 
+04eb 202043b0 branch mouse_bt_discovery_commbination_key_down + 1 
+
+p_mouse_bt_discovery_timer:
+04ec da6046da arg mem_combination_ui_button_count ,regc 
+04ed da4004ef arg p_mouse_long_button_bt_discovery ,regb 
+04ee 2020336d branch timer_single_step 
+
+p_mouse_long_button_bt_discovery:
+04ef 204004b7 call p_mouse_long_button_state_clear 
+04f0 6800cb63 fetch 1 ,mem_le_switch_adv_flag 
+04f1 243a04f9 nbranch p_mouse_fast_conn_adv_switch_timer_reinit ,blank 
+
+p_mouse_long_button_bt_normal_discovery:
+04f2 20400474 call p_mouse_le_adv_data_update 
+04f3 68014682 fetch 2 ,mem_ui_state_map 
+04f4 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
+04f5 2040c392 call mouse_cancel_reconnect ,true 
+04f6 d8e00009 arg mouse_bt_discovery_button_long_down_flag ,queue 
+04f7 204043ce call mouse_enable_function_flag 
+04f8 202043b8 branch mouse_long_button_bt_discovry 
+
+p_mouse_fast_conn_adv_switch_timer_reinit:
+04f9 68014687 fetch 2 ,mem_discovery_timeout 
+04fa 600146ac store 2 ,mem_mouse_discovery_timer 
+04fb 20600000 rtn 
+
+p_mouse_null_enter_hibernate_timer:
+04fc 6800c79f fetch 1 ,mem_mouse_null_enter_hibernate_flag 
+04fd 207a0000 rtn blank 
+04fe da6047a0 arg mem_mouse_null_enter_hibernate_timer ,regc 
+04ff da400501 arg p_mouse_null_enter_hibernate ,regb 
+0500 2020336d branch timer_single_step 
+
+p_mouse_null_enter_hibernate:
+0501 70479f00 jam 0 ,mem_mouse_null_enter_hibernate_flag 
+0502 2020340a branch app_enter_hibernate 
+
+p_mouse_null_enter_hibernate_check:
+0503 68014682 fetch 2 ,mem_ui_state_map 
+0504 c3848000 rtnbit1 ui_state_ble_connected 
+0505 c3800000 rtnbit1 ui_state_bt_connected 
+0506 c6130000 rtnmark1 mark_24g 
+
+p_mouse_null_enter_hibernate_enable:
+0507 70479f01 jam 1 ,mem_mouse_null_enter_hibernate_flag 
+0508 7047a028 jam 40 ,mem_mouse_null_enter_hibernate_timer 
+0509 20600000 rtn 
+
+p_mouse_null_enter_hibernate_disable:
+050a 70479f00 jam 0 ,mem_mouse_null_enter_hibernate_flag 
+050b 7047a000 jam 0 ,mem_mouse_null_enter_hibernate_timer 
+050c 20600000 rtn 
+
+p_mouse_multi_led_blink_timer:
+050d 6800cb25 fetch 1 ,mem_mouse_multi_led_blink_enable 
+050e 207a0000 rtn blank 
+050f 20200518 branch p_mouse_multi_led_type_blink 
+
+p_mouse_discovery_multi_led_blink:
+0510 704b3000 jam 0 ,mem_mouse_multi_led_blink_poweron3s_flag 
+0511 704b2b05 jam 5 ,mem_mouse_multi_led_blink_timer_init 
+0512 704b2e00 jam 0 ,mem_mouse_multi_led_blink_count_limited 
+0513 704b2d01 jam 1 ,mem_mouse_multi_led_blink_count 
+
+p_mouse_multi_led_blink_enable:
+0514 704b2c05 jam 5 ,mem_mouse_multi_led_blink_timer 
+0515 704b2501 jam on ,mem_mouse_multi_led_blink_enable 
+0516 704b2801 jam multi_led_blink ,mem_mouse_multi_led_type 
+0517 20600000 rtn 
+
+p_mouse_multi_led_type_blink:
+0518 da604b2c arg mem_mouse_multi_led_blink_timer ,regc 
+0519 da40051b arg p_mouse_multi_led_type_blink_timeout ,regb 
+051a 2020336d branch timer_single_step 
+
+p_mouse_multi_led_type_blink_timeout:
+051b 6800cb2b fetch 1 ,mem_mouse_multi_led_blink_timer_init 
+051c 6000cb2c store 1 ,mem_mouse_multi_led_blink_timer 
+051d 6800cb2e fetch 1 ,mem_mouse_multi_led_blink_count_limited 
+051e 203a0523 branch p_mouse_multi_led_blink_count_no_limited ,blank 
+051f 6800cb2d fetch 1 ,mem_mouse_multi_led_blink_count 
+0520 203a0533 branch p_mouse_multi_led_blink_off ,blank 
+0521 1fe0ffff increase -1 ,pdata 
+0522 6000cb2d store 1 ,mem_mouse_multi_led_blink_count 
+
+p_mouse_multi_led_blink_count_no_limited:
+0523 6800cb27 fetch 1 ,mem_mouse_multi_led_state 
+0524 c0008535 beq on ,p_mouse_multi_led_off 
+
+p_mouse_multi_led_on:
+0525 704b2701 jam on ,mem_mouse_multi_led_state 
+0526 6800c720 fetch 1 ,mem_device_flag 
+0527 c000852d beq mode_bt_device1 ,p_mouse_multi_down_led_on 
+
+p_mouse_multi_up_led_on:
+0528 6808cb26 fetcht 1 ,mem_mouse_multi_led_gpio 
+0529 79200407 set1 gpio_active_bit ,temp 
+052a 2040680e call gpio_config_output 
+052b 6808cb26 fetcht 1 ,mem_mouse_multi_led_gpio 
+052c 20206829 branch gpio_out_active 
+
+p_mouse_multi_down_led_on:
+052d 6808cb26 fetcht 1 ,mem_mouse_multi_led_gpio 
+052e 2040680e call gpio_config_output 
+052f 6808cb26 fetcht 1 ,mem_mouse_multi_led_gpio 
+0530 20206825 branch gpio_out_inactive 
+
+p_mouse_discovey_led_blink_off:
+0531 6800cb30 fetch 1 ,mem_mouse_multi_led_blink_poweron3s_flag 
+0532 247a0000 nrtn blank 
+
+p_mouse_multi_led_blink_off:
+0533 58000000 setarg 0 
+0534 6001cb2c store 3 ,mem_mouse_multi_led_blink_timer 
+
+p_mouse_multi_led_off:
+0535 6800cb2d fetch 1 ,mem_mouse_multi_led_blink_count 
+0536 243a053a nbranch p_mouse_multi_led_off_wait_blink_over ,blank 
+0537 704b3000 jam 0 ,mem_mouse_multi_led_blink_poweron3s_flag 
+0538 704b2500 jam 0 ,mem_mouse_multi_led_blink_enable 
+0539 704b2800 jam 0 ,mem_mouse_multi_led_type 
+
+p_mouse_multi_led_off_wait_blink_over:
+053a 704b2900 jam 0 ,mem_mouse_multi_led_on_timer 
+053b 704b2700 jam off ,mem_mouse_multi_led_state 
+
+p_mouse_multi_led_gpio_set_float:
+053c 6808cb26 fetcht 1 ,mem_mouse_multi_led_gpio 
+
+p_mouse_set_gpio_suspend:
+053d 793f8407 set0 gpio_active_bit ,temp 
+053e 20206806 branch gpio_set_high_impedance 
+
+p_mouse_mode_bt_device1_multi_led_blink3s:
+053f 704b3001 jam 1 ,mem_mouse_multi_led_blink_poweron3s_flag 
+
+p_mouse_mode_24g_device_multi_led_blink3s:
+0540 704b2d1b jam 27 ,mem_mouse_multi_led_blink_count 
+0541 704b2b01 jam 1 ,mem_mouse_multi_led_blink_timer_init 
+0542 20200544 branch p_mouse_dpi_multi_led_blink + 1 
+
+p_mouse_dpi_multi_led_blink:
+0543 704b2b05 jam 5 ,mem_mouse_multi_led_blink_timer_init 
+0544 704b2e01 jam 1 ,mem_mouse_multi_led_blink_count_limited 
+0545 20200514 branch p_mouse_multi_led_blink_enable 
+
+p_mouse_seting_dpi:
+
+p_mouse_seting_sensor_type:
+0546 6800c6e0 fetch 1 ,mem_config_sensor_type 
+0547 c0030553 beq p3065_xy ,p_mouse_seting_3065xy_dpi 
+0548 c0038553 beq mx8650 ,p_mouse_seting_3065xy_dpi 
+0549 c0010560 beq ka8 ,p_mouse_seting_ka8_dpi 
+
+p_mouse_seting_3205_dpi:
+054a 6800c77a fetch 1 ,mem_mouse_dpi 
+054b 1fe67c01 sub pdata ,mouse_dpi_level2 ,null 
+054c 20428551 call p_mouse_3205_dpi_recount ,zero 
+054d 6800c77a fetch 1 ,mem_mouse_dpi 
+054e c0003d8a beq mouse_dpi_level1 ,mouse_set_cpi1 
+054f c001bd8e beq mouse_dpi_level4 ,mouse_set_cpi4 
+0550 20203d8c branch mouse_set_cpi3 
+
+p_mouse_3205_dpi_recount:
+0551 70477a02 jam mouse_dpi_level3 ,mem_mouse_dpi 
+0552 20600000 rtn 
+
+p_mouse_seting_3065xy_dpi:
+0553 6800c77a fetch 1 ,mem_mouse_dpi 
+0554 1fe67c01 sub pdata ,mouse_dpi_level2 ,null 
+0555 20428551 call p_mouse_3205_dpi_recount ,zero 
+0556 6800c77a fetch 1 ,mem_mouse_dpi 
+0557 c000055c beq mouse_dpi_level1 ,p_mouse_3065xy_set_cpi1 
+0558 c001855e beq mouse_dpi_level4 ,p_mouse_3065xy_set_cpi4 
+
+p_mouse_3065xy_set_cpi3:
+0559 6800cb39 fetch 1 ,mem_3065xy_dpi_3 
+
+p_mouse_dpi_store:
+055a 6000c6b5 store 1 ,mem_mouse_cpi_count 
+055b 20203dc1 branch mouse_p3205_dpi + 3 
+
+p_mouse_3065xy_set_cpi1:
+055c 6800cb37 fetch 1 ,mem_3065xy_dpi_1 
+055d 2020055a branch p_mouse_dpi_store 
+
+p_mouse_3065xy_set_cpi4:
+055e 6800cb3a fetch 1 ,mem_3065xy_dpi_4 
+055f 2020055a branch p_mouse_dpi_store 
+
+p_mouse_seting_ka8_dpi:
+0560 6800c77a fetch 1 ,mem_mouse_dpi 
+0561 205a0551 call p_mouse_3205_dpi_recount ,blank 
+0562 6800c77a fetch 1 ,mem_mouse_dpi 
+0563 c000bd88 beq mouse_dpi_level2 ,mouse_set_cpi2 
+0564 c0018566 beq mouse_dpi_level4 ,p_mouse_ka8_set_cpi3 
+0565 20203d8e branch mouse_set_cpi4 
+
+p_mouse_ka8_set_cpi3:
+0566 58000005 setarg 5 
+0567 20203dbe branch mouse_p3205_dpi 
+
+p_mouse_motion:
+0568 78547c00 disable user 
+0569 58000000 setarg 0 
+056a 6003469b store 6 ,mem_mouse_x 
+056b 20400592 call p_mouse_cheak_sensor_data 
+056c 20404079 call mouse_zwheel 
+056d 2040407e call mouse_t_zwheel 
+056e 20400572 call p_mouse_key 
+056f 243407a3 nbranch p_drawing_optima_init ,user 
+0570 2040079a call p_drawing_optima 
+0571 20203fa0 branch mouse_motion + 9 
+
+p_mouse_key:
+0572 20400574 call p_mouse_check_key_gpio 
+0573 2020409a branch mouse_key + 1 
+
+p_mouse_check_key_gpio:
+0574 da200000 arg 0 ,rega 
+0575 20400577 call p_mouse_check_lkey_gpio 
+0576 2020408e branch mouse_check_key_gpio_output 
+
+p_mouse_check_lkey_gpio:
+0577 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
+0578 20400587 call p_gpio_set_input_pu 
+0579 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
+057a 2040681d call gpio_get_bit 
+057b 7920a200 setflag true ,0 ,rega 
+
+p_mouse_check_rkey_gpio:
+057c 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
+057d 20400587 call p_gpio_set_input_pu 
+057e 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
+057f 2040681d call gpio_get_bit 
+0580 7920a201 setflag true ,1 ,rega 
+
+p_mouse_check_mkey_gpio:
+0581 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
+0582 20400587 call p_gpio_set_input_pu 
+0583 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
+0584 2040681d call gpio_get_bit 
+0585 7920a202 setflag true ,2 ,rega 
+0586 20600000 rtn 
+
+p_gpio_set_input_pu:
+0587 79200407 set1 gpio_active_bit ,temp 
+0588 d8a08078 arg core_gpio_pu0 ,contw 
+0589 20406830 call gpio_set_bit 
+058a 793f8407 set0 gpio_active_bit ,temp 
+058b 20200590 branch p_gpio_set_input_pd4 
+
+p_gpio_set_input_pd:
+058c 793f8407 set0 gpio_active_bit ,temp 
+058d d8a08078 arg core_gpio_pu0 ,contw 
+058e 20406830 call gpio_set_bit 
+058f 79200407 set1 gpio_active_bit ,temp 
+
+p_gpio_set_input_pd4:
+0590 d8a0807c arg core_gpio_pd0 ,contw 
+0591 2020680a branch gpio_set_high_impedance + 4 
+
+p_mouse_cheak_sensor_data:
+
+p_mouse_p32xx_sensor_motion:
+0592 20403fc0 call mouse_clear_sensor_data 
+0593 78547c00 disable user 
+0594 20203fe7 branch mouse_p32xx_sensor_motion_2 
+
+p_mouse_bb_event_discovery_btn:
+0595 2040050a call p_mouse_null_enter_hibernate_disable 
+0596 280ffe26 isolate1 mark_24g ,mark 
+0597 2040820e call p_g24_check_51cmd_stop_24g ,true 
+0598 7046b400 jam 0 ,mem_mouse_send_blank_timer 
+0599 6800cb72 fetch 1 ,mem_mouse_le_not_tx_disconn 
+059a 205a4386 call mouse_disconnect ,blank 
+059b 58000000 setarg 0 
+059c 600146b0 store 2 ,mem_mouse_no_data_timer 
+059d 2020426f branch mouse_bb_event_discovery_btn + 3 
+
+p_mouse_start_discovery:
+059e 7011c530 jam zcode_30 ,mem_zcode_temp_param0 
+059f 2020077b branch p_zcode_entrance 
+
+p_mouse_stop_discovery:
+05a0 20400531 call p_mouse_discovey_led_blink_off 
+05a1 704b0001 jam 1 ,mem_mouse_init_sensor_reset_flag 
+05a2 2040038e call p_mouse_sensor_poweron 
+05a3 202042cb branch mouse_stop_discovery + 1 
+
+p_le_slave_match:
+05a4 6800c50f fetch 1 ,mem_le_md_count 
+05a5 1fe0fe01 pincrease 1 
+05a6 6000c50f store 1 ,mem_le_md_count 
+05a7 c0065395 beq le_md_max_count ,le_slave_cont 
+05a8 204055aa call le_acknowledge 
+05a9 2040561e call le_prepare_tx 
+05aa 2040071e call power_ctrl_start 
+05ab 2020538f branch le_slave_match + 7 
+
+p_le_next_adv_channel:
+05ac 68008016 fetch 1 ,mem_le_ch_mapped 
+05ad 1fe0fe01 increase 1 ,pdata 
+05ae 60008016 store 1 ,mem_le_ch_mapped 
+05af c1940000 rtnne 40 
+05b0 70001625 jam 37 ,mem_le_ch_mapped 
+05b1 20600000 rtn 
+
+p_le_receive_skip:
+05b2 204029bb call save_rssi 
+05b3 2040006b call p_rssi_signal 
+05b4 202054a3 branch le_receive_skip + 2 
+
+p_le_update_param:
+05b5 7011c520 jam zcode_20 ,mem_zcode_temp_param0 
+05b6 2020077b branch p_zcode_entrance 
+
+p_le_update_channel_map:
+05b7 7011c521 jam zcode_21 ,mem_zcode_temp_param0 
+05b8 2020077b branch p_zcode_entrance 
+
+p_le_prepare_tx:
+05b9 68008456 fetch 1 ,mem_le_arq 
+05ba c28285cd bbit1 wak ,p_le_prepare_tx_wak 
+05bb 20400710 call power_ctrl_pac_succ_incrs 
+05bc 6800c78e fetch 1 ,mem_empty_count 
+05bd 243a05c3 nbranch p_le_send_empyt ,blank 
+05be 6800843f fetch 1 ,mem_le_state 
+05bf c30205c7 bbit0 lestate_encryption ,p_le_tx_4 
+05c0 680082da fetch 1 ,mem_le_rxbuf + 1 
+05c1 203a05c7 branch p_le_tx_4 ,blank 
+05c2 20205664 branch le_send_empty 
+
+p_le_send_empyt:
+05c3 6800c78e fetch 1 ,mem_empty_count 
+05c4 1fe0ffff increase -1 ,pdata 
+05c5 6000c78e store 1 ,mem_empty_count 
+05c6 20205664 branch le_send_empty 
+
+p_le_tx_4:
+05c7 6800c4c4 fetch 1 ,mem_le_pairing_state 
+05c8 c08285ca bne flag_le_pairing_after_auth ,p_in_le_tx_4 
+05c9 70478e03 jam 3 ,mem_empty_count 
+
+p_in_le_tx_4:
+05ca 20405892 call le_fifo_check_nearly_full 
+05cb 205a03b5 call p_mouse_data_pull ,blank 
+05cc 20205622 branch le_prepare_tx + 4 
+
+p_le_prepare_tx_wak:
+05cd 204005cf call p_le_check_tx_retransmit_setmd 
+05ce 202005db branch p_le_power_ctrl_pac_succ_decrs 
+
+p_le_check_tx_retransmit_setmd:
+05cf 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+05d0 1fe17e03 and pdata ,0x03 ,pdata 
+05d1 c1818000 rtnne 0x03 
+05d2 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
+05d3 207a0000 rtn blank 
+05d4 6800c3dd fetch 1 ,mem_le_txlen 
+05d5 207a0000 rtn blank 
+05d6 6800c3dc fetch 1 ,mem_le_txheader 
+05d7 79207e04 set1 md ,pdata 
+05d8 6000c3dc store 1 ,mem_le_txheader 
+05d9 20405650 call le_set_md 
+05da 20600000 rtn 
+
+p_le_power_ctrl_pac_succ_decrs:
+05db 20200714 branch power_ctrl_pac_succ_decrs 
+
+p_mouse_le_reconn_write_enable_timer_reinit:
+05dc 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
+05dd 207a0000 rtn blank 
+05de 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+05df 1fe17e03 and pdata ,0x03 ,pdata 
+05e0 c1018000 rtneq 0x03 
+05e1 7046c602 jam 2 ,mem_le_start_encrypt_timer 
+05e2 20600000 rtn 
+
+p_le_parse:
+05e3 c6078000 rtnmark1 mark_old_packet 
+05e4 20405890 call le_fifo_check_full 
+05e5 247a0000 nrtn blank 
+05e6 680082d9 fetch 1 ,mem_le_rxbuf 
+05e7 1fe17e03 and pdata ,0x3 ,pdata 
+05e8 6000c50c store 1 ,mem_le_packet_llid 
+05e9 e8c08000 ifetch 1 ,contr 
+05ea 1fe17e1f and pdata ,0x1f ,pdata 
+05eb 6000c50b store 1 ,mem_le_packet_size 
+05ec 207a0000 rtn blank 
+05ed 18c27e00 copy contr ,pdata 
+05ee 6001450d store 2 ,mem_le_payload_ptr 
+05ef 6800c50c fetch 1 ,mem_le_packet_llid 
+05f0 c00185f2 beq llid_le_ll ,p_le_parse_ll 
+05f1 2020568d branch le_parse_l2cap 
+
+p_le_parse_ll:
+05f2 680082db fetch 1 ,mem_le_rxbuf + 2 
+05f3 c00005f6 beq ll_connection_update_req ,p_le_parse_connection_update_req 
+05f4 c00085fd beq ll_channel_map_req ,p_le_parse_channel_map_req 
+05f5 20205c65 branch le_parse_ll + 1 
+
+p_le_parse_connection_update_req:
+05f6 20405c7b call le_parse_connection_update_req 
+05f7 6800cb5c fetch 1 ,mem_mouse_le_updata_not_accepted_flag 
+05f8 207a0000 rtn blank 
+
+p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset:
+05f9 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
+05fa 6000c172 store 1 ,mem_lpm_mult 
+05fb 6000c7c5 store 1 ,mem_lpm_mult_init 
+05fc 20600000 rtn 
+
+p_le_parse_channel_map_req:
+05fd e8c28000 ifetch 5 ,contr 
+05fe 6002c3ce store 5 ,mem_le_new_map 
+05ff e8c10000 ifetch 2 ,contr 
+0600 6001045f store 2 ,mem_le_instant 
+0601 20205c8a branch le_parse_channel_map_req + 7 
+
+p_le_parse_l2cap:
+0602 e8c10000 ifetch 2 ,contr 
+0603 c0020606 beq le_l2cap_cid_att ,p_le_parse_att 
+0604 c0030632 beq le_l2cap_cid_smp ,p_le_parse_smp 
+0605 20205698 branch le_parse_l2cap + 11 
+
+p_le_parse_att:
+0606 20407ea5 call store_contr 
+0607 204005dc call p_mouse_le_reconn_write_enable_timer_reinit 
+0608 20407e9f call get_contr 
+0609 e8c18000 ifetch 3 ,contr 
+060a 60018477 store 3 ,mem_le_att_opcode 
+060b c0080615 beq attop_read_by_group_type_request ,p_le_parse_att_read_by_group_type_request 
+060c 1fec8400 rshift8 pdata ,temp 
+060d 18467c24 sub temp ,0x24 ,null 
+060e 20210623 branch p_le_parse_att1 ,positive 
+060f d84047c6 arg mem_mouse_le_uuid_sup ,temp 
+0610 600944bc storet 2 ,mem_ui_le_uuid_table 
+0611 204058ad call le_parse_att + 2 
+0612 58008e7a setarg 0x8e7a 
+0613 600144bc store 2 ,mem_ui_le_uuid_table 
+0614 20600000 rtn 
+
+p_le_parse_att_read_by_group_type_request:
+0615 204059fa call le_parse_att_read_by_group_type_request 
+0616 20405879 call le_fifo_get_last_tx_ptr 
+0617 18c08c07 increase 7 ,contr 
+0618 e8c08000 ifetch 1 ,contr 
+0619 c1888000 rtnne attop_read_by_group_type_response 
+061a 18c08c05 increase 5 ,contr 
+061b e8c10000 ifetch 2 ,contr 
+061c d8401812 arg uuid_service_hids ,temp 
+061d 98467c00 isub temp ,null 
+061e 24628000 nrtn zero 
+061f 18c08dfc increase -4 ,contr 
+0620 5800002b setarg 0x2b 
+0621 e0c10000 istore 2 ,contr 
+0622 20600000 rtn 
+
+p_le_parse_att1:
+0623 c0050625 beq attop_read_request ,p_le_parse_att_read_request 
+0624 202058ad branch le_parse_att + 2 
+
+p_le_parse_att_read_request:
+0625 68090478 fetcht 2 ,mem_le_att_handle 
+0626 6800c4e9 fetch 1 ,mem_le_configuration 
+0627 c281862c bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
+
+p_le_send_att_read_response:
+0628 68010478 fetch 2 ,mem_le_att_handle 
+0629 c009da76 beq 0x13 ,le_send_att_error_response_notfound 
+062a 68090478 fetcht 2 ,mem_le_att_handle 
+062b 202059bf branch le_send_att_read_response 
+
+p_le_send_att_read_response_check_auth:
+062c 680144fa fetch 2 ,mem_le_pairing_handle 
+062d 98467c00 isub temp ,null 
+062e 24228628 nbranch p_le_send_att_read_response ,zero 
+062f 20405a42 call le_check_encrypt_state 
+0630 24340628 nbranch p_le_send_att_read_response ,user 
+0631 202059e2 branch le_send_att_read_response_check_auth + 5 
+
+p_le_parse_smp:
+0632 e8c08000 ifetch 1 ,contr 
+0633 c0008636 beq smp_pairing_request ,p_le_parse_smp_pairing_request 
+0634 c0028638 beq smp_pairing_failed ,p_le_parse_smp_pairing_failed 
+0635 20205af5 branch le_parse_smp + 1 
+
+p_le_parse_smp_pairing_request:
+0636 704b6901 jam 1 ,mem_le_send_security_request_flag 
+0637 20205b09 branch le_parse_smp_pairing_request 
+
+p_le_parse_smp_pairing_failed:
+0638 7011c582 jam zcode_82 ,mem_zcode_temp_param0 
+0639 2020077b branch p_zcode_entrance 
+
+p_le_adv_not_match:
+063a 68008016 fetch 1 ,mem_le_ch_mapped 
+063b c093d6f2 bne 39 ,le_adv_loop 
+063c 20400640 call p_le_adv_random_delay 
+063d d8e00000 arg le_adv_interval_timer ,queue 
+063e 68014482 fetch 2 ,mem_le_adv_interval 
+063f 20207f08 branch timer_init 
+
+p_le_adv_random_delay:
+0640 180a7e00 random pdata 
+0641 d84001ff arg 0x1ff ,temp 
+0642 98417e00 iand temp ,pdata 
+0643 1fe0fefa add pdata ,250 ,pdata 
+0644 20203cbe branch delay 
+
+p_le_lpm_setmult:
+0645 7855fc00 disable wake 
+0646 20370648 branch p_le_lpm_set_mult_attempt ,attempt 
+0647 2436d806 nbranch le_lpm_lost ,match 
+
+p_le_lpm_set_mult_attempt:
+0648 20402bcb call lpm_match 
+0649 680140c1 fetch 2 ,mem_rx_window_sniff 
+064a 6001044d store 2 ,mem_le_receive_window 
+064b 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+064c c081abde bne 3 ,lpm_mult_short 
+064d 202057fb branch le_lpm_set_mult_attempt + 3 
+
+p_le_mouse_bb_event_connect_complete:
+064e 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
+064f 247a0000 nrtn blank 
+0650 68008478 fetch 1 ,mem_le_att_handle 
+0651 1fe67e1a sub pdata ,26 ,pdata 
+0652 24628000 nrtn zero 
+0653 7046c600 jam 0 ,mem_le_start_encrypt_timer 
+0654 20203d60 branch mouse_le_write_enable 
+
+p_twspi_reset:
+0655 68108077 hfetch 1 ,core_gpio_out3 
+0656 1fe17efd and_into 0xfd ,pdata 
+0657 60108077 hstore 1 ,core_gpio_out3 
+0658 68188073 hfetcht 1 ,core_gpio_oe3 
+0659 18418402 or_into 0x2 ,temp 
+065a 60188073 hstoret 1 ,core_gpio_oe3 
+065b 204063ee call twspi_disable 
+065c 184104fd and_into 0xfd ,temp 
+065d 2000000d nop 13 
+065e 20400662 call p_twspi_enable 
+065f 60188073 hstoret 1 ,core_gpio_oe3 
+0660 20600000 rtn 
+
+p_spid_init:
+0661 204064dd call spid_init_common 
+
+p_twspi_enable:
+0662 68108081 hfetch 1 ,core_gpio_sel1 
+0663 79207e00 set1 0 ,pdata 
+0664 793ffe01 set0 1 ,pdata 
+0665 793ffe03 set0 3 ,pdata 
+0666 60108081 hstore 1 ,core_gpio_sel1 
+0667 20600000 rtn 
+
+p_page_wait_fhs_reply_ok:
+0668 7011c500 jam zcode_00 ,mem_zcode_temp_param0 
+0669 2020077b branch p_zcode_entrance 
+
+p_role_switch_master:
+066a 204021c9 call role_switch_check 
+066b 24740000 nrtn user 
+
+p_wait_role_switch_anchor:
+066c 78547c00 disable user 
+066d 70001120 jam param_newconnto ,mem_newconnto_counter 
+066e 793f800b set0 mark_fhs_already_good ,mark 
+066f 793f802d set0 mark_role_switch_receive_fhs ,mark 
+
+p_roles_waitfhs_loop:
+0670 20402a4f call rf_setup_time_master_slot 
+0671 204022e6 call master_recv_packet 
+0672 c5058677 bmark1 mark_fhs_already_good ,p_roles_replyto_fhs 
+0673 20402455 call new_conn_timeout 
+0674 243a0670 nbranch p_roles_waitfhs_loop ,blank 
+0675 c516867f bmark1 mark_role_switch_receive_fhs ,p_roles_replyto_fhs1 
+0676 202021ec branch role_switch_fail_master 
+
+p_roles_replyto_fhs:
+0677 20402a4d call rf_setup_time_slave_slot 
+0678 d8200010 arg type_id ,type 
+0679 204022dc call master_send_packet 
+067a 7920002d set1 mark_role_switch_receive_fhs ,mark 
+067b 793f800b set0 mark_fhs_already_good ,mark 
+067c 18000801 force 1 ,am_addr 
+067d 70001102 jam 2 ,mem_newconnto_counter 
+067e 20200670 branch p_roles_waitfhs_loop 
+
+p_roles_replyto_fhs1:
+067f 68020165 fetch 4 ,mem_clke_bt 
+0680 1fe0fe08 pincrease 8 
+0681 60020165 store 4 ,mem_clke_bt 
+0682 202021f8 branch roles_replyto_fhs + 4 
+
+p_process_dmh:
+0683 c516264d bmark1 mark_first_packet ,end_of_packet 
+0684 2020258f branch process_dmh + 1 
+
+p_quit_connection_cont:
+0685 204033af call app_disconn_reason_collect_bt 
+0686 204026e9 call sniff_exit 
+0687 700a9902 jam bt_evt_bb_disconnected ,mem_fifo_temp 
+0688 20407d86 call ui_ipc_send_event 
+0689 20405cf7 call init_lmp_work 
+068a 20404d6b call l2cap_init_work 
+068b 2020246e branch quit_connection_cont + 8 
+
+p_prepare_tx:
+068c 68008030 fetch 1 ,mem_state 
+068d 2feffe00 isolate1 state_inconn ,pdata 
+068e 20408690 call p_bt_power_ctrl ,true 
+068f 2020248a branch prepare_tx + 1 
+
+p_bt_power_ctrl:
+0690 68008047 fetch 1 ,mem_arq 
+0691 2feffe03 isolate1 wack ,pdata 
+0692 20408714 call power_ctrl_pac_succ_decrs ,true 
+0693 24408710 ncall power_ctrl_pac_succ_incrs ,true 
+0694 2020071e branch power_ctrl_start 
+
+p_slave_conn_recv_packet:
+0695 204024f0 call slave_receive_master_slot 
+0696 242c28f9 nbranch shutdown_radio ,sync 
+0697 204029bb call save_rssi 
+0698 2040006b call p_rssi_signal 
+0699 20202518 branch slave_conn_recv_packet + 4 
+
+p_lpm_dispatch:
+069a c6130000 rtnmark1 mark_24g 
+069b 20402afa call lpo_calibration 
+069c 6801c16f fetch 3 ,mem_clks_per_lpo 
+069d 207a0000 rtn blank 
+069e 6800c091 fetch 1 ,mem_lpm_mode 
+069f 207a0000 rtn blank 
+06a0 6800c65a fetch 1 ,mem_ssp_enable 
+06a1 203a06a4 branch p_lpm_dispatch_next ,blank 
+06a2 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
+06a3 207a0000 rtn blank 
+
+p_lpm_dispatch_next:
+06a4 6800c4c0 fetch 1 ,mem_le_sc_calc 
+06a5 247a0000 nrtn blank 
+06a6 20402c3a call lpm_check_wake_lock 
+06a7 247a0000 nrtn blank 
+06a8 6800c040 fetch 1 ,mem_context 
+06a9 2fe00e03 compare 3 ,pdata ,0x7 
+06aa 2420ab9d nbranch lpm_dispatch_unconn ,true 
+06ab 68014042 fetch 2 ,mem_context + coffset_tsniff 
+06ac d840ffff arg 0xffff ,temp 
+06ad 98467c00 isub temp ,null 
+06ae 20628000 rtn zero 
+06af 20202b7d branch lpm_dispatch_next + 9 
+
+p_lpm_set_mult:
+06b0 7855fc00 disable wake 
+06b1 68008030 fetch 1 ,mem_state 
+06b2 c4008000 rtnbit0 state_insniff 
+06b3 2436abd0 nbranch lpm_not_match ,match 
+06b4 20402bcb call lpm_match 
+06b5 680140c1 fetch 2 ,mem_rx_window_sniff 
+06b6 6001003e store 2 ,mem_rx_window 
+06b7 68008047 fetch 1 ,mem_arq 
+06b8 c281abde bbit1 wack ,lpm_mult_short 
+06b9 c586abde bmark0 mark_lpm_mult_enable ,lpm_mult_short 
+06ba 20405274 call l2cap_malloc_is_fifo_empty 
+06bb 243a2bde nbranch lpm_mult_short ,blank 
+06bc 205a06be call p_lpm_set_attemp_timeout ,blank 
+06bd 20202bbe branch lpm_set_mult + 13 
+
+p_lpm_set_attemp_timeout:
+06be 70008a01 jam 1 ,mem_current_sniff_attempt 
+06bf 70008b00 jam 0 ,mem_current_sniff_timeout 
+06c0 20600000 rtn 
+
+p_mouse_bb_disconnected:
+06c1 7011c501 jam zcode_01 ,mem_zcode_temp_param0 
+06c2 2020077b branch p_zcode_entrance 
+
+p_hid_rx_process:
+06c3 7011c502 jam zcode_02 ,mem_zcode_temp_param0 
+06c4 2020077b branch p_zcode_entrance 
+
+p_parse_lmp_accepted:
+06c5 68008552 fetch 1 ,mem_rxbuf + 1 
+06c6 600084c9 store 1 ,mem_lmi_accepted_opcode 
+06c7 c00986c9 beq lmp_switch_req ,p_parse_lmp_accepted_switch 
+06c8 20205db4 branch parse_lmp_accepted + 3 
+
+p_parse_lmp_accepted_switch:
+06c9 20405dcf call parse_lmp_accepted_switch 
+06ca 704b0101 jam 1 ,mem_bt_rcvd_switch_req_accept 
+06cb 6800cb03 fetch 1 ,mem_bt_send_lmp_setup_complete 
+06cc 207a0000 rtn blank 
+06cd 704b0302 jam 2 ,mem_bt_send_lmp_setup_complete 
+06ce 20600000 rtn 
+
+p_send_lmp:
+06cf 7011c510 jam zcode_10 ,mem_zcode_temp_param0 
+06d0 2020077b branch p_zcode_entrance 
+
+p_process_conn_sm:
+06d1 204062bc call lmo_fifo_check 
+06d2 247a0000 nrtn blank 
+
+p_process_conn_sm_continue:
+06d3 68008055 fetch 1 ,mem_conn_sm 
+06d4 207a0000 rtn blank 
+06d5 c00206f3 beq conn_sm_send_conn_req ,p_host_create_conn_send_conn_req 
+06d6 c00806d8 beq conn_sm_wait_switch_after_host_connection ,p_host_creat_conn_wait_switch 
+06d7 20206320 branch process_conn_sm_continue + 2 
+
+p_host_creat_conn_wait_switch:
+06d8 6800c55b fetch 1 ,mem_switch_flag 
+06d9 c1000000 rtneq switch_flag_init 
+06da c00086dc beq switch_flag_accept ,p_host_create_conn_switch_accept 
+06db 2020635f branch host_creat_conn_wait_switch + 3 
+
+p_host_create_conn_switch_accept:
+06dc 20748000 rtn master 
+
+p_host_create_conn_auth_pair:
+06dd 6800816d fetch 1 ,mem_connection_options 
+06de c28006e0 bbit1 connection_auth ,p_host_create_conn_auth_pair_true 
+06df 20206399 branch host_create_conn_auth_pair + 1 
+
+p_host_create_conn_auth_pair_true:
+06e0 6800cb03 fetch 1 ,mem_bt_send_lmp_setup_complete 
+06e1 c000e39d beq 1 ,host_create_conn_auth_pair_true 
+06e2 6800c1bd fetch 1 ,mem_link_key_exists 
+06e3 203a63a9 branch host_create_conn_auth_pair_nokey ,blank 
+06e4 680084d1 fetch 1 ,mem_lmp_conn_state 
+06e5 c4018000 rtnbit0 sent_setup_complete 
+06e6 c4010000 rtnbit0 received_setup_complete 
+06e7 6800cb02 fetch 1 ,mem_bt_send_max_slot_req_accept_after_switch 
+06e8 207a0000 rtn blank 
+06e9 704b0200 jam 0 ,mem_bt_send_max_slot_req_accept_after_switch 
+06ea 680204e9 fetch 4 ,mem_aurand_send_delay_time 
+06eb d8400014 arg 20 ,temp 
+06ec 98408400 iadd temp ,temp 
+06ed 1c427e00 copy clkn_bt ,pdata 
+06ee 98467c00 isub temp ,null 
+06ef 242106f1 nbranch p_bt_send_max_slot_req_accept_after_switch_wait ,positive 
+06f0 20206349 branch host_create_conn_auth 
+
+p_bt_send_max_slot_req_accept_after_switch_wait:
+06f1 704b0201 jam 1 ,mem_bt_send_max_slot_req_accept_after_switch 
+06f2 20600000 rtn 
+
+p_host_create_conn_send_conn_req:
+06f3 70480914 jam 20 ,mem_mouse_send_switch_req_timer 
+06f4 2020636f branch host_create_conn_send_conn_req 
+
+p_check_51cmd_once_continue:
+06f5 204062bc call lmo_fifo_check 
+06f6 243a7ddb nbranch check_51cmd_restore ,blank 
+06f7 68008a99 fetch 1 ,mem_fifo_temp 
+06f8 c584fdd6 bmark0 mark_context ,check_51cmd_check_idle 
+06f9 c00f86fd beq bt_cmd_store_reconn_info_le ,p_flash_store_le_reconn_info 
+06fa c0100700 beq bt_cmd_store_reconn_info_bt ,p_flash_store_bd_reconn_info 
+06fb c009070a beq bt_cmd_le_update_conn ,p_check_51cmd_ble_update_connect_param 
+06fc 20207dca branch check_51cmd_once_continue + 2 
+
+p_flash_store_le_reconn_info:
+06fd 70018534 jam rec_4_mode ,mem_record_bt_mode 
+06fe 6803044f fetch 6 ,mem_le_plap 
+06ff 20200702 branch p_flash_store_reconn_info 
+
+p_flash_store_bd_reconn_info:
+0700 70018533 jam rec_3_mode ,mem_record_bt_mode 
+0701 68030040 fetch 6 ,mem_plap 
+
+p_flash_store_reconn_info:
+0702 60030186 store 6 ,mem_temp_lap 
+
+p_mouse_store_remote_bdaddr:
+0703 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+0704 c4038000 rtnbit0 mouse_store_eeprom_flag 
+0705 d8e00007 arg mouse_store_eeprom_flag ,queue 
+0706 204043d2 call mouse_disable_function_flag 
+0707 204042e8 call mouse_check_device_addr 
+
+p_mouse_unplug_clean_bdaddr:
+0708 204042fb call mouse_before_store_reconn_info 
+0709 20200317 branch p_mouse_store_flash_device_info 
+
+p_check_51cmd_ble_update_connect_param:
+070a 20405890 call le_fifo_check_full 
+070b 247a0000 nrtn blank 
+070c 20205abf branch le_l2cap_tx_update_req 
+
+power_ctrl_pac_succ_cnt_init:
+070d 704d3501 jam 1 ,mem_power_ctrl_level 
+070e 704d3200 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+070f 20600000 rtn 
+
+power_ctrl_pac_succ_incrs:
+0710 6800cd32 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0711 1fe0fe01 increase 1 ,pdata 
+0712 6000cd32 store 1 ,mem_power_ctrl_pac_succ_cnt 
+0713 20600000 rtn 
+
+power_ctrl_pac_succ_decrs:
+0714 6800cd32 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0715 1fe67c02 sub pdata ,2 ,null 
+0716 2441071c ncall power_ctrl_pac_succ_cnt_reinit ,positive 
+0717 6800cd32 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0718 c1000000 rtneq 0 
+0719 1fe0ffff increase -1 ,pdata 
+071a 6000cd32 store 1 ,mem_power_ctrl_pac_succ_cnt 
+071b 20600000 rtn 
+
+power_ctrl_pac_succ_cnt_reinit:
+071c 704d3203 jam 3 ,mem_power_ctrl_pac_succ_cnt 
+071d 20600000 rtn 
+
+power_ctrl_start:
+071e 68014682 fetch 2 ,mem_ui_state_map 
+071f c3858000 rtnbit1 ui_state_ble_adv 
+0720 c3838000 rtnbit1 ui_state_bt_reconnect 
+0721 c3830000 rtnbit1 ui_state_bt_discovery 
+0722 da204cbb arg mem_rssi_signal_buf ,rega 
+0723 204002b0 call p_rssi_average 
+0724 6008cd33 storet 1 ,mem_rssi_avg_received 
+0725 58000082 setarg rssi_dis_max_24g 
+0726 c5130728 bmark1 mark_24g ,power_ctrl_start_next 
+0727 58000080 setarg rssi_dis_max_ble 
+
+power_ctrl_start_next:
+0728 98467c00 isub temp ,null 
+0729 24210740 nbranch power_ctrl_txpower_incrs_force ,positive 
+072a 6800cd32 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+072b 1fe67c02 sub pdata ,2 ,null 
+072c 24210730 nbranch power_ctrl_txpower_decrs_check ,positive 
+072d 6800cd32 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+072e c0000741 beq 0 ,power_ctrl_txpower_incrs 
+072f 20600000 rtn 
+
+power_ctrl_txpower_decrs_check:
+0730 6800cd32 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0731 c1900000 rtnne 32 
+0732 704d3200 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+
+power_ctrl_txpower_decrs:
+0733 6808cd33 fetcht 1 ,mem_rssi_avg_received 
+0734 58000077 setarg rssi_dis_min_24g 
+0735 c5130737 bmark1 mark_24g ,power_ctrl_txpower_decrs_next 
+0736 58000075 setarg rssi_dis_min_ble 
+
+power_ctrl_txpower_decrs_next:
+0737 98467c00 isub temp ,null 
+0738 24610000 nrtn positive 
+0739 6800cd35 fetch 1 ,mem_power_ctrl_level 
+073a c0000748 beq 0 ,power_ctrl_decrs_level0 
+073b 1fe0ffff increase -1 ,pdata 
+073c 6000cd35 store 1 ,mem_power_ctrl_level 
+073d c0000748 beq 0 ,power_ctrl_decrs_level0 
+
+power_ctrl_decrs_level1:
+
+power_ctrl_incrs_level1:
+073e 7041de00 jam tx_power_0db ,mem_tx_power 
+073f 20600000 rtn 
+
+power_ctrl_txpower_incrs_force:
+0740 704d3200 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+
+power_ctrl_txpower_incrs:
+0741 6800cd35 fetch 1 ,mem_power_ctrl_level 
+0742 c0010746 beq 2 ,power_ctrl_incrs_level2 
+0743 1fe0fe01 increase 1 ,pdata 
+0744 6000cd35 store 1 ,mem_power_ctrl_level 
+0745 c000873e beq 1 ,power_ctrl_incrs_level1 
+
+power_ctrl_incrs_level2:
+0746 7041de02 jam tx_power_5db ,mem_tx_power 
+0747 20600000 rtn 
+
+power_ctrl_decrs_level0:
+0748 7041de04 jam tx_power_f5db ,mem_tx_power 
+0749 20600000 rtn 
+
+p_set_freq_tx:
+074a 60088017 storet 1 ,mem_last_freq 
+074b 1840a200 add temp ,0 ,rega 
+074c 20402981 call rf_write_freq 
+074d 58000500 setarg param_pll_setup 
+074e 20402a8f call sleep 
+
+p_rf_tx_enable:
+074f 70890601 jam 0x1 ,rfen_adc 
+0750 7089003c jam 0x3c ,rfen_rx 
+0751 708901e0 jam 0xe0 ,rfen_tx 
+0752 2000000a nop 10 
+0753 70890201 jam 0x01 ,rfen_mdm 
+0754 7089023d jam 0x3d ,rfen_mdm 
+0755 2000000a nop 10 
+0756 708903b7 jam 0xb7 ,rfen_sn 
+0757 2000000a nop 10 
+0758 7089027d jam 0x7d ,rfen_mdm 
+0759 6800c1de fetch 1 ,mem_tx_power 
+075a c0010762 beq tx_power_5db ,p_set_tx_power_5db 
+075b c0020767 beq tx_power_f5db ,p_set_tx_power_f5db 
+075c c0100776 beq tx_power_pair ,p_set_tx_power_pair 
+
+p_set_tx_power_0db:
+075d 2040076c call p_rx_low_sens 
+075e 708955d0 jam 0xd0 ,0x8955 
+075f 708956e0 jam 0xe0 ,0x8956 
+0760 7089586c jam 0x6c ,0x8958 
+0761 2020294b branch set_tx_power_0db 
+
+p_set_tx_power_5db:
+0762 20400771 call p_rx_high_sens 
+0763 708955d0 jam 0xd0 ,0x8955 
+0764 708956e0 jam 0xe0 ,0x8956 
+0765 7089583c jam 0x3c ,0x8958 
+0766 20202953 branch set_tx_power_5db 
+
+p_set_tx_power_f5db:
+0767 2040076c call p_rx_low_sens 
+0768 708955d0 jam 0xd0 ,0x8955 
+0769 708956c0 jam 0xc0 ,0x8956 
+076a 7089586c jam 0x6c ,0x8958 
+076b 2020295b branch set_tx_power_f5db 
+
+p_rx_low_sens:
+076c 70894c5b jam 0x5b ,0x894c 
+076d 70894d96 jam 0x96 ,0x894d 
+076e 70894e2c jam 0x2c ,0x894e 
+076f 70894f46 jam 0x46 ,0x894f 
+0770 20600000 rtn 
+
+p_rx_high_sens:
+0771 70894cfb jam 0xfb ,0x894c 
+0772 70894def jam 0xef ,0x894d 
+0773 70894eec jam 0xec ,0x894e 
+0774 70894f5e jam 0x5e ,0x894f 
+0775 20600000 rtn 
+
+p_set_tx_power_pair:
+0776 708956c2 jam 0xc2 ,0x8956 
+0777 708955d0 jam 0xd0 ,0x8955 
+0778 20600000 rtn 
+
+p_shutdown_radio:
+0779 18002a08 force 8 ,radio_ctrl 
+077a 202028fa branch shutdown_radio + 1 
+
+p_zcode_entrance:
+077b 680891c5 fetcht 1 ,mem_zcode_temp_param0 
+077c 18518400 rshift4 temp ,temp 
+077d 6800cb51 fetch 1 ,mem_zcode_current_number 
+077e 98467c00 isub temp ,null 
+077f 20228798 branch p_zcode_run ,zero 
+0780 6008cb51 storet 1 ,mem_zcode_current_number 
+0781 18408401 increase 1 ,temp 
+0782 58000100 setarg zcode_buff_size 
+0783 984f8400 imul32 temp ,temp 
+0784 6801cb52 fetch 3 ,mem_xip_flash_offset 
+0785 98467e00 isub temp ,pdata 
+0786 6809cb55 fetcht 3 ,mem_flash_start_addr 
+0787 9840fe00 iadd temp ,pdata 
+0788 1fe0fffb increase -5 ,pdata 
+0789 6001cb58 store 3 ,mem_flash_address 
+078a 20400352 call p_flash_release_deep_power_down 
+
+p_zcode_read_loop:
+078b 6801cb58 fetch 3 ,mem_flash_address 
+078c d8400100 arg zcode_buff_size ,temp 
+078d da201f00 arg mem_zcode_buff ,rega 
+078e 20406562 call spid_read_flash 
+078f 68021f00 fetch 4 ,mem_zcode_buff 
+0790 203a078b branch p_zcode_read_loop ,blank 
+0791 20400324 call p_mouse_spi_init 
+0792 58001f00 setarg mem_zcode_buff 
+0793 60014199 store 2 ,mem_patch_ptr 
+0794 70419b40 jam zcode_code_size ,mem_patch_len 
+0795 204064ca call load_ucode 
+0796 58000000 setarg 0 
+0797 60024199 store 4 ,mem_patch_ptr 
+
+p_zcode_run:
+0798 680091c5 fetch 1 ,mem_zcode_temp_param0 
+0799 20200001 branch p_zcode 
+
+p_drawing_optima:
+079a 6802469b fetch 4 ,mem_mouse_x 
+079b 207a0000 rtn blank 
+079c 204007ed call p_data_abs_check 
+079d 58000006 setarg 0x06 
+079e 204007e0 call p_data_greater_than_check 
+079f 58000003 setarg 0x03 
+07a0 204007e6 call p_data_less_than_check 
+07a1 6800cb0d fetch 1 ,mem_mouse_asm_flag 
+07a2 c00087a6 beq 1 ,p_drawing_optima_modify 
+
+p_drawing_optima_init:
+07a3 df200005 arg 5 ,loopcnt 
+07a4 d8a04b0d arg mem_mouse_asm_flag ,contw 
+07a5 20207ed4 branch clear_mem 
+
+p_drawing_optima_modify:
+07a6 68014b0e fetch 2 ,mem_mouse_x_pre 
+07a7 600111be store 2 ,mem_data_pre 
+07a8 6801469b fetch 2 ,mem_mouse_x 
+07a9 600111c0 store 2 ,mem_data_current 
+07aa 204007b9 call p_drawing_optima_data 
+07ab 680111be fetch 2 ,mem_data_pre 
+07ac 60014b0e store 2 ,mem_mouse_x_pre 
+07ad 680111c0 fetch 2 ,mem_data_current 
+07ae 6001469b store 2 ,mem_mouse_x 
+07af 68014b10 fetch 2 ,mem_mouse_y_pre 
+07b0 600111be store 2 ,mem_data_pre 
+07b1 6801469d fetch 2 ,mem_mouse_y 
+07b2 600111c0 store 2 ,mem_data_current 
+07b3 204007b9 call p_drawing_optima_data 
+07b4 680111be fetch 2 ,mem_data_pre 
+07b5 60014b10 store 2 ,mem_mouse_y_pre 
+07b6 680111c0 fetch 2 ,mem_data_current 
+07b7 6001469d store 2 ,mem_mouse_y 
+07b8 20600000 rtn 
+
+p_drawing_optima_data:
+07b9 680111be fetch 2 ,mem_data_pre 
+07ba 680911c0 fetcht 2 ,mem_data_current 
+07bb 9840fe00 iadd temp ,pdata 
+07bc 600191c2 store 3 ,mem_data_sum 
+07bd 2feffe10 isolate1 16 ,pdata 
+07be 202087c6 branch p_data_sum_overflow ,true 
+07bf 680091c3 fetch 1 ,mem_data_sum + 1 
+07c0 c07f87cd beq 0xff ,p_data_sum_n 
+07c1 680091c2 fetch 1 ,mem_data_sum 
+
+p_data_store_pre:
+07c2 1fe37e00 rshift pdata ,pdata 
+07c3 600111be store 2 ,mem_data_pre 
+07c4 600111c0 store 2 ,mem_data_current 
+07c5 20600000 rtn 
+
+p_data_sum_overflow:
+07c6 680091c3 fetch 1 ,mem_data_sum + 1 
+07c7 c00007ca beq 0 ,p_data_sum_overflow_p 
+07c8 680191c2 fetch 3 ,mem_data_sum 
+07c9 202007c2 branch p_data_store_pre 
+
+p_data_sum_overflow_p:
+07ca 7011c400 jam 0 ,mem_data_sum + 2 
+07cb 680091c2 fetch 1 ,mem_data_sum 
+07cc 202007c2 branch p_data_store_pre 
+
+p_data_sum_n:
+07cd 680091c2 fetch 1 ,mem_data_sum 
+07ce 204007d8 call p_pdata_get_half 
+07cf 600091be store 1 ,mem_data_pre 
+07d0 600091c0 store 1 ,mem_data_current 
+07d1 203a07d6 branch p_data_zero ,blank 
+07d2 580000ff setarg 0xff 
+
+p_data_set_direction:
+07d3 600091bf store 1 ,mem_data_pre + 1 
+07d4 600091c1 store 1 ,mem_data_current + 1 
+07d5 20600000 rtn 
+
+p_data_zero:
+07d6 58000000 setarg 0 
+07d7 202007d3 branch p_data_set_direction 
+
+p_pdata_get_half:
+07d8 1fe67e00 sub pdata ,0 ,pdata 
+07d9 60008aae store 1 ,mem_rega 
+07da 68008aae fetch 1 ,mem_rega 
+07db 1fe37e00 rshift pdata ,pdata 
+07dc 60008aae store 1 ,mem_rega 
+07dd 68008aae fetch 1 ,mem_rega 
+07de 1fe67e00 sub pdata ,0 ,pdata 
+07df 20600000 rtn 
+
+p_data_greater_than_check:
+07e0 9a267c00 isub rega ,null 
+07e1 242107eb nbranch p_enable_asm ,positive 
+07e2 9a467c00 isub regb ,null 
+07e3 242107eb nbranch p_enable_asm ,positive 
+
+p_disable_asm:
+07e4 704b0d00 jam 0 ,mem_mouse_asm_flag 
+07e5 20600000 rtn 
+
+p_data_less_than_check:
+07e6 9a267c00 isub rega ,null 
+07e7 24610000 nrtn positive 
+07e8 9a467c00 isub regb ,null 
+07e9 24610000 nrtn positive 
+07ea 202007e4 branch p_disable_asm 
+
+p_enable_asm:
+07eb 704b0d01 jam 1 ,mem_mouse_asm_flag 
+07ec 20600000 rtn 
+
+p_data_abs_check:
+07ed 6801469b fetch 2 ,mem_mouse_x 
+07ee 600111c0 store 2 ,mem_data_current 
+07ef 204007f6 call p_data_abs 
+07f0 1fe22200 copy pdata ,rega 
+07f1 6801469d fetch 2 ,mem_mouse_y 
+07f2 600111c0 store 2 ,mem_data_current 
+07f3 204007f6 call p_data_abs 
+07f4 1fe22400 copy pdata ,regb 
+07f5 20600000 rtn 
+
+p_data_abs:
+07f6 680091c1 fetch 1 ,mem_data_current + 1 
+07f7 c07f87fb beq 0xff ,p_data_reversal 
+07f8 680091c0 fetch 1 ,mem_data_current 
+
+p_data_abs_store:
+07f9 1fe17eff and_into 0xff ,pdata 
+07fa 20600000 rtn 
+
+p_data_reversal:
+07fb 680111c0 fetch 2 ,mem_data_current 
+07fc 1fe67e00 sub pdata ,0 ,pdata 
+07fd 202007f9 branch p_data_abs_store 
+org 0x2000
+
+start:
+2000 20402abc call lpmstate 
+
+soft_reset:
+2001 44804000 bpatch patch00_0 ,mem_patch00 
+2002 20800000 clear_stack 
+2003 2040640d call spi_ncs_gpio_init 
+2004 2040296c call initialize_radio 
+2005 204065a3 call iicd_init_12m 
+2006 20402a96 call init_param 
+2007 20404d6a call l2cap_init 
+2008 4480c000 bpatch patch00_1 ,mem_patch00 
+2009 20406a03 call rfcomm_init 
+200a 20405cf6 call init_lmp 
+200b 20407ccc call ui_init 
+200c 204032d8 call app_init 
+200d 2455e89c ncall load_chip_option ,wake 
+200e 44814000 bpatch patch00_2 ,mem_patch00 
+200f 2055b2e3 call app_lpm_init ,wake 
+2010 2040756a call publickey_init 
+2011 2055ab41 call lpm_recover_clk ,wake 
+
+main_loop:
+2012 4481c000 bpatch patch00_3 ,mem_patch00 
+2013 204076dc call sp_calc_sequence 
+2014 20407aaf call sp_calc_sequence_256 
+2015 2040756d call sp_calc_sequence_256_check 
+2016 2040535c call le_dispatch 
+2017 44824000 bpatch patch00_4 ,mem_patch00 
+2018 20402038 call idle_dispatch 
+2019 204032ed call app_process_idle 
+201a 2040208f call inquiry_dispatch 
+201b 204022f8 call inquiry_scan_dispatch 
+201c 2040236a call page_scan_dispatch 
+201d 20402021 call connection_dispatch 
+201e 20402b6a call lpm_dispatch 
+201f 20402c72 call g24_dispatch 
+2020 20202012 branch main_loop 
+
+connection_dispatch:
+2021 20402026 call connection_incontext 
+2022 c6848000 rtnmark0 mark_context 
+2023 793f8009 set0 mark_context ,mark 
+2024 20402223 call context_save 
+2025 202053ce branch le_disable 
+
+connection_incontext:
+2026 4482c000 bpatch patch00_5 ,mem_patch00 
+2027 2040225e call context_search_insniff 
+2028 2422a02f nbranch connection_nosniff ,zero 
+2029 2040220a call context_load 
+202a 1a208c01 add rega ,coffset_mode ,contr 
+202b e8c08000 ifetch 1 ,contr 
+202c c2805360 bbit1 mode_le ,le_conn_dispatch 
+202d c280a166 bbit1 mode_master ,master_dispatch 
+202e 202023cf branch slave_dispatch 
+
+connection_nosniff:
+202f 2040222b call context_get_next 
+2030 1f227c00 copy loopcnt ,null 
+2031 20628000 rtn zero 
+2032 2040220a call context_load 
+2033 68008030 fetch 1 ,mem_state 
+2034 c281a0d3 bbit1 state_inpage ,master_page 
+2035 68008031 fetch 1 ,mem_mode 
+2036 c280a166 bbit1 mode_master ,master_dispatch 
+2037 202023cf branch slave_dispatch 
+
+idle_dispatch:
+2038 6800c1ce fetch 1 ,mem_hci_cmd 
+2039 207a0000 rtn blank 
+203a c000a048 beq hci_cmd_inquiry ,idle_inquiry 
+203b c001204d beq hci_cmd_inquiry_cancel ,idle_inquiry_cancel 
+203c c001a050 beq hci_cmd_remote_name_req ,idle_remote_name_req 
+203d c002a055 beq hci_cmd_create_conn ,idle_create_conn 
+203e c00da045 beq hci_cmd_le_create_conn ,idle_le_create_conn 
+203f 20402257 call context_search_conn_handle 
+2040 20628000 rtn zero 
+2041 2040225a call context_search_plap 
+2042 20628000 rtn zero 
+
+idle_exit:
+2043 7041ce00 jam 0 ,mem_hci_cmd 
+2044 20600000 rtn 
+
+idle_le_create_conn:
+2045 70049b1b jam hci_cmd_le_create_conn ,mem_cmd_le_create_conn 
+2046 7041ce00 jam 0 ,mem_hci_cmd 
+2047 20600000 rtn 
+
+idle_inquiry:
+2048 7920001c set1 mark_inquiry_on ,mark 
+2049 793f801e set0 mark_inquiry_trainb ,mark 
+204a 70008fff jam param_ninquiry ,mem_ninqy_index 
+204b 70008d1f jam 31 ,mem_nfreq_index_inq 
+204c 20202043 branch idle_exit 
+
+idle_inquiry_cancel:
+204d 793f801c set0 mark_inquiry_on ,mark 
+204e 18003600 force 0 ,stop_watch 
+204f 20202043 branch idle_exit 
+
+idle_remote_name_req:
+2050 2040225a call context_search_plap 
+2051 20628000 rtn zero 
+2052 18000401 force lmp_name_req ,temp 
+2053 70016e05 jam 5 ,mem_nameres_cnt 
+2054 2020205c branch idle_start_page 
+
+idle_create_conn:
+2055 44834000 bpatch patch00_6 ,mem_patch00 
+
+idle_create_conn_device:
+2056 680341d0 fetch 6 ,mem_hci_plap 
+2057 203a2043 branch idle_exit ,blank 
+2058 70468101 jam reconnect_hid ,memui_reconnect_mode 
+2059 70005503 jam conn_sm_wait_features_res ,mem_conn_sm 
+205a 2020205b branch idle_create_conn_cont 
+
+idle_create_conn_cont:
+205b 18000425 force lmp_version_req ,temp 
+
+idle_start_page:
+205c 4483c000 bpatch patch00_7 ,mem_patch00 
+205d 680080f1 fetch 1 ,mem_page_mode 
+205e 203a2062 branch idle_page_mode_r0 ,blank 
+205f 1fe9fe00 lshift3 pdata ,pdata 
+2060 1ff27e00 lshift4 pdata ,pdata 
+2061 1fe0ffff increase -1 ,pdata 
+
+idle_page_mode_r0:
+2062 6000c0a6 store 1 ,mem_npage 
+2063 600080f0 store 1 ,mem_npage_index 
+2064 70008e1f jam 31 ,mem_nfreq_index_page 
+2065 793f800c set0 mark_page_trainb ,mark 
+2066 2040223b call context_new 
+2067 2422a083 nbranch idle_page_fail ,zero 
+2068 20402a6f call get_free_amaddr 
+2069 60008077 store 1 ,mem_amaddr 
+206a 6008807c storet 1 ,mem_lmo_opcode2 
+206b 680341d0 fetch 6 ,mem_hci_plap 
+206c 60030040 store 6 ,mem_plap 
+206d 44844001 bpatch patch01_0 ,mem_patch01 
+206e 20407f15 call timer_reinit 
+206f 18007e00 force 0 ,pdata 
+2070 2841fe01 compare lmp_name_req ,temp ,0xff 
+2071 7d20fe05 nsetflag true ,state_init_seq ,pdata 
+2072 79207e03 set1 state_inpage ,pdata 
+2073 60008030 store 1 ,mem_state 
+2074 700a9903 jam bt_evt_reconn_started ,mem_fifo_temp 
+2075 20407d86 call ui_ipc_send_event 
+2076 18007e00 force 0 ,pdata 
+2077 7920fe04 setflag true ,smap_name_req ,pdata 
+2078 6000804c store 1 ,mem_state_map 
+2079 58000000 setarg 0 
+207a 79207e01 set1 mode_master ,pdata 
+207b 60008031 store 1 ,mem_mode 
+207c 7834fc00 enable master 
+207d 20402223 call context_save 
+207e 7854fc00 disable master 
+207f 18000e03 force page_length_timer ,queue 
+2080 680140b9 fetch 2 ,mem_page_to 
+2081 20407f08 call timer_init 
+2082 20202043 branch idle_exit 
+
+idle_page_fail:
+2083 4484c001 bpatch patch01_1 ,mem_patch01 
+2084 680341d0 fetch 6 ,mem_hci_plap 
+2085 60030040 store 6 ,mem_plap 
+2086 2841fe01 compare lmp_name_req ,temp ,0xff 
+2087 2020a089 branch idle_name_fail ,true 
+2088 20202043 branch idle_exit 
+
+idle_name_fail:
+2089 d8a00101 arg mem_tmp_buffer ,contw 
+208a df200008 arg 8 ,loopcnt 
+208b 20407ec6 call memset0 
+208c 700a9904 jam bt_evt_reconn_failed ,mem_fifo_temp 
+208d 20407d86 call ui_ipc_send_event 
+208e 20202043 branch idle_exit 
+
+inquiry_dispatch:
+208f c68e0000 rtnmark0 mark_inquiry_on 
+2090 18000e01 force inquiry_length_timer ,queue 
+2091 20407f16 call timer_check 
+2092 7d3a001c nsetflag blank ,mark_inquiry_on ,mark 
+2093 243a2095 nbranch inquiry_start ,blank 
+2094 20600000 rtn 
+
+inquiry_start:
+2095 44854001 bpatch patch01_2 ,mem_patch01 
+2096 680940bb fetcht 2 ,mem_inq_window 
+2097 18000e04 force 4 ,queue 
+2098 2040271c call sniff_check_window 
+2099 20740000 rtn user 
+209a 204028a4 call afh_clear 
+209b 18004800 force 0 ,freq_mode 
+
+inquiry_restart:
+209c 20618000 rtn timeout 
+209d 793f800b set0 mark_fhs_already_good ,mark 
+209e 793f8000 set0 mark_fhs_eir ,mark 
+
+inquiry_rx_restart:
+209f 1c40c201 add clkn_bt ,1 ,bt_clk 
+20a0 280ffe1e isolate1 mark_inquiry_trainb ,mark 
+20a1 7920c802 setflag true ,2 ,freq_mode 
+20a2 2c200400 compare 0x00 ,bt_clk ,0x02 
+20a3 2420a0be nbranch inquiry_receive ,true 
+
+inquiry_transmit:
+20a4 4485c001 bpatch patch01_3 ,mem_patch01 
+20a5 68008012 fetch 1 ,mem_inquiry_transmit 
+20a6 1fe0fe01 increase 1 ,pdata 
+20a7 60008012 store 1 ,mem_inquiry_transmit 
+20a8 204028d8 call fetch_giac 
+20a9 204028d2 call tx_radio_freq 
+20aa 204028f2 call fetch_diac 
+20ab 20402a51 call start_transmitter 
+20ac 20402a56 call start_tx_native 
+20ad 20402a64 call send_access_word 
+20ae 2040264d call end_of_packet 
+20af 204020b1 call inquiry_check_train 
+20b0 2020209c branch inquiry_restart 
+
+inquiry_check_train:
+20b1 44864001 bpatch patch01_4 ,mem_patch01 
+20b2 6800808d fetch 1 ,mem_nfreq_index_inq 
+20b3 1fe0ffff increase -1 ,pdata 
+20b4 6000808d store 1 ,mem_nfreq_index_inq 
+20b5 20610000 rtn positive 
+20b6 70008d1f jam 31 ,mem_nfreq_index_inq 
+20b7 6800808f fetch 1 ,mem_ninqy_index 
+20b8 1fe0ffff increase -1 ,pdata 
+20b9 6000808f store 1 ,mem_ninqy_index 
+20ba 20610000 rtn positive 
+20bb 7940001e setflip mark_inquiry_trainb ,mark 
+20bc 70008fff jam param_ninquiry ,mem_ninqy_index 
+20bd 20600000 rtn 
+
+inquiry_receive:
+20be 4486c001 bpatch patch01_5 ,mem_patch01 
+20bf 204028d8 call fetch_giac 
+20c0 204028cc call rx_radio_freq 
+20c1 204028f2 call fetch_diac 
+20c2 20402a5b call start_rx_native 
+20c3 204029eb call start_receiver 
+20c4 20402a0d call wait_access_clkn_rt 
+20c5 202c20c8 branch inquiry_sync ,sync 
+20c6 204020b1 call inquiry_check_train 
+20c7 2020209f branch inquiry_rx_restart 
+
+inquiry_sync:
+20c8 44874001 bpatch patch01_6 ,mem_patch01 
+20c9 204029bb call save_rssi 
+20ca 20402a6b call scan_mode_whiten 
+20cb 2040251e call receive_packet_whitened 
+20cc 793f8001 set0 mark_rxbuf_inuse ,mark 
+20cd c6858000 rtnmark0 mark_fhs_already_good 
+
+inquiry_receive_rtn:
+20ce 4487c001 bpatch patch01_7 ,mem_patch01 
+
+inquiry_receive_eir_rtn:
+20cf 68008013 fetch 1 ,mem_inquiry_rcv 
+20d0 1fe0fe01 increase 1 ,pdata 
+20d1 60008013 store 1 ,mem_inquiry_rcv 
+20d2 20600000 rtn 
+
+master_page:
+20d3 44884002 bpatch patch02_0 ,mem_patch02 
+20d4 7834fc00 enable master 
+20d5 78387c00 enable clknt 
+20d6 680140b5 fetch 2 ,mem_page_interval 
+20d7 203a20db branch master_page_no_interval ,blank 
+20d8 18000e08 force page_interval_timer ,queue 
+20d9 20407f16 call timer_check 
+20da 247a0000 nrtn blank 
+
+master_page_no_interval:
+20db 4488c002 bpatch patch02_1 ,mem_patch02 
+20dc 680940b7 fetcht 2 ,mem_page_window 
+20dd 18000e28 force 40 ,queue 
+20de 2040271c call sniff_check_window 
+20df 20342114 branch page_exit ,user 
+20e0 18000e03 force page_length_timer ,queue 
+20e1 20407f16 call timer_check 
+20e2 243a20f0 nbranch page_start ,blank 
+20e3 6800804c fetch 1 ,mem_state_map 
+20e4 c28220e6 bbit1 smap_name_req ,master_npage_timeout 
+20e5 202020e9 branch master_page_timeout 
+
+master_npage_timeout:
+20e6 d8a00101 arg mem_tmp_buffer ,contw 
+20e7 df200008 arg 8 ,loopcnt 
+20e8 20407ec6 call memset0 
+
+master_page_timeout:
+20e9 44894002 bpatch patch02_2 ,mem_patch02 
+20ea 70003000 jam 0 ,mem_state 
+20eb 20405cf7 call init_lmp_work 
+20ec 70468100 jam 0 ,memui_reconnect_mode 
+20ed 700a9913 jam bt_evt_reconn_page_timeout ,mem_fifo_temp 
+20ee 20407d86 call ui_ipc_send_event 
+20ef 20202114 branch page_exit 
+
+page_start:
+20f0 4489c002 bpatch patch02_3 ,mem_patch02 
+20f1 18001600 force 0 ,timeup 
+20f2 34730200 until clkn_rt ,meet 
+20f3 680080f2 fetch 1 ,mem_page_clk 
+20f4 1fe0ffff increase -1 ,pdata 
+20f5 9c42fe00 ixor clkn_bt ,pdata 
+20f6 2fe00600 compare 0 ,pdata ,3 
+20f7 2420a0f0 nbranch page_start ,true 
+20f8 18827e00 deposit am_addr 
+20f9 60008181 store 1 ,mem_fhs_am_addr 
+20fa 18004c00 force 0 ,n_tx_slot 
+20fb 18004800 force 0 ,freq_mode 
+
+page_restart:
+20fc 448a4002 bpatch patch02_4 ,mem_patch02 
+20fd 2021a114 branch page_exit ,timeout 
+20fe 204028dc call fetch_page_bt_adr 
+20ff d9600600 arg param_rf_setup ,timeup 
+2100 34730200 until clkn_rt ,meet 
+
+page_rx_restart:
+2101 448ac002 bpatch patch02_5 ,mem_patch02 
+2102 680200f2 fetch 4 ,mem_page_clk 
+2103 98004200 iforce bt_clk 
+2104 1fe0fe01 increase 1 ,pdata 
+2105 600200f2 store 4 ,mem_page_clk 
+2106 280ffe0c isolate1 mark_page_trainb ,mark 
+2107 7920c802 setflag true ,2 ,freq_mode 
+2108 2c200400 compare 0x00 ,bt_clk ,0x02 
+2109 2420a128 nbranch page_receive ,true 
+210a 6800800c fetch 1 ,mem_page_transmit 
+210b 1fe0fe01 increase 1 ,pdata 
+210c 6000800c store 1 ,mem_page_transmit 
+210d 204028d2 call tx_radio_freq 
+210e 20402a51 call start_transmitter 
+210f 20402a56 call start_tx_native 
+2110 20402a64 call send_access_word 
+2111 2040264d call end_of_packet 
+2112 2040211a call page_check_train 
+2113 202020fc branch page_restart 
+
+page_exit:
+2114 448b4002 bpatch patch02_6 ,mem_patch02 
+2115 7854fc00 disable master 
+2116 680140b5 fetch 2 ,mem_page_interval 
+2117 207a0000 rtn blank 
+2118 18000e08 force page_interval_timer ,queue 
+2119 20207f08 branch timer_init 
+
+page_check_train:
+211a 448bc002 bpatch patch02_7 ,mem_patch02 
+211b 6800808e fetch 1 ,mem_nfreq_index_page 
+211c 1fe0ffff increase -1 ,pdata 
+211d 6000808e store 1 ,mem_nfreq_index_page 
+211e 20610000 rtn positive 
+211f 70008e1f jam 31 ,mem_nfreq_index_page 
+2120 680080f0 fetch 1 ,mem_npage_index 
+2121 1fe0ffff increase -1 ,pdata 
+2122 600080f0 store 1 ,mem_npage_index 
+2123 20610000 rtn positive 
+2124 7940000c setflip mark_page_trainb ,mark 
+2125 6800c0a6 fetch 1 ,mem_npage 
+2126 600080f0 store 1 ,mem_npage_index 
+2127 20600000 rtn 
+
+page_receive:
+2128 448c4003 bpatch patch03_0 ,mem_patch03 
+2129 204028cc call rx_radio_freq 
+212a 20402a5b call start_rx_native 
+212b 204029eb call start_receiver 
+212c 20402a0d call wait_access_clkn_rt 
+212d 202c2130 branch page_sync ,sync 
+212e 2040211a call page_check_train 
+212f 20202101 branch page_rx_restart 
+
+page_sync:
+2130 2040264d call end_of_packet 
+2131 6800800d fetch 1 ,mem_page_rcv 
+2132 1fe0fe01 increase 1 ,pdata 
+2133 6000800d store 1 ,mem_page_rcv 
+2134 18003600 force 0 ,stop_watch 
+2135 680200f2 fetch 4 ,mem_page_clk 
+
+page_send_fhs:
+2136 448cc003 bpatch patch03_1 ,mem_patch03 
+2137 20402a4f call rf_setup_time_master_slot 
+2138 204028dc call fetch_page_bt_adr 
+2139 1cc0cc01 increase 1 ,n_tx_slot 
+
+page_send_fhs_continue:
+213a 1c2143fd and_into 0x1fd ,bt_clk 
+213b 1c8149fc and_into 0x1fc ,freq_mode 
+213c 204028d2 call tx_radio_freq 
+213d 20402a51 call start_transmitter 
+213e 20402a56 call start_tx_native 
+213f 20402a64 call send_access_word 
+2140 1c427e00 deposit clkn_bt 
+2141 60020161 store 4 ,mem_clkn_bt 
+2142 18000800 force 0 ,am_addr 
+2143 18000202 force type_fhs ,type 
+2144 20402a6b call scan_mode_whiten 
+2145 20402766 call transmit_packet_whitened 
+
+page_wait_fhs_reply:
+2146 448d4003 bpatch patch03_2 ,mem_patch03 
+2147 20402a4d call rf_setup_time_slave_slot 
+2148 1c21c202 or_into 0x02 ,bt_clk 
+2149 1c8149fc and_into 0x1fc ,freq_mode 
+214a 204028cc call rx_radio_freq 
+214b 20402a5b call start_rx_native 
+214c 204029eb call start_receiver 
+214d 20402a0d call wait_access_clkn_rt 
+214e 204c264d call end_of_packet ,sync 
+214f 202c2155 branch page_wait_fhs_reply_ok ,sync 
+2150 68008010 fetch 1 ,mem_fhs_wait_counter 
+2151 203a20fc branch page_restart ,blank 
+2152 1fe0ffff increase -1 ,pdata 
+2153 60008010 store 1 ,mem_fhs_wait_counter 
+2154 20202136 branch page_send_fhs 
+
+page_wait_fhs_reply_ok:
+2155 448dc003 bpatch patch03_3 ,mem_patch03 
+2156 6800800e fetch 1 ,mem_page_rcv_fhs 
+2157 1fe0fe01 increase 1 ,pdata 
+2158 6000800e store 1 ,mem_page_rcv_fhs 
+2159 20402435 call prepare_newconn 
+
+master_newconn_loop:
+215a 204022f2 call master_newconn_once 
+215b 202c215f branch newconn_poll_responded ,sync 
+215c 20402455 call new_conn_timeout 
+215d 243a215a nbranch master_newconn_loop ,blank 
+215e 202020fc branch page_restart 
+
+newconn_poll_responded:
+215f 448e4003 bpatch patch03_4 ,mem_patch03 
+2160 68008030 fetch 1 ,mem_state 
+2161 793ffe03 set0 state_inpage ,pdata 
+2162 60008030 store 1 ,mem_state 
+2163 20402440 call newconn_init 
+2164 7854fc00 disable master 
+2165 20600000 rtn 
+
+master_dispatch:
+2166 448ec003 bpatch patch03_5 ,mem_patch03 
+2167 7834fc00 enable master 
+2168 78387c00 enable clknt 
+2169 204021e1 call role_switch_master 
+216a 20740000 rtn user 
+216b 20402c69 call check_bt_disabled 
+216c 20402a4f call rf_setup_time_master_slot 
+216d 1c40c201 add clkn_bt ,1 ,bt_clk 
+216e 204028e2 call fetch_self_bt_adr 
+216f 18004803 force 0x03 ,freq_mode 
+2170 20406cc2 call scheduler_tx_l2cap_pkt 
+2171 20402489 call prepare_tx 
+2172 204028d2 call tx_radio_freq 
+2173 20402a51 call start_transmitter 
+2174 20402a56 call start_tx_native 
+2175 20402a64 call send_access_word 
+2176 20402762 call transmit_packet 
+
+master_loop:
+2177 448f4003 bpatch patch03_6 ,mem_patch03 
+2178 20405d08 call parse_lmp 
+2179 204022e4 call master_conn_recv_packet 
+217a 2436a180 nbranch master_notmatch ,match 
+217b 20402a88 call supervision_flush 
+217c 20402728 call parse_l2cap 
+217d 6800800f fetch 1 ,mem_master_rcvcnt 
+217e 1fe0fe01 increase 1 ,pdata 
+217f 6000800f store 1 ,mem_master_rcvcnt 
+
+master_notmatch:
+2180 448fc003 bpatch patch03_7 ,mem_patch03 
+2181 20406caa call scheduler_process 
+2182 2040218b call check_master_disconnect 
+2183 24748000 nrtn master 
+2184 204026f3 call check_attempt 
+2185 243a2188 nbranch master_attempt ,blank 
+
+master_exit:
+2186 7854fc00 disable master 
+2187 20600000 rtn 
+
+master_attempt:
+2188 20402489 call prepare_tx 
+2189 204022da call master_conn_send_packet 
+218a 20202177 branch master_loop 
+
+check_master_disconnect:
+218b 2036a18e branch check_master_match ,match 
+218c 20402a7f call supervision_update 
+218d 2021219c branch master_disconnect ,positive 
+
+check_master_match:
+218e 204021a7 call check_disconnect_timeout 
+218f 2434219c nbranch master_disconnect ,user 
+2190 6800804c fetch 1 ,mem_state_map 
+2191 c4020000 rtnbit0 smap_name_req 
+2192 c3818000 rtnbit1 smap_name_res 
+2193 6800804b fetch 1 ,mem_op 
+2194 c3818000 rtnbit1 op_disconn 
+2195 204021ae call conn_timer_expired 
+2196 247a0000 nrtn blank 
+2197 6800816e fetch 1 ,mem_nameres_cnt 
+2198 1fe0ffff increase -1 ,pdata 
+2199 6000816e store 1 ,mem_nameres_cnt 
+219a 247a0000 nrtn blank 
+219b 20206006 branch lmp_disconnect 
+
+master_disconnect:
+219c 44904004 bpatch patch04_0 ,mem_patch04 
+219d 2040245d call quit_connection 
+219e 7854fc00 disable master 
+219f 6800804c fetch 1 ,mem_state_map 
+21a0 c28221a2 bbit1 smap_name_req ,master_name_disconnect 
+21a1 20600000 rtn 
+
+master_name_disconnect:
+21a2 6800804c fetch 1 ,mem_state_map 
+21a3 c3818000 rtnbit1 smap_name_res 
+
+master_name_error:
+21a4 d8a00101 arg mem_tmp_buffer ,contw 
+21a5 df200008 arg 8 ,loopcnt 
+21a6 20207ec6 branch memset0 
+
+check_disconnect_timeout:
+21a7 4490c004 bpatch patch04_1 ,mem_patch04 
+21a8 78347c00 enable user 
+21a9 6800804b fetch 1 ,mem_op 
+21aa c4018000 rtnbit0 op_disconn 
+21ab 204021ae call conn_timer_expired 
+21ac 247a0000 nrtn blank 
+21ad 20207fe9 branch disable_user 
+
+conn_timer_expired:
+21ae 68008072 fetch 1 ,mem_conn_timer 
+21af 1fe0ffff increase -1 ,pdata 
+21b0 60008072 store 1 ,mem_conn_timer 
+21b1 20600000 rtn 
+
+linkkey_ready:
+21b2 44914004 bpatch patch04_2 ,mem_patch04 
+21b3 68008030 fetch 1 ,mem_state 
+21b4 c283a1bb bbit1 state_linkkey ,linkkey_set 
+21b5 680089b5 fetch 1 ,mem_pairing_auth 
+21b6 203a21bb branch linkkey_set ,blank 
+21b7 7009b500 jam defalt_pairing_auth ,mem_pairing_auth 
+21b8 700a9918 jam bt_evt_linkkey_generate ,mem_fifo_temp 
+21b9 20407d86 call ui_ipc_send_event 
+21ba 202021bb branch linkkey_set 
+
+linkkey_set:
+21bb 4491c004 bpatch patch04_3 ,mem_patch04 
+21bc 20402254 call context_traverse_linkkey 
+21bd 68008030 fetch 1 ,mem_state 
+21be 79207e07 set1 state_linkkey ,pdata 
+21bf 60008030 store 1 ,mem_state 
+21c0 7041bd01 jam 1 ,mem_link_key_exists 
+21c1 68008055 fetch 1 ,mem_conn_sm 
+21c2 c08b21c3 bne conn_sm_pairing ,linkkey_set_continue 
+
+linkkey_set_continue:
+21c3 20600000 rtn 
+
+generate_linkkey_continue:
+21c4 7009b501 jam pairing_auth ,mem_pairing_auth 
+
+clear_linkstate:
+21c5 68008030 fetch 1 ,mem_state 
+21c6 793ffe07 set0 state_linkkey ,pdata 
+21c7 60008030 store 1 ,mem_state 
+21c8 20600000 rtn 
+
+role_switch_check:
+21c9 44924004 bpatch patch04_4 ,mem_patch04 
+21ca 78547c00 disable user 
+21cb 68010032 fetch 2 ,mem_tsniff 
+21cc d840ffff arg 0xffff ,temp 
+21cd 98467c00 isub temp ,null 
+21ce 24628000 nrtn zero 
+21cf 68020034 fetch 4 ,mem_sniff_anchor 
+21d0 203821d3 branch role_switch_clkn ,clknt 
+21d1 9d067e00 isub clke_bt ,pdata 
+21d2 202021d4 branch role_switch_clke 
+
+role_switch_clkn:
+21d3 9c467e00 isub clkn_bt ,pdata 
+
+role_switch_clke:
+21d4 1fe67c04 sub pdata ,4 ,null 
+21d5 24610000 nrtn positive 
+21d6 18007e00 force 0 ,pdata 
+21d7 60010032 store 2 ,mem_tsniff 
+21d8 20207fe7 branch enable_user 
+
+role_switch_prepare:
+21d9 1fe20400 copy pdata ,temp 
+21da 4492c004 bpatch patch04_5 ,mem_patch04 
+21db 600a0034 storet 4 ,mem_sniff_anchor 
+
+role_switch_prepare0:
+21dc 70455b01 jam switch_flag_accept ,mem_switch_flag 
+21dd 5800ffff setarg 0xffff 
+21de 60010032 store 2 ,mem_tsniff 
+21df 70007301 jam 1 ,mem_sniff_attempt 
+21e0 20600000 rtn 
+
+role_switch_master:
+21e1 44934004 bpatch patch04_6 ,mem_patch04 
+21e2 204021c9 call role_switch_check 
+21e3 24740000 nrtn user 
+21e4 78547c00 disable user 
+21e5 70001120 jam param_newconnto ,mem_newconnto_counter 
+21e6 793f800b set0 mark_fhs_already_good ,mark 
+
+roles_waitfhs_loop:
+21e7 20402a4f call rf_setup_time_master_slot 
+21e8 204022e6 call master_recv_packet 
+21e9 c505a1f4 bmark1 mark_fhs_already_good ,roles_replyto_fhs 
+21ea 20402455 call new_conn_timeout 
+21eb 243a21e7 nbranch roles_waitfhs_loop ,blank 
+
+role_switch_fail_master:
+21ec 4493c004 bpatch patch04_7 ,mem_patch04 
+21ed 78547c00 disable user 
+21ee 1c427e00 deposit clkn_bt 
+21ef 600240ca store 4 ,mem_next_btclk 
+21f0 78387c00 enable clknt 
+21f1 7834fc00 enable master 
+21f2 700a992a jam bt_evt_switch_fail_master ,mem_fifo_temp 
+21f3 20207d86 branch ui_ipc_send_event 
+
+roles_replyto_fhs:
+21f4 44944005 bpatch patch05_0 ,mem_patch05 
+21f5 20402a4d call rf_setup_time_slave_slot 
+21f6 d8200010 arg type_id ,type 
+21f7 204022dc call master_send_packet 
+21f8 78587c00 disable clknt 
+21f9 7854fc00 disable master 
+21fa 20402818 call apply_switch_clke 
+21fb 20402435 call prepare_newconn 
+
+roles_newconns_loop:
+21fc 4494c005 bpatch patch05_1 ,mem_patch05 
+21fd 2040247c call slave_newconn_once 
+21fe 2036a202 branch roles_newconns_responded ,match 
+21ff 20402455 call new_conn_timeout 
+2200 243a21fc nbranch roles_newconns_loop ,blank 
+2201 202021ec branch role_switch_fail_master 
+
+roles_newconns_responded:
+2202 68008031 fetch 1 ,mem_mode 
+2203 793ffe01 set0 mode_master ,pdata 
+2204 60008031 store 1 ,mem_mode 
+2205 20402a88 call supervision_flush 
+2206 20402841 call calc_clke_offset 
+2207 78347c00 enable user 
+2208 700a992b jam bt_evt_switch_success_master ,mem_fifo_temp 
+2209 20207d86 branch ui_ipc_send_event 
+
+context_load:
+220a 44954005 bpatch patch05_2 ,mem_patch05 
+220b 79200009 set1 mark_context ,mark 
+220c 1a227e00 deposit rega 
+220d 6001001e store 2 ,mem_context_ptr 
+220e 18007250 force context_size ,loopcnt 
+220f d8a0043f arg mem_le_state ,contw 
+2210 1a208c01 add rega ,coffset_mode ,contr 
+2211 e8c08000 ifetch 1 ,contr 
+2212 1a220c00 copy rega ,contr 
+2213 c2807f01 bbit1 mode_le ,memcpy 
+2214 d8a00030 arg mem_state ,contw 
+2215 20407f01 call memcpy 
+2216 78577c00 disable attempt 
+2217 68008077 fetch 1 ,mem_amaddr 
+2218 98000800 iforce am_addr 
+2219 70008a01 jam 1 ,mem_current_sniff_attempt 
+221a 2034a21c branch context_load_master ,master 
+221b 70008a01 jam 1 ,mem_current_sniff_attempt 
+
+context_load_master:
+221c 68008030 fetch 1 ,mem_state 
+221d c4008000 rtnbit0 state_insniff 
+221e 68008073 fetch 1 ,mem_sniff_attempt 
+221f 6000808a store 1 ,mem_current_sniff_attempt 
+2220 68008074 fetch 1 ,mem_sniff_timeout 
+2221 6000808b store 1 ,mem_current_sniff_timeout 
+2222 20600000 rtn 
+
+context_save:
+2223 4495c005 bpatch patch05_3 ,mem_patch05 
+2224 6801001e fetch 2 ,mem_context_ptr 
+2225 98000a00 iforce contw 
+2226 18007250 force context_size ,loopcnt 
+2227 d8c0043f arg mem_le_state ,contr 
+2228 203b7f01 branch memcpy ,le 
+2229 d8c00030 arg mem_state ,contr 
+222a 20207f01 branch memcpy 
+
+context_get_next:
+222b df200001 arg context_num ,loopcnt 
+222c 68088015 fetcht 1 ,mem_current_context 
+
+context_get_next_loop:
+222d 18408401 increase 1 ,temp 
+222e 2841fe01 compare context_num ,temp ,0xff 
+222f 2420a231 nbranch context_get_next_cont ,true 
+2230 d8400000 arg 0 ,temp 
+
+context_get_next_cont:
+2231 60088015 storet 1 ,mem_current_context 
+2232 184ffe50 mul32 temp ,context_size ,pdata 
+2233 da204040 arg mem_context ,rega 
+2234 9a20a200 iadd rega ,rega 
+2235 ea208000 ifetch 1 ,rega 
+2236 c280a239 bbit1 state_insniff ,context_get_next_sniff 
+2237 c3800000 rtnbit1 state_inconn 
+2238 c3818000 rtnbit1 state_inpage 
+
+context_get_next_sniff:
+2239 c200222d loop context_get_next_loop 
+223a 20600000 rtn 
+
+context_new:
+223b 44964005 bpatch patch05_4 ,mem_patch05 
+223c da60226a arg context_search_empty ,regc 
+223d 20402261 call context_search 
+223e 24628000 nrtn zero 
+223f 1a227e00 deposit rega 
+2240 6001001e store 2 ,mem_context_ptr 
+2241 18007c00 force 0 ,null 
+2242 20600000 rtn 
+
+context_check_all_wack:
+2243 20402725 call check_esco_amaddr 
+2244 2020a24b branch context_check_esco_wack ,true 
+2245 6801001e fetch 2 ,mem_context_ptr 
+2246 1fe08a17 add pdata ,coffset_arq ,contw 
+2247 68008047 fetch 1 ,mem_arq 
+2248 e0a08000 istore 1 ,contw 
+2249 da6022aa arg context_check_a_wack ,regc 
+224a 20202261 branch context_search 
+
+context_check_esco_wack:
+224b 68008047 fetch 1 ,mem_arq 
+224c 2feffe03 isolate1 wack ,pdata 
+224d 2020a250 branch context_esco_wack ,true 
+224e 18007c01 force 1 ,null 
+224f 20600000 rtn 
+
+context_esco_wack:
+2250 18007c00 force 0 ,null 
+2251 20600000 rtn 
+
+context_check_idle:
+2252 da6022a7 arg context_check_inconn ,regc 
+2253 20202261 branch context_search 
+
+context_traverse_linkkey:
+2254 6809001e fetcht 2 ,mem_context_ptr 
+2255 da6022cf arg context_traverse_clearkey ,regc 
+2256 20202261 branch context_search 
+
+context_search_conn_handle:
+2257 6808c1cf fetcht 1 ,mem_hci_conn_handle 
+
+context_search_conn_handle2:
+2258 da602275 arg context_search_handle ,regc 
+2259 20202261 branch context_search 
+
+context_search_plap:
+225a 4496c005 bpatch patch05_5 ,mem_patch05 
+225b 680b41d0 fetcht 6 ,mem_hci_plap 
+
+context_search_plap2:
+225c da60226e arg context_search_lap ,regc 
+225d 20202261 branch context_search 
+
+context_search_insniff:
+225e da60227b arg context_search_sniff ,regc 
+225f 20202261 branch context_search 
+
+context_search_sniff_window:
+2260 da6022c6 arg context_search_window ,regc 
+
+context_search:
+2261 44974005 bpatch patch05_6 ,mem_patch05 
+2262 da204040 arg mem_context ,rega 
+2263 df200001 arg context_num ,loopcnt 
+
+context_search_loop:
+2264 ea208000 ifetch 1 ,rega 
+2265 1a627a00 copy regc ,pc 
+
+context_search_next:
+2266 1a20a250 increase context_size ,rega 
+2267 c2002264 loop context_search_loop 
+2268 18007c01 force 1 ,null 
+2269 20600000 rtn 
+
+context_search_empty:
+226a c2802266 bbit1 state_inconn ,context_search_next 
+226b c281a266 bbit1 state_inpage ,context_search_next 
+226c 18007c00 force 0 ,null 
+226d 20600000 rtn 
+
+context_search_lap:
+226e c281a270 bbit1 state_inpage ,context_search_lap_cont 
+226f c3002266 bbit0 state_inconn ,context_search_next 
+
+context_search_lap_cont:
+2270 1a208c10 add rega ,coffset_plap ,contr 
+2271 e8c30000 ifetch 6 ,contr 
+2272 98467c00 isub temp ,null 
+2273 20628000 rtn zero 
+2274 20202266 branch context_search_next 
+
+context_search_handle:
+2275 c3002266 bbit0 state_inconn ,context_search_next 
+2276 1a208c16 add rega ,coffset_conn_handle ,contr 
+2277 e8c08000 ifetch 1 ,contr 
+2278 98467c00 isub temp ,null 
+2279 20628000 rtn zero 
+227a 20202266 branch context_search_next 
+
+context_search_sniff:
+227b c300a266 bbit0 state_insniff ,context_search_next 
+
+context_search_sniff_loop:
+227c 204022b3 call context_get_anchor 
+227d 20402297 call sign_pdata_temp 
+227e 98467e00 isub temp ,pdata 
+227f 1fe0fe01 increase 1 ,pdata 
+2280 20212291 branch context_search_sniff_miss ,positive 
+2281 18c22400 copy contr ,regb 
+2282 60048aa2 store 9 ,mem_temp 
+2283 6800c4c0 fetch 1 ,mem_le_sc_calc 
+2284 243a2289 nbranch context_search_sniff_sc ,blank 
+2285 68048aa2 fetch 9 ,mem_temp 
+2286 1a420c00 copy regb ,contr 
+2287 1fe0fe05 increase 5 ,pdata 
+2288 2020228c branch context_search_meet1 
+
+context_search_sniff_sc:
+2289 68048aa2 fetch 9 ,mem_temp 
+228a 1a420c00 copy regb ,contr 
+228b 1fe0fe14 increase 20 ,pdata 
+
+context_search_meet1:
+228c 24212266 nbranch context_search_next ,positive 
+
+context_search_meet:
+228d 18424200 copy temp ,bt_clk 
+228e 204022bf call context_next_anchor 
+228f 18007c00 force 0 ,null 
+2290 20600000 rtn 
+
+context_search_sniff_miss:
+2291 98002400 iforce regb 
+2292 1a208c02 add rega ,coffset_tsniff ,contr 
+2293 e8c10000 ifetch 2 ,contr 
+2294 203a228d branch context_search_meet ,blank 
+2295 204022bf call context_next_anchor 
+2296 2020227c branch context_search_sniff_loop 
+
+sign_pdata_temp:
+2297 1ff11600 rshift16 pdata ,timeup 
+2298 196c9600 rshift8 timeup ,timeup 
+2299 2022a2a1 branch sign_pdata_temp_p0 ,zero 
+229a 29601e0f compare 0xf ,timeup ,0xf 
+229b 24608000 nrtn true 
+229c 18511600 rshift16 temp ,timeup 
+229d 196c9600 rshift8 timeup ,timeup 
+229e 24628000 nrtn zero 
+229f 7920041c set1 28 ,temp 
+22a0 20600000 rtn 
+
+sign_pdata_temp_p0:
+22a1 18511600 rshift16 temp ,timeup 
+22a2 196c9600 rshift8 timeup ,timeup 
+22a3 29601e0f compare 0xf ,timeup ,0xf 
+22a4 24608000 nrtn true 
+22a5 79207e1c set1 28 ,pdata 
+22a6 20600000 rtn 
+
+context_check_inconn:
+22a7 c3002266 bbit0 state_inconn ,context_search_next 
+22a8 18007c00 force 0 ,null 
+22a9 20600000 rtn 
+
+context_check_a_wack:
+22aa c3002266 bbit0 state_inconn ,context_search_next 
+22ab 1a208c01 add rega ,coffset_mode ,contr 
+22ac e8c08000 ifetch 1 ,contr 
+22ad c2802266 bbit1 mode_le ,context_search_next 
+22ae 1a208c17 add rega ,coffset_arq ,contr 
+22af e8c08000 ifetch 1 ,contr 
+22b0 c301a266 bbit0 wack ,context_search_next 
+22b1 18007c00 force 0 ,null 
+22b2 20600000 rtn 
+
+context_get_anchor:
+22b3 1a208c01 add rega ,coffset_mode ,contr 
+22b4 e8c88000 ifetcht 1 ,contr 
+22b5 1c427e00 deposit clkn_bt 
+22b6 284ffe01 isolate1 mode_master ,temp 
+22b7 1a208c04 add rega ,coffset_sniff_anchor ,contr 
+22b8 e8ca0000 ifetcht 4 ,contr 
+22b9 20608000 rtn true 
+22ba 1a208c08 add rega ,coffset_clk_offset ,contr 
+22bb e8c30000 ifetch 6 ,contr 
+22bc 20402854 call calc_clke2 
+22bd 1d027e00 deposit clke_bt 
+22be 20600000 rtn 
+
+context_next_anchor:
+22bf 1a208c02 add rega ,coffset_tsniff ,contr 
+22c0 1a208a04 add rega ,coffset_sniff_anchor ,contw 
+22c1 e8c10000 ifetch 2 ,contr 
+22c2 98409600 iadd temp ,timeup 
+22c3 19627e00 deposit timeup 
+22c4 e0a20000 istore 4 ,contw 
+22c5 20205449 branch le_context_nexthop 
+
+context_search_window:
+22c6 c300a266 bbit0 state_insniff ,context_search_next 
+22c7 204022b3 call context_get_anchor 
+22c8 9b60fe00 iadd stop_watch ,pdata 
+22c9 9b60fe00 iadd stop_watch ,pdata 
+22ca 98e0fe00 iadd queue ,pdata 
+22cb 98467c00 isub temp ,null 
+22cc 24212266 nbranch context_search_next ,positive 
+22cd 18007c00 force 0 ,null 
+22ce 20600000 rtn 
+
+context_traverse_clearkey:
+22cf c3002266 bbit0 state_inconn ,context_search_next 
+22d0 18427e00 deposit temp 
+22d1 9a267c00 isub rega ,null 
+22d2 203f2266 branch context_search_next ,null 
+22d3 1a208c01 add rega ,coffset_mode ,contr 
+22d4 e8c08000 ifetch 1 ,contr 
+22d5 c2802266 bbit1 mode_le ,context_search_next 
+22d6 ea208000 ifetch 1 ,rega 
+22d7 793ffe07 set0 state_linkkey ,pdata 
+22d8 e2208000 istore 1 ,rega 
+22d9 20202266 branch context_search_next 
+
+master_conn_send_packet:
+22da 4497c005 bpatch patch05_7 ,mem_patch05 
+22db 20402a4f call rf_setup_time_master_slot 
+
+master_send_packet:
+22dc 1c40c201 add clkn_bt ,1 ,bt_clk 
+22dd 204028e2 call fetch_self_bt_adr 
+22de 18004803 force 0x03 ,freq_mode 
+22df 204028d2 call tx_radio_freq 
+22e0 20402a51 call start_transmitter 
+22e1 20402a56 call start_tx_native 
+22e2 20402a64 call send_access_word 
+22e3 20202762 branch transmit_packet 
+
+master_conn_recv_packet:
+22e4 44984006 bpatch patch06_0 ,mem_patch06 
+22e5 20402a4d call rf_setup_time_slave_slot 
+
+master_recv_packet:
+22e6 1c40c201 add clkn_bt ,1 ,bt_clk 
+22e7 204028e2 call fetch_self_bt_adr 
+22e8 18004803 force 0x03 ,freq_mode 
+22e9 204028cc call rx_radio_freq 
+22ea 2040242a call init_rx_packet_flags 
+22eb 204029f1 call prep_crypt 
+22ec 20402a5b call start_rx_native 
+22ed 204029eb call start_receiver 
+
+master_rx_conn_finish_packet:
+22ee 20402a0d call wait_access_clkn_rt 
+22ef 246c0000 nrtn sync 
+22f0 204029bb call save_rssi 
+22f1 2020251c branch receive_packet 
+
+master_newconn_once:
+22f2 4498c006 bpatch patch06_1 ,mem_patch06 
+22f3 68008181 fetch 1 ,mem_fhs_am_addr 
+22f4 98000800 iforce am_addr 
+22f5 18000201 force type_poll ,type 
+22f6 204022da call master_conn_send_packet 
+22f7 202022e4 branch master_conn_recv_packet 
+
+inquiry_scan_dispatch:
+22f8 6800c093 fetch 1 ,mem_scan_mode 
+22f9 c4000000 rtnbit0 inq_scan_mode 
+22fa 18000e04 force iscan_interval_timer ,queue 
+22fb 20407f16 call timer_check 
+22fc 247a0000 nrtn blank 
+22fd 680940ad fetcht 2 ,mem_iscan_window 
+22fe 18000e04 force 4 ,queue 
+22ff 2040271c call sniff_check_window 
+2300 20740000 rtn user 
+2301 20402308 call inquiry_scan_start 
+2302 18000e04 force iscan_interval_timer ,queue 
+2303 680140af fetch 2 ,mem_iscan_interval 
+2304 242c7f08 nbranch timer_init ,sync 
+2305 180a7e00 random pdata 
+2306 9ea17e00 iand mask3ff ,pdata 
+2307 20207f08 branch timer_init 
+
+inquiry_scan_start:
+2308 44994006 bpatch patch06_2 ,mem_patch06 
+2309 70018100 jam 0 ,mem_fhs_am_addr 
+230a 78587c00 disable clknt 
+230b 78577c00 disable attempt 
+230c 204028a4 call afh_clear 
+230d 1c4143fc and clkn_bt ,0x1fc ,bt_clk 
+230e 18004801 force 0x01 ,freq_mode 
+230f 204028d8 call fetch_giac 
+2310 204028cc call rx_radio_freq 
+2311 7940001d setflip mark_inquiry_state ,mark 
+2312 68008006 fetch 1 ,mem_inquiryscan_waitcnt 
+2313 1fe0fe01 increase 1 ,pdata 
+2314 60008006 store 1 ,mem_inquiryscan_waitcnt 
+2315 204028f2 call fetch_diac 
+2316 204029eb call start_receiver 
+2317 20402a14 call wait_access_forever 
+2318 246c0000 nrtn sync 
+2319 4499c006 bpatch patch06_3 ,mem_patch06 
+231a 18003600 force 0 ,stop_watch 
+231b 204028f9 call shutdown_radio 
+231c 68008007 fetch 1 ,mem_inquiryscan_rcvcnt 
+231d 1fe0fe01 increase 1 ,pdata 
+231e 60008007 store 1 ,mem_inquiryscan_rcvcnt 
+231f 204028d8 call fetch_giac 
+2320 20402a4d call rf_setup_time_slave_slot 
+2321 1c21c202 or_into 0x002 ,bt_clk 
+2322 18004801 force 0x01 ,freq_mode 
+2323 204028d2 call tx_radio_freq 
+2324 204028f2 call fetch_diac 
+2325 20402a51 call start_transmitter 
+2326 20402a5f call start_tx_external 
+2327 1c427e00 deposit clkn_bt 
+2328 60020161 store 4 ,mem_clkn_bt 
+2329 20402a64 call send_access_word 
+232a 18000202 force type_fhs ,type 
+232b 18000800 force 0 ,am_addr 
+232c 20402a6b call scan_mode_whiten 
+232d 20402766 call transmit_packet_whitened 
+232e 20402332 call send_eir 
+232f 1c2143fd and_into 0x1fd ,bt_clk 
+2330 1cc0cc01 increase 1 ,n_tx_slot 
+2331 20600000 rtn 
+
+send_eir:
+2332 449a4006 bpatch patch06_4 ,mem_patch06 
+2333 6800c0d1 fetch 1 ,mem_eir_enable 
+2334 207a0000 rtn blank 
+2335 d8a0018e arg mem_eir ,contw 
+2336 6800c515 fetch 1 ,mem_local_name_length 
+2337 1fe27200 copy pdata ,loopcnt 
+2338 1fe0fe01 increase 1 ,pdata 
+2339 e0a08000 istore 1 ,contw 
+233a 18a20400 copy contw ,temp 
+233b 1fe0fe01 increase 1 ,pdata 
+233c 600141dc store 2 ,mem_tx_len 
+233d 18420a00 copy temp ,contw 
+233e 58000009 setarg 0x09 
+233f e0a08000 istore 1 ,contw 
+2340 d8c04516 arg mem_local_name ,contr 
+2341 20407f01 call memcpy 
+2342 da60458d arg mem_all_uuid_128bits ,regc 
+2343 df200004 arg 4 ,loopcnt 
+2344 20402354 call get_all_uuid 
+2345 da604577 arg mem_all_uuid_16bits ,regc 
+2346 df200001 arg 1 ,loopcnt 
+2347 20402354 call get_all_uuid 
+2348 1800020a force type_dm3 ,type 
+2349 7041db02 jam 2 ,mem_tx_lch 
+234a 5800018e setarg mem_eir 
+234b 6001016f store 2 ,mem_txptr 
+234c 20402a4d call rf_setup_time_slave_slot 
+234d 204028d2 call tx_radio_freq 
+234e 20402a51 call start_transmitter 
+234f 20402a5f call start_tx_external 
+2350 20402a64 call send_access_word 
+2351 20402a6b call scan_mode_whiten 
+2352 20402766 call transmit_packet_whitened 
+2353 20600000 rtn 
+
+get_all_uuid:
+2354 18a20400 copy contw ,temp 
+2355 1a620c00 copy regc ,contr 
+2356 e8c08000 ifetch 1 ,contr 
+2357 207a0000 rtn blank 
+
+lshift_loop:
+2358 1fe3fe00 lshift pdata ,pdata 
+2359 c2002358 loop lshift_loop 
+235a 1fe22200 copy pdata ,rega 
+235b 1fe0fe02 increase 2 ,pdata 
+235c 1fe20e00 copy pdata ,queue 
+235d 680141dc fetch 2 ,mem_tx_len 
+235e 98e0fe00 iadd queue ,pdata 
+235f 600141dc store 2 ,mem_tx_len 
+2360 18420a00 copy temp ,contw 
+2361 1a227e00 copy rega ,pdata 
+2362 1fe0fe01 increase 1 ,pdata 
+2363 e0a08000 istore 1 ,contw 
+2364 1a620c00 copy regc ,contr 
+2365 e8c08000 ifetch 1 ,contr 
+2366 e8c08000 ifetch 1 ,contr 
+2367 e0a08000 istore 1 ,contw 
+2368 1a227200 copy rega ,loopcnt 
+2369 20207f01 branch memcpy 
+
+page_scan_dispatch:
+236a 6800c093 fetch 1 ,mem_scan_mode 
+236b c4008000 rtnbit0 page_scan_mode 
+236c 18000e05 force pscan_interval_timer ,queue 
+236d 20407f16 call timer_check 
+236e 247a0000 nrtn blank 
+236f 680940b1 fetcht 2 ,mem_pscan_window 
+2370 18000e28 force 40 ,queue 
+2371 2040271c call sniff_check_window 
+2372 20740000 rtn user 
+2373 18000800 force 0 ,am_addr 
+2374 70001008 jam param_pagerespto ,mem_fhs_wait_counter 
+2375 793f800b set0 mark_fhs_already_good ,mark 
+2376 2040237a call page_scan_start 
+2377 18000e05 force pscan_interval_timer ,queue 
+2378 680140b3 fetch 2 ,mem_pscan_interval 
+2379 20207f08 branch timer_init 
+
+page_scan_start:
+237a 449ac006 bpatch patch06_5 ,mem_patch06 
+237b 78587c00 disable clknt 
+237c 204028a4 call afh_clear 
+237d 68008008 fetch 1 ,mem_pagescan_waitcnt 
+237e 1fe0fe01 increase 1 ,pdata 
+237f 60008008 store 1 ,mem_pagescan_waitcnt 
+2380 18004c00 force 0 ,n_tx_slot 
+2381 204028e2 call fetch_self_bt_adr 
+2382 1c40c201 add clkn_bt ,1 ,bt_clk 
+2383 18004802 force 0x02 ,freq_mode 
+2384 449b4006 bpatch patch06_6 ,mem_patch06 
+2385 204028cc call rx_radio_freq 
+2386 204029eb call start_receiver 
+2387 20402a14 call wait_access_forever 
+2388 246c0000 nrtn sync 
+2389 204028f9 call shutdown_radio 
+238a 68008009 fetch 1 ,mem_pagescan_rcvcnt 
+238b 1fe0fe01 increase 1 ,pdata 
+238c 60008009 store 1 ,mem_pagescan_rcvcnt 
+238d 18003600 force 0 ,stop_watch 
+238e 20402a4d call rf_setup_time_slave_slot 
+238f 1c21c202 or_into 0x002 ,bt_clk 
+2390 18004801 force 0x01 ,freq_mode 
+2391 204028d2 call tx_radio_freq 
+2392 20402a51 call start_transmitter 
+2393 20402a5f call start_tx_external 
+2394 20402a64 call send_access_word 
+2395 2040264d call end_of_packet 
+2396 18000800 force 0 ,am_addr 
+2397 d9600600 arg param_rf_setup ,timeup 
+2398 35330200 until clke_rt ,meet 
+2399 1d01d003 or_into 0x03 ,clke_bt 
+239a 1c2143fd and_into 0x1fd ,bt_clk 
+
+page_scan_wait_fhs_restart:
+239b 449bc006 bpatch patch06_7 ,mem_patch06 
+239c 1cc0cc01 increase 1 ,n_tx_slot 
+239d 204028cc call rx_radio_freq 
+239e 204029eb call start_receiver 
+239f 20402a07 call wait_access_mhalfbnd 
+23a0 242c23a4 nbranch page_scan_wait_fhs_again ,sync 
+23a1 20402a6b call scan_mode_whiten 
+23a2 2040251e call receive_packet_whitened 
+23a3 c505a3ab bmark1 mark_fhs_already_good ,page_scan_reply_to_fhs 
+
+page_scan_wait_fhs_again:
+23a4 449c4007 bpatch patch07_0 ,mem_patch07 
+23a5 68008010 fetch 1 ,mem_fhs_wait_counter 
+23a6 207a0000 rtn blank 
+23a7 1fe0ffff increase -1 ,pdata 
+23a8 60008010 store 1 ,mem_fhs_wait_counter 
+23a9 20402a4f call rf_setup_time_master_slot 
+23aa 2020239b branch page_scan_wait_fhs_restart 
+
+page_scan_reply_to_fhs:
+23ab 449cc007 bpatch patch07_1 ,mem_patch07 
+23ac 793fd001 set0 1 ,clke_bt 
+23ad 79205000 set1 0 ,clke_bt 
+23ae 6800800a fetch 1 ,mem_pagescan_rcvfhscnt 
+23af 1fe0fe01 increase 1 ,pdata 
+23b0 6000800a store 1 ,mem_pagescan_rcvfhscnt 
+23b1 20402a4d call rf_setup_time_slave_slot 
+23b2 1c21c202 or_into 0x02 ,bt_clk 
+23b3 204028d2 call tx_radio_freq 
+23b4 20402a51 call start_transmitter 
+23b5 20402a5f call start_tx_external 
+23b6 20402a64 call send_access_word 
+23b7 2040264d call end_of_packet 
+
+slave_apply_clke_bt:
+23b8 2d000603 compare 0x03 ,clke_bt ,0x03 
+23b9 2020a3bc branch slave_apply_clke_bt_now ,true 
+23ba 37cb8200 until null ,mhalfbnd 
+23bb 202023b8 branch slave_apply_clke_bt 
+
+slave_apply_clke_bt_now:
+23bc 68020165 fetch 4 ,mem_clke_bt 
+23bd 1fe1fe03 or_into 0x03 ,pdata 
+23be 1fe25000 icopy clke_bt 
+
+start_slave_connection:
+23bf 449d4007 bpatch patch07_2 ,mem_patch07 
+23c0 68030178 fetch 6 ,extm_lap 
+23c1 60030040 store 6 ,mem_plap 
+23c2 20402435 call prepare_newconn 
+
+slave_newconn_loop:
+23c3 2040247c call slave_newconn_once 
+23c4 2036a3c8 branch sconn_successful ,match 
+23c5 20402455 call new_conn_timeout 
+23c6 243a23c3 nbranch slave_newconn_loop ,blank 
+23c7 20600000 rtn 
+
+sconn_successful:
+23c8 449dc007 bpatch patch07_3 ,mem_patch07 
+23c9 20402440 call newconn_init 
+23ca 2040223b call context_new 
+23cb 24628000 nrtn zero 
+23cc 70003100 jam 0 ,mem_mode 
+23cd 20402841 call calc_clke_offset 
+23ce 20202223 branch context_save 
+
+slave_dispatch:
+23cf 449e4007 bpatch patch07_4 ,mem_patch07 
+23d0 20402850 call calc_clke 
+23d1 204023f3 call role_switch_slave 
+23d2 20740000 rtn user 
+
+slave_loop:
+23d3 449ec007 bpatch patch07_5 ,mem_patch07 
+23d4 20402c69 call check_bt_disabled 
+23d5 20406caa call scheduler_process 
+23d6 20402514 call slave_conn_recv_packet 
+23d7 2436a3e2 nbranch slave_notmatch ,match 
+23d8 20402a88 call supervision_flush 
+23d9 20406cc2 call scheduler_tx_l2cap_pkt 
+23da 20402489 call prepare_tx 
+23db 20402757 call slave_conn_send_packet 
+23dc 20402728 call parse_l2cap 
+23dd 20405d08 call parse_lmp 
+23de 6800800b fetch 1 ,mem_slave_rcvcnt 
+23df 1fe0fe01 increase 1 ,pdata 
+23e0 6000800b store 1 ,mem_slave_rcvcnt 
+23e1 20402841 call calc_clke_offset 
+
+slave_notmatch:
+23e2 449f4007 bpatch patch07_6 ,mem_patch07 
+23e3 20402bb1 call lpm_set_mult 
+23e4 20402a7f call supervision_update 
+23e5 202123eb branch slave_disconnect ,positive 
+23e6 204021a7 call check_disconnect_timeout 
+23e7 243423eb nbranch slave_disconnect ,user 
+23e8 204026f3 call check_attempt 
+23e9 243a23d3 nbranch slave_loop ,blank 
+23ea 20600000 rtn 
+
+slave_disconnect:
+23eb 449fc007 bpatch patch07_7 ,mem_patch07 
+23ec 70015100 jam 0 ,mem_tester_emulate 
+23ed 70017f00 jam 0 ,mem_debug_config 
+23ee 2040245d call quit_connection 
+23ef 793f8011 set0 mark_testmode ,mark 
+23f0 20407fb0 call test_enable_white 
+23f1 68008030 fetch 1 ,mem_state 
+23f2 20600000 rtn 
+
+role_switch_slave:
+23f3 44a04008 bpatch patch08_0 ,mem_patch08 
+23f4 204021c9 call role_switch_check 
+23f5 24740000 nrtn user 
+23f6 18820400 copy am_addr ,temp 
+23f7 20402a6f call get_free_amaddr 
+23f8 60008181 store 1 ,mem_fhs_am_addr 
+23f9 18420800 copy temp ,am_addr 
+23fa 70001120 jam param_newconnto ,mem_newconnto_counter 
+
+roles_sendfhs_loop:
+23fb 44a0c008 bpatch patch08_1 ,mem_patch08 
+23fc 20402a4f call rf_setup_time_master_slot 
+23fd 18000202 force type_fhs ,type 
+23fe 2040274f call slave_send_access 
+23ff 1c427e00 deposit clkn_bt 
+2400 60020161 store 4 ,mem_clkn_bt 
+2401 20402762 call transmit_packet 
+2402 20402a4d call rf_setup_time_slave_slot 
+2403 7837fc00 enable user3 
+2404 204024f6 call slave_receive_access 
+2405 202c240d branch roles_got_fhs_reply ,sync 
+2406 204028f9 call shutdown_radio 
+2407 20402455 call new_conn_timeout 
+2408 243a23fb nbranch roles_sendfhs_loop ,blank 
+2409 c6820000 rtnmark0 mark_accept_switch 
+240a 70007c34 jam lmp_slot_offset ,mem_lmo_opcode2 
+240b 79200003 set1 mark_switch_initiated ,mark 
+240c 20600000 rtn 
+
+roles_got_fhs_reply:
+240d 78387c00 enable clknt 
+240e 20402435 call prepare_newconn 
+240f 204028a4 call afh_clear 
+
+roles_newconn_loop:
+2410 44a14008 bpatch patch08_2 ,mem_patch08 
+2411 204022f2 call master_newconn_once 
+2412 202c2419 branch roles_newconn_responded ,sync 
+2413 20402455 call new_conn_timeout 
+2414 243a2410 nbranch roles_newconn_loop ,blank 
+2415 78587c00 disable clknt 
+2416 1d027e00 deposit clke_bt 
+2417 600240ca store 4 ,mem_next_btclk 
+2418 20600000 rtn 
+
+roles_newconn_responded:
+2419 7834fc00 enable master 
+241a c582241f bmark0 mark_accept_switch ,roles_newconn_nolmp 
+241b 793f8004 set0 mark_accept_switch ,mark 
+241c 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
+241d 70007d33 jam lmp_host_connection_req ,mem_lmi_opcode2 
+241e 204062f8 call tid_set_reply 
+
+roles_newconn_nolmp:
+241f 18827e00 deposit am_addr 
+2420 60008077 store 1 ,mem_amaddr 
+2421 18007e00 force 0 ,pdata 
+2422 60030038 store 6 ,mem_clk_offset 
+2423 68008031 fetch 1 ,mem_mode 
+2424 79207e01 set1 mode_master ,pdata 
+2425 60008031 store 1 ,mem_mode 
+2426 20402a88 call supervision_flush 
+2427 7854fc00 disable master 
+2428 78347c00 enable user 
+2429 20600000 rtn 
+
+init_rx_packet_flags:
+242a 44a1c008 bpatch patch08_3 ,mem_patch08 
+242b 7856fc00 disable match 
+242c 793f8005 set0 mark_loopback ,mark 
+242d 793f800a set0 mark_am_addr_broadcast ,mark 
+242e 793f8010 set0 mark_longpacket ,mark 
+242f 793f800f set0 mark_old_packet ,mark 
+2430 68008047 fetch 1 ,mem_arq 
+2431 793ffe05 set0 arqnx ,pdata 
+2432 79207e04 set1 flowx ,pdata 
+2433 60008047 store 1 ,mem_arq 
+2434 20600000 rtn 
+
+prepare_newconn:
+2435 44a24008 bpatch patch08_4 ,mem_patch08 
+2436 70001120 jam param_newconnto ,mem_newconnto_counter 
+2437 70004750 jam param_newconn_arq ,mem_arq 
+2438 680140bf fetch 2 ,mem_rx_window_init 
+2439 6001003e store 2 ,mem_rx_window 
+243a 1c427e00 deposit clkn_bt 
+243b 600240ca store 4 ,mem_next_btclk 
+243c 20780000 rtn clknt 
+243d 1d027e00 deposit clke_bt 
+243e 600240ca store 4 ,mem_next_btclk 
+243f 20600000 rtn 
+
+newconn_init:
+2440 44a2c008 bpatch patch08_5 ,mem_patch08 
+2441 20405d04 call init_lmp_reinit 
+2442 20402459 call new_conn_handle 
+2443 60008046 store 1 ,mem_conn_handle 
+2444 58000000 setarg 0 
+2445 6001025d store 2 ,mem_l2cap_rxbuff1_len 
+2446 58001c80 setarg param_supervision_to 
+2447 60010051 store 2 ,mem_supervision_to 
+2448 68008030 fetch 1 ,mem_state 
+2449 79207e00 set1 state_inconn ,pdata 
+244a 60008030 store 1 ,mem_state 
+244b 70004b00 jam 0 ,mem_op 
+244c 70004c00 jam 0 ,mem_state_map 
+244d 7000a000 jam 0 ,mem_lpm_current_mult 
+244e 20202a88 branch supervision_flush 
+
+clear_linkkey:
+244f 44a34008 bpatch patch08_6 ,mem_patch08 
+2450 18007e00 force 0 ,pdata 
+2451 600441be store 8 ,mem_link_key 
+2452 e0a40000 istore 8 ,contw 
+2453 204021c5 call clear_linkstate 
+2454 20202254 branch context_traverse_linkkey 
+
+new_conn_timeout:
+2455 68008011 fetch 1 ,mem_newconnto_counter 
+2456 1fe0ffff increase -1 ,pdata 
+2457 60008011 store 1 ,mem_newconnto_counter 
+2458 20600000 rtn 
+
+new_conn_handle:
+2459 6800c0cf fetch 1 ,mem_handle_num 
+245a 1fe0fe01 increase 1 ,pdata 
+245b 6000c0cf store 1 ,mem_handle_num 
+245c 20600000 rtn 
+
+quit_connection:
+245d 44a3c008 bpatch patch08_7 ,mem_patch08 
+245e 6800c1ce fetch 1 ,mem_hci_cmd 
+245f c001a462 beq hci_cmd_remote_name_req ,quit_connection_name 
+2460 68008048 fetch 1 ,mem_lmp_to_send 
+2461 c080a466 bne lmp_name_req ,quit_connection_cont 
+
+quit_connection_name:
+2462 20404d06 call cmd_check_plap 
+2463 2422a466 nbranch quit_connection_cont ,zero 
+2464 204021a4 call master_name_error 
+2465 7041ce00 jam 0 ,mem_hci_cmd 
+
+quit_connection_cont:
+2466 44a44009 bpatch patch09_0 ,mem_patch09 
+2467 204033af call app_disconn_reason_collect_bt 
+2468 204026e9 call sniff_exit 
+2469 700a9902 jam bt_evt_bb_disconnected ,mem_fifo_temp 
+246a 20407d86 call ui_ipc_send_event 
+246b 20405cf7 call init_lmp_work 
+246c 20404d6b call l2cap_init_work 
+246d 2040757d call sp_initialize 
+246e 68008030 fetch 1 ,mem_state 
+246f 793ffe00 set0 state_inconn 
+2470 60008030 store 1 ,mem_state 
+2471 70468100 jam 0 ,memui_reconnect_mode 
+2472 6800804c fetch 1 ,mem_state_map 
+2473 2fe18000 compare 0x0 ,pdata ,0xc0 
+2474 2020a476 branch quit_connection_not_clear_mark ,true 
+2475 793f8001 set0 mark_rxbuf_inuse ,mark 
+
+quit_connection_not_clear_mark:
+2476 68008047 fetch 1 ,mem_arq 
+2477 c301a478 bbit0 wack ,quit_connection_not_clear_tx 
+
+quit_connection_not_clear_tx:
+2478 6800804b fetch 1 ,mem_op 
+2479 c4030000 rtnbit0 op_txl2cap 
+247a 793f8002 set0 mark_tx_l2cap ,mark 
+247b 20600000 rtn 
+
+slave_newconn_once:
+247c 44a4c009 bpatch patch09_1 ,mem_patch09 
+247d 68008174 fetch 1 ,extm_newconn_am_addr 
+247e 207a0000 rtn blank 
+247f 1fe20800 icopy am_addr 
+2480 20402514 call slave_conn_recv_packet 
+2481 24768000 nrtn match 
+2482 18000200 force type_null ,type 
+2483 20402757 call slave_conn_send_packet 
+2484 18827e00 deposit am_addr 
+2485 60008077 store 1 ,mem_amaddr 
+2486 18007e00 force 0 ,pdata 
+2487 60008174 store 1 ,extm_newconn_am_addr 
+2488 20600000 rtn 
+
+prepare_tx:
+2489 44a54009 bpatch patch09_2 ,mem_patch09 
+248a 68008030 fetch 1 ,mem_state 
+248b c3012496 bbit0 state_insco ,prepare_tx_not_sco 
+248c 18000207 force type_hv3 ,type 
+248d c583a495 bmark0 mark_esco ,prepare_tx_not_esco 
+248e 20402725 call check_esco_amaddr 
+248f 2420a496 nbranch prepare_tx_not_sco ,true 
+2490 20372496 branch prepare_tx_not_sco ,attempt 
+2491 204024c1 call set_wait_ack 
+2492 58000002 setarg 2 
+2493 600140c8 store 2 ,mem_retransmission_cnt 
+2494 20600000 rtn 
+
+prepare_tx_not_esco:
+2495 24770000 nrtn attempt 
+
+prepare_tx_not_sco:
+2496 44a5c009 bpatch patch09_3 ,mem_patch09 
+2497 20402243 call context_check_all_wack 
+2498 2422a4a7 nbranch prepare_tx_no_retransmit ,zero 
+2499 68008047 fetch 1 ,mem_arq 
+249a c301a4b0 bbit0 wack ,prepare_tx_pollnull 
+
+prepare_tx_retransmit:
+249b c502a4b4 bmark1 mark_loopback ,prepare_tx_loopback 
+249c 6800817f fetch 1 ,mem_debug_config 
+249d c28324ba bbit1 debug_tx_pattern ,prepare_tx_txpat 
+249e 680140c8 fetch 2 ,mem_retransmission_cnt 
+249f 1fe0ffff increase -1 ,pdata 
+24a0 600140c8 store 2 ,mem_retransmission_cnt 
+24a1 203a24a5 branch prepare_tx_nomore_retransmit ,blank 
+24a2 6800c0c5 fetch 1 ,mem_last_type 
+24a3 98000200 iforce type 
+24a4 20600000 rtn 
+
+prepare_tx_nomore_retransmit:
+24a5 44a64009 bpatch patch09_4 ,mem_patch09 
+24a6 20402687 call clear_got_tx 
+
+prepare_tx_no_retransmit:
+24a7 20402725 call check_esco_amaddr 
+24a8 2020a4b0 branch prepare_tx_pollnull ,true 
+24a9 2040600a call send_lmp 
+24aa 203424be branch prepare_tx_sendlmp ,user 
+24ab 6800804b fetch 1 ,mem_op 
+24ac c28324c0 bbit1 op_txl2cap ,prepare_tx_sendl2cap 
+24ad c502a4b4 bmark1 mark_loopback ,prepare_tx_loopback 
+24ae 6800817f fetch 1 ,mem_debug_config 
+24af c28324ba bbit1 debug_tx_pattern ,prepare_tx_txpat 
+
+prepare_tx_pollnull:
+24b0 18000201 force type_poll ,type 
+24b1 20748000 rtn master 
+24b2 18000200 force type_null ,type 
+24b3 20600000 rtn 
+
+prepare_tx_loopback:
+24b4 44a6c009 bpatch patch09_5 ,mem_patch09 
+24b5 68008019 fetch 1 ,mem_rx_type 
+24b6 98000200 iforce type 
+24b7 c1808000 rtnne 1 
+24b8 18000200 force type_null ,type 
+24b9 20600000 rtn 
+
+prepare_tx_txpat:
+24ba 68008158 fetch 1 ,test_mode_packet_type 
+24bb 1fe1020f and pdata ,0xf ,type 
+24bc 79200005 set1 mark_loopback ,mark 
+24bd 20600000 rtn 
+
+prepare_tx_sendlmp:
+24be 18000213 force type_lmp ,type 
+24bf 202024c1 branch set_wait_ack 
+
+prepare_tx_sendl2cap:
+24c0 204024ca call tx_l2cap_type 
+
+set_wait_ack:
+24c1 44a74009 bpatch patch09_6 ,mem_patch09 
+24c2 68088047 fetcht 1 ,mem_arq 
+24c3 79200403 set1 wack ,temp 
+24c4 60088047 storet 1 ,mem_arq 
+24c5 18227e00 deposit type 
+24c6 6000c0c5 store 1 ,mem_last_type 
+24c7 5800ffff setarg 0xffff 
+24c8 600140c8 store 2 ,mem_retransmission_cnt 
+24c9 20600000 rtn 
+
+tx_l2cap_type:
+24ca 44a7c009 bpatch patch09_7 ,mem_patch09 
+24cb 6800804c fetch 1 ,mem_state_map 
+24cc 2feffe05 isolate1 smap_edr ,pdata 
+24cd 680141dc fetch 2 ,mem_tx_len 
+24ce 2020a4e0 branch tx_l2cap_type_edr ,true 
+24cf 18000203 force type_dm1 ,type 
+24d0 1fe67c11 sub pdata ,17 ,null 
+24d1 20610000 rtn positive 
+24d2 18000204 force type_dh1 ,type 
+24d3 1fe67c1b sub pdata ,27 ,null 
+24d4 20610000 rtn positive 
+24d5 1800020a force type_dm3 ,type 
+24d6 1fe67c79 sub pdata ,121 ,null 
+24d7 20610000 rtn positive 
+24d8 1800020b force type_dh3 ,type 
+24d9 1fe67cb7 sub pdata ,183 ,null 
+24da 20610000 rtn positive 
+24db 1800020e force type_dm5 ,type 
+24dc 1fe67ce0 sub pdata ,224 ,null 
+24dd 20610000 rtn positive 
+24de 1800020f force type_dh5 ,type 
+24df 20600000 rtn 
+
+tx_l2cap_type_edr:
+24e0 18000203 force type_dm1 ,type 
+24e1 1fe67c11 sub pdata ,17 ,null 
+24e2 20610000 rtn positive 
+24e3 18000204 force type_dh1 ,type 
+24e4 1fe67c36 sub pdata ,54 ,null 
+24e5 20610000 rtn positive 
+24e6 1800020a force type_dm3 ,type 
+24e7 d840016f arg 367 ,temp 
+24e8 98467c00 isub temp ,null 
+24e9 24610000 nrtn positive 
+24ea 1800020e force type_dm5 ,type 
+24eb d84002a7 arg 679 ,temp 
+24ec 98467c00 isub temp ,null 
+24ed 24610000 nrtn positive 
+24ee 1800020f force type_dh5 ,type 
+24ef 20600000 rtn 
+
+slave_receive_master_slot:
+24f0 68008030 fetch 1 ,mem_state 
+24f1 c300a4f5 bbit0 state_insniff ,slave_receive_notsniff 
+24f2 68010032 fetch 2 ,mem_tsniff 
+24f3 203a24f5 branch slave_receive_notsniff ,blank 
+24f4 243724f7 nbranch slave_receive_sniff ,attempt 
+
+slave_receive_notsniff:
+24f5 20402a4f call rf_setup_time_master_slot 
+
+slave_receive_access:
+24f6 1d00c201 add clke_bt ,1 ,bt_clk 
+
+slave_receive_sniff:
+24f7 78287c00 enable swfine 
+24f8 6801003e fetch 2 ,mem_rx_window 
+24f9 1fe37e00 rshift pdata ,pdata 
+24fa d8400500 arg param_pll_setup ,temp 
+24fb 9840fe00 iadd temp ,pdata 
+24fc 20402a24 call ahead_window 
+24fd 204028ea call fetch_extm_bt_adr 
+24fe 18004803 force 0x03 ,freq_mode 
+24ff 204028cc call rx_radio_freq 
+2500 2040242a call init_rx_packet_flags 
+2501 204029f1 call prep_crypt 
+2502 44a8400a bpatch patch0a_0 ,mem_patch0a 
+2503 6801003e fetch 2 ,mem_rx_window 
+2504 1fe37e00 rshift pdata ,pdata 
+2505 20402a24 call ahead_window 
+2506 204029eb call start_receiver 
+2507 7826fc00 enable decode_fec0 
+2508 6801003e fetch 2 ,mem_rx_window 
+2509 d84003bb arg param_clke_cal ,temp 
+250a 9840b600 iadd temp ,stop_watch 
+250b 37c18400 correlate null ,timeout 
+250c 1b420400 copy clke ,temp 
+250d 600b009a storet 6 ,mem_sync_clke 
+250e 7846fc00 disable decode_fec0 
+250f 246c0000 nrtn sync 
+2510 dd2003bb arg param_clke_cal ,clke_rt 
+2511 1c225000 copy bt_clk ,clke_bt 
+2512 2035ab05 branch lpm_adjust_clk ,wake 
+2513 20600000 rtn 
+
+slave_conn_recv_packet:
+2514 44a8c00a bpatch patch0a_1 ,mem_patch0a 
+2515 204024f0 call slave_receive_master_slot 
+2516 242c28f9 nbranch shutdown_radio ,sync 
+2517 204029bb call save_rssi 
+2518 c588a51c bmark0 mark_testmode ,receive_packet 
+2519 680100f6 fetch 2 ,mem_tst_pktcnt_sync 
+251a 1fe0fe01 increase 1 ,pdata 
+251b 600100f6 store 2 ,mem_tst_pktcnt_sync 
+
+receive_packet:
+251c 1c230400 rshift bt_clk ,temp 
+251d 18419c40 or temp ,0x40 ,white_init 
+
+receive_packet_whitened:
+251e 44a9400a bpatch patch0a_2 ,mem_patch0a 
+251f 7823fc00 enable enable_white 
+2520 78257c00 enable enable_hec 
+2521 7825fc00 enable decode_fec1 
+2522 09800003 parse demod ,bucket ,3 
+2523 198cfe00 rshift8 pwindow ,pdata 
+2524 6000815d store 1 ,mem_temp_am_addr 
+2525 09800004 parse demod ,bucket ,4 
+2526 08008007 inject bucket ,7 
+2527 19827e00 copy pwindow ,pdata 
+2528 60008019 store 1 ,mem_rx_type 
+2529 09800003 parse demod ,bucket ,3 
+252a 198cfe00 rshift8 pwindow ,pdata 
+252b 6000815e store 1 ,mem_temp_arq 
+252c 68008019 fetch 1 ,mem_rx_type 
+252d 1fe67c03 sub pdata ,3 ,null 
+252e 20212533 branch receive_packet_noedr ,positive 
+252f c003a533 beq 7 ,receive_packet_noedr 
+2530 6800804c fetch 1 ,mem_state_map 
+2531 2feffe05 isolate1 smap_edr ,pdata 
+2532 7920aa01 setflag true ,psk ,radio_ctrl 
+
+receive_packet_noedr:
+2533 44a9c00a bpatch patch0a_3 ,mem_patch0a 
+2534 09800008 parse demod ,bucket ,8 
+2535 7845fc00 disable decode_fec1 
+2536 78457c00 disable enable_hec 
+2537 20232631 branch error_header ,crc_failed 
+2538 c588a53c bmark0 mark_testmode ,receive_packet_amchk 
+2539 680100f8 fetch 2 ,mem_tst_pktcnt_hec 
+253a 1fe0fe01 increase 1 ,pdata 
+253b 600100f8 store 2 ,mem_tst_pktcnt_hec 
+
+receive_packet_amchk:
+253c 44aa400a bpatch patch0a_4 ,mem_patch0a 
+253d 6800815d fetch 1 ,mem_temp_am_addr 
+253e 2fe00e00 compare 0 ,pdata ,0x07 
+253f 7920800a setflag true ,mark_am_addr_broadcast ,mark 
+2540 2020a54c branch am_addr_ok ,true 
+2541 a8800e00 icompare 0x07 ,am_addr 
+2542 2020a54b branch am_addr_match ,true 
+2543 c583a64d bmark0 mark_esco ,end_of_packet 
+2544 680880b0 fetcht 1 ,mem_saved_amaddr 
+2545 a8400e00 icompare 0x7 ,temp 
+2546 2420a64d nbranch end_of_packet ,true 
+2547 68008047 fetch 1 ,mem_arq 
+2548 793ffe05 set0 arqnx ,pdata 
+2549 79207e04 set1 flowx ,pdata 
+254a 60008047 store 1 ,mem_arq 
+
+am_addr_match:
+254b 7836fc00 enable match 
+
+am_addr_ok:
+254c 44aac00a bpatch patch0a_5 ,mem_patch0a 
+254d 68008019 fetch 1 ,mem_rx_type 
+254e 1fe20200 icopy type 
+254f c505255b bmark1 mark_am_addr_broadcast ,arqn_bypass 
+2550 6808815e fetcht 1 ,mem_temp_arq 
+2551 68008047 fetch 1 ,mem_arq 
+2552 793ffe00 set0 flow ,pdata 
+2553 284ffe00 isolate1 flow ,temp 
+2554 7920fe00 setflag true ,flow ,pdata 
+2555 284ffe01 isolate1 arqn ,temp 
+2556 7920fe01 setflag true ,arqn ,pdata 
+2557 60008047 store 1 ,mem_arq 
+2558 284c0001 isolate0 arqn ,temp 
+2559 2020a55b branch arqn_bypass ,true 
+255a 20402687 call clear_got_tx 
+
+arqn_bypass:
+255b 44ab400a bpatch patch0a_6 ,mem_patch0a 
+255c d8400000 arg 0 ,temp 
+255d 20402a1c call reserve_slot 
+255e 18217e0f and type ,0xf ,pdata 
+255f c000a587 beq type_poll ,process_poll 
+2560 c000264d beq type_null ,end_of_packet 
+2561 c0012659 beq type_fhs ,process_fhs 
+2562 6808815e fetcht 1 ,mem_temp_arq 
+2563 68008047 fetch 1 ,mem_arq 
+2564 a8400800 icompare 0x04 ,temp 
+2565 2420a569 nbranch rx_type_dispatch ,true 
+2566 c5852568 bmark0 mark_am_addr_broadcast ,failed_seqn 
+2567 c303a569 bbit0 bcast1 ,rx_type_dispatch 
+
+failed_seqn:
+2568 7920000f set1 mark_old_packet ,mark 
+
+rx_type_dispatch:
+2569 44abc00a bpatch patch0a_7 ,mem_patch0a 
+256a 18227e00 deposit type 
+256b c001a589 beq type_dm1 ,process_dm1 
+256c c002258d beq type_dh1 ,process_dh1 
+256d c003a578 beq type_hv3 ,process_hev 
+256e c004258c beq type_3dh1 ,process_3dh1 
+256f d8400004 arg 4 ,temp 
+2570 20402a1c call reserve_slot 
+2571 c0052588 beq type_dm3 ,process_dm3 
+2572 c005a58b beq type_dh3 ,process_dh3 
+2573 d8400008 arg 8 ,temp 
+2574 20402a1c call reserve_slot 
+2575 c0072588 beq type_dm5 ,process_dm5 
+2576 c007a58b beq type_dh5 ,process_dh5 
+2577 20600000 rtn 
+
+process_hev:
+2578 44ac400b bpatch patch0b_0 ,mem_patch0b 
+2579 7826fc00 enable decode_fec0 
+257a 7824fc00 enable enable_crc 
+257b 78277c00 enable encrypt 
+257c d8a000d1 arg mem_sco_ibuf ,contw 
+257d 1800721e force 30 ,loopcnt 
+
+process_hev_loop:
+257e 09800008 parse demod ,bucket ,8 
+257f 19897e00 rshift3 pwindow ,pdata 
+2580 e0a08000 istore 1 ,contw 
+2581 c200257e loop process_hev_loop 
+2582 c583a64d bmark0 mark_esco ,end_of_packet 
+2583 09800010 parse demod ,bucket ,16 
+2584 7d230008 nsetflag crc_failed ,mark_esco_rxok ,mark 
+2585 2023263d branch error_payload ,crc_failed 
+2586 20202620 branch ack_payload 
+
+process_poll:
+2587 2020264d branch end_of_packet 
+
+process_dm3:
+
+process_dm5:
+2588 79200010 set1 mark_longpacket ,mark 
+
+process_dm1:
+2589 78267c00 enable decode_fec2 
+258a 2020258e branch process_dmh 
+
+process_dh3:
+
+process_dh5:
+258b 79200010 set1 mark_longpacket ,mark 
+
+process_3dh1:
+258c 79202a02 set1 psk3m ,radio_ctrl 
+
+process_dh1:
+258d 7826fc00 enable decode_fec0 
+
+process_dmh:
+258e 44acc00b bpatch patch0b_1 ,mem_patch0b 
+258f c500a64d bmark1 mark_rxbuf_inuse ,end_of_packet 
+2590 2aac0001 isolate0 psk ,radio_ctrl 
+2591 2020a59a branch process_dmh_noedr ,true 
+2592 7843fc00 disable enable_white 
+2593 7826fc00 enable decode_fec0 
+2594 78467c00 disable decode_fec2 
+2595 1c409602 add clkn_bt ,2 ,timeup 
+2596 34530400 correlate clkn_bt ,meet 
+2597 242c263d nbranch error_payload ,sync 
+2598 79200010 set1 mark_longpacket ,mark 
+2599 7823fc00 enable enable_white 
+
+process_dmh_noedr:
+259a 44ad400b bpatch patch0b_2 ,mem_patch0b 
+259b 78277c00 enable encrypt 
+259c 7824fc00 enable enable_crc 
+259d 09800003 parse demod ,bucket ,3 
+259e 198cfe00 rshift8 pwindow ,pdata 
+259f 60008180 store 1 ,mem_lch_code 
+25a0 09800005 parse demod ,bucket ,5 
+25a1 c50825a5 bmark1 mark_longpacket ,process_dmh_long 
+25a2 19897200 rshift3 pwindow ,loopcnt 
+25a3 1f297200 rshift3 loopcnt ,loopcnt 
+25a4 202025a8 branch process_dmh_common 
+
+process_dmh_long:
+25a5 09800005 parse demod ,bucket ,5 
+25a6 19837200 rshift pwindow ,loopcnt 
+25a7 09800003 parse demod ,bucket ,3 
+
+process_dmh_common:
+25a8 44adc00b bpatch patch0b_3 ,mem_patch0b 
+25a9 1f227e00 deposit loopcnt 
+25aa 6001015f store 2 ,mem_len 
+25ab 203a25e8 branch process_dmh_data_end ,blank 
+25ac 9ea67c00 isub mask3ff ,null 
+25ad 2021263d branch error_payload ,positive 
+25ae 44ae400b bpatch patch0b_4 ,mem_patch0b 
+25af 793f8000 set0 mark_fhs_eir ,mark 
+25b0 68008180 fetch 1 ,mem_lch_code 
+25b1 1fe17e03 and_into 0x03 ,pdata 
+25b2 d8a00551 arg mem_rxbuf ,contw 
+25b3 c001a5ba beq llid_lmp ,process_lmp 
+25b4 c508a5e4 bmark1 mark_testmode ,process_dmh_data 
+25b5 68008180 fetch 1 ,mem_lch_code 
+25b6 1fe17e03 and_into 0x03 ,pdata 
+25b7 c00125bf beq llid_l2cap_start ,process_dmh_data_l2cap_start_pkt 
+25b8 c000a5d3 beq llid_l2cap_cont ,process_dmh_data_l2cap_continue_pkt 
+25b9 2020263d branch error_payload 
+
+process_lmp:
+25ba 6801015f fetch 2 ,mem_len 
+25bb 1fe67c70 sub pdata ,0x70 ,null 
+25bc 2421263d nbranch error_payload ,positive 
+25bd c507a620 bmark1 mark_old_packet ,ack_payload 
+25be 202025e4 branch process_dmh_data 
+
+process_dmh_data_l2cap_start_pkt:
+25bf 44aec00b bpatch patch0b_5 ,mem_patch0b 
+25c0 c507a620 bmark1 mark_old_packet ,ack_payload 
+25c1 6801015f fetch 2 ,mem_len 
+25c2 d84002e0 arg 0x2e0 ,temp 
+25c3 98467c00 isub temp ,null 
+25c4 2021263d branch error_payload ,positive 
+25c5 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
+25c6 c30025c9 bbit0 l2cap_inuse_buff1 ,process_dmh_data_into_buff1 
+25c7 c300a5ce bbit0 l2cap_inuse_buff2 ,process_dmh_data_into_buff2 
+25c8 2020264d branch end_of_packet 
+
+process_dmh_data_into_buff1:
+25c9 70026101 jam 1 ,mem_l2cap_rxbuff_new 
+25ca 6801025d fetch 2 ,mem_l2cap_rxbuff1_len 
+25cb c080264d bne 0 ,end_of_packet 
+25cc d8a01000 arg mem_l2cap_rxbuff1 ,contw 
+25cd 202025e4 branch process_dmh_data 
+
+process_dmh_data_into_buff2:
+25ce 70026102 jam 2 ,mem_l2cap_rxbuff_new 
+25cf 6801025f fetch 2 ,mem_l2cap_rxbuff2_len 
+25d0 c080264d bne 0 ,end_of_packet 
+25d1 d8a01400 arg mem_l2cap_rxbuff2 ,contw 
+25d2 202025e4 branch process_dmh_data 
+
+process_dmh_data_l2cap_continue_pkt:
+25d3 44af400b bpatch patch0b_6 ,mem_patch0b 
+25d4 c507a620 bmark1 mark_old_packet ,ack_payload 
+25d5 6801015f fetch 2 ,mem_len 
+25d6 d84002e0 arg 0x2e0 ,temp 
+25d7 98467c00 isub temp ,null 
+25d8 2021263d branch error_payload ,positive 
+25d9 68008261 fetch 1 ,mem_l2cap_rxbuff_new 
+25da c000a5dd beq 1 ,process_dmh_data_l2cap_continue_pkt1 
+25db c00125e1 beq 2 ,process_dmh_data_l2cap_continue_pkt2 
+25dc 2020264d branch end_of_packet 
+
+process_dmh_data_l2cap_continue_pkt1:
+25dd d8a01000 arg mem_l2cap_rxbuff1 ,contw 
+25de 6801025d fetch 2 ,mem_l2cap_rxbuff1_len 
+25df 98a08a00 iadd contw ,contw 
+25e0 202025e4 branch process_dmh_data 
+
+process_dmh_data_l2cap_continue_pkt2:
+25e1 d8a01400 arg mem_l2cap_rxbuff2 ,contw 
+25e2 6801025f fetch 2 ,mem_l2cap_rxbuff2_len 
+25e3 98a08a00 iadd contw ,contw 
+
+process_dmh_data:
+25e4 09800008 parse demod ,bucket ,8 
+25e5 19897e00 rshift3 pwindow ,pdata 
+25e6 e0a08000 istore 1 ,contw 
+25e7 c20025e4 loop process_dmh_data 
+
+process_dmh_data_end:
+25e8 44afc00b bpatch patch0b_7 ,mem_patch0b 
+25e9 09800010 parse demod ,bucket ,16 
+25ea 20232637 branch error_payload_crc ,crc_failed 
+25eb 6800c363 fetch 1 ,mem_l2cap_flow_ctrl_flag 
+25ec c000a64d beq l2cap_flow_ctrl_enable ,end_of_packet 
+25ed c508a60d bmark1 mark_testmode ,process_dmh_cont 
+25ee c507a64a bmark1 mark_old_packet ,redundant_payload 
+25ef 68008180 fetch 1 ,mem_lch_code 
+25f0 2fe00603 compare 3 ,pdata ,3 
+25f1 2020a60d branch process_dmh_cont ,true 
+25f2 6801015f fetch 2 ,mem_len 
+25f3 203a260d branch process_dmh_cont ,blank 
+25f4 44b0400c bpatch patch0c_0 ,mem_patch0c 
+25f5 68008261 fetch 1 ,mem_l2cap_rxbuff_new 
+25f6 c000a5f9 beq 1 ,process_l2cap_pass_crc_buff1 
+25f7 c0012603 beq 2 ,process_l2cap_pass_crc_buff2 
+25f8 20202a8c branch assert 
+
+process_l2cap_pass_crc_buff1:
+25f9 6801025d fetch 2 ,mem_l2cap_rxbuff1_len 
+25fa 6809015f fetcht 2 ,mem_len 
+25fb 9840fe00 iadd temp ,pdata 
+25fc 6001025d store 2 ,mem_l2cap_rxbuff1_len 
+25fd c0002a8c beq 0 ,assert 
+25fe 68091000 fetcht 2 ,mem_l2cap_rxbuff1 
+25ff 18408404 increase 4 ,temp 
+2600 98467c00 isub temp ,null 
+2601 2042a747 call l2cap_buff1_inuse ,zero 
+2602 2020260d branch process_dmh_cont 
+
+process_l2cap_pass_crc_buff2:
+2603 6801025f fetch 2 ,mem_l2cap_rxbuff2_len 
+2604 6809015f fetcht 2 ,mem_len 
+2605 9840fe00 iadd temp ,pdata 
+2606 6001025f store 2 ,mem_l2cap_rxbuff2_len 
+2607 c0002a8c beq 0 ,assert 
+2608 68091400 fetcht 2 ,mem_l2cap_rxbuff2 
+2609 18408404 add temp ,4 ,temp 
+260a 98467c00 isub temp ,null 
+260b 2042a74b call l2cap_buff2_inuse ,zero 
+260c 2020260d branch process_dmh_cont 
+
+process_dmh_cont:
+260d 44b0c00c bpatch patch0c_1 ,mem_patch0c 
+260e 6808804c fetcht 1 ,mem_state_map 
+260f 68008180 fetch 1 ,mem_lch_code 
+2610 2fe00603 compare 3 ,pdata ,0x03 
+2611 79208406 setflag true ,smap_rxlmp ,temp 
+2612 7d208407 nsetflag true ,smap_rxl2cap ,temp 
+2613 6008804c storet 1 ,mem_state_map 
+2614 2420a616 nbranch process_dmh_cont_rxbuf_not_use ,true 
+2615 79200001 set1 mark_rxbuf_inuse ,mark 
+
+process_dmh_cont_rxbuf_not_use:
+2616 c588a620 bmark0 mark_testmode ,ack_payload 
+2617 284ffe06 isolate1 smap_rxlmp ,temp 
+2618 2020a620 branch ack_payload ,true 
+2619 680100fa fetch 2 ,mem_tst_pktcnt_crc 
+261a 1fe0fe01 increase 1 ,pdata 
+261b 600100fa store 2 ,mem_tst_pktcnt_crc 
+261c 79200005 set1 mark_loopback ,mark 
+261d 793f8407 set0 smap_rxl2cap ,temp 
+261e 793f8001 set0 mark_rxbuf_inuse ,mark 
+261f 6008804c storet 1 ,mem_state_map 
+
+ack_payload:
+2620 44b1400c bpatch patch0c_2 ,mem_patch0c 
+2621 6808815e fetcht 1 ,mem_temp_arq 
+2622 68008047 fetch 1 ,mem_arq 
+2623 79207e05 set1 arqnx ,pdata 
+2624 284ffe02 isolate1 seqn ,temp 
+2625 7920fe02 setflag true ,seqn ,pdata 
+2626 280ffe0a isolate1 mark_am_addr_broadcast ,mark 
+2627 7920fe07 setflag true ,bcast1 ,pdata 
+2628 60008047 store 1 ,mem_arq 
+2629 6801015f fetch 2 ,mem_len 
+262a 243a264d nbranch end_of_packet ,blank 
+262b 6800804c fetch 1 ,mem_state_map 
+262c 793ffe07 set0 smap_rxl2cap ,pdata 
+262d 6000804c store 1 ,mem_state_map 
+262e 68008180 fetch 1 ,mem_lch_code 
+262f 2fe00e01 compare 0x01 ,pdata ,0x07 
+2630 2020264d branch end_of_packet 
+
+error_header:
+2631 44b1c00c bpatch patch0c_3 ,mem_patch0c 
+2632 7856fc00 disable match 
+2633 6801001a fetch 2 ,mem_rx_hec_err 
+2634 1fe0fe01 increase 1 ,pdata 
+2635 6001001a store 2 ,mem_rx_hec_err 
+2636 2020264d branch end_of_packet 
+
+error_payload_crc:
+2637 6801001c fetch 2 ,mem_rx_crc_err 
+2638 1fe0fe01 increase 1 ,pdata 
+2639 6001001c store 2 ,mem_rx_crc_err 
+263a 2040263e call discard_pkt 
+263b c588a63d bmark0 mark_testmode ,error_payload 
+263c 79200005 set1 mark_loopback ,mark 
+
+error_payload:
+263d 2020264d branch end_of_packet 
+
+discard_pkt:
+263e 44b2400c bpatch patch0c_4 ,mem_patch0c 
+263f 68008180 fetch 1 ,mem_lch_code 
+2640 2fe00603 compare 3 ,pdata ,0x03 
+2641 2420a646 nbranch discard_pkt_l2cap ,true 
+
+discard_pkt_lmp:
+2642 6808804c fetcht 1 ,mem_state_map 
+2643 793f8406 set0 smap_rxlmp ,temp 
+2644 6008804c storet 1 ,mem_state_map 
+2645 20600000 rtn 
+
+discard_pkt_l2cap:
+2646 6808804c fetcht 1 ,mem_state_map 
+2647 793f8407 set0 smap_rxl2cap ,temp 
+2648 6008804c storet 1 ,mem_state_map 
+2649 20204c0b branch h4_send_acl_trigger_clear 
+
+redundant_payload:
+264a 68008047 fetch 1 ,mem_arq 
+264b 79207e05 set1 arqnx ,pdata 
+264c 60008047 store 1 ,mem_arq 
+
+end_of_packet:
+264d 44b2c00c bpatch patch0c_5 ,mem_patch0c 
+264e 784efc00 disable encode_fec0 
+264f 784e7c00 disable encode_fec2 
+2650 7846fc00 disable decode_fec0 
+2651 78467c00 disable decode_fec2 
+2652 7844fc00 disable enable_crc 
+2653 78477c00 disable encrypt 
+2654 7843fc00 disable enable_white 
+2655 2030a8f9 branch shutdown_radio ,is_rx 
+2656 37d38200 until null ,tx_clear 
+2657 20000064 nop 100 
+2658 202028f9 branch shutdown_radio 
+
+process_fhs:
+2659 44b3400c bpatch patch0c_6 ,mem_patch0c 
+265a 7824fc00 enable enable_crc 
+265b 78267c00 enable decode_fec2 
+265c 09800048 parse demod ,bucket ,72 
+265d 2feffe3a isolate1 58 ,pdata 
+265e 79208000 setflag true ,mark_fhs_eir ,mark 
+265f 1c020400 copy bt_adr ,temp 
+2660 57e04000 ialigned bt_adr 
+2661 57e03c00 ialigned fhs0 
+2662 782afc00 pulse recalc 
+2663 380bffff setsect 2 ,0xfffff 
+2664 380cffff setsect 3 ,0x0ffff 
+2665 20000020 nop 32 
+2666 29a80000 iverify fhs_parity 
+2667 1d827e00 deposit lap 
+2668 60018178 store 3 ,extm_lap 
+2669 1da27e00 deposit uap 
+266a 6000817b store 1 ,extm_uap 
+266b 18424000 copy temp ,bt_adr 
+266c 2020a66e branch fhs_parity_ok ,true 
+266d 2020263d branch error_payload 
+
+fhs_parity_ok:
+266e 44b3c00c bpatch patch0c_7 ,mem_patch0c 
+266f 09800048 parse demod ,bucket ,72 
+2670 57e03e00 ialigned fhs1 
+2671 57e00800 ialigned am_addr 
+2672 57e05c00 ialigned nap 
+2673 57e02400 ialigned regb 
+2674 18007e00 force 0 ,pdata 
+2675 09800010 parse demod ,bucket ,16 
+2676 2023263d branch error_payload ,crc_failed 
+2677 5ffffffc setarg 0x0ffffffc 
+2678 9a417e00 iand regb ,pdata 
+2679 60020165 store 4 ,mem_clke_bt 
+267a 1ba27e00 deposit fhs_class 
+267b 60018175 store 3 ,extm_class 
+267c 1b827e00 deposit fhs_misc 
+267d 60008173 store 1 ,extm_fhs_misc 
+267e 18827e00 deposit am_addr 
+267f 60008174 store 1 ,extm_newconn_am_addr 
+2680 1dc27e00 deposit nap 
+2681 6001017c store 2 ,extm_nap 
+2682 1c227e00 deposit bt_clk 
+2683 08008220 inject rxf ,32 
+2684 28201e02 compare type_fhs ,type ,0x0f 
+2685 7920800b setflag true ,mark_fhs_already_good ,mark 
+2686 2020264d branch end_of_packet 
+
+clear_got_tx:
+2687 44b4400d bpatch patch0d_0 ,mem_patch0d 
+2688 68008047 fetch 1 ,mem_arq 
+2689 c4018000 rtnbit0 wack 
+268a 793ffe03 set0 wack ,pdata 
+268b 79407e06 setflip seqnx ,pdata 
+268c 60008047 store 1 ,mem_arq 
+268d 6800c0c5 fetch 1 ,mem_last_type 
+268e c009a69c beq type_lmp ,clear_got_txlmp 
+268f c1038000 rtneq type_hv3 
+2690 6800804b fetch 1 ,mem_op 
+2691 c4030000 rtnbit0 op_txl2cap ,pdata 
+2692 793ffe06 set0 op_txl2cap ,pdata 
+2693 79207e07 set1 op_pkt_comp ,pdata 
+2694 6000804b store 1 ,mem_op 
+2695 793f8002 set0 mark_tx_l2cap ,mark 
+2696 68014246 fetch 2 ,mem_l2cap_tx_multi_offset 
+2697 247a0000 nrtn blank 
+2698 6800804b fetch 1 ,mem_op 
+2699 793ffe07 set0 op_pkt_comp ,pdata 
+269a 6000804b store 1 ,mem_op 
+269b 2020525d branch l2cap_malloc_free 
+
+clear_got_txlmp:
+269c 44b4c00d bpatch patch0d_1 ,mem_patch0d 
+269d 680084b7 fetch 1 ,mem_lmo_header_opcode 
+269e 1fe37e00 rshift pdata ,pdata 
+269f c008a6b8 beq lmp_start_encryption_req ,start_encryption 
+26a0 c00926c0 beq lmp_stop_encryption_req ,stop_encryption 
+26a1 c00c26e9 beq lmp_unsniff_req ,sniff_exit 
+26a2 c03fa6a8 beq lmp_escape ,clear_lmp_escape 
+26a3 c1818000 rtnne lmp_accepted 
+26a4 680084b8 fetch 1 ,mem_lmo_payload 
+26a5 c015a6b0 beq lmp_sco_link_req ,sco_link_req_by_slave 
+26a6 c008a6ab beq lmp_start_encryption_req ,clear_send_setup_complete 
+26a7 20600000 rtn 
+
+clear_lmp_escape:
+26a8 680084b8 fetch 1 ,mem_lmo_payload 
+26a9 79207e07 set1 7 ,pdata 
+26aa 20600000 rtn 
+
+clear_send_setup_complete:
+26ab 20748000 rtn master 
+26ac 68008030 fetch 1 ,mem_state 
+26ad c3820000 rtnbit1 state_conn_comp 
+26ae 70007c31 jam lmp_setup_complete ,mem_lmo_opcode2 
+26af 20600000 rtn 
+
+sco_link_req_by_slave:
+26b0 20748000 rtn master 
+26b1 68008031 fetch 1 ,mem_mode 
+26b2 2feffe04 isolate1 send_sco_when_slave ,pdata 
+26b3 2020a6b5 branch clean_mem_mode ,true 
+26b4 20600000 rtn 
+
+clean_mem_mode:
+26b5 793ffe04 set0 send_sco_when_slave ,pdata 
+26b6 60008031 store 1 ,mem_mode 
+26b7 20600000 rtn 
+
+start_encryption:
+26b8 44b5400d bpatch patch0d_2 ,mem_patch0d 
+26b9 6800804c fetch 1 ,mem_state_map 
+26ba 79207e02 set1 smap_encryption ,pdata 
+26bb 6000804c store 1 ,mem_state_map 
+26bc 70801101 jam 1 ,core_encrypt 
+26bd 68008030 fetch 1 ,mem_state 
+26be 2feffe04 isolate1 state_conn_comp ,pdata 
+26bf 20600000 rtn 
+
+stop_encryption:
+26c0 44b5c00d bpatch patch0d_3 ,mem_patch0d 
+26c1 6800804c fetch 1 ,mem_state_map 
+26c2 793ffe02 set0 smap_encryption ,pdata 
+26c3 6000804c store 1 ,mem_state_map 
+26c4 70801100 jam 0 ,core_encrypt 
+26c5 20600000 rtn 
+
+sniff_init:
+26c6 44b6400d bpatch patch0d_4 ,mem_patch0d 
+26c7 1c427e00 copy clkn_bt ,pdata 
+26c8 6002420c store 4 ,mem_lpm_delay_after_sniff 
+26c9 1c40a203 add clkn_bt ,3 ,rega 
+26ca 2034a6cc branch sniff_init_master ,master 
+26cb 1d00a203 add clke_bt ,3 ,rega 
+
+sniff_init_master:
+26cc 68090032 fetcht 2 ,mem_tsniff 
+26cd 1a227e00 deposit rega 
+26ce 793ffe1b set0 27 ,pdata 
+26cf 9846fc00 idiv temp 
+26d0 68010075 fetch 2 ,mem_dsniff 
+26d1 20407f86 call wait_div_end 
+26d2 18072600 remainder regc 
+26d3 9a667e00 isub regc ,pdata 
+26d4 202126d6 branch sniff_init_nowrap ,positive 
+26d5 9840fe00 iadd temp ,pdata 
+
+sniff_init_nowrap:
+26d6 9a20fe00 iadd rega ,pdata 
+26d7 60020034 store 4 ,mem_sniff_anchor 
+26d8 70455b00 jam switch_flag_init ,mem_switch_flag 
+26d9 68008030 fetch 1 ,mem_state 
+26da 79207e01 set1 state_insniff ,pdata 
+26db 60008030 store 1 ,mem_state 
+26dc 68008073 fetch 1 ,mem_sniff_attempt 
+26dd 6000808a store 1 ,mem_current_sniff_attempt 
+26de 58000000 setarg 0 
+26df 6001c169 store 3 ,mem_sniff_rcv 
+26e0 6001c16c store 3 ,mem_sniff_lost 
+26e1 6000c159 store 1 ,mem_sniff_unint_lost 
+26e2 700a990b jam bt_evt_enter_sniff ,mem_fifo_temp 
+26e3 20407d86 call ui_ipc_send_event 
+26e4 680140c1 fetch 2 ,mem_rx_window_sniff 
+26e5 6001003e store 2 ,mem_rx_window 
+26e6 24748000 nrtn master 
+26e7 18808fff add am_addr ,-1 ,queue 
+26e8 20600000 rtn 
+
+sniff_exit:
+26e9 44b6c00d bpatch patch0d_5 ,mem_patch0d 
+26ea 68008030 fetch 1 ,mem_state 
+26eb c4008000 rtnbit0 state_insniff 
+26ec 793ffe01 set0 state_insniff ,pdata 
+26ed 60008030 store 1 ,mem_state 
+26ee 680140bf fetch 2 ,mem_rx_window_init 
+26ef 6001003e store 2 ,mem_rx_window 
+26f0 7855fc00 disable wake 
+26f1 700a990c jam bt_evt_exit_sniff ,mem_fifo_temp 
+26f2 20207d86 branch ui_ipc_send_event 
+
+check_attempt:
+26f3 44b7400d bpatch patch0d_6 ,mem_patch0d 
+26f4 78377c00 enable attempt 
+26f5 68008030 fetch 1 ,mem_state 
+26f6 c280a700 bbit1 state_insniff ,check_attempt_sniff 
+26f7 c6088000 rtnmark1 mark_testmode 
+26f8 68008047 fetch 1 ,mem_arq 
+26f9 c3818000 rtnbit1 wack 
+26fa 68008048 fetch 1 ,mem_lmp_to_send 
+26fb 247a0000 nrtn blank 
+26fc 6800804b fetch 1 ,mem_op 
+26fd c3830000 rtnbit1 op_txl2cap 
+
+check_attempt_nomore:
+26fe 18007e00 force 0 ,pdata 
+26ff 20600000 rtn 
+
+check_attempt_sniff:
+2700 c301270f bbit0 state_insco ,check_attempt_not_sco 
+2701 6800808a fetch 1 ,mem_current_sniff_attempt 
+2702 c0012706 beq 2 ,check_attempt_sniff_restore_sco 
+2703 68008047 fetch 1 ,mem_arq 
+2704 c281a718 bbit1 wack ,check_attempt_notimeout 
+2705 c5842718 bmark0 mark_esco_rxok ,check_attempt_notimeout 
+
+check_attempt_sniff_restore_sco:
+2706 2434a718 nbranch check_attempt_notimeout ,master 
+2707 68008048 fetch 1 ,mem_lmp_to_send 
+2708 243a2718 nbranch check_attempt_notimeout ,blank 
+
+check_attempt_sco_master:
+2709 680080ef fetch 1 ,mem_sco_poll 
+270a 1fe0ffff increase -1 ,pdata 
+270b 600080ef store 1 ,mem_sco_poll 
+270c 243a26fe nbranch check_attempt_nomore ,blank 
+270d 7000ef10 jam param_sco_poll ,mem_sco_poll 
+270e 20202718 branch check_attempt_notimeout 
+
+check_attempt_not_sco:
+270f 6800808a fetch 1 ,mem_current_sniff_attempt 
+2710 c080a718 bne 1 ,check_attempt_notimeout 
+2711 6800808b fetch 1 ,mem_current_sniff_timeout 
+2712 203a2718 branch check_attempt_notimeout ,blank 
+2713 1fe0ffff increase -1 ,pdata 
+2714 6000808b store 1 ,mem_current_sniff_timeout 
+2715 68008047 fetch 1 ,mem_arq 
+2716 c3818000 rtnbit1 wack 
+2717 24768000 nrtn match 
+
+check_attempt_notimeout:
+2718 6800808a fetch 1 ,mem_current_sniff_attempt 
+2719 1fe0ffff increase -1 ,pdata 
+271a 6000808a store 1 ,mem_current_sniff_attempt 
+271b 20600000 rtn 
+
+sniff_check_window:
+271c 44b7c00d bpatch patch0d_7 ,mem_patch0d 
+271d 78487c00 disable swfine 
+271e 18423600 copy temp ,stop_watch 
+271f 20402260 call context_search_sniff_window 
+2720 78547c00 disable user 
+2721 24628000 nrtn zero 
+2722 18003600 force 0 ,stop_watch 
+2723 78347c00 enable user 
+2724 20600000 rtn 
+
+check_esco_amaddr:
+2725 6800c158 fetch 1 ,mem_esco_addr 
+2726 a881fe00 icompare 0xff ,am_addr 
+2727 20600000 rtn 
+
+parse_l2cap:
+2728 44b8400e bpatch patch0e_0 ,mem_patch0e 
+2729 793f8001 set0 mark_rxbuf_inuse ,mark 
+
+parse_l2cap_cont:
+272a 70026a00 jam l2cap_rx_clear ,mem_l2cap_rx_done 
+272b 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
+272c 207a0000 rtn blank 
+272d 2feffe00 isolate1 l2cap_inuse_buff1 ,pdata 
+272e d8c01000 arg mem_l2cap_rxbuff1 ,contr 
+272f 2040cd79 call process_rx_l2cap_pkt ,true 
+2730 44b8c00e bpatch patch0e_1 ,mem_patch0e 
+2731 6800826a fetch 1 ,mem_l2cap_rx_done 
+2732 c000a73b beq l2cap_rx_done ,parse_l2cap_release_buff1 
+2733 70026a00 jam l2cap_rx_clear ,mem_l2cap_rx_done 
+2734 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
+2735 c4008000 rtnbit0 l2cap_inuse_buff2 
+2736 d8c01400 arg mem_l2cap_rxbuff2 ,contr 
+2737 20404d79 call process_rx_l2cap_pkt 
+2738 6800826a fetch 1 ,mem_l2cap_rx_done 
+2739 c000a741 beq l2cap_rx_done ,parse_l2cap_release_buff2 
+273a 20600000 rtn 
+
+parse_l2cap_release_buff1:
+273b 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
+273c 793ffe00 set0 l2cap_inuse_buff1 ,pdata 
+273d 60008263 store 1 ,mem_l2cap_rxbuff_inuse 
+273e 58000000 setarg 0 
+273f 6001025d store 2 ,mem_l2cap_rxbuff1_len 
+2740 20600000 rtn 
+
+parse_l2cap_release_buff2:
+2741 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
+2742 793ffe01 set0 l2cap_inuse_buff2 ,pdata 
+2743 60008263 store 1 ,mem_l2cap_rxbuff_inuse 
+2744 58000000 setarg 0 
+2745 6001025f store 2 ,mem_l2cap_rxbuff2_len 
+2746 20600000 rtn 
+
+l2cap_buff1_inuse:
+2747 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
+2748 79207e00 set1 l2cap_inuse_buff1 ,pdata 
+2749 60008263 store 1 ,mem_l2cap_rxbuff_inuse 
+274a 20600000 rtn 
+
+l2cap_buff2_inuse:
+274b 68008263 fetch 1 ,mem_l2cap_rxbuff_inuse 
+274c 79207e01 set1 l2cap_inuse_buff2 ,pdata 
+274d 60008263 store 1 ,mem_l2cap_rxbuff_inuse 
+274e 20600000 rtn 
+
+slave_send_access:
+274f 44b9400e bpatch patch0e_2 ,mem_patch0e 
+2750 1d00c201 add clke_bt ,1 ,bt_clk 
+2751 204028ea call fetch_extm_bt_adr 
+2752 18004803 force 0x03 ,freq_mode 
+2753 204028d2 call tx_radio_freq 
+2754 20402a51 call start_transmitter 
+2755 20402a5f call start_tx_external 
+2756 20202a64 branch send_access_word 
+
+slave_conn_send_packet:
+2757 44b9c00e bpatch patch0e_3 ,mem_patch0e 
+2758 20402a4d call rf_setup_time_slave_slot 
+2759 1d027e00 deposit clke_bt 
+275a 680a40ca fetcht 4 ,mem_next_btclk 
+275b 98467e00 isub temp ,pdata 
+275c c1808000 rtnne 1 
+275d 28203e00 compare type_null ,type ,0x1f 
+275e 2420a761 nbranch slave_conn_send_access ,true 
+275f 68008019 fetch 1 ,mem_rx_type 
+2760 207a0000 rtn blank 
+
+slave_conn_send_access:
+2761 2040274f call slave_send_access 
+
+transmit_packet:
+2762 28203e10 compare type_id ,type ,0x1f 
+2763 2020a64d branch end_of_packet ,true 
+2764 1c230400 rshift bt_clk ,temp 
+2765 18419c40 or temp ,0x40 ,white_init 
+
+transmit_packet_whitened:
+2766 44ba400e bpatch patch0e_4 ,mem_patch0e 
+2767 7823fc00 enable enable_white 
+2768 78257c00 enable enable_hec 
+2769 782dfc00 enable encode_fec1 
+276a 793f8010 set0 mark_longpacket ,mark 
+276b 18827e00 deposit am_addr 
+276c 08008603 inject mod ,3 
+276d 18227e00 deposit type 
+276e 08008604 inject mod ,4 
+276f 68008047 fetch 1 ,mem_arq 
+2770 08008004 inject bucket ,4 
+2771 08008603 inject mod ,3 
+2772 78247c00 enable enable_parity 
+2773 08008608 inject mod ,8 
+2774 784dfc00 disable encode_fec1 
+2775 78447c00 disable enable_parity 
+2776 78457c00 disable enable_hec 
+2777 793faa02 set0 psk3m ,radio_ctrl 
+2778 d8400000 arg 0 ,temp 
+2779 20402a1c call reserve_slot 
+277a 44bac00e bpatch patch0e_5 ,mem_patch0e 
+277b 18217e1f and type ,0x1f ,pdata 
+277c c009a7b4 beq type_lmp ,transmit_lmp 
+277d c000264d beq type_null ,end_of_packet 
+277e c000a64d beq type_poll ,end_of_packet 
+277f c0012797 beq type_fhs ,transmit_fhs 
+2780 c001a7c5 beq type_dm1 ,transmit_dm1 
+2781 c00227cb beq type_dh1 ,transmit_dh1 
+2782 c003a78c beq type_hv3 ,transmit_hev 
+2783 c00427ca beq type_3dh1 ,transmit_3dh1 
+2784 d8400004 arg 4 ,temp 
+2785 20402a1c call reserve_slot 
+2786 c00527c7 beq type_dm3 ,transmit_dm3 
+2787 c005a7cd beq type_dh3 ,transmit_dh3 
+2788 d8400008 arg 8 ,temp 
+2789 20402a1c call reserve_slot 
+278a c007a7cd beq type_dh5 ,transmit_dh5 
+278b 202027c7 branch transmit_dm5 
+
+transmit_hev:
+278c 44bb400e bpatch patch0e_6 ,mem_patch0e 
+278d 782efc00 enable encode_fec0 
+278e 7824fc00 enable enable_crc 
+278f 78277c00 enable encrypt 
+2790 1800721e force 30 ,loopcnt 
+2791 d8c000b3 arg mem_sco_obuf ,contr 
+
+transmit_ev_loop:
+2792 e8c08000 ifetch 1 ,contr 
+2793 08008608 inject mod ,8 
+2794 c2002792 loop transmit_ev_loop 
+2795 c503a7f7 bmark1 mark_esco ,transmit_end 
+2796 2020264d branch end_of_packet 
+
+transmit_fhs:
+2797 44bbc00e bpatch patch0e_7 ,mem_patch0e 
+2798 68008181 fetch 1 ,mem_fhs_am_addr 
+2799 1fe20800 icopy am_addr 
+279a 68008090 fetch 1 ,mem_fhs_misc 
+279b 1fe23800 icopy fhs_misc 
+279c 6801c0aa fetch 3 ,mem_class 
+279d 1fe23a00 icopy fhs_class 
+279e 680140a4 fetch 2 ,mem_nap 
+279f 1fe25c00 icopy nap 
+27a0 7824fc00 enable enable_crc 
+27a1 782e7c00 enable encode_fec2 
+27a2 1c022200 copy bt_adr ,rega 
+27a3 204028e2 call fetch_self_bt_adr 
+27a4 782afc00 pulse recalc 
+27a5 20000020 nop 32 
+27a6 1c221600 copy bt_clk ,timeup 
+27a7 68020161 fetch 4 ,mem_clkn_bt 
+27a8 1fe24200 icopy bt_clk 
+27a9 53c07e00 preload fhs0 
+27aa 79207e3a set1 58 ,pdata 
+27ab 08008648 inject mod ,72 
+27ac 53e07e00 preload fhs1 
+27ad 08008648 inject mod ,72 
+27ae 19624200 copy timeup ,bt_clk 
+27af 1a224000 copy rega ,bt_adr 
+27b0 78247c00 enable enable_parity 
+27b1 08008610 inject mod ,16 
+27b2 78447c00 disable enable_parity 
+27b3 2020264d branch end_of_packet 
+
+transmit_lmp:
+27b4 44bc400f bpatch patch0f_0 ,mem_patch0f 
+27b5 78277c00 enable encrypt 
+27b6 7824fc00 enable enable_crc 
+27b7 782e7c00 enable encode_fec2 
+27b8 680084b6 fetch 1 ,mem_lmo_header_length 
+27b9 1fe105f8 and pdata ,0x1f8 ,temp 
+27ba d8c004b6 arg mem_lmo_header_length ,contr 
+27bb 18408408 increase 8 ,temp 
+
+transmit_lmp_loop:
+27bc 1840a7b8 add temp ,-72 ,regc 
+27bd 242127c2 nbranch transmit_lmp_finish ,positive 
+27be e8c48000 ifetch 9 ,contr 
+27bf 08008648 inject mod ,72 
+27c0 1a620400 copy regc ,temp 
+27c1 202027bc branch transmit_lmp_loop 
+
+transmit_lmp_finish:
+27c2 e8c48000 ifetch 9 ,contr 
+27c3 08418600 iinject mod ,temp 
+27c4 202027f7 branch transmit_end 
+
+transmit_dm1:
+27c5 782e7c00 enable encode_fec2 
+27c6 202027d0 branch transmit_dmh 
+
+transmit_dm3:
+
+transmit_dm5:
+27c7 782e7c00 enable encode_fec2 
+27c8 79200010 set1 mark_longpacket ,mark 
+27c9 202027d0 branch transmit_dmh 
+
+transmit_3dh1:
+27ca 79202a02 set1 psk3m ,radio_ctrl 
+
+transmit_dh1:
+27cb 782efc00 enable encode_fec0 
+27cc 202027d0 branch transmit_dmh 
+
+transmit_dh3:
+
+transmit_dh5:
+27cd 79202a02 set1 psk3m ,radio_ctrl 
+27ce 782efc00 enable encode_fec0 
+27cf 79200010 set1 mark_longpacket ,mark 
+
+transmit_dmh:
+27d0 44bcc00f bpatch patch0f_1 ,mem_patch0f 
+27d1 6800804c fetch 1 ,mem_state_map 
+27d2 c302a7e5 bbit0 smap_edr ,transmit_noedr 
+27d3 18267c03 sub type ,3 ,null 
+27d4 202127e5 branch transmit_noedr ,positive 
+27d5 78477c00 disable encrypt 
+27d6 784e7c00 disable encode_fec2 
+27d7 782efc00 enable encode_fec0 
+27d8 7843fc00 disable enable_white 
+27d9 79202a01 set1 psk ,radio_ctrl 
+27da 2aaffe02 isolate1 psk3m ,radio_ctrl 
+27db 2020a7df branch transmit_edr3m ,true 
+27dc 580abeee setarg 0xabeee 
+27dd 08008614 inject mod ,20 
+27de 202027e3 branch transmit_edr_sync_end 
+
+transmit_edr3m:
+27df 585faeba setarg 0x5faeba 
+27e0 08008618 inject mod ,24 
+27e1 58000012 setarg 0x12 
+27e2 08008606 inject mod ,6 
+
+transmit_edr_sync_end:
+27e3 7823fc00 enable enable_white 
+27e4 79200010 set1 mark_longpacket ,mark 
+
+transmit_noedr:
+27e5 78277c00 enable encrypt 
+27e6 7824fc00 enable enable_crc 
+27e7 c502a800 bmark1 mark_loopback ,transmit_loopback 
+27e8 6800c1db fetch 1 ,mem_tx_lch 
+27e9 08008603 inject mod ,3 
+27ea 680141dc fetch 2 ,mem_tx_len 
+27eb 98007200 iforce loopcnt 
+27ec c50827ef bmark1 mark_longpacket ,transmit_long 
+27ed 08008605 inject mod ,5 
+27ee 202027f0 branch transmit_stuff 
+
+transmit_long:
+27ef 0800860d inject mod ,13 
+
+transmit_stuff:
+27f0 1f227e00 deposit loopcnt 
+27f1 203a27f7 branch transmit_end ,blank 
+27f2 6801016f fetch 2 ,mem_txptr 
+27f3 98000c00 iforce contr 
+
+transmit_stuff_loop:
+27f4 e8c08000 ifetch 1 ,contr 
+27f5 08008608 inject mod ,8 
+27f6 c20027f4 loop transmit_stuff_loop 
+
+transmit_end:
+27f7 78247c00 enable enable_parity 
+27f8 08008610 inject mod ,16 
+27f9 78447c00 disable enable_parity 
+27fa 204024c1 call set_wait_ack 
+27fb 6800804c fetch 1 ,mem_state_map 
+27fc c302a64d bbit0 smap_edr ,end_of_packet 
+27fd 18007e00 force 0 ,pdata 
+27fe 08008606 inject mod ,6 
+27ff 2020264d branch end_of_packet 
+
+transmit_loopback:
+2800 44bd400f bpatch patch0f_2 ,mem_patch0f 
+2801 c5082808 bmark1 mark_longpacket ,transmit_loopback_long 
+
+transmit_loopback_short:
+2802 68008180 fetch 1 ,mem_lch_code 
+2803 08008603 inject mod ,3 
+2804 6800815f fetch 1 ,mem_len 
+2805 98002600 iforce regc 
+2806 08008605 inject mod ,5 
+2807 2020280d branch transmit_loopback_cont 
+
+transmit_loopback_long:
+2808 68008180 fetch 1 ,mem_lch_code 
+2809 08008603 inject mod ,3 
+280a 6801015f fetch 2 ,mem_len 
+280b 98002600 iforce regc 
+280c 0800860d inject mod ,13 
+
+transmit_loopback_cont:
+280d d8c00551 arg mem_rxbuf ,contr 
+
+transmit_loopback_loop:
+280e 1a627c00 copy regc ,null 
+280f 2022a814 branch transmit_loopback_end ,zero 
+2810 e8c08000 ifetch 1 ,contr 
+2811 08008608 inject mod ,8 
+2812 1a60a7ff increase -1 ,regc 
+2813 2020280e branch transmit_loopback_loop 
+
+transmit_loopback_end:
+2814 680100fc fetch 2 ,mem_tst_pktcnt_dmh 
+2815 1fe0fe01 increase 1 ,pdata 
+2816 600100fc store 2 ,mem_tst_pktcnt_dmh 
+2817 202027f7 branch transmit_end 
+
+apply_switch_clke:
+2818 68020165 fetch 4 ,mem_clke_bt 
+2819 1fe0a207 add pdata ,7 ,rega 
+281a 68010171 fetch 2 ,mem_slot_offset 
+281b 243a281e nbranch apply_switch_nozero ,blank 
+281c 1a20a3fd increase -3 ,rega 
+281d 20202826 branch apply_switch_wait_loop 
+
+apply_switch_nozero:
+281e 1feffe0c mul32 pdata ,12 ,pdata 
+281f 68190040 hfetcht 2 ,core_halfslot 
+2820 18408401 increase 1 ,temp 
+
+apply_switch_loop:
+2821 98467e00 isub temp ,pdata 
+2822 24212825 nbranch apply_switch_bt ,positive 
+2823 1a20a3ff increase -1 ,rega 
+2824 20202821 branch apply_switch_loop 
+
+apply_switch_bt:
+2825 1fe67e00 sub pdata ,0 ,pdata 
+
+apply_switch_wait_loop:
+2826 37d18200 until null ,oneslot 
+2827 2c400600 compare 0 ,clkn_bt ,3 
+2828 2420a826 nbranch apply_switch_wait_loop ,true 
+2829 98005200 iforce clke_rt 
+282a 1a225000 copy rega ,clke_bt 
+282b 98005200 iforce clke_rt 
+282c 20600000 rtn 
+
+calc_slot_offset:
+282d 44bdc00f bpatch patch0f_3 ,mem_patch0f 
+282e 37d10200 until null ,halfslot 
+282f 1b427e00 deposit clke 
+2830 98000c00 iforce contr 
+2831 1ff17e00 rshift16 ,pdata ,pdata 
+2832 9c467200 isub clkn_bt ,loopcnt 
+2833 1f217203 and_into 3 ,loopcnt 
+2834 2422a837 nbranch calc_bt_portion ,zero 
+2835 18007e00 force 0 ,pdata 
+2836 2020283b branch calc_skip_bt 
+
+calc_bt_portion:
+2837 d8400ea6 arg 3750 ,temp 
+2838 18007e00 force 0 ,pdata 
+
+calc_slot_offset_loop:
+2839 9840fe00 iadd temp ,pdata 
+283a c2002839 loop calc_slot_offset_loop 
+
+calc_skip_bt:
+283b 98c0fe00 iadd contr ,pdata 
+283c 1fe6fc0c div pdata ,12 
+283d 20407f86 call wait_div_end 
+283e 1807fe00 quotient pdata 
+283f 60010171 store 2 ,mem_slot_offset 
+2840 20600000 rtn 
+
+calc_clke_offset:
+2841 44be400f bpatch patch0f_4 ,mem_patch0f 
+2842 1b427e00 deposit clke 
+2843 1b220400 copy clkn ,temp 
+2844 98467c00 isub temp ,null 
+2845 7d217e2c nsetflag positive ,44 ,pdata 
+2846 98460400 isub temp ,temp 
+2847 58000ea6 setarg 3750 
+2848 284c000f isolate0 15 ,temp 
+2849 2020a84c branch calc_clke_pos ,true 
+284a 5fff0ea6 setarg -61786 
+284b 98408400 iadd temp ,temp 
+
+calc_clke_pos:
+284c 600b0447 storet 6 ,mem_le_clk_offset 
+284d 207b0000 rtn le 
+284e 600b0038 storet 6 ,mem_clk_offset 
+284f 20600000 rtn 
+
+calc_clke:
+2850 78587c00 disable clknt 
+2851 68030447 fetch 6 ,mem_le_clk_offset 
+2852 203b2854 branch calc_clke2 ,le 
+2853 68030038 fetch 6 ,mem_clk_offset 
+
+calc_clke2:
+2854 9b20e000 iadd clkn ,alarm 
+2855 1e00e00a increase 10 ,alarm 
+2856 58000ea6 setarg 3750 
+2857 9e067e00 isub alarm ,pdata 
+2858 2fec000f isolate0 15 ,pdata 
+2859 2020a85e branch calc_clke_pos_adj ,true 
+285a 5800f15a setarg 0xf15a 
+285b 9e00e000 iadd alarm ,alarm 
+
+calc_clke_pos2:
+285c 1e023400 copy alarm ,clke 
+285d 20600000 rtn 
+
+calc_clke_pos_adj:
+285e 18007c00 force 0 ,null 
+285f 2020285c branch calc_clke_pos2 
+
+calc_radio_freq:
+2860 44bec00f bpatch patch0f_5 ,mem_patch0f 
+2861 20402918 call set_sync_on 
+2862 1c227e00 copy bt_clk ,pdata 
+2863 1fe17f80 and_into 0x180 ,pdata 
+2864 2c800e03 compare 3 ,freq_mode ,0x07 
+2865 2420a869 nbranch freq_not_connection ,true 
+2866 1fe97e00 rshift3 pdata ,pdata 
+2867 9ae0fe00 iadd freq_index ,pdata 
+2868 2020286a branch do_hop_mod_now 
+
+freq_not_connection:
+2869 1ae27e00 copy freq_index ,pdata 
+
+do_hop_mod_now:
+286a 1fe6fc4f div pdata ,79 
+286b 782afc00 pulse recalc 
+286c 20407f86 call wait_div_end 
+286d 18072200 remainder rega 
+286e 1a2085d8 add rega ,-40 ,temp 
+286f 20212872 branch odd_half ,positive 
+2870 1a238400 lshift rega ,temp 
+2871 20202874 branch freq_result 
+
+odd_half:
+2872 18438400 lshift temp ,temp 
+2873 18408401 increase 1 ,temp 
+
+freq_result:
+2874 44bf400f bpatch patch0f_6 ,mem_patch0f 
+2875 68008031 fetch 1 ,mem_mode 
+2876 c301a885 bbit0 afh_change ,afh_process_con 
+
+afh_process_0:
+2877 680240d2 fetch 4 ,mem_afh_instant 
+2878 9c267c00 isub bt_clk ,null 
+2879 20212885 branch afh_process_con ,positive 
+287a 204028a4 call afh_clear 
+287b 6800c0d9 fetch 1 ,mem_afh_new_mod 
+287c 207a0000 rtn blank 
+287d 68008031 fetch 1 ,mem_mode 
+287e 79207e02 set1 afh_enable ,pdata 
+287f 60008031 store 1 ,mem_mode 
+2880 6802c0e7 fetch 5 ,mem_afh_map_new 
+2881 6002c0da store 5 ,mem_afh_map_lo 
+2882 e8c28000 ifetch 5 ,contr 
+2883 6002c0df store 5 ,mem_afh_map_hi 
+2884 204028a9 call afh_process_freq_map 
+
+afh_process_con:
+2885 68008031 fetch 1 ,mem_mode 
+2886 c4010000 rtnbit0 afh_enable 
+2887 2c2ffe01 isolate1 1 ,bt_clk 
+2888 2020a8a1 branch afh_same_channel ,true 
+2889 18492200 rshift3 temp ,rega 
+288a 18410e07 and temp ,7 ,queue 
+288b 580040da setarg mem_afh_map_lo 
+288c 9a20a200 iadd rega ,rega 
+288d ea208000 ifetch 1 ,rega 
+288e afec0000 qisolate0 pdata 
+288f 2020a892 branch afh_process_1 ,true 
+2890 18427e00 deposit temp 
+2891 2020289e branch afh_process_end 
+
+afh_process_1:
+2892 6800c0e4 fetch 1 ,mem_afh_used 
+2893 98002400 iforce regb 
+2894 1c227e00 deposit bt_clk 
+2895 1fe17f80 and_into 0x180 ,pdata 
+2896 1fe97e00 rshift3 pdata ,pdata 
+2897 9ae0fe00 iadd freq_index ,pdata 
+2898 9a46fc00 idiv regb 
+2899 580040f2 setarg mem_afh_map 
+289a 20407f86 call wait_div_end 
+289b 18072200 remainder rega 
+289c 9a208c00 iadd rega ,contr 
+289d e8c08000 ifetch 1 ,contr 
+
+afh_process_end:
+289e 6000c0e5 store 1 ,mem_afh_index 
+289f 98000400 iforce temp 
+28a0 20600000 rtn 
+
+afh_same_channel:
+28a1 6800c0e5 fetch 1 ,mem_afh_index 
+28a2 98000400 iforce temp 
+28a3 20600000 rtn 
+
+afh_clear:
+28a4 68008031 fetch 1 ,mem_mode 
+28a5 793ffe02 set0 afh_enable ,pdata 
+28a6 793ffe03 set0 afh_change ,pdata 
+28a7 60008031 store 1 ,mem_mode 
+28a8 20600000 rtn 
+
+afh_process_freq_map:
+28a9 44bfc00f bpatch patch0f_7 ,mem_patch0f 
+28aa d8a040f2 arg mem_afh_map ,contw 
+28ab 1800720a force 10 ,loopcnt 
+28ac 20407ec6 call memset0 
+28ad d8a040f2 arg mem_afh_map ,contw 
+28ae 18002600 force 0 ,regc 
+28af 18000e02 force 2 ,queue 
+
+process_freq_3:
+28b0 6802c0da fetch 5 ,mem_afh_map_lo 
+28b1 98000400 iforce temp 
+28b2 28e1fe02 compare 2 ,queue ,0xff 
+28b3 2020a8b5 branch process_freq_1 ,true 
+28b4 18430400 rshift temp ,temp 
+
+process_freq_1:
+28b5 284c0000 isolate0 0 ,temp 
+28b6 2020a8b9 branch process_freq_0 ,true 
+28b7 1a627e00 deposit regc 
+28b8 e0a08000 istore 1 ,contw 
+
+process_freq_0:
+28b9 184b0400 rshift2 temp ,temp 
+28ba 1a60a602 increase 2 ,regc 
+28bb 2a61fc28 compare 40 ,regc ,0xfe 
+28bc 2420a8c2 nbranch process_freq_2 ,true 
+28bd 6802c0df fetch 5 ,mem_afh_map_hi 
+28be 98000400 iforce temp 
+28bf 28e1fe02 compare 2 ,queue ,0xff 
+28c0 2020a8c2 branch process_freq_2 ,true 
+28c1 18430400 rshift temp ,temp 
+
+process_freq_2:
+28c2 1a667c4e sub regc ,78 ,null 
+28c3 202128b5 branch process_freq_1 ,positive 
+28c4 18002601 force 1 ,regc 
+28c5 18e08fff increase -1 ,queue 
+28c6 2422a8b0 nbranch process_freq_3 ,zero 
+28c7 da2040f2 arg mem_afh_map ,rega 
+28c8 18a27e00 deposit contw 
+28c9 9a267e00 isub rega ,pdata 
+28ca 6000c0e4 store 1 ,mem_afh_used 
+28cb 20600000 rtn 
+
+rx_radio_freq:
+28cc 44c04010 bpatch patch10_0 ,mem_patch10 
+28cd 20402860 call calc_radio_freq 
+28ce 6800817f fetch 1 ,mem_debug_config 
+28cf c302a8d1 bbit0 debug_rx_fixed_freq ,rx_radio_freq_now 
+28d0 680884cc fetcht 1 ,mem_rx_fixed_freq 
+
+rx_radio_freq_now:
+28d1 2020291f branch set_freq_rx 
+
+tx_radio_freq:
+28d2 44c0c010 bpatch patch10_1 ,mem_patch10 
+28d3 20402860 call calc_radio_freq 
+28d4 6800817f fetch 1 ,mem_debug_config 
+28d5 c30228d7 bbit0 debug_tx_fixed_freq ,tx_radio_freq_now 
+28d6 680884cb fetcht 1 ,mem_tx_fixed_freq 
+
+tx_radio_freq_now:
+28d7 20202933 branch set_freq_tx 
+
+fetch_giac:
+28d8 18005a00 force 0 ,uap 
+28d9 6801c0a7 fetch 3 ,mem_glap 
+28da 98005800 iforce lap 
+28db 20600000 rtn 
+
+fetch_page_bt_adr:
+28dc 44c14010 bpatch patch10_2 ,mem_patch10 
+28dd 6800c1d3 fetch 1 ,mem_hci_puap 
+28de 1fe25a00 icopy uap 
+28df 6801c1d0 fetch 3 ,mem_hci_plap 
+28e0 1fe25800 icopy lap 
+28e1 20600000 rtn 
+
+fetch_self_bt_adr:
+28e2 44c1c010 bpatch patch10_3 ,mem_patch10 
+28e3 680140a4 fetch 2 ,mem_nap 
+28e4 1fe25c00 icopy nap 
+28e5 6800c0a3 fetch 1 ,mem_uap 
+28e6 1fe25a00 icopy uap 
+28e7 6801c0a0 fetch 3 ,mem_lap 
+28e8 1fe25800 icopy lap 
+28e9 20600000 rtn 
+
+fetch_extm_bt_adr:
+28ea 44c24010 bpatch patch10_4 ,mem_patch10 
+28eb 68010044 fetch 2 ,mem_pnap 
+28ec 1fe25c00 icopy nap 
+28ed 68008043 fetch 1 ,mem_puap 
+28ee 1fe25a00 icopy uap 
+28ef 68018040 fetch 3 ,mem_plap 
+28f0 1fe25800 icopy lap 
+28f1 20600000 rtn 
+
+fetch_diac:
+28f2 c51028f5 bmark1 mark_all_diac ,fetch_diac_do 
+28f3 c68e8000 rtnmark0 mark_inquiry_state 
+28f4 c68f8000 rtnmark0 mark_periodical_diac 
+
+fetch_diac_do:
+28f5 1d815900 and_into -256 ,lap 
+28f6 782afc00 pulse recalc 
+28f7 20000020 nop 32 
+28f8 20600000 rtn 
+
+shutdown_radio:
+28f9 44c2c010 bpatch patch10_5 ,mem_patch10 
+28fa 2030a90a branch shutdown_radio0 ,is_rx 
+28fb 708955d4 jam 0xd4 ,rf_tx_pa_ib 
+28fc 20000004 nop 4 
+28fd 708955d2 jam 0xd2 ,rf_tx_pa_ib 
+28fe 20000004 nop 4 
+28ff 708955d1 jam 0xd1 ,rf_tx_pa_ib 
+2900 20000004 nop 4 
+2901 6800c1de fetch 1 ,mem_tx_power 
+2902 c0002908 beq tx_power_0db ,shutdown_radio_0db 
+2903 c000a915 beq tx_power_3db ,shutdown_radio_3db 
+2904 c0012908 beq tx_power_5db ,shutdown_radio_5db 
+2905 c001a915 beq tx_power_f3db ,shutdown_radio_f3db 
+2906 c0022915 beq tx_power_f5db ,shutdown_radio_f5db 
+2907 c0102915 beq tx_power_pair ,shutdown_radio_pair 
+
+shutdown_radio_5db:
+
+shutdown_radio_0db:
+2908 708955d0 jam 0xd0 ,rf_tx_pa_ib 
+2909 708956e0 jam 0xe0 ,rf_tx_pa_gc 
+
+shutdown_radio0:
+290a 18002a00 force 0 ,radio_ctrl 
+290b 7850fc00 disable is_rx 
+290c 78507c00 disable is_tx 
+290d 782f7c00 pulse packet_end 
+290e 70890200 jam 0x0 ,rfen_mdm 
+290f 70890100 jam 0x0 ,rfen_tx 
+2910 70890000 jam 0x0 ,rfen_rx 
+2911 70890300 jam 0 ,rfen_sn 
+2912 70890470 jam 0x70 ,rfen_msc 
+2913 70890600 jam 0x0 ,rfen_adc 
+2914 20600000 rtn 
+
+shutdown_radio_pair:
+
+shutdown_radio_f5db:
+
+shutdown_radio_f3db:
+
+shutdown_radio_3db:
+2915 708955d0 jam 0xd0 ,rf_tx_pa_ib 
+2916 708956c0 jam 0xc0 ,rf_tx_pa_gc 
+2917 2020290a branch shutdown_radio0 
+
+set_sync_on:
+2918 44c34010 bpatch patch10_6 ,mem_patch10 
+2919 70890200 jam 0x0 ,rfen_mdm 
+291a 70890100 jam 0x0 ,rfen_tx 
+291b 70890018 jam 0x18 ,rfen_rx 
+291c 708903a7 jam 0xa7 ,rfen_sn 
+291d 7089047f jam 0x7f ,rfen_msc 
+291e 20600000 rtn 
+
+set_freq_rx:
+291f 44c3c010 bpatch patch10_7 ,mem_patch10 
+2920 60088017 storet 1 ,mem_last_freq 
+2921 1840a204 add temp ,rx_freq_offset ,rega 
+2922 70896d07 jam 0x07 ,rf_balun_ctrim 
+2923 20202981 branch rf_write_freq 
+
+rf_rx_enable:
+2924 44c44011 bpatch patch11_0 ,mem_patch11 
+2925 708901cf jam 0xcf ,rfen_tx 
+2926 2000000a nop 10 
+2927 708900ff jam 0xff ,rfen_rx 
+2928 708903af jam 0xaf ,rfen_sn 
+2929 708904ff jam 0xff ,rfen_msc 
+292a 2000000a nop 10 
+292b 708902a0 jam 0xa0 ,rfen_mdm 
+292c 20600000 rtn 
+
+set_freq_tx_offset:
+292d 6800c1e0 fetch 1 ,mem_250k_freq_enable 
+292e 203a2931 branch set_freq_tx_2m_offset ,blank 
+
+set_freq_tx_0m_offset:
+292f 1840a202 add temp ,2 ,rega 
+2930 20600000 rtn 
+
+set_freq_tx_2m_offset:
+2931 1840a200 add temp ,0 ,rega 
+2932 20600000 rtn 
+
+set_freq_tx:
+2933 44c4c011 bpatch patch11_1 ,mem_patch11 
+2934 60088017 storet 1 ,mem_last_freq 
+2935 2040292d call set_freq_tx_offset 
+2936 20402981 call rf_write_freq 
+2937 58000500 setarg param_pll_setup 
+2938 20402a8f call sleep 
+
+txon:
+2939 70890601 jam 0x1 ,rfen_adc 
+293a 7089003c jam 0x3c ,rfen_rx 
+293b 708901e0 jam 0xe0 ,rfen_tx 
+293c 70896d12 jam 0x12 ,rf_balun_ctrim 
+293d 2000000a nop 10 
+293e 70890201 jam 0x01 ,rfen_mdm 
+293f 7089023d jam 0x3d ,rfen_mdm 
+2940 2000000a nop 10 
+2941 708903b7 jam 0xb7 ,rfen_sn 
+2942 2000000a nop 10 
+2943 7089027f jam 0x7f ,rfen_mdm 
+
+txon_power_select:
+2944 6800c1de fetch 1 ,mem_tx_power 
+2945 c000294b beq tx_power_0db ,set_tx_power_0db 
+2946 c000a94f beq tx_power_3db ,set_tx_power_3db 
+2947 c0012953 beq tx_power_5db ,set_tx_power_5db 
+2948 c001a957 beq tx_power_f3db ,set_tx_power_f3db 
+2949 c002295b beq tx_power_f5db ,set_tx_power_f5db 
+294a c010295f beq tx_power_pair ,set_tx_power_pair 
+
+set_tx_power_0db:
+294b 708956f0 jam 0xf0 ,rf_tx_pa_gc 
+294c 20402965 call txon_common 
+294d 708955d8 jam 0xd8 ,rf_tx_pa_ib 
+294e 20600000 rtn 
+
+set_tx_power_3db:
+294f 708956df jam 0xdf ,rf_tx_pa_gc 
+2950 20402965 call txon_common 
+2951 708955df jam 0xdf ,rf_tx_pa_ib 
+2952 20600000 rtn 
+
+set_tx_power_5db:
+2953 708956ff jam 0xff ,rf_tx_pa_gc 
+2954 20402965 call txon_common 
+2955 708955df jam 0xdf ,rf_tx_pa_ib 
+2956 20600000 rtn 
+
+set_tx_power_f3db:
+2957 708956ce jam 0xce ,rf_tx_pa_gc 
+2958 20402965 call txon_common 
+2959 708955d8 jam 0xd8 ,rf_tx_pa_ib 
+295a 20600000 rtn 
+
+set_tx_power_f5db:
+295b 708956cb jam 0xcb ,rf_tx_pa_gc 
+295c 20402965 call txon_common 
+295d 708955d8 jam 0xd8 ,rf_tx_pa_ib 
+295e 20600000 rtn 
+
+set_tx_power_pair:
+295f 708955d0 jam 0xd0 ,rf_tx_pa_ib 
+2960 708956c0 jam 0xc0 ,rf_tx_pa_gc 
+2961 7089574c jam 0x4c ,0x8957 
+2962 7089586c jam 0x6c ,0x8958 
+2963 70895950 jam 0x50 ,0x8959 
+2964 20600000 rtn 
+
+txon_common:
+2965 20000004 nop 4 
+2966 708955d1 jam 0xd1 ,rf_tx_pa_ib 
+2967 20000004 nop 4 
+2968 708955d2 jam 0xd2 ,rf_tx_pa_ib 
+2969 20000004 nop 4 
+296a 708955d4 jam 0xd4 ,rf_tx_pa_ib 
+296b 20600000 rtn 
+
+initialize_radio:
+296c 70804206 jam clksel_rc ,core_clksel 
+
+initialize_radio_wait:
+296d 680140c3 fetch 2 ,mem_rf_init_ptr 
+296e c307296d bbit0 14 ,initialize_radio_wait 
+296f 98000c00 iforce contr 
+2970 d8408900 arg 0x8900 ,temp 
+
+initialize_radio_loop:
+2971 e8c08000 ifetch 1 ,contr 
+2972 c07fa977 beq 0xff ,initialize_radio_cont 
+2973 98418a00 ior temp ,contw 
+2974 e8c08000 ifetch 1 ,contr 
+2975 e0a08000 istore 1 ,contw 
+2976 20202971 branch initialize_radio_loop 
+
+initialize_radio_cont:
+2977 44c54011 bpatch patch11_2 ,mem_patch11 
+2978 20402be5 call lpm_cal_xtal_startup 
+2979 204029c9 call switchto_dpllclk 
+297a 580007d0 setarg param_dpll_start_delay 
+297b 9c40fe00 iadd clkn_bt ,pdata 
+297c 60020169 store 4 ,mem_dpll_clkn 
+297d 79202a03 set1 reset ,radio_ctrl 
+297e 18002a00 force 0 ,radio_ctrl 
+297f 2455a998 ncall do_rccal ,wake 
+2980 202029ab branch set_rccal 
+
+rf_write_freq:
+2981 44c5c011 bpatch patch11_3 ,mem_patch11 
+2982 58000960 setarg 2400 
+2983 9a208400 iadd rega ,temp 
+2984 6800c0bd fetch 1 ,mem_fcomp_mul 
+2985 70895f04 jam 0x04 ,rf_pll_rstn 
+2986 984ffe00 imul32 temp ,pdata 
+2987 6808c0be fetcht 1 ,mem_fcomp_div 
+2988 9846fc00 idiv temp 
+2989 20407f86 call wait_div_end 
+298a 1807a200 quotient rega 
+298b 18077e00 remainder pdata 
+298c 1ff07e00 lshift16 pdata ,pdata 
+298d 1ff27e00 lshift4 pdata ,pdata 
+298e 9846fc00 idiv temp 
+298f 20407f86 call wait_div_end 
+2990 1807fe00 quotient pdata 
+2991 1fed7e00 lshift8 pdata ,pdata 
+2992 1fe3fe00 lshift pdata ,pdata 
+2993 9a21fe00 ior rega ,pdata 
+2994 60120960 hstore 4 ,rf_pll_intg 
+2995 70895f44 jam 0x44 ,rf_pll_rstn 
+2996 70895fc4 jam 0xc4 ,rf_pll_rstn 
+2997 20600000 rtn 
+
+do_rccal:
+2998 44c64011 bpatch patch11_4 ,mem_patch11 
+2999 70890602 jam 0x02 ,rfen_adc 
+299a 5803d090 setarg 250000 
+299b 20402a8f call sleep 
+299c 7089007f jam 0x7f ,rfen_rx 
+299d 20000082 nop 130 
+299e 70895230 jam 0x30 ,rf_rccal_ctrl 
+299f 708901d0 jam 0xd0 ,rfen_tx 
+29a0 70895270 jam 0x70 ,rf_rccal_ctrl 
+29a1 708952f0 jam 0xf0 ,rf_rccal_ctrl 
+29a2 18007232 force 50 ,loopcnt 
+
+do_rccal_loop:
+29a3 68108980 hfetch 1 ,rf_rccal_result 
+29a4 c282a9a6 bbit1 5 ,do_rccal_end 
+29a5 c20029a3 loop do_rccal_loop 
+
+do_rccal_end:
+29a6 6000c0ce store 1 ,mem_rf_rccal 
+29a7 70890100 jam 0 ,rfen_tx 
+29a8 70890000 jam 0 ,rfen_rx 
+29a9 70890600 jam 0x00 ,rfen_adc 
+29aa 20600000 rtn 
+
+set_rccal:
+29ab 44c6c011 bpatch patch11_5 ,mem_patch11 
+29ac 6800c0ce fetch 1 ,mem_rf_rccal 
+29ad 79207e05 set1 5 ,pdata 
+29ae 60108952 hstore 1 ,rf_rccal_ctrl 
+29af 68188950 hfetcht 1 ,rf_bpf_ctrim 
+29b0 18410407 and_into 7 ,temp 
+29b1 1fe9fe00 lshift3 pdata ,pdata 
+29b2 9841fe00 ior temp ,pdata 
+29b3 60108950 hstore 1 ,rf_bpf_ctrim 
+29b4 68108951 hfetch 1 ,rf_bpf_ib 
+29b5 793ffe00 set0 bpf_rccal ,pdata 
+29b6 60108951 hstore 1 ,rf_bpf_ib 
+29b7 68108952 hfetch 1 ,rf_adc_rccal 
+29b8 793ffe05 set0 adc_rccal ,pdata 
+29b9 60108952 hstore 1 ,rf_adc_rccal 
+29ba 20600000 rtn 
+
+save_rssi:
+29bb 44c74011 bpatch patch11_6 ,mem_patch11 
+29bc 68110981 hfetch 2 ,rf_afc_d2a 
+29bd 1ff1fe00 rshift4 pdata ,pdata 
+29be 1fe97e00 rshift3 pdata ,pdata 
+29bf 1fe67e00 sub pdata ,0 ,pdata 
+
+bcd:
+29c0 1fe17eff and_into 0xff ,pdata 
+29c1 1fe6fc0a div pdata ,10 
+29c2 20407f86 call wait_div_end 
+29c3 1807fe00 quotient pdata 
+29c4 1ff27e00 lshift4 pdata ,pdata 
+29c5 18070400 remainder temp 
+29c6 9841fe00 ior temp ,pdata 
+29c7 60008018 store 1 ,mem_rssi 
+29c8 20600000 rtn 
+
+switchto_dpllclk:
+29c9 70804206 jam clksel_rc ,core_clksel 
+29ca 6810896b hfetch 1 ,rf_clkpll_frac + 2 
+29cb 793ffe04 set0 4 ,pdata 
+29cc 793ffe05 set0 5 ,pdata 
+29cd 6010896b hstore 1 ,rf_clkpll_frac + 2 
+29ce 70890500 jam 0x00 ,rfen_ck 
+29cf 70890400 jam 0x00 ,rfen_msc 
+29d0 70890470 jam 0x70 ,rfen_msc 
+29d1 708905ff jam 0xff ,rfen_ck 
+29d2 6810896b hfetch 1 ,rf_clkpll_frac + 2 
+29d3 79207e04 set1 4 ,pdata 
+29d4 79207e05 set1 5 ,pdata 
+29d5 6010896b hstore 1 ,rf_clkpll_frac + 2 
+29d6 204029e9 call init_lpm_ctrl 
+29d7 68108968 hfetch 1 ,rf_clkpll_int 
+29d8 79207e07 set1 7 ,pdata 
+29d9 60108968 hstore 1 ,rf_clkpll_int 
+29da 793ffe07 set0 7 ,pdata 
+29db 60108968 hstore 1 ,rf_clkpll_int 
+29dc 79207e07 set1 7 ,pdata 
+29dd 60108968 hstore 1 ,rf_clkpll_int 
+29de 70804205 jam clksel_dpll ,core_clksel 
+29df 20000001 nop 1 
+29e0 70804204 jam clksel_xtal ,core_clksel 
+29e1 6810896b hfetch 1 ,rf_clkpll_frac + 2 
+29e2 1fe17ecf and_into 0xcf ,pdata 
+29e3 6010896b hstore 1 ,rf_clkpll_frac + 2 
+29e4 1fe1fe30 or_into 0x30 ,pdata 
+29e5 6010896b hstore 1 ,rf_clkpll_frac + 2 
+29e6 20600000 rtn 
+
+xtal_fast_wake:
+29e7 58000f0f setarg 0xf0f 
+29e8 20202c18 branch lpm_write_config 
+
+init_lpm_ctrl:
+29e9 5800080f setarg 0x80f 
+29ea 20202c18 branch lpm_write_config 
+
+start_receiver:
+29eb 44c7c011 bpatch patch11_7 ,mem_patch11 
+29ec 20402924 call rf_rx_enable 
+29ed 78507c00 disable is_tx 
+29ee 7830fc00 enable is_rx 
+29ef 782b7c00 pulse init_encrypt 
+29f0 20600000 rtn 
+
+prep_crypt:
+29f1 44c84012 bpatch patch12_0 ,mem_patch12 
+29f2 6800804c fetch 1 ,mem_state_map 
+29f3 2feffe02 isolate1 smap_encryption ,pdata 
+29f4 7920fe00 setflag true ,0 ,pdata 
+29f5 60108011 hstore 1 ,core_encrypt 
+29f6 d8c00062 arg mem_kc ,contr 
+29f7 e8c48000 ifetch 9 ,contr 
+29f8 98006400 iforce kc_ls 
+29f9 e8c38000 ifetch 7 ,contr 
+29fa 98006600 iforce kc_ms 
+29fb 68008054 fetch 1 ,mem_key_size 
+29fc 1fe0e9ff add pdata ,-1 ,g1l 
+29fd 782d7c00 pulse kc_p_activate 
+29fe 20600000 rtn 
+
+wait_access_end:
+29ff 1b427e00 deposit clke 
+2a00 6003009a store 6 ,mem_sync_clke 
+2a01 7846fc00 disable decode_fec0 
+2a02 242c28f9 nbranch shutdown_radio ,sync 
+2a03 dd2003bb arg param_clke_cal ,clke_rt 
+2a04 1d00d001 increase 1 ,clke_bt 
+2a05 1d0151fc and_into 0x1fc ,clke_bt 
+2a06 20600000 rtn 
+
+wait_access_mhalfbnd:
+2a07 7826fc00 enable decode_fec0 
+
+wait_access_mhalfbnd_correlate:
+2a08 37cb8400 correlate null ,mhalfbnd 
+2a09 202c29ff branch wait_access_end ,sync 
+2a0a 2d000402 compare 0x02 ,clke_bt ,0x02 
+2a0b 2420aa08 nbranch wait_access_mhalfbnd_correlate ,true 
+2a0c 202029ff branch wait_access_end 
+
+wait_access_clkn_rt:
+2a0d 44c8c012 bpatch patch12_1 ,mem_patch12 
+2a0e d9600600 arg param_conn_access ,timeup 
+2a0f 7826fc00 enable decode_fec0 
+2a10 34730400 correlate clkn_rt ,meet 
+2a11 7846fc00 disable decode_fec0 
+2a12 242c28f9 nbranch shutdown_radio ,sync 
+2a13 20600000 rtn 
+
+wait_access_forever:
+2a14 44c94012 bpatch patch12_2 ,mem_patch12 
+2a15 7826fc00 enable decode_fec0 
+2a16 37c18400 correlate null ,timeout 
+2a17 7846fc00 disable decode_fec0 
+2a18 242c28f9 nbranch shutdown_radio ,sync 
+2a19 dd2003bb arg param_clke_cal ,clke_rt 
+2a1a 1d0151fc and_into 0x1fc ,clke_bt 
+2a1b 20600000 rtn 
+
+reserve_slot:
+2a1c 44c9c012 bpatch patch12_3 ,mem_patch12 
+2a1d 98002200 iforce rega 
+2a1e 1c227e00 deposit bt_clk 
+2a1f 98409600 iadd temp ,timeup 
+2a20 19627e00 copy timeup ,pdata 
+2a21 600240ca store 4 ,mem_next_btclk 
+2a22 1a227e00 deposit rega 
+2a23 20600000 rtn 
+
+ahead_window:
+2a24 1fe20400 copy pdata ,temp 
+2a25 44ca4012 bpatch patch12_4 ,mem_patch12 
+2a26 18427e00 copy temp ,pdata 
+2a27 20407f50 call clk2bt 
+2a28 1c307e00 lshift16 bt_clk ,pdata 
+2a29 79207e2c set1 44 ,pdata 
+2a2a 20407f39 call clk_diff 
+2a2b 793ffe2c set0 44 ,pdata 
+2a2c 20402a77 call get_clk 
+2a2d 20407f39 call clk_diff 
+2a2e 20740000 rtn user 
+2a2f 20407f43 call clk2rt 
+2a30 98003600 iforce stop_watch 
+2a31 37c18200 until null ,timeout 
+2a32 20600000 rtn 
+
+setup_clk:
+2a33 44cac012 bpatch patch12_5 ,mem_patch12 
+2a34 20382a38 branch setup_clkn ,clknt 
+2a35 35330200 until clke_rt ,meet 
+
+skip_setup_clke:
+2a36 1d020400 copy clke_bt ,temp 
+2a37 20202a3b branch setup_clknbt 
+
+setup_clkn:
+2a38 20372a3a branch skip_setup_clkn ,attempt 
+2a39 34730200 until clkn_rt ,meet 
+
+skip_setup_clkn:
+2a3a 1c420400 copy clkn_bt ,temp 
+
+setup_clknbt:
+2a3b 20342a47 branch setup_clk11 ,user 
+2a3c 28400601 compare 1 ,temp ,3 
+2a3d 2420aa33 nbranch setup_clk ,true 
+
+setup_complete:
+2a3e 44cb4012 bpatch patch12_6 ,mem_patch12 
+2a3f 68008030 fetch 1 ,mem_state 
+2a40 c4000000 rtnbit0 state_inconn 
+2a41 680240ca fetch 4 ,mem_next_btclk 
+2a42 98467e00 isub temp ,pdata 
+2a43 24610000 nrtn positive 
+2a44 1fe67cff sub pdata ,0xff ,null 
+2a45 20212a33 branch setup_clk ,positive 
+2a46 20600000 rtn 
+
+setup_clk11:
+2a47 28400603 compare 3 ,temp ,3 
+2a48 2420aa33 nbranch setup_clk ,true 
+2a49 20202a3e branch setup_complete 
+
+rf_setup_time:
+2a4a 44cbc012 bpatch patch12_7 ,mem_patch12 
+2a4b d9600600 arg param_rf_setup ,timeup 
+2a4c 20202a33 branch setup_clk 
+
+rf_setup_time_slave_slot:
+2a4d 78547c00 disable user 
+2a4e 20202a4a branch rf_setup_time 
+
+rf_setup_time_master_slot:
+2a4f 78347c00 enable user 
+2a50 20202a4a branch rf_setup_time 
+
+start_transmitter:
+2a51 44cc4013 bpatch patch13_0 ,mem_patch13 
+2a52 204029f1 call prep_crypt 
+2a53 7850fc00 disable is_rx 
+2a54 78307c00 enable is_tx 
+2a55 20600000 rtn 
+
+start_tx_native:
+2a56 44ccc013 bpatch patch13_1 ,mem_patch13 
+2a57 d9600e43 arg param_tx_setup ,timeup 
+2a58 34730200 until clkn_rt ,meet 
+2a59 782b7c00 pulse init_encrypt 
+2a5a 20600000 rtn 
+
+start_rx_native:
+2a5b 44cd4013 bpatch patch13_2 ,mem_patch13 
+2a5c d9600d00 arg param_rx_setup ,timeup 
+2a5d 34730200 until clkn_rt ,meet 
+2a5e 20600000 rtn 
+
+start_tx_external:
+2a5f 44cdc013 bpatch patch13_3 ,mem_patch13 
+2a60 d9600e43 arg param_tx_setup ,timeup 
+2a61 35330200 until clke_rt ,meet 
+2a62 782b7c00 pulse init_encrypt 
+2a63 20600000 rtn 
+
+send_access_word:
+2a64 44ce4013 bpatch patch13_4 ,mem_patch13 
+2a65 51207e00 preload access 
+2a66 782efc00 enable encode_fec0 
+2a67 79202a00 set1 txgfsk ,radio_ctrl 
+2a68 08008648 inject mod ,72 
+2a69 784efc00 disable encode_fec0 
+2a6a 20600000 rtn 
+
+scan_mode_whiten:
+2a6b 1ca20400 copy xin ,temp 
+2a6c 18418460 or_into 0x60 ,temp 
+2a6d 18421c00 copy temp ,white_init 
+2a6e 20600000 rtn 
+
+get_free_amaddr:
+2a6f 44cec013 bpatch patch13_5 ,mem_patch13 
+2a70 6800c090 fetch 1 ,mem_current_amaddr 
+2a71 1fe0fe01 increase 1 ,pdata 
+2a72 c083aa74 bne param_esco_addr ,get_free_amaddr_cont 
+2a73 18007e01 force 1 ,pdata 
+
+get_free_amaddr_cont:
+2a74 6000c090 store 1 ,mem_current_amaddr 
+2a75 98000800 iforce am_addr 
+2a76 20600000 rtn 
+
+get_clk:
+2a77 1b220400 copy clkn ,temp 
+2a78 20748000 rtn master 
+2a79 1b420400 copy clke ,temp 
+2a7a 20600000 rtn 
+
+get_clkbt:
+2a7b 1c427e00 deposit clkn_bt 
+2a7c 20748000 rtn master 
+2a7d 1d027e00 deposit clke_bt 
+2a7e 20600000 rtn 
+
+supervision_update:
+2a7f 44cf4013 bpatch patch13_6 ,mem_patch13 
+2a80 680a004d fetcht 4 ,mem_supervision_timer 
+2a81 20402a7b call get_clkbt 
+2a82 98461600 isub temp ,timeup 
+2a83 19627e00 deposit timeup 
+2a84 68090051 fetcht 2 ,mem_supervision_to 
+2a85 18438400 lshift temp ,temp 
+2a86 98467e00 isub temp ,pdata 
+2a87 20600000 rtn 
+
+supervision_flush:
+2a88 44cfc013 bpatch patch13_7 ,mem_patch13 
+2a89 20402a7b call get_clkbt 
+2a8a 6002004d store 4 ,mem_supervision_timer 
+2a8b 20600000 rtn 
+
+assert:
+2a8c 44d04014 bpatch patch14_0 ,mem_patch14 
+2a8d 20202a8c branch assert 
+
+loop:
+2a8e 20202a8e branch loop 
+
+sleep:
+2a8f 207a0000 rtn blank 
+2a90 1fe37e00 rshift pdata ,pdata 
+2a91 1fe0fffd increase -3 ,pdata 
+
+sleep_loop:
+2a92 1fe0ffff increase -1 ,pdata 
+2a93 2422aa92 nbranch sleep_loop ,zero 
+2a94 18007e00 force 0 ,pdata 
+2a95 20600000 rtn 
+
+init_param:
+2a96 df200010 arg 0x10 ,loopcnt 
+2a97 d8a00000 arg 0 ,contw 
+2a98 20407ec6 call memset0 
+2a99 d8a0043f arg mem_le_state ,contw 
+2a9a df20000a arg 10 ,loopcnt 
+2a9b 20407ec6 call memset0 
+2a9c 7009b200 jam 0 ,mem_sp_calc 
+2a9d 700a9900 jam 0 ,mem_fifo_temp 
+2a9e 70048c00 jam 0 ,mem_le_testtype 
+2a9f 70017f00 jam 0 ,mem_debug_config 
+2aa0 7004d100 jam 0 ,mem_lmp_conn_state 
+2aa1 44d0c014 bpatch patch14_1 ,mem_patch14 
+2aa2 70016d00 jam 0 ,mem_connection_options 
+2aa3 70015100 jam 0 ,mem_tester_emulate 
+2aa4 70015c00 jam 0 ,mem_tester_cnt 
+2aa5 589e8b33 setarg param_glap 
+2aa6 6001c0a7 store 3 ,mem_glap 
+2aa7 58000153 setarg param_acl_pktlen 
+2aa8 60010083 store 2 ,mem_acl_pktlen 
+2aa9 7000851e jam param_sco_pktlen ,mem_sco_pktlen 
+2aaa 70008601 jam param_acl_pktcnt ,mem_acl_pktcnt 
+2aab 70008807 jam param_sco_pktcnt ,mem_sco_pktcnt 
+2aac 5812e904 setarg param_hci_version 
+2aad 60018080 store 3 ,mem_hci_version 
+2aae 70009060 jam 0x60 ,mem_fhs_misc 
+2aaf 7040d005 jam param_max_slot ,mem_max_slot 
+2ab0 70001402 jam 0x02 ,mem_fw_ver 
+2ab1 6800c65a fetch 1 ,mem_ssp_enable 
+2ab2 245a74c1 ncall init_memp ,blank 
+2ab3 6800c4be fetch 1 ,mem_le_secure_connect_enable 
+2ab4 245a7518 ncall init_memp_256 ,blank 
+2ab5 44d14014 bpatch patch14_2 ,mem_patch14 
+2ab6 20758000 rtn wake 
+2ab7 58000000 setarg 0 
+2ab8 600141dc store 2 ,mem_tx_len 
+2ab9 1c437e00 rshift clkn_bt ,pdata 
+2aba 60024094 store 4 ,mem_last_clkn 
+2abb 20600000 rtn 
+
+lpmstate:
+2abc 5800ee21 setarg 0xee21 
+2abd 60110050 hstore 2 ,core_clkoff 
+2abe 6812011c hfetch 4 ,core_gpio_in 
+2abf 60020abe store 4 ,mem_saved_gpio_in 
+2ac0 6810813e hfetch 1 ,core_lpm_ldocnt 
+2ac1 60008abd store 1 ,mem_wakup_from_power_flag 
+2ac2 c301e45b bbit0 gpio_latch ,loadcode 
+2ac3 7835fc00 enable wake 
+2ac4 c303aacc bbit0 cold_wake ,lpmwake 
+2ac5 7855fc00 disable wake 
+2ac6 1ce27e00 deposit auxcnt 
+2ac7 243a2acc nbranch lpmwake ,blank 
+2ac8 6810813b hfetch 1 ,core_lpm_ctrl + 3 
+2ac9 c2812acc bbit1 reload_code ,lpmwake 
+2aca d85fffff arg param_hibernate_clks ,temp 
+2acb 20202b3c branch lpm_enter_sleep 
+
+lpmwake:
+2acc 6811813c hfetch 3 ,core_lpm_xtalcnt 
+2acd 6011804c hstore 3 ,core_lpm_reg 
+2ace e8c08000 ifetch 1 ,contr 
+2acf 1fe1feef or_into isogate_mask ,pdata 
+2ad0 e0a08000 istore 1 ,contw 
+2ad1 20402c23 call lpm_write_ctrl2 
+2ad2 6810804f hfetch 1 ,core_lpm_isogate 
+2ad3 79207e04 set1 enable_retmem ,pdata 
+2ad4 6010804f hstore 1 ,core_lpm_isogate 
+2ad5 20402c23 call lpm_write_ctrl2 
+2ad6 2055aadf call lpm_load_context ,wake 
+2ad7 6810804e hfetch 1 ,core_lpm_reg + 2 
+2ad8 793ffe03 set0 gpio_latch ,pdata 
+2ad9 6010804e hstore 1 ,core_lpm_reg + 2 
+2ada 20402c23 call lpm_write_ctrl2 
+2adb 2435e45b nbranch loadcode ,wake 
+2adc c6958000 rtnmark0 mark_otp_encrypt 
+2add 70800608 jam lock_otp ,core_misc_ctrl 
+2ade 20600000 rtn 
+
+lpm_load_context:
+2adf 6800c198 fetch 1 ,mem_saved_spidctrl 
+2ae0 60108086 hstore 1 ,core_spid_ctrl 
+2ae1 6801c18d fetch 3 ,mem_saved_gsel 
+2ae2 60118080 hstore 3 ,core_gpio_sel 
+2ae3 68024181 fetch 4 ,mem_saved_gpio + 4 
+2ae4 60120074 hstore 4 ,core_gpio_out0 
+2ae5 6802417d fetch 4 ,mem_saved_gpio 
+2ae6 60120070 hstore 4 ,core_gpio_oe0 
+2ae7 68044185 fetch 8 ,mem_saved_gpio + 8 
+2ae8 60140078 hstore 8 ,core_gpio_pu0 
+2ae9 68044190 fetch 8 ,mem_saved_mark 
+2aea 98000000 iforce mark 
+2aeb 68140140 hfetch 8 ,core_gpio_wakeup_low 
+2aec 600400a1 store 8 ,mem_gpio_wakeup_low 
+2aed 204064ca call load_ucode 
+2aee 20600000 rtn 
+
+lpm_save_context:
+2aef 18027e00 deposit mark 
+2af0 60044190 store 8 ,mem_saved_mark 
+2af1 68140070 hfetch 8 ,core_gpio_oe0 
+2af2 6004417d store 8 ,mem_saved_gpio 
+2af3 e8c40000 ifetch 8 ,contr 
+2af4 e0a40000 istore 8 ,contw 
+2af5 68118080 hfetch 3 ,core_gpio_sel 
+2af6 6001c18d store 3 ,mem_saved_gsel 
+2af7 68108086 hfetch 1 ,core_spid_ctrl 
+2af8 6000c198 store 1 ,mem_saved_spidctrl 
+2af9 20202c29 branch lpm_write_gpio_wakeup 
+
+lpo_calibration:
+2afa 68108063 hfetch 1 ,core_bist_ctrl 
+2afb 243a2b00 nbranch lpo_cal_inited ,blank 
+2afc 6801c16f fetch 3 ,mem_clks_per_lpo 
+2afd 247a0000 nrtn blank 
+2afe 708063c0 jam 0xc0 ,core_bist_ctrl 
+2aff 70800680 jam ccnt_start ,core_misc_ctrl 
+
+lpo_cal_inited:
+2b00 6810812d hfetch 1 ,core_perf_status 
+2b01 c4008000 rtnbit0 1 
+2b02 68118149 hfetch 3 ,core_clk_counter 
+2b03 6001c16f store 3 ,mem_clks_per_lpo 
+2b04 20600000 rtn 
+
+lpm_adjust_clk:
+2b05 44d1c014 bpatch patch14_3 ,mem_patch14 
+2b06 1b427e00 deposit clke 
+2b07 20407f37 call clk_diff_rt 
+2b08 680a415f fetcht 4 ,mem_sleep_counter_all 
+2b09 18467cff sub temp ,0xff ,null 
+2b0a 20610000 rtn positive 
+2b0b 1fed7e00 lshift8 pdata ,pdata 
+2b0c 1ff27e00 lshift4 pdata ,pdata 
+2b0d 9846fc00 idiv temp 
+2b0e 20407f86 call wait_div_end 
+2b0f 1807fe00 quotient pdata 
+2b10 d84000c8 arg param_lpm_adjmax ,temp 
+2b11 20407f91 call ceiling 
+2b12 60008099 store 1 ,mem_lpm_adjust 
+2b13 24342b15 nbranch lpm_adjust_positive ,user 
+2b14 1fe67e00 sub pdata ,0 ,pdata 
+
+lpm_adjust_positive:
+2b15 6809c16f fetcht 3 ,mem_clks_per_lpo 
+2b16 9840fe00 iadd temp ,pdata 
+2b17 6001c16f store 3 ,mem_clks_per_lpo 
+
+lpm_clear_counter:
+2b18 58000000 setarg 0 
+2b19 6002415f store 4 ,mem_sleep_counter_all 
+2b1a 20600000 rtn 
+
+lpm_doze:
+2b1b 6800c177 fetch 1 ,mem_lpm_config + 2 
+2b1c 79207e02 set1 reload_code ,pdata 
+2b1d 6000c177 store 1 ,mem_lpm_config + 2 
+2b1e 20202b23 branch lpm_hibernate_normal 
+
+lpm_hibernate:
+2b1f d85fffff arg param_hibernate_clks ,temp 
+2b20 6800c176 fetch 1 ,mem_lpm_config + 1 
+2b21 793ffe07 set0 7 ,pdata 
+2b22 6000c176 store 1 ,mem_lpm_config + 1 
+
+lpm_hibernate_normal:
+2b23 44d24014 bpatch patch14_4 ,mem_patch14 
+2b24 20402c29 call lpm_write_gpio_wakeup 
+2b25 6800c157 fetch 1 ,mem_lpm_hibernate_switch 
+2b26 6000c17c store 1 ,mem_lpm_xtalcnt + 4 
+2b27 6800c17a fetch 1 ,mem_lpm_xtalcnt + 2 
+2b28 79207e07 set1 cold_wake ,pdata 
+2b29 6000c17a store 1 ,mem_lpm_xtalcnt + 2 
+
+lpm_sleep:
+2b2a 44d2c014 bpatch patch14_5 ,mem_patch14 
+2b2b 204029e7 call xtal_fast_wake 
+2b2c 6802415f fetch 4 ,mem_sleep_counter_all 
+2b2d 9840fe00 iadd temp ,pdata 
+2b2e 6002415f store 4 ,mem_sleep_counter_all 
+2b2f 20402aef call lpm_save_context 
+2b30 6802c178 fetch 5 ,mem_lpm_xtalcnt 
+2b31 6012004c hstore 4 ,core_lpm_reg 
+2b32 1fef2200 rshift32 pdata ,rega 
+2b33 37d98200 until null ,lpo_edge 
+2b34 1b227e00 deposit clkn 
+2b35 60034163 store 6 ,mem_sleep_clkn 
+2b36 70800502 jam lpmreg_sel_ctrl2 ,core_lpm_wr 
+2b37 37d98200 until null ,lpo_edge 
+2b38 37d98200 until null ,lpo_edge 
+2b39 1a227e00 deposit rega 
+2b3a 6010804f hstore 1 ,core_lpm_isogate 
+2b3b 70800502 jam lpmreg_sel_ctrl2 ,core_lpm_wr 
+
+lpm_enter_sleep:
+2b3c 37d98200 until null ,lpo_edge 
+2b3d 37d98200 until null ,lpo_edge 
+2b3e 601a004c hstoret 4 ,core_lpm_reg 
+2b3f 70800510 jam lpmreg_sel_counter ,core_lpm_wr 
+2b40 37df8200 until null ,never 
+
+lpm_recover_clk:
+2b41 44d34014 bpatch patch14_6 ,mem_patch14 
+2b42 58000000 setarg 0 
+2b43 1ce27c00 copy auxcnt ,null 
+2b44 2022ab4c branch lpm_recover_timeout ,zero 
+2b45 6810813c hfetch 1 ,core_lpm_xtalcnt 
+2b46 6818813d hfetcht 1 ,core_lpm_buckcnt 
+2b47 98467c00 isub temp ,null 
+2b48 20212b4a branch lpm_recover_xtal ,positive 
+2b49 18427e00 deposit temp 
+
+lpm_recover_xtal:
+2b4a 9ce67e00 isub auxcnt ,pdata 
+2b4b 1fe0fe01 increase 1 ,pdata 
+
+lpm_recover_timeout:
+2b4c 1fe0fe08 increase 8 ,pdata 
+2b4d 37d98200 until null ,lpo_edge 
+2b4e 9e20fe00 iadd lpo_time ,pdata 
+2b4f 680a415b fetcht 4 ,mem_sleep_counter 
+2b50 9840fe00 iadd temp ,pdata 
+2b51 6809c16f fetcht 3 ,mem_clks_per_lpo 
+2b52 984ffe00 imul32 temp ,pdata 
+2b53 1fecfe00 rshift8 pdata ,pdata 
+2b54 1ff1fe00 rshift4 pdata ,pdata 
+2b55 1fe0fe6e increase param_lpm_fix ,pdata 
+2b56 d8400ea6 arg 3750 ,temp 
+2b57 9846fc00 idiv temp 
+2b58 20407f86 call wait_div_end 
+2b59 1807fe00 quotient pdata 
+2b5a 1ff07e00 lshift16 pdata ,pdata 
+2b5b 18070400 remainder temp 
+2b5c 9841fe00 ior temp ,pdata 
+2b5d 680b4163 fetcht 6 ,mem_sleep_clkn 
+2b5e 20407f2c call clk_add 
+2b5f 18423200 copy temp ,clkn 
+2b60 68034048 fetch 6 ,mem_context + coffset_clk_offset 
+2b61 20402854 call calc_clke2 
+2b62 1b427e00 deposit clke 
+2b63 60030a9a store 6 ,mem_pdatatemp 
+2b64 1ce27e00 deposit auxcnt 
+2b65 e0a08000 istore 1 ,contw 
+2b66 6810811d hfetch 1 ,core_gpio_in1 
+2b67 1fe1fef0 or_into 0xf0 ,pdata 
+2b68 e0a08000 istore 1 ,contw 
+2b69 20600000 rtn 
+
+lpm_dispatch:
+2b6a 44d3c014 bpatch patch14_7 ,mem_patch14 
+2b6b 20402afa call lpo_calibration 
+2b6c 6801c16f fetch 3 ,mem_clks_per_lpo 
+2b6d 207a0000 rtn blank 
+2b6e 6800c091 fetch 1 ,mem_lpm_mode 
+2b6f 207a0000 rtn blank 
+2b70 6800c65a fetch 1 ,mem_ssp_enable 
+2b71 203a2b74 branch lpm_dispatch_next ,blank 
+2b72 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
+2b73 207a0000 rtn blank 
+
+lpm_dispatch_next:
+2b74 6800c4c0 fetch 1 ,mem_le_sc_calc 
+2b75 247a0000 nrtn blank 
+2b76 20402c3a call lpm_check_wake_lock 
+2b77 247a0000 nrtn blank 
+2b78 6800c040 fetch 1 ,mem_context 
+2b79 2fe00e03 compare 3 ,pdata ,0x7 
+2b7a 2420ab9d nbranch lpm_dispatch_unconn ,true 
+2b7b 68014042 fetch 2 ,mem_context + coffset_tsniff 
+2b7c 207a0000 rtn blank 
+2b7d 20758000 rtn wake 
+2b7e 44d44015 bpatch patch15_0 ,mem_patch15 
+
+lpm_dispatch_next2:
+2b7f 680880a0 fetcht 1 ,mem_lpm_current_mult 
+2b80 68014042 fetch 2 ,mem_context + coffset_tsniff 
+2b81 984ffe00 imul32 temp ,pdata 
+2b82 18518400 rshift4 temp ,temp 
+2b83 184b0400 rshift2 temp ,temp 
+2b84 98467e00 isub temp ,pdata 
+2b85 680a4044 fetcht 4 ,mem_context + coffset_sniff_anchor 
+2b86 9840fe00 iadd temp ,pdata 
+2b87 6808c156 fetcht 1 ,mem_lpm_overhead 
+2b88 98467e00 isub temp ,pdata 
+2b89 1ff06000 lshift16 pdata ,alarm 
+2b8a 44d4c015 bpatch patch15_1 ,mem_patch15 
+2b8b 6801404e fetch 2 ,mem_context + coffset_rx_window 
+2b8c 1fe37e00 rshift pdata ,pdata 
+2b8d 20407f50 call clk2bt 
+2b8e 1e027e00 deposit alarm 
+2b8f 20407f39 call clk_diff 
+2b90 1b420400 copy clke ,temp 
+2b91 20407f37 call clk_diff_rt 
+2b92 20740000 rtn user 
+
+lpm_dispatch_sleep:
+2b93 20407f49 call clk2lpo 
+
+lpm_dispatch_lpo:
+2b94 44d54015 bpatch patch15_2 ,mem_patch15 
+2b95 6800c178 fetch 1 ,mem_lpm_xtalcnt 
+2b96 98467c00 isub temp ,null 
+2b97 20212b18 branch lpm_clear_counter ,positive 
+2b98 600a415b storet 4 ,mem_sleep_counter 
+2b99 20403328 call app_will_enter_lpm 
+2b9a 204052fb call l2cap_lpm_save_txbuf 
+2b9b 680a415b fetcht 4 ,mem_sleep_counter 
+2b9c 20202b2a branch lpm_sleep 
+
+lpm_dispatch_unconn:
+2b9d 44d5c015 bpatch patch15_3 ,mem_patch15 
+2b9e 6800c040 fetch 1 ,mem_context 
+2b9f c3800000 rtnbit1 state_inconn 
+2ba0 c3818000 rtnbit1 state_inpage 
+2ba1 6800c65a fetch 1 ,mem_ssp_enable 
+2ba2 203a2ba5 branch lpm_unconn_nossp ,blank 
+2ba3 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
+2ba4 207a0000 rtn blank 
+
+lpm_unconn_nossp:
+2ba5 44d64015 bpatch patch15_4 ,mem_patch15 
+2ba6 6800c36e fetch 1 ,mem_le_adv_enable 
+2ba7 243a2baa nbranch lpm_unconn_cont ,blank 
+2ba8 6800c093 fetch 1 ,mem_scan_mode 
+2ba9 207a0000 rtn blank 
+
+lpm_unconn_cont:
+2baa 68014154 fetch 2 ,mem_lpm_interval 
+2bab 207a0000 rtn blank 
+
+lpm_sleep_btclk:
+2bac 6808c156 fetcht 1 ,mem_lpm_overhead 
+2bad 98467e00 isub temp ,pdata 
+2bae d8401d4c arg 7500 ,temp 
+2baf 984ffe00 imul32 temp ,pdata 
+2bb0 20202b93 branch lpm_dispatch_sleep 
+
+lpm_set_mult:
+2bb1 44d6c015 bpatch patch15_5 ,mem_patch15 
+2bb2 7855fc00 disable wake 
+2bb3 68008030 fetch 1 ,mem_state 
+2bb4 c4008000 rtnbit0 state_insniff 
+2bb5 2436abd0 nbranch lpm_not_match ,match 
+2bb6 20402bcb call lpm_match 
+2bb7 680140c1 fetch 2 ,mem_rx_window_sniff 
+2bb8 6001003e store 2 ,mem_rx_window 
+2bb9 68008047 fetch 1 ,mem_arq 
+2bba c281abde bbit1 wack ,lpm_mult_short 
+2bbb c586abde bmark0 mark_lpm_mult_enable ,lpm_mult_short 
+2bbc 20405274 call l2cap_malloc_is_fifo_empty 
+2bbd 243a2bde nbranch lpm_mult_short ,blank 
+2bbe 6800c55c fetch 1 ,mem_classic_bt_flag 
+2bbf c280abde bbit1 short_mult_flag ,lpm_mult_short 
+
+lpm_mult_wait_timeout:
+2bc0 7000a000 jam 0 ,mem_lpm_current_mult 
+2bc1 c586abde bmark0 mark_lpm_mult_enable ,lpm_mult_short 
+2bc2 6800c174 fetch 1 ,mem_lpm_mult_cnt 
+2bc3 203a2be2 branch lpm_mult_long ,blank 
+2bc4 1fe0ffff increase -1 ,pdata 
+2bc5 6000c174 store 1 ,mem_lpm_mult_cnt 
+2bc6 20600000 rtn 
+
+classic_bt_set_mult_short_flag:
+2bc7 d8e00001 arg short_mult_flag ,queue 
+2bc8 202060cd branch classic_bluetooth_set_flag 
+
+classic_bt_clr_mult_short_flag:
+2bc9 d8e00001 arg short_mult_flag ,queue 
+2bca 202060d1 branch classic_bluetooth_clr_flag 
+
+lpm_match:
+2bcb 70415900 jam 0 ,mem_sniff_unint_lost 
+2bcc 6801c169 fetch 3 ,mem_sniff_rcv 
+2bcd 1fe0fe01 increase 1 ,pdata 
+2bce 6001c169 store 3 ,mem_sniff_rcv 
+2bcf 20600000 rtn 
+
+lpm_not_match:
+2bd0 44d74015 bpatch patch15_6 ,mem_patch15 
+2bd1 680940c1 fetcht 2 ,mem_rx_window_sniff 
+2bd2 18430400 rshift temp ,temp 
+2bd3 6801003e fetch 2 ,mem_rx_window 
+2bd4 9840fe00 iadd temp ,pdata 
+2bd5 6001003e store 2 ,mem_rx_window 
+
+lpm_lost:
+2bd6 7000a000 jam 0 ,mem_lpm_current_mult 
+2bd7 6801c16c fetch 3 ,mem_sniff_lost 
+2bd8 1fe0fe01 increase 1 ,pdata 
+2bd9 6001c16c store 3 ,mem_sniff_lost 
+2bda 6800c159 fetch 1 ,mem_sniff_unint_lost 
+2bdb 1fe0fe01 increase 1 ,pdata 
+2bdc 6000c159 store 1 ,mem_sniff_unint_lost 
+2bdd 20600000 rtn 
+
+lpm_mult_short:
+2bde 7000a000 jam 0 ,mem_lpm_current_mult 
+2bdf 6800c173 fetch 1 ,mem_lpm_mult_timeout 
+2be0 6000c174 store 1 ,mem_lpm_mult_cnt 
+2be1 20600000 rtn 
+
+lpm_mult_long:
+2be2 6808c172 fetcht 1 ,mem_lpm_mult 
+2be3 600880a0 storet 1 ,mem_lpm_current_mult 
+2be4 20600000 rtn 
+
+lpm_cal_xtal_startup:
+2be5 44d7c015 bpatch patch15_7 ,mem_patch15 
+2be6 6800c178 fetch 1 ,mem_lpm_xtalcnt 
+2be7 247a0000 nrtn blank 
+2be8 70804206 jam clksel_rc ,core_clksel 
+2be9 58000f0c setarg 0xf0c 
+2bea 20402c18 call lpm_write_config 
+2beb 58030d40 setarg 200000 
+2bec 20402a8f call sleep 
+2bed 37d98200 until null ,lpo_edge 
+2bee 1e226000 copy lpo_time ,alarm 
+2bef 204029e7 call xtal_fast_wake 
+2bf0 70804204 jam clksel_xtal ,core_clksel 
+2bf1 2000000a nop 10 
+2bf2 37d98200 until null ,lpo_edge 
+2bf3 1e227e00 deposit lpo_time 
+2bf4 9e067e00 isub alarm ,pdata 
+2bf5 1fe0fe30 increase 0x30 ,pdata 
+2bf6 d84000ff arg 0xff ,temp 
+2bf7 20407f91 call ceiling 
+2bf8 6000c178 store 1 ,mem_lpm_xtalcnt 
+2bf9 20007530 nop 30000 
+2bfa 20007530 nop 30000 
+2bfb 20007530 nop 30000 
+2bfc 20600000 rtn 
+
+lpm_cal_xtal_startup_by_snooze:
+2bfd 6800c178 fetch 1 ,mem_lpm_xtalcnt 
+2bfe 247a0000 nrtn blank 
+2bff 708044ff jam 0xff ,core_xtal_stable_time 
+2c00 70804206 jam clksel_rc ,core_clksel 
+2c01 204029e7 call xtal_fast_wake 
+2c02 580003e8 setarg 1000 
+2c03 9e20e000 iadd lpo_time ,alarm 
+2c04 07e00000 snooze 
+2c05 1e227e00 deposit lpo_time 
+2c06 20002ee0 nop 12000 
+2c07 20002ee0 nop 12000 
+2c08 20002ee0 nop 12000 
+2c09 20002ee0 nop 12000 
+2c0a 20002ee0 nop 12000 
+2c0b 20002ee0 nop 12000 
+2c0c 20002ee0 nop 12000 
+2c0d 20002ee0 nop 12000 
+2c0e 20002ee0 nop 12000 
+2c0f 9e067e00 isub alarm ,pdata 
+2c10 1fe0fe30 add pdata ,0x30 ,pdata 
+2c11 d84000ff arg 0xff ,temp 
+2c12 20407f91 call ceiling 
+2c13 6000c178 store 1 ,mem_lpm_xtalcnt 
+2c14 20007530 nop 30000 
+2c15 20007530 nop 30000 
+2c16 20007530 nop 30000 
+2c17 20600000 rtn 
+
+lpm_write_config:
+2c18 d8a00fff arg 0xfff ,contw 
+2c19 98a10a00 iand contw ,contw 
+2c1a 6800c175 fetch 1 ,mem_lpm_config 
+2c1b 1fe17ef0 and_into 0xf0 ,pdata 
+2c1c 1fed7e00 lshift8 pdata ,pdata 
+2c1d 98a1fe00 ior contw ,pdata 
+2c1e 6011004c hstore 2 ,core_lpm_reg 
+2c1f e8c10000 ifetch 2 ,contr 
+2c20 e0a10000 istore 2 ,contw 
+
+lpm_write_ctrl:
+2c21 58000001 setarg lpmreg_sel_ctrl 
+2c22 20202c24 branch lpm_write 
+
+lpm_write_ctrl2:
+2c23 58000002 setarg lpmreg_sel_ctrl2 
+
+lpm_write:
+2c24 37d98200 until null ,lpo_edge 
+2c25 60108005 hstore 1 ,core_lpm_wr 
+2c26 37d98200 until null ,lpo_edge 
+2c27 37d98200 until null ,lpo_edge 
+2c28 20600000 rtn 
+
+lpm_write_gpio_wakeup:
+2c29 44d84016 bpatch patch16_0 ,mem_patch16 
+2c2a 680200a1 fetch 4 ,mem_gpio_wakeup_low 
+2c2b 6012004c hstore 4 ,core_lpm_reg 
+2c2c 58000004 setarg lpmreg_sel_gpiolow 
+2c2d 20402c24 call lpm_write 
+2c2e 680200a5 fetch 4 ,mem_gpio_wakeup_high 
+2c2f 6012004c hstore 4 ,core_lpm_reg 
+2c30 58000008 setarg lpmreg_sel_gpiohigh 
+2c31 20202c24 branch lpm_write 
+
+lpm_get_wake_lock:
+2c32 68014152 fetch 2 ,mem_lpm_wake_lock 
+2c33 f9207e00 qset1 pdata 
+2c34 60014152 store 2 ,mem_lpm_wake_lock 
+2c35 20600000 rtn 
+
+lpm_put_wake_lock:
+2c36 68014152 fetch 2 ,mem_lpm_wake_lock 
+2c37 f93ffe00 qset0 pdata 
+2c38 60014152 store 2 ,mem_lpm_wake_lock 
+2c39 20600000 rtn 
+
+lpm_check_wake_lock:
+2c3a 44d8c016 bpatch patch16_1 ,mem_patch16 
+2c3b 20403326 call app_check_wake_lock 
+2c3c 68014152 fetch 2 ,mem_lpm_wake_lock 
+2c3d 1fe22200 copy pdata ,rega 
+2c3e 6800804c fetch 1 ,mem_state_map 
+2c3f 2feffe06 isolate1 smap_rxlmp ,pdata 
+2c40 7920a20b setflag true ,wake_lock_lmp_rx ,rega 
+2c41 68008078 fetch 1 ,mem_lmo_opcode1 
+2c42 6808807c fetcht 1 ,mem_lmo_opcode2 
+2c43 9840fe00 iadd temp ,pdata 
+2c44 68088048 fetcht 1 ,mem_lmp_to_send 
+2c45 9840fe00 iadd temp ,pdata 
+2c46 7d3a220a nsetflag blank ,wake_lock_lmp_tx ,rega 
+2c47 6800c4ff fetch 1 ,mem_le_tx_buff_used 
+2c48 7d3a2201 nsetflag blank ,wake_lock_ble_tx ,rega 
+2c49 6801025d fetch 2 ,mem_l2cap_rxbuff1_len 
+2c4a 6809025f fetcht 2 ,mem_l2cap_rxbuff2_len 
+2c4b 9840fe00 iadd temp ,pdata 
+2c4c 7d3a220d nsetflag blank ,wake_lock_l2cap_rx ,rega 
+2c4d 68044668 fetch util_fifo_len ,mem_ipc_fifo_bt2c51 
+2c4e 7d3a220f nsetflag blank ,wake_lock_ipc_bt2c51 ,rega 
+2c4f 68044670 fetch util_fifo_len ,mem_ipc_fifo_c512bt 
+2c50 7d3a220e nsetflag blank ,wake_lock_ipc_c512bt ,rega 
+2c51 6800c1ce fetch 1 ,mem_hci_cmd 
+2c52 7d3a2208 nsetflag blank ,wake_lock_cmd ,rega 
+2c53 6800c092 fetch 1 ,mem_device_option 
+2c54 2fe1fe0a compare dvc_op_module ,pdata ,0xff 
+2c55 2040ac5b call lpm_uart_wake_lock ,true 
+2c56 5ffffff8 setarg -8 
+2c57 9a212200 iand rega ,rega 
+2c58 1a227e00 copy rega ,pdata 
+2c59 60014152 store 2 ,mem_lpm_wake_lock 
+2c5a 20600000 rtn 
+
+lpm_uart_wake_lock:
+2c5b 68110112 hfetch 2 ,core_uart_rxitems 
+2c5c 7d3a2206 nsetflag blank ,wake_lock_uart_rx ,rega 
+2c5d 6811010e hfetch 2 ,core_uart_txitems 
+2c5e 7d3a2205 nsetflag blank ,wake_lock_uart_tx ,rega 
+2c5f 20600000 rtn 
+
+lpm_shut_down:
+2c60 68120138 hfetch 4 ,core_lpm_ctrl 
+2c61 793ffe1b set0 27 ,pdata 
+2c62 6012004c hstore 4 ,core_lpm_reg 
+2c63 20402c21 call lpm_write_ctrl 
+2c64 20202a8c branch assert 
+
+lpm_disable_exen_output:
+2c65 6812013c hfetch 4 ,core_lpm_xtalcnt 
+2c66 793ffe14 set0 20 ,pdata 
+2c67 6012004c hstore 4 ,core_lpm_reg 
+2c68 20202c23 branch lpm_write_ctrl2 
+
+check_bt_disabled:
+2c69 68014150 fetch 2 ,mem_chip_functions 
+2c6a c2802a8c bbit1 bt_disabled ,assert 
+2c6b 20600000 rtn 
+
+check_ble_disabled:
+2c6c 68014150 fetch 2 ,mem_chip_functions 
+2c6d c280aa8c bbit1 ble_disabled ,assert 
+2c6e 20600000 rtn 
+
+check_module_disabled:
+2c6f 68014150 fetch 2 ,mem_chip_functions 
+2c70 c2812a8c bbit1 module_disable ,assert 
+2c71 20600000 rtn 
+
+g24_dispatch:
+2c72 44d94016 bpatch patch16_2 ,mem_patch16 
+2c73 20402c7a call g24_head_ptr2regc 
+2c74 1a60a4cd add regc ,offset_24g_mode ,regb 
+2c75 ea408000 ifetch 1 ,regb 
+2c76 c1000000 rtneq disable_24g 
+2c77 c000ad06 beq tx_24g ,g24_transmit_process 
+2c78 c0012c7f beq rx_24g ,g24_receive_process 
+2c79 20600000 rtn 
+
+g24_head_ptr2regc:
+2c7a 68094241 fetcht 2 ,mem_24g_head_ptr 
+2c7b 18422600 copy temp ,regc 
+2c7c 20600000 rtn 
+
+g24_receive_process_init:
+2c7d 20402f3d call g24_receive_init 
+2c7e 2020307d branch g24_mode_switch_init 
+
+g24_receive_process:
+2c7f 20403084 call g24_mode_switch 
+2c80 2040305a call g24_dongle_work_mode_auto 
+2c81 2040305e call g24_dongle_bind_mode_auto 
+2c82 202030a2 branch g24_dongle_search_mode_auto 
+
+g24_pair_init:
+2c83 20403231 call g24_set0_mem_pid 
+2c84 5800004e setarg g24_pair_ch 
+2c85 2040322f call g24_store_mem_ch 
+2c86 204032ba call g24_store_mem_pair_txpower 
+2c87 1a60a292 add regc ,offset_24g_paring_addr ,rega 
+2c88 ea220000 ifetch 4 ,rega 
+2c89 2020322c branch g24_store_mem_addr 
+
+g24_ch:
+2c8a 20402c7a call g24_head_ptr2regc 
+2c8b 1a60a491 add regc ,offset_24g_current_ch_number ,regb 
+2c8c ea488000 ifetcht 1 ,regb 
+2c8d 20402c90 call g24_ch_temp_incre_size4 
+2c8e 1a608a91 add regc ,offset_24g_current_ch_number ,contw 
+2c8f 20202e56 branch g24_contw_istoret_1byte 
+
+g24_ch_temp_incre_size4:
+2c90 20402c94 call g24_ch_calc 
+2c91 18408401 increase 1 ,temp 
+2c92 18410403 and_into 3 ,temp 
+2c93 20600000 rtn 
+
+g24_ch_calc:
+2c94 1a60a4ae add regc ,offset_24g_addr ,regb 
+2c95 ea408000 ifetch 1 ,regb 
+2c96 1fe17e03 and_into 0x03 ,pdata 
+2c97 1fefa204 mul32 pdata ,4 ,rega 
+2c98 1a60fe97 add regc ,offset_24g_ch_map1 ,pdata 
+2c99 9a20fe00 iadd rega ,pdata 
+2c9a 98408c00 iadd temp ,contr 
+2c9b e8c08000 ifetch 1 ,contr 
+2c9c 2020322f branch g24_store_mem_ch 
+
+g24_set_device_addr:
+2c9d 2040326c call g24_store_mem_tx_power_temp 
+2c9e 2040666a call otp_enable_chgpump 
+2c9f 580007e2 setarg 0x7e2 
+2ca0 da200aa2 arg mem_temp ,rega 
+2ca1 d8400004 arg 4 ,temp 
+2ca2 204066b3 call otpd_read_data 
+2ca3 2040666d call otp_disable_chgpump 
+2ca4 68020aa2 fetch 4 ,mem_temp 
+2ca5 20403227 call g24_store_mem_device_addr 
+2ca6 247a0000 nrtn blank 
+2ca7 680240a0 fetch 4 ,mem_lap 
+2ca8 20203227 branch g24_store_mem_device_addr 
+
+g24_transmit_rf_sta_init:
+2ca9 20403241 call g24_set1_mem_rf_last_sta 
+2caa 58000000 setarg 0 
+2cab 2040323f call g24_store_mem_sync_cnt 
+
+g24_transmit_rf_ctrl_clear:
+2cac 2040323a call g24_fetch_mem_data_type 
+2cad 1fe17e07 and_into bits_data ,pdata 
+2cae 2020323c branch g24_store_mem_data_type 
+
+g24_hop_ch_enable:
+2caf 2040323a call g24_fetch_mem_data_type 
+2cb0 79207e04 set1 bit_hop ,pdata 
+2cb1 2040323c call g24_store_mem_data_type 
+2cb2 20203235 branch g24_store_mem_txpayload 
+
+g24_transmit_hop_pac_fail:
+2cb3 2040325d call g24_fetch_mem_rf_work_stage 
+2cb4 c000acb7 beq 1 ,g24_transmit_hop_pac_fail_wo_hop 
+2cb5 c0012cbc beq 2 ,g24_transmit_hop_pac_fail_hop_stage2 
+2cb6 20600000 rtn 
+
+g24_transmit_hop_pac_fail_wo_hop:
+2cb7 2040323e call g24_set2_mem_sync_cnt 
+
+g24_transmit_hop_pac_fail_stage1:
+2cb8 1a608ad1 add regc ,offset_24g_hop_pac_retry ,contw 
+2cb9 204032d6 call g24_mem_set0 
+2cba 20403242 call g24_store_mem_rf_last_sta 
+2cbb 20202cac branch g24_transmit_rf_ctrl_clear 
+
+g24_transmit_hop_pac_fail_hop_stage2:
+2cbc 2040325a call g24_set0_mem_rf_hop_ch 
+2cbd 20202cb8 branch g24_transmit_hop_pac_fail_stage1 
+
+g24_transmit_pac_fail_hop_stage3:
+2cbe 1a60a28c add regc ,offset_24g_txfail_cnt ,rega 
+2cbf ea208000 ifetch 1 ,rega 
+2cc0 1fe0fe01 increase 1 ,pdata 
+2cc1 1a608a8c add regc ,offset_24g_txfail_cnt ,contw 
+2cc2 e0a08000 istore 1 ,contw 
+2cc3 c0102dd2 beq 0x20 ,g24_tx_attempt_fail 
+2cc4 20403258 call g24_fetch_mem_rf_hop_ch 
+2cc5 c000acca beq 1 ,g24_rf_hop_fastly 
+2cc6 58000001 setarg 1 
+2cc7 2040325b call g24_store_mem_rf_hop_ch 
+
+g24_rf_hop_attemp_again:
+2cc8 20403258 call g24_fetch_mem_rf_hop_ch 
+2cc9 c080acac bne 1 ,g24_transmit_rf_ctrl_clear 
+
+g24_rf_hop_fastly:
+2cca 1a60a2d3 add regc ,offset_24g_hop_fastly_cnt ,rega 
+2ccb ea208000 ifetch 1 ,rega 
+2ccc 1fe0fe01 increase 1 ,pdata 
+2ccd 20402cd5 call g24_store_mem_hop_fastly_cnt 
+2cce c0022cd2 beq 4 ,g24_rf_hop_fastly_exit 
+2ccf 20402c8a call g24_ch 
+2cd0 20402d04 call g24_set2_mem_max_retry 
+2cd1 20202d8f branch g24_transmit_packet 
+
+g24_rf_hop_fastly_exit:
+2cd2 20402cd4 call g24_set0_mem_hop_fastly_cnt 
+2cd3 20202cac branch g24_transmit_rf_ctrl_clear 
+
+g24_set0_mem_hop_fastly_cnt:
+2cd4 58000000 setarg 0 
+
+g24_store_mem_hop_fastly_cnt:
+2cd5 1a608ad3 add regc ,offset_24g_hop_fastly_cnt ,contw 
+2cd6 202032b4 branch g24_contw_istore_1byte 
+
+g24_transmit_hop_pac_succ_wo_hop:
+2cd7 2040323e call g24_set2_mem_sync_cnt 
+
+g24_transmit_hop_pac_succ:
+2cd8 2040325a call g24_set0_mem_rf_hop_ch 
+2cd9 20403241 call g24_set1_mem_rf_last_sta 
+2cda 20202cac branch g24_transmit_rf_ctrl_clear 
+
+g24_transmit_succ_rf_config:
+2cdb 2040325d call g24_fetch_mem_rf_work_stage 
+2cdc c001acd8 beq 3 ,g24_transmit_hop_pac_succ 
+2cdd 2040323a call g24_fetch_mem_data_type 
+2cde 2fec0004 isolate0 bit_hop ,pdata 
+2cdf 2020aca9 branch g24_transmit_rf_sta_init ,true 
+2ce0 2040325d call g24_fetch_mem_rf_work_stage 
+2ce1 c000acd7 beq 1 ,g24_transmit_hop_pac_succ_wo_hop 
+2ce2 c0012cd8 beq 2 ,g24_transmit_hop_pac_succ 
+2ce3 20600000 rtn 
+
+g24_rf_sta_check:
+2ce4 20403253 call g24_fetch_mem_pairing_sm 
+2ce5 c1ff8000 rtnne state_24g_pairing_success 
+2ce6 20402ce9 call g24_rf_laststa_synccnt_check 
+2ce7 24562cf4 ncall g24_rf_sync_cnt_check ,user2 
+2ce8 20600000 rtn 
+
+g24_rf_laststa_synccnt_check:
+2ce9 78567c00 disable user2 
+2cea 1a60a2ce add regc ,offset_24g_rf_last_sta ,rega 
+2ceb ea208000 ifetch 1 ,rega 
+2cec c1808000 rtnne 1 
+2ced 1a60a2d0 add regc ,offset_24g_sync_cnt ,rega 
+2cee ea208000 ifetch 1 ,rega 
+2cef c1800000 rtnne 0 
+2cf0 58000001 setarg 1 
+2cf1 20402cfd call g24_store_mem_rf_work_stage 
+2cf2 20403237 call g24_set4_mem_max_retry 
+2cf3 20207feb branch enable_user2 
+
+g24_rf_sync_cnt_check:
+2cf4 1a60a2d0 add regc ,offset_24g_sync_cnt ,rega 
+2cf5 ea208000 ifetch 1 ,rega 
+2cf6 203a2cff branch g24_rf_hop_attemp ,blank 
+2cf7 1fe0ffff increase -1 ,pdata 
+2cf8 2040323f call g24_store_mem_sync_cnt 
+2cf9 58000002 setarg 2 
+2cfa 20402cfd call g24_store_mem_rf_work_stage 
+2cfb 20402c8a call g24_ch 
+2cfc 20203237 branch g24_set4_mem_max_retry 
+
+g24_store_mem_rf_work_stage:
+2cfd 1a608ad2 add regc ,offset_24g_rf_work_stage ,contw 
+2cfe 202032b4 branch g24_contw_istore_1byte 
+
+g24_rf_hop_attemp:
+2cff 58000003 setarg 3 
+2d00 20402cfd call g24_store_mem_rf_work_stage 
+2d01 20403258 call g24_fetch_mem_rf_hop_ch 
+2d02 243a2cc8 nbranch g24_rf_hop_attemp_again ,blank 
+2d03 20402c8a call g24_ch 
+
+g24_set2_mem_max_retry:
+2d04 58000002 setarg 2 
+2d05 20203238 branch g24_store_mem_max_retry 
+
+g24_transmit_process:
+2d06 c6930000 rtnmark0 mark_24g 
+2d07 79200027 set1 mark_24g_conext ,mark 
+2d08 44d9c016 bpatch patch16_3 ,mem_patch16 
+2d09 1a60a28e add regc ,offset_24g_tx_without_int ,rega 
+2d0a ea208000 ifetch 1 ,rega 
+2d0b c000ad0f beq 1 ,g24_transmit_without_int 
+2d0c 2040306a call g24_timer_check 
+2d0d 24342d16 nbranch g24_transmit_exit ,user 
+2d0e 20402d1b call g24_interval_calibrate 
+
+g24_transmit_without_int:
+2d0f 1a608a8e add regc ,offset_24g_tx_without_int ,contw 
+2d10 204032d6 call g24_mem_set0 
+2d11 20402d2c call g24_txdata_prep 
+2d12 24342d7d nbranch g24_enter_lpm ,user 
+2d13 20402ce4 call g24_rf_sta_check 
+
+g24_transmit_start:
+2d14 20402d8f call g24_transmit_packet 
+2d15 20402e7a call g24_power_ctrl 
+
+g24_transmit_exit:
+2d16 793f8027 set0 mark_24g_conext ,mark 
+2d17 20600000 rtn 
+
+g24_timer_timeout:
+2d18 20628000 rtn zero 
+2d19 79207e1c set1 28 ,pdata 
+2d1a 20600000 rtn 
+
+g24_interval_calibrate:
+2d1b 1a60a2c2 add regc ,offset_24g_pac_index ,rega 
+2d1c ea208000 ifetch 1 ,rega 
+2d1d 1fe0fe01 increase 1 ,pdata 
+2d1e 1a608ac2 add regc ,offset_24g_pac_index ,contw 
+2d1f e0a08000 istore 1 ,contw 
+2d20 c0022d23 beq 4 ,g24_interval_max 
+2d21 c002ad27 beq 5 ,g24_interval_min 
+2d22 20600000 rtn 
+
+g24_interval_max:
+2d23 1a60a2ad add regc ,offset_24g_interval_max ,rega 
+2d24 ea208000 ifetch 1 ,rega 
+
+g24_interval_update:
+2d25 1a608aab add regc ,offset_24g_interval ,contw 
+2d26 202032b4 branch g24_contw_istore_1byte 
+
+g24_interval_min:
+2d27 1a608ac2 add regc ,offset_24g_pac_index ,contw 
+2d28 204032d6 call g24_mem_set0 
+2d29 1a60a2ac add regc ,offset_24g_interval_min ,rega 
+2d2a ea208000 ifetch 1 ,rega 
+2d2b 20202d25 branch g24_interval_update 
+
+g24_txdata_prep:
+2d2c 20403253 call g24_fetch_mem_pairing_sm 
+2d2d c0ffaeb1 bne state_24g_pairing_success ,g24_pairing_sm 
+2d2e 44da4016 bpatch patch16_4 ,mem_patch16 
+2d2f 20402d3a call g24_package_data 
+2d30 24342d36 nbranch g24_txdata_last_pac ,user 
+2d31 20402d53 call g24_transmit_prep 
+2d32 20402e71 call g24_power_ctrl_pac_incrs 
+
+g24_txdata_enable_tx:
+2d33 58000001 setarg ensure_on_24g 
+
+g24_store_mem_ensure:
+2d34 1a608a8b add regc ,offset_24g_ensure ,contw 
+2d35 202032b4 branch g24_contw_istore_1byte 
+
+g24_txdata_last_pac:
+2d36 1a60a28b add regc ,offset_24g_ensure ,rega 
+2d37 ea208000 ifetch 1 ,rega 
+2d38 c000ffe7 beq ensure_on_24g ,enable_user 
+2d39 20600000 rtn 
+
+g24_package_data:
+2d3a 1a6084d8 add regc ,offset_24g_cb_data ,temp 
+2d3b e8410000 ifetch 2 ,temp 
+2d3c 20407f9c call callback_func 
+2d3d 24740000 nrtn user 
+2d3e 1a227e00 copy rega ,pdata 
+2d3f 60008aae store 1 ,mem_rega 
+2d40 1a608ab2 add regc ,offset_24g_abort_pac ,contw 
+2d41 204032d6 call g24_mem_set0 
+2d42 20402cac call g24_transmit_rf_ctrl_clear 
+2d43 6000919e store 1 ,mem_24g_common_temp 
+2d44 68008aae fetch 1 ,mem_rega 
+2d45 1fe22200 copy pdata ,rega 
+2d46 1a208401 add rega ,1 ,temp 
+2d47 d8a0119f arg mem_24g_common_temp + 1 ,contw 
+2d48 1a227200 copy rega ,loopcnt 
+2d49 1a420c00 copy regb ,contr 
+2d4a 20407f01 call memcpy 
+2d4b da20119e arg mem_24g_common_temp ,rega 
+
+g24_put_data_in_buff:
+2d4c c6938000 rtnmark0 mark_24g_conext 
+2d4d 1a608a86 add regc ,offset_24g_datalen ,contw 
+2d4e e0a88000 istoret 1 ,contw 
+2d4f 18427200 copy temp ,loopcnt 
+2d50 1a608a22 add regc ,offset_24g_txbuf ,contw 
+2d51 1a220c00 copy rega ,contr 
+2d52 20207f01 branch memcpy 
+
+g24_transmit_prep:
+2d53 1a60a286 add regc ,offset_24g_datalen ,rega 
+2d54 ea208000 ifetch 1 ,rega 
+2d55 1fe0fe02 increase 2 ,pdata 
+2d56 1a608a88 add regc ,offset_24g_txlen ,contw 
+2d57 e0a08000 istore 1 ,contw 
+2d58 2040323a call g24_fetch_mem_data_type 
+2d59 20403235 call g24_store_mem_txpayload 
+2d5a 1a60a286 add regc ,offset_24g_datalen ,rega 
+2d5b ea208000 ifetch 1 ,rega 
+2d5c 1fe9fe00 lshift3 pdata ,pdata 
+2d5d 1a60a285 add regc ,offset_24g_pid ,rega 
+2d5e ea288000 ifetcht 1 ,rega 
+2d5f 18410403 and temp ,0x03 ,temp 
+2d60 18438400 lshift temp ,temp 
+2d61 9841fe00 ior temp ,pdata 
+2d62 1a60a2c3 add regc ,offset_24g_no_ack ,rega 
+2d63 ea288000 ifetcht 1 ,rega 
+2d64 9840fe00 iadd temp ,pdata 
+2d65 e0a08000 istore 1 ,contw 
+2d66 1a60a286 add regc ,offset_24g_datalen ,rega 
+2d67 ea208000 ifetch 1 ,rega 
+2d68 98007200 iforce loopcnt 
+2d69 1a608c22 add regc ,offset_24g_txbuf ,contr 
+2d6a 20207f01 branch memcpy 
+
+g24_send_abort_packet:
+2d6b 2040324f call g24_set1_mem_abort_pac 
+2d6c 2040325a call g24_set0_mem_rf_hop_ch 
+2d6d 20402e6d call g24_power_ctrl_reinit 
+2d6e 20402cac call g24_transmit_rf_ctrl_clear 
+2d6f 6000919e store 1 ,mem_24g_common_temp 
+2d70 20402d77 call g24_put_data_in_buff_pre 
+2d71 2040323a call g24_fetch_mem_data_type 
+2d72 79207e03 set1 bit_abort ,pdata 
+2d73 2040323c call g24_store_mem_data_type 
+2d74 20402d53 call g24_transmit_prep 
+2d75 20402d33 call g24_txdata_enable_tx 
+2d76 20202d14 branch g24_transmit_start 
+
+g24_put_data_in_buff_pre:
+2d77 6000919f store 1 ,mem_24g_common_temp + 1 
+2d78 20403224 call g24_fetch_mem_device_addr 
+2d79 600211a0 store 4 ,mem_24g_common_temp + 2 
+2d7a d8400006 arg 6 ,temp 
+2d7b da20119e arg mem_24g_common_temp ,rega 
+2d7c 20202d4c branch g24_put_data_in_buff 
+
+g24_enter_lpm:
+2d7d 1a60a2b2 add regc ,offset_24g_abort_pac ,rega 
+2d7e ea208000 ifetch 1 ,rega 
+2d7f 203a2d6b branch g24_send_abort_packet ,blank 
+
+g24_enter_lpm_prepare:
+2d80 1a60a2da add regc ,offset_24g_cb_lpm_prepare ,rega 
+2d81 ea210000 ifetch 2 ,rega 
+2d82 20207f9c branch callback_func 
+
+g24_lpm_long_sleep:
+2d83 20402c7a call g24_head_ptr2regc 
+2d84 20402afa call lpo_calibration 
+2d85 6801c16f fetch 3 ,mem_clks_per_lpo 
+2d86 207a0000 rtn blank 
+2d87 1a6084dc add regc ,offset_24g_cb_lpm_before ,temp 
+2d88 e8410000 ifetch 2 ,temp 
+2d89 20407f9c call callback_func 
+2d8a 1a6084b6 add regc ,offset_24g_enter_hibernate ,temp 
+2d8b e8440000 ifetch 8 ,temp 
+2d8c 20407f49 call clk2lpo 
+2d8d 600a415b storet 4 ,mem_sleep_counter 
+2d8e 20202b2a branch lpm_sleep 
+
+g24_transmit_packet:
+2d8f 20402c7a call g24_head_ptr2regc 
+2d90 1a608a8f add regc ,offset_24g_retry ,contw 
+2d91 204032d6 call g24_mem_set0 
+
+g24_transmit_loop:
+2d92 20402da4 call g24_transmit_receive_ack 
+2d93 242c2dae nbranch g24_retransmit ,sync 
+2d94 2437adae nbranch g24_retransmit ,user3 
+2d95 20402dd6 call g24_ackpayload_parse 
+2d96 20402e75 call g24_power_ctrl_ack_incrs 
+
+g24_transmit_next_packet:
+2d97 20402c7a call g24_head_ptr2regc 
+2d98 1a60a285 add regc ,offset_24g_pid ,rega 
+2d99 ea208000 ifetch 1 ,rega 
+2d9a 1fe0fe01 increase 1 ,pdata 
+2d9b 20403232 call g24_store_mem_pid 
+2d9c 20403253 call g24_fetch_mem_pairing_sm 
+2d9d c0ffaed0 bne state_24g_pairing_success ,g24_paring_mode 
+2d9e 20402cdb call g24_transmit_succ_rf_config 
+
+g24_transmit_abandon:
+2d9f 58000000 setarg 0 
+2da0 1a608a8c add regc ,offset_24g_txfail_cnt ,contw 
+2da1 e0a10000 istore 2 ,contw 
+2da2 58000000 setarg ensure_off_24g 
+2da3 20202d34 branch g24_store_mem_ensure 
+
+g24_transmit_receive_ack:
+2da4 7857fc00 disable user3 
+2da5 20402df7 call g24_transmit 
+2da6 20402c7a call g24_head_ptr2regc 
+2da7 1a60a2c3 add regc ,offset_24g_no_ack ,rega 
+2da8 ea208000 ifetch 1 ,rega 
+2da9 c000adac beq no_ack_24g ,g24_transmit_no_ack 
+2daa 20402e11 call g24_receive_packet 
+2dab 20202e45 branch g24_end_of_packet 
+
+g24_transmit_no_ack:
+2dac 20402e45 call g24_end_of_packet 
+2dad 20202d97 branch g24_transmit_next_packet 
+
+g24_retransmit:
+2dae 44dac016 bpatch patch16_5 ,mem_patch16 
+2daf 1a60a28d add regc ,offset_24g_get_ack_fail ,rega 
+2db0 ea208000 ifetch 1 ,rega 
+2db1 1fe0fe01 increase 1 ,pdata 
+2db2 1a608a8d add regc ,offset_24g_get_ack_fail ,contw 
+2db3 e0a08000 istore 1 ,contw 
+2db4 20403253 call g24_fetch_mem_pairing_sm 
+2db5 c0ffadcc bne state_24g_pairing_success ,g24_tx_paring_retry 
+2db6 1a60a28f add regc ,offset_24g_retry ,rega 
+2db7 ea288000 ifetcht 1 ,rega 
+2db8 18408401 increase 1 ,temp 
+2db9 1a608a8f add regc ,offset_24g_retry ,contw 
+2dba e0a88000 istoret 1 ,contw 
+2dbb 1a60a2cc add regc ,offset_24g_max_retry ,rega 
+2dbc ea208000 ifetch 1 ,rega 
+2dbd 98467e00 isub temp ,pdata 
+2dbe 243a2d92 nbranch g24_transmit_loop ,blank 
+2dbf 44db4016 bpatch patch16_6 ,mem_patch16 
+2dc0 2040325d call g24_fetch_mem_rf_work_stage 
+2dc1 c001acbe beq 3 ,g24_transmit_pac_fail_hop_stage3 
+2dc2 1a60a2d1 add regc ,offset_24g_hop_pac_retry ,rega 
+2dc3 ea208000 ifetch 1 ,rega 
+2dc4 1fe0fe01 increase 1 ,pdata 
+2dc5 1a608ad1 add regc ,offset_24g_hop_pac_retry ,contw 
+2dc6 e0a08000 istore 1 ,contw 
+2dc7 c0012cb3 beq 2 ,g24_transmit_hop_pac_fail 
+2dc8 20402caf call g24_hop_ch_enable 
+2dc9 58000001 setarg 1 
+2dca 20403238 call g24_store_mem_max_retry 
+2dcb 20202d8f branch g24_transmit_packet 
+
+g24_tx_paring_retry:
+2dcc 1a60a28d add regc ,offset_24g_get_ack_fail ,rega 
+2dcd ea208000 ifetch 1 ,rega 
+2dce c1ff8000 rtnne 0xff 
+2dcf 1a608a8d add regc ,offset_24g_get_ack_fail ,contw 
+2dd0 204032d6 call g24_mem_set0 
+2dd1 20202dd4 branch g24_stop_24g_mode 
+
+g24_tx_attempt_fail:
+2dd2 1a608a8c add regc ,offset_24g_txfail_cnt ,contw 
+2dd3 204032d6 call g24_mem_set0 
+
+g24_stop_24g_mode:
+2dd4 700a993a jam bt_evt_24g_attempt_fail ,mem_fifo_temp 
+2dd5 20207d86 branch ui_ipc_send_event 
+
+g24_ackpayload_parse:
+2dd6 20402dde call g24_read_len_pid_crc 
+2dd7 1a60a284 add regc ,offset_24g_rxdata_length ,rega 
+2dd8 ea208000 ifetch 1 ,rega 
+2dd9 207a0000 rtn blank 
+2dda 98007200 iforce loopcnt 
+2ddb 1a608c02 add regc ,offset_24g_rxbuf_add2 ,contr 
+2ddc 1a608a64 add regc ,offset_24g_rxpayload ,contw 
+2ddd 20207f01 branch memcpy 
+
+g24_read_len_pid_crc:
+2dde 2040325f call g24_fetch_mem_rxbuf_add1 
+2ddf 1fe97e00 rshift3 pdata ,pdata 
+2de0 1a608a84 add regc ,offset_24g_rxdata_length ,contw 
+2de1 e0a08000 istore 1 ,contw 
+2de2 1fe0fe01 increase 1 ,pdata 
+2de3 1a608c01 add regc ,offset_24g_rxbuf_add1 ,contr 
+2de4 98c08c00 iadd contr ,contr 
+2de5 e8c18000 ifetch 3 ,contr 
+2de6 1a608ac4 add regc ,offset_24g_sta_crc ,contw 
+2de7 e0a18000 istore 3 ,contw 
+2de8 2040325f call g24_fetch_mem_rxbuf_add1 
+2de9 1fe37e00 rshift pdata ,pdata 
+2dea 1fe17e03 and pdata ,0x03 ,pdata 
+2deb 1a608aca add regc ,offset_24g_sta_pid ,contw 
+2dec e0a08000 istore 1 ,contw 
+2ded 20600000 rtn 
+
+g24_prep:
+2dee 7844fc00 disable enable_crc 
+2def 7843fc00 disable enable_white 
+2df0 58555555 setarg 0x555555 
+2df1 98001e00 iforce crc24_init 
+2df2 20600000 rtn 
+
+g24_set_freq_tx:
+2df3 20402918 call set_sync_on 
+2df4 1a60a290 add regc ,offset_24g_ch ,rega 
+2df5 ea288000 ifetcht 1 ,rega 
+2df6 20202933 branch set_freq_tx 
+
+g24_transmit:
+2df7 20402dee call g24_prep 
+2df8 20402df3 call g24_set_freq_tx 
+2df9 79202a00 set1 txgfsk ,radio_ctrl 
+2dfa 782efc00 enable encode_fec0 
+2dfb 78307c00 enable is_tx 
+2dfc 7850fc00 disable is_rx 
+2dfd 204053c4 call le_enable 
+2dfe 2040322a call g24_fetch_mem_addr 
+2dff 98001200 iforce access 
+2e00 08008620 inject mod ,32 
+2e01 7824fc00 enable enable_crc 
+2e02 1a60a288 add regc ,offset_24g_txlen ,rega 
+2e03 ea208000 ifetch 1 ,rega 
+2e04 98007200 iforce loopcnt 
+2e05 1a608c42 add regc ,offset_24g_txpayload ,contr 
+
+g24tr_loop:
+2e06 e8c08000 ifetch 1 ,contr 
+2e07 08008608 inject mod ,8 
+2e08 c2002e06 loop g24tr_loop 
+2e09 78247c00 enable enable_parity 
+2e0a 08008618 inject mod ,24 
+2e0b 78447c00 disable enable_parity 
+2e0c 37d38200 until null ,tx_clear 
+2e0d 44dbc016 bpatch patch16_7 ,mem_patch16 
+2e0e 20000064 nop 100 
+2e0f 784efc00 disable encode_fec0 
+2e10 20600000 rtn 
+
+g24_receive_packet:
+2e11 7857fc00 disable user3 
+2e12 18002a00 force 0 ,radio_ctrl 
+2e13 1a60a290 add regc ,offset_24g_ch ,rega 
+2e14 ea288000 ifetcht 1 ,rega 
+2e15 2040291f call set_freq_rx 
+2e16 20402924 call rf_rx_enable 
+
+g24_receive_rxon:
+2e17 20402dee call g24_prep 
+2e18 7826fc00 enable decode_fec0 
+2e19 7830fc00 enable is_rx 
+2e1a 78507c00 disable is_tx 
+2e1b 204053c4 call le_enable 
+2e1c 2040322a call g24_fetch_mem_addr 
+2e1d 98001200 iforce access 
+2e1e 78287c00 enable swfine 
+2e1f 1a60a289 add regc ,offset_24g_rx_window ,rega 
+2e20 ea210000 ifetch 2 ,rega 
+2e21 98003600 iforce stop_watch 
+2e22 37c18400 correlate null ,timeout 
+2e23 242c2e4d nbranch g24_sync_timeout ,sync 
+2e24 7824fc00 enable enable_crc 
+2e25 09800008 parse demod ,bucket ,8 
+2e26 19897e00 rshift3 pwindow ,pdata 
+2e27 1a608a00 add regc ,offset_24g_rxbuf ,contw 
+2e28 e0a08000 istore 1 ,contw 
+2e29 1a60a2cd add regc ,offset_24g_mode ,rega 
+2e2a ea208000 ifetch 1 ,rega 
+2e2b c0012e33 beq rx_24g ,g24_receive_skip 
+2e2c 44dc4017 bpatch patch17_0 ,mem_patch17 
+2e2d 1a60a200 add regc ,offset_24g_rxbuf ,rega 
+2e2e ea208000 ifetch 1 ,rega 
+2e2f 1a60a287 add regc ,offset_24g_data_type ,rega 
+2e30 ea288000 ifetcht 1 ,rega 
+2e31 a8400e00 icompare bits_data ,temp 
+2e32 2420ae45 nbranch g24_end_of_packet ,true 
+
+g24_receive_skip:
+2e33 09800008 parse demod ,bucket ,8 
+2e34 19897e00 rshift3 pwindow ,pdata 
+2e35 e0a08000 istore 1 ,contw 
+2e36 1fe97e00 rshift3 pdata ,pdata 
+2e37 1fe1721f and pdata ,0x1f ,loopcnt 
+2e38 2022ae3d branch g24rx_nopayload ,zero 
+
+g24rx_loop:
+2e39 09800008 parse demod ,bucket ,8 
+2e3a 19897e00 rshift3 pwindow ,pdata 
+2e3b e0a08000 istore 1 ,contw 
+2e3c c2002e39 loop g24rx_loop 
+
+g24rx_nopayload:
+2e3d 09800018 parse demod ,bucket ,24 
+2e3e 1fef7e00 rshift32 pdata ,pdata 
+2e3f 1ff17e00 rshift16 pdata ,pdata 
+2e40 e0a18000 istore 3 ,contw 
+2e41 20232e45 branch g24_end_of_packet ,crc_failed 
+2e42 7837fc00 enable user3 
+2e43 7846fc00 disable decode_fec0 
+2e44 20600000 rtn 
+
+g24_end_of_packet:
+2e45 784efc00 disable encode_fec0 
+2e46 7846fc00 disable decode_fec0 
+2e47 7844fc00 disable enable_crc 
+2e48 7843fc00 disable enable_white 
+2e49 2030a8f9 branch shutdown_radio ,is_rx 
+2e4a 37d38200 until null ,tx_clear 
+2e4b 20000064 nop 100 
+2e4c 202028f9 branch shutdown_radio 
+
+g24_sync_timeout:
+2e4d 20402e4f call rssi_noise 
+2e4e 20202e45 branch g24_end_of_packet 
+
+rssi_noise:
+2e4f 204029bb call save_rssi 
+2e50 207a0000 rtn blank 
+2e51 1a60a2ea add regc ,offset_rssi_noise_index ,rega 
+2e52 ea288000 ifetcht 1 ,rega 
+2e53 da200d9e arg mem_rssi_noise_buffer ,rega 
+2e54 20402e58 call rssi_noise_store 
+2e55 1a608aea add regc ,offset_rssi_noise_index ,contw 
+
+g24_contw_istoret_1byte:
+2e56 e0a88000 istoret 1 ,contw 
+2e57 20600000 rtn 
+
+rssi_noise_store:
+2e58 da4000ff arg rssi_buf_len_noise ,regb 
+2e59 20202e5a branch rssi_store 
+
+rssi_store:
+2e5a 1a227e00 copy rega ,pdata 
+2e5b 98408a00 iadd temp ,contw 
+2e5c 68008018 fetch 1 ,mem_rssi 
+2e5d e0a08000 istore 1 ,contw 
+2e5e 18408401 increase 1 ,temp 
+2e5f 1a427e00 copy regb ,pdata 
+2e60 98410400 iand_into temp 
+2e61 20600000 rtn 
+
+rssi_average:
+2e62 d8400000 arg 0 ,temp 
+2e63 1a220c00 copy rega ,contr 
+
+rssi_average_loop:
+2e64 e8c08000 ifetch 1 ,contr 
+2e65 98408400 iadd temp ,temp 
+2e66 c2002e64 loop rssi_average_loop 
+2e67 184c8400 rshift8 temp ,temp 
+2e68 20600000 rtn 
+
+g24_power_ctrl_init:
+2e69 20402c7a call g24_head_ptr2regc 
+2e6a 20402e9f call g24_power_ctrl_incrs_level1 
+2e6b 58000001 setarg 1 
+2e6c 20403272 call g24_store_mem_power_ctrl_level 
+
+g24_power_ctrl_reinit:
+2e6d 58000000 setarg 0 
+2e6e 20402e73 call g24_store_mem_power_ctrl_pac 
+2e6f e0a08000 istore 1 ,contw 
+2e70 20600000 rtn 
+
+g24_power_ctrl_pac_incrs:
+2e71 20403270 call g24_fetch_mem_power_ctrl_pac 
+2e72 1fe0fe01 increase 1 ,pdata 
+
+g24_store_mem_power_ctrl_pac:
+2e73 1a608afc add regc ,offset_power_ctrl_packet_cnt ,contw 
+2e74 202032b4 branch g24_contw_istore_1byte 
+
+g24_power_ctrl_ack_incrs:
+2e75 1a60a2fd add regc ,offset_power_ctrl_ack_cnt ,rega 
+2e76 ea208000 ifetch 1 ,rega 
+2e77 1fe0fe01 increase 1 ,pdata 
+2e78 1a608afd add regc ,offset_power_ctrl_ack_cnt ,contw 
+2e79 202032b4 branch g24_contw_istore_1byte 
+
+g24_power_ctrl:
+2e7a 44dcc017 bpatch patch17_1 ,mem_patch17 
+2e7b 20403270 call g24_fetch_mem_power_ctrl_pac 
+2e7c 1fe67c7c sub pdata ,power_ctrl_max_packet_cnt ,null 
+2e7d 20610000 rtn positive 
+2e7e 1a60a2fd add regc ,offset_power_ctrl_ack_cnt ,rega 
+2e7f ea288000 ifetcht 1 ,rega 
+2e80 98460400 isub temp ,temp 
+2e81 20402e6d call g24_power_ctrl_reinit 
+2e82 58000102 setarg offset_power_ctrl_threshold_up 
+2e83 9a60a200 iadd regc ,rega 
+2e84 ea208000 ifetch 1 ,rega 
+2e85 98467c00 isub temp ,null 
+2e86 24212e8d nbranch g24_power_ctrl_incrs ,positive 
+2e87 58000103 setarg offset_power_ctrl_threshold_down 
+2e88 9a60a200 iadd regc ,rega 
+2e89 ea208000 ifetch 1 ,rega 
+2e8a 98467c00 isub temp ,null 
+2e8b 20212e99 branch g24_power_ctrl_decrs ,positive 
+2e8c 20600000 rtn 
+
+g24_power_ctrl_incrs:
+2e8d 1a60a2fe add regc ,offset_power_ctrl_level ,rega 
+2e8e ea208000 ifetch 1 ,rega 
+2e8f c0012e93 beq 2 ,g24_power_ctrl_incrs_level2 
+2e90 1fe0fe01 increase 1 ,pdata 
+2e91 20403272 call g24_store_mem_power_ctrl_level 
+2e92 c000ae9f beq 1 ,g24_power_ctrl_incrs_level1 
+
+g24_power_ctrl_incrs_level2:
+2e93 5800000a setarg power_ctrl_losspac_thresh_up2 
+2e94 204032b0 call g24_store_mem_power_ctrl_threshold_up 
+2e95 58000000 setarg power_ctrl_losspac_thresh_down2 
+2e96 204032b2 call g24_store_mem_power_ctrl_threshold_down 
+2e97 1a60a2ff add regc ,offset_power_ctrl_txpwr_level2 ,rega 
+2e98 20202ea5 branch g24_ifetch_rega_store_mem_txpower 
+
+g24_power_ctrl_decrs:
+2e99 1a60a2fe add regc ,offset_power_ctrl_level ,rega 
+2e9a ea208000 ifetch 1 ,rega 
+2e9b c0002ea7 beq 0 ,g24_power_ctrl_decrs_level0 
+2e9c 1fe0ffff increase -1 ,pdata 
+2e9d 20403272 call g24_store_mem_power_ctrl_level 
+2e9e c0002ea7 beq 0 ,g24_power_ctrl_decrs_level0 
+
+g24_power_ctrl_decrs_level1:
+
+g24_power_ctrl_incrs_level1:
+2e9f 58000005 setarg power_ctrl_losspac_thresh_up1 
+2ea0 204032b0 call g24_store_mem_power_ctrl_threshold_up 
+2ea1 58000000 setarg power_ctrl_losspac_thresh_down1 
+2ea2 204032b2 call g24_store_mem_power_ctrl_threshold_down 
+2ea3 58000100 setarg offset_power_ctrl_txpwr_level1 
+
+g24_iadd_offset_mem_txpower:
+2ea4 9a60a200 iadd regc ,rega 
+
+g24_ifetch_rega_store_mem_txpower:
+2ea5 ea208000 ifetch 1 ,rega 
+2ea6 2020326a branch g24_store_mem_txpower 
+
+g24_power_ctrl_decrs_level0:
+2ea7 58000002 setarg power_ctrl_losspac_thresh_up0 
+2ea8 204032b0 call g24_store_mem_power_ctrl_threshold_up 
+2ea9 58000000 setarg power_ctrl_losspac_thresh_down0 
+2eaa 204032b2 call g24_store_mem_power_ctrl_threshold_down 
+2eab 58000101 setarg offset_power_ctrl_txpwr_level0 
+2eac 20202ea4 branch g24_iadd_offset_mem_txpower 
+
+g24_start_pairing_sm1:
+2ead 79200026 set1 mark_24g ,mark 
+2eae 20402c83 call g24_pair_init 
+
+g24_set_pairing_sm_1:
+2eaf 58000001 setarg state_24g_pairing_1 
+2eb0 20203256 branch g24_store_mem_pairing_sm 
+
+g24_pairing_sm:
+2eb1 1a60a28b add regc ,offset_24g_ensure ,rega 
+2eb2 ea208000 ifetch 1 ,rega 
+2eb3 c000ffe7 beq ensure_on_24g ,enable_user 
+2eb4 20403253 call g24_fetch_mem_pairing_sm 
+2eb5 c000aeb9 beq state_24g_pairing_1 ,g24_pairing_sm_1 
+2eb6 c0012ebd beq state_24g_pairing_2 ,g24_pairing_sm_2 
+2eb7 c001aec1 beq state_24g_pairing_3 ,g24_pairing_sm_3 
+2eb8 20202a8c branch assert 
+
+g24_pairing_sm_1:
+2eb9 58000011 setarg state_24g_pairing_1_waiting_ack 
+2eba 20403256 call g24_store_mem_pairing_sm 
+2ebb 70119eaa jam 0xaa ,mem_24g_common_temp 
+2ebc 20202ec4 branch g24_pairing_sm_common 
+
+g24_pairing_sm_2:
+2ebd 58000012 setarg state_24g_pairing_2_waiting_ack 
+2ebe 20403256 call g24_store_mem_pairing_sm 
+2ebf 70119e55 jam 0x55 ,mem_24g_common_temp 
+2ec0 20202ec4 branch g24_pairing_sm_common 
+
+g24_pairing_sm_3:
+2ec1 58000013 setarg state_24g_pairing_3_waiting_ack 
+2ec2 20403256 call g24_store_mem_pairing_sm 
+2ec3 70119e22 jam 0x22 ,mem_24g_common_temp 
+
+g24_pairing_sm_common:
+2ec4 2040323a call g24_fetch_mem_data_type 
+2ec5 1fe17e07 and_into bits_data ,pdata 
+2ec6 6000919f store 1 ,mem_24g_common_temp + 1 
+2ec7 20403224 call g24_fetch_mem_device_addr 
+2ec8 600211a0 store 4 ,mem_24g_common_temp + 2 
+
+g24_put_pairing_data_in_buff:
+2ec9 7011a400 jam 0 ,mem_24g_common_temp + 6 
+2eca da20119e arg mem_24g_common_temp ,rega 
+2ecb d8400007 arg 7 ,temp 
+2ecc 20402d4c call g24_put_data_in_buff 
+2ecd 20402d53 call g24_transmit_prep 
+2ece 20402d33 call g24_txdata_enable_tx 
+2ecf 20207fe7 branch enable_user 
+
+g24_paring_mode:
+2ed0 20403253 call g24_fetch_mem_pairing_sm 
+2ed1 c17f8000 rtneq state_24g_pairing_success 
+2ed2 c008aed6 beq state_24g_pairing_1_waiting_ack ,g24_pairing_sm_1_waiting_ack 
+2ed3 c0092ed9 beq state_24g_pairing_2_waiting_ack ,g24_pairing_sm_2_waiting_ack 
+2ed4 c009aedc beq state_24g_pairing_3_waiting_ack ,g24_pairing_sm_3_waiting_ack 
+2ed5 20600000 rtn 
+
+g24_pairing_sm_1_waiting_ack:
+2ed6 58000002 setarg state_24g_pairing_2 
+2ed7 20403256 call g24_store_mem_pairing_sm 
+2ed8 20202d9f branch g24_transmit_abandon 
+
+g24_pairing_sm_2_waiting_ack:
+2ed9 58000003 setarg state_24g_pairing_3 
+2eda 20403256 call g24_store_mem_pairing_sm 
+2edb 20202d9f branch g24_transmit_abandon 
+
+g24_pairing_sm_3_waiting_ack:
+2edc 580000ff setarg state_24g_pairing_success 
+2edd 20403256 call g24_store_mem_pairing_sm 
+2ede 700a9939 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
+2edf 20407d86 call ui_ipc_send_event 
+2ee0 1a60a266 add regc ,offset_24g_rxpayload_add2 ,rega 
+2ee1 ea220000 ifetch 4 ,rega 
+2ee2 2040322c call g24_store_mem_addr 
+2ee3 20202d9f branch g24_transmit_abandon 
+
+g24_auto_pair_start:
+2ee4 793f8026 set0 mark_24g ,mark 
+2ee5 20402f08 call g24_auto_pair_set_device_info 
+2ee6 20402f22 call g24_tx_attemp_data_prep 
+
+g24_auto_pair_restart:
+2ee7 20403263 call g24_set0_mem_check_dongle_times 
+
+g24_auto_pair_start_loop:
+2ee8 200007d0 nop 2000 
+2ee9 20403261 call g24_fetch_mem_check_dongle_times 
+2eea c07fadd4 beq 0xff ,g24_stop_24g_mode 
+2eeb 20402da4 call g24_transmit_receive_ack 
+2eec 242c2efa nbranch g24_auto_pair_retry ,sync 
+2eed 2437aefa nbranch g24_auto_pair_retry ,user3 
+2eee 20402dd6 call g24_ackpayload_parse 
+2eef 20402c7a call g24_head_ptr2regc 
+2ef0 1a60a292 add regc ,offset_24g_paring_addr ,rega 
+2ef1 ea2a0000 ifetcht 4 ,rega 
+2ef2 204030be call g24_fetch_mem_addr_isub_temp 
+2ef3 2022aead branch g24_start_pairing_sm1 ,zero 
+2ef4 20402c7a call g24_head_ptr2regc 
+2ef5 1a60a266 add regc ,offset_24g_rxpayload_add2 ,rega 
+2ef6 ea220000 ifetch 4 ,rega 
+2ef7 c0002ee7 beq 0 ,g24_auto_pair_restart 
+2ef8 2040322c call g24_store_mem_addr 
+2ef9 20202f1c branch g24_tx_attemp_dongle_succ 
+
+g24_auto_pair_retry:
+2efa 20403261 call g24_fetch_mem_check_dongle_times 
+2efb 1fe0fe01 increase 1 ,pdata 
+2efc 20403264 call g24_store_mem_check_dongle_times 
+2efd 20402f04 call g24_fetch_mem_auto_paring_switch 
+2efe 1fe0fe01 increase 1 ,pdata 
+2eff 1fe17e01 and_into 1 ,pdata 
+2f00 20402f06 call g24_store_mem_auto_paring_switch 
+2f01 c0002f0c beq 0 ,g24_auto_pair_device_attemp 
+2f02 c000af0e beq 1 ,g24_auto_pair_pair_attemp 
+2f03 20600000 rtn 
+
+g24_fetch_mem_auto_paring_switch:
+2f04 5800018b setarg offset_24g_auto_pair_switch 
+2f05 202032d0 branch g24_set_rega_ifetch_1byte 
+
+g24_store_mem_auto_paring_switch:
+2f06 da20018b arg offset_24g_auto_pair_switch ,rega 
+2f07 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_auto_pair_set_device_info:
+2f08 20403267 call g24_store_mem_tx_power 
+2f09 20403224 call g24_fetch_mem_device_addr 
+2f0a 2040322c call g24_store_mem_addr 
+2f0b 20202c8a branch g24_ch 
+
+g24_auto_pair_device_attemp:
+2f0c 20402f08 call g24_auto_pair_set_device_info 
+2f0d 20202ee8 branch g24_auto_pair_start_loop 
+
+g24_auto_pair_pair_attemp:
+2f0e 20402c83 call g24_pair_init 
+2f0f 20202ee8 branch g24_auto_pair_start_loop 
+
+g24_start_24g_mode:
+2f10 793f8026 set0 mark_24g ,mark 
+2f11 20402c8a call g24_ch 
+2f12 20403253 call g24_fetch_mem_pairing_sm 
+2f13 c1ff8000 rtnne state_24g_pairing_success 
+2f14 20402f22 call g24_tx_attemp_data_prep 
+2f15 20403263 call g24_set0_mem_check_dongle_times 
+
+g24_tx_attemp_dongle_loop:
+2f16 200007d0 nop 2000 
+2f17 20403261 call g24_fetch_mem_check_dongle_times 
+2f18 c07fadd4 beq 0xff ,g24_stop_24g_mode 
+2f19 20402da4 call g24_transmit_receive_ack 
+2f1a 242c2f27 nbranch g24_attemp_txdata_retry ,sync 
+2f1b 2437af27 nbranch g24_attemp_txdata_retry ,user3 
+
+g24_tx_attemp_dongle_succ:
+2f1c 79200026 set1 mark_24g ,mark 
+2f1d 20403263 call g24_set0_mem_check_dongle_times 
+2f1e 580000ff setarg state_24g_pairing_success 
+2f1f 20403256 call g24_store_mem_pairing_sm 
+
+g24_app_tx_attempt_success:
+2f20 700a993c jam bt_evt_24g_attempt_success ,mem_fifo_temp 
+2f21 20207d86 branch ui_ipc_send_event 
+
+g24_tx_attemp_data_prep:
+2f22 79200027 set1 mark_24g_conext ,mark 
+2f23 70119eff jam 0xff ,mem_24g_common_temp 
+2f24 2040323a call g24_fetch_mem_data_type 
+2f25 20402d77 call g24_put_data_in_buff_pre 
+2f26 20202d53 branch g24_transmit_prep 
+
+g24_attemp_txdata_retry:
+2f27 20403261 call g24_fetch_mem_check_dongle_times 
+2f28 1fe0fe01 increase 1 ,pdata 
+2f29 20403264 call g24_store_mem_check_dongle_times 
+2f2a 20402c8a call g24_ch 
+2f2b 20202f16 branch g24_tx_attemp_dongle_loop 
+
+g24_check_51cmd_start_24g:
+2f2c 20403267 call g24_store_mem_tx_power 
+2f2d 580000ff setarg state_24g_pairing_success 
+2f2e 20403256 call g24_store_mem_pairing_sm 
+2f2f 20202f10 branch g24_start_24g_mode 
+
+dongle_init:
+2f30 44dd4017 bpatch patch17_2 ,mem_patch17 
+2f31 20402c7a call g24_head_ptr2regc 
+2f32 580031b0 setarg dongle_rxdata_type1 
+2f33 1a608ade add regc ,offset_24g_cb_rxdata_type1 ,contw 
+2f34 e0a10000 istore 2 ,contw 
+2f35 20402f3d call g24_receive_init 
+2f36 204048ea call usb_init 
+2f37 204032b6 call g24_fetch_mem_pair_mode 
+2f38 44ddc017 bpatch patch17_3 ,mem_patch17 
+2f39 c0003055 beq 0x00 ,dongle_auto_bind 
+2f3a c000af45 beq 0x01 ,dongle_pc_bind 
+2f3b c007af41 beq 0x0f ,dongle_all_powerful 
+2f3c 20202a8c branch assert 
+
+g24_receive_init:
+2f3d 2040326c call g24_store_mem_tx_power_temp 
+2f3e df200080 arg 0x80 ,loopcnt 
+2f3f d8a00d9e arg mem_rssi_noise_buffer ,contw 
+2f40 20207ec6 branch memset0 
+
+dongle_all_powerful:
+2f41 20402f4c call dongle_check_mode 
+
+dongle_all_powerful_loop:
+2f42 20402f4f call g24_dongle_work_mode 
+2f43 204048d3 call usb_isr 
+2f44 20202f42 branch dongle_all_powerful_loop 
+
+dongle_pc_bind:
+2f45 44de4017 bpatch patch17_4 ,mem_patch17 
+2f46 20402f4c call dongle_check_mode 
+
+dongle_pc_bind_loop:
+2f47 20402f4f call g24_dongle_work_mode 
+2f48 20402fbd call g24_dongle_bind_mode 
+2f49 204048d3 call usb_isr 
+2f4a 20403019 call dongle_usb_dispatch 
+2f4b 20202f47 branch dongle_pc_bind_loop 
+
+dongle_check_mode:
+2f4c 20403291 call g24_set_work_mem_dongle_work_mode 
+2f4d 20403296 call g24_set0_mem_dongle_mode_init 
+2f4e 20203299 branch g24_set0_mem_ackpayload_enable 
+
+g24_dongle_work_mode:
+2f4f 2040328f call g24_fetch_mem_dongle_work_mode 
+2f50 c1800000 rtnne dongle_work 
+
+g24_dongle_work_mode_start:
+2f51 20402f55 call g24_dongle_work_init 
+2f52 20402f65 call g24_ch_process 
+2f53 2040316b call g24_receive_packet_start 
+2f54 20202f96 branch g24_blank_data_process 
+
+g24_dongle_work_init:
+2f55 20403294 call g24_fetch_mem_dongle_mode_init 
+2f56 c3800000 rtnbit1 dongle_work 
+2f57 79207e00 set1 dongle_work ,pdata 
+2f58 20403297 call g24_store_mem_dongle_mode_init 
+2f59 20403267 call g24_store_mem_tx_power 
+2f5a 20403299 call g24_set0_mem_ackpayload_enable 
+2f5b 700d3800 jam 0 ,mem_usb_tx_enable 
+2f5c 2040324f call g24_set1_mem_abort_pac 
+2f5d 20402f61 call g24_dongle_init 
+
+g24_rx_interrupt_clear:
+2f5e 1a608a00 add regc ,offset_24g_rxbuf ,contw 
+2f5f df200042 arg 66 ,loopcnt 
+2f60 20207ed4 branch clear_mem 
+
+g24_dongle_init:
+2f61 20403231 call g24_set0_mem_pid 
+2f62 2040327d call g24_fetch_mem_rx_addr 
+2f63 2040322c call g24_store_mem_addr 
+2f64 20202c8a branch g24_ch 
+
+g24_ch_process:
+2f65 44dec017 bpatch patch17_5 ,mem_patch17 
+2f66 2040324c call g24_fetch_mem_abort_pac 
+2f67 c000af8d beq 1 ,g24_noise_rssi 
+2f68 20403245 call g24_fetch_mem_hop_pac 
+2f69 c000ac8a beq 1 ,g24_ch 
+2f6a 58000136 setarg offset_24g_hop_btclk 
+2f6b 9a60a200 iadd regc ,rega 
+2f6c ea2a0000 ifetcht 4 ,rega 
+2f6d 1c427e00 copy clkn_bt ,pdata 
+2f6e 98467c00 isub temp ,null 
+2f6f 24412d18 ncall g24_timer_timeout ,positive 
+2f70 1fe22400 copy pdata ,regb 
+2f71 58000136 setarg offset_24g_hop_btclk 
+2f72 9a60a200 iadd regc ,rega 
+2f73 ea220000 ifetch 4 ,rega 
+2f74 1fe20400 copy pdata ,temp 
+2f75 5800013a setarg offset_24g_hop_interval 
+2f76 9a60a200 iadd regc ,rega 
+2f77 18427e00 copy temp ,pdata 
+2f78 ea288000 ifetcht 1 ,rega 
+2f79 98408400 iadd temp ,temp 
+2f7a 1a427e00 copy regb ,pdata 
+2f7b 98467c00 isub temp ,null 
+2f7c 24610000 nrtn positive 
+2f7d 793ffe1c set0 28 ,pdata 
+2f7e 58000136 setarg offset_24g_hop_btclk 
+2f7f 9a608a00 iadd regc ,contw 
+2f80 e0a20000 istore 4 ,contw 
+
+g24_ch_update:
+2f81 20402c8a call g24_ch 
+2f82 20403278 call g24_fetch_mem_rf_laststa 
+2f83 1fe0fe01 increase 1 ,pdata 
+2f84 2040327b call g24_store_mem_rf_laststa 
+2f85 c1810000 rtnne 2 
+2f86 2040327a call g24_set0_mem_rf_laststa 
+2f87 2020324f branch g24_set1_mem_abort_pac 
+
+g24_ch_timer_reinit:
+2f88 1c427e00 copy clkn_bt ,pdata 
+2f89 da200136 arg offset_24g_hop_btclk ,rega 
+2f8a 204032bf call g24_set_contw_with_temp 
+2f8b e0a20000 istore 4 ,contw 
+2f8c 2020327a branch g24_set0_mem_rf_laststa 
+
+g24_noise_rssi:
+2f8d da200d9e arg mem_rssi_noise_buffer ,rega 
+2f8e 20402f94 call g24_noise_rssi_average 
+2f8f 1a608aeb add regc ,offset_rssi_noise_avg ,contw 
+2f90 e0a88000 istoret 1 ,contw 
+2f91 18467c50 sub temp ,rssi_thresh_noise ,null 
+2f92 24610000 nrtn positive 
+2f93 20202c8a branch g24_ch 
+
+g24_noise_rssi_average:
+2f94 df200100 arg rssi_buf_len_noise + 1 ,loopcnt 
+2f95 20202e62 branch rssi_average 
+
+g24_blank_data_process:
+2f96 20402f99 call g24_ms_blank_data 
+2f97 20402fa5 call g24_kb_blank_data 
+2f98 20202fb1 branch g24_kb_mul_blank_data 
+
+g24_ms_blank_data:
+2f99 58000180 setarg offset_24g_ms_blank_data_enable 
+2f9a 204032d0 call g24_set_rega_ifetch_1byte 
+2f9b 207a0000 rtn blank 
+2f9c d8e0000b arg timer_ms_blank ,queue 
+2f9d 20407f16 call timer_check 
+2f9e 247a0000 nrtn blank 
+2f9f 204032a7 call g24_set0_mem_ms_blank_data_enable 
+
+g24_ms_blank_data_2usb:
+2fa0 58000001 setarg ms_report_id 
+2fa1 60008d54 store 1 ,mem_usb_mouse_data 
+2fa2 58000000 setarg 0 
+2fa3 e0a38000 istore 7 ,contw 
+2fa4 202031b8 branch g24_data_type1_usbtx_enable 
+
+g24_kb_blank_data:
+2fa5 5800017e setarg offset_24g_kb_blank_data_enable 
+2fa6 204032d0 call g24_set_rega_ifetch_1byte 
+2fa7 207a0000 rtn blank 
+2fa8 d8e0000e arg timer_kb_blank ,queue 
+2fa9 20407f16 call timer_check 
+2faa 247a0000 nrtn blank 
+2fab 204032aa call g24_set0_mem_kb_blank_data_enable 
+
+g24_kb_blank_data_2usb:
+2fac d8a00d64 arg mem_usb_kb_data ,contw 
+2fad df200002 arg 2 ,loopcnt 
+2fae 20407ec6 call memset0 
+2faf 700d6400 jam kb_normal_report_id ,mem_usb_kb_data 
+2fb0 202031ed branch g24_kb_data_into_ep1_fifo 
+
+g24_kb_mul_blank_data:
+2fb1 5800017f setarg offset_24g_kb_mul_blank_data_enable 
+2fb2 204032d0 call g24_set_rega_ifetch_1byte 
+2fb3 207a0000 rtn blank 
+2fb4 d8e0000c arg timer_kb_mul_blank ,queue 
+2fb5 20407f16 call timer_check 
+2fb6 247a0000 nrtn blank 
+2fb7 204032ad call g24_set0_mem_kb_mul_blank_data_enable 
+
+g24_kb_mul_blank_data_2usb:
+2fb8 d8a00d74 arg mem_usb_kb_multikey ,contw 
+2fb9 df200002 arg 2 ,loopcnt 
+2fba 20407ec6 call memset0 
+2fbb 700d7403 jam kb_multikey_report_id ,mem_usb_kb_multikey 
+2fbc 20203207 branch g24_kb_mul_data_into_ep2_fifo 
+
+g24_dongle_bind_mode:
+2fbd 2040328f call g24_fetch_mem_dongle_work_mode 
+2fbe c1808000 rtnne dongle_bind 
+2fbf 20402fc1 call g24_dongle_bind_init 
+2fc0 20202fcb branch g24_dongle_bind_data_process 
+
+g24_dongle_bind_init:
+2fc1 20403294 call g24_fetch_mem_dongle_mode_init 
+2fc2 c3808000 rtnbit1 dongle_bind 
+2fc3 79207e01 set1 dongle_bind ,pdata 
+2fc4 20403297 call g24_store_mem_dongle_mode_init 
+2fc5 2040329c call g24_set1_mem_ackpayload_enable 
+2fc6 20402c83 call g24_pair_init 
+2fc7 58000000 setarg 0 
+2fc8 da200106 arg offset_dongle_ms_bind_step ,rega 
+2fc9 204032bf call g24_set_contw_with_temp 
+2fca 202032c5 branch g24_contw_istore_3byte 
+
+g24_dongle_bind_data_process:
+2fcb 2040316e call g24_receive_transmit_ack 
+2fcc 2437af5e nbranch g24_rx_interrupt_clear ,user3 
+2fcd 1a608c00 add regc ,offset_24g_rxbuf ,contr 
+2fce 58000109 setarg offset_24g_rxdata_temp 
+2fcf 9a608a00 iadd regc ,contw 
+2fd0 df200008 arg 8 ,loopcnt 
+2fd1 20407f01 call memcpy 
+2fd2 5800010b setarg offset_24g_rxdata_temp_add2 
+2fd3 204032d0 call g24_set_rega_ifetch_1byte 
+2fd4 c0552fd9 beq datatype_bind ,g24_dongle_bind_first_step 
+2fd5 c02aafed beq datatype_config ,g24_dongle_bind_second_step 
+2fd6 c0113001 beq datatype_ok ,g24_dongle_bind_third_step 
+2fd7 c07fb212 beq 0xff ,g24_data_attemp 
+2fd8 20202f5e branch g24_rx_interrupt_clear 
+
+g24_dongle_bind_first_step:
+2fd9 204032bd call g24_fetch_mem_rxdata_temp_add3_1byte 
+2fda c000afdd beq bind_mouse ,g24_dongle_bind_first_step_mouse 
+2fdb c0012fe8 beq bind_keyboard ,g24_dongle_bind_first_step_keyboard 
+2fdc 20600000 rtn 
+
+g24_dongle_bind_first_step_mouse:
+2fdd 58000001 setarg 1 
+2fde 20402ff7 call g24_store_mem_ms_bind_step 
+
+g24_dongle_bind_ms_payload_cfg:
+2fdf 58000001 setarg datatype_mouse 
+2fe0 20403289 call g24_store_mem_bind_payload 
+
+g24_dongle_bind_payload_cfg:
+2fe1 58000080 setarg 0x80 
+2fe2 da200130 arg offset_24g_bind_payload_add1 ,rega 
+2fe3 204032b3 call g24_set_contw_with_regb_store_1byte 
+2fe4 2040327d call g24_fetch_mem_rx_addr 
+2fe5 da200131 arg offset_24g_bind_payload_add2 ,rega 
+2fe6 204032bf call g24_set_contw_with_temp 
+2fe7 2020322d branch g24_contw_istore_4byte 
+
+g24_dongle_bind_first_step_keyboard:
+2fe8 58000001 setarg 1 
+2fe9 20402fff call g24_store_mem_kb_bind_step 
+
+g24_dongle_bind_kb_payload_cfg:
+2fea 58000002 setarg datatype_keyboard 
+2feb 20403289 call g24_store_mem_bind_payload 
+2fec 20202fe1 branch g24_dongle_bind_payload_cfg 
+
+g24_dongle_bind_second_step:
+2fed 204032bd call g24_fetch_mem_rxdata_temp_add3_1byte 
+2fee c000aff1 beq bind_mouse ,g24_dongle_bind_second_step_mouse 
+2fef c0012ff9 beq bind_keyboard ,g24_dongle_bind_second_step_keyboard 
+2ff0 20600000 rtn 
+
+g24_dongle_bind_second_step_mouse:
+2ff1 20402fdf call g24_dongle_bind_ms_payload_cfg 
+2ff2 58000106 setarg offset_dongle_ms_bind_step 
+2ff3 204032d0 call g24_set_rega_ifetch_1byte 
+2ff4 c000aff6 beq 1 ,g24_dongle_ms_bind_step_set2 
+2ff5 20600000 rtn 
+
+g24_dongle_ms_bind_step_set2:
+2ff6 58000002 setarg 2 
+
+g24_store_mem_ms_bind_step:
+2ff7 da200106 arg offset_dongle_ms_bind_step ,rega 
+2ff8 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_dongle_bind_second_step_keyboard:
+2ff9 20402fea call g24_dongle_bind_kb_payload_cfg 
+2ffa 58000107 setarg offset_dongle_kb_bind_step 
+2ffb 204032d0 call g24_set_rega_ifetch_1byte 
+2ffc c000affe beq 1 ,g24_dongle_kb_bind_step_set2 
+2ffd 20600000 rtn 
+
+g24_dongle_kb_bind_step_set2:
+2ffe 58000002 setarg 2 
+
+g24_store_mem_kb_bind_step:
+2fff da200107 arg offset_dongle_kb_bind_step ,rega 
+3000 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_dongle_bind_third_step:
+3001 204032bd call g24_fetch_mem_rxdata_temp_add3_1byte 
+3002 c000b005 beq bind_mouse ,g24_dongle_bind_third_step_mouse 
+3003 c0013011 beq bind_keyboard ,g24_dongle_bind_third_step_keyboard 
+3004 20600000 rtn 
+
+g24_dongle_bind_third_step_mouse:
+3005 58000106 setarg offset_dongle_ms_bind_step 
+3006 204032d0 call g24_set_rega_ifetch_1byte 
+3007 c0013009 beq 2 ,g24_dongle_ms_bind_step_success 
+3008 20600000 rtn 
+
+g24_dongle_ms_bind_step_success:
+3009 2040328b call g24_fetch_mem_bind_device_status 
+300a 1fe1fe01 or_into 0x01 ,pdata 
+300b 2040328d call g24_store_mem_bind_device_status 
+
+g24_dongle_bind_exit:
+300c 58000000 setarg 0 
+300d 58000106 setarg offset_dongle_ms_bind_step 
+300e 9a608a00 iadd regc ,contw 
+300f e0a10000 istore 2 ,contw 
+3010 20202f5e branch g24_rx_interrupt_clear 
+
+g24_dongle_bind_third_step_keyboard:
+3011 58000107 setarg offset_dongle_kb_bind_step 
+3012 204032d0 call g24_set_rega_ifetch_1byte 
+3013 c0803015 bne 0 ,g24_dongle_kb_bind_step_success 
+3014 20600000 rtn 
+
+g24_dongle_kb_bind_step_success:
+3015 2040328b call g24_fetch_mem_bind_device_status 
+3016 1fe1fe02 or_into 0x02 ,pdata 
+3017 2040328d call g24_store_mem_bind_device_status 
+3018 2020300c branch g24_dongle_bind_exit 
+
+dongle_usb_dispatch:
+3019 68008d50 fetch 1 ,mem_usb0_get_set_report 
+301a 207a0000 rtn blank 
+301b 700d5000 jam 0 ,mem_usb0_get_set_report 
+301c 68010d4e fetch 2 ,mem_usb_setup_bvalue_temp 
+301d d84002ba arg pc_set_report ,temp 
+301e 98467c00 isub temp ,null 
+301f 24628000 nrtn zero 
+3020 68008cb6 fetch 1 ,mem_usb0_set_report_data 
+3021 c1dd0000 rtnne pc_report_id 
+3022 68008cb7 fetch 1 ,mem_usb0_set_report_data + 1 
+3023 44df4017 bpatch patch17_6 ,mem_patch17 
+3024 c050303b beq command_mode ,dongle_dispose_cmd_mode 
+3025 c050b02c beq command_bind ,dongle_dispose_cmd_bind 
+3026 c0533041 beq command_current_project ,dongle_dispose_cmd_current_project 
+3027 c053b043 beq command_current_mode ,dongle_dispose_cmd_current_mode 
+3028 c054b049 beq command_current_fw_version ,dongle_dispose_cmd_current_fw_version 
+3029 c058304d beq command_user_defined ,dongle_dispose_cmd_user_defined 
+
+usb0_data_ready_report_set0:
+302a 700d4200 jam 0 ,mem_usb0_data_ready_report 
+302b 20600000 rtn 
+
+dongle_dispose_cmd_bind:
+302c 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
+302d c000b031 beq com_bind_get ,dongle_dispose_cmd_get_bind 
+302e c0423034 beq com_bind_exit ,dongle_dispose_cmd_exit_bind 
+302f c053b039 beq com_read_mode ,dongle_dispose_cmd_read_mode 
+3030 2020302a branch usb0_data_ready_report_set0 
+
+dongle_dispose_cmd_get_bind:
+3031 2040328b call g24_fetch_mem_bind_device_status 
+3032 60008cf7 store 1 ,mem_usb0_get_report_data + 1 
+3033 2020303f branch usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_exit_bind:
+3034 20403291 call g24_set_work_mem_dongle_work_mode 
+3035 20403296 call g24_set0_mem_dongle_mode_init 
+3036 2040328b call g24_fetch_mem_bind_device_status 
+3037 60008cf7 store 1 ,mem_usb0_get_report_data + 1 
+3038 2020303f branch usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_read_mode:
+
+dongle_dispose_in_bind_mode:
+3039 700cf7a1 jam command_bind ,mem_usb0_get_report_data + 1 
+303a 2020303f branch usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_mode:
+303b 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
+303c c040b03e beq com_mode_bind ,dongle_enter_bind_mode 
+303d 2020302a branch usb0_data_ready_report_set0 
+
+dongle_enter_bind_mode:
+303e 20403090 call g24_bind_mode_enable 
+
+usb0_data_ready_report_set1:
+303f 700d4201 jam 1 ,mem_usb0_data_ready_report 
+3040 20600000 rtn 
+
+dongle_dispose_cmd_current_project:
+3041 700cf715 jam product_id ,mem_usb0_get_report_data + 1 
+3042 2020303f branch usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_current_mode:
+3043 2040328f call g24_fetch_mem_dongle_work_mode 
+3044 c0003047 beq dongle_work ,dongle_dispose_in_work_mode 
+3045 c000b039 beq dongle_bind ,dongle_dispose_in_bind_mode 
+3046 20600000 rtn 
+
+dongle_dispose_in_work_mode:
+3047 700cf7a0 jam command_mode ,mem_usb0_get_report_data + 1 
+3048 2020303f branch usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_current_fw_version:
+3049 700cf700 jam fw_version0 ,mem_usb0_get_report_data + 1 
+304a 700cf800 jam fw_version1 ,mem_usb0_get_report_data + 2 
+304b 700cf901 jam fw_version2 ,mem_usb0_get_report_data + 3 
+304c 2020303f branch usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_user_defined:
+304d 2040329c call g24_set1_mem_ackpayload_enable 
+304e 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
+304f 1fe0fe02 increase 2 ,pdata 
+3050 1fe27200 copy pdata ,loopcnt 
+3051 d8c00cb6 arg mem_usb0_set_report_data ,contr 
+3052 5800013c setarg offset_24g_ackpayload 
+3053 9a608a00 iadd regc ,contw 
+3054 20207f01 branch memcpy 
+
+dongle_auto_bind:
+3055 44dfc017 bpatch patch17_7 ,mem_patch17 
+3056 2040307d call g24_mode_switch_init 
+
+dongle_auto_bind_loop:
+3057 20402c7f call g24_receive_process 
+3058 204048d3 call usb_isr 
+3059 20203057 branch dongle_auto_bind_loop 
+
+g24_dongle_work_mode_auto:
+305a 2040328f call g24_fetch_mem_dongle_work_mode 
+305b c1800000 rtnne dongle_work 
+305c 20402f51 call g24_dongle_work_mode_start 
+305d 20203098 branch g24_rx_nodata_process 
+
+g24_dongle_bind_mode_auto:
+305e 2040328f call g24_fetch_mem_dongle_work_mode 
+305f c1808000 rtnne dongle_bind 
+3060 20402fc1 call g24_dongle_bind_init 
+3061 20402fcb call g24_dongle_bind_data_process 
+3062 2040328b call g24_fetch_mem_bind_device_status 
+3063 207a0000 rtn blank 
+3064 20403286 call g24_set0_mem_mode_switch 
+3065 20402f4c call dongle_check_mode 
+3066 20403093 call g24_enable_nodata_timer 
+
+g24_timer_init:
+3067 58000000 setarg 0 
+3068 1a608aa7 add regc ,offset_24g_tx_btclk ,contw 
+3069 2020322d branch g24_contw_istore_4byte 
+
+g24_timer_check:
+306a 20407fe9 call disable_user 
+306b 1a60a2a7 add regc ,offset_24g_tx_btclk ,rega 
+306c ea2a0000 ifetcht 4 ,rega 
+306d 1c427e00 copy clkn_bt ,pdata 
+306e 98467c00 isub temp ,null 
+306f 24412d18 ncall g24_timer_timeout ,positive 
+3070 1fe22400 copy pdata ,regb 
+3071 1a60a2a7 add regc ,offset_24g_tx_btclk ,rega 
+3072 ea220000 ifetch 4 ,rega 
+3073 1a60a2ab add regc ,offset_24g_interval ,rega 
+3074 ea288000 ifetcht 1 ,rega 
+3075 98408400 iadd temp ,temp 
+3076 1a427e00 copy regb ,pdata 
+3077 98467c00 isub temp ,null 
+3078 24610000 nrtn positive 
+3079 793ffe1c set0 28 ,pdata 
+307a 1a608aa7 add regc ,offset_24g_tx_btclk ,contw 
+307b e0a20000 istore 4 ,contw 
+307c 20207fe7 branch enable_user 
+
+g24_mode_switch_init:
+307d 58000001 setarg 1 
+307e 20403287 call g24_store_mem_mode_switch 
+307f 20403283 call g24_set0_mem_time_slice 
+3080 580000ff setarg 0xff 
+3081 1a608aab add regc ,offset_24g_interval ,contw 
+3082 e0a08000 istore 1 ,contw 
+3083 20203067 branch g24_timer_init 
+
+g24_mode_switch:
+3084 5800015c setarg offset_24g_mode_switch 
+3085 204032d0 call g24_set_rega_ifetch_1byte 
+3086 207a0000 rtn blank 
+3087 2040306a call g24_timer_check 
+3088 24740000 nrtn user 
+3089 20403281 call g24_fetch_mem_time_slice 
+308a 1fe0fe01 increase 1 ,pdata 
+308b 1fe17e01 and_into 1 ,pdata 
+308c 20403284 call g24_store_mem_time_slice 
+308d c0002f4c beq 0 ,dongle_check_mode 
+308e c000b090 beq 1 ,g24_bind_mode_enable 
+308f 20600000 rtn 
+
+g24_bind_mode_enable:
+3090 58000001 setarg dongle_bind 
+3091 20403292 call g24_store_mem_dongle_work_mode 
+3092 20203296 branch g24_set0_mem_dongle_mode_init 
+
+g24_enable_nodata_timer:
+3093 58000001 setarg 1 
+3094 204032a5 call g24_store_mem_nodata_timer_enable 
+
+g24_enable_nodata_timer_init:
+3095 58000280 setarg timer_nodata_delay 
+3096 d8e00008 arg timer_nodata ,queue 
+3097 20207f08 branch timer_init 
+
+g24_rx_nodata_process:
+3098 204032a2 call g24_fetch_mem_nodata_timer_enable 
+3099 207a0000 rtn blank 
+309a d8e00008 arg timer_nodata ,queue 
+309b 20407f16 call timer_check 
+309c 247a0000 nrtn blank 
+309d 204032a4 call g24_set0_mem_nodata_timer_enable 
+309e 58000007 setarg dongle_search 
+309f 20403292 call g24_store_mem_dongle_work_mode 
+30a0 20403296 call g24_set0_mem_dongle_mode_init 
+30a1 20202f5e branch g24_rx_interrupt_clear 
+
+g24_dongle_search_mode_auto:
+30a2 44e04018 bpatch patch18_0 ,mem_patch18 
+30a3 2040328f call g24_fetch_mem_dongle_work_mode 
+30a4 c1838000 rtnne dongle_search 
+30a5 204030cb call g24_dongle_search_mode_init 
+30a6 204030e0 call g24_rx_auto_addr_ch_search 
+30a7 2040316e call g24_receive_transmit_ack 
+30a8 2437af5e nbranch g24_rx_interrupt_clear ,user3 
+30a9 204030bc call g24_dongle_search_addr_check 
+30aa 2042b172 call g24_receive_packet_parse ,zero 
+30ab 20402f4c call dongle_check_mode 
+30ac 20403294 call g24_fetch_mem_dongle_mode_init 
+30ad 79207e00 set1 dongle_work ,pdata 
+30ae 20403297 call g24_store_mem_dongle_mode_init 
+30af 20402f5e call g24_rx_interrupt_clear 
+30b0 20403093 call g24_enable_nodata_timer 
+30b1 204030bc call g24_dongle_search_addr_check 
+30b2 2022b0c1 branch g24_dg_ch_num_reinit ,zero 
+30b3 58000164 setarg offset_24g_kb_addr 
+30b4 204032d3 call g24_set_rega_ifetcht_4byte 
+30b5 204030be call g24_fetch_mem_addr_isub_temp 
+30b6 2022b0c5 branch g24_kb_ch_num_reinit ,zero 
+30b7 58000160 setarg offset_24g_mouse_addr 
+30b8 204032d3 call g24_set_rega_ifetcht_4byte 
+30b9 204030be call g24_fetch_mem_addr_isub_temp 
+30ba 2022b0c8 branch g24_ms_ch_num_reinit ,zero 
+30bb 20600000 rtn 
+
+g24_dongle_search_addr_check:
+30bc 5800012b setarg offset_24g_rx_addr 
+30bd 204032d3 call g24_set_rega_ifetcht_4byte 
+
+g24_fetch_mem_addr_isub_temp:
+30be 2040322a call g24_fetch_mem_addr 
+30bf 98467c00 isub temp ,null 
+30c0 20600000 rtn 
+
+g24_dg_ch_num_reinit:
+30c1 58000182 setarg offset_24g_dg_ch_number 
+30c2 204032d0 call g24_set_rega_ifetch_1byte 
+
+g24_current_ch_num_reinit:
+30c3 1a608a91 add regc ,offset_24g_current_ch_number ,contw 
+30c4 202032b4 branch g24_contw_istore_1byte 
+
+g24_kb_ch_num_reinit:
+30c5 58000185 setarg offset_24g_kb_ch_number 
+30c6 204032d0 call g24_set_rega_ifetch_1byte 
+30c7 202030c3 branch g24_current_ch_num_reinit 
+
+g24_ms_ch_num_reinit:
+30c8 58000188 setarg offset_24g_ms_ch_number 
+30c9 204032d0 call g24_set_rega_ifetch_1byte 
+30ca 202030c3 branch g24_current_ch_num_reinit 
+
+g24_dongle_search_mode_init:
+30cb 20403294 call g24_fetch_mem_dongle_mode_init 
+30cc c3838000 rtnbit1 dongle_search 
+30cd 79207e07 set1 dongle_search ,pdata 
+30ce 20403297 call g24_store_mem_dongle_mode_init 
+30cf 20403283 call g24_set0_mem_time_slice 
+30d0 2040329c call g24_set1_mem_ackpayload_enable 
+30d1 58000000 setarg 0 
+30d2 1a608af5 add regc ,offset_rssi_noise_dg_index ,contw 
+30d3 e0a18000 istore 3 ,contw 
+30d4 da200183 arg offset_24g_dg_config_ch_once ,rega 
+30d5 204032bf call g24_set_contw_with_temp 
+30d6 e0a38000 istore 7 ,contw 
+30d7 204030bc call g24_dongle_search_addr_check 
+30d8 24628000 nrtn zero 
+30d9 1a60a291 add regc ,offset_24g_current_ch_number ,rega 
+30da ea208000 ifetch 1 ,rega 
+30db da200182 arg offset_24g_dg_ch_number ,rega 
+30dc 204032b3 call g24_set_contw_with_regb_store_1byte 
+30dd 1a60a290 add regc ,offset_24g_ch ,rega 
+30de ea208000 ifetch 1 ,rega 
+30df 2020314a branch g24_store_mem_dg_last_ch 
+
+g24_rx_auto_addr_ch_search:
+30e0 44e0c018 bpatch patch18_1 ,mem_patch18 
+30e1 20403281 call g24_fetch_mem_time_slice 
+30e2 1fe0fe01 increase 1 ,pdata 
+30e3 1fe17e03 and_into 3 ,pdata 
+30e4 20403284 call g24_store_mem_time_slice 
+30e5 c000310e beq 0 ,g24_rx_auto_bind_config_kb 
+30e6 c000b132 beq 1 ,g24_rx_auto_bind_config_dongle 
+30e7 c00130ea beq 2 ,g24_rx_auto_bind_config_mouse 
+30e8 c001b132 beq 3 ,g24_rx_auto_bind_config_dongle 
+30e9 20600000 rtn 
+
+g24_rx_auto_bind_config_mouse:
+30ea 20402fdf call g24_dongle_bind_ms_payload_cfg 
+30eb 58000160 setarg offset_24g_mouse_addr 
+30ec 2040327e call g24_set_rega_ifetch_4byte 
+30ed 203a30e0 branch g24_rx_auto_addr_ch_search ,blank 
+30ee 2040322c call g24_store_mem_addr 
+30ef 58000189 setarg offset_24g_ms_config_ch_once 
+30f0 204032d0 call g24_set_rega_ifetch_1byte 
+30f1 205a3108 call g24_ms_config_ch_once ,blank 
+30f2 58000187 setarg offset_24g_ms_last_ch 
+30f3 204032d0 call g24_set_rega_ifetch_1byte 
+30f4 2040322f call g24_store_mem_ch 
+30f5 1a60a2f7 add regc ,offset_rssi_noise_ms_index ,rega 
+30f6 ea288000 ifetcht 1 ,rega 
+30f7 da200f9e arg mem_rssi_noise_ms_buffer ,rega 
+30f8 20402e58 call rssi_noise_store 
+30f9 1a608af7 add regc ,offset_rssi_noise_ms_index ,contw 
+30fa e0a88000 istoret 1 ,contw 
+30fb 20402f94 call g24_noise_rssi_average 
+30fc 1a608afa add regc ,offset_rssi_noise_ms_avg ,contw 
+30fd e0a88000 istoret 1 ,contw 
+30fe 18467c50 sub temp ,rssi_thresh_noise ,null 
+30ff 24610000 nrtn positive 
+3100 58000188 setarg offset_24g_ms_ch_number 
+3101 20403275 call g24_set_rega_ifetcht_1byte 
+3102 20402c90 call g24_ch_temp_incre_size4 
+3103 da200188 arg offset_24g_ms_ch_number ,rega 
+3104 204032c8 call g24_set_contw_with_regb2 
+3105 e0a88000 istoret 1 ,contw 
+
+g24_store_mem_ms_last_ch:
+3106 da200187 arg offset_24g_ms_last_ch ,rega 
+3107 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_ms_config_ch_once:
+3108 58000001 setarg 1 
+3109 da200189 arg offset_24g_ms_config_ch_once ,rega 
+310a 204032b3 call g24_set_contw_with_regb_store_1byte 
+310b d8400000 arg 0 ,temp 
+310c 20402c94 call g24_ch_calc 
+310d 20203106 branch g24_store_mem_ms_last_ch 
+
+g24_rx_auto_bind_config_kb:
+310e 20402fea call g24_dongle_bind_kb_payload_cfg 
+310f 58000164 setarg offset_24g_kb_addr 
+3110 2040327e call g24_set_rega_ifetch_4byte 
+3111 203a30e0 branch g24_rx_auto_addr_ch_search ,blank 
+3112 2040322c call g24_store_mem_addr 
+3113 58000186 setarg offset_24g_kb_config_ch_once 
+3114 204032d0 call g24_set_rega_ifetch_1byte 
+3115 205a312c call g24_kb_config_ch_once ,blank 
+3116 58000184 setarg offset_24g_kb_last_ch 
+3117 204032d0 call g24_set_rega_ifetch_1byte 
+3118 2040322f call g24_store_mem_ch 
+3119 1a60a2f6 add regc ,offset_rssi_noise_kb_index ,rega 
+311a ea288000 ifetcht 1 ,rega 
+311b da20109e arg mem_rssi_noise_kb_buffer ,rega 
+311c 20402e58 call rssi_noise_store 
+311d 1a608af6 add regc ,offset_rssi_noise_kb_index ,contw 
+311e e0a88000 istoret 1 ,contw 
+311f 20402f94 call g24_noise_rssi_average 
+3120 1a608af9 add regc ,offset_rssi_noise_kb_avg ,contw 
+3121 e0a88000 istoret 1 ,contw 
+3122 18467c50 sub temp ,rssi_thresh_noise ,null 
+3123 24610000 nrtn positive 
+3124 58000185 setarg offset_24g_kb_ch_number 
+3125 20403275 call g24_set_rega_ifetcht_1byte 
+3126 20402c90 call g24_ch_temp_incre_size4 
+3127 da200185 arg offset_24g_kb_ch_number ,rega 
+3128 204032c8 call g24_set_contw_with_regb2 
+3129 e0a88000 istoret 1 ,contw 
+
+g24_store_mem_kb_last_ch:
+312a da200184 arg offset_24g_kb_last_ch ,rega 
+312b 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_kb_config_ch_once:
+312c 58000001 setarg 1 
+312d da200186 arg offset_24g_kb_config_ch_once ,rega 
+312e 204032b3 call g24_set_contw_with_regb_store_1byte 
+312f d8400000 arg 0 ,temp 
+3130 20402c94 call g24_ch_calc 
+3131 2020312a branch g24_store_mem_kb_last_ch 
+
+g24_rx_auto_bind_config_dongle:
+3132 20402fdf call g24_dongle_bind_ms_payload_cfg 
+3133 2040327d call g24_fetch_mem_rx_addr 
+3134 2040322c call g24_store_mem_addr 
+3135 58000183 setarg offset_24g_dg_config_ch_once 
+3136 204032d0 call g24_set_rega_ifetch_1byte 
+3137 205a314c call g24_dg_config_ch_once ,blank 
+3138 2040314f call g24_dg_store_config_ch 
+3139 1a60a2f5 add regc ,offset_rssi_noise_dg_index ,rega 
+313a ea288000 ifetcht 1 ,rega 
+313b da200e9e arg mem_rssi_noise_dg_buffer ,rega 
+313c 20402e58 call rssi_noise_store 
+313d 1a608af5 add regc ,offset_rssi_noise_dg_index ,contw 
+313e e0a88000 istoret 1 ,contw 
+313f 20402f94 call g24_noise_rssi_average 
+3140 1a608af8 add regc ,offset_rssi_noise_dg_avg ,contw 
+3141 e0a88000 istoret 1 ,contw 
+3142 18467c50 sub temp ,rssi_thresh_noise ,null 
+3143 24610000 nrtn positive 
+3144 58000182 setarg offset_24g_dg_ch_number 
+3145 20403275 call g24_set_rega_ifetcht_1byte 
+3146 20402c90 call g24_ch_temp_incre_size4 
+3147 da200182 arg offset_24g_dg_ch_number ,rega 
+3148 204032c8 call g24_set_contw_with_regb2 
+3149 e0a88000 istoret 1 ,contw 
+
+g24_store_mem_dg_last_ch:
+314a da200181 arg offset_24g_dg_last_ch ,rega 
+314b 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_dg_config_ch_once:
+314c 58000001 setarg 1 
+314d da200183 arg offset_24g_dg_config_ch_once ,rega 
+314e 204032b3 call g24_set_contw_with_regb_store_1byte 
+
+g24_dg_store_config_ch:
+314f 58000181 setarg offset_24g_dg_last_ch 
+3150 204032d0 call g24_set_rega_ifetch_1byte 
+3151 2020322f branch g24_store_mem_ch 
+
+g24_transmit_ack:
+3152 1a60a200 add regc ,offset_24g_rxbuf ,rega 
+3153 ea208000 ifetch 1 ,rega 
+3154 2040323c call g24_store_mem_data_type 
+3155 20402dde call g24_read_len_pid_crc 
+3156 2040325f call g24_fetch_mem_rxbuf_add1 
+3157 2feffe00 isolate1 bit_ack_24g ,pdata 
+3158 2020b15c branch g24tx_no_ack ,true 
+
+g24tx_with_ack:
+3159 2040315d call g24_ackpayload_prep 
+315a 20402d53 call g24_transmit_prep 
+315b 20402df7 call g24_transmit 
+
+g24tx_no_ack:
+315c 20202e45 branch g24_end_of_packet 
+
+g24_ackpayload_prep:
+315d 44e14018 bpatch patch18_2 ,mem_patch18 
+315e 1a608a86 add regc ,offset_24g_datalen ,contw 
+315f 204032d6 call g24_mem_set0 
+3160 5800013b setarg offset_24g_ackpayload_enable 
+3161 204032d0 call g24_set_rega_ifetch_1byte 
+3162 207a0000 rtn blank 
+3163 58000006 setarg 0x06 
+3164 1a608a86 add regc ,offset_24g_datalen ,contw 
+3165 e0a08000 istore 1 ,contw 
+3166 df200006 arg 0x06 ,loopcnt 
+3167 5800012f setarg offset_24g_bind_payload 
+3168 9a608c00 iadd regc ,contr 
+3169 1a608a22 add regc ,offset_24g_txbuf ,contw 
+316a 20207f01 branch memcpy 
+
+g24_receive_packet_start:
+316b 2040316e call g24_receive_transmit_ack 
+316c 2437af5e nbranch g24_rx_interrupt_clear ,user3 
+316d 20203172 branch g24_receive_packet_parse 
+
+g24_receive_transmit_ack:
+316e 20402f5e call g24_rx_interrupt_clear 
+316f 20402e11 call g24_receive_packet 
+3170 24778000 nrtn user3 
+3171 20203152 branch g24_transmit_ack 
+
+g24_receive_packet_parse:
+3172 44e1c018 bpatch patch18_3 ,mem_patch18 
+3173 20403188 call g24_receive_packet_parse_pid_crc 
+3174 24342f5e nbranch g24_rx_interrupt_clear ,user 
+3175 1a60a284 add regc ,offset_24g_rxdata_length ,rega 
+3176 ea208000 ifetch 1 ,rega 
+3177 203a2f5e branch g24_rx_interrupt_clear ,blank 
+3178 1fe0fe02 increase 2 ,pdata 
+3179 98007200 iforce loopcnt 
+317a 1a608c00 add regc ,offset_24g_rxbuf ,contr 
+317b 58000109 setarg offset_24g_rxdata_temp 
+317c 9a608a00 iadd regc ,contw 
+317d 20407f01 call memcpy 
+317e 20403286 call g24_set0_mem_mode_switch 
+317f 204032b6 call g24_fetch_mem_pair_mode 
+3180 205a3093 call g24_enable_nodata_timer ,blank 
+3181 5800010b setarg offset_24g_rxdata_temp_add2 
+3182 204032d0 call g24_set_rega_ifetch_1byte 
+3183 c000b19e beq 0x01 ,g24_data_type1 
+3184 c00131c6 beq 0x02 ,g24_data_type2 
+3185 c001b1f2 beq 0x03 ,g24_data_type3 
+3186 c07fb212 beq 0xff ,g24_data_attemp 
+3187 20202f5e branch g24_rx_interrupt_clear 
+
+g24_receive_packet_parse_pid_crc:
+3188 20402c7a call g24_head_ptr2regc 
+3189 20407fe9 call disable_user 
+318a 1a60a2ca add regc ,offset_24g_sta_pid ,rega 
+318b ea208000 ifetch 1 ,rega 
+318c 1a60a2cb add regc ,offset_24g_last_pid ,rega 
+318d ea288000 ifetcht 1 ,rega 
+318e 98467c00 isub temp ,null 
+318f 2442ffe7 ncall enable_user ,zero 
+3190 1a60a2ca add regc ,offset_24g_sta_pid ,rega 
+3191 ea208000 ifetch 1 ,rega 
+3192 1a608acb add regc ,offset_24g_last_pid ,contw 
+3193 e0a08000 istore 1 ,contw 
+3194 1a60a2c4 add regc ,offset_24g_sta_crc ,rega 
+3195 ea218000 ifetch 3 ,rega 
+3196 1a60a2c7 add regc ,offset_24g_last_crc ,rega 
+3197 ea298000 ifetcht 3 ,rega 
+3198 98467c00 isub temp ,null 
+3199 2442ffe7 ncall enable_user ,zero 
+319a 1a60a2c4 add regc ,offset_24g_sta_crc ,rega 
+319b ea218000 ifetch 3 ,rega 
+319c 1a608ac7 add regc ,offset_24g_last_crc ,contw 
+319d 202032c5 branch g24_contw_istore_3byte 
+
+g24_data_type1:
+319e 20402f88 call g24_ch_timer_reinit 
+319f 2040324c call g24_fetch_mem_abort_pac 
+31a0 60008aa2 store 1 ,mem_temp 
+31a1 20403274 call g24_fetcht_mem_rxdata_temp 
+31a2 68008aa2 fetch 1 ,mem_temp 
+31a3 284ffe03 isolate1 bit_abort ,temp 
+31a4 7920fe00 setflag true ,0 ,pdata 
+31a5 1a608ab2 add regc ,offset_24g_abort_pac ,contw 
+31a6 e0a08000 istore 1 ,contw 
+31a7 c000b216 beq 1 ,g24_data_attemp_mouse 
+31a8 20403245 call g24_fetch_mem_hop_pac 
+31a9 20403274 call g24_fetcht_mem_rxdata_temp 
+31aa 284ffe04 isolate1 bit_hop ,temp 
+31ab 7920fe00 setflag true ,0 ,pdata 
+31ac 20403249 call g24_store_mem_hop_pac 
+31ad 1a60a2de add regc ,offset_24g_cb_rxdata_type1 ,rega 
+31ae ea210000 ifetch 2 ,rega 
+31af 20207f9c branch callback_func 
+
+dongle_rxdata_type1:
+31b0 58000001 setarg ms_report_id 
+31b1 60008d54 store 1 ,mem_usb_mouse_data 
+31b2 2040329e call g24_fetch_mem_rxdata_temp_add3_7byte 
+31b3 e0a38000 istore 7 ,contw 
+31b4 2040329e call g24_fetch_mem_rxdata_temp_add3_7byte 
+31b5 245a31bd ncall g24_ms_enable_blank_data_forcibly ,blank 
+31b6 2040329e call g24_fetch_mem_rxdata_temp_add3_7byte 
+31b7 205a31c2 call g24_ms_disable_blank_data_forcibly ,blank 
+
+g24_data_type1_usbtx_enable:
+31b8 700d5220 jam usb_ep2_ms ,mem_usb_ep2_data 
+
+g24_data_type1_usbtx_enable_ep2:
+31b9 68008d38 fetch 1 ,mem_usb_tx_enable 
+31ba 79207e02 set1 2 ,pdata 
+31bb 60008d38 store 1 ,mem_usb_tx_enable 
+31bc 20600000 rtn 
+
+g24_ms_enable_blank_data_forcibly:
+31bd 58000001 setarg 1 
+31be 204032a8 call g24_store_mem_ms_blank_data_enable 
+
+g24_ms_enable_blank_data_timer:
+31bf 58000140 setarg timer_ms_blank_delay 
+31c0 d8e0000b arg timer_ms_blank ,queue 
+31c1 20207f08 branch timer_init 
+
+g24_ms_disable_blank_data_forcibly:
+31c2 204032a7 call g24_set0_mem_ms_blank_data_enable 
+
+g24_ms_disable_blank_data_timer:
+31c3 58000000 setarg 0 
+31c4 d8e0000b arg timer_ms_blank ,queue 
+31c5 20207f08 branch timer_init 
+
+g24_data_type2:
+31c6 20403274 call g24_fetcht_mem_rxdata_temp 
+31c7 284ffe03 isolate1 bit_abort ,temp 
+31c8 2020b21b branch g24_data_attemp_kbd ,true 
+31c9 d8a00d64 arg mem_usb_kb_data ,contw 
+31ca 204031e0 call g24_data_type2_reverse_data 
+31cb 68040d64 fetch 8 ,mem_usb_kb_data 
+31cc 245a31e4 ncall g24_kb_enable_blank_data_forcibly ,blank 
+31cd 68040d64 fetch 8 ,mem_usb_kb_data 
+31ce 205a31e9 call g24_kb_disable_blank_data_forcibly ,blank 
+31cf 20402c7a call g24_head_ptr2regc 
+31d0 68040d64 fetch 8 ,mem_usb_kb_data 
+31d1 da200168 arg offset_24g_kb_data_sta_data ,rega 
+31d2 204032bf call g24_set_contw_with_temp 
+31d3 e0a40000 istore 8 ,contw 
+31d4 58000170 setarg offset_24g_kb_data_last_data 
+31d5 9a60a200 iadd regc ,rega 
+31d6 ea2c0000 ifetcht 8 ,rega 
+31d7 98467c00 isub temp ,null 
+31d8 2442b1ed ncall g24_kb_data_dispose ,zero 
+31d9 58000168 setarg offset_24g_kb_data_sta_data 
+31da 9a60a200 iadd regc ,rega 
+31db ea240000 ifetch 8 ,rega 
+31dc da200170 arg offset_24g_kb_data_last_data ,rega 
+31dd 204032bf call g24_set_contw_with_temp 
+31de e0a40000 istore 8 ,contw 
+31df 20202f5e branch g24_rx_interrupt_clear 
+
+g24_data_type2_reverse_data:
+31e0 5800010b setarg offset_24g_rxdata_temp_add2 
+31e1 9a608c00 iadd regc ,contr 
+31e2 df200009 arg 9 ,loopcnt 
+31e3 20207ff3 branch reverse_byte 
+
+g24_kb_enable_blank_data_forcibly:
+31e4 58000001 setarg 1 
+31e5 204032ab call g24_store_mem_kb_blank_data_enable 
+
+g24_kb_enable_blank_data_timer:
+31e6 58000140 setarg timer_kb_blank_delay 
+31e7 d8e0000e arg timer_kb_blank ,queue 
+31e8 20207f08 branch timer_init 
+
+g24_kb_disable_blank_data_forcibly:
+31e9 204032aa call g24_set0_mem_kb_blank_data_enable 
+
+g24_kb_disable_blank_data_timer:
+31ea 58000000 setarg 0 
+31eb d8e0000e arg timer_kb_blank ,queue 
+31ec 20207f08 branch timer_init 
+
+g24_kb_data_dispose:
+
+g24_kb_data_into_ep1_fifo:
+31ed 700d5110 jam usb_ep1_kb ,mem_usb_ep1_data 
+31ee 68008d38 fetch 1 ,mem_usb_tx_enable 
+31ef 79207e01 set1 1 ,pdata 
+31f0 60008d38 store 1 ,mem_usb_tx_enable 
+31f1 20600000 rtn 
+
+g24_data_type3:
+31f2 d8a00d74 arg mem_usb_kb_multikey ,contw 
+31f3 204031e0 call g24_data_type2_reverse_data 
+31f4 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
+31f5 245a3209 ncall g24_kb_mul_enable_blank_data_forcibly ,blank 
+31f6 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
+31f7 205a320e call g24_kb_mul_disable_blank_data_forcibly ,blank 
+31f8 20402c7a call g24_head_ptr2regc 
+31f9 68018d74 fetch 3 ,mem_usb_kb_multikey 
+31fa da200178 arg offset_24g_kb_multikey_sta_data ,rega 
+31fb 204032c4 call g24_set_contw_with_temp_store_3byte 
+31fc 5800017b setarg offset_24g_kb_multikey_last_data 
+31fd 9a60a200 iadd regc ,rega 
+31fe ea298000 ifetcht 3 ,rega 
+31ff 98467c00 isub temp ,null 
+3200 2442b207 ncall g24_kb_mul_data_into_ep2_fifo ,zero 
+3201 58000178 setarg offset_24g_kb_multikey_sta_data 
+3202 9a60a200 iadd regc ,rega 
+3203 ea218000 ifetch 3 ,rega 
+3204 da20017b arg offset_24g_kb_multikey_last_data ,rega 
+3205 204032c4 call g24_set_contw_with_temp_store_3byte 
+3206 20202f5e branch g24_rx_interrupt_clear 
+
+g24_kb_mul_data_into_ep2_fifo:
+3207 700d5221 jam usb_ep2_multikey ,mem_usb_ep2_data 
+3208 202031b9 branch g24_data_type1_usbtx_enable_ep2 
+
+g24_kb_mul_enable_blank_data_forcibly:
+3209 58000001 setarg 1 
+320a 204032ae call g24_store_mem_kb_mul_blank_data_enable 
+
+g24_kb_mul_enable_blank_data_timer:
+320b 58000140 setarg timer_kb_mul_blank_delay 
+320c d8e0000c arg timer_kb_mul_blank ,queue 
+320d 20207f08 branch timer_init 
+
+g24_kb_mul_disable_blank_data_forcibly:
+320e 204032ad call g24_set0_mem_kb_mul_blank_data_enable 
+
+g24_kb_mul_disable_blank_data_timer:
+320f 58000000 setarg 0 
+3210 d8e0000c arg timer_kb_mul_blank ,queue 
+3211 20207f08 branch timer_init 
+
+g24_data_attemp:
+3212 204032bd call g24_fetch_mem_rxdata_temp_add3_1byte 
+3213 c000b216 beq datatype_mouse ,g24_data_attemp_mouse 
+3214 c001321b beq datatype_keyboard ,g24_data_attemp_kbd 
+3215 20600000 rtn 
+
+g24_data_attemp_mouse:
+3216 5800010d setarg offset_24g_rxdata_temp_add4 
+3217 2040327e call g24_set_rega_ifetch_4byte 
+3218 da200160 arg offset_24g_mouse_addr ,rega 
+3219 204032bf call g24_set_contw_with_temp 
+321a 2020322d branch g24_contw_istore_4byte 
+
+g24_data_attemp_kbd:
+321b 5800010d setarg offset_24g_rxdata_temp_add4 
+321c 2040327e call g24_set_rega_ifetch_4byte 
+321d da200164 arg offset_24g_kb_addr ,rega 
+321e 204032bf call g24_set_contw_with_temp 
+321f 2020322d branch g24_contw_istore_4byte 
+
+g24_store_mem_24g_mode:
+3220 20402c7a call g24_head_ptr2regc 
+3221 1a608acd add regc ,offset_24g_mode ,contw 
+3222 e0a08000 istore 1 ,contw 
+3223 20600000 rtn 
+
+g24_fetch_mem_device_addr:
+3224 20402c7a call g24_head_ptr2regc 
+3225 1a60a2be add regc ,offset_24g_device_addr ,rega 
+3226 2020327f branch g24_rega_ifetch_4byte 
+
+g24_store_mem_device_addr:
+3227 20402c7a call g24_head_ptr2regc 
+3228 1a608abe add regc ,offset_24g_device_addr ,contw 
+3229 2020322d branch g24_contw_istore_4byte 
+
+g24_fetch_mem_addr:
+322a 1a60a2ae add regc ,offset_24g_addr ,rega 
+322b 2020327f branch g24_rega_ifetch_4byte 
+
+g24_store_mem_addr:
+322c 1a608aae add regc ,offset_24g_addr ,contw 
+
+g24_contw_istore_4byte:
+322d e0a20000 istore 4 ,contw 
+322e 20600000 rtn 
+
+g24_store_mem_ch:
+322f 1a608a90 add regc ,offset_24g_ch ,contw 
+3230 202032b4 branch g24_contw_istore_1byte 
+
+g24_set0_mem_pid:
+3231 58000000 setarg 0 
+
+g24_store_mem_pid:
+3232 20402c7a call g24_head_ptr2regc 
+3233 1a608a85 add regc ,offset_24g_pid ,contw 
+3234 202032b4 branch g24_contw_istore_1byte 
+
+g24_store_mem_txpayload:
+3235 1a608a42 add regc ,offset_24g_txpayload ,contw 
+3236 202032b4 branch g24_contw_istore_1byte 
+
+g24_set4_mem_max_retry:
+3237 58000004 setarg 4 
+
+g24_store_mem_max_retry:
+3238 1a608acc add regc ,offset_24g_max_retry ,contw 
+3239 202032b4 branch g24_contw_istore_1byte 
+
+g24_fetch_mem_data_type:
+323a 1a60a287 add regc ,offset_24g_data_type ,rega 
+323b 202032d1 branch g24_rega_ifetch_1byte 
+
+g24_store_mem_data_type:
+323c 1a608a87 add regc ,offset_24g_data_type ,contw 
+323d 202032b4 branch g24_contw_istore_1byte 
+
+g24_set2_mem_sync_cnt:
+323e 58000002 setarg 2 
+
+g24_store_mem_sync_cnt:
+323f 1a608ad0 add regc ,offset_24g_sync_cnt ,contw 
+3240 202032b4 branch g24_contw_istore_1byte 
+
+g24_set1_mem_rf_last_sta:
+3241 58000001 setarg 1 
+
+g24_store_mem_rf_last_sta:
+3242 20402c7a call g24_head_ptr2regc 
+3243 1a608ace add regc ,offset_24g_rf_last_sta ,contw 
+3244 202032b4 branch g24_contw_istore_1byte 
+
+g24_fetch_mem_hop_pac:
+3245 20402c7a call g24_head_ptr2regc 
+3246 1a60a2b4 add regc ,offset_24g_hop_pac ,rega 
+3247 202032d1 branch g24_rega_ifetch_1byte 
+
+g24_set1_mem_hop_pac:
+3248 58000001 setarg 1 
+
+g24_store_mem_hop_pac:
+3249 20402c7a call g24_head_ptr2regc 
+324a 1a608ab4 add regc ,offset_24g_hop_pac ,contw 
+324b 202032b4 branch g24_contw_istore_1byte 
+
+g24_fetch_mem_abort_pac:
+324c 20402c7a call g24_head_ptr2regc 
+324d 1a60a2b2 add regc ,offset_24g_abort_pac ,rega 
+324e 202032d1 branch g24_rega_ifetch_1byte 
+
+g24_set1_mem_abort_pac:
+324f 58000001 setarg 1 
+
+g24_store_mem_abort_pac:
+3250 20402c7a call g24_head_ptr2regc 
+3251 1a608ab2 add regc ,offset_24g_abort_pac ,contw 
+3252 202032b4 branch g24_contw_istore_1byte 
+
+g24_fetch_mem_pairing_sm:
+3253 20402c7a call g24_head_ptr2regc 
+3254 1a60a296 add regc ,offset_24g_pairing_sm ,rega 
+3255 202032d1 branch g24_rega_ifetch_1byte 
+
+g24_store_mem_pairing_sm:
+3256 1a608a96 add regc ,offset_24g_pairing_sm ,contw 
+3257 202032b4 branch g24_contw_istore_1byte 
+
+g24_fetch_mem_rf_hop_ch:
+3258 1a60a2cf add regc ,offset_24g_rf_hop_ch ,rega 
+3259 202032d1 branch g24_rega_ifetch_1byte 
+
+g24_set0_mem_rf_hop_ch:
+325a 58000000 setarg 0 
+
+g24_store_mem_rf_hop_ch:
+325b 1a608acf add regc ,offset_24g_rf_hop_ch ,contw 
+325c 202032b4 branch g24_contw_istore_1byte 
+
+g24_fetch_mem_rf_work_stage:
+325d 1a60a2d2 add regc ,offset_24g_rf_work_stage ,rega 
+325e 202032d1 branch g24_rega_ifetch_1byte 
+
+g24_fetch_mem_rxbuf_add1:
+325f 1a60a201 add regc ,offset_24g_rxbuf_add1 ,rega 
+3260 202032d1 branch g24_rega_ifetch_1byte 
+
+g24_fetch_mem_check_dongle_times:
+3261 1a60a2b5 add regc ,offset_24g_check_dongle_times ,rega 
+3262 202032d1 branch g24_rega_ifetch_1byte 
+
+g24_set0_mem_check_dongle_times:
+3263 58000000 setarg 0 
+
+g24_store_mem_check_dongle_times:
+3264 20402c7a call g24_head_ptr2regc 
+3265 1a608ab5 add regc ,offset_24g_check_dongle_times ,contw 
+3266 202032b4 branch g24_contw_istore_1byte 
+
+g24_store_mem_tx_power:
+3267 20402c7a call g24_head_ptr2regc 
+3268 1a60a2fb add regc ,offset_tx_power_temp ,rega 
+3269 ea208000 ifetch 1 ,rega 
+
+g24_store_mem_txpower:
+326a 6000c1de store 1 ,mem_tx_power 
+326b 20600000 rtn 
+
+g24_store_mem_tx_power_temp:
+326c 20402c7a call g24_head_ptr2regc 
+326d 6800c1de fetch 1 ,mem_tx_power 
+326e 1a608afb add regc ,offset_tx_power_temp ,contw 
+326f 202032b4 branch g24_contw_istore_1byte 
+
+g24_fetch_mem_power_ctrl_pac:
+3270 1a60a2fc add regc ,offset_power_ctrl_packet_cnt ,rega 
+3271 202032d1 branch g24_rega_ifetch_1byte 
+
+g24_store_mem_power_ctrl_level:
+3272 1a608afe add regc ,offset_power_ctrl_level ,contw 
+3273 202032b4 branch g24_contw_istore_1byte 
+
+g24_fetcht_mem_rxdata_temp:
+3274 58000109 setarg offset_24g_rxdata_temp 
+
+g24_set_rega_ifetcht_1byte:
+3275 9a60a200 iadd regc ,rega 
+3276 ea288000 ifetcht 1 ,rega 
+3277 20600000 rtn 
+
+g24_fetch_mem_rf_laststa:
+3278 58000135 setarg offset_24g_rf_laststa 
+3279 202032d0 branch g24_set_rega_ifetch_1byte 
+
+g24_set0_mem_rf_laststa:
+327a 58000000 setarg 0 
+
+g24_store_mem_rf_laststa:
+327b da200135 arg offset_24g_rf_laststa ,rega 
+327c 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_fetch_mem_rx_addr:
+327d 5800012b setarg offset_24g_rx_addr 
+
+g24_set_rega_ifetch_4byte:
+327e 204032cd call g24_set_rega 
+
+g24_rega_ifetch_4byte:
+327f ea220000 ifetch 4 ,rega 
+3280 20600000 rtn 
+
+g24_fetch_mem_time_slice:
+3281 5800015f setarg offset_24g_time_slice 
+3282 202032d0 branch g24_set_rega_ifetch_1byte 
+
+g24_set0_mem_time_slice:
+3283 58000000 setarg 0 
+
+g24_store_mem_time_slice:
+3284 da20015f arg offset_24g_time_slice ,rega 
+3285 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_set0_mem_mode_switch:
+3286 58000000 setarg 0 
+
+g24_store_mem_mode_switch:
+3287 da20015c arg offset_24g_mode_switch ,rega 
+3288 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_store_mem_bind_payload:
+3289 da20012f arg offset_24g_bind_payload ,rega 
+328a 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_fetch_mem_bind_device_status:
+328b 58000108 setarg offset_dongle_bind_device_status 
+328c 202032d0 branch g24_set_rega_ifetch_1byte 
+
+g24_store_mem_bind_device_status:
+328d da200108 arg offset_dongle_bind_device_status ,rega 
+328e 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_fetch_mem_dongle_work_mode:
+328f 58000105 setarg offset_dongle_work_mode 
+3290 202032d0 branch g24_set_rega_ifetch_1byte 
+
+g24_set_work_mem_dongle_work_mode:
+3291 58000000 setarg dongle_work 
+
+g24_store_mem_dongle_work_mode:
+3292 da200105 arg offset_dongle_work_mode ,rega 
+3293 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_fetch_mem_dongle_mode_init:
+3294 58000104 setarg offset_dongle_mode_init 
+3295 202032d0 branch g24_set_rega_ifetch_1byte 
+
+g24_set0_mem_dongle_mode_init:
+3296 58000000 setarg clear_init 
+
+g24_store_mem_dongle_mode_init:
+3297 da200104 arg offset_dongle_mode_init ,rega 
+3298 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_set0_mem_ackpayload_enable:
+3299 58000000 setarg 0 
+
+g24_store_mem_ackpayload_enable:
+329a da20013b arg offset_24g_ackpayload_enable ,rega 
+329b 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_set1_mem_ackpayload_enable:
+329c 58000001 setarg 1 
+329d 2020329a branch g24_store_mem_ackpayload_enable 
+
+g24_fetch_mem_rxdata_temp_add3_7byte:
+329e 5800010c setarg offset_24g_rxdata_temp_add3 
+329f 204032cd call g24_set_rega 
+32a0 ea238000 ifetch 7 ,rega 
+32a1 20600000 rtn 
+
+g24_fetch_mem_nodata_timer_enable:
+32a2 5800015e setarg offset_24g_nodata_timer_enable 
+32a3 202032d0 branch g24_set_rega_ifetch_1byte 
+
+g24_set0_mem_nodata_timer_enable:
+32a4 58000000 setarg 0 
+
+g24_store_mem_nodata_timer_enable:
+32a5 da20015e arg offset_24g_nodata_timer_enable ,rega 
+32a6 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_set0_mem_ms_blank_data_enable:
+32a7 58000000 setarg 0 
+
+g24_store_mem_ms_blank_data_enable:
+32a8 da200180 arg offset_24g_ms_blank_data_enable ,rega 
+32a9 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_set0_mem_kb_blank_data_enable:
+32aa 58000000 setarg 0 
+
+g24_store_mem_kb_blank_data_enable:
+32ab da20017e arg offset_24g_kb_blank_data_enable ,rega 
+32ac 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_set0_mem_kb_mul_blank_data_enable:
+32ad 58000000 setarg 0 
+
+g24_store_mem_kb_mul_blank_data_enable:
+32ae da20017f arg offset_24g_kb_mul_blank_data_enable ,rega 
+32af 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_store_mem_power_ctrl_threshold_up:
+32b0 da200102 arg offset_power_ctrl_threshold_up ,rega 
+32b1 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_store_mem_power_ctrl_threshold_down:
+32b2 da200103 arg offset_power_ctrl_threshold_down ,rega 
+
+g24_set_contw_with_regb_store_1byte:
+32b3 204032c7 call g24_set_contw_with_regb 
+
+g24_contw_istore_1byte:
+32b4 e0a08000 istore 1 ,contw 
+32b5 20600000 rtn 
+
+g24_fetch_mem_pair_mode:
+32b6 5800015d setarg offset_24g_pair_mode 
+32b7 202032d0 branch g24_set_rega_ifetch_1byte 
+
+g24_store_mem_pair_mode:
+32b8 da20015d arg offset_24g_pair_mode ,rega 
+32b9 202032b3 branch g24_set_contw_with_regb_store_1byte 
+
+g24_store_mem_pair_txpower:
+32ba 5800018a setarg offset_24g_pair_txpower 
+32bb 204032d0 call g24_set_rega_ifetch_1byte 
+32bc 2020326a branch g24_store_mem_txpower 
+
+g24_fetch_mem_rxdata_temp_add3_1byte:
+32bd 5800010c setarg offset_24g_rxdata_temp_add3 
+32be 202032d0 branch g24_set_rega_ifetch_1byte 
+
+g24_set_contw_with_temp:
+32bf 1fe20400 copy pdata ,temp 
+32c0 1a227e00 copy rega ,pdata 
+32c1 9a608a00 iadd regc ,contw 
+32c2 18427e00 copy temp ,pdata 
+32c3 20600000 rtn 
+
+g24_set_contw_with_temp_store_3byte:
+32c4 204032bf call g24_set_contw_with_temp 
+
+g24_contw_istore_3byte:
+32c5 e0a18000 istore 3 ,contw 
+32c6 20600000 rtn 
+
+g24_set_contw_with_regb:
+32c7 20402c7a call g24_head_ptr2regc 
+
+g24_set_contw_with_regb2:
+32c8 1fe22400 copy pdata ,regb 
+32c9 1a227e00 copy rega ,pdata 
+32ca 9a608a00 iadd regc ,contw 
+32cb 1a427e00 copy regb ,pdata 
+32cc 20600000 rtn 
+
+g24_set_rega:
+32cd 20402c7a call g24_head_ptr2regc 
+32ce 9a60a200 iadd regc ,rega 
+32cf 20600000 rtn 
+
+g24_set_rega_ifetch_1byte:
+32d0 204032cd call g24_set_rega 
+
+g24_rega_ifetch_1byte:
+32d1 ea208000 ifetch 1 ,rega 
+32d2 20600000 rtn 
+
+g24_set_rega_ifetcht_4byte:
+32d3 204032cd call g24_set_rega 
+32d4 ea2a0000 ifetcht 4 ,rega 
+32d5 20600000 rtn 
+
+g24_mem_set0:
+32d6 58000000 setarg 0 
+32d7 202032b4 branch g24_contw_istore_1byte 
+
+app_init:
+32d8 44e24018 bpatch patch18_4 ,mem_patch18 
+32d9 6800c092 fetch 1 ,mem_device_option 
+32da 203a32d8 branch app_init ,blank 
+32db c0022f30 beq dvc_op_dongle ,dongle_init 
+32dc c007b436 beq dvc_op_antilost ,antilost_init 
+32dd c004c5de beq dvc_op_shutter ,shutter_init 
+32de c005392a beq dvc_op_module ,module_init 
+32df c00735bf beq dvc_op_car ,car_init 
+32e0 c00844a4 beq dvc_op_remote_car ,remote_car_init 
+32e1 c2833d00 bbit1 dvc_op_mouse ,mouse_init 
+32e2 20600000 rtn 
+
+app_lpm_init:
+32e3 44e2c018 bpatch patch18_5 ,mem_patch18 
+32e4 70015100 jam 0 ,mem_tester_emulate 
+32e5 70017f00 jam 0 ,mem_debug_config 
+32e6 70018000 jam 0 ,mem_lch_code 
+32e7 58000000 setarg 0 
+32e8 600289ae store 5 ,mem_sp_state_start 
+32e9 6800c092 fetch 1 ,mem_device_option 
+32ea 203a32e3 branch app_lpm_init ,blank 
+32eb c0053962 beq dvc_op_module ,module_lpm_init 
+
+app_lpm_init0:
+32ec 20600000 rtn 
+
+app_process_idle:
+32ed 20407cd1 call ui_dispatch 
+32ee 20407d9c call check_51cmd 
+32ef 204032f6 call app_process_bb_event 
+32f0 680141f3 fetch 2 ,mem_cb_idle_process 
+32f1 20207f9c branch callback_func 
+
+app_process_bt:
+32f2 680141f1 fetch 2 ,mem_cb_bt_process 
+32f3 20207f9c branch callback_func 
+
+app_process_ble:
+32f4 680141ef fetch 2 ,mem_cb_le_process 
+32f5 20207f9c branch callback_func 
+
+app_process_bb_event:
+32f6 44e34018 bpatch patch18_6 ,mem_patch18 
+32f7 da204668 arg mem_ipc_fifo_bt2c51 ,rega 
+32f8 20407fc4 call fifo_out 
+32f9 207a0000 rtn blank 
+32fa 1fe22600 copy pdata ,regc 
+32fb 204032ff call app_event_normal_process 
+32fc 20203324 branch app_process_bb_event_priority 
+
+app_discard_event:
+32fd da600000 arg 0 ,regc 
+32fe 20600000 rtn 
+
+app_event_normal_process:
+32ff c000b311 beq bt_evt_bb_connected ,app_evt_bt_conn 
+3300 c0083357 beq bt_evt_button_long_pressed ,app_evt_button_long_pressed 
+3301 c002b335 beq bt_evt_setup_complete ,app_evt_setup_complete 
+3302 c009333c beq bt_evt_hid_handshake ,app_evt_hid_handshake 
+3303 c0033353 beq bt_evt_hid_connected ,app_bb_event_hid_connected 
+3304 c0023394 beq bt_evt_reconn_failed ,app_bb_event_reconn_failed 
+3305 c0013399 beq bt_evt_bb_disconnected ,app_bb_event_bb_disconn 
+3306 c009b394 beq bt_evt_reconn_page_timeout ,app_bb_event_reconn_failed 
+3307 c00a334b beq bt_evt_le_connected ,app_le_event_bb_connected 
+3308 c00ab34f beq bt_evt_le_disconnected ,app_le_event_bb_disconn 
+3309 c001b32e beq bt_evt_reconn_started ,app_event_reconn_start 
+330a c005b340 beq bt_evt_enter_sniff ,app_event_enter_sniff 
+330b c0063347 beq bt_evt_exit_sniff ,app_event_exit_sniff 
+330c c00b335b beq bt_evt_ml2cap_conn_refused ,app_event_ml2cap_conn_refused 
+330d c00c332a beq bt_evt_linkkey_generate ,app_event_linkkey_generate 
+330e c015331a beq bt_evt_switch_fail_master ,app_event_switch_fail_master 
+330f c015b318 beq bt_evt_switch_success_master ,app_event_switch_success 
+3310 20600000 rtn 
+
+app_evt_bt_conn:
+3311 68014682 fetch 2 ,mem_ui_state_map 
+3312 79207e00 set1 ui_state_bt_connected ,pdata 
+3313 60014682 store 2 ,mem_ui_state_map 
+3314 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3315 793ffe00 set0 app_disc_by_button ,pdata 
+3316 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3317 20600000 rtn 
+
+app_event_switch_success:
+3318 70022900 jam 0 ,mem_switch_fail_master_count 
+3319 20600000 rtn 
+
+app_event_switch_fail_master:
+331a 68008229 fetch 1 ,mem_switch_fail_master_count 
+331b 1fe0fe01 increase 1 ,pdata 
+331c 60008229 store 1 ,mem_switch_fail_master_count 
+331d 1fe67c01 sub pdata ,1 ,null 
+331e 202133df branch app_bt_role_switch ,positive 
+331f 70022900 jam 0 ,mem_switch_fail_master_count 
+3320 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3321 79207e09 set1 app_disc_switch_fail ,pdata 
+3322 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3323 202033e9 branch app_bt_disconnect 
+
+app_process_bb_event_priority:
+3324 680141f5 fetch 2 ,mem_cb_bb_event_process 
+3325 20207f9c branch callback_func 
+
+app_check_wake_lock:
+3326 680141e9 fetch 2 ,mem_cb_check_wakelock 
+3327 20207f9c branch callback_func 
+
+app_will_enter_lpm:
+3328 680141ed fetch 2 ,mem_cb_before_lpm 
+3329 20207f9c branch callback_func 
+
+app_event_linkkey_generate:
+332a 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+332b 79207e01 set1 app_disc_after_pairing ,pdata 
+332c 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+332d 20203412 branch app_bt_store_reconn_info 
+
+app_event_reconn_start:
+332e 68014682 fetch 2 ,mem_ui_state_map 
+332f 79207e07 set1 ui_state_bt_reconnect ,pdata 
+3330 60014682 store 2 ,mem_ui_state_map 
+3331 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3332 79207e02 set1 app_disc_after_reconn ,pdata 
+3333 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3334 20600000 rtn 
+
+app_evt_setup_complete:
+3335 68014682 fetch 2 ,mem_ui_state_map 
+3336 79207e01 set1 ui_state_bt_setup_complete ,pdata 
+3337 60014682 store 2 ,mem_ui_state_map 
+3338 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3339 79207e04 set1 app_disc_after_setup_done ,pdata 
+333a 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+333b 20600000 rtn 
+
+app_evt_hid_handshake:
+333c 68014682 fetch 2 ,mem_ui_state_map 
+333d 79207e03 set1 ui_state_bt_hid_handshake ,pdata 
+333e 60014682 store 2 ,mem_ui_state_map 
+333f 20600000 rtn 
+
+app_event_enter_sniff:
+3340 68014682 fetch 2 ,mem_ui_state_map 
+3341 79207e05 set1 ui_state_bt_sniff ,pdata 
+3342 60014682 store 2 ,mem_ui_state_map 
+3343 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3344 79207e03 set1 app_disc_after_sniff ,pdata 
+3345 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3346 20600000 rtn 
+
+app_event_exit_sniff:
+3347 68014682 fetch 2 ,mem_ui_state_map 
+3348 793ffe05 set0 ui_state_bt_sniff ,pdata 
+3349 60014682 store 2 ,mem_ui_state_map 
+334a 20600000 rtn 
+
+app_le_event_bb_connected:
+334b 68014682 fetch 2 ,mem_ui_state_map 
+334c 79207e09 set1 ui_state_ble_connected ,pdata 
+334d 60014682 store 2 ,mem_ui_state_map 
+334e 20600000 rtn 
+
+app_le_event_bb_disconn:
+334f 68014682 fetch 2 ,mem_ui_state_map 
+3350 793ffe09 set0 ui_state_ble_connected ,pdata 
+3351 60014682 store 2 ,mem_ui_state_map 
+3352 20203418 branch app_lpm_mult_disable 
+
+app_bb_event_hid_connected:
+3353 68014682 fetch 2 ,mem_ui_state_map 
+3354 79207e02 set1 ui_state_bt_hid_conn ,pdata 
+3355 60014682 store 2 ,mem_ui_state_map 
+3356 20600000 rtn 
+
+app_evt_button_long_pressed:
+3357 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3358 79207e00 set1 app_disc_by_button ,pdata 
+3359 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+335a 20600000 rtn 
+
+app_event_ml2cap_conn_refused:
+335b 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+335c 79207e08 set1 app_disc_l2cap_refused ,pdata 
+335d 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+335e 202033e9 branch app_bt_disconnect 
+
+app_evt_timer:
+335f 44e3c018 bpatch patch18_7 ,mem_patch18 
+3360 6000822a store 1 ,mem_app_evt_timer_count 
+
+app_evt_100ms_loop:
+3361 6800822a fetch 1 ,mem_app_evt_timer_count 
+3362 207a0000 rtn blank 
+3363 1fe0ffff increase -1 ,pdata 
+3364 6000822a store 1 ,mem_app_evt_timer_count 
+3365 20407cdd call ui_button_polling 
+3366 204033d6 call app_lpm_wake_auto_lock_timer 
+3367 20403387 call app_unsniff_delay_timer 
+3368 2040338d call app_discovery_timer 
+3369 2040651b call flash_write_spi_sm_timer 
+336a 680141fd fetch 2 ,mem_cb_event_timer 
+336b 20407f9c call callback_func 
+336c 20203361 branch app_evt_100ms_loop 
+
+timer_single_step:
+336d ea608000 ifetch 1 ,regc 
+336e 207a0000 rtn blank 
+336f 1fe0ffff pincrease -1 
+3370 e2608000 istore 1 ,regc 
+3371 247a0000 nrtn blank 
+3372 1a427e00 copy regb ,pdata 
+3373 20207f9c branch callback_func 
+
+timer_single_step_2b:
+3374 ea610000 ifetch 2 ,regc 
+3375 207a0000 rtn blank 
+3376 1fe0ffff pincrease -1 
+3377 e2610000 istore 2 ,regc 
+3378 247a0000 nrtn blank 
+3379 1a427e00 copy regb ,pdata 
+337a 20207f9c branch callback_func 
+
+app_power_timer:
+337b 6809423f fetcht 2 ,mem_power_param_ptr 
+337c 1840a601 add temp ,power_timer_offset ,regc 
+337d da40337f arg app_power_timer_timeout ,regb 
+337e 2020336d branch timer_single_step 
+
+app_power_timer_timeout:
+337f 2040342d call app_got_power_state_common 
+3380 c000b382 beq power_starting ,app_enter_power_stanby_state 
+
+app_enter_power_off_state:
+3381 2020340a branch app_enter_hibernate 
+
+app_enter_power_stanby_state:
+3382 58000002 setarg power_standby 
+3383 e2608000 istore 1 ,regc 
+3384 1840a408 add temp ,power_standby_cb_offset ,regb 
+
+app_power_cb_common:
+3385 ea410000 ifetch 2 ,regb 
+3386 20207f9c branch callback_func 
+
+app_unsniff_delay_timer:
+3387 da604205 arg mem_unsniff2sniff_timer_count ,regc 
+3388 da40338a arg app_unsniff_delay_timeout ,regb 
+3389 2020336d branch timer_single_step 
+
+app_unsniff_delay_timeout:
+338a 20402252 call context_check_idle 
+338b 2022b40e branch app_bt_enter_sniff ,zero 
+338c 20600000 rtn 
+
+app_discovery_timer:
+338d da60467e arg mem_discovery_timeout_timer_count ,regc 
+338e da403390 arg app_discovery_timeout ,regb 
+338f 20203374 branch timer_single_step_2b 
+
+app_discovery_timeout:
+3390 204033f0 call app_bt_stop_discovery 
+3391 20403408 call app_led_off 
+3392 680141f7 fetch 2 ,mem_cb_discovry_timeout 
+3393 20207f9c branch callback_func 
+
+app_bb_event_reconn_failed:
+3394 204033ac call app_disconn_reason_flag_clear 
+
+app_clear_reconnect_flag:
+3395 68014682 fetch 2 ,mem_ui_state_map 
+3396 793ffe07 set0 ui_state_bt_reconnect ,pdata 
+3397 60014682 store 2 ,mem_ui_state_map 
+3398 20600000 rtn 
+
+app_bb_event_bb_disconn:
+3399 70420500 jam 0 ,mem_unsniff2sniff_timer_count 
+339a 68014682 fetch 2 ,mem_ui_state_map 
+339b c283b39e bbit1 ui_state_bt_reconnect ,app_bb_event_bb_reconn_disconn 
+339c 2fec0001 isolate0 ui_state_bt_setup_complete ,pdata 
+339d 2040b2fd call app_discard_event ,true 
+
+app_bb_event_bb_reconn_disconn:
+339e 44e44019 bpatch patch19_0 ,mem_patch19 
+339f 68014682 fetch 2 ,mem_ui_state_map 
+33a0 793ffe00 set0 ui_state_bt_connected ,pdata 
+33a1 793ffe01 set0 ui_state_bt_setup_complete ,pdata 
+33a2 793ffe02 set0 ui_state_bt_hid_conn ,pdata 
+33a3 793ffe03 set0 ui_state_bt_hid_handshake ,pdata 
+33a4 793ffe07 set0 ui_state_bt_reconnect ,pdata 
+33a5 60014682 store 2 ,mem_ui_state_map 
+33a6 20203418 branch app_lpm_mult_disable 
+
+app_bb_hibernate:
+33a7 204033a9 call app_disconn_reason_clear 
+33a8 2020340a branch app_enter_hibernate 
+
+app_disconn_reason_clear:
+33a9 58000000 setarg 0 
+33aa 60014208 store app_disc_rsn_size ,mem_app_disconn_reason 
+33ab 20600000 rtn 
+
+app_disconn_reason_flag_clear:
+33ac 58000000 setarg 0 
+33ad 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+33ae 20600000 rtn 
+
+app_disconn_reason_collect_bt:
+33af 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+33b0 60014208 store app_disc_rsn_size ,mem_app_disconn_reason 
+33b1 58000000 setarg 0 
+33b2 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+33b3 20600000 rtn 
+
+app_disconn_reason_collect_ble:
+33b4 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+33b5 79207e07 set1 app_disc_ble ,pdata 
+33b6 60014208 store app_disc_rsn_size ,mem_app_disconn_reason 
+33b7 58000000 setarg 0 
+33b8 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+33b9 20600000 rtn 
+
+app_check_sniff:
+33ba 6800c682 fetch 1 ,mem_ui_state_map 
+33bb 2feffe05 isolate1 ui_state_bt_sniff ,pdata 
+33bc 20600000 rtn 
+
+app_initflag_store:
+33bd 5800aa55 setarg eeprom_init_flag 
+
+app_flag_store:
+33be 60010aaa store 2 ,mem_timeup 
+33bf 44e4c019 bpatch patch19_1 ,mem_patch19 
+33c0 d8400002 arg 2 ,temp 
+33c1 da200aaa arg mem_timeup ,rega 
+33c2 da4000c3 arg eeprom_module_init_flag ,regb 
+33c3 20206606 branch iicd_write_eep_data 
+
+app_initflag_check:
+33c4 44e54019 bpatch patch19_2 ,mem_patch19 
+33c5 d8400002 arg 2 ,temp 
+33c6 da200a9a arg mem_pdatatemp ,rega 
+33c7 da4000c3 arg eeprom_module_init_flag ,regb 
+33c8 204065df call iicd_read_eep_data 
+33c9 68010a9a fetch 2 ,mem_pdatatemp 
+33ca d840aa55 arg eeprom_init_flag ,temp 
+33cb 98467c00 isub temp ,null 
+33cc 20600000 rtn 
+
+app_start_auto_sniff:
+33cd 6800c55a fetch 1 ,mem_unsniff2sniff_timer 
+33ce 6000c205 store 1 ,mem_unsniff2sniff_timer_count 
+33cf 20600000 rtn 
+
+app_get_lpm_wake_lock:
+33d0 d8e00009 arg wake_lock_app ,queue 
+33d1 20202c32 branch lpm_get_wake_lock 
+
+app_put_lpm_wake_lock:
+33d2 d8e00009 arg wake_lock_app ,queue 
+33d3 20202c36 branch lpm_put_wake_lock 
+
+app_lpm_wake_auto_lock:
+33d4 70420605 jam lpm_wake_up_delay_timer ,mem_wake_up_delay_timer 
+33d5 202033d0 branch app_get_lpm_wake_lock 
+
+app_lpm_wake_auto_lock_timer:
+33d6 da604206 arg mem_wake_up_delay_timer ,regc 
+33d7 da4033d2 arg app_put_lpm_wake_lock ,regb 
+33d8 2020336d branch timer_single_step 
+
+app_l2cap_flow_control_enable:
+33d9 70436301 jam l2cap_flow_ctrl_enable ,mem_l2cap_flow_ctrl_flag 
+33da 20600000 rtn 
+
+app_l2cap_flow_control_disable:
+33db 70436300 jam l2cap_flow_ctrl_disable ,mem_l2cap_flow_ctrl_flag 
+33dc 20600000 rtn 
+
+app_bt_set_pincode:
+33dd 700a990a jam bt_cmd_set_pin_code ,mem_fifo_temp 
+33de 20207d8f branch ui_ipc_send_cmd 
+
+app_bt_role_switch:
+33df 700a991d jam bt_cmd_role_switch ,mem_fifo_temp 
+33e0 20207d8f branch ui_ipc_send_cmd 
+
+app_bt_start_reconnect:
+33e1 44e5c019 bpatch patch19_3 ,mem_patch19 
+33e2 6800c207 fetch 1 ,mem_app_connection_options 
+33e3 6000816d store 1 ,mem_connection_options 
+33e4 70022801 jam app_flag_reconnect ,mem_reconnect_flag 
+33e5 700a9903 jam bt_cmd_reconnect ,mem_fifo_temp 
+33e6 20207d8f branch ui_ipc_send_cmd 
+
+app_bt_reconnect_cancel:
+33e7 700a991e jam bt_cmd_bb_reconn_cancel ,mem_fifo_temp 
+33e8 20207d8f branch ui_ipc_send_cmd 
+
+app_bt_disconnect:
+33e9 700a9904 jam bt_cmd_disconnect ,mem_fifo_temp 
+33ea 20207d8f branch ui_ipc_send_cmd 
+
+app_bt_start_discovery_short:
+33eb 68014687 fetch 2 ,mem_discovery_timeout 
+33ec 6001467e store 2 ,mem_discovery_timeout_timer_count 
+
+app_bt_start_discovery_led_blink:
+33ed 20403404 call app_led_start_blink 
+
+app_bt_start_discovery:
+33ee 700a9901 jam bt_cmd_start_discovery ,mem_fifo_temp 
+33ef 20207d8f branch ui_ipc_send_cmd 
+
+app_bt_stop_discovery:
+33f0 58000000 setarg 0 
+33f1 6001467e store 2 ,mem_discovery_timeout_timer_count 
+33f2 700a9902 jam bt_cmd_stop_discovery ,mem_fifo_temp 
+33f3 20207d8f branch ui_ipc_send_cmd 
+
+app_ble_start_direct_adv:
+33f4 700a990f jam bt_cmd_start_direct_adv ,mem_fifo_temp 
+33f5 20207d8f branch ui_ipc_send_cmd 
+
+app_ble_stop_direct_adv:
+33f6 700a9910 jam bt_cmd_stop_direct_adv ,mem_fifo_temp 
+33f7 20207d8f branch ui_ipc_send_cmd 
+
+app_ble_stop_adv:
+33f8 700a990e jam bt_cmd_stop_adv ,mem_fifo_temp 
+33f9 20207d8f branch ui_ipc_send_cmd 
+
+app_ble_start_adv:
+33fa 700a990d jam bt_cmd_start_adv ,mem_fifo_temp 
+33fb 20207d8f branch ui_ipc_send_cmd 
+
+app_ble_start_scan:
+33fc 700a9917 jam bt_cmd_le_start_scan ,mem_fifo_temp 
+33fd 20207d8f branch ui_ipc_send_cmd 
+
+app_ble_stop_scan:
+33fe 700a9918 jam bt_cmd_le_stop_scan ,mem_fifo_temp 
+33ff 20207d8f branch ui_ipc_send_cmd 
+
+app_ble_start_conn:
+3400 700a9916 jam bt_cmd_le_start_conn ,mem_fifo_temp 
+3401 20207d8f branch ui_ipc_send_cmd 
+
+app_ble_disconnect:
+3402 700a9911 jam bt_cmd_le_disconnect ,mem_fifo_temp 
+3403 20207d8f branch ui_ipc_send_cmd 
+
+app_led_start_blink:
+3404 700a9915 jam bt_cmd_led_blink ,mem_fifo_temp 
+3405 20207d8f branch ui_ipc_send_cmd 
+
+app_led_on:
+3406 700a9914 jam bt_cmd_led_on ,mem_fifo_temp 
+3407 20207d8f branch ui_ipc_send_cmd 
+
+app_led_stop_blink:
+
+app_led_off:
+3408 700a9913 jam bt_cmd_led_off ,mem_fifo_temp 
+3409 20207d8f branch ui_ipc_send_cmd 
+
+app_enter_hibernate:
+340a 700a9919 jam bt_cmd_enter_hibernate ,mem_fifo_temp 
+340b 20207d8f branch ui_ipc_send_cmd 
+
+app_bt_sniff_exit:
+340c 700a9906 jam bt_cmd_exit_sniff ,mem_fifo_temp 
+340d 20207d8f branch ui_ipc_send_cmd 
+
+app_bt_enter_sniff:
+340e 700a9905 jam bt_cmd_enter_sniff ,mem_fifo_temp 
+340f 20207d8f branch ui_ipc_send_cmd 
+
+app_ble_store_reconn_info:
+3410 700a991f jam bt_cmd_store_reconn_info_le ,mem_fifo_temp 
+3411 20207d8f branch ui_ipc_send_cmd 
+
+app_bt_store_reconn_info:
+3412 700a9920 jam bt_cmd_store_reconn_info_bt ,mem_fifo_temp 
+3413 20207d8f branch ui_ipc_send_cmd 
+
+app_store_reconn_info:
+3414 700a9925 jam bt_cmd_store_reconn_info ,mem_fifo_temp 
+3415 20207d8f branch ui_ipc_send_cmd 
+
+app_lpm_mult_enable:
+3416 7920000d set1 mark_lpm_mult_enable ,mark 
+3417 20600000 rtn 
+
+app_lpm_mult_disable:
+3418 793f800d set0 mark_lpm_mult_enable ,mark 
+3419 20600000 rtn 
+
+app_button_long_pressed:
+341a 2040342d call app_got_power_state_common 
+341b c0013424 beq power_standby ,app_power_shutting_down 
+
+app_power_starting:
+341c 58000001 setarg power_starting 
+341d e2608000 istore 1 ,regc 
+341e 1840a203 add temp ,power_starting_timeout_offset ,rega 
+341f 1840a406 add temp ,power_starting_cb_offset ,regb 
+
+app_power_common:
+3420 ea288000 ifetcht 1 ,rega 
+3421 1a60a601 increase 1 ,regc 
+3422 e2688000 istoret 1 ,regc 
+3423 20203385 branch app_power_cb_common 
+
+app_power_shutting_down:
+3424 58000000 setarg power_off 
+3425 e2608000 istore 1 ,regc 
+3426 68014682 fetch 2 ,mem_ui_state_map 
+3427 c304b429 bbit0 ui_state_ble_connected ,app_power_off_end 
+3428 20403402 call app_ble_disconnect 
+
+app_power_off_end:
+3429 6809423f fetcht 2 ,mem_power_param_ptr 
+342a 1840a202 add temp ,power_off_timeout_offset ,rega 
+342b 1840a404 add temp ,power_off_cb_offset ,regb 
+342c 20203420 branch app_power_common 
+
+app_got_power_state_common:
+342d 6809423f fetcht 2 ,mem_power_param_ptr 
+342e 1840a600 add temp ,power_state_offset ,regc 
+342f ea608000 ifetch 1 ,regc 
+3430 20600000 rtn 
+
+app_event_button_up:
+3431 2040342d call app_got_power_state_common 
+3432 c0803434 bne power_off ,app_power_release 
+3433 2020340a branch app_enter_hibernate 
+
+app_power_release:
+3434 1840a40a add temp ,ui_butten_up_cb_offset ,regb 
+3435 20203385 branch app_power_cb_common 
+
+antilost_init:
+3436 20758000 rtn wake 
+3437 70808100 jam 0x00 ,core_gpio_sel1 
+3438 58003463 setarg antilost_le_before_hibernate 
+3439 600141eb store 2 ,mem_cb_before_hibernate 
+343a 5800696c setarg keyscan_process_lpm_before 
+343b 600141ed store 2 ,mem_cb_before_lpm 
+343c 580034f5 setarg antilost_idle_process 
+343d 600141f3 store 2 ,mem_cb_idle_process 
+343e 580034f4 setarg antilost_le_conn_process 
+343f 600141ef store 2 ,mem_cb_le_process 
+3440 5800347e setarg antilost_bb_event_process 
+3441 600141f5 store 2 ,mem_cb_bb_event_process 
+3442 580034b2 setarg antilost_le_bb_event_timer 
+3443 600141fd store 2 ,mem_cb_event_timer 
+3444 58003465 setarg antilost_le_notification 
+3445 600141fb store 2 ,mem_cb_ble_transmit 
+3446 58003470 setarg antilost_lpm_lock_process 
+3447 600141e9 store 2 ,mem_cb_check_wakelock 
+3448 58003501 setarg antilost_le_receive_data_process 
+3449 600141f9 store 2 ,mem_cb_att_write 
+344a 44e64019 bpatch patch19_4 ,mem_patch19 
+344b 2040359b call antilost_buzzer_pwm_init 
+344c 20406948 call keyscan_key_init 
+344d 204035ad call antilost_adc_init 
+344e 20407d08 call ui_led_init_global 
+344f 20407cd3 call ui_button_init 
+3450 5800350b setarg antilost_key_up_down 
+3451 60014766 store 2 ,mem_cb_antl_key 
+3452 580034fc setarg antilost_power_off_cb 
+3453 6001475d store 2 ,mem_antl_power_off_cb 
+3454 580034f8 setarg antilost_power_starting_cb 
+3455 6001475f store 2 ,mem_antl_power_starting_cb 
+3456 5800346c setarg antilost_power_standby_cb 
+3457 60014761 store 2 ,mem_antl_power_standby_cb 
+3458 580035a2 setarg antilost_led_on_cb 
+3459 600146a9 store 2 ,mem_antl_led_cb_on 
+345a 580035a4 setarg antilost_led_off_cb 
+345b 600146ab store 2 ,mem_antl_led_cb_off 
+345c 580035a9 setarg antilost_buzzer_on 
+345d 600146b4 store 2 ,mem_antl_buzzer_cb_on 
+345e 580035a6 setarg antilost_buzzer_off 
+345f 600146b6 store 2 ,mem_antl_buzzer_cb_off 
+3460 68014682 fetch 2 ,mem_ui_state_map 
+3461 c3860000 rtnbit1 ui_state_btn_down 
+3462 2020340a branch app_enter_hibernate 
+
+antilost_le_before_hibernate:
+3463 20403586 call antilost_led_buzzer_stop_blink 
+3464 2020340a branch app_enter_hibernate 
+
+antilost_le_notification:
+3465 20405892 call le_fifo_check_nearly_full 
+3466 247a0000 nrtn blank 
+3467 da200b06 arg mem_temp_block5 ,rega 
+3468 20407e54 call queue_pop 
+3469 24740000 nrtn user 
+346a d8c00b06 arg mem_temp_block5 ,contr 
+346b 20204746 branch le_send_notify_from_list 
+
+antilost_power_standby_cb:
+346c 68014797 fetch 2 ,mem_antl_le_sleep_timeout 
+346d 60014791 store 2 ,mem_antl_le_sleep_timer 
+346e 70475301 jam 1 ,mem_antl_key_scan_enable 
+346f 2020358f branch antilost_fast_adv_start 
+
+antilost_lpm_lock_process:
+3470 6800c79d fetch 1 ,mem_antl_key_state 
+3471 c000b479 beq 1 ,antilost_lpm_ctrl_for_led_buzzer 
+3472 68014682 fetch 2 ,mem_ui_state_map 
+3473 c304b479 bbit0 ui_state_ble_connected ,antilost_lpm_ctrl_for_led_buzzer 
+3474 6800c79e fetch 1 ,mem_antl_lost_mode 
+3475 c000b3d0 beq 1 ,app_get_lpm_wake_lock 
+3476 6800c700 fetch 1 ,mem_antl_queue_curr_num 
+3477 243a33d0 nbranch app_get_lpm_wake_lock ,blank 
+3478 202033d2 branch app_put_lpm_wake_lock 
+
+antilost_lpm_ctrl_for_led_buzzer:
+3479 6800c79b fetch 1 ,mem_antl_led_state 
+347a 6808c79c fetcht 1 ,mem_antl_buzzer_state 
+347b 9841fe00 ior temp ,pdata 
+347c c000b3d0 beq 1 ,app_get_lpm_wake_lock 
+347d 202033d2 branch app_put_lpm_wake_lock 
+
+antilost_bb_event_process:
+347e 1a627e00 copy regc ,pdata 
+347f c016b431 beq bt_evt_button_up ,app_event_button_up 
+3480 c008341a beq bt_evt_button_long_pressed ,app_button_long_pressed 
+3481 c00a34df beq bt_evt_le_connected ,antilost_le_process_conn 
+3482 c00ab4e8 beq bt_evt_le_disconnected ,antilost_le_process_discon 
+3483 c0203485 beq bt_evt_le_parse_conn_papa_update_rsp ,antilost_le_conn_param_update_rsp_recieved 
+3484 20600000 rtn 
+
+antilost_le_conn_param_update_rsp_recieved:
+3485 68014509 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+3486 c000b48c beq ble_signaling_connect_parameter_update_rejected ,antilost_le_conn_param_rejected 
+
+antilost_le_conn_param_accepted:
+3487 680143d8 fetch 2 ,mem_le_new_connslavelatency 
+3488 203a34a2 branch antilost_master_nonsupport_latency ,blank 
+
+antilost_le_conn_param_updata_procedure_sucsess:
+3489 70478a02 jam conn_param_updata_procedure_complete ,mem_antl_conn_updata_procedure_state 
+348a 70478f3c jam 60 ,mem_antl_conn_update_timer 
+348b 20600000 rtn 
+
+antilost_le_conn_param_rejected:
+348c 6801449a fetch 2 ,mem_le_latency 
+348d 203a34a0 branch antilost_conn_param_updata_procedure_faild ,blank 
+
+antilost_conn_param_retransimiting:
+348e 70478a01 jam conn_param_updata_procedure_starting ,mem_antl_conn_updata_procedure_state 
+348f 680947b4 fetcht 2 ,mem_interval_increment 
+3490 68014496 fetch 2 ,mem_le_interval_min 
+3491 9840fe00 iadd temp ,pdata 
+3492 60014496 store 2 ,mem_le_interval_min 
+3493 1fe22200 copy pdata ,rega 
+3494 68014498 fetch 2 ,mem_le_interval_max 
+3495 9840fe00 iadd temp ,pdata 
+3496 60014498 store 2 ,mem_le_interval_max 
+3497 9a20fe00 iadd rega ,pdata 
+3498 1fe30400 rshift pdata ,temp 
+3499 680147c0 fetch 2 ,mem_antl_le_unnormal_interval_max 
+349a 9846fc00 idiv temp 
+349b 20407f86 call wait_div_end 
+349c 1807fe00 quotient pdata 
+349d 6001449a store 2 ,mem_le_latency 
+349e 70479001 jam 1 ,mem_antl_send_updata_le_param_timer 
+349f 20600000 rtn 
+
+antilost_conn_param_updata_procedure_faild:
+34a0 70478a03 jam conn_param_updata_procedure_faild ,mem_antl_conn_updata_procedure_state 
+34a1 20600000 rtn 
+
+antilost_master_nonsupport_latency:
+34a2 70417200 jam 0 ,mem_lpm_mult 
+34a3 70479000 jam 0 ,mem_antl_send_updata_le_param_timer 
+34a4 680143d6 fetch 2 ,mem_le_new_conninterval 
+34a5 680947be fetcht 2 ,mem_antl_le_unnormal_interval_min 
+34a6 98467c00 isub temp ,null 
+34a7 79212200 setflag positive ,0 ,rega 
+34a8 680147c0 fetch 2 ,mem_antl_le_unnormal_interval_max 
+34a9 680943d6 fetcht 2 ,mem_le_new_conninterval 
+34aa 98467e00 isub temp ,pdata 
+34ab 79212201 setflag positive ,1 ,rega 
+34ac 2a200603 compare 0x03 ,rega ,0x03 
+34ad 20608000 rtn true 
+34ae 680447be fetch 8 ,mem_antl_le_unnormal_interval_min 
+34af 60044496 store 8 ,mem_le_interval_min 
+34b0 70479001 jam 1 ,mem_antl_send_updata_le_param_timer 
+34b1 20600000 rtn 
+
+antilost_le_bb_event_timer:
+34b2 2040337b call app_power_timer 
+34b3 204034b9 call antilost_double_click_timer 
+34b4 204034be call antilost_le_fast_adv_timer 
+34b5 204034d5 call antilost_le_sleep_timer 
+34b6 204034ca call antilost_app_updata_le_param_timer 
+34b7 204034c4 call antilost_conn_update_timer 
+34b8 202034d9 branch antilost_adc_check_timer 
+
+antilost_double_click_timer:
+34b9 da604799 arg mem_double_click_timer ,regc 
+34ba da4034bc arg antilost_double_click_timeout ,regb 
+34bb 2020336d branch timer_single_step 
+
+antilost_double_click_timeout:
+34bc 70479a00 jam 0 ,mem_butten_click_cnt 
+34bd 20600000 rtn 
+
+antilost_le_fast_adv_timer:
+34be da604793 arg mem_antl_fast_adv_timer ,regc 
+34bf da4034c1 arg antilost_le_fast_adv_timeout ,regb 
+34c0 20203374 branch timer_single_step_2b 
+
+antilost_le_fast_adv_timeout:
+34c1 da6046bf arg mem_antl_slow_adv_led_style ,regc 
+34c2 da40469e arg mem_antl_slow_adv_lpm_interval ,regb 
+34c3 20203591 branch antilost_adv_start_common 
+
+antilost_conn_update_timer:
+34c4 da60478f arg mem_antl_conn_update_timer ,regc 
+34c5 da4034c7 arg antilost_conn_update_timer_time_out ,regb 
+34c6 2020336d branch timer_single_step 
+
+antilost_conn_update_timer_time_out:
+34c7 6801449a fetch 2 ,mem_le_latency 
+34c8 6000c172 store 1 ,mem_lpm_mult 
+34c9 20600000 rtn 
+
+antilost_app_updata_le_param_timer:
+34ca da604790 arg mem_antl_send_updata_le_param_timer ,regc 
+34cb da4034cd arg antilost_app_updata_le_param_timeout ,regb 
+34cc 2020336d branch timer_single_step 
+
+antilost_app_updata_le_param_timeout:
+34cd 6800843f fetch 1 ,mem_le_state 
+34ce 2fe0c000 compare 0 ,pdata ,0x60 
+34cf 2420b4d3 nbranch antilost_wait_for_updata_param_instant_expire ,true 
+34d0 70478a01 jam conn_param_updata_procedure_starting ,mem_antl_conn_updata_procedure_state 
+34d1 20403416 call app_lpm_mult_enable 
+34d2 20205abf branch le_l2cap_tx_update_req 
+
+antilost_wait_for_updata_param_instant_expire:
+34d3 70479001 jam 1 ,mem_antl_send_updata_le_param_timer 
+34d4 20600000 rtn 
+
+antilost_le_sleep_timer:
+34d5 da604791 arg mem_antl_le_sleep_timer ,regc 
+34d6 da4034d8 arg antilost_le_sleep_timer_timeout ,regb 
+34d7 20203374 branch timer_single_step_2b 
+
+antilost_le_sleep_timer_timeout:
+34d8 2020341a branch app_button_long_pressed 
+
+antilost_adc_check_timer:
+34d9 da60478d arg mem_adc_timer ,regc 
+34da da4034dc arg antilost_adc_check_timer_timeout ,regb 
+34db 20203374 branch timer_single_step_2b 
+
+antilost_adc_check_timer_timeout:
+34dc 680147a7 fetch 2 ,mem_adc_timeout 
+34dd 6001478d store 2 ,mem_adc_timer 
+34de 202035af branch antilost_battery_process 
+
+antilost_le_process_conn:
+34df 680147a7 fetch 2 ,mem_adc_timeout 
+34e0 6001478d store 2 ,mem_adc_timer 
+34e1 58000000 setarg 0 
+34e2 60014793 store 2 ,mem_antl_fast_adv_timer 
+34e3 60014791 store 2 ,mem_antl_le_sleep_timer 
+34e4 2040355c call antilost_alert_off 
+34e5 20403586 call antilost_led_buzzer_stop_blink 
+34e6 70417200 jam 0 ,mem_lpm_mult 
+34e7 202033f8 branch app_ble_stop_adv 
+
+antilost_le_process_discon:
+34e8 58000000 setarg 0 
+34e9 6002478d store 4 ,mem_adc_timer 
+34ea 6001c78a store 3 ,mem_antl_conn_updata_procedure_state 
+34eb 60014509 store 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+34ec 7047a001 jam 1 ,mem_alarm_config_notfy_cnt 
+34ed 68014797 fetch 2 ,mem_antl_le_sleep_timeout 
+34ee 60014791 store 2 ,mem_antl_le_sleep_timer 
+34ef 20407e38 call queue_init 
+34f0 6800c759 fetch 1 ,mem_antl_power_state 
+34f1 c1000000 rtneq power_off 
+34f2 2040358f call antilost_fast_adv_start 
+34f3 2020356e branch antilost_on_off_alarm_after_disconn 
+
+antilost_le_conn_process:
+34f4 20203508 branch antilost_key_process 
+
+antilost_idle_process:
+34f5 6800c759 fetch 1 ,mem_antl_power_state 
+34f6 c1810000 rtnne power_standby 
+34f7 20203508 branch antilost_key_process 
+
+antilost_power_starting_cb:
+34f8 da6046cd arg mem_antl_power_starting_buzzer_style ,regc 
+34f9 20403582 call antilost_buzzer_configuration 
+34fa da6046c6 arg mem_antl_power_starting_led_style ,regc 
+
+antilost_power_common:
+34fb 20203584 branch antilost_led_configuration 
+
+antilost_power_off_cb:
+34fc 70436e00 jam off ,mem_le_adv_enable 
+34fd da6046db arg mem_antl_power_off_buzzer_style ,regc 
+34fe 20403582 call antilost_buzzer_configuration 
+34ff da6046d4 arg mem_antl_power_off_led_style ,regc 
+3500 202034fb branch antilost_power_common 
+
+antilost_le_receive_data_process:
+3501 68008477 fetch 1 ,mem_le_att_opcode 
+3502 c0093504 beq attop_write_request ,antilost_le_parse_att_write_request 
+3503 20600000 rtn 
+
+antilost_le_parse_att_write_request:
+3504 68010478 fetch 2 ,mem_le_att_handle 
+3505 c006b536 beq new_spec_write_handle ,antilost_cmd_parse_for_application 
+3506 c005b571 beq new_spec_notification_enable_handle ,antilost_notify_alarm_config_first_time 
+3507 20600000 rtn 
+
+antilost_key_process:
+3508 6800c753 fetch 1 ,mem_antl_key_scan_enable 
+3509 207a0000 rtn blank 
+350a 20206978 branch keyscan_key_process 
+
+antilost_key_up_down:
+350b 1a227e00 copy rega ,pdata 
+350c 203a3510 branch antilost_key_is_up ,blank 
+
+antilost_key_is_down:
+350d 18e27e00 copy queue ,pdata 
+350e c0003513 beq 0 ,antilost_key0_down 
+350f 20600000 rtn 
+
+antilost_key_is_up:
+3510 18e27e00 copy queue ,pdata 
+3511 c000351b beq 0 ,antilost_key0_up 
+3512 20600000 rtn 
+
+antilost_key0_down:
+3513 70479d01 jam 1 ,mem_antl_key_state 
+3514 da6046f7 arg mem_antl_key_buzzer_style ,regc 
+3515 20403582 call antilost_buzzer_configuration 
+3516 da6046f0 arg mem_antl_key_led_style ,regc 
+3517 20403584 call antilost_led_configuration 
+3518 68014682 fetch 2 ,mem_ui_state_map 
+3519 c304b532 bbit0 ui_state_ble_connected ,antilost_butten_down_while_disconn 
+351a 20203521 branch antilost_butten_down_after_conn 
+
+antilost_key0_up:
+351b 70479d00 jam 0 ,mem_antl_key_state 
+351c 2020351d branch antilost_double_click_timer_init 
+
+antilost_double_click_timer_init:
+351d 6800c79a fetch 1 ,mem_butten_click_cnt 
+351e c1808000 rtnne 1 
+351f 70479905 jam 5 ,mem_double_click_timer 
+3520 20600000 rtn 
+
+antilost_butten_down_after_conn:
+3521 6800c79a fetch 1 ,mem_butten_click_cnt 
+3522 1fe0fe01 pincrease 1 
+3523 6000c79a store 1 ,mem_butten_click_cnt 
+3524 c000b527 beq 1 ,antilost_click_once 
+3525 c001352b beq 2 ,antilost_click_twice 
+3526 20600000 rtn 
+
+antilost_click_once:
+3527 2040355c call antilost_alert_off 
+3528 70477101 jam opcode1_butten_click_once ,mem_antl_key0_press + 5 
+3529 da60476c arg mem_antl_key0_press ,regc 
+352a 20203544 branch antilost_prepare_data_and_send 
+
+antilost_click_twice:
+352b 70479a00 jam 0 ,mem_butten_click_cnt 
+352c 70477102 jam opcode2_butten_double_click ,mem_antl_key0_press + 5 
+352d da60476c arg mem_antl_key0_press ,regc 
+352e 20403544 call antilost_prepare_data_and_send 
+352f 6800c79e fetch 1 ,mem_antl_lost_mode 
+3530 c000b551 beq 1 ,antilost_alert_on 
+3531 20600000 rtn 
+
+antilost_butten_down_while_disconn:
+3532 68014797 fetch 2 ,mem_antl_le_sleep_timeout 
+3533 60014791 store 2 ,mem_antl_le_sleep_timer 
+3534 2040355c call antilost_alert_off 
+3535 2020358f branch antilost_fast_adv_start 
+
+antilost_cmd_parse_for_application:
+3536 44e6c019 bpatch patch19_5 ,mem_patch19 
+3537 204036fc call le_app_receive_data 
+3538 ea208000 ifetch 1 ,rega 
+3539 c001b53c beq opcode3_antl_start_alram ,antilost_on_of_alram 
+353a c003b540 beq opcode7_antl_config_alram ,antilost_configuration_for_alram 
+353b 20600000 rtn 
+
+antilost_on_of_alram:
+353c 6800c79e fetch 1 ,mem_antl_lost_mode 
+353d c0003551 beq anti_le_alarm_off ,antilost_alert_on 
+353e c000b55c beq anti_le_alarm_on ,antilost_alert_off 
+353f 20600000 rtn 
+
+antilost_configuration_for_alram:
+3540 ea408000 ifetch 1 ,regb 
+3541 c000b564 beq 1 ,antilost_set_start_alarm_after_disconn 
+3542 c0003569 beq 0 ,antilost_set_no_alarm_after_disconn 
+3543 20600000 rtn 
+
+antilost_prepare_data_and_send:
+3544 44e74019 bpatch patch19_6 ,mem_patch19 
+3545 6800c78b fetch 1 ,mem_client_characteristic_configuration_descriptor 
+3546 2feffe00 isolate1 notification_enable_bit ,pdata 
+3547 24608000 nrtn true 
+3548 1a608c06 add regc ,6 ,contr 
+3549 e8c10000 ifetch 2 ,contr 
+354a 1ff0fe00 byteswap pdata ,pdata 
+354b 1fe0f205 add pdata ,5 ,loopcnt 
+354c 1a608c03 add regc ,3 ,contr 
+354d 204036f0 call calc_check_sum_start 
+354e e0c08000 istore 1 ,contr 
+354f 1a622200 copy regc ,rega 
+3550 20207e3d branch queue_push 
+
+antilost_alert_on:
+3551 6800c759 fetch 1 ,mem_antl_power_state 
+3552 207a0000 rtn blank 
+3553 70479e01 jam 1 ,mem_antl_lost_mode 
+3554 da6046e9 arg mem_antl_alert_buzzer_stlye ,regc 
+3555 20403582 call antilost_buzzer_configuration 
+3556 da6046e2 arg mem_antl_alert_led_stlye ,regc 
+3557 20403584 call antilost_led_configuration 
+3558 70478004 jam opcode4_current_alarm_state ,mem_antl_key0_release + 5 
+3559 70478301 jam 1 ,mem_antl_key0_release + 8 
+355a da60477b arg mem_antl_key0_release ,regc 
+355b 20203544 branch antilost_prepare_data_and_send 
+
+antilost_alert_off:
+355c 6800c79e fetch 1 ,mem_antl_lost_mode 
+355d 207a0000 rtn blank 
+355e 70479e00 jam 0 ,mem_antl_lost_mode 
+355f 20403586 call antilost_led_buzzer_stop_blink 
+3560 70478004 jam opcode4_current_alarm_state ,mem_antl_key0_release + 5 
+3561 70478300 jam 0 ,mem_antl_key0_release + 8 
+3562 da60477b arg mem_antl_key0_release ,regc 
+3563 20203544 branch antilost_prepare_data_and_send 
+
+antilost_set_start_alarm_after_disconn:
+3564 70479f01 jam 1 ,mem_alarm_config 
+3565 70478007 jam opcode7_antl_config_alram ,mem_antl_key0_release + 5 
+3566 70478301 jam 1 ,mem_antl_key0_release + 8 
+3567 da60477b arg mem_antl_key0_release ,regc 
+3568 20203544 branch antilost_prepare_data_and_send 
+
+antilost_set_no_alarm_after_disconn:
+3569 70479f00 jam 0 ,mem_alarm_config 
+356a 70478007 jam opcode7_antl_config_alram ,mem_antl_key0_release + 5 
+356b 70478300 jam 0 ,mem_antl_key0_release + 8 
+356c da60477b arg mem_antl_key0_release ,regc 
+356d 20203544 branch antilost_prepare_data_and_send 
+
+antilost_on_off_alarm_after_disconn:
+356e 6800c79f fetch 1 ,mem_alarm_config 
+356f 207a0000 rtn blank 
+3570 20203551 branch antilost_alert_on 
+
+antilost_notify_alarm_config_first_time:
+3571 ea210000 ifetch 2 ,rega 
+3572 6001478b store 2 ,mem_client_characteristic_configuration_descriptor 
+3573 2feffe00 isolate1 notification_enable_bit ,pdata 
+3574 24608000 nrtn true 
+3575 6800c7a0 fetch 1 ,mem_alarm_config_notfy_cnt 
+3576 207a0000 rtn blank 
+3577 7047a000 jam 0 ,mem_alarm_config_notfy_cnt 
+3578 680447b6 fetch 8 ,mem_antl_le_interval_min 
+3579 60044496 store 8 ,mem_le_interval_min 
+357a 70479002 jam 2 ,mem_antl_send_updata_le_param_timer 
+357b 204035af call antilost_battery_process 
+357c 204035b9 call antilost_battery_calculate_end 
+357d 70478007 jam opcode7_antl_config_alram ,mem_antl_key0_release + 5 
+357e 6800c79f fetch 1 ,mem_alarm_config 
+357f 6000c783 store 1 ,mem_antl_key0_release + 8 
+3580 da60477b arg mem_antl_key0_release ,regc 
+3581 20203544 branch antilost_prepare_data_and_send 
+
+antilost_buzzer_configuration:
+3582 da200001 arg 1 ,rega 
+3583 20203585 branch antilost_configuration_common 
+
+antilost_led_configuration:
+3584 da200000 arg 0 ,rega 
+
+antilost_configuration_common:
+3585 2020358c branch antilost_led_buzzer_style_configuration 
+
+antilost_led_buzzer_stop_blink:
+3586 da200000 arg 0 ,rega 
+3587 20407d19 call ui_led_blink_stop_global 
+3588 da200001 arg 1 ,rega 
+3589 20407d19 call ui_led_blink_stop_global 
+358a 6800c7a1 fetch 1 ,mem_buzzer_pwm_conf 
+358b 202069d7 branch pwm_disable 
+
+antilost_led_buzzer_style_configuration:
+358c 20407d04 call calc_curr_struct_prt 
+358d df200007 arg 7 ,loopcnt 
+358e 20207d26 branch ui_led_set_style_global + 2 
+
+antilost_fast_adv_start:
+358f da6046b8 arg mem_antl_fast_adv_led_style ,regc 
+3590 da40469a arg mem_antl_lpm_interval ,regb 
+
+antilost_adv_start_common:
+3591 20403596 call antilost_adv_interval_lpm_interval_set 
+3592 20403584 call antilost_led_configuration 
+3593 68014795 fetch 2 ,mem_antl_fast_adv_timeout 
+3594 60014793 store 2 ,mem_antl_fast_adv_timer 
+3595 202033fa branch app_ble_start_adv 
+
+antilost_adv_interval_lpm_interval_set:
+3596 ea410000 ifetch 2 ,regb 
+3597 60014154 store 2 ,mem_lpm_interval 
+3598 e8c10000 ifetch 2 ,contr 
+3599 60014482 store 2 ,mem_le_adv_interval 
+359a 20600000 rtn 
+
+antilost_buzzer_pwm_init:
+359b da200000 arg 0 ,rega 
+359c 204069a6 call pwm_init 
+359d 680347a1 fetch 6 ,mem_buzzer_pwm_conf 
+359e 60030a9a store 6 ,mem_pdatatemp 
+359f 204069ae call pwm_out_set 
+35a0 6800c7a1 fetch 1 ,mem_buzzer_pwm_conf 
+35a1 202069d7 branch pwm_disable 
+
+antilost_led_on_cb:
+35a2 70479b01 jam 1 ,mem_antl_led_state 
+35a3 20600000 rtn 
+
+antilost_led_off_cb:
+35a4 70479b00 jam 0 ,mem_antl_led_state 
+35a5 20600000 rtn 
+
+antilost_buzzer_off:
+35a6 70479c00 jam 0 ,mem_antl_buzzer_state 
+35a7 6800c7a1 fetch 1 ,mem_buzzer_pwm_conf 
+35a8 202069d7 branch pwm_disable 
+
+antilost_buzzer_on:
+35a9 70479c01 jam 1 ,mem_antl_buzzer_state 
+35aa 680347a1 fetch 6 ,mem_buzzer_pwm_conf 
+35ab 60030a9a store 6 ,mem_pdatatemp 
+35ac 202069ae branch pwm_out_set 
+
+antilost_adc_init:
+35ad 70422d00 jam 0 ,mem_adc_config_flag 
+35ae 202068a8 branch adc_init_data 
+
+antilost_battery_process:
+35af 204068eb call adc_set_mode 
+35b0 20406908 call vdd_calculate_by_mode 
+35b1 600147b0 store 2 ,mem_battery_current_voltage 
+35b2 da2047aa arg mem_battery_calculate_set ,rega 
+35b3 20406930 call adc_bat_percent_lowpower_out 
+35b4 6000c7a9 store 1 ,mem_voltage_remain_percent 
+35b5 c00035be beq 0 ,antilost_low_battery 
+35b6 1fe67c64 sub pdata ,0x64 ,null 
+35b7 242135bc nbranch antilost_full_battery ,positive 
+35b8 6000c783 store 1 ,mem_antl_key0_release + 8 
+
+antilost_battery_calculate_end:
+35b9 70478005 jam opcode5_batter_information ,mem_antl_key0_release + 5 
+35ba da60477b arg mem_antl_key0_release ,regc 
+35bb 20203544 branch antilost_prepare_data_and_send 
+
+antilost_full_battery:
+35bc 70478364 jam 100 ,mem_antl_key0_release + 8 
+35bd 202035b9 branch antilost_battery_calculate_end 
+
+antilost_low_battery:
+35be 2020341a branch app_button_long_pressed 
+
+car_init:
+35bf 20758000 rtn wake 
+35c0 68108081 hfetch 1 ,core_gpio_sel1 
+35c1 1fe17ef0 and_into 0xf0 ,pdata 
+35c2 60108081 hstore 1 ,core_gpio_sel1 
+35c3 58003631 setarg car_le_before_hibernate 
+35c4 600141eb store 2 ,mem_cb_before_hibernate 
+35c5 58003633 setarg car_le_process_lpm_before 
+35c6 600141ed store 2 ,mem_cb_before_lpm 
+35c7 5800340a setarg app_enter_hibernate 
+35c8 600141f7 store 2 ,mem_cb_discovry_timeout 
+35c9 58003635 setarg car_scale_process_idle 
+35ca 600141f3 store 2 ,mem_cb_idle_process 
+35cb 5800364b setarg car_scale_process_bb_event 
+35cc 600141f5 store 2 ,mem_cb_bb_event_process 
+35cd 580033d0 setarg app_get_lpm_wake_lock 
+35ce 600141e9 store 2 ,mem_cb_check_wakelock 
+35cf 580036f6 setarg car_le_receive_data 
+35d0 600141f9 store 2 ,mem_cb_att_write 
+35d1 5800367a setarg car_le_bb_event_timer 
+35d2 600141fd store 2 ,mem_cb_event_timer 
+35d3 20402c7a call g24_head_ptr2regc 
+35d4 58003722 setarg car_24g_receive_data 
+35d5 1a608ade add regc ,offset_24g_cb_rxdata_type1 ,contw 
+35d6 e0a10000 istore 2 ,contw 
+35d7 580035ed setarg car_power_off_signal 
+35d8 6001475b store 2 ,mem_remote_car_power_off_cb 
+35d9 580035ef setarg car_soft_switch_power_on_signal 
+35da 6001475f store 2 ,mem_remote_car_power_standby_cb 
+35db 44e7c019 bpatch patch19_7 ,mem_patch19 
+35dc 20403628 call car_init_environment 
+35dd 20407e38 call queue_init 
+35de 70417202 jam 2 ,mem_lpm_mult 
+35df 7049f600 jam power_on ,mem_car_24g_received_pac 
+35e0 6800c7cb fetch 1 ,mem_car_config_soft_switch_enable 
+35e1 6000c69a store 1 ,mem_car_hard_soft_switch 
+35e2 c00035ee beq hard_switch ,car_hard_switch_power_on_signal 
+35e3 6800c7cc fetch 1 ,mem_car_config_soft_switch_gpio 
+35e4 6000c686 store 1 ,mem_ui_button_gpio 
+35e5 70436e00 jam off ,mem_le_adv_enable 
+
+car_soft_switch_power_on_init:
+35e6 2040360f call car_ui_led_init 
+35e7 20407cd3 call ui_button_init 
+35e8 20407cdd call ui_button_polling 
+35e9 7047f301 jam power_starting ,mem_car_power_state 
+35ea 68014682 fetch 2 ,mem_ui_state_map 
+35eb c3860000 rtnbit1 ui_state_btn_down 
+35ec 2020340a branch app_enter_hibernate 
+
+car_power_off_signal:
+35ed 2020360f branch car_ui_led_init 
+
+car_hard_switch_power_on_signal:
+35ee 7047f302 jam power_standby ,mem_car_power_state 
+
+car_soft_switch_power_on_signal:
+35ef 70436e01 jam on ,mem_le_adv_enable 
+35f0 2040360f call car_ui_led_init 
+35f1 da200000 arg 0 ,rega 
+35f2 20407d1e call ui_led_blink_start_global 
+35f3 58000020 setarg fast_adv_interval_value_car 
+35f4 204046f0 call shutter_ble_adv_interval_set 
+
+car_le_modified_name_adv:
+35f5 d8a043b7 arg mem_le_name + 7 ,contw 
+35f6 6800c4a0 fetch 1 ,mem_le_lap 
+
+car_name_loop:
+35f7 1fe104f0 and pdata ,0xF0 ,temp 
+35f8 18518400 rshift4 temp ,temp 
+35f9 20403609 call car_hex_to_ascii 
+35fa e0a88000 istoret 1 ,contw 
+35fb 1fe1040f and pdata ,0x0F ,temp 
+35fc 20403609 call car_hex_to_ascii 
+35fd e0a88000 istoret 1 ,contw 
+35fe 204057a6 call le_modified_name_att_list 
+35ff 6808c3af fetcht 1 ,mem_le_name_len 
+3600 18427200 copy temp ,loopcnt 
+3601 d8a04372 arg mem_le_adv_data + 2 ,contw 
+3602 d8c043b0 arg mem_le_name ,contr 
+3603 20407f01 call memcpy 
+
+car_le_modified_name_scan:
+3604 6808c3af fetcht 1 ,mem_le_name_len 
+3605 18427200 copy temp ,loopcnt 
+3606 d8a04392 arg mem_le_scan_data + 2 ,contw 
+3607 d8c043b0 arg mem_le_name ,contr 
+3608 20207f01 branch memcpy 
+
+car_hex_to_ascii:
+3609 18467c09 sub temp ,9 ,null 
+360a 2021360d branch car_hex_num ,positive 
+360b 18408437 add temp ,55 ,temp 
+360c 20600000 rtn 
+
+car_hex_num:
+360d 18408430 add temp ,48 ,temp 
+360e 20600000 rtn 
+
+car_ui_led_init:
+360f 6800c7c0 fetch 1 ,mem_car_config_blood_led1_gpio 
+3610 c0ffb621 bne invalid_pin_num ,car_blood_led_gpio_set 
+
+car_ui_led_init_1:
+3611 6800c7be fetch 1 ,mem_car_config_pairing_led_gpio 
+3612 c0ffb624 bne invalid_pin_num ,car_pairing_led_gpio_set 
+
+car_ui_led_init_2:
+3613 6800c7c9 fetch 1 ,mem_car_config_low_voltage_led_gpio 
+3614 c0ffb626 bne invalid_pin_num ,car_low_voltage_led_gpio_set 
+
+car_ui_led_init_3:
+3615 6800c72c fetch 1 ,mem_car_led_num 
+3616 1fe27200 copy pdata ,loopcnt 
+3617 5800472d setarg mem_car_led_map 
+3618 1fe22200 copy pdata ,rega 
+
+car_in_lp1:
+3619 1a220c00 copy rega ,contr 
+361a e8c08000 ifetch 1 ,contr 
+361b 18c22200 copy contr ,rega 
+361c c07fb61f beq invalid_pin_num ,car_in_lp1_end 
+361d 1fe20400 copy pdata ,temp 
+361e 2040680e call gpio_config_output 
+
+car_in_lp1_end:
+361f c2003619 loop car_in_lp1 
+
+car_ui_led_init_end:
+3620 20600000 rtn 
+
+car_blood_led_gpio_set:
+3621 680447c0 fetch 8 ,mem_car_config_blood_led1_gpio 
+3622 6004472f store 8 ,mem_car_led_map + 2 
+3623 20203611 branch car_ui_led_init_1 
+
+car_pairing_led_gpio_set:
+3624 6000c72d store 1 ,mem_car_led_map 
+3625 20203613 branch car_ui_led_init_2 
+
+car_low_voltage_led_gpio_set:
+3626 6000c72e store 1 ,mem_car_led_map + 1 
+3627 20203615 branch car_ui_led_init_3 
+
+car_init_environment:
+3628 da200000 arg 0 ,rega 
+3629 204069a6 call pwm_init 
+362a 204037e4 call car_ir_rx_init 
+362b 20402c7d call g24_receive_process_init 
+362c 2020362d branch car_init_adc_hvin 
+
+car_init_adc_hvin:
+362d 7047cf64 jam 100 ,mem_car_notify_vdd_value_last 
+362e 6800c7c9 fetch 1 ,mem_car_config_low_voltage_led_gpio 
+362f 6000c744 store 1 ,mem_car_style2_struct_led_gpio 
+3630 202068a8 branch adc_init_data 
+
+car_le_before_hibernate:
+3631 20406835 call gpio_set_before_lpm_common 
+3632 2020696c branch keyscan_process_lpm_before 
+
+car_le_process_lpm_before:
+3633 2020696c branch keyscan_process_lpm_before 
+
+car_key_scan_process:
+3634 20206978 branch keyscan_key_process 
+
+car_scale_process_idle:
+3635 20403642 call car_le_send_packet 
+3636 204037ee call car_ir_receive_process 
+3637 20403639 call car_g24_status_process 
+3638 20203634 branch car_key_scan_process 
+
+car_g24_status_process:
+3639 68014682 fetch 2 ,mem_ui_state_map 
+363a c3848000 rtnbit1 ui_state_ble_connected 
+363b 6800c9f6 fetch 1 ,mem_car_24g_received_pac 
+363c c000b63e beq work_paired ,car_g24_connected_event 
+363d 20600000 rtn 
+
+car_g24_connected_event:
+363e 6800c7ea fetch 1 ,mem_car_24g_status 
+363f c1008000 rtneq work_paired 
+3640 7047ea01 jam work_paired ,mem_car_24g_status 
+3641 20203654 branch car_g24_connected 
+
+car_le_send_packet:
+3642 68014682 fetch 2 ,mem_ui_state_map 
+3643 c4048000 rtnbit0 ui_state_ble_connected 
+3644 20405892 call le_fifo_check_nearly_full 
+3645 247a0000 nrtn blank 
+3646 da204718 arg mem_car_pop_queue_buff ,rega 
+3647 20407e54 call queue_pop 
+3648 24740000 nrtn user 
+3649 d8c04718 arg mem_car_pop_queue_buff ,contr 
+364a 20204746 branch le_send_notify_from_list 
+
+car_scale_process_bb_event:
+364b 1a627e00 copy regc ,pdata 
+364c c016b431 beq bt_evt_button_up ,app_event_button_up 
+364d c008341a beq bt_evt_button_long_pressed ,app_button_long_pressed 
+364e c00a3651 beq bt_evt_le_connected ,car_scale_event_le_conn 
+364f c00ab660 beq bt_evt_le_disconnected ,car_scale_event_le_discon 
+3650 20600000 rtn 
+
+car_scale_event_le_conn:
+3651 58000000 setarg disable_24g 
+3652 20403220 call g24_store_mem_24g_mode 
+3653 20203656 branch car_scale_process_conn 
+
+car_g24_connected:
+3654 680147eb fetch 2 ,mem_car_24g_no_data_timeout_count 
+3655 600147ed store 2 ,mem_car_24g_no_data_timeout_timer 
+
+car_scale_process_conn:
+3656 7047ce14 jam 0x14 ,mem_car_notify_vdd_timer 
+3657 70409100 jam 0 ,mem_lpm_mode 
+3658 204033f8 call app_ble_stop_adv 
+3659 20403416 call app_lpm_mult_enable 
+365a 6800c7bd fetch 1 ,mem_car_config_pairing_led_conn_status 
+365b c000b65e beq 0x01 ,car_pairing_led_conn_status_setting 
+
+car_scale_process_conn_next:
+365c da200000 arg 0 ,rega 
+365d 20207d14 branch ui_led_on_global 
+
+car_pairing_led_conn_status_setting:
+365e da200000 arg 0 ,rega 
+365f 20207d19 branch ui_led_blink_stop_global 
+
+car_scale_event_le_discon:
+3660 58000002 setarg rx_24g 
+3661 20403220 call g24_store_mem_24g_mode 
+
+car_g24_disconnect:
+3662 58000000 setarg 0 
+3663 6002c79c store 5 ,mem_car_led_control 
+3664 58000004 setarg 4 
+3665 204069d7 call pwm_disable 
+3666 58000005 setarg 5 
+3667 204069d7 call pwm_disable 
+3668 58000014 setarg 20 
+3669 204069d7 call pwm_disable 
+366a 58000015 setarg 21 
+366b 204069d7 call pwm_disable 
+366c 58000016 setarg 22 
+366d 204069d7 call pwm_disable 
+366e 58000007 setarg 7 
+366f 204069d7 call pwm_disable 
+3670 20407e38 call queue_init 
+3671 70475e0a jam 10 ,mem_motor1_speed 
+3672 7047600a jam 10 ,mem_motor2_speed 
+3673 7047620a jam 10 ,mem_motor3_speed 
+3674 70417202 jam 2 ,mem_lpm_mult 
+3675 da200000 arg 0 ,rega 
+3676 20407d1e call ui_led_blink_start_global 
+3677 58000020 setarg fast_adv_interval_value_car 
+3678 204046f0 call shutter_ble_adv_interval_set 
+3679 202033fa branch app_ble_start_adv 
+
+car_le_bb_event_timer:
+367a 2040373b call car_moto1_blank_data_timer 
+367b 2040373e call car_moto2_blank_data_timer 
+367c 20403741 call car_moto3_blank_data_timer 
+367d 2040337b call app_power_timer 
+367e 204036c8 call car_led_control_timer 
+367f 204036a1 call car_notify_vdd_timer 
+3680 2040368a call car_24g_no_data_timeout_timer 
+3681 20403683 call car_ir_breakdown_timer 
+3682 2020368f branch car_attack_shake_timer 
+
+car_ir_breakdown_timer:
+3683 da60479a arg mem_car_ir_breakdown_check_timer ,regc 
+3684 da403686 arg car_ir_breakdown_timeout ,regb 
+3685 2020336d branch timer_single_step 
+
+car_ir_breakdown_timeout:
+3686 20403847 call car_ir_gpio_get_status 
+3687 24608000 nrtn true 
+3688 70479b01 jam 1 ,mem_car_ir_breakdown_flag 
+3689 20600000 rtn 
+
+car_24g_no_data_timeout_timer:
+368a da6047ed arg mem_car_24g_no_data_timeout_timer ,regc 
+368b da40368d arg car_24g_no_data_timer_timeout ,regb 
+368c 20203374 branch timer_single_step_2b 
+
+car_24g_no_data_timer_timeout:
+368d 7047ea02 jam work_search ,mem_car_24g_status 
+368e 20203662 branch car_g24_disconnect 
+
+car_attack_shake_timer:
+368f da6047f1 arg mem_car_attack_shake_timer ,regc 
+3690 da403692 arg car_attack_shake ,regb 
+3691 2020336d branch timer_single_step 
+
+car_attack_shake:
+3692 6800c7f2 fetch 1 ,mem_car_attack_shake_flag 
+3693 203a369e branch car_attack_shake_stop ,blank 
+3694 7047f102 jam 2 ,mem_car_attack_shake_timer 
+3695 7047f200 jam 0 ,mem_car_attack_shake_flag 
+3696 58000a02 setarg 0x0a02 
+3697 60014752 store 2 ,mem_le_receive_payload 
+3698 6800c7b9 fetch 1 ,mem_car_config_device_select 
+3699 c001b69b beq device_battle_tank ,car_attack_shake_front_battle_tank 
+
+car_attack_shake_front_battle_car:
+369a 20203762 branch car_motor_control 
+
+car_attack_shake_front_battle_tank:
+369b 58000a02 setarg 0x0a02 
+369c 60014754 store 2 ,mem_le_receive_payload + 2 
+369d 20203762 branch car_motor_control 
+
+car_attack_shake_stop:
+369e 58000000 setarg 0 
+369f 60024752 store 4 ,mem_le_receive_payload 
+36a0 20203762 branch car_motor_control 
+
+car_notify_vdd_timer:
+36a1 6800c7c8 fetch 1 ,mem_car_config_bat_notify_enable 
+36a2 207a0000 rtn blank 
+36a3 68014682 fetch 2 ,mem_ui_state_map 
+36a4 c304b6c6 bbit0 ui_state_ble_connected ,car_low_bat_led_off 
+36a5 da6047ce arg mem_car_notify_vdd_timer ,regc 
+36a6 da4036a8 arg car_notify_vdd ,regb 
+36a7 2020336d branch timer_single_step 
+
+car_notify_vdd:
+36a8 6800c7cd fetch 1 ,mem_car_notify_vdd_count 
+36a9 6000c7ce store 1 ,mem_car_notify_vdd_timer 
+36aa 6800c7d1 fetch 1 ,mem_car_working_flag 
+36ab 247a0000 nrtn blank 
+
+car_read_hvin:
+36ac 204068eb call adc_set_mode 
+36ad 20406908 call vdd_calculate_by_mode 
+36ae 600147e8 store 2 ,mem_vdd_now_vol 
+36af da2047e2 arg mem_vdd_calculate_set ,rega 
+36b0 20406930 call adc_bat_percent_lowpower_out 
+36b1 6808c7cf fetcht 1 ,mem_car_notify_vdd_value_last 
+36b2 98467c00 isub temp ,null 
+36b3 202136b6 branch car_notify_vdd_next2 ,positive 
+36b4 6000c7cf store 1 ,mem_car_notify_vdd_value_last 
+36b5 1fe20400 copy pdata ,temp 
+
+car_notify_vdd_next2:
+36b6 6008c7d0 storet 1 ,mem_car_notify_vdd_percent 
+36b7 6800c7ca fetch 1 ,mem_car_config_low_voltage_percent 
+36b8 98467c00 isub temp ,null 
+36b9 204136c1 call car_enter_low_bat ,positive 
+36ba 6008c7db storet 1 ,mem_notify_bat_payload 
+36bb df200006 arg 6 ,loopcnt 
+36bc d8c047d6 arg mem_notify_bat_head ,contr 
+36bd 204036f0 call calc_check_sum_start 
+36be 6000c7dc store 1 ,mem_notify_bat_check_sum 
+36bf da2047d3 arg mem_notify_bat_packet ,rega 
+36c0 20207e3d branch queue_push 
+
+car_enter_low_bat:
+36c1 6800c7d2 fetch 1 ,mem_low_bat_flag 
+36c2 247a0000 nrtn blank 
+36c3 7047d201 jam 1 ,mem_low_bat_flag 
+36c4 da200001 arg 1 ,rega 
+36c5 20207d1e branch ui_led_blink_start_global 
+
+car_low_bat_led_off:
+36c6 da200001 arg 1 ,rega 
+36c7 20207d19 branch ui_led_blink_stop_global 
+
+car_led_control_timer:
+36c8 da6047a4 arg mem_car_led_control_timer ,regc 
+36c9 da4036cb arg car_led_control ,regb 
+36ca 2020336d branch timer_single_step 
+
+car_led_control:
+36cb 7047a405 jam 5 ,mem_car_led_control_timer 
+36cc 7047a600 jam 0 ,mem_car_led_no 
+36cd 6800c7a5 fetch 1 ,mem_car_led_blink_status 
+36ce c000b6ee beq led_on ,car_led_control_blink_off 
+36cf c00036ec beq led_off ,car_led_control_blink_on 
+
+car_led_control_set:
+36d0 d8c0479c arg mem_car_led_control ,contr 
+36d1 18c22200 copy contr ,rega 
+36d2 df200008 arg 8 ,loopcnt 
+
+car_led_control_timer_next:
+36d3 1a220c00 copy rega ,contr 
+36d4 e8c08000 ifetch 1 ,contr 
+36d5 18c22200 copy contr ,rega 
+36d6 c00036e3 beq led_off ,car_led_control_off 
+36d7 c000b6e6 beq led_on ,car_led_control_on 
+36d8 c00136e9 beq led_blink ,car_led_control_blink 
+
+car_led_control_timer_next_2:
+36d9 6800c7a6 fetch 1 ,mem_car_led_no 
+36da 1fe0fe01 increase 1 ,pdata 
+36db 6000c7a6 store 1 ,mem_car_led_no 
+36dc c20036d3 loop car_led_control_timer_next 
+36dd 20600000 rtn 
+
+car_led_switch:
+36de 6800c7a6 fetch 1 ,mem_car_led_no 
+36df da4047c0 arg mem_car_config_blood_led_gpio ,regb 
+36e0 9a40a400 iadd regb ,regb 
+36e1 ea488000 ifetcht 1 ,regb 
+36e2 20600000 rtn 
+
+car_led_control_off:
+36e3 204036de call car_led_switch 
+36e4 20406825 call gpio_out_inactive 
+36e5 202036d9 branch car_led_control_timer_next_2 
+
+car_led_control_on:
+36e6 204036de call car_led_switch 
+36e7 20406829 call gpio_out_active 
+36e8 202036d9 branch car_led_control_timer_next_2 
+
+car_led_control_blink:
+36e9 6800c7a5 fetch 1 ,mem_car_led_blink_status 
+36ea c000b6e3 beq led_on ,car_led_control_off 
+36eb 202036e6 branch car_led_control_on 
+
+car_led_control_blink_on:
+36ec 7047a501 jam led_on ,mem_car_led_blink_status 
+36ed 202036d0 branch car_led_control_set 
+
+car_led_control_blink_off:
+36ee 7047a500 jam led_off ,mem_car_led_blink_status 
+36ef 202036d0 branch car_led_control_set 
+
+calc_check_sum_start:
+36f0 da200000 arg 0 ,rega 
+
+calc_check_sum_loop:
+36f1 e8c08000 ifetch 1 ,contr 
+36f2 9a20a200 iadd rega ,rega 
+36f3 c20036f1 loop calc_check_sum_loop 
+
+calc_check_sum_and:
+36f4 1a217eff and rega ,0xff ,pdata 
+36f5 20600000 rtn 
+
+car_le_receive_data:
+36f6 68008477 fetch 1 ,mem_le_att_opcode 
+36f7 c00936f9 beq attop_write_request ,car_le_parse_att_write_request 
+36f8 20600000 rtn 
+
+car_le_parse_att_write_request:
+36f9 68010478 fetch 2 ,mem_le_att_handle 
+36fa c00a3710 beq att_car_control_handle ,car_control_le_receive 
+36fb 20600000 rtn 
+
+le_app_receive_data:
+36fc 44e8401a bpatch patch1a_0 ,mem_patch1a 
+36fd ea228000 ifetch 5 ,rega 
+36fe 60028b12 store 5 ,mem_app_receive_temp 
+36ff 68010b12 fetch 2 ,mem_app_receive_temp 
+3700 d8406b5a arg le_receive_packet_head ,temp 
+3701 98467c00 isub temp ,null 
+3702 24628000 nrtn zero 
+3703 68010b15 fetch 2 ,mem_app_receive_temp + 3 
+3704 1ff0fe00 byteswap pdata ,pdata 
+3705 60010b15 store 2 ,mem_app_receive_temp + 3 
+3706 1fe27200 copy pdata ,loopcnt 
+3707 1a20a205 increase 5 ,rega 
+3708 1a220c00 copy rega ,contr 
+3709 d8a00b17 arg mem_app_receive_temp + 5 ,contw 
+370a 20407f01 call memcpy 
+370b e8c08000 ifetch 1 ,contr 
+370c 60008b21 store 1 ,mem_app_receive_temp + 15 
+370d da200b14 arg mem_app_receive_temp + 2 ,rega 
+370e da400b17 arg mem_app_receive_temp + 5 ,regb 
+370f 20600000 rtn 
+
+car_control_le_receive:
+3710 58000000 setarg 0 
+3711 6002c752 store 5 ,mem_le_receive_payload 
+3712 6002c757 store 5 ,mem_le_receive_payload + 5 
+3713 204036fc call le_app_receive_data 
+3714 1a420c00 copy regb ,contr 
+3715 d8a04752 arg mem_le_receive_payload ,contw 
+3716 df20000a arg 10 ,loopcnt 
+3717 20407f01 call memcpy 
+
+car_receive_cmd_select:
+3718 44e8c01a bpatch patch1a_1 ,mem_patch1a 
+3719 ea208000 ifetch 1 ,rega 
+371a c001374a beq car_cmd_old_car_control ,car_drive_old 
+371b c001b75c beq car_cmd_old_speed_control ,car_speed_set_old 
+371c c0023762 beq car_cmd_l_r_motor_control ,car_motor_control 
+371d c002b762 beq car_cmd_f_b_motor_control ,car_motor_control 
+371e c00337b1 beq car_cmd_ir_control ,car_ir_data_rx_from_app 
+371f c003b849 beq car_cmd_led_control ,car_led_control_receive 
+3720 c004384c beq car_cmd_device_info ,car_info_request 
+3721 20600000 rtn 
+
+car_24g_receive_data:
+3722 68014682 fetch 2 ,mem_ui_state_map 
+3723 c3848000 rtnbit1 ui_state_ble_connected 
+3724 680147eb fetch 2 ,mem_car_24g_no_data_timeout_count 
+3725 600147ed store 2 ,mem_car_24g_no_data_timeout_timer 
+3726 7049f601 jam work_paired ,mem_car_24g_received_pac 
+3727 5800010c setarg offset_24g_rxdata_temp_add3 
+3728 204032cd call g24_set_rega 
+3729 20403710 call car_control_le_receive 
+372a 68008b14 fetch 1 ,mem_app_receive_temp + 2 
+372b c002372e beq car_cmd_l_r_motor_control ,car_24g_receive_data_next 
+372c c002b72e beq car_cmd_f_b_motor_control ,car_24g_receive_data_next 
+372d 20600000 rtn 
+
+car_24g_receive_data_next:
+372e 6800c752 fetch 1 ,mem_le_receive_payload 
+372f 245a3735 ncall car_moto1_enable_blank_data_timer ,blank 
+3730 6800c754 fetch 1 ,mem_le_receive_payload + 2 
+3731 245a3737 ncall car_moto2_enable_blank_data_timer ,blank 
+3732 6800c756 fetch 1 ,mem_le_receive_payload + 4 
+3733 245a3739 ncall car_moto3_enable_blank_data_timer ,blank 
+3734 20600000 rtn 
+
+car_moto1_enable_blank_data_timer:
+3735 7049f305 jam 5 ,mem_car_moto1_blank_timer 
+3736 20600000 rtn 
+
+car_moto2_enable_blank_data_timer:
+3737 7049f405 jam 5 ,mem_car_moto2_blank_timer 
+3738 20600000 rtn 
+
+car_moto3_enable_blank_data_timer:
+3739 7049f505 jam 5 ,mem_car_moto3_blank_timer 
+373a 20600000 rtn 
+
+car_moto1_blank_data_timer:
+373b da6049f3 arg mem_car_moto1_blank_timer ,regc 
+373c da403744 arg car_moto1_blank_data ,regb 
+373d 2020336d branch timer_single_step 
+
+car_moto2_blank_data_timer:
+373e da6049f4 arg mem_car_moto2_blank_timer ,regc 
+373f da403746 arg car_moto2_blank_data ,regb 
+3740 2020336d branch timer_single_step 
+
+car_moto3_blank_data_timer:
+3741 da6049f5 arg mem_car_moto3_blank_timer ,regc 
+3742 da403748 arg car_moto3_blank_data ,regb 
+3743 2020336d branch timer_single_step 
+
+car_moto1_blank_data:
+3744 70475200 jam 0 ,mem_le_receive_payload 
+3745 20203762 branch car_motor_control 
+
+car_moto2_blank_data:
+3746 70475400 jam 0 ,mem_le_receive_payload + 2 
+3747 20203762 branch car_motor_control 
+
+car_moto3_blank_data:
+3748 70475600 jam 0 ,mem_le_receive_payload + 4 
+3749 20203762 branch car_motor_control 
+
+car_drive_old:
+374a 2040374c call car_left_right_control_old 
+374b 2020374f branch car_front_back_control_old 
+
+car_left_right_control_old:
+374c 6800c752 fetch 1 ,mem_le_receive_payload 
+374d 6000c75f store 1 ,mem_motor2_status 
+374e 20203773 branch car_motor2_control 
+
+car_front_back_control_old:
+374f 6800c75e fetch 1 ,mem_motor1_speed 
+3750 20403754 call car_reset_old_speed 
+3751 6800c753 fetch 1 ,mem_le_receive_payload + 1 
+3752 6000c75d store 1 ,mem_motor1_status 
+3753 20203770 branch car_motor1_control 
+
+car_reset_old_speed:
+3754 c0013758 beq speed_level_2 ,car_reset_old_speed2 
+3755 c001b75a beq speed_level_3 ,car_reset_old_speed3 
+3756 6000c75e store 1 ,mem_motor1_speed 
+3757 20600000 rtn 
+
+car_reset_old_speed2:
+3758 70475e05 jam speed_level_5 ,mem_motor1_speed 
+3759 20600000 rtn 
+
+car_reset_old_speed3:
+375a 70475e0a jam speed_level_10 ,mem_motor1_speed 
+375b 20600000 rtn 
+
+car_speed_set_old:
+375c 6800c752 fetch 1 ,mem_le_receive_payload 
+375d 20403754 call car_reset_old_speed 
+375e 6800c75e fetch 1 ,mem_motor1_speed 
+375f 2040379e call car_motor_speed_duty_setting 
+3760 204037a1 call car_motor_speed_duty_transform 
+3761 202069c4 branch pwm_pwm0_duty_set 
+
+car_motor_control:
+3762 6800c7f0 fetch 1 ,mem_car_24g_go_die_flag 
+3763 247a0000 nrtn blank 
+3764 68034752 fetch 6 ,mem_le_receive_payload 
+3765 6003475d store 6 ,mem_motor1_status 
+3766 6800c75e fetch 1 ,mem_motor1_speed 
+3767 6808c760 fetcht 1 ,mem_motor2_speed 
+3768 98417e00 iand temp ,pdata 
+3769 6808c762 fetcht 1 ,mem_motor3_speed 
+376a 98417e00 iand temp ,pdata 
+376b 205a3779 call car_motor_working_flag ,blank 
+376c 44e9401a bpatch patch1a_2 ,mem_patch1a 
+376d 20403770 call car_motor1_control 
+376e 20403773 call car_motor2_control 
+376f 20203776 branch car_motor3_control 
+
+car_motor1_control:
+3770 da404763 arg mem_motor1_pwm_set ,regb 
+3771 d8c0475d arg mem_motor1_status ,contr 
+3772 2020377b branch car_motor_status_select 
+
+car_motor2_control:
+3773 da40476b arg mem_motor2_pwm_set ,regb 
+3774 d8c0475f arg mem_motor2_status ,contr 
+3775 2020377b branch car_motor_status_select 
+
+car_motor3_control:
+3776 da404773 arg mem_motor3_pwm_set ,regb 
+3777 d8c04761 arg mem_motor3_status ,contr 
+3778 2020377b branch car_motor_status_select 
+
+car_motor_working_flag:
+3779 7047d100 jam 0 ,mem_car_working_flag 
+377a 20600000 rtn 
+
+car_motor_status_select:
+377b e8c08000 ifetch 1 ,contr 
+377c c0003787 beq motor_stop ,car_motor_stop 
+377d c000b780 beq go_front ,car_motor_positive 
+377e c0013782 beq go_back ,car_motor_negative 
+377f 20600000 rtn 
+
+car_motor_positive:
+3780 70477b00 jam 0 ,mem_motor_select_p_n 
+3781 20203783 branch car_motor_negative + 1 
+
+car_motor_negative:
+3782 70477b01 jam 1 ,mem_motor_select_p_n 
+3783 e8c08000 ifetch 1 ,contr 
+3784 6000c77d store 1 ,mem_car_motor_speed 
+3785 ea440000 ifetch 8 ,regb 
+3786 2020378c branch car_motor_work 
+
+car_motor_stop:
+3787 ea408000 ifetch 1 ,regb 
+3788 204069d7 call pwm_disable 
+3789 1a40a401 increase 1 ,regb 
+378a ea408000 ifetch 1 ,regb 
+378b 202069d7 branch pwm_disable 
+
+car_motor_work:
+378c 6004477e store 8 ,mem_motor_pwm_pin1_set 
+378d 7047d101 jam 1 ,mem_car_working_flag 
+378e 6800c77b fetch 1 ,mem_motor_select_p_n 
+378f c000379a beq 0 ,car_motor_select_positive 
+
+car_motor_select_negative:
+3790 6800c77f fetch 1 ,mem_motor_pwm_pin2_set 
+3791 6000c780 store 1 ,mem_motor_pwm_pin_set 
+3792 6800c77e fetch 1 ,mem_motor_pwm_pin1_set 
+
+car_motor_work_next:
+3793 204069d7 call pwm_disable 
+3794 6800c77d fetch 1 ,mem_car_motor_speed 
+3795 2040379e call car_motor_speed_duty_setting 
+3796 6000c785 store 1 ,mem_motor_pwm_dute_set 
+3797 68034780 fetch 6 ,mem_motor_pwm_pin_set 
+3798 60030a9a store 6 ,mem_pdatatemp 
+3799 202069ae branch pwm_out_set 
+
+car_motor_select_positive:
+379a 6800c77e fetch 1 ,mem_motor_pwm_pin1_set 
+379b 6000c780 store 1 ,mem_motor_pwm_pin_set 
+379c 6800c77f fetch 1 ,mem_motor_pwm_pin2_set 
+379d 20203793 branch car_motor_work_next 
+
+car_motor_speed_duty_setting:
+379e 1feffe05 mul32 pdata ,5 ,pdata 
+379f 1fe0fe32 add pdata ,50 ,pdata 
+37a0 20600000 rtn 
+
+car_motor_speed_duty_transform:
+37a1 d8402ee0 arg 12000 ,temp 
+37a2 984ffe00 imul32 temp ,pdata 
+37a3 1fe6fc64 div pdata ,100 
+37a4 20407f86 call wait_div_end 
+37a5 18078400 quotient temp 
+37a6 18422200 copy temp ,rega 
+37a7 58002ee0 setarg 12000 
+37a8 98462400 isub temp ,regb 
+37a9 20600000 rtn 
+
+car_ir_init:
+37aa 68108082 hfetch 1 ,core_gpio_sel2 
+37ab 79207e02 set1 2 ,pdata 
+37ac 60108082 hstore 1 ,core_gpio_sel2 
+37ad 5800009e setarg 158 
+37ae 60110068 hstore 2 ,core_pwm_pcnt4 
+37af 6011006a hstore 2 ,core_pwm_ncnt4 
+37b0 20600000 rtn 
+
+car_ir_data_rx_from_app:
+37b1 6800c7f0 fetch 1 ,mem_car_24g_go_die_flag 
+37b2 247a0000 nrtn blank 
+37b3 68014752 fetch 2 ,mem_le_receive_payload 
+37b4 60014787 store 2 ,mem_ir_data 
+37b5 6800c7ea fetch 1 ,mem_car_24g_status 
+37b6 c080b7b9 bne work_paired ,car_ir_data_tx 
+37b7 680144a0 fetch 2 ,mem_le_lap 
+37b8 60014787 store 2 ,mem_ir_data 
+
+car_ir_data_tx:
+37b9 44e9c01a bpatch patch1a_3 ,mem_patch1a 
+37ba 204037aa call car_ir_init 
+37bb 204037dc call car_ir_enable 
+37bc 5800bb80 setarg 48000 
+37bd 20402a8f call sleep 
+37be 204037e0 call car_ir_disable 
+37bf 58001c20 setarg 7200 
+37c0 20402a8f call sleep 
+37c1 df200010 arg 16 ,loopcnt 
+
+car_ir_send_loop:
+37c2 204037dc call car_ir_enable 
+37c3 68014787 fetch 2 ,mem_ir_data 
+37c4 c28037c9 bbit1 0 ,car_ir_is_bit1 
+37c5 58001c20 setarg 7200 
+37c6 20402a8f call sleep 
+37c7 204037e0 call car_ir_disable 
+37c8 202037cc branch car_ir_wait_finish 
+
+car_ir_is_bit1:
+37c9 58003840 setarg 14400 
+37ca 20402a8f call sleep 
+37cb 204037e0 call car_ir_disable 
+
+car_ir_wait_finish:
+37cc 58001c20 setarg 7200 
+37cd 20402a8f call sleep 
+37ce 68014787 fetch 2 ,mem_ir_data 
+37cf 1fe37e00 rshift pdata ,pdata 
+37d0 60014787 store 2 ,mem_ir_data 
+37d1 c20037c2 loop car_ir_send_loop 
+37d2 7047f102 jam 2 ,mem_car_attack_shake_timer 
+37d3 7047f201 jam 1 ,mem_car_attack_shake_flag 
+37d4 58000a01 setarg 0x0a01 
+37d5 60014752 store 2 ,mem_le_receive_payload 
+37d6 6800c7b9 fetch 1 ,mem_car_config_device_select 
+37d7 c001b7d9 beq device_battle_tank ,car_attack_shake_back_battle_tank 
+
+car_attack_shake_back_battle_car:
+37d8 20203762 branch car_motor_control 
+
+car_attack_shake_back_battle_tank:
+37d9 58000a01 setarg 0x0a01 
+37da 60014754 store 2 ,mem_le_receive_payload + 2 
+37db 20203762 branch car_motor_control 
+
+car_ir_enable:
+37dc 68108085 hfetch 1 ,core_gpio_key2 
+37dd 1fe1fe40 or_into 0x40 ,pdata 
+37de 60108085 hstore 1 ,core_gpio_key2 
+37df 20600000 rtn 
+
+car_ir_disable:
+37e0 68108085 hfetch 1 ,core_gpio_key2 
+37e1 1fe17ebf and_into 0xbf ,pdata 
+37e2 60108085 hstore 1 ,core_gpio_key2 
+37e3 20600000 rtn 
+
+car_ir_rx_init:
+37e4 6800c7bb fetch 1 ,mem_car_config_ir_enable 
+37e5 c1000000 rtneq 0x00 
+37e6 20402c65 call lpm_disable_exen_output 
+37e7 6808c7bc fetcht 1 ,mem_car_config_ir_rx_gpio 
+37e8 6008c786 storet 1 ,mem_ir_rx_gpio 
+37e9 204067fb call gpio_config_input 
+37ea 20403847 call car_ir_gpio_get_status 
+37eb 24608000 nrtn true 
+37ec 70479a01 jam 1 ,mem_car_ir_breakdown_check_timer 
+37ed 20600000 rtn 
+
+car_ir_receive_process:
+37ee 6800c7bb fetch 1 ,mem_car_config_ir_enable 
+37ef c1000000 rtneq flag_ir_disable 
+37f0 6800c79b fetch 1 ,mem_car_ir_breakdown_flag 
+37f1 247a0000 nrtn blank 
+37f2 68014682 fetch 2 ,mem_ui_state_map 
+37f3 c284b7f6 bbit1 ui_state_ble_connected ,car_ir_receive_process_next 
+37f4 6800c7ea fetch 1 ,mem_car_24g_status 
+37f5 c1808000 rtnne work_paired 
+
+car_ir_receive_process_next:
+37f6 44ea401a bpatch patch1a_4 ,mem_patch1a 
+37f7 20403847 call car_ir_gpio_get_status 
+37f8 24608000 nrtn true 
+37f9 58008ca0 setarg 36000 
+37fa 20402a8f call sleep 
+37fb 20403847 call car_ir_gpio_get_status 
+37fc 24608000 nrtn true 
+37fd 2040383f call car_ir_clk_get 
+
+car_ir_packet_head_wait_end:
+37fe 20403842 call car_ir_clk_check 
+37ff 24610000 nrtn positive 
+3800 20403847 call car_ir_gpio_get_status 
+3801 2020b7fe branch car_ir_packet_head_wait_end ,true 
+3802 da200000 arg 0 ,rega 
+3803 df200010 arg 16 ,loopcnt 
+3804 2040383f call car_ir_clk_get 
+
+car_ir_receive_process_loop:
+3805 20403842 call car_ir_clk_check 
+3806 24610000 nrtn positive 
+3807 20403847 call car_ir_gpio_get_status 
+3808 2420b805 nbranch car_ir_receive_process_loop ,true 
+3809 58002a30 setarg 10800 
+380a 20402a8f call sleep 
+380b 20403847 call car_ir_gpio_get_status 
+380c 2020b812 branch car_ir_get_bit1 ,true 
+
+car_ir_get_bit0:
+380d 58000000 setarg 0 
+380e 1a232200 rshift rega ,rega 
+380f 9a21a200 ior rega ,rega 
+3810 c2003805 loop car_ir_receive_process_loop 
+3811 2020381b branch car_ir_receive_process_end 
+
+car_ir_get_bit1:
+3812 58008000 setarg 0x8000 
+3813 1a232200 rshift rega ,rega 
+3814 9a21a200 ior rega ,rega 
+3815 2040383f call car_ir_clk_get 
+
+car_ir_get_bit1_wait_low_end:
+3816 20403842 call car_ir_clk_check 
+3817 24610000 nrtn positive 
+3818 20403847 call car_ir_gpio_get_status 
+3819 2020b816 branch car_ir_get_bit1_wait_low_end ,true 
+381a c2003805 loop car_ir_receive_process_loop 
+
+car_ir_receive_process_end:
+381b 44eac01a bpatch patch1a_5 ,mem_patch1a 
+381c 1a227e00 copy rega ,pdata 
+381d 60014789 store 2 ,mem_ir_rx_buf 
+381e 60014797 store 2 ,mem_ir_notify_data + 8 
+381f 6800c7ea fetch 1 ,mem_car_24g_status 
+3820 c000b827 beq work_paired ,car_ir_24g_receive_attack 
+
+car_ir_data_notify:
+3821 df200007 arg 0x07 ,loopcnt 
+3822 d8c04792 arg mem_ir_notify_data_head ,contr 
+3823 204036f0 call calc_check_sum_start 
+3824 6000c799 store 1 ,mem_ir_notify_data_check_sum 
+3825 da20478f arg mem_ir_notify_data ,rega 
+3826 20207e3d branch queue_push 
+
+car_ir_24g_receive_attack:
+3827 6800c7ef fetch 1 ,mem_car_24g_ir_receive_attack_count 
+3828 1fe0fe01 increase 1 ,pdata 
+3829 6000c7ef store 1 ,mem_car_24g_ir_receive_attack_count 
+382a 1fe6fc02 div pdata ,2 
+382b 20407f86 call wait_div_end 
+382c 18078400 quotient temp 
+382d 18077e00 remainder pdata 
+382e 243a3838 nbranch car_ir_24g_receive_attack_blink ,blank 
+
+car_ir_24g_receive_attack_off:
+382f 6800c7bf fetch 1 ,mem_car_config_led_num 
+3830 98467c00 isub temp ,null 
+3831 2042b83d call car_ir_24g_go_die ,zero 
+3832 dfe0479c arg mem_car_led_control ,pdata 
+3833 184085ff increase -1 ,temp 
+3834 9840a200 iadd temp ,rega 
+3835 dfe00000 arg 0 ,pdata 
+3836 e2208000 istore 1 ,rega 
+3837 20600000 rtn 
+
+car_ir_24g_receive_attack_blink:
+3838 dfe0479c arg mem_car_led_control ,pdata 
+3839 9840a200 iadd temp ,rega 
+383a dfe00002 arg 2 ,pdata 
+383b e2208000 istore 1 ,rega 
+383c 20600000 rtn 
+
+car_ir_24g_go_die:
+383d 7047f001 jam 1 ,mem_car_24g_go_die_flag 
+383e 20600000 rtn 
+
+car_ir_clk_get:
+383f 1c427e00 copy clkn_bt ,pdata 
+3840 6002478b store 4 ,mem_ir_receive_clkn 
+3841 20600000 rtn 
+
+car_ir_clk_check:
+3842 1c427e00 copy clkn_bt ,pdata 
+3843 680a478b fetcht 4 ,mem_ir_receive_clkn 
+3844 98467e00 isub temp ,pdata 
+3845 1fe67cc8 sub pdata ,200 ,null 
+3846 20600000 rtn 
+
+car_ir_gpio_get_status:
+3847 6808c786 fetcht 1 ,mem_ir_rx_gpio 
+3848 2020681d branch gpio_get_bit 
+
+car_led_control_receive:
+3849 68044752 fetch 8 ,mem_le_receive_payload 
+384a 6004479c store 8 ,mem_car_led_control 
+384b 20600000 rtn 
+
+car_info_request:
+384c 6800c7b9 fetch 1 ,mem_car_config_device_select 
+384d 6000c7af store 1 ,mem_car_info_request_payload 
+384e 6800c7ba fetch 1 ,mem_car_config_motor_layout 
+384f 6000c7b0 store 1 ,mem_car_info_request_payload + 1 
+3850 6800c7bb fetch 1 ,mem_car_config_ir_enable 
+3851 6000c7b1 store 1 ,mem_car_info_request_payload + 2 
+3852 df20000d arg 13 ,loopcnt 
+3853 d8c047aa arg mem_car_info_request_head ,contr 
+3854 204036f0 call calc_check_sum_start 
+3855 6000c7b7 store 1 ,mem_car_info_request_checksum 
+3856 da2047a7 arg mem_car_info_request ,rega 
+3857 20207e3d branch queue_push 
+
+light_init:
+3858 204065c2 call clear_eeprom_size_2k 
+3859 7046f67a jam 0x7a ,mem_curr_packet_num 
+385a 2040386d call light_load_controler_list 
+385b 20403867 call light_init_crr_cmd_count 
+385c 58003860 setarg light_pairing_timer 
+385d 600141fd store 2 ,mem_cb_event_timer 
+385e da200000 arg 0 ,rega 
+385f 202069a6 branch pwm_init 
+
+light_pairing_timer:
+3860 680146a1 fetch 2 ,mem_light_pairing_timer 
+3861 207a0000 rtn blank 
+3862 1fe0ffff increase -1 ,pdata 
+3863 600146a1 store 2 ,mem_light_pairing_timer 
+3864 c1800000 rtnne 0 
+3865 7046a000 jam 0 ,mem_light_pairing_enable 
+3866 20600000 rtn 
+
+light_init_crr_cmd_count:
+3867 44eb401a bpatch patch1a_6 ,mem_patch1a 
+3868 6800c6a4 fetch 1 ,mem_light_next_record 
+3869 1fe67c28 sub pdata ,40 ,null 
+386a 20610000 rtn positive 
+386b 7046a400 jam 0 ,mem_light_next_record 
+386c 20600000 rtn 
+
+light_load_controler_list:
+386d da2046a4 arg mem_light_next_record ,rega 
+386e da400000 arg 0 ,regb 
+386f d8400051 arg 81 ,temp 
+3870 202065df branch iicd_read_eep_data 
+
+light_find_controler_pairing:
+3871 78547c00 disable user 
+3872 6800c6a3 fetch 1 ,mem_light_cnum 
+3873 1fe27200 copy pdata ,loopcnt 
+3874 da2046a5 arg mem_light_clist ,rega 
+3875 1a622400 copy regc ,regb 
+
+light_find_controler_pairing_loop:
+3876 44ebc01a bpatch patch1a_7 ,mem_patch1a 
+3877 2040387c call light_compare_addr_record 
+3878 2022ffe7 branch enable_user ,zero 
+
+light_find_single_pairing_diff:
+3879 1a20a204 increase 4 ,rega 
+387a c2003876 loop light_find_controler_pairing_loop 
+387b 20600000 rtn 
+
+light_compare_addr_record:
+387c 44ec401b bpatch patch1b_0 ,mem_patch1b 
+387d ea218000 ifetch 3 ,rega 
+387e ea498000 ifetcht 3 ,regb 
+387f 98467c00 isub temp ,null 
+3880 20600000 rtn 
+
+light_compare_single_record:
+3881 44ecc01b bpatch patch1b_1 ,mem_patch1b 
+3882 ea218000 ifetch 3 ,rega 
+3883 ea498000 ifetcht 3 ,regb 
+3884 98467c00 isub temp ,null 
+3885 24628000 nrtn zero 
+3886 e8c08000 ifetch 1 ,contr 
+3887 1fe67c00 sub pdata ,0 ,null 
+3888 20628000 rtn zero 
+3889 1a208c03 add rega ,3 ,contr 
+388a e8c88000 ifetcht 1 ,contr 
+388b 98467c00 isub temp ,null 
+388c 20600000 rtn 
+
+light_find_controler_cmd:
+388d 44ed401b bpatch patch1b_2 ,mem_patch1b 
+388e 78547c00 disable user 
+388f 6800c6a3 fetch 1 ,mem_light_cnum 
+3890 1fe27200 copy pdata ,loopcnt 
+3891 da2046a5 arg mem_light_clist ,rega 
+3892 1a622400 copy regc ,regb 
+
+light_find_controler_cmd_loop:
+3893 20403881 call light_compare_single_record 
+3894 2022ffe7 branch enable_user ,zero 
+3895 1a20a204 increase 4 ,rega 
+3896 c2003893 loop light_find_controler_cmd_loop 
+3897 20600000 rtn 
+
+light_recv_adv:
+3898 68008004 fetch 1 ,mem_le_scanrsp_rcv 
+3899 1fe0fe01 increase 1 ,pdata 
+389a 60008004 store 1 ,mem_le_scanrsp_rcv 
+389b da6002e5 arg mem_le_rxbuf + 12 ,regc 
+
+light_anylize_command:
+389c ea610000 ifetch 2 ,regc 
+389d d84055aa arg 0x55aa ,temp 
+389e 98467c00 isub temp ,null 
+389f 24628000 nrtn zero 
+38a0 18c22600 copy contr ,regc 
+38a1 ea698000 ifetcht 3 ,regc 
+38a2 58ffffff setarg 0xffffff 
+38a3 98467c00 isub temp ,null 
+38a4 2022b8a8 branch light_parse_cmd ,zero 
+38a5 2040388d call light_find_controler_cmd 
+38a6 203438a8 branch light_parse_cmd ,user 
+38a7 20600000 rtn 
+
+light_parse_cmd:
+38a8 44edc01b bpatch patch1b_3 ,mem_patch1b 
+38a9 1a60a604 increase 4 ,regc 
+38aa ea608000 ifetch 1 ,regc 
+38ab 6808c6f6 fetcht 1 ,mem_curr_packet_num 
+38ac 98467c00 isub temp ,null 
+38ad 20628000 rtn zero 
+38ae 6000c6f6 store 1 ,mem_curr_packet_num 
+38af 68008003 fetch 1 ,mem_le_req_rcv 
+38b0 1fe0fe01 increase 1 ,pdata 
+38b1 60008003 store 1 ,mem_le_req_rcv 
+38b2 1a60a601 increase 1 ,regc 
+38b3 ea608000 ifetch 1 ,regc 
+38b4 6000c6f5 store 1 ,mem_light_crr_cmd_count 
+38b5 1fe27200 copy pdata ,loopcnt 
+38b6 207a0000 rtn blank 
+
+light_parse_cmd_loop:
+38b7 e8c08000 ifetch 1 ,contr 
+38b8 c00038c2 beq light_cmd_pwm0 ,light_parse_cmd_pwm0 
+38b9 c000b8cf beq light_cmd_pwm1 ,light_parse_cmd_pwm1 
+38ba c00138d4 beq light_cmd_pwm2 ,light_parse_cmd_pwm2 
+38bb c001b8d9 beq light_cmd_pwm3 ,light_parse_cmd_pwm3 
+38bc c00238de beq light_cmd_pwm4 ,light_parse_cmd_pwm4 
+38bd c002b8e3 beq light_cmd_pwm5 ,light_parse_cmd_pwm5 
+38be c00338e8 beq light_cmd_auto_mode ,light_parse_auto_mode 
+38bf c07fb8ea beq light_cmd_pairing ,light_parse_pairing 
+38c0 c20038b7 loop light_parse_cmd_loop 
+38c1 20600000 rtn 
+
+light_parse_cmd_pwm0:
+38c2 18c22600 copy contr ,regc 
+38c3 6800c69a fetch 1 ,mem_light_pwm0 
+38c4 60008a9a store 1 ,mem_pdatatemp 
+38c5 d8400000 arg 0 ,temp 
+
+light_parse_cmd_pwm_common:
+38c6 60088a9b storet 1 ,mem_pdatatemp + 1 
+38c7 58002710 setarg 10000 
+38c8 60018a9c store 3 ,mem_pdatatemp + 2 
+38c9 ea608000 ifetch 1 ,regc 
+38ca 60008a9f store 1 ,mem_pdatatemp + 5 
+38cb 204069ae call pwm_out_set 
+38cc 1a610c01 and regc ,1 ,contr 
+38cd c20038b7 loop light_parse_cmd_loop 
+38ce 20600000 rtn 
+
+light_parse_cmd_pwm1:
+38cf 1a620c00 copy regc ,contr 
+38d0 6800c69b fetch 1 ,mem_light_pwm1 
+38d1 60008a9a store 1 ,mem_pdatatemp 
+38d2 d8400001 arg 1 ,temp 
+38d3 202038c6 branch light_parse_cmd_pwm_common 
+
+light_parse_cmd_pwm2:
+38d4 1a620c00 copy regc ,contr 
+38d5 6800c69c fetch 1 ,mem_light_pwm2 
+38d6 60008a9a store 1 ,mem_pdatatemp 
+38d7 d8400002 arg 2 ,temp 
+38d8 202038c6 branch light_parse_cmd_pwm_common 
+
+light_parse_cmd_pwm3:
+38d9 1a620c00 copy regc ,contr 
+38da 6800c69d fetch 1 ,mem_light_pwm3 
+38db 60008a9a store 1 ,mem_pdatatemp 
+38dc d8400003 arg 3 ,temp 
+38dd 202038c6 branch light_parse_cmd_pwm_common 
+
+light_parse_cmd_pwm4:
+38de 1a620c00 copy regc ,contr 
+38df 6800c69e fetch 1 ,mem_light_pwm4 
+38e0 60008a9a store 1 ,mem_pdatatemp 
+38e1 d8400004 arg 4 ,temp 
+38e2 202038c6 branch light_parse_cmd_pwm_common 
+
+light_parse_cmd_pwm5:
+38e3 1a620c00 copy regc ,contr 
+38e4 6800c69f fetch 1 ,mem_light_pwm5 
+38e5 60008a9a store 1 ,mem_pdatatemp 
+38e6 d8400005 arg 5 ,temp 
+38e7 202038c6 branch light_parse_cmd_pwm_common 
+
+light_parse_auto_mode:
+38e8 e8c08000 ifetch 1 ,contr 
+38e9 20600000 rtn 
+
+light_parse_pairing:
+38ea 18c22600 copy contr ,regc 
+38eb 6800c6a0 fetch 1 ,mem_light_pairing_enable 
+38ec c080b8ee bne 1 ,light_parse_pairing_abandon 
+38ed 204038f0 call update_controler_list 
+
+light_parse_pairing_abandon:
+38ee 1a610c04 and regc ,4 ,contr 
+38ef 20600000 rtn 
+
+update_controler_list:
+38f0 44ee401b bpatch patch1b_4 ,mem_patch1b 
+38f1 20403871 call light_find_controler_pairing 
+38f2 203438fe branch update_conrtoler_list_found ,user 
+38f3 6800c6a4 fetch 1 ,mem_light_next_record 
+38f4 1fe20400 copy pdata ,temp 
+38f5 1fe0fe01 increase 1 ,pdata 
+38f6 6000c6a4 store 1 ,mem_light_next_record 
+38f7 20403867 call light_init_crr_cmd_count 
+38f8 184b8400 lshift2 temp ,temp 
+38f9 580046a5 setarg mem_light_clist 
+38fa 98408a00 iadd temp ,contw 
+38fb ea620000 ifetch 4 ,regc 
+38fc e0a20000 istore 4 ,contw 
+38fd 20203903 branch update_conrtoler_store_list 
+
+update_conrtoler_list_found:
+38fe 1a608c03 add regc ,3 ,contr 
+38ff e8c08000 ifetch 1 ,contr 
+3900 207a0000 rtn blank 
+3901 ea620000 ifetch 4 ,regc 
+3902 e2220000 istore 4 ,rega 
+
+update_conrtoler_store_list:
+3903 da2046a4 arg mem_light_next_record ,rega 
+3904 da400000 arg 0 ,regb 
+3905 d8400051 arg 81 ,temp 
+3906 20206606 branch iicd_write_eep_data 
+
+lightc_init:
+3907 6808c69a fetcht 1 ,mem_lightc_led_gpio 
+3908 20406825 call gpio_out_inactive 
+3909 20600000 rtn 
+
+lightc_dispatch:
+390a 6808c69a fetcht 1 ,mem_lightc_led_gpio 
+390b 20406829 call gpio_out_active 
+390c 6808c69a fetcht 1 ,mem_lightc_led_gpio 
+390d 20406825 call gpio_out_inactive 
+390e 2040391d call lightc_start_adv 
+390f 6800c6a7 fetch 1 ,mem_adv_time 
+3910 247a0000 nrtn blank 
+3911 20402c29 call lpm_write_gpio_wakeup 
+3912 68120138 hfetch 4 ,core_lpm_ctrl 
+3913 793ffe0f set0 15 ,pdata 
+3914 6012004c hstore 4 ,core_lpm_reg 
+3915 20402c21 call lpm_write_ctrl 
+3916 d85fffff arg param_hibernate_clks ,temp 
+3917 20202b2a branch lpm_sleep 
+
+lightc_adv:
+3918 6800c6a7 fetch 1 ,mem_adv_time 
+3919 203a56f9 branch le_adv_loop_tx ,blank 
+391a 1fe0ffff increase -1 ,pdata 
+391b 6000c6a7 store 1 ,mem_adv_time 
+391c 202056f9 branch le_adv_loop_tx 
+
+lightc_start_adv:
+391d 1feffe14 mul32 pdata ,20 ,pdata 
+391e d8c046a8 arg mem_cmd0_string ,contr 
+391f 98c08c00 iadd contr ,contr 
+3920 e8c08000 ifetch 1 ,contr 
+3921 207a0000 rtn blank 
+3922 1fe22200 copy pdata ,rega 
+3923 1a227200 copy rega ,loopcnt 
+3924 d8a04372 arg mem_le_adv_data + 2 ,contw 
+3925 20407f01 call memcpy 
+3926 1a227e00 copy rega ,pdata 
+3927 1fe0fe02 increase 2 ,pdata 
+3928 6000c36f store 1 ,mem_le_adv_data_len 
+3929 20600000 rtn 
+
+module_init:
+392a 20758000 rtn wake 
+392b 204057a3 call le_modified_name 
+392c 204068a8 call adc_init_data 
+392d 58003982 setarg module_process_idle 
+392e 600141f3 store 2 ,mem_cb_idle_process 
+392f 5800396e setarg module_bt_conn_process 
+3930 600141f1 store 2 ,mem_cb_bt_process 
+3931 58003986 setarg module_process_bb_event 
+3932 600141f5 store 2 ,mem_cb_bb_event_process 
+3933 5800396d setarg module_le_conn_process 
+3934 600141ef store 2 ,mem_cb_le_process 
+3935 58003969 setarg module_lpm_lock 
+3936 600141e9 store 2 ,mem_cb_check_wakelock 
+3937 58003ab7 setarg module_hci_cmd_transmit_le_notify 
+3938 600141fb store 2 ,mem_cb_ble_transmit 
+3939 58003c32 setarg module_hci_event_receive_spp_data 
+393a 6001456f store 2 ,mem_cb_receive_spp_data 
+393b 58003cc2 setarg module_le_receive_data 
+393c 600141f9 store 2 ,mem_cb_att_write 
+393d 58003cd7 setarg module_bb_event_timer 
+393e 600141fd store 2 ,mem_cb_event_timer 
+393f 2040397f call module_spp_clear_last_transmite_clock 
+3940 44eec01b bpatch patch1b_5 ,mem_patch1b 
+3941 20403945 call module_lpm_uart_init 
+3942 20403964 call module_gpio_init 
+3943 20402c6f call check_module_disabled 
+3944 20203c48 branch module_hci_event_enter_standby_mode 
+
+module_lpm_uart_init:
+3945 680246aa fetch 4 ,mem_module_uart_rx_buffer 
+3946 60120054 hstore 4 ,core_uart_rsaddr 
+3947 680246ae fetch 4 ,mem_module_uart_tx_buffer 
+3948 6012005a hstore 4 ,core_uart_tsaddr 
+3949 68108081 hfetch 1 ,core_gpio_sel1 
+394a 1fe1fe04 or_into 0x04 ,pdata 
+394b 1fe17efc and_into 0xfc ,pdata 
+394c 60108081 hstore 1 ,core_gpio_sel1 
+394d 70806200 jam 0x00 ,core_uart_ctrl 
+394e 680146aa fetch 2 ,mem_module_uart_rx_buffer 
+394f 60110058 hstore 2 ,core_uart_rrptr 
+3950 680146ae fetch 2 ,mem_module_uart_tx_buffer 
+3951 6011005e hstore 2 ,core_uart_twptr 
+3952 60110060 hstore 2 ,core_uart_trptrp 
+3953 68120078 hfetch 4 ,core_gpio_pu0 
+3954 79207e07 set1 7 ,pdata 
+3955 60120078 hstore 4 ,core_gpio_pu0 
+3956 68110050 hfetch 2 ,core_clkoff 
+3957 793ffe0f set0 clock_off_uart ,pdata 
+3958 60110050 hstore 2 ,core_clkoff 
+3959 204066ce call uart_set_baud_by_mem 
+395a 70804300 jam uartclk_crystal ,core_uart_clksel 
+395b 70806281 jam uart_ctrl_h4 ,core_uart_ctrl 
+395c 6800c6bf fetch 1 ,mem_module_flag 
+395d 2feffe00 isolate1 module_flag_uart_flow_control ,pdata 
+395e 68188062 hfetcht 1 ,core_uart_ctrl 
+395f 79208404 setflag true ,4 ,temp 
+3960 60188062 hstoret 1 ,core_uart_ctrl 
+3961 20600000 rtn 
+
+module_lpm_init:
+3962 2040397f call module_spp_clear_last_transmite_clock 
+3963 20203945 branch module_lpm_uart_init 
+
+module_gpio_init:
+3964 6808c69e fetcht 1 ,mem_module_connect_state_gpio 
+3965 2040680e call gpio_config_output 
+3966 204039e6 call module_set_conn_pin_low 
+3967 6808c69c fetcht 1 ,mem_module_wake_up_gpio 
+3968 202067fb branch gpio_config_input 
+
+module_lpm_lock:
+3969 6808c69c fetcht 1 ,mem_module_wake_up_gpio 
+396a 2040681d call gpio_get_bit 
+396b 2420b3d2 nbranch app_put_lpm_wake_lock ,true 
+396c 202033d0 branch app_get_lpm_wake_lock 
+
+module_le_conn_process:
+396d 20600000 rtn 
+
+module_bt_conn_process:
+396e 20403970 call module_spp_enter_sniff 
+396f 20203ce9 branch module_control_air_flow 
+
+module_spp_enter_sniff:
+3970 6800c682 fetch 1 ,mem_ui_state_map 
+3971 c302397f bbit0 ui_state_bt_spp_conn ,module_spp_clear_last_transmite_clock 
+3972 44ef401b bpatch patch1b_6 ,mem_patch1b 
+3973 58003eff setarg 0x3eff 
+3974 680a46c5 fetcht 4 ,mem_last_transmite_clock 
+3975 98408400 iadd temp ,temp 
+3976 1c427e00 copy clkn_bt ,pdata 
+3977 98467c00 isub temp ,null 
+3978 24610000 nrtn positive 
+3979 68014682 fetch 2 ,mem_ui_state_map 
+397a c282b97f bbit1 ui_state_bt_sniff ,module_spp_clear_last_transmite_clock 
+397b 6800c6bf fetch 1 ,mem_module_flag 
+397c c3830000 rtnbit1 moudle_task_sniff 
+397d 20403cec call module_set_sniff_task_flag 
+397e 2040340e call app_bt_enter_sniff 
+
+module_spp_clear_last_transmite_clock:
+397f 1c427e00 copy clkn_bt ,pdata 
+3980 600246c5 store 4 ,mem_last_transmite_clock 
+3981 20600000 rtn 
+
+module_process_idle:
+3982 20403ce9 call module_control_air_flow 
+3983 2040526e call l2cap_malloc_is_fifo_full 
+3984 247a0000 nrtn blank 
+3985 202039eb branch module_process 
+
+module_process_bb_event:
+3986 1a627e00 copy regc ,pdata 
+3987 c000b9d4 beq bt_evt_bb_connected ,module_process_bb_conn 
+3988 c00139a3 beq bt_evt_bb_disconnected ,module_process_bb_event_disconned 
+3989 c00239d7 beq bt_evt_reconn_failed ,module_process_reconn_fail 
+398a c002b9c4 beq bt_evt_setup_complete ,module_process_setup_complete 
+398b c00439aa beq bt_evt_spp_connected ,module_process_spp_connected 
+398c c004b9b1 beq bt_evt_spp_disconnected ,module_process_spp_disconnected 
+398d c00539c9 beq bt_evt_pincode_req ,module_process_evt_pincode_req 
+398e c005b9b6 beq bt_evt_enter_sniff ,module_process_enter_sniff 
+398f c00639c2 beq bt_evt_exit_sniff ,module_process_exit_sniff 
+3990 c009b9d7 beq bt_evt_reconn_page_timeout ,module_process_page_time_out 
+3991 c00a39cf beq bt_evt_le_connected ,module_process_le_conn 
+3992 c00ab9c6 beq bt_evt_le_disconnected ,module_process_bb_even_le_disconn 
+3993 c010b9ca beq bt_evt_sniff_not_accept ,module_process_sniff_not_accept 
+3994 c011b9cb beq bt_evt_unsniff_accept ,module_process_unsniff_accept 
+3995 c01239ce beq bt_evt_unsniff_not_accept ,module_process_unsniff_not_accept 
+3996 c0183c8a beq bt_evt_le_pairing_fail ,module_hci_event_le_pairing_fail 
+3997 c018bc8c beq bt_evt_le_pairing_success ,module_hci_event_le_pairing_success 
+3998 c0193c9a beq bt_evt_le_start_enc ,module_hci_event_start_enc 
+3999 c019bc98 beq bt_evt_le_pause_enc ,module_hci_event_pause_enc 
+399a c01a3c84 beq bt_evt_le_tk_generate ,module_hci_event_le_tk 
+399b c01abc73 beq bt_evt_bt_gkey_generate ,module_hci_event_gkey_generate 
+399c c01b3c82 beq bt_evt_bt_get_passkey ,module_hci_event_passkey_entry_mode 
+399d c01bbc8e beq bt_evt_bt_pairing_fail ,module_hci_event_bt_pairing_fail 
+399e c01c3c90 beq bt_evt_bt_pairing_success ,module_hci_event_bt_pairing_success 
+399f c01dbca1 beq bt_evt_le_gkey_generate ,module_hci_event_le_gkey 
+39a0 c01ebc6a beq bt_evt_store_nvram ,module_hci_event_store_device 
+39a1 c020b9d9 beq bt_evt_le_ltk_lost ,module_process_ble_ltk_lost 
+39a2 20600000 rtn 
+
+module_process_bb_event_disconned:
+39a3 2040397f call module_spp_clear_last_transmite_clock 
+39a4 6800c665 fetch 1 ,mem_flag_pairing_state 
+39a5 245a3c8e ncall module_hci_event_bt_pairing_fail ,blank 
+39a6 204039d7 call module_disconn_start 
+39a7 68014682 fetch 2 ,mem_ui_state_map 
+39a8 c4020000 rtnbit0 ui_state_bt_spp_conn 
+39a9 202039b1 branch module_spp_disconnected 
+
+module_process_spp_connected:
+39aa 68014682 fetch 2 ,mem_ui_state_map 
+39ab 79207e04 set1 ui_state_bt_spp_conn ,pdata 
+39ac 60014682 store 2 ,mem_ui_state_map 
+39ad 6800c6a7 fetch 1 ,mem_module_spp_lpm_mult 
+39ae 6000c172 store 1 ,mem_lpm_mult 
+39af 204039e6 call module_set_conn_pin_low 
+39b0 20203c1d branch module_hci_event_spp_connect 
+
+module_process_spp_disconnected:
+
+module_spp_disconnected:
+39b1 68014682 fetch 2 ,mem_ui_state_map 
+39b2 c4020000 rtnbit0 ui_state_bt_spp_conn 
+39b3 793ffe04 set0 ui_state_bt_spp_conn ,pdata 
+39b4 60014682 store 2 ,mem_ui_state_map 
+39b5 20203c21 branch module_hci_event_spp_disconnect 
+
+module_process_enter_sniff:
+
+module_sniff_param_check:
+39b6 2040397f call module_spp_clear_last_transmite_clock 
+39b7 68014042 fetch 2 ,mem_context + coffset_tsniff 
+39b8 1fe37e00 rshift pdata ,pdata 
+39b9 680941e3 fetcht 2 ,mem_sniff_param_interval 
+39ba 98467c00 isub temp ,null 
+39bb 2422b9bd nbranch module_sniff_param_check_unsniff ,zero 
+39bc 20203416 branch app_lpm_mult_enable 
+
+module_sniff_param_check_unsniff:
+39bd 6800c6bf fetch 1 ,mem_module_flag 
+39be c3828000 rtnbit1 moudle_task_unsniff 
+39bf 68110112 hfetch 2 ,core_uart_rxitems 
+39c0 245a3cf0 ncall module_set_unsniff_task_flag ,blank 
+39c1 2020340c branch app_bt_sniff_exit 
+
+module_process_exit_sniff:
+39c2 20403cee call module_clear_sniff_task_flag 
+39c3 20203418 branch app_lpm_mult_disable 
+
+module_process_setup_complete:
+39c4 2040397f call module_spp_clear_last_transmite_clock 
+39c5 202039dd branch module_conn_start 
+
+module_process_bb_even_le_disconn:
+39c6 20405816 call le_clr_config_more_data 
+39c7 204039d7 call module_disconn_start 
+39c8 20203c23 branch module_hci_event_le_disconnect 
+
+module_process_evt_pincode_req:
+39c9 202033dd branch app_bt_set_pincode 
+
+module_process_sniff_not_accept:
+39ca 20203cee branch module_clear_sniff_task_flag 
+
+module_process_unsniff_accept:
+39cb 6800c6bf fetch 1 ,mem_module_flag 
+39cc c302b40e bbit0 moudle_task_unsniff ,app_bt_enter_sniff 
+39cd 20203cf2 branch module_clear_unsniff_task_flag 
+
+module_process_unsniff_not_accept:
+39ce 20203cf2 branch module_clear_unsniff_task_flag 
+
+module_process_le_conn:
+39cf 204058ba call le_send_att_exchange_mtu_requset 
+39d0 204039dd call module_conn_start 
+39d1 6800c6a8 fetch 1 ,mem_module_le_lpm_mult 
+39d2 6000c172 store 1 ,mem_lpm_mult 
+39d3 20203c1f branch module_hci_event_le_connect 
+
+module_process_bb_conn:
+39d4 70466100 jam 0 ,mem_flag_mode_ssp_pin 
+39d5 20403cee call module_clear_sniff_task_flag 
+39d6 20203cf2 branch module_clear_unsniff_task_flag 
+
+module_process_page_time_out:
+
+module_process_reconn_fail:
+
+module_disconn_start:
+39d7 20403a52 call module_start_adv_discovery_by_command 
+39d8 202039db branch module_set_conn_pin_high 
+
+module_process_ble_ltk_lost:
+39d9 20405cc9 call le_send_reject_ind 
+39da 20205b02 branch le_send_smp_security_request 
+
+module_set_conn_pin_high:
+39db 6808c69e fetcht 1 ,mem_module_connect_state_gpio 
+39dc 20206829 branch gpio_out_active 
+
+module_conn_start:
+39dd 204039df call module_stop_adv_discovery 
+39de 202039e6 branch module_set_conn_pin_low 
+
+module_stop_adv_discovery:
+39df 6800c6a1 fetch 1 ,mem_module_state 
+39e0 2feffe00 isolate1 moudle_state_bt_bit ,pdata 
+39e1 2040b3f0 call app_bt_stop_discovery ,true 
+39e2 6800c6a1 fetch 1 ,mem_module_state 
+39e3 2feffe01 isolate1 moudle_state_ble_bit ,pdata 
+39e4 2040b3f8 call app_ble_stop_adv ,true 
+39e5 20600000 rtn 
+
+module_set_conn_pin_low:
+39e6 6808c69e fetcht 1 ,mem_module_connect_state_gpio 
+39e7 20206825 branch gpio_out_inactive 
+
+module_process_with_credit:
+39e8 6800c56b fetch 1 ,mem_credit_flag 
+39e9 c1000000 rtneq credit_disable 
+39ea 20206c28 branch rfcomm_send_uih_without_payload 
+
+module_process:
+39eb 6810810c hfetch 1 ,core_uart_status 
+39ec c281b9e8 bbit1 uart_status_rx_fifo_empty ,module_process_with_credit 
+39ed 204066cb call uartd_prepare_rx 
+39ee e8608000 ifetch 1 ,contru 
+39ef c080ba01 bne 0x01 ,module_hci_in_excp 
+39f0 68110112 hfetch 2 ,core_uart_rxitems 
+39f1 1fe67c02 sub pdata ,2 ,null 
+39f2 20610000 rtn positive 
+39f3 e8608000 ifetch 1 ,contru 
+39f4 60008b03 store 1 ,mem_module_uart_opcode 
+39f5 e8688000 ifetcht 1 ,contru 
+39f6 18622200 copy contru ,rega 
+39f7 60088b04 storet 1 ,mem_module_uart_len 
+39f8 18408403 add temp ,3 ,temp 
+39f9 68110112 hfetch 2 ,core_uart_rxitems 
+39fa 98460400 isub temp ,temp 
+39fb 24610000 nrtn positive 
+39fc 700b0501 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+39fd 20403a17 call module_hci_cmd_control 
+39fe 68008b05 fetch 1 ,mem_module_temp_nl_discard_packet 
+39ff c1000000 rtneq hci_not_discard_packet 
+3a00 20203a12 branch module_hci_dicard_packet 
+
+module_hci_in_excp:
+3a01 20407ec1 call delay_10ms 
+3a02 20403c79 call module_hci_event_invalid_packet 
+3a03 20203a04 branch module_hci_release_except 
+
+module_hci_release_except:
+3a04 44efc01b bpatch patch1b_7 ,mem_patch1b 
+3a05 68110112 hfetch 2 ,core_uart_rxitems 
+3a06 207a0000 rtn blank 
+3a07 204066cb call uartd_prepare_rx 
+3a08 e8608000 ifetch 1 ,contru 
+3a09 1fe67c01 sub pdata ,0x01 ,null 
+3a0a 2442ba16 ncall module_hci_dicard_bytes ,zero 
+3a0b 2422ba04 nbranch module_hci_release_except ,zero 
+3a0c e8608000 ifetch 1 ,contru 
+3a0d c1028000 rtneq hci_cmd_spp_data_req 
+3a0e c1148000 rtneq hci_cmd_set_credit_given 
+3a0f 186087ff increase -1 ,contru 
+3a10 20403a16 call module_hci_dicard_bytes 
+3a11 20203a04 branch module_hci_release_except 
+
+module_hci_dicard_packet:
+3a12 204066cb call uartd_prepare_rx 
+3a13 18608602 increase 2 ,contru 
+3a14 e8608000 ifetch 1 ,contru 
+3a15 98608600 iadd contru ,contru 
+
+module_hci_dicard_bytes:
+3a16 202066c8 branch uartd_rxdone 
+
+module_hci_cmd_control:
+3a17 44f0401c bpatch patch1c_0 ,mem_patch1c 
+3a18 68008b03 fetch 1 ,mem_module_uart_opcode 
+3a19 c0003a3f beq hci_cmd_set_bt_addr_req ,module_hci_cmd_set_bt_addr 
+3a1a c000ba44 beq hci_cmd_set_le_addr_req ,module_hci_cmd_set_le_addr 
+3a1b c0013a49 beq hci_cmd_set_visibility_req ,module_hci_cmd_set_visibility 
+3a1c c001ba5f beq hci_cmd_set_bt_name_req ,module_hci_cmd_set_bt_name 
+3a1d c0023a6b beq hci_cmd_set_le_name_req ,module_hci_cmd_set_le_name 
+3a1e c002ba75 beq hci_cmd_spp_data_req ,module_hci_cmd_receive_spp_data 
+3a1f c004ba9a beq hci_cmd_le_data_req ,module_hci_cmd_receive_le_data 
+3a20 c005bad7 beq hci_cmd_status_irq ,module_hci_cmd_inquire_status 
+3a21 c0063ad8 beq hci_cmd_set_pairing_req ,module_hci_cmd_set_pairing_mode 
+3a22 c006baec beq hci_cmd_set_pincode_req ,module_hci_cmd_set_pincode 
+3a23 c0073af4 beq hci_cmd_set_uartcontrol_req ,module_hci_cmd_set_uart_control_mode 
+3a24 c007bafa beq hci_cmd_set_uart_baud_req ,module_hci_cmd_set_uart_baud 
+3a25 c0083b06 beq hci_cmd_version_req ,module_hci_cmd_version_request 
+3a26 c008bb0e beq hci_cmd_bt_disconnect ,module_hci_cmd_bt_disconnect 
+3a27 c0093b12 beq hci_cmd_ble_disconnect ,module_hci_cmd_ble_disconnect 
+3a28 c0133b16 beq hci_cmd_set_nvram_req ,module_hci_cmd_set_nvram 
+3a29 c0143b1d beq hci_cmd_confirm_gkey ,module_hci_cmd_confirm_gkey 
+3a2a c014bb2d beq hci_cmd_set_credit_given ,module_hci_cmd_set_credit_given 
+3a2b c0153b36 beq hci_cmd_auto_adv_scan ,module_hci_cmd_auto_adv 
+3a2c c015bb69 beq hci_cmd_power_req ,module_hci_cmd_power_request 
+3a2d c0163b6f beq hci_cmd_power_set ,module_hci_cmd_power_set 
+3a2e c0183b76 beq hci_cmd_passkey_entry ,module_hci_cmd_passkey_entry 
+3a2f c018bb7c beq hci_cmd_set_gpio ,module_hci_cmd_set_gpio 
+3a30 c0193b90 beq hci_cmd_read_gpio ,module_hci_cmd_read_gpio 
+3a31 c019bb98 beq hci_cmd_le_set_pairing ,module_hci_cmd_le_set_pairing_mode 
+3a32 c01a3bbb beq hci_cmd_le_set_adv_data ,module_hci_cmd_le_set_adv_data 
+3a33 c01abbc4 beq hci_cmd_le_set_scan_data ,module_hci_cmd_le_set_scan_data 
+3a34 c01b3bcd beq hci_cmd_le_send_conn_update_req ,module_hci_cmd_le_send_conn_update_req 
+3a35 c01bbbd7 beq hci_cmd_le_set_adv_parm ,module_hci_cmd_set_le_adv_parameter 
+3a36 c01c3bda beq hci_cmd_le_start_pairing ,module_hci_cmd_le_start_pairing 
+3a37 c0203be2 beq hci_cmd_set_wake_gpio ,module_hci_cmd_set_wake_gpio 
+3a38 c0213bec beq hci_cmd_set_tx_power ,module_hci_cmd_set_tx_power 
+3a39 c0243bf1 beq hci_cmd_le_confirm_gkey ,module_hci_cmd_le_confirm_gkey 
+3a3a c024bbfc beq hci_cmd_reject_justwork ,module_hci_cmd_set_reject_justwork_flag 
+3a3b c028bc02 beq hci_cmd_reset_chip_req ,module_hci_cmd_reset_chip 
+3a3c c030bc06 beq hci_cmd_le_set_fixed_passkey ,module_hci_cmd_le_set_fixed_passkey 
+3a3d c07fbc15 beq hci_test_cmd_close_lpm ,module_hci_test_cmde_close_lpm 
+3a3e 20203c17 branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_set_bt_addr:
+3a3f 68008b04 fetch 1 ,mem_module_uart_len 
+3a40 c0833c17 bne 6 ,module_hci_event_receive_invalid_cmd 
+3a41 e8630000 ifetch 6 ,contru 
+3a42 600340a0 store 6 ,mem_lap 
+3a43 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_le_addr:
+3a44 68008b04 fetch 1 ,mem_module_uart_len 
+3a45 c0833c17 bne 6 ,module_hci_event_receive_invalid_cmd 
+3a46 e8630000 ifetch 6 ,contru 
+3a47 600344a0 store 6 ,mem_le_lap 
+3a48 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_visibility:
+3a49 68008b04 fetch 1 ,mem_module_uart_len 
+3a4a c080bc17 bne 1 ,module_hci_event_receive_invalid_cmd 
+3a4b 1a220600 copy rega ,contru 
+3a4c 20403c1a call module_hci_event_receive_valid_cmd 
+3a4d e8688000 ifetcht 1 ,contru 
+3a4e 6008c6a9 storet 1 ,mem_module_bluetooth_stauts_by_command 
+3a4f 68014682 fetch 2 ,mem_ui_state_map 
+3a50 c3848000 rtnbit1 ui_state_ble_connected 
+3a51 c3800000 rtnbit1 ui_state_bt_connected 
+
+module_start_adv_discovery_by_command:
+3a52 6800c6a1 fetch 1 ,mem_module_state 
+3a53 2feffe00 isolate1 moudle_state_bt_bit ,pdata 
+3a54 2420ba58 nbranch moudle_start_adv_by_command ,true 
+3a55 6808c6a9 fetcht 1 ,mem_module_bluetooth_stauts_by_command 
+3a56 18417e03 and temp ,0x03 ,pdata 
+3a57 6000c093 store 1 ,mem_scan_mode 
+
+moudle_start_adv_by_command:
+3a58 6800c6a1 fetch 1 ,mem_module_state 
+3a59 2feffe01 isolate1 moudle_state_ble_bit ,pdata 
+3a5a 24608000 nrtn true 
+3a5b 6808c6a9 fetcht 1 ,mem_module_bluetooth_stauts_by_command 
+3a5c 284ffe02 isolate1 2 ,temp 
+3a5d 2020b3fa branch app_ble_start_adv ,true 
+3a5e 202033f8 branch app_ble_stop_adv 
+
+module_hci_cmd_set_bt_name:
+3a5f 68008b04 fetch 1 ,mem_module_uart_len 
+3a60 1fe67c43 sub pdata ,67 ,null 
+3a61 24213c17 nbranch module_hci_event_receive_invalid_cmd ,positive 
+3a62 6000c515 store 1 ,mem_local_name_length 
+3a63 df200008 arg 8 ,loopcnt 
+3a64 20407ec6 call memset0 
+3a65 68008b04 fetch 1 ,mem_module_uart_len 
+3a66 1fe27200 copy pdata ,loopcnt 
+3a67 1a220600 copy rega ,contru 
+3a68 d8a04516 arg mem_local_name ,contw 
+3a69 204066ea call uart_copy_rx_bytes_fast 
+3a6a 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_le_name:
+3a6b 68008b04 fetch 1 ,mem_module_uart_len 
+3a6c 1fe67c1d sub pdata ,29 ,null 
+3a6d 24213c17 nbranch module_hci_event_receive_invalid_cmd ,positive 
+3a6e 6000c3af store 1 ,mem_le_name_len 
+3a6f 1fe27200 copy pdata ,loopcnt 
+3a70 1a220600 copy rega ,contru 
+3a71 d8a043b0 arg mem_le_name ,contw 
+3a72 204066ea call uart_copy_rx_bytes_fast 
+3a73 204057a3 call le_modified_name 
+3a74 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_receive_spp_data:
+3a75 6800c682 fetch 1 ,mem_ui_state_map 
+3a76 c3023c17 bbit0 ui_state_bt_spp_conn ,module_hci_event_receive_invalid_cmd 
+3a77 204033ba call app_check_sniff 
+3a78 2020ba86 branch module_hci_cmd_spp_exit_sniff ,true 
+3a79 700b0500 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+3a7a 2040397f call module_spp_clear_last_transmite_clock 
+3a7b 6800c568 fetch 1 ,mem_remote_credits 
+3a7c 207a0000 rtn blank 
+3a7d 68014573 fetch 2 ,mem_nl_rx_len_all 
+3a7e c0803a84 bne 0 ,module_hci_cmd_pass_init_ng_rx_len_all 
+3a7f 68008b04 fetch 1 ,mem_module_uart_len 
+3a80 60014573 store 2 ,mem_nl_rx_len_all 
+3a81 1a220600 copy rega ,contru 
+3a82 18627e00 copy contru ,pdata 
+3a83 60014571 store 2 ,mem_nl_rx_data_src 
+
+module_hci_cmd_pass_init_ng_rx_len_all:
+3a84 20403a88 call module_hci_cmd_get_current_packet_len_and_remain_len 
+3a85 20206c4d branch spp_tx_rfcomm_packet 
+
+module_hci_cmd_spp_exit_sniff:
+3a86 700b0500 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+3a87 20203cd1 branch module_exit_sniff 
+
+module_hci_cmd_get_current_packet_len_and_remain_len:
+3a88 20403a8e call module_hci_cmd_get_current_patcket_len 
+3a89 68014573 fetch 2 ,mem_nl_rx_len_all 
+3a8a 6809469f fetcht 2 ,mem_current_packet_length 
+3a8b 98467e00 isub temp ,pdata 
+3a8c 60014573 store 2 ,mem_nl_rx_len_all 
+3a8d 20600000 rtn 
+
+module_hci_cmd_get_current_patcket_len:
+3a8e 68014573 fetch 2 ,mem_nl_rx_len_all 
+3a8f d840006e arg dm_refcom_buff_len ,temp 
+3a90 20407fdd call not_greater_than 
+3a91 6809456c fetcht 2 ,mem_rfcomm_max_frame_size 
+3a92 20407fdd call not_greater_than 
+3a93 6809455e fetcht 2 ,mem_pn_max_frame_size 
+3a94 20407fdd call not_greater_than 
+3a95 6001469f store 2 ,mem_current_packet_length 
+3a96 20600000 rtn 
+
+module_hci_command_tx_spp_tx_complete:
+3a97 700b0501 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+3a98 700b0305 jam hci_cmd_spp_data_req ,mem_module_uart_opcode 
+3a99 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_receive_le_data:
+3a9a 68014682 fetch 2 ,mem_ui_state_map 
+3a9b c304bc17 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+3a9c 20403ad4 call module_check_ble_encrypt_state 
+3a9d 20343c17 branch module_hci_event_receive_invalid_cmd ,user 
+3a9e 700b0500 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+3a9f 6800c6bf fetch 1 ,mem_module_flag 
+3aa0 c2823ab4 bbit1 module_flag_ble_data_finish ,module_hci_cmd_receive_le_data_finish 
+3aa1 6800c6c0 fetch 1 ,mem_module_hci_notify_len 
+3aa2 247a0000 nrtn blank 
+3aa3 700b0501 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+3aa4 e8610000 ifetch 2 ,contru 
+3aa5 600146c1 store 2 ,mem_module_hci_notify_handle 
+3aa6 18627e00 copy contru ,pdata 
+3aa7 600146c3 store 2 ,mem_module_hci_nofiy_addr 
+3aa8 68008b04 fetch 1 ,mem_module_uart_len 
+3aa9 1fe0fffe pincrease -2 
+3aaa 24213c17 nbranch module_hci_event_receive_invalid_cmd ,positive 
+3aab 2022bc17 branch module_hci_event_receive_invalid_cmd ,zero 
+3aac 6000c6c0 store 1 ,mem_module_hci_notify_len 
+3aad 700b0500 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+3aae 20405814 call le_set_config_more_data 
+3aaf 20403ab7 call module_hci_cmd_transmit_le_notify 
+3ab0 20403ab7 call module_hci_cmd_transmit_le_notify 
+3ab1 20403ab7 call module_hci_cmd_transmit_le_notify 
+3ab2 6800c6bf fetch 1 ,mem_module_flag 
+3ab3 c4020000 rtnbit0 module_flag_ble_data_finish 
+
+module_hci_cmd_receive_le_data_finish:
+3ab4 700b0501 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+3ab5 20403cf6 call module_clear_le_tx_data_flag 
+3ab6 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_transmit_le_notify:
+3ab7 6800c6c0 fetch 1 ,mem_module_hci_notify_len 
+3ab8 207a0000 rtn blank 
+3ab9 20405892 call le_fifo_check_nearly_full 
+3aba 247a0000 nrtn blank 
+3abb 20403acf call module_get_le_remote_mtu 
+3abc 44f0c01c bpatch patch1c_1 ,mem_patch1c 
+3abd 1840fffd add temp ,-3 ,pdata 
+3abe 6808c6c0 fetcht 1 ,mem_module_hci_notify_len 
+3abf 20407fdd call not_greater_than 
+3ac0 1fe22200 copy pdata ,rega 
+3ac1 18427e00 copy temp ,pdata 
+3ac2 9a267e00 isub rega ,pdata 
+3ac3 6000c6c0 store 1 ,mem_module_hci_notify_len 
+3ac4 680946c1 fetcht 2 ,mem_module_hci_notify_handle 
+3ac5 20405a64 call le_att_malloc_tx_notify 
+3ac6 680146c3 fetch 2 ,mem_module_hci_nofiy_addr 
+3ac7 1fe20600 copy pdata ,contru 
+3ac8 1a227200 copy rega ,loopcnt 
+3ac9 204066ea call uart_copy_rx_bytes_fast 
+3aca 18627e00 copy contru ,pdata 
+3acb 600146c3 store 2 ,mem_module_hci_nofiy_addr 
+3acc 6800c6c0 fetch 1 ,mem_module_hci_notify_len 
+3acd 247a0000 nrtn blank 
+3ace 20203cf4 branch module_set_le_tx_data_flag 
+
+module_get_le_remote_mtu:
+3acf d8400017 arg 0x17 ,temp 
+3ad0 6800c6bf fetch 1 ,mem_module_flag 
+3ad1 c3808000 rtnbit1 module_flag_ble_send_mtu23 
+3ad2 680944a8 fetcht 2 ,mem_le_remote_mtu 
+3ad3 20600000 rtn 
+
+module_check_ble_encrypt_state:
+3ad4 6800c6bf fetch 1 ,mem_module_flag 
+3ad5 c2815a42 bbit1 module_flag_ble_data_encrypt ,le_check_encrypt_state 
+3ad6 20207fe9 branch disable_user 
+
+module_hci_cmd_inquire_status:
+3ad7 20203c4c branch module_hci_event_status_res 
+
+module_hci_cmd_set_pairing_mode:
+3ad8 1a220600 copy rega ,contru 
+3ad9 e8608000 ifetch 1 ,contru 
+3ada c0003adf beq pairing_pincode ,module_hci_pairing_pincode_mode 
+3adb c000bae2 beq pairing_justwork ,module_hci_pairing_just_work_mode 
+3adc c0013ae8 beq pairing_passkey ,module_hci_pairing_passkey 
+3add c001baea beq pairing_confirm ,module_hci_pairing_numeric_comparison 
+3ade 20203c17 branch module_hci_event_receive_invalid_cmd 
+
+module_hci_pairing_pincode_mode:
+3adf 2040612b call ssp_disable 
+3ae0 70465a00 jam 0 ,mem_ssp_enable 
+3ae1 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_pairing_just_work_mode:
+3ae2 58040003 setarg ssp_mode_just_work_io_cap_data 
+
+module_hci_sspairing_mode:
+3ae3 6001c65b store 3 ,mem_sp_iocap_local 
+3ae4 6000c662 store 1 ,mem_ssp_mode_flag 
+3ae5 20406124 call ssp_enable 
+3ae6 70465a01 jam 1 ,mem_ssp_enable 
+3ae7 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_pairing_passkey:
+3ae8 58040002 setarg ssp_mode_passkey_io_cap_data 
+3ae9 20203ae3 branch module_hci_sspairing_mode 
+
+module_hci_pairing_numeric_comparison:
+3aea 58040001 setarg ssp_mode_ssp_pin_io_cap_data 
+3aeb 20203ae3 branch module_hci_sspairing_mode 
+
+module_hci_cmd_set_pincode:
+3aec 68008b04 fetch 1 ,mem_module_uart_len 
+3aed 1fe67c10 sub pdata ,16 ,null 
+3aee 24213c17 nbranch module_hci_event_receive_invalid_cmd ,positive 
+3aef 6000c689 store 1 ,mem_pin_length 
+3af0 1fe27200 copy pdata ,loopcnt 
+3af1 d8a0468a arg mem_pin ,contw 
+3af2 204066fd call uart_copy_rx_bytes 
+3af3 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_uart_control_mode:
+3af4 1a220600 copy rega ,contru 
+3af5 e8608000 ifetch 1 ,contru 
+3af6 68188062 hfetcht 1 ,core_uart_ctrl 
+3af7 7d3a0404 nsetflag blank ,4 ,temp 
+3af8 60188062 hstoret 1 ,core_uart_ctrl 
+3af9 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_uart_baud:
+3afa 68008b04 fetch 1 ,mem_module_uart_len 
+3afb 1fe27200 copy pdata ,loopcnt 
+3afc 1a220600 copy rega ,contru 
+3afd 20407f58 call string2dec_from_uart 
+3afe 596e3600 setarg uart_clk_24 
+3aff 9846fc00 idiv temp 
+3b00 20407f86 call wait_div_end 
+3b01 1807fe00 quotient pdata 
+
+module_hci_cmd_set_uart_baud_ok:
+3b02 60014243 store uart_baud_len ,mem_baud 
+3b03 20403c1a call module_hci_event_receive_valid_cmd 
+3b04 20407f9e call wait_uarttx 
+3b05 202066ce branch uart_set_baud_by_mem 
+
+module_hci_cmd_version_request:
+3b06 da200002 arg 2 ,rega 
+3b07 da40469a arg mem_soft_version_num ,regb 
+3b08 d8400000 arg 0 ,temp 
+3b09 20203c25 branch module_hci_event_set_cmd 
+
+module_hci_event_set_cmd_send_response:
+3b0a 60010ac2 store 2 ,mem_event_cmd_response_content 
+3b0b da400ac2 arg mem_event_cmd_response_content ,regb 
+3b0c d8400000 arg 0 ,temp 
+3b0d 20203c25 branch module_hci_event_set_cmd 
+
+module_hci_cmd_bt_disconnect:
+3b0e 68014682 fetch 2 ,mem_ui_state_map 
+3b0f c3003c17 bbit0 ui_state_bt_connected ,module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_bt_disconnect_doing:
+3b10 20403c1a call module_hci_event_receive_valid_cmd 
+3b11 202033e9 branch app_bt_disconnect 
+
+module_hci_cmd_ble_disconnect:
+3b12 68014682 fetch 2 ,mem_ui_state_map 
+3b13 c304bc17 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_ble_disconnect_doing:
+3b14 20403c1a call module_hci_event_receive_valid_cmd 
+3b15 20203402 branch app_ble_disconnect 
+
+module_hci_cmd_set_nvram:
+3b16 68008b04 fetch 1 ,mem_module_uart_len 
+3b17 1fe27200 copy pdata ,loopcnt 
+3b18 1a220600 copy rega ,contru 
+3b19 68014215 fetch 2 ,mem_nv_data_ptr 
+3b1a 1fe20a00 icopy contw 
+3b1b 204066ea call uart_copy_rx_bytes_fast 
+3b1c 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_confirm_gkey:
+3b1d 6800c682 fetch 1 ,mem_ui_state_map 
+3b1e c3003c17 bbit0 ui_state_bt_connected ,module_hci_event_receive_invalid_cmd 
+3b1f e8608000 ifetch 1 ,contru 
+3b20 6808c661 fetcht 1 ,mem_flag_mode_ssp_pin 
+3b21 793a0400 setflag blank ,flag_mode_ssp_pin_comparison_result_bit ,temp 
+3b22 79200407 set1 flag_mode_ssp_pin_reviceve_comparison_bit ,temp 
+3b23 6008c661 storet 1 ,mem_flag_mode_ssp_pin 
+3b24 20403c1a call module_hci_event_receive_valid_cmd 
+3b25 6800c661 fetch 1 ,mem_flag_mode_ssp_pin 
+3b26 c2833b2b bbit1 flag_mode_ssp_pin_recieve_dhkey_bit ,module_hci_cmd_spp_number_comparison_result_is1 
+3b27 20600000 rtn 
+
+dhkey_not_accept:
+3b28 70466100 jam 0 ,mem_flag_mode_ssp_pin 
+3b29 700a9921 jam bt_cmd_dhkey_not_accept ,mem_fifo_temp 
+3b2a 20207d8f branch ui_ipc_send_cmd 
+
+module_hci_cmd_spp_number_comparison_result_is1:
+3b2b c2805f95 bbit1 flag_mode_ssp_pin_comparison_result_bit ,number_comparison_successed 
+3b2c 20203b28 branch dhkey_not_accept 
+
+module_hci_cmd_set_credit_given:
+3b2d 6800c682 fetch 1 ,mem_ui_state_map 
+3b2e c4020000 rtnbit0 ui_state_bt_spp_conn 
+3b2f 6800c56b fetch 1 ,mem_credit_flag 
+3b30 c1000000 rtneq credit_disable 
+3b31 e8608000 ifetch 1 ,contru 
+3b32 6808c569 fetcht 1 ,mem_credit_given 
+3b33 98408400 iadd temp ,temp 
+3b34 6008c569 storet 1 ,mem_credit_given 
+3b35 20600000 rtn 
+
+module_hci_cmd_auto_adv:
+3b36 df200040 arg 0x40 ,loopcnt 
+3b37 d8a0436f arg mem_le_adv_data_len ,contw 
+3b38 20407ed4 call clear_mem 
+3b39 58000000 setarg 0 
+3b3a 60008ab2 store 1 ,mem_regb 
+3b3b 1a220600 copy rega ,contru 
+
+module_hci_cmd_auto_adv_loop:
+3b3c 18627e00 copy contru ,pdata 
+3b3d 60010ab6 store 2 ,mem_regc 
+3b3e 20403b64 call module_hci_cmd_auto_adv_adv_analys 
+3b3f 68008ab2 fetch 1 ,mem_regb 
+3b40 68088aa2 fetcht 1 ,mem_temp 
+3b41 18408401 increase 1 ,temp 
+3b42 9840fe00 iadd temp ,pdata 
+3b43 60008ab2 store 1 ,mem_regb 
+3b44 1fe67c1f sub pdata ,31 ,null 
+3b45 24213b50 nbranch module_hci_cmd_auto_adv_store_scan ,positive 
+
+module_hci_cmd_auto_adv_store_adv:
+3b46 6808c36f fetcht 1 ,mem_le_adv_data_len 
+3b47 58004370 setarg mem_le_adv_data 
+3b48 9840fe00 iadd temp ,pdata 
+3b49 60010abb store 2 ,mem_contw 
+3b4a 68088aa2 fetcht 1 ,mem_temp 
+3b4b 18408401 increase 1 ,temp 
+3b4c 6800c36f fetch 1 ,mem_le_adv_data_len 
+3b4d 9840fe00 iadd temp ,pdata 
+3b4e 6000c36f store 1 ,mem_le_adv_data_len 
+3b4f 20203b59 branch module_hci_cmd_auto_adv_store_common 
+
+module_hci_cmd_auto_adv_store_scan:
+3b50 6808c38f fetcht 1 ,mem_le_scan_data_len 
+3b51 58004390 setarg mem_le_scan_data 
+3b52 9840fe00 iadd temp ,pdata 
+3b53 60010abb store 2 ,mem_contw 
+3b54 68088aa2 fetcht 1 ,mem_temp 
+3b55 18408401 increase 1 ,temp 
+3b56 6800c38f fetch 1 ,mem_le_scan_data_len 
+3b57 9840fe00 iadd temp ,pdata 
+3b58 6000c38f store 1 ,mem_le_scan_data_len 
+
+module_hci_cmd_auto_adv_store_common:
+3b59 68010abb fetch 2 ,mem_contw 
+3b5a 1fe20a00 copy pdata ,contw 
+3b5b 68010ab6 fetch 2 ,mem_regc 
+3b5c 1fe20600 copy pdata ,contru 
+3b5d 18427200 copy temp ,loopcnt 
+3b5e 204066ea call uart_copy_rx_bytes_fast 
+3b5f 68008b04 fetch 1 ,mem_module_uart_len 
+3b60 68088ab2 fetcht 1 ,mem_regb 
+3b61 98467c00 isub temp ,null 
+3b62 2422bb3c nbranch module_hci_cmd_auto_adv_loop ,zero 
+3b63 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_auto_adv_adv_analys:
+3b64 e8608000 ifetch 1 ,contru 
+3b65 60008aa2 store 1 ,mem_temp 
+3b66 e8608000 ifetch 1 ,contru 
+3b67 60008aae store 1 ,mem_rega 
+3b68 20600000 rtn 
+
+module_hci_cmd_power_request:
+3b69 d8400000 arg 0 ,temp 
+3b6a da200002 arg 2 ,rega 
+3b6b 680146b4 fetch 2 ,mem_module_vdd_quotient 
+3b6c 60010ac2 store 2 ,mem_event_cmd_response_content 
+3b6d da400ac2 arg mem_event_cmd_response_content ,regb 
+3b6e 20203c25 branch module_hci_event_set_cmd 
+
+module_hci_cmd_power_set:
+3b6f 68008b04 fetch 1 ,mem_module_uart_len 
+3b70 c080bc17 bne 1 ,module_hci_event_receive_invalid_cmd 
+3b71 e8608000 ifetch 1 ,contru 
+3b72 6000c6b2 store 1 ,mem_module_read_vdd_flag 
+3b73 58000000 setarg 0x00 
+3b74 600146b4 store 2 ,mem_module_vdd_quotient 
+3b75 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_passkey_entry:
+3b76 e8620000 ifetch 4 ,contru 
+3b77 6002468a store 4 ,mem_pin 
+3b78 70468904 jam 4 ,mem_pin_length 
+3b79 70466300 jam 0 ,mem_authentication_passkey_times 
+3b7a 20403c1a call module_hci_event_receive_valid_cmd 
+3b7b 20205f31 branch authentication_passkey 
+
+module_hci_cmd_set_gpio:
+3b7c 68008b04 fetch 1 ,mem_module_uart_len 
+3b7d c081bc17 bne 3 ,module_hci_event_receive_invalid_cmd 
+3b7e e8608000 ifetch 1 ,contru 
+3b7f c0003b82 beq hci_cmd_config_gpio_input ,module_set_gpio_input 
+3b80 c000bb8a beq hci_cmd_config_gpio_output ,module_set_gpio_output 
+3b81 20203c17 branch module_hci_event_receive_invalid_cmd 
+
+module_set_gpio_input:
+3b82 e8688000 ifetcht 1 ,contru 
+3b83 e8608000 ifetch 1 ,contru 
+3b84 c0013b88 beq gpio_input_high_impedance ,module_set_gpio_high_impedance 
+3b85 7d3a0407 nsetflag blank ,7 ,temp 
+3b86 204067fb call gpio_config_input 
+3b87 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_set_gpio_high_impedance:
+3b88 20406806 call gpio_set_high_impedance 
+3b89 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_set_gpio_output:
+3b8a e8688000 ifetcht 1 ,contru 
+3b8b 20406812 call gpio_config_output0 
+3b8c e8608000 ifetch 1 ,contru 
+3b8d 2feffe00 isolate1 0 ,pdata 
+3b8e 2040682c call gpio_out_flag 
+3b8f 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_read_gpio:
+3b90 68008b04 fetch 1 ,mem_module_uart_len 
+3b91 c080bc17 bne 1 ,module_hci_event_receive_invalid_cmd 
+3b92 e8688000 ifetcht 1 ,contru 
+3b93 2040681d call gpio_get_bit 
+3b94 58000000 setarg 0x0 
+3b95 7d20fe00 nsetflag true ,0 ,pdata 
+3b96 da200001 arg 1 ,rega 
+3b97 20203b0a branch module_hci_event_set_cmd_send_response 
+
+module_hci_cmd_le_set_pairing_mode:
+3b98 1a220600 copy rega ,contru 
+3b99 e8608000 ifetch 1 ,contru 
+3b9a 1fe20400 copy pdata ,temp 
+3b9b c040bba3 beq le_pairing_mode_secure_connect_justwork ,module_le_set_pairing_mode_secure_justwork 
+3b9c c0413ba8 beq le_pairing_mode_secure_connect_numeric ,module_le_set_pairing_mode_secure_numeric 
+3b9d c041bbae beq le_pairing_mode_secure_connect_passkey ,module_le_set_pairing_mode_secure_passkey 
+3b9e 6000c4c6 store 1 ,mem_le_pairing_mode 
+3b9f c0003bb3 beq le_pairing_mode_none ,module_le_set_no_pairing 
+3ba0 c000bbb6 beq le_pairing_mode_lagacy_justwork ,module_le_set_pairing_mode_lagacy_just_work 
+3ba1 c0013bb8 beq le_pairing_mode_lagacy_passkey ,module_le_set_pairing_mode_lagacy_passkey 
+3ba2 20203c17 branch module_hci_event_receive_invalid_cmd 
+
+module_le_set_pairing_mode_secure_justwork:
+3ba3 6800c4be fetch 1 ,mem_le_secure_connect_enable 
+3ba4 203a3c17 branch module_hci_event_receive_invalid_cmd ,blank 
+3ba5 6008c4c6 storet 1 ,mem_le_pairing_mode 
+3ba6 7044560d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+3ba7 20203bb4 branch module_le_set_noinputnooutput 
+
+module_le_set_pairing_mode_secure_numeric:
+3ba8 6800c4be fetch 1 ,mem_le_secure_connect_enable 
+3ba9 203a3c17 branch module_hci_event_receive_invalid_cmd ,blank 
+3baa 6008c4c6 storet 1 ,mem_le_pairing_mode 
+3bab 7044560d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+3bac 70445401 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
+3bad 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_le_set_pairing_mode_secure_passkey:
+3bae 6800c4be fetch 1 ,mem_le_secure_connect_enable 
+3baf 203a3c17 branch module_hci_event_receive_invalid_cmd ,blank 
+3bb0 6008c4c6 storet 1 ,mem_le_pairing_mode 
+3bb1 7044560d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+3bb2 20203bb9 branch module_le_set_displayonly 
+
+module_le_set_no_pairing:
+3bb3 70445600 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
+
+module_le_set_noinputnooutput:
+3bb4 70445403 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
+3bb5 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_le_set_pairing_mode_lagacy_just_work:
+3bb6 70445605 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+3bb7 20203bb4 branch module_le_set_noinputnooutput 
+
+module_le_set_pairing_mode_lagacy_passkey:
+3bb8 70445605 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+
+module_le_set_displayonly:
+3bb9 70445400 jam flag_iocap_displayonly ,mem_le_pres_iocap 
+3bba 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_set_adv_data:
+3bbb 68008b04 fetch 1 ,mem_module_uart_len 
+3bbc 1fe67c1f sub pdata ,31 ,null 
+3bbd 24213c17 nbranch module_hci_event_receive_invalid_cmd ,positive 
+3bbe 6000c36f store 1 ,mem_le_adv_data_len 
+3bbf 1fe27200 copy pdata ,loopcnt 
+3bc0 1a220600 copy rega ,contru 
+3bc1 d8a04370 arg mem_le_adv_data ,contw 
+3bc2 204066ea call uart_copy_rx_bytes_fast 
+3bc3 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_set_scan_data:
+3bc4 68008b04 fetch 1 ,mem_module_uart_len 
+3bc5 1fe67c1f sub pdata ,31 ,null 
+3bc6 24213c17 nbranch module_hci_event_receive_invalid_cmd ,positive 
+3bc7 6000c38f store 1 ,mem_le_scan_data_len 
+3bc8 1fe27200 copy pdata ,loopcnt 
+3bc9 1a220600 copy rega ,contru 
+3bca d8a04390 arg mem_le_scan_data ,contw 
+3bcb 204066ea call uart_copy_rx_bytes_fast 
+3bcc 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_send_conn_update_req:
+3bcd 68014682 fetch 2 ,mem_ui_state_map 
+3bce c304bc17 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+3bcf 68008b04 fetch 1 ,mem_module_uart_len 
+3bd0 c0843c17 bne 0x08 ,module_hci_event_receive_invalid_cmd 
+3bd1 1a220600 copy rega ,contru 
+3bd2 e8640000 ifetch 8 ,contru 
+3bd3 60044496 store 8 ,mem_le_interval_min 
+3bd4 700a9912 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+3bd5 20407d8f call ui_ipc_send_cmd 
+3bd6 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_le_adv_parameter:
+3bd7 e8610000 ifetch 2 ,contru 
+3bd8 60014482 store 2 ,mem_le_adv_interval 
+3bd9 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_start_pairing:
+3bda 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+3bdb 203a3c17 branch module_hci_event_receive_invalid_cmd ,blank 
+3bdc 6800c4c4 fetch 1 ,mem_le_pairing_state 
+3bdd c0803c17 bne flag_le_pairing_null ,module_hci_event_receive_invalid_cmd 
+3bde 6800c4c5 fetch 1 ,mem_le_enc_state 
+3bdf c0803c17 bne flag_le_enc_null ,module_hci_event_receive_invalid_cmd 
+3be0 20407e25 call check_51cmd_le_smp_sec_req 
+3be1 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_wake_gpio:
+3be2 68008b04 fetch 1 ,mem_module_uart_len 
+3be3 c082bc17 bne 5 ,module_hci_event_receive_invalid_cmd 
+3be4 e8608000 ifetch 1 ,contru 
+3be5 6000c6a2 store 1 ,mem_module_mcu_wake_pin 
+3be6 e8620000 ifetch 4 ,contru 
+3be7 600246a3 store 4 ,mem_module_mcu_wake_delay_us 
+3be8 6808c6a2 fetcht 1 ,mem_module_mcu_wake_pin 
+3be9 2040680e call gpio_config_output 
+3bea 20403cbc call module_set_mcu_wake_pin_low 
+3beb 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_tx_power:
+3bec 68008b04 fetch 1 ,mem_module_uart_len 
+3bed c080bc17 bne 0x01 ,module_hci_event_receive_invalid_cmd 
+3bee e8608000 ifetch 1 ,contru 
+3bef 6000c1de store 1 ,mem_tx_power 
+3bf0 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_confirm_gkey:
+3bf1 e8608000 ifetch 1 ,contru 
+3bf2 c000bbfa beq 0x01 ,module_hci_cmd_le_confirm_gkey_fail 
+3bf3 6800c4c1 fetch 1 ,mem_le_secure_connect_state 
+3bf4 c001bbf8 beq le_sc_stat_send_public_key ,module_hci_cmd_le_confirm_gkey_ok 
+3bf5 c0033bf8 beq le_sc_stat_receive_dhkey ,module_hci_cmd_le_confirm_gkey_ok 
+3bf6 c003bbf8 beq le_sc_stat_wait_confirm_gkey ,module_hci_cmd_le_confirm_gkey_ok 
+3bf7 20203c17 branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_le_confirm_gkey_ok:
+3bf8 7044c201 jam flag_le_sc_confrim_gkey_ok ,mem_le_sc_confirm_gkey_flag 
+3bf9 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_confirm_gkey_fail:
+3bfa 20405b53 call le_send_pairing_confirm_value_failed 
+3bfb 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_reject_justwork_flag:
+3bfc 68008b04 fetch 1 ,mem_module_uart_len 
+3bfd c080bc17 bne 0x01 ,module_hci_event_receive_invalid_cmd 
+3bfe 20403c1a call module_hci_event_receive_valid_cmd 
+3bff e8608000 ifetch 1 ,contru 
+3c00 203a60cb branch classic_bt_clr_reject_justwork_flag ,blank 
+3c01 202060c9 branch classic_bt_set_reject_justwork_flag 
+
+module_hci_cmd_reset_chip:
+3c02 20403c1a call module_hci_event_receive_valid_cmd 
+3c03 20407f9e call wait_uarttx 
+3c04 70801001 jam 0x01 ,core_reset 
+3c05 20202a8e branch loop 
+
+module_hci_cmd_le_set_fixed_passkey:
+3c06 68008b04 fetch 1 ,mem_module_uart_len 
+3c07 c0003c17 beq 0 ,module_hci_event_receive_invalid_cmd 
+3c08 e8608000 ifetch 1 ,contru 
+3c09 203a3c13 branch module_hci_cmd_le_set_random_passkey ,blank 
+3c0a 68008b04 fetch 1 ,mem_module_uart_len 
+3c0b c082bc17 bne 5 ,module_hci_event_receive_invalid_cmd 
+3c0c e8620000 ifetch 4 ,contru 
+3c0d d84f4240 arg 1000000 ,temp 
+3c0e 98467c00 isub temp ,null 
+3c0f 20213c17 branch module_hci_event_receive_invalid_cmd ,positive 
+3c10 600244c7 store 4 ,mem_le_tk 
+3c11 2040580c call le_set_config_fixed_tk 
+3c12 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_set_random_passkey:
+3c13 2040580e call le_clr_config_fixed_tk 
+3c14 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_test_cmde_close_lpm:
+3c15 70409100 jam 0 ,mem_lpm_mode 
+3c16 20203c1a branch module_hci_event_receive_valid_cmd 
+
+module_hci_event_receive_invalid_cmd:
+3c17 d8400001 arg 1 ,temp 
+3c18 da200000 arg 0 ,rega 
+3c19 20203c25 branch module_hci_event_set_cmd 
+
+module_hci_event_receive_valid_cmd:
+3c1a d8400000 arg 0 ,temp 
+3c1b da200000 arg 0 ,rega 
+3c1c 20203c25 branch module_hci_event_set_cmd 
+
+module_hci_event_spp_connect:
+3c1d 700b0300 jam hci_event_spp_conn_rep ,mem_module_uart_opcode 
+3c1e 20203c49 branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_le_connect:
+3c1f 700b0302 jam hci_event_le_conn_rep ,mem_module_uart_opcode 
+3c20 20203c49 branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_spp_disconnect:
+3c21 700b0303 jam hci_event_spp_dis_rep ,mem_module_uart_opcode 
+3c22 20203c49 branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_le_disconnect:
+3c23 700b0305 jam hci_event_le_dis_rep ,mem_module_uart_opcode 
+3c24 20203c49 branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_set_cmd:
+3c25 68008b03 fetch 1 ,mem_module_uart_opcode 
+3c26 1fe22600 copy pdata ,regc 
+3c27 700b0306 jam hci_event_cmd_res ,mem_module_uart_opcode 
+3c28 58000002 setarg 2 
+3c29 9a20fe00 iadd rega ,pdata 
+3c2a 20403ca7 call module_hci_prepare_tx 
+3c2b 1a627e00 copy regc ,pdata 
+3c2c e1408000 istore 1 ,contwu 
+3c2d e1488000 istoret 1 ,contwu 
+3c2e 1a227200 copy rega ,loopcnt 
+3c2f 1a420c00 copy regb ,contr 
+3c30 204066e4 call uart_copy_tx_bytes 
+3c31 202066c5 branch uartd_send 
+
+module_hci_event_receive_spp_data:
+3c32 2040397f call module_spp_clear_last_transmite_clock 
+3c33 700b0307 jam hci_event_spp_data_rep ,mem_module_uart_opcode 
+3c34 680084ff fetch 1 ,mem_current_length 
+3c35 207a0000 rtn blank 
+3c36 20403ca7 call module_hci_prepare_tx 
+3c37 680084ff fetch 1 ,mem_current_length 
+3c38 1fe27200 copy pdata ,loopcnt 
+3c39 68010501 fetch 2 ,mem_rfcomm_uih_payload_ptr 
+3c3a 1fe20c00 copy pdata ,contr 
+3c3b 204066d1 call uart_copy_tx_bytes_fast 
+3c3c 202066c5 branch uartd_send 
+
+module_hci_event_receive_le_data:
+3c3d 700b0308 jam hci_event_le_data_rep ,mem_module_uart_opcode 
+3c3e 6800c6b6 fetch 1 ,mem_module_le_rx_data_len 
+3c3f 1fe27200 icopy loopcnt 
+3c40 1fe0fe02 increase 2 ,pdata 
+3c41 20403ca7 call module_hci_prepare_tx 
+3c42 680146b9 fetch 2 ,mem_module_le_rx_data_handle 
+3c43 e1410000 istore 2 ,contwu 
+3c44 680146b7 fetch 2 ,mem_module_le_rx_data_address 
+3c45 1fe20c00 icopy contr 
+3c46 204066d1 call uart_copy_tx_bytes_fast 
+3c47 202066c5 branch uartd_send 
+
+module_hci_event_enter_standby_mode:
+3c48 700b0309 jam hci_event_standby_rep ,mem_module_uart_opcode 
+
+module_hci_event_enter_standby_mode_len0:
+3c49 58000000 setarg 0 
+3c4a 20403ca7 call module_hci_prepare_tx 
+3c4b 202066c5 branch uartd_send 
+
+module_hci_event_status_res:
+3c4c 700b030a jam hci_event_status_res ,mem_module_uart_opcode 
+3c4d 58000001 setarg 1 
+3c4e 20403ca7 call module_hci_prepare_tx 
+3c4f 20403c5d call module_hci_read_bt_status 
+3c50 68014682 fetch 2 ,mem_ui_state_map 
+3c51 d8e00002 arg ui_state_bt_hid_conn ,queue 
+3c52 afefffff qisolate1 pdata 
+3c53 79208403 setflag true ,3 ,temp 
+3c54 d8e00009 arg ui_state_ble_connected ,queue 
+3c55 afefffff qisolate1 pdata 
+3c56 79208405 setflag true ,5 ,temp 
+3c57 6800c682 fetch 1 ,mem_ui_state_map 
+3c58 d8e00004 arg ui_state_bt_spp_conn ,queue 
+3c59 afefffff qisolate1 pdata 
+3c5a 79208404 setflag true ,4 ,temp 
+3c5b e1488000 istoret 1 ,contwu 
+3c5c 202066c5 branch uartd_send 
+
+module_hci_read_bt_status:
+3c5d d8400000 arg 0 ,temp 
+3c5e 6800c093 fetch 1 ,mem_scan_mode 
+3c5f d8e00000 arg inq_scan_mode ,queue 
+3c60 afefffff qisolate1 pdata 
+3c61 79208400 setflag true ,0 ,temp 
+3c62 d8e00001 arg page_scan_mode ,queue 
+3c63 afefffff qisolate1 pdata 
+3c64 79208401 setflag true ,1 ,temp 
+3c65 6800c36e fetch 1 ,mem_le_adv_enable 
+3c66 d8e00000 arg 0 ,queue 
+3c67 afefffff qisolate1 pdata 
+3c68 79208402 setflag true ,2 ,temp 
+3c69 20600000 rtn 
+
+module_hci_event_store_device:
+3c6a 700b030d jam hci_event_nvram_rep ,mem_module_uart_opcode 
+3c6b 6800c217 fetch 1 ,mem_nv_data_number 
+3c6c 1feffe22 mul32 pdata ,34 ,pdata 
+3c6d 1fe27200 icopy loopcnt 
+3c6e 20403ca7 call module_hci_prepare_tx 
+3c6f 68014215 fetch 2 ,mem_nv_data_ptr 
+3c70 1fe20c00 icopy contr 
+3c71 204066d1 call uart_copy_tx_bytes_fast 
+3c72 202066c5 branch uartd_send 
+
+module_hci_event_gkey_generate:
+3c73 700b030e jam hci_event_gkey ,mem_module_uart_opcode 
+3c74 58000004 setarg 4 
+3c75 20403ca7 call module_hci_prepare_tx 
+3c76 680209ba fetch 4 ,mem_gkey 
+3c77 e1420000 istore 4 ,contwu 
+3c78 202066c5 branch uartd_send 
+
+module_hci_event_invalid_packet:
+3c79 700b030f jam hci_event_invalid_packet ,mem_module_uart_opcode 
+3c7a 68110112 hfetch 2 ,core_uart_rxitems 
+3c7b d84000ff arg 0xff ,temp 
+3c7c 20407fdd call not_greater_than 
+3c7d 1fe27200 copy pdata ,loopcnt 
+3c7e 20403ca7 call module_hci_prepare_tx 
+3c7f 204066cb call uartd_prepare_rx 
+3c80 20406703 call uart_copy_rx2tx 
+3c81 202066c5 branch uartd_send 
+
+module_hci_event_passkey_entry_mode:
+3c82 700b0310 jam hci_event_get_passkey ,mem_module_uart_opcode 
+3c83 20203c49 branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_le_tk:
+3c84 700b0311 jam hci_event_le_tk ,mem_module_uart_opcode 
+3c85 58000004 setarg 4 
+3c86 20403ca7 call module_hci_prepare_tx 
+3c87 680244c7 fetch 4 ,mem_le_tk 
+3c88 e1420000 istore 4 ,contwu 
+3c89 202066c5 branch uartd_send 
+
+module_hci_event_le_pairing_fail:
+3c8a da200180 arg flag_ble_pairing_fail ,rega 
+3c8b 20203c91 branch module_hci_event_pairing_completed 
+
+module_hci_event_le_pairing_success:
+3c8c da200080 arg flag_ble_pairing_success ,rega 
+3c8d 20203c91 branch module_hci_event_pairing_completed 
+
+module_hci_event_bt_pairing_fail:
+3c8e da200101 arg flag_bt_pairing_fail ,rega 
+3c8f 20203c91 branch module_hci_event_pairing_completed 
+
+module_hci_event_bt_pairing_success:
+3c90 da200001 arg flag_bt_pairing_success ,rega 
+
+module_hci_event_pairing_completed:
+3c91 70466100 jam 0 ,mem_flag_mode_ssp_pin 
+3c92 700b0314 jam hci_event_le_pairing_state ,mem_module_uart_opcode 
+3c93 58000002 setarg 2 
+3c94 20403ca7 call module_hci_prepare_tx 
+3c95 1a227e00 copy rega ,pdata 
+3c96 e1410000 istore 2 ,contwu 
+3c97 202066c5 branch uartd_send 
+
+module_hci_event_pause_enc:
+3c98 da600000 arg flag_event_pause_enc ,regc 
+3c99 20203c9b branch module_hci_event_enc 
+
+module_hci_event_start_enc:
+3c9a da600001 arg flag_event_start_enc ,regc 
+
+module_hci_event_enc:
+3c9b 700b0315 jam hci_event_le_encryption_state ,mem_module_uart_opcode 
+3c9c 58000001 setarg 1 
+3c9d 20403ca7 call module_hci_prepare_tx 
+3c9e 1a627e00 copy regc ,pdata 
+3c9f e1408000 istore 1 ,contwu 
+3ca0 202066c5 branch uartd_send 
+
+module_hci_event_le_gkey:
+3ca1 700b031d jam hci_event_le_gkey ,mem_module_uart_opcode 
+3ca2 58000004 setarg 4 
+3ca3 20403ca7 call module_hci_prepare_tx 
+3ca4 680209ba fetch 4 ,mem_gkey 
+3ca5 e1420000 istore 4 ,contwu 
+3ca6 202066c5 branch uartd_send 
+
+module_hci_prepare_tx:
+3ca7 700b0202 jam 0x02 ,mem_module_uart_cmd 
+3ca8 60008b04 store 1 ,mem_module_uart_len 
+3ca9 600c0aa2 storet 8 ,mem_temp 
+3caa 44f1401c bpatch patch1c_2 ,mem_patch1c 
+3cab 20403cb1 call module_set_mcu_wake_pin_high_delay 
+3cac 680c0aa2 fetcht 8 ,mem_temp 
+3cad 204066c2 call uartd_prepare_tx 
+3cae 68018b02 fetch 3 ,mem_module_uart_cmd 
+3caf e1418000 istore 3 ,contwu 
+3cb0 20600000 rtn 
+
+module_set_mcu_wake_pin_high_delay:
+3cb1 20403cba call module_check_mcu_wake_pin_high 
+3cb2 20608000 rtn true 
+
+module_set_mcu_wake_pin_h_delay:
+3cb3 20403cb8 call module_set_mcu_wake_pin_high 
+3cb4 680246a3 fetch 4 ,mem_module_mcu_wake_delay_us 
+3cb5 1feb7e00 rshift2 pdata ,pdata 
+3cb6 207a0000 rtn blank 
+3cb7 20203cbe branch delay 
+
+module_set_mcu_wake_pin_high:
+3cb8 6808c6a2 fetcht 1 ,mem_module_mcu_wake_pin 
+3cb9 20206829 branch gpio_out_active 
+
+module_check_mcu_wake_pin_high:
+3cba 6808c6a2 fetcht 1 ,mem_module_mcu_wake_pin 
+3cbb 2020681b branch gpio_check_active 
+
+module_set_mcu_wake_pin_low:
+3cbc 6808c6a2 fetcht 1 ,mem_module_mcu_wake_pin 
+3cbd 20206825 branch gpio_out_inactive 
+
+delay:
+3cbe 1fe0ffff increase -1 ,pdata 
+3cbf 20000026 nop 38 
+3cc0 243a3cbe nbranch delay ,blank 
+3cc1 20600000 rtn 
+
+module_le_receive_data:
+3cc2 20403ad4 call module_check_ble_encrypt_state 
+3cc3 20740000 rtn user 
+3cc4 1a227e00 copy rega ,pdata 
+3cc5 600146b7 store 2 ,mem_module_le_rx_data_address 
+3cc6 1a427e00 copy regb ,pdata 
+3cc7 6000c6b6 store 1 ,mem_module_le_rx_data_len 
+3cc8 68010478 fetch 2 ,mem_le_att_handle 
+3cc9 680946bb fetcht 2 ,mem_module_data_write_handle 
+3cca 98467c00 isub temp ,null 
+3ccb 2022bccf branch module_le_receive_data_ok ,zero 
+3ccc 680946bd fetcht 2 ,mem_module_data_write_handle2 
+3ccd 98467c00 isub temp ,null 
+3cce 24628000 nrtn zero 
+
+module_le_receive_data_ok:
+3ccf 600146b9 store 2 ,mem_module_le_rx_data_handle 
+3cd0 20203c3d branch module_hci_event_receive_le_data 
+
+module_exit_sniff:
+3cd1 6800c6bf fetch 1 ,mem_module_flag 
+3cd2 c3828000 rtnbit1 moudle_task_unsniff 
+3cd3 20403cf0 call module_set_unsniff_task_flag 
+3cd4 2020340c branch app_bt_sniff_exit 
+
+module_set_lpm_mult_2:
+3cd5 70417202 jam 2 ,mem_lpm_mult 
+3cd6 20600000 rtn 
+
+module_bb_event_timer:
+3cd7 20203cd8 branch module_read_vdd_timer 
+
+module_read_vdd_timer:
+3cd8 6800c6b2 fetch 1 ,mem_module_read_vdd_flag 
+3cd9 207a0000 rtn blank 
+3cda 6800c6b3 fetch 1 ,mem_module_read_vdd_count 
+3cdb 207a0000 rtn blank 
+3cdc 1fe0ffff increase -1 ,pdata 
+3cdd 6000c6b3 store 1 ,mem_module_read_vdd_count 
+3cde 247a0000 nrtn blank 
+3cdf 7046b30a jam flag_module_read_vdd_count ,mem_module_read_vdd_count 
+3ce0 204068eb call adc_set_mode 
+3ce1 20406908 call vdd_calculate_by_mode 
+3ce2 1fe6fc64 div pdata ,0x64 
+3ce3 20407f86 call wait_div_end 
+3ce4 1807fe00 quotient pdata 
+3ce5 18070400 remainder temp 
+3ce6 6000c6b4 store 1 ,mem_module_vdd_quotient 
+3ce7 6008c6b5 storet 1 ,mem_module_vdd_remainder 
+3ce8 20600000 rtn 
+
+module_control_air_flow:
+3ce9 20407fb4 call check_uart_tx_buff 
+3cea 202133d9 branch app_l2cap_flow_control_enable ,positive 
+3ceb 202033db branch app_l2cap_flow_control_disable 
+
+module_set_sniff_task_flag:
+3cec d8e00006 arg moudle_task_sniff ,queue 
+3ced 20203cfc branch module_set_state 
+
+module_clear_sniff_task_flag:
+3cee d8e00006 arg moudle_task_sniff ,queue 
+3cef 20203cf8 branch module_clr_state 
+
+module_set_unsniff_task_flag:
+3cf0 d8e00005 arg moudle_task_unsniff ,queue 
+3cf1 20203cfc branch module_set_state 
+
+module_clear_unsniff_task_flag:
+3cf2 d8e00005 arg moudle_task_unsniff ,queue 
+3cf3 20203cf8 branch module_clr_state 
+
+module_set_le_tx_data_flag:
+3cf4 d8e00004 arg module_flag_ble_data_finish ,queue 
+3cf5 20203cfc branch module_set_state 
+
+module_clear_le_tx_data_flag:
+3cf6 d8e00004 arg module_flag_ble_data_finish ,queue 
+3cf7 20203cf8 branch module_clr_state 
+
+module_clr_state:
+3cf8 6800c6bf fetch 1 ,mem_module_flag 
+3cf9 f93ffe00 qset0 pdata 
+3cfa 6000c6bf store 1 ,mem_module_flag 
+3cfb 20600000 rtn 
+
+module_set_state:
+3cfc 6800c6bf fetch 1 ,mem_module_flag 
+3cfd f9207e00 qset1 pdata 
+3cfe 6000c6bf store 1 ,mem_module_flag 
+3cff 20600000 rtn 
+
+mouse_init:
+3d00 20403d39 call mouse_setting_config 
+3d01 2040640f call spi_ncs_enable 
+3d02 204040c6 call mouse_init_sunt 
+3d03 20403d66 call mouse_dpi_config 
+3d04 20406411 call spi_ncs_disable 
+3d05 20758000 rtn wake 
+3d06 20403d16 call mouse_cheak_enable_usb 
+3d07 20403d19 call mouse_cb_fuction 
+3d08 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3d09 c3880000 rtnbit1 mouse_enable_usb 
+3d0a 20403d4e call mouse_wakeup_from_power 
+3d0b c6130000 rtnmark1 mark_24g 
+3d0c 68014682 fetch 2 ,mem_ui_state_map 
+3d0d c28642b0 bbit1 ui_state_btn_down ,mouse_start_discovery 
+3d0e 202042a2 branch mouse_check_reconn_target 
+
+mouse_delay_4s:
+3d0f 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3d10 c40d8000 rtnbit0 mouse_enable_init_delay 
+3d11 df200014 arg 20 ,loopcnt 
+
+mouse_delay_20ms:
+3d12 58030d40 setarg 200000 
+3d13 20402a8f call sleep 
+3d14 c2007ec1 loop delay_10ms 
+3d15 20600000 rtn 
+
+mouse_cheak_enable_usb:
+3d16 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3d17 c4080000 rtnbit0 mouse_enable_usb 
+3d18 202048ea branch usb_init 
+
+mouse_cb_fuction:
+3d19 5800416d setarg mouse_le 
+3d1a 600141ef store 2 ,mem_cb_le_process 
+3d1b 58003f77 setarg mouse_send_process 
+3d1c 600141f1 store 2 ,mem_cb_bt_process 
+3d1d 58003ebb setarg mouse_process_lpm_before 
+3d1e 600141ed store 2 ,mem_cb_before_lpm 
+3d1f 5800417c setarg mouse_priority_bb_event 
+3d20 600141f5 store 2 ,mem_cb_bb_event_process 
+3d21 58003de3 setarg mouse_idle 
+3d22 600141f3 store 2 ,mem_cb_idle_process 
+3d23 58003eb3 setarg mouse_before_hibernate 
+3d24 600141eb store 2 ,mem_cb_before_hibernate 
+3d25 58003d5b setarg le_mouse_bb_event_connect_complete 
+3d26 600141f9 store 2 ,mem_cb_att_write 
+3d27 20402c7a call g24_head_ptr2regc 
+3d28 58004401 setarg mouse_g24_package_data 
+3d29 1a608ad8 add regc ,offset_24g_cb_data ,contw 
+3d2a e0a10000 istore 2 ,contw 
+3d2b 58004406 setarg mouse_g24_enter_lpm 
+3d2c 1a608ada add regc ,offset_24g_cb_lpm_prepare ,contw 
+3d2d e0a10000 istore 2 ,contw 
+3d2e 58003ebf setarg mouse_lpm_before_common 
+3d2f 1a608adc add regc ,offset_24g_cb_lpm_before ,contw 
+3d30 e0a10000 istore 2 ,contw 
+3d31 580041f9 setarg mouse_bb_event_timer 
+3d32 600141fd store 2 ,mem_cb_event_timer 
+3d33 58003d36 setarg mouse_spi_write_flash_cb 
+3d34 60014201 store 2 ,mem_cb_spi_flash_write_complate 
+3d35 20600000 rtn 
+
+mouse_spi_write_flash_cb:
+
+mouse_spi_init:
+3d36 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3d37 c30964d7 bbit0 mouse_enable_spi2 ,spid_init 
+3d38 202064da branch spid_init2 
+
+mouse_setting_config:
+3d39 20758000 rtn wake 
+3d3a 20402c9d call g24_set_device_addr 
+3d3b 20403e6e call mouse_gpio_init 
+3d3c 20403e1e call mouse_param_init 
+3d3d 20403e54 call mouse_adc_init 
+3d3e 20405810 call le_set_config_fixed_ltk 
+3d3f 20405839 call le_set_justwork 
+3d40 2040582c call le_set_fixed_ltk 
+3d41 20405818 call le_set_config_read_authentication 
+3d42 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3d43 c28a3d46 bbit1 mouse_enable_eeprom ,mouse_init_iic 
+3d44 c289c414 bbit1 mouse_enable_flash ,mouse_load_flash_info_cheak 
+3d45 20600000 rtn 
+
+mouse_init_iic:
+3d46 2040659c call iic_init_390k 
+3d47 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3d48 2feffe19 isolate1 mouse_enable_2k_eeprom ,pdata 
+3d49 2440e5c2 ncall clear_eeprom_size_2k ,true 
+3d4a 2040443f call mouse_load_eeprom_dpi 
+3d4b 20403dc9 call mouse_init_environment 
+3d4c 204041aa call mouse_set_24g_addr_eeprom 
+3d4d 202065df branch iicd_read_eep_data 
+
+mouse_wakeup_from_power:
+3d4e 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3d4f c30f3d53 bbit0 mouse_enable_wakeup_from_power ,mouse_wakeup_no_from_power 
+3d50 68008abd fetch 1 ,mem_wakup_from_power_flag 
+3d51 2fec0003 isolate0 gpio_latch ,pdata 
+3d52 24608000 nrtn true 
+
+mouse_wakeup_no_from_power:
+3d53 6800c71f fetch 1 ,mem_reconn_times_init 
+3d54 6000c71e store 1 ,mem_reconn_times 
+3d55 6800c6f5 fetch 1 ,mem_config_function_enable 
+3d56 c3830000 rtnbit1 enable_select_device_by_switch 
+
+mouse_start_24g_mode:
+3d57 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3d58 c4088000 rtnbit0 mouse_enable_24g 
+3d59 c28eaee4 bbit1 mouse_enable_auto_24g_paring ,g24_auto_pair_start 
+3d5a 20202f2c branch g24_check_51cmd_start_24g 
+
+le_mouse_bb_event_connect_complete:
+3d5b 68008478 fetch 1 ,mem_le_att_handle 
+3d5c 1fe67e1a sub pdata ,26 ,pdata 
+3d5d 24628000 nrtn zero 
+3d5e 700a9912 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+3d5f 20407d8f call ui_ipc_send_cmd 
+
+mouse_le_write_enable:
+3d60 d8e00000 arg write_req_enable_flag ,queue 
+3d61 202041b9 branch mouse_le_enable_connect_flag 
+
+mouse_dpi_up:
+3d62 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
+3d63 c1008000 rtneq dpi_button_state_up 
+3d64 7046b601 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+3d65 20600000 rtn 
+
+mouse_dpi_config:
+3d66 6800c6e1 fetch 1 ,mem_config_sensor_motion 
+3d67 1fe17e0f and pdata ,0x0f ,pdata 
+3d68 6000c77a store 1 ,mem_mouse_dpi 
+3d69 20203d80 branch mouse_seting_dpi + 2 
+
+mouse_dpi_cheak:
+3d6a 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
+3d6b 2040681d call gpio_get_bit 
+3d6c 2420bd62 nbranch mouse_dpi_up ,true 
+
+mouse_dpi_down:
+3d6d 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
+3d6e c1000000 rtneq dpi_button_state_down 
+3d6f 7046b600 jam dpi_button_state_down ,mem_mouse_dpi_button_state 
+
+mouse_dpi_down_setting:
+3d70 6800c77a fetch 1 ,mem_mouse_dpi 
+3d71 1fe0fe01 increase 1 ,pdata 
+3d72 1fe17e03 and pdata ,0x03 ,pdata 
+3d73 6000c77a store 1 ,mem_mouse_dpi 
+3d74 20403d7e call mouse_seting_dpi 
+3d75 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3d76 c28a443b bbit1 mouse_enable_eeprom ,mouse_store_eerpom_dpi 
+3d77 c289bd79 bbit1 mouse_enable_flash ,mouse_before_store_flash_cpi 
+3d78 20600000 rtn 
+
+mouse_before_store_flash_cpi:
+3d79 d840001e arg mouse_spi2_clk_gpio ,temp 
+3d7a 2040680e call gpio_config_output 
+3d7b d840001f arg mouse_spi2_sdio_gpio ,temp 
+3d7c 2040680e call gpio_config_output 
+3d7d 20204435 branch mouse_store_flash_device_info 
+
+mouse_seting_dpi:
+3d7e 44f1c01c bpatch patch1c_3 ,mem_patch1c 
+3d7f 2040424a call mosue_dpi_led_blink_init 
+3d80 6800c6e0 fetch 1 ,mem_config_sensor_type 
+3d81 c002bdaa beq p3610 ,mouse_seting_3610_dpi 
+3d82 c0023d96 beq p3212 ,mouse_seting_3212_dpi 
+3d83 6800c77a fetch 1 ,mem_mouse_dpi 
+3d84 c0003d8a beq mouse_dpi_level1 ,mouse_set_cpi1 
+3d85 c000bd88 beq mouse_dpi_level2 ,mouse_set_cpi2 
+3d86 c0013d8c beq mouse_dpi_level3 ,mouse_set_cpi3 
+3d87 c001bd8e beq mouse_dpi_level4 ,mouse_set_cpi4 
+
+mouse_set_cpi2:
+3d88 6800c780 fetch 1 ,mem_320x_dpi_2 
+3d89 20203dbe branch mouse_p3205_dpi 
+
+mouse_set_cpi1:
+3d8a 6800c77f fetch 1 ,mem_320x_dpi_1 
+3d8b 20203dbe branch mouse_p3205_dpi 
+
+mouse_set_cpi3:
+3d8c 6800c781 fetch 1 ,mem_320x_dpi_3 
+3d8d 20203dbe branch mouse_p3205_dpi 
+
+mouse_set_cpi4:
+3d8e 6800c782 fetch 1 ,mem_320x_dpi_4 
+3d8f 20203dbe branch mouse_p3205_dpi 
+
+moue_seting_cpi_count:
+3d90 6800c6e0 fetch 1 ,mem_config_sensor_type 
+3d91 c1030000 rtneq p3065_xy 
+3d92 6800c6b5 fetch 1 ,mem_mouse_cpi_count 
+3d93 1fe0fe01 increase 1 ,pdata 
+3d94 6000c6b5 store 1 ,mem_mouse_cpi_count 
+3d95 20600000 rtn 
+
+mouse_seting_3212_dpi:
+3d96 6800c77a fetch 1 ,mem_mouse_dpi 
+3d97 c0003d9d beq mouse_dpi_level1 ,mouse_set_p3212_cpi1 
+3d98 c000bd9b beq mouse_dpi_level2 ,mouse_set_p3212_cpi2 
+3d99 c0013d9f beq mouse_dpi_level3 ,mouse_set_p3212_cpi3 
+3d9a c001bda1 beq mouse_dpi_level4 ,mouse_set_p3212_cpi4 
+
+mouse_set_p3212_cpi2:
+3d9b 6800c784 fetch 1 ,mem_3212_dpi_2 
+3d9c 20203da2 branch mouse_p3212_dpi 
+
+mouse_set_p3212_cpi1:
+3d9d 6800c783 fetch 1 ,mem_3212_dpi_1 
+3d9e 20203da2 branch mouse_p3212_dpi 
+
+mouse_set_p3212_cpi3:
+3d9f 6800c785 fetch 1 ,mem_3212_dpi_3 
+3da0 20203da2 branch mouse_p3212_dpi 
+
+mouse_set_p3212_cpi4:
+3da1 6800c786 fetch 1 ,mem_3212_dpi_4 
+
+mouse_p3212_dpi:
+3da2 6000c6b5 store 1 ,mem_mouse_cpi_count 
+3da3 1fed7e00 lshift8 pdata ,pdata 
+3da4 1fe22200 copy pdata ,rega 
+3da5 1fe0fe0d add pdata ,mouse_p3212_dpi_xaddress ,pdata 
+3da6 20406413 call twspi_write 
+3da7 1a227e00 copy rega ,pdata 
+3da8 1fe0fe0e add pdata ,mouse_p3212_dpi_yaddress ,pdata 
+3da9 20206413 branch twspi_write 
+
+mouse_seting_3610_dpi:
+3daa 6800c77a fetch 1 ,mem_mouse_dpi 
+3dab c0003db1 beq mouse_dpi_level1 ,mouse_set_p3610_cpi1 
+3dac c000bdaf beq mouse_dpi_level2 ,mouse_set_p3610_cpi2 
+3dad c0013db3 beq mouse_dpi_level3 ,mouse_set_p3610_cpi3 
+3dae c001bdb5 beq mouse_dpi_level4 ,mouse_set_p3610_cpi4 
+
+mouse_set_p3610_cpi2:
+3daf 6800c788 fetch 1 ,mem_3610_dpi_2 
+3db0 20203db6 branch mouse_p3610_dpi 
+
+mouse_set_p3610_cpi1:
+3db1 6800c787 fetch 1 ,mem_3610_dpi_1 
+3db2 20203db6 branch mouse_p3610_dpi 
+
+mouse_set_p3610_cpi3:
+3db3 6800c789 fetch 1 ,mem_3610_dpi_3 
+3db4 20203db6 branch mouse_p3610_dpi 
+
+mouse_set_p3610_cpi4:
+3db5 6800c78a fetch 1 ,mem_3610_dpi_4 
+
+mouse_p3610_dpi:
+3db6 6000c6b5 store 1 ,mem_mouse_cpi_count 
+3db7 204040c0 call mouse_spi_sdio_gpio_pollup 
+3db8 6800c6b5 fetch 1 ,mem_mouse_cpi_count 
+
+mouse_reset_p3610_dpi:
+3db9 1fe0fe80 add pdata ,0x80 ,pdata 
+3dba 1fed7e00 lshift8 pdata ,pdata 
+3dbb 1fe0fe05 add pdata ,mouse_p3610_dpi_address ,pdata 
+3dbc 1fe22200 copy pdata ,rega 
+3dbd 2020415a branch mouse_set_sensor_reg 
+
+mouse_p3205_dpi:
+3dbe 6000c6b5 store 1 ,mem_mouse_cpi_count 
+3dbf 20403d90 call moue_seting_cpi_count 
+3dc0 6800c6b5 fetch 1 ,mem_mouse_cpi_count 
+3dc1 58000006 setarg mouse_dpi_address 
+3dc2 20406414 call twspi_read 
+3dc3 1fe104f8 and pdata ,0xf8 ,temp 
+3dc4 6800c6b5 fetch 1 ,mem_mouse_cpi_count 
+3dc5 9840fe00 iadd temp ,pdata 
+3dc6 1fed7e00 lshift8 pdata ,pdata 
+3dc7 1fe0fe06 add pdata ,mouse_dpi_address ,pdata 
+3dc8 20206413 branch twspi_write 
+
+mouse_init_environment:
+3dc9 204033c4 call app_initflag_check 
+3dca 2022c316 branch mouse_eeprom_load_recon_info ,zero 
+3dcb 2040441c call mouse_ble_init_address 
+3dcc 204042e4 call mouse_store_eeprom_device_info 
+3dcd 202033bd branch app_initflag_store 
+
+mouse_24g_pairing_button:
+3dce 68014707 fetch 2 ,mem_24g_pairing_timer_count 
+3dcf 207a0000 rtn blank 
+3dd0 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3dd1 c4088000 rtnbit0 mouse_enable_24g 
+3dd2 c3818000 rtnbit1 mosue_24g_pairing_flag 
+3dd3 c6130000 rtnmark1 mark_24g 
+3dd4 20404083 call mouse_check_key_gpio 
+3dd5 c1838000 rtnne mouse_lmr_button 
+3dd6 20404482 call mouse_devce_led_off 
+3dd7 d8e00003 arg mosue_24g_pairing_flag ,queue 
+3dd8 204043ce call mouse_enable_function_flag 
+3dd9 58000000 setarg 0 
+3dda 600146ae store 2 ,mem_mouse_direct_timer 
+3ddb 6000c6b4 store 1 ,mem_mouse_send_blank_timer 
+3ddc 20403263 call g24_set0_mem_check_dongle_times 
+3ddd 68014682 fetch 2 ,mem_ui_state_map 
+3dde c283c392 bbit1 ui_state_bt_reconnect ,mouse_cancel_reconnect 
+3ddf c284b402 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+3de0 c28033e9 bbit1 ui_state_bt_connected ,app_bt_disconnect 
+3de1 204042ca call mouse_stop_discovery 
+3de2 20202ead branch g24_start_pairing_sm1 
+
+mouse_idle:
+3de3 20403dce call mouse_24g_pairing_button 
+3de4 20407e34 call ui_check_paring_button 
+3de5 20403d6a call mouse_dpi_cheak 
+3de6 20403de9 call mouse_usb_isr 
+3de7 20403ee0 call mouse_wheel_check 
+3de8 20203df7 branch mouse_usb_mode 
+
+mouse_usb_isr:
+3de9 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3dea c4080000 rtnbit0 mouse_enable_usb 
+3deb 204048d3 call usb_isr 
+3dec 202048fd branch usb_offline_state 
+
+mouse_cheak_usb:
+3ded 68108a04 hfetch 1 ,core_usb_addr 
+3dee c303bdf1 bbit0 7 ,mouse_usb_no_exsit 
+3def c283bdf4 bbit1 7 ,mouse_usb_exsit 
+3df0 20600000 rtn 
+
+mouse_usb_no_exsit:
+3df1 6800c6ff fetch 1 ,mem_usb_addr 
+3df2 c4038000 rtnbit0 7 
+3df3 2020659a branch soft_reset_chip 
+
+mouse_usb_exsit:
+3df4 6800c6ff fetch 1 ,mem_usb_addr 
+3df5 c3838000 rtnbit1 7 
+3df6 20204381 branch mouse_stop_bluetooth_mode 
+
+mouse_usb_mode:
+3df7 20403ded call mouse_cheak_usb 
+3df8 68108a04 hfetch 1 ,core_usb_addr 
+3df9 6000c6ff store 1 ,mem_usb_addr 
+3dfa c4038000 rtnbit0 7 
+3dfb 20403e07 call mouse_clkn_check 
+3dfc 680246f9 fetch 4 ,mem_btclk_sensor 
+3dfd 6808c6fd fetcht 1 ,mem_wire_usb_interval 
+3dfe 98408400 iadd temp ,temp 
+3dff 1c427e00 copy clkn_bt ,pdata 
+3e00 98467c00 isub temp ,null 
+3e01 24610000 nrtn positive 
+3e02 600246f9 store 4 ,mem_btclk_sensor 
+3e03 20403f97 call mouse_motion 
+3e04 24740000 nrtn user 
+3e05 700d3804 jam 4 ,mem_usb_tx_enable 
+3e06 20203e0f branch mouse_wired_to_usb 
+
+mouse_clkn_check:
+3e07 680a46f9 fetcht 4 ,mem_btclk_sensor 
+3e08 1c427e00 copy clkn_bt ,pdata 
+3e09 98467c00 isub temp ,null 
+3e0a 24413e0c ncall mouse_clkn_timeout ,positive 
+3e0b 20600000 rtn 
+
+mouse_clkn_timeout:
+3e0c 58000000 setarg 0 
+3e0d 600246f9 store 4 ,mem_btclk_sensor 
+3e0e 20600000 rtn 
+
+mouse_wired_to_usb:
+3e0f 68008d38 fetch 1 ,mem_usb_tx_enable 
+3e10 c4010000 rtnbit0 2 
+3e11 20203e12 branch mouse_data_push 
+
+mouse_data_push:
+3e12 68108a04 hfetch 1 ,core_usb_addr 
+3e13 c4038000 rtnbit0 7 
+3e14 700d5220 jam usb_ep2_ms ,mem_usb_ep2_data 
+3e15 58000001 setarg ms_report_id 
+3e16 60008d54 store 1 ,mem_usb_mouse_data 
+3e17 6803c69a fetch 7 ,mem_mouse_key 
+3e18 e0a38000 istore 7 ,contw 
+3e19 20600000 rtn 
+
+mouse_enable_clock_qdecoder:
+3e1a 68110050 hfetch 2 ,core_clkoff 
+3e1b 793ffe0b set0 clock_off_qdecoder ,pdata 
+3e1c 60110050 hstore 2 ,core_clkoff 
+3e1d 20600000 rtn 
+
+mouse_param_init:
+3e1e 58008c00 setarg 0x8c00 
+3e1f 60014575 store 2 ,mem_ui_uuid_table 
+3e20 58008e7a setarg 0x8e7a 
+3e21 600144bc store 2 ,mem_ui_le_uuid_table 
+3e22 58002402 setarg 0x2402 
+3e23 600140bd store 2 ,mem_fcomp_mul 
+3e24 58002580 setarg 0x2580 
+3e25 6001c0aa store 3 ,mem_class 
+3e26 70417303 jam 3 ,mem_lpm_mult_timeout 
+3e27 70415608 jam 8 ,mem_lpm_overhead 
+3e28 7046d901 jam dpi_button_state_up ,mem_select_device_button_statue 
+3e29 58000200 setarg 0x0200 
+3e2a 60014154 store 2 ,mem_lpm_interval 
+3e2b 7044a617 jam 0x17 ,mem_le_local_mtu 
+3e2c 7044a817 jam 0x17 ,mem_le_remote_mtu 
+3e2d 58000a77 setarg 0x0a77 
+3e2e 60014212 store 2 ,mem_spi_init_clk 
+3e2f 38000306 setsect 0 ,0x306 
+3e30 38044440 setsect 1 ,0x4440 
+3e31 38090000 setsect 2 ,0x10000 
+3e32 380c4408 setsect 3 ,0x4408 
+3e33 6004c577 store 9 ,mem_all_uuid_16bits 
+3e34 38001224 setsect 0 ,0x1224 
+3e35 38044000 setsect 1 ,0x4000 
+3e36 38080000 setsect 2 ,0x0 
+3e37 e0a28000 istore 5 ,contw 
+3e38 3803ffff setsect 0 ,0x3ffff 
+3e39 3806fe23 setsect 1 ,0x2fe23 
+3e3a 380999d9 setsect 2 ,0x199d9 
+3e3b 380c020d setsect 3 ,0x20d 
+3e3c 60044098 store 8 ,mem_features 
+3e3d 5800012c setarg 0x012c 
+3e3e 60014707 store 2 ,mem_24g_pairing_timer_count 
+3e3f 204057a3 call le_modified_name 
+3e40 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3e41 c40f8000 rtnbit0 mouse_enable_gpio_control_adc_sensor 
+3e42 20403e44 call mouse_sensor_set_angle 
+3e43 20203e4c branch mouse_select_adc 
+
+mouse_sensor_set_angle:
+3e44 6808c6f7 fetcht 1 ,mem_select_sensor_angle_gpio 
+3e45 204067fb call gpio_config_input 
+3e46 6808c6f7 fetcht 1 ,mem_select_sensor_angle_gpio 
+3e47 2040681d call gpio_get_bit 
+3e48 7046f603 jam mouse_3clk_angle ,mem_config_sensor_angle 
+3e49 20608000 rtn true 
+3e4a 7046f602 jam mouse_12clk_angle ,mem_config_sensor_angle 
+3e4b 20600000 rtn 
+
+mouse_select_adc:
+3e4c 6808c6f8 fetcht 1 ,mem_select_adc_gpio 
+3e4d 204067fb call gpio_config_input 
+3e4e 6808c6f8 fetcht 1 ,mem_select_adc_gpio 
+3e4f 2040681d call gpio_get_bit 
+3e50 70422d00 jam adc_config_vinlpm ,mem_adc_config_flag 
+3e51 20608000 rtn true 
+3e52 70422d02 jam adc_config_gpio ,mem_adc_config_flag 
+3e53 20600000 rtn 
+
+mouse_adc_init:
+3e54 6800c22d fetch 1 ,mem_adc_config_flag 
+3e55 c0003e59 beq adc_config_vinlpm ,mouse_adc_init_data_vinlpm 
+3e56 c000be62 beq adc_config_hvin ,mouse_adc_init_data_hvin 
+3e57 c0013e6b beq adc_config_gpio ,mouse_adc_init_data_io 
+3e58 20203e59 branch mouse_adc_init_data_vinlpm 
+
+mouse_adc_init_data_vinlpm:
+3e59 68094221 fetcht 2 ,mem_2v_adc_vinlpm_data 
+3e5a 68014227 fetch 2 ,mem_3v_adc_vinlpm_data 
+3e5b 98467e00 isub temp ,pdata 
+3e5c 1feffe14 mul32 pdata ,20 ,pdata 
+3e5d 1fe6fc64 div pdata ,100 
+3e5e 20407f86 call wait_div_end 
+3e5f 1807fe00 quotient pdata 
+3e60 600146d0 store 2 ,mem_adc_reference_voltage 
+3e61 20600000 rtn 
+
+mouse_adc_init_data_hvin:
+3e62 6809421f fetcht 2 ,mem_1v_adc_hvin_data 
+3e63 68014225 fetch 2 ,mem_5v_adc_hvin_data 
+3e64 98467e00 isub temp ,pdata 
+3e65 1feffee6 mul32 pdata ,230 ,pdata 
+3e66 1fe6fd90 div pdata ,400 
+3e67 20407f86 call wait_div_end 
+3e68 1807fe00 quotient pdata 
+3e69 600146d0 store 2 ,mem_adc_reference_voltage 
+3e6a 20600000 rtn 
+
+mouse_adc_init_data_io:
+3e6b 68014223 fetch 2 ,mem_1v_adc_io_data 
+3e6c 600146d0 store 2 ,mem_adc_reference_voltage 
+3e6d 20600000 rtn 
+
+mouse_gpio_init:
+3e6e 6808c23a fetcht 1 ,mem_eeprom_wp_gpio 
+3e6f 2040680e call gpio_config_output 
+3e70 204048fb call usb_offline_check_init 
+3e71 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
+3e72 204067fb call gpio_config_input 
+3e73 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
+3e74 204067fb call gpio_config_input 
+3e75 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
+3e76 204067fb call gpio_config_input 
+3e77 6808c6f3 fetcht 1 ,mem_sensor_data_gpio 
+3e78 204067fb call gpio_config_input 
+3e79 6808c6dc fetcht 1 ,mem_sensor_reset_gpio 
+3e7a 2040680e call gpio_config_output 
+3e7b 6808c6e8 fetcht 1 ,mem_whee_a_data_gpio 
+3e7c 204067fb call gpio_config_input 
+3e7d 6808c6e9 fetcht 1 ,mem_whee_b_data_gpio 
+3e7e 204067fb call gpio_config_input 
+3e7f 6808c6ea fetcht 1 ,mem_whee_ta_data_gpio 
+3e80 204067fb call gpio_config_input 
+3e81 6808c6eb fetcht 1 ,mem_whee_tb_data_gpio 
+3e82 204067fb call gpio_config_input 
+3e83 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
+3e84 204067fb call gpio_config_input 
+3e85 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
+3e86 204067fb call gpio_config_input 
+3e87 6808c6ef fetcht 1 ,mem_config_low_voltage_alarm_gpio 
+3e88 2040680e call gpio_config_output 
+3e89 6808c6f0 fetcht 1 ,mem_config_device1_led_gpio 
+3e8a 2040680e call gpio_config_output 
+3e8b 6808c6f1 fetcht 1 ,mem_config_device2_led_gpio 
+3e8c 2040680e call gpio_config_output 
+3e8d 6808c6f2 fetcht 1 ,mem_config_device3_led_gpio 
+3e8e 2040680e call gpio_config_output 
+3e8f 6808c6f4 fetcht 1 ,mem_dpi_led_gpio 
+3e90 2040680e call gpio_config_output 
+3e91 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
+3e92 204067fb call gpio_config_input 
+3e93 6808c6ec fetcht 1 ,mem_config_bt_button_gpio 
+3e94 204067fb call gpio_config_input 
+3e95 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
+3e96 202067fb branch gpio_config_input 
+
+mouse_wheel_gpio_set_wake:
+3e97 6808c6e8 fetcht 1 ,mem_whee_a_data_gpio 
+3e98 204067dd call gpio_set_wake_by_current_state 
+3e99 6808c6e9 fetcht 1 ,mem_whee_b_data_gpio 
+3e9a 204067dd call gpio_set_wake_by_current_state 
+3e9b 6808c6ea fetcht 1 ,mem_whee_ta_data_gpio 
+3e9c 204067dd call gpio_set_wake_by_current_state 
+3e9d 6808c6eb fetcht 1 ,mem_whee_tb_data_gpio 
+3e9e 202067dd branch gpio_set_wake_by_current_state 
+
+mouse_before_hibernate_wheel_gpio_set:
+3e9f 6808c6e8 fetcht 1 ,mem_whee_a_data_gpio 
+3ea0 20403ea7 call mouse_gpio_set_pupd_by_input 
+3ea1 6808c6e9 fetcht 1 ,mem_whee_b_data_gpio 
+3ea2 20403ea7 call mouse_gpio_set_pupd_by_input 
+3ea3 6808c6ea fetcht 1 ,mem_whee_ta_data_gpio 
+3ea4 20403ea7 call mouse_gpio_set_pupd_by_input 
+3ea5 6808c6eb fetcht 1 ,mem_whee_tb_data_gpio 
+3ea6 20203ea7 branch mouse_gpio_set_pupd_by_input 
+
+mouse_gpio_set_pupd_by_input:
+3ea7 18467cff sub temp ,ui_button_gpio_disable ,null 
+3ea8 20628000 rtn zero 
+3ea9 18410e7f and temp ,0x7f ,queue 
+3eaa 6812011c hfetch 4 ,core_gpio_in 
+3eab afefffff qisolate1 pdata 
+3eac 68120078 hfetch 4 ,core_gpio_pu0 
+3ead f920fe00 qsetflag true ,pdata 
+3eae 60120078 hstore 4 ,core_gpio_pu0 
+3eaf 6812007c hfetch 4 ,core_gpio_pd0 
+3eb0 fd20fe00 nqsetflag true ,pdata 
+3eb1 6012007c hstore 4 ,core_gpio_pd0 
+3eb2 20600000 rtn 
+
+mouse_before_hibernate:
+3eb3 78347c00 enable user 
+3eb4 68120138 hfetch 4 ,0x8138 
+3eb5 79347e1a setflag user ,26 ,pdata 
+3eb6 6012004c hstore 4 ,core_lpm_reg 
+3eb7 20402c21 call lpm_write_ctrl 
+3eb8 20404482 call mouse_devce_led_off 
+3eb9 20403e9f call mouse_before_hibernate_wheel_gpio_set 
+3eba 20203ebf branch mouse_lpm_before_common 
+
+mouse_process_lpm_before:
+3ebb 20403ebf call mouse_lpm_before_common 
+3ebc 680080a0 fetch 1 ,mem_lpm_current_mult 
+3ebd 247a0000 nrtn blank 
+3ebe 202067ed branch gpio_clr_wake 
+
+mouse_lpm_before_common:
+3ebf 20403ee0 call mouse_wheel_check 
+3ec0 d8400019 arg mouse_spi1_clk_gpio ,temp 
+3ec1 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3ec2 2feffe12 isolate1 mouse_enable_spi2 ,pdata 
+3ec3 2040bede call mouse_spi_clk_gpio ,true 
+3ec4 2040680e call gpio_config_output 
+3ec5 204063ee call twspi_disable 
+3ec6 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
+3ec7 204067dd call gpio_set_wake_by_current_state 
+3ec8 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
+3ec9 204067dd call gpio_set_wake_by_current_state 
+3eca 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
+3ecb 204067dd call gpio_set_wake_by_current_state 
+3ecc 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
+3ecd 204067dd call gpio_set_wake_by_current_state 
+3ece 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
+3ecf 204067dd call gpio_set_wake_by_current_state 
+3ed0 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
+3ed1 204067dd call gpio_set_wake_by_current_state 
+3ed2 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
+3ed3 204067dd call gpio_set_wake_by_current_state 
+3ed4 6808c6e8 fetcht 1 ,mem_whee_a_data_gpio 
+3ed5 204067dd call gpio_set_wake_by_current_state 
+3ed6 6808c6e9 fetcht 1 ,mem_whee_b_data_gpio 
+3ed7 204067dd call gpio_set_wake_by_current_state 
+3ed8 6808c6ea fetcht 1 ,mem_whee_ta_data_gpio 
+3ed9 204067dd call gpio_set_wake_by_current_state 
+3eda 6808c6eb fetcht 1 ,mem_whee_tb_data_gpio 
+3edb 204067dd call gpio_set_wake_by_current_state 
+3edc 6808c6f3 fetcht 1 ,mem_sensor_data_gpio 
+3edd 202067e1 branch gpio_set_wake 
+
+mouse_spi_clk_gpio:
+3ede d840001e arg mouse_spi2_clk_gpio ,temp 
+3edf 20600000 rtn 
+
+mouse_wheel_check:
+3ee0 44f2401c bpatch patch1c_4 ,mem_patch1c 
+3ee1 20403eee call mouse_t_wheel_scan 
+3ee2 20403f36 call mouse_wheel_scan 
+3ee3 6800c6b8 fetch 1 ,mem_wheel_tb_new_pinlevel 
+3ee4 6808c6b7 fetcht 1 ,mem_wheel_tb_old_pinlevel 
+3ee5 6000c6b7 store 1 ,mem_wheel_tb_old_pinlevel 
+3ee6 98467c00 isub temp ,null 
+3ee7 2422b3d4 nbranch app_lpm_wake_auto_lock ,zero 
+3ee8 6800c6be fetch 1 ,mem_mwheel_b_new_pinlevel 
+3ee9 6808c6bd fetcht 1 ,mem_mwheel_b_old_pinlevel 
+3eea 6000c6bd store 1 ,mem_mwheel_b_old_pinlevel 
+3eeb 98467c00 isub temp ,null 
+3eec 2422b3d4 nbranch app_lpm_wake_auto_lock ,zero 
+3eed 20600000 rtn 
+
+mouse_t_wheel_scan:
+3eee 6800c6ea fetch 1 ,mem_whee_ta_data_gpio 
+3eef c17f8000 rtneq gpio_disable 
+3ef0 da200000 arg 0 ,rega 
+3ef1 6808c6ea fetcht 1 ,mem_whee_ta_data_gpio 
+3ef2 2040681d call gpio_get_bit 
+3ef3 7920a200 setflag true ,0 ,rega 
+3ef4 6808c6eb fetcht 1 ,mem_whee_tb_data_gpio 
+3ef5 2040681d call gpio_get_bit 
+3ef6 7920a201 setflag true ,1 ,rega 
+3ef7 1a227e00 copy rega ,pdata 
+3ef8 6000c6b8 store 1 ,mem_wheel_tb_new_pinlevel 
+3ef9 c000befe beq 0x01 ,mouse_t_wheel_scan_judge1 
+3efa c0013f02 beq 0x02 ,mouse_t_wheel_scan_judge2 
+3efb 6800c6b9 fetch 1 ,mem_wheel_tog 
+3efc c283bf0e bbit1 7 ,mouse_t_wheel_scan_judge3 
+3efd 20600000 rtn 
+
+mouse_t_wheel_scan_judge1:
+3efe 6800c6b7 fetch 1 ,mem_wheel_tb_old_pinlevel 
+3eff c0003f06 beq 0 ,mouse_t_wheel_scan_judge11 
+3f00 c001bf08 beq 3 ,mouse_t_wheel_scan_judge12 
+3f01 20600000 rtn 
+
+mouse_t_wheel_scan_judge2:
+3f02 6800c6b7 fetch 1 ,mem_wheel_tb_old_pinlevel 
+3f03 c0003f0a beq 0 ,mouse_t_wheel_scan_judge21 
+3f04 c001bf0c beq 3 ,mouse_t_wheel_scan_judge22 
+3f05 20600000 rtn 
+
+mouse_t_wheel_scan_judge11:
+3f06 7046b982 jam 0x82 ,mem_wheel_tog 
+3f07 20600000 rtn 
+
+mouse_t_wheel_scan_judge12:
+3f08 7046b981 jam 0x81 ,mem_wheel_tog 
+3f09 20600000 rtn 
+
+mouse_t_wheel_scan_judge21:
+3f0a 7046b980 jam 0x80 ,mem_wheel_tog 
+3f0b 20600000 rtn 
+
+mouse_t_wheel_scan_judge22:
+3f0c 7046b983 jam 0x83 ,mem_wheel_tog 
+3f0d 20600000 rtn 
+
+mouse_t_wheel_scan_judge3:
+3f0e 6800c6b9 fetch 1 ,mem_wheel_tog 
+3f0f 793ffe07 set0 7 ,pdata 
+3f10 6000c6b9 store 1 ,mem_wheel_tog 
+3f11 c0003f16 beq 0 ,mouse_t_wheel_scan_judge30 
+3f12 c000bf19 beq 1 ,mouse_t_wheel_scan_judge31 
+3f13 c0013f1c beq 2 ,mouse_t_wheel_scan_judge32 
+3f14 c001bf1f beq 3 ,mouse_t_wheel_scan_judge33 
+3f15 20600000 rtn 
+
+mouse_t_wheel_scan_judge30:
+3f16 6800c6b8 fetch 1 ,mem_wheel_tb_new_pinlevel 
+3f17 c001bf22 beq 3 ,mouse_wheel_t_forward 
+3f18 20600000 rtn 
+
+mouse_t_wheel_scan_judge31:
+3f19 6800c6b8 fetch 1 ,mem_wheel_tb_new_pinlevel 
+3f1a c0003f22 beq 0 ,mouse_wheel_t_forward 
+3f1b 20600000 rtn 
+
+mouse_t_wheel_scan_judge32:
+3f1c 6800c6b8 fetch 1 ,mem_wheel_tb_new_pinlevel 
+3f1d c001bf2c beq 3 ,mouse_wheel_t_back 
+3f1e 20600000 rtn 
+
+mouse_t_wheel_scan_judge33:
+3f1f 6800c6b8 fetch 1 ,mem_wheel_tb_new_pinlevel 
+3f20 c0003f2c beq 0 ,mouse_wheel_t_back 
+3f21 20600000 rtn 
+
+mouse_wheel_t_forward:
+3f22 6800c6bc fetch 1 ,mem_mouse_tz_data_count1 
+3f23 1fe0fe01 increase 1 ,pdata 
+3f24 6000c6bc store 1 ,mem_mouse_tz_data_count1 
+3f25 1fe67c01 sub pdata ,1 ,null 
+3f26 20610000 rtn positive 
+3f27 7046bc00 jam 0 ,mem_mouse_tz_data_count1 
+3f28 6800c6ba fetch 1 ,mem_mouse_tz_data 
+3f29 1fe0fe01 increase 1 ,pdata 
+3f2a 6000c6ba store 1 ,mem_mouse_tz_data 
+3f2b 20600000 rtn 
+
+mouse_wheel_t_back:
+3f2c 6800c6bb fetch 1 ,mem_mouse_tz_data_count 
+3f2d 1fe0fe01 increase 1 ,pdata 
+3f2e 6000c6bb store 1 ,mem_mouse_tz_data_count 
+3f2f 1fe67c01 sub pdata ,1 ,null 
+3f30 20610000 rtn positive 
+3f31 7046bb00 jam 0 ,mem_mouse_tz_data_count 
+3f32 6800c6ba fetch 1 ,mem_mouse_tz_data 
+3f33 1fe0ffff increase -1 ,pdata 
+3f34 6000c6ba store 1 ,mem_mouse_tz_data 
+3f35 20600000 rtn 
+
+mouse_wheel_scan:
+3f36 6800c6e8 fetch 1 ,mem_whee_a_data_gpio 
+3f37 c17f8000 rtneq gpio_disable 
+3f38 da200000 arg 0 ,rega 
+3f39 6808c6e8 fetcht 1 ,mem_whee_a_data_gpio 
+3f3a 2040681d call gpio_get_bit 
+3f3b 7920a200 setflag true ,0 ,rega 
+3f3c 6808c6e9 fetcht 1 ,mem_whee_b_data_gpio 
+3f3d 2040681d call gpio_get_bit 
+3f3e 7920a201 setflag true ,1 ,rega 
+3f3f 1a227e00 copy rega ,pdata 
+3f40 6000c6be store 1 ,mem_mwheel_b_new_pinlevel 
+3f41 c000bf46 beq 0x01 ,mouse_wheel_scan_judge1 
+3f42 c0013f4a beq 0x02 ,mouse_wheel_scan_judge2 
+3f43 6800c6bf fetch 1 ,mem_mwheel_tog 
+3f44 c283bf56 bbit1 7 ,mouse_wheel_scan_judge3 
+3f45 20600000 rtn 
+
+mouse_wheel_scan_judge1:
+3f46 6800c6bd fetch 1 ,mem_mwheel_b_old_pinlevel 
+3f47 c0003f4e beq 0 ,mouse_wheel_scan_judge11 
+3f48 c001bf50 beq 3 ,mouse_wheel_scan_judge12 
+3f49 20600000 rtn 
+
+mouse_wheel_scan_judge2:
+3f4a 6800c6bd fetch 1 ,mem_mwheel_b_old_pinlevel 
+3f4b c0003f52 beq 0 ,mouse_wheel_scan_judge21 
+3f4c c001bf54 beq 3 ,mouse_wheel_scan_judge22 
+3f4d 20600000 rtn 
+
+mouse_wheel_scan_judge11:
+3f4e 7046bf82 jam 0x82 ,mem_mwheel_tog 
+3f4f 20600000 rtn 
+
+mouse_wheel_scan_judge12:
+3f50 7046bf81 jam 0x81 ,mem_mwheel_tog 
+3f51 20600000 rtn 
+
+mouse_wheel_scan_judge21:
+3f52 7046bf80 jam 0x80 ,mem_mwheel_tog 
+3f53 20600000 rtn 
+
+mouse_wheel_scan_judge22:
+3f54 7046bf83 jam 0x83 ,mem_mwheel_tog 
+3f55 20600000 rtn 
+
+mouse_wheel_scan_judge3:
+3f56 6800c6bf fetch 1 ,mem_mwheel_tog 
+3f57 793ffe07 set0 7 ,pdata 
+3f58 6000c6bf store 1 ,mem_mwheel_tog 
+3f59 c0003f5e beq 0 ,mouse_wheel_scan_judge30 
+3f5a c000bf61 beq 1 ,mouse_wheel_scan_judge31 
+3f5b c0013f64 beq 2 ,mouse_wheel_scan_judge32 
+3f5c c001bf67 beq 3 ,mouse_wheel_scan_judge33 
+3f5d 20600000 rtn 
+
+mouse_wheel_scan_judge30:
+3f5e 6800c6be fetch 1 ,mem_mwheel_b_new_pinlevel 
+3f5f c001bf6a beq 3 ,mouse_wheel_forward 
+3f60 20600000 rtn 
+
+mouse_wheel_scan_judge31:
+3f61 6800c6be fetch 1 ,mem_mwheel_b_new_pinlevel 
+3f62 c0003f6a beq 0 ,mouse_wheel_forward 
+3f63 20600000 rtn 
+
+mouse_wheel_scan_judge32:
+3f64 6800c6be fetch 1 ,mem_mwheel_b_new_pinlevel 
+3f65 c001bf6f beq 3 ,mouse_wheel_back 
+3f66 20600000 rtn 
+
+mouse_wheel_scan_judge33:
+3f67 6800c6be fetch 1 ,mem_mwheel_b_new_pinlevel 
+3f68 c0003f6f beq 0 ,mouse_wheel_back 
+3f69 20600000 rtn 
+
+mouse_wheel_forward:
+3f6a 7046c200 jam 0 ,mem_mouse_z_data_count1 
+3f6b 6800c6c0 fetch 1 ,mem_mouse_z_data 
+3f6c 1fe0fe01 increase 1 ,pdata 
+3f6d 6000c6c0 store 1 ,mem_mouse_z_data 
+3f6e 20600000 rtn 
+
+mouse_wheel_back:
+3f6f 7046c100 jam 0 ,mem_mouse_z_data_count 
+3f70 6800c6c0 fetch 1 ,mem_mouse_z_data 
+3f71 1fe0ffff increase -1 ,pdata 
+3f72 6000c6c0 store 1 ,mem_mouse_z_data 
+3f73 20600000 rtn 
+
+mouse_hid_connected:
+3f74 58000002 setarg hid_handshake_timeout 
+3f75 6000c680 store 1 ,mem_hid_handshake_timer_count 
+3f76 20600000 rtn 
+
+mouse_send_process:
+3f77 6800c1e2 fetch 1 ,mem_app_handshake_flag 
+3f78 207a0000 rtn blank 
+3f79 20405271 call l2cap_malloc_is_fifo_nearly_full 
+3f7a 247a0000 nrtn blank 
+3f7b 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+3f7c c281bf8a bbit1 mosue_24g_pairing_flag ,mouse_send_empty_data 
+3f7d c2803f8a bbit1 mouse_select_device_flag ,mouse_send_empty_data 
+3f7e c282bf8a bbit1 mouse_bt_discovery_button_down_flag ,mouse_send_empty_data 
+3f7f 20403f97 call mouse_motion 
+3f80 24740000 nrtn user 
+
+mouse_send_data:
+3f81 da200009 arg 9 ,rega 
+3f82 20404d63 call hid_malloc_tx_buff 
+3f83 6801424e fetch 2 ,mem_hid_int_remote_cid 
+3f84 e0a10000 istore 2 ,contw 
+3f85 580002a1 setarg 0x02a1 
+3f86 e0a10000 istore 2 ,contw 
+3f87 6803c69a fetch 7 ,mem_mouse_key 
+3f88 e0a38000 istore 7 ,contw 
+3f89 20600000 rtn 
+
+mouse_send_empty_data:
+3f8a 58000000 setarg 0 
+3f8b 6003c69a store 7 ,mem_mouse_key 
+3f8c 20203f81 branch mouse_send_data 
+
+mouse_no_data_timer_init:
+3f8d 680146aa fetch 2 ,mem_mouse_no_data_timeout 
+3f8e 600146b0 store 2 ,mem_mouse_no_data_timer 
+3f8f 20600000 rtn 
+
+mouse_fill_data_le:
+3f90 44f2c01c bpatch patch1c_5 ,mem_patch1c 
+3f91 da200007 arg 7 ,rega 
+3f92 6809446f fetcht 2 ,mem_le_notify_handle 
+3f93 20405a64 call le_att_malloc_tx_notify 
+3f94 6803c69a fetch 7 ,mem_mouse_key 
+3f95 e0a38000 istore 7 ,contw 
+3f96 20600000 rtn 
+
+mouse_motion:
+3f97 44f3401c bpatch patch1c_6 ,mem_patch1c 
+3f98 78547c00 disable user 
+3f99 58000000 setarg 0 
+3f9a 6003469b store 6 ,mem_mouse_x 
+3f9b 20403fb5 call mouse_cheak_sensor_data 
+3f9c 20404079 call mouse_zwheel 
+3f9d 2040407e call mouse_t_zwheel 
+3f9e 20404099 call mouse_key 
+3f9f 24740000 nrtn user 
+3fa0 20403f8d call mouse_no_data_timer_init 
+3fa1 d8e00008 arg mouse_statue_up_flag ,queue 
+3fa2 202043ce branch mouse_enable_function_flag 
+
+motion_6clk_direction_dispose:
+3fa3 6801469b fetch 2 ,mem_mouse_x 
+3fa4 1fe67e00 sub pdata ,0 ,pdata 
+3fa5 6001469b store 2 ,mem_mouse_x 
+3fa6 20207fe7 branch enable_user 
+
+motion_12clk_direction_dispose:
+3fa7 6801469d fetch 2 ,mem_mouse_y 
+3fa8 1fe67e00 sub pdata ,0 ,pdata 
+3fa9 6001469d store 2 ,mem_mouse_y 
+3faa 20207fe7 branch enable_user 
+
+motion_9clk_direction_dispose:
+3fab 6801469d fetch 2 ,mem_mouse_y 
+3fac 1fe67e00 sub pdata ,0 ,pdata 
+3fad 6001469d store 2 ,mem_mouse_y 
+3fae 6801469b fetch 2 ,mem_mouse_x 
+3faf 1fe67e00 sub pdata ,0 ,pdata 
+3fb0 6001469b store 2 ,mem_mouse_x 
+3fb1 20404002 call mouse_sensor_data_swap_places 
+3fb2 20207fe7 branch enable_user 
+
+motion_3clk_direction_dispose:
+3fb3 20404002 call mouse_sensor_data_swap_places 
+3fb4 20207fe7 branch enable_user 
+
+mouse_cheak_sensor_data:
+3fb5 6800c239 fetch 1 ,mem_spi_write_flash_sm 
+3fb6 c1800000 rtnne flash_sm_no_buys 
+3fb7 6800c6e0 fetch 1 ,mem_config_sensor_type 
+3fb8 c0003fe2 beq p3205 ,mouse_p32xx_sensor_motion 
+3fb9 c000bfe2 beq p3065 ,mouse_p32xx_sensor_motion 
+3fba c0013fe2 beq ka8 ,mouse_p32xx_sensor_motion 
+3fbb c001bfe2 beq p3204 ,mouse_p32xx_sensor_motion 
+3fbc c0023fc4 beq p3212 ,mouse_p3212_sensor_motion 
+3fbd c002c010 beq p3610 ,mouse_p3610_sensor_motion 
+3fbe c0033fe2 beq p3065_xy ,mouse_p32xx_sensor_motion 
+3fbf 20203fe2 branch mouse_p32xx_sensor_motion 
+
+mouse_clear_sensor_data:
+3fc0 6800c6a7 fetch 1 ,mem_mouse_move_flag 
+3fc1 205a405d call mouse_read_sensor_common ,blank 
+3fc2 7046a701 jam 1 ,mem_mouse_move_flag 
+3fc3 20600000 rtn 
+
+mouse_p3212_sensor_motion:
+3fc4 20403fc0 call mouse_clear_sensor_data 
+3fc5 6808c6f3 fetcht 1 ,mem_sensor_data_gpio 
+3fc6 2040681d call gpio_get_bit 
+3fc7 24608000 nrtn true 
+
+mouse_p3212_sensor_motion_1:
+3fc8 58000000 setarg pan_reg_pid_l 
+3fc9 20406414 call twspi_read 
+3fca c09840d1 bne p32xx_id1 ,mouse_twspi_reset 
+3fcb 58000002 setarg pan_reg_motion_staus 
+3fcc 20406414 call twspi_read 
+3fcd c4038000 rtnbit0 7 
+3fce 2040405d call mouse_read_sensor_common 
+3fcf 20403fde call mouse_read_3212sensor_xy_high 
+3fd0 6000c6a1 store 1 ,mem_mouse_xy_h 
+3fd1 1ff1fe00 rshift4 pdata ,pdata 
+3fd2 20404169 call extsign_bit3 
+3fd3 6000c69c store 1 ,mem_mouse_x + 1 
+3fd4 6800c6a1 fetch 1 ,mem_mouse_xy_h 
+3fd5 1fe17e0f and pdata ,0x0f ,pdata 
+3fd6 20404169 call extsign_bit3 
+3fd7 6000c69e store 1 ,mem_mouse_y + 1 
+3fd8 6800c6f6 fetch 1 ,mem_config_sensor_angle 
+3fd9 c0003fa3 beq mouse_6clk_angle ,motion_6clk_direction_dispose 
+3fda c000bfab beq mouse_9clk_angle ,motion_9clk_direction_dispose 
+3fdb c0013fa7 beq mouse_12clk_angle ,motion_12clk_direction_dispose 
+3fdc c001bfb3 beq mouse_3clk_angle ,motion_3clk_direction_dispose 
+3fdd 20600000 rtn 
+
+mouse_read_3212sensor_xy_high:
+3fde 58000012 setarg 0x12 
+3fdf 20206414 branch twspi_read 
+
+mouse_p3065_judge:
+3fe0 c018bfea beq p3065_id1 ,mouse_p32xx_sensor_motion_1 
+3fe1 202040d1 branch mouse_twspi_reset 
+
+mouse_p32xx_sensor_motion:
+3fe2 20403fc0 call mouse_clear_sensor_data 
+3fe3 78547c00 disable user 
+3fe4 6808c6f3 fetcht 1 ,mem_sensor_data_gpio 
+3fe5 2040681d call gpio_get_bit 
+3fe6 24608000 nrtn true 
+
+mouse_p32xx_sensor_motion_2:
+3fe7 58000000 setarg pan_reg_pid_l 
+3fe8 20406414 call twspi_read 
+3fe9 c0983fe0 bne p32xx_id1 ,mouse_p3065_judge 
+
+mouse_p32xx_sensor_motion_1:
+3fea 58000002 setarg pan_reg_motion_staus 
+3feb 20406414 call twspi_read 
+3fec c4038000 rtnbit0 7 
+3fed 2040405d call mouse_read_sensor_common 
+3fee 6800c69b fetch 1 ,mem_mouse_x 
+3fef 20404165 call extsign 
+3ff0 6001469b store 2 ,mem_mouse_x 
+3ff1 6800c69d fetch 1 ,mem_mouse_y 
+3ff2 20404165 call extsign 
+3ff3 6001469d store 2 ,mem_mouse_y 
+3ff4 6800c6f6 fetch 1 ,mem_config_sensor_angle 
+3ff5 c0003ffa beq mouse_6clk_angle ,motion32xx_6clk_direction_selection 
+3ff6 c000bffc beq mouse_9clk_angle ,motion32xx_9clk_direction_selection 
+3ff7 c0013ffe beq mouse_12clk_angle ,motion32xx_12clk_direction_selection 
+3ff8 c001c000 beq mouse_3clk_angle ,motion32xx_3clk_direction_selection 
+3ff9 20600000 rtn 
+
+motion32xx_6clk_direction_selection:
+3ffa 20403fa3 call motion_6clk_direction_dispose 
+3ffb 202040b3 branch mouse_sensor_sdio_low 
+
+motion32xx_9clk_direction_selection:
+3ffc 20403fab call motion_9clk_direction_dispose 
+3ffd 202040b3 branch mouse_sensor_sdio_low 
+
+motion32xx_12clk_direction_selection:
+3ffe 20403fa7 call motion_12clk_direction_dispose 
+3fff 202040b3 branch mouse_sensor_sdio_low 
+
+motion32xx_3clk_direction_selection:
+4000 20403fb3 call motion_3clk_direction_dispose 
+4001 202040b3 branch mouse_sensor_sdio_low 
+
+mouse_sensor_data_swap_places:
+4002 6801469d fetch 2 ,mem_mouse_y 
+4003 6809469b fetcht 2 ,mem_mouse_x 
+4004 6001469b store 2 ,mem_mouse_x 
+4005 6009469d storet 2 ,mem_mouse_y 
+4006 20600000 rtn 
+
+mouse_p3610sensor_read:
+4007 2040640f call spi_ncs_enable 
+4008 20000064 nop 100 
+4009 1a427e00 copy regb ,pdata 
+400a 20406414 call twspi_read 
+400b 1fe22400 copy pdata ,regb 
+400c 20406411 call spi_ncs_disable 
+400d 20000064 nop 100 
+400e 1a427e00 copy regb ,pdata 
+400f 20600000 rtn 
+
+mouse_p3610_sensor_motion:
+4010 78547c00 disable user 
+4011 6808c6f3 fetcht 1 ,mem_sensor_data_gpio 
+4012 2040681d call gpio_get_bit 
+4013 24608000 nrtn true 
+4014 da400002 arg pan_reg_motion_staus ,regb 
+4015 20404007 call mouse_p3610sensor_read 
+4016 c4038000 rtnbit0 7 
+4017 da400000 arg pan_reg_pid_l ,regb 
+4018 20404007 call mouse_p3610sensor_read 
+4019 6000c6dd store 1 ,mem_sensor_id1 
+401a c09f4145 bne p3610_id1 ,mouse_init_3610sensor_reset 
+401b 6800c6a7 fetch 1 ,mem_mouse_move_flag 
+401c 205a4039 call mouse_read_sensor3610_data ,blank 
+401d 7046a701 jam 1 ,mem_mouse_move_flag 
+401e 20404039 call mouse_read_sensor3610_data 
+401f 6800c6a1 fetch 1 ,mem_mouse_xy_h 
+4020 1ff1fe00 rshift4 pdata ,pdata 
+4021 20404169 call extsign_bit3 
+4022 6000c69c store 1 ,mem_mouse_x + 1 
+4023 6800c6a1 fetch 1 ,mem_mouse_xy_h 
+4024 1fe17e0f and pdata ,0x0f ,pdata 
+4025 20404169 call extsign_bit3 
+4026 6000c69e store 1 ,mem_mouse_y + 1 
+4027 6800c6f6 fetch 1 ,mem_config_sensor_angle 
+4028 c0004031 beq 0 ,motion3610_6clk_direction_selection 
+4029 c000c035 beq 1 ,motion3610_9clk_direction_selection 
+402a c0014033 beq 2 ,motion3610_12clk_direction_selection 
+402b c001c037 beq 3 ,motion3610_3clk_direction_selection 
+402c 20600000 rtn 
+
+mouse_3610_smart_select:
+402d 6800c6a4 fetch 1 ,mem_sensor_smart_flag 
+402e c0004051 beq p3610_smart_enable ,mouse_3610_smart_disable 
+402f c000c045 beq p3610_smart_disable ,mouse_3610_smart_enable 
+4030 20600000 rtn 
+
+motion3610_6clk_direction_selection:
+4031 20403fa3 call motion_6clk_direction_dispose 
+4032 2020402d branch mouse_3610_smart_select 
+
+motion3610_12clk_direction_selection:
+4033 20403fa7 call motion_12clk_direction_dispose 
+4034 2020402d branch mouse_3610_smart_select 
+
+motion3610_9clk_direction_selection:
+4035 20403fab call motion_9clk_direction_dispose 
+4036 2020402d branch mouse_3610_smart_select 
+
+motion3610_3clk_direction_selection:
+4037 20403fb3 call motion_3clk_direction_dispose 
+4038 2020402d branch mouse_3610_smart_select 
+
+mouse_read_sensor3610_data:
+4039 2040640f call spi_ncs_enable 
+403a 2040405d call mouse_read_sensor_common 
+403b dfe00005 arg 5 ,pdata 
+403c 20406414 call twspi_read 
+403d 6000c6a1 store 1 ,mem_mouse_xy_h 
+403e dfe00007 arg 7 ,pdata 
+403f 20406414 call twspi_read 
+4040 6000c6a2 store 1 ,mem_sensor_shutter_hi 
+4041 dfe00008 arg 8 ,pdata 
+4042 20406414 call twspi_read 
+4043 6000c6a3 store 1 ,mem_sensor_shutter_lo 
+4044 20206411 branch spi_ncs_disable 
+
+mouse_3610_smart_enable:
+4045 6800c6a2 fetch 1 ,mem_sensor_shutter_hi 
+4046 c1800000 rtnne 0 
+4047 6800c6a3 fetch 1 ,mem_sensor_shutter_lo 
+4048 1fe67c2d sub pdata ,45 ,null 
+4049 20610000 rtn positive 
+404a 7046a400 jam p3610_smart_enable ,mem_sensor_smart_flag 
+404b 5800ba41 setarg 0xba41 
+404c 20406405 call sensor_write 
+404d 58000032 setarg 0x0032 
+404e 20406405 call sensor_write 
+404f 5800b541 setarg 0xb541 
+4050 20206405 branch sensor_write 
+
+mouse_3610_smart_disable:
+4051 6800c6a2 fetch 1 ,mem_sensor_shutter_hi 
+4052 c1800000 rtnne 0 
+4053 6800c6a3 fetch 1 ,mem_sensor_shutter_lo 
+4054 1fe67c2d sub pdata ,45 ,null 
+4055 24610000 nrtn positive 
+4056 7046a401 jam p3610_smart_disable ,mem_sensor_smart_flag 
+4057 5800ba41 setarg 0xba41 
+4058 20406405 call sensor_write 
+4059 58008032 setarg 0x8032 
+405a 20406405 call sensor_write 
+405b 5800b541 setarg 0xb541 
+405c 20206405 branch sensor_write 
+
+mouse_read_sensor_common:
+405d dfe00003 arg pan_reg_delta_x ,pdata 
+405e 20406414 call twspi_read 
+405f 6001469b store 2 ,mem_mouse_x 
+4060 dfe00004 arg pan_reg_delta_y ,pdata 
+4061 20406414 call twspi_read 
+4062 6001469d store 2 ,mem_mouse_y 
+4063 20600000 rtn 
+
+mouse_set_qdecoder_x:
+4064 d840001b arg mouse_default_xa_gpio ,temp 
+4065 204067fb call gpio_config_input 
+4066 d840001b arg mouse_default_xa_gpio ,temp 
+4067 2040681d call gpio_get_bit 
+4068 20608000 rtn true 
+4069 68108109 hfetch 1 ,core_qdec_cntx 
+406a 79207e04 set1 4 ,pdata 
+406b 60108109 hstore 1 ,core_qdec_cntx 
+406c 20600000 rtn 
+
+mouse_hardware_zwheel:
+406d 6808c6c0 fetcht 1 ,mem_mouse_z_data 
+406e 68108109 hfetch 1 ,core_qdec_cntx 
+406f 9840fe00 iadd temp ,pdata 
+4070 207a0000 rtn blank 
+4071 6000c69f store 1 ,mem_mouse_z 
+4072 7046c000 jam 0 ,mem_mouse_z_data 
+4073 20207fe7 branch enable_user 
+
+mouse_hardware_zwheel_beforelpm:
+4074 6808c6c0 fetcht 1 ,mem_mouse_z_data 
+4075 68108109 hfetch 1 ,core_qdec_cntx 
+4076 9840fe00 iadd temp ,pdata 
+4077 6000c6c0 store 1 ,mem_mouse_z_data 
+4078 20600000 rtn 
+
+mouse_zwheel:
+4079 6800c6c0 fetch 1 ,mem_mouse_z_data 
+407a 207a0000 rtn blank 
+407b 6000c69f store 1 ,mem_mouse_z 
+407c 7046c000 jam 0 ,mem_mouse_z_data 
+407d 20207fe7 branch enable_user 
+
+mouse_t_zwheel:
+407e 6800c6ba fetch 1 ,mem_mouse_tz_data 
+407f 207a0000 rtn blank 
+4080 6000c6a0 store 1 ,mem_mouse_tz 
+4081 7046ba00 jam 0 ,mem_mouse_tz_data 
+4082 20207fe7 branch enable_user 
+
+mouse_check_key_gpio:
+4083 da200000 arg 0 ,rega 
+4084 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
+4085 2040681d call gpio_get_bit 
+4086 7920a200 setflag true ,0 ,rega 
+4087 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
+4088 2040681d call gpio_get_bit 
+4089 7920a201 setflag true ,1 ,rega 
+408a 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
+408b 2040681d call gpio_get_bit 
+408c 7920a202 setflag true ,2 ,rega 
+408d 20404090 call mouse_check_s_key_gpio 
+
+mouse_check_key_gpio_output:
+408e 1a227e00 copy rega ,pdata 
+408f 20600000 rtn 
+
+mouse_check_s_key_gpio:
+4090 6800c6e5 fetch 1 ,mem_bk_button_gpio 
+4091 c17f8000 rtneq gpio_disable 
+4092 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
+4093 2040681d call gpio_get_bit 
+4094 7920a203 setflag true ,3 ,rega 
+4095 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
+4096 2040681d call gpio_get_bit 
+4097 7920a204 setflag true ,4 ,rega 
+4098 20600000 rtn 
+
+mouse_key:
+4099 20404083 call mouse_check_key_gpio 
+409a 204040a8 call mouse_set_mult 
+409b 204040a3 call mouse_24g_key 
+409c 1a227e00 copy rega ,pdata 
+409d 6808c69a fetcht 1 ,mem_mouse_key 
+409e 6000c69a store 1 ,mem_mouse_key 
+409f 9842fe00 ixor temp ,pdata 
+40a0 1fe67c00 sub pdata ,0 ,null 
+40a1 20628000 rtn zero 
+40a2 20207fe7 branch enable_user 
+
+mouse_24g_key:
+40a3 c6930000 rtnmark0 mark_24g 
+40a4 1a227e00 copy rega ,pdata 
+40a5 207a0000 rtn blank 
+40a6 6000c69a store 1 ,mem_mouse_key 
+40a7 20207fe7 branch enable_user 
+
+mouse_set_mult:
+40a8 68014682 fetch 2 ,mem_ui_state_map 
+40a9 c284c0ad bbit1 ui_state_ble_connected ,mouse_set_ble_mult 
+40aa 68014682 fetch 2 ,mem_ui_state_map 
+40ab c28040b0 bbit1 ui_state_bt_connected ,mouse_set_bt_mult 
+40ac 20600000 rtn 
+
+mouse_set_ble_mult:
+40ad 1a227e00 copy rega ,pdata 
+40ae 243a5820 nbranch le_set_config_short_mult ,blank 
+40af 20205822 branch le_clr_config_short_mult 
+
+mouse_set_bt_mult:
+40b0 1a227e00 copy rega ,pdata 
+40b1 243a2bc7 nbranch classic_bt_set_mult_short_flag ,blank 
+40b2 20202bc9 branch classic_bt_clr_mult_short_flag 
+
+mouse_sensor_sdio_low:
+40b3 44f3c01c bpatch patch1c_7 ,mem_patch1c 
+40b4 d840001a arg mouse_spi1_sdio_gpio ,temp 
+40b5 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+40b6 2feffe12 isolate1 mouse_enable_spi2 ,pdata 
+40b7 2040c0be call mouse_sensor_sdio_low2 ,true 
+40b8 2040681d call gpio_get_bit 
+40b9 20608000 rtn true 
+40ba 5800000a setarg 0x0a 
+40bb 20406414 call twspi_read 
+40bc 200003e8 nop 1000 
+40bd 202040b3 branch mouse_sensor_sdio_low 
+
+mouse_sensor_sdio_low2:
+40be d840001f arg mouse_spi2_sdio_gpio ,temp 
+40bf 20600000 rtn 
+
+mouse_spi_sdio_gpio_pollup:
+40c0 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+40c1 c28940c4 bbit1 mouse_enable_spi2 ,mouse_spi2_sdio_gpio_pollup 
+
+mouse_spi1_sdio_gpio_pollup:
+40c2 d840001a arg mouse_spi1_sdio_gpio ,temp 
+40c3 202067fe branch gpio_config_input_without_wake 
+
+mouse_spi2_sdio_gpio_pollup:
+40c4 d840001f arg mouse_spi2_sdio_gpio ,temp 
+40c5 202067fe branch gpio_config_input_without_wake 
+
+mouse_init_sunt:
+40c6 20403d36 call mouse_spi_init 
+40c7 20758000 rtn wake 
+40c8 204040c0 call mouse_spi_sdio_gpio_pollup 
+40c9 6800c6e0 fetch 1 ,mem_config_sensor_type 
+40ca c002c0d5 beq p3610 ,mouse_init_3610sensor 
+
+mouse_init_sensor:
+40cb 204040d9 call mouse_read_sensor_id 
+40cc c01840e0 beq p32xx_id1 ,mouse_init_p32xx_id2_judge 
+40cd c018c0ea beq p3065_id1 ,mouse_p3065_init_param 
+40ce 204040d1 call mouse_twspi_reset 
+40cf 200003e8 nop 1000 
+40d0 202040cb branch mouse_init_sensor 
+
+mouse_twspi_reset:
+40d1 44f4401d bpatch patch1d_0 ,mem_patch1d 
+40d2 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+40d3 c28963e0 bbit1 mouse_enable_spi2 ,twspi_reset2 
+40d4 202063d1 branch twspi_reset 
+
+mouse_init_3610sensor:
+40d5 204040d9 call mouse_read_sensor_id 
+40d6 c01f414b beq p3610_id1 ,mouse_init_p3610 
+40d7 20404145 call mouse_init_3610sensor_reset 
+40d8 202040d5 branch mouse_init_3610sensor 
+
+mouse_read_sensor_id:
+40d9 58000001 setarg pan_reg_pid_h 
+40da 20406414 call twspi_read 
+40db 6000c6de store 1 ,mem_sensor_id2 
+40dc 58000000 setarg pan_reg_pid_l 
+40dd 20406414 call twspi_read 
+40de 6000c6dd store 1 ,mem_sensor_id1 
+40df 20600000 rtn 
+
+mouse_init_p32xx_id2_judge:
+40e0 6800c6de fetch 1 ,mem_sensor_id2 
+40e1 c068c139 beq p3205_tj3t_id2 ,mouse_3205_3t_init_param 
+40e2 c06940f8 beq p3204_tj3l_id2 ,mouse_3204_3l_init_param 
+40e3 c00140ee beq p3212_id2 ,mouse_3212_init_param 
+40e4 c02a40e6 beq pka8_id2 ,mouse_ka8_init_param 
+40e5 20600000 rtn 
+
+mouse_ka8_init_param:
+40e6 7046e002 jam ka8 ,mem_config_sensor_type 
+40e7 20600000 rtn 
+
+mouse_p3065xy_init_param:
+40e8 7046e006 jam p3065_xy ,mem_config_sensor_type 
+40e9 20600000 rtn 
+
+mouse_p3065_init_param:
+40ea 6800c6de fetch 1 ,mem_sensor_id2 
+40eb c03840e8 beq p3065_xy_id2 ,mouse_p3065xy_init_param 
+40ec 7046e001 jam p3065 ,mem_config_sensor_type 
+40ed 20600000 rtn 
+
+mouse_3212_init_param:
+40ee 7046e004 jam p3212 ,mem_config_sensor_type 
+40ef 204040f6 call mouse_sensor_disable_wp 
+40f0 58003426 setarg 0x3426 
+40f1 20406413 call twspi_write 
+40f2 58000419 setarg 0x0419 
+40f3 20406413 call twspi_write 
+
+mouse_sensor_enable_wp:
+40f4 58000009 setarg 0x0009 
+40f5 20206413 branch twspi_write 
+
+mouse_sensor_disable_wp:
+40f6 58005a09 setarg 0x5a09 
+40f7 20206413 branch twspi_write 
+
+mouse_3204_3l_init_param:
+40f8 7046e003 jam p3204 ,mem_config_sensor_type 
+40f9 204040f6 call mouse_sensor_disable_wp 
+40fa 58000f0d setarg 0x0f0d 
+40fb 20406413 call twspi_write 
+40fc 5800e31d setarg 0xe31d 
+40fd 20406413 call twspi_write 
+40fe 5800d27d setarg 0xd27d 
+40ff 20406413 call twspi_write 
+4100 20404102 call mouse_32xx_init_param 
+4101 2020411a branch mouse_32xx_init_param_1 
+
+mouse_32xx_init_param:
+4102 5800351b setarg 0x351b 
+4103 20406413 call twspi_write 
+4104 5800b428 setarg 0xb428 
+4105 20406413 call twspi_write 
+4106 58004629 setarg 0x4629 
+4107 20406413 call twspi_write 
+4108 5800962a setarg 0x962a 
+4109 20406413 call twspi_write 
+410a 58008c2b setarg 0x8c2b 
+410b 20406413 call twspi_write 
+410c 58006e2c setarg 0x6e2c 
+410d 20406413 call twspi_write 
+410e 5800642d setarg 0x642d 
+410f 20406413 call twspi_write 
+4110 58005f38 setarg 0x5f38 
+4111 20406413 call twspi_write 
+4112 58000f39 setarg 0x0f39 
+4113 20406413 call twspi_write 
+4114 5800323a setarg 0x323a 
+4115 20406413 call twspi_write 
+4116 5800473b setarg 0x473b 
+4117 20406413 call twspi_write 
+4118 58001042 setarg 0x1042 
+4119 20206413 branch twspi_write 
+
+mouse_32xx_init_param_1:
+411a 58002e54 setarg 0x2e54 
+411b 20406413 call twspi_write 
+411c 5800f255 setarg 0xf255 
+411d 20406413 call twspi_write 
+411e 5800f461 setarg 0xf461 
+411f 20406413 call twspi_write 
+4120 58007063 setarg 0x7063 
+4121 20406413 call twspi_write 
+4122 58005275 setarg 0x5275 
+4123 20406413 call twspi_write 
+4124 58004176 setarg 0x4176 
+4125 20406413 call twspi_write 
+4126 5800ed77 setarg 0xed77 
+4127 20406413 call twspi_write 
+4128 58002378 setarg 0x2378 
+4129 20406413 call twspi_write 
+412a 58004679 setarg 0x4679 
+412b 20406413 call twspi_write 
+412c 5800e57a setarg 0xe57a 
+412d 20406413 call twspi_write 
+412e 5800487c setarg 0x487c 
+412f 20406413 call twspi_write 
+4130 5800777e setarg 0x777e 
+4131 20406413 call twspi_write 
+4132 5800017f setarg 0x017f 
+4133 20406413 call twspi_write 
+4134 5800000b setarg 0x000b 
+4135 20406413 call twspi_write 
+4136 5800007f setarg 0x007f 
+4137 20406413 call twspi_write 
+4138 202040f4 branch mouse_sensor_enable_wp 
+
+mouse_3205_3t_init_param:
+4139 7046e000 jam p3205 ,mem_config_sensor_type 
+413a 204040f6 call mouse_sensor_disable_wp 
+413b 5800100d setarg 0x100d 
+413c 20406413 call twspi_write 
+413d 5800ed1d setarg 0xed1d 
+413e 20406413 call twspi_write 
+413f 5800807d setarg 0x807d 
+4140 20406413 call twspi_write 
+4141 20404102 call mouse_32xx_init_param 
+4142 58000943 setarg 0x0943 
+4143 20406413 call twspi_write 
+4144 2020411a branch mouse_32xx_init_param_1 
+
+mouse_init_3610sensor_reset:
+4145 6808c6dc fetcht 1 ,mem_sensor_reset_gpio 
+4146 20406829 call gpio_out_active 
+4147 20407ec1 call delay_10ms 
+4148 6808c6dc fetcht 1 ,mem_sensor_reset_gpio 
+4149 20406825 call gpio_out_inactive 
+414a 20207ec1 branch delay_10ms 
+
+mouse_init_p3610:
+414b 7046e005 jam p3610 ,mem_config_sensor_type 
+414c 5800ba41 setarg 0xba41 
+414d 20406405 call sensor_write 
+414e 58000d11 setarg 0x0d11 
+414f 20406405 call sensor_write 
+4150 5800041b setarg 0x041b 
+4151 20406405 call sensor_write 
+4152 5800041c setarg 0x041c 
+4153 20406405 call sensor_write 
+4154 58000f1d setarg 0x0f1d 
+4155 20406405 call sensor_write 
+4156 58000032 setarg 0x0032 
+4157 20406405 call sensor_write 
+4158 5800b541 setarg 0xb541 
+4159 20206405 branch sensor_write 
+
+mouse_set_sensor_reg:
+415a 5800ba41 setarg 0xba41 
+415b 20406405 call sensor_write 
+415c 20000fa0 nop 4000 
+415d 5800ff7f setarg 0xff7f 
+415e 20406405 call sensor_write 
+415f 1a227e00 copy rega ,pdata 
+4160 20406405 call sensor_write 
+4161 5800007f setarg 0x007f 
+4162 20406405 call sensor_write 
+4163 5800b541 setarg 0xb541 
+4164 20206405 branch sensor_write 
+
+extsign:
+4165 c4038000 rtnbit0 7 
+4166 d840ff00 arg 0xff00 ,temp 
+4167 9841fe00 ior temp ,pdata 
+4168 20600000 rtn 
+
+extsign_bit3:
+4169 c4018000 rtnbit0 3 
+416a d84000f0 arg 0xf0 ,temp 
+416b 9841fe00 ior temp ,pdata 
+416c 20600000 rtn 
+
+mouse_le:
+416d 20405892 call le_fifo_check_nearly_full 
+416e 247a0000 nrtn blank 
+416f 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+4170 1fe17e03 and pdata ,0x03 ,pdata 
+4171 c1818000 rtnne 0x03 
+4172 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+4173 c281c179 bbit1 mosue_24g_pairing_flag ,mouse_le_send_empty_packet 
+4174 c2804179 bbit1 mouse_select_device_flag ,mouse_le_send_empty_packet 
+4175 c282c179 bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
+4176 20403f97 call mouse_motion 
+4177 24740000 nrtn user 
+4178 20203f90 branch mouse_fill_data_le 
+
+mouse_le_send_empty_packet:
+4179 58000000 setarg 0 
+417a 6003c69a store 7 ,mem_mouse_key 
+417b 20203f90 branch mouse_fill_data_le 
+
+mouse_priority_bb_event:
+417c 1a627e00 copy regc ,pdata 
+417d c00a41c3 beq bt_evt_le_connected ,mouse_le_bb_event_connected 
+417e c000c2ca beq bt_evt_bb_connected ,mouse_stop_discovery 
+417f c00ac1d9 beq bt_evt_le_disconnected ,mouse_bb_disconnected 
+4180 c00141d9 beq bt_evt_bb_disconnected ,mouse_bb_disconnected 
+4181 c002c1d6 beq bt_evt_setup_complete ,mouse_bt_event_setup_complete 
+4182 c008426c beq bt_evt_button_long_pressed ,mouse_bb_event_discovery_btn 
+4183 c009429b beq bt_evt_hid_handshake ,mouse_bt_hid_handshake 
+4184 c00341d5 beq bt_evt_hid_connected ,mouse_bt_hid_connected 
+4185 c00241cc beq bt_evt_reconn_failed ,mouse_bb_event_reconn_failed 
+4186 c009c1cc beq bt_evt_reconn_page_timeout ,mouse_bb_event_reconn_timeout 
+4187 c00541ca beq bt_evt_pincode_req ,mouse_bb_event_pincode 
+4188 c01733cd beq bt_evt_remote_unsniff ,app_start_auto_sniff 
+4189 c018c1b4 beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
+418a c01941b6 beq bt_evt_le_start_enc ,mouse_le_ll_start_encryt 
+418b c01f4191 beq bt_evt_le_pairing_complete ,mouse_le_pairing_complete 
+418c c013c38e beq bt_evt_virtual_cable_unplug ,mouse_irtual_cable_unplug 
+418d c01cc19c beq bt_evt_24g_pairing_complete ,mouse_24g_pairing_complete 
+418e c01d4192 beq bt_evt_24g_attempt_fail ,mouse_24g_attempt_fail 
+418f c01e419a beq bt_evt_24g_attempt_success ,mouse_24g_attempt_success 
+4190 20600000 rtn 
+
+mouse_le_pairing_complete:
+4191 20203410 branch app_ble_store_reconn_info 
+
+mouse_24g_attempt_fail:
+4192 70478b01 jam 1 ,mem_mouse_24g_enter_lpm_enable 
+4193 6800c71e fetch 1 ,mem_reconn_times 
+4194 243a4492 nbranch mouse_polling_device ,blank 
+4195 6800c720 fetch 1 ,mem_device_flag 
+4196 6808c703 fetcht 1 ,mem_24g_device_number 
+4197 98467c00 isub temp ,null 
+4198 2022b40a branch app_enter_hibernate ,zero 
+4199 20600000 rtn 
+
+mouse_24g_attempt_success:
+419a 70478b01 jam 1 ,mem_mouse_24g_enter_lpm_enable 
+419b 20600000 rtn 
+
+mouse_24g_pairing_complete:
+419c 70478b01 jam 1 ,mem_mouse_24g_enter_lpm_enable 
+419d d8e00003 arg mosue_24g_pairing_flag ,queue 
+419e 204043d2 call mouse_disable_function_flag 
+419f 58000000 setarg 0 
+41a0 60014707 store 2 ,mem_24g_pairing_timer_count 
+41a1 7046a700 jam 0 ,mem_mouse_move_flag 
+41a2 6800c6e0 fetch 1 ,mem_config_sensor_type 
+41a3 1fe67c05 sub pdata ,p3610 ,null 
+41a4 2042c039 call mouse_read_sensor3610_data ,zero 
+41a5 2442c05d ncall mouse_read_sensor_common ,zero 
+41a6 68008004 fetch 1 ,mouse_flag_len ,mem_mouse_flag 
+41a7 c289c1af bbit1 mouse_enable_flash ,mouse_store_flash_24g_address 
+41a8 204041aa call mouse_set_24g_addr_eeprom 
+41a9 202065d1 branch iicd_write_protect_eep_data 
+
+mouse_set_24g_addr_eeprom:
+41aa 20402c7a call g24_head_ptr2regc 
+41ab 1a60a2ae add regc ,offset_24g_addr ,rega 
+41ac da40005b arg mouse_g24_addr_eeprom_offect ,regb 
+41ad d8400004 arg 4 ,temp 
+41ae 20600000 rtn 
+
+mouse_store_flash_24g_address:
+41af 20402c7a call g24_head_ptr2regc 
+41b0 1a60a4ae add regc ,offset_24g_addr ,regb 
+41b1 ea408000 ifetch 1 ,regb 
+41b2 6000c77b store 1 ,mem_mouse_24g_addr 
+41b3 20204435 branch mouse_store_flash_device_info 
+
+mouse_le_pairing_success:
+41b4 d8e00002 arg ll_pairing_success_flag ,queue 
+41b5 202041b9 branch mouse_le_enable_connect_flag 
+
+mouse_le_ll_start_encryt:
+41b6 7046c602 jam 2 ,mem_le_start_encrypt_timer 
+41b7 d8e00001 arg ll_start_enc_flag ,queue 
+41b8 202041b9 branch mouse_le_enable_connect_flag 
+
+mouse_le_enable_connect_flag:
+41b9 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+41ba f9207e00 qset1 pdata 
+41bb 6000c6c5 store 1 ,mem_le_connect_status_flag 
+41bc 20600000 rtn 
+
+mouse_le_disable_connect_flag:
+41bd 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+41be f93ffe00 qset0 pdata 
+41bf 6000c6c5 store 1 ,mem_le_connect_status_flag 
+41c0 20600000 rtn 
+
+mouse_le_clean_connect_flag:
+41c1 7046c500 jam 0 ,mem_le_connect_status_flag 
+41c2 20600000 rtn 
+
+mouse_le_bb_event_connected:
+41c3 6801420a fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+41c4 793ffe00 set0 app_disc_by_button ,pdata 
+41c5 6001420a store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+41c6 58000000 setarg 0 
+41c7 600146ae store 2 ,mem_mouse_direct_timer 
+41c8 20403f8d call mouse_no_data_timer_init 
+41c9 202042ca branch mouse_stop_discovery 
+
+mouse_bb_event_pincode:
+41ca 204063cb call pincode_reinit 
+41cb 202033dd branch app_bt_set_pincode 
+
+mouse_bb_event_reconn_timeout:
+
+mouse_bb_event_reconn_failed:
+41cc 6800c71e fetch 1 ,mem_reconn_times 
+41cd 243a4492 nbranch mouse_polling_device ,blank 
+41ce 68014682 fetch 2 ,mem_ui_state_map 
+41cf c28642b0 bbit1 ui_state_btn_down ,mouse_start_discovery 
+41d0 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+41d1 c28041d7 bbit1 mouse_select_device_flag ,mouse_soft_reset 
+41d2 c282c2b0 bbit1 mouse_bt_discovery_button_down_flag ,mouse_start_discovery 
+41d3 c281aead bbit1 mosue_24g_pairing_flag ,g24_start_pairing_sm1 
+41d4 202033a7 branch app_bb_hibernate 
+
+mouse_bt_hid_connected:
+41d5 20203f74 branch mouse_hid_connected 
+
+mouse_bt_event_setup_complete:
+41d6 20600000 rtn 
+
+mouse_soft_reset:
+41d7 204043c0 call mouse_select_device_enable 
+41d8 2020659a branch soft_reset_chip 
+
+mouse_bb_disconnected:
+41d9 44f4c01d bpatch patch1d_1 ,mem_patch1d 
+41da 204041e7 call mouse_bb_discon_clear_stack 
+41db 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+41dc c28041d7 bbit1 mouse_select_device_flag ,mouse_soft_reset 
+41dd c281aead bbit1 mosue_24g_pairing_flag ,g24_start_pairing_sm1 
+41de 6800c71e fetch 1 ,mem_reconn_times 
+41df 243a4492 nbranch mouse_polling_device ,blank 
+41e0 68014208 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+41e1 c283c1f5 bbit1 app_disc_ble ,mouse4_0_event_bb_disconn 
+41e2 c28033a9 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+41e3 c280c1ef bbit1 app_disc_after_pairing ,mouse_event_light_state_pairing 
+41e4 c28141f2 bbit1 app_disc_after_reconn ,mouse_event_light_state_hibernate 
+41e5 c281c1f2 bbit1 app_disc_after_sniff ,mouse_event_light_state_hibernate 
+41e6 202042b0 branch mouse_start_discovery 
+
+mouse_bb_discon_clear_stack:
+41e7 58000000 setarg 0 
+41e8 600446b7 store 8 ,mem_wheel_tb_old_pinlevel 
+41e9 e0a20000 istore 4 ,contw 
+41ea 7046b400 jam 0 ,mem_mouse_send_blank_timer 
+41eb 7046a700 jam 0 ,mem_mouse_move_flag 
+41ec 7041e200 jam app_handshake_null ,mem_app_handshake_flag 
+41ed 70442900 jam 0 ,mem_ltk_exists 
+41ee 20600000 rtn 
+
+mouse_event_light_state_pairing:
+41ef c282c1f2 bbit1 app_disc_after_handshake ,mouse_event_light_state_hibernate 
+41f0 c281c1f2 bbit1 app_disc_after_sniff ,mouse_event_light_state_hibernate 
+41f1 202042b0 branch mouse_start_discovery 
+
+mouse_event_light_state_hibernate:
+41f2 68014682 fetch 2 ,mem_ui_state_map 
+41f3 c28642b0 bbit1 ui_state_btn_down ,mouse_start_discovery 
+41f4 202033a7 branch app_bb_hibernate 
+
+mouse4_0_event_bb_disconn:
+41f5 204041c1 call mouse_le_clean_connect_flag 
+41f6 68014208 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+41f7 c28033a9 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+41f8 202033a7 branch app_bb_hibernate 
+
+mouse_bb_event_timer:
+41f9 204043d6 call mouse_adc_read 
+41fa 20404243 call mouse_24g_delay_timer 
+41fb 20404246 call mouse_ban_24g_pairing_timer 
+41fc 20404250 call mouse_dpi_led_blink_delay_timer 
+41fd 2040445d call mouse_statue_up_timer 
+41fe 20404443 call mouse_statue_cheak_timer 
+41ff 20404333 call mouse_select_device 
+4200 204043a5 call mouse_bt_discovery_cheak 
+4201 204043eb call mouse_low_voltage_led_timer 
+4202 20404209 call mouse_sensor_led_contrl_timer 
+4203 20404231 call mouse_check_hid_handshake_timer 
+4204 20404234 call mouse_check_discovery_timeout_timer 
+4205 20404237 call mouse_check_direct_timeout_timer 
+4206 2040423a call mouse_check_no_data_timeout_timer 
+4207 2040423d call mouse_check_mouse_state_timer 
+4208 20204240 branch mouse_le_enable_att_list_timer 
+
+mouse_sensor_led_contrl_timer:
+4209 6800c711 fetch 1 ,mem_mouse_sensor_timer_count 
+420a 207a0000 rtn blank 
+420b 1fe0ffff increase -1 ,pdata 
+420c 6000c711 store 1 ,mem_mouse_sensor_timer_count 
+420d 247a0000 nrtn blank 
+420e 2020420f branch mouse_sensor_led_contrl 
+
+mouse_sensor_led_contrl:
+420f 6800c712 fetch 1 ,mem_sensor_led_style 
+4210 c1000000 rtneq ui_led_state_blink_stop 
+4211 c002c216 beq ui_led_state_blink_darking ,mouse_sensor_led_blink_state_darking 
+
+mouse_sensor_led_blink_state_lighting:
+4212 20404225 call mouse_sensor_led_on 
+4213 70471205 jam ui_led_state_blink_darking ,mem_sensor_led_style 
+4214 70471105 jam led_sensor_blink_cnt ,mem_mouse_sensor_timer_count 
+4215 20600000 rtn 
+
+mouse_sensor_led_blink_state_darking:
+4216 2040422c call mouse_sensor_led_off 
+4217 70471204 jam ui_led_state_blink_lighting ,mem_sensor_led_style 
+4218 70471105 jam led_sensor_blink_cnt ,mem_mouse_sensor_timer_count 
+4219 20600000 rtn 
+
+mouse_sensor_led_blink_stop:
+
+mouse_sensor_reset:
+421a 58008006 setarg 0x8006 
+421b 20406413 call twspi_write 
+421c 200003e8 nop 1000 
+421d 70471100 jam 0x00 ,mem_mouse_sensor_timer_count 
+421e 70471200 jam ui_led_state_blink_stop ,mem_sensor_led_style 
+421f 202040e0 branch mouse_init_p32xx_id2_judge 
+
+mouse_p3212sensor_led_on:
+4220 5800a006 setarg 0xa006 
+4221 20406413 call twspi_write 
+4222 5800a005 setarg 0xa005 
+4223 20206413 branch twspi_write 
+
+mouse_sensor_led_on_global:
+4224 70471100 jam 0 ,mem_mouse_sensor_timer_count 
+
+mouse_sensor_led_on:
+4225 6800c6e0 fetch 1 ,mem_config_sensor_type 
+4226 c0024220 beq p3212 ,mouse_p3212sensor_led_on 
+4227 58000106 setarg 0x0106 
+4228 20406413 call twspi_write 
+4229 5800a105 setarg 0xa105 
+422a 20206413 branch twspi_write 
+
+mouse_sensor_led_off_global:
+422b 70471100 jam 0 ,mem_mouse_sensor_timer_count 
+
+mouse_sensor_led_off:
+422c 58000906 setarg 0x0906 
+422d 20206413 branch twspi_write 
+
+mouse_sensor_start_blink:
+422e 70471105 jam led_sensor_blink_cnt ,mem_mouse_sensor_timer_count 
+422f 70471201 jam ui_led_state_blink_start ,mem_sensor_led_style 
+4230 20600000 rtn 
+
+mouse_check_hid_handshake_timer:
+4231 da604680 arg mem_hid_handshake_timer_count ,regc 
+4232 da40429b arg mouse_bt_hid_handshake ,regb 
+4233 2020336d branch timer_single_step 
+
+mouse_check_discovery_timeout_timer:
+4234 da6046ac arg mem_mouse_discovery_timer ,regc 
+4235 da404264 arg mouse_check_discovery_timeout ,regb 
+4236 20203374 branch timer_single_step_2b 
+
+mouse_check_direct_timeout_timer:
+4237 da6046ae arg mem_mouse_direct_timer ,regc 
+4238 da404266 arg mouse_check_direct_timeout ,regb 
+4239 20203374 branch timer_single_step_2b 
+
+mouse_check_no_data_timeout_timer:
+423a da6046b0 arg mem_mouse_no_data_timer ,regc 
+423b da40426a arg mouse_check_no_data_timeout ,regb 
+423c 20203374 branch timer_single_step_2b 
+
+mouse_check_mouse_state_timer:
+423d da6046c4 arg mem_mouse_statue_led_timer ,regc 
+423e da404478 arg mouse_statue_led_off ,regb 
+423f 2020336d branch timer_single_step 
+
+mouse_le_enable_att_list_timer:
+4240 da6046c6 arg mem_le_start_encrypt_timer ,regc 
+4241 da40425e arg mouse_le_enable_att_list ,regb 
+4242 2020336d branch timer_single_step 
+
+mouse_24g_delay_timer:
+4243 da604704 arg mem_24g_enter_lpm_timer ,regc 
+4244 da404249 arg mouse_24g_delay ,regb 
+4245 2020336d branch timer_single_step 
+
+mouse_ban_24g_pairing_timer:
+4246 da604707 arg mem_24g_pairing_timer_count ,regc 
+4247 da404249 arg mouse_ban_24g_pairing ,regb 
+4248 20203374 branch timer_single_step_2b 
+
+mouse_ban_24g_pairing:
+
+mouse_24g_delay:
+4249 20600000 rtn 
+
+mosue_dpi_led_blink_init:
+424a 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+424b c40b8000 rtnbit0 mouse_enable_dpi_led_blink 
+424c 7046df0a jam 10 ,mem_mouse_dpi_led_delay_count 
+424d 6800c6f4 fetch 1 ,mem_dpi_led_gpio 
+424e 6000c715 store 1 ,mem_mouse_struct_led_gpio 
+424f 20600000 rtn 
+
+mouse_dpi_led_blink_delay_timer:
+4250 da6046df arg mem_mouse_dpi_led_delay_count ,regc 
+4251 da404253 arg mouse_dpi_led_setting ,regb 
+4252 2020336d branch timer_single_step 
+
+mouse_dpi_led_setting:
+4253 6800c6f4 fetch 1 ,mem_dpi_led_gpio 
+4254 6000c715 store 1 ,mem_mouse_struct_led_gpio 
+4255 58000190 setarg led_dpi_blink 
+4256 60014716 store 2 ,mem_mouse_on_time 
+4257 60014718 store 2 ,mem_mouse_off_time 
+4258 da200000 arg 0 ,rega 
+4259 6808c77a fetcht 1 ,mem_mouse_dpi 
+425a 18408401 increase 1 ,temp 
+425b 6008c714 storet 1 ,mem_mouse_blink_count 
+425c 70471301 jam ui_led_state_blink_start ,mem_mouse_led_type 
+425d 20600000 rtn 
+
+mouse_le_enable_att_list:
+425e 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+425f c3810000 rtnbit1 ll_pairing_success_flag 
+4260 700a9912 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+4261 20407d8f call ui_ipc_send_cmd 
+4262 d8e00000 arg write_req_enable_flag ,queue 
+4263 202041b9 branch mouse_le_enable_connect_flag 
+
+mouse_check_discovery_timeout:
+4264 204042ca call mouse_stop_discovery 
+4265 2020340a branch app_enter_hibernate 
+
+mouse_check_direct_timeout:
+4266 204033f6 call app_ble_stop_direct_adv 
+4267 6800c71e fetch 1 ,mem_reconn_times 
+4268 243a4492 nbranch mouse_polling_device ,blank 
+4269 2020340a branch app_enter_hibernate 
+
+mouse_check_no_data_timeout:
+426a c5137e1d bmark1 mark_24g ,check_51cmd_hibernate 
+426b 20204386 branch mouse_disconnect 
+
+mouse_bb_event_discovery_btn:
+426c 44f5401d bpatch patch1d_2 ,mem_patch1d 
+426d 7046b400 jam 0 ,mem_mouse_send_blank_timer 
+426e 20404386 call mouse_disconnect 
+426f 204041c1 call mouse_le_clean_connect_flag 
+4270 202042b0 branch mouse_start_discovery 
+
+mouse3_0_check_reconn_target:
+4271 680341d0 fetch 6 ,mem_hci_plap 
+4272 203a33eb branch app_bt_start_discovery_short ,blank 
+4273 2040427e call mouse_reconn_setting_led_gpio 
+4274 70016d17 jam 0x17 ,mem_connection_options 
+4275 6800c65a fetch 1 ,mem_ssp_enable 
+4276 243a33e1 nbranch app_bt_start_reconnect ,blank 
+4277 70016d04 jam 0x04 ,mem_connection_options 
+4278 202033e1 branch app_bt_start_reconnect 
+
+mouse4_0_check_reconn_target:
+4279 680146a8 fetch 2 ,mem_mouse_direct_timeout 
+427a 600146ae store 2 ,mem_mouse_direct_timer 
+427b 2040427e call mouse_reconn_setting_led_gpio 
+427c 20403418 call app_lpm_mult_disable 
+427d 20207df4 branch check_51cmd_adv 
+
+mouse_reconn_setting_led_gpio:
+427e 580000c8 setarg led_reconnect_blink 
+427f 60014716 store 2 ,mem_mouse_on_time 
+4280 60014718 store 2 ,mem_mouse_off_time 
+4281 20204285 branch mouse_setting_led_gpio_comman 
+
+mouse_discover_setting_led_gpio:
+4282 580003e8 setarg led_discovery_blink 
+4283 60014716 store 2 ,mem_mouse_on_time 
+4284 60014718 store 2 ,mem_mouse_off_time 
+
+mouse_setting_led_gpio_comman:
+4285 6800c720 fetch 1 ,mem_device_flag 
+4286 c000c28a beq mode_bt_device1 ,mouse_device_led1 
+4287 c001428c beq mode_bt_device2 ,mouse_device_led2 
+4288 c001c28e beq mode_bt_device3 ,mouse_device_led3 
+4289 20600000 rtn 
+
+mouse_device_led1:
+428a 6800c6f0 fetch 1 ,mem_config_device1_led_gpio 
+428b 2020428f branch mouse_led_blink 
+
+mouse_device_led2:
+428c 6800c6f1 fetch 1 ,mem_config_device2_led_gpio 
+428d 2020428f branch mouse_led_blink 
+
+mouse_device_led3:
+428e 6800c6f2 fetch 1 ,mem_config_device3_led_gpio 
+
+mouse_led_blink:
+428f 60008aa2 store 1 ,mem_temp 
+4290 20404482 call mouse_devce_led_off 
+4291 68008aa2 fetch 1 ,mem_temp 
+4292 6000c715 store 1 ,mem_mouse_struct_led_gpio 
+4293 da200000 arg 0 ,rega 
+4294 70471301 jam ui_led_state_blink_start ,mem_mouse_led_type 
+4295 20207d1e branch ui_led_blink_start_global 
+
+mouse_led_off:
+4296 da200000 arg 0 ,rega 
+4297 20207d19 branch ui_led_off_global 
+
+mouse_led_on:
+4298 da200000 arg 0 ,rega 
+4299 20207d14 branch ui_led_on_global 
+
+mouse4_0_bb_event_discovery_btn:
+429a 202041c1 branch mouse_le_clean_connect_flag 
+
+mouse_bt_hid_handshake:
+429b 7041e201 jam app_handshake_done ,mem_app_handshake_flag 
+429c 20403416 call app_lpm_mult_enable 
+429d 20403412 call app_bt_store_reconn_info 
+429e 58000000 setarg 0 
+429f 6001467e store 2 ,mem_discovery_timeout_timer_count 
+42a0 6000c680 store 1 ,mem_hid_handshake_timer_count 
+42a1 2020340e branch app_bt_enter_sniff 
+
+mouse_check_reconn_target:
+42a2 2040435f call mouse_cheak_select_device_by_switch 
+42a3 6800c720 fetch 1 ,mem_device_flag 
+42a4 6808c703 fetcht 1 ,mem_24g_device_number 
+42a5 98467c00 isub temp ,null 
+42a6 2022c2ab branch mouse_connect_24g_mode ,zero 
+42a7 6800c210 fetch 1 ,mem_xrecord_mode 
+42a8 c019c271 beq rec_3_mode ,mouse3_0_check_reconn_target 
+42a9 c01a4279 beq rec_4_mode ,mouse4_0_check_reconn_target 
+42aa 202042b0 branch mouse_start_discovery 
+
+mouse_connect_24g_mode:
+42ab 20403d57 call mouse_start_24g_mode 
+42ac c6130000 rtnmark1 mark_24g 
+42ad 6800c71e fetch 1 ,mem_reconn_times 
+42ae 243a4492 nbranch mouse_polling_device ,blank 
+42af 20600000 rtn 
+
+mouse_start_discovery:
+42b0 44f5c01d bpatch patch1d_3 ,mem_patch1d 
+42b1 68014682 fetch 2 ,mem_ui_state_map 
+42b2 c285c2b7 bbit1 ui_state_ble_adv ,mouse_start_discovery_norandom 
+42b3 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+42b4 c30c42b7 bbit0 mouse_enable_ble_random_addre ,mouse_start_discovery_norandom 
+42b5 180a7e00 random pdata 
+42b6 6000c4a1 store 1 ,mem_le_lap + 1 
+
+mouse_start_discovery_norandom:
+42b7 20403418 call app_lpm_mult_disable 
+42b8 68014687 fetch 2 ,mem_discovery_timeout 
+42b9 600146ac store 2 ,mem_mouse_discovery_timer 
+42ba 70016d06 jam 6 ,mem_connection_options 
+42bb 58000000 setarg 0 
+42bc 600146b0 store 2 ,mem_mouse_no_data_timer 
+42bd 600146ae store 2 ,mem_mouse_direct_timer 
+42be d8e00007 arg mouse_store_eeprom_flag ,queue 
+42bf 204043ce call mouse_enable_function_flag 
+42c0 204043ca call mouse_bt_discovery_button_down_disable 
+42c1 6800c092 fetch 1 ,mem_device_option 
+42c2 2feffe01 isolate1 mode_4_mouse ,pdata 
+42c3 2040fdf4 call check_51cmd_adv ,true 
+42c4 6800c092 fetch 1 ,mem_device_option 
+42c5 2feffe00 isolate1 mode_3_mouse ,pdata 
+42c6 2040fddd call check_51cmd_start_discovery ,true 
+42c7 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+42c8 c28e422e bbit1 mouse_enable_discovery_sensor_led ,mouse_sensor_start_blink 
+42c9 20204282 branch mouse_discover_setting_led_gpio 
+
+mouse_stop_discovery:
+42ca 44f6401d bpatch patch1d_4 ,mem_patch1d 
+42cb 6800c092 fetch 1 ,mem_device_option 
+42cc 2feffe01 isolate1 mode_4_mouse ,pdata 
+42cd 2040c2d4 call mouse_stop_le_adv ,true 
+42ce 6800c092 fetch 1 ,mem_device_option 
+42cf 2feffe00 isolate1 mode_3_mouse ,pdata 
+42d0 2040c2d7 call mouse_stop_bt3_discovery ,true 
+42d1 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+42d2 c28e421a bbit1 mouse_enable_discovery_sensor_led ,mouse_sensor_led_blink_stop 
+42d3 20204482 branch mouse_devce_led_off 
+
+mouse_stop_le_adv:
+42d4 58000000 setarg 0 
+42d5 600146ae store 2 ,mem_mouse_direct_timer 
+42d6 20207dfa branch check_51cmd_stop_adv 
+
+mouse_stop_bt3_discovery:
+42d7 58000000 setarg 0 
+42d8 600146ac store 2 ,mem_mouse_discovery_timer 
+42d9 20207de2 branch check_51cmd_stop_discovery 
+
+mouse_store_remote_bdaddr:
+42da 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+42db c4038000 rtnbit0 mouse_store_eeprom_flag 
+42dc d8e00007 arg mouse_store_eeprom_flag ,queue 
+42dd 204043d2 call mouse_disable_function_flag 
+42de 204042e8 call mouse_check_device_addr 
+
+mouse_unplug_clean_bdaddr:
+42df 204042fb call mouse_before_store_reconn_info 
+42e0 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+42e1 c289c435 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
+42e2 c28a42e4 bbit1 mouse_enable_eeprom ,mouse_store_eeprom_device_info 
+42e3 20600000 rtn 
+
+mouse_store_eeprom_device_info:
+42e4 d8400058 arg 88 ,temp 
+42e5 da204720 arg mem_device_flag ,rega 
+42e6 da400000 arg mouse_info_eeprom_offect ,regb 
+42e7 202065d1 branch iicd_write_protect_eep_data 
+
+mouse_check_device_addr:
+42e8 68008185 fetch 1 ,mem_record_bt_mode 
+42e9 c01a42ec beq rec_4_mode ,mouse_check_le_device_addr 
+42ea c019c2ef beq rec_3_mode ,mouse_check_bt_device_addr 
+42eb 20600000 rtn 
+
+mouse_check_le_device_addr:
+42ec 6000c6c7 store 1 ,mem_device_addr_temp 
+42ed 6803044f fetch 6 ,mem_le_plap 
+42ee 202042f1 branch mouse_check_bt_device_addr_common 
+
+mouse_check_bt_device_addr:
+42ef 6000c6c7 store 1 ,mem_device_addr_temp 
+42f0 68030040 fetch 6 ,mem_plap 
+
+mouse_check_bt_device_addr_common:
+42f1 600346c8 store 6 ,mem_device_addr_temp + 1 
+42f2 6803c6c7 fetch 7 ,mem_device_addr_temp 
+42f3 d8c04721 arg mem_device1_type ,contr 
+42f4 df200003 arg 3 ,loopcnt 
+
+mouse_check_device_addr_end:
+42f5 e8cb8000 ifetcht 7 ,contr 
+42f6 98467c00 isub temp ,null 
+42f7 2022c310 branch mouse_clean_addr ,zero 
+42f8 18c08c16 increase 22 ,contr 
+42f9 c20042f5 loop mouse_check_device_addr_end 
+42fa 20600000 rtn 
+
+mouse_before_store_reconn_info:
+42fb da204721 arg mem_device1_type ,rega 
+42fc 6800c720 fetch 1 ,mem_device_flag 
+42fd 1fe0ffff increase -1 ,pdata 
+42fe 1feffe1d mul32 pdata ,29 ,pdata 
+42ff 9a20a200 iadd rega ,rega 
+4300 68008185 fetch 1 ,mem_record_bt_mode 
+4301 e2208000 istore 1 ,rega 
+4302 c01a4305 beq rec_4_mode ,mouse_store_le_device 
+4303 c019c30c beq rec_3_mode ,mouse_store_bt_device 
+4304 20600000 rtn 
+
+mouse_store_le_device:
+4305 6803044f fetch 6 ,mem_le_plap 
+4306 e0a30000 istore 6 ,contw 
+4307 d8c04419 arg mem_le_ltk ,contr 
+4308 20407ebf call memcpy16 
+4309 680344a0 fetch 6 ,mem_le_lap 
+430a e0a30000 istore 6 ,contw 
+430b 20600000 rtn 
+
+mouse_store_bt_device:
+430c 68030040 fetch 6 ,mem_plap 
+430d e0a30000 istore 6 ,contw 
+430e d8c041be arg mem_link_key ,contr 
+430f 20207ebf branch memcpy16 
+
+mouse_clean_addr:
+4310 18c08dfa increase -6 ,contr 
+4311 18c20a00 copy contr ,contw 
+4312 680b46c8 fetcht 6 ,mem_device_addr_temp + 1 
+4313 18408403 increase 3 ,temp 
+4314 e0ab0000 istoret 6 ,contw 
+4315 20600000 rtn 
+
+mouse_eeprom_load_recon_info:
+4316 d8400058 arg 88 ,temp 
+4317 da204720 arg mem_device_flag ,rega 
+4318 da400000 arg mouse_info_eeprom_offect ,regb 
+4319 204065df call iicd_read_eep_data 
+
+mouse_select_reconn_device:
+431a da204721 arg mem_device1_type ,rega 
+431b 6800c720 fetch 1 ,mem_device_flag 
+431c 6808c703 fetcht 1 ,mem_24g_device_number 
+431d 98467c00 isub temp ,null 
+431e 20628000 rtn zero 
+431f 1fe0ffff increase -1 ,pdata 
+4320 1feffe1d mul32 pdata ,29 ,pdata 
+4321 9a20a200 iadd rega ,rega 
+4322 ea208000 ifetch 1 ,rega 
+4323 6000c210 store 1 ,mem_xrecord_mode 
+4324 c019c327 beq rec_3_mode ,mouse_load_bt_device 
+4325 c01a432c beq rec_4_mode ,mouse_load_le_device 
+4326 20600000 rtn 
+
+mouse_load_bt_device:
+4327 e8c30000 ifetch 6 ,contr 
+
+mouse_load_bt_device_end:
+4328 600341d0 store 6 ,mem_hci_plap 
+4329 d8a041be arg mem_link_key ,contw 
+432a 20407ebf call memcpy16 
+432b 202067d7 branch check_link_key_load 
+
+mouse_load_le_device:
+432c e8c30000 ifetch 6 ,contr 
+
+mouse_load_le_device_end:
+432d 600341d0 store 6 ,mem_hci_plap 
+432e d8a04419 arg mem_le_ltk ,contw 
+432f 20407ebf call memcpy16 
+4330 e8c30000 ifetch 6 ,contr 
+4331 600344a0 store 6 ,mem_le_lap 
+4332 20600000 rtn 
+
+mouse_select_device:
+4333 6800c6f5 fetch 1 ,mem_config_function_enable 
+4334 c282c349 bbit1 enable_select_device_by_gpio_button ,mouse_select_device_by_button 
+4335 c2834359 bbit1 enable_select_device_by_switch ,mouse_select_device_by_switch 
+4336 20204337 branch mouse_select_device_by_combination_key 
+
+mouse_select_device_by_combination_key:
+4337 20404083 call mouse_check_key_gpio 
+4338 c003433e beq mouse_rm_button ,mouse_select_device_commbination_key_down 
+
+mouse_select_device_commbination_key_up:
+4339 7046d81e jam 30 ,mem_combination_select_device_count 
+433a 6800c6d9 fetch 1 ,mem_select_device_button_statue 
+433b c1008000 rtneq dpi_button_state_up 
+433c 7046d901 jam dpi_button_state_up ,mem_select_device_button_statue 
+433d 20600000 rtn 
+
+mouse_select_device_commbination_key_down:
+433e 20404343 call mouse_combination_select_device_timer 
+433f 6800c6d9 fetch 1 ,mem_select_device_button_statue 
+4340 c1000000 rtneq dpi_button_state_down 
+4341 7046d900 jam dpi_button_state_down ,mem_select_device_button_statue 
+4342 202043c0 branch mouse_select_device_enable 
+
+mouse_combination_select_device_timer:
+4343 6800c6d8 fetch 1 ,mem_combination_select_device_count 
+4344 207a0000 rtn blank 
+4345 1fe0ffff pincrease -1 
+4346 6000c6d8 store 1 ,mem_combination_select_device_count 
+4347 247a0000 nrtn blank 
+4348 20204370 branch mouse_ready_reconnection_by_button 
+
+mouse_select_device_by_button:
+4349 6800c6ed fetch 1 ,mem_config_select_device_button_gpio 
+434a c17f8000 rtneq gpio_disable 
+434b 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
+434c 2040681d call gpio_get_bit 
+434d 2020c354 branch mouse_select_device_button_down ,true 
+
+mouse_select_device_button_up:
+434e 6800c6d9 fetch 1 ,mem_select_device_button_statue 
+434f c1008000 rtneq dpi_button_state_up 
+4350 7046d901 jam dpi_button_state_up ,mem_select_device_button_statue 
+4351 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+4352 c3830000 rtnbit1 mouse_long_bt_button_flag 
+4353 20204370 branch mouse_ready_reconnection_by_button 
+
+mouse_select_device_button_down:
+4354 6800c6d9 fetch 1 ,mem_select_device_button_statue 
+4355 c1000000 rtneq dpi_button_state_down 
+4356 7046d900 jam dpi_button_state_down ,mem_select_device_button_statue 
+4357 d8e00006 arg mouse_long_bt_button_flag ,queue 
+4358 202043d2 branch mouse_disable_function_flag 
+
+mouse_select_device_by_switch:
+4359 68008004 fetch 1 ,mouse_flag_len ,mem_mouse_flag 
+435a c4030000 rtnbit0 enable_select_device_by_switch 
+435b 6800c720 fetch 1 ,mem_device_flag 
+435c c000c369 beq mode_bt_device1 ,mouse_select1_device 
+435d c001436c beq mode_24g_device ,mouse_select2_device 
+435e 20600000 rtn 
+
+mouse_cheak_select_device_by_switch:
+435f 68008004 fetch 1 ,mouse_flag_len ,mem_mouse_flag 
+4360 c4030000 rtnbit0 enable_select_device_by_switch 
+4361 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
+4362 2040681d call gpio_get_bit 
+4363 2020c366 branch mouse_cheak_select_24gdevice ,true 
+
+mouse_select_btdevice:
+4364 70472001 jam mode_bt_device1 ,mem_device_flag 
+4365 20600000 rtn 
+
+mouse_cheak_select_24gdevice:
+4366 6800c703 fetch 1 ,mem_24g_device_number 
+4367 6000c720 store 1 ,mem_device_flag 
+4368 20600000 rtn 
+
+mouse_select1_device:
+4369 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
+436a 2420c370 nbranch mouse_ready_reconnection_by_button ,true 
+436b 20600000 rtn 
+
+mouse_select2_device:
+436c 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
+436d 2040681d call gpio_get_bit 
+436e 2020c354 branch mouse_select_device_button_down ,true 
+436f 20600000 rtn 
+
+mouse_ready_reconnection_by_button:
+4370 6808c720 fetcht 1 ,mem_device_flag 
+4371 18408401 increase 1 ,temp 
+4372 6800c6d2 fetch 1 ,mem_device_number 
+4373 98467c00 isub temp ,null 
+4374 244143cc ncall mouse_select_device_count_clean ,positive 
+4375 6008c720 storet 1 ,mem_device_flag 
+4376 7041bd00 jam 0 ,mem_link_key_exists 
+4377 2040437a call mouse_store_device_number2eeprom 
+4378 204043c0 call mouse_select_device_enable 
+4379 2020437e branch mouse_set_reconnection 
+
+mouse_store_device_number2eeprom:
+437a d8400001 arg 1 ,temp 
+437b da204720 arg mem_device_flag ,rega 
+437c da400000 arg 0 ,regb 
+437d 20206606 branch iicd_write_eep_data 
+
+mouse_set_reconnection:
+437e 20404381 call mouse_stop_bluetooth_mode 
+437f 204043c2 call mouse_select_device_disable 
+4380 202041d7 branch mouse_soft_reset 
+
+mouse_stop_bluetooth_mode:
+4381 68014682 fetch 2 ,mem_ui_state_map 
+4382 c283c392 bbit1 ui_state_bt_reconnect ,mouse_cancel_reconnect 
+4383 c284b402 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+4384 c28033e9 bbit1 ui_state_bt_connected ,app_bt_disconnect 
+4385 202042ca branch mouse_stop_discovery 
+
+mouse_disconnect:
+4386 44f6c01d bpatch patch1d_5 ,mem_patch1d 
+4387 58000000 setarg 0 
+4388 600146b0 store 2 ,mem_mouse_no_data_timer 
+4389 68014682 fetch 2 ,mem_ui_state_map 
+438a c284b402 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+438b 68014682 fetch 2 ,mem_ui_state_map 
+438c c28033e9 bbit1 ui_state_bt_connected ,app_bt_disconnect 
+438d 20600000 rtn 
+
+mouse_irtual_cable_unplug:
+438e 58000001 setarg 0x01 
+438f 60030040 store 6 ,mem_plap 
+4390 70018533 jam rec_3_mode ,mem_record_bt_mode 
+4391 202042df branch mouse_unplug_clean_bdaddr 
+
+mouse_cancel_reconnect:
+4392 204043c4 call mouse_bt_cannel_reconn_enable 
+4393 20207e2f branch check_51cmd_bb_reconn_cancel 
+
+mouse_bt_discovery_by_button:
+4394 6800c6ec fetch 1 ,mem_config_bt_button_gpio 
+4395 c17f8000 rtneq gpio_disable 
+4396 6808c6ec fetcht 1 ,mem_config_bt_button_gpio 
+4397 2040681d call gpio_get_bit 
+4398 2020c39f branch mouse_bt_discovery_button_down ,true 
+
+mouse_bt_discovery_button_up:
+4399 6800c685 fetch 1 ,mem_ui_button_timeout 
+439a 6000c6da store 1 ,mem_combination_ui_button_count 
+439b 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
+439c c1008000 rtneq dpi_button_state_up 
+439d 7046db01 jam dpi_button_state_up ,mem_bt_discovey_button_statue 
+439e 202043ca branch mouse_bt_discovery_button_down_disable 
+
+mouse_bt_discovery_button_down:
+439f 204043b5 call mouse_bt_discovry_timer 
+43a0 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
+43a1 c1000000 rtneq dpi_button_state_down 
+43a2 7046db00 jam dpi_button_state_down ,mem_bt_discovey_button_statue 
+43a3 20407e2f call check_51cmd_bb_reconn_cancel 
+43a4 202043c8 branch mouse_bt_discovery_button_down_enable 
+
+mouse_bt_discovery_cheak:
+43a5 6800c6f5 fetch 1 ,mem_config_function_enable 
+43a6 c2824394 bbit1 enable_bt_button ,mouse_bt_discovery_by_button 
+
+mouse_bt_discovery_commbination_key:
+43a7 20404083 call mouse_check_key_gpio 
+43a8 c003c3af beq mouse_lmr_button ,mouse_bt_discovery_commbination_key_down 
+
+mouse_bt_discovery_commbination_key_up:
+43a9 6800c685 fetch 1 ,mem_ui_button_timeout 
+43aa 6000c6da store 1 ,mem_combination_ui_button_count 
+43ab 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
+43ac c1008000 rtneq dpi_button_state_up 
+43ad 7046db01 jam dpi_button_state_up ,mem_bt_discovey_button_statue 
+43ae 202043ca branch mouse_bt_discovery_button_down_disable 
+
+mouse_bt_discovery_commbination_key_down:
+43af 204043b5 call mouse_bt_discovry_timer 
+43b0 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
+43b1 c1000000 rtneq dpi_button_state_down 
+43b2 7046db00 jam dpi_button_state_down ,mem_bt_discovey_button_statue 
+43b3 20407e2f call check_51cmd_bb_reconn_cancel 
+43b4 202043c8 branch mouse_bt_discovery_button_down_enable 
+
+mouse_bt_discovry_timer:
+43b5 da6046da arg mem_combination_ui_button_count ,regc 
+43b6 da4043b8 arg mouse_long_button_bt_discovry ,regb 
+43b7 2020336d branch timer_single_step 
+
+mouse_long_button_bt_discovry:
+43b8 d8e00006 arg mouse_long_bt_button_flag ,queue 
+43b9 204043ce call mouse_enable_function_flag 
+43ba 20403357 call app_evt_button_long_pressed 
+43bb 2020426c branch mouse_bb_event_discovery_btn 
+
+mouse_cpi_enable:
+43bc d8e00001 arg mouse_cpi_flag ,queue 
+43bd 202043ce branch mouse_enable_function_flag 
+
+mouse_cpi_disable:
+43be d8e00001 arg mouse_cpi_flag ,queue 
+43bf 202043d2 branch mouse_disable_function_flag 
+
+mouse_select_device_enable:
+43c0 d8e00000 arg mouse_select_device_flag ,queue 
+43c1 202043ce branch mouse_enable_function_flag 
+
+mouse_select_device_disable:
+43c2 d8e00000 arg mouse_select_device_flag ,queue 
+43c3 202043d2 branch mouse_disable_function_flag 
+
+mouse_bt_cannel_reconn_enable:
+43c4 d8e00002 arg mouse_bt_cannel_reconn_flag ,queue 
+43c5 202043ce branch mouse_enable_function_flag 
+
+mouse_bt_cannel_reconn_disable:
+43c6 d8e00002 arg mouse_bt_cannel_reconn_flag ,queue 
+43c7 202043d2 branch mouse_disable_function_flag 
+
+mouse_bt_discovery_button_down_enable:
+43c8 d8e00005 arg mouse_bt_discovery_button_down_flag ,queue 
+43c9 202043ce branch mouse_enable_function_flag 
+
+mouse_bt_discovery_button_down_disable:
+43ca d8e00005 arg mouse_bt_discovery_button_down_flag ,queue 
+43cb 202043d2 branch mouse_disable_function_flag 
+
+mouse_select_device_count_clean:
+43cc d8400001 arg 1 ,temp 
+43cd 20600000 rtn 
+
+mouse_enable_function_flag:
+43ce 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+43cf f9207e00 qset1 pdata 
+43d0 600246d3 store mouse_flag_len ,mem_mouse_flag 
+43d1 20600000 rtn 
+
+mouse_disable_function_flag:
+43d2 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+43d3 f93ffe00 qset0 pdata 
+43d4 600246d3 store mouse_flag_len ,mem_mouse_flag 
+43d5 20600000 rtn 
+
+mouse_adc_read:
+43d6 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+43d7 c40d0000 rtnbit0 mouse_enable_adc 
+43d8 6800c6ce fetch 1 ,mem_adc_read_timer 
+43d9 1fe0fe01 increase 1 ,pdata 
+43da 6000c6ce store 1 ,mem_adc_read_timer 
+43db 1fe67c0a sub pdata ,10 ,null 
+43dc 20610000 rtn positive 
+43dd 7046ce00 jam 0 ,mem_adc_read_timer 
+43de 204068eb call adc_set_mode 
+43df 20406908 call vdd_calculate_by_mode 
+43e0 6001470f store 2 ,mem_mouse_vdd_now_vol 
+43e1 da204709 arg mem_mouse_vdd_calculate_set ,rega 
+43e2 20406930 call adc_bat_percent_lowpower_out 
+43e3 6800c231 fetch 1 ,mem_adc_power_flag 
+43e4 c280c4a0 bbit1 1 ,mouse_power_down 
+43e5 c30043e9 bbit0 0 ,mouse_adc_no_low_voltage 
+43e6 202043e7 branch mouse_adc_low_voltage 
+
+mouse_adc_low_voltage:
+43e7 d8e00004 arg mouse_low_voltage_flag ,queue 
+43e8 202043ce branch mouse_enable_function_flag 
+
+mouse_adc_no_low_voltage:
+43e9 d8e00004 arg mouse_low_voltage_flag ,queue 
+43ea 202043d2 branch mouse_disable_function_flag 
+
+mouse_low_voltage_led_timer:
+43eb 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+43ec c4020000 rtnbit0 mouse_low_voltage_flag 
+43ed 6800c6ef fetch 1 ,mem_config_low_voltage_alarm_gpio 
+43ee 6000c715 store 1 ,mem_mouse_struct_led_gpio 
+43ef 6800c6cf fetch 1 ,mem_adc_low_volatage_led_timer_count 
+43f0 1fe0fe01 pincrease 1 
+43f1 6000c6cf store 1 ,mem_adc_low_volatage_led_timer_count 
+43f2 1fe67c14 sub pdata ,20 ,null 
+43f3 244143f9 ncall mouse_adc_low_volatage_led_timer_count_clean ,positive 
+43f4 c00143fb beq 2 ,mouse_low_voltage_led_on 
+43f5 c00243fe beq 4 ,mouse_low_voltage_led_off 
+43f6 c00343fb beq 6 ,mouse_low_voltage_led_on 
+43f7 c00443fe beq 8 ,mouse_low_voltage_led_off 
+43f8 20600000 rtn 
+
+mouse_adc_low_volatage_led_timer_count_clean:
+43f9 7046cf01 jam 1 ,mem_adc_low_volatage_led_timer_count 
+43fa 202043fe branch mouse_low_voltage_led_off 
+
+mouse_low_voltage_led_on:
+43fb da200000 arg 0 ,rega 
+43fc 70471302 jam ui_led_state_lighting ,mem_mouse_led_type 
+43fd 20207d14 branch ui_led_on_global 
+
+mouse_low_voltage_led_off:
+43fe da200000 arg 0 ,rega 
+43ff 70471302 jam ui_led_state_lighting ,mem_mouse_led_type 
+4400 20207d19 branch ui_led_off_global 
+
+mouse_g24_package_data:
+4401 20403f97 call mouse_motion 
+4402 24740000 nrtn user 
+4403 da200007 arg 7 ,rega 
+4404 da40469a arg mem_mouse_key ,regb 
+4405 20600000 rtn 
+
+mouse_g24_enter_lpm:
+4406 6800c78b fetch 1 ,mem_mouse_24g_enter_lpm_enable 
+4407 207a0000 rtn blank 
+4408 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
+4409 2040681d call gpio_get_bit 
+440a 2040c410 call mouse_24g_dpi_delay_init ,true 
+440b 6800c704 fetch 1 ,mem_24g_enter_lpm_timer 
+440c 247a0000 nrtn blank 
+440d 20404083 call mouse_check_key_gpio 
+440e 247a0000 nrtn blank 
+440f 20202d83 branch g24_lpm_long_sleep 
+
+mouse_24g_dpi_delay_init:
+4410 6800c6e7 fetch 1 ,mem_dpi_button_gpio 
+4411 c17f8000 rtneq ui_button_gpio_disable 
+4412 7047040a jam 10 ,mem_24g_enter_lpm_timer 
+4413 20600000 rtn 
+
+mouse_load_flash_info_cheak:
+4414 20404423 call mouse_load_flash_flag 
+4415 68014778 fetch 2 ,mem_store_flag 
+4416 d840aa55 arg eeprom_init_flag ,temp 
+4417 98467c00 isub temp ,null 
+4418 2022c42b branch mouse_load_flash_device_info ,zero 
+4419 60094778 storet 2 ,mem_store_flag 
+441a 2040441c call mouse_ble_init_address 
+441b 20204435 branch mouse_store_flash_device_info 
+
+mouse_ble_init_address:
+441c 680344a0 fetch 6 ,mem_le_lap 
+441d 60034738 store 6 ,mem_device1_locall_addr 
+441e 1fe0ff00 add pdata ,0x0100 ,pdata 
+441f 60034755 store 6 ,mem_device2_locall_addr 
+4420 1fe0ff00 add pdata ,0x0100 ,pdata 
+4421 60034772 store 6 ,mem_device3_locall_addr 
+4422 20600000 rtn 
+
+mouse_load_flash_flag:
+4423 58004778 setarg mem_store_flag 
+4424 d8404720 arg mem_mouse_information_start ,temp 
+4425 98460400 isub temp ,temp 
+4426 6801c700 fetch 3 ,mem_flash_base 
+4427 9840fe00 iadd temp ,pdata 
+4428 d8400002 arg 2 ,temp 
+4429 da204778 arg mem_store_flag ,rega 
+442a 20206562 branch spid_read_flash 
+
+mouse_load_flash_device_info:
+442b 5800477f setarg mem_mouse_information_end 
+442c d8404720 arg mem_mouse_information_start ,temp 
+442d 98460400 isub temp ,temp 
+442e 6801c700 fetch 3 ,mem_flash_base 
+442f da204720 arg mem_mouse_information_start ,rega 
+4430 20406562 call spid_read_flash 
+4431 2040431a call mouse_select_reconn_device 
+4432 6802477b fetch 4 ,mem_mouse_24g_addr 
+4433 20402c7a call g24_head_ptr2regc 
+4434 2020322c branch g24_store_mem_addr 
+
+mouse_store_flash_device_info:
+4435 5800477f setarg mem_mouse_information_end 
+4436 d8404720 arg mem_mouse_information_start ,temp 
+4437 98460400 isub temp ,temp 
+4438 da204720 arg mem_mouse_information_start ,rega 
+4439 6801c700 fetch 3 ,mem_flash_base 
+443a 20206514 branch flash_write 
+
+mouse_store_eerpom_dpi:
+443b d8400001 arg 1 ,temp 
+443c da20477a arg mem_mouse_dpi ,rega 
+443d da40005a arg mouse_dpi_eeprom_offect ,regb 
+443e 202065d1 branch iicd_write_protect_eep_data 
+
+mouse_load_eeprom_dpi:
+443f d8400001 arg 1 ,temp 
+4440 da20477a arg mem_mouse_dpi ,rega 
+4441 da40005a arg mouse_dpi_eeprom_offect ,regb 
+4442 202065df branch iicd_read_eep_data 
+
+mouse_statue_cheak_timer:
+4443 c6130000 rtnmark1 mark_24g 
+4444 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+4445 c40b0000 rtnbit0 mouse_enable_statue_up 
+4446 6800c705 fetch 1 ,mem_mouse_1step_up_count 
+4447 1fe0fe01 pincrease 1 
+4448 1fe17e07 and pdata ,0x07 ,pdata 
+4449 6000c705 store 1 ,mem_mouse_1step_up_count 
+444a c1838000 rtnne 0x07 
+444b 68014682 fetch 2 ,mem_ui_state_map 
+444c c280444f bbit1 ui_state_bt_connected ,mouse_check_statue_up 
+444d c284c44f bbit1 ui_state_ble_connected ,mouse_check_statue_up 
+444e 20600000 rtn 
+
+mouse_check_statue_up:
+444f 44f7401d bpatch patch1d_6 ,mem_patch1d 
+4450 6800c706 fetch 1 ,mem_mouse_2step_up_count 
+4451 247a0000 nrtn blank 
+4452 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+4453 c4040000 rtnbit0 mouse_statue_up_flag 
+4454 6800c6a5 fetch 1 ,mem_sensor_squal_reg 
+4455 204063fb call sensor_read 
+4456 6000c6a6 store 1 ,mem_sensor_iqc 
+4457 1fe67c10 sub pdata ,0x10 ,null 
+4458 2021445b branch mouse_statue_up_timer_init ,positive 
+4459 70470600 jam 0 ,mem_mouse_2step_up_count 
+445a 20600000 rtn 
+
+mouse_statue_up_timer_init:
+445b 7047061e jam 30 ,mem_mouse_2step_up_count 
+445c 20600000 rtn 
+
+mouse_statue_up_timer:
+445d da604706 arg mem_mouse_2step_up_count ,regc 
+445e da404460 arg mouse_statue_up ,regb 
+445f 2020336d branch timer_single_step 
+
+mouse_statue_up:
+4460 6800c6a5 fetch 1 ,mem_sensor_squal_reg 
+4461 20406414 call twspi_read 
+4462 1fe67c10 sub pdata ,0x10 ,null 
+4463 24610000 nrtn positive 
+4464 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+4465 c4040000 rtnbit0 mouse_statue_up_flag 
+4466 d8e00008 arg mouse_statue_up_flag ,queue 
+4467 204043d2 call mouse_disable_function_flag 
+4468 70417200 jam 0 ,mem_lpm_mult 
+4469 7046c41e jam 30 ,mem_mouse_statue_led_timer 
+446a 20404482 call mouse_devce_led_off 
+446b 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+446c c28ac471 bbit1 mouse_enable_statue_up_three_led ,mouse_three_device_statue_up 
+
+mouse_two_device_statue_up:
+446d 6800c720 fetch 1 ,mem_device_flag 
+446e c000c489 beq mode_bt_device1 ,mouse_device1_led_on 
+446f c0014476 beq mode_bt_device2 ,mouse_device_blink_led_init 
+4470 20600000 rtn 
+
+mouse_three_device_statue_up:
+4471 6800c720 fetch 1 ,mem_device_flag 
+4472 c000c489 beq mode_bt_device1 ,mouse_device1_led_on 
+4473 c001448c beq mode_bt_device2 ,mouse_device2_led_on 
+4474 c001c48f beq mode_bt_device3 ,mouse_device3_led_on 
+4475 20600000 rtn 
+
+mouse_device_blink_led_init:
+4476 6800c6f0 fetch 1 ,mem_config_device1_led_gpio 
+4477 2020428f branch mouse_led_blink 
+
+mouse_statue_led_off:
+4478 70417220 jam 0x20 ,mem_lpm_mult 
+4479 20204482 branch mouse_devce_led_off 
+
+mouse_devce1_led_off:
+447a 6800c6f0 fetch 1 ,mem_config_device1_led_gpio 
+447b c17f8000 rtneq gpio_disable 
+447c 6000c715 store 1 ,mem_mouse_struct_led_gpio 
+447d 20204296 branch mouse_led_off 
+
+mouse_devce2_led_off:
+447e 6800c6f1 fetch 1 ,mem_config_device2_led_gpio 
+447f c17f8000 rtneq gpio_disable 
+4480 6000c715 store 1 ,mem_mouse_struct_led_gpio 
+4481 20204296 branch mouse_led_off 
+
+mouse_devce_led_off:
+4482 20404296 call mouse_led_off 
+4483 2040447a call mouse_devce1_led_off 
+4484 2040447e call mouse_devce2_led_off 
+
+mouse_devce3_led_off:
+4485 6800c6f2 fetch 1 ,mem_config_device3_led_gpio 
+4486 c17f8000 rtneq gpio_disable 
+4487 6000c715 store 1 ,mem_mouse_struct_led_gpio 
+4488 20204296 branch mouse_led_off 
+
+mouse_device1_led_on:
+4489 6800c6f0 fetch 1 ,mem_config_device1_led_gpio 
+448a 6000c715 store 1 ,mem_mouse_struct_led_gpio 
+448b 20204298 branch mouse_led_on 
+
+mouse_device2_led_on:
+448c 6800c6f1 fetch 1 ,mem_config_device2_led_gpio 
+448d 6000c715 store 1 ,mem_mouse_struct_led_gpio 
+448e 20204298 branch mouse_led_on 
+
+mouse_device3_led_on:
+448f 6800c6f2 fetch 1 ,mem_config_device3_led_gpio 
+4490 6000c715 store 1 ,mem_mouse_struct_led_gpio 
+4491 20204298 branch mouse_led_on 
+
+mouse_polling_device:
+4492 44f7c01d bpatch patch1d_7 ,mem_patch1d 
+4493 6800c71e fetch 1 ,mem_reconn_times 
+4494 1fe0ffff increase -1 ,pdata 
+4495 6000c71e store 1 ,mem_reconn_times 
+4496 6808c720 fetcht 1 ,mem_device_flag 
+4497 18408401 increase 1 ,temp 
+4498 6800c6d2 fetch 1 ,mem_device_number 
+4499 98467c00 isub temp ,null 
+449a 244143cc ncall mouse_select_device_count_clean ,positive 
+449b 6008c720 storet 1 ,mem_device_flag 
+449c 7041bd00 jam 0 ,mem_link_key_exists 
+449d 2040437a call mouse_store_device_number2eeprom 
+449e 204042fb call mouse_before_store_reconn_info 
+449f 202042a2 branch mouse_check_reconn_target 
+
+mouse_power_down:
+44a0 20404482 call mouse_devce_led_off 
+44a1 58000000 setarg 0 
+44a2 600400a1 store 8 ,mem_gpio_wakeup_low 
+44a3 20202b1f branch lpm_hibernate 
+
+remote_car_init:
+44a4 20758000 rtn wake 
+44a5 68108081 hfetch 1 ,core_gpio_sel1 
+44a6 1fe17ef0 and_into 0xf0 ,pdata 
+44a7 60108081 hstore 1 ,core_gpio_sel1 
+44a8 20406948 call keyscan_key_init 
+44a9 580044e6 setarg remote_car_le_before_hibernate 
+44aa 600141eb store 2 ,mem_cb_before_hibernate 
+44ab 580044e9 setarg remote_car_process_lpm_before 
+44ac 600141ed store 2 ,mem_cb_before_lpm 
+44ad 580044ef setarg remote_car_scale_process_idle 
+44ae 600141f3 store 2 ,mem_cb_idle_process 
+44af 580044f2 setarg remote_car_scale_process_bb_event 
+44b0 600141f5 store 2 ,mem_cb_bb_event_process 
+44b1 580033d0 setarg app_get_lpm_wake_lock 
+44b2 600141e9 store 2 ,mem_cb_check_wakelock 
+44b3 20402c7a call g24_head_ptr2regc 
+44b4 580045c2 setarg remote_car_g24_package_data 
+44b5 1a608ad8 add regc ,offset_24g_cb_data ,contw 
+44b6 e0a10000 istore 2 ,contw 
+44b7 580044ea setarg remote_car_g24_enter_lpm 
+44b8 1a608ada add regc ,offset_24g_cb_lpm_prepare ,contw 
+44b9 e0a10000 istore 2 ,contw 
+44ba 580044e9 setarg remote_car_process_lpm_before 
+44bb 1a608adc add regc ,offset_24g_cb_lpm_before ,contw 
+44bc e0a10000 istore 2 ,contw 
+44bd 5800450e setarg remote_car_event_timer 
+44be 600141fd store 2 ,mem_cb_event_timer 
+44bf 580044da setarg remote_car_power_off_signal 
+44c0 6001475b store 2 ,mem_remote_car_power_off_cb 
+44c1 580044d6 setarg remote_car_soft_switch_power_on_signal 
+44c2 6001475f store 2 ,mem_remote_car_power_standby_cb 
+44c3 58004560 setarg remote_car_send_key_data 
+44c4 6001470f store 2 ,mem_cb_remote_car_keyscan 
+44c5 44f8401e bpatch patch1e_0 ,mem_patch1e 
+44c6 204044e2 call remote_car_init_environment 
+44c7 20407e38 call queue_init 
+44c8 70417202 jam 2 ,mem_lpm_mult 
+44c9 6800c72b fetch 1 ,mem_remote_car_config_soft_switch_enable 
+44ca 6000c69a store 1 ,mem_remote_car_hard_soft_switch 
+44cb c00044d5 beq hard_switch ,remote_car_hard_switch_power_on_signal 
+44cc 6800c72c fetch 1 ,mem_remote_car_config_soft_switch_gpio 
+44cd 6000c686 store 1 ,mem_ui_button_gpio 
+
+remote_car_soft_switch_power_on_init:
+44ce 204044db call remote_car_ui_led_init 
+44cf 20407cd3 call ui_button_init 
+44d0 20407cdd call ui_button_polling 
+44d1 70475701 jam power_starting ,mem_remote_car_power_state 
+44d2 68014682 fetch 2 ,mem_ui_state_map 
+44d3 c3860000 rtnbit1 ui_state_btn_down 
+44d4 2020340a branch app_enter_hibernate 
+
+remote_car_hard_switch_power_on_signal:
+44d5 70475702 jam power_standby ,mem_remote_car_power_state 
+
+remote_car_soft_switch_power_on_signal:
+44d6 204044db call remote_car_ui_led_init 
+44d7 da200000 arg 0 ,rega 
+44d8 20407d1e call ui_led_blink_start_global 
+
+remote_car_connect_24g_mode:
+44d9 20202ee4 branch g24_auto_pair_start 
+
+remote_car_power_off_signal:
+44da 202044db branch remote_car_ui_led_init 
+
+remote_car_ui_led_init:
+44db 44f8c01e bpatch patch1e_1 ,mem_patch1e 
+44dc 6800c729 fetch 1 ,mem_remote_car_config_connect_led_gpio 
+44dd c0ffc4e0 bne invalid_pin_num ,remote_car_pairing_led_gpio_set 
+
+remote_car_ui_led_init_1:
+44de 6808c706 fetcht 1 ,mem_remote_car_led_map 
+44df 2020680e branch gpio_config_output 
+
+remote_car_pairing_led_gpio_set:
+44e0 6000c706 store 1 ,mem_remote_car_led_map 
+44e1 202044de branch remote_car_ui_led_init_1 
+
+remote_car_init_environment:
+44e2 20402c9d call g24_set_device_addr 
+44e3 68014753 fetch 2 ,mem_remote_car_no_data_timeout 
+44e4 60014755 store 2 ,mem_remote_car_no_data_timer 
+44e5 20204515 branch remote_car_get_adc_default_data 
+
+remote_car_le_before_hibernate:
+
+remote_car_in_enter_hibernate:
+44e6 20406835 call gpio_set_before_lpm_common 
+44e7 204044e9 call remote_car_process_lpm_before 
+44e8 2020340a branch app_enter_hibernate 
+
+remote_car_process_lpm_before:
+44e9 2020696c branch keyscan_process_lpm_before 
+
+remote_car_g24_enter_lpm:
+44ea 6800c765 fetch 1 ,mem_remote_car_24g_enter_lpm_enable 
+44eb 207a0000 rtn blank 
+44ec 20202d83 branch g24_lpm_long_sleep 
+
+remote_car_process_auto_pair_exit:
+44ed 20600000 rtn 
+
+remote_car_key_scan_process:
+44ee 20206978 branch keyscan_key_process 
+
+remote_car_scale_process_idle:
+44ef 20404544 call remote_car_rocker_process 
+44f0 20404503 call remote_car_24g_status_process 
+44f1 202044ee branch remote_car_key_scan_process 
+
+remote_car_scale_process_bb_event:
+44f2 1a627e00 copy regc ,pdata 
+44f3 c016b431 beq bt_evt_button_up ,app_event_button_up 
+44f4 c008341a beq bt_evt_button_long_pressed ,app_button_long_pressed 
+44f5 c01cc4fb beq bt_evt_24g_pairing_complete ,remote_car_24g_pairing_complete 
+44f6 c01e44ff beq bt_evt_24g_attempt_success ,remote_car_24g_attempt_success 
+44f7 c01d44f9 beq bt_evt_24g_attempt_fail ,remote_car_24g_attempt_fail 
+44f8 20600000 rtn 
+
+remote_car_24g_attempt_fail:
+44f9 70476501 jam 1 ,mem_remote_car_24g_enter_lpm_enable 
+44fa 20600000 rtn 
+
+remote_car_24g_pairing_complete:
+44fb 70476501 jam 1 ,mem_remote_car_24g_enter_lpm_enable 
+44fc 70476301 jam work_paired ,mem_remote_car_24g_auto_work_step 
+44fd 70476401 jam work_paired ,mem_remote_car_24g_pair_success_flag 
+44fe 20600000 rtn 
+
+remote_car_24g_attempt_success:
+44ff 70476501 jam 1 ,mem_remote_car_24g_enter_lpm_enable 
+4500 70476301 jam work_paired ,mem_remote_car_24g_auto_work_step 
+4501 70476401 jam work_paired ,mem_remote_car_24g_pair_success_flag 
+4502 20600000 rtn 
+
+remote_car_24g_status_process:
+4503 6800c763 fetch 1 ,mem_remote_car_24g_auto_work_step 
+4504 c1000000 rtneq power_on 
+4505 6800c762 fetch 1 ,mem_remote_car_24g_status 
+4506 c1008000 rtneq work_paired 
+4507 70476201 jam work_paired ,mem_remote_car_24g_status 
+
+remote_car_scale_process_paired:
+4508 da200000 arg 0 ,rega 
+4509 20207d19 branch ui_led_off_global 
+
+remote_car_scale_process_shutdown:
+450a da200000 arg 0 ,rega 
+450b 20407d19 call ui_led_off_global 
+450c 204044db call remote_car_ui_led_init 
+450d 2020340a branch app_enter_hibernate 
+
+remote_car_event_timer:
+450e 2040337b call app_power_timer 
+450f 20204510 branch remote_car_no_data_timer 
+
+remote_car_no_data_timer:
+4510 6800c72d fetch 1 ,mem_remote_car_config_timeout_shutdown_enable 
+4511 207a0000 rtn blank 
+4512 da604755 arg mem_remote_car_no_data_timer ,regc 
+4513 da40450a arg remote_car_scale_process_shutdown ,regb 
+4514 20203374 branch timer_single_step_2b 
+
+remote_car_get_adc_default_data:
+4515 2040451a call remote_car_rocker_get_x 
+4516 6009471a storet 2 ,mem_current_vdd_value_default_mid_x 
+4517 2040451f call remote_car_rocker_get_y 
+4518 6009471c storet 2 ,mem_current_vdd_value_default_mid_y 
+4519 20600000 rtn 
+
+remote_car_rocker_data_get:
+
+remote_car_rocker_get_x:
+451a 6801471a fetch 2 ,mem_current_vdd_value_default_mid_x 
+451b 6001471e store 2 ,mem_current_vdd_value_default_mid_temp 
+451c 20404540 call remote_car_get_adc_from_gpio6 
+451d 20404525 call remote_car_rocker_get_value 
+451e 6000c724 store 1 ,mem_rocker_status 
+
+remote_car_rocker_get_y:
+451f 6801471c fetch 2 ,mem_current_vdd_value_default_mid_y 
+4520 6001471e store 2 ,mem_current_vdd_value_default_mid_temp 
+4521 20404542 call remote_car_get_adc_from_gpio7 
+4522 20404525 call remote_car_rocker_get_value 
+4523 6000c725 store 1 ,mem_rocker_status + 1 
+4524 20600000 rtn 
+
+remote_car_rocker_get_value:
+4525 68014720 fetch 2 ,mem_current_vdd_default_range 
+4526 1fe22200 copy pdata ,rega 
+4527 6801471e fetch 2 ,mem_current_vdd_value_default_mid_temp 
+4528 2040452e call remote_car_rocker_mid_value_adjust 
+4529 6800c719 fetch 1 ,mem_rocker_work_status 
+452a 243a4537 nbranch remote_car_rocker_translate_key ,blank 
+452b 24610000 nrtn positive 
+452c 6809471e fetcht 2 ,mem_current_vdd_value_default_mid_temp 
+452d 20600000 rtn 
+
+remote_car_rocker_mid_value_adjust:
+452e 98467e00 isub temp ,pdata 
+452f 20214534 branch remote_car_rocker_mid_adjust_positive ,positive 
+4530 1fe67e00 sub pdata ,0 ,pdata 
+4531 70471801 jam 1 ,mem_rocker_negative_flag 
+4532 9a267c00 isub rega ,null 
+4533 20600000 rtn 
+
+remote_car_rocker_mid_adjust_positive:
+4534 70471800 jam 0 ,mem_rocker_negative_flag 
+4535 9a267c00 isub rega ,null 
+4536 20600000 rtn 
+
+remote_car_rocker_translate_key:
+4537 2421453e nbranch remote_car_rocker_middle_key ,positive 
+4538 6800c718 fetch 1 ,mem_rocker_negative_flag 
+4539 243a453c nbranch remote_car_rocker_negative_key ,blank 
+
+remote_car_rocker_positive_key:
+453a 58000001 setarg rocker_positive_key 
+453b 20600000 rtn 
+
+remote_car_rocker_negative_key:
+453c 58000002 setarg rocker_negative_key 
+453d 20600000 rtn 
+
+remote_car_rocker_middle_key:
+453e 58000000 setarg rocker_middle_key 
+453f 20600000 rtn 
+
+remote_car_get_adc_from_gpio6:
+4540 70422e33 jam 0x33 ,mem_adc_channel 
+4541 202068eb branch adc_set_mode 
+
+remote_car_get_adc_from_gpio7:
+4542 70422e34 jam 0x34 ,mem_adc_channel 
+4543 202068eb branch adc_set_mode 
+
+remote_car_rocker_process:
+4544 6800c72a fetch 1 ,mem_remote_car_config_check_way 
+4545 c1808000 rtnne car_remote_check_rocker 
+
+remote_car_read_rocker_check_start:
+4546 44f9401e bpatch patch1e_2 ,mem_patch1e 
+4547 70471901 jam 1 ,mem_rocker_work_status 
+4548 2040451a call remote_car_rocker_data_get 
+4549 68014724 fetch 2 ,mem_rocker_status 
+454a 68094722 fetcht 2 ,mem_rocker_last_status 
+454b 98467c00 isub temp ,null 
+454c 20628000 rtn zero 
+454d 60014722 store 2 ,mem_rocker_last_status 
+454e 20404550 call remote_car_rocker_x_to_key 
+454f 20204554 branch remote_car_rocker_y_to_key 
+
+remote_car_rocker_x_to_key:
+4550 6800c724 fetch 1 ,mem_rocker_x_status 
+4551 203a455a branch rocker_to_queue_set_0 ,blank 
+4552 1fe0ffff increase -1 ,pdata 
+4553 20204557 branch remote_car_rocker_to_key 
+
+remote_car_rocker_y_to_key:
+4554 6800c725 fetch 1 ,mem_rocker_y_status 
+4555 203a455d branch rocker_to_queue_set_2 ,blank 
+4556 1fe0fe01 increase 1 ,pdata 
+
+remote_car_rocker_to_key:
+4557 1fe20e00 copy pdata ,queue 
+4558 da200001 arg 1 ,rega 
+4559 20204560 branch remote_car_send_key_data 
+
+rocker_to_queue_set_0:
+455a d8e00000 arg 0 ,queue 
+455b da200000 arg 0 ,rega 
+455c 20204560 branch remote_car_send_key_data 
+
+rocker_to_queue_set_2:
+455d d8e00002 arg 2 ,queue 
+455e da200000 arg 0 ,rega 
+455f 20204560 branch remote_car_send_key_data 
+
+remote_car_send_key_data:
+4560 1a227e00 copy rega ,pdata 
+4561 6000c761 store 1 ,mem_remote_key_status 
+4562 6800c763 fetch 1 ,mem_remote_car_24g_auto_work_step 
+4563 c0002ee4 beq power_on ,g24_auto_pair_start 
+4564 68014753 fetch 2 ,mem_remote_car_no_data_timeout 
+4565 60014755 store 2 ,mem_remote_car_no_data_timer 
+4566 6800c761 fetch 1 ,mem_remote_key_status 
+4567 203a4580 branch remote_car_key_is_release ,blank 
+
+remote_car_key_is_press:
+4568 44f9c01e bpatch patch1e_3 ,mem_patch1e 
+4569 da200000 arg 0 ,rega 
+456a 20407d14 call ui_led_on_global 
+
+remote_car_attack_key_press:
+456b 18e27e00 copy queue ,pdata 
+456c c00245a3 beq 4 ,remote_car_send_attack_key4_press 
+456d c002c5a5 beq 5 ,remote_car_send_attack_key5_press 
+456e c00345a7 beq 6 ,remote_car_send_fire_key6_press 
+
+remote_car_motor_key_press:
+456f 2040458b call remote_car_device_layout_select 
+4570 c0004574 beq control_f_b_ten ,remote_car_single_motor_key_is_press 
+4571 c001457a beq control_l_r_ten ,remote_car_double_motor_key_press 
+4572 c001c574 beq control_l_r_lr ,remote_car_single_motor_key_is_press 
+4573 20600000 rtn 
+
+remote_car_single_motor_key_is_press:
+4574 18e27e00 copy queue ,pdata 
+4575 c000458f beq 0 ,remote_car_send_motor1_key0_press 
+4576 c000c591 beq 1 ,remote_car_send_motor1_key1_press 
+4577 c0014593 beq 2 ,remote_car_send_motor2_key2_press 
+4578 c001c595 beq 3 ,remote_car_send_motor2_key3_press 
+4579 20600000 rtn 
+
+remote_car_double_motor_key_press:
+457a 18e27e00 copy queue ,pdata 
+457b c0004597 beq 0 ,remote_car_send_double_motor_key0_press 
+457c c000c59a beq 1 ,remote_car_send_double_motor_key1_press 
+457d c001459d beq 2 ,remote_car_send_double_motor_key2_press 
+457e c001c5a0 beq 3 ,remote_car_send_double_motor_key3_press 
+457f 20600000 rtn 
+
+remote_car_key_is_release:
+4580 44fa401e bpatch patch1e_4 ,mem_patch1e 
+4581 da200000 arg 0 ,rega 
+4582 20407d19 call ui_led_off_global 
+
+remote_car_attack_key_release:
+4583 18e27e00 copy queue ,pdata 
+4584 c00245bc beq 4 ,remote_car_send_attack_key4_rel 
+4585 c002c5bc beq 5 ,remote_car_send_attack_key5_rel 
+
+remote_car_motor_key_release:
+4586 2040458b call remote_car_device_layout_select 
+4587 c00045a9 beq control_f_b_ten ,remote_car_single_motor_key_rel 
+4588 c00145af beq control_l_r_ten ,remote_car_double_motor_key_rel 
+4589 c001c5a9 beq control_l_r_lr ,remote_car_single_motor_key_rel 
+458a 20600000 rtn 
+
+remote_car_device_layout_select:
+458b 6800c728 fetch 1 ,mem_remote_car_config_layout 
+458c 6808c727 fetcht 1 ,mem_remote_car_config_key_map 
+458d 9841fe00 ior temp ,pdata 
+458e 20600000 rtn 
+
+remote_car_send_motor1_key0_press:
+458f 70473401 jam motor_positive ,mem_remote_car_24g_motor1_payload 
+4590 202045be branch remote_car_send_key 
+
+remote_car_send_motor1_key1_press:
+4591 70473402 jam motor_negative ,mem_remote_car_24g_motor1_payload 
+4592 202045be branch remote_car_send_key 
+
+remote_car_send_motor2_key2_press:
+4593 70473601 jam motor_positive ,mem_remote_car_24g_motor2_payload 
+4594 202045be branch remote_car_send_key 
+
+remote_car_send_motor2_key3_press:
+4595 70473602 jam motor_negative ,mem_remote_car_24g_motor2_payload 
+4596 202045be branch remote_car_send_key 
+
+remote_car_send_double_motor_key0_press:
+4597 70473401 jam motor_positive ,mem_remote_car_24g_motor1_payload 
+4598 70473601 jam motor_positive ,mem_remote_car_24g_motor2_payload 
+4599 202045be branch remote_car_send_key 
+
+remote_car_send_double_motor_key1_press:
+459a 70473402 jam motor_negative ,mem_remote_car_24g_motor1_payload 
+459b 70473602 jam motor_negative ,mem_remote_car_24g_motor2_payload 
+459c 202045be branch remote_car_send_key 
+
+remote_car_send_double_motor_key2_press:
+459d 70473402 jam motor_negative ,mem_remote_car_24g_motor1_payload 
+459e 70473601 jam motor_positive ,mem_remote_car_24g_motor2_payload 
+459f 202045be branch remote_car_send_key 
+
+remote_car_send_double_motor_key3_press:
+45a0 70473401 jam motor_positive ,mem_remote_car_24g_motor1_payload 
+45a1 70473602 jam motor_negative ,mem_remote_car_24g_motor2_payload 
+45a2 202045be branch remote_car_send_key 
+
+remote_car_send_attack_key4_press:
+45a3 70473801 jam motor_positive ,mem_remote_car_24g_motor3_payload 
+45a4 202045be branch remote_car_send_key 
+
+remote_car_send_attack_key5_press:
+45a5 70473802 jam motor_negative ,mem_remote_car_24g_motor3_payload 
+45a6 202045be branch remote_car_send_key 
+
+remote_car_send_fire_key6_press:
+45a7 70474101 jam 0x01 ,mem_remote_car_24g_fire_send_payload 
+45a8 202045c0 branch remote_car_send_attack 
+
+remote_car_single_motor_key_rel:
+45a9 18e27e00 copy queue ,pdata 
+45aa c00045b5 beq 0 ,remote_car_send_motor1_key0_rel 
+45ab c000c5b5 beq 1 ,remote_car_send_motor1_key1_rel 
+45ac c00145b7 beq 2 ,remote_car_send_motor2_key2_rel 
+45ad c001c5b7 beq 3 ,remote_car_send_motor2_key3_rel 
+45ae 20600000 rtn 
+
+remote_car_double_motor_key_rel:
+45af 18e27e00 copy queue ,pdata 
+45b0 c00045b9 beq 0 ,remote_car_send_double_motor_key0_rel 
+45b1 c000c5b9 beq 1 ,remote_car_send_double_motor_key1_rel 
+45b2 c00145b9 beq 2 ,remote_car_send_double_motor_key2_rel 
+45b3 c001c5b9 beq 3 ,remote_car_send_double_motor_key3_rel 
+45b4 20600000 rtn 
+
+remote_car_send_motor1_key0_rel:
+
+remote_car_send_motor1_key1_rel:
+45b5 70473400 jam motor_stop ,mem_remote_car_24g_motor1_payload 
+45b6 202045be branch remote_car_send_key 
+
+remote_car_send_motor2_key2_rel:
+
+remote_car_send_motor2_key3_rel:
+45b7 70473600 jam motor_stop ,mem_remote_car_24g_motor2_payload 
+45b8 202045be branch remote_car_send_key 
+
+remote_car_send_double_motor_key0_rel:
+
+remote_car_send_double_motor_key1_rel:
+
+remote_car_send_double_motor_key2_rel:
+
+remote_car_send_double_motor_key3_rel:
+45b9 70473400 jam motor_stop ,mem_remote_car_24g_motor1_payload 
+45ba 70473600 jam motor_stop ,mem_remote_car_24g_motor2_payload 
+45bb 202045be branch remote_car_send_key 
+
+remote_car_send_attack_key4_rel:
+
+remote_car_send_attack_key5_rel:
+45bc 70473800 jam motor_stop ,mem_remote_car_24g_motor3_payload 
+45bd 202045be branch remote_car_send_key 
+
+remote_car_send_key:
+45be da20472e arg mem_remote_car_24g_motor_packet ,rega 
+45bf 20207e3d branch queue_push 
+
+remote_car_send_attack:
+45c0 da20473b arg mem_remote_car_24g_fire_packet ,rega 
+45c1 20207e3d branch queue_push 
+
+remote_car_g24_package_data:
+45c2 6800c764 fetch 1 ,mem_remote_car_24g_pair_success_flag 
+45c3 c000c5cc beq work_paired ,remote_car_g24_send_empty 
+45c4 da204744 arg mem_remote_car_24g_tx_temp ,rega 
+45c5 20407e54 call queue_pop 
+45c6 243445d1 nbranch remote_car_moto_data ,user 
+
+remote_car_g24_package_data_continue:
+45c7 d8c04744 arg mem_remote_car_24g_tx_temp ,contr 
+45c8 e8c08000 ifetch 1 ,contr 
+45c9 1fe22200 copy pdata ,rega 
+45ca da404745 arg mem_remote_car_24g_tx_temp + 1 ,regb 
+45cb 20600000 rtn 
+
+remote_car_g24_send_empty:
+45cc 70476400 jam 0 ,mem_remote_car_24g_pair_success_flag 
+45cd 78347c00 enable user 
+45ce da200001 arg 1 ,rega 
+45cf da404766 arg mem_remote_car_empty_packet ,regb 
+45d0 20600000 rtn 
+
+remote_car_moto_data:
+45d1 6800c747 fetch 1 ,mem_remote_car_24g_tx_temp + 3 
+45d2 c00245d5 beq car_cmd_l_r_motor_control ,remote_car_moto_data_next 
+45d3 c002c5d5 beq car_cmd_f_b_motor_control ,remote_car_moto_data_next 
+45d4 20600000 rtn 
+
+remote_car_moto_data_next:
+45d5 6800c74a fetch 1 ,mem_remote_car_24g_tx_temp + 6 
+45d6 243a45dc nbranch remote_car_moto_data_enable_user ,blank 
+45d7 6800c74c fetch 1 ,mem_remote_car_24g_tx_temp + 8 
+45d8 243a45dc nbranch remote_car_moto_data_enable_user ,blank 
+45d9 6800c74e fetch 1 ,mem_remote_car_24g_tx_temp + 10 
+45da 243a45dc nbranch remote_car_moto_data_enable_user ,blank 
+45db 20600000 rtn 
+
+remote_car_moto_data_enable_user:
+45dc 78347c00 enable user 
+45dd 202045c7 branch remote_car_g24_package_data_continue 
+
+shutter_init:
+45de 20758000 rtn wake 
+45df 68108081 hfetch 1 ,core_gpio_sel1 
+45e0 1fe17efc and_into 0xfc ,pdata 
+45e1 60108081 hstore 1 ,core_gpio_sel1 
+45e2 580046b4 setarg shutter_le_before_hibernate 
+45e3 600141eb store 2 ,mem_cb_before_hibernate 
+45e4 580046b3 setarg shutter_process_lpm_before 
+45e5 600141ed store 2 ,mem_cb_before_lpm 
+45e6 5800340a setarg app_enter_hibernate 
+45e7 600141f7 store 2 ,mem_cb_discovry_timeout 
+45e8 580046b1 setarg shutter_process_idle 
+45e9 600141f3 store 2 ,mem_cb_idle_process 
+45ea 58004612 setarg shutter_process_bb_event 
+45eb 600141f5 store 2 ,mem_cb_bb_event_process 
+45ec 5800460c setarg shutter_le_scale_lpm_lock 
+45ed 600141e9 store 2 ,mem_cb_check_wakelock 
+45ee 5800476a setarg ble_shutter_receive_data 
+45ef 600141f9 store 2 ,mem_cb_att_write 
+45f0 58004686 setarg shutter_le_bb_event_timer 
+45f1 600141fd store 2 ,mem_cb_event_timer 
+45f2 58004729 setarg shutter_key_change 
+45f3 600146e7 store 2 ,mem_cb_shutter_keycan 
+45f4 58004806 setarg shutter_soft_swtich_power_on 
+45f5 600146e2 store 2 ,mem_shutter_soft_switch_poweron_callback_function 
+45f6 58004807 setarg shutter_soft_swtich_power_off 
+45f7 600146e4 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
+45f8 204057a3 call le_modified_name 
+45f9 204047da call shutter_load_bluetooth_config_by_user_config 
+45fa 20404788 call shutter_init_bluetooth_config 
+45fb 2040476d call shutter_init_param 
+45fc 20406948 call keyscan_key_init 
+45fd 2040477a call shutter_load_buffer_config_form_datarom 
+45fe 20407e38 call queue_init 
+45ff 20407d08 call ui_led_init_global 
+4600 20404793 call shutter_load_bluetooth_config 
+4601 204047c7 call shutter_load_bluetooth_config_by_eeprom 
+4602 44fac01e bpatch patch1e_5 ,mem_patch1e 
+4603 2040464f call classic_shutter_load_reconn_info 
+4604 6800c6dd fetch 1 ,mem_shutter_hard_soft_switch_case 
+4605 c0004609 beq hard_switch ,shutter_hart_swtich_power_on 
+4606 6800c6de fetch 1 ,mem_shutter_soft_switch_button_gpio 
+4607 6000c686 store 1 ,mem_ui_button_gpio 
+4608 2020480e branch ui_soft_swtich_init 
+
+shutter_hart_swtich_power_on:
+4609 704686ff jam ui_button_gpio_disable ,mem_ui_button_gpio 
+460a 7046df01 jam ss_state_power_on ,mem_shutter_soft_switch_power_state 
+460b 202046d9 branch shutter_start_reconnect 
+
+shutter_le_scale_lpm_lock:
+460c 6800c6df fetch 1 ,mem_shutter_soft_switch_power_state 
+460d c00133d0 beq ss_state_power_off ,app_get_lpm_wake_lock 
+460e 2040527e call l2cap_malloc_get_full_map 
+460f 6800c256 fetch 1 ,mem_used_map 
+4610 243a33d0 nbranch app_get_lpm_wake_lock ,blank 
+4611 202033d2 branch app_put_lpm_wake_lock 
+
+shutter_process_bb_event:
+4612 1a627e00 copy regc ,pdata 
+4613 c000c626 beq bt_evt_bb_connected ,classic_shutter_process_baseband_connect 
+4614 c0014629 beq bt_evt_bb_disconnected ,classic_shutter_process_baseband_disconnect 
+4615 c0024631 beq bt_evt_reconn_failed ,classic_shutter_process_reconnect_failed 
+4616 c002c633 beq bt_evt_setup_complete ,classic_shutter_process_setup_complete 
+4617 c0034635 beq bt_evt_hid_connected ,classic_shutter_process_hid_connect 
+4618 c003c638 beq bt_evt_hid_disconnected ,classic_shutter_process_hid_disconnect 
+4619 c009463c beq bt_evt_hid_handshake ,classic_shutter_process_hid_handshake 
+461a c009c644 beq bt_evt_reconn_page_timeout ,classic_shutter_process_reconnect_page_timeout 
+461b c013c645 beq bt_evt_virtual_cable_unplug ,classic_shutter_process_virtual_cable_unplug 
+461c c0174648 beq bt_evt_remote_unsniff ,classic_shutter_process_remote_unsniff 
+461d c01ec649 beq bt_evt_store_nvram ,classic_shutter_process_store_reconnect_information 
+461e c00a4658 beq bt_evt_le_connected ,ble_shutter_process_baseband_connect 
+461f c00ac65c beq bt_evt_le_disconnected ,ble_shutter_process_baseband_disconnect 
+4620 c01fc65f beq bt_evt_le_reconnect_complete ,ble_shutter_process_reconnect_complete 
+4621 c0204665 beq bt_evt_le_parse_conn_papa_update_rsp ,ble_shutter_process_parse_connect_parameter_update_response 
+4622 c008466b beq bt_evt_button_long_pressed ,shutter_process_soft_swtich_button_long_press 
+4623 c016466c beq bt_evt_button_down ,shutter_process_soft_swtich_button_down 
+4624 c016c677 beq bt_evt_button_up ,shutter_process_soft_swtich_button_up 
+4625 20600000 rtn 
+
+classic_shutter_process_baseband_connect:
+4626 7046ad00 jam 0 ,mem_classic_shutter_hid_disconn_count 
+4627 7046ac00 jam 0 ,mem_classic_shutter_cable_unplug_conut 
+4628 20600000 rtn 
+
+classic_shutter_process_baseband_disconnect:
+4629 2040462b call classic_shutter_disconnect_clear_flag 
+462a 20204631 branch classic_shutter_process_reconnect_failed 
+
+classic_shutter_disconnect_clear_flag:
+462b 7041e200 jam app_handshake_null ,mem_app_handshake_flag 
+462c 70468000 jam 0 ,mem_hid_handshake_timer_count 
+462d 70420500 jam 0 ,mem_unsniff2sniff_timer_count 
+462e 7046ac00 jam 0 ,mem_classic_shutter_cable_unplug_conut 
+462f 7046ad00 jam 0 ,mem_classic_shutter_hid_disconn_count 
+4630 20207e38 branch queue_init 
+
+classic_shutter_process_reconnect_failed:
+4631 204033a9 call app_disconn_reason_clear 
+4632 202046c2 branch shutter_start_bluetooth_discovery 
+
+classic_shutter_process_setup_complete:
+4633 204046b6 call shutter_stop_bluetooth_discovery 
+4634 20203408 branch app_led_stop_blink 
+
+classic_shutter_process_hid_connect:
+4635 58000002 setarg hid_handshake_timeout 
+4636 6000c680 store 1 ,mem_hid_handshake_timer_count 
+4637 20600000 rtn 
+
+classic_shutter_process_hid_disconnect:
+4638 7046ac00 jam 0 ,mem_classic_shutter_cable_unplug_conut 
+4639 58000001 setarg flag_shutter_hid_disconn_timeout 
+463a 6000c6ad store 1 ,mem_classic_shutter_hid_disconn_count 
+463b 20600000 rtn 
+
+classic_shutter_process_hid_handshake:
+463c 6800c1e2 fetch 1 ,mem_app_handshake_flag 
+463d c1008000 rtneq app_handshake_done 
+463e 7041e201 jam app_handshake_done ,mem_app_handshake_flag 
+463f 20403416 call app_lpm_mult_enable 
+4640 20403414 call app_store_reconn_info 
+4641 204046b6 call shutter_stop_bluetooth_discovery 
+4642 20403408 call app_led_off 
+4643 2020340e branch app_bt_enter_sniff 
+
+classic_shutter_process_reconnect_page_timeout:
+4644 20204631 branch classic_shutter_process_reconnect_failed 
+
+classic_shutter_process_virtual_cable_unplug:
+4645 58000005 setarg flag_shutter_cable_unplug_timeout 
+4646 6000c6ac store 1 ,mem_classic_shutter_cable_unplug_conut 
+4647 20600000 rtn 
+
+classic_shutter_process_remote_unsniff:
+4648 202033cd branch app_start_auto_sniff 
+
+classic_shutter_process_store_reconnect_information:
+4649 da400000 arg nvram_eeprom_offset ,regb 
+464a 6800c217 fetch 1 ,mem_nv_data_number 
+464b 1fef8422 mul32 pdata ,34 ,temp 
+464c 68014215 fetch 2 ,mem_nv_data_ptr 
+464d 1fe22200 copy pdata ,rega 
+464e 20206606 branch iicd_write_eep_data 
+
+classic_shutter_load_reconn_info:
+464f da400000 arg nvram_eeprom_offset ,regb 
+4650 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
+4651 c4008000 rtnbit0 classic_shutter 
+4652 6800c217 fetch 1 ,mem_nv_data_number 
+4653 207a0000 rtn blank 
+4654 1fef8422 mul32 pdata ,34 ,temp 
+4655 68014215 fetch 2 ,mem_nv_data_ptr 
+4656 1fe22200 copy pdata ,rega 
+4657 202065df branch iicd_read_eep_data 
+
+ble_shutter_process_baseband_connect:
+4658 204046b6 call shutter_stop_bluetooth_discovery 
+4659 58000000 setarg 0 
+465a 600146b7 store 2 ,mem_ble_shutter_reconn_timer 
+465b 20203408 branch app_led_off 
+
+ble_shutter_process_baseband_disconnect:
+465c 20407e38 call queue_init 
+465d 7046b000 jam 0 ,mem_ble_shutter_enable_notify 
+465e 202046d9 branch shutter_start_reconnect 
+
+ble_shutter_process_reconnect_complete:
+465f 20407e38 call queue_init 
+4660 7046b001 jam 1 ,mem_ble_shutter_enable_notify 
+4661 680446c1 fetch 8 ,mem_ble_shutter_interval_min 
+4662 60044496 store 8 ,mem_le_interval_min 
+4663 20403416 call app_lpm_mult_enable 
+4664 20205abf branch le_l2cap_tx_update_req 
+
+ble_shutter_process_parse_connect_parameter_update_response:
+4665 68014509 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+4666 c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
+4667 680446c9 fetch 8 ,mem_ble_shutter_interval_min_new 
+4668 207a0000 rtn blank 
+4669 60044496 store 8 ,mem_le_interval_min 
+466a 20205abf branch le_l2cap_tx_update_req 
+
+shutter_process_soft_swtich_button_long_press:
+466b 2020481f branch ui_soft_switch_botton_long_press 
+
+shutter_process_soft_swtich_button_down:
+466c 6800c6dd fetch 1 ,mem_shutter_hard_soft_switch_case 
+466d c1000000 rtneq hard_switch 
+466e 6800c6df fetch 1 ,mem_shutter_soft_switch_power_state 
+466f c1808000 rtnne ss_state_power_on 
+4670 20404672 call shutter_store_currenct_led_state 
+4671 20203406 branch app_led_on 
+
+shutter_store_currenct_led_state:
+4672 7048df01 jam 1 ,mem_shutter_soft_swtich_botton_down 
+4673 df20000b arg 11 ,loopcnt 
+4674 d8a048e0 arg mem_shutter_soft_swtich_led_struct_temp ,contw 
+4675 d8c048c9 arg mem_shutter_led_struct_app_led ,contr 
+4676 20207f01 branch memcpy 
+
+shutter_process_soft_swtich_button_up:
+4677 6800c6dd fetch 1 ,mem_shutter_hard_soft_switch_case 
+4678 c1000000 rtneq hard_switch 
+4679 6800c6df fetch 1 ,mem_shutter_soft_switch_power_state 
+467a c000c67c beq ss_state_power_on ,shutter_load_currenct_led_state 
+467b 2020481b branch ui_soft_switch_botton_up 
+
+shutter_load_currenct_led_state:
+467c 6800c8df fetch 1 ,mem_shutter_soft_swtich_botton_down 
+467d c1808000 rtnne 1 
+467e 7048df00 jam 0 ,mem_shutter_soft_swtich_botton_down 
+467f 68014682 fetch 2 ,mem_ui_state_map 
+4680 c2803408 bbit1 ui_state_bt_connected ,app_led_off 
+4681 c284b408 bbit1 ui_state_ble_connected ,app_led_off 
+4682 df20000b arg 11 ,loopcnt 
+4683 d8c048e0 arg mem_shutter_soft_swtich_led_struct_temp ,contr 
+4684 d8a048c9 arg mem_shutter_led_struct_app_led ,contw 
+4685 20207f01 branch memcpy 
+
+shutter_le_bb_event_timer:
+4686 2040468c call shutter_check_sleep_timer 
+4687 20404693 call shutter_check_power_off_timer 
+4688 2040469e call classic_shutter_check_unplug_timer 
+4689 204046a6 call classic_shutter_hid_handshake_timer 
+468a 204046a9 call classic_shutter_hid_disconn_timer 
+468b 202046ac branch ble_shutter_reconn_timer 
+
+shutter_check_sleep_timer:
+468c da6046db arg mem_shutter_sleep_timer ,regc 
+468d da40468f arg shutter_sleep_timeout ,regb 
+468e 20203374 branch timer_single_step_2b 
+
+shutter_sleep_timeout:
+468f 7046df02 jam ss_state_power_off ,mem_shutter_soft_switch_power_state 
+4690 20403408 call app_led_off 
+4691 204046f4 call shutter_disconnect_current_connection 
+4692 2020480b branch shutter_wait_power_off 
+
+shutter_check_power_off_timer:
+4693 da6048ec arg mem_shutter_power_off_timer ,regc 
+4694 da404696 arg shutter_check_power_off_timeout ,regb 
+4695 2020336d branch timer_single_step 
+
+shutter_check_power_off_timeout:
+4696 68014682 fetch 2 ,mem_ui_state_map 
+4697 c284c80b bbit1 ui_state_ble_connected ,shutter_wait_power_off 
+4698 c280480b bbit1 ui_state_bt_connected ,shutter_wait_power_off 
+4699 6800c8c9 fetch 1 ,mem_shutter_led_struct_app_led_type 
+469a c000c80b beq ui_led_state_blink_start ,shutter_wait_power_off 
+469b c002480b beq ui_led_state_blink_lighting ,shutter_wait_power_off 
+469c c002c80b beq ui_led_state_blink_darking ,shutter_wait_power_off 
+469d 2020340a branch app_enter_hibernate 
+
+classic_shutter_check_unplug_timer:
+469e da6046ac arg mem_classic_shutter_cable_unplug_conut ,regc 
+469f da4046a1 arg classic_shutter_unplug_timeout ,regb 
+46a0 2020336d branch timer_single_step 
+
+classic_shutter_unplug_timeout:
+46a1 6800827f fetch 1 ,mem_control_tasks 
+46a2 79207e00 set1 l2cap_disconnect_interrupt ,pdata 
+46a3 79207e07 set1 l2cap_disconnect_control ,pdata 
+46a4 6000827f store 1 ,mem_control_tasks 
+46a5 20600000 rtn 
+
+classic_shutter_hid_handshake_timer:
+46a6 da604680 arg mem_hid_handshake_timer_count ,regc 
+46a7 da40463c arg classic_shutter_process_hid_handshake ,regb 
+46a8 2020336d branch timer_single_step 
+
+classic_shutter_hid_disconn_timer:
+46a9 da6046ad arg mem_classic_shutter_hid_disconn_count ,regc 
+46aa da4033e9 arg app_bt_disconnect ,regb 
+46ab 2020336d branch timer_single_step 
+
+ble_shutter_reconn_timer:
+46ac 6800c6df fetch 1 ,mem_shutter_soft_switch_power_state 
+46ad c1808000 rtnne ss_state_power_on 
+46ae da6046b7 arg mem_ble_shutter_reconn_timer ,regc 
+46af da4046c2 arg shutter_start_bluetooth_discovery ,regb 
+46b0 20203374 branch timer_single_step_2b 
+
+shutter_process_idle:
+46b1 2040473a call shutter_send_data_to_master 
+46b2 20206978 branch keyscan_key_process 
+
+shutter_process_lpm_before:
+46b3 2020696c branch keyscan_process_lpm_before 
+
+shutter_le_before_hibernate:
+46b4 20406835 call gpio_set_before_lpm_common 
+46b5 202046b3 branch shutter_process_lpm_before 
+
+shutter_stop_bluetooth_discovery:
+46b6 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
+46b7 c280c6be bbit1 classic_shutter ,classic_shutter_stop_bluetooth_discovery 
+46b8 c28046ba bbit1 ble_shutter ,ble_shutter_stop_bluetooth_discovery 
+46b9 20600000 rtn 
+
+ble_shutter_stop_bluetooth_discovery:
+46ba 680146d7 fetch 2 ,mem_ble_shutter_connect_timeout 
+46bb 600146d9 store 2 ,mem_shutter_sleep_timeout 
+46bc 600146db store 2 ,mem_shutter_sleep_timer 
+46bd 202033f8 branch app_ble_stop_adv 
+
+classic_shutter_stop_bluetooth_discovery:
+46be 680146d3 fetch 2 ,mem_classic_shutter_connect_timeout 
+46bf 600146d9 store 2 ,mem_shutter_sleep_timeout 
+46c0 600146db store 2 ,mem_shutter_sleep_timer 
+46c1 202033f0 branch app_bt_stop_discovery 
+
+shutter_start_bluetooth_discovery:
+46c2 6800c6df fetch 1 ,mem_shutter_soft_switch_power_state 
+46c3 c1808000 rtnne ss_state_power_on 
+46c4 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
+46c5 c280c6c8 bbit1 classic_shutter ,classic_shutter_start_discovery 
+46c6 c28046cc bbit1 ble_shutter ,ble_shutter_start_discovery 
+46c7 20600000 rtn 
+
+classic_shutter_start_discovery:
+46c8 680146d1 fetch 2 ,mem_classic_shutter_discovery_timeout ,
+46c9 600146d9 store 2 ,mem_shutter_sleep_timeout 
+46ca 600146db store 2 ,mem_shutter_sleep_timer 
+46cb 202033eb branch app_bt_start_discovery_short 
+
+ble_shutter_start_discovery:
+46cc 68014682 fetch 2 ,mem_ui_state_map 
+46cd c3848000 rtnbit1 ui_state_ble_connected 
+46ce 680146d5 fetch 2 ,mem_ble_shutter_discovery_timeout 
+46cf 600146d9 store 2 ,mem_shutter_sleep_timeout 
+46d0 600146db store 2 ,mem_shutter_sleep_timer 
+46d1 680146b3 fetch 2 ,mem_ble_shutter_discovery_adv_interval 
+46d2 204046f0 call shutter_ble_adv_interval_set 
+46d3 20403404 call app_led_start_blink 
+46d4 680246bd fetch 4 ,mem_ble_shutter_discovery_blink_on_time 
+46d5 600248cc store 4 ,mem_shutter_led_struct_app_led_on_time 
+46d6 68014682 fetch 2 ,mem_ui_state_map 
+46d7 c3858000 rtnbit1 ui_state_ble_adv 
+46d8 202033fa branch app_ble_start_adv 
+
+shutter_start_reconnect:
+46d9 6800c6df fetch 1 ,mem_shutter_soft_switch_power_state 
+46da c1808000 rtnne ss_state_power_on 
+46db 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
+46dc c280c6df bbit1 classic_shutter ,classic_shutter_start_reconnect 
+46dd c28046e4 bbit1 ble_shutter ,ble_shutter_start_reconnect 
+46de 20600000 rtn 
+
+classic_shutter_start_reconnect:
+46df 204046f8 call app_check_reconn_target 
+46e0 203a46c2 branch shutter_start_bluetooth_discovery ,blank 
+46e1 20403406 call app_led_on 
+46e2 204033f0 call app_bt_stop_discovery 
+46e3 202033e1 branch app_bt_start_reconnect 
+
+ble_shutter_start_reconnect:
+46e4 680146b7 fetch 2 ,mem_ble_shutter_reconn_timer 
+46e5 680946b5 fetcht 2 ,mem_ble_shutter_reconn_timeout 
+46e6 600946b7 storet 2 ,mem_ble_shutter_reconn_timer 
+46e7 247a0000 nrtn blank 
+46e8 680146b1 fetch 2 ,mem_ble_shutter_reconn_dav_interval 
+46e9 204046f0 call shutter_ble_adv_interval_set 
+46ea 20403404 call app_led_start_blink 
+46eb 680246b9 fetch 4 ,mem_ble_shutter_reconn_blink_on_time 
+46ec 600248cc store 4 ,mem_shutter_led_struct_app_led_on_time 
+46ed 68014682 fetch 2 ,mem_ui_state_map 
+46ee c3858000 rtnbit1 ui_state_ble_adv 
+46ef 202033fa branch app_ble_start_adv 
+
+shutter_ble_adv_interval_set:
+46f0 60014154 store 2 ,mem_lpm_interval 
+46f1 1fe0fffc increase -4 ,pdata 
+46f2 60014482 store 2 ,mem_le_adv_interval 
+46f3 20600000 rtn 
+
+shutter_disconnect_current_connection:
+46f4 68014682 fetch 2 ,mem_ui_state_map 
+46f5 c284b402 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+46f6 c28033e9 bbit1 ui_state_bt_connected ,app_bt_disconnect 
+46f7 202046b6 branch shutter_stop_bluetooth_discovery 
+
+app_check_reconn_target:
+46f8 6800c217 fetch 1 ,mem_nv_data_number 
+46f9 1fe27200 copy pdata ,loopcnt 
+46fa 68014215 fetch 2 ,mem_nv_data_ptr 
+46fb 1fe22200 copy pdata ,rega 
+
+app_check_reconn_target_loop:
+46fc ea210000 ifetch 2 ,rega 
+46fd c0004701 beq 0 ,found_reconn_device 
+46fe 1a20a222 increase nv_data_len ,rega 
+46ff c20046fc loop app_check_reconn_target_loop 
+4700 20207ff1 branch enable_blank 
+
+found_reconn_device:
+4701 e8c30000 ifetch 6 ,contr 
+4702 600341d0 store 6 ,mem_hci_plap 
+4703 18c08c0a increase 10 ,contr 
+4704 d8a041be arg mem_link_key ,contw 
+4705 20407ebf call memcpy16 
+4706 204067d7 call check_link_key_load 
+4707 20207fef branch disable_blank 
+
+shutter_check_data_enable:
+4708 20407fe9 call disable_user 
+4709 68014682 fetch 2 ,mem_ui_state_map 
+470a c280470d bbit1 ui_state_bt_connected ,shutter_check_bt_data_enable 
+470b c284c710 bbit1 ui_state_ble_connected ,shutter_check_ble_data_enable 
+470c 20600000 rtn 
+
+shutter_check_bt_data_enable:
+470d 6800c253 fetch 1 ,mem_hid_interrupt_state 
+470e c19f8000 rtnne 0x3f 
+470f 20207fe7 branch enable_user 
+
+shutter_check_ble_data_enable:
+4710 6800c6b0 fetch 1 ,mem_ble_shutter_enable_notify 
+4711 207a0000 rtn blank 
+4712 20207fe7 branch enable_user 
+
+shutter_check_bluetooth_conn:
+4713 20407fe9 call disable_user 
+4714 68014682 fetch 2 ,mem_ui_state_map 
+4715 c3800000 rtnbit1 ui_state_bt_connected 
+4716 c3848000 rtnbit1 ui_state_ble_connected 
+4717 20207fe7 branch enable_user 
+
+shutter_change_bluetooth_status_bt_disconn:
+4718 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
+4719 c280c71c bbit1 classic_shutter ,classic_shutter_change_bluetooth_status_bt_disconn 
+471a c280471f bbit1 ble_shutter ,ble_shutter_change_bluetooth_status_bt_disconn 
+471b 20600000 rtn 
+
+classic_shutter_change_bluetooth_status_bt_disconn:
+471c 6800c093 fetch 1 ,mem_scan_mode 
+471d c1818000 rtnne 0x03 
+471e 202046d9 branch shutter_start_reconnect 
+
+ble_shutter_change_bluetooth_status_bt_disconn:
+471f 202046d9 branch shutter_start_reconnect 
+
+shutter_check_send_data:
+4720 78567c00 disable user2 
+4721 680146d9 fetch 2 ,mem_shutter_sleep_timeout 
+4722 600146db store 2 ,mem_shutter_sleep_timer 
+4723 20404713 call shutter_check_bluetooth_conn 
+4724 20344718 branch shutter_change_bluetooth_status_bt_disconn ,user 
+4725 20404708 call shutter_check_data_enable 
+4726 24740000 nrtn user 
+4727 78367c00 enable user2 
+4728 20600000 rtn 
+
+shutter_key_change:
+4729 20404720 call shutter_check_send_data 
+472a 24760000 nrtn user2 
+472b 1a227e00 deposit rega 
+472c 203a4730 branch shutter_key_release ,blank 
+
+shutter_key_press:
+472d 20403406 call app_led_on 
+472e da6046f1 arg mem_key0_press ,regc 
+472f 20204732 branch push_queue_press_or_release 
+
+shutter_key_release:
+4730 20403408 call app_led_off 
+4731 da604719 arg mem_key0_release ,regc 
+
+push_queue_press_or_release:
+4732 dfe00005 arg max_queue_num ,pdata 
+4733 98effe00 imul32 queue ,pdata 
+4734 9a60a600 iadd regc ,regc 
+
+push_buffer_in_queue:
+4735 ea608000 ifetch 1 ,regc 
+4736 207a0000 rtn blank 
+4737 20404762 call queue_push_one_byte 
+4738 1a60a601 increase 1 ,regc 
+4739 20204735 branch push_buffer_in_queue 
+
+shutter_send_data_to_master:
+473a 68014682 fetch 2 ,mem_ui_state_map 
+473b c284c73e bbit1 ui_state_ble_connected ,pop_queue_to_ble_data 
+473c c280474e bbit1 ui_state_bt_connected ,pop_queue_to_classic_data 
+473d 20600000 rtn 
+
+pop_queue_to_ble_data:
+473e 20405892 call le_fifo_check_nearly_full 
+473f 247a0000 nrtn blank 
+4740 20404765 call queue_pop_one_byte 
+4741 24740000 nrtn user 
+4742 1fe0ffff pincrease -1 
+4743 1feffe05 mul32 pdata ,shutter_ble_data_buffer ,pdata 
+4744 d8404741 arg mem_ble_data_buffer1 ,temp 
+4745 98408c00 iadd temp ,contr 
+
+le_send_notify_from_list:
+4746 e8c08000 ifetch 1 ,contr 
+4747 1fe22200 copy pdata ,rega 
+4748 e8c90000 ifetcht 2 ,contr 
+4749 20407ea5 call store_contr 
+474a 20405a64 call le_att_malloc_tx_notify 
+474b 1a227200 copy rega ,loopcnt 
+474c 20407e9f call get_contr 
+474d 20207f01 branch memcpy 
+
+pop_queue_to_classic_data:
+474e 20405271 call l2cap_malloc_is_fifo_nearly_full 
+474f 247a0000 nrtn blank 
+4750 20404765 call queue_pop_one_byte 
+4751 24740000 nrtn user 
+4752 1fe0ffff pincrease -1 
+4753 1feffe05 mul32 pdata ,shutter_classic_data_buffer ,pdata 
+4754 d84047a0 arg mem_classic_data_buffer1 ,temp 
+4755 98408c00 iadd temp ,contr 
+4756 e8c28000 ifetch 5 ,contr 
+4757 6002c79b store 5 ,mem_classic_data_buffer 
+
+classic_send_hid_data:
+4758 6800c79b fetch 1 ,mem_classic_data_buffer 
+4759 1fe22200 copy pdata ,rega 
+475a 20404d63 call hid_malloc_tx_buff 
+475b 6801424e fetch 2 ,mem_hid_int_remote_cid 
+475c e0a10000 istore 2 ,contw 
+475d 580000a1 setarg 0xa1 
+475e e0a08000 istore 1 ,contw 
+475f 6802479c fetch 4 ,mem_classic_data_buffer + 1 
+4760 e0a48000 istore 9 ,contw 
+4761 20600000 rtn 
+
+queue_push_one_byte:
+4762 60008a9a store 1 ,mem_pdatatemp 
+4763 da200a9a arg mem_pdatatemp ,rega 
+4764 20207e3d branch queue_push 
+
+queue_pop_one_byte:
+4765 da200a9a arg mem_pdatatemp ,rega 
+4766 20407e54 call queue_pop 
+4767 24740000 nrtn user 
+4768 68008a9a fetch 1 ,mem_pdatatemp 
+4769 20600000 rtn 
+
+ble_shutter_receive_data:
+476a 68010478 fetch 2 ,mem_le_att_handle 
+476b c00c465f beq gatt_keyboard_write_handle ,ble_shutter_process_reconnect_complete 
+476c 20600000 rtn 
+
+shutter_init_param:
+476d 58000002 setarg 0x02 
+476e 6000c8eb store 1 ,mem_shutter_power_off_timeout 
+476f 58200008 setarg 0x00200008 
+4770 600246c1 store 4 ,mem_ble_shutter_interval_min 
+4771 592c0005 setarg 0x012c0005 
+4772 e0a20000 istore 4 ,contw 
+4773 7044a617 jam 0x17 ,mem_le_local_mtu 
+4774 5800001b setarg 0x1b 
+4775 600144fa store 2 ,mem_le_pairing_handle 
+4776 20405810 call le_set_config_fixed_ltk 
+4777 2040582c call le_set_fixed_ltk 
+4778 20405839 call le_set_justwork 
+4779 20205818 branch le_set_config_read_authentication 
+
+shutter_load_buffer_config_form_datarom:
+477a df200028 arg ble_key_value_list_size ,loopcnt 
+477b d8a04741 arg mem_ble_data_buffer1 ,contw 
+477c d8c0949f arg ble_shutter_key_value_list ,contr 
+477d 20407ef4 call memcpy_fast 
+477e df200028 arg bt_key_value_list_size ,loopcnt 
+477f d8a047a0 arg mem_classic_data_buffer1 ,contw 
+4780 d8c094c7 arg classic_shutter_key_value_list ,contr 
+4781 20207ef4 branch memcpy_fast 
+
+shutter_load_ble_gatt_form_datarom:
+4782 df20017e arg ble_gatt_list_size ,loopcnt 
+4783 d8c0913a arg ble_shutter_gatt_list ,contr 
+4784 20207ef4 branch memcpy_fast 
+
+shutter_load_bt_sdp_form_datarom:
+4785 df2001e7 arg bt_sdp_list_size ,loopcnt 
+4786 d8c092b8 arg classic_shutter_sdp_list ,contr 
+4787 20207ef4 branch memcpy_fast 
+
+shutter_init_bluetooth_config:
+4788 204047ae call shutter_check_load_config_flag 
+4789 24740000 nrtn user 
+478a 6800c69f fetch 1 ,mem_shutter_config_select_gpio1 
+478b 20404790 call shutter_init_bluetooth_config_gpio_input 
+478c 6800c6a0 fetch 1 ,mem_shutter_config_select_gpio2 
+478d 20404790 call shutter_init_bluetooth_config_gpio_input 
+478e 6800c6a1 fetch 1 ,mem_shutter_config_select_gpio3 
+478f 20204790 branch shutter_init_bluetooth_config_gpio_input 
+
+shutter_init_bluetooth_config_gpio_input:
+4790 207a0000 rtn blank 
+4791 1fe18480 or pdata ,0x80 ,temp 
+4792 202067f9 branch gpio_config_input_nowake 
+
+shutter_load_bluetooth_config:
+4793 204047ae call shutter_check_load_config_flag 
+4794 24740000 nrtn user 
+4795 20404797 call shutter_load_bluetooth_config_label 
+4796 202047b4 branch shutter_load_bluetooth_config_by_otp 
+
+shutter_load_bluetooth_config_label:
+4797 da200000 arg 0 ,rega 
+4798 6800c69f fetch 1 ,mem_shutter_config_select_gpio1 
+4799 204047a9 call shutter_load_bluetooth_config_read_gpio_input 
+479a 7d3a2200 nsetflag blank ,0 ,rega 
+479b 6800c6a0 fetch 1 ,mem_shutter_config_select_gpio2 
+479c 204047a9 call shutter_load_bluetooth_config_read_gpio_input 
+479d 7d3a2201 nsetflag blank ,1 ,rega 
+479e 6800c6a1 fetch 1 ,mem_shutter_config_select_gpio3 
+479f 204047a9 call shutter_load_bluetooth_config_read_gpio_input 
+47a0 7d3a2202 nsetflag blank ,2 ,rega 
+47a1 1a227e00 copy rega ,pdata 
+47a2 6000c6a9 store 1 ,mem_shutter_config_label 
+47a3 6800c69e fetch 1 ,mem_shutter_config_size 
+47a4 9a2ffe00 imul32 rega ,pdata 
+47a5 6809469c fetcht 2 ,mem_shutter_config_otp_base_address 
+47a6 9840fe00 iadd temp ,pdata 
+47a7 600146aa store 2 ,mem_shutter_config_otp_addr 
+47a8 20600000 rtn 
+
+shutter_load_bluetooth_config_read_gpio_input:
+47a9 207a0000 rtn blank 
+47aa 1fe18480 or pdata ,0x80 ,temp 
+47ab 2040681d call gpio_get_bit 
+47ac 2420fff1 nbranch enable_blank ,true 
+47ad 20207fef branch disable_blank 
+
+shutter_check_load_config_flag:
+47ae 20407fe9 call disable_user 
+47af 6800c6a8 fetch 1 ,mem_shutter_config_user_size 
+47b0 247a0000 nrtn blank 
+47b1 6800c69b fetch 1 ,mem_shutter_config_enable 
+47b2 207a0000 rtn blank 
+47b3 20207fe7 branch enable_user 
+
+shutter_load_bluetooth_config_by_otp:
+47b4 2040666a call otp_enable_chgpump 
+47b5 680146aa fetch 2 ,mem_shutter_config_otp_addr 
+47b6 da200ac2 arg mem_shutter_config_data_temp ,rega 
+47b7 6808c69e fetcht 1 ,mem_shutter_config_size 
+47b8 204066b3 call otpd_read_data 
+47b9 2040666d call otp_disable_chgpump 
+
+shutter_load_bluetooth_config_store_name:
+47ba 68008ac2 fetch 1 ,mem_shutter_config_data_temp 
+47bb 1fe27200 copy pdata ,loopcnt 
+47bc 6000c3af store 1 ,mem_le_name_len 
+47bd 20407ef4 call memcpy_fast 
+47be 68008ac2 fetch 1 ,mem_shutter_config_data_temp 
+47bf 1fe27200 copy pdata ,loopcnt 
+47c0 6000c515 store 1 ,mem_local_name_length 
+47c1 20407ef4 call memcpy_fast 
+47c2 e8c08000 ifetch 1 ,contr 
+47c3 6000c6e6 store 1 ,mem_shutter_key_num 
+47c4 e8c08000 ifetch 1 ,contr 
+47c5 6000c6dd store 1 ,mem_shutter_hard_soft_switch_case 
+47c6 20600000 rtn 
+
+shutter_load_bluetooth_config_by_eeprom:
+47c7 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
+47c8 c4008000 rtnbit0 classic_shutter 
+47c9 d8400003 arg 3 ,temp 
+47ca 680146a4 fetch 2 ,mem_shutter_config_eeprom_offset_addr 
+47cb 1fe22400 copy pdata ,regb 
+47cc da2046a6 arg mem_shutter_config_eeprom_start_flag ,rega 
+47cd 204065df call iicd_read_eep_data 
+47ce 680946a6 fetcht 2 ,mem_shutter_config_eeprom_start_flag 
+47cf 58001b3a setarg shutter_eeprom_config_crc 
+47d0 98467c00 isub temp ,null 
+47d1 24628000 nrtn zero 
+47d2 6800c6a8 fetch 1 ,mem_shutter_config_user_size 
+47d3 207a0000 rtn blank 
+47d4 1fe20400 copy pdata ,temp 
+47d5 680146a4 fetch 2 ,mem_shutter_config_eeprom_offset_addr 
+47d6 1fe0a403 add pdata ,3 ,regb 
+47d7 da200ac2 arg mem_shutter_config_data_temp ,rega 
+47d8 204065df call iicd_read_eep_data 
+47d9 202047e8 branch shutter_store_config 
+
+shutter_load_bluetooth_config_by_user_config:
+47da 680146a2 fetch 2 ,mem_shutter_config_user_otp_address 
+47db 207a0000 rtn blank 
+47dc 2040666a call otp_enable_chgpump 
+47dd d8400001 arg 1 ,temp 
+47de da2046a8 arg mem_shutter_config_user_size ,rega 
+47df 204066b3 call otpd_read_data 
+47e0 6800c6a8 fetch 1 ,mem_shutter_config_user_size 
+47e1 207a0000 rtn blank 
+47e2 680146a2 fetch 2 ,mem_shutter_config_user_otp_address 
+47e3 1fe0fe01 pincrease 1 
+47e4 da200ac2 arg mem_shutter_config_data_temp ,rega 
+47e5 6808c6a8 fetcht 1 ,mem_shutter_config_user_size 
+47e6 204066b3 call otpd_read_data 
+47e7 2040666d call otp_disable_chgpump 
+
+shutter_store_config:
+47e8 204047ba call shutter_load_bluetooth_config_store_name 
+
+shutter_load_bluetooth_config_custom:
+47e9 e8c10000 ifetch 2 ,contr 
+47ea 207a0000 rtn blank 
+47eb 1fe20a00 copy pdata ,contw 
+47ec e8c88000 ifetcht 1 ,contr 
+47ed 18427200 copy temp ,loopcnt 
+47ee 20407f01 call memcpy 
+47ef 202047e9 branch shutter_load_bluetooth_config_custom 
+
+shutter_random_mac_addr:
+47f0 6800c69a fetch 1 ,mem_shutter_bluetooth_type 
+47f1 c4008000 rtnbit0 classic_shutter 
+47f2 680146ae fetch 2 ,mem_classic_shutter_random_mac_offset_addr 
+47f3 1fe22400 copy pdata ,regb 
+47f4 d8400004 arg 4 ,temp 
+47f5 da200ac2 arg mem_shutter_random_mac_data_temp ,rega 
+47f6 204065df call iicd_read_eep_data 
+47f7 68008ac2 fetch 1 ,mem_shutter_random_mac_data_temp 
+47f8 c080c7f9 bne 1 ,shutter_write_random_mac_addr_to_eeprom 
+
+shutter_write_random_mac_addr_to_eeprom:
+47f9 58000001 setarg 1 
+47fa 60008ac2 store 1 ,mem_shutter_random_mac_data_temp 
+47fb 18007203 force 3 ,loopcnt 
+47fc 2040630d call generate_random_loop 
+47fd 680146ae fetch 2 ,mem_classic_shutter_random_mac_offset_addr 
+47fe 1fe22400 copy pdata ,regb 
+47ff d8400004 arg 4 ,temp 
+4800 da200ac2 arg mem_shutter_random_mac_data_temp ,rega 
+4801 20406606 call iicd_write_eep_data 
+
+shutter_write_random_mac_addr:
+4802 68018ac3 fetch 3 ,mem_shutter_random_mac_data_temp + 1 
+4803 6001c0a0 store 3 ,mem_lap 
+4804 6001c4a0 store 3 ,mem_le_lap 
+4805 20600000 rtn 
+
+shutter_soft_swtich_power_on:
+4806 202046d9 branch shutter_start_reconnect 
+
+shutter_soft_swtich_power_off:
+4807 da200000 arg 0 ,rega 
+4808 da6048d4 arg mem_shutter_power_off_led_style ,regc 
+4809 20407d24 call ui_led_set_style_global 
+480a 204046f4 call shutter_disconnect_current_connection 
+
+shutter_wait_power_off:
+480b 6800c8eb fetch 1 ,mem_shutter_power_off_timeout 
+480c 6000c8ec store 1 ,mem_shutter_power_off_timer 
+480d 20600000 rtn 
+
+ui_soft_swtich_init:
+480e 58000000 setarg ss_state_power_up 
+480f 20404816 call ui_soft_swtich_init_power_on_time 
+4810 70467901 jam ui_button_state_up ,mem_ui_button_last_state 
+4811 20407cd3 call ui_button_init 
+4812 20407cdd call ui_button_polling 
+4813 68014682 fetch 2 ,mem_ui_state_map 
+4814 c3860000 rtnbit1 ui_state_btn_down 
+4815 2020340a branch app_enter_hibernate 
+
+ui_soft_swtich_init_power_on_time:
+4816 6809423f fetcht 2 ,mem_power_param_ptr 
+4817 e0408000 istore 1 ,temp 
+4818 e8a08000 ifetch 1 ,contw 
+4819 6000c685 store 1 ,mem_ui_button_timeout 
+481a 20600000 rtn 
+
+ui_soft_switch_botton_up:
+481b 6801423f fetch 2 ,mem_power_param_ptr 
+481c efe08000 ifetch 1 ,pdata 
+481d c1800000 rtnne ss_state_power_up 
+481e 2020340a branch app_enter_hibernate 
+
+ui_soft_switch_botton_long_press:
+481f 6809423f fetcht 2 ,mem_power_param_ptr 
+4820 e8408000 ifetch 1 ,temp 
+4821 c000c82a beq ss_state_power_on ,ui_soft_switch_power_off 
+
+ui_soft_switch_power_on:
+4822 58000001 setarg ss_state_power_on 
+4823 6809423f fetcht 2 ,mem_power_param_ptr 
+4824 e0408000 istore 1 ,temp 
+4825 18408c02 add temp ,ss_power_off_time ,contr 
+4826 e8c08000 ifetch 1 ,contr 
+4827 e0a08000 istore 1 ,mem_ui_button_timeout 
+4828 e8c10000 ifetch 2 ,contr 
+4829 20207f9c branch callback_func 
+
+ui_soft_switch_power_off:
+482a 58000002 setarg ss_state_power_off 
+482b 20404816 call ui_soft_swtich_init_power_on_time 
+482c 18408c05 add temp ,ss_power_off_cb ,contr 
+482d e8c10000 ifetch 2 ,contr 
+482e 203a340a branch app_enter_hibernate ,blank 
+482f 20207f9c branch callback_func 
+
+shutter_byteswap:
+4830 60030101 store 6 ,mem_tmp_buffer 
+4831 68008101 fetch 1 ,mem_tmp_buffer 
+4832 6000810c store 1 ,mem_tmp_buffer + 11 
+4833 e8c08000 ifetch 1 ,contr 
+4834 6000810b store 1 ,mem_tmp_buffer + 10 
+4835 e8c08000 ifetch 1 ,contr 
+4836 6000810a store 1 ,mem_tmp_buffer + 9 
+4837 e8c08000 ifetch 1 ,contr 
+4838 60008109 store 1 ,mem_tmp_buffer + 8 
+4839 e8c08000 ifetch 1 ,contr 
+483a 60008108 store 1 ,mem_tmp_buffer + 7 
+483b e8c08000 ifetch 1 ,contr 
+483c 60008107 store 1 ,mem_tmp_buffer + 6 
+483d 68030107 fetch 6 ,mem_tmp_buffer + 6 
+483e 20600000 rtn 
+
+shutter_random_addr_by_otp:
+483f 204068a2 call load_adc_init 
+4840 6800c223 fetch 1 ,mem_1v_adc_io_data 
+4841 6000c4a0 store 1 ,mem_le_lap 
+4842 6800c225 fetch 1 ,mem_5v_adc_hvin_data 
+4843 e0a08000 istore 1 ,contw 
+4844 6800c227 fetch 1 ,mem_3v_adc_vinlpm_data 
+4845 e0a08000 istore 1 ,contw 
+4846 6801c4a0 fetch 3 ,mem_le_lap 
+4847 6001c0a0 store 3 ,mem_lap 
+4848 20600000 rtn 
+
+sim_iic_read_eep_data:
+4849 68014203 fetch 2 ,mem_eeprom_base 
+484a 9a40fe00 iadd regb ,pdata 
+484b 1ff0fe00 byteswap pdata ,pdata 
+484c 600101f7 store 2 ,mem_addr_mi 
+484d 18422400 copy temp ,regb 
+484e 2040489b call sim_iic_start 
+484f 580000a0 setarg 0xa0 
+4850 2040488d call sim_iic_send_byte 
+4851 680081f7 fetch 1 ,mem_addr_mi 
+4852 2040488d call sim_iic_send_byte 
+4853 c5144856 bmark1 mark_eeprom_size ,sim_iic_read_eep_data_2k 
+4854 680081f8 fetch 1 ,mem_addr_mi + 1 
+4855 2040488d call sim_iic_send_byte 
+
+sim_iic_read_eep_data_2k:
+4856 204048a1 call sim_iic_stop 
+4857 2040489b call sim_iic_start 
+4858 580000a1 setarg 0xa1 
+4859 2040488d call sim_iic_send_byte 
+
+sim_iic_read_eep_data_loop:
+485a 2040487f call sim_iic_read_byte 
+485b e2208000 istore 1 ,rega 
+485c 1a20a201 increase 1 ,rega 
+485d 1a40a5ff increase -1 ,regb 
+485e 2422c85a nbranch sim_iic_read_eep_data_loop ,zero 
+485f 202048a1 branch sim_iic_stop 
+
+sim_iic_write_eep_data:
+4860 1a50fe00 byteswap regb ,pdata 
+4861 600101f7 store 2 ,mem_addr_mi 
+4862 18422400 copy temp ,regb 
+4863 2040489b call sim_iic_start 
+4864 580000a0 setarg 0xa0 
+4865 2040488d call sim_iic_send_byte 
+4866 680081f7 fetch 1 ,mem_addr_mi 
+4867 2040488d call sim_iic_send_byte 
+4868 c514486b bmark1 mark_eeprom_size ,sim_iic_write_eep_data_loop 
+4869 680081f8 fetch 1 ,mem_addr_mi + 1 
+486a 2040488d call sim_iic_send_byte 
+
+sim_iic_write_eep_data_loop:
+486b ea208000 ifetch 1 ,rega 
+486c 2040488d call sim_iic_send_byte 
+486d 1a20a201 increase 1 ,rega 
+486e 1a40a5ff increase -1 ,regb 
+486f 2422c86b nbranch sim_iic_write_eep_data_loop ,zero 
+4870 202048a1 branch sim_iic_stop 
+
+sim_iic_wait_ack:
+4871 df20000a arg 10 ,loopcnt 
+4872 204048be call sim_iic_release_sda 
+4873 204048a6 call sim_iic_scl_output_high 
+4874 204048d2 call sim_iic_delay 
+
+sim_iic_wait_ack_loop:
+4875 204048c7 call sim_iic_read_sda_level 
+4876 203a48a9 branch sim_iic_scl_output_low ,blank 
+4877 c2004875 loop sim_iic_wait_ack_loop 
+4878 202048a9 branch sim_iic_scl_output_low 
+
+sim_iic_ack_slave:
+4879 204048a9 call sim_iic_scl_output_low 
+487a 204048af call sim_iic_sda_output_low 
+487b 204048d2 call sim_iic_delay 
+487c 204048a6 call sim_iic_scl_output_high 
+487d 204048d2 call sim_iic_delay 
+487e 202048a9 branch sim_iic_scl_output_low 
+
+sim_iic_read_byte:
+487f df200008 arg 8 ,loopcnt 
+4880 da600000 arg 0 ,regc 
+4881 204048be call sim_iic_release_sda 
+
+sim_iic_read_byte_loop:
+4882 204048a6 call sim_iic_scl_output_high 
+4883 204048d2 call sim_iic_delay 
+4884 1a63a600 lshift regc ,regc 
+4885 204048c7 call sim_iic_read_sda_level 
+4886 9a60a600 iadd regc ,regc 
+4887 204048d2 call sim_iic_delay 
+4888 204048a9 call sim_iic_scl_output_low 
+4889 c2004882 loop sim_iic_read_byte_loop 
+488a 20404879 call sim_iic_ack_slave 
+488b 1a627e00 copy regc ,pdata 
+488c 20600000 rtn 
+
+sim_iic_send_byte:
+488d df200008 arg 8 ,loopcnt 
+488e 1fe22600 copy pdata ,regc 
+488f 204048a9 call sim_iic_scl_output_low 
+
+sim_iic_send_byte_loop:
+4890 2a6ffe07 isolate1 7 ,regc 
+4891 2040c8ac call sim_iic_sda_output_high ,true 
+4892 2440c8af ncall sim_iic_sda_output_low ,true 
+4893 1a63a600 lshift regc ,regc 
+4894 204048d2 call sim_iic_delay 
+4895 204048a6 call sim_iic_scl_output_high 
+4896 204048d2 call sim_iic_delay 
+4897 204048a9 call sim_iic_scl_output_low 
+4898 204048d2 call sim_iic_delay 
+4899 c2004890 loop sim_iic_send_byte_loop 
+489a 20204871 branch sim_iic_wait_ack 
+
+sim_iic_start:
+489b 204048ac call sim_iic_sda_output_high 
+489c 204048a6 call sim_iic_scl_output_high 
+489d 204048d2 call sim_iic_delay 
+489e 204048af call sim_iic_sda_output_low 
+489f 204048d2 call sim_iic_delay 
+48a0 202048a9 branch sim_iic_scl_output_low 
+
+sim_iic_stop:
+48a1 204048af call sim_iic_sda_output_low 
+48a2 204048a6 call sim_iic_scl_output_high 
+48a3 204048d2 call sim_iic_delay 
+48a4 204048ac call sim_iic_sda_output_high 
+48a5 202048d2 branch sim_iic_delay 
+
+sim_iic_scl_output_high:
+48a6 78347c00 enable user 
+48a7 6800cffe fetch 1 ,sim_iic_scl_gpio_num 
+48a8 202048b2 branch sim_iic_config_gpio 
+
+sim_iic_scl_output_low:
+48a9 78547c00 disable user 
+48aa 6800cffe fetch 1 ,sim_iic_scl_gpio_num 
+48ab 202048b2 branch sim_iic_config_gpio 
+
+sim_iic_sda_output_high:
+48ac 78347c00 enable user 
+48ad 6800cfff fetch 1 ,sim_iic_sda_gpio_num 
+48ae 202048b2 branch sim_iic_config_gpio 
+
+sim_iic_sda_output_low:
+48af 78547c00 disable user 
+48b0 6800cfff fetch 1 ,sim_iic_sda_gpio_num 
+48b1 202048b2 branch sim_iic_config_gpio 
+
+sim_iic_config_gpio:
+48b2 1fe10e07 and pdata ,0x07 ,queue 
+48b3 1fe97e00 rshift3 pdata ,pdata 
+48b4 d8408070 arg core_gpio_oe0 ,temp 
+48b5 98408400 iadd temp ,temp 
+48b6 e8408000 ifetch 1 ,temp 
+48b7 f9207e00 qset1 pdata 
+48b8 e0408000 istore 1 ,temp 
+48b9 18408404 increase 4 ,temp 
+48ba e8408000 ifetch 1 ,temp 
+48bb f9347e00 qsetflag user ,pdata 
+48bc e0408000 istore 1 ,temp 
+48bd 20600000 rtn 
+
+sim_iic_release_sda:
+48be 6800cfff fetch 1 ,sim_iic_sda_gpio_num 
+48bf 1fe10e07 and pdata ,0x07 ,queue 
+48c0 1fe97e00 rshift3 pdata ,pdata 
+48c1 d8408070 arg core_gpio_oe0 ,temp 
+48c2 98408400 iadd temp ,temp 
+48c3 e8408000 ifetch 1 ,temp 
+48c4 f93ffe00 qset0 pdata 
+48c5 e0408000 istore 1 ,temp 
+48c6 20600000 rtn 
+
+sim_iic_read_sda_level:
+48c7 20000004 nop 4 
+48c8 6800cfff fetch 1 ,sim_iic_sda_gpio_num 
+48c9 1fe10e07 and pdata ,0x07 ,queue 
+48ca 1fe97e00 rshift3 pdata ,pdata 
+48cb d840811c arg core_gpio_in ,temp 
+48cc 98408400 iadd temp ,temp 
+48cd 58000000 setarg 0 
+48ce e8488000 ifetcht 1 ,temp 
+48cf a84fffff qisolate1 temp 
+48d0 7920fe00 setflag true ,0 ,pdata 
+48d1 20600000 rtn 
+
+sim_iic_delay:
+48d2 20600000 rtn 
+
+usb_isr:
+48d3 44fb401e bpatch patch1e_6 ,mem_patch1e 
+48d4 68108a26 hfetch 1 ,core_usb_status 
+48d5 2feffe07 isolate1 7 ,pdata 
+48d6 2040c8ea call usb_init ,true 
+48d7 2040492e call usb_nak_state_judge 
+48d8 68108a26 hfetch 1 ,core_usb_status 
+48d9 60008b22 store 1 ,mem_usb_status 
+48da 68108a27 hfetch 1 ,core_usb_fifo_empty 
+48db 60008b23 store 1 ,mem_usb_fifo_empty 
+48dc 60108a27 hstore 1 ,core_usb_fifo_empty 
+48dd 1fe47e00 pinvert 
+48de 68088d37 fetcht 1 ,mem_usb_tx_wait 
+48df 98417e00 iand temp ,pdata 
+48e0 60008d37 store 1 ,mem_usb_tx_wait 
+48e1 708a26e0 jam 0xe0 ,core_usb_status 
+48e2 68008b23 fetch 1 ,mem_usb_fifo_empty 
+48e3 2fe00201 compare 0x1 ,pdata ,0x1 
+48e4 2040c941 call usb0_fifo_empty ,true 
+48e5 68008b22 fetch 1 ,mem_usb_status 
+48e6 2fe00201 compare 0x1 ,pdata ,0x1 
+48e7 2040c94a call usb_status1 ,true 
+48e8 20404b61 call usb_tx 
+48e9 20204903 branch usb_nak_state 
+
+usb_init:
+48ea 44fbc01e bpatch patch1e_7 ,mem_patch1e 
+48eb 20404919 call usb_init_param 
+48ec 708a0000 jam 0x00 ,core_usb_config 
+48ed 20002710 nop 10000 
+48ee 708a10c0 jam 0xc0 ,core_usb_trig 
+48ef 68110050 hfetch 2 ,core_clkoff 
+48f0 793ffe0a set0 clock_off_usb ,pdata 
+48f1 60110050 hstore 2 ,core_clkoff 
+48f2 708a003c jam 0x3c ,core_usb_config 
+48f3 708a26ff jam 0xff ,core_usb_status 
+48f4 708a27ff jam 0xff ,core_usb_fifo_empty 
+48f5 708a0400 jam 0 ,core_usb_addr 
+48f6 700c6b02 jam dev_default ,mem_usb0_state 
+48f7 58000d9d setarg mem_usb_clear_mem_end 
+48f8 d8a00c6e arg mem_usb_clear_mem_start ,contw 
+48f9 98a67200 isub contw ,loopcnt 
+48fa 20207ed4 branch clear_mem 
+
+usb_offline_check_init:
+48fb 68088c6c fetcht 1 ,mem_usb_offline_check_gpio 
+48fc 202067fb branch gpio_config_input 
+
+usb_offline_state:
+48fd 68008d45 fetch 1 ,mem_usb_device_enumeration_endflag 
+48fe 207a0000 rtn blank 
+48ff 68088c6c fetcht 1 ,mem_usb_offline_check_gpio 
+4900 2040681d call gpio_get_bit 
+4901 2020c8ea branch usb_init ,true 
+4902 20600000 rtn 
+
+usb_nak_state:
+4903 d8e00000 arg timer_nak ,queue 
+4904 20407f16 call timer_check 
+4905 247a0000 nrtn blank 
+4906 68008d46 fetch 1 ,mem_usb_wakestate_onetime_flag 
+4907 247a0000 nrtn blank 
+4908 68008d45 fetch 1 ,mem_usb_device_enumeration_endflag 
+4909 245a4bb7 ncall usb_mac_wakeup_judge ,blank 
+490a 20600000 rtn 
+
+usb_mem_devicedesc_init:
+490b d8a00b68 arg mem_devicedesc ,contw 
+490c 38011212 setsect 0 ,0x11212 
+490d 38048000 setsect 1 ,0x8000 
+490e 38080000 setsect 2 ,0x0 
+490f 380d0000 setsect 3 ,0x10000 
+4910 e0a48000 istore 9 ,contw 
+4911 38022412 setsect 0 ,0x22412 
+4912 38048604 setsect 1 ,0x8604 
+4913 38081000 setsect 2 ,0x1000 
+4914 380c0008 setsect 3 ,0x8 
+4915 e0a48000 istore 9 ,contw 
+4916 38000001 setsect 0 ,0x1 
+4917 e0a08000 istore 1 ,contw 
+4918 20600000 rtn 
+
+usb_init_param:
+4919 700c6b02 jam 2 ,mem_usb0_state 
+491a 58000000 setarg 0x0 
+491b 60008b67 store 1 ,mem_remain 
+491c 60010c65 store 2 ,mem_usb_zero_packet 
+491d 1fe0fe01 pincrease 1 
+491e 60010c67 store 2 ,mem_usb_ones_packet 
+491f 1fe0fe01 pincrease 1 
+4920 60010c69 store 2 ,mem_usb_two_packet 
+4921 58008ffa setarg hid_kbdata_addr 
+4922 60010b7c store 2 ,mem_hidreportdesc_kb 
+4923 5800903a setarg hid_msdata_addr 
+4924 60010b7e store 2 ,mem_hidreportdesc_m 
+4925 d8a00b80 arg mem_confdesc ,contw 
+4926 d8c090fe arg hid_confdata_addr ,contr 
+4927 20407eb3 call memcpy64 
+4928 68008c6d fetch 1 ,mem_usb_tx_interval 
+4929 245a492b ncall usb_tx_interval_config ,blank 
+492a 2020490b branch usb_mem_devicedesc_init 
+
+usb_tx_interval_config:
+492b 60008ba2 store 1 ,mem_confdesc + 34 
+492c 60008bbb store 1 ,mem_confdesc + 59 
+492d 20600000 rtn 
+
+usb_nak_state_judge:
+492e 68108a26 hfetch 1 ,core_usb_status 
+492f c2834931 bbit1 usb_status_nak ,usb_nak_state_timer_init 
+4930 20600000 rtn 
+
+usb_nak_state_timer_init:
+4931 20404936 call usb0_attached_state_judge 
+4932 20407f15 call timer_reinit 
+4933 58000280 setarg timer_nak_delay 
+4934 d8e00000 arg timer_nak ,queue 
+4935 20207f08 branch timer_init 
+
+usb0_attached_state_judge:
+4936 68008d36 fetch 1 ,mem_usb_state 
+4937 c081493b bne usb_connected ,usb_clear_halt_dispose 
+4938 700d4600 jam 0 ,mem_usb_wakestate_onetime_flag 
+4939 700d4700 jam 0 ,mem_usb_mac_wakeup_trig 
+493a 20600000 rtn 
+
+usb_clear_halt_dispose:
+493b 68008d53 fetch 1 ,mem_usb_clear_halt 
+493c 207a0000 rtn blank 
+493d 700d5300 jam 0 ,mem_usb_clear_halt 
+493e 700d3602 jam usb_connected ,mem_usb_state 
+493f 700d4501 jam 1 ,mem_usb_device_enumeration_endflag 
+4940 20600000 rtn 
+
+usb0_fifo_empty:
+4941 708a2701 jam 0x1 ,core_usb_fifo_empty 
+4942 20204b37 branch usb0_tx 
+
+usb_rx_no_data:
+4943 68008b22 fetch 1 ,mem_usb_status 
+4944 c2824955 bbit1 usb_status_setup ,usb_class_type 
+4945 20600000 rtn 
+
+usb_rx_read:
+4946 68108a18 hfetch 1 ,core_usb_ep 
+4947 e0a08000 istore 1 ,contw 
+4948 c2004946 loop usb_rx_read 
+4949 20600000 rtn 
+
+usb_status1:
+494a 44fc401f bpatch patch1f_0 ,mem_patch1f 
+494b 708a2611 jam 0x11 ,core_usb_status 
+494c 68108a20 hfetch 1 ,core_usb_ep_len 
+494d 60008b24 store 1 ,mem_usb_read_len 
+494e 1fe27200 copy pdata ,loopcnt 
+494f 203a4943 branch usb_rx_no_data ,blank 
+4950 d8a00c6e arg mem_usb_setup ,contw 
+4951 20404946 call usb_rx_read 
+4952 68008b24 fetch 1 ,mem_usb_read_len 
+4953 1fe67c07 sub pdata ,7 ,null 
+4954 20610000 rtn positive 
+
+usb_class_type:
+4955 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+4956 1fe17e80 and_into 0x80 ,pdata 
+4957 c040495a beq in_device ,usb_in_device 
+4958 c0004962 beq out_device ,usb_out_device 
+4959 20202a8c branch assert 
+
+usb_in_device:
+495a 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+495b 1ff1fe00 rshift4 pdata ,pdata 
+495c 1fe37e00 rshift pdata ,pdata 
+495d 1fe17e03 and_into 0x03 ,pdata 
+495e c000496a beq standard_req ,usb_in_standard_req 
+495f c000c970 beq class_req ,usb_in_class_req 
+4960 c0014975 beq manufacturer_req ,usb_in_manufacturer_req 
+4961 20202a8c branch assert 
+
+usb_out_device:
+4962 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+4963 1ff1fe00 rshift4 pdata ,pdata 
+4964 1fe37e00 rshift pdata ,pdata 
+4965 1fe17e03 and_into 0x03 ,pdata 
+4966 c0004976 beq standard_req ,usb_out_standard_req 
+4967 c000c97e beq class_req ,usb_out_class_req 
+4968 c0014983 beq manufacturer_req ,usb_out_manufacturer_req 
+4969 20202a8c branch assert 
+
+usb_in_standard_req:
+496a 68008c6f fetch 1 ,mem_usb_setup_brequest 
+496b c004498a beq get_configuration ,usb0_request_get_configuration 
+496c c00349a0 beq get_descriptor ,usb0_request_get_descriptor 
+496d c00549ea beq get_interface ,usb0_request_get_interface 
+496e c00049fc beq get_status ,usb0_request_get_status 
+496f 20204984 branch usb0_force_stall 
+
+usb_in_class_req:
+4970 68008c6f fetch 1 ,mem_usb_setup_brequest 
+4971 c0014a2f beq get_idle ,usb_get_idle 
+4972 c000ca33 beq get_report ,usb_get_report 
+4973 c001ca45 beq get_protocol ,usb_get_protocol_req 
+4974 20204984 branch usb0_force_stall 
+
+usb_in_manufacturer_req:
+4975 20204984 branch usb0_force_stall 
+
+usb_out_standard_req:
+4976 68008c6f fetch 1 ,mem_usb_setup_brequest 
+4977 c000ca4f beq clear_feature ,usb0_request_clear_feature 
+4978 c001ca79 beq set_feature ,usb0_request_set_feature 
+4979 c002caa3 beq set_address ,usb0_request_set_address 
+497a c004cabc beq set_configuration ,usb0_request_set_configuration 
+497b c005cad7 beq set_interface ,usb0_request_set_interface 
+497c c003c984 beq set_descriptor ,usb0_force_stall 
+497d 20204984 branch usb0_force_stall 
+
+usb_out_class_req:
+497e 68008c6f fetch 1 ,mem_usb_setup_brequest 
+497f c0054ae8 beq set_idle ,usb_set_idle 
+4980 c004caf9 beq set_report ,usb_set_report 
+4981 c005cb11 beq set_protocol ,usb_set_protocol_req 
+4982 20204984 branch usb0_force_stall 
+
+usb_out_manufacturer_req:
+4983 20204984 branch usb0_force_stall 
+
+usb0_force_stall:
+4984 68108a11 hfetch 1 ,core_usb_stall 
+4985 79207e00 set1 0 ,pdata 
+4986 60108a11 hstore 1 ,core_usb_stall 
+4987 20204988 branch usb0_reply_zerolen 
+
+usb0_reply_zerolen:
+4988 708a1240 jam 0x40 ,core_usb_clear 
+4989 20600000 rtn 
+
+usb0_request_get_configuration:
+498a 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+498b c0c04984 bne in_device ,usb0_force_stall 
+498c 68008c72 fetch 1 ,mem_usb_setup_windex 
+498d c0804984 bne 0 ,usb0_force_stall 
+498e 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
+498f c0804984 bne 0 ,usb0_force_stall 
+4990 68008c74 fetch 1 ,mem_usb_setup_blength 
+4991 c080c984 bne 1 ,usb0_force_stall 
+4992 68008c75 fetch 1 ,mem_usb_setup_blengthh 
+4993 c0804984 bne 0 ,usb0_force_stall 
+4994 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+4995 c0804984 bne 0 ,usb0_force_stall 
+4996 68008c71 fetch 1 ,mem_usb_setup_bvalue + 1 
+4997 c0804984 bne 0 ,usb0_force_stall 
+4998 68008c6b fetch 1 ,mem_usb0_state 
+4999 c002499c beq dev_configured ,usb0_request_get_cfg_dev_cfg 
+499a c001c99e beq dev_address ,usb0_request_get_cfg_dev_addr 
+499b 20204984 branch usb0_force_stall 
+
+usb0_request_get_cfg_dev_cfg:
+499c da400001 arg 1 ,regb 
+499d 20204a14 branch usb_send_ones_packet 
+
+usb0_request_get_cfg_dev_addr:
+499e da400001 arg 1 ,regb 
+499f 20204a12 branch usb_send_zero_packet 
+
+usb0_request_get_descriptor:
+49a0 44fcc01f bpatch patch1f_1 ,mem_patch1f 
+49a1 793f8023 set0 mark_isstr ,mark 
+49a2 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
+49a3 c000c9b6 beq dsc_device ,dsc_device_info 
+49a4 c00149cf beq dsc_config ,dsc_config_info 
+49a5 c001c9d2 beq dsc_string ,dsc_string_info 
+49a6 c010c9a9 beq dsc_hid ,dsc_hid_info 
+49a7 c01149e0 beq dsc_hid_report ,dsc_hid_report_info 
+49a8 20204984 branch usb0_force_stall 
+
+dsc_hid_info:
+49a9 700d4b00 jam 0 ,mem_usb_get_protocol_flag 
+49aa 68008c72 fetch 1 ,mem_usb_setup_windex 
+49ab c00049ae beq 0 ,dsc_hid_info_interface0 
+49ac c000c9b2 beq 1 ,dsc_hid_info_interface1 
+49ad 20204984 branch usb0_force_stall 
+
+dsc_hid_info_interface0:
+49ae da200b93 arg mem_confdesc + 19 ,rega 
+49af ea208000 ifetch 1 ,rega 
+49b0 98002400 iforce regb 
+49b1 20204b21 branch usb0_respond 
+
+dsc_hid_info_interface1:
+49b2 da200bac arg mem_confdesc + 44 ,rega 
+49b3 ea208000 ifetch 1 ,rega 
+49b4 98002400 iforce regb 
+49b5 20204b21 branch usb0_respond 
+
+dsc_device_info:
+49b6 68008d48 fetch 1 ,mem_usb_set_high_addr_flag 
+49b7 245a49c7 ncall usb_set_high_addr ,blank 
+49b8 58000b68 setarg mem_devicedesc 
+49b9 68088b68 fetcht 1 ,mem_devicedesc 
+
+dsc_info_set_data_len:
+49ba 60010d3f store 2 ,mem_dsc_info_data_pointer 
+49bb 60088d41 storet 1 ,mem_dsc_info_len 
+49bc 68008c74 fetch 1 ,mem_usb_setup_blength 
+49bd 98467c00 isub temp ,null 
+49be 242149c5 nbranch dsc_info_set_current_data_len ,positive 
+
+dsc_info_set_initial_data_len:
+49bf 68008d41 fetch 1 ,mem_dsc_info_len 
+
+dsc_info_set_data_size_completed:
+49c0 98002400 iforce regb 
+49c1 68010d3f fetch 2 ,mem_dsc_info_data_pointer 
+49c2 1fe0fe01 add pdata ,1 ,pdata 
+49c3 98002200 iforce rega 
+49c4 20204b21 branch usb0_respond 
+
+dsc_info_set_current_data_len:
+49c5 68008c74 fetch 1 ,mem_usb_setup_blength 
+49c6 202049c0 branch dsc_info_set_data_size_completed 
+
+usb_set_high_addr:
+49c7 68108a04 hfetch 1 ,core_usb_addr 
+49c8 245a49cb ncall usb0_set_addr ,blank 
+49c9 700d4800 jam 0 ,mem_usb_set_high_addr_flag 
+49ca 20600000 rtn 
+
+usb0_set_addr:
+49cb 68108a04 hfetch 1 ,core_usb_addr 
+49cc 79207e07 set1 7 ,pdata 
+49cd 60108a04 hstore 1 ,core_usb_addr 
+49ce 20600000 rtn 
+
+dsc_config_info:
+49cf 58000b80 setarg mem_confdesc 
+49d0 68088b80 fetcht 1 ,mem_confdesc 
+49d1 202049ba branch dsc_info_set_data_len 
+
+dsc_string_info:
+49d2 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+49d3 1fe67c03 sub pdata ,3 ,null 
+49d4 24214984 nbranch usb0_force_stall ,positive 
+49d5 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+49d6 da200be4 arg mem_string0 ,rega 
+49d7 c0004b1e beq 0 ,usb0_respond_length 
+49d8 79200023 set1 mark_isstr ,mark 
+49d9 da200be9 arg mem_string1 ,rega 
+49da c000cb1e beq 1 ,usb0_respond_length 
+49db da200c07 arg mem_string2 ,rega 
+49dc c0014b1e beq 2 ,usb0_respond_length 
+49dd da200c47 arg mem_string3 ,rega 
+49de c001cb1e beq 3 ,usb0_respond_length 
+49df 20600000 rtn 
+
+dsc_hid_report_info:
+49e0 68010c72 fetch 2 ,mem_usb_setup_windex 
+49e1 c000c9e5 beq 1 ,dsc_hid_report_info0 
+49e2 68010b7c fetch 2 ,mem_hidreportdesc_kb 
+49e3 1fe22200 copy pdata ,rega 
+49e4 20204b1e branch usb0_respond_length 
+
+dsc_hid_report_info0:
+49e5 700d4501 jam 1 ,mem_usb_device_enumeration_endflag 
+49e6 700d3601 jam usb_got_report_req ,mem_usb_state 
+49e7 68010b7e fetch 2 ,mem_hidreportdesc_m 
+49e8 1fe22200 copy pdata ,rega 
+49e9 20204b1e branch usb0_respond_length 
+
+usb0_request_get_interface:
+49ea 68008c6b fetch 1 ,mem_usb0_state 
+49eb c0824984 bne dev_configured ,usb0_force_stall 
+49ec 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+49ed c0c0c984 bne in_interface ,usb0_force_stall 
+49ee 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+49ef c0804984 bne 0 ,usb0_force_stall 
+49f0 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
+49f1 c0804984 bne 0 ,usb0_force_stall 
+49f2 68008c74 fetch 1 ,mem_usb_setup_blength 
+49f3 c080c984 bne 1 ,usb0_force_stall 
+49f4 68008c75 fetch 1 ,mem_usb_setup_blengthh 
+49f5 c0804984 bne 0 ,usb0_force_stall 
+49f6 68008c72 fetch 1 ,mem_usb_setup_windex 
+49f7 c0804984 bne 0 ,usb0_force_stall 
+49f8 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
+49f9 c0804984 bne 0 ,usb0_force_stall 
+49fa da400001 arg 1 ,regb 
+49fb 20204a12 branch usb_send_zero_packet 
+
+usb0_request_get_status:
+49fc 68008c6b fetch 1 ,mem_usb0_state 
+49fd c0014984 beq dev_default ,usb0_force_stall 
+49fe 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+49ff c0804984 bne 0 ,usb0_force_stall 
+4a00 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
+4a01 c0804984 bne 0 ,usb0_force_stall 
+4a02 68008c74 fetch 1 ,mem_usb_setup_blength 
+4a03 c0814984 bne 2 ,usb0_force_stall 
+4a04 68008c75 fetch 1 ,mem_usb_setup_blengthh 
+4a05 c0804984 bne 0 ,usb0_force_stall 
+4a06 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
+4a07 c0804984 bne 0 ,usb0_force_stall 
+4a08 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+4a09 c0404a0d beq in_device ,usb0_get_status_in_device 
+4a0a c040ca18 beq in_interface ,usb0_get_status_in_interface 
+4a0b c0414a1c beq in_endpoint ,usb0_get_status_in_endpoint 
+4a0c 20204984 branch usb0_force_stall 
+
+usb0_get_status_in_device:
+4a0d 68008c72 fetch 1 ,mem_usb_setup_windex 
+4a0e c0804984 bne 0 ,usb0_force_stall 
+4a0f da400002 arg 2 ,regb 
+4a10 68008d39 fetch 1 ,mem_usb_remote_wakeup 
+4a11 c000ca16 beq 0x01 ,usb_send_two_packet 
+
+usb_send_zero_packet:
+4a12 da200c65 arg mem_usb_zero_packet ,rega 
+4a13 20204b21 branch usb0_respond 
+
+usb_send_ones_packet:
+4a14 da200c67 arg mem_usb_ones_packet ,rega 
+4a15 20204b21 branch usb0_respond 
+
+usb_send_two_packet:
+4a16 da200c69 arg mem_usb_two_packet ,rega 
+4a17 20204b21 branch usb0_respond 
+
+usb0_get_status_in_interface:
+4a18 68008c6b fetch 1 ,mem_usb0_state 
+4a19 c0824984 bne dev_configured ,usb0_force_stall 
+4a1a da400002 arg 2 ,regb 
+4a1b 20204a12 branch usb_send_zero_packet 
+
+usb0_get_status_in_endpoint:
+4a1c 68008c6b fetch 1 ,mem_usb0_state 
+4a1d c0824984 bne dev_configured ,usb0_force_stall 
+4a1e 68008c72 fetch 1 ,mem_usb_setup_windex 
+4a1f c040ca29 beq in_ep1 ,usb0_get_status_in_ep_in_ep1 
+4a20 c0414a2b beq in_ep2 ,usb0_get_status_in_ep_in_ep2 
+4a21 c041ca2d beq in_ep3 ,usb0_get_status_in_ep_in_ep3 
+4a22 1fe17e7f and_into 0x7f ,pdata 
+4a23 c0004a25 beq 0x00 ,usb0_get_status_in_ep_in_ep0 
+4a24 20204984 branch usb0_force_stall 
+
+usb0_get_status_in_ep_in_ep0:
+4a25 68008d3b fetch 1 ,mem_usb_ep0_stall_status 
+
+usb0_get_status_in_ep_in_ack:
+4a26 da400002 arg 2 ,regb 
+4a27 c000ca14 beq 1 ,usb_send_ones_packet 
+4a28 20204a12 branch usb_send_zero_packet 
+
+usb0_get_status_in_ep_in_ep1:
+4a29 68008d3c fetch 1 ,mem_usb_ep1_stall_status 
+4a2a 20204a26 branch usb0_get_status_in_ep_in_ack 
+
+usb0_get_status_in_ep_in_ep2:
+4a2b 68008d3d fetch 1 ,mem_usb_ep2_stall_status 
+4a2c 20204a26 branch usb0_get_status_in_ep_in_ack 
+
+usb0_get_status_in_ep_in_ep3:
+4a2d 68008d3e fetch 1 ,mem_usb_ep3_stall_status 
+4a2e 20204a26 branch usb0_get_status_in_ep_in_ack 
+
+usb_get_idle:
+4a2f 700d4c01 jam 1 ,mem_usb_idle_flag 
+4a30 da200d4d arg mem_usb_idle_rate ,rega 
+4a31 da400001 arg 1 ,regb 
+4a32 20204b21 branch usb0_respond 
+
+usb_get_report:
+4a33 68010c70 fetch 2 ,mem_usb_setup_bvalue 
+4a34 d84001ba arg pc_get_report ,temp 
+4a35 98467c00 isub temp ,null 
+4a36 2422c984 nbranch usb0_force_stall ,zero 
+4a37 793f8023 set0 mark_isstr ,mark 
+
+usb_get_report_dispose:
+4a38 68008d42 fetch 1 ,mem_usb0_data_ready_report 
+4a39 243a4a42 nbranch usb_get_report_data_success ,blank 
+4a3a 700cf600 jam pc_get_nondata ,mem_usb0_get_report_data 
+
+usb_get_report_send_data:
+4a3b 68008c74 fetch 1 ,mem_usb_setup_blength 
+4a3c 98002400 iforce regb 
+4a3d da200cf6 arg mem_usb0_get_report_data ,rega 
+4a3e 20404b21 call usb0_respond 
+
+usb_get_report_data_release:
+4a3f d8a00cf6 arg mem_usb0_get_report_data ,contw 
+4a40 df200008 arg 8 ,loopcnt 
+4a41 20207ec6 branch memset0 
+
+usb_get_report_data_success:
+4a42 700d4200 jam 0 ,mem_usb0_data_ready_report 
+4a43 700cf601 jam pc_get_data ,mem_usb0_get_report_data 
+4a44 20204a3b branch usb_get_report_send_data 
+
+usb_get_protocol_req:
+4a45 68008c74 fetch 1 ,mem_usb_setup_blength 
+4a46 c080c984 bne 1 ,usb0_force_stall 
+4a47 700d4b01 jam 1 ,mem_usb_get_protocol_flag 
+4a48 da400001 arg 1 ,regb 
+4a49 68008d49 fetch 1 ,mem_usb_set_protocol_value 
+4a4a c0004a4d beq 0 ,usb_get_report_protocol 
+4a4b c000ca4e beq 1 ,usb_get_boot_protocol 
+4a4c 20204a12 branch usb_send_zero_packet 
+
+usb_get_report_protocol:
+4a4d 20204a14 branch usb_send_ones_packet 
+
+usb_get_boot_protocol:
+4a4e 20204a12 branch usb_send_zero_packet 
+
+usb0_request_clear_feature:
+4a4f 68008c6b fetch 1 ,mem_usb0_state 
+4a50 c0824984 bne dev_configured ,usb0_force_stall 
+4a51 68008c74 fetch 1 ,mem_usb_setup_blength 
+4a52 c0804984 bne 0 ,usb0_force_stall 
+4a53 68008c75 fetch 1 ,mem_usb_setup_blengthh 
+4a54 c0804984 bne 0 ,usb0_force_stall 
+4a55 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
+4a56 c0804984 bne 0 ,usb0_force_stall 
+4a57 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
+4a58 c0804984 bne 0 ,usb0_force_stall 
+4a59 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+4a5a c0004a5e beq out_device ,usb0_request_clear_feature_out_device 
+4a5b c000ca66 beq out_interface ,usb0_request_clear_feature_out_interface 
+4a5c c0014a67 beq out_endpoint ,usb0_request_clear_feature_out_endpoint 
+4a5d 20204984 branch usb0_force_stall 
+
+usb0_request_clear_feature_out_device:
+4a5e 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+4a5f c080c984 bne device_remote_wakeup ,usb0_force_stall 
+4a60 68108a00 hfetch 1 ,core_usb_config 
+4a61 793ffe07 set0 7 ,pdata 
+4a62 60108a00 hstore 1 ,core_usb_config 
+4a63 700d3900 jam 0 ,mem_usb_remote_wakeup 
+4a64 700d3a01 jam 1 ,mem_usb_clear_remote_wakeup 
+4a65 20204988 branch usb0_reply_zerolen 
+
+usb0_request_clear_feature_out_interface:
+4a66 20204984 branch usb0_force_stall 
+
+usb0_request_clear_feature_out_endpoint:
+4a67 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+4a68 c0804984 bne endpoint_halt ,usb0_force_stall 
+4a69 68008c72 fetch 1 ,mem_usb_setup_windex 
+4a6a c040ca72 beq in_ep1 ,usb0_force_stall_ep1_in_off 
+4a6b c0414a75 beq in_ep2 ,usb0_force_stall_ep2_in_off 
+4a6c c041ca77 beq in_ep3 ,usb0_force_stall_ep3_in_off 
+4a6d 1fe17e7f and_into 0x7f ,pdata 
+4a6e c0004a70 beq 0x00 ,usb0_force_stall_ep0_in_off 
+4a6f 20204984 branch usb0_force_stall 
+
+usb0_force_stall_ep0_in_off:
+4a70 700d3b00 jam 0 ,mem_usb_ep0_stall_status 
+4a71 20204988 branch usb0_reply_zerolen 
+
+usb0_force_stall_ep1_in_off:
+4a72 700d3c00 jam 0 ,mem_usb_ep1_stall_status 
+
+usb0_force_stall_ep1_in_off_reply:
+4a73 700d5301 jam 1 ,mem_usb_clear_halt 
+4a74 20204988 branch usb0_reply_zerolen 
+
+usb0_force_stall_ep2_in_off:
+4a75 700d3d00 jam 0 ,mem_usb_ep2_stall_status 
+4a76 20204a73 branch usb0_force_stall_ep1_in_off_reply 
+
+usb0_force_stall_ep3_in_off:
+4a77 700d3e00 jam 0 ,mem_usb_ep3_stall_status 
+4a78 20204a73 branch usb0_force_stall_ep1_in_off_reply 
+
+usb0_request_set_feature:
+4a79 68008c74 fetch 1 ,mem_usb_setup_blength 
+4a7a c0804984 bne 0 ,usb0_force_stall 
+4a7b 68008c75 fetch 1 ,mem_usb_setup_blengthh 
+4a7c c0804984 bne 0 ,usb0_force_stall 
+4a7d 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+4a7e c0004a82 beq out_device ,usb0_request_set_feature_out_device 
+4a7f c000ca8f beq out_interface ,usb0_request_set_feature_out_interface 
+4a80 c0014a90 beq out_endpoint ,usb0_request_set_feature_out_endpoint 
+4a81 20204984 branch usb0_force_stall 
+
+usb0_request_set_feature_out_device:
+4a82 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+4a83 c080c984 bne device_remote_wakeup ,usb0_force_stall 
+4a84 68108a00 hfetch 1 ,core_usb_config 
+4a85 79207e07 set1 7 ,pdata 
+4a86 60108a00 hstore 1 ,core_usb_config 
+4a87 700d3901 jam 1 ,mem_usb_remote_wakeup 
+4a88 700d3603 jam usb_sleep ,mem_usb_state 
+4a89 700d4300 jam 0 ,mem_usb_tx_win_enable 
+4a8a 20404988 call usb0_reply_zerolen 
+
+usb_wakeup_timer_reinit:
+4a8b 20407f15 call timer_reinit 
+4a8c 58001388 setarg timer_wakeup_delay 
+4a8d d8e0000f arg timer_wakeup ,queue 
+4a8e 20207f08 branch timer_init 
+
+usb0_request_set_feature_out_interface:
+4a8f 20204984 branch usb0_force_stall 
+
+usb0_request_set_feature_out_endpoint:
+4a90 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+4a91 c0804984 bne endpoint_halt ,usb0_force_stall 
+4a92 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
+4a93 c0804984 bne 0 ,usb0_force_stall 
+4a94 68008c72 fetch 1 ,mem_usb_setup_windex 
+4a95 c040ca9d beq in_ep1 ,usb0_force_stall_ep1_in_on 
+4a96 c0414a9f beq in_ep2 ,usb0_force_stall_ep2_in_on 
+4a97 c041caa1 beq in_ep3 ,usb0_force_stall_ep3_in_on 
+4a98 1fe17e7f and_into 0x7f ,pdata 
+4a99 c0004a9b beq 0x00 ,usb0_force_stall_ep0_in_on 
+4a9a 20204984 branch usb0_force_stall 
+
+usb0_force_stall_ep0_in_on:
+4a9b 700d3b01 jam 1 ,mem_usb_ep0_stall_status 
+4a9c 20204988 branch usb0_reply_zerolen 
+
+usb0_force_stall_ep1_in_on:
+4a9d 700d3c01 jam 1 ,mem_usb_ep1_stall_status 
+4a9e 20204988 branch usb0_reply_zerolen 
+
+usb0_force_stall_ep2_in_on:
+4a9f 700d3d01 jam 1 ,mem_usb_ep2_stall_status 
+4aa0 20204988 branch usb0_reply_zerolen 
+
+usb0_force_stall_ep3_in_on:
+4aa1 700d3e01 jam 1 ,mem_usb_ep3_stall_status 
+4aa2 20204988 branch usb0_reply_zerolen 
+
+usb0_request_set_address:
+4aa3 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+4aa4 c0804984 bne out_device ,usb0_force_stall 
+4aa5 68008c72 fetch 1 ,mem_usb_setup_windex 
+4aa6 c0804984 bne 0 ,usb0_force_stall 
+4aa7 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
+4aa8 c0804984 bne 0 ,usb0_force_stall 
+4aa9 68008c74 fetch 1 ,mem_usb_setup_blength 
+4aaa c0804984 bne 0 ,usb0_force_stall 
+4aab 68008c75 fetch 1 ,mem_usb_setup_blengthh 
+4aac c0804984 bne 0 ,usb0_force_stall 
+4aad 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
+4aae c0804984 bne 0 ,usb0_force_stall 
+4aaf 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+4ab0 1fe17e80 and_into 0x80 ,pdata 
+4ab1 c0804984 bne 0 ,usb0_force_stall 
+4ab2 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+4ab3 c0804aba bne 0 ,usb_usb0_state_set_dev_addr 
+
+usb_usb0_state_set_dev_default:
+4ab4 700c6b02 jam dev_default ,mem_usb0_state 
+
+usb0_request_set_wait_address:
+4ab5 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+4ab6 60108a04 hstore 1 ,core_usb_addr 
+4ab7 20404988 call usb0_reply_zerolen 
+4ab8 700d4801 jam 1 ,mem_usb_set_high_addr_flag 
+4ab9 20600000 rtn 
+
+usb_usb0_state_set_dev_addr:
+4aba 700c6b03 jam dev_address ,mem_usb0_state 
+4abb 20204ab5 branch usb0_request_set_wait_address 
+
+usb0_request_set_configuration:
+4abc 68008c6b fetch 1 ,mem_usb0_state 
+4abd c0014984 beq dev_default ,usb0_force_stall 
+4abe 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+4abf c0804984 bne out_device ,usb0_force_stall 
+4ac0 68008c72 fetch 1 ,mem_usb_setup_windex 
+4ac1 c0804984 bne 0 ,usb0_force_stall 
+4ac2 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
+4ac3 c0804984 bne 0 ,usb0_force_stall 
+4ac4 68008c74 fetch 1 ,mem_usb_setup_blength 
+4ac5 c0804984 bne 0 ,usb0_force_stall 
+4ac6 68008c75 fetch 1 ,mem_usb_setup_blengthh 
+4ac7 c0804984 bne 0 ,usb0_force_stall 
+4ac8 68008c71 fetch 1 ,mem_usb_setup_bvalue + 1 
+4ac9 c0804984 bne 0 ,usb0_force_stall 
+4aca 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+4acb 1fe67c01 sub pdata ,usb_max_num_cfg ,null 
+4acc 24214984 nbranch usb0_force_stall ,positive 
+4acd 68008c6b fetch 1 ,mem_usb0_state 
+4ace c001cad1 beq dev_address ,usb0_request_set_cfg_addr_state 
+4acf c0024ad1 beq dev_configured ,usb0_request_set_cfg_cfg_state 
+4ad0 20204984 branch usb0_force_stall 
+
+usb0_request_set_cfg_addr_state:
+
+usb0_request_set_cfg_cfg_state:
+4ad1 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+4ad2 c0004ad5 beq 0 ,usb0_request_set_cfg_stay_addr_state 
+4ad3 700c6b04 jam dev_configured ,mem_usb0_state 
+4ad4 20204988 branch usb0_reply_zerolen 
+
+usb0_request_set_cfg_stay_addr_state:
+4ad5 700c6b03 jam dev_address ,mem_usb0_state 
+4ad6 20204988 branch usb0_reply_zerolen 
+
+usb0_request_set_interface:
+4ad7 68008c6b fetch 1 ,mem_usb0_state 
+4ad8 c0824984 bne dev_configured ,usb0_force_stall 
+4ad9 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+4ada c080c984 bne out_interface ,usb0_force_stall 
+4adb 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+4adc c0804984 bne 0 ,usb0_force_stall 
+4add 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
+4ade c0804984 bne 0 ,usb0_force_stall 
+4adf 68008c74 fetch 1 ,mem_usb_setup_blength 
+4ae0 c0804984 bne 0 ,usb0_force_stall 
+4ae1 68008c75 fetch 1 ,mem_usb_setup_blengthh 
+4ae2 c0804984 bne 0 ,usb0_force_stall 
+4ae3 68008c72 fetch 1 ,mem_usb_setup_windex 
+4ae4 c0804984 bne 0 ,usb0_force_stall 
+4ae5 68008c73 fetch 1 ,mem_usb_setup_windex + 1 
+4ae6 c0804984 bne 0 ,usb0_force_stall 
+4ae7 20204988 branch usb0_reply_zerolen 
+
+usb_set_idle:
+4ae8 700d4c01 jam 1 ,mem_usb_idle_flag 
+4ae9 68008c71 fetch 1 ,mem_usb_setup_bvalueh 
+4aea 60008d4d store 1 ,mem_usb_idle_rate 
+4aeb 68008c72 fetch 1 ,mem_usb_setup_windex 
+4aec 1fe67c01 sub pdata ,1 ,null 
+4aed 2042caf5 call usb_clear_remote_wakeup_set0 ,zero 
+4aee 68008d36 fetch 1 ,mem_usb_state 
+4aef c0824988 bne usb_resume ,usb0_reply_zerolen 
+4af0 700d3602 jam usb_connected ,mem_usb_state 
+4af1 20404988 call usb0_reply_zerolen 
+4af2 20007530 nop 30000 
+4af3 20007530 nop 30000 
+4af4 20600000 rtn 
+
+usb_clear_remote_wakeup_set0:
+4af5 700d4501 jam 1 ,mem_usb_device_enumeration_endflag 
+4af6 700d3a00 jam 0 ,mem_usb_clear_remote_wakeup 
+4af7 700d3604 jam usb_resume ,mem_usb_state 
+4af8 20600000 rtn 
+
+usb_set_report:
+4af9 700d5001 jam 1 ,mem_usb0_get_set_report 
+4afa 20404b03 call usb_set_report_resume_judge 
+4afb 68010c70 fetch 2 ,mem_usb_setup_bvalue 
+4afc 60010d4e store 2 ,mem_usb_setup_bvalue_temp 
+4afd 68008c74 fetch 1 ,mem_usb_setup_blength 
+4afe 98007200 iforce loopcnt 
+4aff d8c00c76 arg mem_usb0_setup ,contr 
+4b00 d8a00cb6 arg mem_usb0_set_report_data ,contw 
+4b01 20407f01 call memcpy 
+4b02 20204988 branch usb0_reply_zerolen 
+
+usb_set_report_resume_judge:
+4b03 68010c70 fetch 2 ,mem_usb_setup_bvalue 
+4b04 d8400200 arg pc_set_report_bvalue ,temp 
+4b05 98467c00 isub temp ,null 
+4b06 24628000 nrtn zero 
+4b07 68010c72 fetch 2 ,mem_usb_setup_windex 
+4b08 d8400000 arg pc_set_report_windex ,temp 
+4b09 98467c00 isub temp ,null 
+4b0a 24628000 nrtn zero 
+4b0b 68010c74 fetch 2 ,mem_usb_setup_blength 
+4b0c d8400001 arg pc_set_report_blength ,temp 
+4b0d 98467c00 isub temp ,null 
+4b0e 24628000 nrtn zero 
+4b0f 700d4301 jam 1 ,mem_usb_tx_win_enable 
+4b10 20600000 rtn 
+
+usb_set_protocol_req:
+4b11 68008c74 fetch 1 ,mem_usb_setup_blength 
+4b12 c0804984 bne 0 ,usb0_force_stall 
+4b13 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+4b14 c0004b17 beq boot_protocol ,usb_set_boot_protocol 
+4b15 c000cb1a beq report_protocol ,usb_set_report_protocol 
+4b16 20204984 branch usb0_force_stall 
+
+usb_set_boot_protocol:
+4b17 700d4a00 jam 0 ,mem_usb_set_protocol_status 
+4b18 700d4901 jam 1 ,mem_usb_set_protocol_value 
+4b19 20204988 branch usb0_reply_zerolen 
+
+usb_set_report_protocol:
+4b1a 700d4401 jam 1 ,mem_usb_tx_mac_enable 
+4b1b 700d4a01 jam 1 ,mem_usb_set_protocol_status 
+4b1c 700d4900 jam 0 ,mem_usb_set_protocol_value 
+4b1d 20204988 branch usb0_reply_zerolen 
+
+usb0_respond_length:
+4b1e ea208000 ifetch 1 ,rega 
+4b1f 98002400 iforce regb 
+4b20 1a20a201 increase 1 ,rega 
+
+usb0_respond:
+4b21 44fd401f bpatch patch1f_2 ,mem_patch1f 
+4b22 c591cb2c bmark0 mark_isstr ,usb0_respond0 
+4b23 1a40fe01 add regb ,1 ,pdata 
+4b24 1fe3fe00 lshift pdata ,pdata 
+4b25 60108a18 hstore 1 ,core_usb_dfifo0 
+4b26 708a1803 jam 3 ,core_usb_dfifo0 
+4b27 68008c74 fetch 1 ,mem_usb_setup_blength 
+4b28 1fe0fffe increase -2 ,pdata 
+4b29 1fe37e00 rshift pdata ,pdata 
+4b2a 60008c74 store 1 ,mem_usb_setup_blength 
+4b2b c0004b35 beq 0 ,usb_no_respond_data 
+
+usb0_respond0:
+4b2c 68010c74 fetch 2 ,mem_usb_setup_blength 
+4b2d 9a467c00 isub regb ,null 
+4b2e 20214b30 branch usb0_respond1 ,positive 
+4b2f 1fe22400 copy pdata ,regb 
+
+usb0_respond1:
+4b30 1a227e00 deposit rega 
+4b31 60010b65 store 2 ,mem_bufptr 
+4b32 1a427e00 deposit regb 
+4b33 60008b67 store 1 ,mem_remain 
+4b34 20204b37 branch usb0_tx 
+
+usb_no_respond_data:
+4b35 d8e00000 arg 0 ,queue 
+4b36 20204b57 branch usb_trig 
+
+usb0_tx:
+4b37 44fdc01f bpatch patch1f_3 ,mem_patch1f 
+4b38 68008b67 fetch 1 ,mem_remain 
+4b39 207a0000 rtn blank 
+4b3a 1fe27200 copy pdata ,loopcnt 
+4b3b 1fe67c40 sub pdata ,ep0_packet_size ,null 
+4b3c 20214b3e branch usb0_tx_info ,positive 
+4b3d df200040 arg ep0_packet_size ,loopcnt 
+
+usb0_tx_info:
+4b3e 68008b67 fetch 1 ,mem_remain 
+4b3f 9f267e00 isub loopcnt ,pdata 
+4b40 60008b67 store 1 ,mem_remain 
+4b41 68010b65 fetch 2 ,mem_bufptr 
+4b42 1fe20c00 copy pdata ,contr 
+
+usb0_tx0:
+4b43 e8c08000 ifetch 1 ,contr 
+4b44 60108a18 hstore 1 ,core_usb_dfifo0 
+4b45 c591cb47 bmark0 mark_isstr ,usb0_tx1 
+4b46 708a1800 jam 0 ,core_usb_dfifo0 
+
+usb0_tx1:
+4b47 c2004b43 loop usb0_tx0 
+4b48 18c27e00 copy contr ,pdata 
+4b49 60010b65 store 2 ,mem_bufptr 
+4b4a d8e00000 arg 0 ,queue 
+4b4b 20404b57 call usb_trig 
+4b4c 68008b67 fetch 1 ,mem_remain 
+4b4d 247a0000 nrtn blank 
+4b4e 68008d36 fetch 1 ,mem_usb_state 
+4b4f c1808000 rtnne usb_got_report_req 
+4b50 700d3602 jam usb_connected ,mem_usb_state 
+4b51 20600000 rtn 
+
+usb_tx_ep1:
+4b52 da208a19 arg core_usb_dfifo1 ,rega 
+4b53 d8e00001 arg 1 ,queue 
+
+usb_tx_loop:
+4b54 e8c08000 ifetch 1 ,contr 
+4b55 e2208000 istore 1 ,rega 
+4b56 c2004b54 loop usb_tx_loop 
+
+usb_trig:
+4b57 58000000 setarg 0 
+4b58 f9207e00 qset1 pdata 
+4b59 60108a10 hstore 1 ,core_usb_trig 
+4b5a 68088d37 fetcht 1 ,mem_usb_tx_wait 
+4b5b 9841fe00 ior temp ,pdata 
+4b5c 60008d37 store 1 ,mem_usb_tx_wait 
+4b5d 20600000 rtn 
+
+usb_tx_ep2:
+4b5e d8e00002 arg 2 ,queue 
+4b5f da208a1a arg core_usb_dfifo2 ,rega 
+4b60 20204b54 branch usb_tx_loop 
+
+usb_tx:
+4b61 44fe401f bpatch patch1f_4 ,mem_patch1f 
+4b62 68008d38 fetch 1 ,mem_usb_tx_enable 
+4b63 207a0000 rtn blank 
+4b64 68008d37 fetch 1 ,mem_usb_tx_wait 
+4b65 243a4bac nbranch usb_inwake_state_tx_dispose ,blank 
+4b66 68008d45 fetch 1 ,mem_usb_device_enumeration_endflag 
+4b67 203a4b86 branch usb_tx_fifo_release ,blank 
+4b68 68008d36 fetch 1 ,mem_usb_state 
+4b69 c001cbbf beq usb_sleep ,usb_windows_wakeup 
+4b6a c0814b86 bne usb_connected ,usb_tx_fifo_release 
+4b6b 68008d3a fetch 1 ,mem_usb_clear_remote_wakeup 
+4b6c 243a4b86 nbranch usb_tx_fifo_release ,blank 
+4b6d 20404b6f call usb_tx_data_ep1 
+4b6e 20204b7a branch usb_tx_data_ep2 
+
+usb_tx_data_ep1:
+4b6f 68008d38 fetch 1 ,mem_usb_tx_enable 
+4b70 c4008000 rtnbit0 1 
+4b71 68008d37 fetch 1 ,mem_usb_tx_wait 
+4b72 c3808000 rtnbit1 1 
+4b73 68008d38 fetch 1 ,mem_usb_tx_enable 
+4b74 793ffe01 set0 1 ,pdata 
+4b75 60008d38 store 1 ,mem_usb_tx_enable 
+4b76 68008d51 fetch 1 ,mem_usb_ep1_data 
+4b77 207a0000 rtn blank 
+4b78 c0084ba8 beq usb_ep1_kb ,usb_tx_kb_normal_data 
+4b79 20202a8c branch assert 
+
+usb_tx_data_ep2:
+4b7a 68008d38 fetch 1 ,mem_usb_tx_enable 
+4b7b c4010000 rtnbit0 2 
+4b7c 68008d37 fetch 1 ,mem_usb_tx_wait 
+4b7d c3810000 rtnbit1 2 
+4b7e 68008d38 fetch 1 ,mem_usb_tx_enable 
+4b7f 793ffe02 set0 2 ,pdata 
+4b80 60008d38 store 1 ,mem_usb_tx_enable 
+4b81 68008d52 fetch 1 ,mem_usb_ep2_data 
+4b82 207a0000 rtn blank 
+4b83 c0104b89 beq usb_ep2_ms ,usb_tx_ms_data 
+4b84 c010cba4 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+4b85 20202a8c branch assert 
+
+usb_tx_fifo_release:
+4b86 d8a00d54 arg mem_usb_mouse_data ,contw 
+4b87 df200006 arg 6 ,loopcnt 
+4b88 20207ec6 branch memset0 
+
+usb_tx_ms_data:
+4b89 68008d4c fetch 1 ,mem_usb_idle_flag 
+4b8a 68088d4b fetcht 1 ,mem_usb_get_protocol_flag 
+4b8b 98417e00 iand temp ,pdata 
+4b8c 203a4ba0 branch usb_tx_ms_data_normal_mode ,blank 
+4b8d 68088d4a fetcht 1 ,mem_usb_set_protocol_status 
+4b8e 9840fe00 iadd temp ,pdata 
+4b8f c000cb91 beq mac_boot_mode ,usb_tx_ms_data_mac_boot_mode 
+4b90 20204ba0 branch usb_tx_ms_data_normal_mode 
+
+usb_tx_ms_data_mac_boot_mode:
+4b91 700d5200 jam 0 ,mem_usb_ep2_data 
+
+usb_tx_ms_data_mac_boot_regroup:
+4b92 68008d55 fetch 1 ,mem_usb_mouse_data + 1 
+4b93 c0014ba1 beq r_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
+4b94 c001cba1 beq lr_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
+4b95 68008d55 fetch 1 ,mem_usb_mouse_data + 1 
+4b96 60008d54 store 1 ,mem_usb_mouse_data 
+4b97 68008d56 fetch 1 ,mem_usb_mouse_data + 2 
+4b98 e0a08000 istore 1 ,contw 
+4b99 68008d58 fetch 1 ,mem_usb_mouse_data + 4 
+4b9a e0a08000 istore 1 ,contw 
+4b9b 68008d5a fetch 1 ,mem_usb_mouse_data + 6 
+4b9c e0a08000 istore 1 ,contw 
+4b9d df200004 arg 4 ,loopcnt 
+4b9e d8c00d54 arg mem_usb_mouse_data ,contr 
+4b9f 20204b5e branch usb_tx_ep2 
+
+usb_tx_ms_data_normal_mode:
+4ba0 700d5200 jam 0 ,mem_usb_ep2_data 
+
+usb_tx_mac_boot_ms_regroup_r_or_lrkey:
+4ba1 df200008 arg 8 ,loopcnt 
+4ba2 d8c00d54 arg mem_usb_mouse_data ,contr 
+4ba3 20204b5e branch usb_tx_ep2 
+
+usb_tx_kb_multikey_data:
+4ba4 700d5200 jam 0 ,mem_usb_ep2_data 
+4ba5 df200003 arg 3 ,loopcnt 
+4ba6 d8c00d74 arg mem_usb_kb_multikey ,contr 
+4ba7 20204b5e branch usb_tx_ep2 
+
+usb_tx_kb_normal_data:
+4ba8 700d5100 jam 0 ,mem_usb_ep1_data 
+4ba9 df200008 arg 8 ,loopcnt 
+4baa d8c00d64 arg mem_usb_kb_data ,contr 
+4bab 20204b52 branch usb_tx_ep1 
+
+usb_inwake_state_tx_dispose:
+4bac 68008d36 fetch 1 ,mem_usb_state 
+4bad c001cbb0 beq usb_sleep ,usb_clear_tx_wait 
+4bae c0014bb2 beq usb_connected ,usb_mac_wakeup_trig 
+4baf 20600000 rtn 
+
+usb_clear_tx_wait:
+4bb0 700d3700 jam 0 ,mem_usb_tx_wait 
+4bb1 20600000 rtn 
+
+usb_mac_wakeup_trig:
+4bb2 68108a00 hfetch 1 ,core_usb_config 
+4bb3 79207e07 set1 7 ,pdata 
+4bb4 60108a00 hstore 1 ,core_usb_config 
+4bb5 700d4701 jam 1 ,mem_usb_mac_wakeup_trig 
+4bb6 20600000 rtn 
+
+usb_mac_wakeup_judge:
+4bb7 68008d36 fetch 1 ,mem_usb_state 
+4bb8 c1018000 rtneq usb_sleep 
+4bb9 c0014bbb beq usb_connected ,usb_mac_wakeup 
+4bba 20600000 rtn 
+
+usb_mac_wakeup:
+4bbb 68008d47 fetch 1 ,mem_usb_mac_wakeup_trig 
+4bbc 207a0000 rtn blank 
+4bbd 700d4601 jam 1 ,mem_usb_wakestate_onetime_flag 
+4bbe 20204bc2 branch usb_wakeup 
+
+usb_windows_wakeup:
+4bbf d8e0000f arg timer_wakeup ,queue 
+4bc0 20407f16 call timer_check 
+4bc1 247a0000 nrtn blank 
+
+usb_wakeup:
+4bc2 68108a00 hfetch 1 ,core_usb_config 
+4bc3 c4038000 rtnbit0 7 
+4bc4 708a00fc jam 0xfc ,core_usb_config 
+4bc5 20007530 nop 30000 
+4bc6 708a003c jam 0x3c ,core_usb_config 
+4bc7 20600000 rtn 
+
+hci_rx_h4:
+4bc8 44fec01f bpatch patch1f_5 ,mem_patch1f 
+4bc9 6800c1ce fetch 1 ,mem_hci_cmd 
+4bca 247a0000 nrtn blank 
+
+hci_rx_h4_1:
+4bcb 20404bce call hci_h4_parse_packet 
+4bcc 24544be6 ncall h4_rx_discard_packet ,user 
+4bcd 20600000 rtn 
+
+hci_h4_parse_packet:
+4bce 44ff401f bpatch patch1f_6 ,mem_patch1f 
+4bcf 18622200 copy contru ,rega 
+4bd0 d8400004 arg 4 ,temp 
+4bd1 e8608000 ifetch 1 ,contru 
+4bd2 c000cbd8 beq hci_h4_type_cmd ,hci_h4_parse_packet_wait_len 
+4bd3 18408401 increase 1 ,temp 
+4bd4 c0014bd8 beq hci_h4_type_acl ,hci_h4_parse_packet_wait_len 
+4bd5 18627e00 copy contru ,pdata 
+4bd6 60110058 hstore 2 ,core_uart_rrptr 
+4bd7 20600000 rtn 
+
+hci_h4_parse_packet_wait_len:
+4bd8 68110112 hfetch 2 ,core_uart_rxitems 
+4bd9 98467c00 isub temp ,null 
+4bda 24214bd8 nbranch hci_h4_parse_packet_wait_len ,positive 
+4bdb 78547c00 disable user 
+4bdc 1a220600 copy rega ,contru 
+4bdd 20404bee call h4_get_rx_payload_len 
+4bde 98408400 iadd temp ,temp 
+
+hci_h4_parse_packet_wait:
+4bdf 68110112 hfetch 2 ,core_uart_rxitems 
+4be0 98467c00 isub temp ,null 
+4be1 24214bdf nbranch hci_h4_parse_packet_wait ,positive 
+4be2 1a220600 copy rega ,contru 
+4be3 e8608000 ifetch 1 ,contru 
+4be4 c000cc3f beq hci_h4_type_cmd ,process_hci_cmd 
+4be5 20202a8c branch assert 
+
+h4_rx_discard_packet:
+4be6 44ffc01f bpatch patch1f_7 ,mem_patch1f 
+4be7 68110058 hfetch 2 ,core_uart_rrptr 
+4be8 98000600 iforce contru 
+4be9 20404bee call h4_get_rx_payload_len 
+4bea 98608600 iadd contru ,contru 
+4beb 18627e00 deposit contru 
+4bec 60110058 hstore 2 ,core_uart_rrptr 
+4bed 20600000 rtn 
+
+h4_get_rx_payload_len:
+4bee e8608000 ifetch 1 ,contru 
+4bef 18608602 increase 2 ,contru 
+4bf0 c0014bf3 beq hci_h4_type_acl ,h4_get_rx_payload_len_acl 
+4bf1 e8608000 ifetch 1 ,contru 
+4bf2 20600000 rtn 
+
+h4_get_rx_payload_len_acl:
+4bf3 e8610000 ifetch 2 ,contru 
+4bf4 20600000 rtn 
+
+h4_get_tx_ptr:
+4bf5 6811005e hfetch 2 ,core_uart_twptr 
+4bf6 194095fb increase -5 ,contwu 
+4bf7 99409400 iadd contwu ,contwu 
+4bf8 20600000 rtn 
+
+h4_send_packet_event:
+4bf9 d8400004 arg hci_h4_type_event ,temp 
+4bfa 20204bfc branch h4_send_packet 
+
+h4_send_packet_acl:
+4bfb d8400002 arg hci_h4_type_acl ,temp 
+
+h4_send_packet:
+4bfc 47004020 bpatchx patch20_0 ,mem_patch20 
+4bfd 1f20f201 increase 1 ,loopcnt 
+4bfe 6811005e hfetch 2 ,core_uart_twptr 
+4bff 1fe21400 copy pdata ,contwu 
+4c00 1f227e00 copy loopcnt ,pdata 
+4c01 e1488000 istoret 1 ,contwu 
+4c02 1fe0ffff increase -1 ,pdata 
+4c03 99409400 iadd contwu ,contwu 
+4c04 19427e00 copy contwu ,pdata 
+4c05 60010258 store 2 ,mem_hci_acl_tx_trigger_wptr 
+4c06 18427e00 copy temp ,pdata 
+4c07 c1010000 rtneq hci_h4_type_acl 
+4c08 68010258 fetch 2 ,mem_hci_acl_tx_trigger_wptr 
+4c09 6011005e hstore 2 ,core_uart_twptr 
+4c0a 20204c0b branch h4_send_acl_trigger_clear 
+
+h4_send_acl_trigger_clear:
+4c0b 58000000 setarg 0 
+4c0c 60010258 store 2 ,mem_hci_acl_tx_trigger_wptr 
+4c0d 20600000 rtn 
+
+hci_init:
+4c0e 20758000 rtn wake 
+4c0f 58004d28 setarg hci_idle_dispatch 
+4c10 600141f3 store 2 ,mem_cb_idle_process 
+4c11 580001a0 setarg uart_baud_115200 
+4c12 60014243 store uart_baud_len ,mem_baud 
+
+hci_lpm_init:
+4c13 58001800 setarg mem_h5rx_buf 
+4c14 60110054 hstore 2 ,core_uart_rsaddr 
+4c15 58001bff setarg mem_h5rx_buf_end 
+4c16 60110056 hstore 2 ,core_uart_readdr 
+4c17 58001c00 setarg mem_h5tx_buf 
+4c18 6011005a hstore 2 ,core_uart_tsaddr 
+4c19 20404c28 call hci_sel_init 
+
+hci_reinit:
+4c1a 70806200 jam 0x0 ,core_uart_ctrl 
+4c1b 58001c00 setarg mem_h5tx_buf 
+4c1c 6011005e hstore 2 ,core_uart_twptr 
+4c1d 60110060 hstore 2 ,core_uart_trptrp 
+4c1e 58001800 setarg mem_h5rx_buf 
+4c1f 60110058 hstore 2 ,core_uart_rrptr 
+4c20 60010244 store 2 ,mem_h5rx_rptr 
+
+hci_init_common:
+4c21 68110050 hfetch 2 ,core_clkoff 
+4c22 793ffe0f set0 clock_off_uart ,pdata 
+4c23 60110050 hstore 2 ,core_clkoff 
+4c24 204066ce call uart_set_baud_by_mem 
+4c25 70804301 jam uartclk_dpll ,core_uart_clksel 
+4c26 70806281 jam uart_ctrl_h4 ,core_uart_ctrl 
+4c27 20600000 rtn 
+
+hci_sel_init:
+4c28 58001fff setarg mem_h5tx_buf_end 
+4c29 6011005c hstore 2 ,core_uart_teaddr 
+4c2a 68108081 hfetch 1 ,core_gpio_sel1 
+4c2b 1fe1fe07 or_into 0x07 ,pdata 
+4c2c 60108081 hstore 1 ,core_gpio_sel1 
+4c2d 20600000 rtn 
+
+hci_rx_packet:
+4c2e 4700c020 bpatchx patch20_1 ,mem_patch20 
+4c2f 6810810c hfetch 1 ,core_uart_status 
+4c30 98002400 iforce regb 
+4c31 c301cc37 bbit0 uart_status_rx_fifo_empty ,hci_rx_packet_cont 
+4c32 68110112 hfetch 2 ,core_uart_rxitems 
+4c33 98002600 iforce regc 
+4c34 d840044f arg 0x44f ,temp 
+4c35 98467c00 isub temp ,null 
+4c36 24628000 nrtn zero 
+
+hci_rx_packet_cont:
+4c37 68110058 hfetch 2 ,core_uart_rrptr 
+4c38 98000600 iforce contru 
+4c39 20204bc8 branch hci_rx_h4 
+
+uart_send_byte:
+4c3a 6818810c hfetcht 1 ,core_uart_status 
+4c3b 284ffe06 isolate1 6 ,temp 
+4c3c 2020cc3a branch uart_send_byte ,true 
+4c3d 60108015 hstore 1 ,core_uart_txd 
+4c3e 20600000 rtn 
+
+process_hci_cmd:
+4c3f 47014020 bpatchx patch20_2 ,mem_patch20 
+4c40 6800c1ce fetch 1 ,mem_hci_cmd 
+4c41 203a4c44 branch process_hci_cmd_cont ,blank 
+4c42 78347c00 enable user 
+4c43 20600000 rtn 
+
+process_hci_cmd_cont:
+4c44 e8610000 ifetch 2 ,contru 
+4c45 98006000 iforce alarm 
+4c46 98000e00 iforce queue 
+4c47 e8608000 ifetch 1 ,contru 
+4c48 98000400 iforce temp 
+4c49 1e0b7e00 rshift2 alarm ,pdata 
+4c4a 1fecfe00 rshift8 pdata ,pdata 
+4c4b c01fcc4d beq hci_ogf_vendor_specific ,phci_grp_vendor_specific 
+4c4c 20600000 rtn 
+
+phci_grp_vendor_specific:
+4c4d 4701c020 bpatchx patch20_3 ,mem_patch20 
+4c4e 18e27e00 deposit queue 
+4c4f c0004cdc beq hci_vendor_cmd_reset ,hci_normal_reply 
+4c50 c000cc66 beq hci_vendor_cmd_chipid ,phci_grp_vendor_chipid 
+4c51 c0014c6b beq hci_vendor_cmd_baud ,phci_grp_vendor_baud 
+4c52 c001cc7a beq hci_vendor_cmd_patch ,phci_grp_vendor_patch 
+4c53 c0024cb3 beq hci_vendor_cmd_patch_done ,phci_grp_vendor_done 
+4c54 c002ccdc beq hci_vendor_cmd_echo ,hci_normal_reply 
+4c55 c0034cc6 beq hci_vendor_cmd_bdaddr ,phci_grp_vendor_bdaddr 
+4c56 c003cc5c beq hci_vendor_cmd_enter_lpm ,phci_grp_vendor_enter_lpm 
+4c57 c0084cc9 beq hci_vendor_cmd_mem ,phci_grp_vendor_mem 
+4c58 c008ccd1 beq hci_vendor_cmd_eep ,phci_grp_vendor_eep 
+4c59 c0094ca5 beq hci_vendor_cmd_patch_sec_init ,phci_grp_vendor_patch_sec_init 
+4c5a c009cc85 beq hci_vendor_cmd_patch_sec ,phci_grp_vendor_patch_sec 
+4c5b 20204cdc branch hci_normal_reply 
+
+phci_grp_vendor_enter_lpm:
+4c5c 20404cdc call hci_normal_reply 
+4c5d 20407f9e call wait_uarttx 
+4c5e 2040688c call gpio_pu_uart_tx 
+
+hci_enter_lpm:
+4c5f 204033d2 call app_put_lpm_wake_lock 
+4c60 204033d9 call app_l2cap_flow_control_enable 
+4c61 2020688f branch gpio_rx_config_input_with_pu 
+
+hci_exit_lpm:
+4c62 70424500 jam hci_rx_ready ,mem_hci_lt_rx_state 
+4c63 204033d0 call app_get_lpm_wake_lock 
+4c64 20404c13 call hci_lpm_init 
+4c65 202033db branch app_l2cap_flow_control_disable 
+
+phci_grp_vendor_chipid:
+4c66 20404cf2 call hci_get_cmd_complete_ptr 
+4c67 68110000 hfetch 2 ,core_chipid 
+4c68 e1410000 istore 2 ,contwu 
+4c69 18007206 force 6 ,loopcnt 
+4c6a 20204cdd branch hci_command_complete 
+
+phci_grp_vendor_baud:
+4c6b e8610000 ifetch 2 ,contru 
+4c6c 60014243 store 2 ,mem_baud 
+4c6d 60110052 hstore 2 ,core_uart_baud 
+4c6e 20600000 rtn 
+
+phci_grp_vendor_patch_common:
+4c6f e8608000 ifetch 1 ,contru 
+4c70 1fe20400 copy pdata ,temp 
+4c71 60108024 hstore 1 ,core_ucode_low 
+4c72 e8608000 ifetch 1 ,contru 
+4c73 98408400 iadd temp ,temp 
+4c74 79207e07 set1 7 ,pdata 
+4c75 60108023 hstore 1 ,core_ucode_ctrl 
+4c76 e8608000 ifetch 1 ,contru 
+4c77 98408400 iadd temp ,temp 
+4c78 1fe27200 copy pdata ,loopcnt 
+4c79 20600000 rtn 
+
+phci_grp_vendor_patch:
+4c7a c515ccc4 bmark1 mark_otp_encrypt ,phci_grp_vendor_patch_bad 
+4c7b 20404c6f call phci_grp_vendor_patch_common 
+
+phci_grp_vendor_patch_loop:
+4c7c e8608000 ifetch 1 ,contru 
+4c7d 60108025 hstore 1 ,core_ucode_data 
+4c7e 98408400 iadd temp ,temp 
+4c7f c2004c7c loop phci_grp_vendor_patch_loop 
+
+phci_grp_vendor_patch_check_sum:
+4c80 184104ff and temp ,0xff ,temp 
+4c81 e8608000 ifetch 1 ,contru 
+4c82 98467c00 isub temp ,null 
+4c83 2422ccc4 nbranch phci_grp_vendor_patch_bad ,zero 
+4c84 20204cdc branch hci_normal_reply 
+
+phci_grp_vendor_patch_sec:
+4c85 c595ccc4 bmark0 mark_otp_encrypt ,phci_grp_vendor_patch_bad 
+4c86 20404c6f call phci_grp_vendor_patch_common 
+4c87 60040a9a store 8 ,mem_pdatatemp 
+
+phci_grp_vendor_patch_sec_loop:
+4c88 20407422 call do_aes_cbc 
+4c89 df200010 arg 16 ,loopcnt 
+4c8a d8a00ac2 arg mem_temp_block0 ,contw 
+4c8b 20404ca0 call load_uart_sum_loop 
+4c8c 600c0aa2 storet 8 ,mem_temp 
+4c8d d8a00ad2 arg mem_temp_block2 ,contw 
+4c8e 20407497 call store_aes_result 
+4c8f da200ad2 arg mem_temp_block2 ,rega 
+4c90 da400ac2 arg mem_temp_block0 ,regb 
+4c91 d8a00ae2 arg mem_temp_block3 ,contw 
+4c92 20407352 call xor16 
+4c93 df200010 arg 16 ,loopcnt 
+4c94 d8c00ae2 arg mem_temp_block3 ,contr 
+4c95 20404c9c call load_ucode_only_loop 
+4c96 680c0aa2 fetcht 8 ,mem_temp 
+4c97 68040a9a fetch 8 ,mem_pdatatemp 
+4c98 1fe0fff0 increase -16 ,pdata 
+4c99 60040a9a store 8 ,mem_pdatatemp 
+4c9a 243a4c88 nbranch phci_grp_vendor_patch_sec_loop ,blank 
+4c9b 20204c80 branch phci_grp_vendor_patch_check_sum 
+
+load_ucode_only_loop:
+4c9c e8c08000 ifetch 1 ,contr 
+4c9d 60108025 hstore 1 ,core_ucode_data 
+4c9e c2004c9c loop load_ucode_only_loop 
+4c9f 20600000 rtn 
+
+load_uart_sum_loop:
+4ca0 e8608000 ifetch 1 ,contru 
+4ca1 e0a08000 istore 1 ,contw 
+4ca2 98408400 iadd temp ,temp 
+4ca3 c2004ca0 loop load_uart_sum_loop 
+4ca4 20600000 rtn 
+
+phci_grp_vendor_patch_sec_init:
+4ca5 c595ccc4 bmark0 mark_otp_encrypt ,phci_grp_vendor_patch_bad 
+4ca6 d8400000 arg 0 ,temp 
+4ca7 df200010 arg 16 ,loopcnt 
+4ca8 d8a00ac2 arg mem_temp_block0 ,contw 
+4ca9 20404ca0 call load_uart_sum_loop 
+4caa 68108085 hfetch 1 ,core_gpio_key2 
+4cab 1fe17efd and_into 0xfd ,pdata 
+4cac 60108085 hstore 1 ,core_gpio_key2 
+4cad d8c00ac2 arg mem_temp_block0 ,contr 
+4cae df200010 arg 16 ,loopcnt 
+4caf 20407478 call aes_load_data 
+4cb0 20407428 call aes_init 
+4cb1 20407491 call aes_clear_data 
+4cb2 20204c80 branch phci_grp_vendor_patch_check_sum 
+
+phci_grp_vendor_done:
+4cb3 df200020 arg 0x20 ,loopcnt 
+4cb4 d8a04000 arg mem_patch00 ,contw 
+4cb5 d8400000 arg 0 ,temp 
+
+phci_grp_vendor_done_loop:
+4cb6 e8608000 ifetch 1 ,contru 
+4cb7 e0a08000 istore 1 ,contw 
+4cb8 98408400 iadd temp ,temp 
+4cb9 c2004cb6 loop phci_grp_vendor_done_loop 
+4cba 184104ff and temp ,0xff ,temp 
+4cbb e8608000 ifetch 1 ,contru 
+4cbc 98467c00 isub temp ,null 
+4cbd 2422ccc4 nbranch phci_grp_vendor_patch_bad ,zero 
+4cbe 70802300 jam 0 ,core_ucode_ctrl 
+4cbf 20404cdc call hci_normal_reply 
+4cc0 20404be6 call h4_rx_discard_packet 
+4cc1 204064a3 call clear_key_buf 
+4cc2 20407f9e call wait_uarttx 
+4cc3 20202001 branch soft_reset 
+
+phci_grp_vendor_patch_bad:
+4cc4 70802300 jam 0 ,core_ucode_ctrl 
+4cc5 20202000 branch start 
+
+phci_grp_vendor_bdaddr:
+4cc6 e8630000 ifetch 6 ,contru 
+4cc7 600340a0 store 6 ,mem_lap 
+4cc8 20204cdc branch hci_normal_reply 
+
+phci_grp_vendor_mem:
+4cc9 e8608000 ifetch 1 ,contru 
+4cca 6000825a store 1 ,mem_hci_curr_len 
+4ccb 1fe27200 copy pdata ,loopcnt 
+4ccc e8610000 ifetch 2 ,contru 
+4ccd 6001025b store 2 ,mem_hci_curr_target 
+4cce 1fe20a00 copy pdata ,contw 
+4ccf 204066fd call uart_copy_rx_bytes 
+4cd0 20204cdc branch hci_normal_reply 
+
+phci_grp_vendor_eep:
+4cd1 e8608000 ifetch 1 ,contru 
+4cd2 6000825a store 1 ,mem_hci_curr_len 
+4cd3 1fe27200 copy pdata ,loopcnt 
+4cd4 e8610000 ifetch 2 ,contru 
+4cd5 6001025b store 2 ,mem_hci_curr_target 
+4cd6 d8a01000 arg mem_l2cap_rxbuff1 ,contw 
+4cd7 204066fd call uart_copy_rx_bytes 
+4cd8 6808825a fetcht 1 ,mem_hci_curr_len 
+4cd9 da201000 arg mem_l2cap_rxbuff1 ,rega 
+4cda 6801025b fetch 2 ,mem_hci_curr_target 
+4cdb 20206608 branch iicd_write_ota_data 
+
+hci_normal_reply:
+4cdc 18007204 force 4 ,loopcnt 
+
+hci_command_complete:
+4cdd 20404cf4 call hci_get_payload_ptr 
+4cde 18007e01 force 0x1 ,pdata 
+4cdf e1408000 istore 1 ,contwu 
+4ce0 1e027e00 deposit alarm 
+4ce1 e1418000 istore 3 ,contwu 
+4ce2 18000e0e force hci_event_command_complete ,queue 
+
+hci_send_event:
+4ce3 47024020 bpatchx patch20_4 ,mem_patch20 
+4ce4 20404cf6 call hci_get_packet_ptr 
+4ce5 18e27e00 deposit queue 
+4ce6 e1408000 istore 1 ,contwu 
+4ce7 1f227e00 deposit loopcnt 
+4ce8 e1408000 istore 1 ,contwu 
+
+hci_send_event_raw:
+4ce9 18000e05 force 5 ,queue 
+4cea 1f20f202 increase 2 ,loopcnt 
+
+hci_send_packet:
+4ceb 20204bf9 branch h4_send_packet_event 
+
+hci_send_commu_ready_event:
+4cec 18000eff force hci_event_vendor_specific ,queue 
+4ced 20404cf4 call hci_get_payload_ptr 
+4cee 58000001 setarg hci_vendor_event_commu_ready 
+4cef e1408000 istore 1 ,contwu 
+4cf0 18007201 force 1 ,loopcnt 
+4cf1 20204ce3 branch hci_send_event 
+
+hci_get_cmd_complete_ptr:
+4cf2 1800140c force 12 ,contwu 
+4cf3 20204cf7 branch hci_get_tx_ptr 
+
+hci_get_payload_ptr:
+4cf4 18001408 force 8 ,contwu 
+4cf5 20204cf7 branch hci_get_tx_ptr 
+
+hci_get_packet_ptr:
+4cf6 18001406 force 6 ,contwu 
+
+hci_get_tx_ptr:
+4cf7 20204bf5 branch h4_get_tx_ptr 
+
+calc_tx_crc16:
+4cf8 7827fc00 pulse crc16 
+4cf9 7824fc00 enable enable_crc 
+
+crcloop:
+4cfa e9408000 ifetch 1 ,contwu 
+4cfb 08008008 inject bucket ,8 
+4cfc c2004cfa loop crcloop 
+4cfd 78247c00 enable enable_parity 
+4cfe 08008010 inject bucket ,16 
+4cff 78447c00 disable enable_parity 
+4d00 7844fc00 disable enable_crc 
+4d01 7847fc00 disable crc16 
+4d02 1ff0fe00 byteswap pdata ,pdata 
+4d03 20600000 rtn 
+
+cmd_exit:
+4d04 7041ce00 jam 0 ,mem_hci_cmd 
+4d05 20600000 rtn 
+
+cmd_check_plap:
+4d06 680341d0 fetch 6 ,mem_hci_plap 
+4d07 680b0040 fetcht 6 ,mem_plap 
+4d08 98467c00 isub temp ,null 
+4d09 20600000 rtn 
+
+cmd_pair:
+4d0a 6800804b fetch 1 ,mem_op 
+4d0b c2814d0f bbit1 op_inrand_req ,cmd_pair_passive 
+4d0c 204062ef call tid_initiate 
+4d0d 70007c08 jam lmp_in_rand ,mem_lmo_opcode2 
+4d0e 20204d04 branch cmd_exit 
+
+cmd_pair_passive:
+4d0f 793ffe02 set0 op_inrand_req ,pdata 
+4d10 6000804b store 1 ,mem_op 
+4d11 20406001 call lmp_accept_inrand 
+4d12 58000000 setarg 0 
+4d13 7934fe01 setflag master ,smap_lmptid ,pdata 
+4d14 6000807f store 1 ,mem_lmo_tid2 
+4d15 20204d04 branch cmd_exit 
+4d16 20600000 rtn 
+
+cmd_in_sniff:
+4d17 70007c17 jam lmp_sniff_req ,mem_lmo_opcode2 
+4d18 d8a004d9 arg mem_sniff_payload ,contw 
+4d19 58000000 setarg 0 
+4d1a 2d0ffe1b isolate1 27 ,clke_bt 
+4d1b 7920fe01 setflag true ,1 ,pdata 
+4d1c e0a08000 istore 1 ,contw 
+4d1d 58000000 setarg 0 
+4d1e e0a10000 istore 2 ,contw 
+4d1f 680141e3 fetch 2 ,mem_sniff_param_interval 
+4d20 e0a10000 istore 2 ,contw 
+4d21 6800c1e5 fetch 1 ,mem_sniff_param_attempt 
+4d22 e0a10000 istore 2 ,contw 
+4d23 6800c1e7 fetch 1 ,mem_sniff_param_timeout 
+4d24 e0a10000 istore 2 ,contw 
+4d25 20204d04 branch cmd_exit 
+
+cmd_exit_sniff:
+4d26 70007c18 jam lmp_unsniff_req ,mem_lmo_opcode2 
+4d27 20204d04 branch cmd_exit 
+
+hci_idle_dispatch:
+4d28 20406899 call gpio_check_uart_state 
+4d29 20608000 rtn true 
+4d2a d8400007 arg uart_wakeup_rx ,temp 
+4d2b 2040681d call gpio_get_bit 
+4d2c 2420cd2f nbranch uart_wake_up ,true 
+4d2d 70424501 jam hci_rx_wake ,mem_hci_lt_rx_state 
+4d2e 20600000 rtn 
+
+uart_wake_up:
+4d2f 6800c245 fetch 1 ,mem_hci_lt_rx_state 
+4d30 c1808000 rtnne hci_rx_wake 
+4d31 20404c62 call hci_exit_lpm 
+4d32 20204cec branch hci_send_commu_ready_event 
+
+hid_rx_process:
+4d33 4702c020 bpatchx patch20_5 ,mem_patch20 
+4d34 68010264 fetch 2 ,mem_l2cap_payload_ptr 
+4d35 1fe20c00 copy pdata ,contr 
+4d36 e8c08000 ifetch 1 ,contr 
+4d37 1fe1040f and pdata ,0x0f ,temp 
+4d38 1ff1fe00 rshift4 pdata ,pdata 
+4d39 c004cd53 beq hid_type_set_idle ,hid_rx_process_handshake 
+4d3a c003cd53 beq hid_type_set_protocol ,hid_rx_process_handshake 
+4d3b c0054d5f beq hid_type_data ,hid_rx_process_data 
+4d3c c002cd4b beq hid_type_set_report ,hid_rx_process_set_report 
+4d3d c000cd3f beq hid_type_control ,hid_rx_process_hid_control 
+4d3e 20600000 rtn 
+
+hid_rx_process_hid_control:
+4d3f 18427e00 copy temp ,pdata 
+4d40 c002cd43 beq hid_control_p_virtualcableunplug ,hid_rx_process_virtual_cable_unplug 
+4d41 c001cd4a beq hid_control_p_suspend ,hid_rx_process_suspend 
+4d42 20600000 rtn 
+
+hid_rx_process_virtual_cable_unplug:
+4d43 700a9927 jam bt_evt_virtual_cable_unplug ,mem_fifo_temp 
+4d44 20407d86 call ui_ipc_send_event 
+4d45 6800c092 fetch 1 ,mem_device_option 
+4d46 c4030000 rtnbit0 dvc_op_mouse 
+4d47 18427e00 copy temp ,pdata 
+4d48 c002c38e beq hid_control_p_virtualcableunplug ,mouse_irtual_cable_unplug 
+4d49 20600000 rtn 
+
+hid_rx_process_suspend:
+4d4a 20600000 rtn 
+
+hid_rx_process_set_report:
+4d4b 20404d5f call hid_rx_process_data 
+4d4c da200001 arg 0x01 ,rega 
+4d4d 20404d63 call hid_malloc_tx_buff 
+4d4e 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
+4d4f e0a10000 istore 2 ,contw 
+4d50 58000000 setarg 0x00 
+4d51 e0a08000 istore 1 ,contw 
+4d52 20600000 rtn 
+
+hid_rx_process_handshake:
+4d53 da200001 arg 1 ,rega 
+4d54 20404d63 call hid_malloc_tx_buff 
+4d55 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
+4d56 e0a10000 istore 2 ,contw 
+4d57 58000000 setarg 0 
+4d58 e0a08000 istore 1 ,contw 
+4d59 700a8e01 jam 1 ,mem_ui_data_txbuff_length 
+4d5a 6800c252 fetch 1 ,mem_hid_control_state 
+4d5b 79207e06 set1 l2cap_channel_hid_handshake_done 
+4d5c 6000c252 store 1 ,mem_hid_control_state 
+4d5d 700a9912 jam bt_evt_hid_handshake ,mem_fifo_temp 
+4d5e 20207d86 branch ui_ipc_send_event 
+
+hid_rx_process_data:
+4d5f e8c08000 ifetch 1 ,contr 
+4d60 c000cd62 beq hid_report_id_kb ,hid_rx_process_data_hid_kb 
+4d61 20600000 rtn 
+
+hid_rx_process_data_hid_kb:
+4d62 20600000 rtn 
+
+hid_malloc_tx_buff:
+4d63 20405240 call l2cap_malloc 
+4d64 1a220400 copy rega ,temp 
+4d65 60088a8e storet 1 ,mem_ui_data_txbuff_length 
+4d66 1fe20a00 copy pdata ,contw 
+4d67 1a227e00 copy rega ,pdata 
+4d68 e0a10000 istore 2 ,contw 
+4d69 20600000 rtn 
+
+l2cap_init:
+4d6a 2035cd6f branch l2cap_init_wake ,wake 
+
+l2cap_init_work:
+4d6b 58004365 setarg mem_l2cap_xmem_end 
+4d6c d8a04246 arg mem_l2cap_xmem_start ,contw 
+4d6d 98a67200 isub contw ,loopcnt 
+4d6e 20407ed4 call clear_mem 
+
+l2cap_init_wake:
+4d6f 47034020 bpatchx patch20_6 ,mem_patch20 
+4d70 58000551 setarg mem_sdp_mem_end 
+4d71 d8a00511 arg mem_sdp_mem_start ,contw 
+4d72 98a67200 isub contw ,loopcnt 
+4d73 20407ed4 call clear_mem 
+4d74 580002c9 setarg mem_l2cap_mem_end 
+4d75 d8a0025d arg mem_l2cap_mem_start ,contw 
+4d76 98a67200 isub contw ,loopcnt 
+4d77 20407ed4 call clear_mem 
+4d78 20205318 branch l2cap_lpm_load_txbuf 
+
+process_rx_l2cap_pkt:
+4d79 4703c020 bpatchx patch20_7 ,mem_patch20 
+4d7a 18c20400 copy contr ,temp 
+4d7b 18420c00 copy temp ,contr 
+4d7c e8c10000 ifetch 2 ,contr 
+4d7d 60010266 store 2 ,mem_l2cap_rx_pkt_length 
+4d7e e8c10000 ifetch 2 ,contr 
+4d7f 60010268 store 2 ,mem_l2cap_rx_cid 
+4d80 18c27e00 deposit contr 
+4d81 60010264 store 2 ,mem_l2cap_payload_ptr 
+4d82 6800c681 fetch 1 ,memui_reconnect_mode 
+4d83 c0004d85 beq no_reconnection ,l2cap_rx_multiplexing 
+4d84 202050ef branch ml2cap_rx_multiplexing 
+
+l2cap_rx_multiplexing:
+4d85 68010266 fetch 2 ,mem_l2cap_rx_pkt_length 
+4d86 203a4dfc branch l2cap_rx_reset_state ,blank 
+4d87 47044021 bpatchx patch21_0 ,mem_patch21 
+4d88 68008268 fetch 1 ,mem_l2cap_rx_cid 
+4d89 c000cd9d beq l2cap_signal_channel ,l2cap_call_proc_signal 
+
+l2cap_rx_multiplexing0:
+4d8a c0284de0 beq l2cap_sdp_channel ,l2cap_call_proc_sdp 
+4d8b c028cdf5 beq l2cap_rfcomm_channel ,l2cap_call_proc_rfcomm 
+4d8c c0294df3 beq l2cap_hid_control_channel ,l2cap_call_proc_hid 
+4d8d c029cdf3 beq l2cap_hid_interrupt_channel ,l2cap_call_proc_hid 
+4d8e 20204dfc branch l2cap_rx_reset_state 
+
+l2cap_check_map:
+4d8f 4704c021 bpatchx patch21_1 ,mem_patch21 
+4d90 2040527e call l2cap_malloc_get_full_map 
+4d91 6800c256 fetch 1 ,mem_used_map 
+4d92 c0004d9b beq 0 ,set_pdata_0 
+4d93 c000cd9b beq 1 ,set_pdata_0 
+4d94 c0014d9b beq 2 ,set_pdata_0 
+4d95 c001cd9b beq 3 ,set_pdata_0 
+4d96 c040cd9b beq 0x81 ,set_pdata_0 
+4d97 c0604d9b beq 0xc0 ,set_pdata_0 
+4d98 c0404d9b beq 0x80 ,set_pdata_0 
+4d99 c0204d9b beq 0x40 ,set_pdata_0 
+4d9a 20600000 rtn 
+
+set_pdata_0:
+4d9b 58000000 setarg 0 
+4d9c 20600000 rtn 
+
+l2cap_call_proc_signal:
+4d9d 20404d8f call l2cap_check_map 
+4d9e 247a0000 nrtn blank 
+
+l2cap_call_proc_signal0:
+4d9f 204052b8 call l2cap_malloc_signal_channel 
+4da0 20404e01 call l2cap_process_signal_pkt 
+4da1 6809026f fetcht 2 ,mem_l2cap_signal_tx_length 
+4da2 203a4dfb branch l2cap_call_proc_no_reply ,blank 
+4da3 204052c1 call l2cap_get_signal_tx_buff 
+4da4 6801026f fetch 2 ,mem_l2cap_signal_tx_length 
+4da5 e0a10000 istore 2 ,contw 
+4da6 18007e01 force l2cap_signal_channel ,pdata 
+4da7 e0a10000 istore 2 ,contw 
+4da8 20204dfc branch l2cap_rx_reset_state 
+
+l2cap_call_proc_sigal_pending:
+4da9 6800c364 fetch 1 ,mem_l2cap_pending_item 
+4daa 207a0000 rtn blank 
+4dab 1fe22200 copy pdata ,rega 
+4dac 47054021 bpatchx patch21_2 ,mem_patch21 
+4dad 680202d5 fetch 4 ,mem_l2cap_sdpres_delay_time 
+4dae d8400100 arg 0x100 ,temp 
+4daf 98408400 iadd temp ,temp 
+4db0 1c427e00 copy clkn_bt ,pdata 
+4db1 98467c00 isub temp ,null 
+4db2 24610000 nrtn positive 
+4db3 70436400 jam 0 ,mem_l2cap_pending_item 
+4db4 1a227e00 copy rega ,pdata 
+4db5 c0284db7 beq l2cap_sdp_channel ,l2cap_sdp_conn_succ 
+4db6 20202a8c branch assert 
+
+l2cap_sdp_conn_succ:
+4db7 d9000000 arg 0 ,debug 
+4db8 204052b8 call l2cap_malloc_signal_channel 
+4db9 20404e7a call restore_l2cap_req_param 
+4dba 204052c3 call l2cap_get_signal_tx_payload 
+4dbb 20407ea8 call save_cont_pointers 
+4dbc 20404ead call send_connection_sdp_res 
+4dbd 204052c1 call l2cap_get_signal_tx_buff 
+4dbe 5800000c setarg 0x000c 
+4dbf e0a10000 istore 2 ,contw 
+4dc0 18007e01 force l2cap_signal_channel ,pdata 
+4dc1 e0a10000 istore 2 ,contw 
+4dc2 20204dfc branch l2cap_rx_reset_state 
+
+l2cap_reset_sdp_map:
+4dc3 4705c021 bpatchx patch21_3 ,mem_patch21 
+4dc4 68010275 fetch 2 ,mem_sdp_tx_pkt_length 
+4dc5 1fe0fe04 increase 4 ,pdata 
+4dc6 1ff1fe00 rshift4 pdata ,pdata 
+4dc7 1fe97e00 rshift3 pdata ,pdata 
+4dc8 1fe08401 add pdata ,1 ,temp 
+4dc9 d8c04260 arg mem_tx_fifo3 ,contr 
+4dca e8c18000 ifetch 3 ,contr 
+4dcb 207a0000 rtn blank 
+4dcc 60018ac2 store 3 ,mem_tx_fifo_map_temp 
+4dcd 68008ac2 fetch 1 ,mem_tx_fifo_map_temp 
+4dce 1fe22200 copy pdata ,rega 
+4dcf 20404dd3 call check_l2cap_map 
+4dd0 1a427e00 copy regb ,pdata 
+4dd1 6000c260 store 1 ,mem_tx_fifo3 
+4dd2 20600000 rtn 
+
+check_l2cap_map:
+4dd3 d8e00000 arg 0 ,queue 
+4dd4 da400000 arg 0 ,regb 
+
+check_l2cap_map_loop:
+4dd5 18e67c07 sub queue ,7 ,null 
+4dd6 24610000 nrtn positive 
+4dd7 aa2fffff qisolate1 rega 
+4dd8 2020cdda branch check_l2cap_map_used ,true 
+4dd9 20204dde branch check_l2cap_map_used2 
+
+check_l2cap_map_used:
+4dda 18427e00 copy temp ,pdata 
+4ddb 203a4dde branch check_l2cap_map_used2 ,blank 
+4ddc f9202400 qset1 regb 
+4ddd 184085ff increase -1 ,temp 
+
+check_l2cap_map_used2:
+4dde 18e08e01 increase 1 ,queue 
+4ddf 20204dd5 branch check_l2cap_map_loop 
+
+l2cap_call_proc_sdp:
+4de0 20405274 call l2cap_malloc_is_fifo_empty 
+4de1 247a0000 nrtn blank 
+4de2 20404d8f call l2cap_check_map 
+4de3 247a0000 nrtn blank 
+4de4 204052c5 call l2cap_malloc_sdp_channel 
+4de5 20406e11 call sdp_process 
+4de6 20404dc3 call l2cap_reset_sdp_map 
+4de7 20204dec branch l2cap_call_proc_sdp_common 
+
+ml2cap_call_proc_sdp:
+4de8 20405274 call l2cap_malloc_is_fifo_empty 
+4de9 247a0000 nrtn blank 
+4dea 204052c5 call l2cap_malloc_sdp_channel 
+4deb 20406e11 call sdp_process 
+
+l2cap_call_proc_sdp_common:
+4dec 204052ce call l2cap_get_sdp_tx_buff 
+4ded 68010275 fetch 2 ,mem_sdp_tx_pkt_length 
+4dee 203a4dfb branch l2cap_call_proc_no_reply ,blank 
+4def e0a10000 istore 2 ,contw 
+4df0 68014248 fetch 2 ,mem_sdp_remote_cid 
+4df1 e0a10000 istore 2 ,contw 
+4df2 20204dfc branch l2cap_rx_reset_state 
+
+l2cap_call_proc_hid:
+4df3 20404d33 call hid_rx_process 
+4df4 20204dfc branch l2cap_rx_reset_state 
+
+l2cap_call_proc_rfcomm:
+4df5 47064021 bpatchx patch21_4 ,mem_patch21 
+4df6 70028400 jam rfcomm_malloc_succeed ,mem_rfcomm_malloc_fail_flag 
+4df7 20406a8a call rfcomm_rx_process 
+4df8 68008284 fetch 1 ,mem_rfcomm_malloc_fail_flag 
+4df9 c1008000 rtneq rfcomm_malloc_fail 
+4dfa 20204dfc branch l2cap_rx_reset_state 
+
+l2cap_call_proc_no_reply:
+4dfb 20405264 call l2cap_malloc_discard 
+
+l2cap_rx_reset_state:
+4dfc 58000000 setarg 0 
+4dfd 60010266 store 2 ,mem_l2cap_rx_pkt_length 
+4dfe 60010268 store 2 ,mem_l2cap_rx_cid 
+4dff 70026a01 jam l2cap_rx_done ,mem_l2cap_rx_done 
+4e00 20600000 rtn 
+
+l2cap_process_signal_pkt:
+4e01 4706c021 bpatchx patch21_5 ,mem_patch21 
+4e02 204052c3 call l2cap_get_signal_tx_payload 
+4e03 18002400 force 0 ,regb 
+4e04 68010266 fetch 2 ,mem_l2cap_rx_pkt_length 
+4e05 1fe22600 copy pdata ,regc 
+4e06 68010264 fetch 2 ,mem_l2cap_payload_ptr 
+4e07 98000c00 iforce contr 
+
+l2cap_process_signal_pkt_loop:
+4e08 20404e10 call l2cap_process_one_signal 
+4e09 1a627e00 deposit regc 
+4e0a 1a60a7fc increase -4 ,regc 
+4e0b 1fe0fffc increase -4 ,pdata 
+4e0c 243a4e08 nbranch l2cap_process_signal_pkt_loop ,blank 
+4e0d 1a427e00 copy regb ,pdata 
+4e0e 6001026f store 2 ,mem_l2cap_signal_tx_length 
+4e0f 20600000 rtn 
+
+l2cap_process_one_signal:
+4e10 47074021 bpatchx patch21_6 ,mem_patch21 
+4e11 e8c08000 ifetch 1 ,contr 
+4e12 c000ce49 beq signal_cmd_reject ,l2cap_proc_signal_cmd_reject 
+4e13 c0014e51 beq signal_connect_req ,l2cap_proc_signal_connect_req 
+4e14 c001ced5 beq signal_connect_rsp ,l2cap_proc_signal_connect_rsp 
+4e15 c0024f05 beq signal_config_req ,l2cap_proc_signal_config_req 
+4e16 c002cfa2 beq signal_config_rsp ,l2cap_proc_signal_config_rsp 
+4e17 c0034fcb beq signal_disconnect_req ,l2cap_proc_signal_disconnect_req 
+4e18 c003d01b beq signal_disconnect_rsp ,l2cap_proc_signal_disconnect_rsp 
+4e19 c0045050 beq signal_echo_req ,l2cap_proc_signal_echo_req 
+4e1a c004d060 beq signal_echo_rsp ,l2cap_proc_signal_echo_rsp 
+4e1b c0054e1f beq signal_info_req ,l2cap_proc_signal_info_req 
+4e1c c005d061 beq signal_info_rsp ,l2cap_proc_signal_info_rsp 
+4e1d 20405062 call l2cap_reject_command 
+
+l2cap_process_one_signal_rtn:
+4e1e 20600000 rtn 
+
+l2cap_proc_signal_info_req:
+4e1f e8c08000 ifetch 1 ,contr 
+4e20 1fe20e00 copy pdata ,queue 
+4e21 e8c10000 ifetch 2 ,contr 
+4e22 1fe22200 copy pdata ,rega 
+4e23 1a627e00 copy regc ,pdata 
+4e24 9a262600 isub rega ,regc 
+4e25 5800000b setarg signal_info_rsp 
+4e26 e0a08000 istore 1 ,contw 
+4e27 18e27e00 copy queue ,pdata 
+4e28 e0a08000 istore 1 ,contw 
+4e29 e8c10000 ifetch 2 ,contr 
+
+l2cap_proc_signal_info_req_reply:
+4e2a c0014e2d beq l2cap_sig_ext_featrue ,l2cap_proc_signal_info_req_ext 
+4e2b c001ce33 beq l2cap_sig_fix_featrue ,l2cap_proc_signal_info_req_fix 
+4e2c 20600000 rtn 
+
+l2cap_proc_signal_info_req_ext:
+4e2d 58020008 setarg 0x020008 
+4e2e e0a30000 istore 6 ,contw 
+4e2f 58000280 setarg 0x0280 
+4e30 e0a20000 istore 4 ,contw 
+4e31 18007e0c force 12 ,pdata 
+4e32 20204e38 branch l2cap_proc_signal_info_req_common 
+
+l2cap_proc_signal_info_req_fix:
+4e33 5803000c setarg 0x3000c 
+4e34 e0a30000 istore 6 ,contw 
+4e35 58000006 setarg 0x0006 
+4e36 e0a40000 istore 8 ,contw 
+4e37 18007e10 force 16 ,pdata 
+
+l2cap_proc_signal_info_req_common:
+4e38 9a40a400 iadd regb ,regb 
+4e39 20204e1e branch l2cap_process_one_signal_rtn 
+
+ml2cap_proc_signal_info_req:
+4e3a e8c08000 ifetch 1 ,contr 
+4e3b 1fe20e00 copy pdata ,queue 
+4e3c e8c10000 ifetch 2 ,contr 
+4e3d 1fe22200 copy pdata ,rega 
+4e3e e8c10000 ifetch 2 ,contr 
+4e3f 60010aa2 store 2 ,mem_temp 
+4e40 1a627e00 copy regc ,pdata 
+4e41 9a262600 isub rega ,regc 
+4e42 204052c3 call l2cap_get_signal_tx_payload 
+4e43 5800000b setarg signal_info_rsp 
+4e44 e0a08000 istore 1 ,contw 
+4e45 18e27e00 copy queue ,pdata 
+4e46 e0a08000 istore 1 ,contw 
+4e47 68010aa2 fetch 2 ,mem_temp 
+4e48 20204e2a branch l2cap_proc_signal_info_req_reply 
+
+l2cap_proc_signal_cmd_reject:
+4e49 e8c08000 ifetch 1 ,contr 
+4e4a 1fe20e00 copy pdata ,queue 
+4e4b e8c10000 ifetch 2 ,contr 
+4e4c 1fe22200 copy pdata ,rega 
+4e4d 98c08c00 iadd contr ,contr 
+4e4e 1a627e00 copy regc ,pdata 
+4e4f 9a262600 isub rega ,regc 
+
+l2cap_proc_signal_cmd_reject_rtn:
+4e50 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_connect_req:
+4e51 20407ea8 call save_cont_pointers 
+4e52 20407ead call load_cont_pointers 
+4e53 d9000000 arg 0 ,debug 
+4e54 e8c08000 ifetch 1 ,contr 
+4e55 1fe20e00 copy pdata ,queue 
+4e56 e8c10000 ifetch 2 ,contr 
+4e57 1fe22200 copy pdata ,rega 
+4e58 e8c10000 ifetch 2 ,contr 
+4e59 1fe20400 copy pdata ,temp 
+4e5a e8c10000 ifetch 2 ,contr 
+4e5b 1fe21600 copy pdata ,timeup 
+4e5c 4707c021 bpatchx patch21_7 ,mem_patch21 
+4e5d 18427e00 copy temp ,pdata 
+4e5e c000ce64 beq psm_sdp ,l2cap_proc_signal_connect_req_sdp 
+4e5f c001ce86 beq psm_rfcomm ,l2cap_proc_signal_connect_req_rfcomm 
+4e60 c008ce92 beq psm_hid_control ,l2cap_proc_signal_connect_req_hid_ctrl 
+4e61 c009ce9d beq psm_hid_interrupt ,l2cap_proc_signal_connect_req_hid_int 
+4e62 20405062 call l2cap_reject_command 
+4e63 20204ed4 branch l2cap_proc_signal_connect_req_rtn 
+
+l2cap_proc_signal_connect_req_sdp:
+4e64 20407ea8 call save_cont_pointers 
+4e65 d8400050 arg l2cap_sdp_channel ,temp 
+4e66 68014248 fetch 2 ,mem_sdp_remote_cid 
+4e67 243a4ece nbranch already_connected ,blank 
+4e68 19627e00 copy timeup ,pdata 
+4e69 60014248 store 2 ,mem_sdp_remote_cid 
+4e6a 1c427e00 copy clkn_bt ,pdata 
+4e6b 600202d5 store 4 ,mem_l2cap_sdpres_delay_time 
+4e6c 20404e6e call store_l2cap_req_param 
+4e6d 20204ea9 branch send_connection_pending 
+
+store_l2cap_req_param:
+4e6e 600902d3 storet 2 ,mem_psm 
+4e6f 19627e00 deposit timeup 
+4e70 600102c9 store 2 ,mem_scid 
+4e71 1a227e00 deposit rega 
+4e72 600102cb store 2 ,mem_cmd_length 
+4e73 1a427e00 deposit regb 
+4e74 600102cd store 2 ,mem_tt2 
+4e75 1a627e00 deposit regc 
+4e76 600102cf store 2 ,mem_tt3 
+4e77 18e27e00 deposit queue 
+4e78 600102d1 store 2 ,mem_id 
+4e79 20600000 rtn 
+
+restore_l2cap_req_param:
+4e7a 680902d3 fetcht 2 ,mem_psm 
+4e7b 680102c9 fetch 2 ,mem_scid 
+4e7c 1fe21600 copy pdata ,timeup 
+4e7d 680102cb fetch 2 ,mem_cmd_length 
+4e7e 1fe22200 copy pdata ,rega 
+4e7f 680102cd fetch 2 ,mem_tt2 
+4e80 1fe22400 copy pdata ,regb 
+4e81 680102cf fetch 2 ,mem_tt3 
+4e82 1fe22600 copy pdata ,regc 
+4e83 680102d1 fetch 2 ,mem_id 
+4e84 1fe20e00 copy pdata ,queue 
+4e85 20600000 rtn 
+
+l2cap_proc_signal_connect_req_rfcomm:
+4e86 20407ea8 call save_cont_pointers 
+4e87 58000051 setarg l2cap_rfcomm_channel 
+4e88 d8400051 arg l2cap_rfcomm_channel ,temp 
+4e89 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+4e8a 243a4ece nbranch already_connected ,blank 
+4e8b 19627e00 copy timeup ,pdata 
+4e8c 6001424a store 2 ,mem_rfcomm_remote_cid 
+4e8d 6800c251 fetch 1 ,mem_rfcomm_state 
+4e8e 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
+4e8f 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
+4e90 6000c251 store 1 ,mem_rfcomm_state 
+4e91 20204eb1 branch send_connection_res 
+
+l2cap_proc_signal_connect_req_hid_ctrl:
+4e92 20407ea8 call save_cont_pointers 
+4e93 d8400052 arg l2cap_hid_control_channel ,temp 
+4e94 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
+4e95 243a4ece nbranch already_connected ,blank 
+4e96 19627e00 copy timeup ,pdata 
+4e97 6001424c store 2 ,mem_hid_ctrl_remote_cid 
+4e98 6800c252 fetch 1 ,mem_hid_control_state 
+4e99 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
+4e9a 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
+4e9b 6000c252 store 1 ,mem_hid_control_state 
+4e9c 20204eb1 branch send_connection_res 
+
+l2cap_proc_signal_connect_req_hid_int:
+4e9d 20407ea8 call save_cont_pointers 
+4e9e 1b427e00 deposit clke 
+4e9f d8400053 arg l2cap_hid_interrupt_channel ,temp 
+4ea0 6801424e fetch 2 ,mem_hid_int_remote_cid 
+4ea1 243a4ece nbranch already_connected ,blank 
+4ea2 19627e00 copy timeup ,pdata 
+4ea3 6001424e store 2 ,mem_hid_int_remote_cid 
+4ea4 6800c253 fetch 1 ,mem_hid_interrupt_state 
+4ea5 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
+4ea6 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
+4ea7 6000c253 store 1 ,mem_hid_interrupt_state 
+4ea8 20204eb1 branch send_connection_res 
+
+send_connection_pending:
+4ea9 58000001 setarg l2cap_connect_pending 
+4eaa 6001027d store 2 ,meml2cap_t1 
+4eab 70436450 jam l2cap_sdp_channel ,mem_l2cap_pending_item 
+4eac 20204eb3 branch send_connection_res0 
+
+send_connection_sdp_res:
+4ead 6800c250 fetch 1 ,mem_sdp_state 
+4eae 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
+4eaf 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
+4eb0 6000c250 store 1 ,mem_sdp_state 
+
+send_connection_res:
+4eb1 58000000 setarg l2cap_connect_successful 
+4eb2 6001027d store 2 ,meml2cap_t1 
+
+send_connection_res0:
+4eb3 47084022 bpatchx patch22_0 ,mem_patch22 
+4eb4 20407ead call load_cont_pointers 
+4eb5 58000003 setarg signal_connect_rsp 
+4eb6 e0a08000 istore 1 ,contw 
+4eb7 18e27e00 copy queue ,pdata 
+4eb8 e0a08000 istore 1 ,contw 
+4eb9 58000008 setarg 0x0008 
+4eba e0a10000 istore 2 ,contw 
+4ebb 18427e00 copy temp ,pdata 
+4ebc e0a10000 istore 2 ,contw 
+4ebd 19627e00 copy timeup ,pdata 
+4ebe e0a10000 istore 2 ,contw 
+4ebf 6801027d fetch 2 ,meml2cap_t1 
+4ec0 c000cec9 beq l2cap_connect_pending ,connect_pending 
+4ec1 290c0000 isolate0 0 ,debug 
+4ec2 2020cec4 branch connect_suc ,true 
+4ec3 58000004 setarg l2cap_connect_refused_no_resources 
+
+connect_suc:
+4ec4 e0a10000 istore 2 ,contw 
+4ec5 18007e00 force 0x0000 ,pdata 
+4ec6 e0a10000 istore 2 ,contw 
+4ec7 5800000c setarg 12 
+4ec8 20204ed0 branch connect_req_update_byte_counts 
+
+connect_pending:
+4ec9 e0a10000 istore 2 ,contw 
+4eca 18007e02 force 0x0002 ,pdata 
+4ecb e0a10000 istore 2 ,contw 
+4ecc 5800000c setarg 12 
+4ecd 20204ed0 branch connect_req_update_byte_counts 
+
+already_connected:
+4ece 79201000 set1 0 ,debug 
+4ecf 20204eb1 branch send_connection_res 
+
+connect_req_update_byte_counts:
+4ed0 9a40a400 iadd regb ,regb 
+4ed1 1a627e00 copy regc ,pdata 
+4ed2 9a262600 isub rega ,regc 
+4ed3 20204ed4 branch l2cap_proc_signal_connect_req_rtn 
+
+l2cap_proc_signal_connect_req_rtn:
+4ed4 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_connect_rsp:
+4ed5 e8c08000 ifetch 1 ,contr 
+4ed6 1fe20e00 copy pdata ,queue 
+4ed7 e8c10000 ifetch 2 ,contr 
+4ed8 1fe22200 copy pdata ,rega 
+4ed9 1a627e00 copy regc ,pdata 
+4eda 9a262600 isub rega ,regc 
+4edb e8c10000 ifetch 2 ,contr 
+4edc 1fe21600 copy pdata ,timeup 
+4edd e8c10000 ifetch 2 ,contr 
+4ede 1fe20400 copy pdata ,temp 
+4edf 4708c022 bpatchx patch22_1 ,mem_patch22 
+4ee0 58000050 setarg l2cap_sdp_channel 
+4ee1 98467c00 isub temp ,null 
+4ee2 2022ceed branch l2cap_proc_signal_connect_rsp_sdp ,zero 
+4ee3 58000051 setarg l2cap_rfcomm_channel 
+4ee4 98467c00 isub temp ,null 
+4ee5 2022cef3 branch l2cap_proc_signal_connect_rsp_rfcomm ,zero 
+4ee6 58000052 setarg l2cap_hid_control_channel 
+4ee7 98467c00 isub temp ,null 
+4ee8 2022ceff branch l2cap_proc_signal_connect_rsp_hid_ctrl ,zero 
+4ee9 58000053 setarg l2cap_hid_interrupt_channel 
+4eea 98467c00 isub temp ,null 
+4eeb 2022cef9 branch l2cap_proc_signal_connect_rsp_hid_int ,zero 
+4eec 20600000 rtn 
+
+l2cap_proc_signal_connect_rsp_sdp:
+4eed 19627e00 copy timeup ,pdata 
+4eee 60014248 store 2 ,mem_sdp_remote_cid 
+4eef 6800c250 fetch 1 ,mem_sdp_state 
+4ef0 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
+4ef1 6000c250 store 1 ,mem_sdp_state 
+4ef2 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_connect_rsp_rfcomm:
+4ef3 19627e00 copy timeup ,pdata 
+4ef4 6001424a store 2 ,mem_rfcomm_remote_cid 
+4ef5 6800c251 fetch 1 ,mem_rfcomm_state 
+4ef6 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
+4ef7 6000c251 store 1 ,mem_rfcomm_state 
+4ef8 20600000 rtn 
+
+l2cap_proc_signal_connect_rsp_hid_int:
+4ef9 19627e00 copy timeup ,pdata 
+4efa 6001424c store 2 ,mem_hid_ctrl_remote_cid 
+4efb 6800c253 fetch 1 ,mem_hid_interrupt_state 
+4efc 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
+4efd 6000c253 store 1 ,mem_hid_interrupt_state 
+4efe 20600000 rtn 
+
+l2cap_proc_signal_connect_rsp_hid_ctrl:
+4eff 19627e00 copy timeup ,pdata 
+4f00 6001424e store 2 ,mem_hid_int_remote_cid 
+4f01 6800c252 fetch 1 ,mem_hid_control_state 
+4f02 79207e01 set1 l2cap_channel_state_conn_res ,pdata 
+4f03 6000c252 store 1 ,mem_hid_control_state 
+4f04 20600000 rtn 
+
+l2cap_proc_signal_config_req:
+4f05 e8c08000 ifetch 1 ,contr 
+4f06 1fe20e00 copy pdata ,queue 
+4f07 e8c10000 ifetch 2 ,contr 
+4f08 1fe22200 copy pdata ,rega 
+4f09 1a627e00 copy regc ,pdata 
+4f0a 9a262600 isub rega ,regc 
+4f0b e8c10000 ifetch 2 ,contr 
+4f0c 1fe20400 copy pdata ,temp 
+4f0d 18422200 copy temp ,rega 
+4f0e 47094022 bpatchx patch22_2 ,mem_patch22 
+4f0f 58000050 setarg l2cap_sdp_channel 
+4f10 98467c00 isub temp ,null 
+4f11 2022cf1c branch l2cap_proc_signal_config_req_sdp ,zero 
+4f12 58000051 setarg l2cap_rfcomm_channel 
+4f13 98467c00 isub temp ,null 
+4f14 2022cf3a branch l2cap_proc_signal_config_req_rfcomm ,zero 
+4f15 58000052 setarg l2cap_hid_control_channel 
+4f16 98467c00 isub temp ,null 
+4f17 2022cf26 branch l2cap_proc_signal_config_req_hid_ctrl ,zero 
+4f18 58000053 setarg l2cap_hid_interrupt_channel 
+4f19 98467c00 isub temp ,null 
+4f1a 2022cf30 branch l2cap_proc_signal_config_req_hid_int ,zero 
+4f1b 20205062 branch l2cap_reject_command 
+
+l2cap_proc_signal_config_req_sdp:
+4f1c 18a21600 copy contw ,timeup 
+4f1d 6800c250 fetch 1 ,mem_sdp_state 
+4f1e 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
+4f1f 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
+4f20 6000c250 store 1 ,mem_sdp_state 
+4f21 19620a00 copy timeup ,contw 
+4f22 d9600050 arg l2cap_sdp_channel ,timeup 
+4f23 68014248 fetch 2 ,mem_sdp_remote_cid 
+4f24 1fe20400 copy pdata ,temp 
+4f25 20204f43 branch l2cap_send_config_rsp 
+
+l2cap_proc_signal_config_req_hid_ctrl:
+4f26 18a21600 copy contw ,timeup 
+4f27 6800c252 fetch 1 ,mem_hid_control_state 
+4f28 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
+4f29 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
+4f2a 6000c252 store 1 ,mem_hid_control_state 
+4f2b 19620a00 copy timeup ,contw 
+4f2c d9600052 arg l2cap_hid_control_channel ,timeup 
+4f2d 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
+4f2e 1fe20400 copy pdata ,temp 
+4f2f 20204f43 branch l2cap_send_config_rsp 
+
+l2cap_proc_signal_config_req_hid_int:
+4f30 18a21600 copy contw ,timeup 
+4f31 6800c253 fetch 1 ,mem_hid_interrupt_state 
+4f32 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
+4f33 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
+4f34 6000c253 store 1 ,mem_hid_interrupt_state 
+4f35 19620a00 copy timeup ,contw 
+4f36 d9600053 arg l2cap_hid_interrupt_channel ,timeup 
+4f37 6801424e fetch 2 ,mem_hid_int_remote_cid 
+4f38 1fe20400 copy pdata ,temp 
+4f39 20204f43 branch l2cap_send_config_rsp 
+
+l2cap_proc_signal_config_req_rfcomm:
+4f3a 18a21600 copy contw ,timeup 
+4f3b 6800c251 fetch 1 ,mem_rfcomm_state 
+4f3c 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
+4f3d 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
+4f3e 6000c251 store 1 ,mem_rfcomm_state 
+4f3f 19620a00 copy timeup ,contw 
+4f40 d9600051 arg l2cap_rfcomm_channel ,timeup 
+4f41 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+4f42 1fe20400 copy pdata ,temp 
+
+l2cap_send_config_rsp:
+4f43 4709c022 bpatchx patch22_3 ,mem_patch22 
+4f44 58000005 setarg signal_config_rsp 
+4f45 e0a08000 istore 1 ,contw 
+4f46 18e27e00 copy queue ,pdata 
+4f47 e0a08000 istore 1 ,contw 
+4f48 58000006 setarg 0x0006 
+4f49 e0a10000 istore 2 ,contw 
+4f4a 18427e00 copy temp ,pdata 
+4f4b e0a10000 istore 2 ,contw 
+4f4c 18007e00 force 0x00 ,pdata 
+4f4d e0a10000 istore 2 ,contw 
+4f4e 18007e00 force l2cap_config_success ,pdata 
+4f4f e0a10000 istore 2 ,contw 
+4f50 18007e0a force 10 ,pdata 
+4f51 9a40a400 iadd regb ,regb 
+4f52 60090282 storet 2 ,mem_config_req_dest_cid 
+4f53 18e27e00 copy queue ,pdata 
+4f54 60008281 store 1 ,mem_config_identifier 
+4f55 18007e50 force l2cap_sdp_channel ,pdata 
+4f56 a961fe00 icompare 0xff ,timeup 
+4f57 2020cf59 branch l2cap_send_config_rsp_is_sdp ,true 
+4f58 1fe0fe01 increase 1 ,pdata 
+
+l2cap_send_config_rsp_is_sdp:
+4f59 20600000 rtn 
+
+l2cap_check_channel_state:
+4f5a 78547c00 disable user 
+4f5b c3810000 rtnbit1 l2cap_channel_state_snd_cfg_req ,pdata 
+4f5c c4000000 rtnbit0 l2cap_channel_state_conn_req ,pdata 
+4f5d c4008000 rtnbit0 l2cap_channel_state_conn_res ,pdata 
+4f5e 79207e02 set1 l2cap_channel_state_snd_cfg_req ,pdata 
+4f5f 18c20a00 copy contr ,contw 
+4f60 18a08bff increase -1 ,contw 
+4f61 e0a08000 istore 1 ,contw 
+4f62 78347c00 enable user 
+4f63 20600000 rtn 
+
+l2cap_send_config_req:
+
+l2cap_send_config_req_sdp:
+4f64 6800c250 fetch 1 ,mem_sdp_state 
+4f65 20404f5a call l2cap_check_channel_state 
+4f66 24344f6b nbranch l2cap_send_config_req_rfcomm ,user 
+4f67 70028050 jam l2cap_sdp_channel ,mem_send_config_req 
+4f68 68014248 fetch 2 ,mem_sdp_remote_cid 
+4f69 60010282 store 2 ,mem_config_req_dest_cid 
+4f6a 20204f7f branch l2cap_generate_config_req 
+
+l2cap_send_config_req_rfcomm:
+4f6b 6800c251 fetch 1 ,mem_rfcomm_state 
+4f6c 20404f5a call l2cap_check_channel_state 
+4f6d 24344f72 nbranch l2cap_send_config_req_hid_ctrl ,user 
+4f6e 70028051 jam l2cap_rfcomm_channel ,mem_send_config_req 
+4f6f 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+4f70 60010282 store 2 ,mem_config_req_dest_cid 
+4f71 20204f7f branch l2cap_generate_config_req 
+
+l2cap_send_config_req_hid_ctrl:
+4f72 6800c252 fetch 1 ,mem_hid_control_state 
+4f73 20404f5a call l2cap_check_channel_state 
+4f74 24344f79 nbranch l2cap_send_config_req_hid_int ,user 
+4f75 70028052 jam l2cap_hid_control_channel ,mem_send_config_req 
+4f76 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
+4f77 60010282 store 2 ,mem_config_req_dest_cid 
+4f78 20204f7f branch l2cap_generate_config_req 
+
+l2cap_send_config_req_hid_int:
+4f79 6800c253 fetch 1 ,mem_hid_interrupt_state 
+4f7a 20404f5a call l2cap_check_channel_state 
+4f7b 24740000 nrtn user 
+4f7c 70028053 jam l2cap_hid_interrupt_channel ,mem_send_config_req 
+4f7d 6801424e fetch 2 ,mem_hid_int_remote_cid 
+4f7e 60010282 store 2 ,mem_config_req_dest_cid 
+
+l2cap_generate_config_req:
+4f7f 470a4022 bpatchx patch22_4 ,mem_patch22 
+4f80 2040523a call l2cap_get_req_id 
+4f81 204052b8 call l2cap_malloc_signal_channel 
+4f82 18002400 force 0 ,regb 
+4f83 204052c3 call l2cap_get_signal_tx_payload 
+4f84 18007e04 force signal_config_req ,pdata 
+4f85 e0a08000 istore 1 ,contw 
+4f86 6800c255 fetch 1 ,mem_ml2cap_comm_id 
+4f87 e0a08000 istore 1 ,contw 
+4f88 58000008 setarg 0x0008 
+4f89 e0a10000 istore 2 ,contw 
+4f8a 68010282 fetch 2 ,mem_config_req_dest_cid 
+4f8b e0a10000 istore 2 ,contw 
+4f8c 58000000 setarg 0x0000 
+4f8d e0a10000 istore 2 ,contw 
+4f8e 18007e01 force 1 ,pdata 
+4f8f e0a08000 istore 1 ,contw 
+4f90 18007e02 force 2 ,pdata 
+4f91 e0a08000 istore 1 ,contw 
+4f92 68008280 fetch 1 ,mem_send_config_req 
+4f93 c028cf97 beq l2cap_rfcomm_channel ,l2cap_generate_config_req_rfcomm 
+4f94 58000030 setarg l2cap_config_mtu_sdp 
+4f95 e0a10000 istore 2 ,contw 
+4f96 20204f99 branch l2cap_generate_config_req_done 
+
+l2cap_generate_config_req_rfcomm:
+4f97 580003e3 setarg l2cap_config_mtu_rfcomm 
+4f98 e0a10000 istore 2 ,contw 
+
+l2cap_generate_config_req_done:
+4f99 d840000c arg 0x0c ,temp 
+4f9a 6009026f storet 2 ,mem_l2cap_signal_tx_length 
+4f9b 204052c1 call l2cap_get_signal_tx_buff 
+4f9c 6801026f fetch 2 ,mem_l2cap_signal_tx_length 
+4f9d e0a10000 istore 2 ,contw 
+4f9e 18007e01 force l2cap_signal_channel ,pdata 
+4f9f e0a10000 istore 2 ,contw 
+4fa0 70028000 jam 0 ,mem_send_config_req 
+
+l2cap_proc_signal_config_req_rtn:
+4fa1 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_config_rsp:
+4fa2 18c08c01 increase 1 ,contr 
+4fa3 e8c10000 ifetch 2 ,contr 
+4fa4 1fe22200 copy pdata ,rega 
+4fa5 1a627e00 copy regc ,pdata 
+4fa6 9a262600 isub rega ,regc 
+4fa7 e8c10000 ifetch 2 ,contr 
+4fa8 1fe22200 copy pdata ,rega 
+4fa9 470ac022 bpatchx patch22_5 ,mem_patch22 
+4faa 58000050 setarg l2cap_sdp_channel 
+4fab 9a267c00 isub rega ,null 
+4fac 2022cfba branch l2cap_proc_signal_config_rsp_sdp ,zero 
+4fad 58000051 setarg l2cap_rfcomm_channel 
+4fae 9a267c00 isub rega ,null 
+4faf 2022cfbe branch l2cap_proc_signal_config_rsp_rfcomm ,zero 
+4fb0 58000052 setarg l2cap_hid_control_channel 
+4fb1 9a267c00 isub rega ,null 
+4fb2 2022cfc2 branch l2cap_proc_signal_config_rsp_hid_ctrl ,zero 
+4fb3 58000053 setarg l2cap_hid_interrupt_channel 
+4fb4 9a267c00 isub rega ,null 
+4fb5 2022cfc6 branch l2cap_proc_signal_config_rsp_hid_int ,zero 
+4fb6 18c08c02 increase 2 ,contr 
+4fb7 e8c10000 ifetch 2 ,contr 
+4fb8 98007c00 iforce null 
+4fb9 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_config_rsp_sdp:
+4fba 6800c250 fetch 1 ,mem_sdp_state 
+4fbb 79207e05 set1 l2cap_channel_state_rcv_cfg_res ,pdata 
+4fbc 6000c250 store 1 ,mem_sdp_state 
+4fbd 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_config_rsp_rfcomm:
+4fbe 6800c251 fetch 1 ,mem_rfcomm_state 
+4fbf 79207e05 set1 l2cap_channel_state_rcv_cfg_res ,pdata 
+4fc0 6000c251 store 1 ,mem_rfcomm_state 
+4fc1 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_config_rsp_hid_ctrl:
+4fc2 6800c252 fetch 1 ,mem_hid_control_state 
+4fc3 79207e05 set1 l2cap_channel_state_rcv_cfg_res ,pdata 
+4fc4 6000c252 store 1 ,mem_hid_control_state 
+4fc5 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_config_rsp_hid_int:
+4fc6 6800c253 fetch 1 ,mem_hid_interrupt_state 
+4fc7 79207e05 set1 l2cap_channel_state_rcv_cfg_res ,pdata 
+4fc8 6000c253 store 1 ,mem_hid_interrupt_state 
+4fc9 700a9906 jam bt_evt_hid_connected ,mem_fifo_temp 
+4fca 20207d86 branch ui_ipc_send_event 
+
+l2cap_proc_signal_disconnect_req:
+4fcb e8c08000 ifetch 1 ,contr 
+4fcc 1fe20e00 copy pdata ,queue 
+4fcd e8c10000 ifetch 2 ,contr 
+4fce 1fe22200 copy pdata ,rega 
+4fcf 1a627e00 copy regc ,pdata 
+4fd0 9a262600 isub rega ,regc 
+4fd1 e8c10000 ifetch 2 ,contr 
+4fd2 1fe22200 copy pdata ,rega 
+4fd3 e8c10000 ifetch 2 ,contr 
+4fd4 1fe21600 copy pdata ,timeup 
+4fd5 1a220400 copy rega ,temp 
+4fd6 20407ea8 call save_cont_pointers 
+4fd7 470b4022 bpatchx patch22_6 ,mem_patch22 
+4fd8 58000050 setarg l2cap_sdp_channel 
+4fd9 98467c00 isub temp ,null 
+4fda 2022cff2 branch l2cap_proc_signal_disconnect_req_sdp ,zero 
+4fdb 58000051 setarg l2cap_rfcomm_channel 
+4fdc 98467c00 isub temp ,null 
+4fdd 2022d002 branch l2cap_proc_signal_disconnect_req_rfcomm ,zero 
+4fde 58000052 setarg l2cap_hid_control_channel 
+4fdf 98467c00 isub temp ,null 
+4fe0 2022cfe6 branch l2cap_proc_signal_disconnect_req_hid_ctrl ,zero 
+4fe1 58000053 setarg l2cap_hid_interrupt_channel 
+4fe2 98467c00 isub temp ,null 
+4fe3 2022cfec branch l2cap_proc_signal_disconnect_req_hid_int ,zero 
+4fe4 20405062 call l2cap_reject_command 
+4fe5 20205017 branch l2cap_proc_signal_disconnect_req_err_rtn 
+
+l2cap_proc_signal_disconnect_req_hid_ctrl:
+4fe6 19620400 copy timeup ,temp 
+4fe7 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
+4fe8 98467c00 isub temp ,null 
+4fe9 2022cff8 branch l2cap_disconnect_hid_control_now ,zero 
+4fea 20405062 call l2cap_reject_command 
+4feb 20205017 branch l2cap_proc_signal_disconnect_req_err_rtn 
+
+l2cap_proc_signal_disconnect_req_hid_int:
+4fec 19620400 copy timeup ,temp 
+4fed 6801424e fetch 2 ,mem_hid_int_remote_cid 
+4fee 98467c00 isub temp ,null 
+4fef 2022cffa branch l2cap_disconnect_hid_interrupt_now ,zero 
+4ff0 20405062 call l2cap_reject_command 
+4ff1 20205017 branch l2cap_proc_signal_disconnect_req_err_rtn 
+
+l2cap_proc_signal_disconnect_req_sdp:
+4ff2 19620400 copy timeup ,temp 
+4ff3 68014248 fetch 2 ,mem_sdp_remote_cid 
+4ff4 98467c00 isub temp ,null 
+4ff5 2022cffe branch l2cap_disconnect_sdp_now ,zero 
+4ff6 20405062 call l2cap_reject_command 
+4ff7 20205017 branch l2cap_proc_signal_disconnect_req_err_rtn 
+
+l2cap_disconnect_hid_control_now:
+4ff8 20405079 call l2cap_reset_hid_ctrl_state 
+4ff9 2020500a branch l2cap_send_disconnect_rsp_pkt 
+
+l2cap_disconnect_hid_interrupt_now:
+4ffa 2040507f call l2cap_reset_hid_int_state 
+4ffb 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
+4ffc 203a500a branch l2cap_send_disconnect_rsp_pkt ,blank 
+4ffd 2020500a branch l2cap_send_disconnect_rsp_pkt 
+
+l2cap_disconnect_sdp_now:
+4ffe 20405074 call l2cap_reset_sdp_channel_state 
+4fff 68008288 fetch 1 ,mem_upper_sm_ss 
+5000 243a500a nbranch l2cap_send_disconnect_rsp_pkt ,blank 
+5001 2020500a branch l2cap_send_disconnect_rsp_pkt 
+
+l2cap_proc_signal_disconnect_req_rfcomm:
+5002 19620400 copy timeup ,temp 
+5003 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+5004 98467c00 isub temp ,null 
+5005 2022d008 branch l2cap_disconnect_rfcomm_now ,zero 
+5006 20405062 call l2cap_reject_command 
+5007 20205017 branch l2cap_proc_signal_disconnect_req_err_rtn 
+
+l2cap_disconnect_rfcomm_now:
+5008 2040506f call l2cap_reset_rfcomm_channel_state 
+5009 2020500a branch l2cap_send_disconnect_rsp_pkt 
+
+l2cap_send_disconnect_rsp_pkt:
+500a 20407ead call load_cont_pointers 
+500b 58000007 setarg signal_disconnect_rsp 
+500c e0a08000 istore 1 ,contw 
+500d 18e27e00 copy queue ,pdata 
+500e e0a08000 istore 1 ,contw 
+500f 58000004 setarg 0x0004 
+5010 e0a10000 istore 2 ,contw 
+5011 1a227e00 copy rega ,pdata 
+5012 e0a10000 istore 2 ,contw 
+5013 19627e00 copy timeup ,pdata 
+5014 e0a10000 istore 2 ,contw 
+5015 18007e08 force 8 ,pdata 
+5016 20205019 branch l2cap_proc_signal_disconnect_req_rtn 
+
+l2cap_proc_signal_disconnect_req_err_rtn:
+5017 20407ead call load_cont_pointers 
+5018 20205019 branch l2cap_proc_signal_disconnect_req_rtn 
+
+l2cap_proc_signal_disconnect_req_rtn:
+5019 9a40a400 iadd regb ,regb 
+501a 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_disconnect_rsp:
+501b e8c08000 ifetch 1 ,contr 
+501c 1fe20e00 copy pdata ,queue 
+501d e8c10000 ifetch 2 ,contr 
+501e 1fe22200 copy pdata ,rega 
+501f 1a627e00 copy regc ,pdata 
+5020 9a262600 isub rega ,regc 
+5021 e8c10000 ifetch 2 ,contr 
+5022 1fe21600 copy pdata ,timeup 
+5023 e8c10000 ifetch 2 ,contr 
+5024 1fe20400 copy pdata ,temp 
+5025 20407ea8 call save_cont_pointers 
+5026 470bc022 bpatchx patch22_7 ,mem_patch22 
+5027 58000050 setarg l2cap_sdp_channel 
+5028 98467c00 isub temp ,null 
+5029 2022d035 branch l2cap_proc_signal_disconnect_rsp_sdp ,zero 
+502a 58000051 setarg l2cap_rfcomm_channel 
+502b 98467c00 isub temp ,null 
+502c 2022d03b branch l2cap_proc_signal_disconnect_rsp_rfcomm ,zero 
+502d 58000052 setarg l2cap_hid_control_channel 
+502e 98467c00 isub temp ,null 
+502f 2022d041 branch l2cap_proc_signal_disconnect_rsp_hid_ctrl ,zero 
+5030 58000053 setarg l2cap_hid_interrupt_channel 
+5031 98467c00 isub temp ,null 
+5032 2022d047 branch l2cap_proc_signal_disconnect_rsp_hid_int ,zero 
+5033 20405062 call l2cap_reject_command 
+5034 2020504f branch l2cap_proc_signal_disconnect_rsp_err_rtn 
+
+l2cap_proc_signal_disconnect_rsp_sdp:
+5035 18422200 copy temp ,rega 
+5036 19620400 copy timeup ,temp 
+5037 68014248 fetch 2 ,mem_sdp_remote_cid 
+5038 98467c00 isub temp ,null 
+5039 2042d074 call l2cap_reset_sdp_channel_state ,zero 
+503a 2020504d branch l2cap_proc_signal_disconnect_rsp_rtn 
+
+l2cap_proc_signal_disconnect_rsp_rfcomm:
+503b 18422200 copy temp ,rega 
+503c 19620400 copy timeup ,temp 
+503d 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+503e 98467c00 isub temp ,null 
+503f 2042d06f call l2cap_reset_rfcomm_channel_state ,zero 
+5040 2020504d branch l2cap_proc_signal_disconnect_rsp_rtn 
+
+l2cap_proc_signal_disconnect_rsp_hid_ctrl:
+5041 18422200 copy temp ,rega 
+5042 19620400 copy timeup ,temp 
+5043 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
+5044 98467c00 isub temp ,null 
+5045 2042d079 call l2cap_reset_hid_ctrl_state ,zero 
+5046 2020504d branch l2cap_proc_signal_disconnect_rsp_rtn 
+
+l2cap_proc_signal_disconnect_rsp_hid_int:
+5047 18422200 copy temp ,rega 
+5048 19620400 copy timeup ,temp 
+5049 6801424e fetch 2 ,mem_hid_int_remote_cid 
+504a 98467c00 isub temp ,null 
+504b 2042d07f call l2cap_reset_hid_int_state ,zero 
+504c 2020504d branch l2cap_proc_signal_disconnect_rsp_rtn 
+
+l2cap_proc_signal_disconnect_rsp_rtn:
+504d 20407ead call load_cont_pointers 
+504e 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_disconnect_rsp_err_rtn:
+504f 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_echo_req:
+5050 e8c08000 ifetch 1 ,contr 
+5051 1fe20e00 copy pdata ,queue 
+5052 e8c10000 ifetch 2 ,contr 
+5053 1fe22200 copy pdata ,rega 
+5054 98c08c00 iadd contr ,contr 
+5055 58000009 setarg 9 
+5056 e0a08000 istore 1 ,contw 
+5057 18e27e00 copy queue ,pdata 
+5058 e0a08000 istore 1 ,contw 
+5059 18007e00 force 0x0000 ,pdata 
+505a e0a10000 istore 2 ,contw 
+505b 18007e04 force 4 ,pdata 
+505c 9a40a400 iadd regb ,regb 
+505d 1a627e00 copy regc ,pdata 
+505e 9a262600 isub rega ,regc 
+505f 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_echo_rsp:
+5060 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_proc_signal_info_rsp:
+5061 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_reject_command:
+5062 18002400 force 0 ,regb 
+5063 204052c3 call l2cap_get_signal_tx_payload 
+5064 58000001 setarg signal_cmd_reject 
+5065 e0a08000 istore 1 ,contw 
+5066 18e27e00 copy queue ,pdata 
+5067 e0a08000 istore 1 ,contw 
+5068 58000002 setarg 2 
+5069 e0a10000 istore 2 ,contw 
+506a 58000000 setarg cmd_not_understood 
+506b e0a10000 istore 2 ,contw 
+506c 1a40a406 increase 6 ,regb 
+506d da600004 arg 4 ,regc 
+506e 20204e1e branch l2cap_process_one_signal_rtn 
+
+l2cap_reset_rfcomm_channel_state:
+506f 58000000 setarg 0 
+5070 6001027b store 2 ,mem_rfcomm_tx_pkt_length 
+5071 6001424a store 2 ,mem_rfcomm_remote_cid 
+5072 70425100 jam 0 ,mem_rfcomm_state 
+5073 20600000 rtn 
+
+l2cap_reset_sdp_channel_state:
+5074 58000000 setarg 0 
+5075 60010275 store 2 ,mem_sdp_tx_pkt_length 
+5076 60014248 store 2 ,mem_sdp_remote_cid 
+5077 70425000 jam 0 ,mem_sdp_state 
+5078 20600000 rtn 
+
+l2cap_reset_hid_ctrl_state:
+5079 58000000 setarg 0 
+507a 6001424c store 2 ,mem_hid_ctrl_remote_cid 
+507b 70425200 jam 0 ,mem_hid_control_state 
+507c 6800c253 fetch 1 ,mem_hid_interrupt_state 
+507d c0005085 beq 0 ,l2cap_reset_hid_disconnected 
+507e 20600000 rtn 
+
+l2cap_reset_hid_int_state:
+507f 58000000 setarg 0 
+5080 6001424e store 2 ,mem_hid_int_remote_cid 
+5081 70425300 jam 0 ,mem_hid_interrupt_state 
+5082 6800c252 fetch 1 ,mem_hid_control_state 
+5083 c0005085 beq 0 ,l2cap_reset_hid_disconnected 
+5084 20600000 rtn 
+
+l2cap_reset_hid_disconnected:
+5085 700a9907 jam bt_evt_hid_disconnected ,mem_fifo_temp 
+5086 20207d86 branch ui_ipc_send_event 
+
+l2cap_disconnect_interrupt_req:
+5087 6800827f fetch 1 ,mem_control_tasks 
+5088 793ffe00 set0 l2cap_disconnect_interrupt ,pdata 
+5089 6000827f store 1 ,mem_control_tasks 
+508a 6801424e fetch 2 ,mem_hid_int_remote_cid 
+508b 207a0000 rtn blank 
+508c 204052b8 call l2cap_malloc_signal_channel 
+508d 6801424e fetch 2 ,mem_hid_int_remote_cid 
+508e 1fe22200 copy pdata ,rega 
+508f 18002453 force l2cap_hid_interrupt_channel ,regb 
+5090 2020509a branch l2cap_generate_disconnect_req 
+
+l2cap_disconnect_control_req:
+5091 6800827f fetch 1 ,mem_control_tasks 
+5092 793ffe07 set0 l2cap_disconnect_control ,pdata 
+5093 6000827f store 1 ,mem_control_tasks 
+5094 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
+5095 207a0000 rtn blank 
+5096 204052b8 call l2cap_malloc_signal_channel 
+5097 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
+5098 1fe22200 copy pdata ,rega 
+5099 18002452 force l2cap_hid_control_channel ,regb 
+
+l2cap_generate_disconnect_req:
+509a 2040523a call l2cap_get_req_id 
+509b 204052c3 call l2cap_get_signal_tx_payload 
+509c 18007e06 force signal_disconnect_req ,pdata 
+509d e0a08000 istore 1 ,contw 
+509e 6800c255 fetch 1 ,mem_ml2cap_comm_id 
+509f e0a08000 istore 1 ,contw 
+50a0 58000004 setarg 0x0004 
+50a1 e0a10000 istore 2 ,contw 
+50a2 1a227e00 copy rega ,pdata 
+50a3 e0a10000 istore 2 ,contw 
+50a4 1a427e00 copy regb ,pdata 
+50a5 e0a10000 istore 2 ,contw 
+50a6 18000408 force 0x08 ,temp 
+50a7 202050de branch ml2cap_send_signal 
+
+ml2cap_send_signal_connect_req:
+50a8 470c4023 bpatchx patch23_0 ,mem_patch23 
+50a9 2040523a call l2cap_get_req_id 
+50aa 204052c3 call l2cap_get_signal_tx_payload 
+50ab 58000002 setarg signal_connect_req 
+50ac e0a08000 istore 1 ,contw 
+50ad 6800c255 fetch 1 ,mem_ml2cap_comm_id 
+50ae e0a08000 istore 1 ,contw 
+50af 58000004 setarg 0x0004 
+50b0 e0a10000 istore 2 ,contw 
+50b1 18427e00 copy temp ,pdata 
+50b2 e0a10000 istore 2 ,contw 
+50b3 19627e00 copy timeup ,pdata 
+50b4 e0a10000 istore 2 ,contw 
+50b5 d8400008 arg 8 ,temp 
+50b6 202050de branch ml2cap_send_signal 
+
+ml2cap_send_signal_config_req:
+50b7 470cc023 bpatchx patch23_1 ,mem_patch23 
+50b8 2040523a call l2cap_get_req_id 
+50b9 204052c3 call l2cap_get_signal_tx_payload 
+50ba 58000004 setarg signal_config_req 
+50bb e0a08000 istore 1 ,contw 
+50bc 6800c255 fetch 1 ,mem_ml2cap_comm_id 
+50bd e0a08000 istore 1 ,contw 
+50be 58000008 setarg 0x0008 
+50bf e0a10000 istore 2 ,contw 
+50c0 18427e00 copy temp ,pdata 
+50c1 e0a10000 istore 2 ,contw 
+50c2 58000000 setarg 0x0000 
+50c3 e0a10000 istore 2 ,contw 
+50c4 58000001 setarg 0x01 
+50c5 e0a08000 istore 1 ,contw 
+50c6 58000002 setarg 0x02 
+50c7 e0a08000 istore 1 ,contw 
+50c8 580003e3 setarg l2cap_config_mtu_rfcomm 
+50c9 e0a10000 istore 2 ,contw 
+50ca d840000c arg 0xc ,temp 
+50cb 202050de branch ml2cap_send_signal 
+
+ml2cap_send_signal_disconn_req:
+50cc 470d4023 bpatchx patch23_2 ,mem_patch23 
+50cd 2040523a call l2cap_get_req_id 
+50ce 204052c3 call l2cap_get_signal_tx_payload 
+50cf 58000006 setarg signal_disconnect_req 
+50d0 e0a08000 istore 1 ,contw 
+50d1 6800c255 fetch 1 ,mem_ml2cap_comm_id 
+50d2 1fe0fe01 increase 1 ,pdata 
+50d3 18a22200 copy contw ,rega 
+50d4 6000c255 store 1 ,mem_ml2cap_comm_id 
+50d5 1a220a00 copy rega ,contw 
+50d6 e0a08000 istore 1 ,contw 
+50d7 58000004 setarg 0x0004 
+50d8 e0a10000 istore 2 ,contw 
+50d9 18427e00 copy temp ,pdata 
+50da e0a10000 istore 2 ,contw 
+50db 19627e00 copy timeup ,pdata 
+50dc e0a10000 istore 2 ,contw 
+50dd d8400008 arg 0x8 ,temp 
+
+ml2cap_send_signal:
+50de 6009026f storet 2 ,mem_l2cap_signal_tx_length 
+50df 18427e00 copy temp ,pdata 
+50e0 203a5264 branch l2cap_malloc_discard ,blank 
+50e1 204052c1 call l2cap_get_signal_tx_buff 
+50e2 6801026f fetch 2 ,mem_l2cap_signal_tx_length 
+50e3 e0a10000 istore 2 ,contw 
+50e4 18007e01 force l2cap_signal_channel ,pdata 
+50e5 e0a10000 istore 2 ,contw 
+50e6 20600000 rtn 
+
+msdp_send_req_done:
+50e7 68010275 fetch 2 ,mem_sdp_tx_pkt_length 
+50e8 203a2a8c branch assert ,blank 
+50e9 204052ce call l2cap_get_sdp_tx_buff 
+50ea 68010275 fetch 2 ,mem_sdp_tx_pkt_length 
+50eb e0a10000 istore 2 ,contw 
+50ec 68014248 fetch 2 ,mem_sdp_remote_cid 
+50ed e0a10000 istore 2 ,contw 
+50ee 20600000 rtn 
+
+ml2cap_rx_multiplexing:
+50ef 68010266 fetch 2 ,mem_l2cap_rx_pkt_length 
+50f0 203a4dfc branch l2cap_rx_reset_state ,blank 
+50f1 470dc023 bpatchx patch23_3 ,mem_patch23 
+50f2 68008268 fetch 1 ,mem_l2cap_rx_cid 
+50f3 c000d0f9 beq l2cap_signal_channel ,ml2cap_call_proc_signal 
+50f4 c0284de8 beq l2cap_sdp_channel ,ml2cap_call_proc_sdp 
+50f5 c028cdf5 beq l2cap_rfcomm_channel ,l2cap_call_proc_rfcomm 
+50f6 c0294df3 beq l2cap_hid_control_channel ,l2cap_call_proc_hid 
+50f7 c029cdf3 beq l2cap_hid_interrupt_channel ,l2cap_call_proc_hid 
+50f8 20204dfc branch l2cap_rx_reset_state 
+
+ml2cap_call_proc_signal:
+50f9 470e4023 bpatchx patch23_4 ,mem_patch23 
+50fa 204052b8 call l2cap_malloc_signal_channel 
+50fb 18002400 force 0 ,regb 
+50fc 204052c3 call l2cap_get_signal_tx_payload 
+50fd 1fe20a00 copy pdata ,contw 
+50fe 68010266 fetch 2 ,mem_l2cap_rx_pkt_length 
+50ff 1fe22600 copy pdata ,regc 
+5100 68010264 fetch 2 ,mem_l2cap_payload_ptr 
+5101 98000c00 iforce contr 
+
+ml2cap_proc_one_comm_loop:
+5102 20405108 call ml2cap_proc_one_comm 
+5103 1a60a7fc increase -4 ,regc 
+5104 2422d102 nbranch ml2cap_proc_one_comm_loop ,zero 
+5105 1a420400 copy regb ,temp 
+5106 204050de call ml2cap_send_signal 
+5107 20204dfc branch l2cap_rx_reset_state 
+
+ml2cap_proc_one_comm:
+5108 e8c08000 ifetch 1 ,contr 
+5109 c0015113 beq signal_connect_req ,ml2cap_proc_signal_connect_req 
+510a c000d116 beq signal_cmd_reject ,ml2cap_proc_signal_cmd_reject 
+510b c001d120 beq signal_connect_rsp ,ml2cap_proc_signal_connect_rsp 
+510c c002d15c beq signal_config_rsp ,ml2cap_proc_signal_config_rsp 
+510d c002518e beq signal_config_req ,ml2cap_proc_signal_config_req 
+510e c003d213 beq signal_disconnect_rsp ,ml2cap_proc_signal_disconn_rsp 
+510f c00351e1 beq signal_disconnect_req ,ml2cap_proc_signal_disconn_req 
+5110 c0045050 beq signal_echo_req ,l2cap_proc_signal_echo_req 
+5111 c0054e3a beq signal_info_req ,ml2cap_proc_signal_info_req 
+5112 2020522e branch ml2cap_proc_send_reject 
+
+ml2cap_proc_signal_connect_req:
+5113 20407ea8 call save_cont_pointers 
+5114 20407ead call load_cont_pointers 
+5115 20204e51 branch l2cap_proc_signal_connect_req 
+
+ml2cap_proc_signal_cmd_reject:
+5116 e8c08000 ifetch 1 ,contr 
+5117 1fe20e00 copy pdata ,queue 
+5118 e8c10000 ifetch 2 ,contr 
+5119 1fe22200 copy pdata ,rega 
+511a 1a627e00 copy regc ,pdata 
+511b 9a262600 isub rega ,regc 
+
+mvptr:
+511c e8c08000 ifetch 1 ,contr 
+511d 1a20a3ff increase -1 ,rega 
+511e 2422d11c nbranch mvptr ,zero 
+511f 20600000 rtn 
+
+ml2cap_proc_signal_connect_rsp:
+5120 e8c08000 ifetch 1 ,contr 
+5121 1fe20e00 copy pdata ,queue 
+5122 e8c10000 ifetch 2 ,contr 
+5123 1fe22200 copy pdata ,rega 
+5124 e8c10000 ifetch 2 ,contr 
+5125 1fe21600 copy pdata ,timeup 
+5126 e8c10000 ifetch 2 ,contr 
+5127 1fe20400 copy pdata ,temp 
+5128 e8c10000 ifetch 2 ,contr 
+5129 1fe67c00 sub pdata ,0 ,null 
+512a 2022d132 branch ml2cap_proc_signal_connect_rsp_sucessful ,zero 
+512b c001512e beq l2cap_connect_refused_psm_unsupported ,ml2cap_proc_signal_connect_refused_result 
+512c c002512e beq l2cap_connect_refused_no_resources ,ml2cap_proc_signal_connect_refused_result 
+512d 20205130 branch ml2cap_proc_signal_connect_rsp_mnosucc 
+
+ml2cap_proc_signal_connect_refused_result:
+512e 700a9916 jam bt_evt_ml2cap_conn_refused ,mem_fifo_temp 
+512f 20407d86 call ui_ipc_send_event 
+
+ml2cap_proc_signal_connect_rsp_mnosucc:
+5130 e8c10000 ifetch 2 ,contr 
+5131 20205159 branch mnosucc 
+
+ml2cap_proc_signal_connect_rsp_sucessful:
+5132 20407ea8 call save_cont_pointers 
+5133 470ec023 bpatchx patch23_5 ,mem_patch23 
+5134 58000050 setarg l2cap_sdp_channel 
+5135 98467c00 isub temp ,null 
+5136 2022d141 branch ml2cap_proc_signal_connect_rsp_sdp ,zero 
+5137 58000051 setarg l2cap_rfcomm_channel 
+5138 98467c00 isub temp ,null 
+5139 2022d147 branch ml2cap_proc_signal_connect_rsp_rfcomm ,zero 
+513a 58000053 setarg l2cap_hid_interrupt_channel 
+513b 98467c00 isub temp ,null 
+513c 2022d153 branch ml2cap_proc_signal_connect_rsp_hid_int ,zero 
+513d 58000052 setarg l2cap_hid_control_channel 
+513e 98467c00 isub temp ,null 
+513f 2022d14d branch ml2cap_proc_signal_connect_rsp_hid_ctrl ,zero 
+5140 20205159 branch mnosucc 
+
+ml2cap_proc_signal_connect_rsp_sdp:
+5141 19627e00 copy timeup ,pdata 
+5142 60014248 store 2 ,mem_sdp_remote_cid 
+5143 6800c250 fetch 1 ,mem_sdp_state 
+5144 79207e01 set1 l2cap_channel_state_conn_res 
+5145 6000c250 store 1 ,mem_sdp_state 
+5146 20205158 branch mnosucc1 
+
+ml2cap_proc_signal_connect_rsp_rfcomm:
+5147 19627e00 copy timeup ,pdata 
+5148 6001424a store 2 ,mem_rfcomm_remote_cid 
+5149 6800c251 fetch 1 ,mem_rfcomm_state 
+514a 79207e01 set1 l2cap_channel_state_conn_res 
+514b 6000c251 store 1 ,mem_rfcomm_state 
+514c 20205158 branch mnosucc1 
+
+ml2cap_proc_signal_connect_rsp_hid_ctrl:
+514d 19627e00 copy timeup ,pdata 
+514e 6001424c store 2 ,mem_hid_ctrl_remote_cid 
+514f 6800c252 fetch 1 ,mem_hid_control_state 
+5150 79207e01 set1 l2cap_channel_state_conn_res 
+5151 6000c252 store 1 ,mem_hid_control_state 
+5152 20205158 branch mnosucc1 
+
+ml2cap_proc_signal_connect_rsp_hid_int:
+5153 19627e00 copy timeup ,pdata 
+5154 6001424e store 2 ,mem_hid_int_remote_cid 
+5155 6800c253 fetch 1 ,mem_hid_interrupt_state 
+5156 79207e01 set1 l2cap_channel_state_conn_res 
+5157 6000c253 store 1 ,mem_hid_interrupt_state 
+
+mnosucc1:
+5158 20407ead call load_cont_pointers 
+
+mnosucc:
+5159 1a627e00 copy regc ,pdata 
+515a 9a262600 isub rega ,regc 
+515b 20600000 rtn 
+
+ml2cap_proc_signal_config_rsp:
+515c e8c08000 ifetch 1 ,contr 
+515d 1fe20e00 copy pdata ,queue 
+515e e8c10000 ifetch 2 ,contr 
+515f 1fe22200 copy pdata ,rega 
+5160 1a627e00 copy regc ,pdata 
+5161 9a262600 isub rega ,regc 
+5162 e8c10000 ifetch 2 ,contr 
+5163 1fe21600 copy pdata ,timeup 
+5164 e8c10000 ifetch 2 ,contr 
+5165 e8c10000 ifetch 2 ,contr 
+5166 243a5188 nbranch mcrsdone1 ,blank 
+5167 20407ea8 call save_cont_pointers 
+5168 19620400 copy timeup ,temp 
+5169 470f4023 bpatchx patch23_6 ,mem_patch23 
+516a 58000050 setarg l2cap_sdp_channel 
+516b 98467c00 isub temp ,null 
+516c 2022d176 branch ml2cap_proc_signal_config_rsp_sdp ,zero 
+516d 58000051 setarg l2cap_rfcomm_channel 
+516e 98467c00 isub temp ,null 
+516f 2022d17a branch ml2cap_proc_signal_config_rsp_rfcomm ,zero 
+5170 58000052 setarg l2cap_hid_control_channel 
+5171 98467c00 isub temp ,null 
+5172 2022d17e branch ml2cap_proc_signal_config_rsp_hid_ctrl ,zero 
+5173 58000053 setarg l2cap_hid_interrupt_channel 
+5174 98467c00 isub temp ,null 
+5175 2022d182 branch ml2cap_proc_signal_config_rsp_hid_int ,zero 
+
+ml2cap_proc_signal_config_rsp_sdp:
+5176 6800c250 fetch 1 ,mem_sdp_state 
+5177 79207e05 set1 l2cap_channel_state_rcv_cfg_res 
+5178 6000c250 store 1 ,mem_sdp_state 
+5179 20600000 rtn 
+
+ml2cap_proc_signal_config_rsp_rfcomm:
+517a 6800c251 fetch 1 ,mem_rfcomm_state 
+517b 79207e05 set1 l2cap_channel_state_rcv_cfg_res 
+517c 6000c251 store 1 ,mem_rfcomm_state 
+517d 20600000 rtn 
+
+ml2cap_proc_signal_config_rsp_hid_ctrl:
+517e 6800c252 fetch 1 ,mem_hid_control_state 
+517f 79207e05 set1 l2cap_channel_state_rcv_cfg_res 
+5180 6000c252 store 1 ,mem_hid_control_state 
+5181 20600000 rtn 
+
+ml2cap_proc_signal_config_rsp_hid_int:
+5182 6800c253 fetch 1 ,mem_hid_interrupt_state 
+5183 79207e05 set1 l2cap_channel_state_rcv_cfg_res 
+5184 6000c253 store 1 ,mem_hid_interrupt_state 
+5185 700a9906 jam bt_evt_hid_connected ,mem_fifo_temp 
+5186 20207d86 branch ui_ipc_send_event 
+
+mcfrsdone:
+5187 20407ead call load_cont_pointers 
+
+mcrsdone1:
+5188 1a20a3fa increase -6 ,rega 
+
+mloop2:
+5189 2022d18d branch mcrsdone ,zero 
+518a 18c08c01 increase 1 ,contr 
+518b 1a20a3ff increase -1 ,rega 
+518c 20205189 branch mloop2 
+
+mcrsdone:
+518d 20600000 rtn 
+
+ml2cap_proc_signal_config_req:
+518e e8c08000 ifetch 1 ,contr 
+518f 1fe20e00 copy pdata ,queue 
+5190 e8c10000 ifetch 2 ,contr 
+5191 1fe22200 copy pdata ,rega 
+5192 1a627e00 copy regc ,pdata 
+5193 9a262600 isub rega ,regc 
+5194 e8c10000 ifetch 2 ,contr 
+5195 18c08c02 increase 2 ,contr 
+5196 1fe20400 copy pdata ,temp 
+5197 58000005 setarg signal_config_rsp 
+5198 e0a08000 istore 1 ,contw 
+5199 18e27e00 copy queue ,pdata 
+519a e0a08000 istore 1 ,contw 
+519b 1a20a202 increase 2 ,rega 
+519c 1a227e00 copy rega ,pdata 
+519d e0a10000 istore 2 ,contw 
+519e 20407ea8 call save_cont_pointers 
+519f 470fc023 bpatchx patch23_7 ,mem_patch23 
+51a0 58000050 setarg l2cap_sdp_channel 
+51a1 98467c00 isub temp ,null 
+51a2 2022d1ad branch ml2cap_proc_signal_config_req_sdp ,zero 
+51a3 58000051 setarg l2cap_rfcomm_channel 
+51a4 98467c00 isub temp ,null 
+51a5 2022d1be branch ml2cap_proc_signal_config_req_rfcomm ,zero 
+51a6 58000052 setarg l2cap_hid_control_channel 
+51a7 98467c00 isub temp ,null 
+51a8 2022d1c4 branch ml2cap_proc_signal_config_req_hid_ctrl ,zero 
+51a9 58000053 setarg l2cap_hid_interrupt_channel 
+51aa 98467c00 isub temp ,null 
+51ab 2022d1ca branch ml2cap_proc_signal_config_req_hid_int ,zero 
+51ac 202051cf branch mcfgrq_done 
+
+ml2cap_proc_signal_config_req_sdp:
+51ad 6800c250 fetch 1 ,mem_sdp_state 
+51ae 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
+51af 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
+51b0 6000c250 store 1 ,mem_sdp_state 
+51b1 c28151bb bbit1 l2cap_channel_state_snd_cfg_req ,ml2cap_proc_signal_config_req_sdp_nsndreq 
+51b2 6808827f fetcht 1 ,mem_control_tasks 
+51b3 79200406 set1 l2cap_init_config_req ,temp 
+51b4 6008827f storet 1 ,mem_control_tasks 
+51b5 18e27e00 copy queue ,pdata 
+51b6 1fe0fe01 increase 1 ,pdata 
+51b7 60008281 store 1 ,mem_config_identifier 
+51b8 6800c250 fetch 1 ,mem_sdp_state 
+51b9 79207e02 set1 l2cap_channel_state_snd_cfg_req ,pdata 
+51ba 6000c250 store 1 ,mem_sdp_state 
+
+ml2cap_proc_signal_config_req_sdp_nsndreq:
+51bb 68014248 fetch 2 ,mem_sdp_remote_cid 
+51bc 60010282 store 2 ,mem_config_req_dest_cid 
+51bd 202051cf branch mcfgrq_done 
+
+ml2cap_proc_signal_config_req_rfcomm:
+51be 6800c251 fetch 1 ,mem_rfcomm_state 
+51bf 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
+51c0 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
+51c1 6000c251 store 1 ,mem_rfcomm_state 
+51c2 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+51c3 202051cf branch mcfgrq_done 
+
+ml2cap_proc_signal_config_req_hid_ctrl:
+51c4 6800c252 fetch 1 ,mem_hid_control_state 
+51c5 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
+51c6 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
+51c7 6000c252 store 1 ,mem_hid_control_state 
+51c8 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
+51c9 202051cf branch mcfgrq_done 
+
+ml2cap_proc_signal_config_req_hid_int:
+51ca 6800c253 fetch 1 ,mem_hid_interrupt_state 
+51cb 79207e04 set1 l2cap_channel_state_rcv_cfg_req ,pdata 
+51cc 79207e03 set1 l2cap_channel_state_snd_cfg_res ,pdata 
+51cd 6000c253 store 1 ,mem_hid_interrupt_state 
+51ce 6801424e fetch 2 ,mem_hid_int_remote_cid 
+
+mcfgrq_done:
+51cf 1fe21600 copy pdata ,timeup 
+51d0 20407ead call load_cont_pointers 
+51d1 19627e00 copy timeup ,pdata 
+51d2 e0a10000 istore 2 ,contw 
+51d3 18007e00 force 0x0000 ,pdata 
+51d4 e0a10000 istore 2 ,contw 
+51d5 18007e00 force 0x0000 ,pdata 
+51d6 e0a10000 istore 2 ,contw 
+51d7 18007e0a force 10 ,pdata 
+51d8 9a40a400 iadd regb ,regb 
+51d9 1a20a3fa increase -6 ,rega 
+
+mloop1:
+51da 2022d1e0 branch mcrqdone ,zero 
+51db e8c08000 ifetch 1 ,contr 
+51dc e0a08000 istore 1 ,contw 
+51dd 1a40a401 increase 1 ,regb 
+51de 1a20a3ff increase -1 ,rega 
+51df 202051da branch mloop1 
+
+mcrqdone:
+51e0 20600000 rtn 
+
+ml2cap_proc_signal_disconn_req:
+51e1 e8c08000 ifetch 1 ,contr 
+51e2 1fe20e00 copy pdata ,queue 
+51e3 e8c10000 ifetch 2 ,contr 
+51e4 1fe22200 copy pdata ,rega 
+51e5 1a627e00 copy regc ,pdata 
+51e6 9a262600 isub rega ,regc 
+51e7 e8c10000 ifetch 2 ,contr 
+51e8 1fe22200 copy pdata ,rega 
+51e9 e8c10000 ifetch 2 ,contr 
+51ea 1fe21600 copy pdata ,timeup 
+51eb 20407ea8 call save_cont_pointers 
+51ec 47104024 bpatchx patch24_0 ,mem_patch24 
+51ed 58000050 setarg l2cap_sdp_channel 
+51ee 1a220400 copy rega ,temp 
+51ef 98467c00 isub temp ,null 
+51f0 2022d1fa branch ml2cap_proc_signal_disconn_sdp ,zero 
+51f1 58000052 setarg l2cap_hid_control_channel 
+51f2 1a220400 copy rega ,temp 
+51f3 98467c00 isub temp ,null 
+51f4 2022d1ff branch ml2cap_proc_signal_disconn_hid_ctrl ,zero 
+51f5 58000053 setarg l2cap_hid_interrupt_channel 
+51f6 1a220400 copy rega ,temp 
+51f7 98467c00 isub temp ,null 
+51f8 2022d201 branch ml2cap_proc_signal_disconn_hid_int ,zero 
+51f9 20205203 branch mclsrfc 
+
+ml2cap_proc_signal_disconn_sdp:
+51fa 58000000 setarg 0x0000 
+51fb 60010275 store 2 ,mem_sdp_tx_pkt_length 
+51fc 60014248 store 2 ,mem_sdp_remote_cid 
+51fd 6000c250 store 1 ,mem_sdp_state 
+51fe 20205205 branch mclssdp 
+
+ml2cap_proc_signal_disconn_hid_ctrl:
+51ff 20405079 call l2cap_reset_hid_ctrl_state 
+5200 20205205 branch mclssdp 
+
+ml2cap_proc_signal_disconn_hid_int:
+5201 2040507f call l2cap_reset_hid_int_state 
+5202 20205205 branch mclssdp 
+
+mclsrfc:
+5203 58000000 setarg 0x0000 
+5204 6001027b store 2 ,mem_rfcomm_tx_pkt_length 
+
+mclssdp:
+5205 20407ead call load_cont_pointers 
+5206 58000007 setarg signal_disconnect_rsp 
+5207 e0a08000 istore 1 ,contw 
+5208 18e27e00 copy queue ,pdata 
+5209 e0a08000 istore 1 ,contw 
+520a 58000004 setarg 0x0004 
+520b e0a10000 istore 2 ,contw 
+520c 1a227e00 copy rega ,pdata 
+520d e0a10000 istore 2 ,contw 
+520e 19627e00 copy timeup ,pdata 
+520f e0a10000 istore 2 ,contw 
+5210 18007e08 force 8 ,pdata 
+5211 9a40a400 iadd regb ,regb 
+5212 20600000 rtn 
+
+ml2cap_proc_signal_disconn_rsp:
+5213 e8c08000 ifetch 1 ,contr 
+5214 1fe20e00 copy pdata ,queue 
+5215 e8c10000 ifetch 2 ,contr 
+5216 1fe22200 copy pdata ,rega 
+5217 e8c10000 ifetch 2 ,contr 
+5218 1fe21600 copy pdata ,timeup 
+5219 e8c10000 ifetch 2 ,contr 
+521a 1fe20400 copy pdata ,temp 
+521b 20407ea8 call save_cont_pointers 
+521c 4710c024 bpatchx patch24_1 ,mem_patch24 
+521d 6800c255 fetch 1 ,mem_ml2cap_comm_id 
+521e a8e1fe00 icompare 0xff ,queue 
+521f 2420d22a nbranch mdisdone ,true 
+5220 58000050 setarg l2cap_sdp_channel 
+5221 98467c00 isub temp ,null 
+5222 2022d227 branch ml2cap_proc_signal_disconn_rsp_sdp ,zero 
+5223 58000051 setarg l2cap_rfcomm_channel 
+5224 98467c00 isub temp ,null 
+5225 2022d22a branch ml2cap_proc_signal_disconn_rsp_rfcomm ,zero 
+5226 2020522a branch mdisdone 
+
+ml2cap_proc_signal_disconn_rsp_sdp:
+5227 70424800 jam 0 ,mem_sdp_remote_cid 
+5228 70425000 jam 0 ,mem_sdp_state 
+5229 2020522a branch mdisdone 
+
+ml2cap_proc_signal_disconn_rsp_rfcomm:
+
+mdisdone:
+522a 20407ead call load_cont_pointers 
+522b 1a627e00 copy regc ,pdata 
+522c 9a262600 isub rega ,regc 
+522d 20600000 rtn 
+
+ml2cap_proc_send_reject:
+522e 58000001 setarg signal_cmd_reject 
+522f e0a08000 istore 1 ,contw 
+5230 e8c08000 ifetch 1 ,contr 
+5231 e0a08000 istore 1 ,contw 
+5232 58000002 setarg 0x0002 
+5233 e0a10000 istore 2 ,contw 
+5234 58000000 setarg 0x0000 
+5235 e0a10000 istore 2 ,contw 
+5236 58000006 setarg 0x0006 
+5237 9a40a400 iadd regb ,regb 
+5238 18002604 force 4 ,regc 
+5239 20600000 rtn 
+
+l2cap_get_req_id:
+523a 6800c255 fetch 1 ,mem_ml2cap_comm_id 
+523b 1fe0fe01 increase 1 ,pdata 
+523c c080523e bne 0 ,l2cap_get_req_id_ok 
+523d 1fe0fe01 increase 1 ,pdata 
+
+l2cap_get_req_id_ok:
+523e 6000c255 store 1 ,mem_ml2cap_comm_id 
+523f 20600000 rtn 
+
+l2cap_malloc:
+5240 47114024 bpatchx patch24_2 ,mem_patch24 
+5241 da400000 arg 0 ,regb 
+5242 2040526e call l2cap_malloc_is_fifo_full 
+5243 243a2a8c nbranch assert ,blank 
+5244 2040527e call l2cap_malloc_get_full_map 
+5245 da401800 arg mem_tx_buff0 ,regb 
+5246 d8e00000 arg 0 ,queue 
+
+l2cap_malloc_loop:
+5247 6808c256 fetcht 1 ,mem_used_map 
+5248 a84fffff qisolate1 temp 
+5249 2020d24f branch l2cap_malloc_next ,true 
+524a 204052a0 call l2cap_malloc_enough 
+524b 19667c00 sub timeup ,0 ,null 
+524c 2021524f branch l2cap_malloc_next ,positive 
+524d 20405288 call l2cap_malloc_into_fifo 
+524e 20205255 branch l2cap_malloc_rtn 
+
+l2cap_malloc_next:
+524f 1a40a480 increase 128 ,regb 
+5250 18e08e01 increase 1 ,queue 
+5251 58000008 setarg 8 
+5252 98e67c00 isub queue ,null 
+5253 20215247 branch l2cap_malloc_loop ,positive 
+5254 da400000 arg 0 ,regb 
+
+l2cap_malloc_rtn:
+5255 1a427e00 copy regb ,pdata 
+5256 203a2a8c branch assert ,blank 
+5257 20600000 rtn 
+
+l2cap_malloc_fifo_out:
+5258 4711c024 bpatchx patch24_3 ,mem_patch24 
+5259 20405277 call l2cap_malloc_fifo_get_first_ptr 
+525a 18c08c01 increase 1 ,contr 
+525b e8c10000 ifetch 2 ,contr 
+525c 20600000 rtn 
+
+l2cap_malloc_free:
+525d 47124024 bpatchx patch24_4 ,mem_patch24 
+525e 20405277 call l2cap_malloc_fifo_get_first_ptr 
+525f 18c20a00 copy contr ,contw 
+5260 18c20400 copy contr ,temp 
+5261 58000000 setarg 0 
+5262 e0a18000 istore 3 ,contw 
+5263 20600000 rtn 
+
+l2cap_malloc_discard:
+5264 4712c024 bpatchx patch24_5 ,mem_patch24 
+5265 20405274 call l2cap_malloc_is_fifo_empty 
+5266 203a2a8c branch assert ,blank 
+5267 6801c25d fetch 3 ,mem_tx_fifo2 
+5268 6001c260 store 3 ,mem_tx_fifo3 
+5269 6801c25a fetch 3 ,mem_tx_fifo1 
+526a 6001c25d store 3 ,mem_tx_fifo2 
+526b 6801c257 fetch 3 ,mem_tx_fifo0 
+526c 6001c25a store 3 ,mem_tx_fifo1 
+526d 20600000 rtn 
+
+l2cap_malloc_is_fifo_full:
+526e 47134024 bpatchx patch24_6 ,mem_patch24 
+526f 6801c257 fetch 3 ,mem_tx_fifo0 
+5270 20600000 rtn 
+
+l2cap_malloc_is_fifo_nearly_full:
+5271 4713c024 bpatchx patch24_7 ,mem_patch24 
+5272 6801c25a fetch 3 ,mem_tx_fifo1 
+5273 20600000 rtn 
+
+l2cap_malloc_is_fifo_empty:
+5274 47144025 bpatchx patch25_0 ,mem_patch25 
+5275 6801c260 fetch 3 ,mem_tx_fifo3 
+5276 20600000 rtn 
+
+l2cap_malloc_fifo_get_first_ptr:
+5277 20405274 call l2cap_malloc_is_fifo_empty 
+5278 203a2a8c branch assert ,blank 
+5279 d8c04257 arg mem_tx_fifo0 ,contr 
+
+l2cap_malloc_free_loop:
+527a e8c18000 ifetch 3 ,contr 
+527b 203a527a branch l2cap_malloc_free_loop ,blank 
+527c 18c08dfd increase -3 ,contr 
+527d 20600000 rtn 
+
+l2cap_malloc_get_full_map:
+527e 4714c025 bpatchx patch25_1 ,mem_patch25 
+527f df200004 arg 4 ,loopcnt 
+5280 d8c04257 arg mem_tx_fifo0_map ,contr 
+5281 d8400000 arg 0 ,temp 
+
+l2cap_malloc_get_full_map_loop:
+5282 e8c18000 ifetch 3 ,contr 
+5283 1fe17eff and pdata ,0xff ,pdata 
+5284 98418400 ior temp ,temp 
+5285 c2005282 loop l2cap_malloc_get_full_map_loop 
+5286 6008c256 storet 1 ,mem_used_map 
+5287 20600000 rtn 
+
+l2cap_malloc_into_fifo:
+5288 47154025 bpatchx patch25_2 ,mem_patch25 
+5289 2040526e call l2cap_malloc_is_fifo_full 
+528a 243a2a8c nbranch assert ,blank 
+528b 20405274 call l2cap_malloc_is_fifo_empty 
+528c 203a5295 branch l2cap_malloc_into_fifo_no_push ,blank 
+528d 6801c25a fetch 3 ,mem_tx_fifo1 
+528e 6001c257 store 3 ,mem_tx_fifo0 
+528f e8c18000 ifetch 3 ,contr 
+5290 e0a18000 istore 3 ,contw 
+5291 e8c18000 ifetch 3 ,contr 
+5292 e0a18000 istore 3 ,contw 
+5293 58000000 setarg 0 
+5294 e0a18000 istore 3 ,contw 
+
+l2cap_malloc_into_fifo_no_push:
+5295 d8400000 arg 0 ,temp 
+5296 19627e00 copy timeup ,pdata 
+5297 98e0fe00 iadd queue ,pdata 
+
+l2cap_malloc_into_fifo_loop:
+5298 f9200400 qset1 temp 
+5299 18e08e01 increase 1 ,queue 
+529a 98e67c00 isub queue ,null 
+529b 2422d298 nbranch l2cap_malloc_into_fifo_loop ,zero 
+529c 1a4d7e00 lshift8 regb ,pdata 
+529d 9841fe00 ior temp ,pdata 
+529e 6001c260 store 3 ,mem_tx_fifo3 
+529f 20600000 rtn 
+
+l2cap_malloc_enough:
+52a0 4715c025 bpatchx patch25_3 ,mem_patch25 
+52a1 2040527e call l2cap_malloc_get_full_map 
+52a2 18e22600 copy queue ,regc 
+52a3 d8400000 arg 0 ,temp 
+52a4 d9600000 arg 0 ,timeup 
+
+l2cap_malloc_enough_loop:
+52a5 18e27e00 copy queue ,pdata 
+52a6 c00452b0 beq 8 ,l2cap_malloc_enough_end 
+52a7 6800c256 fetch 1 ,mem_used_map 
+52a8 afefffff qisolate1 pdata 
+52a9 2020d2b0 branch l2cap_malloc_enough_end ,true 
+52aa 18408480 increase 128 ,temp 
+52ab 18e08e01 increase 1 ,queue 
+52ac 1a227e00 copy rega ,pdata 
+52ad 98467c00 isub temp ,null 
+52ae 2022d2b0 branch l2cap_malloc_enough_end ,zero 
+52af 202152a5 branch l2cap_malloc_enough_loop ,positive 
+
+l2cap_malloc_enough_end:
+52b0 18427e00 copy temp ,pdata 
+52b1 9a267c00 isub rega ,null 
+52b2 242152b6 nbranch l2cap_malloc_enough_rtn ,positive 
+52b3 18e27e00 copy queue ,pdata 
+52b4 1a620400 copy regc ,temp 
+52b5 98461600 isub temp ,timeup 
+
+l2cap_malloc_enough_rtn:
+52b6 1a620e00 copy regc ,queue 
+52b7 20600000 rtn 
+
+l2cap_malloc_signal_channel:
+52b8 47164025 bpatchx patch25_4 ,mem_patch25 
+52b9 da20007f arg l2cap_signal_malloc_size ,rega 
+52ba 20405240 call l2cap_malloc 
+52bb 6001026b store 2 ,mem_l2cap_signal_tx_buff_ptr 
+52bc 1fe0fe04 increase 4 ,pdata 
+52bd 6001026d store 2 ,mem_l2cap_signal_tx_payload_ptr 
+52be 58000000 setarg 0 
+52bf 6001026f store 2 ,mem_l2cap_signal_tx_length 
+52c0 20600000 rtn 
+
+l2cap_get_signal_tx_buff:
+52c1 6801026b fetch 2 ,mem_l2cap_signal_tx_buff_ptr 
+52c2 202052e2 branch l2cap_util_pdata_to_contw 
+
+l2cap_get_signal_tx_payload:
+52c3 6801026d fetch 2 ,mem_l2cap_signal_tx_payload_ptr 
+52c4 202052e2 branch l2cap_util_pdata_to_contw 
+
+l2cap_malloc_sdp_channel:
+52c5 4716c025 bpatchx patch25_5 ,mem_patch25 
+52c6 da2000fa arg sdp_malloc_size ,rega 
+52c7 20405240 call l2cap_malloc 
+52c8 60010271 store 2 ,mem_sdp_tx_buff_ptr 
+52c9 1fe0fe04 increase 4 ,pdata 
+52ca 60010273 store 2 ,mem_sdp_tx_payload_ptr 
+52cb 58000000 setarg 0 
+52cc 60010275 store 2 ,mem_sdp_tx_pkt_length 
+52cd 20600000 rtn 
+
+l2cap_get_sdp_tx_buff:
+52ce 68010271 fetch 2 ,mem_sdp_tx_buff_ptr 
+52cf 202052e2 branch l2cap_util_pdata_to_contw 
+
+l2cap_get_sdp_tx_payload:
+52d0 68010273 fetch 2 ,mem_sdp_tx_payload_ptr 
+52d1 202052e2 branch l2cap_util_pdata_to_contw 
+
+l2cap_malloc_rfcomm_channel:
+52d2 47174025 bpatchx patch25_6 ,mem_patch25 
+52d3 20407e7c call push_stack 
+52d4 70028401 jam rfcomm_malloc_fail ,mem_rfcomm_malloc_fail_flag 
+52d5 2040526e call l2cap_malloc_is_fifo_full 
+52d6 247a0000 nrtn blank 
+52d7 da20007f arg rfcomm_malloc_size ,rega 
+52d8 20405240 call l2cap_malloc 
+52d9 60010277 store 2 ,mem_rfcomm_tx_buff_ptr 
+52da 1fe0fe04 increase 4 ,pdata 
+52db 60010279 store 2 ,mem_rfcomm_tx_payload_ptr 
+52dc 58000000 setarg 0 
+52dd 6001027b store 2 ,mem_rfcomm_tx_pkt_length 
+52de 70028400 jam rfcomm_malloc_succeed ,mem_rfcomm_malloc_fail_flag 
+52df 20207e8c branch pop_stack 
+
+l2cap_get_rfcomm_tx_buff:
+52e0 68010277 fetch 2 ,mem_rfcomm_tx_buff_ptr 
+52e1 202052e2 branch l2cap_util_pdata_to_contw 
+
+l2cap_util_pdata_to_contw:
+52e2 203a2a8c branch assert ,blank 
+52e3 1fe20a00 copy pdata ,contw 
+52e4 20600000 rtn 
+
+l2cap_lpm_save_calc_len:
+52e5 4717c025 bpatchx patch25_7 ,mem_patch25 
+52e6 da400000 arg 0 ,regb 
+52e7 da204257 arg mem_tx_fifo0_map ,rega 
+52e8 1a20a3fe increase -2 ,rega 
+
+l2cap_lpm_save_calc_len_loop:
+52e9 1a20a202 increase 2 ,rega 
+52ea 58004263 setarg mem_tx_fifo_end 
+52eb 9a267c00 isub rega ,null 
+52ec 2022d2f5 branch l2cap_lpm_save_calc_len_end ,zero 
+52ed ea208000 ifetch 1 ,rega 
+52ee 1a20a201 increase 1 ,rega 
+52ef 203a52e9 branch l2cap_lpm_save_calc_len_loop ,blank 
+52f0 ea290000 ifetcht 2 ,rega 
+52f1 e8410000 ifetch 2 ,temp 
+52f2 9a40a400 iadd regb ,regb 
+52f3 1a40a404 increase 4 ,regb 
+52f4 202052e9 branch l2cap_lpm_save_calc_len_loop 
+
+l2cap_lpm_save_calc_len_end:
+52f5 1a427e00 copy regb ,pdata 
+52f6 20600000 rtn 
+
+l2cap_lpm_get_wake_lock:
+52f7 d8e0000c arg wake_lock_l2cap_tx ,queue 
+52f8 20202c32 branch lpm_get_wake_lock 
+
+l2cap_lpm_put_wake_lock:
+52f9 d8e0000c arg wake_lock_l2cap_tx ,queue 
+52fa 20202c36 branch lpm_put_wake_lock 
+
+l2cap_lpm_save_txbuf:
+52fb 47184026 bpatchx patch26_0 ,mem_patch26 
+52fc 2040527e call l2cap_malloc_get_full_map 
+52fd 6800c256 fetch 1 ,mem_used_map 
+52fe 207a0000 rtn blank 
+52ff 204052e5 call l2cap_lpm_save_calc_len 
+5300 d8400100 arg l2cap_lpm_txbuf_len ,temp 
+5301 98467c00 isub temp ,null 
+5302 202152f7 branch l2cap_lpm_get_wake_lock ,positive 
+5303 204052f9 call l2cap_lpm_put_wake_lock 
+5304 d8a04263 arg mem_l2cap_lpm_txbuf ,contw 
+5305 da204257 arg mem_tx_fifo0 ,rega 
+
+l2cap_lpm_save_txbuf_loop:
+5306 58004263 setarg mem_tx_fifo_end 
+5307 9a267c00 isub rega ,null 
+5308 20628000 rtn zero 
+5309 ea208000 ifetch 1 ,rega 
+530a 1a20a201 increase 1 ,rega 
+530b 243a530f nbranch l2cap_lpm_save_txbuf_nempty ,blank 
+530c e0a10000 istore 2 ,contw 
+530d 1a20a202 increase 2 ,rega 
+530e 20205306 branch l2cap_lpm_save_txbuf_loop 
+
+l2cap_lpm_save_txbuf_nempty:
+530f ea210000 ifetch 2 ,rega 
+5310 1a20a202 increase 2 ,rega 
+5311 1fe20c00 copy pdata ,contr 
+5312 e8c10000 ifetch 2 ,contr 
+5313 e0a10000 istore 2 ,contw 
+5314 1fe27200 copy pdata ,loopcnt 
+5315 1f20f202 increase 2 ,loopcnt 
+5316 20407f01 call memcpy 
+5317 20205306 branch l2cap_lpm_save_txbuf_loop 
+
+l2cap_lpm_load_txbuf:
+5318 4718c026 bpatchx patch26_1 ,mem_patch26 
+5319 2040527e call l2cap_malloc_get_full_map 
+531a 6800c256 fetch 1 ,mem_used_map 
+531b 207a0000 rtn blank 
+531c da204258 arg mem_tx_fifo0_ptr ,rega 
+531d 1a20a3fd increase -3 ,rega 
+531e d8c04263 arg mem_l2cap_lpm_txbuf ,contr 
+
+l2cap_lpm_load_txbuf_loop:
+531f 1a20a203 increase 3 ,rega 
+5320 58004264 setarg mem_tx_fifo_end + 1 
+5321 9a267c00 isub rega ,null 
+5322 20628000 rtn zero 
+5323 e8c10000 ifetch 2 ,contr 
+5324 203a531f branch l2cap_lpm_load_txbuf_loop ,blank 
+5325 1fe0fe04 increase 4 ,pdata 
+5326 1fe27200 copy pdata ,loopcnt 
+5327 18c22400 copy contr ,regb 
+5328 ea210000 ifetch 2 ,rega 
+5329 1fe20a00 copy pdata ,contw 
+532a 1a420c00 copy regb ,contr 
+532b 18c08dfe increase -2 ,contr 
+532c 20407f01 call memcpy 
+532d 2020531f branch l2cap_lpm_load_txbuf_loop 
+
+le_init_conn:
+532e 47194026 bpatchx patch26_2 ,mem_patch26 
+532f 7855fc00 disable wake 
+5330 70045501 jam 1 ,mem_le_conn_handle 
+5331 70043f03 jam 3 ,mem_le_state 
+5332 70045601 jam 1 ,mem_le_arq 
+5333 5fffffff setarg -1 
+5334 60010459 store 2 ,mem_le_event_count 
+5335 18007e00 force 0 ,pdata 
+5336 60008457 store 1 ,mem_le_ch 
+5337 60008462 store 1 ,mem_le_op 
+5338 6001c169 store 3 ,mem_sniff_rcv 
+5339 6001c16c store 3 ,mem_sniff_lost 
+533a 6002c403 store 5 ,mem_le_pcnt_tx 
+533b 79207e27 set1 39 ,pdata 
+533c 6002c408 store 5 ,mem_le_pcnt_rx 
+533d 7043dc01 jam 1 ,mem_le_txheader 
+533e 7043dd00 jam 0 ,mem_le_txlen 
+533f 202056ed branch le_supervision_flush 
+
+le_init_master:
+5340 4719c026 bpatchx patch26_3 ,mem_patch26 
+5341 7834fc00 enable master 
+5342 70044003 jam lemode_master ,mem_le_mode 
+5343 70047801 jam 1 ,mem_le_att_handle 
+5344 70445a01 jam 1 ,mem_le_search_handle_start 
+5345 5800ffff setarg 0xffff 
+5346 6001445c store 2 ,mem_le_search_handle_end 
+5347 18007e00 force 0 ,pdata 
+5348 6002c408 store 5 ,mem_le_pcnt_rx 
+5349 79207e27 set1 39 ,pdata 
+534a 6002c403 store 5 ,mem_le_pcnt_tx 
+534b 2020532e branch le_init_conn 
+
+le_init_slave:
+534c 471a4026 bpatchx patch26_4 ,mem_patch26 
+534d 7854fc00 disable master 
+534e 58000017 setarg 0x17 
+534f 600144a8 store 2 ,mem_le_remote_mtu 
+5350 70044001 jam lemode_slave ,mem_le_mode 
+5351 70436e00 jam 0 ,mem_le_adv_enable 
+5352 7000a000 jam 0 ,mem_lpm_current_mult 
+5353 7044c400 jam flag_le_pairing_null ,mem_le_pairing_state 
+5354 7044c500 jam flag_le_enc_null ,mem_le_enc_state 
+5355 6801046d fetch 2 ,mem_le_superto 
+5356 600144ba store 2 ,mem_le_init_superto 
+5357 68010441 fetch 2 ,mem_le_tsniff 
+5358 1feffe05 mul32 pdata ,5 ,pdata 
+5359 1ff1fe00 rshift4 pdata ,pdata 
+535a 6001046d store 2 ,mem_le_superto 
+535b 2020532e branch le_init_conn 
+
+le_dispatch:
+535c 204053c4 call le_enable 
+535d 204055e8 call le_scan 
+535e 204056f0 call le_adv 
+535f 202053ce branch le_disable 
+
+le_conn_dispatch:
+5360 471ac026 bpatchx patch26_5 ,mem_patch26 
+5361 204053c4 call le_enable 
+5362 204032f4 call app_process_ble 
+5363 68008440 fetch 1 ,mem_le_mode 
+5364 c001d366 beq lemode_master ,le_master_dispatch 
+5365 2020537a branch le_slave_dispatch 
+
+le_master_dispatch:
+5366 471b4026 bpatchx patch26_6 ,mem_patch26 
+5367 7834fc00 enable master 
+5368 204056e4 call le_supervision_update 
+5369 20215377 branch le_master_disconn ,positive 
+536a 20402c6c call check_ble_disabled 
+536b 20405413 call le_setup 
+536c 2040561e call le_prepare_tx 
+536d 7856fc00 disable match 
+536e 204054bf call le_transmit_receive_sifs 
+536f 24768000 nrtn match 
+5370 471bc026 bpatchx patch26_7 ,mem_patch26 
+5371 68008005 fetch 1 ,mem_le_conn_rcv 
+5372 1fe0fe01 increase 1 ,pdata 
+5373 60008005 store 1 ,mem_le_conn_rcv 
+5374 204055aa call le_acknowledge 
+5375 7854fc00 disable master 
+5376 20600000 rtn 
+
+le_master_disconn:
+5377 204053a9 call le_disconnect 
+5378 7854fc00 disable master 
+5379 20600000 rtn 
+
+le_slave_dispatch:
+537a 471c4027 bpatchx patch27_0 ,mem_patch27 
+537b 70450f00 jam 0 ,mem_le_md_count 
+537c 20407aaf call sp_calc_sequence_256 
+537d 20405c18 call le_secure_connect_sm 
+537e 78577c00 disable attempt 
+537f 204056e4 call le_supervision_update 
+5380 202153a9 branch le_slave_disconn ,positive 
+5381 20402c6c call check_ble_disabled 
+5382 20405413 call le_setup 
+5383 20405489 call le_receive_slave 
+5384 242c539b nbranch le_slave_unsync ,sync 
+5385 204053b7 call le_got_first_packet 
+5386 2036d388 branch le_slave_match ,match 
+5387 20205395 branch le_slave_cont 
+
+le_slave_match:
+5388 471cc027 bpatchx patch27_1 ,mem_patch27 
+5389 6800c50f fetch 1 ,mem_le_md_count 
+538a 1fe0fe01 pincrease 1 
+538b 6000c50f store 1 ,mem_le_md_count 
+538c c0065395 beq le_md_max_count ,le_slave_cont 
+538d 204055aa call le_acknowledge 
+538e 2040561e call le_prepare_tx 
+538f 204054c7 call le_transmit_norx 
+5390 2040567e call le_parse 
+5391 680141fb fetch 2 ,mem_cb_ble_transmit 
+5392 20407f9c call callback_func 
+5393 204053a0 call le_check_md 
+5394 203453a4 branch le_slave_more_data ,user 
+
+le_slave_cont:
+5395 471d4027 bpatchx patch27_2 ,mem_patch27 
+5396 20405be4 call le_pairing_sm 
+5397 20405bdb call le_check_paring_time 
+5398 20407d9c call check_51cmd 
+5399 68008462 fetch 1 ,mem_le_op 
+539a c281d3a9 bbit1 op_disconn ,le_slave_disconn 
+
+le_slave_unsync:
+539b 471dc027 bpatchx patch27_3 ,mem_patch27 
+539c 204057f4 call le_lpm_set_mult 
+539d 2040559d call le_update_channel_map 
+539e 20405575 call le_update_param 
+539f 20202841 branch calc_clke_offset 
+
+le_check_md:
+53a0 78547c00 disable user 
+53a1 c5157fe7 bmark1 mark_ble_rx_md ,enable_user 
+53a2 c514ffe7 bmark1 mark_ble_tx_md ,enable_user 
+53a3 20600000 rtn 
+
+le_slave_more_data:
+53a4 471e4027 bpatchx patch27_4 ,mem_patch27 
+53a5 78377c00 enable attempt 
+53a6 204054c1 call le_transmit_receive_sifs_notx 
+53a7 2036d388 branch le_slave_match ,match 
+53a8 20205395 branch le_slave_cont 
+
+le_slave_disconn:
+
+le_disconnect:
+53a9 471ec027 bpatchx patch27_5 ,mem_patch27 
+53aa 204053af call le_clear_connection_info 
+53ab 204033b4 call app_disconn_reason_collect_ble 
+53ac 20407a77 call sp_initialize_256 
+53ad 700a9915 jam bt_evt_le_disconnected ,mem_fifo_temp 
+53ae 20207d86 branch ui_ipc_send_event 
+
+le_clear_connection_info:
+53af 58000000 setarg 0 
+53b0 6004c4ff store 9 ,mem_le_tx_buff_used 
+53b1 70045500 jam 0 ,mem_le_conn_handle 
+53b2 70044000 jam lemode_idle ,mem_le_mode 
+53b3 70043f00 jam 0 ,mem_le_state 
+53b4 7044c500 jam flag_le_enc_null ,mem_le_enc_state 
+53b5 7044c400 jam flag_le_pairing_null ,mem_le_pairing_state 
+53b6 20600000 rtn 
+
+le_got_first_packet:
+53b7 471f4027 bpatchx patch27_6 ,mem_patch27 
+53b8 68008005 fetch 1 ,mem_le_conn_rcv 
+53b9 1fe0fe01 increase 1 ,pdata 
+53ba 60008005 store 1 ,mem_le_conn_rcv 
+53bb 6800843f fetch 1 ,mem_le_state 
+53bc c3818000 rtnbit1 lestate_got_first_packet 
+53bd 79207e03 set1 lestate_got_first_packet 
+53be 6000843f store 1 ,mem_le_state 
+53bf 680144ba fetch 2 ,mem_le_init_superto 
+53c0 6001046d store 2 ,mem_le_superto 
+53c1 58000000 setarg 0 
+53c2 600244e5 store 4 ,mem_le_transmit_window 
+53c3 20600000 rtn 
+
+le_enable:
+53c4 471fc027 bpatchx patch27_7 ,mem_patch27 
+53c5 70890f36 jam 0x36 ,rf_adc_goff 
+53c6 70890b5f jam 0x5f ,rf_agc_nsat 
+53c7 783b7c00 enable le 
+53c8 70891407 jam 7 ,rfen_ulp 
+53c9 20402c6c call check_ble_disabled 
+53ca 6800c1e0 fetch 1 ,mem_250k_freq_enable 
+53cb 207a0000 rtn blank 
+53cc 70890ab8 jam 0xb8 ,rf_iq_gain 
+53cd 20600000 rtn 
+
+le_disable:
+53ce 47204028 bpatchx patch28_0 ,mem_patch28 
+53cf 70890f2e jam 0x2e ,rf_adc_goff 
+53d0 70890bff jam 0xff ,rf_agc_nsat 
+53d1 785b7c00 disable le 
+53d2 70891403 jam 3 ,rfen_ulp 
+53d3 db600000 arg 0 ,stop_watch 
+53d4 20600000 rtn 
+
+le_prep:
+53d5 7844fc00 disable enable_crc 
+53d6 7843fc00 disable enable_white 
+53d7 68018467 fetch 3 ,mem_le_crcinit 
+53d8 98001e00 iforce crc24_init 
+53d9 68008016 fetch 1 ,mem_le_ch_mapped 
+53da 1fed8400 reverse pdata ,temp 
+53db 79200401 set1 1 ,temp 
+53dc 18431c00 rshift temp ,white_init 
+53dd 20600000 rtn 
+
+lerx_setfreq:
+53de 204053e6 call le_setfreq 
+53df 2040291f call set_freq_rx 
+53e0 58000500 setarg param_pll_setup 
+53e1 20402a8f call sleep 
+53e2 20202924 branch rf_rx_enable 
+
+letx_setfreq:
+53e3 2036a939 branch txon ,match 
+
+letx_setfreq0:
+53e4 204053e6 call le_setfreq 
+53e5 20202933 branch set_freq_tx 
+
+le_setfreq:
+53e6 4720c028 bpatchx patch28_1 ,mem_patch28 
+53e7 20402918 call set_sync_on 
+53e8 6800848c fetch 1 ,mem_le_testtype 
+53e9 243a53f9 nbranch le_ctf_test ,blank 
+53ea 68008016 fetch 1 ,mem_le_ch_mapped 
+53eb 1fe67c24 sub pdata ,36 ,null 
+53ec 202153f3 branch le_ctf_normal ,positive 
+53ed 18000400 force 0 ,temp 
+53ee c1128000 rtneq 37 
+53ef 18000418 force 24 ,temp 
+53f0 c1130000 rtneq 38 
+53f1 1800044e force 78 ,temp 
+53f2 20600000 rtn 
+
+le_ctf_normal:
+53f3 1fe67c0a sub pdata ,10 ,null 
+53f4 202153f6 branch le_ctf_low ,positive 
+53f5 1fe0fe01 increase 1 ,pdata 
+
+le_ctf_low:
+53f6 1fe3fe00 lshift pdata ,pdata 
+53f7 1fe08402 add pdata ,2 ,temp 
+53f8 20600000 rtn 
+
+le_ctf_test:
+53f9 68008016 fetch 1 ,mem_le_ch_mapped 
+53fa 1fe38400 lshift pdata ,temp 
+53fb 20600000 rtn 
+
+le_sca_map:
+53fc d84001f4 arg 500 ,temp 
+53fd 207a0000 rtn blank 
+53fe d84000fa arg 250 ,temp 
+53ff c1008000 rtneq 1 
+5400 d8400096 arg 150 ,temp 
+5401 c1010000 rtneq 2 
+5402 d8400064 arg 100 ,temp 
+5403 c1018000 rtneq 3 
+5404 d840004b arg 75 ,temp 
+5405 c1020000 rtneq 4 
+5406 d8400032 arg 50 ,temp 
+5407 c1028000 rtneq 5 
+5408 d8400028 arg 40 ,temp 
+5409 c1030000 rtneq 6 
+540a d8400014 arg 20 ,temp 
+540b 20600000 rtn 
+
+le_adv_access:
+540c 588e89be setarg 0x8e89be 
+540d 1fed7e00 lshift8 pdata ,pdata 
+540e 1fe1fed6 or_into 0xd6 ,pdata 
+540f 98001200 iforce access 
+5410 58555555 setarg 0x555555 
+5411 60018467 store 3 ,mem_le_crcinit 
+5412 20600000 rtn 
+
+le_setup:
+5413 47214028 bpatchx patch28_2 ,mem_patch28 
+5414 78287c00 enable swfine 
+5415 68020463 fetch 4 ,mem_le_access 
+5416 98001200 iforce access 
+5417 20405466 call le_map_channel 
+5418 58000200 setarg 0x200 
+5419 2034d41c branch le_setup_master ,master 
+541a 6801044d fetch 2 ,mem_le_receive_window 
+541b 1fe37e00 rshift pdata ,pdata 
+
+le_setup_master:
+541c d8400500 arg param_pll_setup ,temp 
+541d 9840fe00 iadd temp ,pdata 
+541e 20402a24 call ahead_window 
+541f 1b427e00 deposit clke 
+5420 60030491 store 6 ,mem_le_rxon_ts 
+5421 20600000 rtn 
+
+le_next_adv_channel:
+5422 4721c028 bpatchx patch28_3 ,mem_patch28 
+5423 68008016 fetch 1 ,mem_le_ch_mapped 
+5424 c012d428 beq 37 ,le_next_adv_channel_curr_channel_37 
+5425 c013542e beq 38 ,le_next_adv_channel_curr_channel_38 
+5426 c013d434 beq 39 ,le_next_adv_channel_curr_channel_39 
+5427 20205434 branch le_next_adv_channel_curr_channel_39 
+
+le_next_adv_channel_curr_channel_37:
+5428 6808c48d fetcht 1 ,mem_le_adv_channel_map 
+5429 284ffe01 isolate1 bit_adv_channel_map_38 ,temp 
+542a 2020d43f branch set_le_next_adv_channel_38 ,true 
+542b 284ffe02 isolate1 bit_adv_channel_map_39 ,temp 
+542c 2020d444 branch set_le_next_adv_channel_39 ,true 
+542d 2020543a branch set_le_next_adv_channel_37 
+
+le_next_adv_channel_curr_channel_38:
+542e 6808c48d fetcht 1 ,mem_le_adv_channel_map 
+542f 284ffe02 isolate1 bit_adv_channel_map_39 ,temp 
+5430 2020d444 branch set_le_next_adv_channel_39 ,true 
+5431 284ffe00 isolate1 bit_adv_channel_map_37 ,temp 
+5432 2020d43a branch set_le_next_adv_channel_37 ,true 
+5433 2020543f branch set_le_next_adv_channel_38 
+
+le_next_adv_channel_curr_channel_39:
+5434 6808c48d fetcht 1 ,mem_le_adv_channel_map 
+5435 284ffe00 isolate1 bit_adv_channel_map_37 ,temp 
+5436 2020d43a branch set_le_next_adv_channel_37 ,true 
+5437 284ffe01 isolate1 bit_adv_channel_map_38 ,temp 
+5438 2020d43f branch set_le_next_adv_channel_38 ,true 
+5439 20205444 branch set_le_next_adv_channel_39 
+
+set_le_next_adv_channel_37:
+543a 70001625 jam 37 ,mem_le_ch_mapped 
+543b 68008ac2 fetch 1 ,mem_le_adv_channel_map_temp 
+543c 79207e00 set1 bit_adv_channel_map_37 ,pdata 
+543d 60008ac2 store 1 ,mem_le_adv_channel_map_temp 
+543e 20600000 rtn 
+
+set_le_next_adv_channel_38:
+543f 70001626 jam 38 ,mem_le_ch_mapped 
+5440 68008ac2 fetch 1 ,mem_le_adv_channel_map_temp 
+5441 79207e01 set1 bit_adv_channel_map_38 ,pdata 
+5442 60008ac2 store 1 ,mem_le_adv_channel_map_temp 
+5443 20600000 rtn 
+
+set_le_next_adv_channel_39:
+5444 70001627 jam 39 ,mem_le_ch_mapped 
+5445 68008ac2 fetch 1 ,mem_le_adv_channel_map_temp 
+5446 79207e02 set1 bit_adv_channel_map_39 ,pdata 
+5447 60008ac2 store 1 ,mem_le_adv_channel_map_temp 
+5448 20600000 rtn 
+
+le_context_nexthop:
+5449 47224028 bpatchx patch28_4 ,mem_patch28 
+544a 1a208c01 add rega ,coffset_mode ,contr 
+544b e8c08000 ifetch 1 ,contr 
+544c c4000000 rtnbit0 mode_le 
+544d 1a208a1a add rega ,coffset_le_event_cnt ,contw 
+544e e8a10000 ifetch 2 ,contw 
+544f 1fe0fe01 increase 1 ,pdata 
+5450 e0a10000 istore 2 ,contw 
+5451 1a208c19 add rega ,coffset_le_hop ,contr 
+5452 e8c08000 ifetch 1 ,contr 
+5453 1a208a18 add rega ,coffset_le_ch ,contw 
+5454 e8a88000 ifetcht 1 ,contw 
+5455 9840fe00 iadd temp ,pdata 
+5456 1fe67c24 sub pdata ,36 ,null 
+5457 20215459 branch le_nexthop_nowrap ,positive 
+5458 1fe0ffdb increase -37 ,pdata 
+
+le_nexthop_nowrap:
+5459 e0a08000 istore 1 ,contw 
+545a 20600000 rtn 
+
+le_calc_channel_map:
+545b 4722c028 bpatchx patch28_5 ,mem_patch28 
+545c 6802846f fetch 5 ,mem_le_channel_map 
+545d 18000400 force 0 ,temp 
+545e 18007225 force 37 ,loopcnt 
+
+le_count_channels_loop:
+545f c3005461 bbit0 0 ,le_count_channels_notused 
+5460 18408401 increase 1 ,temp 
+
+le_count_channels_notused:
+5461 1fe37e00 rshift pdata ,pdata 
+5462 c200545f loop le_count_channels_loop 
+5463 1840ffff add temp ,-1 ,pdata 
+5464 60008461 store 1 ,mem_le_channels 
+5465 20600000 rtn 
+
+le_map_channel:
+5466 47234028 bpatchx patch28_6 ,mem_patch28 
+5467 68008457 fetch 1 ,mem_le_ch 
+5468 98000e00 iforce queue 
+5469 680a846f fetcht 5 ,mem_le_channel_map 
+546a a84fffff qisolate1 temp 
+546b 2020d47c branch le_map_channel_end ,true 
+
+le_map_channel_next:
+546c 4723c028 bpatchx patch28_7 ,mem_patch28 
+546d 68008461 fetch 1 ,mem_le_channels 
+546e 98e67e00 isub queue ,pdata 
+546f 20215472 branch le_map_channel_cont ,positive 
+5470 1fe60fff sub pdata ,-1 ,queue 
+5471 2020546c branch le_map_channel_next 
+
+le_map_channel_cont:
+5472 18e27200 copy queue ,loopcnt 
+5473 18000e00 force 0 ,queue 
+
+le_map_channel_loop:
+5474 a84fffff qisolate1 temp 
+5475 2020d477 branch le_map_channel_skip ,true 
+5476 1f20f201 increase 1 ,loopcnt 
+
+le_map_channel_skip:
+5477 1f227e00 deposit loopcnt 
+5478 203a547c branch le_map_channel_end ,blank 
+5479 18e08e01 increase 1 ,queue 
+547a 1f20f3ff increase -1 ,loopcnt 
+547b 20205474 branch le_map_channel_loop 
+
+le_map_channel_end:
+547c 18e27e00 deposit queue 
+547d 60008016 store 1 ,mem_le_ch_mapped 
+547e 20600000 rtn 
+
+le_wait_tx:
+547f 2034d482 branch le_wait_master ,master 
+5480 37c18200 until null ,timeout 
+5481 20600000 rtn 
+
+le_wait_master:
+5482 d9600ea0 arg 0xea0 ,timeup 
+5483 34730200 until clkn_rt ,meet 
+5484 20600000 rtn 
+
+le_receive_adv:
+5485 78487c00 disable swfine 
+5486 6801436c fetch 2 ,mem_le_scan_window 
+5487 1fe21600 copy pdata ,timeup 
+5488 2020548e branch le_receive_packet 
+
+le_receive_slave:
+5489 47244029 bpatchx patch29_0 ,mem_patch29 
+548a 78287c00 enable swfine 
+548b 6801044d fetch 2 ,mem_le_receive_window 
+548c 680a44e5 fetcht 4 ,mem_le_transmit_window 
+548d 98409600 iadd temp ,timeup 
+
+le_receive_packet:
+548e 204053de call lerx_setfreq 
+
+le_receive_rxon:
+548f 4724c029 bpatchx patch29_1 ,mem_patch29 
+5490 204053d5 call le_prep 
+5491 7856fc00 disable match 
+5492 7826fc00 enable decode_fec0 
+5493 7830fc00 enable is_rx 
+5494 78507c00 disable is_tx 
+5495 19623600 copy timeup ,stop_watch 
+5496 37c18400 correlate null ,timeout 
+5497 2037549a branch le_receive_on_attempt ,attempt 
+5498 1b420400 copy clke ,temp 
+5499 600b009a storet 6 ,mem_sync_clke 
+
+le_receive_on_attempt:
+549a 242c264d nbranch end_of_packet ,sync 
+549b 203754a1 branch le_receive_skip ,attempt 
+549c dd2001e0 arg param_clke_cal_le ,clke_rt 
+549d 1c225000 copy bt_clk ,clke_bt 
+549e 6800843f fetch 1 ,mem_le_state 
+549f c301d4a1 bbit0 lestate_got_first_packet ,le_receive_skip 
+54a0 2055ab05 call lpm_adjust_clk ,wake 
+
+le_receive_skip:
+54a1 47254029 bpatchx patch29_2 ,mem_patch29 
+54a2 204029bb call save_rssi 
+54a3 7823fc00 enable enable_white 
+54a4 7824fc00 enable enable_crc 
+54a5 09800008 parse demod ,bucket ,8 
+54a6 19897e00 rshift3 pwindow ,pdata 
+54a7 600082d9 store 1 ,mem_le_rxbuf 
+54a8 09800008 parse demod ,bucket ,8 
+54a9 19897e00 rshift3 pwindow ,pdata 
+54aa e0a08000 istore 1 ,contw 
+54ab 1fe1723f and pdata ,0x3f ,loopcnt 
+54ac 2022d4b1 branch lerx_nopayload ,zero 
+
+lerx_loop:
+54ad 09800008 parse demod ,bucket ,8 
+54ae 19897e00 rshift3 pwindow ,pdata 
+54af e0a08000 istore 1 ,contw 
+54b0 c20054ad loop lerx_loop 
+
+lerx_nopayload:
+54b1 4725c029 bpatchx patch29_3 ,mem_patch29 
+54b2 09800018 parse demod ,bucket ,24 
+54b3 78287c00 enable swfine 
+54b4 db600664 arg param_sifs ,stop_watch 
+54b5 1fef7e00 rshift32 pdata ,pdata 
+54b6 1ff17e00 rshift16 pdata ,pdata 
+54b7 e0a18000 istore 3 ,contw 
+54b8 2023264d branch end_of_packet ,crc_failed 
+54b9 7836fc00 enable match 
+54ba 68008017 fetch 1 ,mem_last_freq 
+54bb 1fe0a200 add pdata ,0 ,rega 
+54bc 20402981 call rf_write_freq 
+54bd 7846fc00 disable decode_fec0 
+54be 20202918 branch set_sync_on 
+
+le_transmit_receive_sifs:
+54bf 47264029 bpatchx patch29_4 ,mem_patch29 
+54c0 204054c9 call le_transmit 
+
+le_transmit_receive_sifs_notx:
+54c1 68088017 fetcht 1 ,mem_last_freq 
+54c2 2040291f call set_freq_rx 
+54c3 20402924 call rf_rx_enable 
+54c4 78287c00 enable swfine 
+54c5 d960157c arg 5500 ,timeup 
+54c6 2020548f branch le_receive_rxon 
+
+le_transmit_norx:
+54c7 204054c9 call le_transmit 
+54c8 2020264d branch end_of_packet 
+
+le_transmit:
+54c9 4726c029 bpatchx patch29_5 ,mem_patch29 
+54ca 204053d5 call le_prep 
+54cb 204053e3 call letx_setfreq 
+54cc 202054cd branch le_transmit0 
+
+le_transmit0:
+54cd 79202a00 set1 txgfsk ,radio_ctrl 
+54ce 782efc00 enable encode_fec0 
+54cf 78307c00 enable is_tx 
+54d0 7850fc00 disable is_rx 
+54d1 2040547f call le_wait_tx 
+54d2 19317e00 rshift16 access ,pdata 
+54d3 1fecfe00 rshift8 pdata ,pdata 
+54d4 1ff1fe00 rshift4 pdata ,pdata 
+54d5 08008628 inject mod ,40 
+54d6 7823fc00 enable enable_white 
+54d7 7824fc00 enable enable_crc 
+54d8 47274029 bpatchx patch29_6 ,mem_patch29 
+54d9 6800c3dc fetch 1 ,mem_le_txheader 
+54da 08008608 inject mod ,8 
+54db e8c08000 ifetch 1 ,contr 
+54dc 1fe1723f and pdata ,0x3f ,loopcnt 
+54dd 08008608 inject mod ,8 
+54de 2022d4e2 branch letr_nopayload ,zero 
+
+letr_loop:
+54df e8c08000 ifetch 1 ,contr 
+54e0 08008608 inject mod ,8 
+54e1 c20054df loop letr_loop 
+
+letr_nopayload:
+54e2 78247c00 enable enable_parity 
+54e3 08008618 inject mod ,24 
+54e4 78447c00 disable enable_parity 
+54e5 37d38200 until null ,tx_clear 
+54e6 20000064 nop 100 
+54e7 784efc00 disable encode_fec0 
+54e8 20600000 rtn 
+
+le_send_adv_ind:
+54e9 4727c029 bpatchx patch29_7 ,mem_patch29 
+54ea 6800c484 fetch 1 ,mem_le_adv_type 
+54eb c000d4f9 beq adv_direct_ind ,le_send_adv_direct_ind 
+54ec 6800c485 fetch 1 ,mem_le_adv_own_addr_type 
+54ed 1ff27e00 lshift4 pdata ,pdata 
+54ee 1febfe00 lshift2 pdata ,pdata 
+54ef 6000c3dc store 1 ,mem_le_txheader 
+54f0 6808c36f fetcht 1 ,mem_le_adv_data_len 
+54f1 1840fe06 add temp ,6 ,pdata 
+54f2 6000c3dd store 1 ,mem_le_txlen 
+54f3 680344a0 fetch 6 ,mem_le_lap 
+54f4 600343de store 6 ,mem_le_txpayload 
+54f5 18427200 copy temp ,loopcnt 
+54f6 d8c04370 arg mem_le_adv_data ,contr 
+54f7 20407ef4 call memcpy_fast 
+54f8 20205504 branch le_send_adv_transmit 
+
+le_send_adv_direct_ind:
+54f9 6800c486 fetch 1 ,mem_le_adv_direct_addr_type 
+54fa 1ff27e00 lshift4 pdata ,pdata 
+54fb 1febfe00 lshift2 pdata ,pdata 
+54fc 1fe0fe01 increase 1 ,pdata 
+54fd 6000c3dc store 1 ,mem_le_txheader 
+54fe 5800000c setarg 12 
+54ff 6000c3dd store 1 ,mem_le_txlen 
+5500 680344a0 fetch 6 ,mem_le_lap 
+5501 600343de store 6 ,mem_le_txpayload 
+5502 680341d0 fetch 6 ,mem_hci_plap 
+5503 e0a30000 istore 6 ,contw 
+
+le_send_adv_transmit:
+5504 4728402a bpatchx patch2a_0 ,mem_patch2a 
+5505 68008000 fetch 1 ,mem_le_adv_transmit 
+5506 1fe0fe01 increase 1 ,pdata 
+5507 60008000 store 1 ,mem_le_adv_transmit 
+5508 db600708 arg 1800 ,stop_watch 
+5509 7856fc00 disable match 
+550a 202054bf branch le_transmit_receive_sifs 
+
+le_send_scan_request:
+550b 4728c02a bpatchx patch2a_1 ,mem_patch2a 
+550c 6800c49e fetch 1 ,mem_le_scan_type 
+550d c1808000 rtnne le_scan_type_active 
+550e 68008000 fetch 1 ,mem_le_adv_transmit 
+550f 1fe0fe01 increase 1 ,pdata 
+5510 60008000 store 1 ,mem_le_adv_transmit 
+5511 d8400c03 arg 0x0c03 ,temp 
+5512 6800c49f fetch 1 ,mem_le_scan_own_addr_type 
+5513 7d3a0406 nsetflag blank ,le_sender_addr_bit ,temp 
+5514 1a227e00 copy rega ,pdata 
+5515 7d3a0407 nsetflag blank ,le_receiver_addr_bit ,temp 
+5516 600943dc storet 2 ,mem_le_txheader 
+5517 680344a0 fetch 6 ,mem_le_lap 
+5518 e0a30000 istore 6 ,contw 
+5519 6803044f fetch 6 ,mem_le_plap 
+551a e0a30000 istore 6 ,contw 
+551b 202054bf branch le_transmit_receive_sifs 
+
+le_send_scan_response:
+551c 4729402a bpatchx patch2a_2 ,mem_patch2a 
+551d d8400004 arg scan_rsp ,temp 
+551e 6800c485 fetch 1 ,mem_le_adv_own_addr_type 
+551f 7d3a0406 nsetflag blank ,le_sender_addr_bit ,temp 
+5520 6008c3dc storet 1 ,mem_le_txheader 
+5521 6808c38f fetcht 1 ,mem_le_scan_data_len 
+5522 1840fe06 add temp ,6 ,pdata 
+5523 6000c3dd store 1 ,mem_le_txlen 
+5524 680344a0 fetch 6 ,mem_le_lap 
+5525 600343de store 6 ,mem_le_txpayload 
+5526 d8c04390 arg mem_le_scan_data ,contr 
+5527 18427200 copy temp ,loopcnt 
+5528 20407ef4 call memcpy_fast 
+5529 204054c7 call le_transmit_norx 
+552a 20205706 branch le_adv_not_match 
+
+le_connect_request:
+552b 4729c02a bpatchx patch2a_3 ,mem_patch2a 
+552c 18007fff force -1 ,pdata 
+552d 38080001 setsect 2 ,1 
+552e 6002846f store 5 ,mem_le_channel_map 
+552f 2040545b call le_calc_channel_map 
+5530 18007204 force 4 ,loopcnt 
+5531 d8a00463 arg mem_le_access ,contw 
+5532 2040630d call generate_random_loop 
+5533 6801449c fetch 2 ,mem_le_timeout 
+5534 6001046d store 2 ,mem_le_superto 
+
+le_con_req_hop_retry:
+5535 180a7e00 random pdata 
+5536 1fe17e0f and_into 0xf ,pdata 
+5537 1fe67c04 sub pdata ,4 ,null 
+5538 20215535 branch le_con_req_hop_retry ,positive 
+5539 60008458 store 1 ,mem_le_hop 
+553a 600086e6 store 1 ,mem_tmp1 
+553b 472a402a bpatchx patch2a_4 ,mem_patch2a 
+553c 68094367 fetcht 2 ,mem_le_conn_interval 
+553d 60090441 storet 2 ,mem_le_tsniff 
+553e 18422600 copy temp ,regc 
+553f 1c40fe07 add clkn_bt ,7 ,pdata 
+5540 9a66fc00 idiv regc 
+5541 20407f86 call wait_div_end 
+5542 18072200 remainder rega 
+5543 9a267e00 isub rega ,pdata 
+5544 9a60fe00 iadd regc ,pdata 
+5545 68094365 fetcht 2 ,mem_le_dsniff 
+5546 9840fe00 iadd temp ,pdata 
+5547 60020443 store 4 ,mem_le_anchor 
+5548 9c462200 isub clkn_bt ,rega 
+5549 1a20a3fa increase -6 ,rega 
+554a da402205 arg 0x2205 ,regb 
+554b 6800c495 fetch 1 ,mem_le_conn_own_addr_type 
+554c 7d3a2406 nsetflag blank ,le_sender_addr_bit ,regb 
+554d 6800c48e fetch 1 ,mem_le_conn_peer_addr_type 
+554e 7d3a2407 nsetflag blank ,le_receiver_addr_bit ,regb 
+554f 1a427e00 copy regb ,pdata 
+5550 600143dc store 2 ,mem_le_txheader 
+5551 680344a0 fetch 6 ,mem_le_lap 
+5552 e0a30000 istore 6 ,contw 
+5553 6803044f fetch 6 ,mem_le_plap 
+5554 e0a30000 istore 6 ,contw 
+5555 68020463 fetch 4 ,mem_le_access 
+5556 e0a20000 istore 4 ,contw 
+5557 180a7e00 random pdata 
+5558 e0a10000 istore 2 ,contw 
+5559 180a7e00 random pdata 
+555a e0a08000 istore 1 ,contw 
+555b 18007e02 force 2 ,pdata 
+555c e0a08000 istore 1 ,contw 
+555d 1a2b7e00 rshift2 rega ,pdata 
+555e e0a10000 istore 2 ,contw 
+555f 1a6b7e00 rshift2 regc ,pdata 
+5560 e0a10000 istore 2 ,contw 
+5561 472ac02a bpatchx patch2a_5 ,mem_patch2a 
+5562 58000000 setarg 0 
+5563 e0a10000 istore 2 ,contw 
+5564 6801449c fetch 2 ,mem_le_timeout 
+5565 e0a10000 istore 2 ,contw 
+5566 6802846f fetch 5 ,mem_le_channel_map 
+5567 e0a28000 istore 5 ,contw 
+5568 68008458 fetch 1 ,mem_le_hop 
+5569 d84000a0 arg param_le_sca ,temp 
+556a 9841fe00 ior temp ,pdata 
+556b e0a08000 istore 1 ,contw 
+556c 204054c7 call le_transmit_norx 
+556d 580043dc setarg mem_le_txheader 
+556e 1fe08c12 add pdata ,18 ,contr 
+556f e8c18000 ifetch 3 ,contr 
+5570 60018467 store 3 ,mem_le_crcinit 
+5571 20600000 rtn 
+
+le_init_adv:
+5572 472b402a bpatchx patch2a_6 ,mem_patch2a 
+5573 7854fc00 disable master 
+5574 2020540c branch le_adv_access 
+
+le_update_param:
+5575 6800843f fetch 1 ,mem_le_state 
+5576 c4028000 rtnbit0 lestate_update_param 
+5577 68010459 fetch 2 ,mem_le_event_count 
+5578 6809045f fetcht 2 ,mem_le_instant 
+5579 98467e00 isub temp ,pdata 
+557a 24610000 nrtn positive 
+557b 60010a9a store 2 ,mem_pdatatemp 
+557c 472bc02a bpatchx patch2a_7 ,mem_patch2a 
+557d 6800843f fetch 1 ,mem_le_state 
+557e 793ffe05 set0 lestate_update_param ,pdata 
+557f 793ffe03 set0 lestate_got_first_packet ,pdata 
+5580 6000843f store 1 ,mem_le_state 
+5581 68020443 fetch 4 ,mem_le_anchor 
+5582 68090441 fetcht 2 ,mem_le_tsniff 
+5583 60090aa2 storet 2 ,mem_temp 
+5584 98462200 isub temp ,rega 
+5585 472c402b bpatchx patch2b_0 ,mem_patch2b 
+5586 6800c3d3 fetch 1 ,mem_le_new_param 
+5587 6000846a store 1 ,mem_le_window_size 
+5588 e8c90000 ifetcht 2 ,contr 
+5589 e8c10000 ifetch 2 ,contr 
+558a 1febfe00 lshift2 pdata ,pdata 
+558b 60010441 store 2 ,mem_le_tsniff 
+558c 184b8400 lshift2 temp ,temp 
+558d 9840fe00 iadd temp ,pdata 
+558e e8ca0000 ifetcht 4 ,contr 
+558f 600a046b storet 4 ,mem_le_slave_latency 
+5590 9a20fe00 iadd rega ,pdata 
+5591 1fe22800 copy pdata ,regab 
+5592 68010441 fetch 2 ,mem_le_tsniff 
+5593 68090aa2 fetcht 2 ,mem_temp 
+5594 98467e00 isub temp ,pdata 
+5595 68090a9a fetcht 2 ,mem_pdatatemp 
+5596 984ffe00 imul32 temp ,pdata 
+5597 9a80fe00 iadd regab ,pdata 
+5598 60020443 store 4 ,mem_le_anchor 
+5599 20405713 call le_receive_window_size 
+559a 6801046d fetch 2 ,mem_le_superto 
+559b 600144ba store 2 ,mem_le_init_superto 
+559c 20600000 rtn 
+
+le_update_channel_map:
+559d 472cc02b bpatchx patch2b_1 ,mem_patch2b 
+559e 6800843f fetch 1 ,mem_le_state 
+559f c4030000 rtnbit0 lestate_update_map 
+55a0 68010459 fetch 2 ,mem_le_event_count 
+55a1 6809045f fetcht 2 ,mem_le_instant 
+55a2 98467e00 isub temp ,pdata 
+55a3 24610000 nrtn positive 
+55a4 6800843f fetch 1 ,mem_le_state 
+55a5 793ffe06 set0 lestate_update_map ,pdata 
+55a6 6000843f store 1 ,mem_le_state 
+55a7 6802c3ce fetch 5 ,mem_le_new_map 
+55a8 6002846f store 5 ,mem_le_channel_map 
+55a9 2020545b branch le_calc_channel_map 
+
+le_acknowledge:
+55aa 472d402b bpatchx patch2b_2 ,mem_patch2b 
+55ab 204056ed call le_supervision_flush 
+55ac 204055c0 call le_check_wak 
+55ad 680082d9 fetch 1 ,mem_le_rxbuf 
+55ae 2feffe04 isolate1 md ,pdata 
+55af 7920802a setflag true ,mark_ble_rx_md ,mark 
+55b0 1fe37e00 rshift pdata ,pdata 
+55b1 9842fe00 ixor temp ,pdata 
+55b2 2feffe02 isolate1 nesn ,pdata 
+55b3 7920800f setflag true ,mark_old_packet ,mark 
+55b4 c6078000 rtnmark1 mark_old_packet 
+55b5 680082da fetch 1 ,mem_le_rxbuf + 1 
+55b6 203a55bc branch le_ack_unenc ,blank 
+55b7 6800843f fetch 1 ,mem_le_state 
+55b8 c30255bc bbit0 lestate_encryption ,le_ack_unenc 
+55b9 2040748d call load_sk 
+55ba 204073fb call le_decrypt 
+55bb 247a0000 nrtn blank 
+
+le_ack_unenc:
+55bc 68088456 fetcht 1 ,mem_le_arq 
+55bd 79400402 setflip nesn ,temp 
+55be 60088456 storet 1 ,mem_le_arq 
+55bf 20600000 rtn 
+
+le_check_wak:
+55c0 472dc02b bpatchx patch2b_3 ,mem_patch2b 
+55c1 68088456 fetcht 1 ,mem_le_arq 
+55c2 284c0005 isolate0 wak ,temp 
+55c3 20608000 rtn true 
+55c4 680082d9 fetch 1 ,mem_le_rxbuf 
+55c5 1fe3fe00 lshift pdata ,pdata 
+55c6 9842fe00 ixor temp ,pdata 
+55c7 c4018000 rtnbit0 sn 
+55c8 793f8405 set0 wak ,temp 
+55c9 79400403 setflip sn ,temp 
+55ca 60088456 storet 1 ,mem_le_arq 
+55cb 28400603 compare 3 ,temp ,3 
+55cc 24608000 nrtn true 
+55cd 6800c3de fetch 1 ,mem_le_txpayload 
+55ce c002d5d2 beq ll_start_enc_req ,le_set_enc 
+55cf 6800c4c5 fetch 1 ,mem_le_enc_state 
+55d0 c00155d6 beq flag_le_enc_pause ,le_clear_enc 
+55d1 20600000 rtn 
+
+le_set_enc:
+55d2 6800843f fetch 1 ,mem_le_state 
+55d3 79207e04 set1 lestate_encryption ,pdata 
+55d4 6000843f store 1 ,mem_le_state 
+55d5 20600000 rtn 
+
+le_clear_enc:
+55d6 472e402b bpatchx patch2b_4 ,mem_patch2b 
+55d7 7044c500 jam flag_le_enc_null ,mem_le_enc_state 
+55d8 dfe00000 arg 0 ,pdata 
+55d9 6002440d store 4 ,mem_le_last_mic 
+55da 6002c403 store 5 ,mem_le_pcnt_tx 
+55db 79207e27 set1 39 ,pdata 
+55dc 6002c408 store 5 ,mem_le_pcnt_rx 
+55dd 6800843f fetch 1 ,mem_le_state 
+55de 793ffe04 set0 lestate_encryption ,pdata 
+55df 6000843f store 1 ,mem_le_state 
+55e0 20600000 rtn 
+
+le_wait_adv:
+55e1 472ec02b bpatchx patch2b_5 ,mem_patch2b 
+55e2 20405422 call le_next_adv_channel 
+55e3 20405485 call le_receive_adv 
+55e4 68008001 fetch 1 ,mem_le_adv_waitcnt 
+55e5 1fe0fe01 increase 1 ,pdata 
+55e6 60008001 store 1 ,mem_le_adv_waitcnt 
+55e7 20600000 rtn 
+
+le_scan:
+55e8 472f402b bpatchx patch2b_6 ,mem_patch2b 
+55e9 6800c369 fetch 1 ,mem_le_scan_enable 
+55ea c1808000 rtnne le_scan_enable 
+55eb d8e00002 arg le_scan_interval_timer ,queue 
+55ec 20407f16 call timer_check 
+55ed 247a0000 nrtn blank 
+55ee 6801436a fetch 2 ,mem_le_scan_interval 
+55ef 6809436c fetcht 2 ,mem_le_scan_window 
+55f0 98467e00 isub temp ,pdata 
+55f1 d8e00002 arg le_scan_interval_timer ,queue 
+55f2 20407f08 call timer_init 
+55f3 7854fc00 disable master 
+55f4 20405572 call le_init_adv 
+55f5 204055e1 call le_wait_adv 
+55f6 24768000 nrtn match 
+55f7 472fc02b bpatchx patch2b_7 ,mem_patch2b 
+55f8 680302db fetch 6 ,mem_le_rxbuf + 2 
+55f9 6003044f store 6 ,mem_le_plap 
+55fa 68008002 fetch 1 ,mem_le_adv_rcv 
+55fb 1fe0fe01 increase 1 ,pdata 
+55fc 60008002 store 1 ,mem_le_adv_rcv 
+55fd 20405608 call le_create_conn 
+55fe 20748000 rtn master 
+55ff 2040550b call le_send_scan_request 
+5600 24768000 nrtn match 
+5601 4730402c bpatchx patch2c_0 ,mem_patch2c 
+5602 68008004 fetch 1 ,mem_le_scanrsp_rcv 
+5603 1fe0fe01 increase 1 ,pdata 
+5604 60008004 store 1 ,mem_le_scanrsp_rcv 
+5605 680482e1 fetch 9 ,mem_le_rxbuf + 8 
+5606 60048101 store 9 ,mem_tmp_buffer 
+5607 20600000 rtn 
+
+le_create_conn:
+5608 4730c02c bpatchx patch2c_1 ,mem_patch2c 
+5609 6800849b fetch 1 ,mem_cmd_le_create_conn 
+560a c18d8000 rtnne hci_cmd_le_create_conn 
+560b 6803044f fetch 6 ,mem_le_plap 
+560c 680b448f fetcht 6 ,mem_le_conn_peer_addr 
+560d 98467c00 isub temp ,null 
+560e 24628000 nrtn zero 
+560f 2040223b call context_new 
+5610 24628000 nrtn zero 
+5611 2040552b call le_connect_request 
+5612 20405340 call le_init_master 
+5613 4731402c bpatchx patch2c_2 ,mem_patch2c 
+5614 7041ce00 jam 0 ,mem_hci_cmd 
+5615 70047600 jam 0 ,mem_le_peer_sca 
+5616 70436900 jam 0 ,mem_le_scan_enable 
+5617 70049b00 jam 0 ,mem_cmd_le_create_conn 
+5618 20202223 branch context_save 
+
+le_scan_check_sender_addr_type:
+5619 da200001 arg 1 ,rega 
+561a 680082d9 fetch 1 ,mem_le_rxbuf 
+561b c3830000 rtnbit1 le_sender_addr_bit 
+561c da200000 arg 0 ,rega 
+561d 20600000 rtn 
+
+le_prepare_tx:
+561e 4731c02c bpatchx patch2c_3 ,mem_patch2c 
+561f 68008456 fetch 1 ,mem_le_arq 
+5620 c3828000 rtnbit1 wak 
+5621 20405642 call le_check_tx_md 
+5622 20405873 call le_fifo_get_first_tx_ptr 
+5623 203a5664 branch le_send_empty ,blank 
+5624 e8c08000 ifetch 1 ,contr 
+5625 e8c88000 ifetcht 1 ,contr 
+5626 18422200 copy temp ,rega 
+5627 9a267e00 isub rega ,pdata 
+5628 d840001b arg le_max_paket_len ,temp 
+5629 20407fdd call not_greater_than 
+562a 1fe20400 copy pdata ,temp 
+562b e8c08000 ifetch 1 ,contr 
+562c 1fe20200 copy pdata ,type 
+562d 1a227e00 copy rega ,pdata 
+562e 98c08c00 iadd contr ,contr 
+562f d8a043de arg mem_le_txpayload ,contw 
+5630 18427200 copy temp ,loopcnt 
+5631 20407f01 call memcpy 
+5632 20405654 call le_update_tx_type 
+5633 20405666 call le_send_packet 
+5634 20405873 call le_fifo_get_first_tx_ptr 
+5635 e8c08000 ifetch 1 ,contr 
+5636 1fe22200 copy pdata ,rega 
+5637 18c22600 copy contr ,regc 
+5638 e8c88000 ifetcht 1 ,contr 
+5639 18422400 copy temp ,regb 
+563a 9a467e00 isub regb ,pdata 
+563b d840001b arg le_max_paket_len ,temp 
+563c 20407fdd call not_greater_than 
+563d 9a40fe00 iadd regb ,pdata 
+563e e2608000 istore 1 ,regc 
+563f 9a267c00 isub rega ,null 
+5640 24628000 nrtn zero 
+5641 20205896 branch le_fifo_release_first_node 
+
+le_check_tx_md:
+5642 20405649 call le_check_continue 
+5643 c6148000 rtnmark1 mark_ble_tx_md 
+5644 6800c4e9 fetch 1 ,mem_le_configuration 
+5645 c3015652 bbit0 bit_ble_transmit_packet_by_md ,le_clear_md 
+5646 20405876 call le_fifo_get_second_tx_ptr 
+5647 203a5652 branch le_clear_md ,blank 
+5648 20205650 branch le_set_md 
+
+le_check_continue:
+5649 20405873 call le_fifo_get_first_tx_ptr 
+564a 203a5652 branch le_clear_md ,blank 
+564b e8c08000 ifetch 1 ,contr 
+564c e8c88000 ifetcht 1 ,contr 
+564d 98467e00 isub temp ,pdata 
+564e 1fe67c1b sub pdata ,le_max_paket_len ,null 
+564f 20215652 branch le_clear_md ,positive 
+
+le_set_md:
+5650 79200029 set1 mark_ble_tx_md ,mark 
+5651 20600000 rtn 
+
+le_clear_md:
+5652 793f8029 set0 mark_ble_tx_md ,mark 
+5653 20600000 rtn 
+
+le_update_tx_type:
+5654 1a227e00 copy rega ,pdata 
+5655 207a0000 rtn blank 
+5656 d8200001 arg llid_continue ,type 
+5657 20600000 rtn 
+
+le_att_check_notification_enable:
+5658 4732402c bpatchx patch2c_4 ,mem_patch2c 
+5659 18408401 increase 1 ,temp 
+565a 2040576a call le_att_get_handle_ptr 
+565b 18c08dfe increase -2 ,contr 
+565c e8c10000 ifetch 2 ,contr 
+565d d8402902 arg client_charactertic_configuration ,temp 
+565e 98467c00 isub temp ,null 
+565f 24628000 nrtn zero 
+5660 18c08c01 increase 1 ,contr 
+5661 18c22200 copy contr ,rega 
+5662 e8c08000 ifetch 1 ,contr 
+5663 20600000 rtn 
+
+le_send_empty:
+5664 18000400 force 0 ,temp 
+5665 18000201 force 1 ,type 
+
+le_send_packet:
+5666 4732c02c bpatchx patch2c_5 ,mem_patch2c 
+5667 6008c3dd storet 1 ,mem_le_txlen 
+5668 68088456 fetcht 1 ,mem_le_arq 
+5669 79200405 set1 wak ,temp 
+566a 18417efc and temp ,0xfc ,pdata 
+566b 9821fe00 ior type ,pdata 
+566c 60008456 store 1 ,mem_le_arq 
+566d 1fe17e1f and_into 0x1f ,pdata 
+566e 280ffe29 isolate1 mark_ble_tx_md ,mark 
+566f 7920fe04 setflag true ,md ,pdata 
+5670 6000c3dc store 1 ,mem_le_txheader 
+5671 6800c3dc fetch 1 ,mem_le_txheader 
+5672 28200601 compare 1 ,type ,3 
+5673 2420d676 nbranch le_send_no_txlen ,true 
+5674 6800c3dd fetch 1 ,mem_le_txlen 
+5675 207a0000 rtn blank 
+
+le_send_no_txlen:
+5676 6800843f fetch 1 ,mem_le_state 
+5677 c4020000 rtnbit0 lestate_encryption 
+5678 2040748d call load_sk 
+5679 202073e3 branch le_encrypt 
+
+get_lpm_wake_ble_rx_lock:
+567a d8e00000 arg wake_lock_ble_rx ,queue 
+567b 20202c32 branch lpm_get_wake_lock 
+
+put_lpm_wake_ble_rx_lock:
+567c d8e00000 arg wake_lock_ble_rx ,queue 
+567d 20202c36 branch lpm_put_wake_lock 
+
+le_parse:
+567e 4733402c bpatchx patch2c_6 ,mem_patch2c 
+567f c6078000 rtnmark1 mark_old_packet 
+5680 20405890 call le_fifo_check_full 
+5681 247a0000 nrtn blank 
+5682 680082d9 fetch 1 ,mem_le_rxbuf 
+5683 1fe17e03 and pdata ,0x3 ,pdata 
+5684 6000c50c store 1 ,mem_le_packet_llid 
+5685 e8c08000 ifetch 1 ,contr 
+5686 1fe17e1f and pdata ,0x1f ,pdata 
+5687 6000c50b store 1 ,mem_le_packet_size 
+5688 207a0000 rtn blank 
+5689 18c27e00 copy contr ,pdata 
+568a 6001450d store 2 ,mem_le_payload_ptr 
+568b 6800c50c fetch 1 ,mem_le_packet_llid 
+568c c001dc64 beq llid_le_ll ,le_parse_ll 
+
+le_parse_l2cap:
+568d 2040569a call le_check_l2cap_complete 
+568e 2434567a nbranch get_lpm_wake_ble_rx_lock ,user 
+568f 2040567c call put_lpm_wake_ble_rx_lock 
+5690 6801450d fetch 2 ,mem_le_payload_ptr 
+5691 1fe20c00 copy pdata ,contr 
+5692 e8c10000 ifetch 2 ,contr 
+5693 600144fc store 2 ,mem_le_l2cap_size 
+5694 4733c02c bpatchx patch2c_7 ,mem_patch2c 
+5695 e8c10000 ifetch 2 ,contr 
+5696 c00258ab beq le_l2cap_cid_att ,le_parse_att 
+5697 c0035af4 beq le_l2cap_cid_smp ,le_parse_smp 
+5698 c002dab6 beq le_l2cap_cid_signal ,le_parse_signaling 
+5699 20600000 rtn 
+
+le_check_l2cap_complete:
+569a 6800c50c fetch 1 ,mem_le_packet_llid 
+569b c00156a9 beq llid_start ,le_check_l2cap_llid_start 
+569c c000d6c1 beq llid_continue ,le_check_l2cap_llid_continue 
+569d 20600000 rtn 
+
+le_check_l2cap_cid_legal:
+569e 20407fe7 call enable_user 
+569f d8400004 arg le_l2cap_cid_att ,temp 
+56a0 9fe67c00 isub pdata ,null 
+56a1 20628000 rtn zero 
+56a2 d8400005 arg le_l2cap_cid_signal ,temp 
+56a3 9fe67c00 isub pdata ,null 
+56a4 20628000 rtn zero 
+56a5 d8400006 arg le_l2cap_cid_smp ,temp 
+56a6 9fe67c00 isub pdata ,null 
+56a7 20628000 rtn zero 
+56a8 20207fe9 branch disable_user 
+
+le_check_l2cap_llid_start:
+56a9 6801450d fetch 2 ,mem_le_payload_ptr 
+56aa 1fe20c00 copy pdata ,contr 
+56ab e8c10000 ifetch 2 ,contr 
+56ac 600144fc store 2 ,mem_le_l2cap_size 
+56ad e8c10000 ifetch 2 ,contr 
+56ae 2040569e call le_check_l2cap_cid_legal 
+56af 24740000 nrtn user 
+56b0 6808c50b fetcht 1 ,mem_le_packet_size 
+56b1 6008c4fe storet 1 ,mem_le_packet_len_recved 
+56b2 680144fc fetch 2 ,mem_le_l2cap_size 
+56b3 1fe0fe04 increase 4 ,pdata 
+56b4 98467c00 isub temp ,null 
+56b5 2022ffe7 branch enable_user ,zero 
+56b6 6800c50b fetch 1 ,mem_le_packet_size 
+56b7 1fe27200 copy pdata ,loopcnt 
+56b8 d8a00311 arg mem_le_l2capbuf ,contw 
+56b9 6801450d fetch 2 ,mem_le_payload_ptr 
+56ba 1fe20c00 copy pdata ,contr 
+56bb 20407f01 call memcpy 
+56bc 20207fe9 branch disable_user 
+
+le_check_l2cap_continue_legal:
+56bd 20407fe7 call enable_user 
+56be 6800c4fe fetch 1 ,mem_le_packet_len_recved 
+56bf 247a0000 nrtn blank 
+56c0 20207fe9 branch disable_user 
+
+le_check_l2cap_llid_continue:
+56c1 204056bd call le_check_l2cap_continue_legal 
+56c2 24740000 nrtn user 
+56c3 6800c4fe fetch 1 ,mem_le_packet_len_recved 
+56c4 d8a00311 arg mem_le_l2capbuf ,contw 
+56c5 98a0a200 iadd contw ,rega 
+56c6 6808c50b fetcht 1 ,mem_le_packet_size 
+56c7 9840fe00 iadd temp ,pdata 
+56c8 6000c4fe store 1 ,mem_le_packet_len_recved 
+56c9 6800c50b fetch 1 ,mem_le_packet_size 
+56ca 1fe27200 copy pdata ,loopcnt 
+56cb 1a220a00 copy rega ,contw 
+56cc 6801450d fetch 2 ,mem_le_payload_ptr 
+56cd 1fe20c00 copy pdata ,contr 
+56ce 20407ef4 call memcpy_fast 
+56cf 58000311 setarg mem_le_l2capbuf 
+56d0 6001450d store 2 ,mem_le_payload_ptr 
+56d1 680144fc fetch 2 ,mem_le_l2cap_size 
+56d2 1fe0fe04 increase 4 ,pdata 
+56d3 6808c4fe fetcht 1 ,mem_le_packet_len_recved 
+56d4 98467c00 isub temp ,null 
+56d5 2022ffe7 branch enable_user ,zero 
+56d6 20207fe9 branch disable_user 
+
+le_get_search_att_type:
+56d7 20407ea5 call store_contr 
+56d8 d8a0445e arg mem_le_search_att_type_length ,contw 
+
+le_get_search_common:
+56d9 680144fc fetch 2 ,mem_le_l2cap_size 
+56da 1fe0fffb increase -5 ,pdata 
+
+le_get_search_common2:
+56db e0a08000 istore 1 ,contw 
+56dc 1fe27200 copy pdata ,loopcnt 
+56dd 20407e9f call get_contr 
+56de 20207ef4 branch memcpy_fast 
+
+le_get_search_att_uuid:
+56df 20407ea5 call store_contr 
+56e0 d8a04471 arg mem_le_search_uuid_length ,contw 
+56e1 202056d9 branch le_get_search_common 
+
+le_writeatt_cb:
+56e2 680141f9 fetch 2 ,mem_cb_att_write 
+56e3 20207f9c branch callback_func 
+
+le_supervision_update:
+56e4 680a045b fetcht 4 ,mem_le_supervision_timer 
+56e5 20402a7b call get_clkbt 
+56e6 98461600 isub temp ,timeup 
+56e7 19627e00 deposit timeup 
+56e8 6809046d fetcht 2 ,mem_le_superto 
+56e9 18520400 lshift4 temp ,temp 
+56ea 18438400 lshift temp ,temp 
+56eb 98467e00 isub temp ,pdata 
+56ec 20600000 rtn 
+
+le_supervision_flush:
+56ed 20402a7b call get_clkbt 
+56ee 6002045b store 4 ,mem_le_supervision_timer 
+56ef 20600000 rtn 
+
+le_adv:
+56f0 70001624 jam 36 ,mem_le_ch_mapped 
+56f1 700ac200 jam 0 ,mem_le_adv_channel_map_temp 
+
+le_adv_loop:
+56f2 4734402d bpatchx patch2d_0 ,mem_patch2d 
+56f3 6800c36e fetch 1 ,mem_le_adv_enable 
+56f4 207a0000 rtn blank 
+56f5 d8e00000 arg le_adv_interval_timer ,queue 
+56f6 20407f16 call timer_check 
+56f7 247a0000 nrtn blank 
+56f8 4734c02d bpatchx patch2d_1 ,mem_patch2d 
+
+le_adv_loop_tx:
+56f9 7854fc00 disable master 
+56fa 78287c00 enable swfine 
+56fb 20405572 call le_init_adv 
+56fc 20405422 call le_next_adv_channel 
+56fd 204054e9 call le_send_adv_ind 
+56fe 2436d706 nbranch le_adv_not_match ,match 
+56ff 68008003 fetch 1 ,mem_le_req_rcv 
+5700 1fe0fe01 increase 1 ,pdata 
+5701 60008003 store 1 ,mem_le_req_rcv 
+5702 680082d9 fetch 1 ,mem_le_rxbuf 
+5703 1fe17e0f and pdata ,0x0f ,pdata 
+5704 c001d51c beq scan_req ,le_send_scan_response 
+5705 c002d728 beq connect_req ,le_parse_connect_req 
+
+le_adv_not_match:
+5706 4735402d bpatchx patch2d_2 ,mem_patch2d 
+5707 180a7e00 random pdata 
+5708 d84001ff arg 0x1ff ,temp 
+5709 98417e00 iand temp ,pdata 
+570a 1fe0fefa add pdata ,250 ,pdata 
+570b 20403cbe call delay 
+570c 68008ac2 fetch 1 ,mem_le_adv_channel_map_temp 
+570d 6808c48d fetcht 1 ,mem_le_adv_channel_map 
+570e 98467c00 isub temp ,null 
+570f 2422d6f2 nbranch le_adv_loop ,zero 
+5710 d8e00000 arg le_adv_interval_timer ,queue 
+5711 68014482 fetch 2 ,mem_le_adv_interval 
+5712 20207f08 branch timer_init 
+
+le_receive_window_size:
+5713 4735c02d bpatchx patch2d_3 ,mem_patch2d 
+5714 68008476 fetch 1 ,mem_le_peer_sca 
+5715 204053fc call le_sca_map 
+5716 68010441 fetch 2 ,mem_le_tsniff 
+5717 984ffe00 imul32 temp ,pdata 
+5718 d8400177 arg 375 ,temp 
+5719 984ffe00 imul32 temp ,pdata 
+571a d84186a0 arg 100000 ,temp 
+571b 9846fc00 idiv temp 
+571c 6800846a fetch 1 ,mem_le_window_size 
+571d d8404e20 arg 20000 ,temp 
+571e 984ffe00 imul32 temp ,pdata 
+571f 9840fe00 iadd temp ,pdata 
+5720 600244e5 store 4 ,mem_le_transmit_window 
+5721 4736402d bpatchx patch2d_4 ,mem_patch2d 
+5722 680140c1 fetch 2 ,mem_rx_window_sniff 
+5723 20407f86 call wait_div_end 
+5724 18078400 quotient temp 
+5725 9840fe00 iadd temp ,pdata 
+5726 6001044d store 2 ,mem_le_receive_window 
+5727 20600000 rtn 
+
+le_parse_connect_req:
+5728 4736c02d bpatchx patch2d_5 ,mem_patch2d 
+5729 680302e1 fetch 6 ,mem_le_rxbuf + 8 
+572a 680b44a0 fetcht 6 ,mem_le_lap 
+572b 98467c00 isub temp ,null 
+572c 24628000 nrtn zero 
+572d 20405619 call le_scan_check_sender_addr_type 
+572e 1a227e00 copy rega ,pdata 
+572f 6000c48e store 1 ,mem_le_conn_peer_addr_type 
+5730 680382ee fetch 7 ,mem_le_rxbuf + 21 
+5731 60038101 store 7 ,mem_tmp_buffer 
+5732 e8c40000 ifetch 8 ,contr 
+5733 e0a40000 istore 8 ,contw 
+5734 680302db fetch 6 ,mem_le_rxbuf + 2 
+5735 6003044f store 6 ,mem_le_plap 
+5736 18c08c06 increase 6 ,contr 
+5737 e8c40000 ifetch 8 ,contr 
+5738 60040463 store 8 ,mem_le_access 
+5739 e8c90000 ifetcht 2 ,contr 
+573a 4737402d bpatchx patch2d_6 ,mem_patch2d 
+573b 184b8400 lshift2 temp ,temp 
+573c e8c10000 ifetch 2 ,contr 
+573d 1febfe00 lshift2 pdata ,pdata 
+573e 60010441 store 2 ,mem_le_tsniff 
+573f 60020443 store 4 ,mem_le_anchor 
+5740 98467e00 isub temp ,pdata 
+5741 1fe0d1fe add pdata ,-2 ,clke_bt 
+5742 e8c48000 ifetch 9 ,contr 
+5743 6004846b store 9 ,mem_le_slave_latency 
+5744 4737c02d bpatchx patch2d_7 ,mem_patch2d 
+5745 e8c08000 ifetch 1 ,contr 
+5746 1ff18400 rshift4 pdata ,temp 
+5747 18430400 rshift temp ,temp 
+5748 60088476 storet 1 ,mem_le_peer_sca 
+5749 1fe17e1f and_into 0x1f ,pdata 
+574a 60008458 store 1 ,mem_le_hop 
+574b 20405713 call le_receive_window_size 
+574c 2040545b call le_calc_channel_map 
+574d 2040534c call le_init_slave 
+574e 2040223b call context_new 
+574f 24628000 nrtn zero 
+5750 4738402e bpatchx patch2e_0 ,mem_patch2e 
+5751 20402841 call calc_clke_offset 
+5752 20405ad3 call le_l2cap_reset_signaling_identifier 
+5753 700a9914 jam bt_evt_le_connected ,mem_fifo_temp 
+5754 20407d86 call ui_ipc_send_event 
+5755 20202223 branch context_save 
+
+le_init_attlist_search:
+5756 4738c02e bpatchx patch2e_1 ,mem_patch2e 
+5757 6801445a fetch 2 ,mem_le_search_handle_start 
+5758 98002400 iforce regb 
+5759 6801445c fetch 2 ,mem_le_search_handle_end 
+575a 98002600 iforce regc 
+575b 680144bc fetch 2 ,mem_ui_le_uuid_table 
+575c 98000c00 iforce contr 
+575d 78347c00 enable user 
+575e 20600000 rtn 
+
+le_att_handle_inrange:
+575f e8c10000 ifetch 2 ,contr 
+5760 207a0000 rtn blank 
+5761 9a467c00 isub regb ,null 
+5762 24610000 nrtn positive 
+5763 9a667c00 isub regc ,null 
+5764 20628000 rtn zero 
+5765 20215768 branch le_att_handle_blank ,positive 
+5766 18007c01 force 1 ,null 
+5767 20600000 rtn 
+
+le_att_handle_blank:
+5768 18007e00 force 0 ,pdata 
+5769 20600000 rtn 
+
+le_att_get_handle_ptr:
+576a 2040576d call le_att_get_handle_ptr2 
+576b 2022d779 branch le_att_get_handle_ptr_found ,zero 
+576c 20600000 rtn 
+
+le_att_get_handle_ptr2:
+576d 4739402e bpatchx patch2e_2 ,mem_patch2e 
+576e 680144bc fetch 2 ,mem_ui_le_uuid_table 
+576f 98000c00 iforce contr 
+
+le_att_get_handle_loop1:
+5770 e8c10000 ifetch 2 ,contr 
+5771 207a0000 rtn blank 
+5772 98467c00 isub temp ,null 
+5773 20628000 rtn zero 
+5774 e8c08000 ifetch 1 ,contr 
+5775 98c08c00 iadd contr ,contr 
+5776 e8c08000 ifetch 1 ,contr 
+5777 98c08c00 iadd contr ,contr 
+5778 20205770 branch le_att_get_handle_loop1 
+
+le_att_get_handle_ptr_found:
+5779 e8c08000 ifetch 1 ,contr 
+577a 98c08c00 iadd contr ,contr 
+577b 20600000 rtn 
+
+le_att_get_short_uuid_ptr:
+577c 4739c02e bpatchx patch2e_3 ,mem_patch2e 
+577d 680144bc fetch 2 ,mem_ui_le_uuid_table 
+577e 98000c00 iforce contr 
+
+le_att_get_short_uuid_loop:
+577f e8c10000 ifetch 2 ,contr 
+5780 207a0000 rtn blank 
+5781 e8c08000 ifetch 1 ,contr 
+5782 98c08c00 iadd contr ,contr 
+5783 18c08dfe increase -2 ,contr 
+5784 e8c10000 ifetch 2 ,contr 
+5785 98467c00 isub temp ,null 
+5786 20628000 rtn zero 
+5787 e8c08000 ifetch 1 ,contr 
+5788 98c08c00 iadd contr ,contr 
+5789 2020577f branch le_att_get_short_uuid_loop 
+
+le_att_get_handle_info_from_ptr:
+578a 6801049c fetch 2 ,mem_le_cur_attlist_start_ptr 
+578b 2020578e branch le_att_get_handle_info_fast 
+
+le_att_get_handle_info:
+578c 473a402e bpatchx patch2e_4 ,mem_patch2e 
+578d 680144bc fetch 2 ,mem_ui_le_uuid_table 
+
+le_att_get_handle_info_fast:
+578e 98000c00 iforce contr 
+578f 18422200 copy temp ,rega 
+
+le_att_get_handle_loop:
+5790 e8c10000 ifetch 2 ,contr 
+5791 203a5799 branch le_att_unfind_handle ,blank 
+5792 9a267c00 isub rega ,null 
+5793 2022d79a branch le_att_finded_handle ,zero 
+5794 e8c08000 ifetch 1 ,contr 
+5795 98c08c00 iadd contr ,contr 
+5796 e8c08000 ifetch 1 ,contr 
+5797 98c08c00 iadd contr ,contr 
+5798 20205790 branch le_att_get_handle_loop 
+
+le_att_unfind_handle:
+5799 20207fef branch disable_blank 
+
+le_att_finded_handle:
+579a e8c08000 ifetch 1 ,contr 
+579b 600084a2 store 1 ,mem_le_cur_uuid_length 
+579c 1fe27200 copy pdata ,loopcnt 
+579d d8a004a3 arg mem_le_cur_uuid ,contw 
+579e 20407ef4 call memcpy_fast 
+579f e8c08000 ifetch 1 ,contr 
+57a0 600084b3 store 1 ,mem_le_curr_att_len 
+57a1 20407ea5 call store_contr 
+57a2 20207ff1 branch enable_blank 
+
+le_modified_name:
+57a3 473ac02e bpatchx patch2e_5 ,mem_patch2e 
+57a4 204057a6 call le_modified_name_att_list 
+57a5 202057b8 branch le_modified_name_adv 
+
+le_modified_name_att_list:
+57a6 d8402a00 arg uuid_chrctr_device_name ,temp 
+57a7 2040577c call le_att_get_short_uuid_ptr 
+57a8 207a0000 rtn blank 
+57a9 e8c08000 ifetch 1 ,contr 
+57aa 18c20a00 copy contr ,contw 
+57ab 6808c3af fetcht 1 ,mem_le_name_len 
+57ac 18427200 copy temp ,loopcnt 
+57ad 98467c00 isub temp ,null 
+57ae 242157b5 nbranch le_name_length_longer_than_att ,positive 
+57af 98460400 isub temp ,temp 
+57b0 d8c043b0 arg mem_le_name ,contr 
+57b1 20407f01 call memcpy 
+57b2 18427200 copy temp ,loopcnt 
+57b3 2442d7f0 ncall memcpy_empty ,zero 
+57b4 20600000 rtn 
+
+le_name_length_longer_than_att:
+57b5 1fe27200 copy pdata ,loopcnt 
+57b6 d8c043b0 arg mem_le_name ,contr 
+57b7 20207ef4 branch memcpy_fast 
+
+le_modified_name_adv:
+57b8 da60438f arg mem_le_adv_data_len + 32 ,regc 
+57b9 da204370 arg mem_le_adv_data ,rega 
+57ba 204057c5 call le_modified_name_adv_and_scan 
+57bb 58000000 setarg 0 
+57bc 79347e00 setflag user ,0 ,pdata 
+57bd 60008a9a store 1 ,mem_pdatatemp 
+57be da6043af arg mem_le_scan_data_len + 32 ,regc 
+57bf da204390 arg mem_le_scan_data ,rega 
+57c0 204057c5 call le_modified_name_adv_and_scan 
+57c1 20740000 rtn user 
+57c2 68008a9a fetch 1 ,mem_pdatatemp 
+57c3 203a2a8c branch assert ,blank 
+57c4 20600000 rtn 
+
+le_modified_name_adv_and_scan:
+57c5 473b402e bpatchx patch2e_6 ,mem_patch2e 
+57c6 20407fe7 call enable_user 
+57c7 20407eda call clear_temp_block 
+57c8 da400000 arg 0 ,regb 
+57c9 d8a00ac3 arg mem_le_data_temp ,contw 
+57ca 204057df call le_modified_name_adv_loop 
+57cb 6800c3af fetch 1 ,mem_le_name_len 
+57cc 1fe08401 add pdata ,1 ,temp 
+57cd 9a40a200 iadd regb ,rega 
+57ce 1a20a202 increase 2 ,rega 
+57cf 1a267c1f sub rega ,0x1f ,null 
+57d0 242157dd nbranch le_modified_name_adv_and_scan_name_overflow ,positive 
+57d1 e0a88000 istoret 1 ,contw 
+57d2 d8400009 arg gap_adtype_local_name_complete ,temp 
+57d3 e0a88000 istoret 1 ,contw 
+57d4 98007200 iforce loopcnt 
+57d5 20407ef4 call memcpy_fast 
+57d6 1a222400 copy rega ,regb 
+
+le_modified_name_adv_and_scan_store_data:
+57d7 1a427e00 deposit regb 
+57d8 60008ac2 store 1 ,mem_le_data_len_temp 
+57d9 d8c00ac2 arg mem_le_data_len_temp ,contr 
+57da 5fffffe0 setarg -32 
+57db 9a608a00 iadd regc ,contw 
+57dc 20207ebd branch memcpy32 
+
+le_modified_name_adv_and_scan_name_overflow:
+57dd 20407fe9 call disable_user 
+57de 202057d7 branch le_modified_name_adv_and_scan_store_data 
+
+le_modified_name_adv_loop:
+57df ea208000 ifetch 1 ,rega 
+57e0 207a0000 rtn blank 
+57e1 1fe0fe01 pincrease 1 
+57e2 e8c88000 ifetcht 1 ,contr 
+57e3 18467c09 sub temp ,gap_adtype_local_name_complete ,null 
+57e4 2022d7ee branch le_modified_name_adv_found_name ,zero 
+57e5 9a40a400 iadd regb ,regb 
+57e6 1a220c00 copy rega ,contr 
+57e7 98007200 iforce loopcnt 
+57e8 20407ef4 call memcpy_fast 
+57e9 18c22200 copy contr ,rega 
+
+le_modified_name_adv_loop2:
+57ea 1a227e00 deposit rega 
+57eb 9a667c00 isub regc ,null 
+57ec 20610000 rtn positive 
+57ed 202057df branch le_modified_name_adv_loop 
+
+le_modified_name_adv_found_name:
+57ee 9a20a200 iadd rega ,rega 
+57ef 202057ea branch le_modified_name_adv_loop2 
+
+memcpy_empty:
+57f0 58000020 setarg space 
+57f1 e0a08000 istore 1 ,contw 
+57f2 c20057f0 loop memcpy_empty 
+57f3 20600000 rtn 
+
+le_lpm_set_mult:
+57f4 473bc02e bpatchx patch2e_7 ,mem_patch2e 
+57f5 7855fc00 disable wake 
+57f6 203757f8 branch le_lpm_set_mult_attempt ,attempt 
+57f7 2436d806 nbranch le_lpm_lost ,match 
+
+le_lpm_set_mult_attempt:
+57f8 20402bcb call lpm_match 
+57f9 680140c1 fetch 2 ,mem_rx_window_sniff 
+57fa 6001044d store 2 ,mem_le_receive_window 
+57fb 2436abde nbranch lpm_mult_short ,match 
+57fc c507abde bmark1 mark_old_packet ,lpm_mult_short 
+57fd 6800c50b fetch 1 ,mem_le_packet_size 
+57fe 243a2bde nbranch lpm_mult_short ,blank 
+57ff 6800c3dd fetch 1 ,mem_le_txlen 
+5800 243a2bde nbranch lpm_mult_short ,blank 
+5801 6800c4e9 fetch 1 ,mem_le_configuration 
+5802 c282abde bbit1 bit_ble_short_mult ,lpm_mult_short 
+5803 6800843f fetch 1 ,mem_le_state 
+5804 c282abde bbit1 lestate_update_param ,lpm_mult_short 
+5805 20202bc0 branch lpm_mult_wait_timeout 
+
+le_lpm_lost:
+5806 680940c1 fetcht 2 ,mem_rx_window_sniff 
+5807 18430400 rshift temp ,temp 
+5808 6801044d fetch 2 ,mem_le_receive_window 
+5809 9840fe00 iadd temp ,pdata 
+580a 6001044d store 2 ,mem_le_receive_window 
+580b 20202bd6 branch lpm_lost 
+
+le_set_config_fixed_tk:
+580c d8e00000 arg bit_ble_passkey_fixed_key ,queue 
+580d 20205824 branch le_set_config 
+
+le_clr_config_fixed_tk:
+580e d8e00000 arg bit_ble_passkey_fixed_key ,queue 
+580f 20205828 branch le_clr_config 
+
+le_set_config_fixed_ltk:
+5810 d8e00001 arg bit_ble_pairing_fixed_ltk ,queue 
+5811 20205824 branch le_set_config 
+
+le_clr_config_fixed_ltk:
+5812 d8e00001 arg bit_ble_pairing_fixed_ltk ,queue 
+5813 20205828 branch le_clr_config 
+
+le_set_config_more_data:
+5814 d8e00002 arg bit_ble_transmit_packet_by_md ,queue 
+5815 20205824 branch le_set_config 
+
+le_clr_config_more_data:
+5816 d8e00002 arg bit_ble_transmit_packet_by_md ,queue 
+5817 20205828 branch le_clr_config 
+
+le_set_config_read_authentication:
+5818 d8e00003 arg bit_ble_read_auth ,queue 
+5819 20205824 branch le_set_config 
+
+le_clr_config_read_authentication:
+581a d8e00003 arg bit_ble_read_auth ,queue 
+581b 20205828 branch le_clr_config 
+
+le_set_config_write_authentication:
+581c d8e00004 arg bit_ble_write_auth ,queue 
+581d 20205824 branch le_set_config 
+
+le_clr_config_write_authentication:
+581e d8e00004 arg bit_ble_write_auth ,queue 
+581f 20205828 branch le_clr_config 
+
+le_set_config_short_mult:
+5820 d8e00005 arg bit_ble_short_mult ,queue 
+5821 20205824 branch le_set_config 
+
+le_clr_config_short_mult:
+5822 d8e00005 arg bit_ble_short_mult ,queue 
+5823 20205828 branch le_clr_config 
+
+le_set_config:
+5824 6800c4e9 fetch 1 ,mem_le_configuration 
+5825 f9207e00 qset1 pdata 
+5826 6000c4e9 store 1 ,mem_le_configuration 
+5827 20600000 rtn 
+
+le_clr_config:
+5828 6800c4e9 fetch 1 ,mem_le_configuration 
+5829 f93ffe00 qset0 pdata 
+582a 6000c4e9 store 1 ,mem_le_configuration 
+582b 20600000 rtn 
+
+le_set_fixed_ltk:
+582c 58112233 setarg 0x112233 
+582d 6001c4ea store 3 ,mem_le_fixed_ltk 
+582e 58445566 setarg 0x445566 
+582f e0a18000 istore 3 ,contw 
+5830 58778899 setarg 0x778899 
+5831 e0a18000 istore 3 ,contw 
+5832 58001122 setarg 0x001122 
+5833 e0a18000 istore 3 ,contw 
+5834 58334455 setarg 0x334455 
+5835 e0a18000 istore 3 ,contw 
+5836 58000066 setarg 0x66 
+5837 e0a08000 istore 1 ,contw 
+5838 20600000 rtn 
+
+le_set_justwork:
+5839 59000302 setarg 0x01000302 
+583a 60024453 store 4 ,mem_le_pres 
+583b 58010010 setarg 0x010010 
+583c 6001c457 store 3 ,mem_le_pres_max_keysize 
+583d 7044c601 jam 1 ,mem_le_pairing_mode 
+583e 20600000 rtn 
+
+le_fifo_malloc_tx_empty:
+583f da200000 arg 0 ,rega 
+5840 d8200001 arg llid_empty ,type 
+5841 20205850 branch le_fifo_malloc_tx 
+
+le_fifo_malloc_tx_ll:
+5842 d8200003 arg llid_le_ll ,type 
+5843 20405850 call le_fifo_malloc_tx 
+5844 1a427e00 copy regb ,pdata 
+5845 e0a08000 istore 1 ,contw 
+5846 20600000 rtn 
+
+le_fifo_malloc_tx_l2cap:
+5847 18000202 force llid_l2cap_start ,type 
+5848 1a20a204 increase 4 ,rega 
+5849 20405850 call le_fifo_malloc_tx 
+584a 1a20a3fc increase -4 ,rega 
+584b 1a227e00 copy rega ,pdata 
+584c e0a10000 istore 2 ,contw 
+584d 1a427e00 copy regb ,pdata 
+584e e0a10000 istore 2 ,contw 
+584f 20600000 rtn 
+
+le_fifo_malloc_tx:
+5850 1a267cf0 sub rega ,240 ,null 
+5851 24212a8c nbranch assert ,positive 
+5852 6800c4ff fetch 1 ,mem_le_tx_buff_used 
+5853 d8400001 arg 1 ,temp 
+5854 df200004 arg le_tx_buff_count ,loopcnt 
+
+le_fifo_malloc_tx_loop:
+5855 98417c00 iand temp ,null 
+5856 2022d85a branch le_fifo_malloc_tx_got_empty ,zero 
+5857 18438400 lshift temp ,temp 
+5858 c2005855 loop le_fifo_malloc_tx_loop 
+5859 20202a8c branch assert 
+
+le_fifo_malloc_tx_got_empty:
+585a 9842fe00 ixor temp ,pdata 
+585b 6000c4ff store 1 ,mem_le_tx_buff_used 
+585c 1f267e04 sub loopcnt ,le_tx_buff_count ,pdata 
+585d 1ff27e00 lshift4 pdata ,pdata 
+585e 1ff27e00 lshift4 pdata ,pdata 
+585f d8401800 arg mem_le_tx_buffer0 ,temp 
+5860 98408400 iadd temp ,temp 
+
+le_fifo_tx_find_empty_ptr:
+5861 df200000 arg 0 ,loopcnt 
+5862 d8c04500 arg mem_le_tx_ptr0 ,contr 
+
+le_fifo_tx_find_empty_ptr_loop:
+5863 e8c10000 ifetch 2 ,contr 
+5864 203a5869 branch le_fifo_tx_found_empty_ptr ,blank 
+5865 1f227e00 copy loopcnt ,pdata 
+5866 1f20f201 increase 1 ,loopcnt 
+5867 c0825863 bne le_tx_buff_count ,le_fifo_tx_find_empty_ptr_loop 
+5868 20202a8c branch assert 
+
+le_fifo_tx_found_empty_ptr:
+5869 18c08dfe increase -2 ,contr 
+586a e0c90000 istoret 2 ,contr 
+586b 18420a00 copy temp ,contw 
+586c 1a227e00 copy rega ,pdata 
+586d e0a08000 istore 1 ,contw 
+586e 58000000 setarg 0 
+586f e0a08000 istore 1 ,contw 
+5870 18227e00 copy type ,pdata 
+5871 e0a08000 istore 1 ,contw 
+5872 20600000 rtn 
+
+le_fifo_get_first_tx_ptr:
+5873 68014500 fetch 2 ,mem_le_tx_ptr0 
+5874 1fe20c00 copy pdata ,contr 
+5875 20600000 rtn 
+
+le_fifo_get_second_tx_ptr:
+5876 68014502 fetch 2 ,mem_le_tx_ptr1 
+5877 1fe20c00 copy pdata ,contr 
+5878 20600000 rtn 
+
+le_fifo_get_last_tx_ptr:
+5879 2040587c call le_fifo_get_last_tx_ptr0 
+587a 1fe20c00 copy pdata ,contr 
+587b 20600000 rtn 
+
+le_fifo_get_last_tx_ptr0:
+587c 68014506 fetch 2 ,mem_le_tx_ptr3 
+587d 247a0000 nrtn blank 
+587e 68014504 fetch 2 ,mem_le_tx_ptr2 
+587f 247a0000 nrtn blank 
+5880 68014502 fetch 2 ,mem_le_tx_ptr1 
+5881 247a0000 nrtn blank 
+5882 68014500 fetch 2 ,mem_le_tx_ptr0 
+5883 20600000 rtn 
+
+le_fifo_get_first_l2cap_ptr:
+5884 20405873 call le_fifo_get_first_tx_ptr 
+5885 18c08c03 increase 3 ,contr 
+5886 20600000 rtn 
+
+le_fifo_get_first_att_ptr:
+5887 20405873 call le_fifo_get_first_tx_ptr 
+5888 18c08c07 increase 7 ,contr 
+5889 20600000 rtn 
+
+le_fifo_get_last_att_ptr:
+588a 20405879 call le_fifo_get_last_tx_ptr 
+588b 18c08c07 increase 7 ,contr 
+588c 20600000 rtn 
+
+le_fifo_get_last_l2cap_ptr:
+588d 20405879 call le_fifo_get_last_tx_ptr 
+588e 18c08c03 increase 3 ,contr 
+588f 20600000 rtn 
+
+le_fifo_check_full:
+5890 68014506 fetch 2 ,mem_le_tx_ptr3 
+5891 20600000 rtn 
+
+le_fifo_check_nearly_full:
+5892 68014504 fetch 2 ,mem_le_tx_ptr2 
+5893 20600000 rtn 
+
+le_fifo_check_empty:
+5894 68014500 fetch 2 ,mem_le_tx_ptr0 
+5895 20600000 rtn 
+
+le_fifo_release_first_node:
+5896 68014500 fetch 2 ,mem_le_tx_ptr0 
+5897 d8401800 arg mem_le_tx_buffer0 ,temp 
+5898 98467e00 isub temp ,pdata 
+5899 1ff1fe00 rshift4 pdata ,pdata 
+589a 1ff18e00 rshift4 pdata ,queue 
+589b 6800c4ff fetch 1 ,mem_le_tx_buff_used 
+589c f93ffe00 qset0 pdata 
+589d 6000c4ff store 1 ,mem_le_tx_buff_used 
+589e df200000 arg 0 ,loopcnt 
+
+le_fifo_release_first_node_loop:
+589f 1f23fe00 lshift loopcnt ,pdata 
+58a0 d8404502 arg mem_le_tx_ptr1 ,temp 
+58a1 98408400 iadd temp ,temp 
+58a2 e8410000 ifetch 2 ,temp 
+58a3 184085fe increase -2 ,temp 
+58a4 e0410000 istore 2 ,temp 
+58a5 1f227e00 copy loopcnt ,pdata 
+58a6 1f20f201 increase 1 ,loopcnt 
+58a7 c081d89f bne le_tx_buff_update_loopcnt ,le_fifo_release_first_node_loop 
+58a8 58000000 setarg 0 
+58a9 e0410000 istore 2 ,temp 
+58aa 20600000 rtn 
+
+le_parse_att:
+58ab e8c18000 ifetch 3 ,contr 
+58ac 60018477 store 3 ,mem_le_att_opcode 
+58ad c00158c1 beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
+58ae c001d8c9 beq attop_exchange_mtu_response ,le_parse_att_exchange_mtu_response 
+58af c00258cc beq attop_find_information_request ,le_parse_att_find_information_request 
+58b0 c00358f2 beq attop_find_by_type_value_request ,le_parse_att_find_by_type_value_request 
+58b1 c004593f beq attop_read_by_type_request ,le_parse_att_read_by_type_request 
+58b2 c00559bc beq attop_read_request ,le_parse_att_read_request 
+58b3 c00659e4 beq attop_read_blob_request ,le_parse_att_read_blob_request 
+58b4 c00859fa beq attop_read_by_group_type_request ,le_parse_att_read_by_group_type_request 
+58b5 c0095a2f beq attop_write_request ,le_parse_att_write_request 
+58b6 c00b5a48 beq attop_prepare_write_request ,le_parse_att_prepare_write_request 
+58b7 c00c5a5b beq attop_execute_write_request ,le_parse_att_execute_write_request 
+58b8 c0295a60 beq attop_write_command ,le_parse_att_write_command 
+58b9 20600000 rtn 
+
+le_send_att_exchange_mtu_requset:
+58ba 18002203 force 3 ,rega 
+58bb 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+58bc 58000002 setarg attop_exchange_mtu_request 
+58bd e0a08000 istore 1 ,contw 
+58be 680144a6 fetch 2 ,mem_le_local_mtu 
+58bf e0a10000 istore 2 ,contw 
+58c0 20600000 rtn 
+
+le_parse_att_exchange_mtu_request:
+58c1 204058c9 call le_parse_att_exchange_mtu_response 
+
+le_send_att_exchange_mtu_response:
+58c2 18002203 force 3 ,rega 
+58c3 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+58c4 58000003 setarg attop_exchange_mtu_response 
+58c5 e0a08000 istore 1 ,contw 
+58c6 680144a6 fetch 2 ,mem_le_local_mtu 
+58c7 e0a10000 istore 2 ,contw 
+58c8 20600000 rtn 
+
+le_parse_att_exchange_mtu_response:
+58c9 1fecfe00 rshift8 pdata ,pdata 
+58ca 600144a8 store 2 ,mem_le_remote_mtu 
+58cb 20600000 rtn 
+
+le_parse_att_find_information_request:
+58cc 20405ab1 call le_get_search_handle_start_end_common 
+58cd 20407fe7 call enable_user 
+58ce 202058cf branch le_send_att_find_information_response 
+
+le_send_att_find_information_response:
+58cf d9600003 arg 3 ,timeup 
+58d0 20405756 call le_init_attlist_search 
+
+le_send_att_find_information_res_loop:
+58d1 2040575f call le_att_handle_inrange 
+58d2 203a58f0 branch le_send_att_find_information_res_end ,blank 
+58d3 242158ed nbranch le_send_att_find_information_res_next ,positive 
+58d4 18c08dfe increase -2 ,contr 
+58d5 20407ea5 call store_contr 
+58d6 20407e9c call get_contw 
+58d7 243458e1 nbranch le_send_att_find_information_res_store_info ,user 
+58d8 20407e85 call push_stack_rega_b_c 
+58d9 20407fe9 call disable_user 
+58da 18002214 force 20 ,rega 
+58db 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+58dc 20407e95 call pop_stack_rega_b_c 
+58dd 58000005 setarg attop_find_information_response 
+58de e0a08000 istore 1 ,contw 
+58df 58000001 setarg uuid_size_16bit 
+58e0 e0a08000 istore 1 ,contw 
+
+le_send_att_find_information_res_store_info:
+58e1 20407e9f call get_contr 
+58e2 e8c10000 ifetch 2 ,contr 
+58e3 e0a10000 istore 2 ,contw 
+58e4 e8c08000 ifetch 1 ,contr 
+58e5 1fe27200 copy pdata ,loopcnt 
+58e6 20407f01 call memcpy 
+58e7 20407ea2 call store_contw 
+58e8 196097ff increase -1 ,timeup 
+58e9 2022d8f0 branch le_send_att_find_information_res_end ,zero 
+
+le_send_att_find_information_res_cont:
+58ea e8c08000 ifetch 1 ,contr 
+58eb 98c08c00 iadd contr ,contr 
+58ec 202058d1 branch le_send_att_find_information_res_loop 
+
+le_send_att_find_information_res_next:
+58ed e8c08000 ifetch 1 ,contr 
+58ee 98c08c00 iadd contr ,contr 
+58ef 202058ea branch le_send_att_find_information_res_cont 
+
+le_send_att_find_information_res_end:
+58f0 20345a76 branch le_send_att_error_response_notfound ,user 
+58f1 20205aa5 branch le_send_auto_len_by_mem 
+
+le_parse_att_find_by_type_value_request:
+58f2 20405ab1 call le_get_search_handle_start_end_common 
+58f3 e8c10000 ifetch 2 ,contr 
+58f4 60014472 store 2 ,mem_le_search_uuid 
+58f5 20407ea5 call store_contr 
+58f6 d8a0445e arg mem_le_search_att_type_length ,contw 
+58f7 680144fc fetch 2 ,mem_le_l2cap_size 
+58f8 1fe0fff9 increase -7 ,pdata 
+58f9 204056db call le_get_search_common2 
+58fa 20205905 branch le_send_att_find_by_type_value_response 
+
+le_start_end_handle_check_1:
+58fb 78547c00 disable user 
+58fc 6809445a fetcht 2 ,mem_le_search_handle_start 
+58fd 6801445c fetch 2 ,mem_le_search_handle_end 
+58fe 98467c00 isub temp ,null 
+58ff 24215902 nbranch le_start_end_handle_check_1_fail ,positive 
+5900 18427e00 deposit temp 
+5901 c1800000 rtnne 0 
+
+le_start_end_handle_check_1_fail:
+5902 78347c00 enable user 
+5903 70047a01 jam att_err_invalid_handle ,mem_le_err_code 
+5904 20205a77 branch le_send_att_error_response 
+
+le_send_att_find_by_type_value_response:
+5905 204058fb call le_start_end_handle_check_1 
+5906 20740000 rtn user 
+5907 68094472 fetcht 2 ,mem_le_search_uuid 
+5908 58002800 setarg uuid_gatt_primary_service 
+5909 98467c00 isub temp ,null 
+590a 2022d90c branch le_send_att_find_by_type_value_res_primary ,zero 
+590b 20205a76 branch le_send_att_error_response_notfound 
+
+le_send_att_find_by_type_value_res_primary:
+590c 7004b400 jam le_find_by_type_val_res_not_found ,mem_le_search_res 
+590d 6809445a fetcht 2 ,mem_le_search_handle_start 
+590e 60090aa2 storet 2 ,mem_temp 
+590f 2040578c call le_att_get_handle_info 
+5910 243a5a76 nbranch le_send_att_error_response_notfound ,blank 
+
+le_send_att_find_primary_search_loop:
+5911 68090aa2 fetcht 2 ,mem_temp 
+5912 2040578c call le_att_get_handle_info 
+5913 243a5925 nbranch le_send_att_error_response_notfound2 ,blank 
+5914 18c22200 copy contr ,rega 
+5915 680084b3 fetch 1 ,mem_le_curr_att_len 
+5916 1fe27200 copy pdata ,loopcnt 
+5917 6808c45e fetcht 1 ,mem_le_search_att_type_length 
+5918 98467c00 isub temp ,null 
+5919 2422d921 nbranch le_send_att_find_primary_search_loop1 ,zero 
+591a da40445f arg mem_le_search_att_type ,regb 
+591b 20407f88 call string_compare 
+591c 2022d928 branch le_send_att_find_primary_search_end_start_handle_found ,zero 
+591d 680104a3 fetch 2 ,mem_le_cur_uuid 
+591e 68094472 fetcht 2 ,mem_le_search_uuid 
+591f 98467c00 isub temp ,null 
+5920 2022d930 branch le_send_att_find_primary_search_end_ending_handle_found ,zero 
+
+le_send_att_find_primary_search_loop1:
+5921 68010aa2 fetch 2 ,mem_temp 
+5922 1fe0fe01 increase 1 ,pdata 
+5923 60010aa2 store 2 ,mem_temp 
+5924 20205911 branch le_send_att_find_primary_search_loop 
+
+le_send_att_error_response_notfound2:
+5925 680084b4 fetch 1 ,mem_le_search_res 
+5926 c000d930 beq le_find_by_type_val_res_found_starting_handle ,le_send_att_find_primary_search_end_ending_handle_found 
+5927 20205a76 branch le_send_att_error_response_notfound 
+
+le_send_att_find_primary_search_end_start_handle_found:
+5928 680104a3 fetch 2 ,mem_le_cur_uuid 
+5929 68094472 fetcht 2 ,mem_le_search_uuid 
+592a 98467c00 isub temp ,null 
+592b 2422d921 nbranch le_send_att_find_primary_search_loop1 ,zero 
+592c 7004b401 jam le_find_by_type_val_res_found_starting_handle ,mem_le_search_res 
+592d 68090aa2 fetcht 2 ,mem_temp 
+592e 6009049e storet 2 ,mem_le_cur_handle_start 
+592f 20205921 branch le_send_att_find_primary_search_loop1 
+
+le_send_att_find_primary_search_end_ending_handle_found:
+5930 680084b4 fetch 1 ,mem_le_search_res 
+5931 c0005921 beq le_find_by_type_val_res_not_found ,le_send_att_find_primary_search_loop1 
+5932 7004b402 jam le_find_by_type_val_res_found_ending_handle ,mem_le_search_res 
+5933 68090aa2 fetcht 2 ,mem_temp 
+5934 184085ff increase -1 ,temp 
+5935 600904a0 storet 2 ,mem_le_cur_handle_end 
+
+le_send_att_find_primary_search_end:
+5936 da200005 arg 5 ,rega 
+5937 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+5938 58000007 setarg attop_find_by_type_value_response 
+5939 e0a08000 istore 1 ,contw 
+593a 6801049e fetch 2 ,mem_le_cur_handle_start 
+593b e0a10000 istore 2 ,contw 
+593c 680104a0 fetch 2 ,mem_le_cur_handle_end 
+593d e0a10000 istore 2 ,contw 
+593e 20600000 rtn 
+
+le_parse_att_read_by_type_request:
+593f 20405ab1 call le_get_search_handle_start_end_common 
+5940 204056df call le_get_search_att_uuid 
+5941 20205942 branch le_send_att_read_by_type_response 
+
+le_send_att_read_by_type_response:
+5942 6809445a fetcht 2 ,mem_le_search_handle_start 
+5943 60090aa2 storet 2 ,mem_temp 
+5944 20405756 call le_init_attlist_search 
+5945 2040576d call le_att_get_handle_ptr2 
+5946 18c08dfe increase -2 ,contr 
+5947 18c27e00 copy contr ,pdata 
+5948 6001049c store 2 ,mem_le_cur_attlist_start_ptr 
+5949 68094472 fetcht 2 ,mem_le_search_uuid 
+594a 58002a00 setarg uuid_chrctr_device_name 
+594b 98467c00 isub temp ,null 
+594c 2022d9a8 branch le_send_att_read_by_type_res_device_name ,zero 
+594d 58002803 setarg uuid_gatt_characteristic 
+594e 98467c00 isub temp ,null 
+594f 2422d990 nbranch le_send_att_read_by_type_res_not_characteristic ,zero 
+5950 d9600002 arg 2 ,timeup 
+
+le_send_att_read_by_type_response_loop:
+5951 20405a88 call le_att_check_handle_end 
+5952 2421596d nbranch le_send_att_read_by_type_response_end ,positive 
+5953 68090aa2 fetcht 2 ,mem_temp 
+5954 2040578a call le_att_get_handle_info_from_ptr 
+5955 c000d96d beq 1 ,le_send_att_read_by_type_response_end 
+5956 20405a94 call le_att_same_uuid 
+5957 2422d96b nbranch le_send_att_read_by_type_response_next_handle ,zero 
+5958 2434596f nbranch le_send_att_read_by_type_res_found_next ,user 
+5959 78547c00 disable user 
+595a da200014 arg 20 ,rega 
+595b 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+595c 58000009 setarg attop_read_by_type_response 
+595d e0a08000 istore 1 ,contw 
+595e 18a26000 copy contw ,alarm 
+595f 18a08a01 increase 1 ,contw 
+5960 2040597d call le_send_att_read_by_type_write_properties 
+5961 20405a84 call le_att_next_handle 
+5962 2040578a call le_att_get_handle_info_from_ptr 
+5963 20405984 call le_send_att_read_by_type_write_uuid 
+5964 680084a2 fetch 1 ,mem_le_cur_uuid_length 
+5965 1fe0fe05 increase 5 ,pdata 
+5966 e6008000 istore 1 ,alarm 
+5967 680084a2 fetch 1 ,mem_le_cur_uuid_length 
+5968 c008596d beq 16 ,le_send_att_read_by_type_response_end 
+5969 196097ff increase -1 ,timeup 
+596a 2022d96d branch le_send_att_read_by_type_response_end ,zero 
+
+le_send_att_read_by_type_response_next_handle:
+596b 20405a84 call le_att_next_handle 
+596c 20205951 branch le_send_att_read_by_type_response_loop 
+
+le_send_att_read_by_type_response_end:
+596d 20345a76 branch le_send_att_error_response_notfound ,user 
+596e 20205aa5 branch le_send_auto_len_by_mem 
+
+le_send_att_read_by_type_res_found_next:
+596f 20405a97 call le_store_att_record 
+5970 20405a84 call le_att_next_handle 
+5971 2040578a call le_att_get_handle_info_from_ptr 
+5972 680084a2 fetch 1 ,mem_le_cur_uuid_length 
+5973 c008596d beq 16 ,le_send_att_read_by_type_response_end 
+5974 20407e9c call get_contw 
+5975 68010aa2 fetch 2 ,mem_temp 
+5976 1fe0ffff increase -1 ,pdata 
+5977 e0a10000 istore 2 ,contw 
+5978 20405aa1 call le_write_att_record_common 
+5979 20405984 call le_send_att_read_by_type_write_uuid 
+597a 196097ff increase -1 ,timeup 
+597b 2022d96d branch le_send_att_read_by_type_response_end ,zero 
+597c 2020596b branch le_send_att_read_by_type_response_next_handle 
+
+le_send_att_read_by_type_write_properties:
+597d 68010aa2 fetch 2 ,mem_temp 
+597e e0a10000 istore 2 ,contw 
+597f 680084b3 fetch 1 ,mem_le_curr_att_len 
+5980 1fe27200 copy pdata ,loopcnt 
+5981 20407e9f call get_contr 
+5982 20407ef4 call memcpy_fast 
+5983 20207ea2 branch store_contw 
+
+le_send_att_read_by_type_write_uuid:
+5984 20407e9c call get_contw 
+5985 68010aa2 fetch 2 ,mem_temp 
+5986 e0a10000 istore 2 ,contw 
+5987 20407ea2 call store_contw 
+5988 680084a2 fetch 1 ,mem_le_cur_uuid_length 
+5989 1fe27200 copy pdata ,loopcnt 
+598a 20407e9c call get_contw 
+598b 20407e9f call get_contr 
+598c 9f260c00 isub loopcnt ,contr 
+598d 18c08dff increase -1 ,contr 
+598e 20407ef4 call memcpy_fast 
+598f 20207ea2 branch store_contw 
+
+le_send_att_read_by_type_res_not_characteristic:
+5990 6809445a fetcht 2 ,mem_le_search_handle_start 
+5991 60090aa2 storet 2 ,mem_temp 
+
+le_send_att_read_by_type_res_not_char_loop:
+5992 20405a88 call le_att_check_handle_end 
+5993 24215a76 nbranch le_send_att_error_response_notfound ,positive 
+5994 2040578a call le_att_get_handle_info_from_ptr 
+5995 c000da76 beq 1 ,le_send_att_error_response_notfound 
+5996 20405a94 call le_att_same_uuid 
+5997 2422d9a6 nbranch le_send_att_read_by_type_res_not_char_next ,zero 
+
+le_send_att_read_by_type_res_not_char_common:
+5998 da200014 arg 20 ,rega 
+5999 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+599a 58000009 setarg attop_read_by_type_response 
+599b e0a08000 istore 1 ,contw 
+599c 680084b3 fetch 1 ,mem_le_curr_att_len 
+599d 1fe27200 copy pdata ,loopcnt 
+599e 1fe0fe02 increase 2 ,pdata 
+599f e0a08000 istore 1 ,contw 
+59a0 68010aa2 fetch 2 ,mem_temp 
+59a1 e0a10000 istore 2 ,contw 
+59a2 20407e9f call get_contr 
+59a3 20407ef4 call memcpy_fast 
+59a4 20407ea2 call store_contw 
+59a5 20205aa5 branch le_send_auto_len_by_mem 
+
+le_send_att_read_by_type_res_not_char_next:
+59a6 20405a84 call le_att_next_handle 
+59a7 20205992 branch le_send_att_read_by_type_res_not_char_loop 
+
+le_send_att_read_by_type_res_device_name:
+59a8 d8402a00 arg uuid_chrctr_device_name ,temp 
+59a9 2040577c call le_att_get_short_uuid_ptr 
+59aa 207a0000 rtn blank 
+59ab 18c08dfb increase -5 ,contr 
+59ac e8c10000 ifetch 2 ,contr 
+59ad 60010aa2 store 2 ,mem_temp 
+59ae da200014 arg 20 ,rega 
+59af 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+59b0 58000009 setarg attop_read_by_type_response 
+59b1 e0a08000 istore 1 ,contw 
+59b2 6800c3af fetch 1 ,mem_le_name_len 
+59b3 1fe27200 copy pdata ,loopcnt 
+59b4 1fe0fe02 increase 2 ,pdata 
+59b5 e0a08000 istore 1 ,contw 
+59b6 68010aa2 fetch 2 ,mem_temp 
+59b7 e0a10000 istore 2 ,contw 
+59b8 d8c043b0 arg mem_le_name ,contr 
+59b9 20407ef4 call memcpy_fast 
+59ba 20407ea2 call store_contw 
+59bb 20205aa5 branch le_send_auto_len_by_mem 
+
+le_parse_att_read_request:
+59bc 68090478 fetcht 2 ,mem_le_att_handle 
+59bd 6800c4e9 fetch 1 ,mem_le_configuration 
+59be c281d9dd bbit1 bit_ble_read_auth ,le_send_att_read_response_check_auth 
+
+le_send_att_read_response:
+59bf 2040576a call le_att_get_handle_ptr 
+59c0 203a5a76 branch le_send_att_error_response_notfound ,blank 
+59c1 18c08dfe increase -2 ,contr 
+59c2 e8c10000 ifetch 2 ,contr 
+59c3 d8402a00 arg uuid_chrctr_device_name ,temp 
+59c4 98467c00 isub temp ,null 
+59c5 2022d9d3 branch le_send_device_name ,zero 
+59c6 e8c08000 ifetch 1 ,contr 
+59c7 1fe67c16 sub pdata ,22 ,null 
+59c8 202159ca branch le_send_att_read_response_less ,positive 
+59c9 18007e16 force 22 ,pdata 
+
+le_send_att_read_response_less:
+59ca 1fe22600 copy pdata ,regc 
+59cb 20407ea5 call store_contr 
+59cc 1a60a201 add regc ,1 ,rega 
+59cd 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+59ce 5800000b setarg attop_read_response 
+59cf e0a08000 istore 1 ,contw 
+59d0 1a627200 copy regc ,loopcnt 
+59d1 20407e9f call get_contr 
+59d2 20207f01 branch memcpy 
+
+le_send_device_name:
+59d3 20407ea5 call store_contr 
+59d4 6800c3af fetch 1 ,mem_le_name_len 
+59d5 1fe0a201 add pdata ,1 ,rega 
+59d6 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+59d7 5800000b setarg attop_read_response 
+59d8 e0a08000 istore 1 ,contw 
+59d9 6800c3af fetch 1 ,mem_le_name_len 
+59da 1fe27200 copy pdata ,loopcnt 
+59db d8c043b0 arg mem_le_name ,contr 
+59dc 20207f01 branch memcpy 
+
+le_send_att_read_response_check_auth:
+59dd 680144fa fetch 2 ,mem_le_pairing_handle 
+59de 98467c00 isub temp ,null 
+59df 2422d9bf nbranch le_send_att_read_response ,zero 
+59e0 20405a42 call le_check_encrypt_state 
+59e1 243459bf nbranch le_send_att_read_response ,user 
+59e2 70047a05 jam att_err_insufficient_authentication ,mem_le_err_code 
+59e3 20205a77 branch le_send_att_error_response 
+
+le_parse_att_read_blob_request:
+59e4 e8c10000 ifetch 2 ,contr 
+59e5 6001445e store 2 ,mem_le_att_offset 
+
+le_send_att_read_blob_response:
+59e6 da200014 arg 20 ,rega 
+59e7 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+59e8 5800000d setarg attop_read_blob_response 
+59e9 e0a08000 istore 1 ,contw 
+59ea 6801445e fetch 2 ,mem_le_att_offset 
+59eb 98002200 iforce rega 
+59ec 68090478 fetcht 2 ,mem_le_att_handle 
+59ed 2040576a call le_att_get_handle_ptr 
+59ee 203a5a76 branch le_send_att_error_response_notfound ,blank 
+59ef e8c08000 ifetch 1 ,contr 
+59f0 9a267200 isub rega ,loopcnt 
+59f1 24215a76 nbranch le_send_att_error_response_notfound ,positive 
+59f2 1f267c16 sub loopcnt ,22 ,null 
+59f3 202159f5 branch le_send_att_read_blob_response_less ,positive 
+59f4 18007216 force 22 ,loopcnt 
+
+le_send_att_read_blob_response_less:
+59f5 1a227e00 deposit rega 
+59f6 98c08c00 iadd contr ,contr 
+59f7 20407ef4 call memcpy_fast 
+59f8 20407ea2 call store_contw 
+59f9 20205aa5 branch le_send_auto_len_by_mem 
+
+le_parse_att_read_by_group_type_request:
+59fa 20405ab1 call le_get_search_handle_start_end_common 
+59fb 204056d7 call le_get_search_att_type 
+59fc 202059fd branch le_send_att_read_by_group_type_response 
+
+le_send_att_read_by_group_type_response:
+59fd d9600002 arg 2 ,timeup 
+59fe 6809445a fetcht 2 ,mem_le_search_handle_start 
+59ff 60090aa2 storet 2 ,mem_temp 
+5a00 20405756 call le_init_attlist_search 
+5a01 2040576d call le_att_get_handle_ptr2 
+5a02 18c08dfe increase -2 ,contr 
+5a03 18c27e00 copy contr ,pdata 
+5a04 6001049c store 2 ,mem_le_cur_attlist_start_ptr 
+
+le_send_att_read_by_group_type_response_loop:
+5a05 20405a88 call le_att_check_handle_end 
+5a06 24215a25 nbranch le_send_att_read_by_group_type_end0 ,positive 
+5a07 68090aa2 fetcht 2 ,mem_temp 
+5a08 2040578a call le_att_get_handle_info_from_ptr 
+5a09 c000da28 beq 1 ,le_send_att_read_by_group_type_end1 
+5a0a 20405a8c call le_att_same_type 
+5a0b 2422da23 nbranch le_send_att_read_by_group_type_next_handle ,zero 
+5a0c 19627e00 copy timeup ,pdata 
+5a0d c0005a28 beq 0 ,le_send_att_read_by_group_type_end1 
+5a0e 24345a19 nbranch le_send_att_read_by_group_type_store_write_record ,user 
+5a0f 78547c00 disable user 
+5a10 da200014 arg 20 ,rega 
+5a11 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+5a12 58000011 setarg attop_read_by_group_type_response 
+5a13 e0a08000 istore 1 ,contw 
+5a14 680084b3 fetch 1 ,mem_le_curr_att_len 
+5a15 1fe0fe04 increase 4 ,pdata 
+5a16 e0a08000 istore 1 ,contw 
+5a17 20407ea2 call store_contw 
+5a18 20205a1f branch le_send_att_read_by_group_type_store_record 
+
+le_send_att_read_by_group_type_store_write_record:
+5a19 680084b3 fetch 1 ,mem_le_curr_att_len 
+5a1a c0085a28 beq 16 ,le_send_att_read_by_group_type_end1 
+5a1b 68010aa2 fetch 2 ,mem_temp 
+5a1c 1fe0ffff increase -1 ,pdata 
+5a1d 600104a0 store 2 ,mem_le_cur_handle_end 
+5a1e 20405a9c call le_write_att_record 
+
+le_send_att_read_by_group_type_store_record:
+5a1f 68010aa2 fetch 2 ,mem_temp 
+5a20 6001049e store 2 ,mem_le_cur_handle_start 
+5a21 20405a97 call le_store_att_record 
+5a22 196097ff increase -1 ,timeup 
+
+le_send_att_read_by_group_type_next_handle:
+5a23 20405a84 call le_att_next_handle 
+5a24 20205a05 branch le_send_att_read_by_group_type_response_loop 
+
+le_send_att_read_by_group_type_end0:
+5a25 68010aa2 fetch 2 ,mem_temp 
+5a26 600104a0 store 2 ,mem_le_cur_handle_end 
+5a27 20205a2c branch le_send_att_read_by_group_type_end_common 
+
+le_send_att_read_by_group_type_end1:
+5a28 68010aa2 fetch 2 ,mem_temp 
+5a29 1fe0ffff increase -1 ,pdata 
+5a2a 600104a0 store 2 ,mem_le_cur_handle_end 
+5a2b 20205a2c branch le_send_att_read_by_group_type_end_common 
+
+le_send_att_read_by_group_type_end_common:
+5a2c 20345a76 branch le_send_att_error_response_notfound ,user 
+5a2d 20405a9c call le_write_att_record 
+5a2e 20205aa5 branch le_send_auto_len_by_mem 
+
+le_parse_att_write_request:
+5a2f 18c22200 copy contr ,rega 
+5a30 680144fc fetch 2 ,mem_le_l2cap_size 
+5a31 1fe0a5fd add pdata ,-3 ,regb 
+5a32 204056e2 call le_writeatt_cb 
+
+le_send_att_write_response_check_auth:
+5a33 6800c4e9 fetch 1 ,mem_le_configuration 
+5a34 c3025a3d bbit0 bit_ble_write_auth ,le_send_att_write_response 
+5a35 68090478 fetcht 2 ,mem_le_att_handle 
+5a36 680144fa fetch 2 ,mem_le_pairing_handle 
+5a37 98467c00 isub temp ,null 
+5a38 2422da3d nbranch le_send_att_write_response ,zero 
+5a39 20405a42 call le_check_encrypt_state 
+5a3a 24345a3d nbranch le_send_att_write_response ,user 
+5a3b 70047a05 jam att_err_insufficient_authentication ,mem_le_err_code 
+5a3c 20205a77 branch le_send_att_error_response 
+
+le_send_att_write_response:
+5a3d 18002201 force 1 ,rega 
+5a3e 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+5a3f 58000013 setarg attop_write_response 
+5a40 e0a08000 istore 1 ,contw 
+5a41 20600000 rtn 
+
+le_check_encrypt_state:
+5a42 20407fe9 call disable_user 
+5a43 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5a44 c1000000 rtneq le_pairing_mode_none 
+5a45 6800c040 fetch 1 ,mem_context 
+5a46 c3820000 rtnbit1 lestate_encryption 
+5a47 20207fe7 branch enable_user 
+
+le_parse_att_prepare_write_request:
+5a48 18c0a202 add contr ,2 ,rega 
+5a49 680144fc fetch 2 ,mem_le_l2cap_size 
+5a4a 1fe0a5fb add pdata ,-5 ,regb 
+5a4b 204056e2 call le_writeatt_cb 
+5a4c 20205a4d branch le_send_att_prepare_write_response 
+
+le_send_att_prepare_write_response:
+5a4d 680144fc fetch 2 ,mem_le_l2cap_size 
+5a4e 1fe22200 copy pdata ,rega 
+5a4f 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+5a50 58000017 setarg attop_prepare_write_response 
+5a51 e0a08000 istore 1 ,contw 
+5a52 68010478 fetch 2 ,mem_le_att_handle 
+5a53 e0a10000 istore 2 ,contw 
+5a54 680144fc fetch 2 ,mem_le_l2cap_size 
+5a55 1fe0f3fb add pdata ,-5 ,loopcnt 
+5a56 6801450d fetch 2 ,mem_le_payload_ptr 
+5a57 1fe08c07 add pdata ,7 ,contr 
+5a58 e8c10000 ifetch 2 ,contr 
+5a59 e0a10000 istore 2 ,contw 
+5a5a 20207ef4 branch memcpy_fast 
+
+le_parse_att_execute_write_request:
+
+le_send_att_execute_write_response:
+5a5b 18002201 force 1 ,rega 
+5a5c 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+5a5d 58000019 setarg attop_execute_write_response 
+5a5e e0a08000 istore 1 ,contw 
+5a5f 20600000 rtn 
+
+le_parse_att_write_command:
+5a60 18c22200 copy contr ,rega 
+5a61 680144fc fetch 2 ,mem_le_l2cap_size 
+5a62 1fe0a5fd add pdata ,-3 ,regb 
+5a63 202056e2 branch le_writeatt_cb 
+
+le_att_malloc_tx_notify:
+5a64 18422600 copy temp ,regc 
+5a65 1a20a203 increase 3 ,rega 
+5a66 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+5a67 1a20a3fd increase -3 ,rega 
+5a68 5800001b setarg attop_handle_value_notification 
+5a69 e0a08000 istore 1 ,contw 
+5a6a 1a620400 copy regc ,temp 
+5a6b e0a90000 istoret 2 ,contw 
+5a6c 20600000 rtn 
+
+le_att_malloc_tx_indication:
+5a6d 18422600 copy temp ,regc 
+5a6e 1a20a203 increase 3 ,rega 
+5a6f 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+5a70 1a20a3fd increase -3 ,rega 
+5a71 5800001d setarg attop_handle_value_indication 
+5a72 e0a08000 istore 1 ,contw 
+5a73 1a620400 copy regc ,temp 
+5a74 e0a90000 istoret 2 ,contw 
+5a75 20600000 rtn 
+
+le_send_att_error_response_notfound:
+5a76 70047a0a jam att_err_attribute_not_found ,mem_le_err_code 
+
+le_send_att_error_response:
+5a77 18002205 force 5 ,rega 
+5a78 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
+5a79 58000001 setarg attop_error_response 
+5a7a e0a08000 istore 1 ,contw 
+5a7b 68008477 fetch 1 ,mem_le_att_opcode 
+5a7c e0a08000 istore 1 ,contw 
+5a7d 68010478 fetch 2 ,mem_le_att_handle 
+5a7e e0a10000 istore 2 ,contw 
+5a7f 6800847a fetch 1 ,mem_le_err_code 
+5a80 e0a08000 istore 1 ,contw 
+5a81 20600000 rtn 
+
+le_fifo_malloc_tx_l2cap_gatt:
+5a82 18002404 force le_l2cap_cid_att ,regb 
+5a83 20205847 branch le_fifo_malloc_tx_l2cap 
+
+le_att_next_handle:
+5a84 68090aa2 fetcht 2 ,mem_temp 
+5a85 18408401 increase 1 ,temp 
+5a86 60090aa2 storet 2 ,mem_temp 
+5a87 20600000 rtn 
+
+le_att_check_handle_end:
+5a88 68090aa2 fetcht 2 ,mem_temp 
+5a89 6801445c fetch 2 ,mem_le_search_handle_end 
+5a8a 98467c00 isub temp ,null 
+5a8b 20600000 rtn 
+
+le_att_same_type:
+5a8c 6808c45e fetcht 1 ,mem_le_search_att_type_length 
+5a8d da20445f arg mem_le_search_att_type ,rega 
+
+le_att_check_same_common:
+5a8e 680084a2 fetch 1 ,mem_le_cur_uuid_length 
+5a8f 1fe27200 copy pdata ,loopcnt 
+5a90 98467c00 isub temp ,null 
+5a91 24628000 nrtn zero 
+5a92 da4004a3 arg mem_le_cur_uuid ,regb 
+5a93 20207f88 branch string_compare 
+
+le_att_same_uuid:
+5a94 6808c471 fetcht 1 ,mem_le_search_uuid_length 
+5a95 da204472 arg mem_le_search_uuid ,rega 
+5a96 20205a8e branch le_att_check_same_common 
+
+le_store_att_record:
+5a97 680084b3 fetch 1 ,mem_le_curr_att_len 
+5a98 60008101 store 1 ,mem_tmp_buffer 
+5a99 1fe27200 copy pdata ,loopcnt 
+5a9a 20407e9f call get_contr 
+5a9b 20207ef4 branch memcpy_fast 
+
+le_write_att_record:
+5a9c 20407e9c call get_contw 
+5a9d 6801049e fetch 2 ,mem_le_cur_handle_start 
+5a9e e0a10000 istore 2 ,contw 
+5a9f 680104a0 fetch 2 ,mem_le_cur_handle_end 
+5aa0 e0a10000 istore 2 ,contw 
+
+le_write_att_record_common:
+5aa1 68008101 fetch 1 ,mem_tmp_buffer 
+5aa2 1fe27200 copy pdata ,loopcnt 
+5aa3 20407ef4 call memcpy_fast 
+5aa4 20207ea2 branch store_contw 
+
+le_send_auto_len_by_mem:
+5aa5 20407e9c call get_contw 
+5aa6 2040588a call le_fifo_get_last_att_ptr 
+5aa7 18a27e00 copy contw ,pdata 
+5aa8 98c62200 isub contr ,rega 
+5aa9 2040588d call le_fifo_get_last_l2cap_ptr 
+5aaa 1a227e00 copy rega ,pdata 
+5aab e0c10000 istore 2 ,contr 
+5aac 1a20a204 increase 4 ,rega 
+5aad 20405879 call le_fifo_get_last_tx_ptr 
+5aae 1a227e00 copy rega ,pdata 
+5aaf e0c08000 istore 1 ,contr 
+5ab0 20600000 rtn 
+
+le_get_search_handle_start_end_common:
+5ab1 1fecfe00 rshift8 pdata ,pdata 
+5ab2 6001445a store 2 ,mem_le_search_handle_start 
+5ab3 e8c10000 ifetch 2 ,contr 
+5ab4 6001445c store 2 ,mem_le_search_handle_end 
+5ab5 20600000 rtn 
+
+le_parse_signaling:
+5ab6 e8c08000 ifetch 1 ,contr 
+5ab7 e8c88000 ifetcht 1 ,contr 
+5ab8 e8c90000 ifetcht 2 ,contr 
+5ab9 c009dabb beq l2cap_connection_parameter_update_response ,le_l2cap_parse_conn_parameter_update_rsp 
+5aba 20600000 rtn 
+
+le_l2cap_parse_conn_parameter_update_rsp:
+5abb e8c10000 ifetch 2 ,contr 
+5abc 60014509 store 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+5abd 700a9940 jam bt_evt_le_parse_conn_papa_update_rsp ,mem_fifo_temp 
+5abe 20207d86 branch ui_ipc_send_event 
+
+le_l2cap_tx_update_req:
+5abf da20000c arg 0x0c ,rega 
+5ac0 da600012 arg l2cap_connection_parameter_update_request ,regc 
+5ac1 20405ac7 call le_fifo_malloc_tx_l2cap_signaling 
+5ac2 58000008 setarg 0x08 
+5ac3 e0a10000 istore 2 ,contw 
+5ac4 68044496 fetch 8 ,mem_le_interval_min 
+5ac5 e0a40000 istore 8 ,contw 
+5ac6 20600000 rtn 
+
+le_fifo_malloc_tx_l2cap_signaling:
+5ac7 20405acf call le_l2cap_update_signaling_identifier 
+5ac8 da400005 arg le_l2cap_cid_signal ,regb 
+5ac9 20405847 call le_fifo_malloc_tx_l2cap 
+5aca 1a627e00 copy regc ,pdata 
+5acb e0a08000 istore 1 ,contw 
+5acc 6800c508 fetch 1 ,mem_le_signaling_identifier 
+5acd e0a08000 istore 1 ,contw 
+5ace 20600000 rtn 
+
+le_l2cap_update_signaling_identifier:
+5acf 6800c508 fetch 1 ,mem_le_signaling_identifier 
+5ad0 1fe0fe01 pincrease 1 
+5ad1 6000c508 store 1 ,mem_le_signaling_identifier 
+5ad2 c1800000 rtnne 0 
+
+le_l2cap_reset_signaling_identifier:
+5ad3 70450801 jam 1 ,mem_le_signaling_identifier 
+5ad4 20600000 rtn 
+
+le_pairing_mode_init:
+5ad5 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5ad6 c0005ae4 beq le_pairing_mode_none ,le_set_no_pairing 
+5ad7 c000dae7 beq le_pairing_mode_lagacy_justwork ,le_set_pairing_mode_lagacy_just_work 
+5ad8 c0015ae9 beq le_pairing_mode_lagacy_passkey ,le_set_pairing_mode_lagacy_passkey 
+5ad9 c040dadd beq le_pairing_mode_secure_connect_justwork ,le_set_pairing_mode_secure_justwork 
+5ada c0415adf beq le_pairing_mode_secure_connect_numeric ,le_set_pairing_mode_secure_numeric 
+5adb c041dae2 beq le_pairing_mode_secure_connect_passkey ,le_set_pairing_mode_secure_passkey 
+5adc 20600000 rtn 
+
+le_set_pairing_mode_secure_justwork:
+5add 7044560d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+5ade 20205ae5 branch le_set_noinputnooutput 
+
+le_set_pairing_mode_secure_numeric:
+5adf 7044560d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+5ae0 70445401 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
+5ae1 20600000 rtn 
+
+le_set_pairing_mode_secure_passkey:
+5ae2 7044560d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+5ae3 20205aea branch le_set_displayonly 
+
+le_set_no_pairing:
+5ae4 70445600 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
+
+le_set_noinputnooutput:
+5ae5 70445403 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
+5ae6 20600000 rtn 
+
+le_set_pairing_mode_lagacy_just_work:
+5ae7 70445605 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+5ae8 20205ae5 branch le_set_noinputnooutput 
+
+le_set_pairing_mode_lagacy_passkey:
+5ae9 70445605 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+
+le_set_displayonly:
+5aea 70445400 jam flag_iocap_displayonly ,mem_le_pres_iocap 
+5aeb 20600000 rtn 
+
+le_secure_connection_enable:
+5aec 6800c456 fetch 1 ,mem_le_pres_auth 
+5aed 79207e03 set1 le_auth_secure_connection_pairing_bit ,pdata 
+5aee 6000c456 store 1 ,mem_le_pres_auth 
+5aef 20600000 rtn 
+
+le_secure_connection_disable:
+5af0 6800c456 fetch 1 ,mem_le_pres_auth 
+5af1 793ffe03 set0 le_auth_secure_connection_pairing_bit ,pdata 
+5af2 6000c456 store 1 ,mem_le_pres_auth 
+5af3 20600000 rtn 
+
+le_parse_smp:
+5af4 e8c08000 ifetch 1 ,contr 
+5af5 c000db09 beq smp_pairing_request ,le_parse_smp_pairing_request 
+5af6 c001db30 beq smp_pairing_confirm ,le_parse_smp_pairing_confirm 
+5af7 c0025b4d beq smp_pairing_random ,le_parse_smp_pairing_random 
+5af8 c002db5a beq smp_pairing_failed ,le_parse_smp_pairing_failed 
+5af9 c0035b80 beq smp_encryption_information ,le_parse_smp_encryption_information 
+5afa c003dbc4 beq smp_master_identification ,le_parse_smp_master_identification 
+5afb c0045baf beq smp_identity_information ,le_parse_smp_identity_information 
+5afc c004dbc0 beq smp_identity_address_information ,le_parse_smp_identity_address_information 
+5afd c0055bc4 beq smp_signing_information ,le_parse_smp_signing_information 
+5afe c005dbc4 beq smp_security_request ,le_parse_smp_security_request 
+5aff c0065bc5 beq smp_pairing_public_key ,le_parse_smp_public_key 
+5b00 c006dbca beq smp_pairing_dhkey_check ,le_parse_smp_dhkey_check 
+5b01 20600000 rtn 
+
+le_send_smp_security_request:
+5b02 18002202 force 2 ,rega 
+5b03 20405c62 call le_fifo_malloc_tx_l2cap_smp 
+5b04 5800000b setarg smp_security_request 
+5b05 e0a08000 istore 1 ,contw 
+5b06 6800c456 fetch 1 ,mem_le_pres_auth 
+5b07 e0a08000 istore 1 ,contw 
+5b08 20600000 rtn 
+
+le_parse_smp_pairing_request:
+5b09 6000c44c store 1 ,mem_le_preq 
+5b0a e8c30000 ifetch 6 ,contr 
+5b0b e0a30000 istore 6 ,contw 
+5b0c 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5b0d c0005b5f beq le_pairing_mode_none ,le_smp_pairing_fail_reason_not_support_pairing 
+5b0e 20405b2b call le_send_smp_pairing_response 
+5b0f 20405b26 call le_check_master_support_secure_connect 
+5b10 7044c403 jam flag_le_pairing_rcv_pairing_req ,mem_le_pairing_state 
+5b11 6800c44d fetch 1 ,mem_le_preq_iocap 
+5b12 c0005b18 beq flag_iocap_displayonly ,le_set_tk_0 
+5b13 c000db18 beq flag_iocap_displayyesno ,le_set_tk_0 
+5b14 c001db18 beq flag_iocap_noinputnooutput ,le_set_tk_0 
+5b15 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5b16 c0015b1b beq le_pairing_mode_lagacy_passkey ,le_parse_smp_pairing_req_passkey 
+5b17 c1418000 rtneq le_pairing_mode_secure_connect_passkey 
+
+le_set_tk_0:
+5b18 dfe00000 arg 0 ,pdata 
+5b19 600244c7 store 4 ,mem_le_tk 
+5b1a 20600000 rtn 
+
+le_parse_smp_pairing_req_passkey:
+5b1b 6800c4e9 fetch 1 ,mem_le_configuration 
+5b1c c2805b24 bbit1 bit_ble_passkey_fixed_key ,le_parse_smp_pairing_req_fixed_passkey 
+
+le_genernate_tk:
+5b1d da2044c7 arg mem_le_tk ,rega 
+5b1e 1a220a00 copy rega ,contw 
+5b1f df200003 arg 3 ,loopcnt 
+5b20 2040630d call generate_random_loop 
+5b21 680144c9 fetch 2 ,mem_le_tk + 2 
+5b22 1fe17e07 and_into 0x7 ,pdata 
+5b23 600144c9 store 2 ,mem_le_tk + 2 
+
+le_parse_smp_pairing_req_fixed_passkey:
+5b24 700a9934 jam bt_evt_le_tk_generate ,mem_fifo_temp 
+5b25 20207d86 branch ui_ipc_send_event 
+
+le_check_master_support_secure_connect:
+5b26 6800c44f fetch 1 ,mem_le_preq_auth 
+5b27 c3818000 rtnbit1 le_auth_secure_connection_pairing_bit 
+5b28 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5b29 c4038000 rtnbit0 le_pairing_mode_secure_connect_bit 
+5b2a 20203402 branch app_ble_disconnect 
+
+le_send_smp_pairing_response:
+5b2b 18002207 force 7 ,rega 
+5b2c 20405c62 call le_fifo_malloc_tx_l2cap_smp 
+5b2d 6803c453 fetch 7 ,mem_le_pres 
+5b2e e0a38000 istore 7 ,contw 
+5b2f 20600000 rtn 
+
+le_parse_smp_pairing_confirm:
+5b30 18c22200 copy contr ,rega 
+5b31 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5b32 c041db37 beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_confirm_secure_passkey 
+5b33 1a220c00 copy rega ,contr 
+5b34 d8a0442a arg mem_le_rconfirm ,contw 
+5b35 20407ebf call memcpy16 
+5b36 20205b3d branch le_send_smp_pairing_confirm 
+
+le_parse_smp_pairing_confirm_secure_passkey:
+5b37 1a220c00 copy rega ,contr 
+5b38 d8a0442a arg mem_le_rconfirm ,contw 
+5b39 20407ebf call memcpy16 
+5b3a 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+5b3b 7044c108 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
+5b3c 20600000 rtn 
+
+le_send_smp_pairing_confirm:
+5b3d 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5b3e c283db45 bbit1 le_pairing_mode_secure_connect_bit ,le_send_smp_pairing_confirm_sc 
+5b3f 2040739c call generate_confirm 
+5b40 18002211 force 17 ,rega 
+5b41 20405c62 call le_fifo_malloc_tx_l2cap_smp 
+5b42 58000003 setarg smp_pairing_confirm 
+5b43 e0a08000 istore 1 ,contw 
+5b44 20207497 branch store_aes_result 
+
+le_send_smp_pairing_confirm_sc:
+5b45 d8a0443a arg mem_le_srand ,contw 
+5b46 2040630c call generate_random 
+5b47 204071c5 call function_f4_cb 
+5b48 18002211 force 17 ,rega 
+5b49 20405c62 call le_fifo_malloc_tx_l2cap_smp 
+5b4a 58000003 setarg smp_pairing_confirm 
+5b4b e0a08000 istore 1 ,contw 
+5b4c 20207201 branch load_inverse_result 
+
+le_parse_smp_pairing_random:
+5b4d 18c22200 copy contr ,rega 
+5b4e 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5b4f c283db61 bbit1 le_pairing_mode_secure_connect_bit ,le_parse_smp_pairing_random_sc 
+5b50 1a220c00 copy rega ,contr 
+5b51 20407394 call authenticate_rconfirm 
+5b52 2022db75 branch le_parse_smp_pairing_random_success ,zero 
+
+le_send_pairing_confirm_value_failed:
+5b53 70047b04 jam pairing_failed_confirm_value_failed ,mem_le_ll_pairing_fail_reason 
+
+le_send_pairing_failed:
+5b54 18002202 force 2 ,rega 
+5b55 20405c62 call le_fifo_malloc_tx_l2cap_smp 
+5b56 58000005 setarg smp_pairing_failed 
+5b57 e0a08000 istore 1 ,contw 
+5b58 6800847b fetch 1 ,mem_le_ll_pairing_fail_reason 
+5b59 e0a08000 istore 1 ,contw 
+
+le_parse_smp_pairing_failed:
+5b5a 18000e0a force smp_pairing_timer ,queue 
+5b5b 20407f07 call timer_stop 
+5b5c 7044c400 jam flag_le_pairing_null ,mem_le_pairing_state 
+5b5d 700a9930 jam bt_evt_le_pairing_fail ,mem_fifo_temp 
+5b5e 20207d86 branch ui_ipc_send_event 
+
+le_smp_pairing_fail_reason_not_support_pairing:
+5b5f 70047b05 jam pairing_failed_pairing_not_supported ,mem_le_ll_pairing_fail_reason 
+5b60 20205b54 branch le_send_pairing_failed 
+
+le_parse_smp_pairing_random_sc:
+5b61 d8a0042f arg mem_le_mrand ,contw 
+5b62 1a220c00 copy rega ,contr 
+5b63 20407ebf call memcpy16 
+5b64 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5b65 c041db6c beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_random_sc_passkey 
+5b66 2040714f call function_g2 
+5b67 20405b7a call le_send_smp_pairing_random 
+5b68 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5b69 c1c10000 rtnne le_pairing_mode_secure_connect_numeric 
+5b6a 700a993b jam bt_evt_le_gkey_generate ,mem_fifo_temp 
+5b6b 20207d86 branch ui_ipc_send_event 
+
+le_parse_smp_pairing_random_sc_passkey:
+5b6c 204071ba call function_f4_ca 
+5b6d d8a00af2 arg mem_aes_cmac_temp ,contw 
+5b6e 20407201 call load_inverse_result 
+5b6f da200af2 arg mem_aes_cmac_temp ,rega 
+5b70 da40442a arg mem_le_rconfirm ,regb 
+5b71 df200010 arg 16 ,loopcnt 
+5b72 20407f88 call string_compare 
+5b73 2422db53 nbranch le_send_pairing_confirm_value_failed ,zero 
+5b74 20205b7a branch le_send_smp_pairing_random 
+
+le_parse_smp_pairing_random_success:
+5b75 20407390 call generate_stk 
+5b76 700a9931 jam bt_evt_le_pairing_success ,mem_fifo_temp 
+5b77 20407d86 call ui_ipc_send_event 
+5b78 70442901 jam 1 ,mem_ltk_exists 
+5b79 7044c405 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
+
+le_send_smp_pairing_random:
+5b7a 18002211 force 17 ,rega 
+5b7b 20405c62 call le_fifo_malloc_tx_l2cap_smp 
+5b7c 58000004 setarg smp_pairing_random 
+5b7d e0a08000 istore 1 ,contw 
+5b7e d8c0443a arg mem_le_srand ,contr 
+5b7f 20207ebf branch memcpy16 
+
+le_parse_smp_encryption_information:
+5b80 d8a0041f arg mem_le_peer_ltk ,contw 
+5b81 20207ebf branch memcpy16 
+
+le_send_smp_encryption_information:
+5b82 18002211 force 17 ,rega 
+5b83 20405c62 call le_fifo_malloc_tx_l2cap_smp 
+5b84 58000006 setarg smp_encryption_information 
+5b85 e0a08000 istore 1 ,contw 
+5b86 6800c4e9 fetch 1 ,mem_le_configuration 
+5b87 c280db8a bbit1 bit_ble_pairing_fixed_ltk ,le_send_fixed_ltk 
+5b88 d8c04419 arg mem_le_ltk ,contr 
+5b89 20207ebf branch memcpy16 
+
+le_send_fixed_ltk:
+5b8a d8c044ea arg mem_le_fixed_ltk ,contr 
+5b8b 20207ebf branch memcpy16 
+
+le_send_smp_master_identification:
+5b8c d8a044cb arg mem_le_ediv ,contw 
+5b8d 1800720a force 10 ,loopcnt 
+5b8e 2040630d call generate_random_loop 
+5b8f 1800220b force 11 ,rega 
+5b90 20405c62 call le_fifo_malloc_tx_l2cap_smp 
+5b91 58000007 setarg smp_master_identification 
+5b92 e0a08000 istore 1 ,contw 
+5b93 680144cb fetch 2 ,mem_le_ediv 
+5b94 e0a10000 istore 2 ,contw 
+5b95 680444cd fetch 8 ,mem_le_rand 
+5b96 e0a40000 istore 8 ,contw 
+5b97 20600000 rtn 
+
+le_send_smp_identity_information:
+5b98 18002211 force 17 ,rega 
+5b99 20405c62 call le_fifo_malloc_tx_l2cap_smp 
+5b9a 58000008 setarg smp_identity_information 
+5b9b e0a08000 istore 1 ,contw 
+5b9c 58000000 setarg 0 
+5b9d e0a40000 istore 8 ,contw 
+5b9e e0a40000 istore 8 ,contw 
+5b9f 20600000 rtn 
+
+le_send_smp_identity_address_information:
+5ba0 18002208 force 8 ,rega 
+5ba1 20405c62 call le_fifo_malloc_tx_l2cap_smp 
+5ba2 58000009 setarg smp_identity_address_information 
+5ba3 e0a08000 istore 1 ,contw 
+5ba4 6800c495 fetch 1 ,mem_le_conn_own_addr_type 
+5ba5 e0a08000 istore 1 ,contw 
+5ba6 680344a0 fetch 6 ,mem_le_lap 
+5ba7 e0a30000 istore 6 ,contw 
+5ba8 20600000 rtn 
+
+le_send_pairing_fail_unspecified_reason:
+5ba9 70047b08 jam pairing_failed_unspecified_reason ,mem_le_ll_pairing_fail_reason 
+5baa 20205b54 branch le_send_pairing_failed 
+
+le_check_init_key_distribution:
+5bab 6800c458 fetch 1 ,mem_le_pres_init_key_distribution 
+5bac 6808c458 fetcht 1 ,mem_le_pres_init_key_distribution 
+5bad 98417e00 iand temp ,pdata 
+5bae 20600000 rtn 
+
+le_parse_smp_identity_information:
+5baf d8a044d5 arg mem_le_irk ,contw 
+5bb0 20407ebf call memcpy16 
+5bb1 20405bab call le_check_init_key_distribution 
+5bb2 2fec0001 isolate0 le_initator_irk_bit ,pdata 
+5bb3 2020dba9 branch le_send_pairing_fail_unspecified_reason ,true 
+5bb4 6800c092 fetch 1 ,mem_device_option 
+5bb5 c1850000 rtnne dvc_op_module 
+5bb6 20405bb9 call le_check_master_addr_type 
+5bb7 24740000 nrtn user 
+5bb8 20203410 branch app_ble_store_reconn_info 
+
+le_check_master_addr_type:
+5bb9 20407fe9 call disable_user 
+5bba 6800c48e fetch 1 ,mem_le_conn_peer_addr_type 
+5bbb c1000000 rtneq master_public_addr 
+5bbc 68008454 fetch 1 ,mem_le_plap + 5 
+5bbd 2fe180c0 compare 0xc0 ,pdata ,0xc0 
+5bbe 20608000 rtn true 
+5bbf 20207fe7 branch enable_user 
+
+le_parse_smp_identity_address_information:
+5bc0 20405bab call le_check_init_key_distribution 
+5bc1 2fec0001 isolate0 le_initator_irk_bit ,pdata 
+5bc2 2020dba9 branch le_send_pairing_fail_unspecified_reason ,true 
+5bc3 20600000 rtn 
+
+le_parse_smp_master_identification:
+
+le_parse_smp_signing_information:
+
+le_parse_smp_security_request:
+5bc4 20600000 rtn 
+
+le_parse_smp_public_key:
+5bc5 d8a009be arg mem_le_pubkey_remote_x_256 ,contw 
+5bc6 20407eb3 call memcpy64 
+5bc7 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+5bc8 7044c101 jam le_sc_stat_receive_public_key ,mem_le_secure_connect_state 
+5bc9 20600000 rtn 
+
+le_parse_smp_dhkey_check:
+5bca d8a00a6e arg mem_sp_confirm_remote ,contw 
+5bcb 20407ebf call memcpy16 
+5bcc 7044c106 jam le_sc_stat_receive_dhkey ,mem_le_secure_connect_state 
+5bcd 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+5bce 20600000 rtn 
+
+le_send_smp_pairing_public_key:
+5bcf 18002241 force 65 ,rega 
+5bd0 20405c62 call le_fifo_malloc_tx_l2cap_smp 
+5bd1 5800000c setarg smp_pairing_public_key 
+5bd2 e0a08000 istore 1 ,contw 
+5bd3 d8c045d2 arg mem_le_pubkey_local_x_256 ,contr 
+5bd4 20207eb3 branch memcpy64 
+
+le_send_smp_pairing_dhkey_check:
+5bd5 20407166 call function_f6_eb 
+5bd6 18002211 force 17 ,rega 
+5bd7 20405c62 call le_fifo_malloc_tx_l2cap_smp 
+5bd8 5800000d setarg smp_pairing_dhkey_check 
+5bd9 e0a08000 istore 1 ,contw 
+5bda 20207201 branch load_inverse_result 
+
+le_check_paring_time:
+5bdb 6800c4c4 fetch 1 ,mem_le_pairing_state 
+5bdc c17f8000 rtneq flag_le_pairing_end 
+5bdd d8400003 arg flag_le_pairing_rcv_pairing_req ,temp 
+5bde 98467c00 isub temp ,null 
+5bdf 24610000 nrtn positive 
+5be0 d8e0000a arg smp_pairing_timer ,queue 
+5be1 20407f16 call timer_check 
+5be2 247a0000 nrtn blank 
+5be3 20205ba9 branch le_send_pairing_fail_unspecified_reason 
+
+le_pairing_sm:
+5be4 473c402f bpatchx patch2f_0 ,mem_patch2f 
+5be5 6800c4c4 fetch 1 ,mem_le_pairing_state 
+5be6 c0005bef beq flag_le_pairing_null ,le_pairing_sm_null 
+5be7 c000dbf5 beq flag_le_pairing_start ,le_pairing_sm_start 
+5be8 c0015bef beq flag_le_pairing_send_recurity_req ,le_pairing_sm_send_sec_req 
+5be9 c001dbf7 beq flag_le_pairing_rcv_pairing_req ,le_pairing_sm_rcv_pairing_req 
+5bea c002dbfb beq flag_le_pairing_after_auth ,le_pairing_sm_after_auth 
+5beb c003dc07 beq flag_le_paring_send_enc_information ,le_pairng_sm_send_enc_information 
+5bec c0045c09 beq flag_le_paring_send_master_identification ,le_pairng_sm_send_master_indentification 
+5bed c004dc10 beq flag_le_paring_send_indentity_information ,le_pairng_sm_send_indentity_information 
+5bee 20600000 rtn 
+
+le_pairing_sm_null:
+
+le_pairing_sm_send_sec_req:
+5bef 6800c4c5 fetch 1 ,mem_le_enc_state 
+5bf0 c1820000 rtnne flag_le_send_start_enc_rsp 
+5bf1 7044c5ff jam flag_le_enc_end ,mem_le_enc_state 
+5bf2 7044c4ff jam flag_le_pairing_end ,mem_le_pairing_state 
+5bf3 700a993f jam bt_evt_le_reconnect_complete ,mem_fifo_temp 
+5bf4 20207d86 branch ui_ipc_send_event 
+
+le_pairing_sm_start:
+5bf5 7044c402 jam flag_le_pairing_send_recurity_req ,mem_le_pairing_state 
+5bf6 20205b02 branch le_send_smp_security_request 
+
+le_pairing_sm_rcv_pairing_req:
+5bf7 7044c404 jam flag_le_pairing_auth ,mem_le_pairing_state 
+5bf8 58017700 setarg timer_smp_pairing_timeout 
+5bf9 d8e0000a arg smp_pairing_timer ,queue 
+5bfa 20207f08 branch timer_init 
+
+le_pairing_sm_after_auth:
+5bfb 6800c4c5 fetch 1 ,mem_le_enc_state 
+5bfc c0025bfe beq flag_le_send_start_enc_rsp ,le_pairing_sm_after_auth_start_enc 
+5bfd 20600000 rtn 
+
+le_pairing_sm_after_auth_start_enc:
+5bfe 7044c407 jam flag_le_paring_send_enc_information ,mem_le_pairing_state 
+5bff 700a9929 jam bt_evt_le_enc_info ,mem_fifo_temp 
+5c00 20407d86 call ui_ipc_send_event 
+5c01 20405b82 call le_send_smp_encryption_information 
+5c02 6800c092 fetch 1 ,mem_device_option 
+5c03 c1850000 rtnne dvc_op_module 
+5c04 20405bb9 call le_check_master_addr_type 
+5c05 20740000 rtn user 
+5c06 20203410 branch app_ble_store_reconn_info 
+
+le_pairng_sm_send_enc_information:
+5c07 7044c408 jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
+5c08 20205b8c branch le_send_smp_master_identification 
+
+le_pairng_sm_send_master_indentification:
+5c09 6800c452 fetch 1 ,mem_le_preq_resp_key_distribution 
+5c0a 6808c459 fetcht 1 ,mem_le_pres_resp_key_distribution 
+5c0b 98417e00 iand temp ,pdata 
+5c0c 2fec0001 isolate0 le_initator_irk_bit ,pdata 
+5c0d 2020dc12 branch le_parse_start_enc_rsp_after_auth_end ,true 
+5c0e 7044c409 jam flag_le_paring_send_indentity_information ,mem_le_pairing_state 
+5c0f 20205b98 branch le_send_smp_identity_information 
+
+le_pairng_sm_send_indentity_information:
+5c10 20405ba0 call le_send_smp_identity_address_information 
+5c11 20205c12 branch le_parse_start_enc_rsp_after_auth_end 
+
+le_parse_start_enc_rsp_after_auth_end:
+5c12 18000e0a force smp_pairing_timer ,queue 
+5c13 20407f07 call timer_stop 
+5c14 7044c5ff jam flag_le_enc_end ,mem_le_enc_state 
+5c15 7044c4ff jam flag_le_pairing_end ,mem_le_pairing_state 
+5c16 700a993e jam bt_evt_le_pairing_complete ,mem_fifo_temp 
+5c17 20207d86 branch ui_ipc_send_event 
+
+le_secure_connect_sm:
+5c18 473cc02f bpatchx patch2f_1 ,mem_patch2f 
+5c19 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5c1a c4038000 rtnbit0 le_pairing_mode_secure_connect_bit 
+5c1b 6800c4bf fetch 1 ,mem_le_secure_connect_flag 
+5c1c c1810000 rtnne le_sp_flag_commit_256 
+5c1d 7044bf00 jam sp_flag_standby ,mem_le_secure_connect_flag 
+5c1e 6800c4c1 fetch 1 ,mem_le_secure_connect_state 
+5c1f c000dc58 beq le_sc_stat_receive_public_key ,le_sc_sm_receive_public_key 
+5c20 c0015c5f beq le_sc_stat_wait_send_public_key ,le_sc_sm_wait_send_public_key 
+5c21 c001dc52 beq le_sc_stat_send_public_key ,le_sc_sm_send_public_key 
+5c22 c0035c39 beq le_sc_stat_receive_dhkey ,le_sc_sm_receive_dhkey 
+5c23 c003dc30 beq le_sc_stat_wait_confirm_gkey ,le_sc_sm_wait_confirm_gkey 
+5c24 c0045c26 beq le_sc_stat_passkey_wait_confirm ,le_sc_sm_passkey_wait_confirm 
+5c25 20600000 rtn 
+
+le_sc_sm_passkey_wait_confirm:
+5c26 6800c663 fetch 1 ,mem_authentication_passkey_times 
+5c27 1fe20e00 copy pdata ,queue 
+5c28 1fe0fe01 increase 1 ,pdata 
+5c29 6000c663 store 1 ,mem_authentication_passkey_times 
+5c2a 680244c7 fetch 4 ,mem_le_tk 
+5c2b afefffff qisolate1 pdata 
+5c2c 58000080 setarg 0x80 
+5c2d 7920fe00 setflag true ,0 ,pdata 
+5c2e 6000c664 store 1 ,mem_passkey_1bit 
+5c2f 20205c55 branch le_sc_sm_ready_send_pairing_confirm 
+
+le_sc_sm_wait_confirm_gkey:
+5c30 6800c4c2 fetch 1 ,mem_le_sc_confirm_gkey_flag 
+5c31 7044c200 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
+5c32 c000dc35 beq flag_le_sc_confrim_gkey_ok ,le_sc_confirm_gkey_ok 
+5c33 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+5c34 20600000 rtn 
+
+le_sc_confirm_gkey_ok:
+5c35 700a9931 jam bt_evt_le_pairing_success ,mem_fifo_temp 
+5c36 20407d86 call ui_ipc_send_event 
+5c37 7044c405 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
+5c38 20205bd5 branch le_send_smp_pairing_dhkey_check 
+
+le_sc_sm_receive_dhkey:
+5c39 680089b9 fetch 1 ,mem_sp_dhkey_invalid 
+5c3a c001dc3d beq sp_key_valid_256 ,le_dhkey_ready 
+5c3b 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+5c3c 20600000 rtn 
+
+le_dhkey_ready:
+5c3d 2040718d call function_f5 
+5c3e 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5c3f c041dc41 beq le_pairing_mode_secure_connect_passkey ,le_dhkey_ready_common 
+5c40 20405b18 call le_set_tk_0 
+
+le_dhkey_ready_common:
+5c41 2040717a call function_f6_ea 
+5c42 da200af2 arg mem_aes_cmac_temp ,rega 
+5c43 da400a6e arg mem_sp_confirm_remote ,regb 
+5c44 df200010 arg 16 ,loopcnt 
+5c45 20407f88 call string_compare 
+5c46 2022dc49 branch le_dhkey_check_ok ,zero 
+
+le_dhkey_check_fail:
+5c47 70047b0b jam pairing_failed_dhkey_check_failed ,mem_le_ll_pairing_fail_reason 
+5c48 20205b54 branch le_send_pairing_failed 
+
+le_dhkey_check_ok:
+5c49 20407595 call sp_calc_check_publickey_256 
+5c4a 2422dc47 nbranch le_dhkey_check_fail ,zero 
+5c4b 70442901 jam 1 ,mem_ltk_exists 
+5c4c 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5c4d c040dc35 beq le_pairing_mode_secure_connect_justwork ,le_sc_confirm_gkey_ok 
+5c4e c041dc35 beq le_pairing_mode_secure_connect_passkey ,le_sc_confirm_gkey_ok 
+5c4f 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+5c50 7044c107 jam le_sc_stat_wait_confirm_gkey ,mem_le_secure_connect_state 
+5c51 20600000 rtn 
+
+le_sc_sm_send_public_key:
+5c52 6800c4c6 fetch 1 ,mem_le_pairing_mode 
+5c53 c041dc56 beq le_pairing_mode_secure_connect_passkey ,le_sc_sm_send_public_key_passkey 
+5c54 70466400 jam 0 ,mem_passkey_1bit 
+
+le_sc_sm_ready_send_pairing_confirm:
+5c55 20205b3d branch le_send_smp_pairing_confirm 
+
+le_sc_sm_send_public_key_passkey:
+5c56 70466300 jam 0 ,mem_authentication_passkey_times 
+5c57 20205b1b branch le_parse_smp_pairing_req_passkey 
+
+le_sc_sm_receive_public_key:
+5c58 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+5c59 6800c4c3 fetch 1 ,mem_le_sc_local_key_invalid 
+5c5a c001dc5c beq sp_key_valid_256 ,le_public_key_ready 
+5c5b 20600000 rtn 
+
+le_public_key_ready:
+5c5c 7044c102 jam le_sc_stat_wait_send_public_key ,mem_le_secure_connect_state 
+5c5d 7009b900 jam sp_key_invalid ,mem_sp_dhkey_invalid 
+5c5e 20207a99 branch sp_dhkey_calc_256 
+
+le_sc_sm_wait_send_public_key:
+5c5f 7044bf02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+5c60 7044c103 jam le_sc_stat_send_public_key ,mem_le_secure_connect_state 
+5c61 20205bcf branch le_send_smp_pairing_public_key 
+
+le_fifo_malloc_tx_l2cap_smp:
+5c62 18002406 force le_l2cap_cid_smp ,regb 
+5c63 20205847 branch le_fifo_malloc_tx_l2cap 
+
+le_parse_ll:
+5c64 680082db fetch 1 ,mem_le_rxbuf + 2 
+5c65 c0005c7b beq ll_connection_update_req ,le_parse_connection_update_req 
+5c66 c000dc83 beq ll_channel_map_req ,le_parse_channel_map_req 
+5c67 c0015c8e beq ll_terminate_ind ,le_parse_terminate_ind 
+5c68 c001dcaa beq ll_enc_req ,le_parse_enc_req 
+5c69 c0025ce1 beq ll_enc_rsp ,le_parse_enc_rsp 
+5c6a c002dce6 beq ll_start_enc_req ,le_parse_start_enc_req 
+5c6b c0035cea beq ll_start_enc_rsp ,le_parse_start_enc_rsp 
+5c6c c003dcf5 beq ll_unknown_rsp ,le_parse_unknown_rsp 
+5c6d c0045c99 beq ll_feature_req ,le_parse_feature_req 
+5c6e c004dcf5 beq ll_feature_rsp ,le_parse_feature_rsp 
+5c6f c0055cef beq ll_pause_enc_req ,le_parse_pause_enc_req 
+5c70 c005dcf5 beq ll_pause_enc_rsp ,le_parse_pause_enc_rsp 
+5c71 c0065c9f beq ll_version_ind ,le_parse_version_ind 
+5c72 c006dcf5 beq ll_reject_ind ,le_parse_reject_ind 
+5c73 c0095ca6 beq ll_ping_req ,le_parse_ping_req 
+5c74 c009dcf5 beq ll_ping_rsp ,le_parse_ping_rsp 
+5c75 da200002 arg 2 ,rega 
+5c76 da400007 arg ll_unknown_rsp ,regb 
+5c77 20405842 call le_fifo_malloc_tx_ll 
+5c78 680082db fetch 1 ,mem_le_rxbuf + 2 
+5c79 e0a08000 istore 1 ,contw 
+5c7a 20600000 rtn 
+
+le_parse_connection_update_req:
+5c7b e8c48000 ifetch 9 ,contr 
+5c7c 6004c3d3 store 9 ,mem_le_new_param 
+5c7d e8c10000 ifetch 2 ,contr 
+5c7e 6001045f store 2 ,mem_le_instant 
+5c7f 6800843f fetch 1 ,mem_le_state 
+5c80 79207e05 set1 lestate_update_param ,pdata 
+5c81 6000843f store 1 ,mem_le_state 
+5c82 20600000 rtn 
+
+le_parse_channel_map_req:
+5c83 e8c28000 ifetch 5 ,contr 
+5c84 6002c3ce store 5 ,mem_le_new_map 
+5c85 e8c10000 ifetch 2 ,contr 
+5c86 6001045f store 2 ,mem_le_instant 
+5c87 68090459 fetcht 2 ,mem_le_event_count 
+5c88 98467c00 isub temp ,null 
+5c89 24215c8e nbranch le_parse_terminate_ind ,positive 
+5c8a 6800843f fetch 1 ,mem_le_state 
+5c8b 79207e06 set1 lestate_update_map ,pdata 
+5c8c 6000843f store 1 ,mem_le_state 
+5c8d 20600000 rtn 
+
+le_parse_terminate_ind:
+5c8e 58000014 setarg 20 
+5c8f 6001046d store 2 ,mem_le_superto 
+5c90 600144ba store 2 ,mem_le_init_superto 
+5c91 20600000 rtn 
+
+le_send_terminate_ind_user_terminated:
+5c92 da600013 arg error_remote_user_terminated_connection ,regc 
+
+le_send_terminate_ind:
+5c93 da200002 arg 2 ,rega 
+5c94 da400002 arg ll_terminate_ind ,regb 
+5c95 20405842 call le_fifo_malloc_tx_ll 
+5c96 1a627e00 copy regc ,pdata 
+5c97 e0a08000 istore 1 ,contw 
+5c98 20600000 rtn 
+
+le_parse_feature_req:
+
+le_send_feature_rsp:
+5c99 da200009 arg 9 ,rega 
+5c9a da400009 arg ll_feature_rsp ,regb 
+5c9b 20405842 call le_fifo_malloc_tx_ll 
+5c9c 58000001 setarg param_le_features 
+5c9d e0a40000 istore 8 ,contw 
+5c9e 20600000 rtn 
+
+le_parse_version_ind:
+5c9f 20748000 rtn master 
+
+le_send_version_ind:
+5ca0 da200006 arg 6 ,rega 
+5ca1 da40000c arg ll_version_ind ,regb 
+5ca2 20405842 call le_fifo_malloc_tx_ll 
+5ca3 6802c510 fetch 5 ,mem_lmp_version 
+5ca4 e0a28000 istore 5 ,contw 
+5ca5 20600000 rtn 
+
+le_parse_ping_req:
+5ca6 da400013 arg ll_ping_rsp ,regb 
+5ca7 20205ca8 branch le_send_ll_one_lenth 
+
+le_send_ll_one_lenth:
+5ca8 da200001 arg 1 ,rega 
+5ca9 20205842 branch le_fifo_malloc_tx_ll 
+
+le_parse_enc_req:
+5caa e8c40000 ifetch 8 ,contr 
+5cab 600444cd store 8 ,mem_le_rand 
+5cac e8c10000 ifetch 2 ,contr 
+5cad 600144cb store 2 ,mem_le_ediv 
+5cae e8c40000 ifetch 8 ,contr 
+5caf 600444aa store 8 ,mem_le_skdm 
+5cb0 e8c20000 ifetch 4 ,contr 
+5cb1 60024411 store 4 ,mem_le_ivm 
+5cb2 20405ccf call le_send_enc_rsp 
+5cb3 473d402f bpatchx patch2f_2 ,mem_patch2f 
+5cb4 6800c4c4 fetch 1 ,mem_le_pairing_state 
+5cb5 c002dcbc beq flag_le_pairing_after_auth ,le_parse_enc_req_after_auth 
+5cb6 6800c4e9 fetch 1 ,mem_le_configuration 
+5cb7 c280dcbf bbit1 bit_ble_pairing_fixed_ltk ,le_parse_enc_req_fixed_ltk 
+5cb8 6800c217 fetch 1 ,mem_nv_data_number 
+5cb9 245a67be ncall load_device_list_mode_4 ,blank 
+5cba 6800c429 fetch 1 ,mem_ltk_exists 
+5cbb c0005cc4 beq 0 ,le_ltk_lost 
+
+le_parse_enc_req_after_auth:
+5cbc 7044c501 jam flag_le_rcv_enc_start ,mem_le_enc_state 
+5cbd 20405cdd call le_send_start_enc_req 
+5cbe 202073a2 branch generate_sk 
+
+le_parse_enc_req_fixed_ltk:
+5cbf 70442901 jam 1 ,mem_ltk_exists 
+5cc0 d8c044ea arg mem_le_fixed_ltk ,contr 
+5cc1 d8a04419 arg mem_le_ltk ,contw 
+5cc2 20407ebf call memcpy16 
+5cc3 20205cbc branch le_parse_enc_req_after_auth 
+
+le_ltk_lost:
+5cc4 473dc02f bpatchx patch2f_3 ,mem_patch2f 
+5cc5 7044c500 jam flag_le_enc_null ,mem_le_enc_state 
+5cc6 7044c400 jam flag_le_enc_null ,mem_le_pairing_state 
+5cc7 700a9941 jam bt_evt_le_ltk_lost ,mem_fifo_temp 
+5cc8 20207d86 branch ui_ipc_send_event 
+
+le_send_reject_ind:
+5cc9 da200002 arg 2 ,rega 
+5cca da40000d arg ll_reject_ind ,regb 
+5ccb 20405842 call le_fifo_malloc_tx_ll 
+5ccc 58000006 setarg le_err_pin_or_key_missing 
+5ccd e0a08000 istore 1 ,contw 
+5cce 20600000 rtn 
+
+le_send_enc_rsp:
+5ccf d8a044b2 arg mem_le_skds ,contw 
+5cd0 18007208 force 8 ,loopcnt 
+5cd1 2040630d call generate_random_loop 
+5cd2 d8a04415 arg mem_le_ivs ,contw 
+5cd3 18007204 force 4 ,loopcnt 
+5cd4 2040630d call generate_random_loop 
+5cd5 da20000d arg 13 ,rega 
+5cd6 da400004 arg ll_enc_rsp ,regb 
+5cd7 20405842 call le_fifo_malloc_tx_ll 
+5cd8 680444b2 fetch 8 ,mem_le_skds 
+5cd9 e0a40000 istore 8 ,contw 
+5cda 68024415 fetch 4 ,mem_le_ivs 
+5cdb e0a20000 istore 4 ,contw 
+5cdc 20600000 rtn 
+
+le_send_start_enc_req:
+5cdd da400005 arg ll_start_enc_req ,regb 
+5cde 20205ca8 branch le_send_ll_one_lenth 
+
+le_send_start_enc_rsp:
+5cdf da400006 arg ll_start_enc_rsp ,regb 
+5ce0 20205ca8 branch le_send_ll_one_lenth 
+
+le_parse_enc_rsp:
+5ce1 e8c40000 ifetch 8 ,contr 
+5ce2 600444b2 store 8 ,mem_le_skds 
+5ce3 e8c20000 ifetch 4 ,contr 
+5ce4 60024415 store 4 ,mem_le_ivs 
+5ce5 202073a2 branch generate_sk 
+
+le_parse_start_enc_req:
+5ce6 6800843f fetch 1 ,mem_le_state 
+5ce7 79207e04 set1 lestate_encryption ,pdata 
+5ce8 6000843f store 1 ,mem_le_state 
+5ce9 20600000 rtn 
+
+le_parse_start_enc_rsp:
+5cea 20748000 rtn master 
+5ceb 700a9932 jam bt_evt_le_start_enc ,mem_fifo_temp 
+5cec 20407d86 call ui_ipc_send_event 
+5ced 7044c504 jam flag_le_send_start_enc_rsp ,mem_le_enc_state 
+5cee 20205cdf branch le_send_start_enc_rsp 
+
+le_parse_pause_enc_req:
+5cef 7044c502 jam flag_le_enc_pause ,mem_le_enc_state 
+5cf0 20405cf3 call le_send_pause_enc_rsp 
+5cf1 700a9933 jam bt_evt_le_pause_enc ,mem_fifo_temp 
+5cf2 20207d86 branch ui_ipc_send_event 
+
+le_send_pause_enc_rsp:
+5cf3 da40000b arg ll_pause_enc_rsp ,regb 
+5cf4 20205ca8 branch le_send_ll_one_lenth 
+
+le_parse_feature_rsp:
+
+le_parse_unknown_rsp:
+
+le_parse_pause_enc_rsp:
+
+le_parse_reject_ind:
+
+le_parse_ping_rsp:
+5cf5 20600000 rtn 
+
+init_lmp:
+5cf6 20758000 rtn wake 
+
+init_lmp_work:
+5cf7 473e402f bpatchx patch2f_4 ,mem_patch2f 
+5cf8 58000000 setarg 0 
+5cf9 60008048 store 1 ,mem_lmp_to_send 
+5cfa 60008055 store 1 ,mem_conn_sm 
+5cfb 60008078 store 1 ,mem_lmo_opcode1 
+5cfc 6000807c store 1 ,mem_lmo_opcode2 
+5cfd 6000c158 store 1 ,mem_esco_addr 
+5cfe 600084d7 store 1 ,mem_auth_enable 
+5cff 6000816d store 1 ,mem_connection_options 
+5d00 600089b5 store 1 ,mem_pairing_auth 
+5d01 70455b00 jam switch_flag_init ,mem_switch_flag 
+5d02 70022900 jam 0 ,mem_switch_fail_master_count 
+5d03 7004d800 jam null_encryp ,mem_wait_encryption 
+
+init_lmp_reinit:
+5d04 7009b500 jam 0 ,mem_pairing_auth 
+5d05 7009b400 jam 0 ,mem_sp_localsm 
+5d06 7004d100 jam 0 ,mem_lmp_conn_state 
+
+parse_rx_done:
+5d07 20600000 rtn 
+
+parse_lmp:
+5d08 473ec02f bpatchx patch2f_5 ,mem_patch2f 
+5d09 2054e2ff call setlocalsm_master ,master 
+5d0a 2454e303 ncall setlocalsm_slave ,master 
+5d0b 204062bc call lmo_fifo_check 
+5d0c 247a0000 nrtn blank 
+5d0d 6800804c fetch 1 ,mem_state_map 
+5d0e c4030000 rtnbit0 smap_rxlmp 
+5d0f 793ffe06 set0 smap_rxlmp ,pdata 
+5d10 793f8001 set0 mark_rxbuf_inuse ,mark 
+5d11 6000804c store 1 ,mem_state_map 
+5d12 68008551 fetch 1 ,mem_rxbuf 
+5d13 6808804c fetcht 1 ,mem_state_map 
+5d14 2feffe00 isolate1 smap_lmptidinit ,pdata 
+5d15 79208401 setflag true ,smap_lmptid ,temp 
+5d16 6008804c storet 1 ,mem_state_map 
+5d17 18410402 and_into 0x2 ,temp 
+5d18 6008807f storet 1 ,mem_lmo_tid2 
+5d19 6808804c fetcht 1 ,mem_state_map 
+5d1a 1fe37e00 rshift pdata ,pdata 
+5d1b 6000807d store 1 ,mem_lmi_opcode2 
+5d1c 473f402f bpatchx patch2f_6 ,mem_patch2f 
+5d1d 6800807d fetch 1 ,mem_lmi_opcode2 
+5d1e c03fdd66 beq lmp_escape ,parse_lmp_escape 
+5d1f c001ddb1 beq lmp_accepted ,parse_lmp_accepted 
+5d20 c0025dc2 beq lmp_not_accepted ,parse_lmp_not_accepted 
+5d21 c01e5d59 beq lmp_set_afh ,parse_lmp_set_afh 
+5d22 c002dd55 beq lmp_clkoffset_req ,parse_lmp_clkoffset_req 
+5d23 c007dfa8 beq lmp_encryption_mode_req ,parse_lmp_encryption_mode_req 
+5d24 c0085e24 beq lmp_encryption_key_size_req ,parse_lmp_crypt_key 
+5d25 c011de42 beq lmp_auto_rate ,parse_lmp_auto_rate 
+5d26 c01cdfc1 beq lmp_test_control ,parse_lmp_test_control 
+5d27 c01c5fbc beq lmp_test_activate ,parse_lmp_test_activate 
+5d28 c018de27 beq lmp_setup_complete ,parse_lmp_setup_complete 
+5d29 c01bdeb0 beq lmp_supervision_timeout ,parse_lmp_supervision_timeout 
+5d2a c013deac beq lmp_features_req ,parse_lmp_features_req 
+5d2b c019dea9 beq lmp_host_connection_req ,parse_lmp_conn_req 
+5d2c c012deae beq lmp_version_req ,parse_lmp_version_req 
+5d2d c0135e3e beq lmp_version_res ,parse_lmp_version_res 
+5d2e c003de36 beq lmp_detach ,parse_lmp_detach 
+5d2f c016de2d beq lmp_max_slot ,parse_lmp_max_slot 
+5d30 c0175e2e beq lmp_max_slot_req ,parse_lmp_max_slot_req 
+5d31 c000dea5 beq lmp_name_req ,parse_lmp_name_req 
+5d32 c0015e90 beq lmp_name_res ,parse_lmp_name_res 
+5d33 c0145fb3 beq lmp_features_res ,parse_lmp_features_res 
+5d34 c004de86 beq lmp_comb_key ,parse_lmp_comb_key 
+5d35 c005de5f beq lmp_au_rand ,parse_lmp_au_rand 
+5d36 c0045e43 beq lmp_in_rand ,parse_lmp_in_rand 
+5d37 c0065e6a beq lmp_sres ,parse_lmp_sres 
+5d38 c00fde3a beq lmp_incr_power_req ,parse_lmp_incr_power 
+5d39 c0105e3c beq lmp_decr_power_req ,parse_lmp_decr_power 
+5d3a c010deca beq lmp_max_power ,parse_lmp_max_power 
+5d3b c0115eca beq lmp_min_power ,parse_lmp_min_power 
+5d3c c01adecb beq lmp_page_mode_req ,parse_lmp_page_mode_req 
+5d3d c01b5ecc beq lmp_page_scan_mode_req ,parse_lmp_page_scan_mode_req 
+5d3e c0125eca beq lmp_preferred_rate ,parse_lmp_preferred_rate 
+5d3f c01a5ecd beq lmp_slot_offset ,parse_lmp_slot_offset 
+5d40 c00bded6 beq lmp_sniff_req ,parse_lmp_sniff_req 
+5d41 c008def2 beq lmp_start_encryption_req ,parse_lmp_start_encryption_req 
+5d42 c0095ef6 beq lmp_stop_encryption_req ,parse_lmp_stop_encryption_req 
+5d43 c009def8 beq lmp_switch_req ,parse_lmp_switch_req 
+5d44 c006df0a beq lmp_temp_rand ,parse_lmp_temp_rand 
+5d45 c0075f0a beq lmp_temp_key ,parse_lmp_temp_key 
+5d46 c017deaa beq lmp_timing_accuracy_req ,parse_lmp_timing_accuracy_req 
+5d47 c0185f0a beq lmp_timing_accuracy_res ,parse_lmp_timing_accuracy_res 
+5d48 c0055f0a beq lmp_unit_key ,parse_lmp_unit_key 
+5d49 c00c5f0b beq lmp_unsniff_req ,parse_lmp_unsniff_req 
+5d4a c0195f0a beq lmp_use_semi_permanent_key ,parse_lmp_use_semi_permanend_key 
+5d4b c01edf10 beq lmp_encapsulated_header ,parse_lmp_encapsulated_header 
+5d4c c01f5f51 beq lmp_encapsulated_payload ,parse_lmp_encapsulated_payload 
+5d4d c01fdf4b beq lmp_simple_pairing_confirm ,parse_simple_pairing_confirm 
+5d4e c0205f78 beq lmp_simple_pairing_number ,parse_lmp_simple_pairing_number 
+5d4f c020df8a beq lmp_dhkey_check ,parse_dhkey_check 
+5d50 c0035fa7 beq lmp_clkoffset_res ,parse_lmp_clkoffset_res 
+5d51 c01d5d57 beq lmp_enc_key_size_mask_req ,parse_enc_key_size_mask_req 
+
+reject_unknown_packet:
+5d52 70007e19 jam unknown_lmp_pdu ,mem_lmo_reason2 
+
+reject_lmp_packet:
+5d53 70007c04 jam lmp_not_accepted ,mem_lmo_opcode2 
+5d54 20600000 rtn 
+
+parse_lmp_clkoffset_req:
+5d55 70007c06 jam lmp_clkoffset_res ,mem_lmo_opcode2 
+5d56 20600000 rtn 
+
+parse_enc_key_size_mask_req:
+5d57 70007c3b jam lmp_enc_key_size_mask_res ,mem_lmo_opcode2 
+5d58 20600000 rtn 
+
+parse_lmp_set_afh:
+5d59 68020552 fetch 4 ,mem_rxbuf + 1 
+5d5a 1fe3fe00 lshift pdata ,pdata 
+5d5b 600240d2 store 4 ,mem_afh_instant 
+5d5c 68008556 fetch 1 ,mem_rxbuf + 5 
+5d5d 6000c0d9 store 1 ,mem_afh_new_mod 
+5d5e 68028557 fetch 5 ,mem_rxbuf + 6 
+5d5f 6002c0e7 store 5 ,mem_afh_map_new 
+5d60 6802855c fetch 5 ,mem_rxbuf + 11 
+5d61 e0a28000 istore 5 ,contw 
+5d62 68008031 fetch 1 ,mem_mode 
+5d63 79207e03 set1 afh_change ,pdata 
+5d64 60008031 store 1 ,mem_mode 
+5d65 20600000 rtn 
+
+parse_lmp_escape:
+5d66 473fc02f bpatchx patch2f_7 ,mem_patch2f 
+5d67 68008552 fetch 1 ,mem_rxbuf + 1 
+5d68 79207e07 set1 7 ,pdata 
+5d69 6000807d store 1 ,mem_lmi_opcode2 
+5d6a c040dd88 beq lmp_ext_accepted ,parse_lmpext_accepted 
+5d6b c0415d8d beq lmp_not_accepted_ext ,parse_lmpext_not_accepted 
+5d6c c04adeb1 beq lmp_sniff_subrating_req ,parse_lmp_sniff_subrating_req 
+5d6d c04b5eca beq lmp_sniff_subrating_res ,parse_lmp_sniff_subrating_res 
+5d6e c045debf beq lmp_packet_type_table_req ,parse_lmpext_packet_type_table_req 
+5d6f c041dda5 beq lmp_ext_features_req ,parse_lmpext_features_req 
+5d70 c0425da7 beq lmp_ext_features_res ,parse_lmpext_features_res 
+5d71 c0485d7a beq lmp_ext_chn_classification_req ,parse_lmpext_chn_classification_req 
+5d72 c04bdd9e beq lmp_pause_encryption_req ,parse_lmpext_pause_encrypt 
+5d73 c04c5da3 beq lmp_resume_encryption_req ,parse_lmpext_resume_encrypt 
+5d74 c04cdd7d beq lmp_io_cap_req ,parse_lmpext_iocap_req 
+5d75 c04d5d80 beq lmp_io_cap_res ,parse_lmpext_iocap_res 
+5d76 c1420000 rtneq lmp_ext_features_res 
+
+reject_unknown_ext_packet:
+5d77 70007c82 jam lmp_not_accepted_ext ,mem_lmo_opcode2 
+5d78 70007e19 jam unknown_lmp_pdu ,mem_lmo_reason2 
+5d79 20600000 rtn 
+
+parse_lmpext_chn_classification_req:
+5d7a 70007c82 jam lmp_not_accepted_ext ,mem_lmo_opcode2 
+5d7b 70007e2e jam not_support_chn_classification ,mem_lmo_reason2 
+5d7c 20600000 rtn 
+
+parse_lmpext_iocap_req:
+5d7d 20405d82 call iocap_lmpext_load 
+5d7e 70007c9a jam lmp_io_cap_res ,mem_lmo_opcode2 
+5d7f 20600000 rtn 
+
+parse_lmpext_iocap_res:
+5d80 20405d82 call iocap_lmpext_load 
+5d81 20205d86 branch iocap_lmpext_common 
+
+iocap_lmpext_load:
+5d82 d8a0465e arg mem_sp_iocap_remote ,contw 
+5d83 68018553 fetch 3 ,mem_rxbuf + 2 
+5d84 e0a18000 istore 3 ,contw 
+5d85 20600000 rtn 
+
+iocap_lmpext_common:
+5d86 2020f6d8 branch master_set_mem_master_sp_flag ,true 
+5d87 20600000 rtn 
+
+parse_lmpext_accepted:
+5d88 68008554 fetch 1 ,mem_rxbuf + 3 
+5d89 79207e07 set1 7 ,pdata 
+5d8a 600084c9 store 1 ,mem_lmi_accepted_opcode 
+5d8b c045dd92 beq lmp_packet_type_table_req ,parse_lmpext_accepted_ptt 
+5d8c 20600000 rtn 
+
+parse_lmpext_not_accepted:
+5d8d 68008554 fetch 1 ,mem_rxbuf + 3 
+5d8e 79207e07 set1 7 ,pdata 
+5d8f 600084c9 store 1 ,mem_lmi_accepted_opcode 
+5d90 c045dd96 beq lmp_packet_type_table_req ,parse_lmpext_not_accepted_ptt 
+5d91 20600000 rtn 
+
+parse_lmpext_accepted_ptt:
+5d92 6800c15a fetch 1 ,mem_ptt 
+5d93 6808804c fetcht 1 ,mem_state_map 
+5d94 7d3a0405 nsetflag blank ,smap_edr ,temp 
+5d95 6008804c storet 1 ,mem_state_map 
+
+parse_lmpext_not_accepted_ptt:
+5d96 68008030 fetch 1 ,mem_state 
+5d97 c4028000 rtnbit0 state_init_seq 
+5d98 793ffe05 set0 state_init_seq ,pdata 
+5d99 60008030 store 1 ,mem_state 
+5d9a 680084d7 fetch 1 ,mem_auth_enable 
+5d9b 247a0000 nrtn blank 
+5d9c 70007c31 jam lmp_setup_complete ,mem_lmo_opcode2 
+5d9d 20600000 rtn 
+
+parse_lmpext_pause_encrypt:
+5d9e 2434dda1 nbranch parse_lmpext_pause_encrypt_slave ,master 
+5d9f 70007c12 jam lmp_stop_encryption_req ,mem_lmo_opcode2 
+5da0 202062eb branch tid_reply 
+
+parse_lmpext_pause_encrypt_slave:
+5da1 70007c97 jam lmp_pause_encryption_req ,mem_lmo_opcode2 
+5da2 20600000 rtn 
+
+parse_lmpext_resume_encrypt:
+5da3 204062eb call tid_reply 
+5da4 20205ffe branch lmp_start_encryption 
+
+parse_lmpext_features_req:
+5da5 70007c84 jam lmp_ext_features_res ,mem_lmo_opcode2 
+5da6 20600000 rtn 
+
+parse_lmpext_features_res:
+5da7 68088555 fetcht 1 ,mem_rxbuf + 4 
+5da8 18410401 and temp ,0x1 ,temp 
+5da9 600884d0 storet 1 ,mem_remote_sppcap 
+5daa 6800c1ce fetch 1 ,mem_hci_cmd 
+5dab c0a8ddad bne hci_cmd_wait_remote_ext_feature ,parse_lmpext_features_res_not_hci 
+5dac 7041ce00 jam 0 ,mem_hci_cmd 
+
+parse_lmpext_features_res_not_hci:
+5dad 68008055 fetch 1 ,mem_conn_sm 
+5dae c18a8000 rtnne conn_sm_wait_features_ext 
+5daf 70005504 jam conn_sm_send_conn_req ,mem_conn_sm 
+5db0 2020631b branch process_conn_sm 
+
+parse_lmp_accepted:
+5db1 47404030 bpatchx patch30_0 ,mem_patch30 
+5db2 68008552 fetch 1 ,mem_rxbuf + 1 
+5db3 600084c9 store 1 ,mem_lmi_accepted_opcode 
+5db4 c019ddd8 beq lmp_host_connection_req ,parse_lmp_accepted_hostconn 
+5db5 c0045de7 beq lmp_in_rand ,parse_lmp_accepted_inrand 
+5db6 c007ddee beq lmp_encryption_mode_req ,parse_lmp_accepted_enc_mode 
+5db7 c0085df4 beq lmp_encryption_key_size_req ,parse_lmp_accepted_enc_keysize 
+5db8 c008ddf5 beq lmp_start_encryption_req ,parse_lmp_accepted_start_enc 
+5db9 c0095dfd beq lmp_stop_encryption_req ,parse_lmp_accepted_stop_enc 
+5dba c00c5e13 beq lmp_unsniff_req ,parse_lmp_accepted_unsniff_req 
+5dbb c00bde16 beq lmp_sniff_req ,parse_lmp_accepted_sniff_req 
+5dbc c009ddcf beq lmp_switch_req ,parse_lmp_accepted_switch 
+5dbd c01edf1e beq lmp_encapsulated_header ,parse_lmp_accepted_encapsulated_header 
+5dbe c01f5f6a beq lmp_encapsulated_payload ,parse_lmp_accepted_encapsulated_payload 
+5dbf c0205f20 beq lmp_simple_pairing_number ,parse_lmp_accepted_simple_pairing_number 
+5dc0 c020df3d beq lmp_dhkey_check ,parse_lmp_accepted_dhkey_check 
+5dc1 20600000 rtn 
+
+parse_lmp_not_accepted:
+5dc2 4740c030 bpatchx patch30_1 ,mem_patch30 
+5dc3 68008552 fetch 1 ,mem_rxbuf + 1 
+5dc4 600084c9 store 1 ,mem_lmi_accepted_opcode 
+5dc5 c000de0a beq lmp_name_req ,parse_lmp_not_accepted_name_req 
+5dc6 c019dde2 beq lmp_host_connection_req ,parse_lmp_not_accepted_hostconn 
+5dc7 c005ddfe beq lmp_au_rand ,parse_lmp_not_accepted_aurand 
+5dc8 c0045e01 beq lmp_in_rand ,parse_lmp_not_accepted_inrand 
+5dc9 c009ddd2 beq lmp_switch_req ,parse_lmp_not_accepted_switch 
+5dca c0205e0b beq lmp_simple_pairing_number ,parse_lmp_not_accepted_simple_pairing_number 
+5dcb c020de0e beq lmp_dhkey_check ,parse_lmp_not_accepted_dhkey_check 
+5dcc c00c5e11 beq lmp_unsniff_req ,parse_lmp_not_accepted_unsniff_req 
+5dcd c00bde22 beq lmp_sniff_req ,parse_lmp_not_acdcept_sniff_req 
+5dce 20600000 rtn 
+
+parse_lmp_accepted_switch:
+5dcf 700a9920 jam bt_evt_switch_accept ,mem_fifo_temp 
+5dd0 20407d86 call ui_ipc_send_event 
+5dd1 202021dc branch role_switch_prepare0 
+
+parse_lmp_not_accepted_switch:
+5dd2 700a9919 jam bt_evt_switch_not_accept ,mem_fifo_temp 
+5dd3 20407d86 call ui_ipc_send_event 
+5dd4 70455b02 jam switch_flag_not_accept ,mem_switch_flag 
+5dd5 58000050 setarg timer_switch_waite 
+5dd6 d8e00006 arg switch_wait_timer ,queue 
+5dd7 20207f08 branch timer_init 
+
+parse_lmp_accepted_hostconn:
+5dd8 680084d1 fetch 1 ,mem_lmp_conn_state 
+5dd9 79207e00 set1 received_conn_req ,pdata 
+5dda 600084d1 store 1 ,mem_lmp_conn_state 
+5ddb 700a9901 jam bt_evt_bb_connected ,mem_fifo_temp 
+5ddc 20407d86 call ui_ipc_send_event 
+5ddd 70007c8b jam lmp_packet_type_table_req ,mem_lmo_opcode2 
+
+parse_lmp_accepted_hostconn_ctn:
+5dde 68008055 fetch 1 ,mem_conn_sm 
+5ddf c082dd07 bne conn_sm_wait_conn_accept ,parse_rx_done 
+5de0 70005506 jam conn_sm_auth_pair ,mem_conn_sm 
+5de1 20600000 rtn 
+
+parse_lmp_not_accepted_hostconn:
+5de2 7004ca0b jam acl_connection_already_exists ,mem_disconn_reason_send 
+5de3 70007c07 jam lmp_detach ,mem_lmo_opcode2 
+5de4 70005500 jam conn_sm_standby ,mem_conn_sm 
+5de5 2020dd07 branch parse_rx_done ,true 
+5de6 20600000 rtn 
+
+parse_lmp_accepted_inrand:
+5de7 6800c1bd fetch 1 ,mem_link_key_exists 
+5de8 247a0000 nrtn blank 
+5de9 2040244f call clear_linkkey 
+5dea 20405ffc call lmp_generate_key 
+5deb 20748000 rtn master 
+5dec 79200021 set1 mark_slave_in_rand_accepted ,mark 
+5ded 20600000 rtn 
+
+parse_lmp_accepted_enc_mode:
+5dee 24748000 nrtn master 
+5def 70007c10 jam lmp_encryption_key_size_req ,mem_lmo_opcode2 
+5df0 6800804c fetch 1 ,mem_state_map 
+5df1 c4010000 rtnbit0 smap_encryption 
+5df2 70007c12 jam lmp_stop_encryption_req ,mem_lmo_opcode2 
+5df3 20600000 rtn 
+
+parse_lmp_accepted_enc_keysize:
+5df4 20205ffe branch lmp_start_encryption 
+
+parse_lmp_accepted_start_enc:
+5df5 20406059 call send_create_conn_start_l2cap_timer_sm 
+5df6 68008030 fetch 1 ,mem_state 
+5df7 c3820000 rtnbit1 state_conn_comp 
+5df8 70007c31 jam lmp_setup_complete ,mem_lmo_opcode2 
+5df9 68008055 fetch 1 ,mem_conn_sm 
+5dfa c1850000 rtnne conn_sm_encrypt_wait 
+5dfb 7000550b jam conn_sm_encrypt_wait_clear ,mem_conn_sm 
+5dfc 20600000 rtn 
+
+parse_lmp_accepted_stop_enc:
+5dfd 20600000 rtn 
+
+parse_lmp_not_accepted_aurand:
+
+parse_lmp_not_accepted_aurand_send_detach:
+5dfe 70007c07 jam lmp_detach ,mem_lmo_opcode2 
+5dff 7004ca13 jam other_end_terminated ,mem_disconn_reason_send 
+5e00 20600000 rtn 
+
+parse_lmp_not_accepted_inrand:
+5e01 68008553 fetch 1 ,mem_rxbuf + 2 
+5e02 c0035e07 beq key_missing ,parse_lmp_inrand_key_missing 
+5e03 c18c0000 rtnne pairing_not_allowed 
+5e04 7004ca18 jam pairing_not_allowed ,mem_disconn_reason_send 
+5e05 70007c07 jam lmp_detach ,mem_lmo_opcode2 
+5e06 20600000 rtn 
+
+parse_lmp_inrand_key_missing:
+5e07 7004ca06 jam key_missing ,mem_disconn_reason_send 
+5e08 70007c07 jam lmp_detach ,mem_lmo_opcode2 
+5e09 20600000 rtn 
+
+parse_lmp_not_accepted_name_req:
+5e0a 20600000 rtn 
+
+parse_lmp_not_accepted_simple_pairing_number:
+5e0b 7009ae00 jam sp_stat_null ,mem_sp_state 
+5e0c 70007c07 jam lmp_detach ,mem_lmo_opcode2 
+5e0d 20205d07 branch parse_rx_done 
+
+parse_lmp_not_accepted_dhkey_check:
+5e0e 7009ae00 jam sp_stat_null ,mem_sp_state 
+5e0f 70007c07 jam lmp_detach ,mem_lmo_opcode2 
+5e10 20205d07 branch parse_rx_done 
+
+parse_lmp_not_accepted_unsniff_req:
+5e11 700a9924 jam bt_evt_unsniff_not_accept ,mem_fifo_temp 
+5e12 20207d86 branch ui_ipc_send_event 
+
+parse_lmp_accepted_unsniff_req:
+5e13 700a9923 jam bt_evt_unsniff_accept ,mem_fifo_temp 
+5e14 20407d86 call ui_ipc_send_event 
+5e15 202026e9 branch sniff_exit 
+
+parse_lmp_accepted_sniff_req:
+5e16 700a9922 jam bt_evt_sniff_accept ,mem_fifo_temp 
+5e17 20407d86 call ui_ipc_send_event 
+5e18 58000000 setarg 0 
+5e19 60010075 store 2 ,mem_dsniff 
+5e1a 680141e3 fetch 2 ,mem_sniff_param_interval 
+5e1b 1fe3fe00 lshift pdata ,pdata 
+5e1c 60010032 store 2 ,mem_tsniff 
+5e1d 6800c1e5 fetch 1 ,mem_sniff_param_attempt 
+5e1e 60008073 store 1 ,mem_sniff_attempt 
+5e1f 6800c1e7 fetch 1 ,mem_sniff_param_timeout 
+5e20 60008074 store 1 ,mem_sniff_timeout 
+5e21 202026c6 branch sniff_init 
+
+parse_lmp_not_acdcept_sniff_req:
+5e22 700a9921 jam bt_evt_sniff_not_accept ,mem_fifo_temp 
+5e23 20207d86 branch ui_ipc_send_event 
+
+parse_lmp_crypt_key:
+5e24 68088552 fetcht 1 ,mem_rxbuf + 1 
+5e25 60088054 storet 1 ,mem_key_size 
+5e26 20205e38 branch accept_lmp_msg 
+
+parse_lmp_setup_complete:
+5e27 680084d1 fetch 1 ,mem_lmp_conn_state 
+5e28 79207e02 set1 received_setup_complete ,pdata 
+5e29 600084d1 store 1 ,mem_lmp_conn_state 
+5e2a c3818000 rtnbit1 sent_setup_complete 
+5e2b 70007c31 jam lmp_setup_complete ,mem_lmo_opcode2 
+5e2c 20205d07 branch parse_rx_done 
+
+parse_lmp_max_slot:
+5e2d 20600000 rtn 
+
+parse_lmp_max_slot_req:
+5e2e 6800c0d0 fetch 1 ,mem_max_slot 
+5e2f 68088552 fetcht 1 ,mem_rxbuf + 1 
+5e30 98467c00 isub temp ,null 
+5e31 20215e38 branch accept_lmp_msg ,positive 
+5e32 70007c04 jam lmp_not_accepted ,mem_lmo_opcode2 
+5e33 70007e1f jam unspecified_error ,mem_lmo_reason2 
+5e34 70007d2e jam lmp_max_slot_req ,mem_lmi_opcode2 
+5e35 20600000 rtn 
+
+parse_lmp_detach:
+5e36 20406157 call prepare_disconnect 
+5e37 20205e38 branch accept_lmp_msg 
+
+accept_lmp_msg:
+5e38 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
+5e39 20600000 rtn 
+
+parse_lmp_incr_power:
+5e3a 70007c21 jam lmp_max_power ,mem_lmo_opcode2 
+5e3b 20600000 rtn 
+
+parse_lmp_decr_power:
+5e3c 70007c22 jam lmp_min_power ,mem_lmo_opcode2 
+5e3d 20600000 rtn 
+
+parse_lmp_version_res:
+5e3e 68008055 fetch 1 ,mem_conn_sm 
+5e3f c1098000 rtneq conn_sm_wait_version 
+5e40 70005502 jam conn_sm_send_features ,mem_conn_sm 
+5e41 20600000 rtn 
+
+parse_lmp_auto_rate:
+5e42 20600000 rtn 
+
+parse_lmp_in_rand:
+5e43 20405ff9 call lmp_copy_rand 
+5e44 7004d401 jam pincode_state_wait_pincode ,mem_pincode_state 
+5e45 700a990a jam bt_evt_pincode_req ,mem_fifo_temp 
+5e46 20407d86 call ui_ipc_send_event 
+5e47 204062f3 call tid_check 
+5e48 2420e001 nbranch lmp_accept_inrand ,true 
+5e49 2434de4e nbranch parse_lmp_inrand_res ,master 
+5e4a 70007c04 jam lmp_not_accepted ,mem_lmo_opcode2 
+5e4b 70007d08 jam lmp_in_rand ,mem_lmi_opcode2 
+5e4c 70007e23 jam transaction_collision ,mem_lmo_reason2 
+5e4d 20600000 rtn 
+
+parse_lmp_inrand_res:
+5e4e 6800804b fetch 1 ,mem_op 
+5e4f 79207e02 set1 op_inrand_req ,pdata 
+5e50 6000804b store 1 ,mem_op 
+5e51 20600000 rtn 
+
+pop_tid_follow:
+5e52 6808804c fetcht 1 ,mem_state_map 
+5e53 7d3a0401 nsetflag blank ,smap_lmptid ,temp 
+5e54 6008804c storet 1 ,mem_state_map 
+5e55 20600000 rtn 
+
+push_tid_follow:
+5e56 6800807f fetch 1 ,mem_lmo_tid2 
+5e57 1fe37e00 rshift pdata ,pdata 
+5e58 1fe17e01 and_into 1 ,pdata 
+5e59 20600000 rtn 
+
+parse_lmp_au_rand_moudle:
+5e5a 6800c217 fetch 1 ,mem_nv_data_number 
+5e5b 207a0000 rtn blank 
+5e5c 680089b5 fetch 1 ,mem_pairing_auth 
+5e5d 205a67b2 call load_device_list ,blank 
+5e5e 20600000 rtn 
+
+parse_lmp_au_rand:
+5e5f 20405e5a call parse_lmp_au_rand_moudle 
+5e60 20405e56 call push_tid_follow 
+5e61 600084d5 store 1 ,mem_sres_tid 
+5e62 20405ff9 call lmp_copy_rand 
+5e63 70007c0c jam lmp_sres ,mem_lmo_opcode2 
+5e64 6800c1bd fetch 1 ,mem_link_key_exists 
+5e65 247a0000 nrtn blank 
+5e66 68008030 fetch 1 ,mem_state 
+5e67 c3830000 rtnbit1 state_combkey 
+5e68 70007e06 jam key_missing ,mem_lmo_reason2 
+5e69 20205d53 branch reject_lmp_packet 
+
+parse_lmp_sres:
+5e6a da200040 arg mem_plap ,rega 
+5e6b 20407288 call function_e1 
+5e6c 68020552 fetch 4 ,mem_rxbuf + 1 
+5e6d 680a0592 fetcht 4 ,mem_input_store 
+5e6e 98467c00 isub temp ,null 
+5e6f 2022de73 branch authentication_ok ,zero 
+5e70 70007c07 jam lmp_detach ,mem_lmo_opcode2 
+5e71 7004ca05 jam authentication_failure_error ,mem_disconn_reason_send 
+5e72 20600000 rtn 
+
+authentication_ok:
+5e73 20405e77 call authentication_ok_common 
+5e74 6800c65a fetch 1 ,mem_ssp_enable 
+5e75 203a5f3e branch pairing_success ,blank 
+5e76 20600000 rtn 
+
+authentication_ok_common:
+5e77 20407386 call copy_aco 
+5e78 204021b2 call linkkey_ready 
+5e79 6800804b fetch 1 ,mem_op 
+5e7a 2feffe01 isolate1 op_auth_req ,pdata 
+5e7b 793ffe01 set0 op_auth_req ,pdata 
+5e7c 6000804b store 1 ,mem_op 
+5e7d 68008055 fetch 1 ,mem_conn_sm 
+5e7e c00cde81 beq conn_sm_auth_wait ,authentication_ok_conn_sm 
+5e7f c00c5e81 beq conn_sm_pairing_wait ,authentication_ok_conn_sm 
+5e80 20600000 rtn 
+
+authentication_ok_conn_sm:
+5e81 680089b5 fetch 1 ,mem_pairing_auth 
+5e82 c1800000 rtnne defalt_pairing_auth 
+5e83 6800804c fetch 1 ,mem_state_map 
+5e84 c3810000 rtnbit1 smap_encryption 
+5e85 202063b1 branch host_create_conn_encrypt 
+
+parse_lmp_comb_key:
+5e86 da200552 arg mem_rxbuf + 1 ,rega 
+5e87 da400582 arg mem_kinit ,regb 
+5e88 d8a00562 arg mem_random_number ,contw 
+5e89 20407352 call xor16 
+5e8a da200040 arg mem_plap ,rega 
+5e8b 20406311 call generate_linkkey 
+5e8c 70007c0b jam lmp_au_rand ,mem_lmo_opcode2 
+5e8d 68008030 fetch 1 ,mem_state 
+5e8e c3035ffc bbit0 state_combkey ,lmp_generate_key 
+5e8f 20600000 rtn 
+
+parse_lmp_name_res:
+5e90 6801015f fetch 2 ,mem_len 
+5e91 1fe0f3fd add pdata ,-3 ,loopcnt 
+5e92 68088552 fetcht 1 ,mem_rxbuf + 1 
+5e93 58000101 setarg mem_tmp_buffer 
+5e94 98408a00 iadd temp ,contw 
+5e95 d8c00554 arg mem_rxbuf + 3 ,contr 
+5e96 20407f01 call memcpy 
+5e97 68088053 fetcht 1 ,mem_name_offset 
+5e98 68008553 fetch 1 ,mem_rxbuf + 2 
+5e99 98467e00 isub temp ,pdata 
+5e9a 1fe67c0e sub pdata ,14 ,null 
+5e9b 20215ea0 branch parse_lmp_name_res_end ,positive 
+5e9c 1840fe0e add temp ,14 ,pdata 
+5e9d 60008053 store 1 ,mem_name_offset 
+5e9e 70007c01 jam lmp_name_req ,mem_lmo_opcode2 
+5e9f 20600000 rtn 
+
+parse_lmp_name_res_end:
+5ea0 6800804c fetch 1 ,mem_state_map 
+5ea1 79207e03 set1 smap_name_res ,pdata 
+5ea2 6000804c store 1 ,mem_state_map 
+5ea3 c2826006 bbit1 smap_name_req ,lmp_disconnect 
+5ea4 20600000 rtn 
+
+parse_lmp_name_req:
+5ea5 68008552 fetch 1 ,mem_rxbuf + 1 
+5ea6 6000807d store 1 ,mem_lmi_opcode2 
+5ea7 70007c02 jam lmp_name_res ,mem_lmo_opcode2 
+5ea8 20600000 rtn 
+
+parse_lmp_conn_req:
+5ea9 20205e38 branch accept_lmp_msg 
+
+parse_lmp_timing_accuracy_req:
+5eaa 70007c30 jam lmp_timing_accuracy_res ,mem_lmo_opcode2 
+5eab 20600000 rtn 
+
+parse_lmp_features_req:
+5eac 70007c28 jam lmp_features_res ,mem_lmo_opcode2 
+5ead 20600000 rtn 
+
+parse_lmp_version_req:
+5eae 70007c26 jam lmp_version_res ,mem_lmo_opcode2 
+5eaf 20600000 rtn 
+
+parse_lmp_supervision_timeout:
+5eb0 20600000 rtn 
+
+parse_lmp_sniff_subrating_req:
+5eb1 68010032 fetch 2 ,mem_tsniff 
+5eb2 98000400 iforce temp 
+5eb3 68008553 fetch 1 ,mem_rxbuf + 2 
+5eb4 60008095 store 1 ,mem_subsniff_rate 
+5eb5 984f8400 imul32 temp ,temp 
+5eb6 68010554 fetch 2 ,mem_rxbuf + 3 
+5eb7 1fe3fe00 lshift pdata ,pdata 
+5eb8 60010096 store 2 ,mem_subsniff_tcmax 
+5eb9 68020556 fetch 4 ,mem_rxbuf + 5 
+5eba 1fe3fe00 lshift pdata ,pdata 
+5ebb 60020091 store 4 ,mem_subsniff_instant 
+5ebc 18427e00 deposit temp 
+5ebd 60010098 store 2 ,mem_subsniff_tsniff 
+5ebe 20600000 rtn 
+
+parse_lmpext_packet_type_table_req:
+5ebf 6808c15a fetcht 1 ,mem_ptt 
+5ec0 68008553 fetch 1 ,mem_rxbuf + 2 
+5ec1 9842fc00 ixor temp ,null 
+5ec2 2422dd77 nbranch reject_unknown_ext_packet ,zero 
+5ec3 2feffe00 isolate1 0 ,pdata 
+5ec4 6800804c fetch 1 ,mem_state_map 
+5ec5 7920fe05 setflag true ,smap_edr ,pdata 
+5ec6 6000804c store 1 ,mem_state_map 
+5ec7 70007c81 jam lmp_ext_accepted ,mem_lmo_opcode2 
+5ec8 70007d8b jam lmp_packet_type_table_req ,mem_lmi_opcode2 
+5ec9 20600000 rtn 
+
+parse_lmp_sniff_subrating_res:
+
+parse_lmp_preferred_rate:
+
+parse_lmp_max_power:
+
+parse_lmp_min_power:
+5eca 20600000 rtn 
+
+parse_lmp_page_mode_req:
+5ecb 20205e38 branch accept_lmp_msg 
+
+parse_lmp_page_scan_mode_req:
+5ecc 20205e38 branch accept_lmp_msg 
+
+parse_lmp_slot_offset:
+5ecd 68010552 fetch 2 ,mem_rxbuf + 1 
+5ece 60010171 store 2 ,mem_slot_offset 
+5ecf 20600000 rtn 
+
+parse_lmp_sniff_req_check_sniff_para:
+5ed0 68010555 fetch 2 ,mem_rxbuf + 4 
+5ed1 6808c172 fetcht 1 ,mem_lpm_mult 
+5ed2 984ffe00 imul32 temp ,pdata 
+5ed3 d8400640 arg 0x640 ,temp 
+5ed4 98467c00 isub temp ,null 
+5ed5 20600000 rtn 
+
+parse_lmp_sniff_req:
+5ed6 68010557 fetch 2 ,mem_rxbuf + 6 
+5ed7 203a5ef0 branch lmp_reject_sniff ,blank 
+5ed8 20405ed0 call parse_lmp_sniff_req_check_sniff_para 
+5ed9 20215ef0 branch lmp_reject_sniff ,positive 
+5eda 6800c092 fetch 1 ,mem_device_option 
+5edb 1fe67c0a sub pdata ,dvc_op_module ,null 
+5edc 2042bcd5 call module_set_lpm_mult_2 ,zero 
+5edd 68008030 fetch 1 ,mem_state 
+5ede c280def0 bbit1 state_insniff ,lmp_reject_sniff 
+5edf 68010553 fetch 2 ,mem_rxbuf + 2 
+5ee0 1fe3fe00 lshift pdata ,pdata 
+5ee1 60010075 store 2 ,mem_dsniff 
+5ee2 68010555 fetch 2 ,mem_rxbuf + 4 
+5ee3 1fe3fe00 lshift pdata ,pdata 
+5ee4 60010032 store 2 ,mem_tsniff 
+5ee5 68010557 fetch 2 ,mem_rxbuf + 6 
+5ee6 60008073 store 1 ,mem_sniff_attempt 
+5ee7 98000400 iforce temp 
+5ee8 68010559 fetch 2 ,mem_rxbuf + 8 
+5ee9 60008074 store 1 ,mem_sniff_timeout 
+5eea 98467c00 isub temp ,null 
+5eeb 24215eed nbranch set_big_value_to_attempt ,positive 
+5eec 60008073 store 1 ,mem_sniff_attempt 
+
+set_big_value_to_attempt:
+5eed 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
+5eee 70007d17 jam lmp_sniff_req ,mem_lmi_opcode2 
+5eef 20600000 rtn 
+
+lmp_reject_sniff:
+5ef0 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
+5ef1 20205d53 branch reject_lmp_packet 
+
+parse_lmp_start_encryption_req:
+5ef2 20405e38 call accept_lmp_msg 
+5ef3 20405ff9 call lmp_copy_rand 
+5ef4 2040728b call function_e3 
+5ef5 202026b8 branch start_encryption 
+
+parse_lmp_stop_encryption_req:
+5ef6 20405e38 call accept_lmp_msg 
+5ef7 202026c0 branch stop_encryption 
+
+parse_lmp_switch_req:
+5ef8 68020552 fetch 4 ,mem_rxbuf + 1 
+5ef9 1fe3fe00 lshift pdata ,pdata 
+5efa 2034df04 branch parse_lmp_switch_accept ,master 
+5efb 6808c1bd fetcht 1 ,mem_link_key_exists 
+5efc 243a5f01 nbranch parse_lmp_switch_req_clear_mark ,blank 
+
+parse_lmp_switch_req_not_accept:
+5efd 70007c04 jam lmp_not_accepted ,mem_lmo_opcode2 
+5efe 70007d13 jam lmp_switch_req ,mem_lmi_opcode2 
+5eff 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
+5f00 20600000 rtn 
+
+parse_lmp_switch_req_clear_mark:
+5f01 70007c34 jam lmp_slot_offset ,mem_lmo_opcode2 
+5f02 70005500 jam 0 ,mem_conn_sm 
+5f03 202021d9 branch role_switch_prepare 
+
+parse_lmp_switch_accept:
+5f04 204021d9 call role_switch_prepare 
+5f05 79200022 set1 mark_reconn_recieve_switch ,mark 
+5f06 6800816d fetch 1 ,mem_connection_options 
+5f07 793ffe02 set0 connection_switch ,pdata 
+5f08 6000816d store 1 ,mem_connection_options 
+5f09 20205e38 branch accept_lmp_msg 
+
+parse_lmp_temp_rand:
+
+parse_lmp_temp_key:
+
+parse_lmp_timing_accuracy_res:
+
+parse_lmp_unit_key:
+
+parse_lmp_use_semi_permanend_key:
+5f0a 20600000 rtn 
+
+parse_lmp_unsniff_req:
+5f0b 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
+5f0c 70007d18 jam lmp_unsniff_req ,mem_lmi_opcode2 
+5f0d 700a992e jam bt_evt_remote_unsniff ,mem_fifo_temp 
+5f0e 20407d86 call ui_ipc_send_event 
+5f0f 202026e9 branch sniff_exit 
+
+parse_lmp_encapsulated_header:
+5f10 68008552 fetch 1 ,mem_rxbuf + 1 
+5f11 c080df1c bne encapsulated_major_type_p192 ,parse_lmp_encapsulated_header_reject 
+5f12 68008553 fetch 1 ,mem_rxbuf + 2 
+5f13 c080df1c bne encapsulated_minor_type_p192 ,parse_lmp_encapsulated_header_reject 
+5f14 68008554 fetch 1 ,mem_rxbuf + 3 
+5f15 c0985f1c bne encapsulated_len_p192 ,parse_lmp_encapsulated_header_reject 
+5f16 204062fc call check_localsm 
+5f17 2020df19 branch parse_lmp_encapsulated_header_master ,true 
+5f18 7009ae01 jam sp_stat_key_recv ,mem_sp_state 
+
+parse_lmp_encapsulated_header_master:
+5f19 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
+5f1a 70007d3d jam lmp_encapsulated_header ,mem_lmi_opcode2 
+5f1b 20205d07 branch parse_rx_done 
+
+parse_lmp_encapsulated_header_reject:
+5f1c 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
+5f1d 20205d53 branch reject_lmp_packet 
+
+parse_lmp_accepted_encapsulated_header:
+5f1e 70007c3e jam lmp_encapsulated_payload ,mem_lmo_opcode2 
+5f1f 20600000 rtn 
+
+parse_lmp_accepted_simple_pairing_number:
+5f20 6800c662 fetch 1 ,mem_ssp_mode_flag 
+5f21 c000df27 beq ssp_mode_ssp_pin_flag ,parse_lmp_accepted_simple_pairing_number_ssp_pin 
+5f22 c0015f2b beq ssp_mode_passkey_entry_flag ,parse_lmp_accepted_simple_pairing_number_passkey 
+
+parse_lmp_accepted_simple_pairing_number_common:
+5f23 204062fc call check_localsm 
+5f24 20608000 rtn true 
+5f25 7009ae08 jam sp_stat_confirm_recv ,mem_sp_state 
+5f26 20600000 rtn 
+
+parse_lmp_accepted_simple_pairing_number_ssp_pin:
+5f27 20407962 call g_noninit_number_confirm 
+5f28 700a9935 jam bt_evt_bt_gkey_generate ,mem_fifo_temp 
+5f29 20407d86 call ui_ipc_send_event 
+5f2a 20205f23 branch parse_lmp_accepted_simple_pairing_number_common 
+
+parse_lmp_accepted_simple_pairing_number_passkey:
+5f2b 204062fc call check_localsm 
+5f2c 20608000 rtn true 
+5f2d 6800c663 fetch 1 ,mem_authentication_passkey_times 
+5f2e c009df3b beq 19 ,authentication_passkey_end 
+5f2f 1fe0fe01 increase 1 ,pdata 
+5f30 6000c663 store 1 ,mem_authentication_passkey_times 
+
+authentication_passkey:
+5f31 7009b001 jam sp_flag_commit ,mem_sp_flag 
+5f32 7009ae04 jam sp_stat_commit_calc ,mem_sp_state 
+5f33 6800c663 fetch 1 ,mem_authentication_passkey_times 
+5f34 1fe20e00 copy pdata ,queue 
+5f35 6803468a fetch 6 ,mem_pin 
+5f36 afefffff qisolate1 pdata 
+5f37 58000080 setarg 0x80 
+5f38 7920fe00 setflag true ,0 ,pdata 
+5f39 6000c664 store 1 ,mem_passkey_1bit 
+5f3a 20600000 rtn 
+
+authentication_passkey_end:
+5f3b 7009ae08 jam sp_stat_confirm_recv ,mem_sp_state 
+5f3c 20600000 rtn 
+
+parse_lmp_accepted_dhkey_check:
+5f3d 20405f43 call parse_lmp_accepted_dhkey_check_common 
+
+pairing_success:
+5f3e 6800c665 fetch 1 ,mem_flag_pairing_state 
+5f3f 207a0000 rtn blank 
+5f40 70466500 jam flag_pairing_state_not_pairing ,mem_flag_pairing_state 
+5f41 700a9938 jam bt_evt_bt_pairing_success ,mem_fifo_temp 
+5f42 20207d86 branch ui_ipc_send_event 
+
+parse_lmp_accepted_dhkey_check_common:
+5f43 204062fc call check_localsm 
+5f44 2440f965 ncall g_noninit ,true 
+5f45 2040f975 call g_init ,true 
+5f46 204062fc call check_localsm 
+5f47 20608000 rtn true 
+5f48 7009ae0c jam sp_stat_link_key_calc ,mem_sp_state 
+5f49 7009b001 jam sp_flag_commit ,mem_sp_flag 
+5f4a 20600000 rtn 
+
+parse_simple_pairing_confirm:
+5f4b d8a00a6e arg mem_sp_confirm_remote ,contw 
+5f4c d8c00552 arg mem_rxbuf + 1 ,contr 
+5f4d 20407ebf call memcpy16 
+5f4e 6800c662 fetch 1 ,mem_ssp_mode_flag 
+5f4f c1010000 rtneq ssp_mode_passkey_entry_flag 
+5f50 202076d8 branch master_set_mem_master_sp_flag 
+
+parse_lmp_encapsulated_payload:
+5f51 680089af fetch 1 ,mem_master_sp_state 
+5f52 c003df55 beq sp_stat_random_send ,parse_encapsulated_payload_master 
+5f53 680089ae fetch 1 ,mem_sp_state 
+5f54 c080df68 bne sp_stat_key_recv ,parse_lmp_encapsulated_payload_reject 
+
+parse_encapsulated_payload_master:
+5f55 680089b7 fetch 1 ,mem_sp_remote_key_recv_count 
+5f56 1fe60a20 sub pdata ,0x20 ,contw 
+5f57 24215f68 nbranch parse_lmp_encapsulated_payload_reject ,positive 
+5f58 d8a009c6 arg mem_sp_pubkey_remote ,contw 
+5f59 98a08a00 iadd contw ,contw 
+5f5a 68040552 fetch 8 ,mem_rxbuf + 1 
+5f5b e0a40000 istore 8 ,contw 
+5f5c 6804055a fetch 8 ,mem_rxbuf + 9 
+5f5d e0a40000 istore 8 ,contw 
+5f5e 680089b7 fetch 1 ,mem_sp_remote_key_recv_count 
+5f5f 1fe0fe10 increase 16 ,pdata 
+5f60 600089b7 store 1 ,mem_sp_remote_key_recv_count 
+5f61 c0985e38 bne encapsulated_len_p192 ,accept_lmp_msg 
+
+parse_lmp_encapsulated_payload_completed:
+5f62 204062fc call check_localsm 
+5f63 2020de38 branch accept_lmp_msg ,true 
+5f64 7009b801 jam sp_key_valid ,mem_sp_remote_key_invalid 
+5f65 7009ae02 jam sp_stat_key_generate ,mem_sp_state 
+5f66 7009b001 jam sp_flag_commit ,mem_sp_flag 
+5f67 20205e38 branch accept_lmp_msg 
+
+parse_lmp_encapsulated_payload_reject:
+5f68 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
+5f69 20205d53 branch reject_lmp_packet 
+
+parse_lmp_accepted_encapsulated_payload:
+5f6a 680089b6 fetch 1 ,mem_sp_local_key_send_count 
+5f6b c0185f6e beq encapsulated_len_p192 ,parse_lmp_encapsulated_payload_all_accepted 
+5f6c 70007c3e jam lmp_encapsulated_payload ,mem_lmo_opcode2 
+5f6d 20205d07 branch parse_rx_done 
+
+parse_lmp_encapsulated_payload_all_accepted:
+5f6e 204062fc call check_localsm 
+5f6f 2020df77 branch parse_lmp_encapsulated_payload_all_accepted_master ,true 
+5f70 6800c662 fetch 1 ,mem_ssp_mode_flag 
+5f71 c0015f75 beq ssp_mode_passkey_entry_flag ,parse_lmp_encapsulated_payload_all_accepted_get_passkey 
+5f72 7009b001 jam sp_flag_commit ,mem_sp_flag 
+5f73 7009ae04 jam sp_stat_commit_calc ,mem_sp_state 
+5f74 20205d07 branch parse_rx_done 
+
+parse_lmp_encapsulated_payload_all_accepted_get_passkey:
+5f75 700a9936 jam bt_evt_bt_get_passkey ,mem_fifo_temp 
+5f76 20207d86 branch ui_ipc_send_event 
+
+parse_lmp_encapsulated_payload_all_accepted_master:
+5f77 20205d07 branch parse_rx_done 
+
+parse_lmp_simple_pairing_number:
+5f78 680089af fetch 1 ,mem_master_sp_state 
+5f79 c003df7c beq sp_stat_random_send ,parse_lmp_simple_pairing_number_master 
+5f7a 680089ae fetch 1 ,mem_sp_state 
+5f7b c0835f88 bne sp_stat_random_recv ,parse_lmp_simple_pairing_number_reject 
+
+parse_lmp_simple_pairing_number_master:
+5f7c d8a00a2e arg mem_sp_random_remote ,contw 
+5f7d 68040552 fetch 8 ,mem_rxbuf + 1 
+5f7e e0a40000 istore 8 ,contw 
+5f7f 6804055a fetch 8 ,mem_rxbuf + 9 
+5f80 e0a40000 istore 8 ,contw 
+5f81 204062fc call check_localsm 
+5f82 2020df86 branch parse_lmp_simple_pairing_number_master0 ,true 
+5f83 7009ae07 jam sp_stat_random_send ,mem_sp_state 
+5f84 7009b001 jam sp_flag_commit ,mem_sp_flag 
+5f85 20205e38 branch accept_lmp_msg 
+
+parse_lmp_simple_pairing_number_master0:
+5f86 7009af04 jam sp_stat_commit_calc ,mem_master_sp_state 
+5f87 202076d8 branch master_set_mem_master_sp_flag 
+
+parse_lmp_simple_pairing_number_reject:
+5f88 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
+5f89 20205d53 branch reject_lmp_packet 
+
+parse_dhkey_check:
+5f8a 680089af fetch 1 ,mem_master_sp_state 
+5f8b c005df8e beq sp_stat_confirm_send ,parse_dhkey_check_master 
+5f8c 680089ae fetch 1 ,mem_sp_state 
+5f8d c0845f9d bne sp_stat_confirm_recv ,parse_lmp_dhkey_check_reject 
+
+parse_dhkey_check_master:
+5f8e d8a00a5e arg mem_sp_check_result ,contw 
+5f8f d8c00552 arg mem_rxbuf + 1 ,contr 
+5f90 20407ebf call memcpy16 
+5f91 204062fc call check_localsm 
+5f92 2020df9a branch parse_dhkey_check_master0 ,true 
+5f93 6800c662 fetch 1 ,mem_ssp_mode_flag 
+5f94 c000df9f beq ssp_mode_ssp_pin_flag ,number_comparison_mode 
+
+number_comparison_successed:
+5f95 70466100 jam 0 ,mem_flag_mode_ssp_pin 
+5f96 7009ae09 jam sp_stat_confirm_check ,mem_sp_state 
+5f97 7009b001 jam sp_flag_commit ,mem_sp_flag 
+5f98 70007d41 jam lmp_dhkey_check ,mem_lmi_opcode2 
+5f99 20205d07 branch parse_rx_done 
+
+parse_dhkey_check_master0:
+5f9a 7009af09 jam sp_stat_confirm_check ,mem_master_sp_state 
+5f9b 7009b101 jam sp_flag_commit ,mem_master_sp_flag 
+5f9c 20205d07 branch parse_rx_done 
+
+parse_lmp_dhkey_check_reject:
+5f9d 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
+5f9e 20205d53 branch reject_lmp_packet 
+
+number_comparison_mode:
+5f9f 6800c661 fetch 1 ,mem_flag_mode_ssp_pin 
+5fa0 c283dfa4 bbit1 flag_mode_ssp_pin_reviceve_comparison_bit ,comparison_result 
+5fa1 79207e06 set1 flag_mode_ssp_pin_recieve_dhkey_bit ,pdata 
+5fa2 6000c661 store 1 ,mem_flag_mode_ssp_pin 
+5fa3 20600000 rtn 
+
+comparison_result:
+5fa4 c2805f95 bbit1 flag_mode_ssp_pin_comparison_result_bit ,number_comparison_successed 
+5fa5 70466100 jam 0 ,mem_flag_mode_ssp_pin 
+5fa6 20205f9d branch parse_lmp_dhkey_check_reject 
+
+parse_lmp_clkoffset_res:
+5fa7 20205d07 branch parse_rx_done 
+
+parse_lmp_encryption_mode_req:
+5fa8 6800816d fetch 1 ,mem_connection_options 
+5fa9 793ffe01 set0 connection_encrypt 
+5faa 6000816d store 1 ,mem_connection_options 
+5fab 20405e38 call accept_lmp_msg 
+5fac 24748000 nrtn master 
+5fad 68008552 fetch 1 ,mem_rxbuf + 1 
+5fae 6808804b fetcht 1 ,mem_op 
+5faf 793a0404 setflag blank ,op_stop_enc ,temp 
+5fb0 7d3a0405 nsetflag blank ,op_start_enc ,temp 
+5fb1 6008804b storet 1 ,mem_op 
+5fb2 20600000 rtn 
+
+parse_lmp_features_res:
+5fb3 680c0552 fetcht 8 ,mem_rxbuf + 1 
+
+parse_lmp_features_res_not_hci:
+5fb4 68008055 fetch 1 ,mem_conn_sm 
+5fb5 c1818000 rtnne conn_sm_wait_features_res 
+5fb6 6800816d fetch 1 ,mem_connection_options 
+5fb7 c3025fba bbit0 connection_feature_ext ,parse_lmp_send_conn 
+5fb8 70005514 jam conn_sm_send_features_ext ,mem_conn_sm 
+5fb9 20600000 rtn 
+
+parse_lmp_send_conn:
+5fba 70005504 jam conn_sm_send_conn_req ,mem_conn_sm 
+5fbb 20600000 rtn 
+
+parse_lmp_test_activate:
+5fbc 6800817f fetch 1 ,mem_debug_config 
+5fbd 6000815b store 1 ,mem_test_mode_old_debug_config 
+5fbe 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
+5fbf 70007d38 jam lmp_test_activate ,mem_lmi_opcode2 
+5fc0 20600000 rtn 
+
+parse_lmp_test_control:
+5fc1 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
+5fc2 70007d39 jam lmp_test_control ,mem_lmi_opcode2 
+5fc3 18007209 force 9 ,loopcnt 
+5fc4 d8c00552 arg mem_rxbuf + 1 ,contr 
+5fc5 d8a00152 arg mem_temp_payload ,contw 
+
+parse_lmp_test_xor:
+5fc6 e8c08000 ifetch 1 ,contr 
+5fc7 1fe2fe55 xor_into 0x55 ,pdata 
+5fc8 e0a08000 istore 1 ,contw 
+5fc9 c2005fc6 loop parse_lmp_test_xor 
+5fca 68008152 fetch 1 ,test_mode_scenario 
+5fcb 68088151 fetcht 1 ,mem_tester_emulate 
+5fcc 793f8407 set0 tester_no_whitening ,temp 
+5fcd 793f8404 set0 tester_pattern_test ,temp 
+5fce c07fdfda beq exit_test_mode ,parse_lmp_test_control_exit 
+5fcf c0005ff3 beq pause_test_mode ,parse_lmp_test_control_pause 
+5fd0 c002dfe7 beq closed_loop_back_acl ,parse_lmp_test_control_loopback 
+5fd1 c003dfe6 beq acl_without_whitening ,parse_lmp_test_control_loopback_nowhite 
+5fd2 c0035fe7 beq closed_loop_back_sco ,parse_lmp_test_control_loopback 
+5fd3 c0045fe6 beq sco_without_whitening ,parse_lmp_test_control_loopback_nowhite 
+5fd4 c000dfdf beq zero_pattern ,parse_lmp_test_control_pattern 
+5fd5 c0015fdf beq one_pattern ,parse_lmp_test_control_pattern 
+5fd6 c001dfdf beq alt_pattern ,parse_lmp_test_control_pattern 
+5fd7 c004dfdf beq alt2_pattern ,parse_lmp_test_control_pattern 
+5fd8 c0025fdf beq pseudorandom ,parse_lmp_test_control_pattern 
+5fd9 20600000 rtn 
+
+parse_lmp_test_control_exit:
+5fda 68008151 fetch 1 ,mem_tester_emulate 
+5fdb 79207e03 set1 tester_exit ,pdata 
+5fdc 79207e02 set1 tester_change ,pdata 
+5fdd 60008151 store 1 ,mem_tester_emulate 
+5fde 20600000 rtn 
+
+parse_lmp_test_control_pattern:
+5fdf 79200404 set1 tester_pattern_test ,temp 
+5fe0 70018005 jam 5 ,mem_lch_code 
+5fe1 68010159 fetch 2 ,test_mode_data_length 
+5fe2 98007200 iforce loopcnt 
+5fe3 6001015f store 2 ,mem_len 
+5fe4 d8a00551 arg mem_rxbuf ,contw 
+5fe5 20407f73 call pn9 
+
+parse_lmp_test_control_loopback_nowhite:
+5fe6 79200407 set1 tester_no_whitening ,temp 
+
+parse_lmp_test_control_loopback:
+5fe7 79200402 set1 tester_change ,temp 
+5fe8 18007e00 force 0 ,pdata 
+5fe9 6000800b store 1 ,mem_slave_rcvcnt 
+5fea 600100fa store 2 ,mem_tst_pktcnt_crc 
+5feb 600100fc store 2 ,mem_tst_pktcnt_dmh 
+5fec 600100f8 store 2 ,mem_tst_pktcnt_hec 
+5fed 600100f6 store 2 ,mem_tst_pktcnt_sync 
+5fee 68008153 fetch 1 ,test_mode_hopping_mode 
+5fef 2fe1fe00 compare fixed_freq ,pdata ,0xff 
+5ff0 79208406 setflag true ,tester_fixed_freq ,temp 
+5ff1 60088151 storet 1 ,mem_tester_emulate 
+5ff2 20600000 rtn 
+
+parse_lmp_test_control_pause:
+5ff3 793f8011 set0 mark_testmode ,mark 
+5ff4 70015100 jam 0 ,mem_tester_emulate 
+5ff5 6800817f fetch 1 ,mem_debug_config 
+5ff6 793ffe06 set0 debug_tx_pattern ,pdata 
+5ff7 6000817f store 1 ,mem_debug_config 
+5ff8 20600000 rtn 
+
+lmp_copy_rand:
+5ff9 d8c00552 arg mem_rxbuf + 1 ,contr 
+5ffa d8a00562 arg mem_random_number ,contw 
+5ffb 20207ebf branch memcpy16 
+
+lmp_generate_key:
+5ffc 70007c09 jam lmp_comb_key ,mem_lmo_opcode2 
+5ffd 20600000 rtn 
+
+lmp_start_encryption:
+5ffe 24748000 nrtn master 
+5fff 70007c11 jam lmp_start_encryption_req ,mem_lmo_opcode2 
+6000 20600000 rtn 
+
+lmp_accept_inrand:
+6001 da2040a0 arg mem_lap ,rega 
+6002 20407255 call generate_kinit 
+6003 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
+6004 70007d08 jam lmp_in_rand ,mem_lmi_opcode2 
+6005 20600000 rtn 
+
+lmp_disconnect:
+6006 7000720a jam 10 ,mem_conn_timer 
+6007 70007c07 jam lmp_detach ,mem_lmo_opcode2 
+6008 7004ca16 jam local_host ,mem_disconn_reason_send 
+6009 20600000 rtn 
+
+send_lmp:
+600a 47414030 bpatchx patch30_2 ,mem_patch30 
+600b 78547c00 disable user 
+600c 204062c1 call lmo_fifo_process 
+600d 68008048 fetch 1 ,mem_lmp_to_send 
+600e 207a0000 rtn blank 
+600f c283e03f bbit1 7 ,send_lmp_escape 
+
+send_lmp0:
+6010 c000e16f beq lmp_name_req ,send_lmp_name_req 
+6011 c00160e4 beq lmp_name_res ,send_lmp_name_res 
+6012 c001e04a beq lmp_accepted ,send_lmp_accepted 
+6013 c0026060 beq lmp_not_accepted ,send_lmp_not_accepted 
+6014 c013e1db beq lmp_features_req ,send_lmp_features_req 
+6015 c0146108 beq lmp_features_res ,send_lmp_features_res 
+6016 c01860f4 beq lmp_timing_accuracy_res ,send_lmp_timing_accuracy_res 
+6017 c012e1d6 beq lmp_version_req ,send_lmp_version_req 
+6018 c0136103 beq lmp_version_res ,send_lmp_version_res 
+6019 c018e1c3 beq lmp_setup_complete ,send_lmp_setup_complete 
+601a c01be16a beq lmp_supervision_timeout ,send_lmp_superto 
+601b c019e15c beq lmp_host_connection_req ,send_lmp_no_payload 
+601c c0046259 beq lmp_in_rand ,send_lmp_inrand 
+601d c004e24f beq lmp_comb_key ,send_lmp_comb_key 
+601e c005e264 beq lmp_au_rand ,send_lmp_aurand 
+601f c006626d beq lmp_sres ,send_lmp_sres 
+6020 c007e162 beq lmp_encryption_mode_req ,send_lmp_encryption_mode_req 
+6021 c0086292 beq lmp_encryption_key_size_req ,send_lmp_encryption_key_size_req 
+6022 c008e288 beq lmp_start_encryption_req ,send_lmp_start_encryption 
+6023 c003e152 beq lmp_detach ,send_lmp_detach 
+6024 c015617e beq lmp_quality_of_service_req ,send_lmp_quality_of_service_req 
+6025 c005617f beq lmp_unit_key ,send_lmp_unit_key 
+6026 c00fe1bc beq lmp_incr_power_req ,send_lmp_inc_power 
+6027 c00360f9 beq lmp_clkoffset_res ,send_lmp_clkoffset_res 
+6028 c010e15f beq lmp_max_power ,send_lmp_nopayload_reply 
+6029 c016e1b2 beq lmp_max_slot ,send_lmp_max_slot 
+602a c01761b7 beq lmp_max_slot_req ,send_lmp_max_slot_req 
+602b c011615f beq lmp_min_power ,send_lmp_nopayload_reply 
+602c c01a6180 beq lmp_slot_offset ,send_lmp_slot_offset 
+602d c009e195 beq lmp_switch_req ,send_lmp_switch_req 
+602e c00be1a4 beq lmp_sniff_req ,send_lmp_sniff_req 
+602f c009628f beq lmp_stop_encryption_req ,send_lmp_stop_encryption_req 
+6030 c017e1aa beq lmp_timing_accuracy_req ,send_lmp_timing_accuracy_req 
+6031 c00c61af beq lmp_unsniff_req ,send_lmp_unsniff_req 
+6032 c01ee1ff beq lmp_encapsulated_header ,send_lmp_encapsulated_header 
+6033 c01f620b beq lmp_encapsulated_payload ,send_lmp_encapsulated_payload 
+6034 c01fe21d beq lmp_simple_pairing_confirm ,send_lmp_simple_pairing_comfirm 
+6035 c0206227 beq lmp_simple_pairing_number ,send_lmp_simple_pairing_number 
+6036 c020e23c beq lmp_dhkey_check ,send_lmp_dhkey_check 
+6037 c011e24b beq lmp_auto_rate ,send_lmp_auto_rate 
+6038 c01de246 beq lmp_enc_key_size_mask_res ,send_lmp_enc_key_size_mask_res 
+6039 c002e24c beq lmp_clkoffset_req ,send_lmp_clkoffset_req 
+603a c014e24d beq lmp_quality_of_service ,send_lmp_quality_of_service 
+603b c01c624e beq lmp_test_activate ,send_lmp_test_activate 
+603c c01ce175 beq lmp_test_control ,send_lmp_test_control 
+
+send_lmp_error:
+603d 20202a8c branch assert 
+603e 20600000 rtn 
+
+send_lmp_escape:
+603f c040e06d beq lmp_ext_accepted ,send_lmpext_accepted 
+6040 c0426099 beq lmp_ext_features_res ,send_lmpext_features_res 
+6041 c0416076 beq lmp_not_accepted_ext ,send_lmpext_not_accepted 
+6042 c041e10d beq lmp_ext_features_req ,send_lmpext_features_req 
+6043 c045e118 beq lmp_packet_type_table_req ,send_lmpext_packet_type_table_req 
+6044 c04be14e beq lmp_pause_encryption_req ,send_lmpext_pause_encryption_req 
+6045 c04ce0d5 beq lmp_io_cap_req ,send_lmp_io_cap_req 
+6046 c04d60a4 beq lmp_io_cap_res ,send_lmpext_io_cap_res 
+6047 c04ae0da beq lmp_sniff_subrating_req ,send_lmpext_sniff_subrating_req 
+6048 c04b60db beq lmp_sniff_subrating_res ,send_lmpext_sniff_subrating_res 
+6049 20202a8c branch assert 
+
+send_lmp_accepted:
+604a 18007e02 force 2 ,pdata 
+604b 20406298 call msg_send_lmp 
+604c 68008049 fetch 1 ,mem_lmi_opcode 
+604d e0a08000 istore 1 ,contw 
+604e 204062a7 call send_lmp_follow 
+604f 4741c030 bpatchx patch30_3 ,mem_patch30 
+6050 68008049 fetch 1 ,mem_lmi_opcode 
+6051 c0046080 beq lmp_in_rand ,send_lmp_accepted_inrand 
+6052 c007e084 beq lmp_encryption_mode_req ,send_lmp_accepted_enc_mode 
+6053 c008608f beq lmp_encryption_key_size_req ,send_lmp_accepted_enc_key 
+6054 c00be05f beq lmp_sniff_req ,send_lmp_accept_sniff_req 
+6055 c019e092 beq lmp_host_connection_req ,send_lmp_accepted_connection 
+6056 c020e098 beq lmp_dhkey_check ,send_lmp_accept_dhkey_check 
+6057 c008e059 beq lmp_start_encryption_req ,send_create_conn_start_l2cap_timer_sm 
+6058 20600000 rtn 
+
+send_create_conn_start_l2cap_timer_sm:
+6059 68008055 fetch 1 ,mem_conn_sm 
+605a 207a0000 rtn blank 
+605b 7000551b jam conn_sm_wait_done ,mem_conn_sm 
+605c 5800000c setarg timer_enpt_waite 
+605d d8e00007 arg enpt_delay_timer ,queue 
+605e 20207f08 branch timer_init 
+
+send_lmp_accept_sniff_req:
+605f 202026c6 branch sniff_init 
+
+send_lmp_not_accepted:
+6060 18007e03 force 3 ,pdata 
+6061 20406298 call msg_send_lmp 
+6062 68008049 fetch 1 ,mem_lmi_opcode 
+6063 c005e068 beq lmp_au_rand ,send_not_accept_aurand 
+6064 e0a08000 istore 1 ,contw 
+6065 6800804a fetch 1 ,mem_lmo_reason 
+6066 e0a08000 istore 1 ,contw 
+6067 202062a7 branch send_lmp_follow 
+
+send_not_accept_aurand:
+6068 e0a08000 istore 1 ,contw 
+6069 6800804a fetch 1 ,mem_lmo_reason 
+606a e0a08000 istore 1 ,contw 
+606b d84004d5 arg mem_sres_tid ,temp 
+606c 202062e2 branch special_tid_store 
+
+send_lmpext_accepted:
+606d 18000e04 force 4 ,queue 
+606e 204062a0 call send_lmpext 
+606f 5800007f setarg lmp_escape 
+6070 e0a08000 istore 1 ,contw 
+6071 68008049 fetch 1 ,mem_lmi_opcode 
+6072 793ffe07 set0 7 ,pdata 
+6073 e0a08000 istore 1 ,contw 
+6074 68008049 fetch 1 ,mem_lmi_opcode 
+6075 202062a7 branch send_lmp_follow 
+
+send_lmpext_not_accepted:
+6076 18000e05 force 5 ,queue 
+6077 204062a0 call send_lmpext 
+6078 5800007f setarg lmp_escape 
+6079 e0a08000 istore 1 ,contw 
+607a 68008049 fetch 1 ,mem_lmi_opcode 
+607b 793ffe07 set0 7 ,pdata 
+607c e0a08000 istore 1 ,contw 
+607d 6800804a fetch 1 ,mem_lmo_reason 
+607e e0a08000 istore 1 ,contw 
+607f 202062a7 branch send_lmp_follow 
+
+send_lmp_accepted_inrand:
+6080 2040244f call clear_linkkey 
+6081 204062f3 call tid_check 
+6082 20608000 rtn true 
+6083 20205ffc branch lmp_generate_key 
+
+send_lmp_accepted_enc_mode:
+6084 6800804b fetch 1 ,mem_op 
+6085 c282e08b bbit1 op_start_enc ,send_lmp_accepted_enc_start 
+6086 c4020000 rtnbit0 op_stop_enc 
+6087 70007c12 jam lmp_stop_encryption_req ,mem_lmo_opcode2 
+6088 793ffe04 set0 op_stop_enc ,pdata 
+6089 204062eb call tid_reply 
+608a 2020608d branch send_lmp_accepted_enc_exit 
+
+send_lmp_accepted_enc_start:
+608b 70007c10 jam lmp_encryption_key_size_req ,mem_lmo_opcode2 
+608c 793ffe05 set0 op_start_enc ,pdata 
+
+send_lmp_accepted_enc_exit:
+608d 6000804b store 1 ,mem_op 
+608e 20600000 rtn 
+
+send_lmp_accepted_enc_key:
+608f 204062fc call check_localsm 
+6090 2020dffe branch lmp_start_encryption ,true 
+6091 20600000 rtn 
+
+send_lmp_accepted_connection:
+6092 70007c8b jam lmp_packet_type_table_req ,mem_lmo_opcode2 
+6093 680084d1 fetch 1 ,mem_lmp_conn_state 
+6094 79207e00 set1 received_conn_req ,pdata 
+6095 600084d1 store 1 ,mem_lmp_conn_state 
+6096 700a9901 jam bt_evt_bb_connected ,mem_fifo_temp 
+6097 20207d86 branch ui_ipc_send_event 
+
+send_lmp_accept_dhkey_check:
+6098 20600000 rtn 
+
+send_lmpext_features_res:
+6099 18000e0c force 12 ,queue 
+609a 204062a0 call send_lmpext 
+609b 58000001 setarg 0x01 
+609c e0a08000 istore 1 ,contw 
+609d 680104ce fetch 2 ,mem_lmpext_ssp_enable 
+609e e0a10000 istore 2 ,contw 
+609f 58000000 setarg 0 
+60a0 e0a18000 istore 3 ,contw 
+60a1 58000000 setarg 0x00 
+60a2 e0a20000 istore 4 ,contw 
+60a3 202062b0 branch send_lmp_reply 
+
+send_lmpext_io_cap_res:
+60a4 18000e05 force 5 ,queue 
+60a5 204062a0 call send_lmpext 
+60a6 6801c65b fetch 3 ,mem_sp_iocap_local 
+60a7 e0a18000 istore 3 ,contw 
+60a8 204062b0 call send_lmp_reply 
+60a9 70466501 jam flag_pairing_state_pairing ,mem_flag_pairing_state 
+60aa 6800c65b fetch 1 ,mem_sp_iocap_local 
+60ab c000e0b5 beq display_yesno ,responder_iocap_display_yesno 
+60ac c00160af beq keyboard_only ,responder_iocap_keyboard_only 
+60ad c001e0bb beq no_input_no_output ,responder_iocap_no_input_no_output 
+60ae 20600000 rtn 
+
+responder_iocap_keyboard_only:
+60af 6800c65e fetch 1 ,mem_sp_iocap_remote 
+60b0 c00060c7 beq display_only ,responder_iocap_keyboard_only_initiator_iocap_display_only 
+60b1 c000e0c7 beq display_yesno ,responder_iocap_keyboard_only_initiator_iocap_display_yesno 
+60b2 c00160c7 beq keyboard_only ,responder_iocap_keyboard_only_initiator_iocap_keyboard_only 
+60b3 c001e0c1 beq no_input_no_output ,responder_iocap_keyboard_only_initiator_iocap_no_input_no_output 
+60b4 20600000 rtn 
+
+responder_iocap_display_yesno:
+60b5 6800c65e fetch 1 ,mem_sp_iocap_remote 
+60b6 c00060c1 beq display_only ,responder_iocap_display_yesno_initiator_iocap_display_only 
+60b7 c000e0c5 beq display_yesno ,responder_iocap_display_yesno_initiator_iocap_display_yesno 
+60b8 c00160c7 beq keyboard_only ,responder_iocap_display_yesno_initiator_iocap_keyboard_only 
+60b9 c001e0c1 beq no_input_no_output ,responder_iocap_display_yesno_initiator_iocap_no_input_no_output 
+60ba 20600000 rtn 
+
+responder_iocap_no_input_no_output:
+60bb 6800c65e fetch 1 ,mem_sp_iocap_remote 
+60bc c00060c1 beq display_only ,responder_iocap_no_input_no_output_initiator_iocap_display_only 
+60bd c000e0c1 beq display_yesno ,responder_iocap_no_input_no_output_initiator_iocap_display_yesno 
+60be c00160c1 beq keyboard_only ,responder_iocap_no_input_no_output_initiator_iocap_keyboard_only 
+60bf c001e0c1 beq no_input_no_output ,responder_iocap_no_input_no_output_initiator_iocap_no_input_no_output 
+60c0 20600000 rtn 
+
+responder_iocap_keyboard_only_initiator_iocap_no_input_no_output:
+
+responder_iocap_display_yesno_initiator_iocap_no_input_no_output:
+
+responder_iocap_display_yesno_initiator_iocap_display_only:
+
+responder_iocap_no_input_no_output_initiator_iocap_display_only:
+
+responder_iocap_no_input_no_output_initiator_iocap_display_yesno:
+
+responder_iocap_no_input_no_output_initiator_iocap_keyboard_only:
+
+responder_iocap_no_input_no_output_initiator_iocap_no_input_no_output:
+
+set_ssp_mode_justwork:
+60c1 70466203 jam ssp_mode_just_work_flag ,mem_ssp_mode_flag 
+60c2 6800c55c fetch 1 ,mem_classic_bt_flag 
+60c3 c28033e9 bbit1 flag_ssp_reject_justwork ,app_bt_disconnect 
+60c4 20600000 rtn 
+
+responder_iocap_display_yesno_initiator_iocap_display_yesno:
+
+set_ssp_mode_numeric_comparison:
+60c5 70466201 jam ssp_mode_ssp_pin_flag ,mem_ssp_mode_flag 
+60c6 20600000 rtn 
+
+responder_iocap_keyboard_only_initiator_iocap_display_yesno:
+
+responder_iocap_keyboard_only_initiator_iocap_keyboard_only:
+
+responder_iocap_keyboard_only_initiator_iocap_display_only:
+
+responder_iocap_display_yesno_initiator_iocap_keyboard_only:
+
+set_ssp_mode_passkey:
+60c7 70466202 jam ssp_mode_passkey_entry_flag ,mem_ssp_mode_flag 
+60c8 20600000 rtn 
+
+classic_bt_set_reject_justwork_flag:
+60c9 d8e00000 arg flag_ssp_reject_justwork ,queue 
+60ca 202060cd branch classic_bluetooth_set_flag 
+
+classic_bt_clr_reject_justwork_flag:
+60cb d8e00000 arg flag_ssp_reject_justwork ,queue 
+60cc 202060d1 branch classic_bluetooth_clr_flag 
+
+classic_bluetooth_set_flag:
+60cd 6800c55c fetch 1 ,mem_classic_bt_flag 
+60ce f9207e00 qset1 pdata 
+60cf 6000c55c store 1 ,mem_classic_bt_flag 
+60d0 20600000 rtn 
+
+classic_bluetooth_clr_flag:
+60d1 6800c55c fetch 1 ,mem_classic_bt_flag 
+60d2 f93ffe00 qset0 pdata 
+60d3 6000c55c store 1 ,mem_classic_bt_flag 
+60d4 20600000 rtn 
+
+send_lmp_io_cap_req:
+60d5 18000e05 force 5 ,queue 
+60d6 204062a0 call send_lmpext 
+60d7 6801c65b fetch 3 ,mem_sp_iocap_local 
+60d8 e0a18000 istore 3 ,contw 
+60d9 202062b2 branch send_lmp_request 
+
+send_lmpext_sniff_subrating_req:
+60da 20600000 rtn 
+
+send_lmpext_sniff_subrating_res:
+60db 18000e09 force 9 ,queue 
+60dc 204062a0 call send_lmpext 
+60dd 68008095 fetch 1 ,mem_subsniff_rate 
+60de e0a08000 istore 1 ,contw 
+60df 68010096 fetch 2 ,mem_subsniff_tcmax 
+60e0 e0a10000 istore 2 ,contw 
+60e1 68020091 fetch 4 ,mem_subsniff_instant 
+60e2 e0a20000 istore 4 ,contw 
+60e3 202062b0 branch send_lmp_reply 
+
+send_lmp_name_res:
+60e4 18007e11 force 17 ,pdata 
+60e5 20406298 call msg_send_lmp 
+60e6 68008049 fetch 1 ,mem_lmi_opcode 
+60e7 1fe20400 copy pdata ,temp 
+60e8 c00060ec beq 0x00 ,send_lmp_name_res_offset_ok 
+60e9 c00760ec beq 0x0e ,send_lmp_name_res_offset_ok 
+60ea c00e60ec beq 0x1c ,send_lmp_name_res_offset_ok 
+60eb 20600000 rtn 
+
+send_lmp_name_res_offset_ok:
+60ec e0a08000 istore 1 ,contw 
+60ed 6800c515 fetch 1 ,mem_local_name_length 
+60ee e0a08000 istore 1 ,contw 
+60ef df20000e arg 14 ,loopcnt 
+60f0 58004516 setarg mem_local_name 
+60f1 98408c00 iadd temp ,contr 
+60f2 20407f01 call memcpy 
+60f3 202062b0 branch send_lmp_reply 
+
+send_lmp_timing_accuracy_res:
+60f4 18007e03 force 3 ,pdata 
+60f5 20406298 call msg_send_lmp 
+60f6 58000114 setarg 0x0114 
+60f7 e0a10000 istore 2 ,contw 
+60f8 202062b0 branch send_lmp_reply 
+
+send_lmp_clkoffset_res:
+60f9 18007e03 force 3 ,pdata 
+60fa 20406298 call msg_send_lmp 
+60fb 68020165 fetch 4 ,mem_clke_bt 
+60fc 9c467e00 isub clkn_bt ,pdata 
+60fd 2034e0ff branch send_lmp_clkoffset_res_master ,master 
+60fe 1fe67e00 sub pdata ,0 ,pdata 
+
+send_lmp_clkoffset_res_master:
+60ff 1feb7e00 rshift2 pdata ,pdata 
+6100 793ffe0f set0 15 ,pdata 
+6101 e0a10000 istore 2 ,contw 
+6102 202062b0 branch send_lmp_reply 
+
+send_lmp_version_res:
+6103 18007e06 force 6 ,pdata 
+6104 20406298 call msg_send_lmp 
+6105 6802c510 fetch 5 ,mem_lmp_version 
+6106 e0a28000 istore 5 ,contw 
+6107 202062b0 branch send_lmp_reply 
+
+send_lmp_features_res:
+6108 18007e09 force 9 ,pdata 
+6109 20406298 call msg_send_lmp 
+610a 68044098 fetch 8 ,mem_features 
+610b e0a40000 istore 8 ,contw 
+610c 202062b0 branch send_lmp_reply 
+
+send_lmpext_features_req:
+610d 18000e0c force 12 ,queue 
+610e 204062a0 call send_lmpext 
+610f 58000001 setarg 0x01 
+6110 e0a08000 istore 1 ,contw 
+6111 680104ce fetch 2 ,mem_lmpext_ssp_enable 
+6112 e0a10000 istore 2 ,contw 
+6113 58000000 setarg 0 
+6114 e0a18000 istore 3 ,contw 
+6115 58000000 setarg 0x00 
+6116 e0a20000 istore 4 ,contw 
+6117 202062b2 branch send_lmp_request 
+
+send_lmpext_packet_type_table_req:
+6118 18000e03 force 3 ,queue 
+6119 204062a0 call send_lmpext 
+611a 6800c15a fetch 1 ,mem_ptt 
+611b e0a08000 istore 1 ,contw 
+611c 78547c00 disable user 
+611d 204062b2 call send_lmp_request 
+611e 24740000 nrtn user 
+611f 24748000 nrtn master 
+6120 6800c0d8 fetch 1 ,mem_afh_cfg 
+6121 c4000000 rtnbit0 afh_cfg_on 
+6122 20406132 call afh_init 
+6123 2020613c branch afh_open_all_channels 
+
+ssp_enable:
+6124 47424030 bpatchx patch30_4 ,mem_patch30 
+6125 6800c09e fetch 1 ,mem_features + 6 
+6126 79207e03 set1 param_featrue_ssp ,pdata 
+6127 6000c09e store 1 ,mem_features + 6 
+6128 58000101 setarg param_lmpext_ssp_enable 
+6129 600104ce store 2 ,mem_lmpext_ssp_enable 
+612a 20600000 rtn 
+
+ssp_disable:
+612b 4742c030 bpatchx patch30_5 ,mem_patch30 
+612c 6800c09e fetch 1 ,mem_features + 6 
+612d 793ffe03 set0 param_featrue_ssp ,pdata 
+612e 6000c09e store 1 ,mem_features + 6 
+612f 58000000 setarg 0 
+6130 600104ce store 2 ,mem_lmpext_ssp_enable 
+6131 20600000 rtn 
+
+afh_init:
+6132 7040d803 jam 0x3 ,mem_afh_cfg 
+6133 58000000 setarg 0 
+6134 60024142 store 4 ,mem_afh_timer 
+6135 d8a040da arg mem_afh_map_lo ,contw 
+6136 20406140 call afh_reset_map 
+6137 d8a040e7 arg mem_afh_map_new ,contw 
+6138 20406140 call afh_reset_map 
+6139 d8a04146 arg mem_afh_classify_channel_map ,contw 
+613a 20406140 call afh_reset_map 
+613b 20206147 branch afh_clear_error_counter 
+
+afh_open_all_channels:
+613c d8a040e7 arg mem_afh_map_new ,contw 
+613d 20406140 call afh_reset_map 
+613e 20406147 call afh_clear_error_counter 
+613f 2020614a branch afh_set_send_flag 
+
+afh_reset_map:
+6140 58ffffff setarg 0xffffff 
+6141 e0a18000 istore 3 ,contw 
+6142 e0a18000 istore 3 ,contw 
+6143 e0a18000 istore 3 ,contw 
+6144 5800007f setarg 0x7f 
+6145 e0a08000 istore 1 ,contw 
+6146 20600000 rtn 
+
+afh_clear_error_counter:
+6147 58000000 setarg 0 
+6148 600140d6 store 2 ,mem_afh_error_total 
+6149 20600000 rtn 
+
+afh_set_send_flag:
+614a 6800c0d8 fetch 1 ,mem_afh_cfg 
+614b 79207e02 set1 send_lmp_set_afh ,pdata 
+614c 6000c0d8 store 1 ,mem_afh_cfg 
+614d 20600000 rtn 
+
+send_lmpext_pause_encryption_req:
+614e 18000e02 force 2 ,queue 
+614f 204062a0 call send_lmpext 
+6150 2434e2b0 nbranch send_lmp_reply ,master 
+6151 202062b2 branch send_lmp_request 
+
+send_lmp_detach:
+6152 18007e02 force 2 ,pdata 
+6153 20406298 call msg_send_lmp 
+6154 680084ca fetch 1 ,mem_disconn_reason_send 
+6155 e0a08000 istore 1 ,contw 
+6156 204062b2 call send_lmp_request 
+
+prepare_disconnect:
+6157 6800804b fetch 1 ,mem_op 
+6158 79207e03 set1 op_disconn ,pdata 
+6159 6000804b store 1 ,mem_op 
+615a 70007232 jam 50 ,mem_conn_timer 
+615b 20600000 rtn 
+
+send_lmp_no_payload:
+615c 18007e01 force 1 ,pdata 
+615d 20406298 call msg_send_lmp 
+615e 202062b2 branch send_lmp_request 
+
+send_lmp_nopayload_reply:
+615f 18007e01 force 1 ,pdata 
+6160 20406298 call msg_send_lmp 
+6161 202062b0 branch send_lmp_reply 
+
+send_lmp_encryption_mode_req:
+6162 18007e02 force 2 ,pdata 
+6163 20406298 call msg_send_lmp 
+6164 6800804c fetch 1 ,mem_state_map 
+6165 2fec0002 isolate0 smap_encryption ,pdata 
+6166 7920fe00 setflag true ,0 ,pdata 
+6167 1fe17e01 and_into 1 ,pdata 
+6168 e0a08000 istore 1 ,contw 
+6169 202062b2 branch send_lmp_request 
+
+send_lmp_superto:
+616a 18007e03 force 3 ,pdata 
+616b 20406298 call msg_send_lmp 
+616c 68010051 fetch 2 ,mem_supervision_to 
+616d e0a10000 istore 2 ,contw 
+616e 202062b2 branch send_lmp_request 
+
+send_lmp_name_req:
+616f 700072fa jam 250 ,mem_conn_timer 
+6170 18007e02 force 2 ,pdata 
+6171 20406298 call msg_send_lmp 
+6172 68008053 fetch 1 ,mem_name_offset 
+6173 e0a08000 istore 1 ,contw 
+6174 202062b2 branch send_lmp_request 
+
+send_lmp_test_control:
+6175 18007e0a force 10 ,pdata 
+6176 20406298 call msg_send_lmp 
+6177 d8c00152 arg mem_temp_payload ,contr 
+6178 18007209 force 9 ,loopcnt 
+
+send_lmp_test_control_loop:
+6179 e8c08000 ifetch 1 ,contr 
+617a 1fe2fe55 xor_into 0x55 ,pdata 
+617b e0a08000 istore 1 ,contw 
+617c c2006179 loop send_lmp_test_control_loop 
+617d 202062b2 branch send_lmp_request 
+
+send_lmp_quality_of_service_req:
+617e 202062b2 branch send_lmp_request 
+
+send_lmp_unit_key:
+617f 202062b2 branch send_lmp_request 
+
+send_lmp_slot_offset:
+6180 20748000 rtn master 
+6181 2040282d call calc_slot_offset 
+6182 18007e09 force 9 ,pdata 
+6183 20406298 call msg_send_lmp 
+6184 68010171 fetch 2 ,mem_slot_offset 
+6185 e0a10000 istore 2 ,contw 
+6186 6801c0a0 fetch 3 ,mem_lap 
+6187 e0a18000 istore 3 ,contw 
+6188 6800c0a3 fetch 1 ,mem_uap 
+6189 e0a08000 istore 1 ,contw 
+618a 680140a4 fetch 2 ,mem_nap 
+618b e0a10000 istore 2 ,contw 
+618c c581e191 bmark0 mark_switch_initiated ,send_lmp_slot_offset_reply 
+618d 793f8003 set0 mark_switch_initiated ,mark 
+618e 204062b2 call send_lmp_request 
+618f 70007c13 jam lmp_switch_req ,mem_lmo_opcode2 
+6190 20600000 rtn 
+
+send_lmp_slot_offset_reply:
+6191 204062b0 call send_lmp_reply 
+6192 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
+6193 70007d13 jam lmp_switch_req ,mem_lmi_opcode2 
+6194 20600000 rtn 
+
+send_lmp_switch_req:
+6195 d8400200 arg 0x200 ,temp 
+6196 2034e199 branch switch_on_native ,master 
+6197 1d027e00 deposit clke_bt 
+6198 2020619a branch switch_slack 
+
+switch_on_native:
+6199 1c427e00 deposit clkn_bt 
+
+switch_slack:
+619a 1c227e00 deposit bt_clk 
+619b 9840fe00 iadd temp ,pdata 
+619c 1fe17ffc and_into 0x1fc ,pdata 
+619d 60020034 store 4 ,mem_sniff_anchor 
+619e 18007e05 force 5 ,pdata 
+619f 20406298 call msg_send_lmp 
+61a0 68020034 fetch 4 ,mem_sniff_anchor 
+61a1 1fe37e00 rshift pdata ,pdata 
+61a2 e0a20000 istore 4 ,contw 
+61a3 202062b2 branch send_lmp_request 
+
+send_lmp_sniff_req:
+61a4 18007e0a force 10 ,pdata 
+61a5 20406298 call msg_send_lmp 
+61a6 d8c004d9 arg mem_sniff_payload ,contr 
+61a7 e8c48000 ifetch 9 ,contr 
+61a8 e0a48000 istore 9 ,contw 
+61a9 202062b2 branch send_lmp_request 
+
+send_lmp_timing_accuracy_req:
+61aa 18007e03 force 3 ,pdata 
+61ab 20406298 call msg_send_lmp 
+61ac 58000114 setarg 0x0114 
+61ad e0a10000 istore 2 ,contw 
+61ae 202062b2 branch send_lmp_request 
+
+send_lmp_unsniff_req:
+61af 18007e01 force 1 ,pdata 
+61b0 20406298 call msg_send_lmp 
+61b1 202062b2 branch send_lmp_request 
+
+send_lmp_max_slot:
+61b2 18007e02 force 2 ,pdata 
+61b3 20406298 call msg_send_lmp 
+61b4 6800c0d0 fetch 1 ,mem_max_slot 
+61b5 e0a08000 istore 1 ,contw 
+61b6 202062b2 branch send_lmp_request 
+
+send_lmp_max_slot_req:
+61b7 18007e02 force 2 ,pdata 
+61b8 20406298 call msg_send_lmp 
+61b9 58000005 setarg 0x05 
+61ba e0a08000 istore 1 ,contw 
+61bb 202062b2 branch send_lmp_request 
+
+send_lmp_inc_power:
+61bc 18007e02 force 2 ,pdata 
+61bd 20406298 call msg_send_lmp 
+61be 58000000 setarg 0x00 
+61bf e0a08000 istore 1 ,contw 
+61c0 202062b2 branch send_lmp_request 
+
+send_lmp_setup_complete_by_module:
+61c1 70007c2e jam lmp_max_slot_req ,mem_lmo_opcode2 
+61c2 20600000 rtn 
+
+send_lmp_setup_complete:
+61c3 6800c092 fetch 1 ,mem_device_option 
+61c4 1fe67c0a sub pdata ,dvc_op_module ,null 
+61c5 2042e1c1 call send_lmp_setup_complete_by_module ,zero 
+61c6 68008030 fetch 1 ,mem_state 
+61c7 79207e04 set1 state_conn_comp ,pdata 
+61c8 60008030 store 1 ,mem_state 
+61c9 1c427e00 copy clkn_bt ,pdata 
+61ca 600204e9 store 4 ,mem_aurand_send_delay_time 
+61cb 680084d1 fetch 1 ,mem_lmp_conn_state 
+61cc c281e1d4 bbit1 sent_setup_complete ,send_lmp_setup_complete_has_sent 
+61cd 79207e03 set1 sent_setup_complete ,pdata 
+61ce 600084d1 store 1 ,mem_lmp_conn_state 
+61cf 700a9905 jam bt_evt_setup_complete ,mem_fifo_temp 
+61d0 20407d86 call ui_ipc_send_event 
+61d1 18007e01 force 1 ,pdata 
+61d2 20406298 call msg_send_lmp 
+61d3 202062b2 branch send_lmp_request 
+
+send_lmp_setup_complete_has_sent:
+61d4 70004800 jam 0 ,mem_lmp_to_send 
+61d5 20600000 rtn 
+
+send_lmp_version_req:
+61d6 18007e06 force 6 ,pdata 
+61d7 20406298 call msg_send_lmp 
+61d8 6802c510 fetch 5 ,mem_lmp_version 
+61d9 e0a28000 istore 5 ,contw 
+61da 202062b2 branch send_lmp_request 
+
+send_lmp_features_req:
+61db 18007e09 force 9 ,pdata 
+61dc 20406298 call msg_send_lmp 
+61dd 68044098 fetch 8 ,mem_features 
+61de e0a40000 istore 8 ,contw 
+61df 202062b2 branch send_lmp_request 
+
+sp_master_send_io_cap_get:
+61e0 7009b101 jam sp_flag_commit ,mem_master_sp_flag 
+61e1 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
+61e2 c1808000 rtnne sp_key_valid 
+61e3 7009af13 jam sp_master_stat_start_done ,mem_master_sp_state 
+61e4 20600000 rtn 
+
+sp_master_send_io_cap_send:
+61e5 204062ef call tid_initiate 
+61e6 70007c99 jam lmp_io_cap_req ,mem_lmo_opcode2 
+61e7 7009af03 jam sp_stat_key_send ,mem_master_sp_state 
+61e8 20600000 rtn 
+
+sp_master_send_lmp_encapsulated_header:
+61e9 204062ef call tid_initiate 
+61ea 70007c3d jam lmp_encapsulated_header ,mem_lmo_opcode2 
+61eb 7009af07 jam sp_stat_random_send ,mem_master_sp_state 
+61ec 20600000 rtn 
+
+sp_master_commitment_compare:
+61ed da200a4e arg mem_sp_calc_result_high ,rega 
+61ee da400a6e arg mem_sp_confirm_remote ,regb 
+61ef df200010 arg 16 ,loopcnt 
+61f0 20407f88 call string_compare 
+61f1 2022e1f7 branch sp_master_commitment_compare_success ,zero 
+61f2 7009af00 jam sp_stat_null ,mem_master_sp_state 
+61f3 204076da call master_clear_mem_master_sp_flag 
+61f4 70007e24 jam pdu_not_allowed ,mem_lmo_reason2 
+61f5 70007d40 jam lmp_simple_pairing_number ,mem_lmi_opcode2 
+61f6 20205d53 branch reject_lmp_packet 
+
+sp_master_commitment_compare_success:
+61f7 7009af0a jam sp_stat_confirm_calc ,mem_master_sp_state 
+61f8 204076d8 call master_set_mem_master_sp_flag 
+61f9 70007d40 jam lmp_simple_pairing_number ,mem_lmi_opcode2 
+61fa 20205e38 branch accept_lmp_msg 
+
+sp_master_send_lmp_simple_pairing_number:
+61fb 70007c40 jam lmp_simple_pairing_number ,mem_lmo_opcode2 
+61fc 20600000 rtn 
+
+sp_send_lmp_encapsulated_header:
+61fd 70007c3d jam lmp_encapsulated_header ,mem_lmo_opcode2 
+61fe 20600000 rtn 
+
+send_lmp_encapsulated_header:
+61ff 7009b600 jam 0 ,mem_sp_local_key_send_count 
+6200 18007e04 force 4 ,pdata 
+6201 20406298 call msg_send_lmp 
+6202 18007e01 force encapsulated_major_type_p192 ,pdata 
+6203 e0a08000 istore 1 ,contw 
+6204 18007e01 force encapsulated_minor_type_p192 ,pdata 
+6205 e0a08000 istore 1 ,contw 
+6206 18007e30 force encapsulated_len_p192 ,pdata 
+6207 e0a08000 istore 1 ,contw 
+6208 204062fc call check_localsm 
+6209 2020e2b2 branch send_lmp_request ,true 
+620a 202062b0 branch send_lmp_reply 
+
+send_lmp_encapsulated_payload:
+620b 18007e11 force 17 ,pdata 
+620c 20406298 call msg_send_lmp 
+620d 680089b6 fetch 1 ,mem_sp_local_key_send_count 
+620e d8c0462a arg mem_sp_pubkey_local ,contr 
+620f 98c08c00 iadd contr ,contr 
+6210 e8c40000 ifetch 8 ,contr 
+6211 e0a40000 istore 8 ,contw 
+6212 e8c40000 ifetch 8 ,contr 
+6213 e0a40000 istore 8 ,contw 
+6214 680089b6 fetch 1 ,mem_sp_local_key_send_count 
+6215 1fe0fe10 increase 16 ,pdata 
+6216 600089b6 store 1 ,mem_sp_local_key_send_count 
+6217 204062fc call check_localsm 
+6218 2020e2b2 branch send_lmp_request ,true 
+6219 202062b0 branch send_lmp_reply 
+
+sp_send_lmp_simple_pairing_comfirm:
+621a 7009ae06 jam sp_stat_random_recv ,mem_sp_state 
+621b 70007c3f jam lmp_simple_pairing_confirm ,mem_lmo_opcode2 
+621c 20600000 rtn 
+
+send_lmp_simple_pairing_comfirm:
+621d 18007e11 force 17 ,pdata 
+621e 20406298 call msg_send_lmp 
+621f d8c00a4e arg mem_sp_calc_result_high ,contr 
+6220 e8c40000 ifetch 8 ,contr 
+6221 e0a40000 istore 8 ,contw 
+6222 e8c40000 ifetch 8 ,contr 
+6223 e0a40000 istore 8 ,contw 
+6224 202062b0 branch send_lmp_reply 
+
+sp_send_lmp_simple_pairing_number:
+6225 70007c40 jam lmp_simple_pairing_number ,mem_lmo_opcode2 
+6226 20600000 rtn 
+
+send_lmp_simple_pairing_number:
+6227 204062fc call check_localsm 
+6228 2040f612 call sp_local_random_key_generator ,true 
+6229 18007e11 force 17 ,pdata 
+622a 20406298 call msg_send_lmp 
+622b d8c00a1e arg mem_sp_random_local ,contr 
+622c e8c40000 ifetch 8 ,contr 
+622d e0a40000 istore 8 ,contw 
+622e e8c40000 ifetch 8 ,contr 
+622f e0a40000 istore 8 ,contw 
+6230 204062fc call check_localsm 
+6231 2420e2b0 nbranch send_lmp_reply ,true 
+6232 2020e2b2 branch send_lmp_request ,true 
+
+master_sp_sm_end:
+6233 7009af0f jam sp_stat_done ,mem_master_sp_state 
+
+sp_aurand_send:
+6234 204062ef call tid_initiate 
+6235 70007c0b jam lmp_au_rand ,mem_lmo_opcode2 
+6236 20406307 call check_localsm_master 
+6237 2020f64e branch sp_master_key_prarm_push ,true 
+6238 20207658 branch sp_link_key_prarm_push 
+
+master_sp_send_lmp_dhkey_check:
+6239 204062eb call tid_reply 
+
+sp_send_lmp_dhkey_check:
+623a 70007c41 jam lmp_dhkey_check ,mem_lmo_opcode2 
+623b 20600000 rtn 
+
+send_lmp_dhkey_check:
+623c 18007e11 force 17 ,pdata 
+623d 20406298 call msg_send_lmp 
+623e d8c00a4e arg mem_sp_calc_result_high ,contr 
+623f e8c40000 ifetch 8 ,contr 
+6240 e0a40000 istore 8 ,contw 
+6241 e8c40000 ifetch 8 ,contr 
+6242 e0a40000 istore 8 ,contw 
+6243 204062fc call check_localsm 
+6244 2420e2b0 nbranch send_lmp_reply ,true 
+6245 2020e2b2 branch send_lmp_request ,true 
+
+send_lmp_enc_key_size_mask_res:
+6246 18007e03 force 3 ,pdata 
+6247 20406298 call msg_send_lmp 
+6248 5800fffe setarg 0xfffe 
+6249 e0a10000 istore 2 ,contw 
+624a 202062b0 branch send_lmp_reply 
+
+send_lmp_auto_rate:
+624b 202062b2 branch send_lmp_request 
+
+send_lmp_clkoffset_req:
+624c 202062b2 branch send_lmp_request 
+
+send_lmp_quality_of_service:
+624d 202062b2 branch send_lmp_request 
+
+send_lmp_test_activate:
+624e 202062b2 branch send_lmp_request 
+
+send_lmp_comb_key:
+624f 2040630b call generate_random_number 
+6250 da2040a0 arg mem_lap ,rega 
+6251 20406311 call generate_linkkey 
+6252 18007e11 force 17 ,pdata 
+6253 20406298 call msg_send_lmp 
+6254 da200582 arg mem_kinit ,rega 
+6255 da400562 arg mem_random_number ,regb 
+6256 20407352 call xor16 
+6257 2434e2a7 nbranch send_lmp_follow ,master 
+6258 202062ad branch send_lmp_tid 
+
+send_lmp_inrand:
+6259 2040630b call generate_random_number 
+625a da200040 arg mem_plap ,rega 
+625b 20407255 call generate_kinit 
+
+send_lmp_rand:
+625c 18007e11 force 17 ,pdata 
+625d 20406298 call msg_send_lmp 
+625e d8c00562 arg mem_random_number ,contr 
+625f 20407ebf call memcpy16 
+6260 68008055 fetch 1 ,mem_conn_sm 
+6261 c00ce2b2 beq conn_sm_auth_wait ,send_lmp_request 
+6262 c00c62b2 beq conn_sm_pairing_wait ,send_lmp_request 
+6263 202062ad branch send_lmp_tid 
+
+send_lmp_aurand:
+6264 680089b5 fetch 1 ,mem_pairing_auth 
+6265 203a626a branch send_lmp_aurand_notpairing ,blank 
+6266 204062fc call check_localsm 
+6267 2040e2ef call tid_initiate ,true 
+6268 2440e2eb ncall tid_reply ,true 
+6269 2020626b branch send_lmp_aurand_common 
+
+send_lmp_aurand_notpairing:
+626a 204062ef call tid_initiate 
+
+send_lmp_aurand_common:
+626b 2040630b call generate_random_number 
+626c 2020625c branch send_lmp_rand 
+
+send_lmp_sres:
+626d da2040a0 arg mem_lap ,rega 
+626e 20407288 call function_e1 
+626f 18007e05 force 5 ,pdata 
+6270 20406298 call msg_send_lmp 
+6271 68020592 fetch 4 ,mem_input_store 
+6272 e0a20000 istore 4 ,contw 
+6273 d84004d5 arg mem_sres_tid ,temp 
+6274 204062e2 call special_tid_store 
+6275 20407386 call copy_aco 
+6276 204062fc call check_localsm 
+6277 2020e27c branch send_lmp_sres_master ,true 
+6278 7004d801 jam done_encryp ,mem_wait_encryption 
+6279 680089b5 fetch 1 ,mem_pairing_auth 
+627a 207a0000 rtn blank 
+627b 70007c0b jam lmp_au_rand ,mem_lmo_opcode2 
+
+send_lmp_sres_master:
+627c 6800c1bd fetch 1 ,mem_link_key_exists 
+627d 207a0000 rtn blank 
+
+send_lmp_sres_startenc:
+627e 204062fc call check_localsm 
+627f 2420e284 nbranch send_lmp_sres_startenc_slave ,true 
+6280 680084d7 fetch 1 ,mem_auth_enable 
+6281 207a0000 rtn blank 
+6282 70007c0f jam lmp_encryption_mode_req ,mem_lmo_opcode2 
+6283 20600000 rtn 
+
+send_lmp_sres_startenc_slave:
+6284 c6908000 rtnmark0 mark_slave_in_rand_accepted 
+6285 793f8021 set0 mark_slave_in_rand_accepted ,mark 
+6286 70007c0f jam lmp_encryption_mode_req ,mem_lmo_opcode2 
+6287 20600000 rtn 
+
+send_lmp_start_encryption:
+6288 2040630b call generate_random_number 
+6289 2040728b call function_e3 
+628a 18007e11 force 17 ,pdata 
+628b 20406298 call msg_send_lmp 
+628c d8c00562 arg mem_random_number ,contr 
+628d 20407ebf call memcpy16 
+628e 202062ad branch send_lmp_tid 
+
+send_lmp_stop_encryption_req:
+628f 18007e01 force 1 ,pdata 
+6290 20406298 call msg_send_lmp 
+6291 202062ad branch send_lmp_tid 
+
+send_lmp_encryption_key_size_req:
+6292 18007e02 force 2 ,pdata 
+6293 20406298 call msg_send_lmp 
+6294 18007e10 force 16 ,pdata 
+6295 e0a08000 istore 1 ,contw 
+6296 60008054 store 1 ,mem_key_size 
+6297 202062ad branch send_lmp_tid 
+
+msg_send_lmp:
+6298 1fe9fe00 lshift3 pdata ,pdata 
+6299 1fe1fe07 or_into 0x07 ,pdata 
+629a 600084b6 store 1 ,mem_lmo_header_length 
+629b df200011 arg 17 ,loopcnt 
+629c d8a004b8 arg mem_lmo_payload ,contw 
+629d 20407ed4 call clear_mem 
+629e d8a004b8 arg mem_lmo_payload ,contw 
+629f 20600000 rtn 
+
+send_lmpext:
+62a0 1fe1227f and pdata ,0x7f ,rega 
+62a1 7000487f jam lmp_escape ,mem_lmp_to_send 
+62a2 18e27e00 deposit queue 
+62a3 20406298 call msg_send_lmp 
+62a4 1a227e00 deposit rega 
+62a5 e0a08000 istore 1 ,contw 
+62a6 20600000 rtn 
+
+send_lmp_follow:
+62a7 68008048 fetch 1 ,mem_lmp_to_send 
+62a8 1fe3fe00 lshift pdata ,pdata 
+62a9 6808804c fetcht 1 ,mem_state_map 
+62aa 284ffe01 isolate1 smap_lmptid ,temp 
+62ab 7920fe00 setflag true ,0 ,pdata 
+62ac 202062b7 branch send_lmp_exit 
+
+send_lmp_tid:
+62ad 6808804c fetcht 1 ,mem_state_map 
+62ae 18410401 and_into 1 ,temp 
+62af 202062b3 branch send_lmp_end 
+
+send_lmp_reply:
+62b0 18000400 force 0 ,temp 
+62b1 202062b3 branch send_lmp_end 
+
+send_lmp_request:
+62b2 18000401 force 1 ,temp 
+
+send_lmp_end:
+62b3 68008048 fetch 1 ,mem_lmp_to_send 
+62b4 1fe3fe00 lshift pdata ,pdata 
+62b5 7934fe00 setflag master ,0 ,pdata 
+62b6 9842fe00 ixor temp ,pdata 
+
+send_lmp_exit:
+62b7 600084b7 store 1 ,mem_lmo_header_opcode 
+62b8 70004800 jam 0 ,mem_lmp_to_send 
+62b9 204062c7 call lmo_fifo_process_lmo0empty 
+62ba 78347c00 enable user 
+62bb 20600000 rtn 
+
+lmo_fifo_check:
+62bc 6800807c fetch 1 ,mem_lmo_opcode2 
+62bd 207a0000 rtn blank 
+62be 204062c1 call lmo_fifo_process 
+62bf 6800807c fetch 1 ,mem_lmo_opcode2 
+62c0 20600000 rtn 
+
+lmo_fifo_process:
+62c1 47434030 bpatchx patch30_6 ,mem_patch30 
+62c2 68008048 fetch 1 ,mem_lmp_to_send 
+62c3 203a62c7 branch lmo_fifo_process_lmo0empty ,blank 
+62c4 68008078 fetch 1 ,mem_lmo_opcode1 
+62c5 247a0000 nrtn blank 
+62c6 202062d1 branch lmo_fifo_process_lmo2to1 
+
+lmo_fifo_process_lmo0empty:
+62c7 68008078 fetch 1 ,mem_lmo_opcode1 
+62c8 203a62d7 branch lmo_fifo_process_lmo1_empty ,blank 
+62c9 68018078 fetch 3 ,mem_lmo_opcode1 
+62ca 60018048 store 3 ,mem_lmp_to_send 
+62cb 6808807b fetcht 1 ,mem_lmo_tid1 
+62cc 6800804c fetch 1 ,mem_state_map 
+62cd 793ffe01 set0 smap_lmptid ,pdata 
+62ce 9841fe00 ior temp ,pdata 
+62cf 6000804c store 1 ,mem_state_map 
+62d0 70007800 jam 0 ,mem_lmo_opcode1 
+
+lmo_fifo_process_lmo2to1:
+62d1 6800807c fetch 1 ,mem_lmo_opcode2 
+62d2 207a0000 rtn blank 
+62d3 6802007c fetch 4 ,mem_lmo_opcode2 
+62d4 60020078 store 4 ,mem_lmo_opcode1 
+62d5 70007c00 jam 0 ,mem_lmo_opcode2 
+62d6 20600000 rtn 
+
+lmo_fifo_process_lmo1_empty:
+62d7 6800807c fetch 1 ,mem_lmo_opcode2 
+62d8 207a0000 rtn blank 
+62d9 6801807c fetch 3 ,mem_lmo_opcode2 
+62da 60018048 store 3 ,mem_lmp_to_send 
+62db 6808807f fetcht 1 ,mem_lmo_tid2 
+62dc 6800804c fetch 1 ,mem_state_map 
+62dd 793ffe01 set0 smap_lmptid ,pdata 
+62de 9841fe00 ior temp ,pdata 
+62df 6000804c store 1 ,mem_state_map 
+62e0 70007c00 jam 0 ,mem_lmo_opcode2 
+62e1 20600000 rtn 
+
+special_tid_store:
+62e2 4743c030 bpatchx patch30_7 ,mem_patch30 
+62e3 6800804c fetch 1 ,mem_state_map 
+62e4 1fe22600 copy pdata ,regc 
+62e5 e8408000 ifetch 1 ,temp 
+62e6 20405e52 call pop_tid_follow 
+62e7 204062a7 call send_lmp_follow 
+62e8 1a627e00 copy regc ,pdata 
+62e9 6000804c store 1 ,mem_state_map 
+62ea 20600000 rtn 
+
+tid_reply:
+62eb 6808804c fetcht 1 ,mem_state_map 
+62ec 793f8400 set0 smap_lmptidinit ,temp 
+62ed 6008804c storet 1 ,mem_state_map 
+62ee 20600000 rtn 
+
+tid_initiate:
+62ef 6808804c fetcht 1 ,mem_state_map 
+62f0 79200400 set1 smap_lmptidinit ,temp 
+62f1 6008804c storet 1 ,mem_state_map 
+62f2 20600000 rtn 
+
+tid_check:
+62f3 7d34fe01 nsetflag master ,smap_lmptid ,pdata 
+62f4 6808804c fetcht 1 ,mem_state_map 
+62f5 9842fe00 ixor temp ,pdata 
+62f6 2feffe01 isolate1 smap_lmptid ,pdata 
+62f7 20600000 rtn 
+
+tid_set_reply:
+62f8 6800804c fetch 1 ,mem_state_map 
+62f9 7934fe01 setflag master ,smap_lmptid ,pdata 
+62fa 6000804c store 1 ,mem_state_map 
+62fb 20600000 rtn 
+
+check_localsm:
+62fc 680089b4 fetch 1 ,mem_sp_localsm 
+62fd 2fe0fe01 compare local_statemachine ,pdata ,0x7f 
+62fe 20600000 rtn 
+
+setlocalsm_master:
+62ff 680089b4 fetch 1 ,mem_sp_localsm 
+6300 79207e07 set1 7 ,pdata 
+6301 600089b4 store 1 ,mem_sp_localsm 
+6302 20600000 rtn 
+
+setlocalsm_slave:
+6303 680089b4 fetch 1 ,mem_sp_localsm 
+6304 793ffe07 set0 7 ,pdata 
+6305 600089b4 store 1 ,mem_sp_localsm 
+6306 20600000 rtn 
+
+check_localsm_master:
+6307 680089b4 fetch 1 ,mem_sp_localsm 
+6308 2feffe07 isolate1 7 ,pdata 
+6309 600089b4 store 1 ,mem_sp_localsm 
+630a 20600000 rtn 
+
+generate_random_number:
+630b d8a00562 arg mem_random_number ,contw 
+
+generate_random:
+630c 18007210 force 16 ,loopcnt 
+
+generate_random_another:
+
+generate_random_loop:
+630d 180a7e00 random pdata 
+630e e0a08000 istore 1 ,contw 
+630f c200630d loop generate_random_another 
+6310 20600000 rtn 
+
+generate_linkkey:
+6311 20407259 call function_e21 
+6312 da2041be arg mem_link_key ,rega 
+6313 da400592 arg mem_input_store ,regb 
+6314 ea240000 ifetch 8 ,rega 
+6315 68088030 fetcht 1 ,mem_state 
+6316 7d3a0406 nsetflag blank ,state_combkey ,temp 
+6317 60088030 storet 1 ,mem_state 
+6318 1a220a00 copy rega ,contw 
+6319 20407352 call xor16 
+631a 202021c4 branch generate_linkkey_continue 
+
+process_conn_sm:
+631b 47444031 bpatchx patch31_0 ,mem_patch31 
+631c 204062bc call lmo_fifo_check 
+631d 247a0000 nrtn blank 
+
+process_conn_sm_continue:
+631e 68008055 fetch 1 ,mem_conn_sm 
+631f 207a0000 rtn blank 
+6320 c002636f beq conn_sm_send_conn_req ,host_create_conn_send_conn_req 
+6321 c002e374 beq conn_sm_wait_conn_accept ,host_create_conn_wait_accept 
+6322 c0016366 beq conn_sm_send_features ,host_create_conn_send_features 
+6323 c001e37c beq conn_sm_wait_features_res ,host_create_conn_waiting 
+6324 c0076369 beq conn_sm_send_switch ,host_create_conn_send_switch 
+6325 c0036398 beq conn_sm_auth_pair ,host_create_conn_auth_pair 
+6326 c003e3b0 beq conn_sm_auth_pair_wait ,host_create_conn_auth_pair_wait 
+6327 c004e3b1 beq conn_sm_encrypt ,host_create_conn_encrypt 
+6328 c00563ba beq conn_sm_encrypt_wait ,host_create_conn_encrypt_wait 
+6329 c005e3be beq conn_sm_encrypt_wait_clear ,host_create_conn_encrypt_wait_clear 
+632a c0066386 beq conn_sm_send_setup_complete ,host_create_conn_send_setup_complete 
+632b c006e389 beq conn_sm_wait_setup_complete ,host_create_conn_wait_setup_complete 
+632c c007e38f beq conn_sm_detach_delay ,host_create_conn_master_detach 
+632d c0096359 beq conn_sm_send_version ,host_create_conn_send_version 
+632e c009e37c beq conn_sm_wait_version ,host_create_conn_waiting 
+632f c008635c beq conn_sm_wait_switch_after_host_connection ,host_creat_conn_wait_switch 
+6330 c00a6356 beq conn_sm_send_features_ext ,host_creat_conn_send_feat_ext 
+6331 c00ae37c beq conn_sm_wait_features_ext ,host_create_conn_waiting 
+6332 c00b6350 beq conn_sm_pairing ,host_create_conn_pairing 
+6333 c00c6355 beq conn_sm_pairing_wait ,host_create_conn_pairing_wait 
+6334 c00be349 beq conn_sm_auth ,host_create_conn_auth 
+6335 c00ce34f beq conn_sm_auth_wait ,host_create_conn_auth_wait 
+6336 c00d633a beq conn_sm_done ,host_create_conn_done 
+6337 c00de344 beq conn_sm_wait_done ,host_create_conn_done_wait 
+6338 70005500 jam conn_sm_standby ,mem_conn_sm 
+6339 20600000 rtn 
+
+host_create_conn_done:
+633a 680084d1 fetch 1 ,mem_lmp_conn_state 
+633b c4010000 rtnbit0 received_setup_complete 
+633c c4018000 rtnbit0 sent_setup_complete 
+633d 70005500 jam conn_sm_standby ,mem_conn_sm 
+633e 20406340 call host_conn_judge_encrypt 
+633f 20206cef branch scheduler_start_upper_sm 
+
+host_conn_judge_encrypt:
+6340 6800816d fetch 1 ,mem_connection_options 
+6341 c4008000 rtnbit0 connection_encrypt 
+6342 7000550a jam conn_sm_encrypt_wait ,mem_conn_sm 
+6343 20600000 rtn 
+
+host_create_conn_done_wait:
+6344 d8e00007 arg enpt_delay_timer ,queue 
+6345 20407f16 call timer_check 
+6346 247a0000 nrtn blank 
+6347 7000551a jam conn_sm_done ,mem_conn_sm 
+6348 20600000 rtn 
+
+host_create_conn_auth:
+6349 6800816d fetch 1 ,mem_connection_options 
+634a 793ffe00 set0 connection_auth ,pdata 
+634b 6000816d store 1 ,mem_connection_options 
+634c 70005519 jam conn_sm_auth_wait ,mem_conn_sm 
+634d 70007c0b jam lmp_au_rand ,mem_lmo_opcode2 
+634e 20600000 rtn 
+
+host_create_conn_auth_wait:
+634f 20600000 rtn 
+
+host_create_conn_pairing:
+6350 680084d4 fetch 1 ,mem_pincode_state 
+6351 c1810000 rtnne pincode_state_pincode_ready 
+6352 204063c0 call host_auth 
+6353 70005518 jam conn_sm_pairing_wait ,mem_conn_sm 
+6354 20600000 rtn 
+
+host_create_conn_pairing_wait:
+6355 20600000 rtn 
+
+host_creat_conn_send_feat_ext:
+6356 70005515 jam conn_sm_wait_features_ext ,mem_conn_sm 
+6357 70007c83 jam lmp_ext_features_req ,mem_lmo_opcode2 
+6358 20600000 rtn 
+
+host_create_conn_send_version:
+6359 70005513 jam conn_sm_wait_version ,mem_conn_sm 
+635a 70007c25 jam lmp_version_req ,mem_lmo_opcode2 
+635b 20600000 rtn 
+
+host_creat_conn_wait_switch:
+635c 6800c55b fetch 1 ,mem_switch_flag 
+635d c1000000 rtneq switch_flag_init 
+635e c000e364 beq switch_flag_accept ,host_create_conn_switch_accept 
+635f d8e00006 arg switch_wait_timer ,queue 
+6360 20407f16 call timer_check 
+6361 247a0000 nrtn blank 
+6362 70455b00 jam switch_flag_init ,mem_switch_flag 
+6363 2020637d branch host_create_conn_switch 
+
+host_create_conn_switch_accept:
+6364 20748000 rtn master 
+6365 20206398 branch host_create_conn_auth_pair 
+
+host_create_conn_send_features:
+6366 70005503 jam conn_sm_wait_features_res ,mem_conn_sm 
+6367 70007c27 jam lmp_features_req ,mem_lmo_opcode2 
+6368 20600000 rtn 
+
+host_create_conn_send_switch:
+6369 70007c13 jam lmp_switch_req ,mem_lmo_opcode2 
+636a 79200003 set1 mark_switch_initiated ,mark 
+636b 70005505 jam conn_sm_wait_conn_accept ,mem_conn_sm 
+636c 580001ff setarg 0x1ff 
+636d 600104d2 store 2 ,mem_soft_timer 
+636e 20600000 rtn 
+
+host_create_conn_send_conn_req:
+636f 70005505 jam conn_sm_wait_conn_accept ,mem_conn_sm 
+6370 7004d2ff jam 0xff ,mem_soft_timer 
+6371 793f8022 set0 mark_reconn_recieve_switch ,mark 
+6372 70007c33 jam lmp_host_connection_req ,mem_lmo_opcode2 
+6373 20205d04 branch init_lmp_reinit 
+
+host_create_conn_wait_accept:
+6374 c6110000 rtnmark1 mark_reconn_recieve_switch 
+6375 680104d2 fetch 2 ,mem_soft_timer 
+6376 1fe67e01 sub pdata ,1 ,pdata 
+6377 2022e37a branch host_create_conn_resend ,zero 
+6378 600104d2 store 2 ,mem_soft_timer 
+6379 20600000 rtn 
+
+host_create_conn_resend:
+637a 7000550e jam conn_sm_send_switch ,mem_conn_sm 
+637b 20600000 rtn 
+
+host_create_conn_waiting:
+637c 20600000 rtn 
+
+host_create_conn_switch:
+637d 680084d1 fetch 1 ,mem_lmp_conn_state 
+637e c4018000 rtnbit0 sent_setup_complete 
+637f c4010000 rtnbit0 received_setup_complete 
+6380 6800816d fetch 1 ,mem_connection_options 
+6381 793ffe02 set0 connection_switch ,pdata 
+6382 6000816d store 1 ,mem_connection_options 
+6383 70007c13 jam lmp_switch_req ,mem_lmo_opcode2 
+6384 70005510 jam conn_sm_wait_switch_after_host_connection ,mem_conn_sm 
+6385 20600000 rtn 
+
+host_create_conn_send_setup_complete:
+6386 7000550d jam conn_sm_wait_setup_complete ,mem_conn_sm 
+6387 70007c31 jam lmp_setup_complete ,mem_lmo_opcode2 
+6388 20600000 rtn 
+
+host_create_conn_wait_setup_complete:
+6389 680084d1 fetch 1 ,mem_lmp_conn_state 
+638a c4010000 rtnbit0 received_setup_complete 
+638b 70005500 jam conn_sm_standby ,mem_conn_sm 
+638c 20600000 rtn 
+
+host_create_conn_wait_setup_complete_rtn:
+638d 70005506 jam conn_sm_auth_pair ,mem_conn_sm 
+638e 20600000 rtn 
+
+host_create_conn_master_detach:
+638f 680084d2 fetch 1 ,mem_soft_timer 
+6390 1fe0ffff increase -1 ,pdata 
+6391 203a6394 branch host_create_conn_send_detach ,blank 
+6392 600084d2 store 1 ,mem_soft_timer 
+6393 20600000 rtn 
+
+host_create_conn_send_detach:
+6394 70007c07 jam lmp_detach ,mem_lmo_opcode2 
+6395 7004ca16 jam local_host ,mem_disconn_reason_send 
+6396 70005500 jam 0 ,mem_conn_sm 
+6397 20600000 rtn 
+
+host_create_conn_auth_pair:
+6398 6800816d fetch 1 ,mem_connection_options 
+6399 c281637d bbit1 connection_switch ,host_create_conn_switch 
+639a c280639d bbit1 connection_auth ,host_create_conn_auth_pair_true 
+
+host_create_conn_sm_done:
+639b 7000551a jam conn_sm_done ,mem_conn_sm 
+639c 20600000 rtn 
+
+host_create_conn_auth_pair_true:
+639d 6800c1bd fetch 1 ,mem_link_key_exists 
+639e 203a63a9 branch host_create_conn_auth_pair_nokey ,blank 
+639f 680084d1 fetch 1 ,mem_lmp_conn_state 
+63a0 c4018000 rtnbit0 sent_setup_complete 
+63a1 c4010000 rtnbit0 received_setup_complete 
+63a2 680204e9 fetch 4 ,mem_aurand_send_delay_time 
+63a3 d8400064 arg 100 ,temp 
+63a4 98408400 iadd temp ,temp 
+63a5 1c427e00 copy clkn_bt ,pdata 
+63a6 98467c00 isub temp ,null 
+63a7 24610000 nrtn positive 
+63a8 20206349 branch host_create_conn_auth 
+
+host_create_conn_auth_pair_nokey:
+63a9 70005516 jam conn_sm_pairing ,mem_conn_sm 
+63aa 70468904 jam 4 ,mem_pin_length 
+63ab 58003030 setarg 0x3030 
+63ac 6001468a store 2 ,mem_pin 
+63ad e0a10000 istore 2 ,contw 
+63ae 7004d402 jam pincode_state_pincode_ready ,mem_pincode_state 
+63af 20206350 branch host_create_conn_pairing 
+
+host_create_conn_auth_pair_wait:
+63b0 20600000 rtn 
+
+host_create_conn_encrypt:
+63b1 6800816d fetch 1 ,mem_connection_options 
+63b2 c280e3b5 bbit1 connection_encrypt ,host_create_conn_encrypt_start 
+63b3 7000551a jam conn_sm_done ,mem_conn_sm 
+63b4 20600000 rtn 
+
+host_create_conn_encrypt_start:
+63b5 6800816d fetch 1 ,mem_connection_options 
+63b6 793ffe01 set0 connection_encrypt ,pdata 
+63b7 6000816d store 1 ,mem_connection_options 
+63b8 70007c0f jam lmp_encryption_mode_req ,mem_lmo_opcode2 
+63b9 20600000 rtn 
+
+host_create_conn_encrypt_wait:
+63ba 680084d8 fetch 1 ,mem_wait_encryption 
+63bb 207a0000 rtn blank 
+63bc 70005500 jam conn_sm_standby ,mem_conn_sm 
+63bd 202063b5 branch host_create_conn_encrypt_start 
+
+host_create_conn_encrypt_wait_clear:
+63be 7000550c jam conn_sm_send_setup_complete ,mem_conn_sm 
+63bf 20600000 rtn 
+
+host_auth:
+63c0 6800804b fetch 1 ,mem_op 
+63c1 c28163c5 bbit1 op_inrand_req ,remote_auth 
+63c2 204062ef call tid_initiate 
+63c3 70007c08 jam lmp_in_rand ,mem_lmo_opcode2 
+63c4 20204d04 branch cmd_exit 
+
+remote_auth:
+63c5 6800804b fetch 1 ,mem_op 
+63c6 793ffe02 set0 op_inrand_req ,pdata 
+63c7 6000804b store 1 ,mem_op 
+63c8 20406001 call lmp_accept_inrand 
+63c9 204062f8 call tid_set_reply 
+63ca 20204d04 branch cmd_exit 
+
+pincode_reinit:
+63cb 58000004 setarg 4 
+63cc 6000c689 store 1 ,mem_pin_length 
+63cd 58003030 setarg 0x3030 
+63ce e0a10000 istore 2 ,contw 
+63cf e0a10000 istore 2 ,contw 
+63d0 20600000 rtn 
+
+twspi_reset:
+63d1 47464031 bpatchx patch31_4 ,mem_patch31 
+63d2 68108073 hfetch 1 ,core_gpio_oe3 
+63d3 d8400006 arg 0x06 ,temp 
+63d4 9841fe00 ior temp ,pdata 
+63d5 60108073 hstore 1 ,core_gpio_oe3 
+63d6 68108077 hfetch 1 ,core_gpio_out3 
+63d7 9841fe00 ior temp ,pdata 
+63d8 60108077 hstore 1 ,core_gpio_out3 
+63d9 204063ee call twspi_disable 
+63da 68108077 hfetch 1 ,core_gpio_out3 
+63db 793ffe01 set0 1 ,pdata 
+63dc 793ffe02 set0 2 ,pdata 
+63dd 60108077 hstore 1 ,core_gpio_out3 
+63de 2000001e nop 30 
+63df 202063f2 branch twspi_enable 
+
+twspi_reset2:
+63e0 68108073 hfetch 1 ,core_gpio_oe3 
+63e1 d84000c0 arg 0xc0 ,temp 
+63e2 9841fe00 ior temp ,pdata 
+63e3 60108073 hstore 1 ,core_gpio_oe3 
+63e4 68108077 hfetch 1 ,core_gpio_out3 
+63e5 9841fe00 ior temp ,pdata 
+63e6 60108077 hstore 1 ,core_gpio_out3 
+63e7 204063ee call twspi_disable 
+63e8 68108077 hfetch 1 ,core_gpio_out3 
+63e9 793ffe06 set0 6 ,pdata 
+63ea 793ffe07 set0 7 ,pdata 
+63eb 60108077 hstore 1 ,core_gpio_out3 
+63ec 2000001e nop 30 
+63ed 202063f6 branch twspi_enable2 
+
+twspi_disable:
+63ee 68108081 hfetch 1 ,core_gpio_sel1 
+63ef 1fe17efc and pdata ,0xfc ,pdata 
+63f0 60108081 hstore 1 ,core_gpio_sel1 
+63f1 20600000 rtn 
+
+twspi_enable:
+63f2 68108081 hfetch 1 ,core_gpio_sel1 
+63f3 1fe1fe01 or pdata ,0x01 ,pdata 
+63f4 60108081 hstore 1 ,core_gpio_sel1 
+63f5 20600000 rtn 
+
+twspi_enable2:
+63f6 68108081 hfetch 1 ,core_gpio_sel1 
+63f7 1fe1fe03 or pdata ,0x03 ,pdata 
+63f8 793ffe04 set0 4 ,pdata 
+63f9 60108081 hstore 1 ,core_gpio_sel1 
+63fa 20600000 rtn 
+
+sensor_read:
+63fb 1fe22400 copy pdata ,regb 
+63fc 2040640f call spi_ncs_enable 
+63fd 20000064 nop 100 
+63fe 1a427e00 copy regb ,pdata 
+63ff 20406414 call twspi_read 
+6400 1fe22400 copy pdata ,regb 
+6401 20406411 call spi_ncs_disable 
+6402 20000064 nop 100 
+6403 1a427e00 copy regb ,pdata 
+6404 20600000 rtn 
+
+sensor_write:
+6405 1fe22400 copy pdata ,regb 
+6406 2040640f call spi_ncs_enable 
+6407 20000064 nop 100 
+6408 1a427e00 copy regb ,pdata 
+6409 20406413 call twspi_write 
+640a 20406411 call spi_ncs_disable 
+640b 20000064 nop 100 
+640c 20600000 rtn 
+
+spi_ncs_gpio_init:
+640d 6808c214 fetcht 1 ,mem_spi_ncs_gpio 
+640e 2020680e branch gpio_config_output 
+
+spi_ncs_enable:
+640f 6808c214 fetcht 1 ,mem_spi_ncs_gpio 
+6410 20206829 branch gpio_out_active 
+
+spi_ncs_disable:
+6411 6808c214 fetcht 1 ,mem_spi_ncs_gpio 
+6412 20206825 branch gpio_out_inactive 
+
+twspi_write:
+6413 202064ec branch spid_write_reg 
+
+twspi_read:
+6414 202064f3 branch spid_read_reg 
+
+read_function_aes:
+6415 24346419 nbranch read_function ,user 
+6416 68108085 hfetch 1 ,core_gpio_key2 
+6417 1fe1fe02 or_into 0x2 ,pdata 
+6418 60108085 hstore 1 ,core_gpio_key2 
+
+read_function:
+6419 18427c00 copy temp ,null 
+641a 2022e41c branch read_fuction_zero ,zero 
+641b 1a627a00 copy regc ,pc 
+
+read_fuction_zero:
+641c 2fcc0000 isolate0 0 ,null 
+641d 202064b9 branch set_ucode_status 
+
+get_block_header:
+641e 18000404 force 4 ,temp 
+
+get_block_header0:
+641f da2001fe arg mem_ucode_buf ,rega 
+6420 68108085 hfetch 1 ,core_gpio_key2 
+6421 1fe17efd and_into 0xfd ,pdata 
+6422 60108085 hstore 1 ,core_gpio_key2 
+6423 20406419 call read_function 
+6424 da2055aa arg 0x55aa ,rega 
+6425 680101fe fetch 2 ,mem_ucode_buf 
+6426 e8c90000 ifetcht 2 ,contr 
+6427 9a267c00 isub rega ,null 
+6428 20600000 rtn 
+
+read_first_block:
+6429 d8400002 arg 2 ,temp 
+642a da200204 arg mem_ucode_ptr ,rega 
+642b 20406419 call read_function 
+642c 68010204 fetch 2 ,mem_ucode_ptr 
+642d 600101f7 store 2 ,mem_addr_mi 
+642e 20546430 call get_iv ,user 
+642f 20600000 rtn 
+
+get_iv:
+6430 d8400010 arg 16 ,temp 
+6431 da200206 arg mem_ucode_keybuf ,rega 
+6432 68108085 hfetch 1 ,core_gpio_key2 
+6433 1fe17efd and_into 0xfd ,pdata 
+6434 60108085 hstore 1 ,core_gpio_key2 
+6435 20406419 call read_function 
+6436 d8c00206 arg mem_ucode_keybuf ,contr 
+6437 df200010 arg 16 ,loopcnt 
+6438 20407478 call aes_load_data 
+6439 20407428 call aes_init 
+643a 20407491 call aes_clear_data 
+643b 20207422 branch do_aes_cbc 
+
+load_storage:
+643c 7856fc00 disable match 
+643d 2040641e call get_block_header 
+643e 24628000 nrtn zero 
+643f 7836fc00 enable match 
+6440 70802380 jam 0x80 ,core_ucode_ctrl 
+6441 70802200 jam 0 ,core_ucode_hi 
+6442 70802400 jam 0 ,core_ucode_low 
+6443 da208025 arg core_ucode_data ,rega 
+6444 20406415 call read_function_aes 
+6445 70802300 jam 0x0 ,core_ucode_ctrl 
+
+load_storage_loop:
+6446 d8400006 arg 6 ,temp 
+6447 2040641f call get_block_header0 
+6448 24628000 nrtn zero 
+6449 e8c10000 ifetch 2 ,contr 
+644a 98002200 iforce rega 
+644b 20406419 call read_function 
+644c 20206446 branch load_storage_loop 
+
+reload_eeprom:
+644d 20407f99 call clean_mem 
+644e 58001000 setarg 0x1000 
+644f 600101f7 store 2 ,mem_addr_mi 
+6450 da6065e5 arg iicd_read_eep ,regc 
+6451 df200002 arg 2 ,loopcnt 
+
+reload_eeprom_loop:
+6452 2040641e call get_block_header 
+6453 24628000 nrtn zero 
+6454 680101f7 fetch 2 ,mem_addr_mi 
+6455 1ff0fe00 byteswap pdata ,pdata 
+6456 9840fe00 iadd temp ,pdata 
+6457 1ff0fe00 byteswap pdata ,pdata 
+6458 600101f7 store 2 ,mem_addr_mi 
+6459 c2006452 loop reload_eeprom_loop 
+645a 20206446 branch load_storage_loop 
+
+loadcode:
+645b 20407f99 call clean_mem 
+645c 78547c00 disable user 
+645d 2040666a call otp_enable_chgpump 
+645e 58000000 setarg otp_ucode_flag 
+645f da2001f3 arg mem_otp_ucode_flag ,rega 
+6460 d8400002 arg 2 ,temp 
+6461 204066b3 call otpd_read_data 
+6462 680101f3 fetch 2 ,mem_otp_ucode_flag 
+6463 c303e46e bbit0 otp_uflag_aes ,loadcode_otp 
+6464 70805025 jam 0x25 ,core_clkoff 
+6465 580007f0 setarg otp_ucode_aeskey 
+6466 da200206 arg mem_ucode_keybuf ,rega 
+6467 d8400010 arg 16 ,temp 
+6468 204066b3 call otpd_read_data 
+6469 70800608 jam lock_otp ,core_misc_ctrl 
+646a 7920002b set1 mark_otp_encrypt ,mark 
+646b d8c00206 arg mem_ucode_keybuf ,contr 
+646c 20407484 call load_key 
+646d 78347c00 enable user 
+
+loadcode_otp:
+646e 7041da00 jam 0 ,mem_loadcode_times 
+
+loadcode_otp_2:
+646f 204064b0 call loadcode_check_times 
+6470 680101f3 fetch 2 ,mem_otp_ucode_flag 
+6471 1ff0fe00 byteswap pdata ,pdata 
+6472 d84007ff arg 0x7ff ,temp 
+6473 98417e00 iand temp ,pdata 
+6474 2022e47b branch loadcode_iic ,zero 
+6475 2040666f call otp_set_addr 
+6476 da6066b8 arg otpd_read_code ,regc 
+6477 20546430 call get_iv ,user 
+6478 2040643c call load_storage 
+6479 680081f2 fetch 1 ,mem_ucode_status 
+647a c300646f bbit0 0 ,loadcode_otp_2 
+
+loadcode_iic:
+647b 2040666d call otp_disable_chgpump 
+647c 7041da00 jam 0 ,mem_loadcode_times 
+
+loadcode_iic_2:
+647d 204064b0 call loadcode_check_times 
+647e 204065c2 call clear_eeprom_size_2k 
+647f 680081f3 fetch 1 ,mem_otp_ucode_flag 
+6480 c283648e bbit1 otp_uflag_skip_eep ,loadcode_spi 
+6481 204064aa call loadcode_iic_by_eeprom 
+6482 2436e486 nbranch loadcode_iic_eeprom_2k ,match 
+6483 680081f2 fetch 1 ,mem_ucode_status 
+6484 c300647d bbit0 0 ,loadcode_iic_2 
+6485 2020649b branch loadcode_hci 
+
+loadcode_iic_eeprom_2k:
+6486 204065bf call set_eeprom_size_2k 
+6487 680081f3 fetch 1 ,mem_otp_ucode_flag 
+6488 c283648e bbit1 otp_uflag_skip_eep ,loadcode_spi 
+6489 204064aa call loadcode_iic_by_eeprom 
+648a 2436e48e nbranch loadcode_spi ,match 
+648b 680081f2 fetch 1 ,mem_ucode_status 
+648c c300647d bbit0 0 ,loadcode_iic_2 
+648d 2020649b branch loadcode_hci 
+
+loadcode_spi:
+648e 7041da00 jam 0 ,mem_loadcode_times 
+
+loadcode_spi_2:
+648f 204064b0 call loadcode_check_times 
+6490 680081f3 fetch 1 ,mem_otp_ucode_flag 
+6491 c282e49b bbit1 otp_uflag_skip_flash ,loadcode_hci 
+6492 58000000 setarg 0x0 
+6493 600181f6 store 3 ,mem_addr_hi 
+6494 20406502 call spid_init_flash 
+6495 da606578 arg spid_load_flash ,regc 
+6496 20406429 call read_first_block 
+6497 2040643c call load_storage 
+6498 2436e49b nbranch loadcode_hci ,match 
+6499 680081f2 fetch 1 ,mem_ucode_status 
+649a c300648f bbit0 0 ,loadcode_spi_2 
+
+loadcode_hci:
+649b c515e49d bmark1 mark_otp_encrypt ,loadcode_hci_enc 
+649c 204064a3 call clear_key_buf 
+
+loadcode_hci_enc:
+649d 680081f3 fetch 1 ,mem_otp_ucode_flag 
+649e c30264a3 bbit0 otp_uflag_hci ,clear_key_buf 
+649f 70805021 jam 0x21 ,core_clkoff 
+64a0 20404c0e call hci_init 
+
+loadcode_hci_loop:
+64a1 20404c2e call hci_rx_packet 
+64a2 202064a1 branch loadcode_hci_loop 
+
+clear_key_buf:
+64a3 58000000 setarg 0 
+64a4 60040206 store 8 ,mem_ucode_keybuf 
+64a5 6004020e store 8 ,mem_ucode_keybuf + 8 
+64a6 18007004 force regidx_key ,regext_index 
+64a7 20407492 call aes_clear 
+64a8 70805021 jam 0x21 ,core_clkoff 
+64a9 20600000 rtn 
+
+loadcode_iic_by_eeprom:
+64aa 58000000 setarg 0x0 
+64ab 600101f7 store 2 ,mem_addr_mi 
+64ac da6065e5 arg iicd_read_eep ,regc 
+64ad 204065a3 call iicd_init_12m 
+64ae 20406429 call read_first_block 
+64af 2020643c branch load_storage 
+
+loadcode_check_times:
+64b0 6800c1da fetch 1 ,mem_loadcode_times 
+64b1 1fe0fe01 increase 1 ,pdata 
+64b2 1fe67c03 sub pdata ,3 ,null 
+64b3 242164b6 nbranch loadcode_error ,positive 
+64b4 6000c1da store 1 ,mem_loadcode_times 
+64b5 20600000 rtn 
+
+loadcode_error:
+64b6 204064a3 call clear_key_buf 
+64b7 20407fa1 call ice_break 
+64b8 20600000 rtn 
+
+set_ucode_status:
+64b9 680081f2 fetch 1 ,mem_ucode_status 
+64ba 1fe3fe00 lshift pdata ,pdata 
+64bb 7920fe00 setflag true ,0 ,pdata 
+64bc 2a2c000f isolate0 15 ,rega 
+64bd 20608000 rtn true 
+64be 600081f2 store 1 ,mem_ucode_status 
+64bf 20600000 rtn 
+
+decrypt_code:
+64c0 68108085 hfetch 1 ,core_gpio_key2 
+64c1 c4008000 rtnbit0 1 
+64c2 202064c6 branch decrypt_code_skip 
+
+decrypt_code_loop:
+64c3 6810812c hfetch 1 ,core_dma_status 
+64c4 afefffff qisolate1 pdata 
+64c5 20608000 rtn true 
+
+decrypt_code_skip:
+64c6 68108108 hfetch 1 ,core_misc_status 
+64c7 c300e4c3 bbit0 1 ,decrypt_code_loop 
+64c8 20407422 call do_aes_cbc 
+64c9 202064c3 branch decrypt_code_loop 
+
+load_ucode:
+64ca 68014199 fetch 2 ,mem_patch_ptr 
+64cb 207a0000 rtn blank 
+64cc 70802380 jam 0x80 ,core_ucode_ctrl 
+64cd 70802200 jam 0 ,core_ucode_hi 
+64ce 70802400 jam 0 ,core_ucode_low 
+64cf 6809419b fetcht 2 ,mem_patch_len 
+64d0 184bf200 lshift2 temp ,loopcnt 
+64d1 98000c00 iforce contr 
+
+load_ucode_loop:
+64d2 e8c08000 ifetch 1 ,contr 
+64d3 60108025 hstore 1 ,core_ucode_data 
+64d4 c20064d2 loop load_ucode_loop 
+64d5 70802300 jam 0x0 ,core_ucode_ctrl 
+64d6 20600000 rtn 
+
+spid_init:
+64d7 4746c031 bpatchx patch31_5 ,mem_patch31 
+64d8 204064dd call spid_init_common 
+64d9 202063f2 branch twspi_enable 
+
+spid_init2:
+64da 204064dd call spid_init_common 
+64db 204063ee call twspi_disable 
+64dc 202063f6 branch twspi_enable2 
+
+spid_init_common:
+64dd 6800c212 fetch 1 ,mem_spi_init_clk 
+64de 60108086 hstore 1 ,core_spid_ctrl 
+64df 6800c213 fetch 1 ,mem_spi_init_delay_time 
+64e0 60108087 hstore 1 ,core_spid_delay 
+64e1 580001f5 setarg mem_spid_tbuf 
+64e2 6011008a hstore 2 ,core_spid_txaddr 
+64e3 580001fa setarg mem_spid_rbuf 
+64e4 6011008c hstore 2 ,core_spid_rxaddr 
+64e5 202063ee branch twspi_disable 
+
+spid_reset:
+64e6 68108086 hfetch 1 ,core_spid_ctrl 
+64e7 79207e07 set1 7 ,pdata 
+64e8 60108086 hstore 1 ,core_spid_ctrl 
+64e9 793ffe07 set0 7 ,pdata 
+64ea 60108086 hstore 1 ,core_spid_ctrl 
+64eb 20600000 rtn 
+
+spid_write_reg:
+64ec 79207e07 set1 7 ,pdata 
+64ed 600101f5 store 2 ,mem_spid_tbuf 
+64ee 47474031 bpatchx patch31_6 ,mem_patch31 
+64ef 70808802 jam 2 ,core_spid_txlen 
+64f0 70808e00 jam 0 ,core_spid_rxlen 
+64f1 70800602 jam spid_start ,core_misc_ctrl 
+64f2 202064fc branch wait_spid_done 
+
+spid_read_reg:
+64f3 18000401 force 1 ,temp 
+
+spid_read_regs:
+64f4 600081f5 store 1 ,mem_spid_tbuf 
+64f5 4747c031 bpatchx patch31_7 ,mem_patch31 
+64f6 70808801 jam 1 ,core_spid_txlen 
+64f7 6019008e hstoret 2 ,core_spid_rxlen 
+64f8 70800602 jam spid_start ,core_misc_ctrl 
+64f9 204064fc call wait_spid_done 
+64fa 680081fa fetch 1 ,mem_spid_rbuf 
+64fb 20600000 rtn 
+
+wait_spid_done:
+64fc 680140d6 fetch 2 ,mem_afh_error_total 
+64fd 1fe0fe01 increase 1 ,pdata 
+64fe 600140d6 store 2 ,mem_afh_error_total 
+64ff 6810812c hfetch 1 ,core_dma_status 
+6500 c301e4fc bbit0 spid_done ,wait_spid_done 
+6501 20600000 rtn 
+
+spid_init_flash:
+6502 70808640 jam 0x40 ,core_spid_ctrl 
+6503 70808700 jam 0x0 ,core_spid_delay 
+6504 68108081 hfetch 1 ,core_gpio_sel1 
+6505 793ffe00 set0 0 ,pdata 
+6506 79207e01 set1 1 ,pdata 
+6507 60108081 hstore 1 ,core_gpio_sel1 
+6508 58000000 setarg 0 
+6509 600201f5 store 4 ,mem_spid_tbuf 
+650a 20600000 rtn 
+
+spid_unlock_flash:
+650b 58000000 setarg 0 
+650c 6011008e hstore 2 ,core_spid_rxlen 
+650d 58000001 setarg 1 
+650e 60110088 hstore 2 ,core_spid_txlen 
+650f 580001f5 setarg mem_spid_tbuf 
+6510 6011008a hstore 2 ,core_spid_txaddr 
+6511 7001f506 jam 6 ,mem_spid_tbuf 
+6512 70800602 jam spid_start ,core_misc_ctrl 
+6513 202064fc branch wait_spid_done 
+
+flash_write:
+6514 78547c00 disable user 
+6515 1fe22400 copy pdata ,regb 
+6516 6800c239 fetch 1 ,mem_spi_write_flash_sm 
+6517 c1800000 rtnne flash_sm_no_buys 
+6518 78347c00 enable user 
+6519 1a427e00 copy regb ,pdata 
+651a 20206522 branch flash_write_start 
+
+flash_write_spi_sm_timer:
+651b 6800c239 fetch 1 ,mem_spi_write_flash_sm 
+651c c000e522 beq flash_sm_start ,flash_write_start 
+651d c0016528 beq flash_sm_erase_sector ,flash_erase_sector 
+651e c001e530 beq flash_sm_wait_erase_sector ,flash_wait_erase_sector 
+651f c0026537 beq flash_sm_write_data ,flash_write_data 
+6520 c002e53d beq flash_sm_wait_write_data ,flash_wait_write_data 
+6521 20600000 rtn 
+
+flash_write_start:
+6522 6001c232 store 3 ,mem_spi_write_addr 
+6523 1a227e00 copy rega ,pdata 
+6524 60014235 store 2 ,mem_spi_write_ptr 
+6525 60094237 storet 2 ,mem_spi_write_len 
+6526 70423902 jam flash_sm_erase_sector ,mem_spi_write_flash_sm 
+6527 20206502 branch spid_init_flash 
+
+flash_erase_sector:
+6528 20406502 call spid_init_flash 
+6529 70423903 jam flash_sm_wait_erase_sector ,mem_spi_write_flash_sm 
+652a 2040650b call spid_unlock_flash 
+652b da2001f5 arg mem_spid_tbuf ,rega 
+652c 6801c232 fetch 3 ,mem_spi_write_addr 
+652d 70808804 jam 4 ,core_spid_txlen 
+652e d8400020 arg flash_command_sector_erase ,temp 
+652f 20206556 branch spid_write_flash_common 
+
+flash_wait_erase_sector:
+6530 20406502 call spid_init_flash 
+6531 2040650b call spid_unlock_flash 
+6532 58000005 setarg flash_read_satus 
+6533 204064f3 call spid_read_reg 
+6534 c3800000 rtnbit1 flash_status_wip 
+6535 70423904 jam flash_sm_write_data ,mem_spi_write_flash_sm 
+6536 20600000 rtn 
+
+flash_write_data:
+6537 20406502 call spid_init_flash 
+6538 70423905 jam flash_sm_wait_write_data ,mem_spi_write_flash_sm 
+6539 2040650b call spid_unlock_flash 
+653a 2040654a call flash_data_preserve 
+653b 20406552 call spid_write_flash 
+653c 20206545 branch flash_data_recover 
+
+flash_wait_write_data:
+653d 20406502 call spid_init_flash 
+653e 2040650b call spid_unlock_flash 
+653f 58000005 setarg flash_read_satus 
+6540 204064f3 call spid_read_reg 
+6541 c3800000 rtnbit1 flash_status_wip 
+6542 70423900 jam flash_sm_no_buys ,mem_spi_write_flash_sm 
+6543 68014201 fetch 2 ,mem_cb_spi_flash_write_complate 
+6544 20207f9c branch callback_func 
+
+flash_data_recover:
+6545 68020aa2 fetch 4 ,mem_temp 
+6546 68094235 fetcht 2 ,mem_spi_write_ptr 
+6547 184085fc increase -4 ,temp 
+6548 e0420000 istore 4 ,temp 
+6549 20600000 rtn 
+
+flash_data_preserve:
+654a 68094235 fetcht 2 ,mem_spi_write_ptr 
+654b 18422200 copy temp ,rega 
+654c 184085fc increase -4 ,temp 
+654d e8420000 ifetch 4 ,temp 
+654e 60020aa2 store 4 ,mem_temp 
+654f 68094237 fetcht 2 ,mem_spi_write_len 
+6550 6801c232 fetch 3 ,mem_spi_write_addr 
+6551 20600000 rtn 
+
+spid_write_flash:
+6552 18408404 increase 4 ,temp 
+6553 60190088 hstoret 2 ,core_spid_txlen 
+6554 d8400002 arg flash_command_write_data ,temp 
+6555 1a20a3fc increase -4 ,rega 
+
+spid_write_flash_common:
+6556 e2288000 istoret 1 ,rega 
+6557 1ff10400 rshift16 pdata ,temp 
+6558 e0a88000 istoret 1 ,contw 
+6559 1fec8400 rshift8 pdata ,temp 
+655a e0a88000 istoret 1 ,contw 
+655b e0a08000 istore 1 ,contw 
+655c 1a227e00 deposit rega 
+655d 6011008a hstore 2 ,core_spid_txaddr 
+655e 58000000 setarg 0 
+655f 6011008e hstore 2 ,core_spid_rxlen 
+6560 70800602 jam spid_start ,core_misc_ctrl 
+6561 202064fc branch wait_spid_done 
+
+spid_read_flash:
+6562 6019008e hstoret 2 ,core_spid_rxlen 
+6563 1ff10400 rshift16 pdata ,temp 
+6564 600881f6 storet 1 ,mem_addr_hi 
+6565 1fec8400 rshift8 pdata ,temp 
+6566 600881f7 storet 1 ,mem_addr_mi 
+6567 600081f8 store 1 ,mem_addr_lo 
+6568 58000004 setarg 4 
+6569 60110088 hstore 2 ,core_spid_txlen 
+656a 7001f503 jam flash_command_read_data ,mem_spid_tbuf 
+656b 580001f5 setarg mem_spid_tbuf 
+656c 6011008a hstore 2 ,core_spid_txaddr 
+656d 1a227e00 deposit rega 
+656e 6011008c hstore 2 ,core_spid_rxaddr 
+656f 68108086 hfetch 1 ,core_spid_ctrl 
+6570 2a2c000f isolate0 15 ,rega 
+6571 7920fe06 setflag true ,6 ,pdata 
+6572 60108086 hstore 1 ,core_spid_ctrl 
+6573 70800602 jam spid_start ,core_misc_ctrl 
+
+spi_read_flash_wait:
+6574 6810812c hfetch 1 ,core_dma_status 
+6575 c283e574 bbit1 7 ,spi_read_flash_wait 
+6576 d8e00003 arg spid_done ,queue 
+6577 202064fc branch wait_spid_done 
+
+spid_load_flash:
+6578 6019008e hstoret 2 ,core_spid_rxlen 
+6579 58000004 setarg 4 
+657a 60110088 hstore 2 ,core_spid_txlen 
+657b 7001f503 jam 3 ,mem_spid_tbuf 
+657c 580001f5 setarg mem_spid_tbuf 
+657d 6011008a hstore 2 ,core_spid_txaddr 
+657e 1a227e00 deposit rega 
+657f 6011008c hstore 2 ,core_spid_rxaddr 
+6580 68108086 hfetch 1 ,core_spid_ctrl 
+6581 2a2c000f isolate0 15 ,rega 
+6582 7920fe06 setflag true ,6 ,pdata 
+6583 60108086 hstore 1 ,core_spid_ctrl 
+6584 70800602 jam spid_start ,core_misc_ctrl 
+
+spi_load_flash_wait:
+6585 6810812c hfetch 1 ,core_dma_status 
+6586 c283e585 bbit1 7 ,spi_load_flash_wait 
+6587 d8e00003 arg spid_done ,queue 
+6588 204064c0 call decrypt_code 
+6589 204064fc call wait_spid_done 
+658a 2feffe02 isolate1 spid_crcok ,pdata 
+658b 204064b9 call set_ucode_status 
+658c 680081f6 fetch 1 ,mem_addr_hi 
+658d 1ff02400 lshift16 pdata ,regb 
+658e 680081f7 fetch 1 ,mem_addr_mi 
+658f 1fed7e00 lshift8 pdata ,pdata 
+6590 9a41a400 ior regb ,regb 
+6591 680081f8 fetch 1 ,mem_addr_lo 
+6592 9a41fe00 ior regb ,pdata 
+6593 9840fe00 iadd temp ,pdata 
+6594 600081f8 store 1 ,mem_addr_lo 
+6595 1fecfe00 rshift8 pdata ,pdata 
+6596 600081f7 store 1 ,mem_addr_mi 
+6597 1fecfe00 rshift8 pdata ,pdata 
+6598 600081f6 store 1 ,mem_addr_hi 
+6599 20600000 rtn 
+
+soft_reset_chip:
+659a 70801001 jam 1 ,core_reset 
+659b 20600000 rtn 
+
+iic_init_390k:
+659c 7080910c jam 12 ,core_iicd_scl_low 
+659d 7080920d jam 13 ,core_iicd_scl_high 
+659e 7080930d jam 13 ,core_iicd_start_setup 
+659f 7080940d jam 13 ,core_iicd_start_hold 
+65a0 7080950d jam 13 ,core_iicd_stop_setup 
+65a1 7080960c jam 12 ,core_iicd_data_setup 
+65a2 202065a9 branch iicd_init_gpio 
+
+iicd_init_12m:
+65a3 70809105 jam 5 ,core_iicd_scl_low 
+65a4 70809207 jam 7 ,core_iicd_scl_high 
+65a5 70809307 jam 7 ,core_iicd_start_setup 
+65a6 70809407 jam 7 ,core_iicd_start_hold 
+65a7 70809507 jam 7 ,core_iicd_stop_setup 
+65a8 70809605 jam 5 ,core_iicd_data_setup 
+
+iicd_init_gpio:
+65a9 6810807b hfetch 1 ,core_gpio_pu3 
+65aa 1fe1fec0 or_into 0xc0 ,pdata 
+65ab 6010807b hstore 1 ,core_gpio_pu3 
+65ac 68108081 hfetch 1 ,core_gpio_sel1 
+65ad 1fe1fe10 or_into 0x10 ,pdata 
+65ae 60108081 hstore 1 ,core_gpio_sel1 
+65af 20600000 rtn 
+
+wait_iicd_done:
+65b0 6810812c hfetch 1 ,core_dma_status 
+65b1 c302e5b0 bbit0 iicd_done ,wait_iicd_done 
+65b2 20600000 rtn 
+
+iicd_read_data:
+65b3 60110098 hstore 2 ,core_iicd_txlen 
+65b4 1a227e00 deposit rega 
+65b5 6011009a hstore 2 ,core_iicd_txaddr 
+65b6 1a427e00 deposit regb 
+65b7 6011009c hstore 2 ,core_iicd_rxaddr 
+65b8 18427e00 deposit temp 
+65b9 6011009e hstore 2 ,core_iicd_rxlen 
+65ba d8400001 arg 1 ,temp 
+65bb 7d3a0401 nsetflag blank ,1 ,temp 
+65bc 60108090 hstore 1 ,core_iicd_ctrl 
+65bd 70800604 jam iicd_start ,core_misc_ctrl 
+65be 202065b0 branch wait_iicd_done 
+
+set_eeprom_size_2k:
+65bf 79200028 set1 mark_eeprom_size ,mark 
+65c0 70421108 jam 0x08 ,mem_eeprom_block_size 
+65c1 20600000 rtn 
+
+clear_eeprom_size_2k:
+65c2 793f8028 set0 mark_eeprom_size ,mark 
+65c3 70421120 jam 0x20 ,mem_eeprom_block_size 
+65c4 20600000 rtn 
+
+iicd_read_eep_data_size_2k:
+65c5 6800c203 fetch 1 ,mem_eeprom_base 
+65c6 9a40fe00 iadd regb ,pdata 
+65c7 600081f7 store 1 ,mem_addr_mi 
+65c8 202065cc branch iicd_read_eep_size_2k 
+
+iicd_read_eep_size_2k_lcadcode:
+65c9 680101f7 fetch 2 ,mem_addr_mi 
+65ca 1ff0fe00 byteswap pdata ,pdata 
+65cb 600081f7 store 1 ,mem_addr_mi 
+
+iicd_read_eep_size_2k:
+65cc 58000003 setarg 3 
+65cd 60110098 hstore 2 ,core_iicd_txlen 
+65ce 7001f6a0 jam 0xa0 ,mem_iicd_tbuf 
+65cf 7001f8a1 jam 0xa1 ,mem_iicd_tbuf + 2 
+65d0 202065eb branch iicd_read_eep_common 
+
+iicd_write_protect_eep_data:
+65d1 60090aa2 storet 2 ,mem_temp 
+65d2 204065d6 call iicd_eeprom_write_enable 
+65d3 68090aa2 fetcht 2 ,mem_temp 
+65d4 20406606 call iicd_write_eep_data 
+65d5 202065dd branch iicd_eeprom_write_disable 
+
+iicd_eeprom_write_enable:
+65d6 6800c23a fetch 1 ,mem_eeprom_wp_gpio 
+65d7 c17f8000 rtneq gpio_disable 
+65d8 c30365db bbit0 6 ,iicd_wp_gpio_output_low 
+65d9 580249f0 setarg 150000 
+65da 20402a8f call sleep 
+
+iicd_wp_gpio_output_low:
+65db 6808c23a fetcht 1 ,mem_eeprom_wp_gpio 
+65dc 20206829 branch gpio_out_active 
+
+iicd_eeprom_write_disable:
+65dd 6808c23a fetcht 1 ,mem_eeprom_wp_gpio 
+65de 20206825 branch gpio_out_inactive 
+
+iicd_read_eep_data:
+65df 47484032 bpatchx patch32_0 ,mem_patch32 
+65e0 c51465c5 bmark1 mark_eeprom_size ,iicd_read_eep_data_size_2k 
+65e1 68014203 fetch 2 ,mem_eeprom_base 
+65e2 9a40fe00 iadd regb ,pdata 
+65e3 1ff0fe00 byteswap pdata ,pdata 
+65e4 600101f7 store 2 ,mem_addr_mi 
+
+iicd_read_eep:
+65e5 4748c032 bpatchx patch32_1 ,mem_patch32 
+65e6 c51465c9 bmark1 mark_eeprom_size ,iicd_read_eep_size_2k_lcadcode 
+65e7 58000004 setarg 4 
+65e8 60110098 hstore 2 ,core_iicd_txlen 
+65e9 7001f6a0 jam 0xa0 ,mem_iicd_tbuf 
+65ea 7001f9a1 jam 0xa1 ,mem_iicd_tbuf + 3 
+
+iicd_read_eep_common:
+65eb 580001f6 setarg mem_iicd_tbuf 
+65ec 6011009a hstore 2 ,core_iicd_txaddr 
+65ed 6019009e hstoret 2 ,core_iicd_rxlen 
+65ee 1a227e00 deposit rega 
+65ef 6011009c hstore 2 ,core_iicd_rxaddr 
+65f0 58000002 setarg 2 
+65f1 2a2c000f isolate0 15 ,rega 
+65f2 7920fe00 setflag true ,0 ,pdata 
+65f3 60108090 hstore 1 ,core_iicd_ctrl 
+65f4 70800604 jam iicd_start ,core_misc_ctrl 
+65f5 d8e00005 arg iicd_done ,queue 
+65f6 204064c0 call decrypt_code 
+65f7 204065b0 call wait_iicd_done 
+65f8 2feffe04 isolate1 iicd_crcok ,pdata 
+65f9 204064b9 call set_ucode_status 
+65fa c5146601 bmark1 mark_eeprom_size ,iicd_read_eep_load_code_size_2k 
+65fb 680101f7 fetch 2 ,mem_addr_mi 
+65fc 1ff0fe00 byteswap pdata ,pdata 
+65fd 9840fe00 iadd temp ,pdata 
+65fe 1ff0fe00 byteswap pdata ,pdata 
+65ff 600101f7 store 2 ,mem_addr_mi 
+6600 20600000 rtn 
+
+iicd_read_eep_load_code_size_2k:
+6601 680081f7 fetch 1 ,mem_addr_mi 
+6602 9840fe00 iadd temp ,pdata 
+6603 1ff0fe00 byteswap pdata ,pdata 
+6604 600101f7 store 2 ,mem_addr_mi 
+6605 20600000 rtn 
+
+iicd_write_eep_data:
+6606 68014203 fetch 2 ,mem_eeprom_base 
+6607 9a40fe00 iadd regb ,pdata 
+
+iicd_write_ota_data:
+6608 60010a9a store 2 ,mem_pdatatemp 
+6609 47494032 bpatchx patch32_2 ,mem_patch32 
+660a 60090aa2 storet 2 ,mem_temp 
+660b 1a227e00 copy rega ,pdata 
+660c 60010ab9 store 2 ,mem_contr 
+
+iicd_write_eep_loop:
+660d 2040661d call iicd_eep_transparency 
+660e 68090ab2 fetcht 2 ,mem_regb 
+660f 68010ab9 fetch 2 ,mem_contr 
+6610 1fe22200 copy pdata ,rega 
+6611 68010a9a fetch 2 ,mem_pdatatemp 
+6612 2040663d call iicd_write_eep 
+6613 68010ab2 fetch 2 ,mem_regb 
+6614 68090ab9 fetcht 2 ,mem_contr 
+6615 98408400 iadd temp ,temp 
+6616 60090ab9 storet 2 ,mem_contr 
+6617 68090a9a fetcht 2 ,mem_pdatatemp 
+6618 98408400 iadd temp ,temp 
+6619 60090a9a storet 2 ,mem_pdatatemp 
+661a 68010aa2 fetch 2 ,mem_temp 
+661b 243a660d nbranch iicd_write_eep_loop ,blank 
+661c 20600000 rtn 
+
+iicd_eep_transparency:
+661d 4749c032 bpatchx patch32_3 ,mem_patch32 
+661e 6800c211 fetch 1 ,mem_eeprom_block_size 
+661f 1fe0ffff increase -1 ,pdata 
+6620 68090a9a fetcht 2 ,mem_pdatatemp 
+6621 9841fe00 ior temp ,pdata 
+6622 1fe0fe01 increase 1 ,pdata 
+6623 60018ab6 store 3 ,mem_regc 
+6624 68010aa2 fetch 2 ,mem_temp 
+6625 9840fe00 iadd temp ,pdata 
+6626 68098ab6 fetcht 3 ,mem_regc 
+6627 98467e00 isub temp ,pdata 
+6628 2421662f nbranch iicd_eep_deal_short_packet ,positive 
+6629 60010aa2 store 2 ,mem_temp 
+662a 68018ab6 fetch 3 ,mem_regc 
+662b 68090a9a fetcht 2 ,mem_pdatatemp 
+662c 98467e00 isub temp ,pdata 
+662d 60010ab2 store 2 ,mem_regb 
+662e 20600000 rtn 
+
+iicd_eep_deal_short_packet:
+662f 68010aa2 fetch 2 ,mem_temp 
+6630 60010ab2 store 2 ,mem_regb 
+6631 58000000 setarg 0 
+6632 60010aa2 store 2 ,mem_temp 
+6633 20600000 rtn 
+
+iicd_write_eep_size_2k:
+6634 18408402 increase 2 ,temp 
+6635 60190098 hstoret 2 ,core_iicd_txlen 
+6636 1a20a3fe increase -2 ,rega 
+6637 ea298000 ifetcht 3 ,rega 
+6638 18422400 copy temp ,regb 
+6639 d84000a0 arg 0xa0 ,temp 
+663a e2288000 istoret 1 ,rega 
+663b e0a08000 istore 1 ,contw 
+663c 2020664a branch iicd_write_eep_common 
+
+iicd_write_eep:
+663d 1fe22400 copy pdata ,regb 
+663e 474a4032 bpatchx patch32_4 ,mem_patch32 
+663f c5146634 bmark1 mark_eeprom_size ,iicd_write_eep_size_2k 
+6640 1a427e00 copy regb ,pdata 
+6641 18408403 increase 3 ,temp 
+6642 60190098 hstoret 2 ,core_iicd_txlen 
+6643 1a20a3fd increase -3 ,rega 
+6644 ea298000 ifetcht 3 ,rega 
+6645 18422400 copy temp ,regb 
+6646 d84000a0 arg 0xa0 ,temp 
+6647 e2288000 istoret 1 ,rega 
+6648 1ff0fe00 byteswap pdata ,pdata 
+6649 e0a10000 istore 2 ,contw 
+
+iicd_write_eep_common:
+664a 1a227e00 deposit rega 
+664b 6011009a hstore 2 ,core_iicd_txaddr 
+664c 58000000 setarg 0 
+664d 6011009e hstore 2 ,core_iicd_rxlen 
+664e 70809001 jam 1 ,core_iicd_ctrl 
+664f 70800604 jam iicd_start ,core_misc_ctrl 
+6650 204065b0 call wait_iicd_done 
+6651 1a427e00 copy regb ,pdata 
+6652 e2218000 istore 3 ,rega 
+
+iic_check_eeprom_standby:
+6653 474ac032 bpatchx patch32_5 ,mem_patch32 
+6654 7001f900 jam 0 ,mem_iicd_tbuf + 3 
+
+iic_check_eeprom_standby_wait:
+6655 58000001 setarg 1 
+6656 60110098 hstore 2 ,core_iicd_txlen 
+6657 7001f6a0 jam 0xa0 ,mem_iicd_tbuf 
+6658 580001f6 setarg mem_iicd_tbuf 
+6659 6011009a hstore 2 ,core_iicd_txaddr 
+665a 58000000 setarg 0 
+665b 6011009e hstore 2 ,core_iicd_rxlen 
+665c 6011009c hstore 2 ,core_iicd_rxaddr 
+665d 58000003 setarg 3 
+665e 60108090 hstore 1 ,core_iicd_ctrl 
+665f 70800604 jam iicd_start ,core_misc_ctrl 
+6660 204065b0 call wait_iicd_done 
+6661 6810812c hfetch 1 ,core_dma_status 
+6662 c4030000 rtnbit0 iicd_ack 
+6663 200005dc nop 1500 
+6664 680081f9 fetch 1 ,mem_iicd_tbuf + 3 
+6665 1fe0fe01 increase 1 ,pdata 
+6666 600081f9 store 1 ,mem_iicd_tbuf + 3 
+6667 1fe67c28 sub pdata ,40 ,null 
+6668 24610000 nrtn positive 
+6669 20206655 branch iic_check_eeprom_standby_wait 
+
+otp_enable_chgpump:
+666a 70897370 jam 0x70 ,rfen_chgpump 
+666b 20000bb8 nop param_chgpump_delay 
+666c 20600000 rtn 
+
+otp_disable_chgpump:
+666d 70897330 jam 0x30 ,rfen_chgpump 
+666e 20600000 rtn 
+
+otp_set_addr:
+666f 1fe9fe00 lshift3 pdata ,pdata 
+6670 60110045 hstore 2 ,core_otp_addr 
+6671 70804b00 jam 0 ,core_otpd_ctrl 
+6672 20600000 rtn 
+
+otp_write:
+6673 2040666f call otp_set_addr 
+6674 204066a0 call otp_ce 
+
+otp_program:
+6675 ea288000 ifetcht 1 ,rega 
+6676 1a20a201 increase 1 ,rega 
+6677 18000e00 force 0 ,queue 
+
+otp_program_bit:
+6678 a84c0000 qisolate0 temp 
+6679 2020e697 branch otp_skip_0 ,true 
+667a 68108046 hfetch 1 ,core_otp_din 
+667b 79207e06 set1 6 ,pdata 
+667c 79207e07 set1 7 ,pdata 
+667d 60108046 hstore 1 ,core_otp_din 
+667e 70804702 jam 0x02 ,core_otp_ctrl 
+667f 70804782 jam 0x82 ,core_otp_ctrl 
+6680 793ffe07 set0 7 ,pdata 
+6681 60108046 hstore 1 ,core_otp_din 
+6682 7080478a jam 0x8a ,core_otp_ctrl 
+6683 2000000b nop 11 
+6684 708047ca jam 0xca ,core_otp_ctrl 
+6685 20000021 nop 33 
+6686 7080474a jam 0x4a ,core_otp_ctrl 
+6687 2000002c nop 44 
+6688 708047ca jam 0xca ,core_otp_ctrl 
+6689 20000016 nop 22 
+668a 7080478a jam 0x8a ,core_otp_ctrl 
+668b 20000021 nop 33 
+668c 70804782 jam 0x82 ,core_otp_ctrl 
+668d 20000001 nop 1 
+668e 70804792 jam 0x92 ,core_otp_ctrl 
+668f 2000000a nop 10 
+6690 708047b2 jam 0xb2 ,core_otp_ctrl 
+6691 68108007 hfetch 1 ,core_otp_rdata 
+6692 70804792 jam 0x92 ,core_otp_ctrl 
+6693 20000001 nop 1 
+6694 70804782 jam 0x82 ,core_otp_ctrl 
+6695 afec0000 qisolate0 pdata 
+6696 2020e678 branch otp_program_bit ,true 
+
+otp_skip_0:
+6697 68110045 hfetch 2 ,core_otp_addr 
+6698 1fe0fe01 increase 1 ,pdata 
+6699 60110045 hstore 2 ,core_otp_addr 
+669a 18e08e01 increase 1 ,queue 
+669b 28e01e08 compare 8 ,queue ,0xf 
+669c 2420e678 nbranch otp_program_bit ,true 
+669d c2006675 loop otp_program 
+669e 70804783 jam 0x83 ,core_otp_ctrl 
+669f 20600000 rtn 
+
+otp_ce:
+66a0 70804782 jam 0x82 ,core_otp_ctrl 
+66a1 2000000c nop 12 
+66a2 70804780 jam 0x80 ,core_otp_ctrl 
+66a3 70804782 jam 0x82 ,core_otp_ctrl 
+66a4 20000096 nop 150 
+66a5 20600000 rtn 
+
+otpd_read_init:
+66a6 204066a0 call otp_ce 
+66a7 708047a2 jam 0xa2 ,core_otp_ctrl 
+66a8 1a227e00 deposit rega 
+66a9 60110048 hstore 2 ,core_otpd_addr 
+66aa 7920040b set1 11 ,temp 
+66ab 2fec000f isolate0 15 ,pdata 
+66ac 7920840f setflag true ,15 ,temp 
+66ad 6019004a hstoret 2 ,core_otpd_len 
+66ae 70800601 jam otpd_start ,core_misc_ctrl 
+66af 20600000 rtn 
+
+otpd_wait_end:
+66b0 6810812c hfetch 1 ,core_dma_status 
+66b1 c300e6b0 bbit0 otpd_done ,otpd_wait_end 
+66b2 20600000 rtn 
+
+otpd_read_data:
+66b3 2040666f call otp_set_addr 
+66b4 204066a6 call otpd_read_init 
+66b5 204066b0 call otpd_wait_end 
+66b6 70804783 jam 0x83 ,core_otp_ctrl 
+66b7 20600000 rtn 
+
+otpd_read_code:
+66b8 68110124 hfetch 2 ,core_current_otp_addr 
+66b9 60110045 hstore 2 ,core_otp_addr 
+66ba 204066a6 call otpd_read_init 
+66bb d8e00001 arg otpd_done ,queue 
+66bc 204064c0 call decrypt_code 
+66bd 204066b0 call otpd_wait_end 
+66be 2feffe00 isolate1 otpd_crcok ,pdata 
+66bf 204064b9 call set_ucode_status 
+66c0 70804783 jam 0x83 ,core_otp_ctrl 
+66c1 20600000 rtn 
+
+uartd_prepare_tx:
+66c2 6811005e hfetch 2 ,core_uart_twptr 
+66c3 98001400 iforce contwu 
+66c4 20600000 rtn 
+
+uartd_send:
+66c5 19427e00 deposit contwu 
+66c6 6011005e hstore 2 ,core_uart_twptr 
+66c7 20600000 rtn 
+
+uartd_rxdone:
+66c8 18627e00 deposit contru 
+66c9 60110058 hstore 2 ,core_uart_rrptr 
+66ca 20600000 rtn 
+
+uartd_prepare_rx:
+66cb 68110058 hfetch 2 ,core_uart_rrptr 
+66cc 1fe20600 copy pdata ,contru 
+66cd 20600000 rtn 
+
+uart_set_baud_by_mem:
+66ce 68014243 fetch uart_baud_len ,mem_baud 
+66cf 60110052 hstore uart_baud_len ,core_uart_baud 
+66d0 20600000 rtn 
+
+uart_copy_tx_bytes_fast:
+66d1 1f227e00 deposit loopcnt 
+66d2 207a0000 rtn blank 
+
+uart_copy_tx_bytes_fast_loop:
+66d3 1f20f3f8 increase -8 ,loopcnt 
+66d4 204166de call uart_tx_8_bytes ,positive 
+66d5 20628000 rtn zero 
+66d6 202166d3 branch uart_copy_tx_bytes_fast_loop ,positive 
+66d7 1f20f208 increase 8 ,loopcnt 
+
+uart_copy_tx_bytes_fast_loop_four:
+66d8 1f20f3fc increase -4 ,loopcnt 
+66d9 204166e1 call uart_tx_4_bytes ,positive 
+66da 20628000 rtn zero 
+66db 202166d8 branch uart_copy_tx_bytes_fast_loop_four ,positive 
+66dc 1f20f204 increase 4 ,loopcnt 
+66dd 202066e4 branch uart_copy_tx_bytes 
+
+uart_tx_8_bytes:
+66de e8c40000 ifetch 8 ,contr 
+66df e1440000 istore 8 ,contwu 
+66e0 20600000 rtn 
+
+uart_tx_4_bytes:
+66e1 e8c20000 ifetch 4 ,contr 
+66e2 e1420000 istore 4 ,contwu 
+66e3 20600000 rtn 
+
+uart_copy_tx_bytes:
+66e4 1f227e00 deposit loopcnt 
+66e5 207a0000 rtn blank 
+
+uart_copy_tx_bytes_loop:
+66e6 e8c08000 ifetch 1 ,contr 
+66e7 e1408000 istore 1 ,contwu 
+66e8 c20066e6 loop uart_copy_tx_bytes_loop 
+66e9 20600000 rtn 
+
+uart_copy_rx_bytes_fast:
+66ea 1f227e00 deposit loopcnt 
+66eb 207a0000 rtn blank 
+
+uart_copy_rx_bytes_fast_loop:
+66ec 1f20f3f8 increase -8 ,loopcnt 
+66ed 204166f7 call uart_rx_8_bytes ,positive 
+66ee 20628000 rtn zero 
+66ef 202166ec branch uart_copy_rx_bytes_fast_loop ,positive 
+66f0 1f20f208 increase 8 ,loopcnt 
+
+uart_copy_rx_bytes_fast_loop_four:
+66f1 1f20f3fc increase -4 ,loopcnt 
+66f2 204166fa call uart_rx_4_bytes ,positive 
+66f3 20628000 rtn zero 
+66f4 202166f1 branch uart_copy_rx_bytes_fast_loop_four ,positive 
+66f5 1f20f204 increase 4 ,loopcnt 
+66f6 202066fd branch uart_copy_rx_bytes 
+
+uart_rx_8_bytes:
+66f7 e8640000 ifetch 8 ,contru 
+66f8 e0a40000 istore 8 ,contw 
+66f9 20600000 rtn 
+
+uart_rx_4_bytes:
+66fa e8620000 ifetch 4 ,contru 
+66fb e0a20000 istore 4 ,contw 
+66fc 20600000 rtn 
+
+uart_copy_rx_bytes:
+66fd 1f227e00 deposit loopcnt 
+66fe 207a0000 rtn blank 
+
+uart_copy_rx_bytes_loop:
+66ff e8608000 ifetch 1 ,contru 
+6700 e0a08000 istore 1 ,contw 
+6701 c20066ff loop uart_copy_rx_bytes_loop 
+6702 20600000 rtn 
+
+uart_copy_rx2tx:
+6703 1f227e00 deposit loopcnt 
+6704 207a0000 rtn blank 
+
+uart_copy_rx2tx_loop:
+6705 e8608000 ifetch 1 ,contru 
+6706 e1408000 istore 1 ,contwu 
+6707 c2006705 loop uart_copy_rx2tx_loop 
+6708 20600000 rtn 
+
+app_store_nvram_event:
+6709 700a993d jam bt_evt_store_nvram ,mem_fifo_temp 
+670a 20207d86 branch ui_ipc_send_event 
+
+check_51cmd_store_reconn_info:
+
+check_51cmd_update_device_record:
+670b 474b4032 bpatchx patch32_6 ,mem_patch32 
+670c 6800c217 fetch 1 ,mem_nv_data_number 
+670d 207a0000 rtn blank 
+670e 204067a3 call check_nvram 
+670f 2042e7a9 call init_device_list ,zero 
+6710 2040673e call nvram_find_addr_from_bd_list 
+
+write_device_record:
+6711 6800c217 fetch 1 ,mem_nv_data_number 
+6712 1fe22600 icopy regc 
+6713 68094215 fetcht 2 ,mem_nv_data_ptr 
+6714 6009018c storet 2 ,mem_list_item_ptr 
+
+write_device_loop_find:
+6715 1a627e00 copy regc ,pdata 
+6716 203a6709 branch app_store_nvram_event ,blank 
+6717 1a60a7ff increase -1 ,regc 
+6718 18422200 copy temp ,rega 
+6719 ea208000 ifetch 1 ,rega 
+671a 68088184 fetcht 1 ,mem_select_list_item 
+671b 98467c00 isub temp ,null 
+671c 2042e725 call set_index_finded_device ,zero 
+671d 20216721 branch write_device_loop_find0 ,positive 
+671e ea208000 ifetch 1 ,rega 
+671f 1fe0fe01 increase 1 ,pdata 
+6720 e2208000 istore 1 ,rega 
+
+write_device_loop_find0:
+6721 6809018c fetcht 2 ,mem_list_item_ptr 
+6722 18408422 increase nv_data_len ,temp 
+6723 6009018c storet 2 ,mem_list_item_ptr 
+6724 20206715 branch write_device_loop_find 
+
+set_index_finded_device:
+6725 58000000 setarg 0 
+6726 e2208000 istore 1 ,rega 
+6727 68008185 fetch 1 ,mem_temp_reconn_record 
+6728 e0a08000 istore 1 ,contw 
+6729 c099e733 bne rec_3_mode ,set_index_finded_device_ble_mode 
+672a da4041be arg mem_link_key ,regb 
+
+set_index_find_device_master_addr:
+672b e8c30000 ifetch 6 ,contr 
+672c e0a40000 istore 8 ,contw 
+672d 58000000 setarg 0 
+672e e0a40000 istore 8 ,contw 
+672f 1a420c00 copy regb ,contr 
+
+store_rec_data_common:
+6730 20407ebf call memcpy16 
+6731 18007c01 force 1 ,null 
+6732 20600000 rtn 
+
+set_index_finded_device_ble_mode:
+6733 c01b6737 beq rec_4_mode_random_resolvable_private_address ,set_index_finded_device_irk 
+6734 c01be73b beq rec_4_mode_random_non_resolvable_private_address ,set_index_finded_device_ediv 
+6735 da404419 arg mem_le_ltk ,regb 
+6736 2020672b branch set_index_find_device_master_addr 
+
+set_index_finded_device_irk:
+6737 d8c044d5 arg mem_le_irk ,contr 
+6738 20407ebf call memcpy16 
+
+store_ble_rec_data_common:
+6739 d8c04419 arg mem_le_ltk ,contr 
+673a 20206730 branch store_rec_data_common 
+
+set_index_finded_device_ediv:
+673b d8c044cd arg mem_le_rand ,contr 
+673c 20407ebf call memcpy16 
+673d 20206739 branch store_ble_rec_data_common 
+
+nvram_find_addr_from_bd_list:
+673e 20407fe9 call disable_user 
+673f 6800c217 fetch 1 ,mem_nv_data_number 
+6740 207a0000 rtn blank 
+6741 68014682 fetch 2 ,mem_ui_state_map 
+6742 c2806754 bbit1 ui_state_bt_connected ,find_addr_from_bd_list_spp_mode 
+
+find_addr_from_bd_list_ble_mode:
+6743 474bc032 bpatchx patch32_7 ,mem_patch32 
+6744 6800c48e fetch 1 ,mem_le_conn_peer_addr_type 
+6745 c000674d beq master_public_addr ,find_addr_from_bd_list_static_addr 
+6746 68008454 fetch 1 ,mem_le_plap + 5 
+6747 2fe180c0 compare 0xc0 ,pdata ,0xc0 
+6748 2020e74d branch find_addr_from_bd_list_static_addr ,true 
+6749 2fe18040 compare 0x40 ,pdata ,0xc0 
+674a 2020e752 branch find_addr_from_bd_list_random_addr ,true 
+674b 2fe18000 compare 0x00 ,pdata ,0xc0 
+674c 2020e750 branch find_addr_from_bd_list_random_non_resolvable_private_address ,true 
+
+find_addr_from_bd_list_static_addr:
+674d 70018535 jam rec_4_mode_static_address ,mem_temp_reconn_record 
+674e 6803044f fetch 6 ,mem_le_plap 
+674f 20206757 branch find_addr_from_bd_list_common 
+
+find_addr_from_bd_list_random_non_resolvable_private_address:
+6750 70018537 jam rec_4_mode_random_non_resolvable_private_address ,mem_temp_reconn_record 
+6751 20206757 branch find_addr_from_bd_list_common 
+
+find_addr_from_bd_list_random_addr:
+6752 70018536 jam rec_4_mode_random_resolvable_private_address ,mem_temp_reconn_record 
+6753 20206757 branch find_addr_from_bd_list_common 
+
+find_addr_from_bd_list_spp_mode:
+6754 474c4033 bpatchx patch33_0 ,mem_patch33 
+6755 70018533 jam rec_3_mode ,mem_temp_reconn_record 
+6756 68030040 fetch 6 ,mem_plap 
+
+find_addr_from_bd_list_common:
+6757 60030186 store 6 ,mem_temp_reconn_record + 1 
+6758 68014215 fetch 2 ,mem_nv_data_ptr 
+6759 efe88000 ifetcht 1 ,pdata 
+675a 1fe0fe01 pincrease 1 
+675b 6001018c store 2 ,mem_list_item_ptr 
+675c 60088184 storet 1 ,mem_select_list_item 
+675d 6800c217 fetch 1 ,mem_nv_data_number 
+675e 1fe22600 icopy regc 
+
+nvram_find_addr_from_list:
+675f 6801018c fetch 2 ,mem_list_item_ptr 
+6760 1fe22200 copy pdata ,rega 
+6761 2040676f call nvram_find_addr_from_list_compare 
+6762 20740000 rtn user 
+6763 6809018c fetcht 2 ,mem_list_item_ptr 
+6764 18408422 increase nv_data_len ,temp 
+6765 6009018c storet 2 ,mem_list_item_ptr 
+6766 184085ff increase -1 ,temp 
+6767 e8408000 ifetch 1 ,temp 
+6768 60008184 store 1 ,mem_select_list_item 
+6769 1a60a7ff increase -1 ,regc 
+676a 2422e75f nbranch nvram_find_addr_from_list ,zero 
+676b 6800c217 fetch 1 ,mem_nv_data_number 
+676c 1fe0ffff pincrease decreased_one 
+676d 60008184 store 1 ,mem_select_list_item 
+676e 20600000 rtn 
+
+nvram_find_addr_from_list_compare:
+676f 68008185 fetch 1 ,mem_temp_reconn_record 
+6770 c099e776 bne rec_3_mode ,find_addr_from_list_compare_ble_mode 
+
+find_master_addr_from_list_compare:
+6771 da400185 arg mem_temp_reconn_record ,regb 
+6772 df200007 arg 7 ,loopcnt 
+6773 20407f88 call string_compare 
+6774 2022ffe7 branch enable_user ,zero 
+6775 20600000 rtn 
+
+find_addr_from_list_compare_ble_mode:
+6776 c01b6779 beq rec_4_mode_random_resolvable_private_address ,find_irk_form_list_compare 
+6777 c01be794 beq rec_4_mode_random_non_resolvable_private_address ,find_ediv_form_list_compare 
+6778 20206771 branch find_master_addr_from_list_compare 
+
+find_irk_form_list_compare:
+6779 ea288000 ifetcht 1 ,rega 
+677a 98467c00 isub temp ,null 
+677b 24628000 nrtn zero 
+677c d8a00ac2 arg mem_le_prand ,contw 
+677d df200010 arg 16 ,loopcnt 
+677e 20407ed4 call clear_mem 
+677f 68018452 fetch 3 ,mem_le_plap + 3 
+6780 60018ac2 store 3 ,mem_le_prand 
+6781 2040678b call genernate_master_macaddress 
+6782 68010adf fetch 2 ,mem_le_aes_128 + 13 
+6783 1ff0fe00 byteswap pdata ,pdata 
+6784 1fed0400 lshift8 pdata ,temp 
+6785 e8c08000 ifetch 1 ,contr 
+6786 9840fe00 iadd temp ,pdata 
+6787 6809844f fetcht 3 ,mem_le_plap 
+6788 98467c00 isub temp ,null 
+6789 2022ffe7 branch enable_user ,zero 
+678a 20600000 rtn 
+
+genernate_master_macaddress:
+678b d8c00ac2 arg mem_le_prand ,contr 
+678c 20407486 call load_data128 
+678d ea208000 ifetch 1 ,rega 
+678e 20407487 call load_regext 
+678f 18006c38 force 0x38 ,aes_ctrl 
+6790 18006c00 force 0x0 ,aes_ctrl 
+6791 2040741d call wait_aes 
+6792 d8a00ad2 arg mem_le_aes_128 ,contw 
+6793 20207497 branch store_aes_result 
+
+find_ediv_form_list_compare:
+6794 ea288000 ifetcht 1 ,rega 
+6795 98467c00 isub temp ,null 
+6796 24628000 nrtn zero 
+6797 18c22200 copy contr ,rega 
+6798 18c0a608 add contr ,8 ,regc 
+6799 da4044cd arg mem_le_rand ,regb 
+679a df200008 arg 8 ,loopcnt 
+679b 20407f88 call string_compare 
+679c 2022ffe7 branch enable_user ,zero 
+679d 1a622200 copy regc ,rega 
+679e da4044d5 arg mem_le_irk ,regb 
+679f df200008 arg 8 ,loopcnt 
+67a0 20407f88 call string_compare 
+67a1 2022ffe7 branch enable_user ,zero 
+67a2 20600000 rtn 
+
+check_nvram:
+67a3 68014215 fetch 2 ,mem_nv_data_ptr 
+67a4 efe88000 ifetcht 1 ,pdata 
+67a5 1fe0fe22 pincrease nv_data_len 
+67a6 efe08000 ifetch 1 ,pdata 
+67a7 98467c00 isub temp ,null 
+67a8 20600000 rtn 
+
+init_device_list:
+67a9 6800c217 fetch 1 ,mem_nv_data_number 
+67aa 1fe27200 icopy loopcnt 
+67ab 68094215 fetcht 2 ,mem_nv_data_ptr 
+67ac 58000000 setarg 0 
+
+init_device_list_loop:
+67ad e0408000 istore 1 ,temp 
+67ae 18408422 increase nv_data_len ,temp 
+67af 1fe0fe01 pincrease 1 
+67b0 c20067ad loop init_device_list_loop 
+67b1 20600000 rtn 
+
+load_device_list:
+67b2 474cc033 bpatchx patch33_1 ,mem_patch33 
+67b3 2040673e call nvram_find_addr_from_bd_list 
+67b4 68008030 fetch 1 ,mem_state 
+67b5 79347e06 setflag user ,state_combkey ,pdata 
+67b6 60008030 store 1 ,mem_state 
+67b7 243467bc nbranch clear_key_exists ,user 
+67b8 1a208c0a add rega ,10 ,contr 
+67b9 d8a041be arg mem_link_key ,contw 
+67ba 20407ebf call memcpy16 
+67bb 202067d7 branch check_link_key_load 
+
+clear_key_exists:
+67bc 7041bd00 jam 0 ,mem_link_key_exists 
+67bd 20600000 rtn 
+
+load_device_list_mode_4:
+67be 6804c4cb fetch 9 ,mem_le_ediv 
+67bf 203a67ca branch clear_ltk_exists ,blank 
+67c0 2040673e call nvram_find_addr_from_bd_list 
+67c1 243467ca nbranch clear_ltk_exists ,user 
+67c2 6801018c fetch 2 ,mem_list_item_ptr 
+67c3 1fe08c01 add pdata ,1 ,contr 
+67c4 d8a044d5 arg mem_le_irk ,contw 
+67c5 20407ebf call memcpy16 
+67c6 d8a04419 arg mem_le_ltk ,contw 
+67c7 20407ebf call memcpy16 
+67c8 70442901 jam 1 ,mem_ltk_exists 
+67c9 20600000 rtn 
+
+clear_ltk_exists:
+67ca 70442900 jam 0 ,mem_ltk_exists 
+67cb 20600000 rtn 
+
+eeprom_store_le_reconn_info:
+67cc 6803044f fetch 6 ,mem_le_plap 
+67cd 60030186 store 6 ,mem_temp_lap 
+67ce 70018534 jam rec_4_mode ,mem_record_bt_mode 
+67cf 202067d3 branch eeprom_store_reconn_info 
+
+eeprom_store_bd_reconn_info:
+67d0 68030040 fetch 6 ,mem_plap 
+67d1 60030186 store 6 ,mem_temp_lap 
+67d2 70018533 jam rec_3_mode ,mem_record_bt_mode 
+
+eeprom_store_reconn_info:
+67d3 6800c092 fetch 1 ,mem_device_option 
+67d4 c005670b beq dvc_op_module ,check_51cmd_update_device_record 
+67d5 c28342da bbit1 dvc_op_mouse ,mouse_store_remote_bdaddr 
+67d6 20600000 rtn 
+
+check_link_key_load:
+67d7 680441be fetch 8 ,mem_link_key 
+67d8 680c41c6 fetcht 8 ,mem_link_key + 8 
+67d9 9841fe00 ior temp ,pdata 
+67da 207a0000 rtn blank 
+67db 7041bd01 jam 1 ,mem_link_key_exists 
+67dc 20600000 rtn 
+
+gpio_set_wake_by_current_state:
+67dd 474d4033 bpatchx patch33_2 ,mem_patch33 
+67de 79200407 set1 7 ,temp 
+67df 2040681d call gpio_get_bit 
+67e0 7d208407 nsetflag true ,7 ,temp 
+
+gpio_set_wake:
+67e1 474dc033 bpatchx patch33_3 ,mem_patch33 
+67e2 18467cff sub temp ,ui_button_gpio_disable ,null 
+67e3 20628000 rtn zero 
+67e4 284c0007 isolate0 7 ,temp 
+67e5 18410e1f and temp ,0x1f ,queue 
+67e6 680200a1 fetch 4 ,mem_gpio_wakeup_low 
+67e7 f920fe00 qsetflag true ,pdata 
+67e8 600200a1 store 4 ,mem_gpio_wakeup_low 
+67e9 680200a5 fetch 4 ,mem_gpio_wakeup_high 
+67ea fd20fe00 nqsetflag true ,pdata 
+67eb 600200a5 store 4 ,mem_gpio_wakeup_high 
+67ec 20600000 rtn 
+
+gpio_clr_wake:
+67ed 474e4033 bpatchx patch33_4 ,mem_patch33 
+67ee 18467cff sub temp ,ui_button_gpio_disable ,null 
+67ef 20628000 rtn zero 
+67f0 284c0007 isolate0 7 ,temp 
+67f1 18410e1f and temp ,0x1f ,queue 
+67f2 680200a1 fetch 4 ,mem_gpio_wakeup_low 
+67f3 f93ffe00 qset0 pdata 
+67f4 600200a1 store 4 ,mem_gpio_wakeup_low 
+67f5 680200a5 fetch 4 ,mem_gpio_wakeup_high 
+67f6 f93ffe00 qset0 pdata 
+67f7 600200a5 store 4 ,mem_gpio_wakeup_high 
+67f8 20600000 rtn 
+
+gpio_config_input_nowake:
+67f9 204067ed call gpio_clr_wake 
+67fa 202067fe branch gpio_config_input_without_wake 
+
+gpio_config_input:
+67fb 18467cff sub temp ,ui_button_gpio_disable ,null 
+67fc 20628000 rtn zero 
+67fd 2455e7e1 ncall gpio_set_wake ,wake 
+
+gpio_config_input_without_wake:
+67fe d8a0807c arg core_gpio_pd0 ,contw 
+67ff 20406830 call gpio_set_bit 
+6800 79400407 setflip gpio_active_bit ,temp 
+6801 d8a08078 arg core_gpio_pu0 ,contw 
+6802 20406830 call gpio_set_bit 
+6803 793f8407 set0 gpio_active_bit ,temp 
+6804 d8a08070 arg core_gpio_oe0 ,contw 
+6805 20206830 branch gpio_set_bit 
+
+gpio_set_high_impedance:
+6806 d8a0807c arg core_gpio_pd0 ,contw 
+6807 20406830 call gpio_set_bit 
+6808 793f8407 set0 gpio_active_bit ,temp 
+6809 d8a08078 arg core_gpio_pu0 ,contw 
+680a 20406830 call gpio_set_bit 
+680b 793f8407 set0 gpio_active_bit ,temp 
+680c d8a08070 arg core_gpio_oe0 ,contw 
+680d 20206830 branch gpio_set_bit 
+
+gpio_config_output:
+680e 18467cff sub temp ,ui_button_gpio_disable ,null 
+680f 20628000 rtn zero 
+6810 79400407 setflip gpio_active_bit ,temp 
+6811 2040682f call gpio_out 
+
+gpio_config_output0:
+6812 79200407 set1 gpio_active_bit ,temp 
+6813 d8a08070 arg core_gpio_oe0 ,contw 
+6814 20206830 branch gpio_set_bit 
+
+gpio_common:
+6815 18410e07 and temp ,0x07 ,queue 
+6816 18497e00 rshift3 temp ,pdata 
+6817 1fe17e03 and_into 3 ,pdata 
+6818 98a08a00 iadd contw ,contw 
+6819 e8a08000 ifetch 1 ,contw 
+681a 20600000 rtn 
+
+gpio_check_active:
+681b d8a08074 arg core_gpio_out0 ,contw 
+681c 2020681e branch get_bit_common 
+
+gpio_get_bit:
+681d d8a0811c arg core_gpio_in ,contw 
+
+get_bit_common:
+681e 20406815 call gpio_common 
+681f 284ffe07 isolate1 gpio_active_bit ,temp 
+6820 2020e823 branch gpio_get_bit_reverse ,true 
+6821 afec0000 qisolate0 pdata 
+6822 20600000 rtn 
+
+gpio_get_bit_reverse:
+6823 afefffff qisolate1 pdata 
+6824 20600000 rtn 
+
+gpio_out_inactive:
+6825 18467cff sub temp ,ui_button_gpio_disable ,null 
+6826 20628000 rtn zero 
+6827 2fcffe07 isolate1 7 ,null 
+6828 2020682c branch gpio_out_flag 
+
+gpio_out_active:
+6829 18467cff sub temp ,ui_button_gpio_disable ,null 
+682a 20628000 rtn zero 
+682b 2fcc0007 isolate0 7 ,null 
+
+gpio_out_flag:
+682c 58000000 setarg 0 
+682d 7d20fe07 nsetflag true ,gpio_active_bit ,pdata 
+682e 98428400 ixor temp ,temp 
+
+gpio_out:
+682f d8a08074 arg core_gpio_out0 ,contw 
+
+gpio_set_bit:
+6830 20406815 call gpio_common 
+6831 284ffe07 isolate1 gpio_active_bit ,temp 
+6832 f920fe00 qsetflag true ,pdata 
+6833 e0a08000 istore 1 ,contw 
+6834 20600000 rtn 
+
+gpio_set_before_lpm_common:
+6835 da3fffff arg -1 ,rega 
+6836 68108081 hfetch 1 ,core_gpio_sel1 
+6837 2fe00602 compare 0x02 ,pdata ,0x03 
+6838 2040e878 call neglact4_from_23_pin ,true 
+6839 2fe00601 compare 0x01 ,pdata ,0x03 
+683a 2040e87a call neglact2_form_25_pin ,true 
+683b 2fe00603 compare 0x03 ,pdata ,0x03 
+683c 2040e87a call neglact2_form_25_pin ,true 
+683d 2feffe02 isolate1 2 ,pdata 
+683e 2040e874 call neglect2_from_6_pin ,true 
+683f 2feffe03 isolate1 3 ,pdata 
+6840 2040e876 call neglect4_from_9_pin ,true 
+6841 2feffe04 isolate1 4 ,pdata 
+6842 2040e87c call neglact2_form_30_pin ,true 
+6843 2feffe06 isolate1 6 ,pdata 
+6844 7d20a204 nsetflag true ,04 ,rega 
+6845 2feffe07 isolate1 7 ,pdata 
+6846 7d20a205 nsetflag true ,05 ,rega 
+6847 68108082 hfetch 1 ,core_gpio_sel2 
+6848 2feffe00 isolate1 0 ,pdata 
+6849 7d20a21b nsetflag true ,27 ,rega 
+684a 2feffe01 isolate1 1 ,pdata 
+684b 7d20a21c nsetflag true ,28 ,rega 
+684c 2feffe02 isolate1 2 ,pdata 
+684d 7d20a203 nsetflag true ,03 ,rega 
+684e 2feffe03 isolate1 3 ,pdata 
+684f 7d20a208 nsetflag true ,08 ,rega 
+6850 2feffe04 isolate1 4 ,pdata 
+6851 7d20a214 nsetflag true ,20 ,rega 
+6852 2feffe05 isolate1 5 ,pdata 
+6853 7d20a215 nsetflag true ,21 ,rega 
+6854 2feffe06 isolate1 6 ,pdata 
+6855 7d20a216 nsetflag true ,22 ,rega 
+6856 2feffe07 isolate1 7 ,pdata 
+6857 7d20a217 nsetflag true ,23 ,rega 
+6858 68108080 hfetch 1 ,core_gpio_sel 
+6859 2feffe00 isolate1 0 ,pdata 
+685a 7d20a205 nsetflag true ,05 ,rega 
+685b 2feffe01 isolate1 1 ,pdata 
+685c 7d20a206 nsetflag true ,06 ,rega 
+685d 2feffe02 isolate1 2 ,pdata 
+685e 7d20a207 nsetflag true ,07 ,rega 
+685f 2feffe03 isolate1 3 ,pdata 
+6860 7d20a212 nsetflag true ,18 ,rega 
+6861 2feffe04 isolate1 4 ,pdata 
+6862 7d20a213 nsetflag true ,19 ,rega 
+6863 2feffe05 isolate1 5 ,pdata 
+6864 7d20a214 nsetflag true ,20 ,rega 
+6865 2feffe06 isolate1 6 ,pdata 
+6866 7d20a215 nsetflag true ,21 ,rega 
+6867 2feffe07 isolate1 7 ,pdata 
+6868 7d20a216 nsetflag true ,22 ,rega 
+6869 68108062 hfetch 1 ,core_uart_ctrl 
+686a 2feffe04 isolate1 4 ,pdata 
+686b 2040e87e call neglact2_form_2_pin ,true 
+686c 474ec033 bpatchx patch33_5 ,mem_patch33 
+686d 68120078 hfetch 4 ,core_gpio_pu0 
+686e 681a007c hfetcht 4 ,core_gpio_pd0 
+686f 9841fe00 ior temp ,pdata 
+6870 1fe47e00 invert pdata ,pdata 
+6871 9a217e00 iand rega ,pdata 
+6872 60120070 hstore 4 ,core_gpio_oe0 
+6873 20600000 rtn 
+
+neglect2_from_6_pin:
+6874 d8e00006 arg 6 ,queue 
+6875 20206884 branch neglect_2_pin 
+
+neglect4_from_9_pin:
+6876 d8e00009 arg 9 ,queue 
+6877 20206882 branch neglact_4_pin 
+
+neglact4_from_23_pin:
+6878 d8e00017 arg 23 ,queue 
+6879 20206882 branch neglact_4_pin 
+
+neglact2_form_25_pin:
+687a d8e00019 arg 25 ,queue 
+687b 20206884 branch neglect_2_pin 
+
+neglact2_form_30_pin:
+687c d8e0001e arg 30 ,queue 
+687d 20206884 branch neglect_2_pin 
+
+neglact2_form_2_pin:
+687e d8e00002 arg 2 ,queue 
+687f 20206884 branch neglect_2_pin 
+
+neglact_1_pin:
+6880 df200001 arg 1 ,loopcnt 
+6881 20206885 branch neglect_pin_loop 
+
+neglact_4_pin:
+6882 df200004 arg 4 ,loopcnt 
+6883 20206885 branch neglect_pin_loop 
+
+neglect_2_pin:
+6884 df200002 arg 2 ,loopcnt 
+
+neglect_pin_loop:
+6885 f93fa200 qset0 rega 
+6886 18e08e01 increase 1 ,queue 
+6887 c2006885 loop neglect_pin_loop 
+6888 20600000 rtn 
+
+gpio_cfg_uart_tx_output:
+6889 20406895 call gpio_uart2gpio 
+688a d8400006 arg uart_wakeup_tx ,temp 
+688b 2020680e branch gpio_config_output 
+
+gpio_pu_uart_tx:
+688c 20406889 call gpio_cfg_uart_tx_output 
+688d d8400006 arg uart_wakeup_tx ,temp 
+688e 20206825 branch gpio_out_inactive 
+
+gpio_rx_config_input_with_pu:
+688f 20406895 call gpio_uart2gpio 
+6890 68108078 hfetch 1 ,core_gpio_pu0 
+6891 79207e07 set1 uart_wakeup_rx ,pdata 
+6892 60108078 hstore 1 ,core_gpio_pu0 
+6893 d8400007 arg uart_wakeup_rx ,temp 
+6894 202067fb branch gpio_config_input 
+
+gpio_uart2gpio:
+6895 68108081 hfetch 1 ,core_gpio_sel1 
+6896 1fe17efb and_into 0xfb ,pdata 
+6897 60108081 hstore 1 ,core_gpio_sel1 
+6898 20600000 rtn 
+
+gpio_check_uart_state:
+6899 68108081 hfetch 1 ,core_gpio_sel1 
+689a 2feffe02 isolate1 2 ,pdata 
+689b 20600000 rtn 
+
+load_chip_option:
+689c 2040666a call otp_enable_chgpump 
+689d 580007e0 setarg otp_chip_functions 
+689e da204150 arg mem_chip_functions ,rega 
+689f d8400002 arg 0x02 ,temp 
+68a0 204066b3 call otpd_read_data 
+68a1 2020666d branch otp_disable_chgpump 
+
+load_adc_init:
+68a2 2040666a call otp_enable_chgpump 
+68a3 580007e2 setarg otp_adc_io_0_5v_addr 
+68a4 da20421d arg mem_0_5_adc_io_data ,rega 
+68a5 d840000e arg 14 ,temp 
+68a6 204066b3 call otpd_read_data 
+68a7 2020666d branch otp_disable_chgpump 
+
+adc_init_data:
+68a8 474f4033 bpatchx patch33_6 ,mem_patch33 
+68a9 204068a2 call load_adc_init 
+68aa 6800c22d fetch 1 ,mem_adc_config_flag 
+68ab c00068af beq adc_config_vinlpm ,adc_init_data_vinlpm 
+68ac c000e8c3 beq adc_config_hvin ,adc_init_data_hvin 
+68ad c00168d7 beq adc_config_gpio ,adc_init_data_io 
+68ae 20600000 rtn 
+
+adc_init_data_vinlpm:
+68af 68094229 fetcht 2 ,mem_otp_adc_flag 
+68b0 5800aa55 setarg otp_adc_flag 
+68b1 98467c00 isub temp ,null 
+68b2 2022e8b8 branch adc_check_data_vinlpm ,zero 
+68b3 58004dfa setarg 0x4dfa 
+68b4 60014227 store 2 ,mem_3v_adc_vinlpm_data 
+68b5 58004894 setarg 0x4894 
+68b6 60014221 store 2 ,mem_2v_adc_vinlpm_data 
+68b7 202068c0 branch set_vdd_reference_voltage_1v 
+
+adc_check_data_vinlpm:
+68b8 68014227 fetch 2 ,mem_3v_adc_vinlpm_data 
+68b9 243a68bc nbranch adc_check_2v_vinlpm ,blank 
+68ba 58004dfa setarg 0x4dfa 
+68bb 60014227 store 2 ,mem_3v_adc_vinlpm_data 
+
+adc_check_2v_vinlpm:
+68bc 68014221 fetch 2 ,mem_2v_adc_vinlpm_data 
+68bd 243a68c0 nbranch set_vdd_reference_voltage_1v ,blank 
+68be 58004894 setarg 0x4894 
+68bf 60014221 store 2 ,mem_2v_adc_vinlpm_data 
+
+set_vdd_reference_voltage_1v:
+68c0 58000064 setarg 100 
+68c1 6001422b store 2 ,mem_reference_voltage 
+68c2 20600000 rtn 
+
+adc_init_data_hvin:
+68c3 68094229 fetcht 2 ,mem_otp_adc_flag 
+68c4 5800aa55 setarg otp_adc_flag 
+68c5 98467c00 isub temp ,null 
+68c6 2022e8cc branch adc_check_data_hvin ,zero 
+68c7 58005932 setarg 0x5932 
+68c8 60014225 store 2 ,mem_5v_adc_hvin_data 
+68c9 58004323 setarg 0x4323 
+68ca 6001421f store 2 ,mem_1v_adc_hvin_data 
+68cb 202068d4 branch set_vdd_reference_voltage_4v 
+
+adc_check_data_hvin:
+68cc 68014225 fetch 2 ,mem_5v_adc_hvin_data 
+68cd 243a68d0 nbranch adc_check_1v_hvin ,blank 
+68ce 58005932 setarg 0x5932 
+68cf 60014225 store 2 ,mem_5v_adc_hvin_data 
+
+adc_check_1v_hvin:
+68d0 6801421f fetch 2 ,mem_1v_adc_hvin_data 
+68d1 243a68d4 nbranch set_vdd_reference_voltage_4v ,blank 
+68d2 58004323 setarg 0x4323 
+68d3 6001421f store 2 ,mem_1v_adc_hvin_data 
+
+set_vdd_reference_voltage_4v:
+68d4 58000190 setarg 400 
+68d5 6001422b store 2 ,mem_reference_voltage 
+68d6 20600000 rtn 
+
+adc_init_data_io:
+68d7 68094229 fetcht 2 ,mem_otp_adc_flag 
+68d8 5800aa55 setarg otp_adc_flag 
+68d9 98467c00 isub temp ,null 
+68da 2022e8e0 branch adc_check_data_io ,zero 
+68db 58006946 setarg 0x6946 
+68dc 60014223 store 2 ,mem_1v_adc_io_data 
+68dd 58005377 setarg 0x5377 
+68de 6001421d store 2 ,mem_0_5_adc_io_data 
+68df 202068e8 branch set_vdd_reference_voltage_0_5v 
+
+adc_check_data_io:
+68e0 68014223 fetch 2 ,mem_1v_adc_io_data 
+68e1 243a68e4 nbranch adc_check_0_5v_io ,blank 
+68e2 58006946 setarg 0x6946 
+68e3 60014223 store 2 ,mem_1v_adc_io_data 
+
+adc_check_0_5v_io:
+68e4 6801421d fetch 2 ,mem_0_5_adc_io_data 
+68e5 243a68e8 nbranch set_vdd_reference_voltage_0_5v ,blank 
+68e6 58005377 setarg 0x5377 
+68e7 6001421d store 2 ,mem_0_5_adc_io_data 
+
+set_vdd_reference_voltage_0_5v:
+68e8 58000032 setarg 50 
+68e9 6001422b store 2 ,mem_reference_voltage 
+68ea 20600000 rtn 
+
+adc_set_mode:
+68eb 6800c22d fetch 1 ,mem_adc_config_flag 
+68ec c00068f0 beq adc_config_vinlpm ,adc_check_vinlpm 
+68ed c000e8f2 beq adc_config_hvin ,adc_check_hvin 
+68ee c00168f4 beq adc_config_gpio ,adc_check_gpio 
+68ef 20600000 rtn 
+
+adc_check_vinlpm:
+68f0 708971bf jam 0xbf ,rf_adc_mode 
+68f1 202068f8 branch read_adc 
+
+adc_check_hvin:
+68f2 708971af jam 0xaf ,rf_adc_mode 
+68f3 202068f8 branch read_adc 
+
+adc_check_gpio:
+68f4 7089718f jam 0x8f ,rf_adc_mode 
+68f5 6800c22e fetch 1 ,mem_adc_channel 
+68f6 60108973 hstore 1 ,rf_adc_ch 
+68f7 202068f8 branch read_adc 
+
+read_adc:
+68f8 474fc033 bpatchx patch33_7 ,mem_patch33 
+68f9 68108053 hfetch 1 ,core_uart_baud + 1 
+68fa 79207e07 set1 7 ,pdata 
+68fb 60108053 hstore 1 ,core_uart_baud + 1 
+68fc 68108973 hfetch 1 ,rf_adc_ch 
+68fd 1fe1fe30 or_into 0x30 ,pdata 
+68fe 60108973 hstore 1 ,rf_adc_ch 
+68ff 7089067c jam 0x7c ,rfen_adc 
+6900 708972aa jam 0xaa ,rf_adc_gc 
+6901 20001388 nop 5000 
+6902 68190150 hfetcht 2 ,core_adc_sum 
+6903 68108053 hfetch 1 ,core_uart_baud + 1 
+6904 793ffe07 set0 7 ,pdata 
+6905 60108053 hstore 1 ,core_uart_baud + 1 
+6906 6009422f storet 2 ,mem_adc_current_value 
+6907 20600000 rtn 
+
+vdd_calculate_by_mode:
+6908 47504034 bpatchx patch34_0 ,mem_patch34 
+6909 6800c22d fetch 1 ,mem_adc_config_flag 
+690a c000690e beq adc_config_vinlpm ,vdd_calculate_vinlpm 
+690b c000e912 beq adc_config_hvin ,vdd_calculate_hvin 
+690c c0016916 beq adc_config_gpio ,vdd_calculate_io 
+690d 20600000 rtn 
+
+vdd_calculate_vinlpm:
+690e 68014227 fetch 2 ,mem_3v_adc_vinlpm_data 
+690f 68094221 fetcht 2 ,mem_2v_adc_vinlpm_data 
+6910 da6000c8 arg 200 ,regc 
+6911 2020691a branch vdd_calculate 
+
+vdd_calculate_hvin:
+6912 68014225 fetch 2 ,mem_5v_adc_hvin_data 
+6913 6809421f fetcht 2 ,mem_1v_adc_hvin_data 
+6914 da600064 arg 100 ,regc 
+6915 2020691a branch vdd_calculate 
+
+vdd_calculate_io:
+6916 68014223 fetch 2 ,mem_1v_adc_io_data 
+6917 6809421d fetcht 2 ,mem_0_5_adc_io_data 
+6918 da600032 arg 50 ,regc 
+6919 2020691a branch vdd_calculate 
+
+vdd_calculate:
+691a 98462200 isub temp ,rega 
+691b 6801422f fetch 2 ,mem_adc_current_value 
+691c 98467e00 isub temp ,pdata 
+691d 24216927 nbranch vdd_calculate1 ,positive 
+691e 6809422b fetcht 2 ,mem_reference_voltage 
+691f 984fa400 imul32 temp ,regb 
+6920 1a627e00 copy regc ,pdata 
+6921 9a2ffe00 imul32 rega ,pdata 
+6922 9a40fe00 iadd regb ,pdata 
+
+vdd_calculate2:
+6923 9a26fc00 idiv rega 
+6924 20407f86 call wait_div_end 
+6925 1807fe00 quotient pdata 
+6926 20600000 rtn 
+
+vdd_calculate1:
+6927 18427e00 copy temp ,pdata 
+6928 6809422f fetcht 2 ,mem_adc_current_value 
+6929 98467e00 isub temp ,pdata 
+692a 6809422b fetcht 2 ,mem_reference_voltage 
+692b 984fa400 imul32 temp ,regb 
+692c 1a627e00 copy regc ,pdata 
+692d 9a2ffe00 imul32 rega ,pdata 
+692e 9a467e00 isub regb ,pdata 
+692f 20206923 branch vdd_calculate2 
+
+adc_bat_percent_lowpower_out:
+6930 ea240000 ifetch 8 ,rega 
+6931 60040a9a store 8 ,mem_pdatatemp 
+6932 68010a9a fetch 2 ,mem_pdatatemp 
+6933 68090a9c fetcht 2 ,mem_pdatatemp + 2 
+6934 98462200 isub temp ,rega 
+6935 68010aa0 fetch 2 ,mem_pdatatemp + 6 
+6936 98462400 isub temp ,regb 
+6937 68090a9e fetcht 2 ,mem_pdatatemp + 4 
+6938 98467c00 isub temp ,null 
+6939 24416940 ncall adc_set_low_power_flag ,positive 
+693a 1a4ffe64 mul32 regb ,100 ,pdata 
+693b 9a26fc00 idiv rega 
+693c 20407f86 call wait_div_end 
+693d 1807fe00 quotient pdata 
+693e 205a6944 call adc_set_no_power_flag ,blank 
+693f 20600000 rtn 
+
+adc_set_low_power_flag:
+6940 6800c231 fetch 1 ,mem_adc_power_flag 
+6941 79207e00 set1 0 ,pdata 
+6942 6000c231 store 1 ,mem_adc_power_flag 
+6943 20600000 rtn 
+
+adc_set_no_power_flag:
+6944 6808c231 fetcht 1 ,mem_adc_power_flag 
+6945 79200401 set1 1 ,temp 
+6946 6008c231 storet 1 ,mem_adc_power_flag 
+6947 20600000 rtn 
+
+keyscan_key_init:
+6948 6801423d fetch 2 ,mem_key_num_ptr 
+6949 efe08000 ifetch 1 ,pdata 
+
+keyscan_key_init_next:
+694a 207a0000 rtn blank 
+694b 1fe27200 copy pdata ,loopcnt 
+694c 6801423d fetch 2 ,mem_keyscan_ptr 
+694d 1fe0fe03 increase 3 ,pdata 
+694e 1fe22200 copy pdata ,rega 
+
+keyscan_key_init_lp1:
+694f ea288000 ifetcht 1 ,rega 
+6950 204067fb call gpio_config_input 
+6951 1a20a201 increase key_conf_struct_len ,rega 
+6952 c200694f loop keyscan_key_init_lp1 
+
+keyscan_key_init_end:
+6953 20600000 rtn 
+
+keyscan_scan_key:
+6954 6801423d fetch 2 ,mem_keyscan_ptr 
+6955 1fe0fe03 increase 3 ,pdata 
+6956 1fe22200 copy pdata ,rega 
+6957 18002400 force 0 ,regb 
+6958 700b1200 jam 0 ,mem_key_value_temp 
+
+keyscan_scan_key_lp1:
+6959 ea288000 ifetcht 1 ,rega 
+695a 2040681d call gpio_get_bit 
+695b 4750c034 bpatchx patch34_1 ,mem_patch34 
+695c 68010b12 fetch 2 ,mem_key_value_temp 
+695d 1a420e00 copy regb ,queue 
+695e f920fe00 qsetflag true ,pdata 
+695f 60010b12 store 2 ,mem_key_value_temp 
+6960 1a20a201 increase key_conf_struct_len ,rega 
+6961 1a40a401 increase 1 ,regb 
+6962 6801423d fetch 2 ,mem_key_num_ptr 
+6963 efe08000 ifetch 1 ,pdata 
+
+keyscan_scan_key_lp1_next:
+6964 9a42fc00 ixor regb ,null 
+6965 2422e959 nbranch keyscan_scan_key_lp1 ,zero 
+6966 68010b12 fetch 2 ,mem_key_value_temp 
+6967 68090b14 fetcht 2 ,mem_key_value 
+6968 9842fc00 ixor temp ,null 
+6969 20628000 rtn zero 
+696a 78347c00 enable user 
+696b 20600000 rtn 
+
+keyscan_process_lpm_before:
+696c 6801423d fetch 2 ,mem_key_num_ptr 
+696d efe08000 ifetch 1 ,pdata 
+
+keyscan_process_lpm_before_next:
+696e 207a0000 rtn blank 
+696f 1fe27200 copy pdata ,loopcnt 
+6970 6801423d fetch 2 ,mem_keyscan_ptr 
+6971 1fe0fe03 increase 3 ,pdata 
+6972 1fe22200 copy pdata ,rega 
+
+keyscan_process_lpm_before_lp1:
+6973 ea288000 ifetcht 1 ,rega 
+6974 204067dd call gpio_set_wake_by_current_state 
+6975 1a20a201 increase key_conf_struct_len ,rega 
+6976 c2006973 loop keyscan_process_lpm_before_lp1 
+
+keyscan_process_lpm_before_end:
+6977 20600000 rtn 
+
+keyscan_key_process:
+6978 d8e00009 arg key_scan_timer ,queue 
+6979 20407f16 call timer_check 
+697a 247a0000 nrtn blank 
+697b 58000020 setarg 0x20 
+697c d8e00009 arg key_scan_timer ,queue 
+697d 20407f08 call timer_init 
+697e 78547c00 disable user 
+697f 2040696c call keyscan_process_lpm_before 
+6980 47514034 bpatchx patch34_2 ,mem_patch34 
+6981 6801423d fetch 2 ,mem_key_num_ptr 
+6982 efe08000 ifetch 1 ,pdata 
+
+keyscan_key_process_next:
+6983 207a0000 rtn blank 
+6984 20406954 call keyscan_scan_key 
+6985 24347d02 nbranch lpm_button_clean_wake_lock ,user 
+6986 20407d00 call lpm_button_get_wake_lock 
+6987 78547c00 disable user 
+6988 68010b12 fetch 2 ,mem_key_value_temp 
+6989 60010b19 store 2 ,mem_key_value_temp4 
+698a 700b1b00 jam 0 ,mem_key_value_temp6 
+698b 18000e00 force 0 ,queue 
+
+keyscan_key_lp1:
+698c 68010b14 fetch 2 ,mem_key_value 
+698d 1fe30400 rshift pdata ,temp 
+698e 60090b14 storet 2 ,mem_key_value 
+698f 1fe17e01 and pdata ,0x01 ,pdata 
+6990 68090b19 fetcht 2 ,mem_key_value_temp4 
+6991 18412201 and temp ,0x01 ,rega 
+6992 18430400 rshift temp ,temp 
+6993 60090b19 storet 2 ,mem_key_value_temp4 
+6994 9a22fc00 ixor rega ,null 
+6995 2442e9a1 ncall keyscan_send_key_data ,zero 
+6996 6801423d fetch 2 ,mem_key_num_ptr 
+6997 efe08000 ifetch 1 ,pdata 
+
+keyscan_key_lp1_next:
+6998 68088b1b fetcht 1 ,mem_key_value_temp6 
+6999 18408401 increase 1 ,temp 
+699a 60088b1b storet 1 ,mem_key_value_temp6 
+699b 18420e00 copy temp ,queue 
+699c 98e2fc00 ixor queue ,null 
+699d 2422e98c nbranch keyscan_key_lp1 ,zero 
+699e 68010b12 fetch 2 ,mem_key_value_temp 
+699f 60010b14 store 2 ,mem_key_value 
+69a0 20600000 rtn 
+
+keyscan_send_key_data:
+69a1 4751c034 bpatchx patch34_3 ,mem_patch34 
+69a2 6801423d fetch 2 ,mem_keyscan_ptr 
+69a3 1fe0fe01 increase 1 ,pdata 
+69a4 efe10000 ifetch 2 ,pdata 
+69a5 20207f9c branch callback_func 
+
+pwm_init:
+69a6 68108042 hfetch 1 ,core_clksel 
+69a7 9a21fe00 ior rega ,pdata 
+69a8 60108042 hstore 1 ,core_clksel 
+69a9 68110050 hfetch 2 ,core_clkoff 
+69aa 793ffe0d set0 clock_off_pwm ,pdata 
+69ab 60110050 hstore 2 ,core_clkoff 
+69ac 20000064 nop 100 
+69ad 20600000 rtn 
+
+pwm_out_set:
+69ae 68098a9c fetcht 3 ,mem_pdatatemp + 2 
+69af 58b71b00 setarg pwm_12mhz 
+69b0 9846fc00 idiv temp 
+69b1 20407f86 call wait_div_end 
+69b2 18078400 quotient temp 
+69b3 68008a9f fetch 1 ,mem_pdatatemp + 5 
+69b4 984ffe00 imul32 temp ,pdata 
+69b5 1fe6fc64 div pdata ,100 
+69b6 20407f86 call wait_div_end 
+69b7 1807a200 quotient rega 
+69b8 18427e00 copy temp ,pdata 
+69b9 9a262400 isub rega ,regb 
+69ba 68008a9b fetch 1 ,mem_pdatatemp + 1 
+69bb 204069be call pwm_duty_cycle_set 
+69bc 68008a9a fetch 1 ,mem_pdatatemp 
+69bd 202069d5 branch pwm_enable 
+
+pwm_duty_cycle_set:
+69be c00069c4 beq 0 ,pwm_pwm0_duty_set 
+69bf c000e9c6 beq 1 ,pwm_pwm1_duty_set 
+69c0 c00169c8 beq 2 ,pwm_pwm2_duty_set 
+69c1 c001e9ca beq 3 ,pwm_pwm3_duty_set 
+69c2 c00269cc beq 4 ,pwm_pwm4_duty_set 
+69c3 c002e9ce beq 5 ,pwm_pwm5_duty_set 
+
+pwm_pwm0_duty_set:
+69c4 d8a080a0 arg core_pwm_pcnt0 ,contw 
+69c5 202069d0 branch pwm_set_pncnt 
+
+pwm_pwm1_duty_set:
+69c6 d8a080a4 arg core_pwm_pcnt1 ,contw 
+69c7 202069d0 branch pwm_set_pncnt 
+
+pwm_pwm2_duty_set:
+69c8 d8a080a8 arg core_pwm_pcnt2 ,contw 
+69c9 202069d0 branch pwm_set_pncnt 
+
+pwm_pwm3_duty_set:
+69ca d8a08064 arg core_pwm_pcnt3 ,contw 
+69cb 202069d0 branch pwm_set_pncnt 
+
+pwm_pwm4_duty_set:
+69cc d8a08068 arg core_pwm_pcnt4 ,contw 
+69cd 202069d0 branch pwm_set_pncnt 
+
+pwm_pwm5_duty_set:
+69ce d8a0806c arg core_pwm_pcnt5 ,contw 
+69cf 202069d0 branch pwm_set_pncnt 
+
+pwm_set_pncnt:
+69d0 1a227e00 copy rega ,pdata 
+69d1 e0a10000 istore 2 ,contw 
+69d2 1a427e00 copy regb ,pdata 
+69d3 e0a10000 istore 2 ,contw 
+69d4 20600000 rtn 
+
+pwm_enable:
+69d5 78347c00 enable user 
+69d6 202069d8 branch pwm_gpio_set 
+
+pwm_disable:
+69d7 78547c00 disable user 
+
+pwm_gpio_set:
+69d8 c00269e3 beq 4 ,pwm_gpio4_set 
+69d9 c002e9e5 beq 5 ,pwm_gpio5_set 
+69da c00de9e7 beq 27 ,pwm_gpio27_set 
+69db c00e69e9 beq 28 ,pwm_gpio28_set 
+69dc c001e9eb beq 3 ,pwm_gpio3_set 
+69dd c00469ed beq 8 ,pwm_gpio8_set 
+69de c00a69ef beq 20 ,pwm_gpio20_set 
+69df c00ae9f1 beq 21 ,pwm_gpio21_set 
+69e0 c00b69f3 beq 22 ,pwm_gpio22_set 
+69e1 c00be9f5 beq 23 ,pwm_gpio23_set 
+69e2 20600000 rtn 
+
+pwm_gpio4_set:
+69e3 d8e00006 arg 6 ,queue 
+69e4 202069ff branch pwm_one_set_select 
+
+pwm_gpio5_set:
+69e5 d8e00007 arg 7 ,queue 
+69e6 202069ff branch pwm_one_set_select 
+
+pwm_gpio27_set:
+69e7 d8e00008 arg 8 ,queue 
+69e8 202069ff branch pwm_one_set_select 
+
+pwm_gpio28_set:
+69e9 d8e00009 arg 9 ,queue 
+69ea 202069ff branch pwm_one_set_select 
+
+pwm_gpio3_set:
+69eb d8e0000a arg 10 ,queue 
+69ec 202069ff branch pwm_one_set_select 
+
+pwm_gpio8_set:
+69ed d8e0000b arg 11 ,queue 
+69ee 202069ff branch pwm_one_set_select 
+
+pwm_gpio20_set:
+69ef d8e0000c arg 12 ,queue 
+69f0 20206a01 branch pwm_tw0_set_select 
+
+pwm_gpio21_set:
+69f1 d8e0000d arg 13 ,queue 
+69f2 20206a01 branch pwm_tw0_set_select 
+
+pwm_gpio22_set:
+69f3 d8e0000e arg 14 ,queue 
+69f4 20206a01 branch pwm_tw0_set_select 
+
+pwm_gpio23_set:
+69f5 d8e0000f arg 15 ,queue 
+69f6 20206a01 branch pwm_tw0_set_select 
+
+pwm_set_select:
+69f7 68110081 hfetch 2 ,core_gpio_sel1 
+69f8 f9347e00 qsetflag user ,pdata 
+69f9 60110081 hstore 2 ,core_gpio_sel1 
+69fa 1a220e00 copy rega ,queue 
+69fb 68108085 hfetch 1 ,core_gpio_key2 
+69fc f9347e00 qsetflag user ,pdata 
+69fd 60108085 hstore 1 ,core_gpio_key2 
+69fe 20600000 rtn 
+
+pwm_one_set_select:
+69ff 18e0a3fc add queue ,-4 ,rega 
+6a00 202069f7 branch pwm_set_select 
+
+pwm_tw0_set_select:
+6a01 18e0a3f6 add queue ,-10 ,rega 
+6a02 202069f7 branch pwm_set_select 
+
+rfcomm_init:
+6a03 20758000 rtn wake 
+6a04 70456700 jam 0 ,mem_rfcomm_send_more_pkt 
+6a05 7004ed03 jam bits9600 ,memremoterpnbitrate 
+6a06 7004ee03 jam databits8 ,memremoteprndatabits 
+6a07 7004f211 jam 0x11 ,memremoteprnxon 
+6a08 7004f313 jam 0x13 ,memremoteprnxoff 
+6a09 58000000 setarg 0 
+6a0a 600184ef store 3 ,memremoteprnstopbit 
+6a0b 6000c254 store 1 ,mem_spp_state 
+6a0c 70468100 jam 0 ,memui_reconnect_mode 
+
+rfcomm_init_spp:
+6a0d 47524034 bpatchx patch34_4 ,mem_patch34 
+6a0e 58000000 setarg 0 
+6a0f 6000c254 store 1 ,mem_spp_state 
+6a10 6000c564 store 1 ,mem_remote_spp_channel 
+6a11 6000c55d store 1 ,mem_pn_dlci 
+6a12 6800c56b fetch 1 ,mem_credit_flag 
+6a13 c000ea16 beq credit_enable ,rfcomm_init_spp_with_credit 
+6a14 70456950 jam 0x50 ,mem_credit_given 
+6a15 20600000 rtn 
+
+rfcomm_init_spp_with_credit:
+6a16 70456900 jam 0x00 ,mem_credit_given 
+6a17 20600000 rtn 
+
+set_cr_bit:
+6a18 18418402 or_into 0x02 ,temp 
+6a19 20600000 rtn 
+
+rfcomm_calculate_fcs_sabm:
+6a1a 18427e00 copy temp ,pdata 
+6a1b 1fedfe00 reverse pdata ,pdata 
+6a1c 6000c562 store 1 ,memfcstemp3 
+6a1d 18007e3f force ini_tx_sabm ,pdata 
+6a1e 1fedfe00 reverse pdata ,pdata 
+6a1f 6000c561 store 1 ,memfcstemp2 
+6a20 18007e01 force 0x01 ,pdata 
+6a21 1fedfe00 reverse pdata ,pdata 
+6a22 6000c560 store 1 ,memfcstemp1 
+6a23 20406a50 call caculate_fcs 
+6a24 18427e00 copy temp ,pdata 
+6a25 20600000 rtn 
+
+rfcomm_calculate_fcs_ua:
+6a26 1fedfe00 reverse pdata ,pdata 
+6a27 6000c562 store 1 ,memfcstemp3 
+6a28 18007e73 force rsp_tx_ua ,pdata 
+6a29 1fedfe00 reverse pdata ,pdata 
+6a2a 6000c561 store 1 ,memfcstemp2 
+6a2b 18007e01 force 0x01 ,pdata 
+6a2c 1fedfe00 reverse pdata ,pdata 
+6a2d 6000c560 store 1 ,memfcstemp1 
+6a2e 20206a50 branch caculate_fcs 
+
+rfcomm_calculate_fcs_dlci0:
+6a2f 6800c563 fetch 1 ,mem_rfcomm_initiator 
+6a30 203a6a33 branch rfcomm_calculate_fcs_dlci0_res ,blank 
+6a31 58000070 setarg 0x70 
+6a32 20600000 rtn 
+
+rfcomm_calculate_fcs_dlci0_res:
+6a33 580000aa setarg 0xaa 
+6a34 20600000 rtn 
+
+rfcomm_save_fcs_uih:
+6a35 1fedfe00 reverse pdata ,pdata 
+6a36 6000c562 store 1 ,memfcstemp3 
+6a37 18007eef force rsp_rx_uih ,pdata 
+6a38 20406a44 call caculate_uihdata_fcs 
+6a39 680904f7 fetcht 2 ,mem_contw_temp 
+6a3a 18420a00 copy temp ,contw 
+6a3b e0a08000 istore 1 ,contw 
+6a3c 18a20400 copy contw ,temp 
+6a3d 600904f7 storet 2 ,mem_contw_temp 
+6a3e 18007eff force rsp_rx_uih_wdata ,pdata 
+6a3f 20406a44 call caculate_uihdata_fcs 
+6a40 680904f7 fetcht 2 ,mem_contw_temp 
+6a41 18420a00 copy temp ,contw 
+6a42 e0a08000 istore 1 ,contw 
+6a43 20600000 rtn 
+
+caculate_uihdata_fcs:
+6a44 1fedfe00 reverse pdata ,pdata 
+6a45 6000c561 store 1 ,memfcstemp2 
+6a46 68014561 fetch 2 ,memfcstemp2 
+6a47 1fed7e00 lshift8 pdata ,pdata 
+6a48 600184f4 store 3 ,mem_mod2div_temp 
+6a49 da200107 arg 0x107 ,rega 
+6a4a da40000f arg 0xf ,regb 
+6a4b 20406a5d call mod2div 
+6a4c 1fe2fed7 xor_into 0xd7 ,pdata 
+6a4d 1fe47e00 invert pdata ,pdata 
+6a4e 1fedfe00 reverse pdata ,pdata 
+6a4f 20600000 rtn 
+
+caculate_fcs:
+6a50 6801c560 fetch 3 ,memfcstemp1 
+6a51 600184f4 store 3 ,mem_mod2div_temp 
+6a52 da200107 arg 0x107 ,rega 
+6a53 da40000f arg 0xf ,regb 
+6a54 20406a5d call mod2div 
+6a55 1fed7e00 lshift8 pdata ,pdata 
+6a56 da400007 arg 0x7 ,regb 
+6a57 20406a5d call mod2div 
+6a58 1fe2fe2b xor_into 0x2b ,pdata 
+6a59 1fe47e00 invert pdata ,pdata 
+6a5a 1fedfe00 reverse pdata ,pdata 
+6a5b 1fe20400 copy pdata ,temp 
+6a5c 20600000 rtn 
+
+mod2div:
+6a5d da600000 arg 0 ,regc 
+6a5e 1a427200 copy regb ,loopcnt 
+6a5f 20407e71 call right_shift_n 
+6a60 1fe20400 icopy temp 
+
+mod2div_loop:
+6a61 18427e00 copy temp ,pdata 
+6a62 1a63a600 lshift regc ,regc 
+6a63 c3046a66 bbit0 8 ,mod2div_not_enough_reduction 
+6a64 9a228400 ixor rega ,temp 
+6a65 1a60a601 increase 1 ,regc 
+
+mod2div_not_enough_reduction:
+6a66 18438400 lshift temp ,temp 
+6a67 680184f4 fetch 3 ,mem_mod2div_temp 
+6a68 1a40a5ff increase -1 ,regb 
+6a69 2a41feff compare 0xff ,regb ,0xff 
+6a6a 2020ea70 branch mod2div_end ,true 
+6a6b 1a427200 copy regb ,loopcnt 
+6a6c 20407e71 call right_shift_n 
+6a6d 2feffe00 isolate1 0 ,pdata 
+6a6e 79208400 setflag true ,0 ,temp 
+6a6f 20206a61 branch mod2div_loop 
+
+mod2div_end:
+6a70 18437e00 rshift temp ,pdata 
+6a71 20600000 rtn 
+
+get_rfcomm_snd_adss:
+6a72 6808c55d fetcht 1 ,mem_pn_dlci 
+
+dlci_to_address_cmd:
+6a73 184b8400 lshift2 temp ,temp 
+6a74 79200400 set1 rfcomm_address_ext_len ,temp 
+6a75 6800c563 fetch 1 ,mem_rfcomm_initiator 
+6a76 245a6a18 ncall set_cr_bit ,blank 
+6a77 6008850d storet 1 ,mem_rfcomm_send_adss 
+6a78 20600000 rtn 
+
+channel_to_dlci:
+6a79 18438400 lshift temp ,temp 
+6a7a 6800c563 fetch 1 ,mem_rfcomm_initiator 
+6a7b 793a0400 setflag blank ,0 ,temp 
+6a7c 20600000 rtn 
+
+rfcomm_rx_process_dlci0_sabm:
+6a7d 680884fc fetcht 1 ,mem_current_channel 
+6a7e 7004fed7 jam 0xd7 ,mem_current_fcs 
+6a7f 20406bb6 call rfcomm_send_ua 
+6a80 6800c251 fetch 1 ,mem_rfcomm_state 
+6a81 79207e06 set1 l2cap_channel_rfcomm_only_sabm ,pdata 
+6a82 79207e07 set1 l2cap_channel_rfcomm_only_ua ,pdata 
+6a83 6000c251 store 1 ,mem_rfcomm_state 
+6a84 70456300 jam 0 ,mem_rfcomm_initiator 
+6a85 20206b97 branch rfcomm_rx_process_end 
+
+rfcomm_rx_process_dlci0_ua:
+6a86 6800c251 fetch 1 ,mem_rfcomm_state 
+6a87 79207e07 set1 l2cap_channel_rfcomm_only_ua ,pdata 
+6a88 6000c251 store 1 ,mem_rfcomm_state 
+6a89 20206b97 branch rfcomm_rx_process_end 
+
+rfcomm_rx_process:
+6a8a 4752c034 bpatchx patch34_5 ,mem_patch34 
+6a8b 6800c681 fetch 1 ,memui_reconnect_mode 
+6a8c c0006a8e beq no_reconnection ,rfcomm_rx_process_remote_page 
+6a8d 20206b4c branch rfcomm_rx_process_reconn 
+
+rfcomm_rx_process_remote_page:
+6a8e 68010264 fetch 2 ,mem_l2cap_payload_ptr 
+6a8f 1fe20c00 copy pdata ,contr 
+6a90 20406ab8 call get_rfcomm_head_struct 
+6a91 680084fc fetch 1 ,mem_current_channel 
+6a92 c0006a94 beq 0 ,parse_dlci0_rp 
+6a93 20206b18 branch parse_uih_rp 
+
+parse_dlci0_rp:
+6a94 47534034 bpatchx patch34_6 ,mem_patch34 
+6a95 680084fd fetch 1 ,mem_current_frame_type 
+6a96 c01fea7d beq rfcomm_frame_type_sabm ,rfcomm_rx_process_dlci0_sabm 
+6a97 c039ea86 beq rfcomm_frame_type_ua ,rfcomm_rx_process_dlci0_ua 
+6a98 c077ea9b beq rfcomm_frame_type_uih ,parse_dlci0_rp_uih 
+6a99 c029eb44 beq rfcomm_frame_type_disconn ,parse_uih_rp_spp_disconn_send_event 
+6a9a 20600000 rtn 
+
+parse_dlci0_rp_uih:
+6a9b 68010501 fetch 2 ,mem_rfcomm_uih_payload_ptr 
+6a9c 1fe20c00 copy pdata ,contr 
+6a9d 20406ac3 call get_rfcomm_uih_head_struct 
+6a9e 68008503 fetch 1 ,mem_uih_cmd_type 
+6a9f c020eaa5 beq uih_param_neg_cmd ,parse_dlci0_rp_uih_pn_cmd 
+6aa0 c0206aad beq uih_param_neg_res ,parse_dlci0_rp_uih_pn_res 
+6aa1 c038eae6 beq uih_modem_status_cmd ,parse_dlci0_rp_uih_ms_cmd 
+6aa2 c0386af2 beq uih_modem_status_res ,parse_dlci0_rp_uih_ms_res 
+6aa3 c024eafd beq uih_param_cmd_remove_port ,parse_dlci0_rp_uih_cmd_port 
+6aa4 20206b97 branch rfcomm_rx_process_end 
+
+parse_dlci0_rp_uih_pn_cmd:
+6aa5 20406aaf call parse_dlci0_rp_uih_pn_res_common 
+6aa6 20206aa7 branch parse_dlci0_rp_uih_pn_cmd_spp 
+
+parse_dlci0_rp_uih_pn_cmd_spp:
+6aa7 6800c254 fetch 1 ,mem_spp_state 
+6aa8 79207e00 set1 rfcomm_channel_state_pn_cmd ,pdata 
+6aa9 79207e01 set1 rfcomm_channel_state_pn_res ,pdata 
+6aaa 6000c254 store 1 ,mem_spp_state 
+6aab 20406be0 call rfcomm_send_param_neg_res 
+6aac 20206b97 branch rfcomm_rx_process_end 
+
+parse_dlci0_rp_uih_pn_res:
+6aad 20406aaf call parse_dlci0_rp_uih_pn_res_common 
+6aae 20206b97 branch rfcomm_rx_process_end 
+
+parse_dlci0_rp_uih_pn_res_common:
+6aaf 20406acb call get_param_payload_ptr 
+6ab0 20206ad7 branch get_rfcomm_prarmer_negotiation 
+
+get_rfcomm_param_modem_status:
+6ab1 20406acb call get_param_payload_ptr 
+6ab2 e8c08000 ifetch 1 ,contr 
+6ab3 1fe97e00 rshift3 pdata ,pdata 
+6ab4 6000c56a store 1 ,mem_ms_channel 
+6ab5 e8c08000 ifetch 1 ,contr 
+6ab6 60008508 store 1 ,mem_ms_param 
+6ab7 20600000 rtn 
+
+get_rfcomm_head_struct:
+6ab8 e8c08000 ifetch 1 ,contr 
+6ab9 600084fb store 1 ,mem_current_adss 
+6aba 1fe97e00 rshift3 pdata ,pdata 
+6abb 600084fc store 1 ,mem_current_channel 
+6abc e8c08000 ifetch 1 ,contr 
+6abd 600084fd store 1 ,mem_current_frame_type 
+
+get_rfcomm_current_length:
+6abe 20406ace call get_rfcomm_length_common 
+6abf 600904ff storet 2 ,mem_current_length 
+6ac0 18c27e00 copy contr ,pdata 
+6ac1 60010501 store 2 ,mem_rfcomm_uih_payload_ptr 
+6ac2 20600000 rtn 
+
+get_rfcomm_uih_head_struct:
+6ac3 e8c08000 ifetch 1 ,contr 
+6ac4 1fe37e00 rshift pdata ,pdata 
+6ac5 60008503 store 1 ,mem_uih_cmd_type 
+6ac6 20406ace call get_rfcomm_length_common 
+6ac7 60090504 storet 2 ,mem_uih_length 
+6ac8 18c27e00 copy contr ,pdata 
+6ac9 60010506 store 2 ,mem_param_payload_ptr 
+6aca 20600000 rtn 
+
+get_param_payload_ptr:
+6acb 68010506 fetch 2 ,mem_param_payload_ptr 
+6acc 1fe20c00 copy pdata ,contr 
+6acd 20600000 rtn 
+
+get_rfcomm_length_common:
+6ace e8c08000 ifetch 1 ,contr 
+6acf 1fe20400 copy pdata ,temp 
+6ad0 18430400 rshift temp ,temp 
+6ad1 c3800000 rtnbit1 0 
+6ad2 e8c08000 ifetch 1 ,contr 
+6ad3 1fe9fe00 lshift3 pdata ,pdata 
+6ad4 1ff27e00 lshift4 pdata ,pdata 
+6ad5 98408400 iadd temp ,temp 
+6ad6 20600000 rtn 
+
+get_rfcomm_prarmer_negotiation:
+6ad7 e8c08000 ifetch 1 ,contr 
+6ad8 6000c55d store 1 ,mem_pn_dlci 
+6ad9 e8c08000 ifetch 1 ,contr 
+6ada 60008509 store 1 ,mem_pn_credit_flow_type_info 
+6adb e8c08000 ifetch 1 ,contr 
+6adc 6000850a store 1 ,mem_pn_priority 
+6add e8c08000 ifetch 1 ,contr 
+6ade 6000850b store 1 ,mem_pn_acknowledg_timer 
+6adf e8c10000 ifetch 2 ,contr 
+6ae0 6001455e store 2 ,mem_pn_max_frame_size 
+6ae1 e8c08000 ifetch 1 ,contr 
+6ae2 6000850c store 1 ,mem_pn_max_retrans 
+6ae3 e8c08000 ifetch 1 ,contr 
+6ae4 6000c568 store 1 ,mem_remote_credits 
+6ae5 20600000 rtn 
+
+parse_dlci0_rp_uih_ms_cmd:
+6ae6 20406ab1 call get_rfcomm_param_modem_status 
+6ae7 20206ae8 branch parse_dlci0_rp_uih_ms_cmd_spp 
+
+parse_dlci0_rp_uih_ms_cmd_spp:
+6ae8 6800c254 fetch 1 ,mem_spp_state 
+6ae9 79207e05 set1 rfcomm_channel_state_rcv_ms_cmd ,pdata 
+6aea 79207e06 set1 rfcomm_channel_state_snd_ms_res ,pdata 
+6aeb 6000c254 store 1 ,mem_spp_state 
+6aec 6808c55d fetcht 1 ,mem_pn_dlci 
+6aed 184b8400 lshift2 temp ,temp 
+6aee 18418403 or_into 3 ,temp 
+6aef 20406c11 call rfcomm_send_modem_status_res 
+6af0 70456703 jam more_pkt_msc_cmd_spp ,mem_rfcomm_send_more_pkt 
+6af1 20206b97 branch rfcomm_rx_process_end 
+
+parse_dlci0_rp_uih_ms_res:
+6af2 700a9908 jam bt_evt_spp_connected ,mem_fifo_temp 
+6af3 20407d86 call ui_ipc_send_event 
+6af4 20406ab1 call get_rfcomm_param_modem_status 
+6af5 6800c56a fetch 1 ,mem_ms_channel 
+6af6 1fe67c01 sub pdata ,1 ,null 
+6af7 2022eaf9 branch parse_dlci0_rp_uih_ms_res_spp ,zero 
+6af8 20202a8c branch assert 
+
+parse_dlci0_rp_uih_ms_res_spp:
+6af9 6800c254 fetch 1 ,mem_spp_state 
+6afa 79207e07 set1 rfcomm_channel_state_rcv_ms_res ,pdata 
+6afb 6000c254 store 1 ,mem_spp_state 
+6afc 20206b97 branch rfcomm_rx_process_end 
+
+parse_dlci0_rp_uih_cmd_port:
+6afd 20406acb call get_param_payload_ptr 
+6afe e8c08000 ifetch 1 ,contr 
+6aff 60008ac2 store 1 ,mem_rpn_dlci 
+6b00 204052d2 call l2cap_malloc_rfcomm_channel 
+6b01 204052e0 call l2cap_get_rfcomm_tx_buff 
+6b02 5800000e setarg 0x000e 
+6b03 e0a10000 istore 2 ,contw 
+6b04 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+6b05 e0a10000 istore 2 ,contw 
+6b06 6800c563 fetch 1 ,mem_rfcomm_initiator 
+6b07 1fe3fe00 lshift pdata ,pdata 
+6b08 79207e00 set1 0 ,pdata 
+6b09 e0a08000 istore 1 ,contw 
+6b0a 4753c034 bpatchx patch34_7 ,mem_patch34 
+6b0b 580015ef setarg 0x15ef 
+6b0c e0a10000 istore 2 ,contw 
+6b0d 58001191 setarg 0x1191 
+6b0e e0a10000 istore 2 ,contw 
+6b0f 68008ac2 fetch 1 ,mem_rpn_dlci 
+6b10 e0a08000 istore 1 ,contw 
+6b11 58000007 setarg 0x000007 
+6b12 e0a28000 istore 5 ,contw 
+6b13 58000001 setarg 0x01 
+6b14 e0a10000 istore 2 ,contw 
+6b15 20406a2f call rfcomm_calculate_fcs_dlci0 
+6b16 e0a08000 istore 1 ,contw 
+6b17 20600000 rtn 
+
+parse_uih_rp:
+6b18 20206b19 branch parse_uih_rp_spp 
+
+parse_uih_rp_spp:
+6b19 47544035 bpatchx patch35_0 ,mem_patch35 
+6b1a 680084fd fetch 1 ,mem_current_frame_type 
+6b1b c039eb21 beq rfcomm_frame_type_ua ,parse_uih_rp_spp_ua 
+6b1c c01feb25 beq rfcomm_frame_type_sabm ,parse_uih_rp_spp_sabm 
+6b1d c077eb3f beq rfcomm_frame_type_uih ,parse_uih_spp_uih 
+6b1e c07feb37 beq rfcomm_frame_type_uih_credits ,parse_uih_spp_uih_credits 
+6b1f c029eb46 beq rfcomm_frame_type_disconn ,parse_uih_rp_spp_disconn 
+6b20 20600000 rtn 
+
+parse_uih_rp_spp_ua:
+6b21 6800c254 fetch 1 ,mem_spp_state 
+6b22 79207e03 set1 rfcomm_channel_state_ua ,pdata 
+6b23 6000c254 store 1 ,mem_spp_state 
+6b24 20206b97 branch rfcomm_rx_process_end 
+
+parse_uih_rp_spp_sabm:
+6b25 6800c254 fetch 1 ,mem_spp_state 
+6b26 79207e03 set1 rfcomm_channel_state_ua ,pdata 
+6b27 79207e02 set1 rfcomm_channel_state_sabm ,pdata 
+6b28 6000c254 store 1 ,mem_spp_state 
+6b29 680084fb fetch 1 ,mem_current_adss 
+6b2a 20406a26 call rfcomm_calculate_fcs_ua 
+6b2b 600084fe store 1 ,mem_current_fcs 
+6b2c 20406bb6 call rfcomm_send_ua 
+6b2d 680084fb fetch 1 ,mem_current_adss 
+6b2e 1feb7e00 rshift2 pdata ,pdata 
+6b2f 6000c55d store 1 ,mem_pn_dlci 
+6b30 1febfe00 lshift2 pdata ,pdata 
+6b31 793ffe01 set0 rfcomm_address_cr ,pdata 
+6b32 79207e00 set1 rfcomm_address_ext_len ,pdata 
+6b33 d8404565 arg mem_hiufcs_spp ,temp 
+6b34 600904f7 storet 2 ,mem_contw_temp 
+6b35 20406a35 call rfcomm_save_fcs_uih 
+6b36 20206b97 branch rfcomm_rx_process_end 
+
+parse_uih_spp_uih_credits:
+6b37 68010501 fetch 2 ,mem_rfcomm_uih_payload_ptr 
+6b38 1fe20c00 copy pdata ,contr 
+6b39 1fe0fe01 increase 1 ,pdata 
+6b3a 60010501 store 2 ,mem_rfcomm_uih_payload_ptr 
+6b3b e8c08000 ifetch 1 ,contr 
+6b3c 6808c568 fetcht 1 ,mem_remote_credits 
+6b3d 9840fe00 iadd temp ,pdata 
+6b3e 6000c568 store 1 ,mem_remote_credits 
+
+parse_uih_spp_uih:
+6b3f 20406c42 call rfcomm_increase_credit_given 
+
+parse_uih_spp_uih_cont:
+6b40 20406a72 call get_rfcomm_snd_adss 
+6b41 20406c28 call rfcomm_send_uih_without_payload 
+6b42 20406c4b call spp_process_rx_data 
+6b43 20206b97 branch rfcomm_rx_process_end 
+
+parse_uih_rp_spp_disconn_send_event:
+6b44 700a9909 jam bt_evt_spp_disconnected ,mem_fifo_temp 
+6b45 20407d86 call ui_ipc_send_event 
+
+parse_uih_rp_spp_disconn:
+6b46 20406a0d call rfcomm_init_spp 
+6b47 680084fb fetch 1 ,mem_current_adss 
+6b48 20406a26 call rfcomm_calculate_fcs_ua 
+6b49 600084fe store 1 ,mem_current_fcs 
+6b4a 20406bb6 call rfcomm_send_ua 
+6b4b 20206b97 branch rfcomm_rx_process_end 
+
+rfcomm_rx_process_reconn:
+6b4c 68010264 fetch 2 ,mem_l2cap_payload_ptr 
+6b4d 1fe20c00 copy pdata ,contr 
+6b4e 20406ab8 call get_rfcomm_head_struct 
+6b4f 680084fc fetch 1 ,mem_current_channel 
+6b50 c0006b52 beq 0 ,parse_dlci0_reconn 
+6b51 20206b86 branch parse_uih_reconn 
+
+parse_dlci0_reconn:
+6b52 4754c035 bpatchx patch35_1 ,mem_patch35 
+6b53 680084fd fetch 1 ,mem_current_frame_type 
+6b54 c01fea7d beq rfcomm_frame_type_sabm ,rfcomm_rx_process_dlci0_sabm 
+6b55 c039ea86 beq rfcomm_frame_type_ua ,rfcomm_rx_process_dlci0_ua 
+6b56 c077eb58 beq rfcomm_frame_type_uih ,parse_dlci0_reconn_uih 
+6b57 20206b97 branch rfcomm_rx_process_end 
+
+parse_dlci0_reconn_uih:
+6b58 68010501 fetch 2 ,mem_rfcomm_uih_payload_ptr 
+6b59 1fe20c00 copy pdata ,contr 
+6b5a 20406ac3 call get_rfcomm_uih_head_struct 
+6b5b 68008503 fetch 1 ,mem_uih_cmd_type 
+6b5c c020eb61 beq uih_param_neg_cmd ,parse_dlci0_reconn_uih_pn_cmd 
+6b5d c0206b61 beq uih_param_neg_res ,parse_dlci0_reconn_uih_pn_cmd 
+6b5e c038eb6c beq uih_modem_status_cmd ,parse_dlci0_reconn_uih_ms_cmd 
+6b5f c0386b7c beq uih_modem_status_res ,parse_dlci0_reconn_uih_ms_res 
+6b60 20206b97 branch rfcomm_rx_process_end 
+
+parse_dlci0_reconn_uih_pn_cmd:
+6b61 20406aaf call parse_dlci0_rp_uih_pn_res_common 
+6b62 6800c55d fetch 1 ,mem_pn_dlci 
+6b63 1fe37e00 rshift pdata ,pdata 
+6b64 6808c564 fetcht 1 ,mem_remote_spp_channel 
+6b65 98467c00 isub temp ,null 
+6b66 2022eb68 branch parse_dlci0_reconn_uih_pn_cmd_spp ,zero 
+6b67 20202a8c branch assert 
+
+parse_dlci0_reconn_uih_pn_cmd_spp:
+6b68 6800c254 fetch 1 ,mem_spp_state 
+6b69 79207e01 set1 rfcomm_channel_state_pn_res ,pdata 
+6b6a 6000c254 store 1 ,mem_spp_state 
+6b6b 20206b97 branch rfcomm_rx_process_end 
+
+parse_dlci0_reconn_uih_ms_cmd:
+6b6c 20406ab1 call get_rfcomm_param_modem_status 
+6b6d 6800c56a fetch 1 ,mem_ms_channel 
+6b6e 6808c564 fetcht 1 ,mem_remote_spp_channel 
+6b6f 98467c00 isub temp ,null 
+6b70 2022eb73 branch parse_dlci0_reconn_uih_ms_cmd_spp ,zero 
+6b71 20202a8c branch assert 
+6b72 20206b97 branch rfcomm_rx_process_end 
+
+parse_dlci0_reconn_uih_ms_cmd_spp:
+6b73 6800c254 fetch 1 ,mem_spp_state 
+6b74 79207e05 set1 rfcomm_channel_state_rcv_ms_cmd ,pdata 
+6b75 79207e06 set1 rfcomm_channel_state_snd_ms_res ,pdata 
+6b76 6000c254 store 1 ,mem_spp_state 
+6b77 6808c55d fetcht 1 ,mem_pn_dlci 
+6b78 184b8400 lshift2 temp ,temp 
+6b79 18418403 or_into 3 ,temp 
+6b7a 20406c11 call rfcomm_send_modem_status_res 
+6b7b 20206b97 branch rfcomm_rx_process_end 
+
+parse_dlci0_reconn_uih_ms_res:
+6b7c 20406ab1 call get_rfcomm_param_modem_status 
+6b7d 6800c56a fetch 1 ,mem_ms_channel 
+6b7e 6808c564 fetcht 1 ,mem_remote_spp_channel 
+6b7f 98467c00 isub temp ,null 
+6b80 2022eb82 branch parse_dlci0_reconn_uih_ms_res_spp ,zero 
+6b81 20202a8c branch assert 
+
+parse_dlci0_reconn_uih_ms_res_spp:
+6b82 6800c254 fetch 1 ,mem_spp_state 
+6b83 79207e07 set1 rfcomm_channel_state_rcv_ms_res ,pdata 
+6b84 6000c254 store 1 ,mem_spp_state 
+6b85 20206b97 branch rfcomm_rx_process_end 
+
+parse_uih_reconn:
+6b86 680084fc fetch 1 ,mem_current_channel 
+6b87 6808c564 fetcht 1 ,mem_remote_spp_channel 
+6b88 98467c00 isub temp ,null 
+6b89 2022eb8c branch parse_uih_reconn_spp ,zero 
+6b8a 20202a8c branch assert 
+6b8b 20206b97 branch rfcomm_rx_process_end 
+
+parse_uih_reconn_spp:
+6b8c 680084fd fetch 1 ,mem_current_frame_type 
+6b8d c039eb91 beq rfcomm_frame_type_ua ,parse_uih_reconn_spp_ua 
+6b8e c077eb3f beq rfcomm_frame_type_uih ,parse_uih_spp_uih 
+6b8f c07feb37 beq rfcomm_frame_type_uih_credits ,parse_uih_spp_uih_credits 
+6b90 c029eb96 beq rfcomm_frame_type_disconn ,parse_uih_reconn_spp_disconn 
+
+parse_uih_reconn_spp_ua:
+6b91 6800c254 fetch 1 ,mem_spp_state 
+6b92 79207e03 set1 rfcomm_channel_state_ua ,pdata 
+6b93 6000c254 store 1 ,mem_spp_state 
+6b94 20206b97 branch rfcomm_rx_process_end 
+
+parse_uih_reconn_spp_sabm:
+6b95 20206b95 branch parse_uih_reconn_spp_sabm 
+
+parse_uih_reconn_spp_disconn:
+6b96 20206b46 branch parse_uih_rp_spp_disconn 
+
+rfcomm_rx_process_end:
+6b97 20600000 rtn 
+
+rfcomm_send_more_pkt:
+6b98 6800c567 fetch 1 ,mem_rfcomm_send_more_pkt 
+6b99 207a0000 rtn blank 
+6b9a c001eb9c beq more_pkt_msc_cmd_spp ,rfcomm_send_more_pkt_msc_cmd_spp 
+6b9b 20202a8c branch assert 
+
+rfcomm_send_more_pkt_msc_cmd_spp:
+6b9c 70456700 jam 0 ,mem_rfcomm_send_more_pkt 
+6b9d 204052d2 call l2cap_malloc_rfcomm_channel 
+6b9e d8400001 arg spp_slave_channel ,temp 
+6b9f 6808c55d fetcht 1 ,mem_pn_dlci 
+6ba0 184b8400 lshift2 temp ,temp 
+
+rfcomm_send_more_pkt_msc_cmd_spp0:
+6ba1 18418403 or_into 0x03 ,temp 
+6ba2 da2000aa arg 0xaa ,rega 
+6ba3 20406bfc call rfcomm_send_modem_status_cmd 
+6ba4 204052e0 call l2cap_get_rfcomm_tx_buff 
+6ba5 18a20c00 copy contw ,contr 
+6ba6 e8c10000 ifetch 2 ,contr 
+6ba7 203a2a8c branch assert ,blank 
+6ba8 20600000 rtn 
+
+rfcomm_send_sabm:
+6ba9 204052e0 call l2cap_get_rfcomm_tx_buff 
+6baa 58000004 setarg 0x0004 
+6bab e0a10000 istore 2 ,contw 
+6bac 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+6bad e0a10000 istore 2 ,contw 
+6bae 680084fb fetch 1 ,mem_current_adss 
+6baf e0a08000 istore 1 ,contw 
+6bb0 47554035 bpatchx patch35_2 ,mem_patch35 
+6bb1 5800013f setarg 0x013f 
+6bb2 e0a10000 istore 2 ,contw 
+6bb3 680084fe fetch 1 ,mem_current_fcs 
+6bb4 e0a08000 istore 1 ,contw 
+6bb5 20600000 rtn 
+
+rfcomm_send_ua:
+6bb6 204052d2 call l2cap_malloc_rfcomm_channel 
+6bb7 204052e0 call l2cap_get_rfcomm_tx_buff 
+6bb8 58000004 setarg 0x0004 
+6bb9 e0a10000 istore 2 ,contw 
+6bba 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+6bbb e0a10000 istore 2 ,contw 
+6bbc 680084fb fetch 1 ,mem_current_adss 
+6bbd e0a08000 istore 1 ,contw 
+6bbe 4755c035 bpatchx patch35_3 ,mem_patch35 
+6bbf 58000173 setarg 0x0173 
+6bc0 e0a10000 istore 2 ,contw 
+6bc1 680084fe fetch 1 ,mem_current_fcs 
+6bc2 e0a08000 istore 1 ,contw 
+6bc3 20600000 rtn 
+
+rfcomm_send_param_neg_cmd:
+6bc4 204052e0 call l2cap_get_rfcomm_tx_buff 
+6bc5 5800000e setarg 0x000e 
+6bc6 e0a10000 istore 2 ,contw 
+6bc7 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+6bc8 e0a10000 istore 2 ,contw 
+6bc9 6800c563 fetch 1 ,mem_rfcomm_initiator 
+6bca 1fe3fe00 lshift pdata ,pdata 
+6bcb 79207e00 set1 0 ,pdata 
+6bcc e0a08000 istore 1 ,contw 
+6bcd 47564035 bpatchx patch35_4 ,mem_patch35 
+6bce 580015ef setarg 0x15ef 
+6bcf e0a10000 istore 2 ,contw 
+6bd0 58001183 setarg 0x1183 
+6bd1 e0a10000 istore 2 ,contw 
+6bd2 18427e00 copy temp ,pdata 
+6bd3 e0a08000 istore 1 ,contw 
+6bd4 580000f0 setarg 0x0000f0 
+6bd5 e0a18000 istore 3 ,contw 
+6bd6 5800007f setarg rfcomm_max_frame_size 
+6bd7 e0a10000 istore 2 ,contw 
+6bd8 58000000 setarg 0 
+6bd9 e0a08000 istore 1 ,contw 
+6bda 58000001 setarg 0x01 
+6bdb e0a08000 istore 1 ,contw 
+6bdc 20406a2f call rfcomm_calculate_fcs_dlci0 
+6bdd e0a08000 istore 1 ,contw 
+6bde 70456910 jam 0x10 ,mem_credit_given 
+6bdf 20600000 rtn 
+
+rfcomm_send_param_neg_res:
+6be0 204052d2 call l2cap_malloc_rfcomm_channel 
+6be1 204052e0 call l2cap_get_rfcomm_tx_buff 
+6be2 5800000e setarg 0x000e 
+6be3 e0a10000 istore 2 ,contw 
+6be4 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+6be5 e0a10000 istore 2 ,contw 
+6be6 6800c563 fetch 1 ,mem_rfcomm_initiator 
+6be7 1fe3fe00 lshift pdata ,pdata 
+6be8 79207e00 set1 0 ,pdata 
+6be9 e0a08000 istore 1 ,contw 
+6bea 4756c035 bpatchx patch35_5 ,mem_patch35 
+6beb 580015ef setarg 0x15ef 
+6bec e0a10000 istore 2 ,contw 
+6bed 58001181 setarg 0x1181 
+6bee e0a10000 istore 2 ,contw 
+6bef 6800c55d fetch 1 ,mem_pn_dlci 
+6bf0 e0a08000 istore 1 ,contw 
+6bf1 580000e0 setarg 0x0000e0 
+6bf2 e0a18000 istore 3 ,contw 
+6bf3 6801456c fetch 2 ,mem_rfcomm_max_frame_size 
+6bf4 e0a10000 istore 2 ,contw 
+6bf5 58000000 setarg 0x00 
+6bf6 e0a08000 istore 1 ,contw 
+6bf7 6800c56e fetch 1 ,mem_rfcomm_credit_init_data 
+6bf8 e0a08000 istore 1 ,contw 
+6bf9 20406a2f call rfcomm_calculate_fcs_dlci0 
+6bfa e0a08000 istore 1 ,contw 
+6bfb 20600000 rtn 
+
+rfcomm_send_modem_status_cmd:
+6bfc 204052e0 call l2cap_get_rfcomm_tx_buff 
+6bfd 58000008 setarg 0x0008 
+6bfe e0a10000 istore 2 ,contw 
+6bff 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+6c00 e0a10000 istore 2 ,contw 
+6c01 6800c563 fetch 1 ,mem_rfcomm_initiator 
+6c02 1fe3fe00 lshift pdata ,pdata 
+6c03 79207e00 set1 0 ,pdata 
+6c04 e0a08000 istore 1 ,contw 
+6c05 47574035 bpatchx patch35_6 ,mem_patch35 
+6c06 580009ef setarg 0x09ef 
+6c07 e0a10000 istore 2 ,contw 
+6c08 580005e3 setarg 0x05e3 
+6c09 e0a10000 istore 2 ,contw 
+6c0a 18427e00 copy temp ,pdata 
+6c0b e0a08000 istore 1 ,contw 
+6c0c 5800008d setarg 0x8d 
+6c0d e0a08000 istore 1 ,contw 
+6c0e 20406a2f call rfcomm_calculate_fcs_dlci0 
+6c0f e0a08000 istore 1 ,contw 
+6c10 20600000 rtn 
+
+rfcomm_send_modem_status_res:
+6c11 204052d2 call l2cap_malloc_rfcomm_channel 
+6c12 204052e0 call l2cap_get_rfcomm_tx_buff 
+6c13 58000008 setarg 0x0008 
+6c14 e0a10000 istore 2 ,contw 
+6c15 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+6c16 e0a10000 istore 2 ,contw 
+6c17 18421600 copy temp ,timeup 
+6c18 6800c563 fetch 1 ,mem_rfcomm_initiator 
+6c19 1fe3fe00 lshift pdata ,pdata 
+6c1a 79207e00 set1 0 ,pdata 
+6c1b e0a08000 istore 1 ,contw 
+6c1c 4757c035 bpatchx patch35_7 ,mem_patch35 
+6c1d 580009ef setarg 0x09ef 
+6c1e e0a10000 istore 2 ,contw 
+6c1f 580005e1 setarg 0x05e1 
+6c20 e0a10000 istore 2 ,contw 
+6c21 19627e00 copy timeup ,pdata 
+6c22 e0a08000 istore 1 ,contw 
+6c23 5800008d setarg 0x8d 
+6c24 e0a08000 istore 1 ,contw 
+6c25 20406a2f call rfcomm_calculate_fcs_dlci0 
+6c26 e0a08000 istore 1 ,contw 
+6c27 20600000 rtn 
+
+rfcomm_send_uih_without_payload:
+6c28 47584036 bpatchx patch36_0 ,mem_patch36 
+6c29 6800c569 fetch 1 ,mem_credit_given 
+6c2a 207a0000 rtn blank 
+6c2b 68110112 hfetch 2 ,core_uart_rxitems 
+6c2c 247a0000 nrtn blank 
+6c2d 1a227e00 copy rega ,pdata 
+6c2e 60008a9b store 1 ,mem_pdatatemp + 1 
+6c2f 60088a9a storet 1 ,mem_pdatatemp 
+6c30 2040526e call l2cap_malloc_is_fifo_full 
+6c31 247a0000 nrtn blank 
+6c32 204052d2 call l2cap_malloc_rfcomm_channel 
+6c33 204052e0 call l2cap_get_rfcomm_tx_buff 
+6c34 58000005 setarg 0x05 
+6c35 e0a10000 istore 2 ,contw 
+6c36 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+6c37 e0a10000 istore 2 ,contw 
+6c38 6800850d fetch 1 ,mem_rfcomm_send_adss 
+6c39 e0a08000 istore 1 ,contw 
+6c3a 580001ff setarg 0x01ff 
+6c3b e0a10000 istore 2 ,contw 
+6c3c 6800c569 fetch 1 ,mem_credit_given 
+6c3d e0a08000 istore 1 ,contw 
+6c3e 6800c566 fetch 1 ,mem_hiufcs_spp_wcredits 
+6c3f e0a08000 istore 1 ,contw 
+6c40 70456900 jam 0 ,mem_credit_given 
+6c41 20600000 rtn 
+
+rfcomm_increase_credit_given:
+6c42 4758c036 bpatchx patch36_1 ,mem_patch36 
+6c43 6800c56b fetch 1 ,mem_credit_flag 
+6c44 c1008000 rtneq credit_enable 
+6c45 680104ff fetch 2 ,mem_current_length 
+6c46 207a0000 rtn blank 
+6c47 6800c569 fetch 1 ,mem_credit_given 
+6c48 1fe0fe01 increase 1 ,pdata 
+6c49 6000c569 store 1 ,mem_credit_given 
+6c4a 20600000 rtn 
+
+spp_process_rx_data:
+6c4b 6801456f fetch 2 ,mem_cb_receive_spp_data 
+6c4c 20207f9c branch callback_func 
+
+spp_tx_rfcomm_packet:
+6c4d 47594036 bpatchx patch36_2 ,mem_patch36 
+6c4e 6800c568 fetch 1 ,mem_remote_credits 
+6c4f 207a0000 rtn blank 
+6c50 1fe0ffff increase -1 ,pdata 
+6c51 6000c568 store 1 ,mem_remote_credits 
+6c52 6801455e fetch 2 ,mem_pn_max_frame_size 
+6c53 6809469f fetcht 2 ,mem_current_packet_length 
+6c54 98467c00 isub temp ,null 
+6c55 20216c57 branch ssp_tx_rfcomm_from_uart ,positive 
+6c56 6001469f store 2 ,mem_current_packet_length 
+
+ssp_tx_rfcomm_from_uart:
+6c57 6800c569 fetch 1 ,mem_credit_given 
+6c58 203a6c5f branch ssp_tx_rfcomm_from_uart_without_credit ,blank 
+6c59 70051001 jam 1 ,mem_rfcomm_send_offset 
+6c5a 6800c566 fetch 1 ,mem_hiufcs_spp_wcredits 
+6c5b 6000850f store 1 ,mem_rfcomm_send_fcs 
+6c5c 580000ff setarg rsp_rx_uih_wdata 
+6c5d 6000850e store 1 ,mem_rfcomm_send_frame_type 
+6c5e 20206c64 branch ssp_tx_rfcomm_from_uart_common 
+
+ssp_tx_rfcomm_from_uart_without_credit:
+6c5f 70051000 jam 0 ,mem_rfcomm_send_offset 
+6c60 6800c565 fetch 1 ,mem_hiufcs_spp 
+6c61 6000850f store 1 ,mem_rfcomm_send_fcs 
+6c62 580000ef setarg rsp_tx_uih 
+6c63 6000850e store 1 ,mem_rfcomm_send_frame_type 
+
+ssp_tx_rfcomm_from_uart_common:
+6c64 4759c036 bpatchx patch36_3 ,mem_patch36 
+6c65 6801469f fetch 2 ,mem_current_packet_length 
+6c66 1fe67c7f sub pdata ,127 ,null 
+6c67 20216c6b branch ssp_tx_rfcomm_from_uart_common0 ,positive 
+6c68 68008510 fetch 1 ,mem_rfcomm_send_offset 
+6c69 1fe0fe01 increase 1 ,pdata 
+6c6a 60008510 store 1 ,mem_rfcomm_send_offset 
+
+ssp_tx_rfcomm_from_uart_common0:
+6c6b 20406a72 call get_rfcomm_snd_adss 
+6c6c 6801469f fetch 2 ,mem_current_packet_length 
+6c6d 1fe0fe08 increase 8 ,pdata 
+6c6e 68088510 fetcht 1 ,mem_rfcomm_send_offset 
+6c6f 9840a200 iadd temp ,rega 
+6c70 20405240 call l2cap_malloc 
+6c71 60010277 store 2 ,mem_rfcomm_tx_buff_ptr 
+6c72 1fe0fe04 increase 4 ,pdata 
+6c73 60010279 store 2 ,mem_rfcomm_tx_payload_ptr 
+6c74 1fe20a00 copy pdata ,contw 
+6c75 6800850d fetch 1 ,mem_rfcomm_send_adss 
+6c76 e0a08000 istore 1 ,contw 
+6c77 6800850e fetch 1 ,mem_rfcomm_send_frame_type 
+6c78 e0a08000 istore 1 ,contw 
+6c79 20406c95 call ssp_tx_write_length 
+6c7a 20406ca6 call ssp_tx_write_given_credit 
+6c7b 475a4036 bpatchx patch36_4 ,mem_patch36 
+6c7c 68014571 fetch 2 ,mem_nl_rx_data_src 
+6c7d 1fe20600 copy pdata ,contru 
+6c7e 6801469f fetch 2 ,mem_current_packet_length 
+6c7f 1fe27200 copy pdata ,loopcnt 
+6c80 204066ea call uart_copy_rx_bytes_fast 
+6c81 18a20400 copy contw ,temp 
+6c82 18627e00 copy contru ,pdata 
+6c83 60014571 store 2 ,mem_nl_rx_data_src 
+6c84 18420a00 copy temp ,contw 
+6c85 6800850f fetch 1 ,mem_rfcomm_send_fcs 
+6c86 e0a08000 istore 1 ,contw 
+6c87 68010277 fetch 2 ,mem_rfcomm_tx_buff_ptr 
+6c88 1fe20a00 copy pdata ,contw 
+6c89 6801469f fetch 2 ,mem_current_packet_length 
+6c8a 68088510 fetcht 1 ,mem_rfcomm_send_offset 
+6c8b 9840fe00 iadd temp ,pdata 
+6c8c 1fe0fe04 increase 4 ,pdata 
+6c8d e0a10000 istore 2 ,contw 
+6c8e 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+6c8f e0a10000 istore 2 ,contw 
+6c90 70456900 jam 0 ,mem_credit_given 
+6c91 68014573 fetch 2 ,mem_nl_rx_len_all 
+6c92 c0003a97 beq 0 ,module_hci_command_tx_spp_tx_complete 
+6c93 700b0500 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+6c94 20600000 rtn 
+
+ssp_tx_write_length:
+6c95 475ac036 bpatchx patch36_5 ,mem_patch36 
+6c96 6801469f fetch 2 ,mem_current_packet_length 
+6c97 1fe67c7f sub pdata ,0x7f ,null 
+6c98 24216c9d nbranch ssp_tx_write_long_packet ,positive 
+6c99 1fe3fe00 lshift pdata ,pdata 
+6c9a 79207e00 set1 0 ,pdata 
+6c9b e0a08000 istore 1 ,contw 
+6c9c 20600000 rtn 
+
+ssp_tx_write_long_packet:
+6c9d 6801469f fetch 2 ,mem_current_packet_length 
+6c9e 1fe97e00 rshift3 pdata ,pdata 
+6c9f 1ff18400 rshift4 pdata ,temp 
+6ca0 1fe17e7f and_into 0x7f ,pdata 
+6ca1 1fe3fe00 lshift pdata ,pdata 
+6ca2 793ffe00 set0 0 ,pdata 
+6ca3 e0a08000 istore 1 ,contw 
+6ca4 e0a88000 istoret 1 ,contw 
+6ca5 20600000 rtn 
+
+ssp_tx_write_given_credit:
+6ca6 6800c569 fetch 1 ,mem_credit_given 
+6ca7 207a0000 rtn blank 
+6ca8 e0a08000 istore 1 ,contw 
+6ca9 20600000 rtn 
+
+scheduler_process:
+6caa 475b4036 bpatchx patch36_6 ,mem_patch36 
+6cab 20407d9c call check_51cmd 
+6cac 204032f6 call app_process_bb_event 
+6cad 2040631b call process_conn_sm 
+6cae 475bc036 bpatchx patch36_7 ,mem_patch36 
+6caf 204076dc call sp_calc_sequence 
+6cb0 204076b5 call simple_pairing_sequence 
+6cb1 204076c6 call master_simple_paring_sequence 
+6cb2 2040526e call l2cap_malloc_is_fifo_full 
+6cb3 247a0000 nrtn blank 
+6cb4 20404da9 call l2cap_call_proc_sigal_pending 
+6cb5 2040526e call l2cap_malloc_is_fifo_full 
+6cb6 247a0000 nrtn blank 
+6cb7 475c4037 bpatchx patch37_0 ,mem_patch37 
+6cb8 20406cf5 call process_upper_sm 
+6cb9 20404f64 call l2cap_send_config_req 
+6cba 20406b98 call rfcomm_send_more_pkt 
+
+scheduler_process0:
+6cbb 20406cbe call scheduler_tx_disconnect_hid 
+6cbc 475cc037 bpatchx patch37_1 ,mem_patch37 
+6cbd 202032f2 branch app_process_bt 
+
+scheduler_tx_disconnect_hid:
+6cbe 6800827f fetch 1 ,mem_control_tasks 
+6cbf c2805087 bbit1 l2cap_disconnect_interrupt ,l2cap_disconnect_interrupt_req 
+6cc0 c283d091 bbit1 l2cap_disconnect_control ,l2cap_disconnect_control_req 
+6cc1 20600000 rtn 
+
+scheduler_tx_l2cap_pkt:
+6cc2 475d4037 bpatchx patch37_2 ,mem_patch37 
+6cc3 20405274 call l2cap_malloc_is_fifo_empty 
+6cc4 207a0000 rtn blank 
+6cc5 6800804b fetch 1 ,mem_op 
+6cc6 c3830000 rtnbit1 op_txl2cap 
+6cc7 20405258 call l2cap_malloc_fifo_out 
+6cc8 6001016f store 2 ,mem_txptr 
+6cc9 1fe20c00 copy pdata ,contr 
+6cca e8c10000 ifetch 2 ,contr 
+6ccb 1fe0fe04 increase 4 ,pdata 
+6ccc 600141dc store 2 ,mem_tx_len 
+6ccd 7041db06 jam 6 ,mem_tx_lch 
+6cce 475dc037 bpatchx patch37_3 ,mem_patch37 
+6ccf 68014246 fetch 2 ,mem_l2cap_tx_multi_offset 
+6cd0 203a6cdd branch scheduler_tx_l2cap_start_pkt ,blank 
+6cd1 6800804b fetch 1 ,mem_op 
+6cd2 c4038000 rtnbit0 op_pkt_comp 
+6cd3 793ffe07 set0 op_pkt_comp ,pdata 
+6cd4 6000804b store 1 ,mem_op 
+6cd5 7041db05 jam 5 ,mem_tx_lch 
+6cd6 68094246 fetcht 2 ,mem_l2cap_tx_multi_offset 
+6cd7 6801016f fetch 2 ,mem_txptr 
+6cd8 9840fe00 iadd temp ,pdata 
+6cd9 6001016f store 2 ,mem_txptr 
+6cda 680141dc fetch 2 ,mem_tx_len 
+6cdb 98467e00 isub temp ,pdata 
+6cdc 600141dc store 2 ,mem_tx_len 
+
+scheduler_tx_l2cap_start_pkt:
+6cdd 475e4037 bpatchx patch37_4 ,mem_patch37 
+6cde 680141dc fetch 2 ,mem_tx_len 
+6cdf 203a2a8c branch assert ,blank 
+6ce0 d8400104 arg l2cap_max_pkt_len ,temp 
+6ce1 98467e00 isub temp ,pdata 
+6ce2 24216ce9 nbranch scheduler_tx_l2cap_last_pkt ,positive 
+6ce3 475ec037 bpatchx patch37_5 ,mem_patch37 
+6ce4 600941dc storet 2 ,mem_tx_len 
+6ce5 68014246 fetch 2 ,mem_l2cap_tx_multi_offset 
+6ce6 9840fe00 iadd temp ,pdata 
+6ce7 60014246 store 2 ,mem_l2cap_tx_multi_offset 
+6ce8 20206ceb branch scheduler_tx_l2cap_pkt_end 
+
+scheduler_tx_l2cap_last_pkt:
+6ce9 58000000 setarg 0 
+6cea 60014246 store 2 ,mem_l2cap_tx_multi_offset 
+
+scheduler_tx_l2cap_pkt_end:
+6ceb 6800804b fetch 1 ,mem_op 
+6cec 79207e06 set1 op_txl2cap ,pdata 
+6ced 6000804b store 1 ,mem_op 
+6cee 20600000 rtn 
+
+scheduler_start_upper_sm:
+6cef 6800c684 fetch 1 ,mem_ui_profile_supported 
+6cf0 c2806cf3 bbit1 support_hid ,scheduler_start_upper_sm_hid 
+6cf1 70028701 jam uppersm_reconn_sdp_conn ,mem_upper_sm_reconn 
+6cf2 20600000 rtn 
+
+scheduler_start_upper_sm_hid:
+6cf3 7002870f jam uppersm_reconn_hid_ctrl_conn ,mem_upper_sm_reconn 
+6cf4 20600000 rtn 
+
+process_upper_sm:
+6cf5 6800c681 fetch 1 ,memui_reconnect_mode 
+6cf6 243a6cfb nbranch process_upper_sm_reconn ,blank 
+
+process_upper_sm_remote_page:
+6cf7 68008286 fetch 1 ,mem_upper_sm_remote_page 
+6cf8 207a0000 rtn blank 
+6cf9 70028600 jam 0 ,mem_upper_sm_remote_page 
+
+process_upper_sm_rp_wait:
+6cfa 20600000 rtn 
+
+process_upper_sm_reconn:
+6cfb 475f4037 bpatchx patch37_6 ,mem_patch37 
+6cfc 68008287 fetch 1 ,mem_upper_sm_reconn 
+6cfd 207a0000 rtn blank 
+6cfe c000ed1b beq uppersm_reconn_sdp_conn ,process_upper_sm_reconn_sdp_conn 
+6cff c0016d74 beq uppersm_reconn_sdp_conn_wait ,process_upper_sm_reconn_sdp_conn_wait 
+6d00 c001ed21 beq uppersm_reconn_sdp_cfg ,process_upper_sm_reconn_sdp_cfg 
+6d01 c0026d78 beq uppersm_reconn_sdp_cfg_wait ,process_upper_sm_reconn_sdp_cfg_wait 
+6d02 c01ded2b beq uppersm_reconn_ss_spp ,process_upper_sm_reconn_ss_spp 
+6d03 c01e6d7b beq uppersm_reconn_ss_spp_wait ,process_upper_sm_reconn_ss_spp_wait 
+6d04 c006ed30 beq uppersm_reconn_sdp_disconn ,process_upper_sm_reconn_sdp_disconn 
+6d05 c0076d80 beq uppersm_reconn_sdp_disconn_wait ,process_upper_sm_reconn_sdp_disconn_wait 
+6d06 c007ed33 beq uppersm_reconn_hid_ctrl_conn ,process_upper_sm_reconn_hid_ctrl_conn 
+6d07 c0086d86 beq uppersm_reconn_hid_ctrl_conn_wait ,process_upper_sm_reconn_hid_ctrl_conn_wait 
+6d08 c008ed39 beq uppersm_reconn_hid_ctrl_cfg ,process_upper_sm_reconn_hid_ctrl_cfg 
+6d09 c0096d8a beq uppersm_reconn_hid_ctrl_cfg_wait ,process_upper_sm_reconn_hid_ctrl_cfg_wait 
+6d0a c009ed3f beq uppersm_reconn_hid_int_conn ,process_upper_sm_reconn_hid_int_conn 
+6d0b c00a6d8e beq uppersm_reconn_hid_int_conn_wait ,process_upper_sm_reconn_hid_int_conn_wait 
+6d0c c00aed45 beq uppersm_reconn_hid_int_cfg ,process_upper_sm_reconn_hid_int_cfg 
+6d0d c00b6d92 beq uppersm_reconn_hid_int_cfg_wait ,process_upper_sm_reconn_hid_int_cfg_wait 
+6d0e c00bed4b beq uppersm_reconn_rfcomm_conn ,process_upper_sm_reconn_rfcomm_conn 
+6d0f c00c6d97 beq uppersm_reconn_rfcomm_conn_wait ,process_upper_sm_reconn_rfcomm_conn_wait 
+6d10 c00ced51 beq uppersm_reconn_rfcomm_cfg ,process_upper_sm_reconn_rfcomm_cfg 
+6d11 c00d6d9b beq uppersm_reconn_rfcomm_cfg_wait ,process_upper_sm_reconn_rfcomm_cfg_wait 
+6d12 c00ded57 beq uppersm_reconn_rfcomm_sabm ,process_upper_sm_reconn_rfcomm_sabm 
+6d13 c00e6d9f beq uppersm_reconn_rfcomm_sabm_wait ,process_upper_sm_reconn_rfcomm_sabm_wait 
+6d14 c00eed5d beq uppersm_reconn_spp_cmd_pn ,process_upper_sm_reconn_spp_cmd_pn 
+6d15 c00f6da4 beq uppersm_reconn_spp_cmd_pn_wait ,process_upper_sm_reconn_spp_cmd_pn_wait 
+6d16 c00fed63 beq uppersm_reconn_spp_sabm ,process_upper_sm_reconn_spp_sabm 
+6d17 c0106da8 beq uppersm_reconn_spp_sabm_wait ,process_upper_sm_reconn_spp_sabm_wait 
+6d18 c010ed6e beq uppersm_reconn_spp_cmd_ms ,process_upper_sm_reconn_spp_cmd_ms 
+6d19 c0116dac beq uppersm_reconn_spp_cmd_ms_wait ,process_upper_sm_reconn_spp_cmd_ms_wait 
+
+process_upper_sm_reconn_wait:
+6d1a 20600000 rtn 
+
+process_upper_sm_reconn_sdp_conn:
+6d1b 20406db7 call upper_sm_send_sdp_conn 
+6d1c 70028702 jam uppersm_reconn_sdp_conn_wait ,mem_upper_sm_reconn 
+6d1d 6800c250 fetch 1 ,mem_sdp_state 
+6d1e 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
+6d1f 6000c250 store 1 ,mem_sdp_state 
+6d20 20600000 rtn 
+
+process_upper_sm_reconn_sdp_cfg:
+6d21 70028704 jam uppersm_reconn_sdp_cfg_wait ,mem_upper_sm_reconn 
+6d22 6800c250 fetch 1 ,mem_sdp_state 
+6d23 c3810000 rtnbit1 l2cap_channel_state_snd_cfg_req 
+6d24 70028703 jam uppersm_reconn_sdp_cfg ,mem_upper_sm_reconn 
+6d25 20406dbe call upper_sm_send_sdp_cfg 
+6d26 70028704 jam uppersm_reconn_sdp_cfg_wait ,mem_upper_sm_reconn 
+6d27 6800c250 fetch 1 ,mem_sdp_state 
+6d28 79207e02 set1 l2cap_channel_state_snd_cfg_req ,pdata 
+6d29 6000c250 store 1 ,mem_sdp_state 
+6d2a 20600000 rtn 
+
+process_upper_sm_reconn_ss_spp:
+6d2b 20405274 call l2cap_malloc_is_fifo_empty 
+6d2c 247a0000 nrtn blank 
+6d2d 20406dcd call upper_sm_send_ss_spp 
+6d2e 7002873c jam uppersm_reconn_ss_spp_wait ,mem_upper_sm_reconn 
+6d2f 20600000 rtn 
+
+process_upper_sm_reconn_sdp_disconn:
+6d30 20406dc3 call upper_sm_send_sdp_disconn 
+6d31 7002870e jam uppersm_reconn_sdp_disconn_wait ,mem_upper_sm_reconn 
+6d32 20600000 rtn 
+
+process_upper_sm_reconn_hid_ctrl_conn:
+6d33 20406ddd call upper_sm_send_hid_ctrl_conn 
+6d34 70028710 jam uppersm_reconn_hid_ctrl_conn_wait ,mem_upper_sm_reconn 
+6d35 6800c252 fetch 1 ,mem_hid_control_state 
+6d36 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
+6d37 6000c252 store 1 ,mem_hid_control_state 
+6d38 20600000 rtn 
+
+process_upper_sm_reconn_hid_ctrl_cfg:
+6d39 20406de4 call upper_sm_send_hid_ctrl_cfg 
+6d3a 70028712 jam uppersm_reconn_hid_ctrl_cfg_wait ,mem_upper_sm_reconn 
+6d3b 6800c252 fetch 1 ,mem_hid_control_state 
+6d3c 79207e02 set1 l2cap_channel_state_snd_cfg_req ,pdata 
+6d3d 6000c252 store 1 ,mem_hid_control_state 
+6d3e 20600000 rtn 
+
+process_upper_sm_reconn_hid_int_conn:
+6d3f 20406de9 call upper_sm_send_hid_int_conn 
+6d40 70028714 jam uppersm_reconn_hid_int_conn_wait ,mem_upper_sm_reconn 
+6d41 6800c253 fetch 1 ,mem_hid_interrupt_state 
+6d42 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
+6d43 6000c253 store 1 ,mem_hid_interrupt_state 
+6d44 20600000 rtn 
+
+process_upper_sm_reconn_hid_int_cfg:
+6d45 20406df0 call upper_sm_send_hid_int_cfg 
+6d46 70028716 jam uppersm_reconn_hid_int_cfg_wait ,mem_upper_sm_reconn 
+6d47 6800c253 fetch 1 ,mem_hid_interrupt_state 
+6d48 79207e02 set1 l2cap_channel_state_snd_cfg_req ,pdata 
+6d49 6000c253 store 1 ,mem_hid_interrupt_state 
+6d4a 20600000 rtn 
+
+process_upper_sm_reconn_rfcomm_conn:
+6d4b 20406dd1 call upper_sm_send_rfcomm_conn 
+6d4c 70028718 jam uppersm_reconn_rfcomm_conn_wait ,mem_upper_sm_reconn 
+6d4d 6800c251 fetch 1 ,mem_rfcomm_state 
+6d4e 79207e00 set1 l2cap_channel_state_conn_req ,pdata 
+6d4f 6000c251 store 1 ,mem_rfcomm_state 
+6d50 20600000 rtn 
+
+process_upper_sm_reconn_rfcomm_cfg:
+6d51 20406dd8 call upper_sm_send_rfcomm_cfg 
+6d52 7002871a jam uppersm_reconn_rfcomm_cfg_wait ,mem_upper_sm_reconn 
+6d53 6800c251 fetch 1 ,mem_rfcomm_state 
+6d54 79207e02 set1 l2cap_channel_state_snd_cfg_req ,pdata 
+6d55 6000c251 store 1 ,mem_rfcomm_state 
+6d56 20600000 rtn 
+
+process_upper_sm_reconn_rfcomm_sabm:
+6d57 20406df5 call upper_sm_send_rfcomm_sabm 
+6d58 7002871c jam uppersm_reconn_rfcomm_sabm_wait ,mem_upper_sm_reconn 
+6d59 6800c251 fetch 1 ,mem_rfcomm_state 
+6d5a 79207e06 set1 l2cap_channel_rfcomm_only_sabm ,pdata 
+6d5b 6000c251 store 1 ,mem_rfcomm_state 
+6d5c 20600000 rtn 
+
+process_upper_sm_reconn_spp_cmd_pn:
+6d5d 20406dfc call upper_sm_send_spp_cmd_pn 
+6d5e 6800c254 fetch 1 ,mem_spp_state 
+6d5f 79207e00 set1 rfcomm_channel_state_pn_cmd 
+6d60 6000c254 store 1 ,mem_spp_state 
+6d61 7002871e jam uppersm_reconn_spp_cmd_pn_wait ,mem_upper_sm_reconn 
+6d62 20600000 rtn 
+
+process_upper_sm_reconn_spp_sabm:
+6d63 20406e02 call upper_sm_send_spp_sabm 
+6d64 6800c254 fetch 1 ,mem_spp_state 
+6d65 79207e02 set1 rfcomm_channel_state_sabm 
+6d66 6000c254 store 1 ,mem_spp_state 
+6d67 70028720 jam uppersm_reconn_spp_sabm_wait ,mem_upper_sm_reconn 
+6d68 6800c564 fetch 1 ,mem_remote_spp_channel 
+6d69 1fe9fe00 lshift3 pdata ,pdata 
+6d6a 1fe1fe03 or_into 3 ,pdata 
+6d6b d8404565 arg mem_hiufcs_spp ,temp 
+6d6c 600904f7 storet 2 ,mem_contw_temp 
+6d6d 20206a35 branch rfcomm_save_fcs_uih 
+
+process_upper_sm_reconn_spp_cmd_ms:
+6d6e 20406e0c call upper_sm_send_spp_cmd_ms 
+6d6f 6800c254 fetch 1 ,mem_spp_state 
+6d70 79207e04 set1 rfcomm_channel_state_snd_ms_cmd 
+6d71 6000c254 store 1 ,mem_spp_state 
+6d72 70028722 jam uppersm_reconn_spp_cmd_ms_wait ,mem_upper_sm_reconn 
+6d73 20600000 rtn 
+
+process_upper_sm_reconn_sdp_conn_wait:
+6d74 6800c250 fetch 1 ,mem_sdp_state 
+6d75 c4008000 rtnbit0 l2cap_channel_state_conn_res 
+6d76 70028703 jam uppersm_reconn_sdp_cfg ,mem_upper_sm_reconn 
+6d77 20206cfb branch process_upper_sm_reconn 
+
+process_upper_sm_reconn_sdp_cfg_wait:
+6d78 6800c250 fetch 1 ,mem_sdp_state 
+6d79 c19f8000 rtnne l2cap_channel_setup_complete 
+6d7a 7002873b jam uppersm_reconn_ss_spp ,mem_upper_sm_reconn 
+
+process_upper_sm_reconn_ss_spp_wait:
+6d7b 68008285 fetch 1 ,mem_message_to_uppersm 
+6d7c c18b8000 rtnne recieve_ss_reasult_hf 
+6d7d 70028500 jam 0 ,mem_message_to_uppersm 
+6d7e 7002870d jam uppersm_reconn_sdp_disconn ,mem_upper_sm_reconn 
+6d7f 20206cfb branch process_upper_sm_reconn 
+
+process_upper_sm_reconn_sdp_disconn_wait:
+6d80 6800c250 fetch 1 ,mem_sdp_state 
+6d81 247a0000 nrtn blank 
+6d82 6800c684 fetch 1 ,mem_ui_profile_supported 
+6d83 c2806daf bbit1 support_hid ,process_upper_sm_reconn_setup_hid 
+6d84 c2836db1 bbit1 support_spp ,process_upper_sm_reconn_setup_rfcomm 
+6d85 20206db5 branch process_upper_sm_reconn_termination 
+
+process_upper_sm_reconn_hid_ctrl_conn_wait:
+6d86 6800c252 fetch 1 ,mem_hid_control_state 
+6d87 c4008000 rtnbit0 l2cap_channel_state_conn_res 
+6d88 70028711 jam uppersm_reconn_hid_ctrl_cfg ,mem_upper_sm_reconn 
+6d89 20206cfb branch process_upper_sm_reconn 
+
+process_upper_sm_reconn_hid_ctrl_cfg_wait:
+6d8a 6800c252 fetch 1 ,mem_hid_control_state 
+6d8b c19f8000 rtnne l2cap_channel_setup_complete 
+6d8c 70028713 jam uppersm_reconn_hid_int_conn ,mem_upper_sm_reconn 
+6d8d 20206cfb branch process_upper_sm_reconn 
+
+process_upper_sm_reconn_hid_int_conn_wait:
+6d8e 6800c253 fetch 1 ,mem_hid_interrupt_state 
+6d8f c4008000 rtnbit0 l2cap_channel_state_conn_res 
+6d90 70028715 jam uppersm_reconn_hid_int_cfg ,mem_upper_sm_reconn 
+6d91 20206cfb branch process_upper_sm_reconn 
+
+process_upper_sm_reconn_hid_int_cfg_wait:
+6d92 6800c253 fetch 1 ,mem_hid_interrupt_state 
+6d93 c19f8000 rtnne l2cap_channel_setup_complete 
+6d94 6800c684 fetch 1 ,mem_ui_profile_supported 
+6d95 c2836db1 bbit1 support_spp ,process_upper_sm_reconn_setup_rfcomm 
+6d96 20206db5 branch process_upper_sm_reconn_termination 
+
+process_upper_sm_reconn_rfcomm_conn_wait:
+6d97 6800c251 fetch 1 ,mem_rfcomm_state 
+6d98 c4008000 rtnbit0 l2cap_channel_state_conn_res 
+6d99 70028719 jam uppersm_reconn_rfcomm_cfg ,mem_upper_sm_reconn 
+6d9a 20206cfb branch process_upper_sm_reconn 
+
+process_upper_sm_reconn_rfcomm_cfg_wait:
+6d9b 6800c251 fetch 1 ,mem_rfcomm_state 
+6d9c c19f8000 rtnne l2cap_channel_setup_complete 
+6d9d 7002871b jam uppersm_reconn_rfcomm_sabm ,mem_upper_sm_reconn 
+6d9e 20206cfb branch process_upper_sm_reconn 
+
+process_upper_sm_reconn_rfcomm_sabm_wait:
+6d9f 6800c251 fetch 1 ,mem_rfcomm_state 
+6da0 c1ff8000 rtnne l2cap_channel_rfcomm_dlci0_opened 
+6da1 6800c684 fetch 1 ,mem_ui_profile_supported 
+6da2 c2836db3 bbit1 support_spp ,process_upper_sm_reconn_setup_spp 
+6da3 20206db5 branch process_upper_sm_reconn_termination 
+
+process_upper_sm_reconn_spp_cmd_pn_wait:
+6da4 6800c254 fetch 1 ,mem_spp_state 
+6da5 c4008000 rtnbit0 rfcomm_channel_state_pn_res 
+6da6 7002871f jam uppersm_reconn_spp_sabm ,mem_upper_sm_reconn 
+6da7 20206cfb branch process_upper_sm_reconn 
+
+process_upper_sm_reconn_spp_sabm_wait:
+6da8 6800c254 fetch 1 ,mem_spp_state 
+6da9 c4018000 rtnbit0 rfcomm_channel_state_ua 
+6daa 70028721 jam uppersm_reconn_spp_cmd_ms ,mem_upper_sm_reconn 
+6dab 20206cfb branch process_upper_sm_reconn 
+
+process_upper_sm_reconn_spp_cmd_ms_wait:
+6dac 6800c254 fetch 1 ,mem_spp_state 
+6dad c1ff8000 rtnne rfcomm_channel_setup_complete 
+6dae 20206db5 branch process_upper_sm_reconn_termination 
+
+process_upper_sm_reconn_setup_hid:
+6daf 7002870f jam uppersm_reconn_hid_ctrl_conn ,mem_upper_sm_reconn 
+6db0 20206cfb branch process_upper_sm_reconn 
+
+process_upper_sm_reconn_setup_rfcomm:
+6db1 70028717 jam uppersm_reconn_rfcomm_conn ,mem_upper_sm_reconn 
+6db2 20206cfb branch process_upper_sm_reconn 
+
+process_upper_sm_reconn_setup_spp:
+6db3 7002871d jam uppersm_reconn_spp_cmd_pn ,mem_upper_sm_reconn 
+6db4 20206cfb branch process_upper_sm_reconn 
+
+process_upper_sm_reconn_termination:
+6db5 70028700 jam 0 ,mem_upper_sm_reconn 
+6db6 20600000 rtn 
+
+upper_sm_send_sdp_conn:
+6db7 475fc037 bpatchx patch37_7 ,mem_patch37 
+6db8 204052b8 call l2cap_malloc_signal_channel 
+6db9 58000001 setarg psm_sdp 
+6dba 1fe20400 copy pdata ,temp 
+6dbb 58000050 setarg l2cap_sdp_channel 
+6dbc 1fe21600 copy pdata ,timeup 
+6dbd 202050a8 branch ml2cap_send_signal_connect_req 
+
+upper_sm_send_sdp_cfg:
+6dbe 47604038 bpatchx patch38_0 ,mem_patch38 
+6dbf 204052b8 call l2cap_malloc_signal_channel 
+6dc0 68014248 fetch 2 ,mem_sdp_remote_cid 
+6dc1 1fe20400 copy pdata ,temp 
+6dc2 202050b7 branch ml2cap_send_signal_config_req 
+
+upper_sm_send_sdp_disconn:
+6dc3 4760c038 bpatchx patch38_1 ,mem_patch38 
+6dc4 204052b8 call l2cap_malloc_signal_channel 
+6dc5 68014248 fetch 2 ,mem_sdp_remote_cid 
+6dc6 1fe20400 copy pdata ,temp 
+6dc7 d9600050 arg l2cap_sdp_channel ,timeup 
+6dc8 204050cc call ml2cap_send_signal_disconn_req 
+6dc9 6800c250 fetch 1 ,mem_sdp_state 
+6dca 793ffe05 set0 l2cap_channel_state_rcv_cfg_res ,pdata 
+6dcb 6000c250 store 1 ,mem_sdp_state 
+6dcc 20600000 rtn 
+
+upper_sm_send_ss_spp:
+6dcd 47614038 bpatchx patch38_2 ,mem_patch38 
+6dce 204052c5 call l2cap_malloc_sdp_channel 
+6dcf 20407138 call sdp_send_spp_request 
+6dd0 202050e7 branch msdp_send_req_done 
+
+upper_sm_send_rfcomm_conn:
+6dd1 4761c038 bpatchx patch38_3 ,mem_patch38 
+6dd2 204052b8 call l2cap_malloc_signal_channel 
+6dd3 58000003 setarg psm_rfcomm 
+6dd4 1fe20400 copy pdata ,temp 
+6dd5 58000051 setarg l2cap_rfcomm_channel 
+6dd6 1fe21600 copy pdata ,timeup 
+6dd7 202050a8 branch ml2cap_send_signal_connect_req 
+
+upper_sm_send_rfcomm_cfg:
+6dd8 47624038 bpatchx patch38_4 ,mem_patch38 
+6dd9 204052b8 call l2cap_malloc_signal_channel 
+6dda 6801424a fetch 2 ,mem_rfcomm_remote_cid 
+6ddb 1fe20400 copy pdata ,temp 
+6ddc 202050b7 branch ml2cap_send_signal_config_req 
+
+upper_sm_send_hid_ctrl_conn:
+6ddd 4762c038 bpatchx patch38_5 ,mem_patch38 
+6dde 204052b8 call l2cap_malloc_signal_channel 
+6ddf 58000011 setarg psm_hid_control 
+6de0 1fe20400 copy pdata ,temp 
+6de1 58000052 setarg l2cap_hid_control_channel 
+6de2 1fe21600 copy pdata ,timeup 
+6de3 202050a8 branch ml2cap_send_signal_connect_req 
+
+upper_sm_send_hid_ctrl_cfg:
+6de4 47634038 bpatchx patch38_6 ,mem_patch38 
+6de5 204052b8 call l2cap_malloc_signal_channel 
+6de6 6801424c fetch 2 ,mem_hid_ctrl_remote_cid 
+6de7 1fe20400 copy pdata ,temp 
+6de8 202050b7 branch ml2cap_send_signal_config_req 
+
+upper_sm_send_hid_int_conn:
+6de9 4763c038 bpatchx patch38_7 ,mem_patch38 
+6dea 204052b8 call l2cap_malloc_signal_channel 
+6deb 58000013 setarg psm_hid_interrupt 
+6dec 1fe20400 copy pdata ,temp 
+6ded 58000053 setarg l2cap_hid_interrupt_channel 
+6dee 1fe21600 copy pdata ,timeup 
+6def 202050a8 branch ml2cap_send_signal_connect_req 
+
+upper_sm_send_hid_int_cfg:
+6df0 47644039 bpatchx patch39_0 ,mem_patch39 
+6df1 204052b8 call l2cap_malloc_signal_channel 
+6df2 6801424e fetch 2 ,mem_hid_int_remote_cid 
+6df3 1fe20400 copy pdata ,temp 
+6df4 202050b7 branch ml2cap_send_signal_config_req 
+
+upper_sm_send_rfcomm_sabm:
+6df5 4764c039 bpatchx patch39_1 ,mem_patch39 
+6df6 204052d2 call l2cap_malloc_rfcomm_channel 
+6df7 7004fb03 jam 3 ,mem_current_adss 
+6df8 7004fe1c jam 0x1c ,mem_current_fcs 
+6df9 20406ba9 call rfcomm_send_sabm 
+6dfa 70456301 jam 1 ,mem_rfcomm_initiator 
+6dfb 20600000 rtn 
+
+upper_sm_send_spp_cmd_pn:
+6dfc 47654039 bpatchx patch39_2 ,mem_patch39 
+6dfd 204052d2 call l2cap_malloc_rfcomm_channel 
+6dfe 6808c564 fetcht 1 ,mem_remote_spp_channel 
+6dff 20406a79 call channel_to_dlci 
+6e00 6008c55d storet 1 ,mem_pn_dlci 
+6e01 20206bc4 branch rfcomm_send_param_neg_cmd 
+
+upper_sm_send_spp_sabm:
+6e02 4765c039 bpatchx patch39_3 ,mem_patch39 
+6e03 204052d2 call l2cap_malloc_rfcomm_channel 
+6e04 6808c55d fetcht 1 ,mem_pn_dlci 
+6e05 20406a73 call dlci_to_address_cmd 
+6e06 20406a1a call rfcomm_calculate_fcs_sabm 
+6e07 600084fe store 1 ,mem_current_fcs 
+6e08 6808c55d fetcht 1 ,mem_pn_dlci 
+6e09 20406a73 call dlci_to_address_cmd 
+6e0a 600884fb storet 1 ,mem_current_adss 
+6e0b 20206ba9 branch rfcomm_send_sabm 
+
+upper_sm_send_spp_cmd_ms:
+6e0c 47664039 bpatchx patch39_4 ,mem_patch39 
+6e0d 204052d2 call l2cap_malloc_rfcomm_channel 
+6e0e 6808c55d fetcht 1 ,mem_pn_dlci 
+6e0f 20406a73 call dlci_to_address_cmd 
+6e10 20206bfc branch rfcomm_send_modem_status_cmd 
+
+sdp_process:
+6e11 4766c039 bpatchx patch39_5 ,mem_patch39 
+6e12 68010264 fetch 2 ,mem_l2cap_payload_ptr 
+6e13 98000c00 iforce contr 
+6e14 e8c08000 ifetch 1 ,contr 
+6e15 1fe22400 copy pdata ,regb 
+6e16 6000851b store 1 ,mem_sdp_pduid 
+6e17 e8c10000 ifetch 2 ,contr 
+6e18 6001051c store 2 ,mem_sdp_transactionid 
+6e19 e8c08000 ifetch 1 ,contr 
+6e1a 1fed1600 lshift8 pdata ,timeup 
+6e1b e8c08000 ifetch 1 ,contr 
+6e1c 99609600 iadd timeup ,timeup 
+6e1d 47674039 bpatchx patch39_6 ,mem_patch39 
+6e1e 18c20400 copy contr ,temp 
+6e1f df200004 arg 4 ,loopcnt 
+6e20 d8a0052a arg mem_sdp_handle_list ,contw 
+6e21 20407ec6 call memset0 
+6e22 18420c00 copy temp ,contr 
+6e23 1a427e00 deposit regb 
+6e24 c000efba beq sdp_error_res ,sdp_process_error_res 
+6e25 c0016e2c beq sdp_search_req ,sdp_process_ss_req 
+6e26 c001efba beq sdp_search_res ,sdp_process_ss_res 
+6e27 c0026e54 beq sdp_attribute_req ,sdp_process_sa_req 
+6e28 c002efba beq sdp_attribute_res ,sdp_process_sa_res 
+6e29 c0036f02 beq sdp_searchattrib_req ,sdp_process_ssa_req 
+6e2a c003efba beq sdp_searchattrib_res ,sdp_process_ssa_res 
+6e2b 20206fc1 branch sdp_insufficient_resource 
+
+sdp_process_ss_req:
+6e2c 4767c039 bpatchx patch39_7 ,mem_patch39 
+6e2d 20406fd0 call ask_serviceclassid 
+6e2e 2841fe01 compare 1 ,temp ,0xff 
+6e2f 2020f040 branch ss_empty_rsp ,true 
+6e30 2841feff compare 0xff ,temp ,0xff 
+6e31 2020efc4 branch sdp_invalid_request_syntax ,true 
+6e32 e8c10000 ifetch 2 ,contr 
+6e33 60010522 store 2 ,mem_sdp_record_maxcnt 
+6e34 196097fe increase -2 ,timeup 
+6e35 196097ff increase -1 ,timeup 
+6e36 2422efbe nbranch sdp_invalid_pdu_size ,zero 
+6e37 d9600511 arg mem_sdp_uuid_search_ptr ,timeup 
+6e38 e9610000 ifetch 2 ,timeup 
+6e39 207a0000 rtn blank 
+6e3a 20407082 call search_all_uuid 
+6e3b 204052d0 call l2cap_get_sdp_tx_payload 
+6e3c 18007e03 force 3 ,pdata 
+6e3d e0a08000 istore 1 ,contw 
+6e3e 6801051c fetch 2 ,mem_sdp_transactionid 
+6e3f e0a10000 istore 2 ,contw 
+6e40 18ebfe00 lshift2 queue ,pdata 
+6e41 1fe0fe05 add pdata ,5 ,pdata 
+6e42 1fe0a605 add pdata ,5 ,regc 
+6e43 1ff0fe00 byteswap pdata ,pdata 
+6e44 e0a10000 istore 2 ,contw 
+6e45 18e27e00 deposit queue 
+6e46 1ff0fe00 byteswap pdata ,pdata 
+6e47 e0a10000 istore 2 ,contw 
+6e48 e0a10000 istore 2 ,contw 
+6e49 d8c0052a arg mem_sdp_handle_list ,contr 
+6e4a 18e27200 copy queue ,loopcnt 
+6e4b 2022ee4f branch ss_req_blank ,zero 
+
+ss_req_loop:
+6e4c e8c20000 ifetch 4 ,contr 
+6e4d e0a20000 istore 4 ,contw 
+6e4e c2006e4c loop ss_req_loop 
+
+ss_req_blank:
+6e4f 18007e00 force 0 ,pdata 
+6e50 e0a08000 istore 1 ,contw 
+6e51 1a627e00 deposit regc 
+6e52 60010275 store 2 ,mem_sdp_tx_pkt_length 
+6e53 20600000 rtn 
+
+sdp_process_sa_req:
+6e54 4768403a bpatchx patch3a_0 ,mem_patch3a 
+6e55 e8c20000 ifetch 4 ,contr 
+6e56 60020524 store 4 ,mem_sdp_record_handle 
+6e57 196097fc increase -4 ,timeup 
+6e58 20406f2e call sdp_store_maxbyte 
+6e59 60010520 store 2 ,mem_sdp_attribute_maxbyte 
+6e5a 196097fe increase -2 ,timeup 
+6e5b 20407028 call dataelementtype6 
+6e5c 2022efc4 branch sdp_invalid_request_syntax ,zero 
+6e5d 2a21fe05 compare 5 ,rega ,0xff 
+6e5e 2020ee62 branch sa_judge_wholerange ,true 
+
+sa_isnot_wholerange:
+6e5f d8a0052a arg mem_sdp_attrib_list ,contw 
+6e60 18000e00 force 0 ,queue 
+6e61 20206e71 branch sa_req_loop 
+
+sa_judge_wholerange:
+6e62 e8c08000 ifetch 1 ,contr 
+6e63 c0856fc4 bne sdp_attribute_range ,sdp_invalid_request_syntax 
+6e64 e8c10000 ifetch 2 ,contr 
+6e65 243a6e6f nbranch sa_judge_wholerange_false1 ,blank 
+6e66 e8c08000 ifetch 1 ,contr 
+6e67 c0ffee6d bne 0xff ,sa_judge_wholerange_false2 
+6e68 e8c08000 ifetch 1 ,contr 
+6e69 c0ffee6b bne 0xff ,sa_judge_wholerange_false3 
+6e6a 20206eb8 branch sa_req_all 
+
+sa_judge_wholerange_false3:
+6e6b 18c08dfb increase -5 ,contr 
+6e6c 20206e5f branch sa_isnot_wholerange 
+
+sa_judge_wholerange_false2:
+6e6d 18c08dfc increase -4 ,contr 
+6e6e 20206e5f branch sa_isnot_wholerange 
+
+sa_judge_wholerange_false1:
+6e6f 18c08dfd increase -3 ,contr 
+6e70 20206e5f branch sa_isnot_wholerange 
+
+sa_req_loop:
+6e71 e8c08000 ifetch 1 ,contr 
+6e72 c004ee86 beq sdp_attribute_id ,sa_req_one_id 
+6e73 c0056e74 beq sdp_attribute_range ,sa_req_range 
+
+sa_req_range:
+6e74 e8c10000 ifetch 2 ,contr 
+6e75 e0a10000 istore 2 ,contw 
+6e76 18e08e01 increase 1 ,queue 
+6e77 1ff0a400 byteswap pdata ,regb 
+6e78 e8c10000 ifetch 2 ,contr 
+6e79 1ff0fe00 byteswap pdata ,pdata 
+
+sa_req_range_id_increase:
+6e7a 1a40a401 increase 1 ,regb 
+6e7b 9a467c00 isub regb ,null 
+6e7c 24216e83 nbranch sa_req_range_id_finish ,positive 
+6e7d 1fe22600 copy pdata ,regc 
+6e7e 1a50fe00 byteswap regb ,pdata 
+6e7f e0a10000 istore 2 ,contw 
+6e80 18e08e01 increase 1 ,queue 
+6e81 1a627e00 copy regc ,pdata 
+6e82 20206e7a branch sa_req_range_id_increase 
+
+sa_req_range_id_finish:
+6e83 196097fb increase -5 ,timeup 
+6e84 1a20a3fb increase -5 ,rega 
+6e85 20206e8b branch sa_req_check_next_id 
+
+sa_req_one_id:
+6e86 e8c10000 ifetch 2 ,contr 
+6e87 e0a10000 istore 2 ,contw 
+6e88 18e08e01 increase 1 ,queue 
+6e89 196097fd increase -3 ,timeup 
+6e8a 1a20a3fd increase -3 ,rega 
+
+sa_req_check_next_id:
+6e8b 24216fc4 nbranch sdp_invalid_request_syntax ,positive 
+6e8c 2422ee71 nbranch sa_req_loop ,zero 
+6e8d 196097ff increase -1 ,timeup 
+6e8e 2422efc4 nbranch sdp_invalid_request_syntax ,zero 
+6e8f 204052d0 call l2cap_get_sdp_tx_payload 
+6e90 18a08a0a increase 10 ,contw 
+6e91 da20052a arg mem_sdp_attrib_list ,rega 
+
+sa_req_handle_attributelist_next:
+6e92 18e27e00 copy queue ,pdata 
+6e93 203a6ea5 branch sa_req_handle_attributelist_end ,blank 
+6e94 ea210000 ifetch 2 ,rega 
+6e95 203a6ea5 branch sa_req_handle_attributelist_end ,blank 
+6e96 98002400 iforce regb 
+6e97 68020524 fetch 4 ,mem_sdp_record_handle 
+6e98 98000400 iforce temp 
+6e99 204070e7 call search_handle_attrib 
+6e9a 18c27e00 copy contr ,pdata 
+6e9b 203a6ea2 branch sa_req_handle_attributelist_notfound ,blank 
+6e9c 18c08dfd increase -3 ,contr 
+6e9d e8c18000 ifetch 3 ,contr 
+6e9e e0a18000 istore 3 ,contw 
+6e9f 2040705b call sdp_data_len 
+6ea0 98007200 iforce loopcnt 
+6ea1 20407f01 call memcpy 
+
+sa_req_handle_attributelist_notfound:
+6ea2 1a20a202 increase 2 ,rega 
+6ea3 18e08fff increase -1 ,queue 
+6ea4 20206e92 branch sa_req_handle_attributelist_next 
+
+sa_req_handle_attributelist_end:
+6ea5 da200005 arg sdp_attribute_res ,rega 
+6ea6 20406f84 call ssa_req_range_lastfreg_common 
+6ea7 68010275 fetch 2 ,mem_sdp_tx_pkt_length 
+6ea8 c005f043 beq 11 ,sa_empty_rsp 
+6ea9 20206f9a branch ssa_req_range_attrbutes_length_no_continue 
+
+sdp_store_continue_common:
+6eaa e8c08000 ifetch 1 ,contr 
+6eab c0006eae beq 0 ,sdp_store_continue_0byte 
+6eac c000eeb0 beq 1 ,sdp_store_continue_1byte 
+6ead c0016eb3 beq 2 ,sdp_store_continue_2byte 
+
+sdp_store_continue_0byte:
+6eae 196097ff increase -1 ,timeup 
+6eaf 20206eb6 branch sdp_store_continue_end 
+
+sdp_store_continue_1byte:
+6eb0 e8c08000 ifetch 1 ,contr 
+6eb1 196097fe increase -2 ,timeup 
+6eb2 20206eb6 branch sdp_store_continue_end 
+
+sdp_store_continue_2byte:
+6eb3 e8c10000 ifetch 2 ,contr 
+6eb4 1ff0fe00 byteswap pdata ,pdata 
+6eb5 196097fd increase -3 ,timeup 
+
+sdp_store_continue_end:
+6eb6 60010519 store 2 ,mem_sdp_continue_byte 
+6eb7 20600000 rtn 
+
+sa_req_all:
+6eb8 196097fb increase -5 ,timeup 
+6eb9 20406eaa call sdp_store_continue_common 
+6eba 2422efbe nbranch sdp_invalid_pdu_size ,zero 
+6ebb 680a0524 fetcht 4 ,mem_sdp_record_handle 
+6ebc 204070b1 call search_handle 
+6ebd 2422efbb nbranch sdp_invalid_service_record_handle ,zero 
+6ebe 18c22200 copy contr ,rega 
+6ebf 204052d0 call l2cap_get_sdp_tx_payload 
+6ec0 1a220c00 copy rega ,contr 
+6ec1 18a08a03 increase 3 ,contw 
+6ec2 18c21600 copy contr ,timeup 
+6ec3 20407062 call sdp_get_data 
+6ec4 1fe22200 copy pdata ,rega 
+6ec5 68010519 fetch 2 ,mem_sdp_continue_byte 
+6ec6 1fe22400 copy pdata ,regb 
+6ec7 1a227e00 copy rega ,pdata 
+6ec8 9a462400 isub regb ,regb 
+6ec9 68010520 fetch 2 ,mem_sdp_attribute_maxbyte 
+6eca 9a467c00 isub regb ,null 
+6ecb 24216ee7 nbranch sa_req_all_fragment_sdp ,positive 
+6ecc 78547c00 disable user 
+6ecd 68010519 fetch 2 ,mem_sdp_continue_byte 
+6ece 203a6eda branch sa_req_all_fisrt_fragment ,blank 
+6ecf 99608c00 iadd timeup ,contr 
+6ed0 1a40a403 increase 3 ,regb 
+6ed1 1a427200 copy regb ,loopcnt 
+6ed2 1f227e00 copy loopcnt ,pdata 
+6ed3 1fe0fe03 increase 3 ,pdata 
+6ed4 1ff0fe00 byteswap pdata ,pdata 
+6ed5 e0a10000 istore 2 ,contw 
+6ed6 1f227e00 copy loopcnt ,pdata 
+6ed7 1ff0fe00 byteswap pdata ,pdata 
+6ed8 e0a10000 istore 2 ,contw 
+6ed9 20206ef5 branch sa_req_all_answer_attributelist_full_loop 
+
+sa_req_all_fisrt_fragment:
+6eda 1a20f206 add rega ,6 ,loopcnt 
+6edb 20346ede branch sa_req_all_parlength_continue_byte ,user 
+6edc 1f30fe00 byteswap loopcnt ,pdata 
+6edd 20206ee1 branch sa_req_all_parlength_continue_byte_end 
+
+sa_req_all_parlength_continue_byte:
+6ede 1f227e00 copy loopcnt ,pdata 
+6edf 1fe0fe02 increase 2 ,pdata 
+6ee0 1ff0fe00 byteswap pdata ,pdata 
+
+sa_req_all_parlength_continue_byte_end:
+6ee1 e0a10000 istore 2 ,contw 
+6ee2 1f20f3fd increase -3 ,loopcnt 
+6ee3 1f30fe00 byteswap loopcnt ,pdata 
+6ee4 e0a10000 istore 2 ,contw 
+6ee5 19620c00 copy timeup ,contr 
+6ee6 20206ef5 branch sa_req_all_answer_attributelist_full_loop 
+
+sa_req_all_fragment_sdp:
+6ee7 78347c00 enable user 
+6ee8 68010520 fetch 2 ,mem_sdp_attribute_maxbyte 
+6ee9 1fe22200 copy pdata ,rega 
+6eea 1a227200 copy rega ,loopcnt 
+6eeb 68010519 fetch 2 ,mem_sdp_continue_byte 
+6eec 203a6eda branch sa_req_all_fisrt_fragment ,blank 
+6eed 99608c00 iadd timeup ,contr 
+6eee 1a227e00 copy rega ,pdata 
+6eef 1fe0fe05 increase 5 ,pdata 
+6ef0 1ff0fe00 byteswap pdata ,pdata 
+6ef1 e0a10000 istore 2 ,contw 
+6ef2 1a227e00 copy rega ,pdata 
+6ef3 1ff0fe00 byteswap pdata ,pdata 
+6ef4 e0a10000 istore 2 ,contw 
+
+sa_req_all_answer_attributelist_full_loop:
+6ef5 20407f01 call memcpy 
+6ef6 24346efe nbranch sa_req_all_last_frag_continue ,user 
+6ef7 18007e02 force 2 ,pdata 
+6ef8 e0a08000 istore 1 ,contw 
+6ef9 18c27e00 copy contr ,pdata 
+6efa 99667e00 isub timeup ,pdata 
+6efb 1ff0fe00 byteswap pdata ,pdata 
+6efc e0a10000 istore 2 ,contw 
+6efd 20206f00 branch sa_req_all_frag_end 
+
+sa_req_all_last_frag_continue:
+6efe 18007e00 force 0 ,pdata 
+6eff e0a08000 istore 1 ,contw 
+
+sa_req_all_frag_end:
+6f00 da200005 arg sdp_attribute_res ,rega 
+6f01 20206fb0 branch ssa_req_range_common 
+
+sdp_process_ssa_req:
+6f02 4768c03a bpatchx patch3a_1 ,mem_patch3a 
+6f03 20406fd0 call ask_serviceclassid 
+6f04 2841feff compare 0xff ,temp ,0xff 
+6f05 2020efc4 branch sdp_invalid_request_syntax ,true 
+6f06 20406f2e call sdp_store_maxbyte 
+6f07 60010520 store 2 ,mem_sdp_attribute_maxbyte 
+6f08 196097fe increase -2 ,timeup 
+6f09 20407028 call dataelementtype6 
+6f0a d8a0052a arg mem_sdp_attrib_list ,contw 
+6f0b 18000e00 force 0 ,queue 
+
+ssa_req_loop:
+6f0c e8c08000 ifetch 1 ,contr 
+6f0d c0056f36 beq sdp_attribute_range ,ssa_req_range 
+6f0e e8c10000 ifetch 2 ,contr 
+6f0f e0a10000 istore 2 ,contw 
+6f10 18e08e01 increase 1 ,queue 
+6f11 196097fd increase -3 ,timeup 
+6f12 1a20a3fd increase -3 ,rega 
+6f13 24216fc4 nbranch sdp_invalid_request_syntax ,positive 
+6f14 2422ef0c nbranch ssa_req_loop ,zero 
+6f15 196097ff increase -1 ,timeup 
+6f16 2422efc4 nbranch sdp_invalid_request_syntax ,zero 
+6f17 204052d0 call l2cap_get_sdp_tx_payload 
+6f18 18a08a0d increase 13 ,contw 
+6f19 68010511 fetch 2 ,mem_sdp_uuid_search_ptr 
+6f1a 98002600 iforce regc 
+6f1b da20052a arg mem_sdp_attrib_list ,rega 
+
+ssa_req_attributelist_next:
+6f1c ea210000 ifetch 2 ,rega 
+6f1d 203a6f29 branch ssa_req_attributelist_end ,blank 
+6f1e 98002400 iforce regb 
+6f1f 204070c6 call search_attrib 
+6f20 203a6f27 branch ssa_req_attributelist_notfound ,blank 
+6f21 18c08dfd increase -3 ,contr 
+6f22 e8c18000 ifetch 3 ,contr 
+6f23 e0a18000 istore 3 ,contw 
+6f24 2040705b call sdp_data_len 
+6f25 98007200 iforce loopcnt 
+6f26 20407f01 call memcpy 
+
+ssa_req_attributelist_notfound:
+6f27 1a20a202 increase 2 ,rega 
+6f28 20206f1c branch ssa_req_attributelist_next 
+
+ssa_req_attributelist_end:
+6f29 20406f83 call ssa_req_range_lastfreg 
+6f2a 68010275 fetch 2 ,mem_sdp_tx_pkt_length 
+6f2b c0077046 beq 14 ,ssa_empty_rsp 
+6f2c 20406f9a call ssa_req_range_attrbutes_length_no_continue 
+6f2d 20206f9a branch ssa_req_range_attrbutes_length_no_continue 
+
+sdp_store_maxbyte:
+6f2e e8c10000 ifetch 2 ,contr 
+6f2f 1ff0fe00 byteswap pdata ,pdata 
+6f30 1fe0fffd increase -3 ,pdata 
+6f31 d84000c8 arg 200 ,temp 
+6f32 98467c00 isub temp ,null 
+6f33 24610000 nrtn positive 
+6f34 580000c8 setarg 200 
+6f35 20600000 rtn 
+
+ssa_req_range:
+6f36 18c08c04 increase 4 ,contr 
+6f37 196097fb increase -5 ,timeup 
+6f38 1a20a3fb increase -5 ,rega 
+6f39 2422efc4 nbranch sdp_invalid_request_syntax ,zero 
+6f3a 20406eaa call sdp_store_continue_common 
+6f3b 2422efbe nbranch sdp_invalid_pdu_size ,zero 
+6f3c d9600511 arg mem_sdp_uuid_search_ptr ,timeup 
+6f3d 20407082 call search_all_uuid 
+6f3e 18e27e00 deposit queue 
+6f3f 203a7046 branch ssa_empty_rsp ,blank 
+6f40 6000854e store 1 ,mem_handle_humber 
+6f41 1a427e00 copy regb ,pdata 
+6f42 6001054c store 2 ,mem_sdp_all_length 
+6f43 d8e00000 arg 0 ,queue 
+6f44 da200000 arg 0 ,rega 
+6f45 204052d0 call l2cap_get_sdp_tx_payload 
+6f46 18a08a0a increase 10 ,contw 
+
+ssa_req_range_find_handle:
+6f47 20406f6c call ssa_req_range_get_length 
+6f48 24342a8c nbranch assert ,user 
+6f49 18c21600 copy contr ,timeup 
+6f4a 1fe22600 copy pdata ,regc 
+6f4b 9a20a200 iadd rega ,rega 
+6f4c 68010519 fetch 2 ,mem_sdp_continue_byte 
+6f4d 1fe22400 copy pdata ,regb 
+6f4e 203a6f75 branch ssa_req_range_first_freg ,blank 
+
+ssa_req_range_later_freg_with_continue:
+6f4f 1a227e00 copy rega ,pdata 
+6f50 9a462400 isub regb ,regb 
+6f51 2022ef67 branch ssa_req_range_next_handle ,zero 
+6f52 24216f67 nbranch ssa_req_range_next_handle ,positive 
+6f53 68010520 fetch 2 ,mem_sdp_attribute_maxbyte 
+6f54 9a467c00 isub regb ,null 
+6f55 2022ef5e branch ssa_req_range_maxbyte_with_continue ,zero 
+6f56 24216f5e nbranch ssa_req_range_maxbyte_with_continue ,positive 
+
+ssa_req_range_send_not_maxbyte:
+6f57 1a427200 copy regb ,loopcnt 
+6f58 20406f61 call ssa_req_range_maxbyte_with_continue_cpy 
+6f59 6800854e fetch 1 ,mem_handle_humber 
+6f5a 18e08e01 increase 1 ,queue 
+6f5b 98e67c00 isub queue ,null 
+6f5c 2022ef83 branch ssa_req_range_lastfreg ,zero 
+6f5d 20206fa0 branch ssa_req_range_freg_with_continue 
+
+ssa_req_range_maxbyte_with_continue:
+6f5e 1fe27200 copy pdata ,loopcnt 
+6f5f 20406f61 call ssa_req_range_maxbyte_with_continue_cpy 
+6f60 20206fa0 branch ssa_req_range_freg_with_continue 
+
+ssa_req_range_maxbyte_with_continue_cpy:
+6f61 18a08bfd increase -3 ,contw 
+6f62 1f220400 copy loopcnt ,temp 
+6f63 1a627e00 copy regc ,pdata 
+6f64 9a467e00 isub regb ,pdata 
+6f65 99608c00 iadd timeup ,contr 
+6f66 20207f01 branch memcpy 
+
+ssa_req_range_next_handle:
+6f67 6800854e fetch 1 ,mem_handle_humber 
+6f68 18e08e01 increase 1 ,queue 
+6f69 98e67c00 isub queue ,null 
+6f6a 20628000 rtn zero 
+6f6b 20206f47 branch ssa_req_range_find_handle 
+
+ssa_req_range_get_length:
+6f6c 20407fe9 call disable_user 
+6f6d d8c0052a arg mem_sdp_handle_list ,contr 
+6f6e 18ebfe00 lshift2 queue ,pdata 
+6f6f 98c08c00 iadd contr ,contr 
+6f70 e8ca0000 ifetcht 4 ,contr 
+6f71 204070b1 call search_handle 
+6f72 24628000 nrtn zero 
+6f73 2040705b call sdp_data_len 
+6f74 20207fe7 branch enable_user 
+
+ssa_req_range_first_freg:
+6f75 68010520 fetch 2 ,mem_sdp_attribute_maxbyte 
+6f76 9a267c00 isub rega ,null 
+6f77 24216f8f nbranch ssa_req_range_firstfreg_maxbyte_with_continue ,positive 
+6f78 1a227200 copy rega ,loopcnt 
+6f79 1f220400 copy loopcnt ,temp 
+6f7a 19620c00 copy timeup ,contr 
+6f7b 20407f01 call memcpy 
+6f7c 6801054c fetch 2 ,mem_sdp_all_length 
+6f7d 9a267c00 isub rega ,null 
+6f7e 2022ef81 branch ssa_req_range_freg_no_continue ,zero 
+
+ssa_req_range_firstfreg_not_maxbyte_with_continue:
+6f7f 20406fa0 call ssa_req_range_freg_with_continue 
+6f80 20206f94 branch ssa_req_range_attrbutes_length 
+
+ssa_req_range_freg_no_continue:
+6f81 20406f83 call ssa_req_range_lastfreg 
+6f82 20206f94 branch ssa_req_range_attrbutes_length 
+
+ssa_req_range_lastfreg:
+6f83 da200007 arg sdp_searchattrib_res ,rega 
+
+ssa_req_range_lastfreg_common:
+6f84 18007e00 force 0 ,pdata 
+6f85 e0a08000 istore 1 ,contw 
+6f86 20406fb0 call ssa_req_range_common 
+6f87 68090275 fetcht 2 ,mem_sdp_tx_pkt_length 
+6f88 184085fb increase -5 ,temp 
+6f89 1850fe00 byteswap temp ,pdata 
+6f8a e0a10000 istore 2 ,contw 
+6f8b 184085fd increase -3 ,temp 
+6f8c 1850fe00 byteswap temp ,pdata 
+6f8d e0a10000 istore 2 ,contw 
+6f8e 20600000 rtn 
+
+ssa_req_range_firstfreg_maxbyte_with_continue:
+6f8f 1fe27200 copy pdata ,loopcnt 
+6f90 1f220400 copy loopcnt ,temp 
+6f91 19620c00 copy timeup ,contr 
+6f92 20407f01 call memcpy 
+6f93 20406fa0 call ssa_req_range_freg_with_continue 
+
+ssa_req_range_attrbutes_length:
+6f94 58000036 setarg 0x36 
+6f95 e0a08000 istore 1 ,contw 
+6f96 6801054c fetch 2 ,mem_sdp_all_length 
+6f97 1ff0fe00 byteswap pdata ,pdata 
+6f98 e0a10000 istore 2 ,contw 
+6f99 20600000 rtn 
+
+ssa_req_range_attrbutes_length_no_continue:
+6f9a 58000036 setarg 0x36 
+6f9b e0a08000 istore 1 ,contw 
+6f9c 184085fd increase -3 ,temp 
+6f9d 1850fe00 byteswap temp ,pdata 
+6f9e e0a10000 istore 2 ,contw 
+6f9f 20600000 rtn 
+
+ssa_req_range_freg_with_continue:
+6fa0 da200007 arg sdp_searchattrib_res ,rega 
+6fa1 58000002 setarg 2 
+6fa2 e0a08000 istore 1 ,contw 
+6fa3 68010519 fetch 2 ,mem_sdp_continue_byte 
+6fa4 98408400 iadd temp ,temp 
+6fa5 1850fe00 byteswap temp ,pdata 
+6fa6 e0a10000 istore 2 ,contw 
+6fa7 20406fb0 call ssa_req_range_common 
+6fa8 68090275 fetcht 2 ,mem_sdp_tx_pkt_length 
+6fa9 184085fb increase -5 ,temp 
+6faa 1850fe00 byteswap temp ,pdata 
+6fab e0a10000 istore 2 ,contw 
+6fac 184085fb increase -5 ,temp 
+6fad 1850fe00 byteswap temp ,pdata 
+6fae e0a10000 istore 2 ,contw 
+6faf 20600000 rtn 
+
+ssa_req_range_common:
+6fb0 68010273 fetch 2 ,mem_sdp_tx_payload_ptr 
+6fb1 98a67e00 isub contw ,pdata 
+6fb2 1fe67e00 sub pdata ,0 ,pdata 
+6fb3 60010275 store 2 ,mem_sdp_tx_pkt_length 
+6fb4 204052d0 call l2cap_get_sdp_tx_payload 
+6fb5 1a227e00 copy rega ,pdata 
+6fb6 e0a08000 istore 1 ,contw 
+6fb7 6801051c fetch 2 ,mem_sdp_transactionid 
+6fb8 e0a10000 istore 2 ,contw 
+6fb9 20600000 rtn 
+
+sdp_process_ssa_res:
+
+sdp_process_ss_res:
+
+sdp_process_sa_res:
+
+sdp_process_error_res:
+6fba 20600000 rtn 
+
+sdp_invalid_service_record_handle:
+6fbb 58000200 setarg 0x0200 
+6fbc 6001054a store 2 ,mem_sdp_error_code 
+6fbd 20206fc6 branch sdp_error_response 
+
+sdp_invalid_pdu_size:
+6fbe 58000400 setarg 0x0400 
+6fbf 6001054a store 2 ,mem_sdp_error_code 
+6fc0 20206fc6 branch sdp_error_response 
+
+sdp_insufficient_resource:
+6fc1 58000600 setarg 0x0600 
+6fc2 6001054a store 2 ,mem_sdp_error_code 
+6fc3 20206fc6 branch sdp_error_response 
+
+sdp_invalid_request_syntax:
+6fc4 58000300 setarg 0x0300 
+6fc5 6001054a store 2 ,mem_sdp_error_code 
+
+sdp_error_response:
+6fc6 204052d0 call l2cap_get_sdp_tx_payload 
+6fc7 e0a08000 istore 1 ,contw 
+6fc8 6801051c fetch 2 ,mem_sdp_transactionid 
+6fc9 e0a10000 istore 2 ,contw 
+6fca 58000200 setarg 0x0200 
+6fcb e0a10000 istore 2 ,contw 
+6fcc 6801054a fetch 2 ,mem_sdp_error_code 
+6fcd e0a10000 istore 2 ,contw 
+6fce 70027507 jam 7 ,mem_sdp_tx_pkt_length 
+6fcf 20600000 rtn 
+
+ask_serviceclassid:
+6fd0 da400000 arg 0 ,regb 
+6fd1 18000400 force 0 ,temp 
+6fd2 d8a00511 arg mem_sdp_uuid_search_ptr ,contw 
+6fd3 20407028 call dataelementtype6 
+6fd4 2022f026 branch asksrv_error ,zero 
+
+classidloop:
+6fd5 1a40a401 increase 1 ,regb 
+6fd6 e8c08000 ifetch 1 ,contr 
+6fd7 1a20a3ff increase -1 ,rega 
+6fd8 196097ff increase -1 ,timeup 
+6fd9 2fe1f018 compare 0x18 ,pdata ,0xf8 
+6fda 2420f026 nbranch asksrv_error ,true 
+6fdb 2fe00e04 compare 0x04 ,pdata ,0x07 
+6fdc 2420eff3 nbranch cmp032 ,true 
+6fdd 18000401 force 1 ,temp 
+
+skip2bytes:
+6fde e8c08000 ifetch 1 ,contr 
+6fdf 1a20a3ff increase -1 ,rega 
+6fe0 196097ff increase -1 ,timeup 
+6fe1 c0806fe7 bne 0x00 ,frstbwrong 
+6fe2 e8c08000 ifetch 1 ,contr 
+6fe3 1a20a3ff increase -1 ,rega 
+6fe4 196097ff increase -1 ,timeup 
+6fe5 c0006ff8 beq 0x00 ,cmpuuid 
+6fe6 20206fea branch scndbwrong 
+
+frstbwrong:
+6fe7 18c08c01 increase 1 ,contr 
+6fe8 1a20a3ff increase -1 ,rega 
+6fe9 196097ff increase -1 ,timeup 
+
+scndbwrong:
+6fea 18c08c02 increase 2 ,contr 
+6feb 1a20a3fe increase -2 ,rega 
+6fec 196097fe increase -2 ,timeup 
+6fed 2841fe00 compare 0x00 ,temp ,0xff 
+6fee 2020f020 branch loopornot ,true 
+6fef 18c08c0c increase 12 ,contr 
+6ff0 1a20a3f4 increase -12 ,rega 
+6ff1 196097f4 increase -12 ,timeup 
+6ff2 20207020 branch loopornot 
+
+cmp032:
+6ff3 2fe00e02 compare 0x02 ,pdata ,0x07 
+6ff4 2420eff6 nbranch cmp016 ,true 
+6ff5 20206fde branch skip2bytes 
+
+cmp016:
+6ff6 2fe00e01 compare 0x01 ,pdata ,0x07 
+6ff7 2420f026 nbranch asksrv_error ,true 
+
+cmpuuid:
+6ff8 1a20a3fe increase -2 ,rega 
+6ff9 196097fe increase -2 ,timeup 
+6ffa e8c10000 ifetch 2 ,contr 
+6ffb 1a467c04 sub regb ,4 ,null 
+6ffc 2022effe branch uuidsize ,zero 
+6ffd e0a10000 istore 2 ,contw 
+
+uuidsize:
+6ffe 2841fe00 compare 0x00 ,temp ,0xff 
+6fff 2020f020 branch loopornot ,true 
+7000 18c20400 copy contr ,temp 
+7001 e8c08000 ifetch 1 ,contr 
+7002 c0807019 bne 0x00 ,wrong12b 
+7003 e8c08000 ifetch 1 ,contr 
+7004 c0807019 bne 0x00 ,wrong12b 
+7005 e8c08000 ifetch 1 ,contr 
+7006 c0887019 bne 0x10 ,wrong12b 
+7007 e8c08000 ifetch 1 ,contr 
+7008 c0807019 bne 0x00 ,wrong12b 
+7009 e8c08000 ifetch 1 ,contr 
+700a c0c07019 bne 0x80 ,wrong12b 
+700b e8c08000 ifetch 1 ,contr 
+700c c0807019 bne 0x00 ,wrong12b 
+700d e8c08000 ifetch 1 ,contr 
+700e c0807019 bne 0x00 ,wrong12b 
+700f e8c08000 ifetch 1 ,contr 
+7010 c0c07019 bne 0x80 ,wrong12b 
+7011 e8c08000 ifetch 1 ,contr 
+7012 c0aff019 bne 0x5f ,wrong12b 
+7013 e8c08000 ifetch 1 ,contr 
+7014 c0cdf019 bne 0x9b ,wrong12b 
+7015 e8c08000 ifetch 1 ,contr 
+7016 c09a7019 bne 0x34 ,wrong12b 
+7017 e8c08000 ifetch 1 ,contr 
+7018 c07df01e beq 0xfb ,chck12dn 
+
+wrong12b:
+7019 18420c00 copy temp ,contr 
+
+wrong12b1:
+701a 18c08c0c increase 12 ,contr 
+701b 18000e00 force 0x00 ,queue 
+701c 18000400 force 0x00 ,temp 
+701d 2020701e branch chck12dn 
+
+chck12dn:
+701e 196097f4 increase -12 ,timeup 
+701f 1a20a3f4 increase -12 ,rega 
+
+loopornot:
+7020 18000400 force 0x00 ,temp 
+7021 2a21fe00 compare 0x00 ,rega ,0xff 
+7022 2420efd5 nbranch classidloop ,true 
+7023 18007e00 force 0 ,pdata 
+7024 e0a10000 istore 2 ,contw 
+7025 20600000 rtn 
+
+asksrv_error:
+7026 d84000ff arg 0xff ,temp 
+7027 20600000 rtn 
+
+dataelementtype6:
+7028 476a403a bpatchx patch3a_4 ,mem_patch3a 
+7029 e8c08000 ifetch 1 ,contr 
+702a 196097ff increase -1 ,timeup 
+702b 2fe1f030 compare 0x30 ,pdata ,0xf8 
+702c 2420f03e nbranch dsize_error ,true 
+702d 2fe00e07 compare 0x07 ,pdata ,0x07 
+702e 2020f037 branch dsize32 ,true 
+702f 2fe00e06 compare 0x06 ,pdata ,0x07 
+7030 2020f039 branch dsize16 ,true 
+7031 2fe00e05 compare 0x05 ,pdata ,0x07 
+7032 2420f03e nbranch dsize_error ,true 
+7033 e8c08000 ifetch 1 ,contr 
+7034 1fe22200 copy pdata ,rega 
+7035 196097ff increase -1 ,timeup 
+7036 2020703c branch dsize 
+
+dsize32:
+7037 18c08c02 increase 2 ,contr 
+7038 196097fe increase -2 ,timeup 
+
+dsize16:
+7039 e8c10000 ifetch 2 ,contr 
+703a 1ff0a200 byteswap pdata ,rega 
+703b 196097fe increase -2 ,timeup 
+
+dsize:
+703c 18007e01 force 0x01 ,pdata 
+703d 20600000 rtn 
+
+dsize_error:
+703e 18007e00 force 0x00 ,pdata 
+703f 20600000 rtn 
+
+ss_empty_rsp:
+7040 58000003 setarg sdp_search_res 
+7041 6000851b store 1 ,mem_sdp_pduid 
+7042 20207048 branch empty_response 
+
+sa_empty_rsp:
+7043 58000005 setarg sdp_attribute_res 
+7044 6000851b store 1 ,mem_sdp_pduid 
+7045 20207048 branch empty_response 
+
+ssa_empty_rsp:
+7046 58000007 setarg sdp_searchattrib_res 
+7047 6000851b store 1 ,mem_sdp_pduid 
+
+empty_response:
+7048 204052d0 call l2cap_get_sdp_tx_payload 
+7049 6800851b fetch 1 ,mem_sdp_pduid 
+704a 1fe22400 copy pdata ,regb 
+704b e0a08000 istore 1 ,contw 
+704c 6801051c fetch 2 ,mem_sdp_transactionid 
+704d e0a10000 istore 2 ,contw 
+704e 58000500 setarg 0x0500 
+704f e0a10000 istore 2 ,contw 
+7050 2a41fe05 compare sdp_attribute_res ,regb ,0xff 
+7051 2020f057 branch fullsearch ,true 
+7052 2a41fe07 compare sdp_searchattrib_res ,regb ,0xff 
+7053 2020f057 branch fullsearch ,true 
+7054 58000000 setarg 0x000000 
+7055 e0a28000 istore 5 ,contw 
+7056 20207059 branch outempty 
+
+fullsearch:
+7057 58350200 setarg 0x350200 
+7058 e0a28000 istore 5 ,contw 
+
+outempty:
+7059 7002750a jam 10 ,mem_sdp_tx_pkt_length 
+705a 20600000 rtn 
+
+sdp_data_len:
+705b 20407ea2 call store_contw 
+705c 20407ea5 call store_contr 
+705d 20407062 call sdp_get_data 
+705e 20407e9c call get_contw 
+705f 20407e9f call get_contr 
+7060 18427e00 copy temp ,pdata 
+7061 20600000 rtn 
+
+sdp_get_data:
+7062 e8c08000 ifetch 1 ,contr 
+7063 1fe17207 and pdata ,0x7 ,loopcnt 
+7064 1fe97e00 rshift3 pdata ,pdata 
+7065 c080706c bne 0 ,sdp_get_data_type_not0 
+
+sdp_get_data_type0:
+7066 18007e01 force 1 ,pdata 
+7067 18000401 force 1 ,temp 
+7068 20600000 rtn 
+
+sdp_get_data_type_not0_sizeindex01234:
+7069 20407e76 call left_shift_n 
+706a 1fe08401 add pdata ,1 ,temp 
+706b 20600000 rtn 
+
+sdp_get_data_type_not0:
+706c 1f227e00 deposit loopcnt 
+706d 1fe67c04 sub pdata ,4 ,null 
+706e 20217069 branch sdp_get_data_type_not0_sizeindex01234 ,positive 
+706f c002f073 beq 5 ,sdp_get_data_type_not0_sizeindex5 
+7070 c0037076 beq 6 ,sdp_get_data_type_not0_sizeindex6 
+7071 c003f07a beq 7 ,sdp_get_data_type_not0_sizeindex7 
+7072 20600000 rtn 
+
+sdp_get_data_type_not0_sizeindex5:
+7073 e8c08000 ifetch 1 ,contr 
+7074 1fe08402 add pdata ,2 ,temp 
+7075 20600000 rtn 
+
+sdp_get_data_type_not0_sizeindex6:
+7076 e8c10000 ifetch 2 ,contr 
+7077 1ff0fe00 byteswap pdata ,pdata 
+7078 1fe08403 add pdata ,3 ,temp 
+7079 20600000 rtn 
+
+sdp_get_data_type_not0_sizeindex7:
+707a e8c10000 ifetch 2 ,contr 
+707b 1ff0fe00 byteswap pdata ,pdata 
+707c e8c90000 ifetcht 2 ,contr 
+707d 18508400 byteswap temp ,temp 
+707e 18500400 lshift16 temp ,temp 
+707f 9840fe00 iadd temp ,pdata 
+7080 1fe08405 add pdata ,5 ,temp 
+7081 20600000 rtn 
+
+search_all_uuid:
+7082 476ac03a bpatchx patch3a_5 ,mem_patch3a 
+7083 18000e00 force 0 ,queue 
+7084 da400000 arg 0 ,regb 
+7085 d8a0052a arg mem_sdp_handle_list ,contw 
+
+search_all_uuid_llop:
+7086 e9610000 ifetch 2 ,timeup 
+7087 207a0000 rtn blank 
+7088 2040708d call search_uuid 
+7089 18e27e00 copy queue ,pdata 
+708a c1038000 rtneq sdp_max_handle_number 
+708b 19609602 increase 2 ,timeup 
+708c 20207086 branch search_all_uuid_llop 
+
+search_uuid:
+708d 98002600 iforce regc 
+708e 68014575 fetch 2 ,mem_ui_uuid_table 
+708f 98000c00 iforce contr 
+
+search_uuid_next:
+7090 18e27e00 copy queue ,pdata 
+7091 c1038000 rtneq sdp_max_handle_number 
+7092 78547c00 disable user 
+7093 e8c08000 ifetch 1 ,contr 
+7094 207a0000 rtn blank 
+7095 98007200 iforce loopcnt 
+
+search_uuid_loop:
+7096 e8c10000 ifetch 2 ,contr 
+7097 9a667c00 isub regc ,null 
+7098 2422f09a nbranch search_uuid_not_found ,zero 
+7099 78347c00 enable user 
+
+search_uuid_not_found:
+709a c2007096 loop search_uuid_loop 
+709b e8ca0000 ifetcht 4 ,contr 
+709c 18c22200 copy contr ,rega 
+709d 243470ad nbranch search_uuid_nomatch ,user 
+709e d8c0052a arg mem_sdp_handle_list ,contr 
+709f df200007 arg sdp_max_handle_number ,loopcnt 
+
+search_uuid_check_same_handle:
+70a0 e8c20000 ifetch 4 ,contr 
+70a1 203a70a6 branch search_uuid_store_handle ,blank 
+70a2 98467c00 isub temp ,null 
+70a3 2022f0ad branch search_uuid_nomatch ,zero 
+70a4 c20070a0 loop search_uuid_check_same_handle 
+70a5 20600000 rtn 
+
+search_uuid_store_handle:
+70a6 e0aa0000 istoret 4 ,contw 
+70a7 18e08e01 increase 1 ,queue 
+70a8 1a220c00 copy rega ,contr 
+70a9 2040705b call sdp_data_len 
+70aa 9a40a400 iadd regb ,regb 
+70ab 98c08c00 iadd contr ,contr 
+70ac 20207090 branch search_uuid_next 
+
+search_uuid_nomatch:
+70ad 1a220c00 copy rega ,contr 
+70ae 20407062 call sdp_get_data 
+70af 98c08c00 iadd contr ,contr 
+70b0 20207090 branch search_uuid_next 
+
+search_handle:
+70b1 476b403a bpatchx patch3a_6 ,mem_patch3a 
+70b2 68014575 fetch 2 ,mem_ui_uuid_table 
+70b3 98000c00 iforce contr 
+
+search_handle_loop:
+70b4 e8c08000 ifetch 1 ,contr 
+70b5 203a7fe3 branch disable_zero ,blank 
+70b6 1fe3fe00 lshift pdata ,pdata 
+70b7 98c08c00 iadd contr ,contr 
+70b8 e8c20000 ifetch 4 ,contr 
+70b9 98467c00 isub temp ,null 
+70ba 20628000 rtn zero 
+70bb 18a27e00 deposit contw 
+70bc 60010abb store 2 ,mem_contw 
+70bd 600c0aa2 storet 8 ,mem_temp 
+70be 20407062 call sdp_get_data 
+70bf 98c08c00 iadd contr ,contr 
+70c0 18c27e00 copy contr ,pdata 
+70c1 68090abb fetcht 2 ,mem_contw 
+70c2 18420a00 copy temp ,contw 
+70c3 680c0aa2 fetcht 8 ,mem_temp 
+70c4 1fe20c00 copy pdata ,contr 
+70c5 202070b4 branch search_handle_loop 
+
+search_attrib:
+70c6 476bc03a bpatchx patch3a_7 ,mem_patch3a 
+70c7 68014575 fetch 2 ,mem_ui_uuid_table 
+70c8 98000c00 iforce contr 
+
+search_attrib_next:
+70c9 e8c08000 ifetch 1 ,contr 
+70ca 203a70e4 branch search_attrib_end ,blank 
+70cb 98007200 iforce loopcnt 
+
+search_attrib_loop:
+70cc e8c10000 ifetch 2 ,contr 
+70cd 9a667c00 isub regc ,null 
+70ce 2022f0d4 branch search_attrib_found_uuid ,zero 
+70cf c20070cc loop search_attrib_loop 
+70d0 18c08c04 increase 4 ,contr 
+70d1 20407062 call sdp_get_data 
+70d2 98c08c00 iadd contr ,contr 
+70d3 202070c9 branch search_attrib_next 
+
+search_attrib_found_uuid:
+70d4 1f20f3ff increase -1 ,loopcnt 
+70d5 1f23fe00 lshift loopcnt ,pdata 
+70d6 98c08c00 iadd contr ,contr 
+70d7 18c08c04 increase 4 ,contr 
+70d8 20407062 call sdp_get_data 
+70d9 98c09600 iadd contr ,timeup 
+
+search_attrib_loop_attribs:
+70da 18c08c01 increase 1 ,contr 
+70db e8c10000 ifetch 2 ,contr 
+70dc 9a467c00 isub regb ,null 
+70dd 2022ffef branch disable_blank ,zero 
+70de 2040705b call sdp_data_len 
+70df 98c08c00 iadd contr ,contr 
+70e0 19627e00 deposit timeup 
+70e1 98c67c00 isub contr ,null 
+70e2 2022f0e4 branch search_attrib_end ,zero 
+70e3 202070da branch search_attrib_loop_attribs 
+
+search_attrib_end:
+70e4 18000c00 force 0 ,contr 
+70e5 18007e00 force 0 ,pdata 
+70e6 20600000 rtn 
+
+search_handle_attrib:
+70e7 476c403b bpatchx patch3b_0 ,mem_patch3b 
+70e8 68014575 fetch 2 ,mem_ui_uuid_table 
+70e9 98000c00 iforce contr 
+
+search_handle_attrib_next:
+70ea e8c08000 ifetch 1 ,contr 
+70eb 203a7100 branch search_handle_attrib_end ,blank 
+70ec 1fe3fe00 lshift pdata ,pdata 
+70ed 98c08c00 iadd contr ,contr 
+70ee e8c20000 ifetch 4 ,contr 
+70ef 98467c00 isub temp ,null 
+70f0 2022f0f4 branch search_handl_attrib_found_handle ,zero 
+70f1 20407062 call sdp_get_data 
+70f2 98c08c00 iadd contr ,contr 
+70f3 202070ea branch search_handle_attrib_next 
+
+search_handl_attrib_found_handle:
+70f4 20407062 call sdp_get_data 
+70f5 98c09600 iadd contr ,timeup 
+
+search_handle_attrib_loop_attribs:
+70f6 18c08c01 increase 1 ,contr 
+70f7 e8c10000 ifetch 2 ,contr 
+70f8 9a467c00 isub regb ,null 
+70f9 20628000 rtn zero 
+70fa 2040705b call sdp_data_len 
+70fb 98c08c00 iadd contr ,contr 
+70fc 19627e00 deposit timeup 
+70fd 98c67c00 isub contr ,null 
+70fe 2022f100 branch search_handle_attrib_end ,zero 
+70ff 202070f6 branch search_handle_attrib_loop_attribs 
+
+search_handle_attrib_end:
+7100 18000c00 force 0 ,contr 
+7101 20600000 rtn 
+
+search_rfcomm_cn:
+7102 da400400 arg 0x0400 ,regb 
+7103 204070f4 call search_handl_attrib_found_handle 
+7104 da400300 arg 0x0300 ,regb 
+7105 2040710d call search_uuid_in_data 
+7106 24740000 nrtn user 
+7107 1a267c03 sub rega ,3 ,null 
+7108 20217fe9 branch disable_user ,positive 
+7109 e8c08000 ifetch 1 ,contr 
+710a c0847fe9 bne 0x08 ,disable_user 
+710b e8c08000 ifetch 1 ,contr 
+710c 20600000 rtn 
+
+search_uuid_in_data:
+710d 476cc03b bpatchx patch3b_1 ,mem_patch3b 
+710e 20407062 call sdp_get_data 
+710f 1fe22200 copy pdata ,rega 
+
+search_uuid_in_data_loop:
+7110 e8c08000 ifetch 1 ,contr 
+7111 1fe17207 and pdata ,0x7 ,loopcnt 
+7112 1fe97e00 rshift3 pdata ,pdata 
+7113 1fe67c03 sub pdata ,3 ,null 
+7114 2022f129 branch search_uuid_in_data_found_uuid ,zero 
+7115 1f227e00 copy loopcnt ,pdata 
+7116 c002f120 beq 5 ,search_uuid_in_data_found_element_index5 
+7117 c0037123 beq 6 ,search_uuid_in_data_found_element_index6 
+7118 c003f126 beq 7 ,search_uuid_in_data_found_element_index7 
+7119 18c08dff increase -1 ,contr 
+711a 20407062 call sdp_get_data 
+711b 98c08c00 iadd contr ,contr 
+711c 1a227e00 copy rega ,pdata 
+711d 98462200 isub temp ,rega 
+711e 2022ffe9 branch disable_user ,zero 
+711f 20207110 branch search_uuid_in_data_loop 
+
+search_uuid_in_data_found_element_index5:
+7120 1a20a3fe increase -2 ,rega 
+7121 18c08c01 increase 1 ,contr 
+7122 20207110 branch search_uuid_in_data_loop 
+
+search_uuid_in_data_found_element_index6:
+7123 1a20a3fd increase -3 ,rega 
+7124 18c08c02 increase 2 ,contr 
+7125 20207110 branch search_uuid_in_data_loop 
+
+search_uuid_in_data_found_element_index7:
+7126 1a20a3fb increase -5 ,rega 
+7127 18c08c04 increase 4 ,contr 
+7128 20207110 branch search_uuid_in_data_loop 
+
+search_uuid_in_data_found_uuid:
+7129 1a20a3ff increase -1 ,rega 
+712a 1f227e00 copy loopcnt ,pdata 
+712b c000f132 beq 1 ,search_uuid_in_data_type_uuid_16 
+712c c0017130 beq 2 ,search_uuid_in_data_type_uuid_32 
+712d c002712f beq 4 ,search_uuid_in_data_type_uuid_128 
+712e 20207fe9 branch disable_user 
+
+search_uuid_in_data_type_uuid_128:
+712f 1a20a3f4 increase -12 ,rega 
+
+search_uuid_in_data_type_uuid_32:
+7130 e8c10000 ifetch 2 ,contr 
+7131 1a20a3fe increase -2 ,rega 
+
+search_uuid_in_data_type_uuid_16:
+7132 e8c10000 ifetch 2 ,contr 
+7133 9a467c00 isub regb ,null 
+7134 2022ffe7 branch enable_user ,zero 
+7135 1a20a3fe increase -2 ,rega 
+7136 2022ffe9 branch disable_user ,zero 
+7137 20207110 branch search_uuid_in_data_loop 
+
+sdp_send_spp_request:
+7138 204052d0 call l2cap_get_sdp_tx_payload 
+7139 1fe20a00 copy pdata ,contw 
+713a 58000006 setarg 6 
+713b e0a08000 istore 1 ,contw 
+713c 5800006e setarg sdp_tid_spp 
+713d e0a10000 istore 2 ,contw 
+713e 58000f00 setarg 0x0f00 
+713f e0a10000 istore 2 ,contw 
+7140 581a0535 setarg 0x1a0535 
+7141 e0a18000 istore 3 ,contw 
+7142 58000111 setarg 0x0111 
+7143 1ff07e00 lshift16 pdata ,pdata 
+7144 e0a20000 istore 4 ,contw 
+7145 58002600 setarg 0x2600 
+7146 e0a10000 istore 2 ,contw 
+7147 58000335 setarg 0x0335 
+7148 e0a10000 istore 2 ,contw 
+7149 58000009 setarg 0x0009 
+714a e0a10000 istore 2 ,contw 
+714b 58000004 setarg 0x0004 
+714c e0a10000 istore 2 ,contw 
+714d 70027514 jam 0x14 ,mem_sdp_tx_pkt_length 
+714e 20600000 rtn 
+
+function_g2:
+714f 476d403b bpatchx patch3b_2 ,mem_patch3b 
+7150 7005e550 jam 80 ,mem_aes_cmac_data_length 
+7151 d8a005e6 arg memdat ,contw 
+7152 d8c0443a arg mem_le_srand ,contr 
+7153 20407ebf call memcpy16 
+7154 d8c045d2 arg mem_le_pubkey_local_x_256 ,contr 
+7155 20407ebd call memcpy32 
+7156 d8c009be arg mem_le_pubkey_remote_x_256 ,contr 
+7157 20407ebd call memcpy32 
+7158 2040720a call inverse_memdat 
+7159 d8c0042f arg mem_le_mrand ,contr 
+715a 20407205 call store_inverse_k 
+715b 204071d0 call function_aes_cmac 
+715c d8a00af2 arg mem_aes_cmac_temp ,contw 
+715d 20407201 call load_inverse_result 
+715e 580f4240 setarg 1000000 
+715f 1fe22200 copy pdata ,rega 
+7160 68020af2 fetch 4 ,mem_aes_cmac_temp 
+7161 9a26fc00 idiv rega 
+7162 20407f86 call wait_div_end 
+7163 18077e00 remainder pdata 
+7164 600209ba store 4 ,mem_gkey 
+7165 20600000 rtn 
+
+function_f6_eb:
+7166 7005e541 jam 65 ,mem_aes_cmac_data_length 
+7167 d8a005e6 arg memdat ,contw 
+7168 204071b5 call store_addr_common_a 
+7169 204071b0 call store_addr_common_b 
+716a 6801c454 fetch 3 ,mem_le_pres + 1 
+716b e0a18000 istore 3 ,contw 
+716c 20407176 call get_r 
+716d d8c0042f arg mem_le_mrand ,contr 
+716e 20407ebf call memcpy16 
+716f d8c0443a arg mem_le_srand ,contr 
+7170 20407ebf call memcpy16 
+7171 2040720a call inverse_memdat 
+7172 d8c00b12 arg mem_le_mackey ,contr 
+7173 d8a00ac2 arg mem_aes_cmac_k ,contw 
+7174 20407ebf call memcpy16 
+7175 202071d0 branch function_aes_cmac 
+
+get_r:
+7176 680244c7 fetch 4 ,mem_le_tk 
+7177 e0a20000 istore 4 ,contw 
+7178 20407ecd call memset0_4 
+7179 20207eca branch memset0_8 
+
+function_f6_ea:
+717a 476dc03b bpatchx patch3b_3 ,mem_patch3b 
+717b 7005e541 jam 65 ,mem_aes_cmac_data_length 
+717c d8a005e6 arg memdat ,contw 
+717d 204071b0 call store_addr_common_b 
+717e 204071b5 call store_addr_common_a 
+717f 6801c44d fetch 3 ,mem_le_preq + 1 
+7180 e0a18000 istore 3 ,contw 
+7181 20407176 call get_r 
+7182 d8c0443a arg mem_le_srand ,contr 
+7183 20407ebf call memcpy16 
+7184 d8c0042f arg mem_le_mrand ,contr 
+7185 20407ebf call memcpy16 
+7186 2040720a call inverse_memdat 
+7187 d8c00b12 arg mem_le_mackey ,contr 
+7188 d8a00ac2 arg mem_aes_cmac_k ,contw 
+7189 20407ebf call memcpy16 
+718a 204071d0 call function_aes_cmac 
+718b d8a00af2 arg mem_aes_cmac_temp ,contw 
+718c 20207201 branch load_inverse_result 
+
+function_f5:
+718d 7005e520 jam 32 ,mem_aes_cmac_data_length 
+718e d8c009fe arg mem_le_dhkey_256 ,contr 
+718f d8a005e6 arg memdat ,contw 
+7190 20407ebd call memcpy32 
+7191 2040720a call inverse_memdat 
+7192 d8c0099e arg mem_le_slat ,contr 
+7193 20407205 call store_inverse_k 
+7194 204071d0 call function_aes_cmac 
+7195 d8a00ac2 arg mem_aes_cmac_k ,contw 
+7196 20407497 call store_aes_result 
+7197 d8400001 arg 1 ,temp 
+7198 2040719f call function_f5_common 
+7199 d8a04419 arg mem_le_ltk ,contw 
+719a 20407201 call load_inverse_result 
+719b d8400000 arg 0 ,temp 
+719c 2040719f call function_f5_common 
+719d d8a00b12 arg mem_le_mackey ,contw 
+719e 20207497 branch store_aes_result 
+
+function_f5_common:
+719f 476e403b bpatchx patch3b_4 ,mem_patch3b 
+71a0 7005e535 jam 53 ,mem_aes_cmac_data_length 
+71a1 58000100 setarg 0x100 
+71a2 600105e6 store 2 ,memdat 
+71a3 204071b0 call store_addr_common_b 
+71a4 204071b5 call store_addr_common_a 
+71a5 d8c0443a arg mem_le_srand ,contr 
+71a6 20407ebf call memcpy16 
+71a7 d8c0042f arg mem_le_mrand ,contr 
+71a8 20407ebf call memcpy16 
+71a9 58006c65 setarg 0x6c65 
+71aa e0a10000 istore 2 ,contw 
+71ab 58006274 setarg 0x6274 
+71ac e0a10000 istore 2 ,contw 
+71ad e0a88000 istoret 1 ,contw 
+71ae 2040720a call inverse_memdat 
+71af 202071d0 branch function_aes_cmac 
+
+store_addr_common_b:
+71b0 680344a0 fetch 6 ,mem_le_lap 
+71b1 e0a30000 istore 6 ,contw 
+71b2 6800c495 fetch 1 ,mem_le_conn_own_addr_type 
+71b3 e0a08000 istore 1 ,contw 
+71b4 20600000 rtn 
+
+store_addr_common_a:
+71b5 6803044f fetch 6 ,mem_le_plap 
+71b6 e0a30000 istore 6 ,contw 
+71b7 6800c48e fetch 1 ,mem_le_conn_peer_addr_type 
+71b8 e0a08000 istore 1 ,contw 
+71b9 20600000 rtn 
+
+function_f4_ca:
+71ba 7005e541 jam 65 ,mem_aes_cmac_data_length 
+71bb 6800c664 fetch 1 ,mem_passkey_1bit 
+71bc 600085e6 store 1 ,memdat 
+71bd d8c045d2 arg mem_le_pubkey_local_x_256 ,contr 
+71be 20407ebd call memcpy32 
+71bf d8c009be arg mem_le_pubkey_remote_x_256 ,contr 
+71c0 20407ebd call memcpy32 
+71c1 2040720a call inverse_memdat 
+71c2 d8c0042f arg mem_le_mrand ,contr 
+71c3 20407205 call store_inverse_k 
+71c4 202071d0 branch function_aes_cmac 
+
+function_f4_cb:
+71c5 7005e541 jam 65 ,mem_aes_cmac_data_length 
+71c6 6800c664 fetch 1 ,mem_passkey_1bit 
+71c7 600085e6 store 1 ,memdat 
+71c8 d8c009be arg mem_le_pubkey_remote_x_256 ,contr 
+71c9 20407ebd call memcpy32 
+71ca d8c045d2 arg mem_le_pubkey_local_x_256 ,contr 
+71cb 20407ebd call memcpy32 
+71cc 2040720a call inverse_memdat 
+71cd d8c0443a arg mem_le_srand ,contr 
+71ce 20407205 call store_inverse_k 
+71cf 202071d0 branch function_aes_cmac 
+
+function_aes_cmac:
+71d0 476ec03b bpatchx patch3b_5 ,mem_patch3b 
+71d1 2040721f call function_aes_cmac_generate_subkey 
+71d2 680085e5 fetch 1 ,mem_aes_cmac_data_length 
+71d3 1fe20400 copy pdata ,temp 
+
+function_ceil16:
+71d4 1fe0fe0f increase 15 ,pdata 
+71d5 1ff1fe00 rshift4 pdata ,pdata 
+71d6 1fe22400 copy pdata ,regb 
+71d7 203a71e2 branch function_aes_cmac_set_flag_0_balnk ,blank 
+71d8 18417e0f and temp ,0x0f ,pdata 
+71d9 243a71e5 nbranch function_aes_cmac_set_flag_0 ,blank 
+71da da600ad2 arg mem_aes_cmac_k1 ,regc 
+71db dfe005e6 arg memdat ,pdata 
+71dc 1fe0fff0 increase -16 ,pdata 
+71dd 9840a200 iadd temp ,rega 
+71de d8a00b02 arg mem_aes_cmac_m_last ,contw 
+71df df200004 arg 4 ,loopcnt 
+71e0 20407edd call xor_loop 
+71e1 202071f0 branch function_aes_cmac_aes 
+
+function_aes_cmac_set_flag_0_balnk:
+71e2 da400001 arg 1 ,regb 
+71e3 da200000 arg 0 ,rega 
+71e4 202071e6 branch function_aes_cmac_set_flag_0_common 
+
+function_aes_cmac_set_flag_0:
+71e5 1841220f and temp ,0x0f ,rega 
+
+function_aes_cmac_set_flag_0_common:
+71e6 dfe005e6 arg memdat ,pdata 
+71e7 9840fe00 iadd temp ,pdata 
+71e8 9a260c00 isub rega ,contr 
+71e9 d8a00af2 arg mem_aes_cmac_temp ,contw 
+71ea 20407245 call function_aes_cmac_padding 
+71eb da600ae2 arg mem_aes_cmac_k2 ,regc 
+71ec da200af2 arg mem_aes_cmac_temp ,rega 
+71ed d8a00b02 arg mem_aes_cmac_m_last ,contw 
+71ee df200004 arg 4 ,loopcnt 
+71ef 20407edd call xor_loop 
+
+function_aes_cmac_aes:
+71f0 20407491 call aes_clear_data 
+71f1 20407428 call aes_init 
+71f2 d8c005e6 arg memdat ,contr 
+
+function_aes_cmac_aes_loop:
+71f3 1a40a5ff increase -1 ,regb 
+71f4 1a427e00 deposit regb 
+71f5 203a71f9 branch function_aes_cmac_aes_loop_end ,blank 
+71f6 20407486 call load_data128 
+71f7 20407422 call do_aes_cbc 
+71f8 202071f3 branch function_aes_cmac_aes_loop 
+
+function_aes_cmac_aes_loop_end:
+71f9 d8a00af2 arg mem_aes_cmac_temp ,contw 
+71fa 20407497 call store_aes_result 
+71fb d8c00b02 arg mem_aes_cmac_m_last ,contr 
+71fc 20407486 call load_data128 
+71fd 20407428 call aes_init 
+71fe d8c00af2 arg mem_aes_cmac_temp ,contr 
+71ff 20407486 call load_data128 
+7200 20207422 branch do_aes_cbc 
+
+load_inverse_result:
+7201 18a22200 copy contw ,rega 
+7202 20407497 call store_aes_result 
+7203 df200010 arg 16 ,loopcnt 
+7204 20207ee5 branch inverse_data 
+
+store_inverse_k:
+7205 d8a00ac2 arg mem_aes_cmac_k ,contw 
+7206 20407ebf call memcpy16 
+
+inverse_k:
+7207 df200010 arg 16 ,loopcnt 
+7208 da200ac2 arg mem_aes_cmac_k ,rega 
+7209 20207ee5 branch inverse_data 
+
+inverse_memdat:
+720a 680085e5 fetch 1 ,mem_aes_cmac_data_length 
+720b 1fe27200 copy pdata ,loopcnt 
+720c da2005e6 arg memdat ,rega 
+720d 20207ee5 branch inverse_data 
+
+bn_lshift_0_inverse:
+720e ea208000 ifetch 1 ,rega 
+720f 1fe3fe00 lshift pdata ,pdata 
+7210 2a6ffe00 isolate1 0 ,regc 
+7211 7920fe00 setflag true ,0 ,pdata 
+7212 2feffe08 isolate1 8 ,pdata 
+7213 7920a600 setflag true ,0 ,regc 
+7214 e2208000 istore 1 ,rega 
+7215 1a20a3ff increase -1 ,rega 
+7216 c200720e loop bn_lshift_0_inverse 
+7217 20600000 rtn 
+
+function_aes_cmac_k1_inverse:
+7218 da200ad2 arg mem_aes_cmac_k1 ,rega 
+
+function_aes_cmac_inverse_common:
+7219 1a20a20f increase 15 ,rega 
+721a 18007210 force 16 ,loopcnt 
+721b 18002600 force 0 ,regc 
+721c 2020720e branch bn_lshift_0_inverse 
+
+function_aes_cmac_k2_inverse:
+721d da200ae2 arg mem_aes_cmac_k2 ,rega 
+721e 20207219 branch function_aes_cmac_inverse_common 
+
+function_aes_cmac_generate_subkey:
+721f d8c00ac2 arg mem_aes_cmac_k ,contr 
+7220 20407484 call load_key 
+7221 18007008 force regidx_xor ,regext_index 
+7222 20407492 call aes_clear 
+7223 20407491 call aes_clear_data 
+7224 2040741f call do_aes_ocb 
+7225 d8a00ad2 arg mem_aes_cmac_k1 ,contw 
+7226 20407497 call store_aes_result 
+
+function_aes_cmac_k1:
+7227 476f403b bpatchx patch3b_6 ,mem_patch3b 
+7228 68008ad2 fetch 1 ,mem_aes_cmac_k1 
+7229 2feffe07 isolate1 7 ,pdata 
+722a 2420f230 nbranch function_aes_cmac_k1_0 ,true 
+722b 20407218 call function_aes_cmac_k1_inverse 
+722c da600ad2 arg mem_aes_cmac_k1 ,regc 
+722d d8a00ad2 arg mem_aes_cmac_k1 ,contw 
+722e 2040723a call function_aes_cmac_xor_rb 
+722f 20207231 branch function_aes_cmac_k2 
+
+function_aes_cmac_k1_0:
+7230 20407218 call function_aes_cmac_k1_inverse 
+
+function_aes_cmac_k2:
+7231 d8c00ad2 arg mem_aes_cmac_k1 ,contr 
+7232 d8a00ae2 arg mem_aes_cmac_k2 ,contw 
+7233 20407ebf call memcpy16 
+7234 68008ae2 fetch 1 ,mem_aes_cmac_k2 
+7235 2feffe07 isolate1 7 ,pdata 
+7236 2420f21d nbranch function_aes_cmac_k2_inverse ,true 
+7237 2040721d call function_aes_cmac_k2_inverse 
+7238 da600ae2 arg mem_aes_cmac_k2 ,regc 
+7239 d8a00ae2 arg mem_aes_cmac_k2 ,contw 
+
+function_aes_cmac_xor_rb:
+723a df200003 arg 3 ,loopcnt 
+
+function_aes_cmac_xor_rb_loop:
+723b d8400000 arg 0 ,temp 
+723c 20407241 call function_aes_cmac_xor_loop_common 
+723d 1a60a604 increase 4 ,regc 
+723e c200723b loop function_aes_cmac_xor_rb_loop 
+723f d8408700 arg 0x8700 ,temp 
+7240 18500400 lshift16 temp ,temp 
+
+function_aes_cmac_xor_loop_common:
+7241 ea620000 ifetch 4 ,regc 
+7242 9842fe00 ixor temp ,pdata 
+7243 e0a20000 istore 4 ,contw 
+7244 20600000 rtn 
+
+function_aes_cmac_padding:
+7245 476fc03b bpatchx patch3b_7 ,mem_patch3b 
+7246 df200010 arg 16 ,loopcnt 
+7247 dfe00000 arg 0 ,pdata 
+
+function_aes_cmac_padding_loop:
+7248 9a267c00 isub rega ,null 
+7249 2022f250 branch function_aes_cmac_padding_beq_length ,zero 
+724a 20217253 branch function_aes_cmac_padding_big_length ,positive 
+724b e8c88000 ifetcht 1 ,contr 
+724c e0a88000 istoret 1 ,contw 
+
+function_aes_cmac_padding_loop2:
+724d 1fe0fe01 increase 1 ,pdata 
+724e c2007248 loop function_aes_cmac_padding_loop 
+724f 20600000 rtn 
+
+function_aes_cmac_padding_beq_length:
+7250 d8400080 arg 0x80 ,temp 
+
+function_aes_cmac_padding_common:
+7251 e0a88000 istoret 1 ,contw 
+7252 2020724d branch function_aes_cmac_padding_loop2 
+
+function_aes_cmac_padding_big_length:
+7253 d8400000 arg 0 ,temp 
+7254 20207251 branch function_aes_cmac_padding_common 
+
+generate_kinit:
+7255 20407268 call function_e22 
+7256 d8c00592 arg mem_input_store ,contr 
+7257 d8a00582 arg mem_kinit ,contw 
+7258 20207ebf branch memcpy16 
+
+function_e21:
+7259 78547c00 disable user 
+725a 2040735f call function_expand 
+725b d8c00562 arg mem_random_number ,contr 
+725c d8a005a2 arg mem_x ,contw 
+725d 1800720f force 15 ,loopcnt 
+725e 20407f01 call memcpy 
+725f e8c08000 ifetch 1 ,contr 
+7260 1fe2fe06 xor_into 6 ,pdata 
+7261 e0a08000 istore 1 ,contw 
+7262 580005b2 setarg mem_y 
+7263 600105d6 store 2 ,memp_ar_input 
+7264 580005a2 setarg mem_x 
+7265 600105d4 store 2 ,memp_ar_key 
+7266 79200012 set1 mark_ar2 ,mark 
+7267 202072a8 branch function_ar 
+
+function_e22:
+7268 6808c689 fetcht 1 ,mem_pin_length 
+7269 18002410 force 16 ,regb 
+726a 1840a606 add temp ,6 ,regc 
+726b 1a667c10 sub regc ,16 ,null 
+726c 2021726e branch function_e22_pin_init ,positive 
+726d 18002610 force 16 ,regc 
+
+function_e22_pin_init:
+726e d8a005a2 arg mem_x ,contw 
+
+function_e22_genx_pin:
+726f d8c0468a arg mem_pin ,contr 
+7270 18427200 copy temp ,loopcnt 
+7271 78547c00 disable user 
+
+function_e22_genx_loop:
+7272 e8c08000 ifetch 1 ,contr 
+7273 e0a08000 istore 1 ,contw 
+7274 1a40a5ff increase -1 ,regb 
+7275 2022f27c branch function_e22_genx_end ,zero 
+7276 c2007272 loop function_e22_genx_loop 
+7277 2034726f branch function_e22_genx_pin ,user 
+7278 78347c00 enable user 
+7279 18007206 force 6 ,loopcnt 
+727a 1a220c00 copy rega ,contr 
+727b 20207272 branch function_e22_genx_loop 
+
+function_e22_genx_end:
+727c d8c00562 arg mem_random_number ,contr 
+727d d8a005b2 arg mem_y ,contw 
+727e 20407ebf call memcpy16 
+727f 680085c1 fetch 1 ,mem_y15 
+7280 9a62fe00 ixor regc ,pdata 
+7281 600085c1 store 1 ,mem_y15 
+7282 580005b2 setarg mem_y 
+7283 600105d6 store 2 ,memp_ar_input 
+7284 580005a2 setarg mem_x 
+7285 600105d4 store 2 ,memp_ar_key 
+7286 79200012 set1 mark_ar2 ,mark 
+7287 202072a8 branch function_ar 
+
+function_e1:
+7288 78547c00 disable user 
+7289 2040735f call function_expand 
+728a 20207292 branch function_hash 
+
+function_e3:
+728b da200056 arg mem_aco ,rega 
+728c 78347c00 enable user 
+728d 2040735f call function_expand 
+728e 20407292 call function_hash 
+728f d8c00592 arg mem_input_store ,contr 
+7290 d8a00062 arg mem_kc ,contw 
+7291 20207ebf branch memcpy16 
+
+function_hash:
+7292 58000562 setarg mem_random_number 
+7293 600105d6 store 2 ,memp_ar_input 
+7294 580041be setarg mem_link_key 
+7295 600105d4 store 2 ,memp_ar_key 
+7296 793f8012 set0 mark_ar2 ,mark 
+7297 204072a8 call function_ar 
+7298 da200592 arg mem_input_store ,rega 
+7299 da400562 arg mem_random_number ,regb 
+729a d8a005a2 arg mem_x ,contw 
+729b 20407352 call xor16 
+729c da2005a2 arg mem_x ,rega 
+729d da4005b2 arg mem_y ,regb 
+729e 1a420a00 copy regb ,contw 
+729f 78347c00 enable user 
+72a0 20407350 call add16 
+72a1 2040736a call key_offset 
+72a2 580005b2 setarg mem_y 
+72a3 600105d6 store 2 ,memp_ar_input 
+72a4 580005a2 setarg mem_x 
+72a5 600105d4 store 2 ,memp_ar_key 
+72a6 79200012 set1 mark_ar2 ,mark 
+72a7 202072a8 branch function_ar 
+
+function_ar:
+72a8 7005d800 jam 0 ,mem_ar_hround 
+72a9 680105d4 fetch 2 ,memp_ar_key 
+72aa 98000c00 iforce contr 
+72ab d8a005c2 arg mem_key_store ,contw 
+72ac 20407ebf call memcpy16 
+72ad 680105d6 fetch 2 ,memp_ar_input 
+72ae 98000c00 iforce contr 
+72af d8a00592 arg mem_input_store ,contw 
+72b0 20407ebf call memcpy16 
+
+function_ar_loop:
+72b1 204072cf call key_scheduling 
+72b2 78547c00 disable user 
+72b3 c58972b9 bmark0 mark_ar2 ,function_ar_original 
+72b4 680085d8 fetch 1 ,mem_ar_hround 
+72b5 c08272b9 bne 4 ,function_ar_original 
+72b6 680105d6 fetch 2 ,memp_ar_input 
+72b7 98002400 iforce regb 
+72b8 20407301 call xor_mod32_ar2 
+
+function_ar_original:
+72b9 20407300 call xor_mod32 
+72ba 20407313 call el_boxes 
+72bb 680085d8 fetch 1 ,mem_ar_hround 
+72bc 1fe0fe01 increase 1 ,pdata 
+72bd 600085d8 store 1 ,mem_ar_hround 
+72be 204072cf call key_scheduling 
+72bf 78347c00 enable user 
+72c0 20407300 call xor_mod32 
+72c1 20407322 call pht 
+72c2 20407331 call permute 
+72c3 20407322 call pht 
+72c4 20407331 call permute 
+72c5 20407322 call pht 
+72c6 20407331 call permute 
+72c7 20407322 call pht 
+72c8 680085d8 fetch 1 ,mem_ar_hround 
+72c9 1fe0fe01 increase 1 ,pdata 
+72ca 600085d8 store 1 ,mem_ar_hround 
+72cb c08872b1 bne 16 ,function_ar_loop 
+72cc 204072cf call key_scheduling 
+72cd 78547c00 disable user 
+72ce 20207300 branch xor_mod32 
+
+key_scheduling:
+72cf 680085d8 fetch 1 ,mem_ar_hround 
+72d0 d8c005c2 arg mem_key_store ,contr 
+72d1 203a72f6 branch key_sched_zero ,blank 
+72d2 98002400 iforce regb 
+72d3 18007211 force 17 ,loopcnt 
+72d4 18c20a00 copy contr ,contw 
+
+key_rotateloop:
+72d5 e8c08000 ifetch 1 ,contr 
+72d6 1fe98400 lshift3 pdata ,temp 
+72d7 1feb7e00 rshift2 pdata ,pdata 
+72d8 1fe97e00 rshift3 pdata ,pdata 
+72d9 9841fe00 ior temp ,pdata 
+72da e0a08000 istore 1 ,contw 
+72db c20072d5 loop key_rotateloop 
+72dc 580005c2 setarg mem_key_store 
+72dd 9a408c00 iadd regb ,contr 
+72de 18007210 force 16 ,loopcnt 
+72df d8a00572 arg mem_round_key ,contw 
+
+key_select_octet_loop:
+72e0 e8c08000 ifetch 1 ,contr 
+72e1 e0a08000 istore 1 ,contw 
+72e2 28c1ffd3 compare mem_key_store_end ,contr ,0xff 
+72e3 2420f2e5 nbranch key_select_octet_nwrap ,true 
+72e4 18c08def increase -17 ,contr 
+
+key_select_octet_nwrap:
+72e5 c20072e0 loop key_select_octet_loop 
+72e6 18002200 force 0 ,rega 
+72e7 1a40a7ff add regb ,-1 ,regc 
+72e8 1a6ba600 lshift2 regc ,regc 
+72e9 1a6ba600 lshift2 regc ,regc 
+72ea 204074b9 call enable_authrom 
+72eb 58008400 setarg mem_b_box 
+72ec 9a60a600 iadd regc ,regc 
+72ed d8a00572 arg mem_round_key ,contw 
+72ee 18007210 force 16 ,loopcnt 
+
+bias_round_key_loop:
+72ef ea688000 ifetcht 1 ,regc 
+72f0 e8a08000 ifetch 1 ,contw 
+72f1 9840fe00 iadd temp ,pdata 
+72f2 e0a08000 istore 1 ,contw 
+72f3 1a60a601 increase 1 ,regc 
+72f4 c20072ef loop bias_round_key_loop 
+72f5 202074bd branch disable_authrom 
+
+key_sched_zero:
+72f6 18007210 force 16 ,loopcnt 
+72f7 18000400 force 0 ,temp 
+
+create_byte_16_loop:
+72f8 e8c08000 ifetch 1 ,contr 
+72f9 98428400 ixor temp ,temp 
+72fa c20072f8 loop create_byte_16_loop 
+72fb 18427e00 deposit temp 
+72fc e0c08000 istore 1 ,contr 
+72fd d8c005c2 arg mem_key_store ,contr 
+72fe d8a00572 arg mem_round_key ,contw 
+72ff 20207ebf branch memcpy16 
+
+xor_mod32:
+7300 da400572 arg mem_round_key ,regb 
+
+xor_mod32_ar2:
+7301 18007210 force 16 ,loopcnt 
+7302 da200592 arg mem_input_store ,rega 
+7303 1a220a00 copy rega ,contw 
+
+xor_mod32_loop:
+7304 ea288000 ifetcht 1 ,rega 
+7305 ea408000 ifetch 1 ,regb 
+7306 9842e000 ixor temp ,alarm 
+7307 1f212603 and loopcnt ,3 ,regc 
+7308 2434730a nbranch xor_mod32_invert ,user 
+7309 1a62a603 xor_into 3 ,regc 
+
+xor_mod32_invert:
+730a 1a662601 sub regc ,1 ,regc 
+730b 2021730d branch xor_even ,positive 
+730c 9840e000 iadd temp ,alarm 
+
+xor_even:
+730d 1e027e00 deposit alarm 
+730e e0a08000 istore 1 ,contw 
+730f 1a20a201 increase 1 ,rega 
+7310 1a40a401 increase 1 ,regb 
+7311 c2007304 loop xor_mod32_loop 
+7312 20600000 rtn 
+
+el_boxes:
+7313 204074b9 call enable_authrom 
+7314 18007210 force 16 ,loopcnt 
+7315 da200592 arg mem_input_store ,rega 
+
+el_box_loop:
+7316 ea208000 ifetch 1 ,rega 
+7317 d8c08500 arg mem_e_box ,contr 
+7318 1f212603 and loopcnt ,3 ,regc 
+7319 1a667c01 sub regc ,1 ,null 
+731a 2021731c branch e_boxes ,positive 
+731b d8c08600 arg mem_l_box ,contr 
+
+e_boxes:
+731c 98c08c00 iadd contr ,contr 
+731d e8c08000 ifetch 1 ,contr 
+731e e2208000 istore 1 ,rega 
+731f 1a20a201 increase 1 ,rega 
+7320 c2007316 loop el_box_loop 
+7321 202074bd branch disable_authrom 
+
+pht:
+7322 18007208 force 8 ,loopcnt 
+7323 d8c00592 arg mem_input_store ,contr 
+7324 18c20a00 copy contr ,contw 
+
+pht_loop:
+7325 e8c08000 ifetch 1 ,contr 
+7326 98002200 iforce rega 
+7327 e8c08000 ifetch 1 ,contr 
+7328 98002400 iforce regb 
+7329 1a23fe00 lshift rega ,pdata 
+732a 9a40fe00 iadd regb ,pdata 
+732b e0a08000 istore 1 ,contw 
+732c 1a227e00 deposit rega 
+732d 9a40fe00 iadd regb ,pdata 
+732e e0a08000 istore 1 ,contw 
+732f c2007325 loop pht_loop 
+7330 20600000 rtn 
+
+permute:
+7331 588ae42c setarg 0x8ae42c 
+7332 98000400 iforce temp 
+7333 18007207 force 7 ,loopcnt 
+7334 20407340 call permute_exchange 
+7335 580d751b setarg 0xd751b 
+7336 98000400 iforce temp 
+7337 18007205 force 5 ,loopcnt 
+7338 20407340 call permute_exchange 
+7339 680085a1 fetch 1 ,mem_input_store + 15 
+733a 98002200 iforce rega 
+733b 68008595 fetch 1 ,mem_input_store + 3 
+733c 600085a1 store 1 ,mem_input_store + 15 
+733d 1a227e00 deposit rega 
+733e 60008595 store 1 ,mem_input_store + 3 
+733f 20600000 rtn 
+
+permute_exchange:
+7340 1841240f and temp ,0xf ,regb 
+
+permute_loop:
+7341 18417e0f and temp ,0xf ,pdata 
+7342 d8a00592 arg mem_input_store ,contw 
+7343 98a08a00 iadd contw ,contw 
+7344 e8a08000 ifetch 1 ,contw 
+7345 98002600 iforce regc 
+7346 1a227e00 deposit rega 
+7347 e0a08000 istore 1 ,contw 
+7348 1a622200 copy regc ,rega 
+7349 18518400 rshift4 temp ,temp 
+734a c2007341 loop permute_loop 
+734b 58000592 setarg mem_input_store 
+734c 9a408a00 iadd regb ,contw 
+734d 1a227e00 deposit rega 
+734e e0a08000 istore 1 ,contw 
+734f 20600000 rtn 
+
+add16:
+7350 78347c00 enable user 
+7351 20207353 branch xor_add16 
+
+xor16:
+7352 78547c00 disable user 
+
+xor_add16:
+7353 18007210 force 16 ,loopcnt 
+
+xoradd_loop:
+7354 ea288000 ifetcht 1 ,rega 
+7355 ea408000 ifetch 1 ,regb 
+7356 20347359 branch xoradd_add ,user 
+7357 9842fe00 ixor temp ,pdata 
+7358 2020735a branch xoradd_store 
+
+xoradd_add:
+7359 9840fe00 iadd temp ,pdata 
+
+xoradd_store:
+735a e0a08000 istore 1 ,contw 
+735b 1a20a201 increase 1 ,rega 
+735c 1a40a401 increase 1 ,regb 
+735d c2007354 loop xoradd_loop 
+735e 20600000 rtn 
+
+function_expand:
+735f d8a005b2 arg mem_y ,contw 
+7360 ea230000 ifetch 6 ,rega 
+7361 e0a30000 istore 6 ,contw 
+7362 20347365 branch expand_12 ,user 
+7363 ea230000 ifetch 6 ,rega 
+7364 20207366 branch expand_cont 
+
+expand_12:
+7365 e8c30000 ifetch 6 ,contr 
+
+expand_cont:
+7366 e0a30000 istore 6 ,contw 
+7367 ea220000 ifetch 4 ,rega 
+7368 e0a20000 istore 4 ,contw 
+7369 20600000 rtn 
+
+key_offset:
+736a d8c041be arg mem_link_key ,contr 
+736b d8a005a2 arg mem_x ,contw 
+736c d8400000 arg 0 ,temp 
+736d 588395a7 setarg 0x8395a7 
+736e 2040738b call concatenate_temp24 
+736f 58b3c1df setarg 0xb3c1df 
+7370 2040738b call concatenate_temp24 
+7371 5800e5e9 setarg 0xe5e9 
+7372 2040738c call concatenate_temp16 
+7373 18422800 copy temp ,regab 
+7374 78547c00 disable user 
+7375 20407379 call key_addxor 
+7376 1a820400 copy regab ,temp 
+7377 78347c00 enable user 
+7378 20207379 branch key_addxor 
+
+key_addxor:
+7379 18007208 force 8 ,loopcnt 
+
+key_addxor_loop:
+737a e8c08000 ifetch 1 ,contr 
+737b 2f200201 compare 1 ,loopcnt ,1 
+737c 20347380 branch key_high ,user 
+737d 2020f381 branch key_xor ,true 
+
+key_add:
+737e 9840fe00 iadd temp ,pdata 
+737f 20207382 branch key_store 
+
+key_high:
+7380 2020f37e branch key_add ,true 
+
+key_xor:
+7381 9842fe00 ixor temp ,pdata 
+
+key_store:
+7382 e0a08000 istore 1 ,contw 
+7383 184c8400 rshift8 temp ,temp 
+7384 c200737a loop key_addxor_loop 
+7385 20600000 rtn 
+
+copy_aco:
+7386 68030596 fetch 6 ,mem_input_store + 4 
+7387 60030056 store 6 ,mem_aco 
+7388 e8c30000 ifetch 6 ,contr 
+7389 e0a30000 istore 6 ,contw 
+738a 20600000 rtn 
+
+concatenate_temp24:
+738b 184d0400 lshift8 temp ,temp 
+
+concatenate_temp16:
+738c 18500400 lshift16 temp ,temp 
+738d 98418400 ior temp ,temp 
+738e 20600000 rtn 
+
+loop1:
+738f 2020738f branch loop1 
+
+generate_stk:
+7390 4770403c bpatchx patch3c_0 ,mem_patch3c 
+7391 2040742b call function_s1 
+7392 d8a04419 arg mem_le_ltk ,contw 
+7393 20207497 branch store_aes_result 
+
+authenticate_rconfirm:
+7394 d8a0443a arg mem_le_srand ,contw 
+7395 2034f397 branch authenticate_mconfirm ,master 
+7396 d8a0042f arg mem_le_mrand ,contw 
+
+authenticate_mconfirm:
+7397 18c22200 copy contr ,rega 
+7398 20407ebf call memcpy16 
+7399 20407440 call function_c1 
+739a d8c0442a arg mem_le_rconfirm ,contr 
+739b 202074b0 branch compare_res 
+
+generate_confirm:
+739c da20042f arg mem_le_mrand ,rega 
+739d 2034f39f branch generate_mrand ,master 
+739e da20443a arg mem_le_srand ,rega 
+
+generate_mrand:
+739f 1a220a00 copy rega ,contw 
+73a0 2040630c call generate_random 
+73a1 20207440 branch function_c1 
+
+generate_sk:
+73a2 d8c044aa arg mem_le_skdm ,contr 
+73a3 20407486 call load_data128 
+73a4 d8c04419 arg mem_le_ltk ,contr 
+73a5 20407487 call load_regext 
+73a6 18006c38 force 0x38 ,aes_ctrl 
+73a7 18006c00 force 0x0 ,aes_ctrl 
+73a8 2040741d call wait_aes 
+73a9 d8a0047c arg mem_le_sk ,contw 
+73aa 20207497 branch store_aes_result 
+
+first_block_counter:
+73ab 18007e49 force 0x49 ,pdata 
+73ac 202073ae branch first_block 
+
+first_block_data:
+73ad 18007e01 force 1 ,pdata 
+
+first_block:
+73ae 18007000 force regidx_data ,regext_index 
+73af 184d5e00 lshift8 temp ,regext 
+73b0 9de1de00 ior regext ,regext 
+73b1 1f00f001 increase 1 ,regext_index 
+73b2 184cde00 rshift8 temp ,regext 
+73b3 1df15e00 rshift16 regext ,regext 
+73b4 68014411 fetch 2 ,mem_le_ivm 
+73b5 1ff07e00 lshift16 ,pdata ,pdata 
+73b6 9de1de00 ior regext ,regext 
+73b7 1f00f001 increase 1 ,regext_index 
+73b8 e8c20000 ifetch 4 ,contr 
+73b9 98005e00 iforce regext 
+73ba 1f00f001 increase 1 ,regext_index 
+73bb e8c10000 ifetch 2 ,contr 
+73bc 1a30de00 byteswap rega ,regext 
+73bd 1df05e00 lshift16 regext ,regext 
+73be 9de1de00 ior regext ,regext 
+73bf 1f00f001 increase 1 ,regext_index 
+73c0 20600000 rtn 
+
+generate_mic:
+73c1 1a608c01 add regc ,1 ,contr 
+73c2 e8c08000 ifetch 1 ,contr 
+73c3 98002200 iforce rega 
+73c4 204073ab call first_block_counter 
+73c5 2040741f call do_aes_ocb 
+73c6 18007000 force regidx_data ,regext_index 
+73c7 ea608000 ifetch 1 ,regc 
+73c8 1fe17e03 and_into 0x3 ,pdata 
+73c9 1ff05e00 lshift16 pdata ,regext 
+73ca 79205e08 set1 8 ,regext 
+73cb 2040748f call clear_hidata 
+73cc 20407422 call do_aes_cbc 
+73cd 1a227200 copy rega ,loopcnt 
+73ce 1a608c02 add regc ,2 ,contr 
+73cf 2040746e call padding_data 
+
+generate_mic_loop:
+73d0 20407478 call aes_load_data 
+73d1 20407422 call do_aes_cbc 
+73d2 1f227e00 deposit loopcnt 
+73d3 203a73d5 branch generate_mic_end ,blank 
+73d4 202073d0 branch generate_mic_loop 
+
+generate_mic_end:
+73d5 1800700c force regidx_result ,regext_index 
+73d6 1de27e00 deposit regext 
+73d7 60020417 store 4 ,mem_le_mic 
+73d8 20600000 rtn 
+
+aes_crypt_data:
+73d9 1a20a201 increase 1 ,rega 
+73da 204073ad call first_block_data 
+73db 1a620c00 copy regc ,contr 
+73dc 20407482 call aes_load_xor 
+73dd 20407425 call do_aes_ctr 
+73de 2040749e call store_enc_data 
+73df 1a60a610 increase 16 ,regc 
+73e0 1a40a5f0 increase -16 ,regb 
+73e1 202173d9 branch aes_crypt_data ,positive 
+73e2 20600000 rtn 
+
+le_encrypt:
+73e3 4770c03c bpatchx patch3c_1 ,mem_patch3c 
+73e4 da6043dc arg mem_le_txheader ,regc 
+73e5 680ac403 fetcht 5 ,mem_le_pcnt_tx 
+73e6 204073c1 call generate_mic 
+73e7 18007008 force regidx_xor ,regext_index 
+73e8 98005e00 iforce regext 
+73e9 18002200 force 0 ,rega 
+73ea 204073ad call first_block_data 
+73eb 20407425 call do_aes_ctr 
+73ec da6043de arg mem_le_txpayload ,regc 
+73ed 6800c3dd fetch 1 ,mem_le_txlen 
+73ee 1fe0a5ff add pdata ,-1 ,regb 
+73ef 9a608a00 iadd regc ,contw 
+73f0 1800700c force regidx_result ,regext_index 
+73f1 1de27e00 deposit regext 
+73f2 e0a20000 istore 4 ,contw 
+73f3 204073d9 call aes_crypt_data 
+73f4 6800c3dd fetch 1 ,mem_le_txlen 
+73f5 1fe0fe04 increase 4 ,pdata 
+73f6 6000c3dd store 1 ,mem_le_txlen 
+73f7 680ac403 fetcht 5 ,mem_le_pcnt_tx 
+73f8 18408401 increase 1 ,temp 
+73f9 600ac403 storet 5 ,mem_le_pcnt_tx 
+73fa 20600000 rtn 
+
+le_decrypt:
+73fb 4771403c bpatchx patch3c_2 ,mem_patch3c 
+73fc 680082da fetch 1 ,mem_le_rxbuf + 1 
+73fd 1fe67c14 sub pdata ,20 ,null 
+73fe 202173ff branch le_dec_cont ,positive 
+
+le_dec_cont:
+73ff da6002db arg mem_le_rxbuf + 2 ,regc 
+7400 1fe0a5ff add pdata ,-1 ,regb 
+7401 1fe0fffc increase -4 ,pdata 
+7402 600082da store 1 ,mem_le_rxbuf + 1 
+7403 9a608c00 iadd regc ,contr 
+7404 e8c20000 ifetch 4 ,contr 
+7405 18007008 force regidx_xor ,regext_index 
+7406 98005e00 iforce regext 
+7407 18002200 force 0 ,rega 
+7408 680ac408 fetcht 5 ,mem_le_pcnt_rx 
+7409 204073ad call first_block_data 
+740a 20407425 call do_aes_ctr 
+740b 1800700c force regidx_result ,regext_index 
+740c 1de27e00 deposit regext 
+740d 6002041b store 4 ,mem_le_peer_mic 
+740e 204073d9 call aes_crypt_data 
+740f da6002d9 arg mem_le_rxbuf ,regc 
+7410 204073c1 call generate_mic 
+7411 680a041b fetcht 4 ,mem_le_peer_mic 
+7412 98467e00 isub temp ,pdata 
+7413 247a0000 nrtn blank 
+7414 6802440d fetch 4 ,mem_le_last_mic 
+7415 98467e00 isub temp ,pdata 
+7416 207a0000 rtn blank 
+7417 600a440d storet 4 ,mem_le_last_mic 
+7418 6802c408 fetch 5 ,mem_le_pcnt_rx 
+7419 1fe0fe01 increase 1 ,pdata 
+741a 6002c408 store 5 ,mem_le_pcnt_rx 
+741b 18007e00 force 0 ,pdata 
+741c 20600000 rtn 
+
+wait_aes:
+741d 243bf41d nbranch wait_aes ,aes_ready 
+741e 20600000 rtn 
+
+do_aes_ocb:
+741f 18006c30 force 0x30 ,aes_ctrl 
+7420 18006c00 force 0x0 ,aes_ctrl 
+7421 2020741d branch wait_aes 
+
+do_aes_cbc:
+7422 18006c32 force 0x32 ,aes_ctrl 
+7423 18006c02 force 0x2 ,aes_ctrl 
+7424 2020741d branch wait_aes 
+
+do_aes_ctr:
+7425 18006c34 force 0x34 ,aes_ctrl 
+7426 18006c04 force 0x4 ,aes_ctrl 
+7427 2020741d branch wait_aes 
+
+aes_init:
+7428 18006c01 force 1 ,aes_ctrl 
+7429 18006c00 force 0 ,aes_ctrl 
+742a 20600000 rtn 
+
+function_s1:
+742b 18007000 force regidx_data ,regext_index 
+742c 6802042f fetch 4 ,mem_le_mrand 
+742d 98005e00 iforce regext 
+742e 1f00f001 increase 1 ,regext_index 
+742f e8c20000 ifetch 4 ,contr 
+7430 98005e00 iforce regext 
+7431 1f00f001 increase 1 ,regext_index 
+7432 6802443a fetch 4 ,mem_le_srand 
+7433 98005e00 iforce regext 
+7434 1f00f001 increase 1 ,regext_index 
+7435 e8c20000 ifetch 4 ,contr 
+7436 98005e00 iforce regext 
+7437 1f00f001 increase 1 ,regext_index 
+7438 20407492 call aes_clear 
+7439 1f00f1fc increase -4 ,regext_index 
+743a 680244c7 fetch 4 ,mem_le_tk 
+743b 1fe25e00 copy pdata ,regext 
+743c 1f00f004 increase 4 ,regext_index 
+743d 18006c38 force 0x38 ,aes_ctrl 
+743e 18006c08 force 0x8 ,aes_ctrl 
+743f 2020741d branch wait_aes 
+
+function_c1:
+7440 4771c03c bpatchx patch3c_3 ,mem_patch3c 
+7441 680344a0 fetch 6 ,mem_le_lap 
+7442 680b044f fetcht 6 ,mem_le_plap 
+7443 2034f446 branch function_c1_master ,master 
+7444 6803044f fetch 6 ,mem_le_plap 
+7445 680b44a0 fetcht 6 ,mem_le_lap 
+
+function_c1_master:
+7446 18007008 force regidx_xor ,regext_index 
+7447 18425e00 copy temp ,regext 
+7448 1f00f001 increase 1 ,regext_index 
+7449 184f5e00 rshift32 temp ,regext 
+744a 1ff07e00 lshift16 pdata ,pdata 
+744b 9de1de00 ior regext ,regext 
+744c 1f00f001 increase 1 ,regext_index 
+744d 1fef5e00 rshift32 pdata ,regext 
+744e 1f00f001 increase 1 ,regext_index 
+744f 18005e00 force 0 ,regext 
+7450 18007e00 force 0 ,pdata 
+7451 6800c48e fetch 1 ,mem_le_conn_peer_addr_type 
+7452 6808c485 fetcht 1 ,mem_le_adv_own_addr_type 
+7453 2434f456 nbranch function_c1_irat ,master 
+7454 6800c495 fetch 1 ,mem_le_conn_own_addr_type 
+7455 6808c48e fetcht 1 ,mem_le_conn_peer_addr_type 
+
+function_c1_irat:
+7456 6000c44a store 1 ,mem_le_iat 
+7457 6008c44b storet 1 ,mem_le_rat 
+7458 18007000 force regidx_data ,regext_index 
+7459 da40444a arg mem_le_iat ,regb 
+745a 18007204 force 4 ,loopcnt 
+
+function_c1_loop1:
+745b ea220000 ifetch 4 ,rega 
+745c ea4a0000 ifetcht 4 ,regb 
+745d 9842de00 ixor temp ,regext 
+745e 1f00f001 increase 1 ,regext_index 
+745f 1a20a204 increase 4 ,rega 
+7460 1a40a404 increase 4 ,regb 
+7461 c200745b loop function_c1_loop1 
+7462 20407492 call aes_clear 
+7463 1f00f1fc increase -4 ,regext_index 
+7464 680244c7 fetch 4 ,mem_le_tk 
+7465 1fe25e00 copy pdata ,regext 
+7466 1f00f004 increase 4 ,regext_index 
+7467 18006c38 force 0x38 ,aes_ctrl 
+7468 18006c0c force 0xc ,aes_ctrl 
+7469 2040741d call wait_aes 
+746a 20407491 call aes_clear_data 
+746b 18006c3a force 0x3a ,aes_ctrl 
+746c 18006c08 force 0x8 ,aes_ctrl 
+746d 2020741d branch wait_aes 
+
+padding_data:
+746e 2f200600 compare 0 ,loopcnt ,3 
+746f 20608000 rtn true 
+7470 18c27e00 deposit contr 
+7471 9f208a00 iadd loopcnt ,contw 
+7472 18007e00 force 0 ,pdata 
+
+padding_loop:
+7473 e0a08000 istore 1 ,contw 
+7474 1f20f201 increase 1 ,loopcnt 
+7475 2f200600 compare 0 ,loopcnt ,3 
+7476 20608000 rtn true 
+7477 20207473 branch padding_loop 
+
+aes_load_data:
+7478 18007000 force regidx_data ,regext_index 
+
+load_data_loop:
+7479 1f227e00 deposit loopcnt 
+747a 203a747d branch load_data_padding ,blank 
+747b e8c20000 ifetch 4 ,contr 
+747c 1f20f3fc increase -4 ,loopcnt 
+
+load_data_padding:
+747d 98005e00 iforce regext 
+747e 1f00f001 increase 1 ,regext_index 
+747f 2f001e04 compare regidx_key ,regext_index ,0xf 
+7480 20608000 rtn true 
+7481 20207479 branch load_data_loop 
+
+aes_load_xor:
+7482 18007008 force regidx_xor ,regext_index 
+7483 20207487 branch load_regext 
+
+load_key:
+7484 18007004 force regidx_key ,regext_index 
+7485 20207487 branch load_regext 
+
+load_data128:
+7486 18007000 force regidx_data ,regext_index 
+
+load_regext:
+7487 18007204 force 4 ,loopcnt 
+
+load_regext_loop:
+7488 e8c20000 ifetch 4 ,contr 
+7489 98005e00 iforce regext 
+748a 1f00f001 increase 1 ,regext_index 
+748b c2007488 loop load_regext_loop 
+748c 20600000 rtn 
+
+load_sk:
+748d d8c0047c arg mem_le_sk ,contr 
+748e 20207484 branch load_key 
+
+clear_hidata:
+748f 18007204 force 4 ,loopcnt 
+7490 20207494 branch clear_data_rest 
+
+aes_clear_data:
+7491 18007000 force regidx_data ,regext_index 
+
+aes_clear:
+7492 18007204 force 4 ,loopcnt 
+
+clear_loop:
+7493 18005e00 force 0 ,regext 
+
+clear_data_rest:
+7494 1f00f001 increase 1 ,regext_index 
+7495 c2007493 loop clear_loop 
+7496 20600000 rtn 
+
+store_aes_result:
+7497 1800700c force regidx_result ,regext_index 
+7498 18007204 force 4 ,loopcnt 
+
+send_aes_result_loop:
+7499 1de27e00 deposit regext 
+749a e0a20000 istore 4 ,contw 
+749b 1f00f001 increase 1 ,regext_index 
+749c c2007499 loop send_aes_result_loop 
+749d 20600000 rtn 
+
+store_enc_data:
+749e 1800700c force regidx_result ,regext_index 
+749f 1a620a00 copy regc ,contw 
+74a0 1a40f201 add regb ,1 ,loopcnt 
+74a1 1f267c0f sub loopcnt ,15 ,null 
+74a2 202174a4 branch store_enc_loop ,positive 
+74a3 18007210 force 16 ,loopcnt 
+
+store_enc_loop:
+74a4 1de27e00 deposit regext 
+74a5 1f267c03 sub loopcnt ,3 ,null 
+74a6 202174ac branch store_enc_byte ,positive 
+74a7 e0a20000 istore 4 ,contw 
+74a8 1f20f3fc increase -4 ,loopcnt 
+74a9 20628000 rtn zero 
+74aa 1f00f001 increase 1 ,regext_index 
+74ab 202074a4 branch store_enc_loop 
+
+store_enc_byte:
+74ac e0a08000 istore 1 ,contw 
+74ad 1fecfe00 rshift8 pdata ,pdata 
+74ae c20074ac loop store_enc_byte 
+74af 20600000 rtn 
+
+compare_res:
+74b0 1800700c force regidx_result ,regext_index 
+74b1 18007204 force 4 ,loopcnt 
+
+compare_res_loop:
+74b2 e8c20000 ifetch 4 ,contr 
+74b3 9de67c00 isub regext ,null 
+74b4 24628000 nrtn zero 
+74b5 1f00f001 increase 1 ,regext_index 
+74b6 c20074b2 loop compare_res_loop 
+74b7 18007c00 force 0 ,null 
+74b8 20600000 rtn 
+
+enable_authrom:
+74b9 68108050 hfetch 1 ,core_clkoff 
+74ba 793ffe00 set0 clock_off_auth_rom ,pdata 
+74bb 60108050 hstore 1 ,core_clkoff 
+74bc 20600000 rtn 
+
+disable_authrom:
+74bd 68108050 hfetch 1 ,core_clkoff 
+74be 79207e00 set1 clock_off_auth_rom ,pdata 
+74bf 60108050 hstore 1 ,core_clkoff 
+74c0 20600000 rtn 
+
+init_memp:
+74c1 d8a00886 arg mem_p ,contw 
+74c2 3803ffff setsect 0 ,0x3ffff 
+74c3 3807ffff setsect 1 ,0x3ffff 
+74c4 380bffff setsect 2 ,0x3ffff 
+74c5 380ffbff setsect 3 ,0x3fbff 
+74c6 e0a48000 istore 9 ,contw 
+74c7 3803ffff setsect 0 ,0x3ffff 
+74c8 3807ffff setsect 1 ,0x3ffff 
+74c9 380bffff setsect 2 ,0x3ffff 
+74ca 380fffff setsect 3 ,0x3ffff 
+74cb e0a48000 istore 9 ,contw 
+74cc 3803ffff setsect 0 ,0x3ffff 
+74cd 3807ffff setsect 1 ,0x3ffff 
+74ce 380bcfff setsect 2 ,0x3cfff 
+74cf 380fffff setsect 3 ,0x3ffff 
+74d0 e0a48000 istore 9 ,contw 
+74d1 3803ffff setsect 0 ,0x3ffff 
+74d2 3807ffff setsect 1 ,0x3ffff 
+74d3 380bffef setsect 2 ,0x3ffef 
+74d4 380fffff setsect 3 ,0x3ffff 
+74d5 e0a48000 istore 9 ,contw 
+74d6 3803ffff setsect 0 ,0x3ffff 
+74d7 3807ffff setsect 1 ,0x3ffff 
+74d8 380bffff setsect 2 ,0x3ffff 
+74d9 380fffff setsect 3 ,0x3ffff 
+74da e0a48000 istore 9 ,contw 
+74db 3803ffff setsect 0 ,0x3ffff 
+74dc 38066c7f setsect 1 ,0x26c7f 
+74dd 3808146b setsect 2 ,0x146b 
+74de 380f7bb3 setsect 3 ,0x37bb3 
+74df e0a48000 istore 9 ,contw 
+74e0 3801feb8 setsect 0 ,0x1feb8 
+74e1 38050c12 setsect 1 ,0x10c12 
+74e2 380ab722 setsect 2 ,0x2b722 
+74e3 380e9fa6 setsect 3 ,0x29fa6 
+74e4 e0a48000 istore 9 ,contw 
+74e5 3800e70f setsect 0 ,0xe70f 
+74e6 38056720 setsect 1 ,0x16720 
+74e7 3808519e setsect 2 ,0x519e 
+74e8 380d9084 setsect 3 ,0x19084 
+74e9 e0a48000 istore 9 ,contw 
+74ea 38031012 setsect 0 ,0x31012 
+74eb 380760bf setsect 1 ,0x360bf 
+74ec 380bf0af setsect 2 ,0x3f0af 
+74ed 380c03d3 setsect 3 ,0x3d3 
+74ee e0a48000 istore 9 ,contw 
+74ef 3803a188 setsect 0 ,0x3a188 
+74f0 38043ad0 setsect 1 ,0x3ad0 
+74f1 380bcbf2 setsect 2 ,0x3cbf2 
+74f2 380e43d9 setsect 3 ,0x243d9 
+74f3 e0a48000 istore 9 ,contw 
+74f4 3802b030 setsect 0 ,0x2b030 
+74f5 38076a03 setsect 1 ,0x36a03 
+74f6 38091188 setsect 2 ,0x11188 
+74f7 380de520 setsect 3 ,0x1e520 
+74f8 e0a48000 istore 9 ,contw 
+74f9 3803a11e setsect 0 ,0x3a11e 
+74fa 3804fe5d setsect 1 ,0xfe5d 
+74fb 3808dd57 setsect 2 ,0xdd57 
+74fc 380dac93 setsect 3 ,0x1ac93 
+74fd e0a48000 istore 9 ,contw 
+74fe 380011ed setsect 0 ,0x11ed 
+74ff 380618c4 setsect 1 ,0x218c4 
+7500 38088da7 setsect 2 ,0x8da7 
+7501 380e57ff setsect 3 ,0x257ff 
+7502 e0a48000 istore 9 ,contw 
+7503 3803192b setsect 0 ,0x3192b 
+7504 38074641 setsect 1 ,0x34641 
+7505 3809be0c setsect 2 ,0x1be0c 
+7506 380f66ad setsect 3 ,0x366ad 
+7507 e0a48000 istore 9 ,contw 
+7508 38001f83 setsect 0 ,0x1f83 
+7509 38055a23 setsect 1 ,0x15a23 
+750a 380bf9b0 setsect 2 ,0x3f9b0 
+750b 380c3949 setsect 3 ,0x3949 
+750c e0a48000 istore 9 ,contw 
+750d 38013a51 setsect 0 ,0x13a51 
+750e 380553fd setsect 1 ,0x153fd 
+750f 380b372a setsect 2 ,0x3372a 
+7510 380cf1bb setsect 3 ,0xf1bb 
+7511 e0a48000 istore 9 ,contw 
+7512 3803ae85 setsect 0 ,0x3ae85 
+7513 3805eed9 setsect 1 ,0x1eed9 
+7514 38089e66 setsect 2 ,0x9e66 
+7515 380c01a8 setsect 3 ,0x1a8 
+7516 e0a40000 istore 8 ,contw 
+7517 20600000 rtn 
+
+init_memp_256:
+7518 d8a0091e arg mem_p_256 ,contw 
+7519 3803ffff setsect 0 ,0x3ffff 
+751a 3807ffff setsect 1 ,0x3ffff 
+751b 380bffff setsect 2 ,0x3ffff 
+751c 380fffff setsect 3 ,0x3ffff 
+751d e0a48000 istore 9 ,contw 
+751e 3803ffff setsect 0 ,0x3ffff 
+751f 3804003f setsect 1 ,0x3f 
+7520 38080000 setsect 2 ,0x0 
+7521 380c0000 setsect 3 ,0x0 
+7522 e0a48000 istore 9 ,contw 
+7523 38000000 setsect 0 ,0x0 
+7524 38040000 setsect 1 ,0x0 
+7525 38081000 setsect 2 ,0x1000 
+7526 380c0000 setsect 3 ,0x0 
+7527 e0a48000 istore 9 ,contw 
+7528 3803ff00 setsect 0 ,0x3ff00 
+7529 3807ffff setsect 1 ,0x3ffff 
+752a 380bffcf setsect 2 ,0x3ffcf 
+752b 380fffff setsect 3 ,0x3ffff 
+752c e0a48000 istore 9 ,contw 
+752d 3803ffff setsect 0 ,0x3ffff 
+752e 3807ffff setsect 1 ,0x3ffff 
+752f 380bffff setsect 2 ,0x3ffff 
+7530 380c03ff setsect 3 ,0x3ff 
+7531 e0a48000 istore 9 ,contw 
+7532 38000000 setsect 0 ,0x0 
+7533 38040000 setsect 1 ,0x0 
+7534 38080000 setsect 2 ,0x0 
+7535 380c0000 setsect 3 ,0x0 
+7536 e0a48000 istore 9 ,contw 
+7537 38010000 setsect 0 ,0x10000 
+7538 38040000 setsect 1 ,0x0 
+7539 380bf000 setsect 2 ,0x3f000 
+753a 380fffff setsect 3 ,0x3ffff 
+753b e0a48000 istore 9 ,contw 
+753c 380296ff setsect 0 ,0x296ff 
+753d 38062630 setsect 1 ,0x22630 
+753e 380b945d setsect 2 ,0x3945d 
+753f 380fd284 setsect 3 ,0x3d284 
+7540 e0a48000 istore 9 ,contw 
+7541 380333a0 setsect 0 ,0x333a0 
+7542 38044b7a setsect 1 ,0x4b7a 
+7543 380837d8 setsect 2 ,0x37d8 
+7544 380fc9dc setsect 3 ,0x3c9dc 
+7545 e0a48000 istore 9 ,contw 
+7546 3803a440 setsect 0 ,0x3a440 
+7547 3805b958 setsect 1 ,0x1b958 
+7548 380b8bce setsect 2 ,0x38bce 
+7549 380d091f setsect 3 ,0x1091f 
+754a e0a48000 istore 9 ,contw 
+754b 3802e12c setsect 0 ,0x2e12c 
+754c 3805f47c setsect 1 ,0x1f47c 
+754d 380b56b1 setsect 2 ,0x356b1 
+754e 380efd47 setsect 3 ,0x2fd47 
+754f e0a48000 istore 9 ,contw 
+7550 38006837 setsect 0 ,0x6837 
+7551 3806ed90 setsect 1 ,0x2ed90 
+7552 3809ecec setsect 2 ,0x1ecec 
+7553 380dacc5 setsect 3 ,0x1acc5 
+7554 e0a48000 istore 9 ,contw 
+7555 38023357 setsect 0 ,0x23357 
+7556 38058af3 setsect 1 ,0x18af3 
+7557 3808f9e1 setsect 2 ,0xf9e1 
+7558 380d29f0 setsect 3 ,0x129f0 
+7559 e0a48000 istore 9 ,contw 
+755a 3802e7eb setsect 0 ,0x2e7eb 
+755b 3807e6e3 setsect 1 ,0x3e6e3 
+755c 380be1a7 setsect 2 ,0x3e1a7 
+755d 380d0b8b setsect 3 ,0x10b8b 
+755e e0a48000 istore 9 ,contw 
+755f 38024fe3 setsect 0 ,0x24fe3 
+7560 380420ef setsect 1 ,0x20ef 
+7561 3809b5a6 setsect 2 ,0x1b5a6 
+7562 380cdc2f setsect 3 ,0xdc2f 
+7563 e0a48000 istore 9 ,contw 
+7564 38013860 setsect 0 ,0x13860 
+7565 3806bd69 setsect 1 ,0x2bd69 
+7566 3808391a setsect 2 ,0x391a 
+7567 380db222 setsect 3 ,0x1b222 
+7568 e0a48000 istore 9 ,contw 
+7569 20600000 rtn 
+
+publickey_init:
+756a 6800c65a fetch 1 ,mem_ssp_enable 
+756b 243a757d nbranch sp_initialize ,blank 
+756c 20207a77 branch sp_initialize_256 
+
+sp_calc_sequence_256_check:
+756d 4772403c bpatchx patch3c_4 ,mem_patch3c 
+756e 6800c65a fetch 1 ,mem_ssp_enable 
+756f 207a0000 rtn blank 
+7570 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
+7571 c1808000 rtnne sp_key_valid 
+7572 6800c4be fetch 1 ,mem_le_secure_connect_enable 
+7573 207a0000 rtn blank 
+7574 6800c4c3 fetch 1 ,mem_le_sc_local_key_invalid 
+7575 c1018000 rtneq sp_key_valid_256 
+7576 68014682 fetch 2 ,mem_ui_state_map 
+7577 c280757b bbit1 ui_state_bt_connected ,stop_publickey_calc_256 
+7578 6800c4c0 fetch 1 ,mem_le_sc_calc 
+7579 c0007a77 beq sp_calc_standby ,sp_initialize_256 
+757a 20600000 rtn 
+
+stop_publickey_calc_256:
+757b 7044c000 jam sp_calc_standby ,mem_le_sc_calc 
+757c 20600000 rtn 
+
+sp_initialize:
+757d 4772c03c bpatchx patch3c_5 ,mem_patch3c 
+757e 6800c65a fetch 1 ,mem_ssp_enable 
+757f 203a612b branch ssp_disable ,blank 
+7580 20406124 call ssp_enable 
+7581 20407583 call sp_clear_flags 
+7582 2020766d branch sp_pubkey_calc 
+
+sp_clear_flags:
+7583 58000000 setarg 0 
+7584 600409ae store 8 ,mem_sp_state_start 
+7585 600209b6 store 4 ,mem_sp_flag_start 
+7586 6003c65e store 7 ,mem_sp_iocap_remote 
+7587 20600000 rtn 
+
+sp_generate_local_key:
+7588 7009b001 jam sp_flag_commit ,mem_sp_flag 
+7589 2020758d branch sp_generate_local_key0 
+
+sp_master_generate_local_key:
+758a 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
+758b c000f68a beq sp_key_valid ,sp_dhkey_calc 
+758c 20202a8c branch assert 
+
+sp_generate_local_key0:
+758d 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
+758e c000f590 beq sp_key_valid ,sp_start_send_pubkey 
+758f 2020766d branch sp_pubkey_calc 
+
+sp_start_send_pubkey:
+7590 2040768a call sp_dhkey_calc 
+7591 680089af fetch 1 ,mem_master_sp_state 
+7592 247a0000 nrtn blank 
+7593 7009ae03 jam sp_stat_key_send ,mem_sp_state 
+7594 20600000 rtn 
+
+sp_calc_check_publickey_256:
+7595 204075b0 call sp_calc_b256 
+7596 da2009de arg mem_le_pubkey_remote_y_256 ,rega 
+7597 d8a00866 arg mem_t7_256 ,contw 
+7598 20407c79 call bn_sqrmod_256 
+7599 da2009be arg mem_le_pubkey_remote_x_256 ,rega 
+759a d8a00826 arg mem_t2_256 ,contw 
+759b 20407c79 call bn_sqrmod_256 
+759c da200826 arg mem_t2_256 ,rega 
+759d da4009be arg mem_le_pubkey_remote_x_256 ,regb 
+759e d8a00826 arg mem_t2_256 ,contw 
+759f 20407be1 call bn_mulmod_256 
+75a0 da20093e arg mem_a_256 ,rega 
+75a1 da4009be arg mem_le_pubkey_remote_x_256 ,regb 
+75a2 d8a00846 arg mem_t3_256 ,contw 
+75a3 20407be1 call bn_mulmod_256 
+75a4 da200846 arg mem_t3_256 ,rega 
+75a5 da400826 arg mem_t2_256 ,regb 
+75a6 d8a00826 arg mem_t2_256 ,contw 
+75a7 20407c7d call bn_addmod_256 
+75a8 da200806 arg mem_t0_256 ,rega 
+75a9 da400826 arg mem_t2_256 ,regb 
+75aa d8a00806 arg mem_t0_256 ,contw 
+75ab 20407c7d call bn_addmod_256 
+75ac df200020 arg 32 ,loopcnt 
+75ad da200866 arg mem_t7_256 ,rega 
+75ae da400806 arg mem_t0_256 ,regb 
+75af 20207f88 branch string_compare 
+
+sp_calc_b256:
+75b0 da20097e arg mem_gy_256 ,rega 
+75b1 d8a00806 arg mem_t0_256 ,contw 
+75b2 20407c79 call bn_sqrmod_256 
+75b3 da20095e arg mem_gx_256 ,rega 
+75b4 d8a00826 arg mem_t2_256 ,contw 
+75b5 20407c79 call bn_sqrmod_256 
+75b6 da200826 arg mem_t2_256 ,rega 
+75b7 da40095e arg mem_gx_256 ,regb 
+75b8 d8a00826 arg mem_t2_256 ,contw 
+75b9 20407be1 call bn_mulmod_256 
+75ba da20093e arg mem_a_256 ,rega 
+75bb da40095e arg mem_gx_256 ,regb 
+75bc d8a00846 arg mem_t3_256 ,contw 
+75bd 20407be1 call bn_mulmod_256 
+75be da200846 arg mem_t3_256 ,rega 
+75bf da400826 arg mem_t2_256 ,regb 
+75c0 d8a00826 arg mem_t2_256 ,contw 
+75c1 20407c7d call bn_addmod_256 
+75c2 da200806 arg mem_t0_256 ,rega 
+75c3 da400826 arg mem_t2_256 ,regb 
+75c4 d8a00806 arg mem_t0_256 ,contw 
+75c5 20207c96 branch bn_submod_256 
+
+sp_calc_check_publickey:
+75c6 204075e1 call sp_calc_b 
+75c7 da2009e6 arg mem_sp_pubkey_remote_y ,rega 
+75c8 d8a00866 arg mem_t7_256 ,contw 
+75c9 204077a8 call bn_sqrmod 
+75ca da2009c6 arg mem_sp_pubkey_remote_x ,rega 
+75cb d8a00826 arg mem_t2_256 ,contw 
+75cc 204077a8 call bn_sqrmod 
+75cd da200826 arg mem_t2_256 ,rega 
+75ce da4009c6 arg mem_sp_pubkey_remote_x ,regb 
+75cf d8a00826 arg mem_t2_256 ,contw 
+75d0 20407786 call bn_mulmod 
+75d1 da20089e arg mem_a ,rega 
+75d2 da4009c6 arg mem_sp_pubkey_remote_x ,regb 
+75d3 d8a00846 arg mem_t3_256 ,contw 
+75d4 20407786 call bn_mulmod 
+75d5 da200846 arg mem_t3_256 ,rega 
+75d6 da400826 arg mem_t2_256 ,regb 
+75d7 d8a00826 arg mem_t2_256 ,contw 
+75d8 20407755 call bn_addmod 
+75d9 da200806 arg mem_t0_256 ,rega 
+75da da400826 arg mem_t2_256 ,regb 
+75db d8a00806 arg mem_t0_256 ,contw 
+75dc 20407755 call bn_addmod 
+75dd df200018 arg 24 ,loopcnt 
+75de da200866 arg mem_t7_256 ,rega 
+75df da400806 arg mem_t0_256 ,regb 
+75e0 20207f88 branch string_compare 
+
+sp_calc_b:
+75e1 da2008e6 arg mem_gy ,rega 
+75e2 d8a00806 arg mem_t0_256 ,contw 
+75e3 204077a8 call bn_sqrmod 
+75e4 da2008ce arg mem_gx ,rega 
+75e5 d8a00826 arg mem_t2_256 ,contw 
+75e6 204077a8 call bn_sqrmod 
+75e7 da200826 arg mem_t2_256 ,rega 
+75e8 da4008ce arg mem_gx ,regb 
+75e9 d8a00826 arg mem_t2_256 ,contw 
+75ea 20407786 call bn_mulmod 
+75eb da20089e arg mem_a ,rega 
+75ec da4008ce arg mem_gx ,regb 
+75ed d8a00846 arg mem_t3_256 ,contw 
+75ee 20407786 call bn_mulmod 
+75ef da200846 arg mem_t3_256 ,rega 
+75f0 da400826 arg mem_t2_256 ,regb 
+75f1 d8a00826 arg mem_t2_256 ,contw 
+75f2 20407755 call bn_addmod 
+75f3 da200806 arg mem_t0_256 ,rega 
+75f4 da400826 arg mem_t2_256 ,regb 
+75f5 d8a00806 arg mem_t0_256 ,contw 
+75f6 20207758 branch bn_submod 
+
+sp_calculate_commitment:
+75f7 680089b2 fetch 1 ,mem_sp_calc 
+75f8 c0807615 bne sp_calc_standby ,sp_calculate_commitment_wait_dhkey_calc 
+75f9 20407612 call sp_local_random_key_generator 
+75fa d8a00a7e arg mem_sp_prarm_stack ,contw 
+75fb 58000a2e setarg mem_sp_random_local_end 
+75fc e0a10000 istore 2 ,contw 
+75fd 58004642 setarg mem_sp_pubkey_local_x_end 
+75fe e0a10000 istore 2 ,contw 
+75ff 580009de setarg mem_sp_pubkey_remote_x_end 
+7600 e0a10000 istore 2 ,contw 
+7601 20207609 branch sp_calculate_commitment0 
+
+master_sp_calculate_commitment:
+7602 d8a00a7e arg mem_sp_prarm_stack ,contw 
+7603 58000a3e setarg mem_sp_random_remote_end 
+7604 e0a10000 istore 2 ,contw 
+7605 580009de setarg mem_sp_pubkey_remote_x_end 
+7606 e0a10000 istore 2 ,contw 
+7607 58004642 setarg mem_sp_pubkey_local_x_end 
+7608 e0a10000 istore 2 ,contw 
+
+sp_calculate_commitment0:
+7609 204079a0 call function_f1 
+760a 680089af fetch 1 ,mem_master_sp_state 
+760b c002760f beq sp_stat_commit_calc ,master_sp_calculate_commitment0 
+760c 7009b001 jam sp_flag_commit ,mem_sp_flag 
+760d 7009ae05 jam sp_stat_commit_send ,mem_sp_state 
+760e 20600000 rtn 
+
+master_sp_calculate_commitment0:
+760f 7009af14 jam sp_stat_commitment_compare ,mem_master_sp_state 
+7610 2040758a call sp_master_generate_local_key 
+7611 202076d8 branch master_set_mem_master_sp_flag 
+
+sp_local_random_key_generator:
+7612 d8a00a1e arg mem_sp_random_local ,contw 
+7613 18000e08 force 8 ,queue 
+7614 202076a2 branch random_generator 
+
+sp_calculate_commitment_wait_dhkey_calc:
+7615 7009b001 jam sp_flag_commit ,mem_sp_flag 
+7616 20600000 rtn 
+
+sp_confirm_check:
+7617 4773403c bpatchx patch3c_6 ,mem_patch3c 
+7618 d8a00727 arg mem_addr_value ,contw 
+7619 680340a0 fetch 6 ,mem_lap 
+761a e0a30000 istore 6 ,contw 
+761b 68030040 fetch 6 ,mem_plap 
+761c e0a30000 istore 6 ,contw 
+761d 6801c65e fetch 3 ,mem_sp_iocap_remote 
+761e e0a18000 istore 3 ,contw 
+761f 20407a0d call function_f3a 
+7620 da200a4e arg mem_sp_calc_result_high ,rega 
+7621 da400a5e arg mem_sp_check_result ,regb 
+7622 18000e04 force 4 ,queue 
+7623 204076a7 call compare4 
+7624 2420f631 nbranch sp_confirm_check_failed ,true 
+7625 20407628 call sp_confirm_check_success 
+7626 70007d41 jam lmp_dhkey_check ,mem_lmi_opcode2 
+7627 202062f8 branch tid_set_reply 
+
+sp_confirm_check_success:
+7628 680089af fetch 1 ,mem_master_sp_state 
+7629 c004f62e beq sp_stat_confirm_check ,sp_confirm_check_success_master 
+762a 7009ae0a jam sp_stat_confirm_calc ,mem_sp_state 
+762b 7009b001 jam sp_flag_commit ,mem_sp_flag 
+762c 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
+762d 20600000 rtn 
+
+sp_confirm_check_success_master:
+762e 70007c03 jam lmp_accepted ,mem_lmo_opcode2 
+762f 7009af15 jam sp_state_end ,mem_master_sp_state 
+7630 202076d8 branch master_set_mem_master_sp_flag 
+
+sp_confirm_check_failed:
+7631 680089af fetch 1 ,mem_master_sp_state 
+7632 c004f637 beq sp_stat_confirm_check ,sp_confirm_check_failed_master 
+7633 7009ae00 jam sp_stat_null ,mem_sp_state 
+7634 70007c04 jam lmp_not_accepted ,mem_lmo_opcode2 
+7635 70007e05 jam authentication_failure_error ,mem_lmo_reason2 
+7636 20600000 rtn 
+
+sp_confirm_check_failed_master:
+7637 70007c04 jam lmp_not_accepted ,mem_lmo_opcode2 
+7638 7009af00 jam sp_stat_null ,mem_master_sp_state 
+7639 20600000 rtn 
+
+sp_confirm_calc:
+763a 680089b3 fetch 1 ,mem_sp_dh_ready 
+763b c000f63e beq sp_flag_commit ,sp_confirm_calc_ready 
+763c 7009af0a jam sp_stat_confirm_calc ,mem_master_sp_state 
+763d 202076d8 branch master_set_mem_master_sp_flag 
+
+sp_confirm_calc_ready:
+763e d8a00727 arg mem_addr_value ,contw 
+763f 68030040 fetch 6 ,mem_plap 
+7640 e0a30000 istore 6 ,contw 
+7641 680340a0 fetch 6 ,mem_lap 
+7642 e0a30000 istore 6 ,contw 
+7643 6801c65b fetch 3 ,mem_sp_iocap_local 
+7644 e0a18000 istore 3 ,contw 
+7645 20407a24 call function_f3b 
+7646 680089af fetch 1 ,mem_master_sp_state 
+7647 c005764b beq sp_stat_confirm_calc ,sp_confirm_calc_master 
+7648 7009ae0b jam sp_stat_confirm_send ,mem_sp_state 
+7649 7009b001 jam sp_flag_commit ,mem_sp_flag 
+764a 20600000 rtn 
+
+sp_confirm_calc_master:
+764b 7009af0b jam sp_stat_confirm_send ,mem_master_sp_state 
+764c 7009b101 jam sp_flag_commit ,mem_master_sp_flag 
+764d 20600000 rtn 
+
+sp_master_key_prarm_push:
+764e d8a00a7e arg mem_sp_prarm_stack ,contw 
+764f 68030040 fetch 6 ,mem_plap 
+7650 e0a30000 istore 6 ,contw 
+7651 680340a0 fetch 6 ,mem_lap 
+7652 e0a30000 istore 6 ,contw 
+7653 58000a2e setarg mem_sp_random_local_end 
+7654 e0a10000 istore 2 ,contw 
+7655 58000a3e setarg mem_sp_random_remote_end 
+7656 e0a10000 istore 2 ,contw 
+7657 20207662 branch sp_link_key_calc 
+
+sp_link_key_prarm_push:
+7658 7009ae0f jam sp_stat_done ,mem_sp_state 
+7659 d8a00a7e arg mem_sp_prarm_stack ,contw 
+765a 680340a0 fetch 6 ,mem_lap 
+765b e0a30000 istore 6 ,contw 
+765c 68030040 fetch 6 ,mem_plap 
+765d e0a30000 istore 6 ,contw 
+765e 58000a3e setarg mem_sp_random_remote_end 
+765f e0a10000 istore 2 ,contw 
+7660 58000a2e setarg mem_sp_random_local_end 
+7661 e0a10000 istore 2 ,contw 
+
+sp_link_key_calc:
+7662 d8a00727 arg mem_addr_value ,contw 
+7663 68030a7e fetch 6 ,mem_sp_prarm_stack 
+7664 e0a30000 istore 6 ,contw 
+7665 68030a84 fetch 6 ,mem_sp_prarm_stack + 6 
+7666 e0a30000 istore 6 ,contw 
+7667 204079d7 call function_f2 
+7668 7041bd01 jam 1 ,mem_link_key_exists 
+7669 d8a041be arg mem_link_key ,contw 
+766a d8c00a4e arg mem_sp_calc_result_high ,contr 
+766b 20407ebf call memcpy16 
+766c 202021c4 branch generate_linkkey_continue 
+
+sp_pubkey_calc:
+766d 4773c03c bpatchx patch3c_7 ,mem_patch3c 
+766e 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
+766f c1800000 rtnne sp_key_invalid 
+7670 680089b2 fetch 1 ,mem_sp_calc 
+7671 c1800000 rtnne sp_calc_standby 
+7672 d8a04612 arg mem_sp_private_key ,contw 
+7673 18000e0b force 11 ,queue 
+7674 204076a2 call random_generator 
+7675 180a7e00 random pdata 
+7676 1fe37e00 rshift pdata ,pdata 
+7677 e0a10000 istore 2 ,contw 
+7678 d8a006be arg mem_k ,contw 
+7679 d8c04612 arg mem_sp_private_key ,contr 
+767a 20407ebe call memcpy24 
+767b d8a005e6 arg mem_ax ,contw 
+767c d8c008ce arg mem_gx ,contr 
+767d 20407ebc call memcpy48 
+767e d8a00616 arg mem_az ,contw 
+767f 20407ec5 call bn_zero 
+7680 70061601 jam 1 ,mem_az 
+7681 20407a5d call eckp_calc_init 
+7682 7009b201 jam sp_calc_pubkey ,mem_sp_calc 
+7683 20600000 rtn 
+
+sp_pubkey_generated:
+7684 d8a0462a arg mem_sp_pubkey_local ,contw 
+7685 d8c0062e arg mem_bx ,contr 
+7686 20407ebc call memcpy48 
+7687 7045b101 jam sp_key_valid ,mem_sp_local_key_invalid 
+7688 7009b200 jam sp_calc_standby ,mem_sp_calc 
+7689 20600000 rtn 
+
+sp_dhkey_calc:
+768a 4774403d bpatchx patch3d_0 ,mem_patch3d 
+768b 680089b9 fetch 1 ,mem_sp_dhkey_invalid 
+768c c1800000 rtnne sp_key_invalid 
+768d 680089b2 fetch 1 ,mem_sp_calc 
+768e c1800000 rtnne sp_calc_standby 
+768f d8a006be arg mem_k ,contw 
+7690 d8c04612 arg mem_sp_private_key ,contr 
+7691 20407ebe call memcpy24 
+7692 d8a005e6 arg mem_ax ,contw 
+7693 d8c009c6 arg mem_sp_pubkey_remote ,contr 
+7694 20407ebc call memcpy48 
+7695 d8a00616 arg mem_az ,contw 
+7696 20407ec5 call bn_zero 
+7697 70061601 jam 1 ,mem_az 
+7698 20407a5d call eckp_calc_init 
+7699 7009b202 jam sp_calc_dhkey ,mem_sp_calc 
+769a 20600000 rtn 
+
+sp_dhkey_generated:
+769b 7009b301 jam sp_flag_commit ,mem_sp_dh_ready 
+769c d8a00a06 arg mem_sp_dhkey ,contw 
+769d d8c0062e arg mem_bx ,contr 
+769e 20407ebe call memcpy24 
+769f 7009b901 jam sp_key_valid ,mem_sp_dhkey_invalid 
+76a0 7009b200 jam sp_calc_standby ,mem_sp_calc 
+76a1 20600000 rtn 
+
+random_generator:
+76a2 18e08fff increase -1 ,queue 
+76a3 24610000 nrtn positive 
+76a4 180a7e00 random pdata 
+76a5 e0a10000 istore 2 ,contw 
+76a6 202076a2 branch random_generator 
+
+compare4:
+76a7 18e08fff increase -1 ,queue 
+76a8 242176b3 nbranch compare4_success ,positive 
+76a9 ea220000 ifetch 4 ,rega 
+76aa 1fe20400 copy pdata ,temp 
+76ab ea420000 ifetch 4 ,regb 
+76ac 9842fe00 iflip temp ,pdata 
+76ad 2422f6b1 nbranch compare4_failed ,zero 
+76ae 1a20a204 increase 4 ,rega 
+76af 1a40a404 increase 4 ,regb 
+76b0 202076a7 branch compare4 
+
+compare4_failed:
+76b1 7840fc00 disable true 
+76b2 20600000 rtn 
+
+compare4_success:
+76b3 7820fc00 enable true 
+76b4 20600000 rtn 
+
+simple_pairing_sequence:
+76b5 4774c03d bpatchx patch3d_1 ,mem_patch3d 
+76b6 680089b0 fetch 1 ,mem_sp_flag 
+76b7 207a0000 rtn blank 
+76b8 204062bc call lmo_fifo_check 
+76b9 247a0000 nrtn blank 
+76ba 7009b000 jam sp_flag_standby ,mem_sp_flag 
+76bb 680089ae fetch 1 ,mem_sp_state 
+76bc c001e1fd beq sp_stat_key_send ,sp_send_lmp_encapsulated_header 
+76bd c002e21a beq sp_stat_commit_send ,sp_send_lmp_simple_pairing_comfirm 
+76be c003e225 beq sp_stat_random_send ,sp_send_lmp_simple_pairing_number 
+76bf c005e23a beq sp_stat_confirm_send ,sp_send_lmp_dhkey_check 
+76c0 c0017588 beq sp_stat_key_generate ,sp_generate_local_key 
+76c1 c00275f7 beq sp_stat_commit_calc ,sp_calculate_commitment 
+76c2 c004f617 beq sp_stat_confirm_check ,sp_confirm_check 
+76c3 c005763a beq sp_stat_confirm_calc ,sp_confirm_calc 
+76c4 c0067658 beq sp_stat_link_key_calc ,sp_link_key_prarm_push 
+76c5 20600000 rtn 
+
+master_simple_paring_sequence:
+76c6 4775403d bpatchx patch3d_2 ,mem_patch3d 
+76c7 680089b1 fetch 1 ,mem_master_sp_flag 
+76c8 207a0000 rtn blank 
+76c9 204062bc call lmo_fifo_check 
+76ca 247a0000 nrtn blank 
+76cb 7009b100 jam sp_flag_standby ,mem_master_sp_flag 
+76cc 680089af fetch 1 ,mem_master_sp_state 
+76cd c00961e0 beq sp_master_stat_start_skip ,sp_master_send_io_cap_get 
+76ce c009e1e5 beq sp_master_stat_start_done ,sp_master_send_io_cap_send 
+76cf c001e1e9 beq sp_stat_key_send ,sp_master_send_lmp_encapsulated_header 
+76d0 c0027602 beq sp_stat_commit_calc ,master_sp_calculate_commitment 
+76d1 c00a61ed beq sp_stat_commitment_compare ,sp_master_commitment_compare 
+76d2 c003e1fb beq sp_stat_random_send ,sp_master_send_lmp_simple_pairing_number 
+76d3 c005763a beq sp_stat_confirm_calc ,sp_confirm_calc 
+76d4 c005e239 beq sp_stat_confirm_send ,master_sp_send_lmp_dhkey_check 
+76d5 c004f617 beq sp_stat_confirm_check ,sp_confirm_check 
+76d6 c00ae233 beq sp_state_end ,master_sp_sm_end 
+76d7 20600000 rtn 
+
+master_set_mem_master_sp_flag:
+76d8 7009b101 jam sp_flag_commit ,mem_master_sp_flag 
+76d9 20600000 rtn 
+
+master_clear_mem_master_sp_flag:
+76da 7009b100 jam sp_flag_standby ,mem_master_sp_flag 
+76db 20600000 rtn 
+
+sp_calc_sequence:
+76dc 4775c03d bpatchx patch3d_3 ,mem_patch3d 
+76dd 6800c65a fetch 1 ,mem_ssp_enable 
+76de 207a0000 rtn blank 
+76df 680089b2 fetch 1 ,mem_sp_calc 
+76e0 207a0000 rtn blank 
+76e1 1fe0fe80 increase 0x80 ,pdata 
+76e2 600089b2 store 1 ,mem_sp_calc 
+76e3 c3838000 rtnbit1 7 
+76e4 680085e3 fetch 1 ,mem_ec_loopc 
+76e5 203a76e7 branch sp_calc_sequence_done ,blank 
+76e6 20207a68 branch eckp_calc 
+
+sp_calc_sequence_done:
+76e7 204078d3 call ecunmapz 
+76e8 680089b2 fetch 1 ,mem_sp_calc 
+76e9 c000f684 beq sp_calc_pubkey ,sp_pubkey_generated 
+76ea c001769b beq sp_calc_dhkey ,sp_dhkey_generated 
+76eb 20600000 rtn 
+
+bn_testbit:
+76ec 1fe10e07 and pdata ,7 ,queue 
+76ed 1fe97e00 rshift3 pdata ,pdata 
+76ee 98c08c00 iadd contr ,contr 
+76ef e8c08000 ifetch 1 ,contr 
+76f0 afec0000 qisolate0 pdata 
+76f1 20600000 rtn 
+
+ec_copy:
+76f2 20407ebe call memcpy24 
+76f3 20407ebe call memcpy24 
+76f4 20207ebe branch memcpy24 
+
+bn_eq_zero:
+76f5 e8c40000 ifetch 8 ,contr 
+76f6 247a0000 nrtn blank 
+76f7 e8c40000 ifetch 8 ,contr 
+76f8 247a0000 nrtn blank 
+76f9 e8c40000 ifetch 8 ,contr 
+76fa 20600000 rtn 
+
+bn_eq_0:
+76fb ea220000 ifetch 4 ,rega 
+76fc 98000400 iforce temp 
+76fd ea420000 ifetch 4 ,regb 
+76fe 98467c00 isub temp ,null 
+76ff 24628000 nrtn zero 
+7700 1a20a204 increase 4 ,rega 
+7701 1a40a404 increase 4 ,regb 
+7702 c20076fb loop bn_eq_0 
+7703 20600000 rtn 
+
+bn_bigeq:
+7704 18007206 force 6 ,loopcnt 
+7705 1a20a214 increase 20 ,rega 
+7706 1a40a414 increase 20 ,regb 
+
+bn_bigeq_0:
+7707 ea420000 ifetch 4 ,regb 
+7708 98000400 iforce temp 
+7709 ea220000 ifetch 4 ,rega 
+770a 98467e00 isub temp ,pdata 
+770b 24610000 nrtn positive 
+770c 247a0000 nrtn blank 
+770d 1a20a3fc increase -4 ,rega 
+770e 1a40a5fc increase -4 ,regb 
+770f c2007707 loop bn_bigeq_0 
+7710 20600000 rtn 
+
+bn_add:
+7711 18007206 force 6 ,loopcnt 
+7712 18002600 force 0 ,regc 
+
+bn_add_0:
+7713 ea220000 ifetch 4 ,rega 
+7714 98000400 iforce temp 
+7715 ea420000 ifetch 4 ,regb 
+7716 9840fe00 iadd temp ,pdata 
+7717 9a60fe00 iadd regc ,pdata 
+7718 e0a20000 istore 4 ,contw 
+7719 2feffe20 isolate1 32 ,pdata 
+771a 7920a600 setflag true ,0 ,regc 
+771b 1a20a204 increase 4 ,rega 
+771c 1a40a404 increase 4 ,regb 
+771d c2007713 loop bn_add_0 
+771e 20600000 rtn 
+
+bn_sub:
+771f 18007206 force 6 ,loopcnt 
+7720 18002600 force 0 ,regc 
+
+bn_sub_0:
+7721 ea420000 ifetch 4 ,regb 
+7722 98000400 iforce temp 
+7723 ea220000 ifetch 4 ,rega 
+7724 98467e00 isub temp ,pdata 
+7725 9a667e00 isub regc ,pdata 
+7726 e0a20000 istore 4 ,contw 
+7727 2feffe20 isolate1 32 ,pdata 
+7728 7920a600 setflag true ,0 ,regc 
+7729 1a20a204 increase 4 ,rega 
+772a 1a40a404 increase 4 ,regb 
+772b c2007721 loop bn_sub_0 
+772c 20600000 rtn 
+
+bn_rshift6:
+772d 18007206 force 6 ,loopcnt 
+772e 1a20a214 increase 20 ,rega 
+
+bn_rshift:
+772f 18002600 force 0 ,regc 
+
+bn_rshift_0:
+7730 ea220000 ifetch 4 ,rega 
+7731 2feffe00 isolate1 0 ,pdata 
+7732 7920a601 setflag true ,1 ,regc 
+7733 1fe37e00 rshift pdata ,pdata 
+7734 2a6ffe00 isolate1 0 ,regc 
+7735 7920fe1f setflag true ,31 ,pdata 
+7736 e2220000 istore 4 ,rega 
+7737 1a20a3fc increase -4 ,rega 
+7738 1a632600 rshift regc ,regc 
+7739 c2007730 loop bn_rshift_0 
+773a 20600000 rtn 
+
+bn_lshift:
+773b 18007206 force 6 ,loopcnt 
+773c 18002600 force 0 ,regc 
+
+bn_lshift_0:
+773d ea220000 ifetch 4 ,rega 
+773e 2feffe1f isolate1 31 ,pdata 
+773f 7920a601 setflag true ,1 ,regc 
+7740 1fe3fe00 lshift pdata ,pdata 
+7741 2a6ffe00 isolate1 0 ,regc 
+7742 7920fe00 setflag true ,0 ,pdata 
+7743 e2220000 istore 4 ,rega 
+7744 1a20a204 increase 4 ,rega 
+7745 1a632600 rshift regc ,regc 
+7746 c200773d loop bn_lshift_0 
+7747 20600000 rtn 
+
+bn_lshiftmod:
+7748 2040773b call bn_lshift 
+
+bn_lshiftmod_ismod:
+7749 2a6ffe00 isolate1 0 ,regc 
+774a 2020f751 branch bn_lshiftmod_0 ,true 
+774b da400886 arg mem_p ,regb 
+774c 1a222600 copy rega ,regc 
+774d 1a20a3e8 increase -24 ,rega 
+774e 20407704 call bn_bigeq 
+774f 24610000 nrtn positive 
+7750 1a622200 copy regc ,rega 
+
+bn_lshiftmod_0:
+7751 1a20a3e8 increase -24 ,rega 
+7752 da400886 arg mem_p ,regb 
+7753 1a220a00 copy rega ,contw 
+7754 2020771f branch bn_sub 
+
+bn_addmod:
+7755 20407711 call bn_add 
+7756 18a22200 copy contw ,rega 
+7757 20207749 branch bn_lshiftmod_ismod 
+
+bn_submod:
+7758 2040771f call bn_sub 
+7759 2a6c0000 isolate0 0 ,regc 
+775a 20608000 rtn true 
+775b da400886 arg mem_p ,regb 
+775c 18a0a3e8 add contw ,-24 ,rega 
+775d 1a220a00 copy rega ,contw 
+775e 20207711 branch bn_add 
+
+bn_p192mod:
+775f 18a21600 copy contw ,timeup 
+7760 1a226000 copy rega ,alarm 
+7761 da400716 arg mem_tmp2 ,regb 
+7762 1a420a00 copy regb ,contw 
+7763 1a208c18 add rega ,24 ,contr 
+7764 e8c40000 ifetch 8 ,contr 
+7765 e0a40000 istore 8 ,contw 
+7766 e0a40000 istore 8 ,contw 
+7767 18007e00 force 0 ,pdata 
+7768 e0a40000 istore 8 ,contw 
+7769 19620a00 copy timeup ,contw 
+776a 20407755 call bn_addmod 
+776b da400716 arg mem_tmp2 ,regb 
+776c 1a420a00 copy regb ,contw 
+776d 18007e00 force 0 ,pdata 
+776e e0a40000 istore 8 ,contw 
+776f 1e008c20 add alarm ,32 ,contr 
+7770 e8c40000 ifetch 8 ,contr 
+7771 e0a40000 istore 8 ,contw 
+7772 e0a40000 istore 8 ,contw 
+7773 19622200 copy timeup ,rega 
+7774 1a220a00 copy rega ,contw 
+7775 20407755 call bn_addmod 
+7776 da400716 arg mem_tmp2 ,regb 
+7777 1a420a00 copy regb ,contw 
+7778 1e008c28 add alarm ,40 ,contr 
+7779 e8c40000 ifetch 8 ,contr 
+777a e0a40000 istore 8 ,contw 
+777b e0a40000 istore 8 ,contw 
+777c e0a40000 istore 8 ,contw 
+777d 19622200 copy timeup ,rega 
+777e 1a220a00 copy rega ,contw 
+777f 20207755 branch bn_addmod 
+
+bn_load:
+7780 18007206 force 6 ,loopcnt 
+
+bn_load_0:
+7781 e8c20000 ifetch 4 ,contr 
+7782 98005e00 iforce regext 
+7783 1f00f001 increase 1 ,regext_index 
+7784 c2007781 loop bn_load_0 
+7785 20600000 rtn 
+
+bn_mulmod:
+7786 18a21600 copy contw ,timeup 
+7787 d8a006e6 arg mem_tmp1 ,contw 
+7788 20407ec5 call bn_zero 
+7789 d8a006e6 arg mem_tmp1 ,contw 
+778a 1a220c00 copy rega ,contr 
+778b 18007000 force 0 ,regext_index 
+778c 20407780 call bn_load 
+778d 1a420c00 copy regb ,contr 
+778e 20407780 call bn_load 
+778f 18002400 force 0 ,regb 
+
+bn_mulmod_1:
+7790 18000400 force 0 ,temp 
+7791 18002606 force 6 ,regc 
+
+bn_mulmod_0:
+7792 e8a20000 ifetch 4 ,contw 
+7793 98002200 iforce rega 
+7794 1a427000 copy regb ,regext_index 
+7795 1de27e00 deposit regext 
+7796 1a627000 copy regc ,regext_index 
+7797 9deffe00 imul32 regext ,pdata 
+7798 9a20fe00 iadd rega ,pdata 
+7799 9840fe00 iadd temp ,pdata 
+779a e0a20000 istore 4 ,contw 
+779b 1fef0400 rshift32 pdata ,temp 
+779c 1a60a601 increase 1 ,regc 
+779d 2a61fe0c compare 12 ,regc ,0xff 
+779e 2420f792 nbranch bn_mulmod_0 ,true 
+779f 18427e00 deposit temp 
+77a0 e0a20000 istore 4 ,contw 
+77a1 18a08be8 increase -24 ,contw 
+77a2 1a40a401 increase 1 ,regb 
+77a3 2a41fe06 compare 6 ,regb ,0xff 
+77a4 2420f790 nbranch bn_mulmod_1 ,true 
+77a5 da2006e6 arg mem_tmp1 ,rega 
+77a6 19620a00 copy timeup ,contw 
+77a7 2020775f branch bn_p192mod 
+
+bn_sqrmod:
+77a8 1a222400 copy rega ,regb 
+77a9 20207786 branch bn_mulmod 
+
+bn_rshifteven:
+77aa 1a226000 copy rega ,alarm 
+
+bn_rshifteven_1:
+77ab 1e022200 copy alarm ,rega 
+77ac ea208000 ifetch 1 ,rega 
+77ad 2feffe00 isolate1 0 ,pdata 
+77ae 20608000 rtn true 
+77af 2040772d call bn_rshift6 
+77b0 ea408000 ifetch 1 ,regb 
+77b1 2fec0000 isolate0 0 ,pdata 
+77b2 2020f7ba branch bn_rshifteven_0 ,true 
+77b3 da200886 arg mem_p ,rega 
+77b4 1a420a00 copy regb ,contw 
+77b5 20407711 call bn_add 
+77b6 ea408000 ifetch 1 ,regb 
+77b7 9a60fe00 iadd regc ,pdata 
+77b8 e2408000 istore 1 ,regb 
+77b9 1a40a5e8 increase -24 ,regb 
+
+bn_rshifteven_0:
+77ba 1a40a218 add regb ,24 ,rega 
+77bb 18007207 force 7 ,loopcnt 
+77bc 2040772f call bn_rshift 
+77bd 202077ab branch bn_rshifteven_1 
+
+bn_invmod:
+77be 18a21600 copy contw ,timeup 
+77bf d8a00746 arg mem_tmp0 ,contw 
+77c0 20407ec5 call bn_zero 
+77c1 18007e00 force 0 ,pdata 
+77c2 600206fe store 4 ,mem_tmp5 
+77c3 6002075e store 4 ,mem_t2 
+77c4 70074601 jam 1 ,mem_tmp0 
+77c5 d8a006e6 arg mem_tmp1 ,contw 
+77c6 20407ec5 call bn_zero 
+77c7 d8c00886 arg mem_p ,contr 
+77c8 d8a00716 arg mem_tmp2 ,contw 
+77c9 20407ebe call memcpy24 
+77ca 1a220c00 copy rega ,contr 
+77cb d8a0072e arg mem_tmp3 ,contw 
+77cc 20407ebe call memcpy24 
+
+bn_invmod_2:
+77cd d8c0072e arg mem_tmp3 ,contr 
+77ce 204076f5 call bn_eq_zero 
+77cf 203a77f6 branch bn_invmod_0 ,blank 
+77d0 da20072e arg mem_tmp3 ,rega 
+77d1 da400746 arg mem_tmp0 ,regb 
+77d2 204077aa call bn_rshifteven 
+77d3 da200716 arg mem_tmp2 ,rega 
+77d4 da4006e6 arg mem_tmp1 ,regb 
+77d5 204077aa call bn_rshifteven 
+77d6 da20072e arg mem_tmp3 ,rega 
+77d7 da400716 arg mem_tmp2 ,regb 
+77d8 20407704 call bn_bigeq 
+77d9 202177e8 branch bn_invmod_1 ,positive 
+77da da200716 arg mem_tmp2 ,rega 
+77db da40072e arg mem_tmp3 ,regb 
+77dc 1a220a00 copy rega ,contw 
+77dd 2040771f call bn_sub 
+77de da200746 arg mem_tmp0 ,rega 
+77df da4006e6 arg mem_tmp1 ,regb 
+77e0 1a420a00 copy regb ,contw 
+77e1 20407711 call bn_add 
+77e2 ea208000 ifetch 1 ,rega 
+77e3 9a60a600 iadd regc ,regc 
+77e4 ea408000 ifetch 1 ,regb 
+77e5 9a60fe00 iadd regc ,pdata 
+77e6 e2408000 istore 1 ,regb 
+77e7 202077cd branch bn_invmod_2 
+
+bn_invmod_1:
+77e8 da20072e arg mem_tmp3 ,rega 
+77e9 da400716 arg mem_tmp2 ,regb 
+77ea 1a220a00 copy rega ,contw 
+77eb 2040771f call bn_sub 
+77ec da2006e6 arg mem_tmp1 ,rega 
+77ed da400746 arg mem_tmp0 ,regb 
+77ee 1a420a00 copy regb ,contw 
+77ef 20407711 call bn_add 
+77f0 ea208000 ifetch 1 ,rega 
+77f1 9a60a600 iadd regc ,regc 
+77f2 ea408000 ifetch 1 ,regb 
+77f3 9a60fe00 iadd regc ,pdata 
+77f4 e2408000 istore 1 ,regb 
+77f5 202077cd branch bn_invmod_2 
+
+bn_invmod_0:
+77f6 d8a00746 arg mem_tmp0 ,contw 
+77f7 20407ec5 call bn_zero 
+77f8 680086fe fetch 1 ,mem_tmp5 
+77f9 60008746 store 1 ,mem_tmp0 
+77fa 6000874e store 1 ,mem_tmp0a 
+77fb da200746 arg mem_tmp0 ,rega 
+77fc da4006e6 arg mem_tmp1 ,regb 
+77fd 1a420a00 copy regb ,contw 
+77fe 20407755 call bn_addmod 
+77ff da200886 arg mem_p ,rega 
+7800 da4006e6 arg mem_tmp1 ,regb 
+7801 19620a00 copy timeup ,contw 
+7802 20207758 branch bn_submod 
+
+ecdbl:
+7803 da2006a6 arg mem_cz ,rega 
+7804 d8a0075e arg mem_t2 ,contw 
+7805 204077a8 call bn_sqrmod 
+7806 da20075e arg mem_t2 ,rega 
+7807 d8a00776 arg mem_t3 ,contw 
+7808 204077a8 call bn_sqrmod 
+7809 da20089e arg mem_a ,rega 
+780a da400776 arg mem_t3 ,regb 
+780b d8a00776 arg mem_t3 ,contw 
+780c 20407786 call bn_mulmod 
+780d da200676 arg mem_cx ,rega 
+780e d8a0075e arg mem_t2 ,contw 
+780f 204077a8 call bn_sqrmod 
+7810 d8c0075e arg mem_t2 ,contr 
+7811 d8a0072e arg mem_t1 ,contw 
+7812 20407ebe call memcpy24 
+7813 da20072e arg mem_t1 ,rega 
+7814 20407748 call bn_lshiftmod 
+7815 da20075e arg mem_t2 ,rega 
+7816 da40072e arg mem_t1 ,regb 
+7817 d8a0075e arg mem_t2 ,contw 
+7818 20407755 call bn_addmod 
+7819 da20075e arg mem_t2 ,rega 
+781a da400776 arg mem_t3 ,regb 
+781b d8a0075e arg mem_t2 ,contw 
+781c 20407755 call bn_addmod 
+781d d8c00676 arg mem_cx ,contr 
+781e d8a0072e arg mem_t1 ,contw 
+781f 20407ebe call memcpy24 
+7820 da20068e arg mem_cy ,rega 
+7821 d8a00776 arg mem_t3 ,contw 
+7822 204077a8 call bn_sqrmod 
+7823 da20072e arg mem_t1 ,rega 
+7824 20407748 call bn_lshiftmod 
+7825 da20072e arg mem_t1 ,rega 
+7826 20407748 call bn_lshiftmod 
+7827 da20072e arg mem_t1 ,rega 
+7828 da400776 arg mem_t3 ,regb 
+7829 d8a0072e arg mem_t1 ,contw 
+782a 20407786 call bn_mulmod 
+782b da200776 arg mem_t3 ,rega 
+782c d8a00746 arg mem_t0 ,contw 
+782d 204077a8 call bn_sqrmod 
+782e da200746 arg mem_t0 ,rega 
+782f 20407748 call bn_lshiftmod 
+7830 da200746 arg mem_t0 ,rega 
+7831 20407748 call bn_lshiftmod 
+7832 da200746 arg mem_t0 ,rega 
+7833 20407748 call bn_lshiftmod 
+7834 d8c0068e arg mem_cy ,contr 
+7835 d8a00776 arg mem_t3 ,contw 
+7836 20407ebe call memcpy24 
+7837 da200776 arg mem_t3 ,rega 
+7838 20407748 call bn_lshiftmod 
+7839 da200776 arg mem_t3 ,rega 
+783a da4006a6 arg mem_cz ,regb 
+783b d8a006a6 arg mem_cz ,contw 
+783c 20407786 call bn_mulmod 
+783d da20075e arg mem_t2 ,rega 
+783e d8a00776 arg mem_t3 ,contw 
+783f 204077a8 call bn_sqrmod 
+7840 da200776 arg mem_t3 ,rega 
+7841 da40072e arg mem_t1 ,regb 
+7842 d8a00776 arg mem_t3 ,contw 
+7843 20407758 call bn_submod 
+7844 da200776 arg mem_t3 ,rega 
+7845 da40072e arg mem_t1 ,regb 
+7846 d8a00676 arg mem_cx ,contw 
+7847 20407758 call bn_submod 
+7848 da20072e arg mem_t1 ,rega 
+7849 da400676 arg mem_cx ,regb 
+784a d8a00776 arg mem_t3 ,contw 
+784b 20407758 call bn_submod 
+784c da200776 arg mem_t3 ,rega 
+784d da40075e arg mem_t2 ,regb 
+784e d8a00776 arg mem_t3 ,contw 
+784f 20407786 call bn_mulmod 
+7850 da200776 arg mem_t3 ,rega 
+7851 da400746 arg mem_t0 ,regb 
+7852 d8a0068e arg mem_cy ,contw 
+7853 20207758 branch bn_submod 
+
+ecadd:
+7854 da200616 arg mem_az ,rega 
+7855 d8a0078e arg mem_t7 ,contw 
+7856 204077a8 call bn_sqrmod 
+7857 da200676 arg mem_cx ,rega 
+7858 da40078e arg mem_t7 ,regb 
+7859 d8a00746 arg mem_t0 ,contw 
+785a 20407786 call bn_mulmod 
+785b da200616 arg mem_az ,rega 
+785c da40078e arg mem_t7 ,regb 
+785d d8a0078e arg mem_t7 ,contw 
+785e 20407786 call bn_mulmod 
+785f da20068e arg mem_cy ,rega 
+7860 da40078e arg mem_t7 ,regb 
+7861 d8a0072e arg mem_t1 ,contw 
+7862 20407786 call bn_mulmod 
+7863 da2006a6 arg mem_cz ,rega 
+7864 d8a0078e arg mem_t7 ,contw 
+7865 204077a8 call bn_sqrmod 
+7866 da2005e6 arg mem_ax ,rega 
+7867 da40078e arg mem_t7 ,regb 
+7868 d8a0075e arg mem_t2 ,contw 
+7869 20407786 call bn_mulmod 
+786a da2006a6 arg mem_cz ,rega 
+786b da40078e arg mem_t7 ,regb 
+786c d8a0078e arg mem_t7 ,contw 
+786d 20407786 call bn_mulmod 
+786e da2005fe arg mem_ay ,rega 
+786f da40078e arg mem_t7 ,regb 
+7870 d8a00776 arg mem_t3 ,contw 
+7871 20407786 call bn_mulmod 
+7872 da200746 arg mem_t0 ,rega 
+7873 da40075e arg mem_t2 ,regb 
+7874 d8a0078e arg mem_t7 ,contw 
+7875 20407758 call bn_submod 
+7876 da200746 arg mem_t0 ,rega 
+7877 da40075e arg mem_t2 ,regb 
+7878 d8a00746 arg mem_t0 ,contw 
+7879 20407755 call bn_addmod 
+787a da20072e arg mem_t1 ,rega 
+787b da400776 arg mem_t3 ,regb 
+787c d8a0075e arg mem_t2 ,contw 
+787d 20407758 call bn_submod 
+787e da20072e arg mem_t1 ,rega 
+787f da400776 arg mem_t3 ,regb 
+7880 d8a0072e arg mem_t1 ,contw 
+7881 20407755 call bn_addmod 
+7882 da20072e arg mem_t1 ,rega 
+7883 da40078e arg mem_t7 ,regb 
+7884 d8a0072e arg mem_t1 ,contw 
+7885 20407786 call bn_mulmod 
+7886 da2006a6 arg mem_cz ,rega 
+7887 da400616 arg mem_az ,regb 
+7888 d8a00776 arg mem_t3 ,contw 
+7889 20407786 call bn_mulmod 
+788a da200776 arg mem_t3 ,rega 
+788b da40078e arg mem_t7 ,regb 
+788c d8a006a6 arg mem_cz ,contw 
+788d 20407786 call bn_mulmod 
+788e da20078e arg mem_t7 ,rega 
+788f d8a0078e arg mem_t7 ,contw 
+7890 204077a8 call bn_sqrmod 
+7891 da20078e arg mem_t7 ,rega 
+7892 da400746 arg mem_t0 ,regb 
+7893 d8a00776 arg mem_t3 ,contw 
+7894 20407786 call bn_mulmod 
+7895 da20078e arg mem_t7 ,rega 
+7896 da40072e arg mem_t1 ,regb 
+7897 d8a0072e arg mem_t1 ,contw 
+7898 20407786 call bn_mulmod 
+7899 da20075e arg mem_t2 ,rega 
+789a d8a00676 arg mem_cx ,contw 
+789b 204077a8 call bn_sqrmod 
+789c da200676 arg mem_cx ,rega 
+789d da400776 arg mem_t3 ,regb 
+789e d8a00676 arg mem_cx ,contw 
+789f 20407758 call bn_submod 
+78a0 d8c00676 arg mem_cx ,contr 
+78a1 d8a0078e arg mem_t7 ,contw 
+78a2 20407ebe call memcpy24 
+78a3 da20078e arg mem_t7 ,rega 
+78a4 20407748 call bn_lshiftmod 
+78a5 da200776 arg mem_t3 ,rega 
+78a6 da40078e arg mem_t7 ,regb 
+78a7 d8a00776 arg mem_t3 ,contw 
+78a8 20407758 call bn_submod 
+78a9 da200776 arg mem_t3 ,rega 
+78aa da40075e arg mem_t2 ,regb 
+78ab d8a0075e arg mem_t2 ,contw 
+78ac 20407786 call bn_mulmod 
+78ad da20075e arg mem_t2 ,rega 
+78ae da40072e arg mem_t1 ,regb 
+78af d8a0068e arg mem_cy ,contw 
+78b0 20407758 call bn_submod 
+78b1 da20068e arg mem_cy ,rega 
+78b2 da400886 arg mem_p ,regb 
+78b3 d8a0068e arg mem_cy ,contw 
+78b4 18002600 force 0 ,regc 
+78b5 6800868e fetch 1 ,mem_cy 
+78b6 2feffe00 isolate1 0 ,pdata 
+78b7 2040f711 call bn_add ,true 
+78b8 1a626000 copy regc ,alarm 
+78b9 da20068e arg mem_cy ,rega 
+78ba 2040772d call bn_rshift6 
+78bb 680086a5 fetch 1 ,mem_cy5 
+78bc 2e0ffe00 isolate1 0 ,alarm 
+78bd 7920fe07 setflag true ,7 ,pdata 
+78be 600086a5 store 1 ,mem_cy5 
+78bf 20600000 rtn 
+
+eckp_0:
+78c0 680085e3 fetch 1 ,mem_ec_loopc 
+78c1 1fe0ffff increase -1 ,pdata 
+78c2 24610000 nrtn positive 
+78c3 600085e3 store 1 ,mem_ec_loopc 
+78c4 680085e2 fetch 1 ,mem_ec_infinite 
+78c5 205a7803 call ecdbl ,blank 
+78c6 680085e3 fetch 1 ,mem_ec_loopc 
+78c7 d8c006be arg mem_k ,contr 
+78c8 204076ec call bn_testbit 
+78c9 2020f8c0 branch eckp_0 ,true 
+78ca 680085e2 fetch 1 ,mem_ec_infinite 
+78cb 243a78ce nbranch eckp_1 ,blank 
+78cc 20407854 call ecadd 
+78cd 202078c0 branch eckp_0 
+
+eckp_1:
+78ce 7005e200 jam 0 ,mem_ec_infinite 
+78cf d8c005e6 arg mem_ax ,contr 
+78d0 d8a00676 arg mem_cx ,contw 
+78d1 204076f2 call ec_copy 
+78d2 202078c0 branch eckp_0 
+
+ecunmapz:
+78d3 da2006a6 arg mem_cz ,rega 
+78d4 d8a00776 arg mem_t3 ,contw 
+78d5 204077be call bn_invmod 
+78d6 da200776 arg mem_t3 ,rega 
+78d7 d8a0072e arg mem_t1 ,contw 
+78d8 204077a8 call bn_sqrmod 
+78d9 da200676 arg mem_cx ,rega 
+78da da40072e arg mem_t1 ,regb 
+78db d8a0062e arg mem_bx ,contw 
+78dc 20407786 call bn_mulmod 
+78dd da200776 arg mem_t3 ,rega 
+78de da40072e arg mem_t1 ,regb 
+78df d8a0075e arg mem_t2 ,contw 
+78e0 20407786 call bn_mulmod 
+78e1 da20068e arg mem_cy ,rega 
+78e2 da40075e arg mem_t2 ,regb 
+78e3 d8a00646 arg mem_by ,contw 
+78e4 20207786 branch bn_mulmod 
+
+sha_endian_swap2:
+78e5 e8c20000 ifetch 4 ,contr 
+78e6 18002204 force 4 ,rega 
+78e7 18a08a03 increase 3 ,contw 
+
+sha_endian_loop:
+78e8 e0a08000 istore 1 ,contw 
+78e9 1fecfe00 rshift8 pdata ,pdata 
+78ea 18a08bfe increase -2 ,contw 
+78eb 1a20a3ff increase -1 ,rega 
+78ec 2422f8e8 nbranch sha_endian_loop ,zero 
+78ed 18a08a05 increase 5 ,contw 
+78ee c20078e5 loop sha_endian_swap2 
+78ef 20600000 rtn 
+
+sha_getw:
+78f0 18ebfe00 lshift2 queue ,pdata 
+78f1 99608c00 iadd timeup ,contr 
+78f2 e8c20000 ifetch 4 ,contr 
+78f3 20600000 rtn 
+
+sha_r:
+78f4 18006010 force 16 ,alarm 
+78f5 d96005e6 arg memdat ,timeup 
+
+sha_r_loop:
+78f6 1e008ff9 add alarm ,-7 ,queue 
+78f7 204078f0 call sha_getw 
+78f8 98000400 iforce temp 
+78f9 1e008ff0 add alarm ,-16 ,queue 
+78fa 204078f0 call sha_getw 
+78fb 98408400 iadd temp ,temp 
+78fc 1e008ffe add alarm ,-2 ,queue 
+78fd 204078f0 call sha_getw 
+78fe 1fee7e01 shasx pdata ,1 ,pdata 
+78ff 98408400 iadd temp ,temp 
+7900 1e008ff1 add alarm ,-15 ,queue 
+7901 204078f0 call sha_getw 
+7902 1fee7e00 shasx pdata ,0 ,pdata 
+7903 98408400 iadd temp ,temp 
+7904 1e0bfe00 lshift2 alarm ,pdata 
+7905 99608a00 iadd timeup ,contw 
+7906 e0aa0000 istoret 4 ,contw 
+7907 1e00e001 increase 1 ,alarm 
+7908 2e01fe40 compare 64 ,alarm ,0xff 
+7909 2420f8f6 nbranch sha_r_loop ,true 
+790a 20600000 rtn 
+
+sha_init:
+790b d8c008fe arg memh0 ,contr 
+790c 18007007 force 7 ,regext_index 
+
+sha_init_0:
+790d e8c20000 ifetch 4 ,contr 
+790e 98005e00 iforce regext 
+790f 1f00f1ff increase -1 ,regext_index 
+7910 2021790d branch sha_init_0 ,positive 
+7911 20600000 rtn 
+
+sha:
+7912 4776403d bpatchx patch3d_4 ,mem_patch3d 
+7913 204078f4 call sha_r 
+7914 d8a006e6 arg memahbak ,contw 
+7915 18007000 force 0 ,regext_index 
+
+sha_0:
+7916 1de27e00 deposit regext 
+7917 e0a20000 istore 4 ,contw 
+7918 1f00f001 increase 1 ,regext_index 
+7919 2f01fe08 compare 8 ,regext_index ,0xff 
+791a 2420f916 nbranch sha_0 ,true 
+791b 204074b9 call enable_authrom 
+791c d9608700 arg memk ,timeup 
+791d de0005e6 arg memdat ,alarm 
+791e 18007240 force 64 ,loopcnt 
+
+sha_loop:
+791f ee0a0000 ifetcht 4 ,alarm 
+7920 e9620000 ifetch 4 ,timeup 
+7921 19609604 increase 4 ,timeup 
+7922 1e00e004 increase 4 ,alarm 
+7923 9840fe00 iadd temp ,pdata 
+7924 18007007 force 7 ,regext_index 
+7925 9de08400 iadd regext ,temp 
+7926 18007004 force 4 ,regext_index 
+7927 1dee7e03 shasx regext ,3 ,pdata 
+7928 98408400 iadd temp ,temp 
+7929 18007005 force 5 ,regext_index 
+792a 1de27e00 deposit regext 
+792b 18007006 force 6 ,regext_index 
+792c 9de2fe00 ixor regext ,pdata 
+792d 18007004 force 4 ,regext_index 
+792e 9de17e00 iand regext ,pdata 
+792f 18007006 force 6 ,regext_index 
+7930 9de2fe00 ixor regext ,pdata 
+7931 98408400 iadd temp ,temp 
+7932 18007007 force 7 ,regext_index 
+7933 18425e00 copy temp ,regext 
+7934 18007003 force 3 ,regext_index 
+7935 1de27e00 deposit regext 
+7936 9840de00 iadd temp ,regext 
+7937 18007000 force 0 ,regext_index 
+7938 1de27e00 deposit regext 
+7939 18007001 force 1 ,regext_index 
+793a 9de10400 iand regext ,temp 
+793b 9de1fe00 ior regext ,pdata 
+793c 18007002 force 2 ,regext_index 
+793d 9de17e00 iand regext ,pdata 
+793e 98418400 ior temp ,temp 
+793f 18007000 force 0 ,regext_index 
+7940 1dee7e02 shasx regext ,2 ,pdata 
+7941 9840fe00 iadd temp ,pdata 
+7942 18007007 force 7 ,regext_index 
+7943 9de0de00 iadd regext ,regext 
+7944 980efc00 regexrot 
+7945 c200791f loop sha_loop 
+7946 d8c006e6 arg memahbak ,contr 
+7947 18007000 force 0 ,regext_index 
+
+sha_1:
+7948 e8c20000 ifetch 4 ,contr 
+7949 9de0de00 iadd regext ,regext 
+794a 1f00f001 increase 1 ,regext_index 
+794b 2f01fe08 compare 8 ,regext_index ,0xff 
+794c 2420f948 nbranch sha_1 ,true 
+794d 202074bd branch disable_authrom 
+
+sha_result:
+794e d8a00a3e arg memresult ,contw 
+794f 18007007 force 7 ,regext_index 
+
+sha_regext_save:
+7950 1de27e00 deposit regext 
+7951 e0a20000 istore 4 ,contw 
+7952 1f00f1ff increase -1 ,regext_index 
+7953 20217950 branch sha_regext_save ,positive 
+7954 20600000 rtn 
+
+pad_xor:
+7955 d8a005e6 arg memdat ,contw 
+7956 18c08dfc increase -4 ,contr 
+7957 1f262210 sub loopcnt ,16 ,rega 
+
+pad_xor_0:
+7958 e8c20000 ifetch 4 ,contr 
+7959 9842fe00 ixor temp ,pdata 
+795a e0a20000 istore 4 ,contw 
+795b 18c08df8 increase -8 ,contr 
+795c c2007958 loop pad_xor_0 
+795d 1a227200 copy rega ,loopcnt 
+795e 18427e00 deposit temp 
+
+pad_xor_1:
+795f e0a20000 istore 4 ,contw 
+7960 c200795f loop pad_xor_1 
+7961 20600000 rtn 
+
+g_noninit_number_confirm:
+7962 20407967 call g_noninit0 
+7963 2040794e call sha_result 
+7964 2020798d branch g_common0 
+
+g_noninit:
+7965 20407967 call g_noninit0 
+7966 2020798d branch g_common0 
+
+g_noninit0:
+7967 d8c009de arg mem_sp_pubkey_remote_x_end ,contr 
+7968 d8a005e6 arg memdat ,contw 
+7969 18007206 force 6 ,loopcnt 
+796a 20407a71 call memcpy_dword_swap 
+796b d8c04642 arg mem_sp_pubkey_local_x_end ,contr 
+796c 18007206 force 6 ,loopcnt 
+796d 20407a71 call memcpy_dword_swap 
+796e d8c00a3e arg mem_sp_random_remote_end ,contr 
+796f 20407a70 call memcpy_dword_swap4 
+7970 2040790b call sha_init 
+7971 20407912 call sha 
+7972 d8c00a2e arg mem_sp_random_local_end ,contr 
+7973 d8a005e6 arg memdat ,contw 
+7974 20207984 branch g_common 
+
+g_init:
+7975 d8c04642 arg mem_sp_pubkey_local_x_end ,contr 
+7976 d8a005e6 arg memdat ,contw 
+7977 18007206 force 6 ,loopcnt 
+7978 20407a71 call memcpy_dword_swap 
+7979 d8c009de arg mem_sp_pubkey_remote_x_end ,contr 
+797a 18007206 force 6 ,loopcnt 
+797b 20407a71 call memcpy_dword_swap 
+797c d8c00a2e arg mem_sp_random_local_end ,contr 
+797d 20407a70 call memcpy_dword_swap4 
+797e 2040790b call sha_init 
+797f 20407912 call sha 
+7980 d8c00a3e arg mem_sp_random_remote_end ,contr 
+7981 d8a005e6 arg memdat ,contw 
+7982 20407984 call g_common 
+7983 2020798d branch g_common0 
+
+g_common:
+7984 20407a70 call memcpy_dword_swap4 
+7985 58800000 setarg 0x800000 
+7986 1fed7e00 lshift8 pdata ,pdata 
+7987 e0a20000 istore 4 ,contw 
+7988 18007205 force 5 ,loopcnt 
+7989 20407ec6 call memset0 
+798a 58000280 setarg 640 
+798b e0a20000 istore 4 ,contw 
+798c 20207912 branch sha 
+
+g_common0:
+798d 68020a3e fetch 4 ,memresult 
+798e da2003e8 arg 1000 ,rega 
+798f 9a26fc00 idiv rega 
+7990 20407f86 call wait_div_end 
+7991 18077e00 remainder pdata 
+7992 600209ba store 4 ,mem_gkey 
+7993 1807fe00 quotient pdata 
+7994 da2003e8 arg 1000 ,rega 
+7995 9a26fc00 idiv rega 
+7996 20407f86 call wait_div_end 
+7997 18077e00 remainder pdata 
+7998 da2003e8 arg 1000 ,rega 
+7999 9a2ffe00 imul32 rega ,pdata 
+799a 680a09ba fetcht 4 ,mem_gkey 
+799b 9840fe00 iadd temp ,pdata 
+799c 600209ba store 4 ,mem_gkey 
+799d 20600000 rtn 
+
+function_f1_no_key:
+799e 70466400 jam 0 ,mem_passkey_1bit 
+799f 202079a2 branch function_f1_common 
+
+function_f1:
+79a0 6800c662 fetch 1 ,mem_ssp_mode_flag 
+79a1 c081799e bne ssp_mode_passkey_entry_flag ,function_f1_no_key 
+
+function_f1_common:
+79a2 4776c03d bpatchx patch3d_5 ,mem_patch3d 
+79a3 58363636 setarg 0x363636 
+79a4 1fed0400 lshift8 pdata ,temp 
+79a5 18418436 or_into 0x36 ,temp 
+79a6 68010a7e fetch 2 ,mem_sp_prarm_stack 
+79a7 1fe20c00 copy pdata ,contr 
+79a8 18007204 force 4 ,loopcnt 
+79a9 20407955 call pad_xor 
+79aa 2040790b call sha_init 
+79ab 20407912 call sha 
+79ac 68010a80 fetch 2 ,mem_sp_prarm_stack + 2 
+79ad 1fe20c00 copy pdata ,contr 
+79ae d8a005e6 arg memdat ,contw 
+79af 18007206 force 6 ,loopcnt 
+79b0 20407a71 call memcpy_dword_swap 
+79b1 68010a82 fetch 2 ,mem_sp_prarm_stack + 4 
+79b2 1fe20c00 copy pdata ,contr 
+79b3 18007206 force 6 ,loopcnt 
+79b4 20407a71 call memcpy_dword_swap 
+79b5 58800000 setarg 0x800000 
+79b6 e0a18000 istore 3 ,contw 
+79b7 6800c664 fetch 1 ,mem_passkey_1bit 
+79b8 e0a08000 istore 1 ,contw 
+79b9 18007e00 force 0 ,pdata 
+79ba e0a40000 istore 8 ,contw 
+79bb 58000388 setarg 0x0388 
+79bc e0a20000 istore 4 ,contw 
+79bd 20407912 call sha 
+79be 2040794e call sha_result 
+79bf d8c00a3e arg memresult ,contr 
+79c0 d8a00706 arg memahsave ,contw 
+79c1 20407ebd call memcpy32 
+79c2 585c5c5c setarg 0x5c5c5c 
+79c3 1fed0400 lshift8 pdata ,temp 
+79c4 1841845c or_into 0x5c ,temp 
+79c5 68010a7e fetch 2 ,mem_sp_prarm_stack 
+79c6 1fe20c00 copy pdata ,contr 
+79c7 18007204 force 4 ,loopcnt 
+79c8 20407955 call pad_xor 
+79c9 2040790b call sha_init 
+79ca 20407912 call sha 
+79cb d8c00726 arg memahsave_end ,contr 
+79cc d8a005e6 arg memdat ,contw 
+79cd 18007208 force 8 ,loopcnt 
+79ce 20407a71 call memcpy_dword_swap 
+79cf 58800000 setarg 0x800000 
+79d0 1fed7e00 lshift8 pdata ,pdata 
+79d1 e0a20000 istore 4 ,contw 
+79d2 20407ec5 call bn_zero 
+79d3 58000300 setarg 0x0300 
+79d4 e0a20000 istore 4 ,contw 
+79d5 20407912 call sha 
+79d6 2020794e branch sha_result 
+
+function_f2:
+79d7 58363636 setarg 0x363636 
+79d8 1fed0400 lshift8 pdata ,temp 
+79d9 18418436 or_into 0x36 ,temp 
+79da d8c00a1e arg mem_sp_dhkey_end ,contr 
+79db 18007206 force 6 ,loopcnt 
+79dc 20407955 call pad_xor 
+79dd 2040790b call sha_init 
+79de 20407912 call sha 
+79df 68010a8a fetch 2 ,mem_sp_prarm_stack + 12 
+79e0 1fe20c00 copy pdata ,contr 
+79e1 d8a005e6 arg memdat ,contw 
+79e2 20407a70 call memcpy_dword_swap4 
+79e3 68010a8c fetch 2 ,mem_sp_prarm_stack + 14 
+79e4 1fe20c00 copy pdata ,contr 
+79e5 20407a70 call memcpy_dword_swap4 
+79e6 5862746c setarg 0x62746c 
+79e7 1fed7e00 lshift8 pdata ,pdata 
+79e8 1fe1fe6b or_into 0x6b ,pdata 
+79e9 e0a20000 istore 4 ,contw 
+79ea d8c00733 arg mem_addr_value_end ,contr 
+79eb 18007203 force 3 ,loopcnt 
+79ec 20407a71 call memcpy_dword_swap 
+79ed 58800000 setarg 0x800000 
+79ee 1fed7e00 lshift8 pdata ,pdata 
+79ef e0a20000 istore 4 ,contw 
+79f0 18007e00 force 0 ,pdata 
+79f1 e0a40000 istore 8 ,contw 
+79f2 58000380 setarg 0x0380 
+79f3 e0a20000 istore 4 ,contw 
+79f4 20407912 call sha 
+79f5 2040794e call sha_result 
+79f6 d8c00a3e arg memresult ,contr 
+79f7 d8a00706 arg memahsave ,contw 
+79f8 20407ebd call memcpy32 
+79f9 585c5c5c setarg 0x5c5c5c 
+79fa 1fed0400 lshift8 pdata ,temp 
+79fb 1841845c or_into 0x5c ,temp 
+79fc d8c00a1e arg mem_sp_dhkey_end ,contr 
+79fd 18007206 force 6 ,loopcnt 
+79fe 20407955 call pad_xor 
+79ff 2040790b call sha_init 
+7a00 20407912 call sha 
+7a01 d8c00726 arg memahsave_end ,contr 
+7a02 d8a005e6 arg memdat ,contw 
+7a03 18007208 force 8 ,loopcnt 
+7a04 20407a71 call memcpy_dword_swap 
+7a05 58800000 setarg 0x800000 
+7a06 1fed7e00 lshift8 pdata ,pdata 
+7a07 e0a20000 istore 4 ,contw 
+7a08 20407ec5 call bn_zero 
+7a09 58000300 setarg 0x0300 
+7a0a e0a20000 istore 4 ,contw 
+7a0b 20407912 call sha 
+7a0c 2020794e branch sha_result 
+
+function_f3a:
+7a0d 6800c662 fetch 1 ,mem_ssp_mode_flag 
+7a0e c0817a1e bne ssp_mode_passkey_entry_flag ,function_f3a_no_pin 
+
+function_f3a_common:
+7a0f 4777403d bpatchx patch3d_6 ,mem_patch3d 
+7a10 58363636 setarg 0x363636 
+7a11 1fed0400 lshift8 pdata ,temp 
+7a12 18418436 or_into 0x36 ,temp 
+7a13 d8c00a1e arg mem_sp_dhkey_end ,contr 
+7a14 18007206 force 6 ,loopcnt 
+7a15 20407955 call pad_xor 
+7a16 2040790b call sha_init 
+7a17 20407912 call sha 
+7a18 d8c00a3e arg mem_sp_random_remote_end ,contr 
+7a19 d8a005e6 arg memdat ,contw 
+7a1a 20407a70 call memcpy_dword_swap4 
+7a1b d8c00a2e arg mem_sp_random_local_end ,contr 
+7a1c 20407a70 call memcpy_dword_swap4 
+7a1d 20207a33 branch function_f3_common 
+
+function_f3a_no_pin:
+7a1e 58000000 setarg 0 
+7a1f 6002468a store 4 ,mem_pin 
+7a20 20207a0f branch function_f3a_common 
+
+function_f3b_no_pin:
+7a21 58000000 setarg 0 
+7a22 6002468a store 4 ,mem_pin 
+7a23 20207a26 branch function_f3b_common 
+
+function_f3b:
+7a24 6800c662 fetch 1 ,mem_ssp_mode_flag 
+7a25 c0817a21 bne ssp_mode_passkey_entry_flag ,function_f3b_no_pin 
+
+function_f3b_common:
+7a26 58363636 setarg 0x363636 
+7a27 1fed0400 lshift8 pdata ,temp 
+7a28 18418436 or_into 0x36 ,temp 
+7a29 d8c00a1e arg mem_sp_dhkey_end ,contr 
+7a2a 18007206 force 6 ,loopcnt 
+7a2b 20407955 call pad_xor 
+7a2c 2040790b call sha_init 
+7a2d 20407912 call sha 
+7a2e d8c00a2e arg mem_sp_random_local_end ,contr 
+7a2f d8a005e6 arg memdat ,contw 
+7a30 20407a70 call memcpy_dword_swap4 
+7a31 d8c00a3e arg mem_sp_random_remote_end ,contr 
+7a32 20407a70 call memcpy_dword_swap4 
+
+function_f3_common:
+7a33 58000000 setarg 0x0 
+7a34 e0a40000 istore 8 ,contw 
+7a35 e0a20000 istore 4 ,contw 
+7a36 6802468a fetch 4 ,mem_pin 
+7a37 e0a20000 istore 4 ,contw 
+7a38 18a20400 copy contw ,temp 
+7a39 70072680 jam 0x80 ,mem_addr_padding 
+7a3a 18420a00 copy temp ,contw 
+7a3b d8c00736 arg mem_addr_iocap_end ,contr 
+7a3c 20407a70 call memcpy_dword_swap4 
+7a3d 20407912 call sha 
+7a3e d8a005e6 arg memdat ,contw 
+7a3f 18007207 force 7 ,loopcnt 
+7a40 20407ec6 call memset0 
+7a41 e0a20000 istore 4 ,contw 
+7a42 580003f8 setarg 0x03F8 
+7a43 e0a20000 istore 4 ,contw 
+7a44 20407912 call sha 
+7a45 2040794e call sha_result 
+7a46 d8c00a3e arg memresult ,contr 
+7a47 d8a00706 arg memahsave ,contw 
+7a48 20407ebd call memcpy32 
+7a49 585c5c5c setarg 0x5c5c5c 
+7a4a 1fed0400 lshift8 pdata ,temp 
+7a4b 1841845c or_into 0x5c ,temp 
+7a4c d8c00a1e arg mem_sp_dhkey_end ,contr 
+7a4d 18007206 force 6 ,loopcnt 
+7a4e 20407955 call pad_xor 
+7a4f 2040790b call sha_init 
+7a50 20407912 call sha 
+7a51 d8c00726 arg memahsave_end ,contr 
+7a52 d8a005e6 arg memdat ,contw 
+7a53 18007208 force 8 ,loopcnt 
+7a54 20407a71 call memcpy_dword_swap 
+7a55 58800000 setarg 0x800000 
+7a56 1fed7e00 lshift8 pdata ,pdata 
+7a57 e0a20000 istore 4 ,contw 
+7a58 20407ec5 call bn_zero 
+7a59 58000300 setarg 0x0300 
+7a5a e0a20000 istore 4 ,contw 
+7a5b 20407912 call sha 
+7a5c 2020794e branch sha_result 
+
+eckp_calc_init:
+7a5d 7005e3c0 jam 192 ,mem_ec_loopc 
+
+eckp_calc_init_1:
+7a5e 680085e3 fetch 1 ,mem_ec_loopc 
+7a5f 207a0000 rtn blank 
+7a60 1fe0ffff increase -1 ,pdata 
+7a61 600085e3 store 1 ,mem_ec_loopc 
+7a62 d8c006be arg mem_k ,contr 
+7a63 204076ec call bn_testbit 
+7a64 2020fa5e branch eckp_calc_init_1 ,true 
+7a65 d8c005e6 arg mem_ax ,contr 
+7a66 d8a00676 arg mem_cx ,contw 
+7a67 202076f2 branch ec_copy 
+
+eckp_calc:
+7a68 20407803 call ecdbl 
+7a69 680085e3 fetch 1 ,mem_ec_loopc 
+7a6a 1fe0ffff increase -1 ,pdata 
+7a6b 600085e3 store 1 ,mem_ec_loopc 
+7a6c d8c006be arg mem_k ,contr 
+7a6d 204076ec call bn_testbit 
+7a6e 20608000 rtn true 
+7a6f 20207854 branch ecadd 
+
+memcpy_dword_swap4:
+7a70 18007204 force 4 ,loopcnt 
+
+memcpy_dword_swap:
+7a71 18c08dfc increase -4 ,contr 
+
+memcpy_dword_swap_loop:
+7a72 e8c20000 ifetch 4 ,contr 
+7a73 e0a20000 istore 4 ,contw 
+7a74 18c08df8 increase -8 ,contr 
+7a75 c2007a72 loop memcpy_dword_swap_loop 
+7a76 20600000 rtn 
+
+sp_initialize_256:
+7a77 4777c03d bpatchx patch3d_7 ,mem_patch3d 
+7a78 6800c4be fetch 1 ,mem_le_secure_connect_enable 
+7a79 203a5af0 branch le_secure_connection_disable ,blank 
+7a7a 20405aec call le_secure_connection_enable 
+7a7b 20407583 call sp_clear_flags 
+7a7c 20207a7d branch sp_pubkey_calc_256 
+
+sp_pubkey_calc_256:
+7a7d 6800c4c3 fetch 1 ,mem_le_sc_local_key_invalid 
+7a7e c1800000 rtnne sp_key_invalid 
+7a7f 6800c4c0 fetch 1 ,mem_le_sc_calc 
+7a80 c1800000 rtnne sp_calc_standby 
+7a81 d8a045b2 arg mem_le_private_key_256 ,contw 
+7a82 18000e0f force 15 ,queue 
+7a83 204076a2 call random_generator 
+7a84 180a7e00 random pdata 
+7a85 1fe37e00 rshift pdata ,pdata 
+7a86 e0a10000 istore 2 ,contw 
+7a87 d8a00766 arg mem_k_256 ,contw 
+7a88 d8c045b2 arg mem_le_private_key_256 ,contr 
+7a89 20407ebd call memcpy32 
+7a8a d8a00646 arg mem_ax_256 ,contw 
+7a8b d8c0095e arg mem_gx_256 ,contr 
+7a8c 20407eb3 call memcpy64 
+7a8d d8a00686 arg mem_az_256 ,contw 
+7a8e 20407ed0 call clear_mem_256 
+7a8f 70068601 jam 1 ,mem_az_256 
+7a90 20407ac7 call eckp_calc_init_256 
+7a91 7044c003 jam sp_calc_pubkey_256 ,mem_le_sc_calc 
+7a92 20600000 rtn 
+
+sp_pubkey_generated_256:
+7a93 d8a045d2 arg mem_le_pubkey_local_x_256 ,contw 
+7a94 d8c006a6 arg mem_bx_256 ,contr 
+7a95 20407eb3 call memcpy64 
+7a96 7044c303 jam sp_key_valid_256 ,mem_le_sc_local_key_invalid 
+7a97 7044c000 jam sp_calc_standby ,mem_le_sc_calc 
+7a98 20600000 rtn 
+
+sp_dhkey_calc_256:
+7a99 680089b9 fetch 1 ,mem_sp_dhkey_invalid 
+7a9a c1800000 rtnne sp_key_invalid 
+7a9b 6800c4c0 fetch 1 ,mem_le_sc_calc 
+7a9c c1800000 rtnne sp_calc_standby 
+7a9d d8a00766 arg mem_k_256 ,contw 
+7a9e d8c045b2 arg mem_le_private_key_256 ,contr 
+7a9f 20407ebd call memcpy32 
+7aa0 d8a00646 arg mem_ax_256 ,contw 
+7aa1 d8c009be arg mem_le_pubkey_remote_x_256 ,contr 
+7aa2 20407eb3 call memcpy64 
+7aa3 d8a00686 arg mem_az_256 ,contw 
+7aa4 20407ed0 call clear_mem_256 
+7aa5 70068601 jam 1 ,mem_az_256 
+7aa6 20407ac7 call eckp_calc_init_256 
+7aa7 7044c004 jam sp_calc_dhkey_256 ,mem_le_sc_calc 
+7aa8 20600000 rtn 
+
+sp_dhkey_generated_256:
+7aa9 d8a009fe arg mem_le_dhkey_256 ,contw 
+7aaa d8c006a6 arg mem_bx_256 ,contr 
+7aab 20407ebd call memcpy32 
+7aac 7009b903 jam sp_key_valid_256 ,mem_sp_dhkey_invalid 
+7aad 7044c000 jam sp_calc_standby ,mem_le_sc_calc 
+7aae 20600000 rtn 
+
+sp_calc_sequence_256:
+7aaf 6800c4be fetch 1 ,mem_le_secure_connect_enable 
+7ab0 207a0000 rtn blank 
+7ab1 6800c4c0 fetch 1 ,mem_le_sc_calc 
+7ab2 207a0000 rtn blank 
+7ab3 1fe0fe80 increase 0x80 ,pdata 
+7ab4 6000c4c0 store 1 ,mem_le_sc_calc 
+7ab5 c3838000 rtnbit1 7 
+7ab6 680105e3 fetch 2 ,mem_ec_loopc 
+7ab7 203a7ab9 branch sp_calc_sequence_done_256 ,blank 
+7ab8 20207abf branch eckp_calc_256 
+
+sp_calc_sequence_done_256:
+7ab9 4778403e bpatchx patch3e_0 ,mem_patch3e 
+7aba 20407ad4 call ecunmapz_256 
+7abb 6800c4c0 fetch 1 ,mem_le_sc_calc 
+7abc c001fa93 beq sp_calc_pubkey_256 ,sp_pubkey_generated_256 
+7abd c0027aa9 beq sp_calc_dhkey_256 ,sp_dhkey_generated_256 
+7abe 20600000 rtn 
+
+eckp_calc_256:
+7abf 20407ae6 call ecdbl_256 
+7ac0 680105e3 fetch 2 ,mem_ec_loopc 
+7ac1 1fe0ffff increase -1 ,pdata 
+7ac2 600105e3 store 2 ,mem_ec_loopc 
+7ac3 d8c00766 arg mem_k_256 ,contr 
+7ac4 204076ec call bn_testbit 
+7ac5 20608000 rtn true 
+7ac6 20207b37 branch ecadd_256 
+
+eckp_calc_init_256:
+7ac7 4778c03e bpatchx patch3e_1 ,mem_patch3e 
+7ac8 58000100 setarg 256 ,pdata 
+7ac9 600105e3 store 2 ,mem_ec_loopc 
+
+eckp_calc_init_256_1:
+7aca 680105e3 fetch 2 ,mem_ec_loopc 
+7acb 207a0000 rtn blank 
+7acc 1fe0ffff increase -1 ,pdata 
+7acd 600105e3 store 2 ,mem_ec_loopc 
+7ace d8c00766 arg mem_k_256 ,contr 
+7acf 204076ec call bn_testbit 
+7ad0 2020faca branch eckp_calc_init_256_1 ,true 
+7ad1 d8c00646 arg mem_ax_256 ,contr 
+7ad2 d8a00706 arg mem_cx_256 ,contw 
+7ad3 20207eb2 branch memcpy96 
+
+ecunmapz_256:
+7ad4 da200746 arg mem_cz_256 ,rega 
+7ad5 d8a00846 arg mem_t3_256 ,contw 
+7ad6 20407ba3 call bn_invmod_256 
+7ad7 da200846 arg mem_t3_256 ,rega 
+7ad8 d8a007e6 arg mem_t1_256 ,contw 
+7ad9 20407c79 call bn_sqrmod_256 
+7ada da200706 arg mem_cx_256 ,rega 
+7adb da4007e6 arg mem_t1_256 ,regb 
+7adc d8a006a6 arg mem_bx_256 ,contw 
+7add 20407be1 call bn_mulmod_256 
+7ade da200846 arg mem_t3_256 ,rega 
+7adf da4007e6 arg mem_t1_256 ,regb 
+7ae0 d8a00826 arg mem_t2_256 ,contw 
+7ae1 20407be1 call bn_mulmod_256 
+7ae2 da200726 arg mem_cy_256 ,rega 
+7ae3 da400826 arg mem_t2_256 ,regb 
+7ae4 d8a006c6 arg mem_by_256 ,contw 
+7ae5 20207be1 branch bn_mulmod_256 
+
+ecdbl_256:
+7ae6 da200746 arg mem_cz_256 ,rega 
+7ae7 d8a00826 arg mem_t2_256 ,contw 
+7ae8 20407c79 call bn_sqrmod_256 
+7ae9 da200826 arg mem_t2_256 ,rega 
+7aea d8a00846 arg mem_t3_256 ,contw 
+7aeb 20407c79 call bn_sqrmod_256 
+7aec da20093e arg mem_a_256 ,rega 
+7aed da400846 arg mem_t3_256 ,regb 
+7aee d8a00846 arg mem_t3_256 ,contw 
+7aef 20407be1 call bn_mulmod_256 
+7af0 da200706 arg mem_cx_256 ,rega 
+7af1 d8a00826 arg mem_t2_256 ,contw 
+7af2 20407c79 call bn_sqrmod_256 
+7af3 d8c00826 arg mem_t2_256 ,contr 
+7af4 d8a007e6 arg mem_t1_256 ,contw 
+7af5 20407ebd call memcpy32 
+7af6 da2007e6 arg mem_t1_256 ,rega 
+7af7 20407c80 call bn_lshiftmod_256 
+7af8 da200826 arg mem_t2_256 ,rega 
+7af9 da4007e6 arg mem_t1_256 ,regb 
+7afa d8a00826 arg mem_t2_256 ,contw 
+7afb 20407c7d call bn_addmod_256 
+7afc da200826 arg mem_t2_256 ,rega 
+7afd da400846 arg mem_t3_256 ,regb 
+7afe d8a00826 arg mem_t2_256 ,contw 
+7aff 20407c7d call bn_addmod_256 
+7b00 d8c00706 arg mem_cx_256 ,contr 
+7b01 d8a007e6 arg mem_t1_256 ,contw 
+7b02 20407ebd call memcpy32 
+7b03 da200726 arg mem_cy_256 ,rega 
+7b04 d8a00846 arg mem_t3_256 ,contw 
+7b05 20407c79 call bn_sqrmod_256 
+7b06 da2007e6 arg mem_t1_256 ,rega 
+7b07 20407c80 call bn_lshiftmod_256 
+7b08 da2007e6 arg mem_t1_256 ,rega 
+7b09 20407c80 call bn_lshiftmod_256 
+7b0a da2007e6 arg mem_t1_256 ,rega 
+7b0b da400846 arg mem_t3_256 ,regb 
+7b0c d8a007e6 arg mem_t1_256 ,contw 
+7b0d 20407be1 call bn_mulmod_256 
+7b0e da200846 arg mem_t3_256 ,rega 
+7b0f d8a00806 arg mem_t0_256 ,contw 
+7b10 20407c79 call bn_sqrmod_256 
+7b11 da200806 arg mem_t0_256 ,rega 
+7b12 20407c80 call bn_lshiftmod_256 
+7b13 da200806 arg mem_t0_256 ,rega 
+7b14 20407c80 call bn_lshiftmod_256 
+7b15 da200806 arg mem_t0_256 ,rega 
+7b16 20407c80 call bn_lshiftmod_256 
+7b17 d8c00726 arg mem_cy_256 ,contr 
+7b18 d8a00846 arg mem_t3_256 ,contw 
+7b19 20407ebd call memcpy32 
+7b1a da200846 arg mem_t3_256 ,rega 
+7b1b 20407c80 call bn_lshiftmod_256 
+7b1c da200846 arg mem_t3_256 ,rega 
+7b1d da400746 arg mem_cz_256 ,regb 
+7b1e d8a00746 arg mem_cz_256 ,contw 
+7b1f 20407be1 call bn_mulmod_256 
+7b20 da200826 arg mem_t2_256 ,rega 
+7b21 d8a00846 arg mem_t3_256 ,contw 
+7b22 20407c79 call bn_sqrmod_256 
+7b23 da200846 arg mem_t3_256 ,rega 
+7b24 da4007e6 arg mem_t1_256 ,regb 
+7b25 d8a00846 arg mem_t3_256 ,contw 
+7b26 20407c96 call bn_submod_256 
+7b27 da200846 arg mem_t3_256 ,rega 
+7b28 da4007e6 arg mem_t1_256 ,regb 
+7b29 d8a00706 arg mem_cx_256 ,contw 
+7b2a 20407c96 call bn_submod_256 
+7b2b da2007e6 arg mem_t1_256 ,rega 
+7b2c da400706 arg mem_cx_256 ,regb 
+7b2d d8a00846 arg mem_t3_256 ,contw 
+7b2e 20407c96 call bn_submod_256 
+7b2f da200846 arg mem_t3_256 ,rega 
+7b30 da400826 arg mem_t2_256 ,regb 
+7b31 d8a00846 arg mem_t3_256 ,contw 
+7b32 20407be1 call bn_mulmod_256 
+7b33 da200846 arg mem_t3_256 ,rega 
+7b34 da400806 arg mem_t0_256 ,regb 
+7b35 d8a00726 arg mem_cy_256 ,contw 
+7b36 20207c96 branch bn_submod_256 
+
+ecadd_256:
+7b37 da200686 arg mem_az_256 ,rega 
+7b38 d8a00866 arg mem_t7_256 ,contw 
+7b39 20407c79 call bn_sqrmod_256 
+7b3a da200706 arg mem_cx_256 ,rega 
+7b3b da400866 arg mem_t7_256 ,regb 
+7b3c d8a00806 arg mem_t0_256 ,contw 
+7b3d 20407be1 call bn_mulmod_256 
+7b3e da200686 arg mem_az_256 ,rega 
+7b3f da400866 arg mem_t7_256 ,regb 
+7b40 d8a00866 arg mem_t7_256 ,contw 
+7b41 20407be1 call bn_mulmod_256 
+7b42 da200726 arg mem_cy_256 ,rega 
+7b43 da400866 arg mem_t7_256 ,regb 
+7b44 d8a007e6 arg mem_t1_256 ,contw 
+7b45 20407be1 call bn_mulmod_256 
+7b46 da200746 arg mem_cz_256 ,rega 
+7b47 d8a00866 arg mem_t7_256 ,contw 
+7b48 20407c79 call bn_sqrmod_256 
+7b49 da200646 arg mem_ax_256 ,rega 
+7b4a da400866 arg mem_t7_256 ,regb 
+7b4b d8a00826 arg mem_t2_256 ,contw 
+7b4c 20407be1 call bn_mulmod_256 
+7b4d da200746 arg mem_cz_256 ,rega 
+7b4e da400866 arg mem_t7_256 ,regb 
+7b4f d8a00866 arg mem_t7_256 ,contw 
+7b50 20407be1 call bn_mulmod_256 
+7b51 da200666 arg mem_ay_256 ,rega 
+7b52 da400866 arg mem_t7_256 ,regb 
+7b53 d8a00846 arg mem_t3_256 ,contw 
+7b54 20407be1 call bn_mulmod_256 
+7b55 da400806 arg mem_t0_256 ,regb 
+7b56 da200826 arg mem_t2_256 ,rega 
+7b57 d8a00866 arg mem_t7_256 ,contw 
+7b58 20407c96 call bn_submod_256 
+7b59 da200806 arg mem_t0_256 ,rega 
+7b5a da400826 arg mem_t2_256 ,regb 
+7b5b d8a00806 arg mem_t0_256 ,contw 
+7b5c 20407c7d call bn_addmod_256 
+7b5d da4007e6 arg mem_t1_256 ,regb 
+7b5e da200846 arg mem_t3_256 ,rega 
+7b5f d8a00826 arg mem_t2_256 ,contw 
+7b60 20407c96 call bn_submod_256 
+7b61 da2007e6 arg mem_t1_256 ,rega 
+7b62 da400846 arg mem_t3_256 ,regb 
+7b63 d8a007e6 arg mem_t1_256 ,contw 
+7b64 20407c7d call bn_addmod_256 
+7b65 da2007e6 arg mem_t1_256 ,rega 
+7b66 da400866 arg mem_t7_256 ,regb 
+7b67 d8a007e6 arg mem_t1_256 ,contw 
+7b68 20407be1 call bn_mulmod_256 
+7b69 da200746 arg mem_cz_256 ,rega 
+7b6a da400686 arg mem_az_256 ,regb 
+7b6b d8a00846 arg mem_t3_256 ,contw 
+7b6c 20407be1 call bn_mulmod_256 
+7b6d da200846 arg mem_t3_256 ,rega 
+7b6e da400866 arg mem_t7_256 ,regb 
+7b6f d8a00746 arg mem_cz_256 ,contw 
+7b70 20407be1 call bn_mulmod_256 
+7b71 da200866 arg mem_t7_256 ,rega 
+7b72 d8a00866 arg mem_t7_256 ,contw 
+7b73 20407c79 call bn_sqrmod_256 
+7b74 da200866 arg mem_t7_256 ,rega 
+7b75 da400806 arg mem_t0_256 ,regb 
+7b76 d8a00846 arg mem_t3_256 ,contw 
+7b77 20407be1 call bn_mulmod_256 
+7b78 da200866 arg mem_t7_256 ,rega 
+7b79 da4007e6 arg mem_t1_256 ,regb 
+7b7a d8a007e6 arg mem_t1_256 ,contw 
+7b7b 20407be1 call bn_mulmod_256 
+7b7c da200826 arg mem_t2_256 ,rega 
+7b7d d8a00706 arg mem_cx_256 ,contw 
+7b7e 20407c79 call bn_sqrmod_256 
+7b7f da200706 arg mem_cx_256 ,rega 
+7b80 da400846 arg mem_t3_256 ,regb 
+7b81 d8a00706 arg mem_cx_256 ,contw 
+7b82 20407c96 call bn_submod_256 
+7b83 d8c00706 arg mem_cx_256 ,contr 
+7b84 d8a00866 arg mem_t7_256 ,contw 
+7b85 20407ebd call memcpy32 
+7b86 da200866 arg mem_t7_256 ,rega 
+7b87 20407c80 call bn_lshiftmod_256 
+7b88 da200846 arg mem_t3_256 ,rega 
+7b89 da400866 arg mem_t7_256 ,regb 
+7b8a d8a00846 arg mem_t3_256 ,contw 
+7b8b 20407c96 call bn_submod_256 
+7b8c da200846 arg mem_t3_256 ,rega 
+7b8d da400826 arg mem_t2_256 ,regb 
+7b8e d8a00826 arg mem_t2_256 ,contw 
+7b8f 20407be1 call bn_mulmod_256 
+7b90 da200826 arg mem_t2_256 ,rega 
+7b91 da4007e6 arg mem_t1_256 ,regb 
+7b92 d8a00726 arg mem_cy_256 ,contw 
+7b93 20407c96 call bn_submod_256 
+7b94 da200726 arg mem_cy_256 ,rega 
+7b95 da40091e arg mem_p_256 ,regb 
+7b96 d8a00726 arg mem_cy_256 ,contw 
+7b97 18002600 force 0 ,regc 
+7b98 68008726 fetch 1 ,mem_cy_256 
+7b99 2feffe00 isolate1 0 ,pdata 
+7b9a 2040fc7b call bn_add_256 ,true 
+7b9b 1a626000 copy regc ,alarm 
+7b9c da200726 arg mem_cy_256 ,rega 
+7b9d 20407cab call bn_rshift_256 
+7b9e 68008745 fetch 1 ,mem_cy5_256 
+7b9f 2e0ffe00 isolate1 0 ,alarm 
+7ba0 7920fe07 setflag true ,7 ,pdata 
+7ba1 60008745 store 1 ,mem_cy5_256 
+7ba2 20600000 rtn 
+
+bn_invmod_256:
+7ba3 18a21600 copy contw ,timeup 
+7ba4 d8a00806 arg mem_tmp0_256 ,contw 
+7ba5 20407ed0 call clear_mem_256 
+7ba6 18007e00 force 0 ,pdata 
+7ba7 60020826 store 4 ,mem_t2_256 
+7ba8 70080601 jam 1 ,mem_tmp0_256 
+7ba9 d8a00786 arg mem_tmp1_256 ,contw 
+7baa 20407ed2 call clear_mem_512 
+7bab d8c0091e arg mem_p_256 ,contr 
+7bac d8a007c6 arg mem_tmp2_256 ,contw 
+7bad 20407ebd call memcpy32 
+7bae 1a220c00 copy rega ,contr 
+7baf d8a007e6 arg mem_tmp3_256 ,contw 
+7bb0 20407ebd call memcpy32 
+
+bn_invmod_256_2:
+7bb1 d8c007e6 arg mem_tmp3_256 ,contr 
+7bb2 20407cb5 call bn_eq_zero_256 
+7bb3 203a7bda branch bn_invmod_256_0 ,blank 
+7bb4 da2007e6 arg mem_tmp3_256 ,rega 
+7bb5 da400806 arg mem_tmp0_256 ,regb 
+7bb6 20407cb8 call bn_rshifteven_256 
+7bb7 da2007c6 arg mem_tmp2_256 ,rega 
+7bb8 da400786 arg mem_tmp1_256 ,regb 
+7bb9 20407cb8 call bn_rshifteven_256 
+7bba da2007e6 arg mem_tmp3_256 ,rega 
+7bbb da4007c6 arg mem_tmp2_256 ,regb 
+7bbc 20407cb1 call bn_bigeq_256 
+7bbd 20217bcc branch bn_invmod_256_1 ,positive 
+7bbe da2007c6 arg mem_tmp2_256 ,rega 
+7bbf da4007e6 arg mem_tmp3_256 ,regb 
+7bc0 1a220a00 copy rega ,contw 
+7bc1 20407ca9 call bn_sub_256 
+7bc2 da200806 arg mem_tmp0_256 ,rega 
+7bc3 da400786 arg mem_tmp1_256 ,regb 
+7bc4 1a420a00 copy regb ,contw 
+7bc5 20407c7b call bn_add_256 
+7bc6 ea208000 ifetch 1 ,rega 
+7bc7 9a60a600 iadd regc ,regc 
+7bc8 ea408000 ifetch 1 ,regb 
+7bc9 9a60fe00 iadd regc ,pdata 
+7bca e2408000 istore 1 ,regb 
+7bcb 20207bb1 branch bn_invmod_256_2 
+
+bn_invmod_256_1:
+7bcc da2007e6 arg mem_tmp3_256 ,rega 
+7bcd da4007c6 arg mem_tmp2_256 ,regb 
+7bce 1a220a00 copy rega ,contw 
+7bcf 20407ca9 call bn_sub_256 
+7bd0 da200786 arg mem_tmp1_256 ,rega 
+7bd1 da400806 arg mem_tmp0_256 ,regb 
+7bd2 1a420a00 copy regb ,contw 
+7bd3 20407c7b call bn_add_256 
+7bd4 ea208000 ifetch 1 ,rega 
+7bd5 9a60a600 iadd regc ,regc 
+7bd6 ea408000 ifetch 1 ,regb 
+7bd7 9a60fe00 iadd regc ,pdata 
+7bd8 e2408000 istore 1 ,regb 
+7bd9 20207bb1 branch bn_invmod_256_2 
+
+bn_invmod_256_0:
+7bda da200786 arg mem_tmp1_256 ,rega 
+7bdb 19620a00 copy timeup ,contw 
+7bdc 20407c0a call bn_p256mod 
+7bdd da20091e arg mem_p_256 ,rega 
+7bde 19622400 copy timeup ,regb 
+7bdf 19620a00 copy timeup ,contw 
+7be0 20207c96 branch bn_submod_256 
+
+bn_mulmod_256:
+7be1 18a21600 copy contw ,timeup 
+7be2 18007000 force 0 ,regext_index 
+7be3 d8a00786 arg mem_tmp1_256 ,contw 
+7be4 20407ed2 call clear_mem_512 
+7be5 d8a00ad2 arg mem_regext ,contw 
+7be6 20407ed2 call clear_mem_512 
+7be7 1a220c00 copy rega ,contr 
+7be8 700ad200 jam 0 ,mem_regext 
+7be9 58000000 setarg 0 
+7bea 20407c73 call bn_load_mem 
+7beb 1a420c00 copy regb ,contr 
+7bec 20407c77 call bn_load_256 
+7bed 18000e00 force 0 ,queue 
+7bee d8a00786 arg mem_tmp1_256 ,contw 
+
+bn_mulmod_256_1:
+7bef d8400ad2 arg mem_regext ,temp 
+7bf0 18e22400 copy queue ,regb 
+7bf1 1a4bfe00 lshift2 regb ,pdata 
+7bf2 9840a400 iadd temp ,regb 
+7bf3 18000400 force 0 ,temp 
+7bf4 18002600 force 0 ,regc 
+
+bn_mulmod_256_0:
+7bf5 e8a20000 ifetch 4 ,contw 
+7bf6 98002200 iforce rega 
+7bf7 ea420000 ifetch 4 ,regb 
+7bf8 1a627000 copy regc ,regext_index 
+7bf9 9deffe00 imul32 regext ,pdata 
+7bfa 9a20fe00 iadd rega ,pdata 
+7bfb 9840fe00 iadd temp ,pdata 
+7bfc e0a20000 istore 4 ,contw 
+7bfd 1fef0400 rshift32 pdata ,temp 
+7bfe 1a60a601 increase 1 ,regc 
+7bff 2a61fe08 compare 8 ,regc ,0xff 
+7c00 2420fbf5 nbranch bn_mulmod_256_0 ,true 
+7c01 18427e00 deposit temp 
+7c02 e0a20000 istore 4 ,contw 
+7c03 18a08be0 increase -32 ,contw 
+7c04 18e08e01 increase 1 ,queue 
+7c05 28e1fe08 compare 8 ,queue ,0xff 
+7c06 2420fbef nbranch bn_mulmod_256_1 ,true 
+7c07 da200786 arg mem_tmp1_256 ,rega 
+7c08 19620a00 copy timeup ,contw 
+7c09 20207c0a branch bn_p256mod 
+
+bn_p256mod:
+7c0a 4779403e bpatchx patch3e_2 ,mem_patch3e 
+7c0b 18a21600 copy contw ,timeup 
+7c0c 1a226000 copy rega ,alarm 
+7c0d da4007c6 arg mem_tmp2_256 ,regb 
+7c0e 1a420a00 copy regb ,contw 
+7c0f 20407ecd call memset0_4 
+7c10 e0a40000 istore 8 ,contw 
+7c11 1a208c2c add rega ,44 ,contr 
+7c12 20407eb9 call memcpy8 
+7c13 20407eb5 call memcpy12 
+7c14 1a422200 copy regb ,rega 
+7c15 20407c80 call bn_lshiftmod_256 
+7c16 da4007c6 arg mem_tmp2_256 ,regb 
+7c17 1e022200 copy alarm ,rega 
+7c18 19620a00 copy timeup ,contw 
+7c19 20407c7d call bn_addmod_256 
+7c1a da4007c6 arg mem_tmp2_256 ,regb 
+7c1b 1a420a00 copy regb ,contw 
+7c1c 20407ecd call memset0_4 
+7c1d e0a40000 istore 8 ,contw 
+7c1e 1e008c30 add alarm ,48 ,contr 
+7c1f 20407ebf call memcpy16 
+7c20 20407ecd call memset0_4 
+7c21 1a422200 copy regb ,rega 
+7c22 20407c80 call bn_lshiftmod_256 
+7c23 da4007c6 arg mem_tmp2_256 ,regb 
+7c24 19622200 copy timeup ,rega 
+7c25 1a220a00 copy rega ,contw 
+7c26 20407c7d call bn_addmod_256 
+7c27 da4007c6 arg mem_tmp2_256 ,regb 
+7c28 1a420a00 copy regb ,contw 
+7c29 1e008c20 add alarm ,32 ,contr 
+7c2a 20407eb5 call memcpy12 
+7c2b 20407ecd call memset0_4 
+7c2c e0a40000 istore 8 ,contw 
+7c2d 1e008c38 add alarm ,56 ,contr 
+7c2e 20407eb9 call memcpy8 
+7c2f 19622200 copy timeup ,rega 
+7c30 1a220a00 copy rega ,contw 
+7c31 20407c7d call bn_addmod_256 
+7c32 da4007c6 arg mem_tmp2_256 ,regb 
+7c33 1a420a00 copy regb ,contw 
+7c34 1e008c24 add alarm ,36 ,contr 
+7c35 20407eb5 call memcpy12 
+7c36 1e008c34 add alarm ,52 ,contr 
+7c37 20407eb5 call memcpy12 
+7c38 1e008c34 add alarm ,52 ,contr 
+7c39 20407eb6 call memcpy4 
+7c3a 1e008c20 add alarm ,32 ,contr 
+7c3b 20407eb6 call memcpy4 
+7c3c 19622200 copy timeup ,rega 
+7c3d 1a220a00 copy rega ,contw 
+7c3e 20407c7d call bn_addmod_256 
+7c3f da4007c6 arg mem_tmp2_256 ,regb 
+7c40 1a420a00 copy regb ,contw 
+7c41 1e008c2c add alarm ,44 ,contr 
+7c42 20407eb5 call memcpy12 
+7c43 20407ecd call memset0_4 
+7c44 e0a40000 istore 8 ,contw 
+7c45 1e008c20 add alarm ,32 ,contr 
+7c46 20407eb6 call memcpy4 
+7c47 1e008c28 add alarm ,40 ,contr 
+7c48 20407eb6 call memcpy4 
+7c49 19622200 copy timeup ,rega 
+7c4a 1a220a00 copy rega ,contw 
+7c4b 20407c96 call bn_submod_256 
+7c4c da4007c6 arg mem_tmp2_256 ,regb 
+7c4d 1a420a00 copy regb ,contw 
+7c4e 1e008c30 add alarm ,48 ,contr 
+7c4f 20407eb9 call memcpy8 
+7c50 20407eb9 call memcpy8 
+7c51 18007e00 force 0 ,pdata 
+7c52 e0a40000 istore 8 ,contw 
+7c53 1e008c24 add alarm ,36 ,contr 
+7c54 20407eb6 call memcpy4 
+7c55 1e008c2c add alarm ,44 ,contr 
+7c56 20407eb6 call memcpy4 
+7c57 19622200 copy timeup ,rega 
+7c58 1a220a00 copy rega ,contw 
+7c59 20407c96 call bn_submod_256 
+7c5a da4007c6 arg mem_tmp2_256 ,regb 
+7c5b 1a420a00 copy regb ,contw 
+7c5c 1e008c34 add alarm ,52 ,contr 
+7c5d 20407eb5 call memcpy12 
+7c5e 1e008c20 add alarm ,32 ,contr 
+7c5f 20407eb5 call memcpy12 
+7c60 20407ecd call memset0_4 
+7c61 1e008c30 add alarm ,48 ,contr 
+7c62 20407eb6 call memcpy4 
+7c63 19622200 copy timeup ,rega 
+7c64 1a220a00 copy rega ,contw 
+7c65 20407c96 call bn_submod_256 
+7c66 da4007c6 arg mem_tmp2_256 ,regb 
+7c67 1a420a00 copy regb ,contw 
+7c68 1e008c38 add alarm ,56 ,contr 
+7c69 20407eb9 call memcpy8 
+7c6a 20407ecd call memset0_4 
+7c6b 1e008c24 add alarm ,36 ,contr 
+7c6c 20407eb5 call memcpy12 
+7c6d 20407ecd call memset0_4 
+7c6e 1e008c34 add alarm ,52 ,contr 
+7c6f 20407eb6 call memcpy4 
+7c70 19622200 copy timeup ,rega 
+7c71 1a220a00 copy rega ,contw 
+7c72 20207c96 branch bn_submod_256 
+
+bn_load_mem:
+7c73 18007220 force 32 ,loopcnt 
+7c74 d8a00ad2 arg mem_regext ,contw 
+7c75 98a08a00 iadd contw ,contw 
+7c76 20207f01 branch memcpy 
+
+bn_load_256:
+7c77 18007208 force 8 ,loopcnt 
+7c78 20207781 branch bn_load_0 
+
+bn_sqrmod_256:
+7c79 1a222400 copy rega ,regb 
+7c7a 20207be1 branch bn_mulmod_256 
+
+bn_add_256:
+7c7b 18007208 force 8 ,loopcnt 
+7c7c 20207712 branch bn_add + 1 
+
+bn_addmod_256:
+7c7d 20407c7b call bn_add_256 
+7c7e 18a22200 copy contw ,rega 
+7c7f 20207c81 branch bn_lshiftmod_ismod_256 
+
+bn_lshiftmod_256:
+7c80 20407cae call bn_lshift_256 
+
+bn_lshiftmod_ismod_256:
+7c81 2a6ffe00 isolate1 0 ,regc 
+7c82 2020fc8a branch bn_lshiftmod_p_256 ,true 
+7c83 da40091e arg mem_p_256 ,regb 
+7c84 1a222600 copy rega ,regc 
+7c85 1a20a3e0 increase -32 ,rega 
+7c86 20407cb1 call bn_bigeq_256 
+7c87 24610000 nrtn positive 
+7c88 1a622200 copy regc ,rega 
+7c89 20207c92 branch sub_p2_256 
+
+bn_lshiftmod_p_256:
+7c8a 20407c92 call sub_p2_256 
+7c8b 1a222600 copy rega ,regc 
+7c8c 1a20a3e0 increase -32 ,rega 
+7c8d da40091e arg mem_p_256 ,regb 
+7c8e 20407cb1 call bn_bigeq_256 
+7c8f 24610000 nrtn positive 
+7c90 1a622200 copy regc ,rega 
+7c91 20207c92 branch sub_p2_256 
+
+sub_p2_256:
+7c92 1a20a3e0 increase -32 ,rega 
+7c93 da40091e arg mem_p_256 ,regb 
+7c94 1a220a00 copy rega ,contw 
+7c95 20207ca9 branch bn_sub_256 
+
+bn_submod_256:
+7c96 20407ca9 call bn_sub_256 
+7c97 2020fca0 branch bn_submod_256_np ,true 
+7c98 18a0a3e0 add contw ,-32 ,rega 
+7c99 da40091e arg mem_p_256 ,regb 
+7c9a 20407cb1 call bn_bigeq_256 
+7c9b 24610000 nrtn positive 
+7c9c da40091e arg mem_p_256 ,regb 
+7c9d 18a0a3e0 add contw ,-32 ,rega 
+7c9e 1a220a00 copy rega ,contw 
+7c9f 20207ca9 branch bn_sub_256 
+
+bn_submod_256_np:
+7ca0 18a0a3e0 add contw ,-32 ,rega 
+7ca1 da40091e arg mem_p_256 ,regb 
+7ca2 1a220a00 copy rega ,contw 
+7ca3 20407c7b call bn_add_256 
+7ca4 20608000 rtn true 
+7ca5 18a0a3e0 add contw ,-32 ,rega 
+7ca6 da40091e arg mem_p_256 ,regb 
+7ca7 1a220a00 copy rega ,contw 
+7ca8 20207c7b branch bn_add_256 
+
+bn_sub_256:
+7ca9 18007208 force 8 ,loopcnt 
+7caa 20207720 branch bn_sub + 1 
+
+bn_rshift_256:
+7cab 18007208 force 8 ,loopcnt 
+7cac 1a20a21c increase 28 ,rega 
+7cad 2020772f branch bn_rshift 
+
+bn_lshift_256:
+7cae 18007208 force 8 ,loopcnt 
+7caf 18002600 force 0 ,regc 
+7cb0 2020773d branch bn_lshift_0 
+
+bn_bigeq_256:
+7cb1 18007208 force 8 ,loopcnt 
+7cb2 1a20a21c increase 28 ,rega 
+7cb3 1a40a41c increase 28 ,regb 
+7cb4 20207707 branch bn_bigeq_0 
+
+bn_eq_zero_256:
+7cb5 e8c40000 ifetch 8 ,contr 
+7cb6 247a0000 nrtn blank 
+7cb7 202076f5 branch bn_eq_zero 
+
+bn_rshifteven_256:
+7cb8 1a226000 copy rega ,alarm 
+
+bn_rshifteven_256_1:
+7cb9 1e022200 copy alarm ,rega 
+7cba ea208000 ifetch 1 ,rega 
+7cbb 2feffe00 isolate1 0 ,pdata 
+7cbc 20608000 rtn true 
+7cbd 20407cab call bn_rshift_256 
+7cbe ea408000 ifetch 1 ,regb 
+7cbf 2fec0000 isolate0 0 ,pdata 
+7cc0 2020fcc8 branch bn_rshifteven_256_0 ,true 
+7cc1 da20091e arg mem_p_256 ,rega 
+7cc2 1a420a00 copy regb ,contw 
+7cc3 20407c7b call bn_add_256 
+7cc4 ea408000 ifetch 1 ,regb 
+7cc5 9a60fe00 iadd regc ,pdata 
+7cc6 e2408000 istore 1 ,regb 
+7cc7 1a40a5e0 increase -32 ,regb 
+
+bn_rshifteven_256_0:
+7cc8 1a40a220 add regb ,32 ,rega 
+7cc9 18007209 force 9 ,loopcnt 
+7cca 2040772f call bn_rshift 
+7ccb 20207cb9 branch bn_rshifteven_256_1 
+
+ui_init:
+7ccc 20402c65 call lpm_disable_exen_output 
+7ccd 20758000 rtn wake 
+7cce 20407cd3 call ui_button_init 
+7ccf 20407d75 call ui_timer_init 
+7cd0 20207d08 branch ui_led_init_global 
+
+ui_dispatch:
+7cd1 20407d29 call ui_led_dispatch 
+7cd2 20207d64 branch ui_timer_check 
+
+ui_button_init:
+7cd3 6800c686 fetch 1 ,mem_ui_button_gpio 
+7cd4 c17f8000 rtneq ui_button_gpio_disable 
+7cd5 98000400 iforce temp 
+7cd6 2040680e call gpio_config_output 
+7cd7 6808c686 fetcht 1 ,mem_ui_button_gpio 
+7cd8 20406825 call gpio_out_inactive 
+7cd9 20000064 nop 100 
+7cda 6808c686 fetcht 1 ,mem_ui_button_gpio 
+7cdb 204067fb call gpio_config_input 
+7cdc 20207cdd branch ui_button_polling 
+
+ui_button_polling:
+7cdd 4779c03e bpatchx patch3e_3 ,mem_patch3e 
+7cde 6800c686 fetch 1 ,mem_ui_button_gpio 
+7cdf c17f8000 rtneq ui_button_gpio_disable 
+7ce0 1fe20400 copy pdata ,temp 
+7ce1 2040681d call gpio_get_bit 
+7ce2 2420fcef nbranch ui_button_up ,true 
+
+ui_button_down:
+7ce3 20407cf9 call ui_button_check_long_press 
+7ce4 68014682 fetch 2 ,mem_ui_state_map 
+7ce5 79207e0c set1 ui_state_btn_down 
+7ce6 60014682 store 2 ,mem_ui_state_map 
+7ce7 6800c679 fetch 1 ,mem_ui_button_last_state 
+7ce8 c1000000 rtneq ui_button_state_down 
+7ce9 70467900 jam ui_button_state_down ,mem_ui_button_last_state 
+7cea 6800c685 fetch 1 ,mem_ui_button_timeout 
+7ceb 6000c678 store 1 ,mem_ui_button_timer 
+7cec 20407d00 call lpm_button_get_wake_lock 
+7ced 700a992c jam bt_evt_button_down ,mem_fifo_temp 
+7cee 20207d86 branch ui_ipc_send_event 
+
+ui_button_up:
+7cef 68014682 fetch 2 ,mem_ui_state_map 
+7cf0 793ffe0c set0 ui_state_btn_down 
+7cf1 60014682 store 2 ,mem_ui_state_map 
+7cf2 6800c679 fetch 1 ,mem_ui_button_last_state 
+7cf3 c1008000 rtneq ui_button_state_up 
+7cf4 70467901 jam ui_button_state_up ,mem_ui_button_last_state 
+7cf5 70467800 jam 0 ,mem_ui_button_timer 
+7cf6 20407d02 call lpm_button_clean_wake_lock 
+7cf7 700a992d jam bt_evt_button_up ,mem_fifo_temp 
+7cf8 20207d86 branch ui_ipc_send_event 
+
+ui_button_check_long_press:
+7cf9 6800c678 fetch 1 ,mem_ui_button_timer 
+7cfa 207a0000 rtn blank 
+7cfb 1fe0ffff increase -1 ,pdata 
+7cfc 6000c678 store 1 ,mem_ui_button_timer 
+7cfd 247a0000 nrtn blank 
+7cfe 700a9910 jam bt_evt_button_long_pressed ,mem_fifo_temp 
+7cff 20207d86 branch ui_ipc_send_event 
+
+lpm_button_get_wake_lock:
+7d00 d8e00007 arg wake_lock_button ,queue 
+7d01 20202c32 branch lpm_get_wake_lock 
+
+lpm_button_clean_wake_lock:
+7d02 d8e00007 arg wake_lock_button ,queue 
+7d03 20202c36 branch lpm_put_wake_lock 
+
+calc_curr_struct_prt:
+7d04 6801421b fetch 2 ,mem_ui_led_struct_ptr 
+7d05 1a2fa40b mul32 rega ,led_offset_length ,regb 
+7d06 9a40a400 iadd regb ,regb 
+7d07 20600000 rtn 
+
+ui_led_init_global:
+7d08 6800c21a fetch 1 ,mem_ui_led_struct_num 
+7d09 207a0000 rtn blank 
+7d0a 1fe27200 copy pdata ,loopcnt 
+7d0b 6801421b fetch 2 ,mem_ui_led_struct_ptr 
+7d0c 1fe22400 copy pdata ,regb 
+
+ui_led_init_loop:
+7d0d 1a40a602 add regb ,led_offset_led_gpio ,regc 
+7d0e ea688000 ifetcht 1 ,regc 
+7d0f 2040680e call gpio_config_output 
+7d10 20407d32 call ui_led_off_static 
+7d11 1a40a40b increase led_offset_length ,regb 
+7d12 c2007d0d loop ui_led_init_loop 
+7d13 20600000 rtn 
+
+ui_led_on_global:
+7d14 20407d04 call calc_curr_struct_prt 
+7d15 58000002 setarg ui_led_state_lighting 
+7d16 e2408000 istore 1 ,regb 
+7d17 20407d5e call ui_led_stop_timer 
+7d18 20207d35 branch ui_led_on_static 
+
+ui_led_blink_stop_global:
+
+ui_led_off_global:
+7d19 20407d04 call calc_curr_struct_prt 
+7d1a 58000003 setarg ui_led_state_darking 
+7d1b e2408000 istore 1 ,regb 
+7d1c 20407d5e call ui_led_stop_timer 
+7d1d 20207d32 branch ui_led_off_static 
+
+ui_led_blink_start_global:
+7d1e 20407d04 call calc_curr_struct_prt 
+7d1f 58000001 setarg ui_led_state_blink_start 
+7d20 e2408000 istore 1 ,regb 
+7d21 580000ff setarg led_infinite_flash_num 
+7d22 e0a08000 istore 1 ,contw 
+7d23 20207d32 branch ui_led_off_static 
+
+ui_led_set_style_global:
+7d24 20407d04 call calc_curr_struct_prt 
+7d25 df20000b arg led_offset_length ,loopcnt 
+7d26 1a620c00 copy regc ,contr 
+7d27 1a420a00 copy regb ,contw 
+7d28 20207ef4 branch memcpy_fast 
+
+ui_led_dispatch:
+7d29 6800c21a fetch 1 ,mem_ui_led_struct_num 
+7d2a 207a0000 rtn blank 
+7d2b da200000 arg 0 ,rega 
+
+ui_led_blink_polling:
+7d2c 20407d38 call ui_led_change_style_by_type 
+7d2d 1a20a201 increase 1 ,rega 
+7d2e 6800c21a fetch 1 ,mem_ui_led_struct_num 
+7d2f 9a267c00 isub rega ,null 
+7d30 20628000 rtn zero 
+7d31 20207d2c branch ui_led_blink_polling 
+
+ui_led_off_static:
+7d32 1a40a602 add regb ,led_offset_led_gpio ,regc 
+7d33 ea688000 ifetcht 1 ,regc 
+7d34 20206825 branch gpio_out_inactive 
+
+ui_led_on_static:
+7d35 1a40a602 add regb ,led_offset_led_gpio ,regc 
+7d36 ea688000 ifetcht 1 ,regc 
+7d37 20206829 branch gpio_out_active 
+
+ui_led_change_style_by_type:
+7d38 1a208e0b add rega ,ui_led_blink ,queue 
+7d39 20407f16 call timer_check 
+7d3a 247a0000 nrtn blank 
+7d3b 20407d04 call calc_curr_struct_prt 
+7d3c ea408000 ifetch 1 ,regb 
+7d3d c0017d35 beq ui_led_state_lighting ,ui_led_on_static 
+7d3e c001fd32 beq ui_led_state_darking ,ui_led_off_static 
+7d3f c0007d32 beq ui_led_state_blink_stop ,ui_led_off_static 
+7d40 c002fd4c beq ui_led_state_blink_darking ,ui_led_blink_state_darking 
+
+ui_led_blink_state_lighting:
+7d41 20407d35 call ui_led_on_static 
+7d42 1a40a607 add regb ,led_offset_cb_ledon ,regc 
+7d43 20407e7c call push_stack 
+7d44 ea610000 ifetch 2 ,regc 
+7d45 20407f9c call callback_func 
+7d46 20407e8c call pop_stack 
+7d47 58000005 setarg ui_led_state_blink_darking 
+7d48 e2408000 istore 1 ,regb 
+7d49 1a40a603 add regb ,led_offset_on_time ,regc 
+7d4a ea610000 ifetch 2 ,regc 
+7d4b 20207d5c branch ui_led_blink_timer_start 
+
+ui_led_blink_state_darking:
+7d4c 20407d32 call ui_led_off_static 
+7d4d 1a40a609 add regb ,led_offset_cb_ledoff ,regc 
+7d4e 20407e7c call push_stack 
+7d4f ea610000 ifetch 2 ,regc 
+7d50 20407f9c call callback_func 
+7d51 20407e8c call pop_stack 
+7d52 1a40a601 add regb ,led_offset_blink_count ,regc 
+7d53 ea608000 ifetch 1 ,regc 
+7d54 c07ffd58 beq led_infinite_flash_num ,ui_led_blink_infinite 
+7d55 1fe0ffff increase -1 ,pdata 
+7d56 e2608000 istore 1 ,regc 
+7d57 203a7d19 branch ui_led_blink_stop_global ,blank 
+
+ui_led_blink_infinite:
+7d58 58000004 setarg ui_led_state_blink_lighting 
+7d59 e2408000 istore 1 ,regb 
+7d5a 1a40a605 add regb ,led_offset_off_time ,regc 
+7d5b ea610000 ifetch 2 ,regc 
+
+ui_led_blink_timer_start:
+7d5c 1a208e0b add rega ,ui_led_blink ,queue 
+7d5d 20207f08 branch timer_init 
+
+ui_led_stop_timer:
+7d5e 58000000 setarg 0 
+7d5f 20207d5c branch ui_led_blink_timer_start 
+
+ui_timer_timeout:
+7d60 58001000 setarg 0x1000 
+7d61 1ff07e00 lshift16 pdata ,pdata 
+7d62 9a40a400 iadd regb ,regb 
+7d63 20600000 rtn 
+
+ui_timer_check:
+7d64 477a403e bpatchx patch3e_4 ,mem_patch3e 
+7d65 da200000 arg 0 ,rega 
+7d66 680a467a fetcht 4 ,mem_ui_timer_last_btclk 
+7d67 1c422400 copy clkn_bt ,regb 
+7d68 1a427e00 copy regb ,pdata 
+7d69 98467c00 isub temp ,null 
+7d6a 24417d60 ncall ui_timer_timeout ,positive 
+
+ui_timer_check_loop:
+7d6b 1a427e00 copy regb ,pdata 
+7d6c 184084a0 increase 160 ,temp 
+7d6d 184084a0 increase 160 ,temp 
+7d6e 98467c00 isub temp ,null 
+7d6f 24217d78 nbranch ui_timer_check_end ,positive 
+7d70 1a20a201 increase 1 ,rega 
+7d71 1a217e0f and rega ,0x0f ,pdata 
+7d72 243a7d6b nbranch ui_timer_check_loop ,blank 
+7d73 da200000 arg 0 ,rega 
+7d74 20407d7f call ui_timer_check_send_evt 
+
+ui_timer_init:
+7d75 1c427e00 copy clkn_bt ,pdata 
+7d76 6002467a store 4 ,mem_ui_timer_last_btclk 
+7d77 20600000 rtn 
+
+ui_timer_check_end:
+7d78 477ac03e bpatchx patch3e_5 ,mem_patch3e 
+7d79 1a227e00 copy rega ,pdata 
+7d7a 207a0000 rtn blank 
+7d7b 18408560 increase -160 ,temp 
+7d7c 18408560 increase -160 ,temp 
+7d7d 793f841c set0 28 ,temp 
+7d7e 600a467a storet 4 ,mem_ui_timer_last_btclk 
+
+ui_timer_check_send_evt:
+7d7f 2020335f branch app_evt_timer 
+
+ui_ipc_get_lock:
+7d80 70466601 jam 1 ,mem_ipc_lock_bt 
+
+ui_ipc_get_lock_wait:
+7d81 6800c667 fetch 1 ,mem_ipc_lock_c51 
+7d82 243a7d81 nbranch ui_ipc_get_lock_wait ,blank 
+7d83 20600000 rtn 
+
+ui_ipc_put_lock:
+7d84 70466600 jam 0 ,mem_ipc_lock_bt 
+7d85 20600000 rtn 
+
+ui_ipc_send_event:
+7d86 477b403e bpatchx patch3e_6 ,mem_patch3e 
+7d87 20407d80 call ui_ipc_get_lock 
+7d88 1a227e00 copy rega ,pdata 
+7d89 60020a91 store 4 ,mem_ipc_rega_temp 
+7d8a da204668 arg mem_ipc_fifo_bt2c51 ,rega 
+7d8b 20407fb8 call fifo_in 
+7d8c 68020a91 fetch 4 ,mem_ipc_rega_temp 
+7d8d 1fe22200 copy pdata ,rega 
+7d8e 20207d84 branch ui_ipc_put_lock 
+
+ui_ipc_send_cmd:
+7d8f 477bc03e bpatchx patch3e_7 ,mem_patch3e 
+7d90 20407d80 call ui_ipc_get_lock 
+7d91 1a227e00 copy rega ,pdata 
+7d92 60020a91 store 4 ,mem_ipc_rega_temp 
+7d93 da204670 arg mem_ipc_fifo_c512bt ,rega 
+7d94 20407fb8 call fifo_in 
+7d95 68020a91 fetch 4 ,mem_ipc_rega_temp 
+7d96 1fe22200 copy pdata ,rega 
+7d97 20207d84 branch ui_ipc_put_lock 
+
+ui_ipc_clean_all_fifo:
+7d98 58000000 setarg 0 
+7d99 60044670 store util_fifo_len ,mem_ipc_fifo_c512bt 
+7d9a 60044668 store util_fifo_len ,mem_ipc_fifo_bt2c51 
+7d9b 20600000 rtn 
+
+check_51cmd:
+7d9c 477c403f bpatchx patch3f_0 ,mem_patch3f 
+7d9d 6800c1ce fetch 1 ,mem_hci_cmd 
+7d9e 247a0000 nrtn blank 
+7d9f da204670 arg mem_ipc_fifo_c512bt ,rega 
+7da0 20407fd0 call fifo_is_empty 
+7da1 207a0000 rtn blank 
+7da2 700a9000 jam ipc_continue_process ,mem_ipc_skip_continue_proc 
+7da3 20407da7 call check_51cmd_once 
+7da4 68008a90 fetch 1 ,mem_ipc_skip_continue_proc 
+7da5 203a7d9c branch check_51cmd ,blank 
+7da6 20600000 rtn 
+
+check_51cmd_once:
+7da7 20407d80 call ui_ipc_get_lock 
+7da8 da204670 arg mem_ipc_fifo_c512bt ,rega 
+7da9 20407fc4 call fifo_out 
+7daa 1fe20400 copy pdata ,temp 
+7dab 20407d84 call ui_ipc_put_lock 
+7dac 477cc03f bpatchx patch3f_1 ,mem_patch3f 
+7dad 18427e00 copy temp ,pdata 
+7dae 207a0000 rtn blank 
+7daf c000fddd beq bt_cmd_start_discovery ,check_51cmd_start_discovery 
+7db0 c0017de2 beq bt_cmd_stop_discovery ,check_51cmd_stop_discovery 
+7db1 c001fde8 beq bt_cmd_reconnect ,check_51cmd_reconnect 
+7db2 c003fded beq bt_cmd_enter_sniff_subrating ,check_51cmd_enter_sniff_subrating 
+7db3 c0047dee beq bt_cmd_exit_sniff_subrating ,check_51cmd_exit_sniff_subrating 
+7db4 c004fdef beq bt_cmd_sniff_test ,check_51cmd_sniff_test 
+7db5 c005fdf2 beq bt_cmd_start_inquiry ,check_51cmd_inq 
+7db6 c0067df3 beq bt_cmd_stop_inquiry ,check_51cmd_stop_inq 
+7db7 c006fdf4 beq bt_cmd_start_adv ,check_51cmd_adv 
+7db8 c0077dfa beq bt_cmd_stop_adv ,check_51cmd_stop_adv 
+7db9 c007fdff beq bt_cmd_start_direct_adv ,check_51cmd_direct_adv 
+7dba c0087e05 beq bt_cmd_stop_direct_adv ,check_51cmd_stop_direct_adv 
+7dbb c009fe0f beq bt_cmd_led_off ,check_51cmd_led_off 
+7dbc c00a7e11 beq bt_cmd_led_on ,check_51cmd_led_on 
+7dbd c00afe13 beq bt_cmd_led_blink ,check_51cmd_led_start_blink 
+7dbe c00b7e15 beq bt_cmd_le_start_conn ,check_51cmd_le_start_con 
+7dbf c00bfe18 beq bt_cmd_le_start_scan ,check_51cmd_start_scan 
+7dc0 c00c7e1a beq bt_cmd_le_stop_scan ,check_51cmd_stop_scan 
+7dc1 c00cfe1d beq bt_cmd_enter_hibernate ,check_51cmd_hibernate 
+7dc2 c00dfe25 beq bt_cmd_le_smp_security_request ,check_51cmd_le_smp_sec_req 
+7dc3 c00f7e2f beq bt_cmd_bb_reconn_cancel ,check_51cmd_bb_reconn_cancel 
+7dc4 60008a99 store 1 ,mem_fifo_temp 
+7dc5 477d403f bpatchx patch3f_2 ,mem_patch3f 
+7dc6 204062bc call lmo_fifo_check 
+7dc7 243a7ddb nbranch check_51cmd_restore ,blank 
+
+check_51cmd_once_continue:
+7dc8 68008a99 fetch 1 ,mem_fifo_temp 
+7dc9 c584fdd6 bmark0 mark_context ,check_51cmd_check_idle 
+7dca c0027dea beq bt_cmd_disconnect ,check_51cmd_disconnect 
+7dcb c002cd17 beq bt_cmd_enter_sniff ,cmd_in_sniff 
+7dcc c0034d26 beq bt_cmd_exit_sniff ,cmd_exit_sniff 
+7dcd c0057df0 beq bt_cmd_set_pin_code ,check_51cmd_pincode 
+7dce c008fe0a beq bt_cmd_le_disconnect ,check_51cmd_le_disconnect 
+7dcf c0097e0e beq bt_cmd_le_update_conn ,check_51cmd_ble_update_connect_param 
+7dd0 c00efe26 beq bt_cmd_role_switch ,check_51cmd_role_switch 
+7dd1 c00fe7cc beq bt_cmd_store_reconn_info_le ,eeprom_store_le_reconn_info 
+7dd2 c01067d0 beq bt_cmd_store_reconn_info_bt ,eeprom_store_bd_reconn_info 
+7dd3 c010fe31 beq bt_cmd_dhkey_not_accept ,check_51cmd_dhkey_not_accept 
+7dd4 c012e70b beq bt_cmd_store_reconn_info ,check_51cmd_store_reconn_info 
+7dd5 20600000 rtn 
+
+check_51cmd_check_idle:
+7dd6 60008a99 store 1 ,mem_fifo_temp 
+7dd7 20402252 call context_check_idle 
+7dd8 2022fddb branch check_51cmd_restore ,zero 
+7dd9 2040225a call context_search_plap 
+7dda 24628000 nrtn zero 
+
+check_51cmd_restore:
+7ddb 700a9001 jam ipc_skip_continue_process ,mem_ipc_skip_continue_proc 
+7ddc 20207d8f branch ui_ipc_send_cmd 
+
+check_51cmd_start_discovery:
+7ddd 68014682 fetch 2 ,mem_ui_state_map 
+7dde 79207e06 set1 ui_state_bt_discovery 
+7ddf 60014682 store 2 ,mem_ui_state_map 
+7de0 70409303 jam 3 ,mem_scan_mode 
+7de1 20600000 rtn 
+
+check_51cmd_stop_discovery:
+7de2 70468000 jam 0 ,mem_hid_handshake_timer_count 
+7de3 70409300 jam 0 ,mem_scan_mode 
+7de4 68014682 fetch 2 ,mem_ui_state_map 
+7de5 793ffe06 set0 ui_state_bt_discovery 
+7de6 60014682 store 2 ,mem_ui_state_map 
+7de7 20600000 rtn 
+
+check_51cmd_reconnect:
+7de8 7041ce05 jam hci_cmd_create_conn ,mem_hci_cmd 
+7de9 20600000 rtn 
+
+check_51cmd_disconnect:
+7dea 70007c07 jam lmp_detach ,mem_lmo_opcode2 
+7deb 7004ca13 jam other_end_terminated ,mem_disconn_reason_send 
+7dec 20600000 rtn 
+
+check_51cmd_enter_sniff_subrating:
+7ded 20600000 rtn 
+
+check_51cmd_exit_sniff_subrating:
+7dee 20600000 rtn 
+
+check_51cmd_sniff_test:
+7def 20600000 rtn 
+
+check_51cmd_pincode:
+7df0 7004d402 jam pincode_state_pincode_ready ,mem_pincode_state 
+7df1 20204d0a branch cmd_pair 
+
+check_51cmd_inq:
+7df2 20600000 rtn 
+
+check_51cmd_stop_inq:
+7df3 20600000 rtn 
+
+check_51cmd_adv:
+7df4 70436e01 jam on ,mem_le_adv_enable 
+7df5 70448400 jam adv_ind ,mem_le_adv_type 
+7df6 68014682 fetch 2 ,mem_ui_state_map 
+7df7 79207e0b set1 ui_state_ble_adv ,pdata 
+7df8 60014682 store 2 ,mem_ui_state_map 
+7df9 20600000 rtn 
+
+check_51cmd_stop_adv:
+7dfa 68014682 fetch 2 ,mem_ui_state_map 
+7dfb 793ffe0b set0 ui_state_ble_adv ,pdata 
+7dfc 60014682 store 2 ,mem_ui_state_map 
+7dfd 70436e00 jam off ,mem_le_adv_enable 
+7dfe 20600000 rtn 
+
+check_51cmd_direct_adv:
+7dff 70436e01 jam on ,mem_le_adv_enable 
+7e00 70448401 jam adv_direct_ind ,mem_le_adv_type 
+7e01 68014682 fetch 2 ,mem_ui_state_map 
+7e02 79207e0b set1 ui_state_ble_adv ,pdata 
+7e03 60014682 store 2 ,mem_ui_state_map 
+7e04 20600000 rtn 
+
+check_51cmd_stop_direct_adv:
+7e05 68014682 fetch 2 ,mem_ui_state_map 
+7e06 793ffe0b set0 ui_state_ble_adv ,pdata 
+7e07 60014682 store 2 ,mem_ui_state_map 
+7e08 70436e00 jam off ,mem_le_adv_enable 
+7e09 20600000 rtn 
+
+check_51cmd_le_disconnect:
+7e0a 58000014 setarg 20 
+7e0b 6001046d store 2 ,mem_le_superto 
+7e0c 600144ba store 2 ,mem_le_init_superto 
+7e0d 20205c92 branch le_send_terminate_ind_user_terminated 
+
+check_51cmd_ble_update_connect_param:
+7e0e 20205abf branch le_l2cap_tx_update_req 
+
+check_51cmd_led_off:
+7e0f da200000 arg 0 ,rega 
+7e10 20207d19 branch ui_led_off_global 
+
+check_51cmd_led_on:
+7e11 da200000 arg 0 ,rega 
+7e12 20207d14 branch ui_led_on_global 
+
+check_51cmd_led_start_blink:
+7e13 da200000 arg 0 ,rega 
+7e14 20207d1e branch ui_led_blink_start_global 
+
+check_51cmd_le_start_con:
+7e15 70436901 jam on ,mem_le_scan_enable 
+7e16 7041ce1b jam hci_cmd_le_create_conn ,mem_hci_cmd 
+7e17 20600000 rtn 
+
+check_51cmd_start_scan:
+7e18 70436901 jam on ,mem_le_scan_enable 
+7e19 20600000 rtn 
+
+check_51cmd_stop_scan:
+7e1a 70436900 jam off ,mem_le_scan_enable 
+7e1b 7041ce00 jam 0 ,mem_hci_cmd 
+7e1c 20600000 rtn 
+
+check_51cmd_hibernate:
+7e1d 680141eb fetch 2 ,mem_cb_before_hibernate 
+7e1e 20407f9c call callback_func 
+7e1f 6800c686 fetch 1 ,mem_ui_button_gpio 
+7e20 c07ffe23 beq ui_button_gpio_disable ,check_51cmd_hibernate_btn_disabled 
+7e21 1fe20400 copy pdata ,temp 
+7e22 204067fb call gpio_config_input 
+
+check_51cmd_hibernate_btn_disabled:
+7e23 20407d98 call ui_ipc_clean_all_fifo 
+7e24 20202b1f branch lpm_hibernate 
+
+check_51cmd_le_smp_sec_req:
+7e25 20205b02 branch le_send_smp_security_request 
+
+check_51cmd_role_switch:
+7e26 70007c34 jam lmp_slot_offset ,mem_lmo_opcode2 
+7e27 79200003 set1 mark_switch_initiated ,mark 
+7e28 24748000 nrtn master 
+7e29 70455b00 jam switch_flag_init ,mem_switch_flag 
+7e2a 70007c13 jam lmp_switch_req ,mem_lmo_opcode2 
+7e2b 6800816d fetch 1 ,mem_connection_options 
+7e2c 793ffe02 set0 connection_switch ,pdata 
+7e2d 6000816d store 1 ,mem_connection_options 
+7e2e 20600000 rtn 
+
+check_51cmd_bb_reconn_cancel:
+7e2f 18000e03 force page_length_timer ,queue 
+7e30 20207f07 branch timer_stop 
+
+check_51cmd_dhkey_not_accept:
+7e31 204062f8 call tid_set_reply 
+7e32 70007d41 jam lmp_dhkey_check ,mem_lmi_opcode2 
+7e33 20205f9d branch parse_lmp_dhkey_check_reject 
+
+ui_check_paring_button:
+7e34 6800c682 fetch 1 ,mem_ui_state_map 
+7e35 c4060000 rtnbit0 ui_state_btn_down 
+7e36 c4038000 rtnbit0 ui_state_bt_reconnect 
+7e37 20207e2f branch check_51cmd_bb_reconn_cancel 
+
+queue_init:
+7e38 68014218 fetch 2 ,mem_queue_ptr 
+7e39 1fe08a02 add pdata ,queue_offset_curr_num ,contw 
+7e3a 58000000 setarg 0 
+7e3b e0a18000 istore 3 ,contw 
+7e3c 20600000 rtn 
+
+queue_push:
+7e3d 20407fe9 call disable_user 
+7e3e 20407e69 call queue_full 
+7e3f 207a0000 rtn blank 
+7e40 68014218 fetch 2 ,mem_queue_ptr 
+7e41 1fe0a402 add pdata ,queue_offset_curr_num ,regb 
+7e42 ea488000 ifetcht 1 ,regb 
+7e43 18408401 increase 1 ,temp 
+7e44 e2488000 istoret 1 ,regb 
+7e45 efe88000 ifetcht 1 ,pdata 
+7e46 18427200 copy temp ,loopcnt 
+7e47 1fe0a404 add pdata ,queue_offset_write_ptr ,regb 
+7e48 ea408000 ifetch 1 ,regb 
+7e49 984ffe00 imul32 temp ,pdata 
+7e4a 98c08a00 iadd contr ,contw 
+7e4b 1a220c00 copy rega ,contr 
+
+calc_queue_next_ptr:
+7e4c 20407f01 call memcpy 
+7e4d 20407e6d call queue_get_size 
+7e4e 1fe0ffff pincrease -1 
+7e4f ea488000 ifetcht 1 ,regb 
+7e50 18408401 increase 1 ,temp 
+7e51 98410400 iand temp ,temp 
+7e52 e2488000 istoret 1 ,regb 
+7e53 20207fe7 branch enable_user 
+
+queue_pop:
+7e54 20407fe9 call disable_user 
+7e55 20407e65 call queue_empty 
+7e56 207a0000 rtn blank 
+7e57 68014218 fetch 2 ,mem_queue_ptr 
+7e58 1fe0a402 add pdata ,queue_offset_curr_num ,regb 
+7e59 ea488000 ifetcht 1 ,regb 
+7e5a 184085ff increase -1 ,temp 
+7e5b e2488000 istoret 1 ,regb 
+7e5c efe88000 ifetcht 1 ,pdata 
+7e5d 18427200 copy temp ,loopcnt 
+7e5e 1fe0a403 add pdata ,queue_offset_read_ptr ,regb 
+7e5f ea408000 ifetch 1 ,regb 
+7e60 984ffe00 imul32 temp ,pdata 
+7e61 98c08c00 iadd contr ,contr 
+7e62 18c08c01 increase 1 ,contr 
+7e63 1a220a00 copy rega ,contw 
+7e64 20207e4c branch calc_queue_next_ptr 
+
+queue_empty:
+7e65 68014218 fetch 2 ,mem_queue_ptr 
+7e66 1fe08c02 add pdata ,queue_offset_curr_num ,contr 
+7e67 e8c08000 ifetch 1 ,contr 
+7e68 20600000 rtn 
+
+queue_full:
+7e69 20407e6d call queue_get_size 
+7e6a e8c88000 ifetcht 1 ,contr 
+7e6b 98467e00 isub temp ,pdata 
+7e6c 20600000 rtn 
+
+queue_get_size:
+7e6d 68014218 fetch 2 ,mem_queue_ptr 
+7e6e 1fe08c01 add pdata ,queue_offset_length ,contr 
+7e6f e8c08000 ifetch 1 ,contr 
+7e70 20600000 rtn 
+
+right_shift_n:
+7e71 1f267c00 sub loopcnt ,0 ,null 
+7e72 20628000 rtn zero 
+
+right_shift_n_loop:
+7e73 1fe37e00 rshift pdata ,pdata 
+7e74 c2007e73 loop right_shift_n_loop 
+7e75 20600000 rtn 
+
+left_shift_n:
+7e76 18007e01 force 1 ,pdata 
+7e77 1f267c00 sub loopcnt ,0 ,null 
+7e78 20628000 rtn zero 
+
+left_shift_n_loop:
+7e79 1fe3fe00 lshift pdata ,pdata 
+7e7a c2007e79 loop left_shift_n_loop 
+7e7b 20600000 rtn 
+
+push_stack:
+7e7c 18a27e00 deposit contw 
+7e7d 60010abb store 2 ,mem_contw 
+7e7e 600c0aa2 storet 8 ,mem_temp 
+7e7f 19627e00 deposit timeup 
+7e80 60020aaa store 4 ,mem_timeup 
+7e81 20407e85 call push_stack_rega_b_c 
+7e82 18c27e00 deposit contr 
+7e83 60010ab9 store 2 ,mem_contr 
+7e84 20600000 rtn 
+
+push_stack_rega_b_c:
+7e85 1a227e00 deposit rega 
+7e86 60020aae store 4 ,mem_rega 
+7e87 1a427e00 deposit regb 
+7e88 60020ab2 store 4 ,mem_regb 
+7e89 1a627e00 deposit regc 
+7e8a 60018ab6 store 3 ,mem_regc 
+7e8b 20600000 rtn 
+
+pop_stack:
+7e8c 680c0aa2 fetcht 8 ,mem_temp 
+7e8d 68020aaa fetch 4 ,mem_timeup 
+7e8e 98001600 iforce timeup 
+7e8f 20407e95 call pop_stack_rega_b_c 
+7e90 68010abb fetch 2 ,mem_contw 
+7e91 98000a00 iforce contw 
+7e92 68010ab9 fetch 2 ,mem_contr 
+7e93 98000c00 iforce contr 
+7e94 20600000 rtn 
+
+pop_stack_rega_b_c:
+7e95 68020aae fetch 4 ,mem_rega 
+7e96 98002200 iforce rega 
+7e97 68020ab2 fetch 4 ,mem_regb 
+7e98 98002400 iforce regb 
+7e99 68018ab6 fetch 3 ,mem_regc 
+7e9a 98002600 iforce regc 
+7e9b 20600000 rtn 
+
+get_contw:
+7e9c 68010abb fetch 2 ,mem_contw 
+7e9d 1fe20a00 copy pdata ,contw 
+7e9e 20600000 rtn 
+
+get_contr:
+7e9f 68010ab9 fetch 2 ,mem_contr 
+7ea0 1fe20c00 copy pdata ,contr 
+7ea1 20600000 rtn 
+
+store_contw:
+7ea2 18a27e00 copy contw ,pdata 
+7ea3 60010abb store 2 ,mem_contw 
+7ea4 20600000 rtn 
+
+store_contr:
+7ea5 18c27e00 copy contr ,pdata 
+7ea6 60010ab9 store 2 ,mem_contr 
+7ea7 20600000 rtn 
+
+save_cont_pointers:
+7ea8 18a27e00 copy contw ,pdata 
+7ea9 60010a97 store 2 ,mem_hold_contw 
+7eaa 18c27e00 copy contr ,pdata 
+7eab 60010a95 store 2 ,mem_hold_contr 
+7eac 20600000 rtn 
+
+load_cont_pointers:
+7ead 68010a97 fetch 2 ,mem_hold_contw 
+7eae 1fe20a00 copy pdata ,contw 
+7eaf 68010a95 fetch 2 ,mem_hold_contr 
+7eb0 1fe20c00 copy pdata ,contr 
+7eb1 20600000 rtn 
+
+memcpy96:
+7eb2 20407ebd call memcpy32 
+
+memcpy64:
+7eb3 20407ebd call memcpy32 
+7eb4 20207ebd branch memcpy32 
+
+memcpy12:
+7eb5 20407eb9 call memcpy8 
+
+memcpy4:
+7eb6 e8c20000 ifetch 4 ,contr 
+7eb7 e0a20000 istore 4 ,contw 
+7eb8 20600000 rtn 
+
+memcpy8:
+7eb9 e8c40000 ifetch 8 ,contr 
+7eba e0a40000 istore 8 ,contw 
+7ebb 20600000 rtn 
+
+memcpy48:
+7ebc 20407ebf call memcpy16 
+
+memcpy32:
+7ebd 20407eb9 call memcpy8 
+
+memcpy24:
+7ebe 20407eb9 call memcpy8 
+
+memcpy16:
+7ebf 20407eb9 call memcpy8 
+7ec0 20207eb9 branch memcpy8 
+
+delay_10ms:
+7ec1 df20000a arg 10 ,loopcnt 
+
+delay_ms_wait:
+7ec2 20002ee0 nop 12000 
+7ec3 c2007ec2 loop delay_ms_wait 
+7ec4 20600000 rtn 
+
+bn_zero:
+7ec5 18007203 force 3 ,loopcnt 
+
+memset0:
+7ec6 18007e00 force 0 ,pdata 
+
+memset8:
+7ec7 e0a40000 istore 8 ,contw 
+7ec8 c2007ec7 loop memset8 
+7ec9 20600000 rtn 
+
+memset0_8:
+7eca 18007e00 force 0 ,pdata 
+7ecb e0a40000 istore 8 ,contw 
+7ecc 20600000 rtn 
+
+memset0_4:
+7ecd 18007e00 force 0 ,pdata 
+7ece e0a20000 istore 4 ,contw 
+7ecf 20600000 rtn 
+
+clear_mem_256:
+7ed0 18007204 force 4 ,loopcnt 
+7ed1 20207ec6 branch memset0 
+
+clear_mem_512:
+7ed2 18007208 force 8 ,loopcnt 
+7ed3 20207ec6 branch memset0 
+
+clear_mem:
+7ed4 1f227e00 deposit loopcnt 
+7ed5 207a0000 rtn blank 
+7ed6 58000000 setarg 0 
+
+clear_mem_loop:
+7ed7 e0a08000 istore 1 ,contw 
+7ed8 c2007ed7 loop clear_mem_loop 
+7ed9 20600000 rtn 
+
+clear_temp_block:
+7eda df200020 arg 32 ,loopcnt 
+7edb d8a00ac2 arg mem_temp_block0 ,contw 
+7edc 20207ed4 branch clear_mem 
+
+xor_loop:
+7edd ea620000 ifetch 4 ,regc 
+7ede ea2a0000 ifetcht 4 ,rega 
+7edf 9842fe00 ixor temp ,pdata 
+7ee0 e0a20000 istore 4 ,contw 
+7ee1 1a20a204 increase 4 ,rega 
+7ee2 1a60a604 increase 4 ,regc 
+7ee3 c2007edd loop xor_loop 
+7ee4 20600000 rtn 
+
+inverse_data:
+7ee5 477dc03f bpatchx patch3f_3 ,mem_patch3f 
+7ee6 1f227e00 copy loopcnt ,pdata 
+7ee7 1fe67c01 sub pdata ,1 ,null 
+7ee8 20610000 rtn positive 
+7ee9 9a20a400 iadd rega ,regb 
+7eea 1a40a5ff increase -1 ,regb 
+7eeb 1f237200 rshift loopcnt ,loopcnt 
+
+inverse_loop:
+7eec ea288000 ifetcht 1 ,rega 
+7eed ea408000 ifetch 1 ,regb 
+7eee e2208000 istore 1 ,rega 
+7eef e2488000 istoret 1 ,regb 
+7ef0 1a40a5ff increase -1 ,regb 
+7ef1 1a20a201 increase 1 ,rega 
+7ef2 c2007eec loop inverse_loop 
+7ef3 20600000 rtn 
+
+memcpy_fast:
+7ef4 1f227e00 deposit loopcnt 
+7ef5 207a0000 rtn blank 
+
+memcpy_fast_loop:
+7ef6 1f20f3f8 increase -8 ,loopcnt 
+7ef7 20417eb9 call memcpy8 ,positive 
+7ef8 20628000 rtn zero 
+7ef9 20217ef6 branch memcpy_fast_loop ,positive 
+7efa 1f20f208 increase 8 ,loopcnt 
+
+memcpy_fast_loop_four:
+7efb 1f20f3fc increase -4 ,loopcnt 
+7efc 20417eb6 call memcpy4 ,positive 
+7efd 20628000 rtn zero 
+7efe 20217efb branch memcpy_fast_loop_four ,positive 
+7eff 1f20f204 increase 4 ,loopcnt 
+7f00 20207f01 branch memcpy 
+
+memcpy:
+7f01 1f227e00 deposit loopcnt 
+7f02 207a0000 rtn blank 
+
+memcpy_loop:
+7f03 e8c08000 ifetch 1 ,contr 
+7f04 e0a08000 istore 1 ,contw 
+7f05 c2007f03 loop memcpy_loop 
+7f06 20600000 rtn 
+
+timer_stop:
+7f07 58000000 setarg 0 
+
+timer_init:
+7f08 1c430400 rshift clkn_bt ,temp 
+7f09 600a4094 storet 4 ,mem_last_clkn 
+7f0a d8a0419d arg mem_timers ,contw 
+7f0b 98000400 iforce temp 
+7f0c 18e3fe00 lshift queue ,pdata 
+7f0d 98a08a00 iadd contw ,contw 
+7f0e e0a90000 istoret 2 ,contw 
+7f0f 477e403f bpatchx patch3f_4 ,mem_patch3f 
+7f10 20600000 rtn 
+
+timer_check_timeout:
+7f11 d9600800 arg 0x800 ,timeup 
+7f12 19701600 lshift16 timeup ,timeup 
+7f13 9960fe00 iadd timeup ,pdata 
+7f14 20600000 rtn 
+
+timer_reinit:
+7f15 d8e00000 arg 0 ,queue 
+
+timer_check:
+7f16 477ec03f bpatchx patch3f_5 ,mem_patch3f 
+7f17 680a4094 fetcht 4 ,mem_last_clkn 
+7f18 1c437e00 rshift clkn_bt ,pdata 
+7f19 60024094 store 4 ,mem_last_clkn 
+7f1a 98467c00 isub temp ,null 
+7f1b 24417f11 ncall timer_check_timeout ,positive 
+7f1c 98461600 isub temp ,timeup 
+7f1d 19620400 copy timeup ,temp 
+7f1e d8c0419d arg mem_timers ,contr 
+7f1f 18c20a00 copy contr ,contw 
+7f20 df200010 arg 16 ,loopcnt 
+
+timer_loop:
+7f21 e8c10000 ifetch 2 ,contr 
+7f22 98467e00 isub temp ,pdata 
+7f23 20217f25 branch timer_counting ,positive 
+7f24 18007e00 force 0 ,pdata 
+
+timer_counting:
+7f25 e0a10000 istore 2 ,contw 
+7f26 c2007f21 loop timer_loop 
+7f27 d8c0419d arg mem_timers ,contr 
+7f28 18e3fe00 lshift queue ,pdata 
+7f29 98c08c00 iadd contr ,contr 
+7f2a e8c10000 ifetch 2 ,contr 
+7f2b 20600000 rtn 
+
+clk_add:
+7f2c 98408400 iadd temp ,temp 
+7f2d 18427200 copy temp ,loopcnt 
+7f2e 58000ea6 setarg 3750 
+7f2f 9f267e00 isub loopcnt ,pdata 
+7f30 20610000 rtn positive 
+7f31 1fe67e00 sub pdata ,0 ,pdata 
+7f32 18510400 rshift16 temp ,temp 
+7f33 18408401 increase 1 ,temp 
+7f34 18500400 lshift16 temp ,temp 
+7f35 98418400 ior temp ,temp 
+7f36 20600000 rtn 
+
+clk_diff_rt:
+7f37 20407f39 call clk_diff 
+7f38 20207f43 branch clk2rt 
+
+clk_diff:
+7f39 78547c00 disable user 
+7f3a 98467e00 isub temp ,pdata 
+7f3b 20217f3e branch clk_diff_pos ,positive 
+7f3c 78347c00 enable user 
+7f3d 1fe67e00 sub pdata ,0 ,pdata 
+
+clk_diff_pos:
+7f3e c4078000 rtnbit0 15 
+7f3f d85f0ea6 arg -61786 ,temp 
+7f40 9840fe00 iadd temp ,pdata 
+7f41 793ffe40 set0 64 ,pdata 
+7f42 20600000 rtn 
+
+clk2rt:
+7f43 98000c00 iforce contr 
+7f44 1ff17e00 rshift16 pdata ,pdata 
+7f45 d8400ea6 arg 3750 ,temp 
+7f46 984ffe00 imul32 temp ,pdata 
+7f47 98c0fe00 iadd contr ,pdata 
+7f48 20600000 rtn 
+
+clk2lpo:
+7f49 1fed7e00 lshift8 pdata ,pdata 
+7f4a 1ff27e00 lshift4 pdata ,pdata 
+7f4b 6809c16f fetcht 3 ,mem_clks_per_lpo 
+7f4c 9846fc00 idiv temp 
+7f4d 20407f86 call wait_div_end 
+7f4e 18078400 quotient temp 
+7f4f 20600000 rtn 
+
+clk2bt:
+7f50 d8400ea6 arg 3750 ,temp 
+7f51 9846fc00 idiv temp 
+7f52 20407f86 call wait_div_end 
+7f53 1807fe00 quotient pdata 
+7f54 1ff07e00 lshift16 pdata ,pdata 
+7f55 18070400 remainder temp 
+7f56 98418400 ior temp ,temp 
+7f57 20600000 rtn 
+
+string2dec_from_uart:
+7f58 d8400000 arg 0 ,temp 
+
+string2dec_from_uart_done:
+7f59 18422600 copy temp ,regc 
+7f5a e8608000 ifetch 1 ,contru 
+7f5b 20407f64 call uchar2dialog 
+7f5c 1a620400 copy regc ,temp 
+7f5d 20407f95 call swap 
+7f5e da40000a arg 10 ,regb 
+7f5f 9a4ffe00 imul32 regb ,pdata 
+7f60 9840fe00 iadd temp ,pdata 
+7f61 1fe20400 copy pdata ,temp 
+7f62 c2007f59 loop string2dec_from_uart_done 
+7f63 20600000 rtn 
+
+uchar2dialog:
+7f64 d840003a arg 0x3a ,temp 
+7f65 98467c00 isub temp ,null 
+7f66 24217f6d nbranch uchar2dialog_number ,positive 
+7f67 d8400061 arg 0x61 ,temp 
+7f68 98467c00 isub temp ,null 
+7f69 20217f70 branch uchar2dialog_a2f ,positive 
+7f6a d8400037 arg 0x37 ,temp 
+7f6b 98467e00 isub temp ,pdata 
+7f6c 20600000 rtn 
+
+uchar2dialog_number:
+7f6d d8400030 arg 0x30 ,temp 
+7f6e 98467e00 isub temp ,pdata 
+7f6f 20600000 rtn 
+
+uchar2dialog_a2f:
+7f70 d8400057 arg 0x57 ,temp 
+7f71 98467e00 isub temp ,pdata 
+7f72 20600000 rtn 
+
+pn9:
+7f73 18426000 copy temp ,alarm 
+7f74 580001ff setarg 0x1ff 
+7f75 18002400 force 0 ,regb 
+
+pn9_loop:
+7f76 1fe92200 rshift3 pdata ,rega 
+7f77 1a232200 rshift rega ,rega 
+7f78 9a22a200 ixor rega ,rega 
+7f79 2a2ffe00 isolate1 0 ,rega 
+7f7a 7920fe09 setflag true ,9 ,pdata 
+7f7b 18430400 rshift temp ,temp 
+7f7c 2feffe00 isolate1 0 ,pdata 
+7f7d 79208407 setflag true ,7 ,temp 
+7f7e 1fe37e00 rshift pdata ,pdata 
+7f7f 1a40a401 increase 1 ,regb 
+7f80 2a400e00 compare 0 ,regb ,0x7 
+7f81 2420ff76 nbranch pn9_loop ,true 
+7f82 e0a88000 istoret 1 ,contw 
+7f83 c2007f76 loop pn9_loop 
+7f84 1e020400 copy alarm ,temp 
+7f85 20600000 rtn 
+
+wait_div_end:
+7f86 207a8000 rtn modone 
+7f87 20207f86 branch wait_div_end 
+
+compare_loop:
+
+string_compare:
+7f88 ea208000 ifetch 1 ,rega 
+7f89 ea488000 ifetcht 1 ,regb 
+7f8a 98467c00 isub temp ,null 
+7f8b 24628000 nrtn zero 
+7f8c 1a20a201 increase 1 ,rega 
+7f8d 1a40a401 increase 1 ,regb 
+7f8e c2007f88 loop string_compare 
+7f8f 18007c00 force 0 ,null 
+7f90 20600000 rtn 
+
+ceiling:
+7f91 98467c00 isub temp ,null 
+7f92 24610000 nrtn positive 
+7f93 18427e00 deposit temp 
+7f94 20600000 rtn 
+
+swap:
+7f95 9840fe00 iadd temp ,pdata 
+7f96 98460400 isub temp ,temp 
+7f97 98467e00 isub temp ,pdata 
+7f98 20600000 rtn 
+
+clean_mem:
+7f99 df200200 arg 0x200 ,loopcnt 
+7f9a d8a04000 arg 0x4000 ,contw 
+7f9b 20207ec6 branch memset0 
+
+callback_func:
+7f9c 207a0000 rtn blank 
+7f9d 1fe27a00 copy pdata ,pc 
+
+wait_uarttx:
+7f9e 6811010e hfetch 2 ,core_uart_txitems 
+7f9f 243a7f9e nbranch wait_uarttx ,blank 
+7fa0 20600000 rtn 
+
+ice_break:
+7fa1 70820301 jam 0x1 ,core_ice_ctrl 
+7fa2 20600000 rtn 
+
+ice_setbp:
+7fa3 60110205 hstore 2 ,core_ice_break0 
+7fa4 68108203 hfetch 1 ,core_ice_ctrl 
+7fa5 79207e04 set1 4 ,pdata 
+7fa6 60108203 hstore 1 ,core_ice_ctrl 
+7fa7 20600000 rtn 
+
+ice_setbp2:
+7fa8 60110207 hstore 2 ,core_ice_break1 
+7fa9 68108203 hfetch 1 ,core_ice_ctrl 
+7faa 79207e06 set1 6 ,pdata 
+7fab 60108203 hstore 1 ,core_ice_ctrl 
+7fac 20600000 rtn 
+
+ice_set_write_bp:
+7fad 60110205 hstore 2 ,core_ice_break0 
+7fae 70820330 jam 0x30 ,core_ice_ctrl 
+7faf 20600000 rtn 
+
+test_enable_white:
+7fb0 68108043 hfetch 1 ,core_config 
+7fb1 793ffe04 set0 whiteoff_bit ,pdata 
+7fb2 60108043 hstore 1 ,core_config 
+7fb3 20600000 rtn 
+
+check_uart_tx_buff:
+7fb4 6811010e hfetch 2 ,core_uart_txitems 
+7fb5 d8400200 arg uart_air_control_threshold ,temp 
+
+pdata_sub_temp:
+7fb6 98467c00 isub temp ,null 
+7fb7 20600000 rtn 
+
+fifo_in:
+7fb8 477f403f bpatchx patch3f_6 ,mem_patch3f 
+7fb9 ea2c0000 ifetcht util_fifo_len ,rega 
+7fba 18417eff and temp ,0xff ,pdata 
+7fbb 243a7fbe nbranch fifo_in_push ,blank 
+7fbc 184cfe00 rshift8 temp ,pdata 
+7fbd e2240000 istore util_fifo_len ,rega 
+
+fifo_in_push:
+7fbe 1a20a207 increase util_fifo_len + util_fifo_offset ,rega 
+7fbf ea208000 ifetch 1 ,rega 
+7fc0 243a2a8c nbranch assert ,blank 
+7fc1 68008a99 fetch 1 ,mem_fifo_temp 
+7fc2 e2208000 istore 1 ,rega 
+7fc3 20600000 rtn 
+
+fifo_out:
+7fc4 477fc03f bpatchx patch3f_7 ,mem_patch3f 
+7fc5 df200008 arg util_fifo_len ,loopcnt 
+7fc6 ea240000 ifetch util_fifo_len ,rega 
+7fc7 207a0000 rtn blank 
+
+fifo_out_loop:
+7fc8 ea208000 ifetch 1 ,rega 
+7fc9 243a7fcd nbranch fifo_out_end ,blank 
+7fca 1a20a201 increase 1 ,rega 
+7fcb c2007fc8 loop fifo_out_loop 
+7fcc 20202a8c branch assert 
+
+fifo_out_end:
+7fcd d8400000 arg 0 ,temp 
+7fce e2288000 istoret 1 ,rega 
+7fcf 20600000 rtn 
+
+fifo_is_empty:
+7fd0 ea240000 ifetch util_fifo_len ,rega 
+7fd1 20600000 rtn 
+
+fifo_is_full:
+7fd2 ea208000 ifetch 1 ,rega 
+7fd3 20600000 rtn 
+
+fifo_is_near_full:
+7fd4 ea210000 ifetch 2 ,rega 
+7fd5 20600000 rtn 
+
+fifo_content_count:
+7fd6 d8400000 arg 0 ,temp 
+
+fifo_content_count_loop:
+7fd7 68008006 fetch 1 ,contr 
+7fd8 c2007fd7 loop fifo_content_count_loop ,blank 
+7fd9 18408401 increase 1 ,temp 
+7fda c2007fd7 loop fifo_content_count_loop 
+7fdb 18427e00 copy temp ,pdata 
+7fdc 20600000 rtn 
+
+not_greater_than:
+7fdd 98467c00 isub temp ,null 
+7fde 24610000 nrtn positive 
+7fdf 18427e00 copy temp ,pdata 
+7fe0 20600000 rtn 
+
+disable_positive:
+7fe1 18007dff force -1 ,null 
+7fe2 20600000 rtn 
+
+enable_positive:
+
+disable_zero:
+7fe3 18007c01 force 1 ,null 
+7fe4 20600000 rtn 
+
+enable_zero:
+7fe5 18007c00 force 0 ,null 
+7fe6 20600000 rtn 
+
+enable_user:
+7fe7 78347c00 enable user 
+7fe8 20600000 rtn 
+
+disable_user:
+7fe9 78547c00 disable user 
+7fea 20600000 rtn 
+
+enable_user2:
+7feb 78367c00 enable user2 
+7fec 20600000 rtn 
+
+disable_user2:
+7fed 78567c00 disable user2 
+7fee 20600000 rtn 
+
+disable_blank:
+7fef 58000001 setarg 1 
+7ff0 20600000 rtn 
+
+enable_blank:
+7ff1 58000000 setarg 0 
+7ff2 20600000 rtn 
+
+reverse_byte:
+7ff3 1f227e00 copy loopcnt ,pdata 
+7ff4 207a0000 rtn blank 
+7ff5 18c27e00 copy contr ,pdata 
+7ff6 9f20fe00 iadd loopcnt ,pdata 
+7ff7 1fe0ffff increase -1 ,pdata 
+7ff8 1fe20c00 copy pdata ,contr 
+
+reverse_loop:
+7ff9 e8c08000 ifetch 1 ,contr 
+7ffa 18c08dfe increase -2 ,contr 
+7ffb e0a08000 istore 1 ,contw 
+7ffc c2007ff9 loop reverse_loop 
+7ffd 20600000 rtn 
+org 0x10001
+
+z_entrance0:
+10001 c0000005  beq zcode_00 ,z_page_wait_fhs_reply_ok
+10002 c0008012  beq zcode_01 ,z_mouse_bb_disconnected
+10003 c0010028  beq zcode_02 ,z_hid_rx_process
+10004 20600000  rtn
+
+z_page_wait_fhs_reply_ok:
+10005 6800800e  fetch 1 ,mem_page_rcv_fhs
+10006 1fe0fe01  increase 1 ,pdata
+10007 6000800e  store 1 ,mem_page_rcv_fhs
+10008 20402435  call prepare_newconn
+
+z_master_newconn_loop:
+10009 7920002c  set1 mark_first_packet ,mark
+1000a 204022f2  call master_newconn_once
+1000b 202c0010  branch z_newconn_poll_responded ,sync
+1000c 793f802c  set0 mark_first_packet ,mark
+1000d 20402455  call new_conn_timeout
+1000e 243a0009  nbranch z_master_newconn_loop ,blank
+1000f 202020fc  branch page_restart
+
+z_newconn_poll_responded:
+10010 793f802c  set0 mark_first_packet ,mark
+10011 2020215f  branch newconn_poll_responded
+
+z_mouse_bb_disconnected:
+10012 70480800  jam 0 ,mem_mouse_enter_sniff_count
+10013 7041e30e  jam 0x0e ,mem_sniff_param_interval
+10014 204041e7  call mouse_bb_discon_clear_stack
+10015 68014208  fetch app_disc_rsn_size ,mem_app_disconn_reason
+10016 c283c1f5  bbit1 app_disc_ble ,mouse4_0_event_bb_disconn
+10017 c28033a9  bbit1 app_disc_by_button ,app_disconn_reason_clear
+10018 c280801c  bbit1 app_disc_after_pairing ,z_mouse_event_light_state_pairing
+10019 c281001f  bbit1 app_disc_after_reconn ,z_mouse_event_light_state_hibernate
+1001a c281801f  bbit1 app_disc_after_sniff ,z_mouse_event_light_state_hibernate
+1001b 202042b0  branch mouse_start_discovery
+
+z_mouse_event_light_state_pairing:
+1001c c282801f  bbit1 app_disc_after_handshake ,z_mouse_event_light_state_hibernate
+1001d c281801f  bbit1 app_disc_after_sniff ,z_mouse_event_light_state_hibernate
+1001e 202042b0  branch mouse_start_discovery
+
+z_mouse_event_light_state_hibernate:
+1001f 68014682  fetch 2 ,mem_ui_state_map
+10020 c28642b0  bbit1 ui_state_btn_down ,mouse_start_discovery
+10021 204033a9  call app_disconn_reason_clear
+10022 20400574  call p_mouse_check_key_gpio
+10023 c0038025  beq mouse_lmr_button ,z_mouse_null_enter_hibernate_enable
+10024 202033a7  branch app_bb_hibernate
+
+z_mouse_null_enter_hibernate_enable:
+10025 70479f01  jam 1 ,mem_mouse_null_enter_hibernate_flag
+10026 7047a028  jam 40 ,mem_mouse_null_enter_hibernate_timer
+10027 20600000  rtn
+
+z_hid_rx_process:
+10028 68010264  fetch 2 ,mem_l2cap_payload_ptr
+10029 1fe20c00  copy pdata ,contr
+1002a e8c08000  ifetch 1 ,contr
+1002b 6000cb04  store 1 ,mem_l2cap_rcv
+1002c 1fe1040f  and pdata ,0x0f ,temp
+1002d 1ff1fe00  rshift4 pdata ,pdata
+1002e c0038031  beq hid_type_set_protocol ,z_hid_rx_set_protocol
+1002f c0008038  beq hid_type_control ,z_hid_rx_process_hid_control
+10030 20204d39  branch hid_rx_process + 6
+
+z_hid_rx_set_protocol:
+10031 20404d53  call hid_rx_process_handshake
+10032 704b0500  jam 0 ,mem_mouse_bt_boot_mode
+10033 6800cb04  fetch 1 ,mem_l2cap_rcv
+10034 2feffe00  isolate1 0 ,pdata
+10035 20608000  rtn true
+10036 704b0501  jam 1 ,mem_mouse_bt_boot_mode
+10037 20600000  rtn
+
+z_hid_rx_process_hid_control:
+10038 18427e00  copy temp ,pdata
+10039 c002842c  beq hid_control_p_virtualcableunplug ,p_mouse_irtual_cable_unplug
+1003a 20204d41  branch hid_rx_process_hid_control + 2
+org 0x20001
+
+z_entrance1:
+20001 c008000f  beq zcode_10 ,z_send_lmp
+20002 c0088004  beq zcode_11 ,z_mouse4_0_check_reconn_target
+20003 20600000  rtn
+
+z_mouse4_0_check_reconn_target:
+20004 2040053f  call p_mouse_mode_bt_device1_multi_led_blink3s
+20005 704b6901  jam 1 ,mem_le_send_security_request_flag
+20006 7047a101  jam 1 ,mem_mouse_le_reconnect_flag
+20007 680146a8  fetch 2 ,mem_mouse_direct_timeout
+20008 600146ae  store 2 ,mem_mouse_direct_timer
+20009 2040047c  call p_mouse_store_eeprom_enable
+2000a 20403418  call app_lpm_mult_disable
+2000b d8c04390  arg mem_le_scan_data ,contr
+2000c 20400478  call p_le_adv_data_update
+2000d 70438f1f  jam 0x1f ,mem_le_scan_data_len
+2000e 20207df4  branch check_51cmd_adv
+
+z_send_lmp:
+2000f 78547c00  disable user
+20010 204062c1  call lmo_fifo_process
+20011 68008048  fetch 1 ,mem_lmp_to_send
+20012 207a0000  rtn blank
+20013 c2838018  bbit1 7 ,z_send_lmp_escape
+20014 c0018028  beq lmp_accepted ,z_send_lmp_accepted
+20015 c0188024  beq lmp_setup_complete ,z_send_lmp_setup_complete
+20016 c00b8026  beq lmp_sniff_req ,z_send_lmp_sniff_req
+20017 20206010  branch send_lmp0
+
+z_send_lmp_escape:
+20018 c042001b  beq lmp_ext_features_res ,z_send_lmpext_features_res
+20019 c041801e  beq lmp_ext_features_req ,z_send_lmpext_features_req
+2001a 2020603f  branch send_lmp_escape
+
+z_send_lmpext_features_res:
+2001b 20400021  call z_check_ssp_enable
+2001c 68008048  fetch 1 ,mem_lmp_to_send
+2001d 20206099  branch send_lmpext_features_res
+
+z_send_lmpext_features_req:
+2001e 20400021  call z_check_ssp_enable
+2001f 68008048  fetch 1 ,mem_lmp_to_send
+20020 2020610d  branch send_lmpext_features_req
+
+z_check_ssp_enable:
+20021 6800c65a  fetch 1 ,mem_ssp_enable
+20022 203a612b  branch ssp_disable ,blank
+20023 20206124  branch ssp_enable
+
+z_send_lmp_setup_complete:
+20024 704b0301  jam 1 ,mem_bt_send_lmp_setup_complete
+20025 202061c3  branch send_lmp_setup_complete
+
+z_send_lmp_sniff_req:
+20026 704b0b04  jam 4 ,mem_mouse_bt_send_first_package_timer
+20027 202061a4  branch send_lmp_sniff_req
+
+z_send_lmp_accepted:
+20028 18007e02  force 2 ,pdata
+20029 20406298  call msg_send_lmp
+2002a 68008049  fetch 1 ,mem_lmi_opcode
+2002b e0a08000  istore 1 ,contw
+2002c 6000cafc  store 1 ,mem_lmi_opcode_temp
+2002d 204062a7  call send_lmp_follow
+2002e 6800cafc  fetch 1 ,mem_lmi_opcode_temp
+2002f c0170031  beq lmp_max_slot_req ,z_send_lmp_accepted_max_slot_req
+20030 20206051  branch send_lmp_accepted + 7
+
+z_send_lmp_accepted_max_slot_req:
+20031 6800cb01  fetch 1 ,mem_bt_rcvd_switch_req_accept
+20032 207a0000  rtn blank
+20033 704b0100  jam 0 ,mem_bt_rcvd_switch_req_accept
+20034 6800cb03  fetch 1 ,mem_bt_send_lmp_setup_complete
+20035 c1810000  rtnne 2
+20036 704b0201  jam 1 ,mem_bt_send_max_slot_req_accept_after_switch
+20037 1c427e00  copy clkn_bt ,pdata
+20038 600204e9  store 4 ,mem_aurand_send_delay_time
+20039 20600000  rtn
+org 0x30001
+
+z_entrance2:
+30001 c0100004  beq zcode_20 ,z_le_update_param
+30002 c0108016  beq zcode_21 ,z_le_update_channel_map
+30003 20600000  rtn
+
+z_le_update_param:
+30004 2040000c  call z_mouse_le_conn_param_check
+30005 2020557d  branch le_update_param + 8
+
+z_mouse_le_lpm_mult_reinit:
+30006 6800c7c5  fetch 1 ,mem_lpm_mult_init
+30007 6000c172  store 1 ,mem_lpm_mult
+
+z_mouse_le_conn_param_lpm_enable:
+30008 7047c400  jam le_lpm_enable ,mem_mouse_le_conn_param_reject
+30009 20600000  rtn
+
+z_mouse_le_conn_param_lpm_disable:
+3000a 7047c401  jam le_lpm_disable ,mem_mouse_le_conn_param_reject
+3000b 20600000  rtn
+
+z_mouse_le_conn_param_check:
+3000c 6800c3d6  fetch 1 ,mem_le_new_conninterval
+3000d 1fe67c0c  sub pdata ,le_interval_15ms ,null
+3000e 2421000a  nbranch z_mouse_le_conn_param_lpm_disable ,positive
+3000f 6800c3d8  fetch 1 ,mem_le_new_connslavelatency
+30010 6808c7c5  fetcht 1 ,mem_lpm_mult_init
+30011 98467c00  isub temp ,null
+30012 20210006  branch z_mouse_le_lpm_mult_reinit ,positive
+30013 6800c3d8  fetch 1 ,mem_le_new_connslavelatency
+30014 6000c172  store 1 ,mem_lpm_mult
+30015 20200008  branch z_mouse_le_conn_param_lpm_enable
+
+z_le_update_channel_map:
+30016 6800843f  fetch 1 ,mem_le_state
+30017 c4030000  rtnbit0 lestate_update_map
+30018 2040001b  call z_le_channel_map_overflow_check
+30019 24740000  nrtn user
+3001a 202055a0  branch le_update_channel_map + 3
+
+z_le_channel_map_overflow_check:
+3001b 78347c00  enable user
+3001c 6800845a  fetch 1 ,mem_le_event_count + 1
+3001d 1ff1fe00  rshift4 pdata ,pdata
+3001e c1878000  rtnne 0x0f
+3001f 68008460  fetch 1 ,mem_le_instant + 1
+30020 1ff1fe00  rshift4 pdata ,pdata
+30021 c1800000  rtnne 0x00
+30022 20207fe9  branch disable_user
+org 0x40001
+
+z_entrance3:
+40001 c0180003  beq zcode_30 ,z_mouse_start_discovery
+40002 20600000  rtn
+
+z_mouse_start_discovery:
+40003 204002e0  call p_mouse_tx_power_init
+40004 704b6900  jam 0 ,mem_le_send_security_request_flag
+40005 704b6601  jam 1 ,mem_mouse_start_discovery_enable
+40006 70472001  jam mode_bt_device1 ,mem_device_flag
+40007 70479e00  jam 0 ,mem_mouse_clear_sensor_data_flag
+
+z_mouse_start_discovery_norandom:
+40008 68034b5d  fetch 6 ,mem_le_normal_lap
+40009 600344a0  store 6 ,mem_le_lap
+4000a 20403418  call app_lpm_mult_disable
+4000b 68014687  fetch 2 ,mem_discovery_timeout
+4000c 600146ac  store 2 ,mem_mouse_discovery_timer
+4000d 70016d06  jam 6 ,mem_connection_options
+4000e 58000000  setarg 0
+4000f 600146b0  store 2 ,mem_mouse_no_data_timer
+40010 600146ae  store 2 ,mem_mouse_direct_timer
+40011 2040047c  call p_mouse_store_eeprom_enable
+40012 204043ca  call mouse_bt_discovery_button_down_disable
+40013 20400346  call p_mouse_load_flash_device_info
+40014 6800c210  fetch 1 ,mem_xrecord_mode
+40015 1fe67c33  sub pdata ,rec_3_mode ,null
+40016 2042801b  call z3_check_51cmd_adv ,zero
+40017 6800c092  fetch 1 ,mem_device_option
+40018 2feffe00  isolate1 mode_3_mouse ,pdata
+40019 2040fddd  call check_51cmd_start_discovery ,true
+4001a 20200510  branch p_mouse_discovery_multi_led_blink
+
+z3_check_51cmd_adv:
+4001b 68034b5d  fetch 6 ,mem_le_normal_lap
+4001c 600344a0  store 6 ,mem_le_lap
+4001d 20400474  call p_mouse_le_adv_data_update
+4001e 20207df4  branch check_51cmd_adv
+org 0x50001
+
+z_entrance4:
+50001 c0200005  beq zcode_40 ,z_g24_start_24g_mode
+50002 c0208017  beq zcode_41 ,z_g24_auto_pair_start
+50003 c021001f  beq zcode_42 ,z_mouse_24g_pairing_button
+50004 20600000  rtn
+
+z_g24_start_24g_mode:
+50005 2040000e  call z_g24_factory_check
+50006 2034020c  branch p_g24_auto_pair_start ,user
+50007 79200026  set1 mark_24g ,mark
+50008 6800cd4b  fetch 1 ,mem_24g_conn_sm
+50009 79207e02  set1 state_24g_reconn ,pdata
+5000a 6000cd4b  store 1 ,mem_24g_conn_sm
+5000b 204001f4  call p_g24_syncword_crc8
+5000c 2040016e  call p_g24_ch
+5000d 2020001b  branch z_g24_auto_pair_timeout_init
+
+z_g24_factory_check:
+5000e df200002  arg 2 ,loopcnt
+5000f d8c04c21  arg mem_24g_addr ,contr
+50010 20407fe7  call enable_user
+50011 5800ffff  setarg 0xffff
+
+z4_pdata_0xff_check_loop:
+50012 e8c90000  ifetcht 2 ,contr
+50013 98467c00  isub temp ,null
+50014 2442ffe9  ncall disable_user ,zero
+50015 c2000012  loop z4_pdata_0xff_check_loop
+50016 20600000  rtn
+
+z_g24_auto_pair_start:
+50017 79200026  set1 mark_24g ,mark
+50018 6800cd4b  fetch 1 ,mem_24g_conn_sm
+50019 79207e01  set1 state_24g_pair ,pdata
+5001a 6000cd4b  store 1 ,mem_24g_conn_sm
+
+z_g24_auto_pair_timeout_init:
+5001b 58000708  setarg g24_disconn_nodata_timer
+5001c 60014d43  store 2 ,mem_24g_stop_g24_mode_timeout
+5001d 704d4200  jam 0 ,mem_24g_stop_g24_mode
+5001e 20600000  rtn
+
+z_mouse_24g_pairing_button:
+5001f 680246d3  fetch mouse_flag_len ,mem_mouse_flag
+50020 c4088000  rtnbit0 mouse_enable_24g
+50021 c3818000  rtnbit1 mosue_24g_pairing_flag
+50022 c6130000  rtnmark1 mark_24g
+50023 20404482  call mouse_devce_led_off
+50024 d8e00003  arg mosue_24g_pairing_flag ,queue
+50025 204043ce  call mouse_enable_function_flag
+50026 58000000  setarg 0
+50027 600146ae  store 2 ,mem_mouse_direct_timer
+50028 6000c6b4  store 1 ,mem_mouse_send_blank_timer
+50029 60014c26  store 2 ,mem_24g_check_dongle_times
+5002a 204042ca  call mouse_stop_discovery
+5002b 2020020c  branch p_g24_auto_pair_start
+org 0x60001
+
+z_entrance5:
+60001 c0280006  beq zcode_50 ,z_mouse_24g_pairing_complete
+60002 c028800c  beq zcode_51 ,z_mouse_24g_attempt_fail
+60003 c0290010  beq zcode_52 ,z_mouse_24g_attempt_success
+60004 c029801a  beq zcode_53 ,z_g24_reconn_dispatch
+60005 20600000  rtn
+
+z_mouse_24g_pairing_complete:
+60006 d8e00003  arg mosue_24g_pairing_flag ,queue
+60007 204043d2  call mouse_disable_function_flag
+60008 7046a700  jam 0 ,mem_mouse_move_flag
+60009 2040405d  call mouse_read_sensor_common
+6000a 204002e0  call p_mouse_tx_power_init
+6000b 20200010  branch z_mouse_24g_attempt_success
+
+z_mouse_24g_attempt_fail:
+6000c 704d3900  jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt
+6000d 204002e0  call p_mouse_tx_power_init
+6000e 2040020e  call p_g24_check_51cmd_stop_24g
+6000f 2020340a  branch app_enter_hibernate
+
+z_mouse_24g_attempt_success:
+60010 20400017  call z_g24_auto_pair_timeout_clear
+60011 2040050a  call p_mouse_null_enter_hibernate_disable
+60012 20403f8d  call mouse_no_data_timer_init
+60013 68024c21  fetch 4 ,mem_24g_addr
+60014 6002477b  store 4 ,mem_mouse_24g_addr
+60015 20404366  call mouse_cheak_select_24gdevice
+60016 20200317  branch p_mouse_store_flash_device_info
+
+z_g24_auto_pair_timeout_clear:
+60017 58000000  setarg 0
+60018 6001cd42  store 3 ,mem_24g_stop_g24_mode
+60019 20600000  rtn
+
+z_g24_reconn_dispatch:
+6001a 6800cd42  fetch 1 ,mem_24g_stop_g24_mode
+6001b c000add4  beq 1 ,g24_stop_24g_mode
+6001c 20400029  call z_g24_tx_attemp_data_prep
+6001d 204001be  call p_g24_transmit_receive_ack
+6001e 242c016e  nbranch p_g24_ch ,sync
+6001f 2437816e  nbranch p_g24_ch ,user3
+60020 6800cd4b  fetch 1 ,mem_24g_conn_sm
+60021 793ffe02  set0 state_24g_reconn ,pdata
+60022 6000cd4b  store 1 ,mem_24g_conn_sm
+
+z_g24_tx_attemp_dongle_succ:
+60023 704b4300  jam 0 ,mem_mouse_long_mult_flag
+60024 20402f20  call g24_app_tx_attempt_success
+60025 204001b8  call p_g24_txbuf_clear
+60026 2020036f  branch p_g24_transmit_by_interrupt_enable
+
+z_g24_store_dongle_addr:
+60027 68024bd9  fetch 4 ,mem_24g_rxpayload + 2
+60028 202001f3  branch p_g24_update_addr_and_synccrc8
+
+z_g24_tx_attemp_data_prep:
+60029 70119eff  jam 0xff ,mem_24g_common_temp
+6002a 6800cbfa  fetch 1 ,mem_24g_data_type
+6002b 6000919f  store 1 ,mem_24g_common_temp + 1
+6002c 68024c30  fetch 4 ,mem_24g_device_addr
+6002d 600211a0  store 4 ,mem_24g_common_temp + 2
+6002e d8400006  arg 6 ,temp
+6002f da20119e  arg mem_24g_common_temp ,rega
+60030 20400213  call p_g24_put_data_in_buff
+60031 20200225  branch p_g24_transmit_prep
+org 0x70001
+
+z_entrance6:
+
+z_g24_pair_dispatch:
+70001 6800cd42  fetch 1 ,mem_24g_stop_g24_mode
+70002 c000add4  beq 1 ,g24_stop_24g_mode
+70003 70119eff  jam 0xff ,mem_24g_common_temp
+70004 6800cbfa  fetch 1 ,mem_24g_data_type
+70005 6000919f  store 1 ,mem_24g_common_temp + 1
+70006 68024c30  fetch 4 ,mem_24g_device_addr
+70007 600211a0  store 4 ,mem_24g_common_temp + 2
+70008 d8400006  arg 6 ,temp
+70009 da20119e  arg mem_24g_common_temp ,rega
+7000a 20400213  call p_g24_put_data_in_buff
+7000b 20400225  call p_g24_transmit_prep
+7000c 204001be  call p_g24_transmit_receive_ack
+7000d 242c0026  nbranch z_g24_pair_txdata_retry ,sync
+7000e 24378026  nbranch z_g24_pair_txdata_retry ,user3
+7000f 704d4b00  jam 0 ,mem_24g_conn_sm
+70010 204001e8  call p_g24_ackpayload_parse
+70011 68024c21  fetch 4 ,mem_24g_addr
+70012 680a4d3e  fetcht 4 ,mem_24g_allpowerful_addr
+70013 98467c00  isub temp ,null
+70014 20228017  branch z_g24_auto_pair_skip_rx_length ,zero
+70015 6800cbf7  fetch 1 ,mem_24g_rxdata_length
+70016 207a0000  rtn blank
+
+z_g24_auto_pair_skip_rx_length:
+70017 204002e0  call p_mouse_tx_power_init
+70018 68024c21  fetch 4 ,mem_24g_addr
+70019 680a4c05  fetcht 4 ,mem_24g_paring_addr
+7001a 98467c00  isub temp ,null
+7001b 20228201  branch p_g24_start_pairing_sm1 ,zero
+7001c 68024c21  fetch 4 ,mem_24g_addr
+7001d 680a4c30  fetcht 4 ,mem_24g_device_addr
+7001e 98467c00  isub temp ,null
+7001f 20428024  call z7_g24_store_dongle_addr ,zero
+70020 704b4300  jam 0 ,mem_mouse_long_mult_flag
+70021 20402f20  call g24_app_tx_attempt_success
+70022 204001b8  call p_g24_txbuf_clear
+70023 2020036f  branch p_g24_transmit_by_interrupt_enable
+
+z7_g24_store_dongle_addr:
+70024 68024bd9  fetch 4 ,mem_24g_rxpayload + 2
+70025 202001f3  branch p_g24_update_addr_and_synccrc8
+
+z_g24_pair_txdata_retry:
+
+z_g24_pair_txdata_switch:
+70026 6800cd37  fetch 1 ,mem_24g_auto_paring_switch
+70027 1fe0fe01  increase 1 ,pdata
+70028 1fe17e03  and_into 3 ,pdata
+70029 6000cd37  store 1 ,mem_24g_auto_paring_switch
+7002a c000002d  beq 0 ,z_g24_auto_pair_first_attemp
+7002b c0010037  beq 2 ,z_g24_auto_pair_all_powerful
+7002c 202001ef  branch p_g24_pair_init
+
+z_g24_auto_pair_first_attemp:
+7002d 204002e0  call p_mouse_tx_power_init
+7002e 68024c30  fetch 4 ,mem_24g_device_addr
+7002f 60024c21  store 4 ,mem_24g_addr
+70030 6800cd45  fetch 1 ,mem_24g_pair_current_ch_num
+70031 6000cc04  store 1 ,mem_24g_current_ch_number
+70032 20400035  call z_g24_ch_syncword_crc8_init
+70033 6008cd45  storet 1 ,mem_24g_pair_current_ch_num
+70034 20600000  rtn
+
+z_g24_ch_syncword_crc8_init:
+70035 204001f4  call p_g24_syncword_crc8
+70036 2020016e  branch p_g24_ch
+
+z_g24_auto_pair_all_powerful:
+70037 7041de20  jam tx_power_pair ,mem_tx_power
+70038 68024d3e  fetch 4 ,mem_24g_allpowerful_addr
+70039 60024c21  store 4 ,mem_24g_addr
+7003a 6800cd46  fetch 1 ,mem_24g_powerful_current_ch_num
+7003b 6000cc04  store 1 ,mem_24g_current_ch_number
+7003c 20400035  call z_g24_ch_syncword_crc8_init
+7003d 6008cd46  storet 1 ,mem_24g_powerful_current_ch_num
+7003e 20600000  rtn
+org 0x80001
+
+z_entrance7:
+80001 c0380003  beq zcode_70 ,z_mouse_irtual_cable_unplug
+80002 20600000  rtn
+
+z_mouse_irtual_cable_unplug:
+80003 5fffffff  setarg -1
+80004 60030040  store 6 ,mem_plap
+80005 70018533  jam rec_3_mode ,mem_record_bt_mode
+80006 704b70ff  jam 0xff ,mem_mouse_fast_conn_flag
+80007 204042fb  call mouse_before_store_reconn_info
+80008 704721ff  jam 0xff ,mem_device1_type
+80009 20200317  branch p_mouse_store_flash_device_info
+org 0x90001
+
+z_entrance8:
+90001 c0400003  beq zcode_80 ,z_mouse_setting_config
+90002 20600000  rtn
+
+z_mouse_setting_config:
+90003 680240a0  fetch 4 ,mem_lap
+90004 60024c30  store 4 ,mem_24g_device_addr
+90005 20403e6e  call mouse_gpio_init
+90006 2040053c  call p_mouse_multi_led_gpio_set_float
+90007 6808cb46  fetcht 1 ,mem_flash_ncs_gpio
+90008 2040680e  call gpio_config_output
+90009 20403e1e  call mouse_param_init
+9000a 20400014  call z_mouse_bt_sdp_update
+9000b 58000000  setarg 0
+9000c 60014154  store 2 ,mem_lpm_interval
+9000d 204068a2  call load_adc_init
+9000e 20403e54  call mouse_adc_init
+9000f 20405810  call le_set_config_fixed_ltk
+90010 20405839  call le_set_justwork
+90011 2040582c  call le_set_fixed_ltk
+90012 20405818  call le_set_config_read_authentication
+90013 2020030a  branch p_mouse_load_flash_info_check
+
+z_mouse_bt_sdp_update:
+90014 204074b9  call enable_authrom
+90015 d8c08c00  arg 0x8c00 ,contr
+90016 d8a04876  arg mem_mouse_uuid_list ,contw
+90017 df200171  arg 369 ,loopcnt
+90018 20407f01  call memcpy
+90019 580f0209  setarg 0x0f0209
+9001a e0a18000  istore 3 ,contw
+9001b 58120009  setarg 0x120009
+9001c e0a18000  istore 3 ,contw
+9001d 58100209  setarg 0x100209
+9001e e0a18000  istore 3 ,contw
+9001f 58000009  setarg 0x000009
+90020 e0a18000  istore 3 ,contw
+90021 d8c08d71  arg 0x8d71 ,contr
+90022 df200109  arg 265 ,loopcnt
+90023 20407f01  call memcpy
+90024 70488d00  jam 0 ,mem_mouse_uuid_list + 23
+90025 7048856d  jam 0x6d ,mem_mouse_uuid_list + 15
+90026 5800401f  setarg 0x401f
+90027 600149db  store 2 ,mem_mouse_uuid_list + 357
+90028 58006d04  setarg 0x6d04
+90029 60014a44  store 2 ,mem_mouse_uuid_list + 462
+9002a 580016b0  setarg 0x16b0
+9002b 60014a4a  store 2 ,mem_mouse_uuid_list + 468
+9002c 58004876  setarg mem_mouse_uuid_list
+9002d 60014575  store 2 ,mem_ui_uuid_table
+9002e 20600000  rtn
+org 0xa0001
+
+z_entrance9:
+a0001 c0480004  beq zcode_90 ,z_g24_pairing_sm
+a0002 c048801e  beq zcode_91 ,z_g24_paring_mode
+a0003 20600000  rtn
+
+z_g24_pairing_sm:
+a0004 6800cbfe  fetch 1 ,mem_24g_ensure
+a0005 c000ffe7  beq ensure_on_24g ,enable_user
+a0006 6800cc09  fetch 1 ,mem_24g_pairing_sm
+a0007 c000800b  beq state_24g_pairing_1 ,z_g24_pairing_sm_1
+a0008 c001000e  beq state_24g_pairing_2 ,z_g24_pairing_sm_2
+a0009 c0018011  beq state_24g_pairing_3 ,z_g24_pairing_sm_3
+a000a 20202a8c  branch assert
+
+z_g24_pairing_sm_1:
+a000b 704c0911  jam state_24g_pairing_1_waiting_ack ,mem_24g_pairing_sm
+a000c 70119eaa  jam 0xaa ,mem_24g_common_temp
+a000d 20200013  branch z_g24_pairing_sm_common
+
+z_g24_pairing_sm_2:
+a000e 704c0912  jam state_24g_pairing_2_waiting_ack ,mem_24g_pairing_sm
+a000f 70119e55  jam 0x55 ,mem_24g_common_temp
+a0010 20200013  branch z_g24_pairing_sm_common
+
+z_g24_pairing_sm_3:
+a0011 704c0913  jam state_24g_pairing_3_waiting_ack ,mem_24g_pairing_sm
+a0012 70119e22  jam 0x22 ,mem_24g_common_temp
+
+z_g24_pairing_sm_common:
+a0013 6800cbfa  fetch 1 ,mem_24g_data_type
+a0014 1fe17e07  and_into bits_data ,pdata
+a0015 6000919f  store 1 ,mem_24g_common_temp + 1
+a0016 68024c30  fetch 4 ,mem_24g_device_addr
+a0017 600211a0  store 4 ,mem_24g_common_temp + 2
+
+z_g24_put_pairing_data_in_buff:
+a0018 7011a400  jam 0 ,mem_24g_common_temp + 6
+a0019 da20119e  arg mem_24g_common_temp ,rega
+a001a d8400007  arg 7 ,temp
+a001b 20400213  call p_g24_put_data_in_buff
+a001c 20400183  call p_g24_txdata_enable_tx
+a001d 20207fe7  branch enable_user
+
+z_g24_paring_mode:
+a001e 6800cc09  fetch 1 ,mem_24g_pairing_sm
+a001f c17f8000  rtneq state_24g_pairing_success
+a0020 c0088024  beq state_24g_pairing_1_waiting_ack ,z_g24_pairing_sm_1_waiting_ack
+a0021 c0090026  beq state_24g_pairing_2_waiting_ack ,z_g24_pairing_sm_2_waiting_ack
+a0022 c0098028  beq state_24g_pairing_3_waiting_ack ,z_g24_pairing_sm_3_waiting_ack
+a0023 20600000  rtn
+
+z_g24_pairing_sm_1_waiting_ack:
+a0024 704c0902  jam state_24g_pairing_2 ,mem_24g_pairing_sm
+a0025 202001b4  branch p_g24_transmit_abandon
+
+z_g24_pairing_sm_2_waiting_ack:
+a0026 704c0903  jam state_24g_pairing_3 ,mem_24g_pairing_sm
+a0027 202001b4  branch p_g24_transmit_abandon
+
+z_g24_pairing_sm_3_waiting_ack:
+a0028 704c09ff  jam state_24g_pairing_success ,mem_24g_pairing_sm
+a0029 700a9939  jam bt_evt_24g_pairing_complete ,mem_fifo_temp
+a002a 20407d86  call ui_ipc_send_event
+a002b 68024bd9  fetch 4 ,mem_24g_rxpayload + 2
+a002c 204001f3  call p_g24_update_addr_and_synccrc8
+a002d 202001b4  branch p_g24_transmit_abandon
+org 0xb0001
+
+z_entrancea:
+b0001 c050002a  beq zcode_a0 ,z_mouse_before_hibernate
+b0002 c0508006  beq zcode_a1 ,z_mouse_le_conn_param_update_rsp_recieved
+b0003 c051001b  beq zcode_a2 ,z_mouse_le_bb_disconnected
+b0004 c0518014  beq zcode_a3 ,z_mouse_bb_event_reconn_timeout
+b0005 20600000  rtn
+
+z_mouse_le_conn_param_update_rsp_recieved:
+b0006 68014509  fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result
+b0007 c1000000  rtneq ble_signaling_connect_parameter_update_accepted
+b0008 68008441  fetch 1 ,mem_le_tsniff
+b0009 1feb7e00  rshift2 pdata ,pdata
+b000a 1fe67c0c  sub pdata ,le_interval_15ms ,null
+b000b 20210012  branch z_mouse_le_conn_param_update_rsp_not_accepted ,positive
+b000c 58000009  setarg le_interval_11_25ms
+b000d 60014496  store 2 ,mem_le_interval_min
+b000e 60014498  store 2 ,mem_le_interval_min + 2
+b000f 20400424  call p_app_updata_le_param
+b0010 7047c401  jam le_lpm_disable ,mem_mouse_le_conn_param_reject
+b0011 20600000  rtn
+
+z_mouse_le_conn_param_update_rsp_not_accepted:
+b0012 704b5c01  jam 1 ,mem_mouse_le_updata_not_accepted_flag
+b0013 202005f9  branch p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset
+
+z_mouse_bb_event_reconn_timeout:
+
+z_mouse_bb_event_reconn_failed:
+b0014 68014682  fetch 2 ,mem_ui_state_map
+b0015 c3860000  rtnbit1 ui_state_btn_down
+b0016 c3830000  rtnbit1 ui_state_bt_discovery
+b0017 c3858000  rtnbit1 ui_state_ble_adv
+b0018 680246d3  fetch mouse_flag_len ,mem_mouse_flag
+b0019 c3828000  rtnbit1 mouse_bt_discovery_button_down_flag
+b001a 202033a7  branch app_bb_hibernate
+
+z_mouse_le_bb_disconnected:
+b001b 704b6a00  jam 0 ,mem_mouse_le_bb_connected_flag
+b001c 58000007  setarg le_interval_8_75ms
+b001d 60014496  store 2 ,mem_le_interval_min
+b001e 60014498  store 2 ,mem_le_interval_min + 2
+b001f 7047c400  jam le_lpm_enable ,mem_mouse_le_conn_param_reject
+b0020 70479e00  jam 0 ,mem_mouse_clear_sensor_data_flag
+b0021 204003ac  call p_mouse_data_init
+b0022 20405816  call le_clr_config_more_data
+b0023 204041d9  call mouse_bb_disconnected
+b0024 6800cb66  fetch 1 ,mem_mouse_start_discovery_enable
+b0025 207a0000  rtn blank
+
+z_check_51cmd_adv:
+b0026 68034b5d  fetch 6 ,mem_le_normal_lap
+b0027 600344a0  store 6 ,mem_le_lap
+b0028 20400474  call p_mouse_le_adv_data_update
+b0029 20207df4  branch check_51cmd_adv
+
+z_mouse_before_hibernate:
+b002a 68120138  hfetch 4 ,core_lpm_ctrl
+b002b 79207e1a  set1 26 ,pdata
+b002c 6012004c  hstore 4 ,core_lpm_reg
+b002d 20402c21  call lpm_write_ctrl
+b002e 204074bd  call disable_authrom
+b002f 20404482  call mouse_devce_led_off
+b0030 20403e9f  call mouse_before_hibernate_wheel_gpio_set
+b0031 204000ef  call p_mouse_setgpio_hibernate
+b0032 2040034c  call p_flash_deep_power_down
+b0033 68108081  hfetch 1 ,core_gpio_sel1
+b0034 1fe17ef7  and pdata ,0xf7 ,pdata
+b0035 60108081  hstore 1 ,core_gpio_sel1
+b0036 6810807f  hfetch 1 ,core_gpio_pd3
+b0037 79207e00  set1 0 ,pdata
+b0038 6010807f  hstore 1 ,core_gpio_pd3
+b0039 680400a1  fetch 8 ,mem_gpio_wakeup_low
+b003a 793ffe14  set0 20 ,pdata
+b003b 600400a1  store 8 ,mem_gpio_wakeup_low
+b003c 6808c6e7  fetcht 1 ,mem_dpi_button_gpio
+b003d 2040058c  call p_gpio_set_input_pd
+b003e 680400a1  fetch 8 ,mem_gpio_wakeup_low
+b003f 79207e34  set1 52 ,pdata
+b0040 600400a1  store 8 ,mem_gpio_wakeup_low
+b0041 20600000  rtn
+org 0xc0001
+
+z_entranceb:
+c0001 c0580007  beq zcode_b0 ,z_mouse_le_bb_event_connected
+c0002 c058801d  beq zcode_b1 ,z_mouse_sniff_not_accept
+c0003 c0590023  beq zcode_b2 ,z_mouse_enter_sniff_check
+c0004 c0598028  beq zcode_b3 ,z_mouse_le_ll_start_encryt
+c0005 c05a0030  beq zcode_b4 ,z_mouse_bb_event_disconnected
+c0006 20600000  rtn
+
+z_mouse_le_bb_event_connected:
+c0007 58000000  setarg 0
+c0008 6001cb63  store 3 ,mem_le_switch_adv_flag
+c0009 df200003  arg 3 ,loopcnt
+c000a d8c044a0  arg mem_le_lap ,contr
+c000b 20400016  call z_pdata_0xff_check
+c000c 24540354  ncall p_mouse_fast_conn_quit ,user
+c000d 704b6a01  jam 1 ,mem_mouse_le_bb_connected_flag
+c000e 6800c7a1  fetch 1 ,mem_mouse_le_reconnect_flag
+c000f 243a0011  nbranch z_mouse_le_bb_event_connected_next ,blank
+c0010 704b6814  jam 0x14 ,mem_mouse_send_secutiry_request_timer
+
+z_mouse_le_bb_event_connected_next:
+c0011 704b7200  jam 0 ,mem_mouse_le_not_tx_disconn
+c0012 704b6600  jam 0 ,mem_mouse_start_discovery_enable
+c0013 2040050a  call p_mouse_null_enter_hibernate_disable
+c0014 204003ac  call p_mouse_data_init
+c0015 202041c3  branch mouse_le_bb_event_connected
+
+z_pdata_0xff_check:
+c0016 20407fe7  call enable_user
+c0017 5800ffff  setarg 0xffff
+
+z_pdata_0xff_check_loop:
+c0018 e8c90000  ifetcht 2 ,contr
+c0019 98467c00  isub temp ,null
+c001a 2442ffe9  ncall disable_user ,zero
+c001b c2000018  loop z_pdata_0xff_check_loop
+c001c 20600000  rtn
+
+z_mouse_sniff_not_accept:
+c001d 6800c808  fetch 1 ,mem_mouse_enter_sniff_count
+c001e c1010000  rtneq 2
+c001f 1fe0fe01  increase 1 ,pdata
+c0020 6000c808  store 1 ,mem_mouse_enter_sniff_count
+c0021 7041e312  jam 0x12 ,mem_sniff_param_interval
+c0022 2020340e  branch app_bt_enter_sniff
+
+z_mouse_enter_sniff_check:
+c0023 6800c808  fetch 1 ,mem_mouse_enter_sniff_count
+c0024 c1810000  rtnne 2
+c0025 70480800  jam 0 ,mem_mouse_enter_sniff_count
+c0026 7041e30e  jam 0x0e ,mem_sniff_param_interval
+c0027 2020340e  branch app_bt_enter_sniff
+
+z_mouse_le_ll_start_encryt:
+c0028 6800c7a1  fetch 1 ,mem_mouse_le_reconnect_flag
+c0029 c000802c  beq 1 ,z_mouse_le_ll_reconn_start_encryt
+c002a 7046c614  jam 20 ,mem_le_start_encrypt_timer
+c002b 2020002e  branch z_mouse_le_ll_enable_start_enc_flag
+
+z_mouse_le_ll_reconn_start_encryt:
+c002c 20400424  call p_app_updata_le_param
+c002d 7046c60a  jam 10 ,mem_le_start_encrypt_timer
+
+z_mouse_le_ll_enable_start_enc_flag:
+c002e d8e00001  arg ll_start_enc_flag ,queue
+c002f 202041b9  branch mouse_le_enable_connect_flag
+
+z_mouse_bb_event_disconnected:
+c0030 704b0100  jam 0 ,mem_bt_rcvd_switch_req_accept
+c0031 704b0300  jam 0 ,mem_bt_send_lmp_setup_complete
+c0032 704b0c00  jam 0 ,mem_mouse_bt_send_first_package_flag
+c0033 202041d9  branch mouse_bb_disconnected
+ branch mouse_bb_disconnected
Index: DpiSwitch/output/romcode.rom
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/output/romcode.rom	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/output/romcode.rom	(working copy)
@@ -0,0 +1,25124 @@
+20402abc
+44804000
+20800000
+2040640d
+2040296c
+204065a3
+20402a96
+20404d6a
+4480c000
+20406a03
+20405cf6
+20407ccc
+204032d8
+2455e89c
+44814000
+2055b2e3
+2040756a
+2055ab41
+4481c000
+204076dc
+20407aaf
+2040756d
+2040535c
+44824000
+20402038
+204032ed
+2040208f
+204022f8
+2040236a
+20402021
+20402b6a
+20402c72
+20202012
+20402026
+c6848000
+793f8009
+20402223
+202053ce
+4482c000
+2040225e
+2422a02f
+2040220a
+1a208c01
+e8c08000
+c2805360
+c280a166
+202023cf
+2040222b
+1f227c00
+20628000
+2040220a
+68008030
+c281a0d3
+68008031
+c280a166
+202023cf
+6800c1ce
+207a0000
+c000a048
+c001204d
+c001a050
+c002a055
+c00da045
+20402257
+20628000
+2040225a
+20628000
+7041ce00
+20600000
+70049b1b
+7041ce00
+20600000
+7920001c
+793f801e
+70008fff
+70008d1f
+20202043
+793f801c
+18003600
+20202043
+2040225a
+20628000
+18000401
+70016e05
+2020205c
+44834000
+680341d0
+203a2043
+70468101
+70005503
+2020205b
+18000425
+4483c000
+680080f1
+203a2062
+1fe9fe00
+1ff27e00
+1fe0ffff
+6000c0a6
+600080f0
+70008e1f
+793f800c
+2040223b
+2422a083
+20402a6f
+60008077
+6008807c
+680341d0
+60030040
+44844001
+20407f15
+18007e00
+2841fe01
+7d20fe05
+79207e03
+60008030
+700a9903
+20407d86
+18007e00
+7920fe04
+6000804c
+58000000
+79207e01
+60008031
+7834fc00
+20402223
+7854fc00
+18000e03
+680140b9
+20407f08
+20202043
+4484c001
+680341d0
+60030040
+2841fe01
+2020a089
+20202043
+d8a00101
+df200008
+20407ec6
+700a9904
+20407d86
+20202043
+c68e0000
+18000e01
+20407f16
+7d3a001c
+243a2095
+20600000
+44854001
+680940bb
+18000e04
+2040271c
+20740000
+204028a4
+18004800
+20618000
+793f800b
+793f8000
+1c40c201
+280ffe1e
+7920c802
+2c200400
+2420a0be
+4485c001
+68008012
+1fe0fe01
+60008012
+204028d8
+204028d2
+204028f2
+20402a51
+20402a56
+20402a64
+2040264d
+204020b1
+2020209c
+44864001
+6800808d
+1fe0ffff
+6000808d
+20610000
+70008d1f
+6800808f
+1fe0ffff
+6000808f
+20610000
+7940001e
+70008fff
+20600000
+4486c001
+204028d8
+204028cc
+204028f2
+20402a5b
+204029eb
+20402a0d
+202c20c8
+204020b1
+2020209f
+44874001
+204029bb
+20402a6b
+2040251e
+793f8001
+c6858000
+4487c001
+68008013
+1fe0fe01
+60008013
+20600000
+44884002
+7834fc00
+78387c00
+680140b5
+203a20db
+18000e08
+20407f16
+247a0000
+4488c002
+680940b7
+18000e28
+2040271c
+20342114
+18000e03
+20407f16
+243a20f0
+6800804c
+c28220e6
+202020e9
+d8a00101
+df200008
+20407ec6
+44894002
+70003000
+20405cf7
+70468100
+700a9913
+20407d86
+20202114
+4489c002
+18001600
+34730200
+680080f2
+1fe0ffff
+9c42fe00
+2fe00600
+2420a0f0
+18827e00
+60008181
+18004c00
+18004800
+448a4002
+2021a114
+204028dc
+d9600600
+34730200
+448ac002
+680200f2
+98004200
+1fe0fe01
+600200f2
+280ffe0c
+7920c802
+2c200400
+2420a128
+6800800c
+1fe0fe01
+6000800c
+204028d2
+20402a51
+20402a56
+20402a64
+2040264d
+2040211a
+202020fc
+448b4002
+7854fc00
+680140b5
+207a0000
+18000e08
+20207f08
+448bc002
+6800808e
+1fe0ffff
+6000808e
+20610000
+70008e1f
+680080f0
+1fe0ffff
+600080f0
+20610000
+7940000c
+6800c0a6
+600080f0
+20600000
+448c4003
+204028cc
+20402a5b
+204029eb
+20402a0d
+202c2130
+2040211a
+20202101
+2040264d
+6800800d
+1fe0fe01
+6000800d
+18003600
+680200f2
+448cc003
+20402a4f
+204028dc
+1cc0cc01
+1c2143fd
+1c8149fc
+204028d2
+20402a51
+20402a56
+20402a64
+1c427e00
+60020161
+18000800
+18000202
+20402a6b
+20402766
+448d4003
+20402a4d
+1c21c202
+1c8149fc
+204028cc
+20402a5b
+204029eb
+20402a0d
+204c264d
+202c2155
+68008010
+203a20fc
+1fe0ffff
+60008010
+20202136
+448dc003
+6800800e
+1fe0fe01
+6000800e
+20402435
+204022f2
+202c215f
+20402455
+243a215a
+202020fc
+448e4003
+68008030
+793ffe03
+60008030
+20402440
+7854fc00
+20600000
+448ec003
+7834fc00
+78387c00
+204021e1
+20740000
+20402c69
+20402a4f
+1c40c201
+204028e2
+18004803
+20406cc2
+20402489
+204028d2
+20402a51
+20402a56
+20402a64
+20402762
+448f4003
+20405d08
+204022e4
+2436a180
+20402a88
+20402728
+6800800f
+1fe0fe01
+6000800f
+448fc003
+20406caa
+2040218b
+24748000
+204026f3
+243a2188
+7854fc00
+20600000
+20402489
+204022da
+20202177
+2036a18e
+20402a7f
+2021219c
+204021a7
+2434219c
+6800804c
+c4020000
+c3818000
+6800804b
+c3818000
+204021ae
+247a0000
+6800816e
+1fe0ffff
+6000816e
+247a0000
+20206006
+44904004
+2040245d
+7854fc00
+6800804c
+c28221a2
+20600000
+6800804c
+c3818000
+d8a00101
+df200008
+20207ec6
+4490c004
+78347c00
+6800804b
+c4018000
+204021ae
+247a0000
+20207fe9
+68008072
+1fe0ffff
+60008072
+20600000
+44914004
+68008030
+c283a1bb
+680089b5
+203a21bb
+7009b500
+700a9918
+20407d86
+202021bb
+4491c004
+20402254
+68008030
+79207e07
+60008030
+7041bd01
+68008055
+c08b21c3
+20600000
+7009b501
+68008030
+793ffe07
+60008030
+20600000
+44924004
+78547c00
+68010032
+d840ffff
+98467c00
+24628000
+68020034
+203821d3
+9d067e00
+202021d4
+9c467e00
+1fe67c04
+24610000
+18007e00
+60010032
+20207fe7
+1fe20400
+4492c004
+600a0034
+70455b01
+5800ffff
+60010032
+70007301
+20600000
+44934004
+204021c9
+24740000
+78547c00
+70001120
+793f800b
+20402a4f
+204022e6
+c505a1f4
+20402455
+243a21e7
+4493c004
+78547c00
+1c427e00
+600240ca
+78387c00
+7834fc00
+700a992a
+20207d86
+44944005
+20402a4d
+d8200010
+204022dc
+78587c00
+7854fc00
+20402818
+20402435
+4494c005
+2040247c
+2036a202
+20402455
+243a21fc
+202021ec
+68008031
+793ffe01
+60008031
+20402a88
+20402841
+78347c00
+700a992b
+20207d86
+44954005
+79200009
+1a227e00
+6001001e
+18007250
+d8a0043f
+1a208c01
+e8c08000
+1a220c00
+c2807f01
+d8a00030
+20407f01
+78577c00
+68008077
+98000800
+70008a01
+2034a21c
+70008a01
+68008030
+c4008000
+68008073
+6000808a
+68008074
+6000808b
+20600000
+4495c005
+6801001e
+98000a00
+18007250
+d8c0043f
+203b7f01
+d8c00030
+20207f01
+df200001
+68088015
+18408401
+2841fe01
+2420a231
+d8400000
+60088015
+184ffe50
+da204040
+9a20a200
+ea208000
+c280a239
+c3800000
+c3818000
+c200222d
+20600000
+44964005
+da60226a
+20402261
+24628000
+1a227e00
+6001001e
+18007c00
+20600000
+20402725
+2020a24b
+6801001e
+1fe08a17
+68008047
+e0a08000
+da6022aa
+20202261
+68008047
+2feffe03
+2020a250
+18007c01
+20600000
+18007c00
+20600000
+da6022a7
+20202261
+6809001e
+da6022cf
+20202261
+6808c1cf
+da602275
+20202261
+4496c005
+680b41d0
+da60226e
+20202261
+da60227b
+20202261
+da6022c6
+44974005
+da204040
+df200001
+ea208000
+1a627a00
+1a20a250
+c2002264
+18007c01
+20600000
+c2802266
+c281a266
+18007c00
+20600000
+c281a270
+c3002266
+1a208c10
+e8c30000
+98467c00
+20628000
+20202266
+c3002266
+1a208c16
+e8c08000
+98467c00
+20628000
+20202266
+c300a266
+204022b3
+20402297
+98467e00
+1fe0fe01
+20212291
+18c22400
+60048aa2
+6800c4c0
+243a2289
+68048aa2
+1a420c00
+1fe0fe05
+2020228c
+68048aa2
+1a420c00
+1fe0fe14
+24212266
+18424200
+204022bf
+18007c00
+20600000
+98002400
+1a208c02
+e8c10000
+203a228d
+204022bf
+2020227c
+1ff11600
+196c9600
+2022a2a1
+29601e0f
+24608000
+18511600
+196c9600
+24628000
+7920041c
+20600000
+18511600
+196c9600
+29601e0f
+24608000
+79207e1c
+20600000
+c3002266
+18007c00
+20600000
+c3002266
+1a208c01
+e8c08000
+c2802266
+1a208c17
+e8c08000
+c301a266
+18007c00
+20600000
+1a208c01
+e8c88000
+1c427e00
+284ffe01
+1a208c04
+e8ca0000
+20608000
+1a208c08
+e8c30000
+20402854
+1d027e00
+20600000
+1a208c02
+1a208a04
+e8c10000
+98409600
+19627e00
+e0a20000
+20205449
+c300a266
+204022b3
+9b60fe00
+9b60fe00
+98e0fe00
+98467c00
+24212266
+18007c00
+20600000
+c3002266
+18427e00
+9a267c00
+203f2266
+1a208c01
+e8c08000
+c2802266
+ea208000
+793ffe07
+e2208000
+20202266
+4497c005
+20402a4f
+1c40c201
+204028e2
+18004803
+204028d2
+20402a51
+20402a56
+20402a64
+20202762
+44984006
+20402a4d
+1c40c201
+204028e2
+18004803
+204028cc
+2040242a
+204029f1
+20402a5b
+204029eb
+20402a0d
+246c0000
+204029bb
+2020251c
+4498c006
+68008181
+98000800
+18000201
+204022da
+202022e4
+6800c093
+c4000000
+18000e04
+20407f16
+247a0000
+680940ad
+18000e04
+2040271c
+20740000
+20402308
+18000e04
+680140af
+242c7f08
+180a7e00
+9ea17e00
+20207f08
+44994006
+70018100
+78587c00
+78577c00
+204028a4
+1c4143fc
+18004801
+204028d8
+204028cc
+7940001d
+68008006
+1fe0fe01
+60008006
+204028f2
+204029eb
+20402a14
+246c0000
+4499c006
+18003600
+204028f9
+68008007
+1fe0fe01
+60008007
+204028d8
+20402a4d
+1c21c202
+18004801
+204028d2
+204028f2
+20402a51
+20402a5f
+1c427e00
+60020161
+20402a64
+18000202
+18000800
+20402a6b
+20402766
+20402332
+1c2143fd
+1cc0cc01
+20600000
+449a4006
+6800c0d1
+207a0000
+d8a0018e
+6800c515
+1fe27200
+1fe0fe01
+e0a08000
+18a20400
+1fe0fe01
+600141dc
+18420a00
+58000009
+e0a08000
+d8c04516
+20407f01
+da60458d
+df200004
+20402354
+da604577
+df200001
+20402354
+1800020a
+7041db02
+5800018e
+6001016f
+20402a4d
+204028d2
+20402a51
+20402a5f
+20402a64
+20402a6b
+20402766
+20600000
+18a20400
+1a620c00
+e8c08000
+207a0000
+1fe3fe00
+c2002358
+1fe22200
+1fe0fe02
+1fe20e00
+680141dc
+98e0fe00
+600141dc
+18420a00
+1a227e00
+1fe0fe01
+e0a08000
+1a620c00
+e8c08000
+e8c08000
+e0a08000
+1a227200
+20207f01
+6800c093
+c4008000
+18000e05
+20407f16
+247a0000
+680940b1
+18000e28
+2040271c
+20740000
+18000800
+70001008
+793f800b
+2040237a
+18000e05
+680140b3
+20207f08
+449ac006
+78587c00
+204028a4
+68008008
+1fe0fe01
+60008008
+18004c00
+204028e2
+1c40c201
+18004802
+449b4006
+204028cc
+204029eb
+20402a14
+246c0000
+204028f9
+68008009
+1fe0fe01
+60008009
+18003600
+20402a4d
+1c21c202
+18004801
+204028d2
+20402a51
+20402a5f
+20402a64
+2040264d
+18000800
+d9600600
+35330200
+1d01d003
+1c2143fd
+449bc006
+1cc0cc01
+204028cc
+204029eb
+20402a07
+242c23a4
+20402a6b
+2040251e
+c505a3ab
+449c4007
+68008010
+207a0000
+1fe0ffff
+60008010
+20402a4f
+2020239b
+449cc007
+793fd001
+79205000
+6800800a
+1fe0fe01
+6000800a
+20402a4d
+1c21c202
+204028d2
+20402a51
+20402a5f
+20402a64
+2040264d
+2d000603
+2020a3bc
+37cb8200
+202023b8
+68020165
+1fe1fe03
+1fe25000
+449d4007
+68030178
+60030040
+20402435
+2040247c
+2036a3c8
+20402455
+243a23c3
+20600000
+449dc007
+20402440
+2040223b
+24628000
+70003100
+20402841
+20202223
+449e4007
+20402850
+204023f3
+20740000
+449ec007
+20402c69
+20406caa
+20402514
+2436a3e2
+20402a88
+20406cc2
+20402489
+20402757
+20402728
+20405d08
+6800800b
+1fe0fe01
+6000800b
+20402841
+449f4007
+20402bb1
+20402a7f
+202123eb
+204021a7
+243423eb
+204026f3
+243a23d3
+20600000
+449fc007
+70015100
+70017f00
+2040245d
+793f8011
+20407fb0
+68008030
+20600000
+44a04008
+204021c9
+24740000
+18820400
+20402a6f
+60008181
+18420800
+70001120
+44a0c008
+20402a4f
+18000202
+2040274f
+1c427e00
+60020161
+20402762
+20402a4d
+7837fc00
+204024f6
+202c240d
+204028f9
+20402455
+243a23fb
+c6820000
+70007c34
+79200003
+20600000
+78387c00
+20402435
+204028a4
+44a14008
+204022f2
+202c2419
+20402455
+243a2410
+78587c00
+1d027e00
+600240ca
+20600000
+7834fc00
+c582241f
+793f8004
+70007c03
+70007d33
+204062f8
+18827e00
+60008077
+18007e00
+60030038
+68008031
+79207e01
+60008031
+20402a88
+7854fc00
+78347c00
+20600000
+44a1c008
+7856fc00
+793f8005
+793f800a
+793f8010
+793f800f
+68008047
+793ffe05
+79207e04
+60008047
+20600000
+44a24008
+70001120
+70004750
+680140bf
+6001003e
+1c427e00
+600240ca
+20780000
+1d027e00
+600240ca
+20600000
+44a2c008
+20405d04
+20402459
+60008046
+58000000
+6001025d
+58001c80
+60010051
+68008030
+79207e00
+60008030
+70004b00
+70004c00
+7000a000
+20202a88
+44a34008
+18007e00
+600441be
+e0a40000
+204021c5
+20202254
+68008011
+1fe0ffff
+60008011
+20600000
+6800c0cf
+1fe0fe01
+6000c0cf
+20600000
+44a3c008
+6800c1ce
+c001a462
+68008048
+c080a466
+20404d06
+2422a466
+204021a4
+7041ce00
+44a44009
+204033af
+204026e9
+700a9902
+20407d86
+20405cf7
+20404d6b
+2040757d
+68008030
+793ffe00
+60008030
+70468100
+6800804c
+2fe18000
+2020a476
+793f8001
+68008047
+c301a478
+6800804b
+c4030000
+793f8002
+20600000
+44a4c009
+68008174
+207a0000
+1fe20800
+20402514
+24768000
+18000200
+20402757
+18827e00
+60008077
+18007e00
+60008174
+20600000
+44a54009
+68008030
+c3012496
+18000207
+c583a495
+20402725
+2420a496
+20372496
+204024c1
+58000002
+600140c8
+20600000
+24770000
+44a5c009
+20402243
+2422a4a7
+68008047
+c301a4b0
+c502a4b4
+6800817f
+c28324ba
+680140c8
+1fe0ffff
+600140c8
+203a24a5
+6800c0c5
+98000200
+20600000
+44a64009
+20402687
+20402725
+2020a4b0
+2040600a
+203424be
+6800804b
+c28324c0
+c502a4b4
+6800817f
+c28324ba
+18000201
+20748000
+18000200
+20600000
+44a6c009
+68008019
+98000200
+c1808000
+18000200
+20600000
+68008158
+1fe1020f
+79200005
+20600000
+18000213
+202024c1
+204024ca
+44a74009
+68088047
+79200403
+60088047
+18227e00
+6000c0c5
+5800ffff
+600140c8
+20600000
+44a7c009
+6800804c
+2feffe05
+680141dc
+2020a4e0
+18000203
+1fe67c11
+20610000
+18000204
+1fe67c1b
+20610000
+1800020a
+1fe67c79
+20610000
+1800020b
+1fe67cb7
+20610000
+1800020e
+1fe67ce0
+20610000
+1800020f
+20600000
+18000203
+1fe67c11
+20610000
+18000204
+1fe67c36
+20610000
+1800020a
+d840016f
+98467c00
+24610000
+1800020e
+d84002a7
+98467c00
+24610000
+1800020f
+20600000
+68008030
+c300a4f5
+68010032
+203a24f5
+243724f7
+20402a4f
+1d00c201
+78287c00
+6801003e
+1fe37e00
+d8400500
+9840fe00
+20402a24
+204028ea
+18004803
+204028cc
+2040242a
+204029f1
+44a8400a
+6801003e
+1fe37e00
+20402a24
+204029eb
+7826fc00
+6801003e
+d84003bb
+9840b600
+37c18400
+1b420400
+600b009a
+7846fc00
+246c0000
+dd2003bb
+1c225000
+2035ab05
+20600000
+44a8c00a
+204024f0
+242c28f9
+204029bb
+c588a51c
+680100f6
+1fe0fe01
+600100f6
+1c230400
+18419c40
+44a9400a
+7823fc00
+78257c00
+7825fc00
+09800003
+198cfe00
+6000815d
+09800004
+08008007
+19827e00
+60008019
+09800003
+198cfe00
+6000815e
+68008019
+1fe67c03
+20212533
+c003a533
+6800804c
+2feffe05
+7920aa01
+44a9c00a
+09800008
+7845fc00
+78457c00
+20232631
+c588a53c
+680100f8
+1fe0fe01
+600100f8
+44aa400a
+6800815d
+2fe00e00
+7920800a
+2020a54c
+a8800e00
+2020a54b
+c583a64d
+680880b0
+a8400e00
+2420a64d
+68008047
+793ffe05
+79207e04
+60008047
+7836fc00
+44aac00a
+68008019
+1fe20200
+c505255b
+6808815e
+68008047
+793ffe00
+284ffe00
+7920fe00
+284ffe01
+7920fe01
+60008047
+284c0001
+2020a55b
+20402687
+44ab400a
+d8400000
+20402a1c
+18217e0f
+c000a587
+c000264d
+c0012659
+6808815e
+68008047
+a8400800
+2420a569
+c5852568
+c303a569
+7920000f
+44abc00a
+18227e00
+c001a589
+c002258d
+c003a578
+c004258c
+d8400004
+20402a1c
+c0052588
+c005a58b
+d8400008
+20402a1c
+c0072588
+c007a58b
+20600000
+44ac400b
+7826fc00
+7824fc00
+78277c00
+d8a000d1
+1800721e
+09800008
+19897e00
+e0a08000
+c200257e
+c583a64d
+09800010
+7d230008
+2023263d
+20202620
+2020264d
+79200010
+78267c00
+2020258e
+79200010
+79202a02
+7826fc00
+44acc00b
+c500a64d
+2aac0001
+2020a59a
+7843fc00
+7826fc00
+78467c00
+1c409602
+34530400
+242c263d
+79200010
+7823fc00
+44ad400b
+78277c00
+7824fc00
+09800003
+198cfe00
+60008180
+09800005
+c50825a5
+19897200
+1f297200
+202025a8
+09800005
+19837200
+09800003
+44adc00b
+1f227e00
+6001015f
+203a25e8
+9ea67c00
+2021263d
+44ae400b
+793f8000
+68008180
+1fe17e03
+d8a00551
+c001a5ba
+c508a5e4
+68008180
+1fe17e03
+c00125bf
+c000a5d3
+2020263d
+6801015f
+1fe67c70
+2421263d
+c507a620
+202025e4
+44aec00b
+c507a620
+6801015f
+d84002e0
+98467c00
+2021263d
+68008263
+c30025c9
+c300a5ce
+2020264d
+70026101
+6801025d
+c080264d
+d8a01000
+202025e4
+70026102
+6801025f
+c080264d
+d8a01400
+202025e4
+44af400b
+c507a620
+6801015f
+d84002e0
+98467c00
+2021263d
+68008261
+c000a5dd
+c00125e1
+2020264d
+d8a01000
+6801025d
+98a08a00
+202025e4
+d8a01400
+6801025f
+98a08a00
+09800008
+19897e00
+e0a08000
+c20025e4
+44afc00b
+09800010
+20232637
+6800c363
+c000a64d
+c508a60d
+c507a64a
+68008180
+2fe00603
+2020a60d
+6801015f
+203a260d
+44b0400c
+68008261
+c000a5f9
+c0012603
+20202a8c
+6801025d
+6809015f
+9840fe00
+6001025d
+c0002a8c
+68091000
+18408404
+98467c00
+2042a747
+2020260d
+6801025f
+6809015f
+9840fe00
+6001025f
+c0002a8c
+68091400
+18408404
+98467c00
+2042a74b
+2020260d
+44b0c00c
+6808804c
+68008180
+2fe00603
+79208406
+7d208407
+6008804c
+2420a616
+79200001
+c588a620
+284ffe06
+2020a620
+680100fa
+1fe0fe01
+600100fa
+79200005
+793f8407
+793f8001
+6008804c
+44b1400c
+6808815e
+68008047
+79207e05
+284ffe02
+7920fe02
+280ffe0a
+7920fe07
+60008047
+6801015f
+243a264d
+6800804c
+793ffe07
+6000804c
+68008180
+2fe00e01
+2020264d
+44b1c00c
+7856fc00
+6801001a
+1fe0fe01
+6001001a
+2020264d
+6801001c
+1fe0fe01
+6001001c
+2040263e
+c588a63d
+79200005
+2020264d
+44b2400c
+68008180
+2fe00603
+2420a646
+6808804c
+793f8406
+6008804c
+20600000
+6808804c
+793f8407
+6008804c
+20204c0b
+68008047
+79207e05
+60008047
+44b2c00c
+784efc00
+784e7c00
+7846fc00
+78467c00
+7844fc00
+78477c00
+7843fc00
+2030a8f9
+37d38200
+20000064
+202028f9
+44b3400c
+7824fc00
+78267c00
+09800048
+2feffe3a
+79208000
+1c020400
+57e04000
+57e03c00
+782afc00
+380bffff
+380cffff
+20000020
+29a80000
+1d827e00
+60018178
+1da27e00
+6000817b
+18424000
+2020a66e
+2020263d
+44b3c00c
+09800048
+57e03e00
+57e00800
+57e05c00
+57e02400
+18007e00
+09800010
+2023263d
+5ffffffc
+9a417e00
+60020165
+1ba27e00
+60018175
+1b827e00
+60008173
+18827e00
+60008174
+1dc27e00
+6001017c
+1c227e00
+08008220
+28201e02
+7920800b
+2020264d
+44b4400d
+68008047
+c4018000
+793ffe03
+79407e06
+60008047
+6800c0c5
+c009a69c
+c1038000
+6800804b
+c4030000
+793ffe06
+79207e07
+6000804b
+793f8002
+68014246
+247a0000
+6800804b
+793ffe07
+6000804b
+2020525d
+44b4c00d
+680084b7
+1fe37e00
+c008a6b8
+c00926c0
+c00c26e9
+c03fa6a8
+c1818000
+680084b8
+c015a6b0
+c008a6ab
+20600000
+680084b8
+79207e07
+20600000
+20748000
+68008030
+c3820000
+70007c31
+20600000
+20748000
+68008031
+2feffe04
+2020a6b5
+20600000
+793ffe04
+60008031
+20600000
+44b5400d
+6800804c
+79207e02
+6000804c
+70801101
+68008030
+2feffe04
+20600000
+44b5c00d
+6800804c
+793ffe02
+6000804c
+70801100
+20600000
+44b6400d
+1c427e00
+6002420c
+1c40a203
+2034a6cc
+1d00a203
+68090032
+1a227e00
+793ffe1b
+9846fc00
+68010075
+20407f86
+18072600
+9a667e00
+202126d6
+9840fe00
+9a20fe00
+60020034
+70455b00
+68008030
+79207e01
+60008030
+68008073
+6000808a
+58000000
+6001c169
+6001c16c
+6000c159
+700a990b
+20407d86
+680140c1
+6001003e
+24748000
+18808fff
+20600000
+44b6c00d
+68008030
+c4008000
+793ffe01
+60008030
+680140bf
+6001003e
+7855fc00
+700a990c
+20207d86
+44b7400d
+78377c00
+68008030
+c280a700
+c6088000
+68008047
+c3818000
+68008048
+247a0000
+6800804b
+c3830000
+18007e00
+20600000
+c301270f
+6800808a
+c0012706
+68008047
+c281a718
+c5842718
+2434a718
+68008048
+243a2718
+680080ef
+1fe0ffff
+600080ef
+243a26fe
+7000ef10
+20202718
+6800808a
+c080a718
+6800808b
+203a2718
+1fe0ffff
+6000808b
+68008047
+c3818000
+24768000
+6800808a
+1fe0ffff
+6000808a
+20600000
+44b7c00d
+78487c00
+18423600
+20402260
+78547c00
+24628000
+18003600
+78347c00
+20600000
+6800c158
+a881fe00
+20600000
+44b8400e
+793f8001
+70026a00
+68008263
+207a0000
+2feffe00
+d8c01000
+2040cd79
+44b8c00e
+6800826a
+c000a73b
+70026a00
+68008263
+c4008000
+d8c01400
+20404d79
+6800826a
+c000a741
+20600000
+68008263
+793ffe00
+60008263
+58000000
+6001025d
+20600000
+68008263
+793ffe01
+60008263
+58000000
+6001025f
+20600000
+68008263
+79207e00
+60008263
+20600000
+68008263
+79207e01
+60008263
+20600000
+44b9400e
+1d00c201
+204028ea
+18004803
+204028d2
+20402a51
+20402a5f
+20202a64
+44b9c00e
+20402a4d
+1d027e00
+680a40ca
+98467e00
+c1808000
+28203e00
+2420a761
+68008019
+207a0000
+2040274f
+28203e10
+2020a64d
+1c230400
+18419c40
+44ba400e
+7823fc00
+78257c00
+782dfc00
+793f8010
+18827e00
+08008603
+18227e00
+08008604
+68008047
+08008004
+08008603
+78247c00
+08008608
+784dfc00
+78447c00
+78457c00
+793faa02
+d8400000
+20402a1c
+44bac00e
+18217e1f
+c009a7b4
+c000264d
+c000a64d
+c0012797
+c001a7c5
+c00227cb
+c003a78c
+c00427ca
+d8400004
+20402a1c
+c00527c7
+c005a7cd
+d8400008
+20402a1c
+c007a7cd
+202027c7
+44bb400e
+782efc00
+7824fc00
+78277c00
+1800721e
+d8c000b3
+e8c08000
+08008608
+c2002792
+c503a7f7
+2020264d
+44bbc00e
+68008181
+1fe20800
+68008090
+1fe23800
+6801c0aa
+1fe23a00
+680140a4
+1fe25c00
+7824fc00
+782e7c00
+1c022200
+204028e2
+782afc00
+20000020
+1c221600
+68020161
+1fe24200
+53c07e00
+79207e3a
+08008648
+53e07e00
+08008648
+19624200
+1a224000
+78247c00
+08008610
+78447c00
+2020264d
+44bc400f
+78277c00
+7824fc00
+782e7c00
+680084b6
+1fe105f8
+d8c004b6
+18408408
+1840a7b8
+242127c2
+e8c48000
+08008648
+1a620400
+202027bc
+e8c48000
+08418600
+202027f7
+782e7c00
+202027d0
+782e7c00
+79200010
+202027d0
+79202a02
+782efc00
+202027d0
+79202a02
+782efc00
+79200010
+44bcc00f
+6800804c
+c302a7e5
+18267c03
+202127e5
+78477c00
+784e7c00
+782efc00
+7843fc00
+79202a01
+2aaffe02
+2020a7df
+580abeee
+08008614
+202027e3
+585faeba
+08008618
+58000012
+08008606
+7823fc00
+79200010
+78277c00
+7824fc00
+c502a800
+6800c1db
+08008603
+680141dc
+98007200
+c50827ef
+08008605
+202027f0
+0800860d
+1f227e00
+203a27f7
+6801016f
+98000c00
+e8c08000
+08008608
+c20027f4
+78247c00
+08008610
+78447c00
+204024c1
+6800804c
+c302a64d
+18007e00
+08008606
+2020264d
+44bd400f
+c5082808
+68008180
+08008603
+6800815f
+98002600
+08008605
+2020280d
+68008180
+08008603
+6801015f
+98002600
+0800860d
+d8c00551
+1a627c00
+2022a814
+e8c08000
+08008608
+1a60a7ff
+2020280e
+680100fc
+1fe0fe01
+600100fc
+202027f7
+68020165
+1fe0a207
+68010171
+243a281e
+1a20a3fd
+20202826
+1feffe0c
+68190040
+18408401
+98467e00
+24212825
+1a20a3ff
+20202821
+1fe67e00
+37d18200
+2c400600
+2420a826
+98005200
+1a225000
+98005200
+20600000
+44bdc00f
+37d10200
+1b427e00
+98000c00
+1ff17e00
+9c467200
+1f217203
+2422a837
+18007e00
+2020283b
+d8400ea6
+18007e00
+9840fe00
+c2002839
+98c0fe00
+1fe6fc0c
+20407f86
+1807fe00
+60010171
+20600000
+44be400f
+1b427e00
+1b220400
+98467c00
+7d217e2c
+98460400
+58000ea6
+284c000f
+2020a84c
+5fff0ea6
+98408400
+600b0447
+207b0000
+600b0038
+20600000
+78587c00
+68030447
+203b2854
+68030038
+9b20e000
+1e00e00a
+58000ea6
+9e067e00
+2fec000f
+2020a85e
+5800f15a
+9e00e000
+1e023400
+20600000
+18007c00
+2020285c
+44bec00f
+20402918
+1c227e00
+1fe17f80
+2c800e03
+2420a869
+1fe97e00
+9ae0fe00
+2020286a
+1ae27e00
+1fe6fc4f
+782afc00
+20407f86
+18072200
+1a2085d8
+20212872
+1a238400
+20202874
+18438400
+18408401
+44bf400f
+68008031
+c301a885
+680240d2
+9c267c00
+20212885
+204028a4
+6800c0d9
+207a0000
+68008031
+79207e02
+60008031
+6802c0e7
+6002c0da
+e8c28000
+6002c0df
+204028a9
+68008031
+c4010000
+2c2ffe01
+2020a8a1
+18492200
+18410e07
+580040da
+9a20a200
+ea208000
+afec0000
+2020a892
+18427e00
+2020289e
+6800c0e4
+98002400
+1c227e00
+1fe17f80
+1fe97e00
+9ae0fe00
+9a46fc00
+580040f2
+20407f86
+18072200
+9a208c00
+e8c08000
+6000c0e5
+98000400
+20600000
+6800c0e5
+98000400
+20600000
+68008031
+793ffe02
+793ffe03
+60008031
+20600000
+44bfc00f
+d8a040f2
+1800720a
+20407ec6
+d8a040f2
+18002600
+18000e02
+6802c0da
+98000400
+28e1fe02
+2020a8b5
+18430400
+284c0000
+2020a8b9
+1a627e00
+e0a08000
+184b0400
+1a60a602
+2a61fc28
+2420a8c2
+6802c0df
+98000400
+28e1fe02
+2020a8c2
+18430400
+1a667c4e
+202128b5
+18002601
+18e08fff
+2422a8b0
+da2040f2
+18a27e00
+9a267e00
+6000c0e4
+20600000
+44c04010
+20402860
+6800817f
+c302a8d1
+680884cc
+2020291f
+44c0c010
+20402860
+6800817f
+c30228d7
+680884cb
+20202933
+18005a00
+6801c0a7
+98005800
+20600000
+44c14010
+6800c1d3
+1fe25a00
+6801c1d0
+1fe25800
+20600000
+44c1c010
+680140a4
+1fe25c00
+6800c0a3
+1fe25a00
+6801c0a0
+1fe25800
+20600000
+44c24010
+68010044
+1fe25c00
+68008043
+1fe25a00
+68018040
+1fe25800
+20600000
+c51028f5
+c68e8000
+c68f8000
+1d815900
+782afc00
+20000020
+20600000
+44c2c010
+2030a90a
+708955d4
+20000004
+708955d2
+20000004
+708955d1
+20000004
+6800c1de
+c0002908
+c000a915
+c0012908
+c001a915
+c0022915
+c0102915
+708955d0
+708956e0
+18002a00
+7850fc00
+78507c00
+782f7c00
+70890200
+70890100
+70890000
+70890300
+70890470
+70890600
+20600000
+708955d0
+708956c0
+2020290a
+44c34010
+70890200
+70890100
+70890018
+708903a7
+7089047f
+20600000
+44c3c010
+60088017
+1840a204
+70896d07
+20202981
+44c44011
+708901cf
+2000000a
+708900ff
+708903af
+708904ff
+2000000a
+708902a0
+20600000
+6800c1e0
+203a2931
+1840a202
+20600000
+1840a200
+20600000
+44c4c011
+60088017
+2040292d
+20402981
+58000500
+20402a8f
+70890601
+7089003c
+708901e0
+70896d12
+2000000a
+70890201
+7089023d
+2000000a
+708903b7
+2000000a
+7089027f
+6800c1de
+c000294b
+c000a94f
+c0012953
+c001a957
+c002295b
+c010295f
+708956f0
+20402965
+708955d8
+20600000
+708956df
+20402965
+708955df
+20600000
+708956ff
+20402965
+708955df
+20600000
+708956ce
+20402965
+708955d8
+20600000
+708956cb
+20402965
+708955d8
+20600000
+708955d0
+708956c0
+7089574c
+7089586c
+70895950
+20600000
+20000004
+708955d1
+20000004
+708955d2
+20000004
+708955d4
+20600000
+70804206
+680140c3
+c307296d
+98000c00
+d8408900
+e8c08000
+c07fa977
+98418a00
+e8c08000
+e0a08000
+20202971
+44c54011
+20402be5
+204029c9
+580007d0
+9c40fe00
+60020169
+79202a03
+18002a00
+2455a998
+202029ab
+44c5c011
+58000960
+9a208400
+6800c0bd
+70895f04
+984ffe00
+6808c0be
+9846fc00
+20407f86
+1807a200
+18077e00
+1ff07e00
+1ff27e00
+9846fc00
+20407f86
+1807fe00
+1fed7e00
+1fe3fe00
+9a21fe00
+60120960
+70895f44
+70895fc4
+20600000
+44c64011
+70890602
+5803d090
+20402a8f
+7089007f
+20000082
+70895230
+708901d0
+70895270
+708952f0
+18007232
+68108980
+c282a9a6
+c20029a3
+6000c0ce
+70890100
+70890000
+70890600
+20600000
+44c6c011
+6800c0ce
+79207e05
+60108952
+68188950
+18410407
+1fe9fe00
+9841fe00
+60108950
+68108951
+793ffe00
+60108951
+68108952
+793ffe05
+60108952
+20600000
+44c74011
+68110981
+1ff1fe00
+1fe97e00
+1fe67e00
+1fe17eff
+1fe6fc0a
+20407f86
+1807fe00
+1ff27e00
+18070400
+9841fe00
+60008018
+20600000
+70804206
+6810896b
+793ffe04
+793ffe05
+6010896b
+70890500
+70890400
+70890470
+708905ff
+6810896b
+79207e04
+79207e05
+6010896b
+204029e9
+68108968
+79207e07
+60108968
+793ffe07
+60108968
+79207e07
+60108968
+70804205
+20000001
+70804204
+6810896b
+1fe17ecf
+6010896b
+1fe1fe30
+6010896b
+20600000
+58000f0f
+20202c18
+5800080f
+20202c18
+44c7c011
+20402924
+78507c00
+7830fc00
+782b7c00
+20600000
+44c84012
+6800804c
+2feffe02
+7920fe00
+60108011
+d8c00062
+e8c48000
+98006400
+e8c38000
+98006600
+68008054
+1fe0e9ff
+782d7c00
+20600000
+1b427e00
+6003009a
+7846fc00
+242c28f9
+dd2003bb
+1d00d001
+1d0151fc
+20600000
+7826fc00
+37cb8400
+202c29ff
+2d000402
+2420aa08
+202029ff
+44c8c012
+d9600600
+7826fc00
+34730400
+7846fc00
+242c28f9
+20600000
+44c94012
+7826fc00
+37c18400
+7846fc00
+242c28f9
+dd2003bb
+1d0151fc
+20600000
+44c9c012
+98002200
+1c227e00
+98409600
+19627e00
+600240ca
+1a227e00
+20600000
+1fe20400
+44ca4012
+18427e00
+20407f50
+1c307e00
+79207e2c
+20407f39
+793ffe2c
+20402a77
+20407f39
+20740000
+20407f43
+98003600
+37c18200
+20600000
+44cac012
+20382a38
+35330200
+1d020400
+20202a3b
+20372a3a
+34730200
+1c420400
+20342a47
+28400601
+2420aa33
+44cb4012
+68008030
+c4000000
+680240ca
+98467e00
+24610000
+1fe67cff
+20212a33
+20600000
+28400603
+2420aa33
+20202a3e
+44cbc012
+d9600600
+20202a33
+78547c00
+20202a4a
+78347c00
+20202a4a
+44cc4013
+204029f1
+7850fc00
+78307c00
+20600000
+44ccc013
+d9600e43
+34730200
+782b7c00
+20600000
+44cd4013
+d9600d00
+34730200
+20600000
+44cdc013
+d9600e43
+35330200
+782b7c00
+20600000
+44ce4013
+51207e00
+782efc00
+79202a00
+08008648
+784efc00
+20600000
+1ca20400
+18418460
+18421c00
+20600000
+44cec013
+6800c090
+1fe0fe01
+c083aa74
+18007e01
+6000c090
+98000800
+20600000
+1b220400
+20748000
+1b420400
+20600000
+1c427e00
+20748000
+1d027e00
+20600000
+44cf4013
+680a004d
+20402a7b
+98461600
+19627e00
+68090051
+18438400
+98467e00
+20600000
+44cfc013
+20402a7b
+6002004d
+20600000
+44d04014
+20202a8c
+20202a8e
+207a0000
+1fe37e00
+1fe0fffd
+1fe0ffff
+2422aa92
+18007e00
+20600000
+df200010
+d8a00000
+20407ec6
+d8a0043f
+df20000a
+20407ec6
+7009b200
+700a9900
+70048c00
+70017f00
+7004d100
+44d0c014
+70016d00
+70015100
+70015c00
+589e8b33
+6001c0a7
+58000153
+60010083
+7000851e
+70008601
+70008807
+5812e904
+60018080
+70009060
+7040d005
+70001402
+6800c65a
+245a74c1
+6800c4be
+245a7518
+44d14014
+20758000
+58000000
+600141dc
+1c437e00
+60024094
+20600000
+5800ee21
+60110050
+6812011c
+60020abe
+6810813e
+60008abd
+c301e45b
+7835fc00
+c303aacc
+7855fc00
+1ce27e00
+243a2acc
+6810813b
+c2812acc
+d85fffff
+20202b3c
+6811813c
+6011804c
+e8c08000
+1fe1feef
+e0a08000
+20402c23
+6810804f
+79207e04
+6010804f
+20402c23
+2055aadf
+6810804e
+793ffe03
+6010804e
+20402c23
+2435e45b
+c6958000
+70800608
+20600000
+6800c198
+60108086
+6801c18d
+60118080
+68024181
+60120074
+6802417d
+60120070
+68044185
+60140078
+68044190
+98000000
+68140140
+600400a1
+204064ca
+20600000
+18027e00
+60044190
+68140070
+6004417d
+e8c40000
+e0a40000
+68118080
+6001c18d
+68108086
+6000c198
+20202c29
+68108063
+243a2b00
+6801c16f
+247a0000
+708063c0
+70800680
+6810812d
+c4008000
+68118149
+6001c16f
+20600000
+44d1c014
+1b427e00
+20407f37
+680a415f
+18467cff
+20610000
+1fed7e00
+1ff27e00
+9846fc00
+20407f86
+1807fe00
+d84000c8
+20407f91
+60008099
+24342b15
+1fe67e00
+6809c16f
+9840fe00
+6001c16f
+58000000
+6002415f
+20600000
+6800c177
+79207e02
+6000c177
+20202b23
+d85fffff
+6800c176
+793ffe07
+6000c176
+44d24014
+20402c29
+6800c157
+6000c17c
+6800c17a
+79207e07
+6000c17a
+44d2c014
+204029e7
+6802415f
+9840fe00
+6002415f
+20402aef
+6802c178
+6012004c
+1fef2200
+37d98200
+1b227e00
+60034163
+70800502
+37d98200
+37d98200
+1a227e00
+6010804f
+70800502
+37d98200
+37d98200
+601a004c
+70800510
+37df8200
+44d34014
+58000000
+1ce27c00
+2022ab4c
+6810813c
+6818813d
+98467c00
+20212b4a
+18427e00
+9ce67e00
+1fe0fe01
+1fe0fe08
+37d98200
+9e20fe00
+680a415b
+9840fe00
+6809c16f
+984ffe00
+1fecfe00
+1ff1fe00
+1fe0fe6e
+d8400ea6
+9846fc00
+20407f86
+1807fe00
+1ff07e00
+18070400
+9841fe00
+680b4163
+20407f2c
+18423200
+68034048
+20402854
+1b427e00
+60030a9a
+1ce27e00
+e0a08000
+6810811d
+1fe1fef0
+e0a08000
+20600000
+44d3c014
+20402afa
+6801c16f
+207a0000
+6800c091
+207a0000
+6800c65a
+203a2b74
+6800c5b1
+207a0000
+6800c4c0
+247a0000
+20402c3a
+247a0000
+6800c040
+2fe00e03
+2420ab9d
+68014042
+207a0000
+20758000
+44d44015
+680880a0
+68014042
+984ffe00
+18518400
+184b0400
+98467e00
+680a4044
+9840fe00
+6808c156
+98467e00
+1ff06000
+44d4c015
+6801404e
+1fe37e00
+20407f50
+1e027e00
+20407f39
+1b420400
+20407f37
+20740000
+20407f49
+44d54015
+6800c178
+98467c00
+20212b18
+600a415b
+20403328
+204052fb
+680a415b
+20202b2a
+44d5c015
+6800c040
+c3800000
+c3818000
+6800c65a
+203a2ba5
+6800c5b1
+207a0000
+44d64015
+6800c36e
+243a2baa
+6800c093
+207a0000
+68014154
+207a0000
+6808c156
+98467e00
+d8401d4c
+984ffe00
+20202b93
+44d6c015
+7855fc00
+68008030
+c4008000
+2436abd0
+20402bcb
+680140c1
+6001003e
+68008047
+c281abde
+c586abde
+20405274
+243a2bde
+6800c55c
+c280abde
+7000a000
+c586abde
+6800c174
+203a2be2
+1fe0ffff
+6000c174
+20600000
+d8e00001
+202060cd
+d8e00001
+202060d1
+70415900
+6801c169
+1fe0fe01
+6001c169
+20600000
+44d74015
+680940c1
+18430400
+6801003e
+9840fe00
+6001003e
+7000a000
+6801c16c
+1fe0fe01
+6001c16c
+6800c159
+1fe0fe01
+6000c159
+20600000
+7000a000
+6800c173
+6000c174
+20600000
+6808c172
+600880a0
+20600000
+44d7c015
+6800c178
+247a0000
+70804206
+58000f0c
+20402c18
+58030d40
+20402a8f
+37d98200
+1e226000
+204029e7
+70804204
+2000000a
+37d98200
+1e227e00
+9e067e00
+1fe0fe30
+d84000ff
+20407f91
+6000c178
+20007530
+20007530
+20007530
+20600000
+6800c178
+247a0000
+708044ff
+70804206
+204029e7
+580003e8
+9e20e000
+07e00000
+1e227e00
+20002ee0
+20002ee0
+20002ee0
+20002ee0
+20002ee0
+20002ee0
+20002ee0
+20002ee0
+20002ee0
+9e067e00
+1fe0fe30
+d84000ff
+20407f91
+6000c178
+20007530
+20007530
+20007530
+20600000
+d8a00fff
+98a10a00
+6800c175
+1fe17ef0
+1fed7e00
+98a1fe00
+6011004c
+e8c10000
+e0a10000
+58000001
+20202c24
+58000002
+37d98200
+60108005
+37d98200
+37d98200
+20600000
+44d84016
+680200a1
+6012004c
+58000004
+20402c24
+680200a5
+6012004c
+58000008
+20202c24
+68014152
+f9207e00
+60014152
+20600000
+68014152
+f93ffe00
+60014152
+20600000
+44d8c016
+20403326
+68014152
+1fe22200
+6800804c
+2feffe06
+7920a20b
+68008078
+6808807c
+9840fe00
+68088048
+9840fe00
+7d3a220a
+6800c4ff
+7d3a2201
+6801025d
+6809025f
+9840fe00
+7d3a220d
+68044668
+7d3a220f
+68044670
+7d3a220e
+6800c1ce
+7d3a2208
+6800c092
+2fe1fe0a
+2040ac5b
+5ffffff8
+9a212200
+1a227e00
+60014152
+20600000
+68110112
+7d3a2206
+6811010e
+7d3a2205
+20600000
+68120138
+793ffe1b
+6012004c
+20402c21
+20202a8c
+6812013c
+793ffe14
+6012004c
+20202c23
+68014150
+c2802a8c
+20600000
+68014150
+c280aa8c
+20600000
+68014150
+c2812a8c
+20600000
+44d94016
+20402c7a
+1a60a4cd
+ea408000
+c1000000
+c000ad06
+c0012c7f
+20600000
+68094241
+18422600
+20600000
+20402f3d
+2020307d
+20403084
+2040305a
+2040305e
+202030a2
+20403231
+5800004e
+2040322f
+204032ba
+1a60a292
+ea220000
+2020322c
+20402c7a
+1a60a491
+ea488000
+20402c90
+1a608a91
+20202e56
+20402c94
+18408401
+18410403
+20600000
+1a60a4ae
+ea408000
+1fe17e03
+1fefa204
+1a60fe97
+9a20fe00
+98408c00
+e8c08000
+2020322f
+2040326c
+2040666a
+580007e2
+da200aa2
+d8400004
+204066b3
+2040666d
+68020aa2
+20403227
+247a0000
+680240a0
+20203227
+20403241
+58000000
+2040323f
+2040323a
+1fe17e07
+2020323c
+2040323a
+79207e04
+2040323c
+20203235
+2040325d
+c000acb7
+c0012cbc
+20600000
+2040323e
+1a608ad1
+204032d6
+20403242
+20202cac
+2040325a
+20202cb8
+1a60a28c
+ea208000
+1fe0fe01
+1a608a8c
+e0a08000
+c0102dd2
+20403258
+c000acca
+58000001
+2040325b
+20403258
+c080acac
+1a60a2d3
+ea208000
+1fe0fe01
+20402cd5
+c0022cd2
+20402c8a
+20402d04
+20202d8f
+20402cd4
+20202cac
+58000000
+1a608ad3
+202032b4
+2040323e
+2040325a
+20403241
+20202cac
+2040325d
+c001acd8
+2040323a
+2fec0004
+2020aca9
+2040325d
+c000acd7
+c0012cd8
+20600000
+20403253
+c1ff8000
+20402ce9
+24562cf4
+20600000
+78567c00
+1a60a2ce
+ea208000
+c1808000
+1a60a2d0
+ea208000
+c1800000
+58000001
+20402cfd
+20403237
+20207feb
+1a60a2d0
+ea208000
+203a2cff
+1fe0ffff
+2040323f
+58000002
+20402cfd
+20402c8a
+20203237
+1a608ad2
+202032b4
+58000003
+20402cfd
+20403258
+243a2cc8
+20402c8a
+58000002
+20203238
+c6930000
+79200027
+44d9c016
+1a60a28e
+ea208000
+c000ad0f
+2040306a
+24342d16
+20402d1b
+1a608a8e
+204032d6
+20402d2c
+24342d7d
+20402ce4
+20402d8f
+20402e7a
+793f8027
+20600000
+20628000
+79207e1c
+20600000
+1a60a2c2
+ea208000
+1fe0fe01
+1a608ac2
+e0a08000
+c0022d23
+c002ad27
+20600000
+1a60a2ad
+ea208000
+1a608aab
+202032b4
+1a608ac2
+204032d6
+1a60a2ac
+ea208000
+20202d25
+20403253
+c0ffaeb1
+44da4016
+20402d3a
+24342d36
+20402d53
+20402e71
+58000001
+1a608a8b
+202032b4
+1a60a28b
+ea208000
+c000ffe7
+20600000
+1a6084d8
+e8410000
+20407f9c
+24740000
+1a227e00
+60008aae
+1a608ab2
+204032d6
+20402cac
+6000919e
+68008aae
+1fe22200
+1a208401
+d8a0119f
+1a227200
+1a420c00
+20407f01
+da20119e
+c6938000
+1a608a86
+e0a88000
+18427200
+1a608a22
+1a220c00
+20207f01
+1a60a286
+ea208000
+1fe0fe02
+1a608a88
+e0a08000
+2040323a
+20403235
+1a60a286
+ea208000
+1fe9fe00
+1a60a285
+ea288000
+18410403
+18438400
+9841fe00
+1a60a2c3
+ea288000
+9840fe00
+e0a08000
+1a60a286
+ea208000
+98007200
+1a608c22
+20207f01
+2040324f
+2040325a
+20402e6d
+20402cac
+6000919e
+20402d77
+2040323a
+79207e03
+2040323c
+20402d53
+20402d33
+20202d14
+6000919f
+20403224
+600211a0
+d8400006
+da20119e
+20202d4c
+1a60a2b2
+ea208000
+203a2d6b
+1a60a2da
+ea210000
+20207f9c
+20402c7a
+20402afa
+6801c16f
+207a0000
+1a6084dc
+e8410000
+20407f9c
+1a6084b6
+e8440000
+20407f49
+600a415b
+20202b2a
+20402c7a
+1a608a8f
+204032d6
+20402da4
+242c2dae
+2437adae
+20402dd6
+20402e75
+20402c7a
+1a60a285
+ea208000
+1fe0fe01
+20403232
+20403253
+c0ffaed0
+20402cdb
+58000000
+1a608a8c
+e0a10000
+58000000
+20202d34
+7857fc00
+20402df7
+20402c7a
+1a60a2c3
+ea208000
+c000adac
+20402e11
+20202e45
+20402e45
+20202d97
+44dac016
+1a60a28d
+ea208000
+1fe0fe01
+1a608a8d
+e0a08000
+20403253
+c0ffadcc
+1a60a28f
+ea288000
+18408401
+1a608a8f
+e0a88000
+1a60a2cc
+ea208000
+98467e00
+243a2d92
+44db4016
+2040325d
+c001acbe
+1a60a2d1
+ea208000
+1fe0fe01
+1a608ad1
+e0a08000
+c0012cb3
+20402caf
+58000001
+20403238
+20202d8f
+1a60a28d
+ea208000
+c1ff8000
+1a608a8d
+204032d6
+20202dd4
+1a608a8c
+204032d6
+700a993a
+20207d86
+20402dde
+1a60a284
+ea208000
+207a0000
+98007200
+1a608c02
+1a608a64
+20207f01
+2040325f
+1fe97e00
+1a608a84
+e0a08000
+1fe0fe01
+1a608c01
+98c08c00
+e8c18000
+1a608ac4
+e0a18000
+2040325f
+1fe37e00
+1fe17e03
+1a608aca
+e0a08000
+20600000
+7844fc00
+7843fc00
+58555555
+98001e00
+20600000
+20402918
+1a60a290
+ea288000
+20202933
+20402dee
+20402df3
+79202a00
+782efc00
+78307c00
+7850fc00
+204053c4
+2040322a
+98001200
+08008620
+7824fc00
+1a60a288
+ea208000
+98007200
+1a608c42
+e8c08000
+08008608
+c2002e06
+78247c00
+08008618
+78447c00
+37d38200
+44dbc016
+20000064
+784efc00
+20600000
+7857fc00
+18002a00
+1a60a290
+ea288000
+2040291f
+20402924
+20402dee
+7826fc00
+7830fc00
+78507c00
+204053c4
+2040322a
+98001200
+78287c00
+1a60a289
+ea210000
+98003600
+37c18400
+242c2e4d
+7824fc00
+09800008
+19897e00
+1a608a00
+e0a08000
+1a60a2cd
+ea208000
+c0012e33
+44dc4017
+1a60a200
+ea208000
+1a60a287
+ea288000
+a8400e00
+2420ae45
+09800008
+19897e00
+e0a08000
+1fe97e00
+1fe1721f
+2022ae3d
+09800008
+19897e00
+e0a08000
+c2002e39
+09800018
+1fef7e00
+1ff17e00
+e0a18000
+20232e45
+7837fc00
+7846fc00
+20600000
+784efc00
+7846fc00
+7844fc00
+7843fc00
+2030a8f9
+37d38200
+20000064
+202028f9
+20402e4f
+20202e45
+204029bb
+207a0000
+1a60a2ea
+ea288000
+da200d9e
+20402e58
+1a608aea
+e0a88000
+20600000
+da4000ff
+20202e5a
+1a227e00
+98408a00
+68008018
+e0a08000
+18408401
+1a427e00
+98410400
+20600000
+d8400000
+1a220c00
+e8c08000
+98408400
+c2002e64
+184c8400
+20600000
+20402c7a
+20402e9f
+58000001
+20403272
+58000000
+20402e73
+e0a08000
+20600000
+20403270
+1fe0fe01
+1a608afc
+202032b4
+1a60a2fd
+ea208000
+1fe0fe01
+1a608afd
+202032b4
+44dcc017
+20403270
+1fe67c7c
+20610000
+1a60a2fd
+ea288000
+98460400
+20402e6d
+58000102
+9a60a200
+ea208000
+98467c00
+24212e8d
+58000103
+9a60a200
+ea208000
+98467c00
+20212e99
+20600000
+1a60a2fe
+ea208000
+c0012e93
+1fe0fe01
+20403272
+c000ae9f
+5800000a
+204032b0
+58000000
+204032b2
+1a60a2ff
+20202ea5
+1a60a2fe
+ea208000
+c0002ea7
+1fe0ffff
+20403272
+c0002ea7
+58000005
+204032b0
+58000000
+204032b2
+58000100
+9a60a200
+ea208000
+2020326a
+58000002
+204032b0
+58000000
+204032b2
+58000101
+20202ea4
+79200026
+20402c83
+58000001
+20203256
+1a60a28b
+ea208000
+c000ffe7
+20403253
+c000aeb9
+c0012ebd
+c001aec1
+20202a8c
+58000011
+20403256
+70119eaa
+20202ec4
+58000012
+20403256
+70119e55
+20202ec4
+58000013
+20403256
+70119e22
+2040323a
+1fe17e07
+6000919f
+20403224
+600211a0
+7011a400
+da20119e
+d8400007
+20402d4c
+20402d53
+20402d33
+20207fe7
+20403253
+c17f8000
+c008aed6
+c0092ed9
+c009aedc
+20600000
+58000002
+20403256
+20202d9f
+58000003
+20403256
+20202d9f
+580000ff
+20403256
+700a9939
+20407d86
+1a60a266
+ea220000
+2040322c
+20202d9f
+793f8026
+20402f08
+20402f22
+20403263
+200007d0
+20403261
+c07fadd4
+20402da4
+242c2efa
+2437aefa
+20402dd6
+20402c7a
+1a60a292
+ea2a0000
+204030be
+2022aead
+20402c7a
+1a60a266
+ea220000
+c0002ee7
+2040322c
+20202f1c
+20403261
+1fe0fe01
+20403264
+20402f04
+1fe0fe01
+1fe17e01
+20402f06
+c0002f0c
+c000af0e
+20600000
+5800018b
+202032d0
+da20018b
+202032b3
+20403267
+20403224
+2040322c
+20202c8a
+20402f08
+20202ee8
+20402c83
+20202ee8
+793f8026
+20402c8a
+20403253
+c1ff8000
+20402f22
+20403263
+200007d0
+20403261
+c07fadd4
+20402da4
+242c2f27
+2437af27
+79200026
+20403263
+580000ff
+20403256
+700a993c
+20207d86
+79200027
+70119eff
+2040323a
+20402d77
+20202d53
+20403261
+1fe0fe01
+20403264
+20402c8a
+20202f16
+20403267
+580000ff
+20403256
+20202f10
+44dd4017
+20402c7a
+580031b0
+1a608ade
+e0a10000
+20402f3d
+204048ea
+204032b6
+44ddc017
+c0003055
+c000af45
+c007af41
+20202a8c
+2040326c
+df200080
+d8a00d9e
+20207ec6
+20402f4c
+20402f4f
+204048d3
+20202f42
+44de4017
+20402f4c
+20402f4f
+20402fbd
+204048d3
+20403019
+20202f47
+20403291
+20403296
+20203299
+2040328f
+c1800000
+20402f55
+20402f65
+2040316b
+20202f96
+20403294
+c3800000
+79207e00
+20403297
+20403267
+20403299
+700d3800
+2040324f
+20402f61
+1a608a00
+df200042
+20207ed4
+20403231
+2040327d
+2040322c
+20202c8a
+44dec017
+2040324c
+c000af8d
+20403245
+c000ac8a
+58000136
+9a60a200
+ea2a0000
+1c427e00
+98467c00
+24412d18
+1fe22400
+58000136
+9a60a200
+ea220000
+1fe20400
+5800013a
+9a60a200
+18427e00
+ea288000
+98408400
+1a427e00
+98467c00
+24610000
+793ffe1c
+58000136
+9a608a00
+e0a20000
+20402c8a
+20403278
+1fe0fe01
+2040327b
+c1810000
+2040327a
+2020324f
+1c427e00
+da200136
+204032bf
+e0a20000
+2020327a
+da200d9e
+20402f94
+1a608aeb
+e0a88000
+18467c50
+24610000
+20202c8a
+df200100
+20202e62
+20402f99
+20402fa5
+20202fb1
+58000180
+204032d0
+207a0000
+d8e0000b
+20407f16
+247a0000
+204032a7
+58000001
+60008d54
+58000000
+e0a38000
+202031b8
+5800017e
+204032d0
+207a0000
+d8e0000e
+20407f16
+247a0000
+204032aa
+d8a00d64
+df200002
+20407ec6
+700d6400
+202031ed
+5800017f
+204032d0
+207a0000
+d8e0000c
+20407f16
+247a0000
+204032ad
+d8a00d74
+df200002
+20407ec6
+700d7403
+20203207
+2040328f
+c1808000
+20402fc1
+20202fcb
+20403294
+c3808000
+79207e01
+20403297
+2040329c
+20402c83
+58000000
+da200106
+204032bf
+202032c5
+2040316e
+2437af5e
+1a608c00
+58000109
+9a608a00
+df200008
+20407f01
+5800010b
+204032d0
+c0552fd9
+c02aafed
+c0113001
+c07fb212
+20202f5e
+204032bd
+c000afdd
+c0012fe8
+20600000
+58000001
+20402ff7
+58000001
+20403289
+58000080
+da200130
+204032b3
+2040327d
+da200131
+204032bf
+2020322d
+58000001
+20402fff
+58000002
+20403289
+20202fe1
+204032bd
+c000aff1
+c0012ff9
+20600000
+20402fdf
+58000106
+204032d0
+c000aff6
+20600000
+58000002
+da200106
+202032b3
+20402fea
+58000107
+204032d0
+c000affe
+20600000
+58000002
+da200107
+202032b3
+204032bd
+c000b005
+c0013011
+20600000
+58000106
+204032d0
+c0013009
+20600000
+2040328b
+1fe1fe01
+2040328d
+58000000
+58000106
+9a608a00
+e0a10000
+20202f5e
+58000107
+204032d0
+c0803015
+20600000
+2040328b
+1fe1fe02
+2040328d
+2020300c
+68008d50
+207a0000
+700d5000
+68010d4e
+d84002ba
+98467c00
+24628000
+68008cb6
+c1dd0000
+68008cb7
+44df4017
+c050303b
+c050b02c
+c0533041
+c053b043
+c054b049
+c058304d
+700d4200
+20600000
+68008cb8
+c000b031
+c0423034
+c053b039
+2020302a
+2040328b
+60008cf7
+2020303f
+20403291
+20403296
+2040328b
+60008cf7
+2020303f
+700cf7a1
+2020303f
+68008cb8
+c040b03e
+2020302a
+20403090
+700d4201
+20600000
+700cf715
+2020303f
+2040328f
+c0003047
+c000b039
+20600000
+700cf7a0
+2020303f
+700cf700
+700cf800
+700cf901
+2020303f
+2040329c
+68008cb8
+1fe0fe02
+1fe27200
+d8c00cb6
+5800013c
+9a608a00
+20207f01
+44dfc017
+2040307d
+20402c7f
+204048d3
+20203057
+2040328f
+c1800000
+20402f51
+20203098
+2040328f
+c1808000
+20402fc1
+20402fcb
+2040328b
+207a0000
+20403286
+20402f4c
+20403093
+58000000
+1a608aa7
+2020322d
+20407fe9
+1a60a2a7
+ea2a0000
+1c427e00
+98467c00
+24412d18
+1fe22400
+1a60a2a7
+ea220000
+1a60a2ab
+ea288000
+98408400
+1a427e00
+98467c00
+24610000
+793ffe1c
+1a608aa7
+e0a20000
+20207fe7
+58000001
+20403287
+20403283
+580000ff
+1a608aab
+e0a08000
+20203067
+5800015c
+204032d0
+207a0000
+2040306a
+24740000
+20403281
+1fe0fe01
+1fe17e01
+20403284
+c0002f4c
+c000b090
+20600000
+58000001
+20403292
+20203296
+58000001
+204032a5
+58000280
+d8e00008
+20207f08
+204032a2
+207a0000
+d8e00008
+20407f16
+247a0000
+204032a4
+58000007
+20403292
+20403296
+20202f5e
+44e04018
+2040328f
+c1838000
+204030cb
+204030e0
+2040316e
+2437af5e
+204030bc
+2042b172
+20402f4c
+20403294
+79207e00
+20403297
+20402f5e
+20403093
+204030bc
+2022b0c1
+58000164
+204032d3
+204030be
+2022b0c5
+58000160
+204032d3
+204030be
+2022b0c8
+20600000
+5800012b
+204032d3
+2040322a
+98467c00
+20600000
+58000182
+204032d0
+1a608a91
+202032b4
+58000185
+204032d0
+202030c3
+58000188
+204032d0
+202030c3
+20403294
+c3838000
+79207e07
+20403297
+20403283
+2040329c
+58000000
+1a608af5
+e0a18000
+da200183
+204032bf
+e0a38000
+204030bc
+24628000
+1a60a291
+ea208000
+da200182
+204032b3
+1a60a290
+ea208000
+2020314a
+44e0c018
+20403281
+1fe0fe01
+1fe17e03
+20403284
+c000310e
+c000b132
+c00130ea
+c001b132
+20600000
+20402fdf
+58000160
+2040327e
+203a30e0
+2040322c
+58000189
+204032d0
+205a3108
+58000187
+204032d0
+2040322f
+1a60a2f7
+ea288000
+da200f9e
+20402e58
+1a608af7
+e0a88000
+20402f94
+1a608afa
+e0a88000
+18467c50
+24610000
+58000188
+20403275
+20402c90
+da200188
+204032c8
+e0a88000
+da200187
+202032b3
+58000001
+da200189
+204032b3
+d8400000
+20402c94
+20203106
+20402fea
+58000164
+2040327e
+203a30e0
+2040322c
+58000186
+204032d0
+205a312c
+58000184
+204032d0
+2040322f
+1a60a2f6
+ea288000
+da20109e
+20402e58
+1a608af6
+e0a88000
+20402f94
+1a608af9
+e0a88000
+18467c50
+24610000
+58000185
+20403275
+20402c90
+da200185
+204032c8
+e0a88000
+da200184
+202032b3
+58000001
+da200186
+204032b3
+d8400000
+20402c94
+2020312a
+20402fdf
+2040327d
+2040322c
+58000183
+204032d0
+205a314c
+2040314f
+1a60a2f5
+ea288000
+da200e9e
+20402e58
+1a608af5
+e0a88000
+20402f94
+1a608af8
+e0a88000
+18467c50
+24610000
+58000182
+20403275
+20402c90
+da200182
+204032c8
+e0a88000
+da200181
+202032b3
+58000001
+da200183
+204032b3
+58000181
+204032d0
+2020322f
+1a60a200
+ea208000
+2040323c
+20402dde
+2040325f
+2feffe00
+2020b15c
+2040315d
+20402d53
+20402df7
+20202e45
+44e14018
+1a608a86
+204032d6
+5800013b
+204032d0
+207a0000
+58000006
+1a608a86
+e0a08000
+df200006
+5800012f
+9a608c00
+1a608a22
+20207f01
+2040316e
+2437af5e
+20203172
+20402f5e
+20402e11
+24778000
+20203152
+44e1c018
+20403188
+24342f5e
+1a60a284
+ea208000
+203a2f5e
+1fe0fe02
+98007200
+1a608c00
+58000109
+9a608a00
+20407f01
+20403286
+204032b6
+205a3093
+5800010b
+204032d0
+c000b19e
+c00131c6
+c001b1f2
+c07fb212
+20202f5e
+20402c7a
+20407fe9
+1a60a2ca
+ea208000
+1a60a2cb
+ea288000
+98467c00
+2442ffe7
+1a60a2ca
+ea208000
+1a608acb
+e0a08000
+1a60a2c4
+ea218000
+1a60a2c7
+ea298000
+98467c00
+2442ffe7
+1a60a2c4
+ea218000
+1a608ac7
+202032c5
+20402f88
+2040324c
+60008aa2
+20403274
+68008aa2
+284ffe03
+7920fe00
+1a608ab2
+e0a08000
+c000b216
+20403245
+20403274
+284ffe04
+7920fe00
+20403249
+1a60a2de
+ea210000
+20207f9c
+58000001
+60008d54
+2040329e
+e0a38000
+2040329e
+245a31bd
+2040329e
+205a31c2
+700d5220
+68008d38
+79207e02
+60008d38
+20600000
+58000001
+204032a8
+58000140
+d8e0000b
+20207f08
+204032a7
+58000000
+d8e0000b
+20207f08
+20403274
+284ffe03
+2020b21b
+d8a00d64
+204031e0
+68040d64
+245a31e4
+68040d64
+205a31e9
+20402c7a
+68040d64
+da200168
+204032bf
+e0a40000
+58000170
+9a60a200
+ea2c0000
+98467c00
+2442b1ed
+58000168
+9a60a200
+ea240000
+da200170
+204032bf
+e0a40000
+20202f5e
+5800010b
+9a608c00
+df200009
+20207ff3
+58000001
+204032ab
+58000140
+d8e0000e
+20207f08
+204032aa
+58000000
+d8e0000e
+20207f08
+700d5110
+68008d38
+79207e01
+60008d38
+20600000
+d8a00d74
+204031e0
+68010d75
+245a3209
+68010d75
+205a320e
+20402c7a
+68018d74
+da200178
+204032c4
+5800017b
+9a60a200
+ea298000
+98467c00
+2442b207
+58000178
+9a60a200
+ea218000
+da20017b
+204032c4
+20202f5e
+700d5221
+202031b9
+58000001
+204032ae
+58000140
+d8e0000c
+20207f08
+204032ad
+58000000
+d8e0000c
+20207f08
+204032bd
+c000b216
+c001321b
+20600000
+5800010d
+2040327e
+da200160
+204032bf
+2020322d
+5800010d
+2040327e
+da200164
+204032bf
+2020322d
+20402c7a
+1a608acd
+e0a08000
+20600000
+20402c7a
+1a60a2be
+2020327f
+20402c7a
+1a608abe
+2020322d
+1a60a2ae
+2020327f
+1a608aae
+e0a20000
+20600000
+1a608a90
+202032b4
+58000000
+20402c7a
+1a608a85
+202032b4
+1a608a42
+202032b4
+58000004
+1a608acc
+202032b4
+1a60a287
+202032d1
+1a608a87
+202032b4
+58000002
+1a608ad0
+202032b4
+58000001
+20402c7a
+1a608ace
+202032b4
+20402c7a
+1a60a2b4
+202032d1
+58000001
+20402c7a
+1a608ab4
+202032b4
+20402c7a
+1a60a2b2
+202032d1
+58000001
+20402c7a
+1a608ab2
+202032b4
+20402c7a
+1a60a296
+202032d1
+1a608a96
+202032b4
+1a60a2cf
+202032d1
+58000000
+1a608acf
+202032b4
+1a60a2d2
+202032d1
+1a60a201
+202032d1
+1a60a2b5
+202032d1
+58000000
+20402c7a
+1a608ab5
+202032b4
+20402c7a
+1a60a2fb
+ea208000
+6000c1de
+20600000
+20402c7a
+6800c1de
+1a608afb
+202032b4
+1a60a2fc
+202032d1
+1a608afe
+202032b4
+58000109
+9a60a200
+ea288000
+20600000
+58000135
+202032d0
+58000000
+da200135
+202032b3
+5800012b
+204032cd
+ea220000
+20600000
+5800015f
+202032d0
+58000000
+da20015f
+202032b3
+58000000
+da20015c
+202032b3
+da20012f
+202032b3
+58000108
+202032d0
+da200108
+202032b3
+58000105
+202032d0
+58000000
+da200105
+202032b3
+58000104
+202032d0
+58000000
+da200104
+202032b3
+58000000
+da20013b
+202032b3
+58000001
+2020329a
+5800010c
+204032cd
+ea238000
+20600000
+5800015e
+202032d0
+58000000
+da20015e
+202032b3
+58000000
+da200180
+202032b3
+58000000
+da20017e
+202032b3
+58000000
+da20017f
+202032b3
+da200102
+202032b3
+da200103
+204032c7
+e0a08000
+20600000
+5800015d
+202032d0
+da20015d
+202032b3
+5800018a
+204032d0
+2020326a
+5800010c
+202032d0
+1fe20400
+1a227e00
+9a608a00
+18427e00
+20600000
+204032bf
+e0a18000
+20600000
+20402c7a
+1fe22400
+1a227e00
+9a608a00
+1a427e00
+20600000
+20402c7a
+9a60a200
+20600000
+204032cd
+ea208000
+20600000
+204032cd
+ea2a0000
+20600000
+58000000
+202032b4
+44e24018
+6800c092
+203a32d8
+c0022f30
+c007b436
+c004c5de
+c005392a
+c00735bf
+c00844a4
+c2833d00
+20600000
+44e2c018
+70015100
+70017f00
+70018000
+58000000
+600289ae
+6800c092
+203a32e3
+c0053962
+20600000
+20407cd1
+20407d9c
+204032f6
+680141f3
+20207f9c
+680141f1
+20207f9c
+680141ef
+20207f9c
+44e34018
+da204668
+20407fc4
+207a0000
+1fe22600
+204032ff
+20203324
+da600000
+20600000
+c000b311
+c0083357
+c002b335
+c009333c
+c0033353
+c0023394
+c0013399
+c009b394
+c00a334b
+c00ab34f
+c001b32e
+c005b340
+c0063347
+c00b335b
+c00c332a
+c015331a
+c015b318
+20600000
+68014682
+79207e00
+60014682
+6801420a
+793ffe00
+6001420a
+20600000
+70022900
+20600000
+68008229
+1fe0fe01
+60008229
+1fe67c01
+202133df
+70022900
+6801420a
+79207e09
+6001420a
+202033e9
+680141f5
+20207f9c
+680141e9
+20207f9c
+680141ed
+20207f9c
+6801420a
+79207e01
+6001420a
+20203412
+68014682
+79207e07
+60014682
+6801420a
+79207e02
+6001420a
+20600000
+68014682
+79207e01
+60014682
+6801420a
+79207e04
+6001420a
+20600000
+68014682
+79207e03
+60014682
+20600000
+68014682
+79207e05
+60014682
+6801420a
+79207e03
+6001420a
+20600000
+68014682
+793ffe05
+60014682
+20600000
+68014682
+79207e09
+60014682
+20600000
+68014682
+793ffe09
+60014682
+20203418
+68014682
+79207e02
+60014682
+20600000
+6801420a
+79207e00
+6001420a
+20600000
+6801420a
+79207e08
+6001420a
+202033e9
+44e3c018
+6000822a
+6800822a
+207a0000
+1fe0ffff
+6000822a
+20407cdd
+204033d6
+20403387
+2040338d
+2040651b
+680141fd
+20407f9c
+20203361
+ea608000
+207a0000
+1fe0ffff
+e2608000
+247a0000
+1a427e00
+20207f9c
+ea610000
+207a0000
+1fe0ffff
+e2610000
+247a0000
+1a427e00
+20207f9c
+6809423f
+1840a601
+da40337f
+2020336d
+2040342d
+c000b382
+2020340a
+58000002
+e2608000
+1840a408
+ea410000
+20207f9c
+da604205
+da40338a
+2020336d
+20402252
+2022b40e
+20600000
+da60467e
+da403390
+20203374
+204033f0
+20403408
+680141f7
+20207f9c
+204033ac
+68014682
+793ffe07
+60014682
+20600000
+70420500
+68014682
+c283b39e
+2fec0001
+2040b2fd
+44e44019
+68014682
+793ffe00
+793ffe01
+793ffe02
+793ffe03
+793ffe07
+60014682
+20203418
+204033a9
+2020340a
+58000000
+60014208
+20600000
+58000000
+6001420a
+20600000
+6801420a
+60014208
+58000000
+6001420a
+20600000
+6801420a
+79207e07
+60014208
+58000000
+6001420a
+20600000
+6800c682
+2feffe05
+20600000
+5800aa55
+60010aaa
+44e4c019
+d8400002
+da200aaa
+da4000c3
+20206606
+44e54019
+d8400002
+da200a9a
+da4000c3
+204065df
+68010a9a
+d840aa55
+98467c00
+20600000
+6800c55a
+6000c205
+20600000
+d8e00009
+20202c32
+d8e00009
+20202c36
+70420605
+202033d0
+da604206
+da4033d2
+2020336d
+70436301
+20600000
+70436300
+20600000
+700a990a
+20207d8f
+700a991d
+20207d8f
+44e5c019
+6800c207
+6000816d
+70022801
+700a9903
+20207d8f
+700a991e
+20207d8f
+700a9904
+20207d8f
+68014687
+6001467e
+20403404
+700a9901
+20207d8f
+58000000
+6001467e
+700a9902
+20207d8f
+700a990f
+20207d8f
+700a9910
+20207d8f
+700a990e
+20207d8f
+700a990d
+20207d8f
+700a9917
+20207d8f
+700a9918
+20207d8f
+700a9916
+20207d8f
+700a9911
+20207d8f
+700a9915
+20207d8f
+700a9914
+20207d8f
+700a9913
+20207d8f
+700a9919
+20207d8f
+700a9906
+20207d8f
+700a9905
+20207d8f
+700a991f
+20207d8f
+700a9920
+20207d8f
+700a9925
+20207d8f
+7920000d
+20600000
+793f800d
+20600000
+2040342d
+c0013424
+58000001
+e2608000
+1840a203
+1840a406
+ea288000
+1a60a601
+e2688000
+20203385
+58000000
+e2608000
+68014682
+c304b429
+20403402
+6809423f
+1840a202
+1840a404
+20203420
+6809423f
+1840a600
+ea608000
+20600000
+2040342d
+c0803434
+2020340a
+1840a40a
+20203385
+20758000
+70808100
+58003463
+600141eb
+5800696c
+600141ed
+580034f5
+600141f3
+580034f4
+600141ef
+5800347e
+600141f5
+580034b2
+600141fd
+58003465
+600141fb
+58003470
+600141e9
+58003501
+600141f9
+44e64019
+2040359b
+20406948
+204035ad
+20407d08
+20407cd3
+5800350b
+60014766
+580034fc
+6001475d
+580034f8
+6001475f
+5800346c
+60014761
+580035a2
+600146a9
+580035a4
+600146ab
+580035a9
+600146b4
+580035a6
+600146b6
+68014682
+c3860000
+2020340a
+20403586
+2020340a
+20405892
+247a0000
+da200b06
+20407e54
+24740000
+d8c00b06
+20204746
+68014797
+60014791
+70475301
+2020358f
+6800c79d
+c000b479
+68014682
+c304b479
+6800c79e
+c000b3d0
+6800c700
+243a33d0
+202033d2
+6800c79b
+6808c79c
+9841fe00
+c000b3d0
+202033d2
+1a627e00
+c016b431
+c008341a
+c00a34df
+c00ab4e8
+c0203485
+20600000
+68014509
+c000b48c
+680143d8
+203a34a2
+70478a02
+70478f3c
+20600000
+6801449a
+203a34a0
+70478a01
+680947b4
+68014496
+9840fe00
+60014496
+1fe22200
+68014498
+9840fe00
+60014498
+9a20fe00
+1fe30400
+680147c0
+9846fc00
+20407f86
+1807fe00
+6001449a
+70479001
+20600000
+70478a03
+20600000
+70417200
+70479000
+680143d6
+680947be
+98467c00
+79212200
+680147c0
+680943d6
+98467e00
+79212201
+2a200603
+20608000
+680447be
+60044496
+70479001
+20600000
+2040337b
+204034b9
+204034be
+204034d5
+204034ca
+204034c4
+202034d9
+da604799
+da4034bc
+2020336d
+70479a00
+20600000
+da604793
+da4034c1
+20203374
+da6046bf
+da40469e
+20203591
+da60478f
+da4034c7
+2020336d
+6801449a
+6000c172
+20600000
+da604790
+da4034cd
+2020336d
+6800843f
+2fe0c000
+2420b4d3
+70478a01
+20403416
+20205abf
+70479001
+20600000
+da604791
+da4034d8
+20203374
+2020341a
+da60478d
+da4034dc
+20203374
+680147a7
+6001478d
+202035af
+680147a7
+6001478d
+58000000
+60014793
+60014791
+2040355c
+20403586
+70417200
+202033f8
+58000000
+6002478d
+6001c78a
+60014509
+7047a001
+68014797
+60014791
+20407e38
+6800c759
+c1000000
+2040358f
+2020356e
+20203508
+6800c759
+c1810000
+20203508
+da6046cd
+20403582
+da6046c6
+20203584
+70436e00
+da6046db
+20403582
+da6046d4
+202034fb
+68008477
+c0093504
+20600000
+68010478
+c006b536
+c005b571
+20600000
+6800c753
+207a0000
+20206978
+1a227e00
+203a3510
+18e27e00
+c0003513
+20600000
+18e27e00
+c000351b
+20600000
+70479d01
+da6046f7
+20403582
+da6046f0
+20403584
+68014682
+c304b532
+20203521
+70479d00
+2020351d
+6800c79a
+c1808000
+70479905
+20600000
+6800c79a
+1fe0fe01
+6000c79a
+c000b527
+c001352b
+20600000
+2040355c
+70477101
+da60476c
+20203544
+70479a00
+70477102
+da60476c
+20403544
+6800c79e
+c000b551
+20600000
+68014797
+60014791
+2040355c
+2020358f
+44e6c019
+204036fc
+ea208000
+c001b53c
+c003b540
+20600000
+6800c79e
+c0003551
+c000b55c
+20600000
+ea408000
+c000b564
+c0003569
+20600000
+44e74019
+6800c78b
+2feffe00
+24608000
+1a608c06
+e8c10000
+1ff0fe00
+1fe0f205
+1a608c03
+204036f0
+e0c08000
+1a622200
+20207e3d
+6800c759
+207a0000
+70479e01
+da6046e9
+20403582
+da6046e2
+20403584
+70478004
+70478301
+da60477b
+20203544
+6800c79e
+207a0000
+70479e00
+20403586
+70478004
+70478300
+da60477b
+20203544
+70479f01
+70478007
+70478301
+da60477b
+20203544
+70479f00
+70478007
+70478300
+da60477b
+20203544
+6800c79f
+207a0000
+20203551
+ea210000
+6001478b
+2feffe00
+24608000
+6800c7a0
+207a0000
+7047a000
+680447b6
+60044496
+70479002
+204035af
+204035b9
+70478007
+6800c79f
+6000c783
+da60477b
+20203544
+da200001
+20203585
+da200000
+2020358c
+da200000
+20407d19
+da200001
+20407d19
+6800c7a1
+202069d7
+20407d04
+df200007
+20207d26
+da6046b8
+da40469a
+20403596
+20403584
+68014795
+60014793
+202033fa
+ea410000
+60014154
+e8c10000
+60014482
+20600000
+da200000
+204069a6
+680347a1
+60030a9a
+204069ae
+6800c7a1
+202069d7
+70479b01
+20600000
+70479b00
+20600000
+70479c00
+6800c7a1
+202069d7
+70479c01
+680347a1
+60030a9a
+202069ae
+70422d00
+202068a8
+204068eb
+20406908
+600147b0
+da2047aa
+20406930
+6000c7a9
+c00035be
+1fe67c64
+242135bc
+6000c783
+70478005
+da60477b
+20203544
+70478364
+202035b9
+2020341a
+20758000
+68108081
+1fe17ef0
+60108081
+58003631
+600141eb
+58003633
+600141ed
+5800340a
+600141f7
+58003635
+600141f3
+5800364b
+600141f5
+580033d0
+600141e9
+580036f6
+600141f9
+5800367a
+600141fd
+20402c7a
+58003722
+1a608ade
+e0a10000
+580035ed
+6001475b
+580035ef
+6001475f
+44e7c019
+20403628
+20407e38
+70417202
+7049f600
+6800c7cb
+6000c69a
+c00035ee
+6800c7cc
+6000c686
+70436e00
+2040360f
+20407cd3
+20407cdd
+7047f301
+68014682
+c3860000
+2020340a
+2020360f
+7047f302
+70436e01
+2040360f
+da200000
+20407d1e
+58000020
+204046f0
+d8a043b7
+6800c4a0
+1fe104f0
+18518400
+20403609
+e0a88000
+1fe1040f
+20403609
+e0a88000
+204057a6
+6808c3af
+18427200
+d8a04372
+d8c043b0
+20407f01
+6808c3af
+18427200
+d8a04392
+d8c043b0
+20207f01
+18467c09
+2021360d
+18408437
+20600000
+18408430
+20600000
+6800c7c0
+c0ffb621
+6800c7be
+c0ffb624
+6800c7c9
+c0ffb626
+6800c72c
+1fe27200
+5800472d
+1fe22200
+1a220c00
+e8c08000
+18c22200
+c07fb61f
+1fe20400
+2040680e
+c2003619
+20600000
+680447c0
+6004472f
+20203611
+6000c72d
+20203613
+6000c72e
+20203615
+da200000
+204069a6
+204037e4
+20402c7d
+2020362d
+7047cf64
+6800c7c9
+6000c744
+202068a8
+20406835
+2020696c
+2020696c
+20206978
+20403642
+204037ee
+20403639
+20203634
+68014682
+c3848000
+6800c9f6
+c000b63e
+20600000
+6800c7ea
+c1008000
+7047ea01
+20203654
+68014682
+c4048000
+20405892
+247a0000
+da204718
+20407e54
+24740000
+d8c04718
+20204746
+1a627e00
+c016b431
+c008341a
+c00a3651
+c00ab660
+20600000
+58000000
+20403220
+20203656
+680147eb
+600147ed
+7047ce14
+70409100
+204033f8
+20403416
+6800c7bd
+c000b65e
+da200000
+20207d14
+da200000
+20207d19
+58000002
+20403220
+58000000
+6002c79c
+58000004
+204069d7
+58000005
+204069d7
+58000014
+204069d7
+58000015
+204069d7
+58000016
+204069d7
+58000007
+204069d7
+20407e38
+70475e0a
+7047600a
+7047620a
+70417202
+da200000
+20407d1e
+58000020
+204046f0
+202033fa
+2040373b
+2040373e
+20403741
+2040337b
+204036c8
+204036a1
+2040368a
+20403683
+2020368f
+da60479a
+da403686
+2020336d
+20403847
+24608000
+70479b01
+20600000
+da6047ed
+da40368d
+20203374
+7047ea02
+20203662
+da6047f1
+da403692
+2020336d
+6800c7f2
+203a369e
+7047f102
+7047f200
+58000a02
+60014752
+6800c7b9
+c001b69b
+20203762
+58000a02
+60014754
+20203762
+58000000
+60024752
+20203762
+6800c7c8
+207a0000
+68014682
+c304b6c6
+da6047ce
+da4036a8
+2020336d
+6800c7cd
+6000c7ce
+6800c7d1
+247a0000
+204068eb
+20406908
+600147e8
+da2047e2
+20406930
+6808c7cf
+98467c00
+202136b6
+6000c7cf
+1fe20400
+6008c7d0
+6800c7ca
+98467c00
+204136c1
+6008c7db
+df200006
+d8c047d6
+204036f0
+6000c7dc
+da2047d3
+20207e3d
+6800c7d2
+247a0000
+7047d201
+da200001
+20207d1e
+da200001
+20207d19
+da6047a4
+da4036cb
+2020336d
+7047a405
+7047a600
+6800c7a5
+c000b6ee
+c00036ec
+d8c0479c
+18c22200
+df200008
+1a220c00
+e8c08000
+18c22200
+c00036e3
+c000b6e6
+c00136e9
+6800c7a6
+1fe0fe01
+6000c7a6
+c20036d3
+20600000
+6800c7a6
+da4047c0
+9a40a400
+ea488000
+20600000
+204036de
+20406825
+202036d9
+204036de
+20406829
+202036d9
+6800c7a5
+c000b6e3
+202036e6
+7047a501
+202036d0
+7047a500
+202036d0
+da200000
+e8c08000
+9a20a200
+c20036f1
+1a217eff
+20600000
+68008477
+c00936f9
+20600000
+68010478
+c00a3710
+20600000
+44e8401a
+ea228000
+60028b12
+68010b12
+d8406b5a
+98467c00
+24628000
+68010b15
+1ff0fe00
+60010b15
+1fe27200
+1a20a205
+1a220c00
+d8a00b17
+20407f01
+e8c08000
+60008b21
+da200b14
+da400b17
+20600000
+58000000
+6002c752
+6002c757
+204036fc
+1a420c00
+d8a04752
+df20000a
+20407f01
+44e8c01a
+ea208000
+c001374a
+c001b75c
+c0023762
+c002b762
+c00337b1
+c003b849
+c004384c
+20600000
+68014682
+c3848000
+680147eb
+600147ed
+7049f601
+5800010c
+204032cd
+20403710
+68008b14
+c002372e
+c002b72e
+20600000
+6800c752
+245a3735
+6800c754
+245a3737
+6800c756
+245a3739
+20600000
+7049f305
+20600000
+7049f405
+20600000
+7049f505
+20600000
+da6049f3
+da403744
+2020336d
+da6049f4
+da403746
+2020336d
+da6049f5
+da403748
+2020336d
+70475200
+20203762
+70475400
+20203762
+70475600
+20203762
+2040374c
+2020374f
+6800c752
+6000c75f
+20203773
+6800c75e
+20403754
+6800c753
+6000c75d
+20203770
+c0013758
+c001b75a
+6000c75e
+20600000
+70475e05
+20600000
+70475e0a
+20600000
+6800c752
+20403754
+6800c75e
+2040379e
+204037a1
+202069c4
+6800c7f0
+247a0000
+68034752
+6003475d
+6800c75e
+6808c760
+98417e00
+6808c762
+98417e00
+205a3779
+44e9401a
+20403770
+20403773
+20203776
+da404763
+d8c0475d
+2020377b
+da40476b
+d8c0475f
+2020377b
+da404773
+d8c04761
+2020377b
+7047d100
+20600000
+e8c08000
+c0003787
+c000b780
+c0013782
+20600000
+70477b00
+20203783
+70477b01
+e8c08000
+6000c77d
+ea440000
+2020378c
+ea408000
+204069d7
+1a40a401
+ea408000
+202069d7
+6004477e
+7047d101
+6800c77b
+c000379a
+6800c77f
+6000c780
+6800c77e
+204069d7
+6800c77d
+2040379e
+6000c785
+68034780
+60030a9a
+202069ae
+6800c77e
+6000c780
+6800c77f
+20203793
+1feffe05
+1fe0fe32
+20600000
+d8402ee0
+984ffe00
+1fe6fc64
+20407f86
+18078400
+18422200
+58002ee0
+98462400
+20600000
+68108082
+79207e02
+60108082
+5800009e
+60110068
+6011006a
+20600000
+6800c7f0
+247a0000
+68014752
+60014787
+6800c7ea
+c080b7b9
+680144a0
+60014787
+44e9c01a
+204037aa
+204037dc
+5800bb80
+20402a8f
+204037e0
+58001c20
+20402a8f
+df200010
+204037dc
+68014787
+c28037c9
+58001c20
+20402a8f
+204037e0
+202037cc
+58003840
+20402a8f
+204037e0
+58001c20
+20402a8f
+68014787
+1fe37e00
+60014787
+c20037c2
+7047f102
+7047f201
+58000a01
+60014752
+6800c7b9
+c001b7d9
+20203762
+58000a01
+60014754
+20203762
+68108085
+1fe1fe40
+60108085
+20600000
+68108085
+1fe17ebf
+60108085
+20600000
+6800c7bb
+c1000000
+20402c65
+6808c7bc
+6008c786
+204067fb
+20403847
+24608000
+70479a01
+20600000
+6800c7bb
+c1000000
+6800c79b
+247a0000
+68014682
+c284b7f6
+6800c7ea
+c1808000
+44ea401a
+20403847
+24608000
+58008ca0
+20402a8f
+20403847
+24608000
+2040383f
+20403842
+24610000
+20403847
+2020b7fe
+da200000
+df200010
+2040383f
+20403842
+24610000
+20403847
+2420b805
+58002a30
+20402a8f
+20403847
+2020b812
+58000000
+1a232200
+9a21a200
+c2003805
+2020381b
+58008000
+1a232200
+9a21a200
+2040383f
+20403842
+24610000
+20403847
+2020b816
+c2003805
+44eac01a
+1a227e00
+60014789
+60014797
+6800c7ea
+c000b827
+df200007
+d8c04792
+204036f0
+6000c799
+da20478f
+20207e3d
+6800c7ef
+1fe0fe01
+6000c7ef
+1fe6fc02
+20407f86
+18078400
+18077e00
+243a3838
+6800c7bf
+98467c00
+2042b83d
+dfe0479c
+184085ff
+9840a200
+dfe00000
+e2208000
+20600000
+dfe0479c
+9840a200
+dfe00002
+e2208000
+20600000
+7047f001
+20600000
+1c427e00
+6002478b
+20600000
+1c427e00
+680a478b
+98467e00
+1fe67cc8
+20600000
+6808c786
+2020681d
+68044752
+6004479c
+20600000
+6800c7b9
+6000c7af
+6800c7ba
+6000c7b0
+6800c7bb
+6000c7b1
+df20000d
+d8c047aa
+204036f0
+6000c7b7
+da2047a7
+20207e3d
+204065c2
+7046f67a
+2040386d
+20403867
+58003860
+600141fd
+da200000
+202069a6
+680146a1
+207a0000
+1fe0ffff
+600146a1
+c1800000
+7046a000
+20600000
+44eb401a
+6800c6a4
+1fe67c28
+20610000
+7046a400
+20600000
+da2046a4
+da400000
+d8400051
+202065df
+78547c00
+6800c6a3
+1fe27200
+da2046a5
+1a622400
+44ebc01a
+2040387c
+2022ffe7
+1a20a204
+c2003876
+20600000
+44ec401b
+ea218000
+ea498000
+98467c00
+20600000
+44ecc01b
+ea218000
+ea498000
+98467c00
+24628000
+e8c08000
+1fe67c00
+20628000
+1a208c03
+e8c88000
+98467c00
+20600000
+44ed401b
+78547c00
+6800c6a3
+1fe27200
+da2046a5
+1a622400
+20403881
+2022ffe7
+1a20a204
+c2003893
+20600000
+68008004
+1fe0fe01
+60008004
+da6002e5
+ea610000
+d84055aa
+98467c00
+24628000
+18c22600
+ea698000
+58ffffff
+98467c00
+2022b8a8
+2040388d
+203438a8
+20600000
+44edc01b
+1a60a604
+ea608000
+6808c6f6
+98467c00
+20628000
+6000c6f6
+68008003
+1fe0fe01
+60008003
+1a60a601
+ea608000
+6000c6f5
+1fe27200
+207a0000
+e8c08000
+c00038c2
+c000b8cf
+c00138d4
+c001b8d9
+c00238de
+c002b8e3
+c00338e8
+c07fb8ea
+c20038b7
+20600000
+18c22600
+6800c69a
+60008a9a
+d8400000
+60088a9b
+58002710
+60018a9c
+ea608000
+60008a9f
+204069ae
+1a610c01
+c20038b7
+20600000
+1a620c00
+6800c69b
+60008a9a
+d8400001
+202038c6
+1a620c00
+6800c69c
+60008a9a
+d8400002
+202038c6
+1a620c00
+6800c69d
+60008a9a
+d8400003
+202038c6
+1a620c00
+6800c69e
+60008a9a
+d8400004
+202038c6
+1a620c00
+6800c69f
+60008a9a
+d8400005
+202038c6
+e8c08000
+20600000
+18c22600
+6800c6a0
+c080b8ee
+204038f0
+1a610c04
+20600000
+44ee401b
+20403871
+203438fe
+6800c6a4
+1fe20400
+1fe0fe01
+6000c6a4
+20403867
+184b8400
+580046a5
+98408a00
+ea620000
+e0a20000
+20203903
+1a608c03
+e8c08000
+207a0000
+ea620000
+e2220000
+da2046a4
+da400000
+d8400051
+20206606
+6808c69a
+20406825
+20600000
+6808c69a
+20406829
+6808c69a
+20406825
+2040391d
+6800c6a7
+247a0000
+20402c29
+68120138
+793ffe0f
+6012004c
+20402c21
+d85fffff
+20202b2a
+6800c6a7
+203a56f9
+1fe0ffff
+6000c6a7
+202056f9
+1feffe14
+d8c046a8
+98c08c00
+e8c08000
+207a0000
+1fe22200
+1a227200
+d8a04372
+20407f01
+1a227e00
+1fe0fe02
+6000c36f
+20600000
+20758000
+204057a3
+204068a8
+58003982
+600141f3
+5800396e
+600141f1
+58003986
+600141f5
+5800396d
+600141ef
+58003969
+600141e9
+58003ab7
+600141fb
+58003c32
+6001456f
+58003cc2
+600141f9
+58003cd7
+600141fd
+2040397f
+44eec01b
+20403945
+20403964
+20402c6f
+20203c48
+680246aa
+60120054
+680246ae
+6012005a
+68108081
+1fe1fe04
+1fe17efc
+60108081
+70806200
+680146aa
+60110058
+680146ae
+6011005e
+60110060
+68120078
+79207e07
+60120078
+68110050
+793ffe0f
+60110050
+204066ce
+70804300
+70806281
+6800c6bf
+2feffe00
+68188062
+79208404
+60188062
+20600000
+2040397f
+20203945
+6808c69e
+2040680e
+204039e6
+6808c69c
+202067fb
+6808c69c
+2040681d
+2420b3d2
+202033d0
+20600000
+20403970
+20203ce9
+6800c682
+c302397f
+44ef401b
+58003eff
+680a46c5
+98408400
+1c427e00
+98467c00
+24610000
+68014682
+c282b97f
+6800c6bf
+c3830000
+20403cec
+2040340e
+1c427e00
+600246c5
+20600000
+20403ce9
+2040526e
+247a0000
+202039eb
+1a627e00
+c000b9d4
+c00139a3
+c00239d7
+c002b9c4
+c00439aa
+c004b9b1
+c00539c9
+c005b9b6
+c00639c2
+c009b9d7
+c00a39cf
+c00ab9c6
+c010b9ca
+c011b9cb
+c01239ce
+c0183c8a
+c018bc8c
+c0193c9a
+c019bc98
+c01a3c84
+c01abc73
+c01b3c82
+c01bbc8e
+c01c3c90
+c01dbca1
+c01ebc6a
+c020b9d9
+20600000
+2040397f
+6800c665
+245a3c8e
+204039d7
+68014682
+c4020000
+202039b1
+68014682
+79207e04
+60014682
+6800c6a7
+6000c172
+204039e6
+20203c1d
+68014682
+c4020000
+793ffe04
+60014682
+20203c21
+2040397f
+68014042
+1fe37e00
+680941e3
+98467c00
+2422b9bd
+20203416
+6800c6bf
+c3828000
+68110112
+245a3cf0
+2020340c
+20403cee
+20203418
+2040397f
+202039dd
+20405816
+204039d7
+20203c23
+202033dd
+20203cee
+6800c6bf
+c302b40e
+20203cf2
+20203cf2
+204058ba
+204039dd
+6800c6a8
+6000c172
+20203c1f
+70466100
+20403cee
+20203cf2
+20403a52
+202039db
+20405cc9
+20205b02
+6808c69e
+20206829
+204039df
+202039e6
+6800c6a1
+2feffe00
+2040b3f0
+6800c6a1
+2feffe01
+2040b3f8
+20600000
+6808c69e
+20206825
+6800c56b
+c1000000
+20206c28
+6810810c
+c281b9e8
+204066cb
+e8608000
+c080ba01
+68110112
+1fe67c02
+20610000
+e8608000
+60008b03
+e8688000
+18622200
+60088b04
+18408403
+68110112
+98460400
+24610000
+700b0501
+20403a17
+68008b05
+c1000000
+20203a12
+20407ec1
+20403c79
+20203a04
+44efc01b
+68110112
+207a0000
+204066cb
+e8608000
+1fe67c01
+2442ba16
+2422ba04
+e8608000
+c1028000
+c1148000
+186087ff
+20403a16
+20203a04
+204066cb
+18608602
+e8608000
+98608600
+202066c8
+44f0401c
+68008b03
+c0003a3f
+c000ba44
+c0013a49
+c001ba5f
+c0023a6b
+c002ba75
+c004ba9a
+c005bad7
+c0063ad8
+c006baec
+c0073af4
+c007bafa
+c0083b06
+c008bb0e
+c0093b12
+c0133b16
+c0143b1d
+c014bb2d
+c0153b36
+c015bb69
+c0163b6f
+c0183b76
+c018bb7c
+c0193b90
+c019bb98
+c01a3bbb
+c01abbc4
+c01b3bcd
+c01bbbd7
+c01c3bda
+c0203be2
+c0213bec
+c0243bf1
+c024bbfc
+c028bc02
+c030bc06
+c07fbc15
+20203c17
+68008b04
+c0833c17
+e8630000
+600340a0
+20203c1a
+68008b04
+c0833c17
+e8630000
+600344a0
+20203c1a
+68008b04
+c080bc17
+1a220600
+20403c1a
+e8688000
+6008c6a9
+68014682
+c3848000
+c3800000
+6800c6a1
+2feffe00
+2420ba58
+6808c6a9
+18417e03
+6000c093
+6800c6a1
+2feffe01
+24608000
+6808c6a9
+284ffe02
+2020b3fa
+202033f8
+68008b04
+1fe67c43
+24213c17
+6000c515
+df200008
+20407ec6
+68008b04
+1fe27200
+1a220600
+d8a04516
+204066ea
+20203c1a
+68008b04
+1fe67c1d
+24213c17
+6000c3af
+1fe27200
+1a220600
+d8a043b0
+204066ea
+204057a3
+20203c1a
+6800c682
+c3023c17
+204033ba
+2020ba86
+700b0500
+2040397f
+6800c568
+207a0000
+68014573
+c0803a84
+68008b04
+60014573
+1a220600
+18627e00
+60014571
+20403a88
+20206c4d
+700b0500
+20203cd1
+20403a8e
+68014573
+6809469f
+98467e00
+60014573
+20600000
+68014573
+d840006e
+20407fdd
+6809456c
+20407fdd
+6809455e
+20407fdd
+6001469f
+20600000
+700b0501
+700b0305
+20203c1a
+68014682
+c304bc17
+20403ad4
+20343c17
+700b0500
+6800c6bf
+c2823ab4
+6800c6c0
+247a0000
+700b0501
+e8610000
+600146c1
+18627e00
+600146c3
+68008b04
+1fe0fffe
+24213c17
+2022bc17
+6000c6c0
+700b0500
+20405814
+20403ab7
+20403ab7
+20403ab7
+6800c6bf
+c4020000
+700b0501
+20403cf6
+20203c1a
+6800c6c0
+207a0000
+20405892
+247a0000
+20403acf
+44f0c01c
+1840fffd
+6808c6c0
+20407fdd
+1fe22200
+18427e00
+9a267e00
+6000c6c0
+680946c1
+20405a64
+680146c3
+1fe20600
+1a227200
+204066ea
+18627e00
+600146c3
+6800c6c0
+247a0000
+20203cf4
+d8400017
+6800c6bf
+c3808000
+680944a8
+20600000
+6800c6bf
+c2815a42
+20207fe9
+20203c4c
+1a220600
+e8608000
+c0003adf
+c000bae2
+c0013ae8
+c001baea
+20203c17
+2040612b
+70465a00
+20203c1a
+58040003
+6001c65b
+6000c662
+20406124
+70465a01
+20203c1a
+58040002
+20203ae3
+58040001
+20203ae3
+68008b04
+1fe67c10
+24213c17
+6000c689
+1fe27200
+d8a0468a
+204066fd
+20203c1a
+1a220600
+e8608000
+68188062
+7d3a0404
+60188062
+20203c1a
+68008b04
+1fe27200
+1a220600
+20407f58
+596e3600
+9846fc00
+20407f86
+1807fe00
+60014243
+20403c1a
+20407f9e
+202066ce
+da200002
+da40469a
+d8400000
+20203c25
+60010ac2
+da400ac2
+d8400000
+20203c25
+68014682
+c3003c17
+20403c1a
+202033e9
+68014682
+c304bc17
+20403c1a
+20203402
+68008b04
+1fe27200
+1a220600
+68014215
+1fe20a00
+204066ea
+20203c1a
+6800c682
+c3003c17
+e8608000
+6808c661
+793a0400
+79200407
+6008c661
+20403c1a
+6800c661
+c2833b2b
+20600000
+70466100
+700a9921
+20207d8f
+c2805f95
+20203b28
+6800c682
+c4020000
+6800c56b
+c1000000
+e8608000
+6808c569
+98408400
+6008c569
+20600000
+df200040
+d8a0436f
+20407ed4
+58000000
+60008ab2
+1a220600
+18627e00
+60010ab6
+20403b64
+68008ab2
+68088aa2
+18408401
+9840fe00
+60008ab2
+1fe67c1f
+24213b50
+6808c36f
+58004370
+9840fe00
+60010abb
+68088aa2
+18408401
+6800c36f
+9840fe00
+6000c36f
+20203b59
+6808c38f
+58004390
+9840fe00
+60010abb
+68088aa2
+18408401
+6800c38f
+9840fe00
+6000c38f
+68010abb
+1fe20a00
+68010ab6
+1fe20600
+18427200
+204066ea
+68008b04
+68088ab2
+98467c00
+2422bb3c
+20203c1a
+e8608000
+60008aa2
+e8608000
+60008aae
+20600000
+d8400000
+da200002
+680146b4
+60010ac2
+da400ac2
+20203c25
+68008b04
+c080bc17
+e8608000
+6000c6b2
+58000000
+600146b4
+20203c1a
+e8620000
+6002468a
+70468904
+70466300
+20403c1a
+20205f31
+68008b04
+c081bc17
+e8608000
+c0003b82
+c000bb8a
+20203c17
+e8688000
+e8608000
+c0013b88
+7d3a0407
+204067fb
+20203c1a
+20406806
+20203c1a
+e8688000
+20406812
+e8608000
+2feffe00
+2040682c
+20203c1a
+68008b04
+c080bc17
+e8688000
+2040681d
+58000000
+7d20fe00
+da200001
+20203b0a
+1a220600
+e8608000
+1fe20400
+c040bba3
+c0413ba8
+c041bbae
+6000c4c6
+c0003bb3
+c000bbb6
+c0013bb8
+20203c17
+6800c4be
+203a3c17
+6008c4c6
+7044560d
+20203bb4
+6800c4be
+203a3c17
+6008c4c6
+7044560d
+70445401
+20203c1a
+6800c4be
+203a3c17
+6008c4c6
+7044560d
+20203bb9
+70445600
+70445403
+20203c1a
+70445605
+20203bb4
+70445605
+70445400
+20203c1a
+68008b04
+1fe67c1f
+24213c17
+6000c36f
+1fe27200
+1a220600
+d8a04370
+204066ea
+20203c1a
+68008b04
+1fe67c1f
+24213c17
+6000c38f
+1fe27200
+1a220600
+d8a04390
+204066ea
+20203c1a
+68014682
+c304bc17
+68008b04
+c0843c17
+1a220600
+e8640000
+60044496
+700a9912
+20407d8f
+20203c1a
+e8610000
+60014482
+20203c1a
+6800c4c6
+203a3c17
+6800c4c4
+c0803c17
+6800c4c5
+c0803c17
+20407e25
+20203c1a
+68008b04
+c082bc17
+e8608000
+6000c6a2
+e8620000
+600246a3
+6808c6a2
+2040680e
+20403cbc
+20203c1a
+68008b04
+c080bc17
+e8608000
+6000c1de
+20203c1a
+e8608000
+c000bbfa
+6800c4c1
+c001bbf8
+c0033bf8
+c003bbf8
+20203c17
+7044c201
+20203c1a
+20405b53
+20203c1a
+68008b04
+c080bc17
+20403c1a
+e8608000
+203a60cb
+202060c9
+20403c1a
+20407f9e
+70801001
+20202a8e
+68008b04
+c0003c17
+e8608000
+203a3c13
+68008b04
+c082bc17
+e8620000
+d84f4240
+98467c00
+20213c17
+600244c7
+2040580c
+20203c1a
+2040580e
+20203c1a
+70409100
+20203c1a
+d8400001
+da200000
+20203c25
+d8400000
+da200000
+20203c25
+700b0300
+20203c49
+700b0302
+20203c49
+700b0303
+20203c49
+700b0305
+20203c49
+68008b03
+1fe22600
+700b0306
+58000002
+9a20fe00
+20403ca7
+1a627e00
+e1408000
+e1488000
+1a227200
+1a420c00
+204066e4
+202066c5
+2040397f
+700b0307
+680084ff
+207a0000
+20403ca7
+680084ff
+1fe27200
+68010501
+1fe20c00
+204066d1
+202066c5
+700b0308
+6800c6b6
+1fe27200
+1fe0fe02
+20403ca7
+680146b9
+e1410000
+680146b7
+1fe20c00
+204066d1
+202066c5
+700b0309
+58000000
+20403ca7
+202066c5
+700b030a
+58000001
+20403ca7
+20403c5d
+68014682
+d8e00002
+afefffff
+79208403
+d8e00009
+afefffff
+79208405
+6800c682
+d8e00004
+afefffff
+79208404
+e1488000
+202066c5
+d8400000
+6800c093
+d8e00000
+afefffff
+79208400
+d8e00001
+afefffff
+79208401
+6800c36e
+d8e00000
+afefffff
+79208402
+20600000
+700b030d
+6800c217
+1feffe22
+1fe27200
+20403ca7
+68014215
+1fe20c00
+204066d1
+202066c5
+700b030e
+58000004
+20403ca7
+680209ba
+e1420000
+202066c5
+700b030f
+68110112
+d84000ff
+20407fdd
+1fe27200
+20403ca7
+204066cb
+20406703
+202066c5
+700b0310
+20203c49
+700b0311
+58000004
+20403ca7
+680244c7
+e1420000
+202066c5
+da200180
+20203c91
+da200080
+20203c91
+da200101
+20203c91
+da200001
+70466100
+700b0314
+58000002
+20403ca7
+1a227e00
+e1410000
+202066c5
+da600000
+20203c9b
+da600001
+700b0315
+58000001
+20403ca7
+1a627e00
+e1408000
+202066c5
+700b031d
+58000004
+20403ca7
+680209ba
+e1420000
+202066c5
+700b0202
+60008b04
+600c0aa2
+44f1401c
+20403cb1
+680c0aa2
+204066c2
+68018b02
+e1418000
+20600000
+20403cba
+20608000
+20403cb8
+680246a3
+1feb7e00
+207a0000
+20203cbe
+6808c6a2
+20206829
+6808c6a2
+2020681b
+6808c6a2
+20206825
+1fe0ffff
+20000026
+243a3cbe
+20600000
+20403ad4
+20740000
+1a227e00
+600146b7
+1a427e00
+6000c6b6
+68010478
+680946bb
+98467c00
+2022bccf
+680946bd
+98467c00
+24628000
+600146b9
+20203c3d
+6800c6bf
+c3828000
+20403cf0
+2020340c
+70417202
+20600000
+20203cd8
+6800c6b2
+207a0000
+6800c6b3
+207a0000
+1fe0ffff
+6000c6b3
+247a0000
+7046b30a
+204068eb
+20406908
+1fe6fc64
+20407f86
+1807fe00
+18070400
+6000c6b4
+6008c6b5
+20600000
+20407fb4
+202133d9
+202033db
+d8e00006
+20203cfc
+d8e00006
+20203cf8
+d8e00005
+20203cfc
+d8e00005
+20203cf8
+d8e00004
+20203cfc
+d8e00004
+20203cf8
+6800c6bf
+f93ffe00
+6000c6bf
+20600000
+6800c6bf
+f9207e00
+6000c6bf
+20600000
+20403d39
+2040640f
+204040c6
+20403d66
+20406411
+20758000
+20403d16
+20403d19
+680246d3
+c3880000
+20403d4e
+c6130000
+68014682
+c28642b0
+202042a2
+680246d3
+c40d8000
+df200014
+58030d40
+20402a8f
+c2007ec1
+20600000
+680246d3
+c4080000
+202048ea
+5800416d
+600141ef
+58003f77
+600141f1
+58003ebb
+600141ed
+5800417c
+600141f5
+58003de3
+600141f3
+58003eb3
+600141eb
+58003d5b
+600141f9
+20402c7a
+58004401
+1a608ad8
+e0a10000
+58004406
+1a608ada
+e0a10000
+58003ebf
+1a608adc
+e0a10000
+580041f9
+600141fd
+58003d36
+60014201
+20600000
+680246d3
+c30964d7
+202064da
+20758000
+20402c9d
+20403e6e
+20403e1e
+20403e54
+20405810
+20405839
+2040582c
+20405818
+680246d3
+c28a3d46
+c289c414
+20600000
+2040659c
+680246d3
+2feffe19
+2440e5c2
+2040443f
+20403dc9
+204041aa
+202065df
+680246d3
+c30f3d53
+68008abd
+2fec0003
+24608000
+6800c71f
+6000c71e
+6800c6f5
+c3830000
+680246d3
+c4088000
+c28eaee4
+20202f2c
+68008478
+1fe67e1a
+24628000
+700a9912
+20407d8f
+d8e00000
+202041b9
+6800c6b6
+c1008000
+7046b601
+20600000
+6800c6e1
+1fe17e0f
+6000c77a
+20203d80
+6808c6e7
+2040681d
+2420bd62
+6800c6b6
+c1000000
+7046b600
+6800c77a
+1fe0fe01
+1fe17e03
+6000c77a
+20403d7e
+680246d3
+c28a443b
+c289bd79
+20600000
+d840001e
+2040680e
+d840001f
+2040680e
+20204435
+44f1c01c
+2040424a
+6800c6e0
+c002bdaa
+c0023d96
+6800c77a
+c0003d8a
+c000bd88
+c0013d8c
+c001bd8e
+6800c780
+20203dbe
+6800c77f
+20203dbe
+6800c781
+20203dbe
+6800c782
+20203dbe
+6800c6e0
+c1030000
+6800c6b5
+1fe0fe01
+6000c6b5
+20600000
+6800c77a
+c0003d9d
+c000bd9b
+c0013d9f
+c001bda1
+6800c784
+20203da2
+6800c783
+20203da2
+6800c785
+20203da2
+6800c786
+6000c6b5
+1fed7e00
+1fe22200
+1fe0fe0d
+20406413
+1a227e00
+1fe0fe0e
+20206413
+6800c77a
+c0003db1
+c000bdaf
+c0013db3
+c001bdb5
+6800c788
+20203db6
+6800c787
+20203db6
+6800c789
+20203db6
+6800c78a
+6000c6b5
+204040c0
+6800c6b5
+1fe0fe80
+1fed7e00
+1fe0fe05
+1fe22200
+2020415a
+6000c6b5
+20403d90
+6800c6b5
+58000006
+20406414
+1fe104f8
+6800c6b5
+9840fe00
+1fed7e00
+1fe0fe06
+20206413
+204033c4
+2022c316
+2040441c
+204042e4
+202033bd
+68014707
+207a0000
+680246d3
+c4088000
+c3818000
+c6130000
+20404083
+c1838000
+20404482
+d8e00003
+204043ce
+58000000
+600146ae
+6000c6b4
+20403263
+68014682
+c283c392
+c284b402
+c28033e9
+204042ca
+20202ead
+20403dce
+20407e34
+20403d6a
+20403de9
+20403ee0
+20203df7
+680246d3
+c4080000
+204048d3
+202048fd
+68108a04
+c303bdf1
+c283bdf4
+20600000
+6800c6ff
+c4038000
+2020659a
+6800c6ff
+c3838000
+20204381
+20403ded
+68108a04
+6000c6ff
+c4038000
+20403e07
+680246f9
+6808c6fd
+98408400
+1c427e00
+98467c00
+24610000
+600246f9
+20403f97
+24740000
+700d3804
+20203e0f
+680a46f9
+1c427e00
+98467c00
+24413e0c
+20600000
+58000000
+600246f9
+20600000
+68008d38
+c4010000
+20203e12
+68108a04
+c4038000
+700d5220
+58000001
+60008d54
+6803c69a
+e0a38000
+20600000
+68110050
+793ffe0b
+60110050
+20600000
+58008c00
+60014575
+58008e7a
+600144bc
+58002402
+600140bd
+58002580
+6001c0aa
+70417303
+70415608
+7046d901
+58000200
+60014154
+7044a617
+7044a817
+58000a77
+60014212
+38000306
+38044440
+38090000
+380c4408
+6004c577
+38001224
+38044000
+38080000
+e0a28000
+3803ffff
+3806fe23
+380999d9
+380c020d
+60044098
+5800012c
+60014707
+204057a3
+680246d3
+c40f8000
+20403e44
+20203e4c
+6808c6f7
+204067fb
+6808c6f7
+2040681d
+7046f603
+20608000
+7046f602
+20600000
+6808c6f8
+204067fb
+6808c6f8
+2040681d
+70422d00
+20608000
+70422d02
+20600000
+6800c22d
+c0003e59
+c000be62
+c0013e6b
+20203e59
+68094221
+68014227
+98467e00
+1feffe14
+1fe6fc64
+20407f86
+1807fe00
+600146d0
+20600000
+6809421f
+68014225
+98467e00
+1feffee6
+1fe6fd90
+20407f86
+1807fe00
+600146d0
+20600000
+68014223
+600146d0
+20600000
+6808c23a
+2040680e
+204048fb
+6808c6e2
+204067fb
+6808c6e3
+204067fb
+6808c6e4
+204067fb
+6808c6f3
+204067fb
+6808c6dc
+2040680e
+6808c6e8
+204067fb
+6808c6e9
+204067fb
+6808c6ea
+204067fb
+6808c6eb
+204067fb
+6808c6e5
+204067fb
+6808c6e6
+204067fb
+6808c6ef
+2040680e
+6808c6f0
+2040680e
+6808c6f1
+2040680e
+6808c6f2
+2040680e
+6808c6f4
+2040680e
+6808c6ed
+204067fb
+6808c6ec
+204067fb
+6808c6e7
+202067fb
+6808c6e8
+204067dd
+6808c6e9
+204067dd
+6808c6ea
+204067dd
+6808c6eb
+202067dd
+6808c6e8
+20403ea7
+6808c6e9
+20403ea7
+6808c6ea
+20403ea7
+6808c6eb
+20203ea7
+18467cff
+20628000
+18410e7f
+6812011c
+afefffff
+68120078
+f920fe00
+60120078
+6812007c
+fd20fe00
+6012007c
+20600000
+78347c00
+68120138
+79347e1a
+6012004c
+20402c21
+20404482
+20403e9f
+20203ebf
+20403ebf
+680080a0
+247a0000
+202067ed
+20403ee0
+d8400019
+680246d3
+2feffe12
+2040bede
+2040680e
+204063ee
+6808c6e2
+204067dd
+6808c6e3
+204067dd
+6808c6e4
+204067dd
+6808c6e5
+204067dd
+6808c6e6
+204067dd
+6808c6e7
+204067dd
+6808c6ed
+204067dd
+6808c6e8
+204067dd
+6808c6e9
+204067dd
+6808c6ea
+204067dd
+6808c6eb
+204067dd
+6808c6f3
+202067e1
+d840001e
+20600000
+44f2401c
+20403eee
+20403f36
+6800c6b8
+6808c6b7
+6000c6b7
+98467c00
+2422b3d4
+6800c6be
+6808c6bd
+6000c6bd
+98467c00
+2422b3d4
+20600000
+6800c6ea
+c17f8000
+da200000
+6808c6ea
+2040681d
+7920a200
+6808c6eb
+2040681d
+7920a201
+1a227e00
+6000c6b8
+c000befe
+c0013f02
+6800c6b9
+c283bf0e
+20600000
+6800c6b7
+c0003f06
+c001bf08
+20600000
+6800c6b7
+c0003f0a
+c001bf0c
+20600000
+7046b982
+20600000
+7046b981
+20600000
+7046b980
+20600000
+7046b983
+20600000
+6800c6b9
+793ffe07
+6000c6b9
+c0003f16
+c000bf19
+c0013f1c
+c001bf1f
+20600000
+6800c6b8
+c001bf22
+20600000
+6800c6b8
+c0003f22
+20600000
+6800c6b8
+c001bf2c
+20600000
+6800c6b8
+c0003f2c
+20600000
+6800c6bc
+1fe0fe01
+6000c6bc
+1fe67c01
+20610000
+7046bc00
+6800c6ba
+1fe0fe01
+6000c6ba
+20600000
+6800c6bb
+1fe0fe01
+6000c6bb
+1fe67c01
+20610000
+7046bb00
+6800c6ba
+1fe0ffff
+6000c6ba
+20600000
+6800c6e8
+c17f8000
+da200000
+6808c6e8
+2040681d
+7920a200
+6808c6e9
+2040681d
+7920a201
+1a227e00
+6000c6be
+c000bf46
+c0013f4a
+6800c6bf
+c283bf56
+20600000
+6800c6bd
+c0003f4e
+c001bf50
+20600000
+6800c6bd
+c0003f52
+c001bf54
+20600000
+7046bf82
+20600000
+7046bf81
+20600000
+7046bf80
+20600000
+7046bf83
+20600000
+6800c6bf
+793ffe07
+6000c6bf
+c0003f5e
+c000bf61
+c0013f64
+c001bf67
+20600000
+6800c6be
+c001bf6a
+20600000
+6800c6be
+c0003f6a
+20600000
+6800c6be
+c001bf6f
+20600000
+6800c6be
+c0003f6f
+20600000
+7046c200
+6800c6c0
+1fe0fe01
+6000c6c0
+20600000
+7046c100
+6800c6c0
+1fe0ffff
+6000c6c0
+20600000
+58000002
+6000c680
+20600000
+6800c1e2
+207a0000
+20405271
+247a0000
+680246d3
+c281bf8a
+c2803f8a
+c282bf8a
+20403f97
+24740000
+da200009
+20404d63
+6801424e
+e0a10000
+580002a1
+e0a10000
+6803c69a
+e0a38000
+20600000
+58000000
+6003c69a
+20203f81
+680146aa
+600146b0
+20600000
+44f2c01c
+da200007
+6809446f
+20405a64
+6803c69a
+e0a38000
+20600000
+44f3401c
+78547c00
+58000000
+6003469b
+20403fb5
+20404079
+2040407e
+20404099
+24740000
+20403f8d
+d8e00008
+202043ce
+6801469b
+1fe67e00
+6001469b
+20207fe7
+6801469d
+1fe67e00
+6001469d
+20207fe7
+6801469d
+1fe67e00
+6001469d
+6801469b
+1fe67e00
+6001469b
+20404002
+20207fe7
+20404002
+20207fe7
+6800c239
+c1800000
+6800c6e0
+c0003fe2
+c000bfe2
+c0013fe2
+c001bfe2
+c0023fc4
+c002c010
+c0033fe2
+20203fe2
+6800c6a7
+205a405d
+7046a701
+20600000
+20403fc0
+6808c6f3
+2040681d
+24608000
+58000000
+20406414
+c09840d1
+58000002
+20406414
+c4038000
+2040405d
+20403fde
+6000c6a1
+1ff1fe00
+20404169
+6000c69c
+6800c6a1
+1fe17e0f
+20404169
+6000c69e
+6800c6f6
+c0003fa3
+c000bfab
+c0013fa7
+c001bfb3
+20600000
+58000012
+20206414
+c018bfea
+202040d1
+20403fc0
+78547c00
+6808c6f3
+2040681d
+24608000
+58000000
+20406414
+c0983fe0
+58000002
+20406414
+c4038000
+2040405d
+6800c69b
+20404165
+6001469b
+6800c69d
+20404165
+6001469d
+6800c6f6
+c0003ffa
+c000bffc
+c0013ffe
+c001c000
+20600000
+20403fa3
+202040b3
+20403fab
+202040b3
+20403fa7
+202040b3
+20403fb3
+202040b3
+6801469d
+6809469b
+6001469b
+6009469d
+20600000
+2040640f
+20000064
+1a427e00
+20406414
+1fe22400
+20406411
+20000064
+1a427e00
+20600000
+78547c00
+6808c6f3
+2040681d
+24608000
+da400002
+20404007
+c4038000
+da400000
+20404007
+6000c6dd
+c09f4145
+6800c6a7
+205a4039
+7046a701
+20404039
+6800c6a1
+1ff1fe00
+20404169
+6000c69c
+6800c6a1
+1fe17e0f
+20404169
+6000c69e
+6800c6f6
+c0004031
+c000c035
+c0014033
+c001c037
+20600000
+6800c6a4
+c0004051
+c000c045
+20600000
+20403fa3
+2020402d
+20403fa7
+2020402d
+20403fab
+2020402d
+20403fb3
+2020402d
+2040640f
+2040405d
+dfe00005
+20406414
+6000c6a1
+dfe00007
+20406414
+6000c6a2
+dfe00008
+20406414
+6000c6a3
+20206411
+6800c6a2
+c1800000
+6800c6a3
+1fe67c2d
+20610000
+7046a400
+5800ba41
+20406405
+58000032
+20406405
+5800b541
+20206405
+6800c6a2
+c1800000
+6800c6a3
+1fe67c2d
+24610000
+7046a401
+5800ba41
+20406405
+58008032
+20406405
+5800b541
+20206405
+dfe00003
+20406414
+6001469b
+dfe00004
+20406414
+6001469d
+20600000
+d840001b
+204067fb
+d840001b
+2040681d
+20608000
+68108109
+79207e04
+60108109
+20600000
+6808c6c0
+68108109
+9840fe00
+207a0000
+6000c69f
+7046c000
+20207fe7
+6808c6c0
+68108109
+9840fe00
+6000c6c0
+20600000
+6800c6c0
+207a0000
+6000c69f
+7046c000
+20207fe7
+6800c6ba
+207a0000
+6000c6a0
+7046ba00
+20207fe7
+da200000
+6808c6e2
+2040681d
+7920a200
+6808c6e3
+2040681d
+7920a201
+6808c6e4
+2040681d
+7920a202
+20404090
+1a227e00
+20600000
+6800c6e5
+c17f8000
+6808c6e5
+2040681d
+7920a203
+6808c6e6
+2040681d
+7920a204
+20600000
+20404083
+204040a8
+204040a3
+1a227e00
+6808c69a
+6000c69a
+9842fe00
+1fe67c00
+20628000
+20207fe7
+c6930000
+1a227e00
+207a0000
+6000c69a
+20207fe7
+68014682
+c284c0ad
+68014682
+c28040b0
+20600000
+1a227e00
+243a5820
+20205822
+1a227e00
+243a2bc7
+20202bc9
+44f3c01c
+d840001a
+680246d3
+2feffe12
+2040c0be
+2040681d
+20608000
+5800000a
+20406414
+200003e8
+202040b3
+d840001f
+20600000
+680246d3
+c28940c4
+d840001a
+202067fe
+d840001f
+202067fe
+20403d36
+20758000
+204040c0
+6800c6e0
+c002c0d5
+204040d9
+c01840e0
+c018c0ea
+204040d1
+200003e8
+202040cb
+44f4401d
+680246d3
+c28963e0
+202063d1
+204040d9
+c01f414b
+20404145
+202040d5
+58000001
+20406414
+6000c6de
+58000000
+20406414
+6000c6dd
+20600000
+6800c6de
+c068c139
+c06940f8
+c00140ee
+c02a40e6
+20600000
+7046e002
+20600000
+7046e006
+20600000
+6800c6de
+c03840e8
+7046e001
+20600000
+7046e004
+204040f6
+58003426
+20406413
+58000419
+20406413
+58000009
+20206413
+58005a09
+20206413
+7046e003
+204040f6
+58000f0d
+20406413
+5800e31d
+20406413
+5800d27d
+20406413
+20404102
+2020411a
+5800351b
+20406413
+5800b428
+20406413
+58004629
+20406413
+5800962a
+20406413
+58008c2b
+20406413
+58006e2c
+20406413
+5800642d
+20406413
+58005f38
+20406413
+58000f39
+20406413
+5800323a
+20406413
+5800473b
+20406413
+58001042
+20206413
+58002e54
+20406413
+5800f255
+20406413
+5800f461
+20406413
+58007063
+20406413
+58005275
+20406413
+58004176
+20406413
+5800ed77
+20406413
+58002378
+20406413
+58004679
+20406413
+5800e57a
+20406413
+5800487c
+20406413
+5800777e
+20406413
+5800017f
+20406413
+5800000b
+20406413
+5800007f
+20406413
+202040f4
+7046e000
+204040f6
+5800100d
+20406413
+5800ed1d
+20406413
+5800807d
+20406413
+20404102
+58000943
+20406413
+2020411a
+6808c6dc
+20406829
+20407ec1
+6808c6dc
+20406825
+20207ec1
+7046e005
+5800ba41
+20406405
+58000d11
+20406405
+5800041b
+20406405
+5800041c
+20406405
+58000f1d
+20406405
+58000032
+20406405
+5800b541
+20206405
+5800ba41
+20406405
+20000fa0
+5800ff7f
+20406405
+1a227e00
+20406405
+5800007f
+20406405
+5800b541
+20206405
+c4038000
+d840ff00
+9841fe00
+20600000
+c4018000
+d84000f0
+9841fe00
+20600000
+20405892
+247a0000
+6800c6c5
+1fe17e03
+c1818000
+680246d3
+c281c179
+c2804179
+c282c179
+20403f97
+24740000
+20203f90
+58000000
+6003c69a
+20203f90
+1a627e00
+c00a41c3
+c000c2ca
+c00ac1d9
+c00141d9
+c002c1d6
+c008426c
+c009429b
+c00341d5
+c00241cc
+c009c1cc
+c00541ca
+c01733cd
+c018c1b4
+c01941b6
+c01f4191
+c013c38e
+c01cc19c
+c01d4192
+c01e419a
+20600000
+20203410
+70478b01
+6800c71e
+243a4492
+6800c720
+6808c703
+98467c00
+2022b40a
+20600000
+70478b01
+20600000
+70478b01
+d8e00003
+204043d2
+58000000
+60014707
+7046a700
+6800c6e0
+1fe67c05
+2042c039
+2442c05d
+68008004
+c289c1af
+204041aa
+202065d1
+20402c7a
+1a60a2ae
+da40005b
+d8400004
+20600000
+20402c7a
+1a60a4ae
+ea408000
+6000c77b
+20204435
+d8e00002
+202041b9
+7046c602
+d8e00001
+202041b9
+6800c6c5
+f9207e00
+6000c6c5
+20600000
+6800c6c5
+f93ffe00
+6000c6c5
+20600000
+7046c500
+20600000
+6801420a
+793ffe00
+6001420a
+58000000
+600146ae
+20403f8d
+202042ca
+204063cb
+202033dd
+6800c71e
+243a4492
+68014682
+c28642b0
+680246d3
+c28041d7
+c282c2b0
+c281aead
+202033a7
+20203f74
+20600000
+204043c0
+2020659a
+44f4c01d
+204041e7
+680246d3
+c28041d7
+c281aead
+6800c71e
+243a4492
+68014208
+c283c1f5
+c28033a9
+c280c1ef
+c28141f2
+c281c1f2
+202042b0
+58000000
+600446b7
+e0a20000
+7046b400
+7046a700
+7041e200
+70442900
+20600000
+c282c1f2
+c281c1f2
+202042b0
+68014682
+c28642b0
+202033a7
+204041c1
+68014208
+c28033a9
+202033a7
+204043d6
+20404243
+20404246
+20404250
+2040445d
+20404443
+20404333
+204043a5
+204043eb
+20404209
+20404231
+20404234
+20404237
+2040423a
+2040423d
+20204240
+6800c711
+207a0000
+1fe0ffff
+6000c711
+247a0000
+2020420f
+6800c712
+c1000000
+c002c216
+20404225
+70471205
+70471105
+20600000
+2040422c
+70471204
+70471105
+20600000
+58008006
+20406413
+200003e8
+70471100
+70471200
+202040e0
+5800a006
+20406413
+5800a005
+20206413
+70471100
+6800c6e0
+c0024220
+58000106
+20406413
+5800a105
+20206413
+70471100
+58000906
+20206413
+70471105
+70471201
+20600000
+da604680
+da40429b
+2020336d
+da6046ac
+da404264
+20203374
+da6046ae
+da404266
+20203374
+da6046b0
+da40426a
+20203374
+da6046c4
+da404478
+2020336d
+da6046c6
+da40425e
+2020336d
+da604704
+da404249
+2020336d
+da604707
+da404249
+20203374
+20600000
+680246d3
+c40b8000
+7046df0a
+6800c6f4
+6000c715
+20600000
+da6046df
+da404253
+2020336d
+6800c6f4
+6000c715
+58000190
+60014716
+60014718
+da200000
+6808c77a
+18408401
+6008c714
+70471301
+20600000
+6800c6c5
+c3810000
+700a9912
+20407d8f
+d8e00000
+202041b9
+204042ca
+2020340a
+204033f6
+6800c71e
+243a4492
+2020340a
+c5137e1d
+20204386
+44f5401d
+7046b400
+20404386
+204041c1
+202042b0
+680341d0
+203a33eb
+2040427e
+70016d17
+6800c65a
+243a33e1
+70016d04
+202033e1
+680146a8
+600146ae
+2040427e
+20403418
+20207df4
+580000c8
+60014716
+60014718
+20204285
+580003e8
+60014716
+60014718
+6800c720
+c000c28a
+c001428c
+c001c28e
+20600000
+6800c6f0
+2020428f
+6800c6f1
+2020428f
+6800c6f2
+60008aa2
+20404482
+68008aa2
+6000c715
+da200000
+70471301
+20207d1e
+da200000
+20207d19
+da200000
+20207d14
+202041c1
+7041e201
+20403416
+20403412
+58000000
+6001467e
+6000c680
+2020340e
+2040435f
+6800c720
+6808c703
+98467c00
+2022c2ab
+6800c210
+c019c271
+c01a4279
+202042b0
+20403d57
+c6130000
+6800c71e
+243a4492
+20600000
+44f5c01d
+68014682
+c285c2b7
+680246d3
+c30c42b7
+180a7e00
+6000c4a1
+20403418
+68014687
+600146ac
+70016d06
+58000000
+600146b0
+600146ae
+d8e00007
+204043ce
+204043ca
+6800c092
+2feffe01
+2040fdf4
+6800c092
+2feffe00
+2040fddd
+680246d3
+c28e422e
+20204282
+44f6401d
+6800c092
+2feffe01
+2040c2d4
+6800c092
+2feffe00
+2040c2d7
+680246d3
+c28e421a
+20204482
+58000000
+600146ae
+20207dfa
+58000000
+600146ac
+20207de2
+680246d3
+c4038000
+d8e00007
+204043d2
+204042e8
+204042fb
+680246d3
+c289c435
+c28a42e4
+20600000
+d8400058
+da204720
+da400000
+202065d1
+68008185
+c01a42ec
+c019c2ef
+20600000
+6000c6c7
+6803044f
+202042f1
+6000c6c7
+68030040
+600346c8
+6803c6c7
+d8c04721
+df200003
+e8cb8000
+98467c00
+2022c310
+18c08c16
+c20042f5
+20600000
+da204721
+6800c720
+1fe0ffff
+1feffe1d
+9a20a200
+68008185
+e2208000
+c01a4305
+c019c30c
+20600000
+6803044f
+e0a30000
+d8c04419
+20407ebf
+680344a0
+e0a30000
+20600000
+68030040
+e0a30000
+d8c041be
+20207ebf
+18c08dfa
+18c20a00
+680b46c8
+18408403
+e0ab0000
+20600000
+d8400058
+da204720
+da400000
+204065df
+da204721
+6800c720
+6808c703
+98467c00
+20628000
+1fe0ffff
+1feffe1d
+9a20a200
+ea208000
+6000c210
+c019c327
+c01a432c
+20600000
+e8c30000
+600341d0
+d8a041be
+20407ebf
+202067d7
+e8c30000
+600341d0
+d8a04419
+20407ebf
+e8c30000
+600344a0
+20600000
+6800c6f5
+c282c349
+c2834359
+20204337
+20404083
+c003433e
+7046d81e
+6800c6d9
+c1008000
+7046d901
+20600000
+20404343
+6800c6d9
+c1000000
+7046d900
+202043c0
+6800c6d8
+207a0000
+1fe0ffff
+6000c6d8
+247a0000
+20204370
+6800c6ed
+c17f8000
+6808c6ed
+2040681d
+2020c354
+6800c6d9
+c1008000
+7046d901
+680246d3
+c3830000
+20204370
+6800c6d9
+c1000000
+7046d900
+d8e00006
+202043d2
+68008004
+c4030000
+6800c720
+c000c369
+c001436c
+20600000
+68008004
+c4030000
+6808c6ed
+2040681d
+2020c366
+70472001
+20600000
+6800c703
+6000c720
+20600000
+6808c6ed
+2420c370
+20600000
+6808c6ed
+2040681d
+2020c354
+20600000
+6808c720
+18408401
+6800c6d2
+98467c00
+244143cc
+6008c720
+7041bd00
+2040437a
+204043c0
+2020437e
+d8400001
+da204720
+da400000
+20206606
+20404381
+204043c2
+202041d7
+68014682
+c283c392
+c284b402
+c28033e9
+202042ca
+44f6c01d
+58000000
+600146b0
+68014682
+c284b402
+68014682
+c28033e9
+20600000
+58000001
+60030040
+70018533
+202042df
+204043c4
+20207e2f
+6800c6ec
+c17f8000
+6808c6ec
+2040681d
+2020c39f
+6800c685
+6000c6da
+6800c6db
+c1008000
+7046db01
+202043ca
+204043b5
+6800c6db
+c1000000
+7046db00
+20407e2f
+202043c8
+6800c6f5
+c2824394
+20404083
+c003c3af
+6800c685
+6000c6da
+6800c6db
+c1008000
+7046db01
+202043ca
+204043b5
+6800c6db
+c1000000
+7046db00
+20407e2f
+202043c8
+da6046da
+da4043b8
+2020336d
+d8e00006
+204043ce
+20403357
+2020426c
+d8e00001
+202043ce
+d8e00001
+202043d2
+d8e00000
+202043ce
+d8e00000
+202043d2
+d8e00002
+202043ce
+d8e00002
+202043d2
+d8e00005
+202043ce
+d8e00005
+202043d2
+d8400001
+20600000
+680246d3
+f9207e00
+600246d3
+20600000
+680246d3
+f93ffe00
+600246d3
+20600000
+680246d3
+c40d0000
+6800c6ce
+1fe0fe01
+6000c6ce
+1fe67c0a
+20610000
+7046ce00
+204068eb
+20406908
+6001470f
+da204709
+20406930
+6800c231
+c280c4a0
+c30043e9
+202043e7
+d8e00004
+202043ce
+d8e00004
+202043d2
+680246d3
+c4020000
+6800c6ef
+6000c715
+6800c6cf
+1fe0fe01
+6000c6cf
+1fe67c14
+244143f9
+c00143fb
+c00243fe
+c00343fb
+c00443fe
+20600000
+7046cf01
+202043fe
+da200000
+70471302
+20207d14
+da200000
+70471302
+20207d19
+20403f97
+24740000
+da200007
+da40469a
+20600000
+6800c78b
+207a0000
+6808c6e7
+2040681d
+2040c410
+6800c704
+247a0000
+20404083
+247a0000
+20202d83
+6800c6e7
+c17f8000
+7047040a
+20600000
+20404423
+68014778
+d840aa55
+98467c00
+2022c42b
+60094778
+2040441c
+20204435
+680344a0
+60034738
+1fe0ff00
+60034755
+1fe0ff00
+60034772
+20600000
+58004778
+d8404720
+98460400
+6801c700
+9840fe00
+d8400002
+da204778
+20206562
+5800477f
+d8404720
+98460400
+6801c700
+da204720
+20406562
+2040431a
+6802477b
+20402c7a
+2020322c
+5800477f
+d8404720
+98460400
+da204720
+6801c700
+20206514
+d8400001
+da20477a
+da40005a
+202065d1
+d8400001
+da20477a
+da40005a
+202065df
+c6130000
+680246d3
+c40b0000
+6800c705
+1fe0fe01
+1fe17e07
+6000c705
+c1838000
+68014682
+c280444f
+c284c44f
+20600000
+44f7401d
+6800c706
+247a0000
+680246d3
+c4040000
+6800c6a5
+204063fb
+6000c6a6
+1fe67c10
+2021445b
+70470600
+20600000
+7047061e
+20600000
+da604706
+da404460
+2020336d
+6800c6a5
+20406414
+1fe67c10
+24610000
+680246d3
+c4040000
+d8e00008
+204043d2
+70417200
+7046c41e
+20404482
+680246d3
+c28ac471
+6800c720
+c000c489
+c0014476
+20600000
+6800c720
+c000c489
+c001448c
+c001c48f
+20600000
+6800c6f0
+2020428f
+70417220
+20204482
+6800c6f0
+c17f8000
+6000c715
+20204296
+6800c6f1
+c17f8000
+6000c715
+20204296
+20404296
+2040447a
+2040447e
+6800c6f2
+c17f8000
+6000c715
+20204296
+6800c6f0
+6000c715
+20204298
+6800c6f1
+6000c715
+20204298
+6800c6f2
+6000c715
+20204298
+44f7c01d
+6800c71e
+1fe0ffff
+6000c71e
+6808c720
+18408401
+6800c6d2
+98467c00
+244143cc
+6008c720
+7041bd00
+2040437a
+204042fb
+202042a2
+20404482
+58000000
+600400a1
+20202b1f
+20758000
+68108081
+1fe17ef0
+60108081
+20406948
+580044e6
+600141eb
+580044e9
+600141ed
+580044ef
+600141f3
+580044f2
+600141f5
+580033d0
+600141e9
+20402c7a
+580045c2
+1a608ad8
+e0a10000
+580044ea
+1a608ada
+e0a10000
+580044e9
+1a608adc
+e0a10000
+5800450e
+600141fd
+580044da
+6001475b
+580044d6
+6001475f
+58004560
+6001470f
+44f8401e
+204044e2
+20407e38
+70417202
+6800c72b
+6000c69a
+c00044d5
+6800c72c
+6000c686
+204044db
+20407cd3
+20407cdd
+70475701
+68014682
+c3860000
+2020340a
+70475702
+204044db
+da200000
+20407d1e
+20202ee4
+202044db
+44f8c01e
+6800c729
+c0ffc4e0
+6808c706
+2020680e
+6000c706
+202044de
+20402c9d
+68014753
+60014755
+20204515
+20406835
+204044e9
+2020340a
+2020696c
+6800c765
+207a0000
+20202d83
+20600000
+20206978
+20404544
+20404503
+202044ee
+1a627e00
+c016b431
+c008341a
+c01cc4fb
+c01e44ff
+c01d44f9
+20600000
+70476501
+20600000
+70476501
+70476301
+70476401
+20600000
+70476501
+70476301
+70476401
+20600000
+6800c763
+c1000000
+6800c762
+c1008000
+70476201
+da200000
+20207d19
+da200000
+20407d19
+204044db
+2020340a
+2040337b
+20204510
+6800c72d
+207a0000
+da604755
+da40450a
+20203374
+2040451a
+6009471a
+2040451f
+6009471c
+20600000
+6801471a
+6001471e
+20404540
+20404525
+6000c724
+6801471c
+6001471e
+20404542
+20404525
+6000c725
+20600000
+68014720
+1fe22200
+6801471e
+2040452e
+6800c719
+243a4537
+24610000
+6809471e
+20600000
+98467e00
+20214534
+1fe67e00
+70471801
+9a267c00
+20600000
+70471800
+9a267c00
+20600000
+2421453e
+6800c718
+243a453c
+58000001
+20600000
+58000002
+20600000
+58000000
+20600000
+70422e33
+202068eb
+70422e34
+202068eb
+6800c72a
+c1808000
+44f9401e
+70471901
+2040451a
+68014724
+68094722
+98467c00
+20628000
+60014722
+20404550
+20204554
+6800c724
+203a455a
+1fe0ffff
+20204557
+6800c725
+203a455d
+1fe0fe01
+1fe20e00
+da200001
+20204560
+d8e00000
+da200000
+20204560
+d8e00002
+da200000
+20204560
+1a227e00
+6000c761
+6800c763
+c0002ee4
+68014753
+60014755
+6800c761
+203a4580
+44f9c01e
+da200000
+20407d14
+18e27e00
+c00245a3
+c002c5a5
+c00345a7
+2040458b
+c0004574
+c001457a
+c001c574
+20600000
+18e27e00
+c000458f
+c000c591
+c0014593
+c001c595
+20600000
+18e27e00
+c0004597
+c000c59a
+c001459d
+c001c5a0
+20600000
+44fa401e
+da200000
+20407d19
+18e27e00
+c00245bc
+c002c5bc
+2040458b
+c00045a9
+c00145af
+c001c5a9
+20600000
+6800c728
+6808c727
+9841fe00
+20600000
+70473401
+202045be
+70473402
+202045be
+70473601
+202045be
+70473602
+202045be
+70473401
+70473601
+202045be
+70473402
+70473602
+202045be
+70473402
+70473601
+202045be
+70473401
+70473602
+202045be
+70473801
+202045be
+70473802
+202045be
+70474101
+202045c0
+18e27e00
+c00045b5
+c000c5b5
+c00145b7
+c001c5b7
+20600000
+18e27e00
+c00045b9
+c000c5b9
+c00145b9
+c001c5b9
+20600000
+70473400
+202045be
+70473600
+202045be
+70473400
+70473600
+202045be
+70473800
+202045be
+da20472e
+20207e3d
+da20473b
+20207e3d
+6800c764
+c000c5cc
+da204744
+20407e54
+243445d1
+d8c04744
+e8c08000
+1fe22200
+da404745
+20600000
+70476400
+78347c00
+da200001
+da404766
+20600000
+6800c747
+c00245d5
+c002c5d5
+20600000
+6800c74a
+243a45dc
+6800c74c
+243a45dc
+6800c74e
+243a45dc
+20600000
+78347c00
+202045c7
+20758000
+68108081
+1fe17efc
+60108081
+580046b4
+600141eb
+580046b3
+600141ed
+5800340a
+600141f7
+580046b1
+600141f3
+58004612
+600141f5
+5800460c
+600141e9
+5800476a
+600141f9
+58004686
+600141fd
+58004729
+600146e7
+58004806
+600146e2
+58004807
+600146e4
+204057a3
+204047da
+20404788
+2040476d
+20406948
+2040477a
+20407e38
+20407d08
+20404793
+204047c7
+44fac01e
+2040464f
+6800c6dd
+c0004609
+6800c6de
+6000c686
+2020480e
+704686ff
+7046df01
+202046d9
+6800c6df
+c00133d0
+2040527e
+6800c256
+243a33d0
+202033d2
+1a627e00
+c000c626
+c0014629
+c0024631
+c002c633
+c0034635
+c003c638
+c009463c
+c009c644
+c013c645
+c0174648
+c01ec649
+c00a4658
+c00ac65c
+c01fc65f
+c0204665
+c008466b
+c016466c
+c016c677
+20600000
+7046ad00
+7046ac00
+20600000
+2040462b
+20204631
+7041e200
+70468000
+70420500
+7046ac00
+7046ad00
+20207e38
+204033a9
+202046c2
+204046b6
+20203408
+58000002
+6000c680
+20600000
+7046ac00
+58000001
+6000c6ad
+20600000
+6800c1e2
+c1008000
+7041e201
+20403416
+20403414
+204046b6
+20403408
+2020340e
+20204631
+58000005
+6000c6ac
+20600000
+202033cd
+da400000
+6800c217
+1fef8422
+68014215
+1fe22200
+20206606
+da400000
+6800c69a
+c4008000
+6800c217
+207a0000
+1fef8422
+68014215
+1fe22200
+202065df
+204046b6
+58000000
+600146b7
+20203408
+20407e38
+7046b000
+202046d9
+20407e38
+7046b001
+680446c1
+60044496
+20403416
+20205abf
+68014509
+c1000000
+680446c9
+207a0000
+60044496
+20205abf
+2020481f
+6800c6dd
+c1000000
+6800c6df
+c1808000
+20404672
+20203406
+7048df01
+df20000b
+d8a048e0
+d8c048c9
+20207f01
+6800c6dd
+c1000000
+6800c6df
+c000c67c
+2020481b
+6800c8df
+c1808000
+7048df00
+68014682
+c2803408
+c284b408
+df20000b
+d8c048e0
+d8a048c9
+20207f01
+2040468c
+20404693
+2040469e
+204046a6
+204046a9
+202046ac
+da6046db
+da40468f
+20203374
+7046df02
+20403408
+204046f4
+2020480b
+da6048ec
+da404696
+2020336d
+68014682
+c284c80b
+c280480b
+6800c8c9
+c000c80b
+c002480b
+c002c80b
+2020340a
+da6046ac
+da4046a1
+2020336d
+6800827f
+79207e00
+79207e07
+6000827f
+20600000
+da604680
+da40463c
+2020336d
+da6046ad
+da4033e9
+2020336d
+6800c6df
+c1808000
+da6046b7
+da4046c2
+20203374
+2040473a
+20206978
+2020696c
+20406835
+202046b3
+6800c69a
+c280c6be
+c28046ba
+20600000
+680146d7
+600146d9
+600146db
+202033f8
+680146d3
+600146d9
+600146db
+202033f0
+6800c6df
+c1808000
+6800c69a
+c280c6c8
+c28046cc
+20600000
+680146d1
+600146d9
+600146db
+202033eb
+68014682
+c3848000
+680146d5
+600146d9
+600146db
+680146b3
+204046f0
+20403404
+680246bd
+600248cc
+68014682
+c3858000
+202033fa
+6800c6df
+c1808000
+6800c69a
+c280c6df
+c28046e4
+20600000
+204046f8
+203a46c2
+20403406
+204033f0
+202033e1
+680146b7
+680946b5
+600946b7
+247a0000
+680146b1
+204046f0
+20403404
+680246b9
+600248cc
+68014682
+c3858000
+202033fa
+60014154
+1fe0fffc
+60014482
+20600000
+68014682
+c284b402
+c28033e9
+202046b6
+6800c217
+1fe27200
+68014215
+1fe22200
+ea210000
+c0004701
+1a20a222
+c20046fc
+20207ff1
+e8c30000
+600341d0
+18c08c0a
+d8a041be
+20407ebf
+204067d7
+20207fef
+20407fe9
+68014682
+c280470d
+c284c710
+20600000
+6800c253
+c19f8000
+20207fe7
+6800c6b0
+207a0000
+20207fe7
+20407fe9
+68014682
+c3800000
+c3848000
+20207fe7
+6800c69a
+c280c71c
+c280471f
+20600000
+6800c093
+c1818000
+202046d9
+202046d9
+78567c00
+680146d9
+600146db
+20404713
+20344718
+20404708
+24740000
+78367c00
+20600000
+20404720
+24760000
+1a227e00
+203a4730
+20403406
+da6046f1
+20204732
+20403408
+da604719
+dfe00005
+98effe00
+9a60a600
+ea608000
+207a0000
+20404762
+1a60a601
+20204735
+68014682
+c284c73e
+c280474e
+20600000
+20405892
+247a0000
+20404765
+24740000
+1fe0ffff
+1feffe05
+d8404741
+98408c00
+e8c08000
+1fe22200
+e8c90000
+20407ea5
+20405a64
+1a227200
+20407e9f
+20207f01
+20405271
+247a0000
+20404765
+24740000
+1fe0ffff
+1feffe05
+d84047a0
+98408c00
+e8c28000
+6002c79b
+6800c79b
+1fe22200
+20404d63
+6801424e
+e0a10000
+580000a1
+e0a08000
+6802479c
+e0a48000
+20600000
+60008a9a
+da200a9a
+20207e3d
+da200a9a
+20407e54
+24740000
+68008a9a
+20600000
+68010478
+c00c465f
+20600000
+58000002
+6000c8eb
+58200008
+600246c1
+592c0005
+e0a20000
+7044a617
+5800001b
+600144fa
+20405810
+2040582c
+20405839
+20205818
+df200028
+d8a04741
+d8c0949f
+20407ef4
+df200028
+d8a047a0
+d8c094c7
+20207ef4
+df20017e
+d8c0913a
+20207ef4
+df2001e7
+d8c092b8
+20207ef4
+204047ae
+24740000
+6800c69f
+20404790
+6800c6a0
+20404790
+6800c6a1
+20204790
+207a0000
+1fe18480
+202067f9
+204047ae
+24740000
+20404797
+202047b4
+da200000
+6800c69f
+204047a9
+7d3a2200
+6800c6a0
+204047a9
+7d3a2201
+6800c6a1
+204047a9
+7d3a2202
+1a227e00
+6000c6a9
+6800c69e
+9a2ffe00
+6809469c
+9840fe00
+600146aa
+20600000
+207a0000
+1fe18480
+2040681d
+2420fff1
+20207fef
+20407fe9
+6800c6a8
+247a0000
+6800c69b
+207a0000
+20207fe7
+2040666a
+680146aa
+da200ac2
+6808c69e
+204066b3
+2040666d
+68008ac2
+1fe27200
+6000c3af
+20407ef4
+68008ac2
+1fe27200
+6000c515
+20407ef4
+e8c08000
+6000c6e6
+e8c08000
+6000c6dd
+20600000
+6800c69a
+c4008000
+d8400003
+680146a4
+1fe22400
+da2046a6
+204065df
+680946a6
+58001b3a
+98467c00
+24628000
+6800c6a8
+207a0000
+1fe20400
+680146a4
+1fe0a403
+da200ac2
+204065df
+202047e8
+680146a2
+207a0000
+2040666a
+d8400001
+da2046a8
+204066b3
+6800c6a8
+207a0000
+680146a2
+1fe0fe01
+da200ac2
+6808c6a8
+204066b3
+2040666d
+204047ba
+e8c10000
+207a0000
+1fe20a00
+e8c88000
+18427200
+20407f01
+202047e9
+6800c69a
+c4008000
+680146ae
+1fe22400
+d8400004
+da200ac2
+204065df
+68008ac2
+c080c7f9
+58000001
+60008ac2
+18007203
+2040630d
+680146ae
+1fe22400
+d8400004
+da200ac2
+20406606
+68018ac3
+6001c0a0
+6001c4a0
+20600000
+202046d9
+da200000
+da6048d4
+20407d24
+204046f4
+6800c8eb
+6000c8ec
+20600000
+58000000
+20404816
+70467901
+20407cd3
+20407cdd
+68014682
+c3860000
+2020340a
+6809423f
+e0408000
+e8a08000
+6000c685
+20600000
+6801423f
+efe08000
+c1800000
+2020340a
+6809423f
+e8408000
+c000c82a
+58000001
+6809423f
+e0408000
+18408c02
+e8c08000
+e0a08000
+e8c10000
+20207f9c
+58000002
+20404816
+18408c05
+e8c10000
+203a340a
+20207f9c
+60030101
+68008101
+6000810c
+e8c08000
+6000810b
+e8c08000
+6000810a
+e8c08000
+60008109
+e8c08000
+60008108
+e8c08000
+60008107
+68030107
+20600000
+204068a2
+6800c223
+6000c4a0
+6800c225
+e0a08000
+6800c227
+e0a08000
+6801c4a0
+6001c0a0
+20600000
+68014203
+9a40fe00
+1ff0fe00
+600101f7
+18422400
+2040489b
+580000a0
+2040488d
+680081f7
+2040488d
+c5144856
+680081f8
+2040488d
+204048a1
+2040489b
+580000a1
+2040488d
+2040487f
+e2208000
+1a20a201
+1a40a5ff
+2422c85a
+202048a1
+1a50fe00
+600101f7
+18422400
+2040489b
+580000a0
+2040488d
+680081f7
+2040488d
+c514486b
+680081f8
+2040488d
+ea208000
+2040488d
+1a20a201
+1a40a5ff
+2422c86b
+202048a1
+df20000a
+204048be
+204048a6
+204048d2
+204048c7
+203a48a9
+c2004875
+202048a9
+204048a9
+204048af
+204048d2
+204048a6
+204048d2
+202048a9
+df200008
+da600000
+204048be
+204048a6
+204048d2
+1a63a600
+204048c7
+9a60a600
+204048d2
+204048a9
+c2004882
+20404879
+1a627e00
+20600000
+df200008
+1fe22600
+204048a9
+2a6ffe07
+2040c8ac
+2440c8af
+1a63a600
+204048d2
+204048a6
+204048d2
+204048a9
+204048d2
+c2004890
+20204871
+204048ac
+204048a6
+204048d2
+204048af
+204048d2
+202048a9
+204048af
+204048a6
+204048d2
+204048ac
+202048d2
+78347c00
+6800cffe
+202048b2
+78547c00
+6800cffe
+202048b2
+78347c00
+6800cfff
+202048b2
+78547c00
+6800cfff
+202048b2
+1fe10e07
+1fe97e00
+d8408070
+98408400
+e8408000
+f9207e00
+e0408000
+18408404
+e8408000
+f9347e00
+e0408000
+20600000
+6800cfff
+1fe10e07
+1fe97e00
+d8408070
+98408400
+e8408000
+f93ffe00
+e0408000
+20600000
+20000004
+6800cfff
+1fe10e07
+1fe97e00
+d840811c
+98408400
+58000000
+e8488000
+a84fffff
+7920fe00
+20600000
+20600000
+44fb401e
+68108a26
+2feffe07
+2040c8ea
+2040492e
+68108a26
+60008b22
+68108a27
+60008b23
+60108a27
+1fe47e00
+68088d37
+98417e00
+60008d37
+708a26e0
+68008b23
+2fe00201
+2040c941
+68008b22
+2fe00201
+2040c94a
+20404b61
+20204903
+44fbc01e
+20404919
+708a0000
+20002710
+708a10c0
+68110050
+793ffe0a
+60110050
+708a003c
+708a26ff
+708a27ff
+708a0400
+700c6b02
+58000d9d
+d8a00c6e
+98a67200
+20207ed4
+68088c6c
+202067fb
+68008d45
+207a0000
+68088c6c
+2040681d
+2020c8ea
+20600000
+d8e00000
+20407f16
+247a0000
+68008d46
+247a0000
+68008d45
+245a4bb7
+20600000
+d8a00b68
+38011212
+38048000
+38080000
+380d0000
+e0a48000
+38022412
+38048604
+38081000
+380c0008
+e0a48000
+38000001
+e0a08000
+20600000
+700c6b02
+58000000
+60008b67
+60010c65
+1fe0fe01
+60010c67
+1fe0fe01
+60010c69
+58008ffa
+60010b7c
+5800903a
+60010b7e
+d8a00b80
+d8c090fe
+20407eb3
+68008c6d
+245a492b
+2020490b
+60008ba2
+60008bbb
+20600000
+68108a26
+c2834931
+20600000
+20404936
+20407f15
+58000280
+d8e00000
+20207f08
+68008d36
+c081493b
+700d4600
+700d4700
+20600000
+68008d53
+207a0000
+700d5300
+700d3602
+700d4501
+20600000
+708a2701
+20204b37
+68008b22
+c2824955
+20600000
+68108a18
+e0a08000
+c2004946
+20600000
+44fc401f
+708a2611
+68108a20
+60008b24
+1fe27200
+203a4943
+d8a00c6e
+20404946
+68008b24
+1fe67c07
+20610000
+68008c6e
+1fe17e80
+c040495a
+c0004962
+20202a8c
+68008c6e
+1ff1fe00
+1fe37e00
+1fe17e03
+c000496a
+c000c970
+c0014975
+20202a8c
+68008c6e
+1ff1fe00
+1fe37e00
+1fe17e03
+c0004976
+c000c97e
+c0014983
+20202a8c
+68008c6f
+c004498a
+c00349a0
+c00549ea
+c00049fc
+20204984
+68008c6f
+c0014a2f
+c000ca33
+c001ca45
+20204984
+20204984
+68008c6f
+c000ca4f
+c001ca79
+c002caa3
+c004cabc
+c005cad7
+c003c984
+20204984
+68008c6f
+c0054ae8
+c004caf9
+c005cb11
+20204984
+20204984
+68108a11
+79207e00
+60108a11
+20204988
+708a1240
+20600000
+68008c6e
+c0c04984
+68008c72
+c0804984
+68008c73
+c0804984
+68008c74
+c080c984
+68008c75
+c0804984
+68008c70
+c0804984
+68008c71
+c0804984
+68008c6b
+c002499c
+c001c99e
+20204984
+da400001
+20204a14
+da400001
+20204a12
+44fcc01f
+793f8023
+68008c71
+c000c9b6
+c00149cf
+c001c9d2
+c010c9a9
+c01149e0
+20204984
+700d4b00
+68008c72
+c00049ae
+c000c9b2
+20204984
+da200b93
+ea208000
+98002400
+20204b21
+da200bac
+ea208000
+98002400
+20204b21
+68008d48
+245a49c7
+58000b68
+68088b68
+60010d3f
+60088d41
+68008c74
+98467c00
+242149c5
+68008d41
+98002400
+68010d3f
+1fe0fe01
+98002200
+20204b21
+68008c74
+202049c0
+68108a04
+245a49cb
+700d4800
+20600000
+68108a04
+79207e07
+60108a04
+20600000
+58000b80
+68088b80
+202049ba
+68008c70
+1fe67c03
+24214984
+68008c70
+da200be4
+c0004b1e
+79200023
+da200be9
+c000cb1e
+da200c07
+c0014b1e
+da200c47
+c001cb1e
+20600000
+68010c72
+c000c9e5
+68010b7c
+1fe22200
+20204b1e
+700d4501
+700d3601
+68010b7e
+1fe22200
+20204b1e
+68008c6b
+c0824984
+68008c6e
+c0c0c984
+68008c70
+c0804984
+68008c71
+c0804984
+68008c74
+c080c984
+68008c75
+c0804984
+68008c72
+c0804984
+68008c73
+c0804984
+da400001
+20204a12
+68008c6b
+c0014984
+68008c70
+c0804984
+68008c71
+c0804984
+68008c74
+c0814984
+68008c75
+c0804984
+68008c73
+c0804984
+68008c6e
+c0404a0d
+c040ca18
+c0414a1c
+20204984
+68008c72
+c0804984
+da400002
+68008d39
+c000ca16
+da200c65
+20204b21
+da200c67
+20204b21
+da200c69
+20204b21
+68008c6b
+c0824984
+da400002
+20204a12
+68008c6b
+c0824984
+68008c72
+c040ca29
+c0414a2b
+c041ca2d
+1fe17e7f
+c0004a25
+20204984
+68008d3b
+da400002
+c000ca14
+20204a12
+68008d3c
+20204a26
+68008d3d
+20204a26
+68008d3e
+20204a26
+700d4c01
+da200d4d
+da400001
+20204b21
+68010c70
+d84001ba
+98467c00
+2422c984
+793f8023
+68008d42
+243a4a42
+700cf600
+68008c74
+98002400
+da200cf6
+20404b21
+d8a00cf6
+df200008
+20207ec6
+700d4200
+700cf601
+20204a3b
+68008c74
+c080c984
+700d4b01
+da400001
+68008d49
+c0004a4d
+c000ca4e
+20204a12
+20204a14
+20204a12
+68008c6b
+c0824984
+68008c74
+c0804984
+68008c75
+c0804984
+68008c71
+c0804984
+68008c73
+c0804984
+68008c6e
+c0004a5e
+c000ca66
+c0014a67
+20204984
+68008c70
+c080c984
+68108a00
+793ffe07
+60108a00
+700d3900
+700d3a01
+20204988
+20204984
+68008c70
+c0804984
+68008c72
+c040ca72
+c0414a75
+c041ca77
+1fe17e7f
+c0004a70
+20204984
+700d3b00
+20204988
+700d3c00
+700d5301
+20204988
+700d3d00
+20204a73
+700d3e00
+20204a73
+68008c74
+c0804984
+68008c75
+c0804984
+68008c6e
+c0004a82
+c000ca8f
+c0014a90
+20204984
+68008c70
+c080c984
+68108a00
+79207e07
+60108a00
+700d3901
+700d3603
+700d4300
+20404988
+20407f15
+58001388
+d8e0000f
+20207f08
+20204984
+68008c70
+c0804984
+68008c71
+c0804984
+68008c72
+c040ca9d
+c0414a9f
+c041caa1
+1fe17e7f
+c0004a9b
+20204984
+700d3b01
+20204988
+700d3c01
+20204988
+700d3d01
+20204988
+700d3e01
+20204988
+68008c6e
+c0804984
+68008c72
+c0804984
+68008c73
+c0804984
+68008c74
+c0804984
+68008c75
+c0804984
+68008c71
+c0804984
+68008c70
+1fe17e80
+c0804984
+68008c70
+c0804aba
+700c6b02
+68008c70
+60108a04
+20404988
+700d4801
+20600000
+700c6b03
+20204ab5
+68008c6b
+c0014984
+68008c6e
+c0804984
+68008c72
+c0804984
+68008c73
+c0804984
+68008c74
+c0804984
+68008c75
+c0804984
+68008c71
+c0804984
+68008c70
+1fe67c01
+24214984
+68008c6b
+c001cad1
+c0024ad1
+20204984
+68008c70
+c0004ad5
+700c6b04
+20204988
+700c6b03
+20204988
+68008c6b
+c0824984
+68008c6e
+c080c984
+68008c70
+c0804984
+68008c71
+c0804984
+68008c74
+c0804984
+68008c75
+c0804984
+68008c72
+c0804984
+68008c73
+c0804984
+20204988
+700d4c01
+68008c71
+60008d4d
+68008c72
+1fe67c01
+2042caf5
+68008d36
+c0824988
+700d3602
+20404988
+20007530
+20007530
+20600000
+700d4501
+700d3a00
+700d3604
+20600000
+700d5001
+20404b03
+68010c70
+60010d4e
+68008c74
+98007200
+d8c00c76
+d8a00cb6
+20407f01
+20204988
+68010c70
+d8400200
+98467c00
+24628000
+68010c72
+d8400000
+98467c00
+24628000
+68010c74
+d8400001
+98467c00
+24628000
+700d4301
+20600000
+68008c74
+c0804984
+68008c70
+c0004b17
+c000cb1a
+20204984
+700d4a00
+700d4901
+20204988
+700d4401
+700d4a01
+700d4900
+20204988
+ea208000
+98002400
+1a20a201
+44fd401f
+c591cb2c
+1a40fe01
+1fe3fe00
+60108a18
+708a1803
+68008c74
+1fe0fffe
+1fe37e00
+60008c74
+c0004b35
+68010c74
+9a467c00
+20214b30
+1fe22400
+1a227e00
+60010b65
+1a427e00
+60008b67
+20204b37
+d8e00000
+20204b57
+44fdc01f
+68008b67
+207a0000
+1fe27200
+1fe67c40
+20214b3e
+df200040
+68008b67
+9f267e00
+60008b67
+68010b65
+1fe20c00
+e8c08000
+60108a18
+c591cb47
+708a1800
+c2004b43
+18c27e00
+60010b65
+d8e00000
+20404b57
+68008b67
+247a0000
+68008d36
+c1808000
+700d3602
+20600000
+da208a19
+d8e00001
+e8c08000
+e2208000
+c2004b54
+58000000
+f9207e00
+60108a10
+68088d37
+9841fe00
+60008d37
+20600000
+d8e00002
+da208a1a
+20204b54
+44fe401f
+68008d38
+207a0000
+68008d37
+243a4bac
+68008d45
+203a4b86
+68008d36
+c001cbbf
+c0814b86
+68008d3a
+243a4b86
+20404b6f
+20204b7a
+68008d38
+c4008000
+68008d37
+c3808000
+68008d38
+793ffe01
+60008d38
+68008d51
+207a0000
+c0084ba8
+20202a8c
+68008d38
+c4010000
+68008d37
+c3810000
+68008d38
+793ffe02
+60008d38
+68008d52
+207a0000
+c0104b89
+c010cba4
+20202a8c
+d8a00d54
+df200006
+20207ec6
+68008d4c
+68088d4b
+98417e00
+203a4ba0
+68088d4a
+9840fe00
+c000cb91
+20204ba0
+700d5200
+68008d55
+c0014ba1
+c001cba1
+68008d55
+60008d54
+68008d56
+e0a08000
+68008d58
+e0a08000
+68008d5a
+e0a08000
+df200004
+d8c00d54
+20204b5e
+700d5200
+df200008
+d8c00d54
+20204b5e
+700d5200
+df200003
+d8c00d74
+20204b5e
+700d5100
+df200008
+d8c00d64
+20204b52
+68008d36
+c001cbb0
+c0014bb2
+20600000
+700d3700
+20600000
+68108a00
+79207e07
+60108a00
+700d4701
+20600000
+68008d36
+c1018000
+c0014bbb
+20600000
+68008d47
+207a0000
+700d4601
+20204bc2
+d8e0000f
+20407f16
+247a0000
+68108a00
+c4038000
+708a00fc
+20007530
+708a003c
+20600000
+44fec01f
+6800c1ce
+247a0000
+20404bce
+24544be6
+20600000
+44ff401f
+18622200
+d8400004
+e8608000
+c000cbd8
+18408401
+c0014bd8
+18627e00
+60110058
+20600000
+68110112
+98467c00
+24214bd8
+78547c00
+1a220600
+20404bee
+98408400
+68110112
+98467c00
+24214bdf
+1a220600
+e8608000
+c000cc3f
+20202a8c
+44ffc01f
+68110058
+98000600
+20404bee
+98608600
+18627e00
+60110058
+20600000
+e8608000
+18608602
+c0014bf3
+e8608000
+20600000
+e8610000
+20600000
+6811005e
+194095fb
+99409400
+20600000
+d8400004
+20204bfc
+d8400002
+47004020
+1f20f201
+6811005e
+1fe21400
+1f227e00
+e1488000
+1fe0ffff
+99409400
+19427e00
+60010258
+18427e00
+c1010000
+68010258
+6011005e
+20204c0b
+58000000
+60010258
+20600000
+20758000
+58004d28
+600141f3
+580001a0
+60014243
+58001800
+60110054
+58001bff
+60110056
+58001c00
+6011005a
+20404c28
+70806200
+58001c00
+6011005e
+60110060
+58001800
+60110058
+60010244
+68110050
+793ffe0f
+60110050
+204066ce
+70804301
+70806281
+20600000
+58001fff
+6011005c
+68108081
+1fe1fe07
+60108081
+20600000
+4700c020
+6810810c
+98002400
+c301cc37
+68110112
+98002600
+d840044f
+98467c00
+24628000
+68110058
+98000600
+20204bc8
+6818810c
+284ffe06
+2020cc3a
+60108015
+20600000
+47014020
+6800c1ce
+203a4c44
+78347c00
+20600000
+e8610000
+98006000
+98000e00
+e8608000
+98000400
+1e0b7e00
+1fecfe00
+c01fcc4d
+20600000
+4701c020
+18e27e00
+c0004cdc
+c000cc66
+c0014c6b
+c001cc7a
+c0024cb3
+c002ccdc
+c0034cc6
+c003cc5c
+c0084cc9
+c008ccd1
+c0094ca5
+c009cc85
+20204cdc
+20404cdc
+20407f9e
+2040688c
+204033d2
+204033d9
+2020688f
+70424500
+204033d0
+20404c13
+202033db
+20404cf2
+68110000
+e1410000
+18007206
+20204cdd
+e8610000
+60014243
+60110052
+20600000
+e8608000
+1fe20400
+60108024
+e8608000
+98408400
+79207e07
+60108023
+e8608000
+98408400
+1fe27200
+20600000
+c515ccc4
+20404c6f
+e8608000
+60108025
+98408400
+c2004c7c
+184104ff
+e8608000
+98467c00
+2422ccc4
+20204cdc
+c595ccc4
+20404c6f
+60040a9a
+20407422
+df200010
+d8a00ac2
+20404ca0
+600c0aa2
+d8a00ad2
+20407497
+da200ad2
+da400ac2
+d8a00ae2
+20407352
+df200010
+d8c00ae2
+20404c9c
+680c0aa2
+68040a9a
+1fe0fff0
+60040a9a
+243a4c88
+20204c80
+e8c08000
+60108025
+c2004c9c
+20600000
+e8608000
+e0a08000
+98408400
+c2004ca0
+20600000
+c595ccc4
+d8400000
+df200010
+d8a00ac2
+20404ca0
+68108085
+1fe17efd
+60108085
+d8c00ac2
+df200010
+20407478
+20407428
+20407491
+20204c80
+df200020
+d8a04000
+d8400000
+e8608000
+e0a08000
+98408400
+c2004cb6
+184104ff
+e8608000
+98467c00
+2422ccc4
+70802300
+20404cdc
+20404be6
+204064a3
+20407f9e
+20202001
+70802300
+20202000
+e8630000
+600340a0
+20204cdc
+e8608000
+6000825a
+1fe27200
+e8610000
+6001025b
+1fe20a00
+204066fd
+20204cdc
+e8608000
+6000825a
+1fe27200
+e8610000
+6001025b
+d8a01000
+204066fd
+6808825a
+da201000
+6801025b
+20206608
+18007204
+20404cf4
+18007e01
+e1408000
+1e027e00
+e1418000
+18000e0e
+47024020
+20404cf6
+18e27e00
+e1408000
+1f227e00
+e1408000
+18000e05
+1f20f202
+20204bf9
+18000eff
+20404cf4
+58000001
+e1408000
+18007201
+20204ce3
+1800140c
+20204cf7
+18001408
+20204cf7
+18001406
+20204bf5
+7827fc00
+7824fc00
+e9408000
+08008008
+c2004cfa
+78247c00
+08008010
+78447c00
+7844fc00
+7847fc00
+1ff0fe00
+20600000
+7041ce00
+20600000
+680341d0
+680b0040
+98467c00
+20600000
+6800804b
+c2814d0f
+204062ef
+70007c08
+20204d04
+793ffe02
+6000804b
+20406001
+58000000
+7934fe01
+6000807f
+20204d04
+20600000
+70007c17
+d8a004d9
+58000000
+2d0ffe1b
+7920fe01
+e0a08000
+58000000
+e0a10000
+680141e3
+e0a10000
+6800c1e5
+e0a10000
+6800c1e7
+e0a10000
+20204d04
+70007c18
+20204d04
+20406899
+20608000
+d8400007
+2040681d
+2420cd2f
+70424501
+20600000
+6800c245
+c1808000
+20404c62
+20204cec
+4702c020
+68010264
+1fe20c00
+e8c08000
+1fe1040f
+1ff1fe00
+c004cd53
+c003cd53
+c0054d5f
+c002cd4b
+c000cd3f
+20600000
+18427e00
+c002cd43
+c001cd4a
+20600000
+700a9927
+20407d86
+6800c092
+c4030000
+18427e00
+c002c38e
+20600000
+20600000
+20404d5f
+da200001
+20404d63
+6801424c
+e0a10000
+58000000
+e0a08000
+20600000
+da200001
+20404d63
+6801424c
+e0a10000
+58000000
+e0a08000
+700a8e01
+6800c252
+79207e06
+6000c252
+700a9912
+20207d86
+e8c08000
+c000cd62
+20600000
+20600000
+20405240
+1a220400
+60088a8e
+1fe20a00
+1a227e00
+e0a10000
+20600000
+2035cd6f
+58004365
+d8a04246
+98a67200
+20407ed4
+47034020
+58000551
+d8a00511
+98a67200
+20407ed4
+580002c9
+d8a0025d
+98a67200
+20407ed4
+20205318
+4703c020
+18c20400
+18420c00
+e8c10000
+60010266
+e8c10000
+60010268
+18c27e00
+60010264
+6800c681
+c0004d85
+202050ef
+68010266
+203a4dfc
+47044021
+68008268
+c000cd9d
+c0284de0
+c028cdf5
+c0294df3
+c029cdf3
+20204dfc
+4704c021
+2040527e
+6800c256
+c0004d9b
+c000cd9b
+c0014d9b
+c001cd9b
+c040cd9b
+c0604d9b
+c0404d9b
+c0204d9b
+20600000
+58000000
+20600000
+20404d8f
+247a0000
+204052b8
+20404e01
+6809026f
+203a4dfb
+204052c1
+6801026f
+e0a10000
+18007e01
+e0a10000
+20204dfc
+6800c364
+207a0000
+1fe22200
+47054021
+680202d5
+d8400100
+98408400
+1c427e00
+98467c00
+24610000
+70436400
+1a227e00
+c0284db7
+20202a8c
+d9000000
+204052b8
+20404e7a
+204052c3
+20407ea8
+20404ead
+204052c1
+5800000c
+e0a10000
+18007e01
+e0a10000
+20204dfc
+4705c021
+68010275
+1fe0fe04
+1ff1fe00
+1fe97e00
+1fe08401
+d8c04260
+e8c18000
+207a0000
+60018ac2
+68008ac2
+1fe22200
+20404dd3
+1a427e00
+6000c260
+20600000
+d8e00000
+da400000
+18e67c07
+24610000
+aa2fffff
+2020cdda
+20204dde
+18427e00
+203a4dde
+f9202400
+184085ff
+18e08e01
+20204dd5
+20405274
+247a0000
+20404d8f
+247a0000
+204052c5
+20406e11
+20404dc3
+20204dec
+20405274
+247a0000
+204052c5
+20406e11
+204052ce
+68010275
+203a4dfb
+e0a10000
+68014248
+e0a10000
+20204dfc
+20404d33
+20204dfc
+47064021
+70028400
+20406a8a
+68008284
+c1008000
+20204dfc
+20405264
+58000000
+60010266
+60010268
+70026a01
+20600000
+4706c021
+204052c3
+18002400
+68010266
+1fe22600
+68010264
+98000c00
+20404e10
+1a627e00
+1a60a7fc
+1fe0fffc
+243a4e08
+1a427e00
+6001026f
+20600000
+47074021
+e8c08000
+c000ce49
+c0014e51
+c001ced5
+c0024f05
+c002cfa2
+c0034fcb
+c003d01b
+c0045050
+c004d060
+c0054e1f
+c005d061
+20405062
+20600000
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+5800000b
+e0a08000
+18e27e00
+e0a08000
+e8c10000
+c0014e2d
+c001ce33
+20600000
+58020008
+e0a30000
+58000280
+e0a20000
+18007e0c
+20204e38
+5803000c
+e0a30000
+58000006
+e0a40000
+18007e10
+9a40a400
+20204e1e
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+e8c10000
+60010aa2
+1a627e00
+9a262600
+204052c3
+5800000b
+e0a08000
+18e27e00
+e0a08000
+68010aa2
+20204e2a
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+98c08c00
+1a627e00
+9a262600
+20204e1e
+20407ea8
+20407ead
+d9000000
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+e8c10000
+1fe20400
+e8c10000
+1fe21600
+4707c021
+18427e00
+c000ce64
+c001ce86
+c008ce92
+c009ce9d
+20405062
+20204ed4
+20407ea8
+d8400050
+68014248
+243a4ece
+19627e00
+60014248
+1c427e00
+600202d5
+20404e6e
+20204ea9
+600902d3
+19627e00
+600102c9
+1a227e00
+600102cb
+1a427e00
+600102cd
+1a627e00
+600102cf
+18e27e00
+600102d1
+20600000
+680902d3
+680102c9
+1fe21600
+680102cb
+1fe22200
+680102cd
+1fe22400
+680102cf
+1fe22600
+680102d1
+1fe20e00
+20600000
+20407ea8
+58000051
+d8400051
+6801424a
+243a4ece
+19627e00
+6001424a
+6800c251
+79207e00
+79207e01
+6000c251
+20204eb1
+20407ea8
+d8400052
+6801424c
+243a4ece
+19627e00
+6001424c
+6800c252
+79207e00
+79207e01
+6000c252
+20204eb1
+20407ea8
+1b427e00
+d8400053
+6801424e
+243a4ece
+19627e00
+6001424e
+6800c253
+79207e00
+79207e01
+6000c253
+20204eb1
+58000001
+6001027d
+70436450
+20204eb3
+6800c250
+79207e00
+79207e01
+6000c250
+58000000
+6001027d
+47084022
+20407ead
+58000003
+e0a08000
+18e27e00
+e0a08000
+58000008
+e0a10000
+18427e00
+e0a10000
+19627e00
+e0a10000
+6801027d
+c000cec9
+290c0000
+2020cec4
+58000004
+e0a10000
+18007e00
+e0a10000
+5800000c
+20204ed0
+e0a10000
+18007e02
+e0a10000
+5800000c
+20204ed0
+79201000
+20204eb1
+9a40a400
+1a627e00
+9a262600
+20204ed4
+20204e1e
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+e8c10000
+1fe21600
+e8c10000
+1fe20400
+4708c022
+58000050
+98467c00
+2022ceed
+58000051
+98467c00
+2022cef3
+58000052
+98467c00
+2022ceff
+58000053
+98467c00
+2022cef9
+20600000
+19627e00
+60014248
+6800c250
+79207e01
+6000c250
+20204e1e
+19627e00
+6001424a
+6800c251
+79207e01
+6000c251
+20600000
+19627e00
+6001424c
+6800c253
+79207e01
+6000c253
+20600000
+19627e00
+6001424e
+6800c252
+79207e01
+6000c252
+20600000
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+e8c10000
+1fe20400
+18422200
+47094022
+58000050
+98467c00
+2022cf1c
+58000051
+98467c00
+2022cf3a
+58000052
+98467c00
+2022cf26
+58000053
+98467c00
+2022cf30
+20205062
+18a21600
+6800c250
+79207e04
+79207e03
+6000c250
+19620a00
+d9600050
+68014248
+1fe20400
+20204f43
+18a21600
+6800c252
+79207e04
+79207e03
+6000c252
+19620a00
+d9600052
+6801424c
+1fe20400
+20204f43
+18a21600
+6800c253
+79207e04
+79207e03
+6000c253
+19620a00
+d9600053
+6801424e
+1fe20400
+20204f43
+18a21600
+6800c251
+79207e04
+79207e03
+6000c251
+19620a00
+d9600051
+6801424a
+1fe20400
+4709c022
+58000005
+e0a08000
+18e27e00
+e0a08000
+58000006
+e0a10000
+18427e00
+e0a10000
+18007e00
+e0a10000
+18007e00
+e0a10000
+18007e0a
+9a40a400
+60090282
+18e27e00
+60008281
+18007e50
+a961fe00
+2020cf59
+1fe0fe01
+20600000
+78547c00
+c3810000
+c4000000
+c4008000
+79207e02
+18c20a00
+18a08bff
+e0a08000
+78347c00
+20600000
+6800c250
+20404f5a
+24344f6b
+70028050
+68014248
+60010282
+20204f7f
+6800c251
+20404f5a
+24344f72
+70028051
+6801424a
+60010282
+20204f7f
+6800c252
+20404f5a
+24344f79
+70028052
+6801424c
+60010282
+20204f7f
+6800c253
+20404f5a
+24740000
+70028053
+6801424e
+60010282
+470a4022
+2040523a
+204052b8
+18002400
+204052c3
+18007e04
+e0a08000
+6800c255
+e0a08000
+58000008
+e0a10000
+68010282
+e0a10000
+58000000
+e0a10000
+18007e01
+e0a08000
+18007e02
+e0a08000
+68008280
+c028cf97
+58000030
+e0a10000
+20204f99
+580003e3
+e0a10000
+d840000c
+6009026f
+204052c1
+6801026f
+e0a10000
+18007e01
+e0a10000
+70028000
+20204e1e
+18c08c01
+e8c10000
+1fe22200
+1a627e00
+9a262600
+e8c10000
+1fe22200
+470ac022
+58000050
+9a267c00
+2022cfba
+58000051
+9a267c00
+2022cfbe
+58000052
+9a267c00
+2022cfc2
+58000053
+9a267c00
+2022cfc6
+18c08c02
+e8c10000
+98007c00
+20204e1e
+6800c250
+79207e05
+6000c250
+20204e1e
+6800c251
+79207e05
+6000c251
+20204e1e
+6800c252
+79207e05
+6000c252
+20204e1e
+6800c253
+79207e05
+6000c253
+700a9906
+20207d86
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+e8c10000
+1fe22200
+e8c10000
+1fe21600
+1a220400
+20407ea8
+470b4022
+58000050
+98467c00
+2022cff2
+58000051
+98467c00
+2022d002
+58000052
+98467c00
+2022cfe6
+58000053
+98467c00
+2022cfec
+20405062
+20205017
+19620400
+6801424c
+98467c00
+2022cff8
+20405062
+20205017
+19620400
+6801424e
+98467c00
+2022cffa
+20405062
+20205017
+19620400
+68014248
+98467c00
+2022cffe
+20405062
+20205017
+20405079
+2020500a
+2040507f
+6801424c
+203a500a
+2020500a
+20405074
+68008288
+243a500a
+2020500a
+19620400
+6801424a
+98467c00
+2022d008
+20405062
+20205017
+2040506f
+2020500a
+20407ead
+58000007
+e0a08000
+18e27e00
+e0a08000
+58000004
+e0a10000
+1a227e00
+e0a10000
+19627e00
+e0a10000
+18007e08
+20205019
+20407ead
+20205019
+9a40a400
+20204e1e
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+e8c10000
+1fe21600
+e8c10000
+1fe20400
+20407ea8
+470bc022
+58000050
+98467c00
+2022d035
+58000051
+98467c00
+2022d03b
+58000052
+98467c00
+2022d041
+58000053
+98467c00
+2022d047
+20405062
+2020504f
+18422200
+19620400
+68014248
+98467c00
+2042d074
+2020504d
+18422200
+19620400
+6801424a
+98467c00
+2042d06f
+2020504d
+18422200
+19620400
+6801424c
+98467c00
+2042d079
+2020504d
+18422200
+19620400
+6801424e
+98467c00
+2042d07f
+2020504d
+20407ead
+20204e1e
+20204e1e
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+98c08c00
+58000009
+e0a08000
+18e27e00
+e0a08000
+18007e00
+e0a10000
+18007e04
+9a40a400
+1a627e00
+9a262600
+20204e1e
+20204e1e
+20204e1e
+18002400
+204052c3
+58000001
+e0a08000
+18e27e00
+e0a08000
+58000002
+e0a10000
+58000000
+e0a10000
+1a40a406
+da600004
+20204e1e
+58000000
+6001027b
+6001424a
+70425100
+20600000
+58000000
+60010275
+60014248
+70425000
+20600000
+58000000
+6001424c
+70425200
+6800c253
+c0005085
+20600000
+58000000
+6001424e
+70425300
+6800c252
+c0005085
+20600000
+700a9907
+20207d86
+6800827f
+793ffe00
+6000827f
+6801424e
+207a0000
+204052b8
+6801424e
+1fe22200
+18002453
+2020509a
+6800827f
+793ffe07
+6000827f
+6801424c
+207a0000
+204052b8
+6801424c
+1fe22200
+18002452
+2040523a
+204052c3
+18007e06
+e0a08000
+6800c255
+e0a08000
+58000004
+e0a10000
+1a227e00
+e0a10000
+1a427e00
+e0a10000
+18000408
+202050de
+470c4023
+2040523a
+204052c3
+58000002
+e0a08000
+6800c255
+e0a08000
+58000004
+e0a10000
+18427e00
+e0a10000
+19627e00
+e0a10000
+d8400008
+202050de
+470cc023
+2040523a
+204052c3
+58000004
+e0a08000
+6800c255
+e0a08000
+58000008
+e0a10000
+18427e00
+e0a10000
+58000000
+e0a10000
+58000001
+e0a08000
+58000002
+e0a08000
+580003e3
+e0a10000
+d840000c
+202050de
+470d4023
+2040523a
+204052c3
+58000006
+e0a08000
+6800c255
+1fe0fe01
+18a22200
+6000c255
+1a220a00
+e0a08000
+58000004
+e0a10000
+18427e00
+e0a10000
+19627e00
+e0a10000
+d8400008
+6009026f
+18427e00
+203a5264
+204052c1
+6801026f
+e0a10000
+18007e01
+e0a10000
+20600000
+68010275
+203a2a8c
+204052ce
+68010275
+e0a10000
+68014248
+e0a10000
+20600000
+68010266
+203a4dfc
+470dc023
+68008268
+c000d0f9
+c0284de8
+c028cdf5
+c0294df3
+c029cdf3
+20204dfc
+470e4023
+204052b8
+18002400
+204052c3
+1fe20a00
+68010266
+1fe22600
+68010264
+98000c00
+20405108
+1a60a7fc
+2422d102
+1a420400
+204050de
+20204dfc
+e8c08000
+c0015113
+c000d116
+c001d120
+c002d15c
+c002518e
+c003d213
+c00351e1
+c0045050
+c0054e3a
+2020522e
+20407ea8
+20407ead
+20204e51
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+e8c08000
+1a20a3ff
+2422d11c
+20600000
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+e8c10000
+1fe21600
+e8c10000
+1fe20400
+e8c10000
+1fe67c00
+2022d132
+c001512e
+c002512e
+20205130
+700a9916
+20407d86
+e8c10000
+20205159
+20407ea8
+470ec023
+58000050
+98467c00
+2022d141
+58000051
+98467c00
+2022d147
+58000053
+98467c00
+2022d153
+58000052
+98467c00
+2022d14d
+20205159
+19627e00
+60014248
+6800c250
+79207e01
+6000c250
+20205158
+19627e00
+6001424a
+6800c251
+79207e01
+6000c251
+20205158
+19627e00
+6001424c
+6800c252
+79207e01
+6000c252
+20205158
+19627e00
+6001424e
+6800c253
+79207e01
+6000c253
+20407ead
+1a627e00
+9a262600
+20600000
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+e8c10000
+1fe21600
+e8c10000
+e8c10000
+243a5188
+20407ea8
+19620400
+470f4023
+58000050
+98467c00
+2022d176
+58000051
+98467c00
+2022d17a
+58000052
+98467c00
+2022d17e
+58000053
+98467c00
+2022d182
+6800c250
+79207e05
+6000c250
+20600000
+6800c251
+79207e05
+6000c251
+20600000
+6800c252
+79207e05
+6000c252
+20600000
+6800c253
+79207e05
+6000c253
+700a9906
+20207d86
+20407ead
+1a20a3fa
+2022d18d
+18c08c01
+1a20a3ff
+20205189
+20600000
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+e8c10000
+18c08c02
+1fe20400
+58000005
+e0a08000
+18e27e00
+e0a08000
+1a20a202
+1a227e00
+e0a10000
+20407ea8
+470fc023
+58000050
+98467c00
+2022d1ad
+58000051
+98467c00
+2022d1be
+58000052
+98467c00
+2022d1c4
+58000053
+98467c00
+2022d1ca
+202051cf
+6800c250
+79207e04
+79207e03
+6000c250
+c28151bb
+6808827f
+79200406
+6008827f
+18e27e00
+1fe0fe01
+60008281
+6800c250
+79207e02
+6000c250
+68014248
+60010282
+202051cf
+6800c251
+79207e04
+79207e03
+6000c251
+6801424a
+202051cf
+6800c252
+79207e04
+79207e03
+6000c252
+6801424c
+202051cf
+6800c253
+79207e04
+79207e03
+6000c253
+6801424e
+1fe21600
+20407ead
+19627e00
+e0a10000
+18007e00
+e0a10000
+18007e00
+e0a10000
+18007e0a
+9a40a400
+1a20a3fa
+2022d1e0
+e8c08000
+e0a08000
+1a40a401
+1a20a3ff
+202051da
+20600000
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+e8c10000
+1fe22200
+e8c10000
+1fe21600
+20407ea8
+47104024
+58000050
+1a220400
+98467c00
+2022d1fa
+58000052
+1a220400
+98467c00
+2022d1ff
+58000053
+1a220400
+98467c00
+2022d201
+20205203
+58000000
+60010275
+60014248
+6000c250
+20205205
+20405079
+20205205
+2040507f
+20205205
+58000000
+6001027b
+20407ead
+58000007
+e0a08000
+18e27e00
+e0a08000
+58000004
+e0a10000
+1a227e00
+e0a10000
+19627e00
+e0a10000
+18007e08
+9a40a400
+20600000
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+e8c10000
+1fe21600
+e8c10000
+1fe20400
+20407ea8
+4710c024
+6800c255
+a8e1fe00
+2420d22a
+58000050
+98467c00
+2022d227
+58000051
+98467c00
+2022d22a
+2020522a
+70424800
+70425000
+2020522a
+20407ead
+1a627e00
+9a262600
+20600000
+58000001
+e0a08000
+e8c08000
+e0a08000
+58000002
+e0a10000
+58000000
+e0a10000
+58000006
+9a40a400
+18002604
+20600000
+6800c255
+1fe0fe01
+c080523e
+1fe0fe01
+6000c255
+20600000
+47114024
+da400000
+2040526e
+243a2a8c
+2040527e
+da401800
+d8e00000
+6808c256
+a84fffff
+2020d24f
+204052a0
+19667c00
+2021524f
+20405288
+20205255
+1a40a480
+18e08e01
+58000008
+98e67c00
+20215247
+da400000
+1a427e00
+203a2a8c
+20600000
+4711c024
+20405277
+18c08c01
+e8c10000
+20600000
+47124024
+20405277
+18c20a00
+18c20400
+58000000
+e0a18000
+20600000
+4712c024
+20405274
+203a2a8c
+6801c25d
+6001c260
+6801c25a
+6001c25d
+6801c257
+6001c25a
+20600000
+47134024
+6801c257
+20600000
+4713c024
+6801c25a
+20600000
+47144025
+6801c260
+20600000
+20405274
+203a2a8c
+d8c04257
+e8c18000
+203a527a
+18c08dfd
+20600000
+4714c025
+df200004
+d8c04257
+d8400000
+e8c18000
+1fe17eff
+98418400
+c2005282
+6008c256
+20600000
+47154025
+2040526e
+243a2a8c
+20405274
+203a5295
+6801c25a
+6001c257
+e8c18000
+e0a18000
+e8c18000
+e0a18000
+58000000
+e0a18000
+d8400000
+19627e00
+98e0fe00
+f9200400
+18e08e01
+98e67c00
+2422d298
+1a4d7e00
+9841fe00
+6001c260
+20600000
+4715c025
+2040527e
+18e22600
+d8400000
+d9600000
+18e27e00
+c00452b0
+6800c256
+afefffff
+2020d2b0
+18408480
+18e08e01
+1a227e00
+98467c00
+2022d2b0
+202152a5
+18427e00
+9a267c00
+242152b6
+18e27e00
+1a620400
+98461600
+1a620e00
+20600000
+47164025
+da20007f
+20405240
+6001026b
+1fe0fe04
+6001026d
+58000000
+6001026f
+20600000
+6801026b
+202052e2
+6801026d
+202052e2
+4716c025
+da2000fa
+20405240
+60010271
+1fe0fe04
+60010273
+58000000
+60010275
+20600000
+68010271
+202052e2
+68010273
+202052e2
+47174025
+20407e7c
+70028401
+2040526e
+247a0000
+da20007f
+20405240
+60010277
+1fe0fe04
+60010279
+58000000
+6001027b
+70028400
+20207e8c
+68010277
+202052e2
+203a2a8c
+1fe20a00
+20600000
+4717c025
+da400000
+da204257
+1a20a3fe
+1a20a202
+58004263
+9a267c00
+2022d2f5
+ea208000
+1a20a201
+203a52e9
+ea290000
+e8410000
+9a40a400
+1a40a404
+202052e9
+1a427e00
+20600000
+d8e0000c
+20202c32
+d8e0000c
+20202c36
+47184026
+2040527e
+6800c256
+207a0000
+204052e5
+d8400100
+98467c00
+202152f7
+204052f9
+d8a04263
+da204257
+58004263
+9a267c00
+20628000
+ea208000
+1a20a201
+243a530f
+e0a10000
+1a20a202
+20205306
+ea210000
+1a20a202
+1fe20c00
+e8c10000
+e0a10000
+1fe27200
+1f20f202
+20407f01
+20205306
+4718c026
+2040527e
+6800c256
+207a0000
+da204258
+1a20a3fd
+d8c04263
+1a20a203
+58004264
+9a267c00
+20628000
+e8c10000
+203a531f
+1fe0fe04
+1fe27200
+18c22400
+ea210000
+1fe20a00
+1a420c00
+18c08dfe
+20407f01
+2020531f
+47194026
+7855fc00
+70045501
+70043f03
+70045601
+5fffffff
+60010459
+18007e00
+60008457
+60008462
+6001c169
+6001c16c
+6002c403
+79207e27
+6002c408
+7043dc01
+7043dd00
+202056ed
+4719c026
+7834fc00
+70044003
+70047801
+70445a01
+5800ffff
+6001445c
+18007e00
+6002c408
+79207e27
+6002c403
+2020532e
+471a4026
+7854fc00
+58000017
+600144a8
+70044001
+70436e00
+7000a000
+7044c400
+7044c500
+6801046d
+600144ba
+68010441
+1feffe05
+1ff1fe00
+6001046d
+2020532e
+204053c4
+204055e8
+204056f0
+202053ce
+471ac026
+204053c4
+204032f4
+68008440
+c001d366
+2020537a
+471b4026
+7834fc00
+204056e4
+20215377
+20402c6c
+20405413
+2040561e
+7856fc00
+204054bf
+24768000
+471bc026
+68008005
+1fe0fe01
+60008005
+204055aa
+7854fc00
+20600000
+204053a9
+7854fc00
+20600000
+471c4027
+70450f00
+20407aaf
+20405c18
+78577c00
+204056e4
+202153a9
+20402c6c
+20405413
+20405489
+242c539b
+204053b7
+2036d388
+20205395
+471cc027
+6800c50f
+1fe0fe01
+6000c50f
+c0065395
+204055aa
+2040561e
+204054c7
+2040567e
+680141fb
+20407f9c
+204053a0
+203453a4
+471d4027
+20405be4
+20405bdb
+20407d9c
+68008462
+c281d3a9
+471dc027
+204057f4
+2040559d
+20405575
+20202841
+78547c00
+c5157fe7
+c514ffe7
+20600000
+471e4027
+78377c00
+204054c1
+2036d388
+20205395
+471ec027
+204053af
+204033b4
+20407a77
+700a9915
+20207d86
+58000000
+6004c4ff
+70045500
+70044000
+70043f00
+7044c500
+7044c400
+20600000
+471f4027
+68008005
+1fe0fe01
+60008005
+6800843f
+c3818000
+79207e03
+6000843f
+680144ba
+6001046d
+58000000
+600244e5
+20600000
+471fc027
+70890f36
+70890b5f
+783b7c00
+70891407
+20402c6c
+6800c1e0
+207a0000
+70890ab8
+20600000
+47204028
+70890f2e
+70890bff
+785b7c00
+70891403
+db600000
+20600000
+7844fc00
+7843fc00
+68018467
+98001e00
+68008016
+1fed8400
+79200401
+18431c00
+20600000
+204053e6
+2040291f
+58000500
+20402a8f
+20202924
+2036a939
+204053e6
+20202933
+4720c028
+20402918
+6800848c
+243a53f9
+68008016
+1fe67c24
+202153f3
+18000400
+c1128000
+18000418
+c1130000
+1800044e
+20600000
+1fe67c0a
+202153f6
+1fe0fe01
+1fe3fe00
+1fe08402
+20600000
+68008016
+1fe38400
+20600000
+d84001f4
+207a0000
+d84000fa
+c1008000
+d8400096
+c1010000
+d8400064
+c1018000
+d840004b
+c1020000
+d8400032
+c1028000
+d8400028
+c1030000
+d8400014
+20600000
+588e89be
+1fed7e00
+1fe1fed6
+98001200
+58555555
+60018467
+20600000
+47214028
+78287c00
+68020463
+98001200
+20405466
+58000200
+2034d41c
+6801044d
+1fe37e00
+d8400500
+9840fe00
+20402a24
+1b427e00
+60030491
+20600000
+4721c028
+68008016
+c012d428
+c013542e
+c013d434
+20205434
+6808c48d
+284ffe01
+2020d43f
+284ffe02
+2020d444
+2020543a
+6808c48d
+284ffe02
+2020d444
+284ffe00
+2020d43a
+2020543f
+6808c48d
+284ffe00
+2020d43a
+284ffe01
+2020d43f
+20205444
+70001625
+68008ac2
+79207e00
+60008ac2
+20600000
+70001626
+68008ac2
+79207e01
+60008ac2
+20600000
+70001627
+68008ac2
+79207e02
+60008ac2
+20600000
+47224028
+1a208c01
+e8c08000
+c4000000
+1a208a1a
+e8a10000
+1fe0fe01
+e0a10000
+1a208c19
+e8c08000
+1a208a18
+e8a88000
+9840fe00
+1fe67c24
+20215459
+1fe0ffdb
+e0a08000
+20600000
+4722c028
+6802846f
+18000400
+18007225
+c3005461
+18408401
+1fe37e00
+c200545f
+1840ffff
+60008461
+20600000
+47234028
+68008457
+98000e00
+680a846f
+a84fffff
+2020d47c
+4723c028
+68008461
+98e67e00
+20215472
+1fe60fff
+2020546c
+18e27200
+18000e00
+a84fffff
+2020d477
+1f20f201
+1f227e00
+203a547c
+18e08e01
+1f20f3ff
+20205474
+18e27e00
+60008016
+20600000
+2034d482
+37c18200
+20600000
+d9600ea0
+34730200
+20600000
+78487c00
+6801436c
+1fe21600
+2020548e
+47244029
+78287c00
+6801044d
+680a44e5
+98409600
+204053de
+4724c029
+204053d5
+7856fc00
+7826fc00
+7830fc00
+78507c00
+19623600
+37c18400
+2037549a
+1b420400
+600b009a
+242c264d
+203754a1
+dd2001e0
+1c225000
+6800843f
+c301d4a1
+2055ab05
+47254029
+204029bb
+7823fc00
+7824fc00
+09800008
+19897e00
+600082d9
+09800008
+19897e00
+e0a08000
+1fe1723f
+2022d4b1
+09800008
+19897e00
+e0a08000
+c20054ad
+4725c029
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+2023264d
+7836fc00
+68008017
+1fe0a200
+20402981
+7846fc00
+20202918
+47264029
+204054c9
+68088017
+2040291f
+20402924
+78287c00
+d960157c
+2020548f
+204054c9
+2020264d
+4726c029
+204053d5
+204053e3
+202054cd
+79202a00
+782efc00
+78307c00
+7850fc00
+2040547f
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+7823fc00
+7824fc00
+47274029
+6800c3dc
+08008608
+e8c08000
+1fe1723f
+08008608
+2022d4e2
+e8c08000
+08008608
+c20054df
+78247c00
+08008618
+78447c00
+37d38200
+20000064
+784efc00
+20600000
+4727c029
+6800c484
+c000d4f9
+6800c485
+1ff27e00
+1febfe00
+6000c3dc
+6808c36f
+1840fe06
+6000c3dd
+680344a0
+600343de
+18427200
+d8c04370
+20407ef4
+20205504
+6800c486
+1ff27e00
+1febfe00
+1fe0fe01
+6000c3dc
+5800000c
+6000c3dd
+680344a0
+600343de
+680341d0
+e0a30000
+4728402a
+68008000
+1fe0fe01
+60008000
+db600708
+7856fc00
+202054bf
+4728c02a
+6800c49e
+c1808000
+68008000
+1fe0fe01
+60008000
+d8400c03
+6800c49f
+7d3a0406
+1a227e00
+7d3a0407
+600943dc
+680344a0
+e0a30000
+6803044f
+e0a30000
+202054bf
+4729402a
+d8400004
+6800c485
+7d3a0406
+6008c3dc
+6808c38f
+1840fe06
+6000c3dd
+680344a0
+600343de
+d8c04390
+18427200
+20407ef4
+204054c7
+20205706
+4729c02a
+18007fff
+38080001
+6002846f
+2040545b
+18007204
+d8a00463
+2040630d
+6801449c
+6001046d
+180a7e00
+1fe17e0f
+1fe67c04
+20215535
+60008458
+600086e6
+472a402a
+68094367
+60090441
+18422600
+1c40fe07
+9a66fc00
+20407f86
+18072200
+9a267e00
+9a60fe00
+68094365
+9840fe00
+60020443
+9c462200
+1a20a3fa
+da402205
+6800c495
+7d3a2406
+6800c48e
+7d3a2407
+1a427e00
+600143dc
+680344a0
+e0a30000
+6803044f
+e0a30000
+68020463
+e0a20000
+180a7e00
+e0a10000
+180a7e00
+e0a08000
+18007e02
+e0a08000
+1a2b7e00
+e0a10000
+1a6b7e00
+e0a10000
+472ac02a
+58000000
+e0a10000
+6801449c
+e0a10000
+6802846f
+e0a28000
+68008458
+d84000a0
+9841fe00
+e0a08000
+204054c7
+580043dc
+1fe08c12
+e8c18000
+60018467
+20600000
+472b402a
+7854fc00
+2020540c
+6800843f
+c4028000
+68010459
+6809045f
+98467e00
+24610000
+60010a9a
+472bc02a
+6800843f
+793ffe05
+793ffe03
+6000843f
+68020443
+68090441
+60090aa2
+98462200
+472c402b
+6800c3d3
+6000846a
+e8c90000
+e8c10000
+1febfe00
+60010441
+184b8400
+9840fe00
+e8ca0000
+600a046b
+9a20fe00
+1fe22800
+68010441
+68090aa2
+98467e00
+68090a9a
+984ffe00
+9a80fe00
+60020443
+20405713
+6801046d
+600144ba
+20600000
+472cc02b
+6800843f
+c4030000
+68010459
+6809045f
+98467e00
+24610000
+6800843f
+793ffe06
+6000843f
+6802c3ce
+6002846f
+2020545b
+472d402b
+204056ed
+204055c0
+680082d9
+2feffe04
+7920802a
+1fe37e00
+9842fe00
+2feffe02
+7920800f
+c6078000
+680082da
+203a55bc
+6800843f
+c30255bc
+2040748d
+204073fb
+247a0000
+68088456
+79400402
+60088456
+20600000
+472dc02b
+68088456
+284c0005
+20608000
+680082d9
+1fe3fe00
+9842fe00
+c4018000
+793f8405
+79400403
+60088456
+28400603
+24608000
+6800c3de
+c002d5d2
+6800c4c5
+c00155d6
+20600000
+6800843f
+79207e04
+6000843f
+20600000
+472e402b
+7044c500
+dfe00000
+6002440d
+6002c403
+79207e27
+6002c408
+6800843f
+793ffe04
+6000843f
+20600000
+472ec02b
+20405422
+20405485
+68008001
+1fe0fe01
+60008001
+20600000
+472f402b
+6800c369
+c1808000
+d8e00002
+20407f16
+247a0000
+6801436a
+6809436c
+98467e00
+d8e00002
+20407f08
+7854fc00
+20405572
+204055e1
+24768000
+472fc02b
+680302db
+6003044f
+68008002
+1fe0fe01
+60008002
+20405608
+20748000
+2040550b
+24768000
+4730402c
+68008004
+1fe0fe01
+60008004
+680482e1
+60048101
+20600000
+4730c02c
+6800849b
+c18d8000
+6803044f
+680b448f
+98467c00
+24628000
+2040223b
+24628000
+2040552b
+20405340
+4731402c
+7041ce00
+70047600
+70436900
+70049b00
+20202223
+da200001
+680082d9
+c3830000
+da200000
+20600000
+4731c02c
+68008456
+c3828000
+20405642
+20405873
+203a5664
+e8c08000
+e8c88000
+18422200
+9a267e00
+d840001b
+20407fdd
+1fe20400
+e8c08000
+1fe20200
+1a227e00
+98c08c00
+d8a043de
+18427200
+20407f01
+20405654
+20405666
+20405873
+e8c08000
+1fe22200
+18c22600
+e8c88000
+18422400
+9a467e00
+d840001b
+20407fdd
+9a40fe00
+e2608000
+9a267c00
+24628000
+20205896
+20405649
+c6148000
+6800c4e9
+c3015652
+20405876
+203a5652
+20205650
+20405873
+203a5652
+e8c08000
+e8c88000
+98467e00
+1fe67c1b
+20215652
+79200029
+20600000
+793f8029
+20600000
+1a227e00
+207a0000
+d8200001
+20600000
+4732402c
+18408401
+2040576a
+18c08dfe
+e8c10000
+d8402902
+98467c00
+24628000
+18c08c01
+18c22200
+e8c08000
+20600000
+18000400
+18000201
+4732c02c
+6008c3dd
+68088456
+79200405
+18417efc
+9821fe00
+60008456
+1fe17e1f
+280ffe29
+7920fe04
+6000c3dc
+6800c3dc
+28200601
+2420d676
+6800c3dd
+207a0000
+6800843f
+c4020000
+2040748d
+202073e3
+d8e00000
+20202c32
+d8e00000
+20202c36
+4733402c
+c6078000
+20405890
+247a0000
+680082d9
+1fe17e03
+6000c50c
+e8c08000
+1fe17e1f
+6000c50b
+207a0000
+18c27e00
+6001450d
+6800c50c
+c001dc64
+2040569a
+2434567a
+2040567c
+6801450d
+1fe20c00
+e8c10000
+600144fc
+4733c02c
+e8c10000
+c00258ab
+c0035af4
+c002dab6
+20600000
+6800c50c
+c00156a9
+c000d6c1
+20600000
+20407fe7
+d8400004
+9fe67c00
+20628000
+d8400005
+9fe67c00
+20628000
+d8400006
+9fe67c00
+20628000
+20207fe9
+6801450d
+1fe20c00
+e8c10000
+600144fc
+e8c10000
+2040569e
+24740000
+6808c50b
+6008c4fe
+680144fc
+1fe0fe04
+98467c00
+2022ffe7
+6800c50b
+1fe27200
+d8a00311
+6801450d
+1fe20c00
+20407f01
+20207fe9
+20407fe7
+6800c4fe
+247a0000
+20207fe9
+204056bd
+24740000
+6800c4fe
+d8a00311
+98a0a200
+6808c50b
+9840fe00
+6000c4fe
+6800c50b
+1fe27200
+1a220a00
+6801450d
+1fe20c00
+20407ef4
+58000311
+6001450d
+680144fc
+1fe0fe04
+6808c4fe
+98467c00
+2022ffe7
+20207fe9
+20407ea5
+d8a0445e
+680144fc
+1fe0fffb
+e0a08000
+1fe27200
+20407e9f
+20207ef4
+20407ea5
+d8a04471
+202056d9
+680141f9
+20207f9c
+680a045b
+20402a7b
+98461600
+19627e00
+6809046d
+18520400
+18438400
+98467e00
+20600000
+20402a7b
+6002045b
+20600000
+70001624
+700ac200
+4734402d
+6800c36e
+207a0000
+d8e00000
+20407f16
+247a0000
+4734c02d
+7854fc00
+78287c00
+20405572
+20405422
+204054e9
+2436d706
+68008003
+1fe0fe01
+60008003
+680082d9
+1fe17e0f
+c001d51c
+c002d728
+4735402d
+180a7e00
+d84001ff
+98417e00
+1fe0fefa
+20403cbe
+68008ac2
+6808c48d
+98467c00
+2422d6f2
+d8e00000
+68014482
+20207f08
+4735c02d
+68008476
+204053fc
+68010441
+984ffe00
+d8400177
+984ffe00
+d84186a0
+9846fc00
+6800846a
+d8404e20
+984ffe00
+9840fe00
+600244e5
+4736402d
+680140c1
+20407f86
+18078400
+9840fe00
+6001044d
+20600000
+4736c02d
+680302e1
+680b44a0
+98467c00
+24628000
+20405619
+1a227e00
+6000c48e
+680382ee
+60038101
+e8c40000
+e0a40000
+680302db
+6003044f
+18c08c06
+e8c40000
+60040463
+e8c90000
+4737402d
+184b8400
+e8c10000
+1febfe00
+60010441
+60020443
+98467e00
+1fe0d1fe
+e8c48000
+6004846b
+4737c02d
+e8c08000
+1ff18400
+18430400
+60088476
+1fe17e1f
+60008458
+20405713
+2040545b
+2040534c
+2040223b
+24628000
+4738402e
+20402841
+20405ad3
+700a9914
+20407d86
+20202223
+4738c02e
+6801445a
+98002400
+6801445c
+98002600
+680144bc
+98000c00
+78347c00
+20600000
+e8c10000
+207a0000
+9a467c00
+24610000
+9a667c00
+20628000
+20215768
+18007c01
+20600000
+18007e00
+20600000
+2040576d
+2022d779
+20600000
+4739402e
+680144bc
+98000c00
+e8c10000
+207a0000
+98467c00
+20628000
+e8c08000
+98c08c00
+e8c08000
+98c08c00
+20205770
+e8c08000
+98c08c00
+20600000
+4739c02e
+680144bc
+98000c00
+e8c10000
+207a0000
+e8c08000
+98c08c00
+18c08dfe
+e8c10000
+98467c00
+20628000
+e8c08000
+98c08c00
+2020577f
+6801049c
+2020578e
+473a402e
+680144bc
+98000c00
+18422200
+e8c10000
+203a5799
+9a267c00
+2022d79a
+e8c08000
+98c08c00
+e8c08000
+98c08c00
+20205790
+20207fef
+e8c08000
+600084a2
+1fe27200
+d8a004a3
+20407ef4
+e8c08000
+600084b3
+20407ea5
+20207ff1
+473ac02e
+204057a6
+202057b8
+d8402a00
+2040577c
+207a0000
+e8c08000
+18c20a00
+6808c3af
+18427200
+98467c00
+242157b5
+98460400
+d8c043b0
+20407f01
+18427200
+2442d7f0
+20600000
+1fe27200
+d8c043b0
+20207ef4
+da60438f
+da204370
+204057c5
+58000000
+79347e00
+60008a9a
+da6043af
+da204390
+204057c5
+20740000
+68008a9a
+203a2a8c
+20600000
+473b402e
+20407fe7
+20407eda
+da400000
+d8a00ac3
+204057df
+6800c3af
+1fe08401
+9a40a200
+1a20a202
+1a267c1f
+242157dd
+e0a88000
+d8400009
+e0a88000
+98007200
+20407ef4
+1a222400
+1a427e00
+60008ac2
+d8c00ac2
+5fffffe0
+9a608a00
+20207ebd
+20407fe9
+202057d7
+ea208000
+207a0000
+1fe0fe01
+e8c88000
+18467c09
+2022d7ee
+9a40a400
+1a220c00
+98007200
+20407ef4
+18c22200
+1a227e00
+9a667c00
+20610000
+202057df
+9a20a200
+202057ea
+58000020
+e0a08000
+c20057f0
+20600000
+473bc02e
+7855fc00
+203757f8
+2436d806
+20402bcb
+680140c1
+6001044d
+2436abde
+c507abde
+6800c50b
+243a2bde
+6800c3dd
+243a2bde
+6800c4e9
+c282abde
+6800843f
+c282abde
+20202bc0
+680940c1
+18430400
+6801044d
+9840fe00
+6001044d
+20202bd6
+d8e00000
+20205824
+d8e00000
+20205828
+d8e00001
+20205824
+d8e00001
+20205828
+d8e00002
+20205824
+d8e00002
+20205828
+d8e00003
+20205824
+d8e00003
+20205828
+d8e00004
+20205824
+d8e00004
+20205828
+d8e00005
+20205824
+d8e00005
+20205828
+6800c4e9
+f9207e00
+6000c4e9
+20600000
+6800c4e9
+f93ffe00
+6000c4e9
+20600000
+58112233
+6001c4ea
+58445566
+e0a18000
+58778899
+e0a18000
+58001122
+e0a18000
+58334455
+e0a18000
+58000066
+e0a08000
+20600000
+59000302
+60024453
+58010010
+6001c457
+7044c601
+20600000
+da200000
+d8200001
+20205850
+d8200003
+20405850
+1a427e00
+e0a08000
+20600000
+18000202
+1a20a204
+20405850
+1a20a3fc
+1a227e00
+e0a10000
+1a427e00
+e0a10000
+20600000
+1a267cf0
+24212a8c
+6800c4ff
+d8400001
+df200004
+98417c00
+2022d85a
+18438400
+c2005855
+20202a8c
+9842fe00
+6000c4ff
+1f267e04
+1ff27e00
+1ff27e00
+d8401800
+98408400
+df200000
+d8c04500
+e8c10000
+203a5869
+1f227e00
+1f20f201
+c0825863
+20202a8c
+18c08dfe
+e0c90000
+18420a00
+1a227e00
+e0a08000
+58000000
+e0a08000
+18227e00
+e0a08000
+20600000
+68014500
+1fe20c00
+20600000
+68014502
+1fe20c00
+20600000
+2040587c
+1fe20c00
+20600000
+68014506
+247a0000
+68014504
+247a0000
+68014502
+247a0000
+68014500
+20600000
+20405873
+18c08c03
+20600000
+20405873
+18c08c07
+20600000
+20405879
+18c08c07
+20600000
+20405879
+18c08c03
+20600000
+68014506
+20600000
+68014504
+20600000
+68014500
+20600000
+68014500
+d8401800
+98467e00
+1ff1fe00
+1ff18e00
+6800c4ff
+f93ffe00
+6000c4ff
+df200000
+1f23fe00
+d8404502
+98408400
+e8410000
+184085fe
+e0410000
+1f227e00
+1f20f201
+c081d89f
+58000000
+e0410000
+20600000
+e8c18000
+60018477
+c00158c1
+c001d8c9
+c00258cc
+c00358f2
+c004593f
+c00559bc
+c00659e4
+c00859fa
+c0095a2f
+c00b5a48
+c00c5a5b
+c0295a60
+20600000
+18002203
+20405a82
+58000002
+e0a08000
+680144a6
+e0a10000
+20600000
+204058c9
+18002203
+20405a82
+58000003
+e0a08000
+680144a6
+e0a10000
+20600000
+1fecfe00
+600144a8
+20600000
+20405ab1
+20407fe7
+202058cf
+d9600003
+20405756
+2040575f
+203a58f0
+242158ed
+18c08dfe
+20407ea5
+20407e9c
+243458e1
+20407e85
+20407fe9
+18002214
+20405a82
+20407e95
+58000005
+e0a08000
+58000001
+e0a08000
+20407e9f
+e8c10000
+e0a10000
+e8c08000
+1fe27200
+20407f01
+20407ea2
+196097ff
+2022d8f0
+e8c08000
+98c08c00
+202058d1
+e8c08000
+98c08c00
+202058ea
+20345a76
+20205aa5
+20405ab1
+e8c10000
+60014472
+20407ea5
+d8a0445e
+680144fc
+1fe0fff9
+204056db
+20205905
+78547c00
+6809445a
+6801445c
+98467c00
+24215902
+18427e00
+c1800000
+78347c00
+70047a01
+20205a77
+204058fb
+20740000
+68094472
+58002800
+98467c00
+2022d90c
+20205a76
+7004b400
+6809445a
+60090aa2
+2040578c
+243a5a76
+68090aa2
+2040578c
+243a5925
+18c22200
+680084b3
+1fe27200
+6808c45e
+98467c00
+2422d921
+da40445f
+20407f88
+2022d928
+680104a3
+68094472
+98467c00
+2022d930
+68010aa2
+1fe0fe01
+60010aa2
+20205911
+680084b4
+c000d930
+20205a76
+680104a3
+68094472
+98467c00
+2422d921
+7004b401
+68090aa2
+6009049e
+20205921
+680084b4
+c0005921
+7004b402
+68090aa2
+184085ff
+600904a0
+da200005
+20405a82
+58000007
+e0a08000
+6801049e
+e0a10000
+680104a0
+e0a10000
+20600000
+20405ab1
+204056df
+20205942
+6809445a
+60090aa2
+20405756
+2040576d
+18c08dfe
+18c27e00
+6001049c
+68094472
+58002a00
+98467c00
+2022d9a8
+58002803
+98467c00
+2422d990
+d9600002
+20405a88
+2421596d
+68090aa2
+2040578a
+c000d96d
+20405a94
+2422d96b
+2434596f
+78547c00
+da200014
+20405a82
+58000009
+e0a08000
+18a26000
+18a08a01
+2040597d
+20405a84
+2040578a
+20405984
+680084a2
+1fe0fe05
+e6008000
+680084a2
+c008596d
+196097ff
+2022d96d
+20405a84
+20205951
+20345a76
+20205aa5
+20405a97
+20405a84
+2040578a
+680084a2
+c008596d
+20407e9c
+68010aa2
+1fe0ffff
+e0a10000
+20405aa1
+20405984
+196097ff
+2022d96d
+2020596b
+68010aa2
+e0a10000
+680084b3
+1fe27200
+20407e9f
+20407ef4
+20207ea2
+20407e9c
+68010aa2
+e0a10000
+20407ea2
+680084a2
+1fe27200
+20407e9c
+20407e9f
+9f260c00
+18c08dff
+20407ef4
+20207ea2
+6809445a
+60090aa2
+20405a88
+24215a76
+2040578a
+c000da76
+20405a94
+2422d9a6
+da200014
+20405a82
+58000009
+e0a08000
+680084b3
+1fe27200
+1fe0fe02
+e0a08000
+68010aa2
+e0a10000
+20407e9f
+20407ef4
+20407ea2
+20205aa5
+20405a84
+20205992
+d8402a00
+2040577c
+207a0000
+18c08dfb
+e8c10000
+60010aa2
+da200014
+20405a82
+58000009
+e0a08000
+6800c3af
+1fe27200
+1fe0fe02
+e0a08000
+68010aa2
+e0a10000
+d8c043b0
+20407ef4
+20407ea2
+20205aa5
+68090478
+6800c4e9
+c281d9dd
+2040576a
+203a5a76
+18c08dfe
+e8c10000
+d8402a00
+98467c00
+2022d9d3
+e8c08000
+1fe67c16
+202159ca
+18007e16
+1fe22600
+20407ea5
+1a60a201
+20405a82
+5800000b
+e0a08000
+1a627200
+20407e9f
+20207f01
+20407ea5
+6800c3af
+1fe0a201
+20405a82
+5800000b
+e0a08000
+6800c3af
+1fe27200
+d8c043b0
+20207f01
+680144fa
+98467c00
+2422d9bf
+20405a42
+243459bf
+70047a05
+20205a77
+e8c10000
+6001445e
+da200014
+20405a82
+5800000d
+e0a08000
+6801445e
+98002200
+68090478
+2040576a
+203a5a76
+e8c08000
+9a267200
+24215a76
+1f267c16
+202159f5
+18007216
+1a227e00
+98c08c00
+20407ef4
+20407ea2
+20205aa5
+20405ab1
+204056d7
+202059fd
+d9600002
+6809445a
+60090aa2
+20405756
+2040576d
+18c08dfe
+18c27e00
+6001049c
+20405a88
+24215a25
+68090aa2
+2040578a
+c000da28
+20405a8c
+2422da23
+19627e00
+c0005a28
+24345a19
+78547c00
+da200014
+20405a82
+58000011
+e0a08000
+680084b3
+1fe0fe04
+e0a08000
+20407ea2
+20205a1f
+680084b3
+c0085a28
+68010aa2
+1fe0ffff
+600104a0
+20405a9c
+68010aa2
+6001049e
+20405a97
+196097ff
+20405a84
+20205a05
+68010aa2
+600104a0
+20205a2c
+68010aa2
+1fe0ffff
+600104a0
+20205a2c
+20345a76
+20405a9c
+20205aa5
+18c22200
+680144fc
+1fe0a5fd
+204056e2
+6800c4e9
+c3025a3d
+68090478
+680144fa
+98467c00
+2422da3d
+20405a42
+24345a3d
+70047a05
+20205a77
+18002201
+20405a82
+58000013
+e0a08000
+20600000
+20407fe9
+6800c4c6
+c1000000
+6800c040
+c3820000
+20207fe7
+18c0a202
+680144fc
+1fe0a5fb
+204056e2
+20205a4d
+680144fc
+1fe22200
+20405a82
+58000017
+e0a08000
+68010478
+e0a10000
+680144fc
+1fe0f3fb
+6801450d
+1fe08c07
+e8c10000
+e0a10000
+20207ef4
+18002201
+20405a82
+58000019
+e0a08000
+20600000
+18c22200
+680144fc
+1fe0a5fd
+202056e2
+18422600
+1a20a203
+20405a82
+1a20a3fd
+5800001b
+e0a08000
+1a620400
+e0a90000
+20600000
+18422600
+1a20a203
+20405a82
+1a20a3fd
+5800001d
+e0a08000
+1a620400
+e0a90000
+20600000
+70047a0a
+18002205
+20405a82
+58000001
+e0a08000
+68008477
+e0a08000
+68010478
+e0a10000
+6800847a
+e0a08000
+20600000
+18002404
+20205847
+68090aa2
+18408401
+60090aa2
+20600000
+68090aa2
+6801445c
+98467c00
+20600000
+6808c45e
+da20445f
+680084a2
+1fe27200
+98467c00
+24628000
+da4004a3
+20207f88
+6808c471
+da204472
+20205a8e
+680084b3
+60008101
+1fe27200
+20407e9f
+20207ef4
+20407e9c
+6801049e
+e0a10000
+680104a0
+e0a10000
+68008101
+1fe27200
+20407ef4
+20207ea2
+20407e9c
+2040588a
+18a27e00
+98c62200
+2040588d
+1a227e00
+e0c10000
+1a20a204
+20405879
+1a227e00
+e0c08000
+20600000
+1fecfe00
+6001445a
+e8c10000
+6001445c
+20600000
+e8c08000
+e8c88000
+e8c90000
+c009dabb
+20600000
+e8c10000
+60014509
+700a9940
+20207d86
+da20000c
+da600012
+20405ac7
+58000008
+e0a10000
+68044496
+e0a40000
+20600000
+20405acf
+da400005
+20405847
+1a627e00
+e0a08000
+6800c508
+e0a08000
+20600000
+6800c508
+1fe0fe01
+6000c508
+c1800000
+70450801
+20600000
+6800c4c6
+c0005ae4
+c000dae7
+c0015ae9
+c040dadd
+c0415adf
+c041dae2
+20600000
+7044560d
+20205ae5
+7044560d
+70445401
+20600000
+7044560d
+20205aea
+70445600
+70445403
+20600000
+70445605
+20205ae5
+70445605
+70445400
+20600000
+6800c456
+79207e03
+6000c456
+20600000
+6800c456
+793ffe03
+6000c456
+20600000
+e8c08000
+c000db09
+c001db30
+c0025b4d
+c002db5a
+c0035b80
+c003dbc4
+c0045baf
+c004dbc0
+c0055bc4
+c005dbc4
+c0065bc5
+c006dbca
+20600000
+18002202
+20405c62
+5800000b
+e0a08000
+6800c456
+e0a08000
+20600000
+6000c44c
+e8c30000
+e0a30000
+6800c4c6
+c0005b5f
+20405b2b
+20405b26
+7044c403
+6800c44d
+c0005b18
+c000db18
+c001db18
+6800c4c6
+c0015b1b
+c1418000
+dfe00000
+600244c7
+20600000
+6800c4e9
+c2805b24
+da2044c7
+1a220a00
+df200003
+2040630d
+680144c9
+1fe17e07
+600144c9
+700a9934
+20207d86
+6800c44f
+c3818000
+6800c4c6
+c4038000
+20203402
+18002207
+20405c62
+6803c453
+e0a38000
+20600000
+18c22200
+6800c4c6
+c041db37
+1a220c00
+d8a0442a
+20407ebf
+20205b3d
+1a220c00
+d8a0442a
+20407ebf
+7044bf02
+7044c108
+20600000
+6800c4c6
+c283db45
+2040739c
+18002211
+20405c62
+58000003
+e0a08000
+20207497
+d8a0443a
+2040630c
+204071c5
+18002211
+20405c62
+58000003
+e0a08000
+20207201
+18c22200
+6800c4c6
+c283db61
+1a220c00
+20407394
+2022db75
+70047b04
+18002202
+20405c62
+58000005
+e0a08000
+6800847b
+e0a08000
+18000e0a
+20407f07
+7044c400
+700a9930
+20207d86
+70047b05
+20205b54
+d8a0042f
+1a220c00
+20407ebf
+6800c4c6
+c041db6c
+2040714f
+20405b7a
+6800c4c6
+c1c10000
+700a993b
+20207d86
+204071ba
+d8a00af2
+20407201
+da200af2
+da40442a
+df200010
+20407f88
+2422db53
+20205b7a
+20407390
+700a9931
+20407d86
+70442901
+7044c405
+18002211
+20405c62
+58000004
+e0a08000
+d8c0443a
+20207ebf
+d8a0041f
+20207ebf
+18002211
+20405c62
+58000006
+e0a08000
+6800c4e9
+c280db8a
+d8c04419
+20207ebf
+d8c044ea
+20207ebf
+d8a044cb
+1800720a
+2040630d
+1800220b
+20405c62
+58000007
+e0a08000
+680144cb
+e0a10000
+680444cd
+e0a40000
+20600000
+18002211
+20405c62
+58000008
+e0a08000
+58000000
+e0a40000
+e0a40000
+20600000
+18002208
+20405c62
+58000009
+e0a08000
+6800c495
+e0a08000
+680344a0
+e0a30000
+20600000
+70047b08
+20205b54
+6800c458
+6808c458
+98417e00
+20600000
+d8a044d5
+20407ebf
+20405bab
+2fec0001
+2020dba9
+6800c092
+c1850000
+20405bb9
+24740000
+20203410
+20407fe9
+6800c48e
+c1000000
+68008454
+2fe180c0
+20608000
+20207fe7
+20405bab
+2fec0001
+2020dba9
+20600000
+20600000
+d8a009be
+20407eb3
+7044bf02
+7044c101
+20600000
+d8a00a6e
+20407ebf
+7044c106
+7044bf02
+20600000
+18002241
+20405c62
+5800000c
+e0a08000
+d8c045d2
+20207eb3
+20407166
+18002211
+20405c62
+5800000d
+e0a08000
+20207201
+6800c4c4
+c17f8000
+d8400003
+98467c00
+24610000
+d8e0000a
+20407f16
+247a0000
+20205ba9
+473c402f
+6800c4c4
+c0005bef
+c000dbf5
+c0015bef
+c001dbf7
+c002dbfb
+c003dc07
+c0045c09
+c004dc10
+20600000
+6800c4c5
+c1820000
+7044c5ff
+7044c4ff
+700a993f
+20207d86
+7044c402
+20205b02
+7044c404
+58017700
+d8e0000a
+20207f08
+6800c4c5
+c0025bfe
+20600000
+7044c407
+700a9929
+20407d86
+20405b82
+6800c092
+c1850000
+20405bb9
+20740000
+20203410
+7044c408
+20205b8c
+6800c452
+6808c459
+98417e00
+2fec0001
+2020dc12
+7044c409
+20205b98
+20405ba0
+20205c12
+18000e0a
+20407f07
+7044c5ff
+7044c4ff
+700a993e
+20207d86
+473cc02f
+6800c4c6
+c4038000
+6800c4bf
+c1810000
+7044bf00
+6800c4c1
+c000dc58
+c0015c5f
+c001dc52
+c0035c39
+c003dc30
+c0045c26
+20600000
+6800c663
+1fe20e00
+1fe0fe01
+6000c663
+680244c7
+afefffff
+58000080
+7920fe00
+6000c664
+20205c55
+6800c4c2
+7044c200
+c000dc35
+7044bf02
+20600000
+700a9931
+20407d86
+7044c405
+20205bd5
+680089b9
+c001dc3d
+7044bf02
+20600000
+2040718d
+6800c4c6
+c041dc41
+20405b18
+2040717a
+da200af2
+da400a6e
+df200010
+20407f88
+2022dc49
+70047b0b
+20205b54
+20407595
+2422dc47
+70442901
+6800c4c6
+c040dc35
+c041dc35
+7044bf02
+7044c107
+20600000
+6800c4c6
+c041dc56
+70466400
+20205b3d
+70466300
+20205b1b
+7044bf02
+6800c4c3
+c001dc5c
+20600000
+7044c102
+7009b900
+20207a99
+7044bf02
+7044c103
+20205bcf
+18002406
+20205847
+680082db
+c0005c7b
+c000dc83
+c0015c8e
+c001dcaa
+c0025ce1
+c002dce6
+c0035cea
+c003dcf5
+c0045c99
+c004dcf5
+c0055cef
+c005dcf5
+c0065c9f
+c006dcf5
+c0095ca6
+c009dcf5
+da200002
+da400007
+20405842
+680082db
+e0a08000
+20600000
+e8c48000
+6004c3d3
+e8c10000
+6001045f
+6800843f
+79207e05
+6000843f
+20600000
+e8c28000
+6002c3ce
+e8c10000
+6001045f
+68090459
+98467c00
+24215c8e
+6800843f
+79207e06
+6000843f
+20600000
+58000014
+6001046d
+600144ba
+20600000
+da600013
+da200002
+da400002
+20405842
+1a627e00
+e0a08000
+20600000
+da200009
+da400009
+20405842
+58000001
+e0a40000
+20600000
+20748000
+da200006
+da40000c
+20405842
+6802c510
+e0a28000
+20600000
+da400013
+20205ca8
+da200001
+20205842
+e8c40000
+600444cd
+e8c10000
+600144cb
+e8c40000
+600444aa
+e8c20000
+60024411
+20405ccf
+473d402f
+6800c4c4
+c002dcbc
+6800c4e9
+c280dcbf
+6800c217
+245a67be
+6800c429
+c0005cc4
+7044c501
+20405cdd
+202073a2
+70442901
+d8c044ea
+d8a04419
+20407ebf
+20205cbc
+473dc02f
+7044c500
+7044c400
+700a9941
+20207d86
+da200002
+da40000d
+20405842
+58000006
+e0a08000
+20600000
+d8a044b2
+18007208
+2040630d
+d8a04415
+18007204
+2040630d
+da20000d
+da400004
+20405842
+680444b2
+e0a40000
+68024415
+e0a20000
+20600000
+da400005
+20205ca8
+da400006
+20205ca8
+e8c40000
+600444b2
+e8c20000
+60024415
+202073a2
+6800843f
+79207e04
+6000843f
+20600000
+20748000
+700a9932
+20407d86
+7044c504
+20205cdf
+7044c502
+20405cf3
+700a9933
+20207d86
+da40000b
+20205ca8
+20600000
+20758000
+473e402f
+58000000
+60008048
+60008055
+60008078
+6000807c
+6000c158
+600084d7
+6000816d
+600089b5
+70455b00
+70022900
+7004d800
+7009b500
+7009b400
+7004d100
+20600000
+473ec02f
+2054e2ff
+2454e303
+204062bc
+247a0000
+6800804c
+c4030000
+793ffe06
+793f8001
+6000804c
+68008551
+6808804c
+2feffe00
+79208401
+6008804c
+18410402
+6008807f
+6808804c
+1fe37e00
+6000807d
+473f402f
+6800807d
+c03fdd66
+c001ddb1
+c0025dc2
+c01e5d59
+c002dd55
+c007dfa8
+c0085e24
+c011de42
+c01cdfc1
+c01c5fbc
+c018de27
+c01bdeb0
+c013deac
+c019dea9
+c012deae
+c0135e3e
+c003de36
+c016de2d
+c0175e2e
+c000dea5
+c0015e90
+c0145fb3
+c004de86
+c005de5f
+c0045e43
+c0065e6a
+c00fde3a
+c0105e3c
+c010deca
+c0115eca
+c01adecb
+c01b5ecc
+c0125eca
+c01a5ecd
+c00bded6
+c008def2
+c0095ef6
+c009def8
+c006df0a
+c0075f0a
+c017deaa
+c0185f0a
+c0055f0a
+c00c5f0b
+c0195f0a
+c01edf10
+c01f5f51
+c01fdf4b
+c0205f78
+c020df8a
+c0035fa7
+c01d5d57
+70007e19
+70007c04
+20600000
+70007c06
+20600000
+70007c3b
+20600000
+68020552
+1fe3fe00
+600240d2
+68008556
+6000c0d9
+68028557
+6002c0e7
+6802855c
+e0a28000
+68008031
+79207e03
+60008031
+20600000
+473fc02f
+68008552
+79207e07
+6000807d
+c040dd88
+c0415d8d
+c04adeb1
+c04b5eca
+c045debf
+c041dda5
+c0425da7
+c0485d7a
+c04bdd9e
+c04c5da3
+c04cdd7d
+c04d5d80
+c1420000
+70007c82
+70007e19
+20600000
+70007c82
+70007e2e
+20600000
+20405d82
+70007c9a
+20600000
+20405d82
+20205d86
+d8a0465e
+68018553
+e0a18000
+20600000
+2020f6d8
+20600000
+68008554
+79207e07
+600084c9
+c045dd92
+20600000
+68008554
+79207e07
+600084c9
+c045dd96
+20600000
+6800c15a
+6808804c
+7d3a0405
+6008804c
+68008030
+c4028000
+793ffe05
+60008030
+680084d7
+247a0000
+70007c31
+20600000
+2434dda1
+70007c12
+202062eb
+70007c97
+20600000
+204062eb
+20205ffe
+70007c84
+20600000
+68088555
+18410401
+600884d0
+6800c1ce
+c0a8ddad
+7041ce00
+68008055
+c18a8000
+70005504
+2020631b
+47404030
+68008552
+600084c9
+c019ddd8
+c0045de7
+c007ddee
+c0085df4
+c008ddf5
+c0095dfd
+c00c5e13
+c00bde16
+c009ddcf
+c01edf1e
+c01f5f6a
+c0205f20
+c020df3d
+20600000
+4740c030
+68008552
+600084c9
+c000de0a
+c019dde2
+c005ddfe
+c0045e01
+c009ddd2
+c0205e0b
+c020de0e
+c00c5e11
+c00bde22
+20600000
+700a9920
+20407d86
+202021dc
+700a9919
+20407d86
+70455b02
+58000050
+d8e00006
+20207f08
+680084d1
+79207e00
+600084d1
+700a9901
+20407d86
+70007c8b
+68008055
+c082dd07
+70005506
+20600000
+7004ca0b
+70007c07
+70005500
+2020dd07
+20600000
+6800c1bd
+247a0000
+2040244f
+20405ffc
+20748000
+79200021
+20600000
+24748000
+70007c10
+6800804c
+c4010000
+70007c12
+20600000
+20205ffe
+20406059
+68008030
+c3820000
+70007c31
+68008055
+c1850000
+7000550b
+20600000
+20600000
+70007c07
+7004ca13
+20600000
+68008553
+c0035e07
+c18c0000
+7004ca18
+70007c07
+20600000
+7004ca06
+70007c07
+20600000
+20600000
+7009ae00
+70007c07
+20205d07
+7009ae00
+70007c07
+20205d07
+700a9924
+20207d86
+700a9923
+20407d86
+202026e9
+700a9922
+20407d86
+58000000
+60010075
+680141e3
+1fe3fe00
+60010032
+6800c1e5
+60008073
+6800c1e7
+60008074
+202026c6
+700a9921
+20207d86
+68088552
+60088054
+20205e38
+680084d1
+79207e02
+600084d1
+c3818000
+70007c31
+20205d07
+20600000
+6800c0d0
+68088552
+98467c00
+20215e38
+70007c04
+70007e1f
+70007d2e
+20600000
+20406157
+20205e38
+70007c03
+20600000
+70007c21
+20600000
+70007c22
+20600000
+68008055
+c1098000
+70005502
+20600000
+20600000
+20405ff9
+7004d401
+700a990a
+20407d86
+204062f3
+2420e001
+2434de4e
+70007c04
+70007d08
+70007e23
+20600000
+6800804b
+79207e02
+6000804b
+20600000
+6808804c
+7d3a0401
+6008804c
+20600000
+6800807f
+1fe37e00
+1fe17e01
+20600000
+6800c217
+207a0000
+680089b5
+205a67b2
+20600000
+20405e5a
+20405e56
+600084d5
+20405ff9
+70007c0c
+6800c1bd
+247a0000
+68008030
+c3830000
+70007e06
+20205d53
+da200040
+20407288
+68020552
+680a0592
+98467c00
+2022de73
+70007c07
+7004ca05
+20600000
+20405e77
+6800c65a
+203a5f3e
+20600000
+20407386
+204021b2
+6800804b
+2feffe01
+793ffe01
+6000804b
+68008055
+c00cde81
+c00c5e81
+20600000
+680089b5
+c1800000
+6800804c
+c3810000
+202063b1
+da200552
+da400582
+d8a00562
+20407352
+da200040
+20406311
+70007c0b
+68008030
+c3035ffc
+20600000
+6801015f
+1fe0f3fd
+68088552
+58000101
+98408a00
+d8c00554
+20407f01
+68088053
+68008553
+98467e00
+1fe67c0e
+20215ea0
+1840fe0e
+60008053
+70007c01
+20600000
+6800804c
+79207e03
+6000804c
+c2826006
+20600000
+68008552
+6000807d
+70007c02
+20600000
+20205e38
+70007c30
+20600000
+70007c28
+20600000
+70007c26
+20600000
+20600000
+68010032
+98000400
+68008553
+60008095
+984f8400
+68010554
+1fe3fe00
+60010096
+68020556
+1fe3fe00
+60020091
+18427e00
+60010098
+20600000
+6808c15a
+68008553
+9842fc00
+2422dd77
+2feffe00
+6800804c
+7920fe05
+6000804c
+70007c81
+70007d8b
+20600000
+20600000
+20205e38
+20205e38
+68010552
+60010171
+20600000
+68010555
+6808c172
+984ffe00
+d8400640
+98467c00
+20600000
+68010557
+203a5ef0
+20405ed0
+20215ef0
+6800c092
+1fe67c0a
+2042bcd5
+68008030
+c280def0
+68010553
+1fe3fe00
+60010075
+68010555
+1fe3fe00
+60010032
+68010557
+60008073
+98000400
+68010559
+60008074
+98467c00
+24215eed
+60008073
+70007c03
+70007d17
+20600000
+70007e24
+20205d53
+20405e38
+20405ff9
+2040728b
+202026b8
+20405e38
+202026c0
+68020552
+1fe3fe00
+2034df04
+6808c1bd
+243a5f01
+70007c04
+70007d13
+70007e24
+20600000
+70007c34
+70005500
+202021d9
+204021d9
+79200022
+6800816d
+793ffe02
+6000816d
+20205e38
+20600000
+70007c03
+70007d18
+700a992e
+20407d86
+202026e9
+68008552
+c080df1c
+68008553
+c080df1c
+68008554
+c0985f1c
+204062fc
+2020df19
+7009ae01
+70007c03
+70007d3d
+20205d07
+70007e24
+20205d53
+70007c3e
+20600000
+6800c662
+c000df27
+c0015f2b
+204062fc
+20608000
+7009ae08
+20600000
+20407962
+700a9935
+20407d86
+20205f23
+204062fc
+20608000
+6800c663
+c009df3b
+1fe0fe01
+6000c663
+7009b001
+7009ae04
+6800c663
+1fe20e00
+6803468a
+afefffff
+58000080
+7920fe00
+6000c664
+20600000
+7009ae08
+20600000
+20405f43
+6800c665
+207a0000
+70466500
+700a9938
+20207d86
+204062fc
+2440f965
+2040f975
+204062fc
+20608000
+7009ae0c
+7009b001
+20600000
+d8a00a6e
+d8c00552
+20407ebf
+6800c662
+c1010000
+202076d8
+680089af
+c003df55
+680089ae
+c080df68
+680089b7
+1fe60a20
+24215f68
+d8a009c6
+98a08a00
+68040552
+e0a40000
+6804055a
+e0a40000
+680089b7
+1fe0fe10
+600089b7
+c0985e38
+204062fc
+2020de38
+7009b801
+7009ae02
+7009b001
+20205e38
+70007e24
+20205d53
+680089b6
+c0185f6e
+70007c3e
+20205d07
+204062fc
+2020df77
+6800c662
+c0015f75
+7009b001
+7009ae04
+20205d07
+700a9936
+20207d86
+20205d07
+680089af
+c003df7c
+680089ae
+c0835f88
+d8a00a2e
+68040552
+e0a40000
+6804055a
+e0a40000
+204062fc
+2020df86
+7009ae07
+7009b001
+20205e38
+7009af04
+202076d8
+70007e24
+20205d53
+680089af
+c005df8e
+680089ae
+c0845f9d
+d8a00a5e
+d8c00552
+20407ebf
+204062fc
+2020df9a
+6800c662
+c000df9f
+70466100
+7009ae09
+7009b001
+70007d41
+20205d07
+7009af09
+7009b101
+20205d07
+70007e24
+20205d53
+6800c661
+c283dfa4
+79207e06
+6000c661
+20600000
+c2805f95
+70466100
+20205f9d
+20205d07
+6800816d
+793ffe01
+6000816d
+20405e38
+24748000
+68008552
+6808804b
+793a0404
+7d3a0405
+6008804b
+20600000
+680c0552
+68008055
+c1818000
+6800816d
+c3025fba
+70005514
+20600000
+70005504
+20600000
+6800817f
+6000815b
+70007c03
+70007d38
+20600000
+70007c03
+70007d39
+18007209
+d8c00552
+d8a00152
+e8c08000
+1fe2fe55
+e0a08000
+c2005fc6
+68008152
+68088151
+793f8407
+793f8404
+c07fdfda
+c0005ff3
+c002dfe7
+c003dfe6
+c0035fe7
+c0045fe6
+c000dfdf
+c0015fdf
+c001dfdf
+c004dfdf
+c0025fdf
+20600000
+68008151
+79207e03
+79207e02
+60008151
+20600000
+79200404
+70018005
+68010159
+98007200
+6001015f
+d8a00551
+20407f73
+79200407
+79200402
+18007e00
+6000800b
+600100fa
+600100fc
+600100f8
+600100f6
+68008153
+2fe1fe00
+79208406
+60088151
+20600000
+793f8011
+70015100
+6800817f
+793ffe06
+6000817f
+20600000
+d8c00552
+d8a00562
+20207ebf
+70007c09
+20600000
+24748000
+70007c11
+20600000
+da2040a0
+20407255
+70007c03
+70007d08
+20600000
+7000720a
+70007c07
+7004ca16
+20600000
+47414030
+78547c00
+204062c1
+68008048
+207a0000
+c283e03f
+c000e16f
+c00160e4
+c001e04a
+c0026060
+c013e1db
+c0146108
+c01860f4
+c012e1d6
+c0136103
+c018e1c3
+c01be16a
+c019e15c
+c0046259
+c004e24f
+c005e264
+c006626d
+c007e162
+c0086292
+c008e288
+c003e152
+c015617e
+c005617f
+c00fe1bc
+c00360f9
+c010e15f
+c016e1b2
+c01761b7
+c011615f
+c01a6180
+c009e195
+c00be1a4
+c009628f
+c017e1aa
+c00c61af
+c01ee1ff
+c01f620b
+c01fe21d
+c0206227
+c020e23c
+c011e24b
+c01de246
+c002e24c
+c014e24d
+c01c624e
+c01ce175
+20202a8c
+20600000
+c040e06d
+c0426099
+c0416076
+c041e10d
+c045e118
+c04be14e
+c04ce0d5
+c04d60a4
+c04ae0da
+c04b60db
+20202a8c
+18007e02
+20406298
+68008049
+e0a08000
+204062a7
+4741c030
+68008049
+c0046080
+c007e084
+c008608f
+c00be05f
+c019e092
+c020e098
+c008e059
+20600000
+68008055
+207a0000
+7000551b
+5800000c
+d8e00007
+20207f08
+202026c6
+18007e03
+20406298
+68008049
+c005e068
+e0a08000
+6800804a
+e0a08000
+202062a7
+e0a08000
+6800804a
+e0a08000
+d84004d5
+202062e2
+18000e04
+204062a0
+5800007f
+e0a08000
+68008049
+793ffe07
+e0a08000
+68008049
+202062a7
+18000e05
+204062a0
+5800007f
+e0a08000
+68008049
+793ffe07
+e0a08000
+6800804a
+e0a08000
+202062a7
+2040244f
+204062f3
+20608000
+20205ffc
+6800804b
+c282e08b
+c4020000
+70007c12
+793ffe04
+204062eb
+2020608d
+70007c10
+793ffe05
+6000804b
+20600000
+204062fc
+2020dffe
+20600000
+70007c8b
+680084d1
+79207e00
+600084d1
+700a9901
+20207d86
+20600000
+18000e0c
+204062a0
+58000001
+e0a08000
+680104ce
+e0a10000
+58000000
+e0a18000
+58000000
+e0a20000
+202062b0
+18000e05
+204062a0
+6801c65b
+e0a18000
+204062b0
+70466501
+6800c65b
+c000e0b5
+c00160af
+c001e0bb
+20600000
+6800c65e
+c00060c7
+c000e0c7
+c00160c7
+c001e0c1
+20600000
+6800c65e
+c00060c1
+c000e0c5
+c00160c7
+c001e0c1
+20600000
+6800c65e
+c00060c1
+c000e0c1
+c00160c1
+c001e0c1
+20600000
+70466203
+6800c55c
+c28033e9
+20600000
+70466201
+20600000
+70466202
+20600000
+d8e00000
+202060cd
+d8e00000
+202060d1
+6800c55c
+f9207e00
+6000c55c
+20600000
+6800c55c
+f93ffe00
+6000c55c
+20600000
+18000e05
+204062a0
+6801c65b
+e0a18000
+202062b2
+20600000
+18000e09
+204062a0
+68008095
+e0a08000
+68010096
+e0a10000
+68020091
+e0a20000
+202062b0
+18007e11
+20406298
+68008049
+1fe20400
+c00060ec
+c00760ec
+c00e60ec
+20600000
+e0a08000
+6800c515
+e0a08000
+df20000e
+58004516
+98408c00
+20407f01
+202062b0
+18007e03
+20406298
+58000114
+e0a10000
+202062b0
+18007e03
+20406298
+68020165
+9c467e00
+2034e0ff
+1fe67e00
+1feb7e00
+793ffe0f
+e0a10000
+202062b0
+18007e06
+20406298
+6802c510
+e0a28000
+202062b0
+18007e09
+20406298
+68044098
+e0a40000
+202062b0
+18000e0c
+204062a0
+58000001
+e0a08000
+680104ce
+e0a10000
+58000000
+e0a18000
+58000000
+e0a20000
+202062b2
+18000e03
+204062a0
+6800c15a
+e0a08000
+78547c00
+204062b2
+24740000
+24748000
+6800c0d8
+c4000000
+20406132
+2020613c
+47424030
+6800c09e
+79207e03
+6000c09e
+58000101
+600104ce
+20600000
+4742c030
+6800c09e
+793ffe03
+6000c09e
+58000000
+600104ce
+20600000
+7040d803
+58000000
+60024142
+d8a040da
+20406140
+d8a040e7
+20406140
+d8a04146
+20406140
+20206147
+d8a040e7
+20406140
+20406147
+2020614a
+58ffffff
+e0a18000
+e0a18000
+e0a18000
+5800007f
+e0a08000
+20600000
+58000000
+600140d6
+20600000
+6800c0d8
+79207e02
+6000c0d8
+20600000
+18000e02
+204062a0
+2434e2b0
+202062b2
+18007e02
+20406298
+680084ca
+e0a08000
+204062b2
+6800804b
+79207e03
+6000804b
+70007232
+20600000
+18007e01
+20406298
+202062b2
+18007e01
+20406298
+202062b0
+18007e02
+20406298
+6800804c
+2fec0002
+7920fe00
+1fe17e01
+e0a08000
+202062b2
+18007e03
+20406298
+68010051
+e0a10000
+202062b2
+700072fa
+18007e02
+20406298
+68008053
+e0a08000
+202062b2
+18007e0a
+20406298
+d8c00152
+18007209
+e8c08000
+1fe2fe55
+e0a08000
+c2006179
+202062b2
+202062b2
+202062b2
+20748000
+2040282d
+18007e09
+20406298
+68010171
+e0a10000
+6801c0a0
+e0a18000
+6800c0a3
+e0a08000
+680140a4
+e0a10000
+c581e191
+793f8003
+204062b2
+70007c13
+20600000
+204062b0
+70007c03
+70007d13
+20600000
+d8400200
+2034e199
+1d027e00
+2020619a
+1c427e00
+1c227e00
+9840fe00
+1fe17ffc
+60020034
+18007e05
+20406298
+68020034
+1fe37e00
+e0a20000
+202062b2
+18007e0a
+20406298
+d8c004d9
+e8c48000
+e0a48000
+202062b2
+18007e03
+20406298
+58000114
+e0a10000
+202062b2
+18007e01
+20406298
+202062b2
+18007e02
+20406298
+6800c0d0
+e0a08000
+202062b2
+18007e02
+20406298
+58000005
+e0a08000
+202062b2
+18007e02
+20406298
+58000000
+e0a08000
+202062b2
+70007c2e
+20600000
+6800c092
+1fe67c0a
+2042e1c1
+68008030
+79207e04
+60008030
+1c427e00
+600204e9
+680084d1
+c281e1d4
+79207e03
+600084d1
+700a9905
+20407d86
+18007e01
+20406298
+202062b2
+70004800
+20600000
+18007e06
+20406298
+6802c510
+e0a28000
+202062b2
+18007e09
+20406298
+68044098
+e0a40000
+202062b2
+7009b101
+6800c5b1
+c1808000
+7009af13
+20600000
+204062ef
+70007c99
+7009af03
+20600000
+204062ef
+70007c3d
+7009af07
+20600000
+da200a4e
+da400a6e
+df200010
+20407f88
+2022e1f7
+7009af00
+204076da
+70007e24
+70007d40
+20205d53
+7009af0a
+204076d8
+70007d40
+20205e38
+70007c40
+20600000
+70007c3d
+20600000
+7009b600
+18007e04
+20406298
+18007e01
+e0a08000
+18007e01
+e0a08000
+18007e30
+e0a08000
+204062fc
+2020e2b2
+202062b0
+18007e11
+20406298
+680089b6
+d8c0462a
+98c08c00
+e8c40000
+e0a40000
+e8c40000
+e0a40000
+680089b6
+1fe0fe10
+600089b6
+204062fc
+2020e2b2
+202062b0
+7009ae06
+70007c3f
+20600000
+18007e11
+20406298
+d8c00a4e
+e8c40000
+e0a40000
+e8c40000
+e0a40000
+202062b0
+70007c40
+20600000
+204062fc
+2040f612
+18007e11
+20406298
+d8c00a1e
+e8c40000
+e0a40000
+e8c40000
+e0a40000
+204062fc
+2420e2b0
+2020e2b2
+7009af0f
+204062ef
+70007c0b
+20406307
+2020f64e
+20207658
+204062eb
+70007c41
+20600000
+18007e11
+20406298
+d8c00a4e
+e8c40000
+e0a40000
+e8c40000
+e0a40000
+204062fc
+2420e2b0
+2020e2b2
+18007e03
+20406298
+5800fffe
+e0a10000
+202062b0
+202062b2
+202062b2
+202062b2
+202062b2
+2040630b
+da2040a0
+20406311
+18007e11
+20406298
+da200582
+da400562
+20407352
+2434e2a7
+202062ad
+2040630b
+da200040
+20407255
+18007e11
+20406298
+d8c00562
+20407ebf
+68008055
+c00ce2b2
+c00c62b2
+202062ad
+680089b5
+203a626a
+204062fc
+2040e2ef
+2440e2eb
+2020626b
+204062ef
+2040630b
+2020625c
+da2040a0
+20407288
+18007e05
+20406298
+68020592
+e0a20000
+d84004d5
+204062e2
+20407386
+204062fc
+2020e27c
+7004d801
+680089b5
+207a0000
+70007c0b
+6800c1bd
+207a0000
+204062fc
+2420e284
+680084d7
+207a0000
+70007c0f
+20600000
+c6908000
+793f8021
+70007c0f
+20600000
+2040630b
+2040728b
+18007e11
+20406298
+d8c00562
+20407ebf
+202062ad
+18007e01
+20406298
+202062ad
+18007e02
+20406298
+18007e10
+e0a08000
+60008054
+202062ad
+1fe9fe00
+1fe1fe07
+600084b6
+df200011
+d8a004b8
+20407ed4
+d8a004b8
+20600000
+1fe1227f
+7000487f
+18e27e00
+20406298
+1a227e00
+e0a08000
+20600000
+68008048
+1fe3fe00
+6808804c
+284ffe01
+7920fe00
+202062b7
+6808804c
+18410401
+202062b3
+18000400
+202062b3
+18000401
+68008048
+1fe3fe00
+7934fe00
+9842fe00
+600084b7
+70004800
+204062c7
+78347c00
+20600000
+6800807c
+207a0000
+204062c1
+6800807c
+20600000
+47434030
+68008048
+203a62c7
+68008078
+247a0000
+202062d1
+68008078
+203a62d7
+68018078
+60018048
+6808807b
+6800804c
+793ffe01
+9841fe00
+6000804c
+70007800
+6800807c
+207a0000
+6802007c
+60020078
+70007c00
+20600000
+6800807c
+207a0000
+6801807c
+60018048
+6808807f
+6800804c
+793ffe01
+9841fe00
+6000804c
+70007c00
+20600000
+4743c030
+6800804c
+1fe22600
+e8408000
+20405e52
+204062a7
+1a627e00
+6000804c
+20600000
+6808804c
+793f8400
+6008804c
+20600000
+6808804c
+79200400
+6008804c
+20600000
+7d34fe01
+6808804c
+9842fe00
+2feffe01
+20600000
+6800804c
+7934fe01
+6000804c
+20600000
+680089b4
+2fe0fe01
+20600000
+680089b4
+79207e07
+600089b4
+20600000
+680089b4
+793ffe07
+600089b4
+20600000
+680089b4
+2feffe07
+600089b4
+20600000
+d8a00562
+18007210
+180a7e00
+e0a08000
+c200630d
+20600000
+20407259
+da2041be
+da400592
+ea240000
+68088030
+7d3a0406
+60088030
+1a220a00
+20407352
+202021c4
+47444031
+204062bc
+247a0000
+68008055
+207a0000
+c002636f
+c002e374
+c0016366
+c001e37c
+c0076369
+c0036398
+c003e3b0
+c004e3b1
+c00563ba
+c005e3be
+c0066386
+c006e389
+c007e38f
+c0096359
+c009e37c
+c008635c
+c00a6356
+c00ae37c
+c00b6350
+c00c6355
+c00be349
+c00ce34f
+c00d633a
+c00de344
+70005500
+20600000
+680084d1
+c4010000
+c4018000
+70005500
+20406340
+20206cef
+6800816d
+c4008000
+7000550a
+20600000
+d8e00007
+20407f16
+247a0000
+7000551a
+20600000
+6800816d
+793ffe00
+6000816d
+70005519
+70007c0b
+20600000
+20600000
+680084d4
+c1810000
+204063c0
+70005518
+20600000
+20600000
+70005515
+70007c83
+20600000
+70005513
+70007c25
+20600000
+6800c55b
+c1000000
+c000e364
+d8e00006
+20407f16
+247a0000
+70455b00
+2020637d
+20748000
+20206398
+70005503
+70007c27
+20600000
+70007c13
+79200003
+70005505
+580001ff
+600104d2
+20600000
+70005505
+7004d2ff
+793f8022
+70007c33
+20205d04
+c6110000
+680104d2
+1fe67e01
+2022e37a
+600104d2
+20600000
+7000550e
+20600000
+20600000
+680084d1
+c4018000
+c4010000
+6800816d
+793ffe02
+6000816d
+70007c13
+70005510
+20600000
+7000550d
+70007c31
+20600000
+680084d1
+c4010000
+70005500
+20600000
+70005506
+20600000
+680084d2
+1fe0ffff
+203a6394
+600084d2
+20600000
+70007c07
+7004ca16
+70005500
+20600000
+6800816d
+c281637d
+c280639d
+7000551a
+20600000
+6800c1bd
+203a63a9
+680084d1
+c4018000
+c4010000
+680204e9
+d8400064
+98408400
+1c427e00
+98467c00
+24610000
+20206349
+70005516
+70468904
+58003030
+6001468a
+e0a10000
+7004d402
+20206350
+20600000
+6800816d
+c280e3b5
+7000551a
+20600000
+6800816d
+793ffe01
+6000816d
+70007c0f
+20600000
+680084d8
+207a0000
+70005500
+202063b5
+7000550c
+20600000
+6800804b
+c28163c5
+204062ef
+70007c08
+20204d04
+6800804b
+793ffe02
+6000804b
+20406001
+204062f8
+20204d04
+58000004
+6000c689
+58003030
+e0a10000
+e0a10000
+20600000
+47464031
+68108073
+d8400006
+9841fe00
+60108073
+68108077
+9841fe00
+60108077
+204063ee
+68108077
+793ffe01
+793ffe02
+60108077
+2000001e
+202063f2
+68108073
+d84000c0
+9841fe00
+60108073
+68108077
+9841fe00
+60108077
+204063ee
+68108077
+793ffe06
+793ffe07
+60108077
+2000001e
+202063f6
+68108081
+1fe17efc
+60108081
+20600000
+68108081
+1fe1fe01
+60108081
+20600000
+68108081
+1fe1fe03
+793ffe04
+60108081
+20600000
+1fe22400
+2040640f
+20000064
+1a427e00
+20406414
+1fe22400
+20406411
+20000064
+1a427e00
+20600000
+1fe22400
+2040640f
+20000064
+1a427e00
+20406413
+20406411
+20000064
+20600000
+6808c214
+2020680e
+6808c214
+20206829
+6808c214
+20206825
+202064ec
+202064f3
+24346419
+68108085
+1fe1fe02
+60108085
+18427c00
+2022e41c
+1a627a00
+2fcc0000
+202064b9
+18000404
+da2001fe
+68108085
+1fe17efd
+60108085
+20406419
+da2055aa
+680101fe
+e8c90000
+9a267c00
+20600000
+d8400002
+da200204
+20406419
+68010204
+600101f7
+20546430
+20600000
+d8400010
+da200206
+68108085
+1fe17efd
+60108085
+20406419
+d8c00206
+df200010
+20407478
+20407428
+20407491
+20207422
+7856fc00
+2040641e
+24628000
+7836fc00
+70802380
+70802200
+70802400
+da208025
+20406415
+70802300
+d8400006
+2040641f
+24628000
+e8c10000
+98002200
+20406419
+20206446
+20407f99
+58001000
+600101f7
+da6065e5
+df200002
+2040641e
+24628000
+680101f7
+1ff0fe00
+9840fe00
+1ff0fe00
+600101f7
+c2006452
+20206446
+20407f99
+78547c00
+2040666a
+58000000
+da2001f3
+d8400002
+204066b3
+680101f3
+c303e46e
+70805025
+580007f0
+da200206
+d8400010
+204066b3
+70800608
+7920002b
+d8c00206
+20407484
+78347c00
+7041da00
+204064b0
+680101f3
+1ff0fe00
+d84007ff
+98417e00
+2022e47b
+2040666f
+da6066b8
+20546430
+2040643c
+680081f2
+c300646f
+2040666d
+7041da00
+204064b0
+204065c2
+680081f3
+c283648e
+204064aa
+2436e486
+680081f2
+c300647d
+2020649b
+204065bf
+680081f3
+c283648e
+204064aa
+2436e48e
+680081f2
+c300647d
+2020649b
+7041da00
+204064b0
+680081f3
+c282e49b
+58000000
+600181f6
+20406502
+da606578
+20406429
+2040643c
+2436e49b
+680081f2
+c300648f
+c515e49d
+204064a3
+680081f3
+c30264a3
+70805021
+20404c0e
+20404c2e
+202064a1
+58000000
+60040206
+6004020e
+18007004
+20407492
+70805021
+20600000
+58000000
+600101f7
+da6065e5
+204065a3
+20406429
+2020643c
+6800c1da
+1fe0fe01
+1fe67c03
+242164b6
+6000c1da
+20600000
+204064a3
+20407fa1
+20600000
+680081f2
+1fe3fe00
+7920fe00
+2a2c000f
+20608000
+600081f2
+20600000
+68108085
+c4008000
+202064c6
+6810812c
+afefffff
+20608000
+68108108
+c300e4c3
+20407422
+202064c3
+68014199
+207a0000
+70802380
+70802200
+70802400
+6809419b
+184bf200
+98000c00
+e8c08000
+60108025
+c20064d2
+70802300
+20600000
+4746c031
+204064dd
+202063f2
+204064dd
+204063ee
+202063f6
+6800c212
+60108086
+6800c213
+60108087
+580001f5
+6011008a
+580001fa
+6011008c
+202063ee
+68108086
+79207e07
+60108086
+793ffe07
+60108086
+20600000
+79207e07
+600101f5
+47474031
+70808802
+70808e00
+70800602
+202064fc
+18000401
+600081f5
+4747c031
+70808801
+6019008e
+70800602
+204064fc
+680081fa
+20600000
+680140d6
+1fe0fe01
+600140d6
+6810812c
+c301e4fc
+20600000
+70808640
+70808700
+68108081
+793ffe00
+79207e01
+60108081
+58000000
+600201f5
+20600000
+58000000
+6011008e
+58000001
+60110088
+580001f5
+6011008a
+7001f506
+70800602
+202064fc
+78547c00
+1fe22400
+6800c239
+c1800000
+78347c00
+1a427e00
+20206522
+6800c239
+c000e522
+c0016528
+c001e530
+c0026537
+c002e53d
+20600000
+6001c232
+1a227e00
+60014235
+60094237
+70423902
+20206502
+20406502
+70423903
+2040650b
+da2001f5
+6801c232
+70808804
+d8400020
+20206556
+20406502
+2040650b
+58000005
+204064f3
+c3800000
+70423904
+20600000
+20406502
+70423905
+2040650b
+2040654a
+20406552
+20206545
+20406502
+2040650b
+58000005
+204064f3
+c3800000
+70423900
+68014201
+20207f9c
+68020aa2
+68094235
+184085fc
+e0420000
+20600000
+68094235
+18422200
+184085fc
+e8420000
+60020aa2
+68094237
+6801c232
+20600000
+18408404
+60190088
+d8400002
+1a20a3fc
+e2288000
+1ff10400
+e0a88000
+1fec8400
+e0a88000
+e0a08000
+1a227e00
+6011008a
+58000000
+6011008e
+70800602
+202064fc
+6019008e
+1ff10400
+600881f6
+1fec8400
+600881f7
+600081f8
+58000004
+60110088
+7001f503
+580001f5
+6011008a
+1a227e00
+6011008c
+68108086
+2a2c000f
+7920fe06
+60108086
+70800602
+6810812c
+c283e574
+d8e00003
+202064fc
+6019008e
+58000004
+60110088
+7001f503
+580001f5
+6011008a
+1a227e00
+6011008c
+68108086
+2a2c000f
+7920fe06
+60108086
+70800602
+6810812c
+c283e585
+d8e00003
+204064c0
+204064fc
+2feffe02
+204064b9
+680081f6
+1ff02400
+680081f7
+1fed7e00
+9a41a400
+680081f8
+9a41fe00
+9840fe00
+600081f8
+1fecfe00
+600081f7
+1fecfe00
+600081f6
+20600000
+70801001
+20600000
+7080910c
+7080920d
+7080930d
+7080940d
+7080950d
+7080960c
+202065a9
+70809105
+70809207
+70809307
+70809407
+70809507
+70809605
+6810807b
+1fe1fec0
+6010807b
+68108081
+1fe1fe10
+60108081
+20600000
+6810812c
+c302e5b0
+20600000
+60110098
+1a227e00
+6011009a
+1a427e00
+6011009c
+18427e00
+6011009e
+d8400001
+7d3a0401
+60108090
+70800604
+202065b0
+79200028
+70421108
+20600000
+793f8028
+70421120
+20600000
+6800c203
+9a40fe00
+600081f7
+202065cc
+680101f7
+1ff0fe00
+600081f7
+58000003
+60110098
+7001f6a0
+7001f8a1
+202065eb
+60090aa2
+204065d6
+68090aa2
+20406606
+202065dd
+6800c23a
+c17f8000
+c30365db
+580249f0
+20402a8f
+6808c23a
+20206829
+6808c23a
+20206825
+47484032
+c51465c5
+68014203
+9a40fe00
+1ff0fe00
+600101f7
+4748c032
+c51465c9
+58000004
+60110098
+7001f6a0
+7001f9a1
+580001f6
+6011009a
+6019009e
+1a227e00
+6011009c
+58000002
+2a2c000f
+7920fe00
+60108090
+70800604
+d8e00005
+204064c0
+204065b0
+2feffe04
+204064b9
+c5146601
+680101f7
+1ff0fe00
+9840fe00
+1ff0fe00
+600101f7
+20600000
+680081f7
+9840fe00
+1ff0fe00
+600101f7
+20600000
+68014203
+9a40fe00
+60010a9a
+47494032
+60090aa2
+1a227e00
+60010ab9
+2040661d
+68090ab2
+68010ab9
+1fe22200
+68010a9a
+2040663d
+68010ab2
+68090ab9
+98408400
+60090ab9
+68090a9a
+98408400
+60090a9a
+68010aa2
+243a660d
+20600000
+4749c032
+6800c211
+1fe0ffff
+68090a9a
+9841fe00
+1fe0fe01
+60018ab6
+68010aa2
+9840fe00
+68098ab6
+98467e00
+2421662f
+60010aa2
+68018ab6
+68090a9a
+98467e00
+60010ab2
+20600000
+68010aa2
+60010ab2
+58000000
+60010aa2
+20600000
+18408402
+60190098
+1a20a3fe
+ea298000
+18422400
+d84000a0
+e2288000
+e0a08000
+2020664a
+1fe22400
+474a4032
+c5146634
+1a427e00
+18408403
+60190098
+1a20a3fd
+ea298000
+18422400
+d84000a0
+e2288000
+1ff0fe00
+e0a10000
+1a227e00
+6011009a
+58000000
+6011009e
+70809001
+70800604
+204065b0
+1a427e00
+e2218000
+474ac032
+7001f900
+58000001
+60110098
+7001f6a0
+580001f6
+6011009a
+58000000
+6011009e
+6011009c
+58000003
+60108090
+70800604
+204065b0
+6810812c
+c4030000
+200005dc
+680081f9
+1fe0fe01
+600081f9
+1fe67c28
+24610000
+20206655
+70897370
+20000bb8
+20600000
+70897330
+20600000
+1fe9fe00
+60110045
+70804b00
+20600000
+2040666f
+204066a0
+ea288000
+1a20a201
+18000e00
+a84c0000
+2020e697
+68108046
+79207e06
+79207e07
+60108046
+70804702
+70804782
+793ffe07
+60108046
+7080478a
+2000000b
+708047ca
+20000021
+7080474a
+2000002c
+708047ca
+20000016
+7080478a
+20000021
+70804782
+20000001
+70804792
+2000000a
+708047b2
+68108007
+70804792
+20000001
+70804782
+afec0000
+2020e678
+68110045
+1fe0fe01
+60110045
+18e08e01
+28e01e08
+2420e678
+c2006675
+70804783
+20600000
+70804782
+2000000c
+70804780
+70804782
+20000096
+20600000
+204066a0
+708047a2
+1a227e00
+60110048
+7920040b
+2fec000f
+7920840f
+6019004a
+70800601
+20600000
+6810812c
+c300e6b0
+20600000
+2040666f
+204066a6
+204066b0
+70804783
+20600000
+68110124
+60110045
+204066a6
+d8e00001
+204064c0
+204066b0
+2feffe00
+204064b9
+70804783
+20600000
+6811005e
+98001400
+20600000
+19427e00
+6011005e
+20600000
+18627e00
+60110058
+20600000
+68110058
+1fe20600
+20600000
+68014243
+60110052
+20600000
+1f227e00
+207a0000
+1f20f3f8
+204166de
+20628000
+202166d3
+1f20f208
+1f20f3fc
+204166e1
+20628000
+202166d8
+1f20f204
+202066e4
+e8c40000
+e1440000
+20600000
+e8c20000
+e1420000
+20600000
+1f227e00
+207a0000
+e8c08000
+e1408000
+c20066e6
+20600000
+1f227e00
+207a0000
+1f20f3f8
+204166f7
+20628000
+202166ec
+1f20f208
+1f20f3fc
+204166fa
+20628000
+202166f1
+1f20f204
+202066fd
+e8640000
+e0a40000
+20600000
+e8620000
+e0a20000
+20600000
+1f227e00
+207a0000
+e8608000
+e0a08000
+c20066ff
+20600000
+1f227e00
+207a0000
+e8608000
+e1408000
+c2006705
+20600000
+700a993d
+20207d86
+474b4032
+6800c217
+207a0000
+204067a3
+2042e7a9
+2040673e
+6800c217
+1fe22600
+68094215
+6009018c
+1a627e00
+203a6709
+1a60a7ff
+18422200
+ea208000
+68088184
+98467c00
+2042e725
+20216721
+ea208000
+1fe0fe01
+e2208000
+6809018c
+18408422
+6009018c
+20206715
+58000000
+e2208000
+68008185
+e0a08000
+c099e733
+da4041be
+e8c30000
+e0a40000
+58000000
+e0a40000
+1a420c00
+20407ebf
+18007c01
+20600000
+c01b6737
+c01be73b
+da404419
+2020672b
+d8c044d5
+20407ebf
+d8c04419
+20206730
+d8c044cd
+20407ebf
+20206739
+20407fe9
+6800c217
+207a0000
+68014682
+c2806754
+474bc032
+6800c48e
+c000674d
+68008454
+2fe180c0
+2020e74d
+2fe18040
+2020e752
+2fe18000
+2020e750
+70018535
+6803044f
+20206757
+70018537
+20206757
+70018536
+20206757
+474c4033
+70018533
+68030040
+60030186
+68014215
+efe88000
+1fe0fe01
+6001018c
+60088184
+6800c217
+1fe22600
+6801018c
+1fe22200
+2040676f
+20740000
+6809018c
+18408422
+6009018c
+184085ff
+e8408000
+60008184
+1a60a7ff
+2422e75f
+6800c217
+1fe0ffff
+60008184
+20600000
+68008185
+c099e776
+da400185
+df200007
+20407f88
+2022ffe7
+20600000
+c01b6779
+c01be794
+20206771
+ea288000
+98467c00
+24628000
+d8a00ac2
+df200010
+20407ed4
+68018452
+60018ac2
+2040678b
+68010adf
+1ff0fe00
+1fed0400
+e8c08000
+9840fe00
+6809844f
+98467c00
+2022ffe7
+20600000
+d8c00ac2
+20407486
+ea208000
+20407487
+18006c38
+18006c00
+2040741d
+d8a00ad2
+20207497
+ea288000
+98467c00
+24628000
+18c22200
+18c0a608
+da4044cd
+df200008
+20407f88
+2022ffe7
+1a622200
+da4044d5
+df200008
+20407f88
+2022ffe7
+20600000
+68014215
+efe88000
+1fe0fe22
+efe08000
+98467c00
+20600000
+6800c217
+1fe27200
+68094215
+58000000
+e0408000
+18408422
+1fe0fe01
+c20067ad
+20600000
+474cc033
+2040673e
+68008030
+79347e06
+60008030
+243467bc
+1a208c0a
+d8a041be
+20407ebf
+202067d7
+7041bd00
+20600000
+6804c4cb
+203a67ca
+2040673e
+243467ca
+6801018c
+1fe08c01
+d8a044d5
+20407ebf
+d8a04419
+20407ebf
+70442901
+20600000
+70442900
+20600000
+6803044f
+60030186
+70018534
+202067d3
+68030040
+60030186
+70018533
+6800c092
+c005670b
+c28342da
+20600000
+680441be
+680c41c6
+9841fe00
+207a0000
+7041bd01
+20600000
+474d4033
+79200407
+2040681d
+7d208407
+474dc033
+18467cff
+20628000
+284c0007
+18410e1f
+680200a1
+f920fe00
+600200a1
+680200a5
+fd20fe00
+600200a5
+20600000
+474e4033
+18467cff
+20628000
+284c0007
+18410e1f
+680200a1
+f93ffe00
+600200a1
+680200a5
+f93ffe00
+600200a5
+20600000
+204067ed
+202067fe
+18467cff
+20628000
+2455e7e1
+d8a0807c
+20406830
+79400407
+d8a08078
+20406830
+793f8407
+d8a08070
+20206830
+d8a0807c
+20406830
+793f8407
+d8a08078
+20406830
+793f8407
+d8a08070
+20206830
+18467cff
+20628000
+79400407
+2040682f
+79200407
+d8a08070
+20206830
+18410e07
+18497e00
+1fe17e03
+98a08a00
+e8a08000
+20600000
+d8a08074
+2020681e
+d8a0811c
+20406815
+284ffe07
+2020e823
+afec0000
+20600000
+afefffff
+20600000
+18467cff
+20628000
+2fcffe07
+2020682c
+18467cff
+20628000
+2fcc0007
+58000000
+7d20fe07
+98428400
+d8a08074
+20406815
+284ffe07
+f920fe00
+e0a08000
+20600000
+da3fffff
+68108081
+2fe00602
+2040e878
+2fe00601
+2040e87a
+2fe00603
+2040e87a
+2feffe02
+2040e874
+2feffe03
+2040e876
+2feffe04
+2040e87c
+2feffe06
+7d20a204
+2feffe07
+7d20a205
+68108082
+2feffe00
+7d20a21b
+2feffe01
+7d20a21c
+2feffe02
+7d20a203
+2feffe03
+7d20a208
+2feffe04
+7d20a214
+2feffe05
+7d20a215
+2feffe06
+7d20a216
+2feffe07
+7d20a217
+68108080
+2feffe00
+7d20a205
+2feffe01
+7d20a206
+2feffe02
+7d20a207
+2feffe03
+7d20a212
+2feffe04
+7d20a213
+2feffe05
+7d20a214
+2feffe06
+7d20a215
+2feffe07
+7d20a216
+68108062
+2feffe04
+2040e87e
+474ec033
+68120078
+681a007c
+9841fe00
+1fe47e00
+9a217e00
+60120070
+20600000
+d8e00006
+20206884
+d8e00009
+20206882
+d8e00017
+20206882
+d8e00019
+20206884
+d8e0001e
+20206884
+d8e00002
+20206884
+df200001
+20206885
+df200004
+20206885
+df200002
+f93fa200
+18e08e01
+c2006885
+20600000
+20406895
+d8400006
+2020680e
+20406889
+d8400006
+20206825
+20406895
+68108078
+79207e07
+60108078
+d8400007
+202067fb
+68108081
+1fe17efb
+60108081
+20600000
+68108081
+2feffe02
+20600000
+2040666a
+580007e0
+da204150
+d8400002
+204066b3
+2020666d
+2040666a
+580007e2
+da20421d
+d840000e
+204066b3
+2020666d
+474f4033
+204068a2
+6800c22d
+c00068af
+c000e8c3
+c00168d7
+20600000
+68094229
+5800aa55
+98467c00
+2022e8b8
+58004dfa
+60014227
+58004894
+60014221
+202068c0
+68014227
+243a68bc
+58004dfa
+60014227
+68014221
+243a68c0
+58004894
+60014221
+58000064
+6001422b
+20600000
+68094229
+5800aa55
+98467c00
+2022e8cc
+58005932
+60014225
+58004323
+6001421f
+202068d4
+68014225
+243a68d0
+58005932
+60014225
+6801421f
+243a68d4
+58004323
+6001421f
+58000190
+6001422b
+20600000
+68094229
+5800aa55
+98467c00
+2022e8e0
+58006946
+60014223
+58005377
+6001421d
+202068e8
+68014223
+243a68e4
+58006946
+60014223
+6801421d
+243a68e8
+58005377
+6001421d
+58000032
+6001422b
+20600000
+6800c22d
+c00068f0
+c000e8f2
+c00168f4
+20600000
+708971bf
+202068f8
+708971af
+202068f8
+7089718f
+6800c22e
+60108973
+202068f8
+474fc033
+68108053
+79207e07
+60108053
+68108973
+1fe1fe30
+60108973
+7089067c
+708972aa
+20001388
+68190150
+68108053
+793ffe07
+60108053
+6009422f
+20600000
+47504034
+6800c22d
+c000690e
+c000e912
+c0016916
+20600000
+68014227
+68094221
+da6000c8
+2020691a
+68014225
+6809421f
+da600064
+2020691a
+68014223
+6809421d
+da600032
+2020691a
+98462200
+6801422f
+98467e00
+24216927
+6809422b
+984fa400
+1a627e00
+9a2ffe00
+9a40fe00
+9a26fc00
+20407f86
+1807fe00
+20600000
+18427e00
+6809422f
+98467e00
+6809422b
+984fa400
+1a627e00
+9a2ffe00
+9a467e00
+20206923
+ea240000
+60040a9a
+68010a9a
+68090a9c
+98462200
+68010aa0
+98462400
+68090a9e
+98467c00
+24416940
+1a4ffe64
+9a26fc00
+20407f86
+1807fe00
+205a6944
+20600000
+6800c231
+79207e00
+6000c231
+20600000
+6808c231
+79200401
+6008c231
+20600000
+6801423d
+efe08000
+207a0000
+1fe27200
+6801423d
+1fe0fe03
+1fe22200
+ea288000
+204067fb
+1a20a201
+c200694f
+20600000
+6801423d
+1fe0fe03
+1fe22200
+18002400
+700b1200
+ea288000
+2040681d
+4750c034
+68010b12
+1a420e00
+f920fe00
+60010b12
+1a20a201
+1a40a401
+6801423d
+efe08000
+9a42fc00
+2422e959
+68010b12
+68090b14
+9842fc00
+20628000
+78347c00
+20600000
+6801423d
+efe08000
+207a0000
+1fe27200
+6801423d
+1fe0fe03
+1fe22200
+ea288000
+204067dd
+1a20a201
+c2006973
+20600000
+d8e00009
+20407f16
+247a0000
+58000020
+d8e00009
+20407f08
+78547c00
+2040696c
+47514034
+6801423d
+efe08000
+207a0000
+20406954
+24347d02
+20407d00
+78547c00
+68010b12
+60010b19
+700b1b00
+18000e00
+68010b14
+1fe30400
+60090b14
+1fe17e01
+68090b19
+18412201
+18430400
+60090b19
+9a22fc00
+2442e9a1
+6801423d
+efe08000
+68088b1b
+18408401
+60088b1b
+18420e00
+98e2fc00
+2422e98c
+68010b12
+60010b14
+20600000
+4751c034
+6801423d
+1fe0fe01
+efe10000
+20207f9c
+68108042
+9a21fe00
+60108042
+68110050
+793ffe0d
+60110050
+20000064
+20600000
+68098a9c
+58b71b00
+9846fc00
+20407f86
+18078400
+68008a9f
+984ffe00
+1fe6fc64
+20407f86
+1807a200
+18427e00
+9a262400
+68008a9b
+204069be
+68008a9a
+202069d5
+c00069c4
+c000e9c6
+c00169c8
+c001e9ca
+c00269cc
+c002e9ce
+d8a080a0
+202069d0
+d8a080a4
+202069d0
+d8a080a8
+202069d0
+d8a08064
+202069d0
+d8a08068
+202069d0
+d8a0806c
+202069d0
+1a227e00
+e0a10000
+1a427e00
+e0a10000
+20600000
+78347c00
+202069d8
+78547c00
+c00269e3
+c002e9e5
+c00de9e7
+c00e69e9
+c001e9eb
+c00469ed
+c00a69ef
+c00ae9f1
+c00b69f3
+c00be9f5
+20600000
+d8e00006
+202069ff
+d8e00007
+202069ff
+d8e00008
+202069ff
+d8e00009
+202069ff
+d8e0000a
+202069ff
+d8e0000b
+202069ff
+d8e0000c
+20206a01
+d8e0000d
+20206a01
+d8e0000e
+20206a01
+d8e0000f
+20206a01
+68110081
+f9347e00
+60110081
+1a220e00
+68108085
+f9347e00
+60108085
+20600000
+18e0a3fc
+202069f7
+18e0a3f6
+202069f7
+20758000
+70456700
+7004ed03
+7004ee03
+7004f211
+7004f313
+58000000
+600184ef
+6000c254
+70468100
+47524034
+58000000
+6000c254
+6000c564
+6000c55d
+6800c56b
+c000ea16
+70456950
+20600000
+70456900
+20600000
+18418402
+20600000
+18427e00
+1fedfe00
+6000c562
+18007e3f
+1fedfe00
+6000c561
+18007e01
+1fedfe00
+6000c560
+20406a50
+18427e00
+20600000
+1fedfe00
+6000c562
+18007e73
+1fedfe00
+6000c561
+18007e01
+1fedfe00
+6000c560
+20206a50
+6800c563
+203a6a33
+58000070
+20600000
+580000aa
+20600000
+1fedfe00
+6000c562
+18007eef
+20406a44
+680904f7
+18420a00
+e0a08000
+18a20400
+600904f7
+18007eff
+20406a44
+680904f7
+18420a00
+e0a08000
+20600000
+1fedfe00
+6000c561
+68014561
+1fed7e00
+600184f4
+da200107
+da40000f
+20406a5d
+1fe2fed7
+1fe47e00
+1fedfe00
+20600000
+6801c560
+600184f4
+da200107
+da40000f
+20406a5d
+1fed7e00
+da400007
+20406a5d
+1fe2fe2b
+1fe47e00
+1fedfe00
+1fe20400
+20600000
+da600000
+1a427200
+20407e71
+1fe20400
+18427e00
+1a63a600
+c3046a66
+9a228400
+1a60a601
+18438400
+680184f4
+1a40a5ff
+2a41feff
+2020ea70
+1a427200
+20407e71
+2feffe00
+79208400
+20206a61
+18437e00
+20600000
+6808c55d
+184b8400
+79200400
+6800c563
+245a6a18
+6008850d
+20600000
+18438400
+6800c563
+793a0400
+20600000
+680884fc
+7004fed7
+20406bb6
+6800c251
+79207e06
+79207e07
+6000c251
+70456300
+20206b97
+6800c251
+79207e07
+6000c251
+20206b97
+4752c034
+6800c681
+c0006a8e
+20206b4c
+68010264
+1fe20c00
+20406ab8
+680084fc
+c0006a94
+20206b18
+47534034
+680084fd
+c01fea7d
+c039ea86
+c077ea9b
+c029eb44
+20600000
+68010501
+1fe20c00
+20406ac3
+68008503
+c020eaa5
+c0206aad
+c038eae6
+c0386af2
+c024eafd
+20206b97
+20406aaf
+20206aa7
+6800c254
+79207e00
+79207e01
+6000c254
+20406be0
+20206b97
+20406aaf
+20206b97
+20406acb
+20206ad7
+20406acb
+e8c08000
+1fe97e00
+6000c56a
+e8c08000
+60008508
+20600000
+e8c08000
+600084fb
+1fe97e00
+600084fc
+e8c08000
+600084fd
+20406ace
+600904ff
+18c27e00
+60010501
+20600000
+e8c08000
+1fe37e00
+60008503
+20406ace
+60090504
+18c27e00
+60010506
+20600000
+68010506
+1fe20c00
+20600000
+e8c08000
+1fe20400
+18430400
+c3800000
+e8c08000
+1fe9fe00
+1ff27e00
+98408400
+20600000
+e8c08000
+6000c55d
+e8c08000
+60008509
+e8c08000
+6000850a
+e8c08000
+6000850b
+e8c10000
+6001455e
+e8c08000
+6000850c
+e8c08000
+6000c568
+20600000
+20406ab1
+20206ae8
+6800c254
+79207e05
+79207e06
+6000c254
+6808c55d
+184b8400
+18418403
+20406c11
+70456703
+20206b97
+700a9908
+20407d86
+20406ab1
+6800c56a
+1fe67c01
+2022eaf9
+20202a8c
+6800c254
+79207e07
+6000c254
+20206b97
+20406acb
+e8c08000
+60008ac2
+204052d2
+204052e0
+5800000e
+e0a10000
+6801424a
+e0a10000
+6800c563
+1fe3fe00
+79207e00
+e0a08000
+4753c034
+580015ef
+e0a10000
+58001191
+e0a10000
+68008ac2
+e0a08000
+58000007
+e0a28000
+58000001
+e0a10000
+20406a2f
+e0a08000
+20600000
+20206b19
+47544035
+680084fd
+c039eb21
+c01feb25
+c077eb3f
+c07feb37
+c029eb46
+20600000
+6800c254
+79207e03
+6000c254
+20206b97
+6800c254
+79207e03
+79207e02
+6000c254
+680084fb
+20406a26
+600084fe
+20406bb6
+680084fb
+1feb7e00
+6000c55d
+1febfe00
+793ffe01
+79207e00
+d8404565
+600904f7
+20406a35
+20206b97
+68010501
+1fe20c00
+1fe0fe01
+60010501
+e8c08000
+6808c568
+9840fe00
+6000c568
+20406c42
+20406a72
+20406c28
+20406c4b
+20206b97
+700a9909
+20407d86
+20406a0d
+680084fb
+20406a26
+600084fe
+20406bb6
+20206b97
+68010264
+1fe20c00
+20406ab8
+680084fc
+c0006b52
+20206b86
+4754c035
+680084fd
+c01fea7d
+c039ea86
+c077eb58
+20206b97
+68010501
+1fe20c00
+20406ac3
+68008503
+c020eb61
+c0206b61
+c038eb6c
+c0386b7c
+20206b97
+20406aaf
+6800c55d
+1fe37e00
+6808c564
+98467c00
+2022eb68
+20202a8c
+6800c254
+79207e01
+6000c254
+20206b97
+20406ab1
+6800c56a
+6808c564
+98467c00
+2022eb73
+20202a8c
+20206b97
+6800c254
+79207e05
+79207e06
+6000c254
+6808c55d
+184b8400
+18418403
+20406c11
+20206b97
+20406ab1
+6800c56a
+6808c564
+98467c00
+2022eb82
+20202a8c
+6800c254
+79207e07
+6000c254
+20206b97
+680084fc
+6808c564
+98467c00
+2022eb8c
+20202a8c
+20206b97
+680084fd
+c039eb91
+c077eb3f
+c07feb37
+c029eb96
+6800c254
+79207e03
+6000c254
+20206b97
+20206b95
+20206b46
+20600000
+6800c567
+207a0000
+c001eb9c
+20202a8c
+70456700
+204052d2
+d8400001
+6808c55d
+184b8400
+18418403
+da2000aa
+20406bfc
+204052e0
+18a20c00
+e8c10000
+203a2a8c
+20600000
+204052e0
+58000004
+e0a10000
+6801424a
+e0a10000
+680084fb
+e0a08000
+47554035
+5800013f
+e0a10000
+680084fe
+e0a08000
+20600000
+204052d2
+204052e0
+58000004
+e0a10000
+6801424a
+e0a10000
+680084fb
+e0a08000
+4755c035
+58000173
+e0a10000
+680084fe
+e0a08000
+20600000
+204052e0
+5800000e
+e0a10000
+6801424a
+e0a10000
+6800c563
+1fe3fe00
+79207e00
+e0a08000
+47564035
+580015ef
+e0a10000
+58001183
+e0a10000
+18427e00
+e0a08000
+580000f0
+e0a18000
+5800007f
+e0a10000
+58000000
+e0a08000
+58000001
+e0a08000
+20406a2f
+e0a08000
+70456910
+20600000
+204052d2
+204052e0
+5800000e
+e0a10000
+6801424a
+e0a10000
+6800c563
+1fe3fe00
+79207e00
+e0a08000
+4756c035
+580015ef
+e0a10000
+58001181
+e0a10000
+6800c55d
+e0a08000
+580000e0
+e0a18000
+6801456c
+e0a10000
+58000000
+e0a08000
+6800c56e
+e0a08000
+20406a2f
+e0a08000
+20600000
+204052e0
+58000008
+e0a10000
+6801424a
+e0a10000
+6800c563
+1fe3fe00
+79207e00
+e0a08000
+47574035
+580009ef
+e0a10000
+580005e3
+e0a10000
+18427e00
+e0a08000
+5800008d
+e0a08000
+20406a2f
+e0a08000
+20600000
+204052d2
+204052e0
+58000008
+e0a10000
+6801424a
+e0a10000
+18421600
+6800c563
+1fe3fe00
+79207e00
+e0a08000
+4757c035
+580009ef
+e0a10000
+580005e1
+e0a10000
+19627e00
+e0a08000
+5800008d
+e0a08000
+20406a2f
+e0a08000
+20600000
+47584036
+6800c569
+207a0000
+68110112
+247a0000
+1a227e00
+60008a9b
+60088a9a
+2040526e
+247a0000
+204052d2
+204052e0
+58000005
+e0a10000
+6801424a
+e0a10000
+6800850d
+e0a08000
+580001ff
+e0a10000
+6800c569
+e0a08000
+6800c566
+e0a08000
+70456900
+20600000
+4758c036
+6800c56b
+c1008000
+680104ff
+207a0000
+6800c569
+1fe0fe01
+6000c569
+20600000
+6801456f
+20207f9c
+47594036
+6800c568
+207a0000
+1fe0ffff
+6000c568
+6801455e
+6809469f
+98467c00
+20216c57
+6001469f
+6800c569
+203a6c5f
+70051001
+6800c566
+6000850f
+580000ff
+6000850e
+20206c64
+70051000
+6800c565
+6000850f
+580000ef
+6000850e
+4759c036
+6801469f
+1fe67c7f
+20216c6b
+68008510
+1fe0fe01
+60008510
+20406a72
+6801469f
+1fe0fe08
+68088510
+9840a200
+20405240
+60010277
+1fe0fe04
+60010279
+1fe20a00
+6800850d
+e0a08000
+6800850e
+e0a08000
+20406c95
+20406ca6
+475a4036
+68014571
+1fe20600
+6801469f
+1fe27200
+204066ea
+18a20400
+18627e00
+60014571
+18420a00
+6800850f
+e0a08000
+68010277
+1fe20a00
+6801469f
+68088510
+9840fe00
+1fe0fe04
+e0a10000
+6801424a
+e0a10000
+70456900
+68014573
+c0003a97
+700b0500
+20600000
+475ac036
+6801469f
+1fe67c7f
+24216c9d
+1fe3fe00
+79207e00
+e0a08000
+20600000
+6801469f
+1fe97e00
+1ff18400
+1fe17e7f
+1fe3fe00
+793ffe00
+e0a08000
+e0a88000
+20600000
+6800c569
+207a0000
+e0a08000
+20600000
+475b4036
+20407d9c
+204032f6
+2040631b
+475bc036
+204076dc
+204076b5
+204076c6
+2040526e
+247a0000
+20404da9
+2040526e
+247a0000
+475c4037
+20406cf5
+20404f64
+20406b98
+20406cbe
+475cc037
+202032f2
+6800827f
+c2805087
+c283d091
+20600000
+475d4037
+20405274
+207a0000
+6800804b
+c3830000
+20405258
+6001016f
+1fe20c00
+e8c10000
+1fe0fe04
+600141dc
+7041db06
+475dc037
+68014246
+203a6cdd
+6800804b
+c4038000
+793ffe07
+6000804b
+7041db05
+68094246
+6801016f
+9840fe00
+6001016f
+680141dc
+98467e00
+600141dc
+475e4037
+680141dc
+203a2a8c
+d8400104
+98467e00
+24216ce9
+475ec037
+600941dc
+68014246
+9840fe00
+60014246
+20206ceb
+58000000
+60014246
+6800804b
+79207e06
+6000804b
+20600000
+6800c684
+c2806cf3
+70028701
+20600000
+7002870f
+20600000
+6800c681
+243a6cfb
+68008286
+207a0000
+70028600
+20600000
+475f4037
+68008287
+207a0000
+c000ed1b
+c0016d74
+c001ed21
+c0026d78
+c01ded2b
+c01e6d7b
+c006ed30
+c0076d80
+c007ed33
+c0086d86
+c008ed39
+c0096d8a
+c009ed3f
+c00a6d8e
+c00aed45
+c00b6d92
+c00bed4b
+c00c6d97
+c00ced51
+c00d6d9b
+c00ded57
+c00e6d9f
+c00eed5d
+c00f6da4
+c00fed63
+c0106da8
+c010ed6e
+c0116dac
+20600000
+20406db7
+70028702
+6800c250
+79207e00
+6000c250
+20600000
+70028704
+6800c250
+c3810000
+70028703
+20406dbe
+70028704
+6800c250
+79207e02
+6000c250
+20600000
+20405274
+247a0000
+20406dcd
+7002873c
+20600000
+20406dc3
+7002870e
+20600000
+20406ddd
+70028710
+6800c252
+79207e00
+6000c252
+20600000
+20406de4
+70028712
+6800c252
+79207e02
+6000c252
+20600000
+20406de9
+70028714
+6800c253
+79207e00
+6000c253
+20600000
+20406df0
+70028716
+6800c253
+79207e02
+6000c253
+20600000
+20406dd1
+70028718
+6800c251
+79207e00
+6000c251
+20600000
+20406dd8
+7002871a
+6800c251
+79207e02
+6000c251
+20600000
+20406df5
+7002871c
+6800c251
+79207e06
+6000c251
+20600000
+20406dfc
+6800c254
+79207e00
+6000c254
+7002871e
+20600000
+20406e02
+6800c254
+79207e02
+6000c254
+70028720
+6800c564
+1fe9fe00
+1fe1fe03
+d8404565
+600904f7
+20206a35
+20406e0c
+6800c254
+79207e04
+6000c254
+70028722
+20600000
+6800c250
+c4008000
+70028703
+20206cfb
+6800c250
+c19f8000
+7002873b
+68008285
+c18b8000
+70028500
+7002870d
+20206cfb
+6800c250
+247a0000
+6800c684
+c2806daf
+c2836db1
+20206db5
+6800c252
+c4008000
+70028711
+20206cfb
+6800c252
+c19f8000
+70028713
+20206cfb
+6800c253
+c4008000
+70028715
+20206cfb
+6800c253
+c19f8000
+6800c684
+c2836db1
+20206db5
+6800c251
+c4008000
+70028719
+20206cfb
+6800c251
+c19f8000
+7002871b
+20206cfb
+6800c251
+c1ff8000
+6800c684
+c2836db3
+20206db5
+6800c254
+c4008000
+7002871f
+20206cfb
+6800c254
+c4018000
+70028721
+20206cfb
+6800c254
+c1ff8000
+20206db5
+7002870f
+20206cfb
+70028717
+20206cfb
+7002871d
+20206cfb
+70028700
+20600000
+475fc037
+204052b8
+58000001
+1fe20400
+58000050
+1fe21600
+202050a8
+47604038
+204052b8
+68014248
+1fe20400
+202050b7
+4760c038
+204052b8
+68014248
+1fe20400
+d9600050
+204050cc
+6800c250
+793ffe05
+6000c250
+20600000
+47614038
+204052c5
+20407138
+202050e7
+4761c038
+204052b8
+58000003
+1fe20400
+58000051
+1fe21600
+202050a8
+47624038
+204052b8
+6801424a
+1fe20400
+202050b7
+4762c038
+204052b8
+58000011
+1fe20400
+58000052
+1fe21600
+202050a8
+47634038
+204052b8
+6801424c
+1fe20400
+202050b7
+4763c038
+204052b8
+58000013
+1fe20400
+58000053
+1fe21600
+202050a8
+47644039
+204052b8
+6801424e
+1fe20400
+202050b7
+4764c039
+204052d2
+7004fb03
+7004fe1c
+20406ba9
+70456301
+20600000
+47654039
+204052d2
+6808c564
+20406a79
+6008c55d
+20206bc4
+4765c039
+204052d2
+6808c55d
+20406a73
+20406a1a
+600084fe
+6808c55d
+20406a73
+600884fb
+20206ba9
+47664039
+204052d2
+6808c55d
+20406a73
+20206bfc
+4766c039
+68010264
+98000c00
+e8c08000
+1fe22400
+6000851b
+e8c10000
+6001051c
+e8c08000
+1fed1600
+e8c08000
+99609600
+47674039
+18c20400
+df200004
+d8a0052a
+20407ec6
+18420c00
+1a427e00
+c000efba
+c0016e2c
+c001efba
+c0026e54
+c002efba
+c0036f02
+c003efba
+20206fc1
+4767c039
+20406fd0
+2841fe01
+2020f040
+2841feff
+2020efc4
+e8c10000
+60010522
+196097fe
+196097ff
+2422efbe
+d9600511
+e9610000
+207a0000
+20407082
+204052d0
+18007e03
+e0a08000
+6801051c
+e0a10000
+18ebfe00
+1fe0fe05
+1fe0a605
+1ff0fe00
+e0a10000
+18e27e00
+1ff0fe00
+e0a10000
+e0a10000
+d8c0052a
+18e27200
+2022ee4f
+e8c20000
+e0a20000
+c2006e4c
+18007e00
+e0a08000
+1a627e00
+60010275
+20600000
+4768403a
+e8c20000
+60020524
+196097fc
+20406f2e
+60010520
+196097fe
+20407028
+2022efc4
+2a21fe05
+2020ee62
+d8a0052a
+18000e00
+20206e71
+e8c08000
+c0856fc4
+e8c10000
+243a6e6f
+e8c08000
+c0ffee6d
+e8c08000
+c0ffee6b
+20206eb8
+18c08dfb
+20206e5f
+18c08dfc
+20206e5f
+18c08dfd
+20206e5f
+e8c08000
+c004ee86
+c0056e74
+e8c10000
+e0a10000
+18e08e01
+1ff0a400
+e8c10000
+1ff0fe00
+1a40a401
+9a467c00
+24216e83
+1fe22600
+1a50fe00
+e0a10000
+18e08e01
+1a627e00
+20206e7a
+196097fb
+1a20a3fb
+20206e8b
+e8c10000
+e0a10000
+18e08e01
+196097fd
+1a20a3fd
+24216fc4
+2422ee71
+196097ff
+2422efc4
+204052d0
+18a08a0a
+da20052a
+18e27e00
+203a6ea5
+ea210000
+203a6ea5
+98002400
+68020524
+98000400
+204070e7
+18c27e00
+203a6ea2
+18c08dfd
+e8c18000
+e0a18000
+2040705b
+98007200
+20407f01
+1a20a202
+18e08fff
+20206e92
+da200005
+20406f84
+68010275
+c005f043
+20206f9a
+e8c08000
+c0006eae
+c000eeb0
+c0016eb3
+196097ff
+20206eb6
+e8c08000
+196097fe
+20206eb6
+e8c10000
+1ff0fe00
+196097fd
+60010519
+20600000
+196097fb
+20406eaa
+2422efbe
+680a0524
+204070b1
+2422efbb
+18c22200
+204052d0
+1a220c00
+18a08a03
+18c21600
+20407062
+1fe22200
+68010519
+1fe22400
+1a227e00
+9a462400
+68010520
+9a467c00
+24216ee7
+78547c00
+68010519
+203a6eda
+99608c00
+1a40a403
+1a427200
+1f227e00
+1fe0fe03
+1ff0fe00
+e0a10000
+1f227e00
+1ff0fe00
+e0a10000
+20206ef5
+1a20f206
+20346ede
+1f30fe00
+20206ee1
+1f227e00
+1fe0fe02
+1ff0fe00
+e0a10000
+1f20f3fd
+1f30fe00
+e0a10000
+19620c00
+20206ef5
+78347c00
+68010520
+1fe22200
+1a227200
+68010519
+203a6eda
+99608c00
+1a227e00
+1fe0fe05
+1ff0fe00
+e0a10000
+1a227e00
+1ff0fe00
+e0a10000
+20407f01
+24346efe
+18007e02
+e0a08000
+18c27e00
+99667e00
+1ff0fe00
+e0a10000
+20206f00
+18007e00
+e0a08000
+da200005
+20206fb0
+4768c03a
+20406fd0
+2841feff
+2020efc4
+20406f2e
+60010520
+196097fe
+20407028
+d8a0052a
+18000e00
+e8c08000
+c0056f36
+e8c10000
+e0a10000
+18e08e01
+196097fd
+1a20a3fd
+24216fc4
+2422ef0c
+196097ff
+2422efc4
+204052d0
+18a08a0d
+68010511
+98002600
+da20052a
+ea210000
+203a6f29
+98002400
+204070c6
+203a6f27
+18c08dfd
+e8c18000
+e0a18000
+2040705b
+98007200
+20407f01
+1a20a202
+20206f1c
+20406f83
+68010275
+c0077046
+20406f9a
+20206f9a
+e8c10000
+1ff0fe00
+1fe0fffd
+d84000c8
+98467c00
+24610000
+580000c8
+20600000
+18c08c04
+196097fb
+1a20a3fb
+2422efc4
+20406eaa
+2422efbe
+d9600511
+20407082
+18e27e00
+203a7046
+6000854e
+1a427e00
+6001054c
+d8e00000
+da200000
+204052d0
+18a08a0a
+20406f6c
+24342a8c
+18c21600
+1fe22600
+9a20a200
+68010519
+1fe22400
+203a6f75
+1a227e00
+9a462400
+2022ef67
+24216f67
+68010520
+9a467c00
+2022ef5e
+24216f5e
+1a427200
+20406f61
+6800854e
+18e08e01
+98e67c00
+2022ef83
+20206fa0
+1fe27200
+20406f61
+20206fa0
+18a08bfd
+1f220400
+1a627e00
+9a467e00
+99608c00
+20207f01
+6800854e
+18e08e01
+98e67c00
+20628000
+20206f47
+20407fe9
+d8c0052a
+18ebfe00
+98c08c00
+e8ca0000
+204070b1
+24628000
+2040705b
+20207fe7
+68010520
+9a267c00
+24216f8f
+1a227200
+1f220400
+19620c00
+20407f01
+6801054c
+9a267c00
+2022ef81
+20406fa0
+20206f94
+20406f83
+20206f94
+da200007
+18007e00
+e0a08000
+20406fb0
+68090275
+184085fb
+1850fe00
+e0a10000
+184085fd
+1850fe00
+e0a10000
+20600000
+1fe27200
+1f220400
+19620c00
+20407f01
+20406fa0
+58000036
+e0a08000
+6801054c
+1ff0fe00
+e0a10000
+20600000
+58000036
+e0a08000
+184085fd
+1850fe00
+e0a10000
+20600000
+da200007
+58000002
+e0a08000
+68010519
+98408400
+1850fe00
+e0a10000
+20406fb0
+68090275
+184085fb
+1850fe00
+e0a10000
+184085fb
+1850fe00
+e0a10000
+20600000
+68010273
+98a67e00
+1fe67e00
+60010275
+204052d0
+1a227e00
+e0a08000
+6801051c
+e0a10000
+20600000
+20600000
+58000200
+6001054a
+20206fc6
+58000400
+6001054a
+20206fc6
+58000600
+6001054a
+20206fc6
+58000300
+6001054a
+204052d0
+e0a08000
+6801051c
+e0a10000
+58000200
+e0a10000
+6801054a
+e0a10000
+70027507
+20600000
+da400000
+18000400
+d8a00511
+20407028
+2022f026
+1a40a401
+e8c08000
+1a20a3ff
+196097ff
+2fe1f018
+2420f026
+2fe00e04
+2420eff3
+18000401
+e8c08000
+1a20a3ff
+196097ff
+c0806fe7
+e8c08000
+1a20a3ff
+196097ff
+c0006ff8
+20206fea
+18c08c01
+1a20a3ff
+196097ff
+18c08c02
+1a20a3fe
+196097fe
+2841fe00
+2020f020
+18c08c0c
+1a20a3f4
+196097f4
+20207020
+2fe00e02
+2420eff6
+20206fde
+2fe00e01
+2420f026
+1a20a3fe
+196097fe
+e8c10000
+1a467c04
+2022effe
+e0a10000
+2841fe00
+2020f020
+18c20400
+e8c08000
+c0807019
+e8c08000
+c0807019
+e8c08000
+c0887019
+e8c08000
+c0807019
+e8c08000
+c0c07019
+e8c08000
+c0807019
+e8c08000
+c0807019
+e8c08000
+c0c07019
+e8c08000
+c0aff019
+e8c08000
+c0cdf019
+e8c08000
+c09a7019
+e8c08000
+c07df01e
+18420c00
+18c08c0c
+18000e00
+18000400
+2020701e
+196097f4
+1a20a3f4
+18000400
+2a21fe00
+2420efd5
+18007e00
+e0a10000
+20600000
+d84000ff
+20600000
+476a403a
+e8c08000
+196097ff
+2fe1f030
+2420f03e
+2fe00e07
+2020f037
+2fe00e06
+2020f039
+2fe00e05
+2420f03e
+e8c08000
+1fe22200
+196097ff
+2020703c
+18c08c02
+196097fe
+e8c10000
+1ff0a200
+196097fe
+18007e01
+20600000
+18007e00
+20600000
+58000003
+6000851b
+20207048
+58000005
+6000851b
+20207048
+58000007
+6000851b
+204052d0
+6800851b
+1fe22400
+e0a08000
+6801051c
+e0a10000
+58000500
+e0a10000
+2a41fe05
+2020f057
+2a41fe07
+2020f057
+58000000
+e0a28000
+20207059
+58350200
+e0a28000
+7002750a
+20600000
+20407ea2
+20407ea5
+20407062
+20407e9c
+20407e9f
+18427e00
+20600000
+e8c08000
+1fe17207
+1fe97e00
+c080706c
+18007e01
+18000401
+20600000
+20407e76
+1fe08401
+20600000
+1f227e00
+1fe67c04
+20217069
+c002f073
+c0037076
+c003f07a
+20600000
+e8c08000
+1fe08402
+20600000
+e8c10000
+1ff0fe00
+1fe08403
+20600000
+e8c10000
+1ff0fe00
+e8c90000
+18508400
+18500400
+9840fe00
+1fe08405
+20600000
+476ac03a
+18000e00
+da400000
+d8a0052a
+e9610000
+207a0000
+2040708d
+18e27e00
+c1038000
+19609602
+20207086
+98002600
+68014575
+98000c00
+18e27e00
+c1038000
+78547c00
+e8c08000
+207a0000
+98007200
+e8c10000
+9a667c00
+2422f09a
+78347c00
+c2007096
+e8ca0000
+18c22200
+243470ad
+d8c0052a
+df200007
+e8c20000
+203a70a6
+98467c00
+2022f0ad
+c20070a0
+20600000
+e0aa0000
+18e08e01
+1a220c00
+2040705b
+9a40a400
+98c08c00
+20207090
+1a220c00
+20407062
+98c08c00
+20207090
+476b403a
+68014575
+98000c00
+e8c08000
+203a7fe3
+1fe3fe00
+98c08c00
+e8c20000
+98467c00
+20628000
+18a27e00
+60010abb
+600c0aa2
+20407062
+98c08c00
+18c27e00
+68090abb
+18420a00
+680c0aa2
+1fe20c00
+202070b4
+476bc03a
+68014575
+98000c00
+e8c08000
+203a70e4
+98007200
+e8c10000
+9a667c00
+2022f0d4
+c20070cc
+18c08c04
+20407062
+98c08c00
+202070c9
+1f20f3ff
+1f23fe00
+98c08c00
+18c08c04
+20407062
+98c09600
+18c08c01
+e8c10000
+9a467c00
+2022ffef
+2040705b
+98c08c00
+19627e00
+98c67c00
+2022f0e4
+202070da
+18000c00
+18007e00
+20600000
+476c403b
+68014575
+98000c00
+e8c08000
+203a7100
+1fe3fe00
+98c08c00
+e8c20000
+98467c00
+2022f0f4
+20407062
+98c08c00
+202070ea
+20407062
+98c09600
+18c08c01
+e8c10000
+9a467c00
+20628000
+2040705b
+98c08c00
+19627e00
+98c67c00
+2022f100
+202070f6
+18000c00
+20600000
+da400400
+204070f4
+da400300
+2040710d
+24740000
+1a267c03
+20217fe9
+e8c08000
+c0847fe9
+e8c08000
+20600000
+476cc03b
+20407062
+1fe22200
+e8c08000
+1fe17207
+1fe97e00
+1fe67c03
+2022f129
+1f227e00
+c002f120
+c0037123
+c003f126
+18c08dff
+20407062
+98c08c00
+1a227e00
+98462200
+2022ffe9
+20207110
+1a20a3fe
+18c08c01
+20207110
+1a20a3fd
+18c08c02
+20207110
+1a20a3fb
+18c08c04
+20207110
+1a20a3ff
+1f227e00
+c000f132
+c0017130
+c002712f
+20207fe9
+1a20a3f4
+e8c10000
+1a20a3fe
+e8c10000
+9a467c00
+2022ffe7
+1a20a3fe
+2022ffe9
+20207110
+204052d0
+1fe20a00
+58000006
+e0a08000
+5800006e
+e0a10000
+58000f00
+e0a10000
+581a0535
+e0a18000
+58000111
+1ff07e00
+e0a20000
+58002600
+e0a10000
+58000335
+e0a10000
+58000009
+e0a10000
+58000004
+e0a10000
+70027514
+20600000
+476d403b
+7005e550
+d8a005e6
+d8c0443a
+20407ebf
+d8c045d2
+20407ebd
+d8c009be
+20407ebd
+2040720a
+d8c0042f
+20407205
+204071d0
+d8a00af2
+20407201
+580f4240
+1fe22200
+68020af2
+9a26fc00
+20407f86
+18077e00
+600209ba
+20600000
+7005e541
+d8a005e6
+204071b5
+204071b0
+6801c454
+e0a18000
+20407176
+d8c0042f
+20407ebf
+d8c0443a
+20407ebf
+2040720a
+d8c00b12
+d8a00ac2
+20407ebf
+202071d0
+680244c7
+e0a20000
+20407ecd
+20207eca
+476dc03b
+7005e541
+d8a005e6
+204071b0
+204071b5
+6801c44d
+e0a18000
+20407176
+d8c0443a
+20407ebf
+d8c0042f
+20407ebf
+2040720a
+d8c00b12
+d8a00ac2
+20407ebf
+204071d0
+d8a00af2
+20207201
+7005e520
+d8c009fe
+d8a005e6
+20407ebd
+2040720a
+d8c0099e
+20407205
+204071d0
+d8a00ac2
+20407497
+d8400001
+2040719f
+d8a04419
+20407201
+d8400000
+2040719f
+d8a00b12
+20207497
+476e403b
+7005e535
+58000100
+600105e6
+204071b0
+204071b5
+d8c0443a
+20407ebf
+d8c0042f
+20407ebf
+58006c65
+e0a10000
+58006274
+e0a10000
+e0a88000
+2040720a
+202071d0
+680344a0
+e0a30000
+6800c495
+e0a08000
+20600000
+6803044f
+e0a30000
+6800c48e
+e0a08000
+20600000
+7005e541
+6800c664
+600085e6
+d8c045d2
+20407ebd
+d8c009be
+20407ebd
+2040720a
+d8c0042f
+20407205
+202071d0
+7005e541
+6800c664
+600085e6
+d8c009be
+20407ebd
+d8c045d2
+20407ebd
+2040720a
+d8c0443a
+20407205
+202071d0
+476ec03b
+2040721f
+680085e5
+1fe20400
+1fe0fe0f
+1ff1fe00
+1fe22400
+203a71e2
+18417e0f
+243a71e5
+da600ad2
+dfe005e6
+1fe0fff0
+9840a200
+d8a00b02
+df200004
+20407edd
+202071f0
+da400001
+da200000
+202071e6
+1841220f
+dfe005e6
+9840fe00
+9a260c00
+d8a00af2
+20407245
+da600ae2
+da200af2
+d8a00b02
+df200004
+20407edd
+20407491
+20407428
+d8c005e6
+1a40a5ff
+1a427e00
+203a71f9
+20407486
+20407422
+202071f3
+d8a00af2
+20407497
+d8c00b02
+20407486
+20407428
+d8c00af2
+20407486
+20207422
+18a22200
+20407497
+df200010
+20207ee5
+d8a00ac2
+20407ebf
+df200010
+da200ac2
+20207ee5
+680085e5
+1fe27200
+da2005e6
+20207ee5
+ea208000
+1fe3fe00
+2a6ffe00
+7920fe00
+2feffe08
+7920a600
+e2208000
+1a20a3ff
+c200720e
+20600000
+da200ad2
+1a20a20f
+18007210
+18002600
+2020720e
+da200ae2
+20207219
+d8c00ac2
+20407484
+18007008
+20407492
+20407491
+2040741f
+d8a00ad2
+20407497
+476f403b
+68008ad2
+2feffe07
+2420f230
+20407218
+da600ad2
+d8a00ad2
+2040723a
+20207231
+20407218
+d8c00ad2
+d8a00ae2
+20407ebf
+68008ae2
+2feffe07
+2420f21d
+2040721d
+da600ae2
+d8a00ae2
+df200003
+d8400000
+20407241
+1a60a604
+c200723b
+d8408700
+18500400
+ea620000
+9842fe00
+e0a20000
+20600000
+476fc03b
+df200010
+dfe00000
+9a267c00
+2022f250
+20217253
+e8c88000
+e0a88000
+1fe0fe01
+c2007248
+20600000
+d8400080
+e0a88000
+2020724d
+d8400000
+20207251
+20407268
+d8c00592
+d8a00582
+20207ebf
+78547c00
+2040735f
+d8c00562
+d8a005a2
+1800720f
+20407f01
+e8c08000
+1fe2fe06
+e0a08000
+580005b2
+600105d6
+580005a2
+600105d4
+79200012
+202072a8
+6808c689
+18002410
+1840a606
+1a667c10
+2021726e
+18002610
+d8a005a2
+d8c0468a
+18427200
+78547c00
+e8c08000
+e0a08000
+1a40a5ff
+2022f27c
+c2007272
+2034726f
+78347c00
+18007206
+1a220c00
+20207272
+d8c00562
+d8a005b2
+20407ebf
+680085c1
+9a62fe00
+600085c1
+580005b2
+600105d6
+580005a2
+600105d4
+79200012
+202072a8
+78547c00
+2040735f
+20207292
+da200056
+78347c00
+2040735f
+20407292
+d8c00592
+d8a00062
+20207ebf
+58000562
+600105d6
+580041be
+600105d4
+793f8012
+204072a8
+da200592
+da400562
+d8a005a2
+20407352
+da2005a2
+da4005b2
+1a420a00
+78347c00
+20407350
+2040736a
+580005b2
+600105d6
+580005a2
+600105d4
+79200012
+202072a8
+7005d800
+680105d4
+98000c00
+d8a005c2
+20407ebf
+680105d6
+98000c00
+d8a00592
+20407ebf
+204072cf
+78547c00
+c58972b9
+680085d8
+c08272b9
+680105d6
+98002400
+20407301
+20407300
+20407313
+680085d8
+1fe0fe01
+600085d8
+204072cf
+78347c00
+20407300
+20407322
+20407331
+20407322
+20407331
+20407322
+20407331
+20407322
+680085d8
+1fe0fe01
+600085d8
+c08872b1
+204072cf
+78547c00
+20207300
+680085d8
+d8c005c2
+203a72f6
+98002400
+18007211
+18c20a00
+e8c08000
+1fe98400
+1feb7e00
+1fe97e00
+9841fe00
+e0a08000
+c20072d5
+580005c2
+9a408c00
+18007210
+d8a00572
+e8c08000
+e0a08000
+28c1ffd3
+2420f2e5
+18c08def
+c20072e0
+18002200
+1a40a7ff
+1a6ba600
+1a6ba600
+204074b9
+58008400
+9a60a600
+d8a00572
+18007210
+ea688000
+e8a08000
+9840fe00
+e0a08000
+1a60a601
+c20072ef
+202074bd
+18007210
+18000400
+e8c08000
+98428400
+c20072f8
+18427e00
+e0c08000
+d8c005c2
+d8a00572
+20207ebf
+da400572
+18007210
+da200592
+1a220a00
+ea288000
+ea408000
+9842e000
+1f212603
+2434730a
+1a62a603
+1a662601
+2021730d
+9840e000
+1e027e00
+e0a08000
+1a20a201
+1a40a401
+c2007304
+20600000
+204074b9
+18007210
+da200592
+ea208000
+d8c08500
+1f212603
+1a667c01
+2021731c
+d8c08600
+98c08c00
+e8c08000
+e2208000
+1a20a201
+c2007316
+202074bd
+18007208
+d8c00592
+18c20a00
+e8c08000
+98002200
+e8c08000
+98002400
+1a23fe00
+9a40fe00
+e0a08000
+1a227e00
+9a40fe00
+e0a08000
+c2007325
+20600000
+588ae42c
+98000400
+18007207
+20407340
+580d751b
+98000400
+18007205
+20407340
+680085a1
+98002200
+68008595
+600085a1
+1a227e00
+60008595
+20600000
+1841240f
+18417e0f
+d8a00592
+98a08a00
+e8a08000
+98002600
+1a227e00
+e0a08000
+1a622200
+18518400
+c2007341
+58000592
+9a408a00
+1a227e00
+e0a08000
+20600000
+78347c00
+20207353
+78547c00
+18007210
+ea288000
+ea408000
+20347359
+9842fe00
+2020735a
+9840fe00
+e0a08000
+1a20a201
+1a40a401
+c2007354
+20600000
+d8a005b2
+ea230000
+e0a30000
+20347365
+ea230000
+20207366
+e8c30000
+e0a30000
+ea220000
+e0a20000
+20600000
+d8c041be
+d8a005a2
+d8400000
+588395a7
+2040738b
+58b3c1df
+2040738b
+5800e5e9
+2040738c
+18422800
+78547c00
+20407379
+1a820400
+78347c00
+20207379
+18007208
+e8c08000
+2f200201
+20347380
+2020f381
+9840fe00
+20207382
+2020f37e
+9842fe00
+e0a08000
+184c8400
+c200737a
+20600000
+68030596
+60030056
+e8c30000
+e0a30000
+20600000
+184d0400
+18500400
+98418400
+20600000
+2020738f
+4770403c
+2040742b
+d8a04419
+20207497
+d8a0443a
+2034f397
+d8a0042f
+18c22200
+20407ebf
+20407440
+d8c0442a
+202074b0
+da20042f
+2034f39f
+da20443a
+1a220a00
+2040630c
+20207440
+d8c044aa
+20407486
+d8c04419
+20407487
+18006c38
+18006c00
+2040741d
+d8a0047c
+20207497
+18007e49
+202073ae
+18007e01
+18007000
+184d5e00
+9de1de00
+1f00f001
+184cde00
+1df15e00
+68014411
+1ff07e00
+9de1de00
+1f00f001
+e8c20000
+98005e00
+1f00f001
+e8c10000
+1a30de00
+1df05e00
+9de1de00
+1f00f001
+20600000
+1a608c01
+e8c08000
+98002200
+204073ab
+2040741f
+18007000
+ea608000
+1fe17e03
+1ff05e00
+79205e08
+2040748f
+20407422
+1a227200
+1a608c02
+2040746e
+20407478
+20407422
+1f227e00
+203a73d5
+202073d0
+1800700c
+1de27e00
+60020417
+20600000
+1a20a201
+204073ad
+1a620c00
+20407482
+20407425
+2040749e
+1a60a610
+1a40a5f0
+202173d9
+20600000
+4770c03c
+da6043dc
+680ac403
+204073c1
+18007008
+98005e00
+18002200
+204073ad
+20407425
+da6043de
+6800c3dd
+1fe0a5ff
+9a608a00
+1800700c
+1de27e00
+e0a20000
+204073d9
+6800c3dd
+1fe0fe04
+6000c3dd
+680ac403
+18408401
+600ac403
+20600000
+4771403c
+680082da
+1fe67c14
+202173ff
+da6002db
+1fe0a5ff
+1fe0fffc
+600082da
+9a608c00
+e8c20000
+18007008
+98005e00
+18002200
+680ac408
+204073ad
+20407425
+1800700c
+1de27e00
+6002041b
+204073d9
+da6002d9
+204073c1
+680a041b
+98467e00
+247a0000
+6802440d
+98467e00
+207a0000
+600a440d
+6802c408
+1fe0fe01
+6002c408
+18007e00
+20600000
+243bf41d
+20600000
+18006c30
+18006c00
+2020741d
+18006c32
+18006c02
+2020741d
+18006c34
+18006c04
+2020741d
+18006c01
+18006c00
+20600000
+18007000
+6802042f
+98005e00
+1f00f001
+e8c20000
+98005e00
+1f00f001
+6802443a
+98005e00
+1f00f001
+e8c20000
+98005e00
+1f00f001
+20407492
+1f00f1fc
+680244c7
+1fe25e00
+1f00f004
+18006c38
+18006c08
+2020741d
+4771c03c
+680344a0
+680b044f
+2034f446
+6803044f
+680b44a0
+18007008
+18425e00
+1f00f001
+184f5e00
+1ff07e00
+9de1de00
+1f00f001
+1fef5e00
+1f00f001
+18005e00
+18007e00
+6800c48e
+6808c485
+2434f456
+6800c495
+6808c48e
+6000c44a
+6008c44b
+18007000
+da40444a
+18007204
+ea220000
+ea4a0000
+9842de00
+1f00f001
+1a20a204
+1a40a404
+c200745b
+20407492
+1f00f1fc
+680244c7
+1fe25e00
+1f00f004
+18006c38
+18006c0c
+2040741d
+20407491
+18006c3a
+18006c08
+2020741d
+2f200600
+20608000
+18c27e00
+9f208a00
+18007e00
+e0a08000
+1f20f201
+2f200600
+20608000
+20207473
+18007000
+1f227e00
+203a747d
+e8c20000
+1f20f3fc
+98005e00
+1f00f001
+2f001e04
+20608000
+20207479
+18007008
+20207487
+18007004
+20207487
+18007000
+18007204
+e8c20000
+98005e00
+1f00f001
+c2007488
+20600000
+d8c0047c
+20207484
+18007204
+20207494
+18007000
+18007204
+18005e00
+1f00f001
+c2007493
+20600000
+1800700c
+18007204
+1de27e00
+e0a20000
+1f00f001
+c2007499
+20600000
+1800700c
+1a620a00
+1a40f201
+1f267c0f
+202174a4
+18007210
+1de27e00
+1f267c03
+202174ac
+e0a20000
+1f20f3fc
+20628000
+1f00f001
+202074a4
+e0a08000
+1fecfe00
+c20074ac
+20600000
+1800700c
+18007204
+e8c20000
+9de67c00
+24628000
+1f00f001
+c20074b2
+18007c00
+20600000
+68108050
+793ffe00
+60108050
+20600000
+68108050
+79207e00
+60108050
+20600000
+d8a00886
+3803ffff
+3807ffff
+380bffff
+380ffbff
+e0a48000
+3803ffff
+3807ffff
+380bffff
+380fffff
+e0a48000
+3803ffff
+3807ffff
+380bcfff
+380fffff
+e0a48000
+3803ffff
+3807ffff
+380bffef
+380fffff
+e0a48000
+3803ffff
+3807ffff
+380bffff
+380fffff
+e0a48000
+3803ffff
+38066c7f
+3808146b
+380f7bb3
+e0a48000
+3801feb8
+38050c12
+380ab722
+380e9fa6
+e0a48000
+3800e70f
+38056720
+3808519e
+380d9084
+e0a48000
+38031012
+380760bf
+380bf0af
+380c03d3
+e0a48000
+3803a188
+38043ad0
+380bcbf2
+380e43d9
+e0a48000
+3802b030
+38076a03
+38091188
+380de520
+e0a48000
+3803a11e
+3804fe5d
+3808dd57
+380dac93
+e0a48000
+380011ed
+380618c4
+38088da7
+380e57ff
+e0a48000
+3803192b
+38074641
+3809be0c
+380f66ad
+e0a48000
+38001f83
+38055a23
+380bf9b0
+380c3949
+e0a48000
+38013a51
+380553fd
+380b372a
+380cf1bb
+e0a48000
+3803ae85
+3805eed9
+38089e66
+380c01a8
+e0a40000
+20600000
+d8a0091e
+3803ffff
+3807ffff
+380bffff
+380fffff
+e0a48000
+3803ffff
+3804003f
+38080000
+380c0000
+e0a48000
+38000000
+38040000
+38081000
+380c0000
+e0a48000
+3803ff00
+3807ffff
+380bffcf
+380fffff
+e0a48000
+3803ffff
+3807ffff
+380bffff
+380c03ff
+e0a48000
+38000000
+38040000
+38080000
+380c0000
+e0a48000
+38010000
+38040000
+380bf000
+380fffff
+e0a48000
+380296ff
+38062630
+380b945d
+380fd284
+e0a48000
+380333a0
+38044b7a
+380837d8
+380fc9dc
+e0a48000
+3803a440
+3805b958
+380b8bce
+380d091f
+e0a48000
+3802e12c
+3805f47c
+380b56b1
+380efd47
+e0a48000
+38006837
+3806ed90
+3809ecec
+380dacc5
+e0a48000
+38023357
+38058af3
+3808f9e1
+380d29f0
+e0a48000
+3802e7eb
+3807e6e3
+380be1a7
+380d0b8b
+e0a48000
+38024fe3
+380420ef
+3809b5a6
+380cdc2f
+e0a48000
+38013860
+3806bd69
+3808391a
+380db222
+e0a48000
+20600000
+6800c65a
+243a757d
+20207a77
+4772403c
+6800c65a
+207a0000
+6800c5b1
+c1808000
+6800c4be
+207a0000
+6800c4c3
+c1018000
+68014682
+c280757b
+6800c4c0
+c0007a77
+20600000
+7044c000
+20600000
+4772c03c
+6800c65a
+203a612b
+20406124
+20407583
+2020766d
+58000000
+600409ae
+600209b6
+6003c65e
+20600000
+7009b001
+2020758d
+6800c5b1
+c000f68a
+20202a8c
+6800c5b1
+c000f590
+2020766d
+2040768a
+680089af
+247a0000
+7009ae03
+20600000
+204075b0
+da2009de
+d8a00866
+20407c79
+da2009be
+d8a00826
+20407c79
+da200826
+da4009be
+d8a00826
+20407be1
+da20093e
+da4009be
+d8a00846
+20407be1
+da200846
+da400826
+d8a00826
+20407c7d
+da200806
+da400826
+d8a00806
+20407c7d
+df200020
+da200866
+da400806
+20207f88
+da20097e
+d8a00806
+20407c79
+da20095e
+d8a00826
+20407c79
+da200826
+da40095e
+d8a00826
+20407be1
+da20093e
+da40095e
+d8a00846
+20407be1
+da200846
+da400826
+d8a00826
+20407c7d
+da200806
+da400826
+d8a00806
+20207c96
+204075e1
+da2009e6
+d8a00866
+204077a8
+da2009c6
+d8a00826
+204077a8
+da200826
+da4009c6
+d8a00826
+20407786
+da20089e
+da4009c6
+d8a00846
+20407786
+da200846
+da400826
+d8a00826
+20407755
+da200806
+da400826
+d8a00806
+20407755
+df200018
+da200866
+da400806
+20207f88
+da2008e6
+d8a00806
+204077a8
+da2008ce
+d8a00826
+204077a8
+da200826
+da4008ce
+d8a00826
+20407786
+da20089e
+da4008ce
+d8a00846
+20407786
+da200846
+da400826
+d8a00826
+20407755
+da200806
+da400826
+d8a00806
+20207758
+680089b2
+c0807615
+20407612
+d8a00a7e
+58000a2e
+e0a10000
+58004642
+e0a10000
+580009de
+e0a10000
+20207609
+d8a00a7e
+58000a3e
+e0a10000
+580009de
+e0a10000
+58004642
+e0a10000
+204079a0
+680089af
+c002760f
+7009b001
+7009ae05
+20600000
+7009af14
+2040758a
+202076d8
+d8a00a1e
+18000e08
+202076a2
+7009b001
+20600000
+4773403c
+d8a00727
+680340a0
+e0a30000
+68030040
+e0a30000
+6801c65e
+e0a18000
+20407a0d
+da200a4e
+da400a5e
+18000e04
+204076a7
+2420f631
+20407628
+70007d41
+202062f8
+680089af
+c004f62e
+7009ae0a
+7009b001
+70007c03
+20600000
+70007c03
+7009af15
+202076d8
+680089af
+c004f637
+7009ae00
+70007c04
+70007e05
+20600000
+70007c04
+7009af00
+20600000
+680089b3
+c000f63e
+7009af0a
+202076d8
+d8a00727
+68030040
+e0a30000
+680340a0
+e0a30000
+6801c65b
+e0a18000
+20407a24
+680089af
+c005764b
+7009ae0b
+7009b001
+20600000
+7009af0b
+7009b101
+20600000
+d8a00a7e
+68030040
+e0a30000
+680340a0
+e0a30000
+58000a2e
+e0a10000
+58000a3e
+e0a10000
+20207662
+7009ae0f
+d8a00a7e
+680340a0
+e0a30000
+68030040
+e0a30000
+58000a3e
+e0a10000
+58000a2e
+e0a10000
+d8a00727
+68030a7e
+e0a30000
+68030a84
+e0a30000
+204079d7
+7041bd01
+d8a041be
+d8c00a4e
+20407ebf
+202021c4
+4773c03c
+6800c5b1
+c1800000
+680089b2
+c1800000
+d8a04612
+18000e0b
+204076a2
+180a7e00
+1fe37e00
+e0a10000
+d8a006be
+d8c04612
+20407ebe
+d8a005e6
+d8c008ce
+20407ebc
+d8a00616
+20407ec5
+70061601
+20407a5d
+7009b201
+20600000
+d8a0462a
+d8c0062e
+20407ebc
+7045b101
+7009b200
+20600000
+4774403d
+680089b9
+c1800000
+680089b2
+c1800000
+d8a006be
+d8c04612
+20407ebe
+d8a005e6
+d8c009c6
+20407ebc
+d8a00616
+20407ec5
+70061601
+20407a5d
+7009b202
+20600000
+7009b301
+d8a00a06
+d8c0062e
+20407ebe
+7009b901
+7009b200
+20600000
+18e08fff
+24610000
+180a7e00
+e0a10000
+202076a2
+18e08fff
+242176b3
+ea220000
+1fe20400
+ea420000
+9842fe00
+2422f6b1
+1a20a204
+1a40a404
+202076a7
+7840fc00
+20600000
+7820fc00
+20600000
+4774c03d
+680089b0
+207a0000
+204062bc
+247a0000
+7009b000
+680089ae
+c001e1fd
+c002e21a
+c003e225
+c005e23a
+c0017588
+c00275f7
+c004f617
+c005763a
+c0067658
+20600000
+4775403d
+680089b1
+207a0000
+204062bc
+247a0000
+7009b100
+680089af
+c00961e0
+c009e1e5
+c001e1e9
+c0027602
+c00a61ed
+c003e1fb
+c005763a
+c005e239
+c004f617
+c00ae233
+20600000
+7009b101
+20600000
+7009b100
+20600000
+4775c03d
+6800c65a
+207a0000
+680089b2
+207a0000
+1fe0fe80
+600089b2
+c3838000
+680085e3
+203a76e7
+20207a68
+204078d3
+680089b2
+c000f684
+c001769b
+20600000
+1fe10e07
+1fe97e00
+98c08c00
+e8c08000
+afec0000
+20600000
+20407ebe
+20407ebe
+20207ebe
+e8c40000
+247a0000
+e8c40000
+247a0000
+e8c40000
+20600000
+ea220000
+98000400
+ea420000
+98467c00
+24628000
+1a20a204
+1a40a404
+c20076fb
+20600000
+18007206
+1a20a214
+1a40a414
+ea420000
+98000400
+ea220000
+98467e00
+24610000
+247a0000
+1a20a3fc
+1a40a5fc
+c2007707
+20600000
+18007206
+18002600
+ea220000
+98000400
+ea420000
+9840fe00
+9a60fe00
+e0a20000
+2feffe20
+7920a600
+1a20a204
+1a40a404
+c2007713
+20600000
+18007206
+18002600
+ea420000
+98000400
+ea220000
+98467e00
+9a667e00
+e0a20000
+2feffe20
+7920a600
+1a20a204
+1a40a404
+c2007721
+20600000
+18007206
+1a20a214
+18002600
+ea220000
+2feffe00
+7920a601
+1fe37e00
+2a6ffe00
+7920fe1f
+e2220000
+1a20a3fc
+1a632600
+c2007730
+20600000
+18007206
+18002600
+ea220000
+2feffe1f
+7920a601
+1fe3fe00
+2a6ffe00
+7920fe00
+e2220000
+1a20a204
+1a632600
+c200773d
+20600000
+2040773b
+2a6ffe00
+2020f751
+da400886
+1a222600
+1a20a3e8
+20407704
+24610000
+1a622200
+1a20a3e8
+da400886
+1a220a00
+2020771f
+20407711
+18a22200
+20207749
+2040771f
+2a6c0000
+20608000
+da400886
+18a0a3e8
+1a220a00
+20207711
+18a21600
+1a226000
+da400716
+1a420a00
+1a208c18
+e8c40000
+e0a40000
+e0a40000
+18007e00
+e0a40000
+19620a00
+20407755
+da400716
+1a420a00
+18007e00
+e0a40000
+1e008c20
+e8c40000
+e0a40000
+e0a40000
+19622200
+1a220a00
+20407755
+da400716
+1a420a00
+1e008c28
+e8c40000
+e0a40000
+e0a40000
+e0a40000
+19622200
+1a220a00
+20207755
+18007206
+e8c20000
+98005e00
+1f00f001
+c2007781
+20600000
+18a21600
+d8a006e6
+20407ec5
+d8a006e6
+1a220c00
+18007000
+20407780
+1a420c00
+20407780
+18002400
+18000400
+18002606
+e8a20000
+98002200
+1a427000
+1de27e00
+1a627000
+9deffe00
+9a20fe00
+9840fe00
+e0a20000
+1fef0400
+1a60a601
+2a61fe0c
+2420f792
+18427e00
+e0a20000
+18a08be8
+1a40a401
+2a41fe06
+2420f790
+da2006e6
+19620a00
+2020775f
+1a222400
+20207786
+1a226000
+1e022200
+ea208000
+2feffe00
+20608000
+2040772d
+ea408000
+2fec0000
+2020f7ba
+da200886
+1a420a00
+20407711
+ea408000
+9a60fe00
+e2408000
+1a40a5e8
+1a40a218
+18007207
+2040772f
+202077ab
+18a21600
+d8a00746
+20407ec5
+18007e00
+600206fe
+6002075e
+70074601
+d8a006e6
+20407ec5
+d8c00886
+d8a00716
+20407ebe
+1a220c00
+d8a0072e
+20407ebe
+d8c0072e
+204076f5
+203a77f6
+da20072e
+da400746
+204077aa
+da200716
+da4006e6
+204077aa
+da20072e
+da400716
+20407704
+202177e8
+da200716
+da40072e
+1a220a00
+2040771f
+da200746
+da4006e6
+1a420a00
+20407711
+ea208000
+9a60a600
+ea408000
+9a60fe00
+e2408000
+202077cd
+da20072e
+da400716
+1a220a00
+2040771f
+da2006e6
+da400746
+1a420a00
+20407711
+ea208000
+9a60a600
+ea408000
+9a60fe00
+e2408000
+202077cd
+d8a00746
+20407ec5
+680086fe
+60008746
+6000874e
+da200746
+da4006e6
+1a420a00
+20407755
+da200886
+da4006e6
+19620a00
+20207758
+da2006a6
+d8a0075e
+204077a8
+da20075e
+d8a00776
+204077a8
+da20089e
+da400776
+d8a00776
+20407786
+da200676
+d8a0075e
+204077a8
+d8c0075e
+d8a0072e
+20407ebe
+da20072e
+20407748
+da20075e
+da40072e
+d8a0075e
+20407755
+da20075e
+da400776
+d8a0075e
+20407755
+d8c00676
+d8a0072e
+20407ebe
+da20068e
+d8a00776
+204077a8
+da20072e
+20407748
+da20072e
+20407748
+da20072e
+da400776
+d8a0072e
+20407786
+da200776
+d8a00746
+204077a8
+da200746
+20407748
+da200746
+20407748
+da200746
+20407748
+d8c0068e
+d8a00776
+20407ebe
+da200776
+20407748
+da200776
+da4006a6
+d8a006a6
+20407786
+da20075e
+d8a00776
+204077a8
+da200776
+da40072e
+d8a00776
+20407758
+da200776
+da40072e
+d8a00676
+20407758
+da20072e
+da400676
+d8a00776
+20407758
+da200776
+da40075e
+d8a00776
+20407786
+da200776
+da400746
+d8a0068e
+20207758
+da200616
+d8a0078e
+204077a8
+da200676
+da40078e
+d8a00746
+20407786
+da200616
+da40078e
+d8a0078e
+20407786
+da20068e
+da40078e
+d8a0072e
+20407786
+da2006a6
+d8a0078e
+204077a8
+da2005e6
+da40078e
+d8a0075e
+20407786
+da2006a6
+da40078e
+d8a0078e
+20407786
+da2005fe
+da40078e
+d8a00776
+20407786
+da200746
+da40075e
+d8a0078e
+20407758
+da200746
+da40075e
+d8a00746
+20407755
+da20072e
+da400776
+d8a0075e
+20407758
+da20072e
+da400776
+d8a0072e
+20407755
+da20072e
+da40078e
+d8a0072e
+20407786
+da2006a6
+da400616
+d8a00776
+20407786
+da200776
+da40078e
+d8a006a6
+20407786
+da20078e
+d8a0078e
+204077a8
+da20078e
+da400746
+d8a00776
+20407786
+da20078e
+da40072e
+d8a0072e
+20407786
+da20075e
+d8a00676
+204077a8
+da200676
+da400776
+d8a00676
+20407758
+d8c00676
+d8a0078e
+20407ebe
+da20078e
+20407748
+da200776
+da40078e
+d8a00776
+20407758
+da200776
+da40075e
+d8a0075e
+20407786
+da20075e
+da40072e
+d8a0068e
+20407758
+da20068e
+da400886
+d8a0068e
+18002600
+6800868e
+2feffe00
+2040f711
+1a626000
+da20068e
+2040772d
+680086a5
+2e0ffe00
+7920fe07
+600086a5
+20600000
+680085e3
+1fe0ffff
+24610000
+600085e3
+680085e2
+205a7803
+680085e3
+d8c006be
+204076ec
+2020f8c0
+680085e2
+243a78ce
+20407854
+202078c0
+7005e200
+d8c005e6
+d8a00676
+204076f2
+202078c0
+da2006a6
+d8a00776
+204077be
+da200776
+d8a0072e
+204077a8
+da200676
+da40072e
+d8a0062e
+20407786
+da200776
+da40072e
+d8a0075e
+20407786
+da20068e
+da40075e
+d8a00646
+20207786
+e8c20000
+18002204
+18a08a03
+e0a08000
+1fecfe00
+18a08bfe
+1a20a3ff
+2422f8e8
+18a08a05
+c20078e5
+20600000
+18ebfe00
+99608c00
+e8c20000
+20600000
+18006010
+d96005e6
+1e008ff9
+204078f0
+98000400
+1e008ff0
+204078f0
+98408400
+1e008ffe
+204078f0
+1fee7e01
+98408400
+1e008ff1
+204078f0
+1fee7e00
+98408400
+1e0bfe00
+99608a00
+e0aa0000
+1e00e001
+2e01fe40
+2420f8f6
+20600000
+d8c008fe
+18007007
+e8c20000
+98005e00
+1f00f1ff
+2021790d
+20600000
+4776403d
+204078f4
+d8a006e6
+18007000
+1de27e00
+e0a20000
+1f00f001
+2f01fe08
+2420f916
+204074b9
+d9608700
+de0005e6
+18007240
+ee0a0000
+e9620000
+19609604
+1e00e004
+9840fe00
+18007007
+9de08400
+18007004
+1dee7e03
+98408400
+18007005
+1de27e00
+18007006
+9de2fe00
+18007004
+9de17e00
+18007006
+9de2fe00
+98408400
+18007007
+18425e00
+18007003
+1de27e00
+9840de00
+18007000
+1de27e00
+18007001
+9de10400
+9de1fe00
+18007002
+9de17e00
+98418400
+18007000
+1dee7e02
+9840fe00
+18007007
+9de0de00
+980efc00
+c200791f
+d8c006e6
+18007000
+e8c20000
+9de0de00
+1f00f001
+2f01fe08
+2420f948
+202074bd
+d8a00a3e
+18007007
+1de27e00
+e0a20000
+1f00f1ff
+20217950
+20600000
+d8a005e6
+18c08dfc
+1f262210
+e8c20000
+9842fe00
+e0a20000
+18c08df8
+c2007958
+1a227200
+18427e00
+e0a20000
+c200795f
+20600000
+20407967
+2040794e
+2020798d
+20407967
+2020798d
+d8c009de
+d8a005e6
+18007206
+20407a71
+d8c04642
+18007206
+20407a71
+d8c00a3e
+20407a70
+2040790b
+20407912
+d8c00a2e
+d8a005e6
+20207984
+d8c04642
+d8a005e6
+18007206
+20407a71
+d8c009de
+18007206
+20407a71
+d8c00a2e
+20407a70
+2040790b
+20407912
+d8c00a3e
+d8a005e6
+20407984
+2020798d
+20407a70
+58800000
+1fed7e00
+e0a20000
+18007205
+20407ec6
+58000280
+e0a20000
+20207912
+68020a3e
+da2003e8
+9a26fc00
+20407f86
+18077e00
+600209ba
+1807fe00
+da2003e8
+9a26fc00
+20407f86
+18077e00
+da2003e8
+9a2ffe00
+680a09ba
+9840fe00
+600209ba
+20600000
+70466400
+202079a2
+6800c662
+c081799e
+4776c03d
+58363636
+1fed0400
+18418436
+68010a7e
+1fe20c00
+18007204
+20407955
+2040790b
+20407912
+68010a80
+1fe20c00
+d8a005e6
+18007206
+20407a71
+68010a82
+1fe20c00
+18007206
+20407a71
+58800000
+e0a18000
+6800c664
+e0a08000
+18007e00
+e0a40000
+58000388
+e0a20000
+20407912
+2040794e
+d8c00a3e
+d8a00706
+20407ebd
+585c5c5c
+1fed0400
+1841845c
+68010a7e
+1fe20c00
+18007204
+20407955
+2040790b
+20407912
+d8c00726
+d8a005e6
+18007208
+20407a71
+58800000
+1fed7e00
+e0a20000
+20407ec5
+58000300
+e0a20000
+20407912
+2020794e
+58363636
+1fed0400
+18418436
+d8c00a1e
+18007206
+20407955
+2040790b
+20407912
+68010a8a
+1fe20c00
+d8a005e6
+20407a70
+68010a8c
+1fe20c00
+20407a70
+5862746c
+1fed7e00
+1fe1fe6b
+e0a20000
+d8c00733
+18007203
+20407a71
+58800000
+1fed7e00
+e0a20000
+18007e00
+e0a40000
+58000380
+e0a20000
+20407912
+2040794e
+d8c00a3e
+d8a00706
+20407ebd
+585c5c5c
+1fed0400
+1841845c
+d8c00a1e
+18007206
+20407955
+2040790b
+20407912
+d8c00726
+d8a005e6
+18007208
+20407a71
+58800000
+1fed7e00
+e0a20000
+20407ec5
+58000300
+e0a20000
+20407912
+2020794e
+6800c662
+c0817a1e
+4777403d
+58363636
+1fed0400
+18418436
+d8c00a1e
+18007206
+20407955
+2040790b
+20407912
+d8c00a3e
+d8a005e6
+20407a70
+d8c00a2e
+20407a70
+20207a33
+58000000
+6002468a
+20207a0f
+58000000
+6002468a
+20207a26
+6800c662
+c0817a21
+58363636
+1fed0400
+18418436
+d8c00a1e
+18007206
+20407955
+2040790b
+20407912
+d8c00a2e
+d8a005e6
+20407a70
+d8c00a3e
+20407a70
+58000000
+e0a40000
+e0a20000
+6802468a
+e0a20000
+18a20400
+70072680
+18420a00
+d8c00736
+20407a70
+20407912
+d8a005e6
+18007207
+20407ec6
+e0a20000
+580003f8
+e0a20000
+20407912
+2040794e
+d8c00a3e
+d8a00706
+20407ebd
+585c5c5c
+1fed0400
+1841845c
+d8c00a1e
+18007206
+20407955
+2040790b
+20407912
+d8c00726
+d8a005e6
+18007208
+20407a71
+58800000
+1fed7e00
+e0a20000
+20407ec5
+58000300
+e0a20000
+20407912
+2020794e
+7005e3c0
+680085e3
+207a0000
+1fe0ffff
+600085e3
+d8c006be
+204076ec
+2020fa5e
+d8c005e6
+d8a00676
+202076f2
+20407803
+680085e3
+1fe0ffff
+600085e3
+d8c006be
+204076ec
+20608000
+20207854
+18007204
+18c08dfc
+e8c20000
+e0a20000
+18c08df8
+c2007a72
+20600000
+4777c03d
+6800c4be
+203a5af0
+20405aec
+20407583
+20207a7d
+6800c4c3
+c1800000
+6800c4c0
+c1800000
+d8a045b2
+18000e0f
+204076a2
+180a7e00
+1fe37e00
+e0a10000
+d8a00766
+d8c045b2
+20407ebd
+d8a00646
+d8c0095e
+20407eb3
+d8a00686
+20407ed0
+70068601
+20407ac7
+7044c003
+20600000
+d8a045d2
+d8c006a6
+20407eb3
+7044c303
+7044c000
+20600000
+680089b9
+c1800000
+6800c4c0
+c1800000
+d8a00766
+d8c045b2
+20407ebd
+d8a00646
+d8c009be
+20407eb3
+d8a00686
+20407ed0
+70068601
+20407ac7
+7044c004
+20600000
+d8a009fe
+d8c006a6
+20407ebd
+7009b903
+7044c000
+20600000
+6800c4be
+207a0000
+6800c4c0
+207a0000
+1fe0fe80
+6000c4c0
+c3838000
+680105e3
+203a7ab9
+20207abf
+4778403e
+20407ad4
+6800c4c0
+c001fa93
+c0027aa9
+20600000
+20407ae6
+680105e3
+1fe0ffff
+600105e3
+d8c00766
+204076ec
+20608000
+20207b37
+4778c03e
+58000100
+600105e3
+680105e3
+207a0000
+1fe0ffff
+600105e3
+d8c00766
+204076ec
+2020faca
+d8c00646
+d8a00706
+20207eb2
+da200746
+d8a00846
+20407ba3
+da200846
+d8a007e6
+20407c79
+da200706
+da4007e6
+d8a006a6
+20407be1
+da200846
+da4007e6
+d8a00826
+20407be1
+da200726
+da400826
+d8a006c6
+20207be1
+da200746
+d8a00826
+20407c79
+da200826
+d8a00846
+20407c79
+da20093e
+da400846
+d8a00846
+20407be1
+da200706
+d8a00826
+20407c79
+d8c00826
+d8a007e6
+20407ebd
+da2007e6
+20407c80
+da200826
+da4007e6
+d8a00826
+20407c7d
+da200826
+da400846
+d8a00826
+20407c7d
+d8c00706
+d8a007e6
+20407ebd
+da200726
+d8a00846
+20407c79
+da2007e6
+20407c80
+da2007e6
+20407c80
+da2007e6
+da400846
+d8a007e6
+20407be1
+da200846
+d8a00806
+20407c79
+da200806
+20407c80
+da200806
+20407c80
+da200806
+20407c80
+d8c00726
+d8a00846
+20407ebd
+da200846
+20407c80
+da200846
+da400746
+d8a00746
+20407be1
+da200826
+d8a00846
+20407c79
+da200846
+da4007e6
+d8a00846
+20407c96
+da200846
+da4007e6
+d8a00706
+20407c96
+da2007e6
+da400706
+d8a00846
+20407c96
+da200846
+da400826
+d8a00846
+20407be1
+da200846
+da400806
+d8a00726
+20207c96
+da200686
+d8a00866
+20407c79
+da200706
+da400866
+d8a00806
+20407be1
+da200686
+da400866
+d8a00866
+20407be1
+da200726
+da400866
+d8a007e6
+20407be1
+da200746
+d8a00866
+20407c79
+da200646
+da400866
+d8a00826
+20407be1
+da200746
+da400866
+d8a00866
+20407be1
+da200666
+da400866
+d8a00846
+20407be1
+da400806
+da200826
+d8a00866
+20407c96
+da200806
+da400826
+d8a00806
+20407c7d
+da4007e6
+da200846
+d8a00826
+20407c96
+da2007e6
+da400846
+d8a007e6
+20407c7d
+da2007e6
+da400866
+d8a007e6
+20407be1
+da200746
+da400686
+d8a00846
+20407be1
+da200846
+da400866
+d8a00746
+20407be1
+da200866
+d8a00866
+20407c79
+da200866
+da400806
+d8a00846
+20407be1
+da200866
+da4007e6
+d8a007e6
+20407be1
+da200826
+d8a00706
+20407c79
+da200706
+da400846
+d8a00706
+20407c96
+d8c00706
+d8a00866
+20407ebd
+da200866
+20407c80
+da200846
+da400866
+d8a00846
+20407c96
+da200846
+da400826
+d8a00826
+20407be1
+da200826
+da4007e6
+d8a00726
+20407c96
+da200726
+da40091e
+d8a00726
+18002600
+68008726
+2feffe00
+2040fc7b
+1a626000
+da200726
+20407cab
+68008745
+2e0ffe00
+7920fe07
+60008745
+20600000
+18a21600
+d8a00806
+20407ed0
+18007e00
+60020826
+70080601
+d8a00786
+20407ed2
+d8c0091e
+d8a007c6
+20407ebd
+1a220c00
+d8a007e6
+20407ebd
+d8c007e6
+20407cb5
+203a7bda
+da2007e6
+da400806
+20407cb8
+da2007c6
+da400786
+20407cb8
+da2007e6
+da4007c6
+20407cb1
+20217bcc
+da2007c6
+da4007e6
+1a220a00
+20407ca9
+da200806
+da400786
+1a420a00
+20407c7b
+ea208000
+9a60a600
+ea408000
+9a60fe00
+e2408000
+20207bb1
+da2007e6
+da4007c6
+1a220a00
+20407ca9
+da200786
+da400806
+1a420a00
+20407c7b
+ea208000
+9a60a600
+ea408000
+9a60fe00
+e2408000
+20207bb1
+da200786
+19620a00
+20407c0a
+da20091e
+19622400
+19620a00
+20207c96
+18a21600
+18007000
+d8a00786
+20407ed2
+d8a00ad2
+20407ed2
+1a220c00
+700ad200
+58000000
+20407c73
+1a420c00
+20407c77
+18000e00
+d8a00786
+d8400ad2
+18e22400
+1a4bfe00
+9840a400
+18000400
+18002600
+e8a20000
+98002200
+ea420000
+1a627000
+9deffe00
+9a20fe00
+9840fe00
+e0a20000
+1fef0400
+1a60a601
+2a61fe08
+2420fbf5
+18427e00
+e0a20000
+18a08be0
+18e08e01
+28e1fe08
+2420fbef
+da200786
+19620a00
+20207c0a
+4779403e
+18a21600
+1a226000
+da4007c6
+1a420a00
+20407ecd
+e0a40000
+1a208c2c
+20407eb9
+20407eb5
+1a422200
+20407c80
+da4007c6
+1e022200
+19620a00
+20407c7d
+da4007c6
+1a420a00
+20407ecd
+e0a40000
+1e008c30
+20407ebf
+20407ecd
+1a422200
+20407c80
+da4007c6
+19622200
+1a220a00
+20407c7d
+da4007c6
+1a420a00
+1e008c20
+20407eb5
+20407ecd
+e0a40000
+1e008c38
+20407eb9
+19622200
+1a220a00
+20407c7d
+da4007c6
+1a420a00
+1e008c24
+20407eb5
+1e008c34
+20407eb5
+1e008c34
+20407eb6
+1e008c20
+20407eb6
+19622200
+1a220a00
+20407c7d
+da4007c6
+1a420a00
+1e008c2c
+20407eb5
+20407ecd
+e0a40000
+1e008c20
+20407eb6
+1e008c28
+20407eb6
+19622200
+1a220a00
+20407c96
+da4007c6
+1a420a00
+1e008c30
+20407eb9
+20407eb9
+18007e00
+e0a40000
+1e008c24
+20407eb6
+1e008c2c
+20407eb6
+19622200
+1a220a00
+20407c96
+da4007c6
+1a420a00
+1e008c34
+20407eb5
+1e008c20
+20407eb5
+20407ecd
+1e008c30
+20407eb6
+19622200
+1a220a00
+20407c96
+da4007c6
+1a420a00
+1e008c38
+20407eb9
+20407ecd
+1e008c24
+20407eb5
+20407ecd
+1e008c34
+20407eb6
+19622200
+1a220a00
+20207c96
+18007220
+d8a00ad2
+98a08a00
+20207f01
+18007208
+20207781
+1a222400
+20207be1
+18007208
+20207712
+20407c7b
+18a22200
+20207c81
+20407cae
+2a6ffe00
+2020fc8a
+da40091e
+1a222600
+1a20a3e0
+20407cb1
+24610000
+1a622200
+20207c92
+20407c92
+1a222600
+1a20a3e0
+da40091e
+20407cb1
+24610000
+1a622200
+20207c92
+1a20a3e0
+da40091e
+1a220a00
+20207ca9
+20407ca9
+2020fca0
+18a0a3e0
+da40091e
+20407cb1
+24610000
+da40091e
+18a0a3e0
+1a220a00
+20207ca9
+18a0a3e0
+da40091e
+1a220a00
+20407c7b
+20608000
+18a0a3e0
+da40091e
+1a220a00
+20207c7b
+18007208
+20207720
+18007208
+1a20a21c
+2020772f
+18007208
+18002600
+2020773d
+18007208
+1a20a21c
+1a40a41c
+20207707
+e8c40000
+247a0000
+202076f5
+1a226000
+1e022200
+ea208000
+2feffe00
+20608000
+20407cab
+ea408000
+2fec0000
+2020fcc8
+da20091e
+1a420a00
+20407c7b
+ea408000
+9a60fe00
+e2408000
+1a40a5e0
+1a40a220
+18007209
+2040772f
+20207cb9
+20402c65
+20758000
+20407cd3
+20407d75
+20207d08
+20407d29
+20207d64
+6800c686
+c17f8000
+98000400
+2040680e
+6808c686
+20406825
+20000064
+6808c686
+204067fb
+20207cdd
+4779c03e
+6800c686
+c17f8000
+1fe20400
+2040681d
+2420fcef
+20407cf9
+68014682
+79207e0c
+60014682
+6800c679
+c1000000
+70467900
+6800c685
+6000c678
+20407d00
+700a992c
+20207d86
+68014682
+793ffe0c
+60014682
+6800c679
+c1008000
+70467901
+70467800
+20407d02
+700a992d
+20207d86
+6800c678
+207a0000
+1fe0ffff
+6000c678
+247a0000
+700a9910
+20207d86
+d8e00007
+20202c32
+d8e00007
+20202c36
+6801421b
+1a2fa40b
+9a40a400
+20600000
+6800c21a
+207a0000
+1fe27200
+6801421b
+1fe22400
+1a40a602
+ea688000
+2040680e
+20407d32
+1a40a40b
+c2007d0d
+20600000
+20407d04
+58000002
+e2408000
+20407d5e
+20207d35
+20407d04
+58000003
+e2408000
+20407d5e
+20207d32
+20407d04
+58000001
+e2408000
+580000ff
+e0a08000
+20207d32
+20407d04
+df20000b
+1a620c00
+1a420a00
+20207ef4
+6800c21a
+207a0000
+da200000
+20407d38
+1a20a201
+6800c21a
+9a267c00
+20628000
+20207d2c
+1a40a602
+ea688000
+20206825
+1a40a602
+ea688000
+20206829
+1a208e0b
+20407f16
+247a0000
+20407d04
+ea408000
+c0017d35
+c001fd32
+c0007d32
+c002fd4c
+20407d35
+1a40a607
+20407e7c
+ea610000
+20407f9c
+20407e8c
+58000005
+e2408000
+1a40a603
+ea610000
+20207d5c
+20407d32
+1a40a609
+20407e7c
+ea610000
+20407f9c
+20407e8c
+1a40a601
+ea608000
+c07ffd58
+1fe0ffff
+e2608000
+203a7d19
+58000004
+e2408000
+1a40a605
+ea610000
+1a208e0b
+20207f08
+58000000
+20207d5c
+58001000
+1ff07e00
+9a40a400
+20600000
+477a403e
+da200000
+680a467a
+1c422400
+1a427e00
+98467c00
+24417d60
+1a427e00
+184084a0
+184084a0
+98467c00
+24217d78
+1a20a201
+1a217e0f
+243a7d6b
+da200000
+20407d7f
+1c427e00
+6002467a
+20600000
+477ac03e
+1a227e00
+207a0000
+18408560
+18408560
+793f841c
+600a467a
+2020335f
+70466601
+6800c667
+243a7d81
+20600000
+70466600
+20600000
+477b403e
+20407d80
+1a227e00
+60020a91
+da204668
+20407fb8
+68020a91
+1fe22200
+20207d84
+477bc03e
+20407d80
+1a227e00
+60020a91
+da204670
+20407fb8
+68020a91
+1fe22200
+20207d84
+58000000
+60044670
+60044668
+20600000
+477c403f
+6800c1ce
+247a0000
+da204670
+20407fd0
+207a0000
+700a9000
+20407da7
+68008a90
+203a7d9c
+20600000
+20407d80
+da204670
+20407fc4
+1fe20400
+20407d84
+477cc03f
+18427e00
+207a0000
+c000fddd
+c0017de2
+c001fde8
+c003fded
+c0047dee
+c004fdef
+c005fdf2
+c0067df3
+c006fdf4
+c0077dfa
+c007fdff
+c0087e05
+c009fe0f
+c00a7e11
+c00afe13
+c00b7e15
+c00bfe18
+c00c7e1a
+c00cfe1d
+c00dfe25
+c00f7e2f
+60008a99
+477d403f
+204062bc
+243a7ddb
+68008a99
+c584fdd6
+c0027dea
+c002cd17
+c0034d26
+c0057df0
+c008fe0a
+c0097e0e
+c00efe26
+c00fe7cc
+c01067d0
+c010fe31
+c012e70b
+20600000
+60008a99
+20402252
+2022fddb
+2040225a
+24628000
+700a9001
+20207d8f
+68014682
+79207e06
+60014682
+70409303
+20600000
+70468000
+70409300
+68014682
+793ffe06
+60014682
+20600000
+7041ce05
+20600000
+70007c07
+7004ca13
+20600000
+20600000
+20600000
+20600000
+7004d402
+20204d0a
+20600000
+20600000
+70436e01
+70448400
+68014682
+79207e0b
+60014682
+20600000
+68014682
+793ffe0b
+60014682
+70436e00
+20600000
+70436e01
+70448401
+68014682
+79207e0b
+60014682
+20600000
+68014682
+793ffe0b
+60014682
+70436e00
+20600000
+58000014
+6001046d
+600144ba
+20205c92
+20205abf
+da200000
+20207d19
+da200000
+20207d14
+da200000
+20207d1e
+70436901
+7041ce1b
+20600000
+70436901
+20600000
+70436900
+7041ce00
+20600000
+680141eb
+20407f9c
+6800c686
+c07ffe23
+1fe20400
+204067fb
+20407d98
+20202b1f
+20205b02
+70007c34
+79200003
+24748000
+70455b00
+70007c13
+6800816d
+793ffe02
+6000816d
+20600000
+18000e03
+20207f07
+204062f8
+70007d41
+20205f9d
+6800c682
+c4060000
+c4038000
+20207e2f
+68014218
+1fe08a02
+58000000
+e0a18000
+20600000
+20407fe9
+20407e69
+207a0000
+68014218
+1fe0a402
+ea488000
+18408401
+e2488000
+efe88000
+18427200
+1fe0a404
+ea408000
+984ffe00
+98c08a00
+1a220c00
+20407f01
+20407e6d
+1fe0ffff
+ea488000
+18408401
+98410400
+e2488000
+20207fe7
+20407fe9
+20407e65
+207a0000
+68014218
+1fe0a402
+ea488000
+184085ff
+e2488000
+efe88000
+18427200
+1fe0a403
+ea408000
+984ffe00
+98c08c00
+18c08c01
+1a220a00
+20207e4c
+68014218
+1fe08c02
+e8c08000
+20600000
+20407e6d
+e8c88000
+98467e00
+20600000
+68014218
+1fe08c01
+e8c08000
+20600000
+1f267c00
+20628000
+1fe37e00
+c2007e73
+20600000
+18007e01
+1f267c00
+20628000
+1fe3fe00
+c2007e79
+20600000
+18a27e00
+60010abb
+600c0aa2
+19627e00
+60020aaa
+20407e85
+18c27e00
+60010ab9
+20600000
+1a227e00
+60020aae
+1a427e00
+60020ab2
+1a627e00
+60018ab6
+20600000
+680c0aa2
+68020aaa
+98001600
+20407e95
+68010abb
+98000a00
+68010ab9
+98000c00
+20600000
+68020aae
+98002200
+68020ab2
+98002400
+68018ab6
+98002600
+20600000
+68010abb
+1fe20a00
+20600000
+68010ab9
+1fe20c00
+20600000
+18a27e00
+60010abb
+20600000
+18c27e00
+60010ab9
+20600000
+18a27e00
+60010a97
+18c27e00
+60010a95
+20600000
+68010a97
+1fe20a00
+68010a95
+1fe20c00
+20600000
+20407ebd
+20407ebd
+20207ebd
+20407eb9
+e8c20000
+e0a20000
+20600000
+e8c40000
+e0a40000
+20600000
+20407ebf
+20407eb9
+20407eb9
+20407eb9
+20207eb9
+df20000a
+20002ee0
+c2007ec2
+20600000
+18007203
+18007e00
+e0a40000
+c2007ec7
+20600000
+18007e00
+e0a40000
+20600000
+18007e00
+e0a20000
+20600000
+18007204
+20207ec6
+18007208
+20207ec6
+1f227e00
+207a0000
+58000000
+e0a08000
+c2007ed7
+20600000
+df200020
+d8a00ac2
+20207ed4
+ea620000
+ea2a0000
+9842fe00
+e0a20000
+1a20a204
+1a60a604
+c2007edd
+20600000
+477dc03f
+1f227e00
+1fe67c01
+20610000
+9a20a400
+1a40a5ff
+1f237200
+ea288000
+ea408000
+e2208000
+e2488000
+1a40a5ff
+1a20a201
+c2007eec
+20600000
+1f227e00
+207a0000
+1f20f3f8
+20417eb9
+20628000
+20217ef6
+1f20f208
+1f20f3fc
+20417eb6
+20628000
+20217efb
+1f20f204
+20207f01
+1f227e00
+207a0000
+e8c08000
+e0a08000
+c2007f03
+20600000
+58000000
+1c430400
+600a4094
+d8a0419d
+98000400
+18e3fe00
+98a08a00
+e0a90000
+477e403f
+20600000
+d9600800
+19701600
+9960fe00
+20600000
+d8e00000
+477ec03f
+680a4094
+1c437e00
+60024094
+98467c00
+24417f11
+98461600
+19620400
+d8c0419d
+18c20a00
+df200010
+e8c10000
+98467e00
+20217f25
+18007e00
+e0a10000
+c2007f21
+d8c0419d
+18e3fe00
+98c08c00
+e8c10000
+20600000
+98408400
+18427200
+58000ea6
+9f267e00
+20610000
+1fe67e00
+18510400
+18408401
+18500400
+98418400
+20600000
+20407f39
+20207f43
+78547c00
+98467e00
+20217f3e
+78347c00
+1fe67e00
+c4078000
+d85f0ea6
+9840fe00
+793ffe40
+20600000
+98000c00
+1ff17e00
+d8400ea6
+984ffe00
+98c0fe00
+20600000
+1fed7e00
+1ff27e00
+6809c16f
+9846fc00
+20407f86
+18078400
+20600000
+d8400ea6
+9846fc00
+20407f86
+1807fe00
+1ff07e00
+18070400
+98418400
+20600000
+d8400000
+18422600
+e8608000
+20407f64
+1a620400
+20407f95
+da40000a
+9a4ffe00
+9840fe00
+1fe20400
+c2007f59
+20600000
+d840003a
+98467c00
+24217f6d
+d8400061
+98467c00
+20217f70
+d8400037
+98467e00
+20600000
+d8400030
+98467e00
+20600000
+d8400057
+98467e00
+20600000
+18426000
+580001ff
+18002400
+1fe92200
+1a232200
+9a22a200
+2a2ffe00
+7920fe09
+18430400
+2feffe00
+79208407
+1fe37e00
+1a40a401
+2a400e00
+2420ff76
+e0a88000
+c2007f76
+1e020400
+20600000
+207a8000
+20207f86
+ea208000
+ea488000
+98467c00
+24628000
+1a20a201
+1a40a401
+c2007f88
+18007c00
+20600000
+98467c00
+24610000
+18427e00
+20600000
+9840fe00
+98460400
+98467e00
+20600000
+df200200
+d8a04000
+20207ec6
+207a0000
+1fe27a00
+6811010e
+243a7f9e
+20600000
+70820301
+20600000
+60110205
+68108203
+79207e04
+60108203
+20600000
+60110207
+68108203
+79207e06
+60108203
+20600000
+60110205
+70820330
+20600000
+68108043
+793ffe04
+60108043
+20600000
+6811010e
+d8400200
+98467c00
+20600000
+477f403f
+ea2c0000
+18417eff
+243a7fbe
+184cfe00
+e2240000
+1a20a207
+ea208000
+243a2a8c
+68008a99
+e2208000
+20600000
+477fc03f
+df200008
+ea240000
+207a0000
+ea208000
+243a7fcd
+1a20a201
+c2007fc8
+20202a8c
+d8400000
+e2288000
+20600000
+ea240000
+20600000
+ea208000
+20600000
+ea210000
+20600000
+d8400000
+68008006
+c2007fd7
+18408401
+c2007fd7
+18427e00
+20600000
+98467c00
+24610000
+18427e00
+20600000
+18007dff
+20600000
+18007c01
+20600000
+18007c00
+20600000
+78347c00
+20600000
+78547c00
+20600000
+78367c00
+20600000
+78567c00
+20600000
+58000001
+20600000
+58000000
+20600000
+1f227e00
+207a0000
+18c27e00
+9f20fe00
+1fe0ffff
+1fe20c00
+e8c08000
+18c08dfe
+e0a08000
+c2007ff9
+20600000
+c0000005
+c0008012
+c0010028
+20600000
+6800800e
+1fe0fe01
+6000800e
+20402435
+7920002c
+204022f2
+202c0010
+793f802c
+20402455
+243a0009
+202020fc
+793f802c
+2020215f
+70480800
+7041e30e
+204041e7
+68014208
+c283c1f5
+c28033a9
+c280801c
+c281001f
+c281801f
+202042b0
+c282801f
+c281801f
+202042b0
+68014682
+c28642b0
+204033a9
+20400574
+c0038025
+202033a7
+70479f01
+7047a028
+20600000
+68010264
+1fe20c00
+e8c08000
+6000cb04
+1fe1040f
+1ff1fe00
+c0038031
+c0008038
+20204d39
+20404d53
+704b0500
+6800cb04
+2feffe00
+20608000
+704b0501
+20600000
+18427e00
+c002842c
+20204d41
+c008000f
+c0088004
+20600000
+2040053f
+704b6901
+7047a101
+680146a8
+600146ae
+2040047c
+20403418
+d8c04390
+20400478
+70438f1f
+20207df4
+78547c00
+204062c1
+68008048
+207a0000
+c2838018
+c0018028
+c0188024
+c00b8026
+20206010
+c042001b
+c041801e
+2020603f
+20400021
+68008048
+20206099
+20400021
+68008048
+2020610d
+6800c65a
+203a612b
+20206124
+704b0301
+202061c3
+704b0b04
+202061a4
+18007e02
+20406298
+68008049
+e0a08000
+6000cafc
+204062a7
+6800cafc
+c0170031
+20206051
+6800cb01
+207a0000
+704b0100
+6800cb03
+c1810000
+704b0201
+1c427e00
+600204e9
+20600000
+c0100004
+c0108016
+20600000
+2040000c
+2020557d
+6800c7c5
+6000c172
+7047c400
+20600000
+7047c401
+20600000
+6800c3d6
+1fe67c0c
+2421000a
+6800c3d8
+6808c7c5
+98467c00
+20210006
+6800c3d8
+6000c172
+20200008
+6800843f
+c4030000
+2040001b
+24740000
+202055a0
+78347c00
+6800845a
+1ff1fe00
+c1878000
+68008460
+1ff1fe00
+c1800000
+20207fe9
+c0180003
+20600000
+204002e0
+704b6900
+704b6601
+70472001
+70479e00
+68034b5d
+600344a0
+20403418
+68014687
+600146ac
+70016d06
+58000000
+600146b0
+600146ae
+2040047c
+204043ca
+20400346
+6800c210
+1fe67c33
+2042801b
+6800c092
+2feffe00
+2040fddd
+20200510
+68034b5d
+600344a0
+20400474
+20207df4
+c0200005
+c0208017
+c021001f
+20600000
+2040000e
+2034020c
+79200026
+6800cd4b
+79207e02
+6000cd4b
+204001f4
+2040016e
+2020001b
+df200002
+d8c04c21
+20407fe7
+5800ffff
+e8c90000
+98467c00
+2442ffe9
+c2000012
+20600000
+79200026
+6800cd4b
+79207e01
+6000cd4b
+58000708
+60014d43
+704d4200
+20600000
+680246d3
+c4088000
+c3818000
+c6130000
+20404482
+d8e00003
+204043ce
+58000000
+600146ae
+6000c6b4
+60014c26
+204042ca
+2020020c
+c0280006
+c028800c
+c0290010
+c029801a
+20600000
+d8e00003
+204043d2
+7046a700
+2040405d
+204002e0
+20200010
+704d3900
+204002e0
+2040020e
+2020340a
+20400017
+2040050a
+20403f8d
+68024c21
+6002477b
+20404366
+20200317
+58000000
+6001cd42
+20600000
+6800cd42
+c000add4
+20400029
+204001be
+242c016e
+2437816e
+6800cd4b
+793ffe02
+6000cd4b
+704b4300
+20402f20
+204001b8
+2020036f
+68024bd9
+202001f3
+70119eff
+6800cbfa
+6000919f
+68024c30
+600211a0
+d8400006
+da20119e
+20400213
+20200225
+6800cd42
+c000add4
+70119eff
+6800cbfa
+6000919f
+68024c30
+600211a0
+d8400006
+da20119e
+20400213
+20400225
+204001be
+242c0026
+24378026
+704d4b00
+204001e8
+68024c21
+680a4d3e
+98467c00
+20228017
+6800cbf7
+207a0000
+204002e0
+68024c21
+680a4c05
+98467c00
+20228201
+68024c21
+680a4c30
+98467c00
+20428024
+704b4300
+20402f20
+204001b8
+2020036f
+68024bd9
+202001f3
+6800cd37
+1fe0fe01
+1fe17e03
+6000cd37
+c000002d
+c0010037
+202001ef
+204002e0
+68024c30
+60024c21
+6800cd45
+6000cc04
+20400035
+6008cd45
+20600000
+204001f4
+2020016e
+7041de20
+68024d3e
+60024c21
+6800cd46
+6000cc04
+20400035
+6008cd46
+20600000
+c0380003
+20600000
+5fffffff
+60030040
+70018533
+704b70ff
+204042fb
+704721ff
+20200317
+c0400003
+20600000
+680240a0
+60024c30
+20403e6e
+2040053c
+6808cb46
+2040680e
+20403e1e
+20400014
+58000000
+60014154
+204068a2
+20403e54
+20405810
+20405839
+2040582c
+20405818
+2020030a
+204074b9
+d8c08c00
+d8a04876
+df200171
+20407f01
+580f0209
+e0a18000
+58120009
+e0a18000
+58100209
+e0a18000
+58000009
+e0a18000
+d8c08d71
+df200109
+20407f01
+70488d00
+7048856d
+5800401f
+600149db
+58006d04
+60014a44
+580016b0
+60014a4a
+58004876
+60014575
+20600000
+c0480004
+c048801e
+20600000
+6800cbfe
+c000ffe7
+6800cc09
+c000800b
+c001000e
+c0018011
+20202a8c
+704c0911
+70119eaa
+20200013
+704c0912
+70119e55
+20200013
+704c0913
+70119e22
+6800cbfa
+1fe17e07
+6000919f
+68024c30
+600211a0
+7011a400
+da20119e
+d8400007
+20400213
+20400183
+20207fe7
+6800cc09
+c17f8000
+c0088024
+c0090026
+c0098028
+20600000
+704c0902
+202001b4
+704c0903
+202001b4
+704c09ff
+700a9939
+20407d86
+68024bd9
+204001f3
+202001b4
+c050002a
+c0508006
+c051001b
+c0518014
+20600000
+68014509
+c1000000
+68008441
+1feb7e00
+1fe67c0c
+20210012
+58000009
+60014496
+60014498
+20400424
+7047c401
+20600000
+704b5c01
+202005f9
+68014682
+c3860000
+c3830000
+c3858000
+680246d3
+c3828000
+202033a7
+704b6a00
+58000007
+60014496
+60014498
+7047c400
+70479e00
+204003ac
+20405816
+204041d9
+6800cb66
+207a0000
+68034b5d
+600344a0
+20400474
+20207df4
+68120138
+79207e1a
+6012004c
+20402c21
+204074bd
+20404482
+20403e9f
+204000ef
+2040034c
+68108081
+1fe17ef7
+60108081
+6810807f
+79207e00
+6010807f
+680400a1
+793ffe14
+600400a1
+6808c6e7
+2040058c
+680400a1
+79207e34
+600400a1
+20600000
+c0580007
+c058801d
+c0590023
+c0598028
+c05a0030
+20600000
+58000000
+6001cb63
+df200003
+d8c044a0
+20400016
+24540354
+704b6a01
+6800c7a1
+243a0011
+704b6814
+704b7200
+704b6600
+2040050a
+204003ac
+202041c3
+20407fe7
+5800ffff
+e8c90000
+98467c00
+2442ffe9
+c2000018
+20600000
+6800c808
+c1010000
+1fe0fe01
+6000c808
+7041e312
+2020340e
+6800c808
+c1810000
+70480800
+7041e30e
+2020340e
+6800c7a1
+c000802c
+7046c614
+2020002e
+20400424
+7046c60a
+d8e00001
+202041b9
+704b0100
+704b0300
+704b0c00
+202041d9
+0000b2c6
Index: DpiSwitch/program/24g.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/24g.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/24g.prog	(working copy)
@@ -0,0 +1,2648 @@
+ifdef COMPILE_24G
+
+g24_dispatch:
+	bpatch patch16_2,mem_patch16
+	call g24_head_ptr2regc
+	add regc,offset_24g_mode,regb
+	ifetch 1,regb
+	//fetch 1,mem_24g_mode
+	rtneq disable_24g
+	beq tx_24g,g24_transmit_process
+	beq rx_24g,g24_receive_process
+	rtn
+
+g24_head_ptr2regc:
+	fetcht 2,mem_24g_head_ptr
+	copy temp,regc
+	rtn
+
+g24_receive_process_init:
+	call g24_receive_init
+	branch g24_mode_switch_init
+
+g24_receive_process:
+	call g24_mode_switch
+	call g24_dongle_work_mode_auto
+	call g24_dongle_bind_mode_auto
+	branch g24_dongle_search_mode_auto
+	
+
+g24_pair_init:
+	//jam 0,mem_24g_pid
+	//jam G24_PAIR_CH,mem_24g_ch
+	call g24_set0_mem_pid
+	setarg G24_PAIR_CH
+	call g24_store_mem_ch
+	call g24_store_mem_pair_txpower
+	//fetch 4,mem_24g_paring_addr
+	//store 4,mem_24g_addr
+	add regc,offset_24g_paring_addr,rega
+	ifetch 4,rega
+	branch g24_store_mem_addr
+		
+g24_ch:
+	call g24_head_ptr2regc
+	add regc,offset_24g_current_ch_number,regb
+	ifetcht 1,regb
+	//fetcht 1,mem_24g_current_ch_number
+	call g24_ch_temp_incre_size4 //map size =4
+	add regc,offset_24g_current_ch_number,contw
+	//storet 1,mem_24g_current_ch_number
+	branch g24_contw_istoret_1byte
+
+g24_ch_temp_incre_size4:
+	call g24_ch_calc
+	increase 1,temp
+	and_into 3,temp
+	rtn
+
+g24_ch_calc:
+	add regc,offset_24g_addr,regb
+	ifetch 1,regb
+	//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
+	add regc,offset_24g_ch_map1,pdata
+	//setarg mem_24g_ch_map1
+	iadd rega,pdata
+	iadd temp,contr
+	ifetch 1,contr
+	//store 1,mem_24g_ch
+	branch g24_store_mem_ch
+
+g24_set_device_addr:
+	call g24_store_mem_tx_power_temp
+	call otp_enable_chgpump
+	setarg 0x7e2
+	arg mem_temp,rega
+	arg 4,temp
+	call otpd_read_data
+	call otp_disable_chgpump
+	fetch 4,mem_temp	//adc data from otp
+	call g24_store_mem_device_addr
+	//store 4,mem_24g_device_addr	
+	nrtn blank
+	fetch 4,mem_lap
+	//store 4,mem_24g_device_addr
+	branch g24_store_mem_device_addr
+
+g24_transmit_rf_sta_init:
+	call g24_set1_mem_rf_last_sta
+	//jam 1,mem_24g_rf_last_sta
+	setarg 0
+	call g24_store_mem_sync_cnt
+	//jam 0,mem_24g_sync_cnt
+g24_transmit_rf_ctrl_clear:	
+	call g24_fetch_mem_data_type
+	//fetch 1,mem_24g_data_type
+	and_into bits_data,pdata
+	//store 1,mem_24g_data_type
+	branch g24_store_mem_data_type
+	
+g24_hop_ch_enable:
+	call g24_fetch_mem_data_type
+	//fetch 1,mem_24g_data_type
+	set1 bit_hop,pdata
+	call g24_store_mem_data_type
+	//store 1,mem_24g_data_type
+	//store 1,mem_24g_txpayload
+	branch g24_store_mem_txpayload
+	
+g24_transmit_hop_pac_fail:
+	call g24_fetch_mem_rf_work_stage
+	//fetch 1,mem_24g_rf_work_stage
+	beq 1,g24_transmit_hop_pac_fail_wo_hop
+	beq 2,g24_transmit_hop_pac_fail_hop_stage2
+	rtn
+	
+g24_transmit_hop_pac_fail_wo_hop:
+	call g24_set2_mem_sync_cnt
+	//jam 2,mem_24g_sync_cnt
+g24_transmit_hop_pac_fail_stage1:
+	add regc,offset_24g_hop_pac_retry,contw
+	call g24_mem_set0
+	//jam 0,mem_24g_hop_pac_retry
+	call g24_store_mem_rf_last_sta
+	//jam 0,mem_24g_rf_last_sta
+	branch g24_transmit_rf_ctrl_clear
+
+g24_transmit_hop_pac_fail_hop_stage2:
+	call g24_set0_mem_rf_hop_ch
+	//jam 0,mem_24g_rf_hop_ch
+	branch g24_transmit_hop_pac_fail_stage1
+
+g24_transmit_pac_fail_hop_stage3:
+	add regc,offset_24g_txfail_cnt,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_txfail_cnt
+	increase 1,pdata
+	add regc,offset_24g_txfail_cnt,contw
+	istore 1,contw
+	//store 1,mem_24g_txfail_cnt
+	beq 0x20,g24_tx_attempt_fail
+	call g24_fetch_mem_rf_hop_ch
+	//fetch 1,mem_24g_rf_hop_ch
+	beq 1,g24_rf_hop_fastly
+	setarg 1
+	call g24_store_mem_rf_hop_ch
+	//jam 1,mem_24g_rf_hop_ch
+g24_rf_hop_attemp_again:
+	call g24_fetch_mem_rf_hop_ch
+	//fetch 1,mem_24g_rf_hop_ch
+	bne 1,g24_transmit_rf_ctrl_clear
+g24_rf_hop_fastly:
+	add regc,offset_24g_hop_fastly_cnt,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_hop_fastly_cnt
+	increase 1,pdata
+	call g24_store_mem_hop_fastly_cnt
+	//store 1,mem_24g_hop_fastly_cnt
+	beq 4,g24_rf_hop_fastly_exit
+	call g24_ch
+	call g24_set2_mem_max_retry
+	//jam 2,mem_24g_max_retry
+	branch g24_transmit_packet
+
+g24_rf_hop_fastly_exit:
+	call g24_set0_mem_hop_fastly_cnt
+	//jam 0,mem_24g_hop_fastly_cnt
+	branch g24_transmit_rf_ctrl_clear
+
+g24_set0_mem_hop_fastly_cnt:
+	setarg 0
+g24_store_mem_hop_fastly_cnt:
+	add regc,offset_24g_hop_fastly_cnt,contw
+	branch g24_contw_istore_1byte
+
+g24_transmit_hop_pac_succ_wo_hop:
+	call g24_set2_mem_sync_cnt
+	//jam 2,mem_24g_sync_cnt
+g24_transmit_hop_pac_succ:
+	call g24_set0_mem_rf_hop_ch
+	//jam 0,mem_24g_rf_hop_ch
+	call g24_set1_mem_rf_last_sta
+	//jam 1,mem_24g_rf_last_sta
+	branch g24_transmit_rf_ctrl_clear
+
+g24_transmit_succ_rf_config:
+	call g24_fetch_mem_rf_work_stage
+	//fetch 1,mem_24g_rf_work_stage
+	beq 3,g24_transmit_hop_pac_succ
+	call g24_fetch_mem_data_type
+	//fetch 1,mem_24g_data_type
+	isolate0 bit_hop,pdata
+	branch g24_transmit_rf_sta_init,true
+	call g24_fetch_mem_rf_work_stage
+	//fetch 1,mem_24g_rf_work_stage
+	beq 1,g24_transmit_hop_pac_succ_wo_hop
+	beq 2,g24_transmit_hop_pac_succ
+	rtn
+
+g24_rf_sta_check:
+	call g24_fetch_mem_pairing_sm
+	//fetch 1,mem_24g_pairing_sm
+	rtnne STATE_24G_PAIRING_SUCCESS
+	call g24_rf_laststa_synccnt_check
+	ncall g24_rf_sync_cnt_check,user2
+	rtn
+
+g24_rf_laststa_synccnt_check:
+	disable user2
+	add regc,offset_24g_rf_last_sta,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_rf_last_sta
+	rtnne 1
+	add regc,offset_24g_sync_cnt,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_sync_cnt
+	rtnne 0
+	setarg 1
+	call g24_store_mem_rf_work_stage
+	//jam 1,mem_24g_rf_work_stage
+	call g24_set4_mem_max_retry
+	//jam 4,mem_24g_max_retry
+	branch enable_user2
+
+g24_rf_sync_cnt_check:
+	add regc,offset_24g_sync_cnt,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_sync_cnt
+	branch g24_rf_hop_attemp,blank
+	increase -1,pdata
+	call g24_store_mem_sync_cnt
+	//store 1,mem_24g_sync_cnt
+	setarg 2
+	call g24_store_mem_rf_work_stage
+	//jam 2,mem_24g_rf_work_stage
+	call g24_ch
+	//jam 4,mem_24g_max_retry
+	branch g24_set4_mem_max_retry
+
+g24_store_mem_rf_work_stage:
+	add regc,offset_24g_rf_work_stage,contw
+	branch g24_contw_istore_1byte
+
+
+g24_rf_hop_attemp:
+	setarg 3
+	call g24_store_mem_rf_work_stage
+	//jam 3,mem_24g_rf_work_stage
+	call g24_fetch_mem_rf_hop_ch
+	//fetch 1,mem_24g_rf_hop_ch
+	nbranch g24_rf_hop_attemp_again,blank
+	call g24_ch
+	//jam 2,mem_24g_max_retry
+g24_set2_mem_max_retry:	
+	setarg 2
+	branch g24_store_mem_max_retry
+
+g24_transmit_process:
+	rtnmark0 mark_24g
+	set1 mark_24g_conext,mark
+	bpatch patch16_3,mem_patch16
+	add regc,offset_24g_tx_without_int,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_tx_without_int
+	beq 1,g24_transmit_without_int
+	call g24_timer_check
+	nbranch g24_transmit_exit,user
+	call g24_interval_calibrate
+g24_transmit_without_int:
+	add regc,offset_24g_tx_without_int,contw
+	call g24_mem_set0
+	//jam 0,mem_24g_tx_without_int
+	call g24_txdata_prep
+	nbranch g24_enter_lpm,user
+	call g24_rf_sta_check
+g24_transmit_start:
+	call g24_transmit_packet
+	call g24_power_ctrl
+g24_transmit_exit:
+	set0 mark_24g_conext,mark
+	rtn
+
+g24_timer_timeout:
+	rtn zero
+	set1 28,pdata
+	rtn
+
+g24_interval_calibrate:
+	add regc,offset_24g_pac_index,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_pac_index
+	increase 1,pdata
+	add regc,offset_24g_pac_index,contw
+	istore 1,contw
+	//store 1,mem_24g_pac_index
+	beq 4,g24_interval_max
+	beq 5,g24_interval_min
+	rtn
+g24_interval_max:
+	add regc,offset_24g_interval_max,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_interval_max
+g24_interval_update:	
+	//store 1,mem_24g_interval
+	add regc,offset_24g_interval,contw
+	branch g24_contw_istore_1byte
+
+g24_interval_min:
+	add regc,offset_24g_pac_index,contw
+	call g24_mem_set0
+	//jam 0,mem_24g_pac_index
+	add regc,offset_24g_interval_min,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_interval_min
+	branch g24_interval_update
+
+g24_txdata_prep:
+	call g24_fetch_mem_pairing_sm
+	//fetch 1,mem_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,g24_pairing_sm
+	bpatch patch16_4,mem_patch16
+	call g24_package_data
+	nbranch g24_txdata_last_pac,user
+	call g24_transmit_prep
+	call g24_power_ctrl_pac_incrs
+g24_txdata_enable_tx:
+	//jam ENSURE_ON_24G,mem_24g_ensure
+	setarg ENSURE_ON_24G
+g24_store_mem_ensure:	
+	add regc,offset_24g_ensure,contw
+	branch g24_contw_istore_1byte
+
+g24_txdata_last_pac:
+	add regc,offset_24g_ensure,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_ensure
+	beq ENSURE_ON_24G,enable_user
+	rtn
+
+g24_package_data:
+	//rega:length,regb:contr
+	add regc,offset_24g_cb_data,temp
+	ifetch 2,temp
+	//fetch 2,mem_24g_cb_data
+	call callback_func
+	nrtn user
+	copy rega,pdata
+	store 1,mem_rega
+	add regc,offset_24g_abort_pac,contw
+	call g24_mem_set0
+	//jam 0,mem_24g_abort_pac
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_24g_common_temp
+	fetch 1,mem_rega
+	copy pdata,rega
+	add rega,1,temp
+	arg mem_24g_common_temp+1,contw
+	copy rega,loopcnt
+	copy regb,contr
+	call memcpy
+	arg mem_24g_common_temp,rega
+g24_put_data_in_buff:
+	rtnmark0 mark_24g_conext
+	add regc,offset_24g_datalen,contw
+	istoret 1,contw
+	//storet 1,mem_24g_datalen
+	copy temp,loopcnt
+	add regc,offset_24g_txbuf,contw
+	//arg mem_24g_txbuf,contw
+	copy rega,contr
+	branch memcpy
+
+g24_transmit_prep:
+// total length
+	add regc,offset_24g_datalen,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_datalen
+	increase 2,pdata
+	add regc,offset_24g_txlen,contw
+	istore 1,contw
+	//store 1,mem_24g_txlen
+// data type
+	call g24_fetch_mem_data_type
+	//fetch 1,mem_24g_data_type
+	call g24_store_mem_txpayload
+	//store 1,mem_24g_txpayload
+//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
+	add regc,offset_24g_datalen,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_datalen
+	lshift3 pdata,pdata
+	add regc,offset_24g_pid,rega
+	ifetcht 1,rega
+	//fetcht 1,mem_24g_pid
+	and temp,0x03,temp
+	lshift temp,temp
+	ior temp,pdata
+	add regc,offset_24g_no_ack,rega
+	ifetcht 1,rega
+	//fetcht 1,mem_24g_no_ack
+	iadd temp,pdata
+	istore 1,contw
+//prepare payload data
+	add regc,offset_24g_datalen,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_datalen
+	iforce loopcnt
+	add regc,offset_24g_txbuf,contr
+	//arg mem_24g_txbuf,contr
+	branch memcpy
+
+g24_send_abort_packet:
+	call g24_set1_mem_abort_pac
+	//jam 1,mem_24g_abort_pac
+	call g24_set0_mem_rf_hop_ch
+	//jam 0,mem_24g_rf_hop_ch
+	call g24_power_ctrl_reinit
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_24g_common_temp
+	call g24_put_data_in_buff_pre
+	call g24_fetch_mem_data_type
+	//fetch 1,mem_24g_data_type
+	set1 bit_abort,pdata
+	call g24_store_mem_data_type
+	//store 1,mem_24g_data_type
+	call g24_transmit_prep
+	call g24_txdata_enable_tx
+	branch g24_transmit_start
+
+g24_put_data_in_buff_pre:
+	store 1,mem_24g_common_temp+1
+	call g24_fetch_mem_device_addr
+	//fetch 4,mem_24g_device_addr
+	store 4,mem_24g_common_temp+2
+	arg 6,temp
+	arg mem_24g_common_temp,rega
+	branch g24_put_data_in_buff
+
+g24_enter_lpm:
+	add regc,offset_24g_abort_pac,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_abort_pac
+	branch g24_send_abort_packet,blank
+g24_enter_lpm_prepare:
+ 	// some thing need to do and do not enter 24g long sleep
+	add regc,offset_24g_cb_lpm_prepare,rega
+	ifetch 2,rega
+	//fetch 2,mem_24g_cb_lpm_prepare
+	branch callback_func
+
+g24_lpm_long_sleep:
+	call g24_head_ptr2regc
+	//fetch 8,mem_24g_enter_hibernate
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	add regc,offset_24g_cb_lpm_before,temp
+	ifetch 2,temp
+	//fetch 2,mem_24g_cb_lpm_before
+	call callback_func
+	add regc,offset_24g_enter_hibernate,temp
+	ifetch 8,temp
+	call clk2lpo
+	storet 4,mem_sleep_counter
+  	branch lpm_sleep
+
+g24_transmit_packet:
+	call g24_head_ptr2regc
+	add regc,offset_24g_retry,contw
+	call g24_mem_set0
+	//jam 0,mem_24g_retry
+g24_transmit_loop:
+	call g24_transmit_receive_ack
+	nbranch g24_retransmit,sync
+	nbranch g24_retransmit,user3
+	call g24_ackpayload_parse
+	call g24_power_ctrl_ack_incrs
+g24_transmit_next_packet:
+	call g24_head_ptr2regc
+	add regc,offset_24g_pid,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_pid
+	increase 1,pdata
+	call g24_store_mem_pid
+	//store 1,mem_24g_pid
+	call g24_fetch_mem_pairing_sm
+	//fetch 1,mem_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,g24_paring_mode
+	call g24_transmit_succ_rf_config
+g24_transmit_abandon:
+	setarg 0
+	add regc,offset_24g_txfail_cnt,contw
+	istore 2,contw	//include mem_24g_get_ack_fail
+	//store 1,mem_24g_txfail_cnt
+	//store 1,mem_24g_get_ack_fail
+	//jam ENSURE_OFF_24G,mem_24g_ensure
+	setarg ENSURE_OFF_24G
+	branch g24_store_mem_ensure
+
+	
+g24_transmit_receive_ack:
+	disable user3
+	call g24_transmit
+	call g24_head_ptr2regc
+	add regc,offset_24g_no_ack,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_no_ack
+	beq no_ack_24g,g24_transmit_no_ack	//tx no ack
+	call g24_receive_packet
+	branch g24_end_of_packet
+g24_transmit_no_ack:
+	call g24_end_of_packet
+	branch g24_transmit_next_packet
+
+
+g24_retransmit:
+	bpatch patch16_5,mem_patch16
+	add regc,offset_24g_get_ack_fail,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_get_ack_fail
+	increase 1,pdata
+	add regc,offset_24g_get_ack_fail,contw
+	istore 1,contw
+	//store 1,mem_24g_get_ack_fail
+	call g24_fetch_mem_pairing_sm
+	//fetch 1,mem_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,g24_tx_paring_retry
+	add regc,offset_24g_retry,rega
+	ifetcht 1,rega
+	//fetcht 1,mem_24g_retry
+	increase 1,temp
+	add regc,offset_24g_retry,contw
+	istoret 1,contw
+	//storet 1,mem_24g_retry
+	add regc,offset_24g_max_retry,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_max_retry
+	isub temp,pdata
+	nbranch g24_transmit_loop,blank
+	bpatch patch16_6,mem_patch16
+	call g24_fetch_mem_rf_work_stage
+	//fetch 1,mem_24g_rf_work_stage
+	beq 3,g24_transmit_pac_fail_hop_stage3
+	add regc,offset_24g_hop_pac_retry,rega
+	ifetch 1,rega	
+	//fetch 1,mem_24g_hop_pac_retry
+	increase 1,pdata
+	add regc,offset_24g_hop_pac_retry,contw
+	istore 1,contw
+	//store 1,mem_24g_hop_pac_retry
+	beq 2,g24_transmit_hop_pac_fail
+	call g24_hop_ch_enable
+	setarg 1
+	call g24_store_mem_max_retry
+	//jam 1,mem_24g_max_retry
+	branch g24_transmit_packet
+
+g24_tx_paring_retry:
+	add regc,offset_24g_get_ack_fail,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_get_ack_fail
+	rtnne 0xff
+	add regc,offset_24g_get_ack_fail,contw
+	call g24_mem_set0
+	//jam 0,mem_24g_get_ack_fail
+	branch g24_stop_24g_mode
+
+g24_tx_attempt_fail:
+	add regc,offset_24g_txfail_cnt,contw
+	call g24_mem_set0
+	//jam 0,mem_24g_txfail_cnt
+g24_stop_24g_mode:
+	jam BT_EVT_24G_ATTEMPT_FAIL,mem_fifo_temp
+	branch ui_ipc_send_event
+
+g24_ackpayload_parse:
+	call g24_read_len_pid_crc
+	add regc,offset_24g_rxdata_length,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_rxdata_length	//ack payload length 
+	rtn blank
+	iforce loopcnt
+	add regc,offset_24g_rxbuf_add2,contr
+	//arg mem_24g_rxbuf+2,contr
+	add regc,offset_24g_rxpayload,contw	
+	//arg mem_24g_rxpayload,contw	//ack payload buffer 
+	branch memcpy
+
+
+g24_read_len_pid_crc:
+//read control
+	call g24_fetch_mem_rxbuf_add1
+	//fetch 1,mem_24g_rxbuf+1
+	rshift3 pdata,pdata
+	add regc,offset_24g_rxdata_length,contw
+	istore 1,contw
+	//store 1,mem_24g_rxdata_length
+//get crc
+	increase 1,pdata
+	add regc,offset_24g_rxbuf_add1,contr
+	//arg mem_24g_rxbuf+1,contr
+	iadd contr,contr
+	ifetch 3,contr
+	add regc,offset_24g_sta_crc,contw
+	istore 3,contw
+	//store 3,mem_24g_sta_crc
+//read pid
+	call g24_fetch_mem_rxbuf_add1
+	//fetch 1,mem_24g_rxbuf+1
+	rshift pdata,pdata
+	and pdata,0x03,pdata
+	add regc,offset_24g_sta_pid,contw
+	istore 1,contw
+	//store 1,mem_24g_sta_pid
+	rtn
+
+g24_prep:
+	disable enable_crc
+	disable enable_white
+	setarg 0x555555
+	iforce crc24_init
+	rtn
+
+g24_set_freq_tx:
+	call set_sync_on
+	add regc,offset_24g_ch,rega
+	ifetcht 1,rega
+	//fetcht 1,mem_24g_ch
+	branch set_freq_tx
+
+g24_transmit:
+	call g24_prep
+	call g24_set_freq_tx
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+	call le_enable
+	call g24_fetch_mem_addr
+	//fetch 4,mem_24g_addr
+	iforce access
+	inject mod,32
+	enable enable_crc
+	add regc,offset_24g_txlen,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_txlen
+	iforce loopcnt
+	add regc,offset_24g_txpayload,contr
+	//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
+	until null,tx_clear
+	bpatch patch16_7,mem_patch16
+	nop 100
+	disable encode_fec0
+	rtn
+
+g24_receive_packet:
+	disable user3
+	force 0,radio_ctrl
+	add regc,offset_24g_ch,rega
+	ifetcht 1,rega
+	//fetcht 1,mem_24g_ch
+	call set_freq_rx
+	call rf_rx_enable
+g24_receive_rxon:
+	call g24_prep
+	enable decode_fec0
+	enable is_rx
+	disable is_tx
+	call le_enable
+	call g24_fetch_mem_addr
+	//fetch 4,mem_24g_addr
+	iforce access
+	enable swfine
+	add regc,offset_24g_rx_window,rega
+	ifetch 2,rega
+	//fetch 2,mem_24g_rx_window
+	iforce stop_watch
+	correlate null,timeout
+	nbranch g24_sync_timeout,sync
+	enable enable_crc
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	add regc,offset_24g_rxbuf,contw
+	istore 1,contw	
+	//store 1,mem_24g_rxbuf	//device id
+	add regc,offset_24g_mode,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_mode
+	beq rx_24g,g24_receive_skip
+	bpatch patch17_0,mem_patch17
+	add regc,offset_24g_rxbuf,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_rxbuf
+	add regc,offset_24g_data_type,rega
+	ifetcht 1,rega
+	//fetcht 1,mem_24g_data_type
+	icompare bits_data,temp
+	nbranch g24_end_of_packet,true
+g24_receive_skip:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	rshift3 pdata,pdata
+	and pdata,0x1f,loopcnt	//max payload: 32bytes
+	branch g24rx_nopayload,zero
+g24rx_loop:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	loop g24rx_loop
+g24rx_nopayload:
+	parse demod,bucket,24
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	branch g24_end_of_packet,crc_failed
+	enable user3
+	disable decode_fec0
+	rtn
+//	branch rssi_signal
+
+g24_end_of_packet:
+	disable encode_fec0
+	disable decode_fec0
+	disable enable_crc
+	disable enable_white
+	branch shutdown_radio,is_rx
+	until null,tx_clear
+	nop 100          /* flush out the last bit */
+	branch shutdown_radio
+
+g24_sync_timeout:
+	call rssi_noise
+	branch g24_end_of_packet
+
+rssi_noise:
+	call save_rssi
+	rtn blank
+	add regc,offset_rssi_noise_index,rega
+	ifetcht 1,rega
+	//fetcht 1,mem_rssi_noise_index
+	arg mem_rssi_noise_buffer,rega
+	//arg mem_rssi_noise_buf,rega
+	call rssi_noise_store
+	add regc,offset_rssi_noise_index,contw
+	//storet 1,mem_rssi_noise_index
+g24_contw_istoret_1byte:	
+	istoret 1,contw
+	rtn
+
+rssi_noise_store:
+	arg RSSI_BUF_LEN_NOISE,regb
+	branch rssi_store
+	
+/*	
+rssi_signal:
+	call save_rssi
+	rtn blank
+	add regc,offset_rssi_signal_index,rega
+	ifetcht 1,rega	
+	//fetcht 1,mem_rssi_signal_index
+	add regc,offset_rssi_signal_buf,rega
+	//arg mem_rssi_signal_buf,rega
+	arg RSSI_BUF_LEN_SIGNAL,regb
+	call rssi_store
+	add regc,offset_rssi_signal_index,contw
+	istoret 1,contw	
+	//storet 1,mem_rssi_signal_index
+	rtn
+*/	
+rssi_store:	
+	copy rega,pdata
+	iadd temp,contw
+	fetch 1,mem_rssi
+	istore 1,contw
+	increase 1,temp
+	copy regb,pdata
+	iand_into temp
+	rtn
+	
+rssi_average:
+	arg 0,temp
+	copy rega,contr
+rssi_average_loop:	
+	ifetch 1,contr
+	iadd temp,temp
+	loop rssi_average_loop
+	rshift8 temp,temp
+	rtn
+
+g24_power_ctrl_init:
+	call g24_head_ptr2regc
+	call g24_power_ctrl_incrs_level1
+	setarg 1
+	call g24_store_mem_power_ctrl_level
+	//jam 1,mem_power_ctrl_level
+g24_power_ctrl_reinit:
+	setarg 0
+	call g24_store_mem_power_ctrl_pac
+	//jam 0,mem_power_ctrl_packet_cnt
+	istore 1,contw
+	//jam 0,mem_power_ctrl_ack_cnt
+	rtn
+
+g24_power_ctrl_pac_incrs:
+	call g24_fetch_mem_power_ctrl_pac
+	//fetch 1,mem_power_ctrl_packet_cnt
+	increase 1,pdata
+g24_store_mem_power_ctrl_pac:	
+	//store 1,mem_power_ctrl_packet_cnt
+	add regc,offset_power_ctrl_packet_cnt,contw
+	branch g24_contw_istore_1byte
+
+g24_power_ctrl_ack_incrs:
+	//fetch 1,mem_power_ctrl_ack_cnt
+	//store 1,mem_power_ctrl_ack_cnt
+	add regc,offset_power_ctrl_ack_cnt,rega
+	ifetch 1,rega
+	increase 1,pdata
+	add regc,offset_power_ctrl_ack_cnt,contw
+	branch g24_contw_istore_1byte
+
+g24_power_ctrl:
+	bpatch patch17_1,mem_patch17
+	call g24_fetch_mem_power_ctrl_pac
+	//fetch 1,mem_power_ctrl_packet_cnt
+	sub pdata,POWER_CTRL_MAX_PACKET_CNT,null
+	rtn positive
+	add regc,offset_power_ctrl_ack_cnt,rega
+	ifetcht 1,rega
+	//fetcht 1,mem_power_ctrl_ack_cnt
+	isub temp,temp	//loss packet cnt
+	call g24_power_ctrl_reinit
+	setarg offset_power_ctrl_threshold_up
+	iadd regc,rega
+	ifetch 1,rega
+	//fetch 1,mem_power_ctrl_threshold_up
+	isub temp,null
+	nbranch g24_power_ctrl_incrs,positive
+	setarg offset_power_ctrl_threshold_down
+	iadd regc,rega
+	ifetch 1,rega	
+	//fetch 1,mem_power_ctrl_threshold_down
+	isub temp,null
+	branch g24_power_ctrl_decrs,positive
+	rtn
+
+g24_power_ctrl_incrs:	
+	add regc,offset_power_ctrl_level,rega
+	ifetch 1,rega
+	//fetch 1,mem_power_ctrl_level
+	beq 2,g24_power_ctrl_incrs_level2
+	increase 1,pdata
+	call g24_store_mem_power_ctrl_level
+	//store 1,mem_power_ctrl_level
+	beq 1,g24_power_ctrl_incrs_level1
+g24_power_ctrl_incrs_level2:
+	setarg POWER_CTRL_LOSSPAC_THRESH_UP2
+	call g24_store_mem_power_ctrl_threshold_up
+	//jam POWER_CTRL_LOSSPAC_THRESH_UP2,mem_power_ctrl_threshold_up
+	setarg POWER_CTRL_LOSSPAC_THRESH_DOWN2
+	call g24_store_mem_power_ctrl_threshold_down
+	//jam POWER_CTRL_LOSSPAC_THRESH_DOWN2,mem_power_ctrl_threshold_down
+//	jam POWER_CTRL_RSSI_THRESH_DOWN2,mem_rssi_ctrl_threshold_down
+	add regc,offset_power_ctrl_txpwr_level2,rega
+	//fetch 1,mem_power_ctrl_txpwr_level2
+	branch g24_ifetch_rega_store_mem_txpower
+
+g24_power_ctrl_decrs:
+	add regc,offset_power_ctrl_level,rega
+	ifetch 1,rega
+	//fetch 1,mem_power_ctrl_level
+	beq 0,g24_power_ctrl_decrs_level0
+	increase -1,pdata
+	call g24_store_mem_power_ctrl_level
+	//store 1,mem_power_ctrl_level
+	beq 0,g24_power_ctrl_decrs_level0
+g24_power_ctrl_decrs_level1:
+//	call rssi_check_distance
+//	nrtn user
+g24_power_ctrl_incrs_level1:
+	setarg POWER_CTRL_LOSSPAC_THRESH_UP1
+	call g24_store_mem_power_ctrl_threshold_up
+	//jam POWER_CTRL_LOSSPAC_THRESH_UP1,mem_power_ctrl_threshold_up
+	setarg POWER_CTRL_LOSSPAC_THRESH_DOWN1
+	call g24_store_mem_power_ctrl_threshold_down
+	//jam POWER_CTRL_LOSSPAC_THRESH_DOWN1,mem_power_ctrl_threshold_down
+//	jam POWER_CTRL_RSSI_THRESH_DOWN1,mem_rssi_ctrl_threshold_down
+	setarg offset_power_ctrl_txpwr_level1
+g24_iadd_offset_mem_txpower:	
+	iadd regc,rega
+g24_ifetch_rega_store_mem_txpower:	
+	ifetch 1,rega
+	//fetch 1,mem_power_ctrl_txpwr_level1
+	branch g24_store_mem_txpower
+	
+g24_power_ctrl_decrs_level0:
+//	call rssi_check_distance
+//	nrtn user
+	setarg POWER_CTRL_LOSSPAC_THRESH_UP0
+	call g24_store_mem_power_ctrl_threshold_up
+	//jam POWER_CTRL_LOSSPAC_THRESH_UP0,mem_power_ctrl_threshold_up
+	setarg POWER_CTRL_LOSSPAC_THRESH_DOWN0
+	call g24_store_mem_power_ctrl_threshold_down
+	//jam POWER_CTRL_LOSSPAC_THRESH_DOWN0,mem_power_ctrl_threshold_down
+//	jam POWER_CTRL_RSSI_THRESH_DOWN0,mem_rssi_ctrl_threshold_down
+	setarg offset_power_ctrl_txpwr_level0
+	//fetch 1,mem_power_ctrl_txpwr_level0
+	branch g24_iadd_offset_mem_txpower
+
+/*
+rssi_check_distance:
+	disable user
+	arg mem_rssi_signal_buf,rega
+	arg RSSI_BUF_LEN_SIGNAL+1,loopcnt
+	call rssi_average
+	storet 1,mem_rssi_signal_avg
+	fetch 1,mem_rssi_ctrl_threshold_down
+	isub temp,null
+	branch enable_user,positive
+	rtn
+*/
+g24_start_pairing_sm1:
+	set1 mark_24g,mark
+	call g24_pair_init
+g24_set_pairing_sm_1:
+	//jam STATE_24G_PAIRING_1,mem_24g_pairing_sm
+	setarg STATE_24G_PAIRING_1
+	branch g24_store_mem_pairing_sm
+
+g24_pairing_sm:
+	add regc,offset_24g_ensure,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_ensure
+	beq ENSURE_ON_24G,enable_user
+	call g24_fetch_mem_pairing_sm
+	//fetch 1,mem_24g_pairing_sm
+	beq STATE_24G_PAIRING_1,g24_pairing_sm_1
+	beq STATE_24G_PAIRING_2,g24_pairing_sm_2
+	beq STATE_24G_PAIRING_3,g24_pairing_sm_3
+	branch assert
+
+g24_pairing_sm_1:
+	setarg STATE_24G_PAIRING_1_WAITING_ACK
+	call g24_store_mem_pairing_sm
+	//jam STATE_24G_PAIRING_1_WAITING_ACK,mem_24g_pairing_sm
+	jam 0xaa,mem_24g_common_temp
+	branch g24_pairing_sm_common
+g24_pairing_sm_2:
+	setarg STATE_24G_PAIRING_2_WAITING_ACK
+	call g24_store_mem_pairing_sm
+	//jam STATE_24G_PAIRING_2_WAITING_ACK,mem_24g_pairing_sm
+	jam 0x55,mem_24g_common_temp
+	branch g24_pairing_sm_common
+g24_pairing_sm_3:
+	setarg STATE_24G_PAIRING_3_WAITING_ACK
+	call g24_store_mem_pairing_sm
+	//jam STATE_24G_PAIRING_3_WAITING_ACK,mem_24g_pairing_sm
+	jam 0x22,mem_24g_common_temp
+g24_pairing_sm_common:
+	call g24_fetch_mem_data_type
+	//fetch 1,mem_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_24g_common_temp+1
+	call g24_fetch_mem_device_addr
+	//fetch 4,mem_24g_device_addr
+	store 4,mem_24g_common_temp+2
+g24_put_pairing_data_in_buff:
+	jam 0,mem_24g_common_temp+6
+	arg mem_24g_common_temp,rega
+	arg 7,temp
+	call g24_put_data_in_buff	
+	call g24_transmit_prep
+	call g24_txdata_enable_tx
+	branch enable_user
+
+g24_paring_mode:
+	call g24_fetch_mem_pairing_sm
+	//fetch 1,mem_24g_pairing_sm
+	rtneq STATE_24G_PAIRING_SUCCESS
+	beq STATE_24G_PAIRING_1_WAITING_ACK,g24_pairing_sm_1_waiting_ack
+	beq STATE_24G_PAIRING_2_WAITING_ACK,g24_pairing_sm_2_waiting_ack
+	beq STATE_24G_PAIRING_3_WAITING_ACK,g24_pairing_sm_3_waiting_ack
+	rtn
+
+g24_pairing_sm_1_waiting_ack:
+	setarg STATE_24G_PAIRING_2
+	call g24_store_mem_pairing_sm
+	//jam STATE_24G_PAIRING_2,mem_24g_pairing_sm
+	branch g24_transmit_abandon
+g24_pairing_sm_2_waiting_ack:
+	setarg STATE_24G_PAIRING_3
+	call g24_store_mem_pairing_sm
+	//jam STATE_24G_PAIRING_3,mem_24g_pairing_sm
+	branch g24_transmit_abandon
+g24_pairing_sm_3_waiting_ack:
+	setarg STATE_24G_PAIRING_SUCCESS
+	call g24_store_mem_pairing_sm
+	//jam STATE_24G_PAIRING_SUCCESS,mem_24g_pairing_sm
+	jam BT_EVT_24G_PAIRING_COMPLETE,mem_fifo_temp
+	call ui_ipc_send_event
+	add regc,offset_24g_rxpayload_add2,rega
+	ifetch 4,rega
+	//fetch 4,mem_24g_rxpayload+2
+	call g24_store_mem_addr
+	//store 4,mem_24g_addr
+	branch g24_transmit_abandon
+
+g24_auto_pair_start:
+	set0 mark_24g,mark
+	call g24_auto_pair_set_device_info
+	call g24_tx_attemp_data_prep
+g24_auto_pair_restart:	
+	call g24_set0_mem_check_dongle_times
+g24_auto_pair_start_loop:
+	nop 2000
+	call g24_fetch_mem_check_dongle_times
+	beq 0xff,g24_stop_24g_mode
+	call g24_transmit_receive_ack
+	nbranch g24_auto_pair_retry,sync
+	nbranch g24_auto_pair_retry,user3
+	call g24_ackpayload_parse
+	call g24_head_ptr2regc
+	add regc,offset_24g_paring_addr,rega
+	ifetcht 4,rega
+	call g24_fetch_mem_addr_isub_temp
+	branch g24_start_pairing_sm1,zero
+	call g24_head_ptr2regc
+	add regc,offset_24g_rxpayload_add2,rega
+	ifetch 4,rega
+	beq 0,g24_auto_pair_restart
+	call g24_store_mem_addr
+	branch g24_tx_attemp_dongle_succ
+
+g24_auto_pair_retry:
+	call g24_fetch_mem_check_dongle_times
+	increase 1,pdata
+	call g24_store_mem_check_dongle_times
+
+	call g24_fetch_mem_auto_paring_switch
+	increase 1,pdata
+	and_into 1,pdata
+	call g24_store_mem_auto_paring_switch
+	beq 0,g24_auto_pair_device_attemp
+	beq 1,g24_auto_pair_pair_attemp
+	rtn
+
+g24_fetch_mem_auto_paring_switch:
+	setarg offset_24g_auto_pair_switch
+	branch g24_set_rega_ifetch_1byte
+g24_store_mem_auto_paring_switch:
+	arg offset_24g_auto_pair_switch,rega
+	branch g24_set_contw_with_regb_store_1byte
+
+g24_auto_pair_set_device_info:
+	call g24_store_mem_tx_power
+	call g24_fetch_mem_device_addr
+	call g24_store_mem_addr
+	branch g24_ch
+
+g24_auto_pair_device_attemp:
+	call g24_auto_pair_set_device_info
+	branch g24_auto_pair_start_loop
+
+g24_auto_pair_pair_attemp:
+	call g24_pair_init
+	branch g24_auto_pair_start_loop
+
+
+g24_start_24g_mode:
+	set0 mark_24g,mark
+	call g24_ch
+	call g24_fetch_mem_pairing_sm
+	//fetch 1,mem_24g_pairing_sm
+	rtnne STATE_24G_PAIRING_SUCCESS
+	call g24_tx_attemp_data_prep
+	call g24_set0_mem_check_dongle_times
+	//jam 0,mem_24g_check_dongle_times
+g24_tx_attemp_dongle_loop:
+	nop 2000
+	call g24_fetch_mem_check_dongle_times
+	//fetch 1,mem_24g_check_dongle_times
+	beq 0xff,g24_stop_24g_mode
+	call g24_transmit_receive_ack
+	nbranch g24_attemp_txdata_retry,sync
+	nbranch g24_attemp_txdata_retry,user3
+g24_tx_attemp_dongle_succ:	
+	set1 mark_24g,mark
+	call g24_set0_mem_check_dongle_times
+	setarg STATE_24G_PAIRING_SUCCESS
+	call g24_store_mem_pairing_sm
+	//jam 0,mem_24g_check_dongle_times
+g24_app_tx_attempt_success:	
+	jam BT_EVT_24G_ATTEMPT_SUCCESS,mem_fifo_temp
+	branch ui_ipc_send_event
+
+g24_tx_attemp_data_prep:
+	set1 mark_24g_conext,mark
+	jam 0xff,mem_24g_common_temp
+	call g24_fetch_mem_data_type
+	//fetch 1,mem_24g_data_type
+	call g24_put_data_in_buff_pre
+	branch g24_transmit_prep
+	
+g24_attemp_txdata_retry:
+	call g24_fetch_mem_check_dongle_times
+	//fetch 1,mem_24g_check_dongle_times
+	increase 1,pdata
+	call g24_store_mem_check_dongle_times
+	//store 1,mem_24g_check_dongle_times
+	call g24_ch
+	branch g24_tx_attemp_dongle_loop
+
+g24_check_51cmd_start_24g:
+	call g24_store_mem_tx_power
+	//fetch 1,mem_tx_power_temp
+	//store 1,mem_tx_power
+	setarg STATE_24G_PAIRING_SUCCESS
+	call g24_store_mem_pairing_sm
+	//jam STATE_24G_PAIRING_SUCCESS,mem_24g_pairing_sm
+	branch g24_start_24g_mode
+/*	
+g24_check_51cmd_stop_24g:
+	call g24_store_mem_tx_power
+	set0 mark_24g,mark
+	branch le_disable
+*/
+
+
+dongle_init:
+	bpatch patch17_2,mem_patch17
+	call g24_head_ptr2regc
+	setarg dongle_rxdata_type1
+	add regc,offset_24g_cb_rxdata_type1,contw
+	istore 2,contw
+	//store 2,mem_24g_cb_rxdata_type1
+	call g24_receive_init
+	call usb_init
+	call g24_fetch_mem_pair_mode
+	//fetch 1,mem_24g_pair_mode
+	bpatch patch17_3,mem_patch17
+	beq 0x00,dongle_auto_bind
+	beq 0x01,dongle_pc_bind
+	beq 0x0f,dongle_all_powerful
+	branch assert
+
+g24_receive_init:
+	call g24_store_mem_tx_power_temp
+	arg 0x80,loopcnt
+	arg mem_rssi_noise_buffer,contw
+	branch memset0
+
+dongle_all_powerful:
+	call dongle_check_mode
+dongle_all_powerful_loop:
+	call g24_dongle_work_mode
+	call usb_isr
+	branch dongle_all_powerful_loop
+
+dongle_pc_bind:
+	bpatch patch17_4,mem_patch17
+	call dongle_check_mode
+dongle_pc_bind_loop:	
+	call g24_dongle_work_mode
+	call g24_dongle_bind_mode
+	call usb_isr
+	call dongle_usb_dispatch
+	branch dongle_pc_bind_loop
+
+dongle_check_mode:
+	//jam DONGLE_WORK,mem_dongle_work_mode
+	//jam CLEAR_INIT,mem_dongle_mode_init
+	//jam 0,mem_24g_ackpayload_enable
+	call g24_set_work_mem_dongle_work_mode
+	call g24_set0_mem_dongle_mode_init
+	branch g24_set0_mem_ackpayload_enable
+	
+g24_dongle_work_mode:
+	call g24_fetch_mem_dongle_work_mode
+	//fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_WORK
+g24_dongle_work_mode_start:
+	call g24_dongle_work_init
+	call g24_ch_process
+	call g24_receive_packet_start
+	branch g24_blank_data_process
+
+g24_dongle_work_init:
+	call g24_fetch_mem_dongle_mode_init
+	//fetch 1,mem_dongle_mode_init
+	rtnbit1 DONGLE_WORK
+	set1 DONGLE_WORK,pdata
+	call g24_store_mem_dongle_mode_init
+	//store 1,mem_dongle_mode_init
+	call g24_store_mem_tx_power
+	//fetch 1,mem_tx_power_temp
+	//store 1,mem_tx_power
+	call g24_set0_mem_ackpayload_enable
+	//jam 0,mem_24g_ackpayload_enable
+	jam 0,mem_usb_tx_enable
+	call g24_set1_mem_abort_pac
+	//jam 1,mem_24g_abort_pac
+	call g24_dongle_init
+g24_rx_interrupt_clear:
+	add regc,offset_24g_rxbuf,contw
+	//arg mem_24g_rxbuf,contw
+	arg 66,loopcnt
+	branch clear_mem
+
+g24_dongle_init:
+	call g24_set0_mem_pid
+	//jam 0,mem_24g_pid
+	call g24_fetch_mem_rx_addr
+	//fetch 4,mem_24g_rx_addr
+	call g24_store_mem_addr
+	//store 4,mem_24g_addr
+	branch g24_ch
+
+g24_ch_process:
+	bpatch patch17_5,mem_patch17
+	call g24_fetch_mem_abort_pac
+	//fetch 1,mem_24g_abort_pac
+	beq 1,g24_noise_rssi
+	call g24_fetch_mem_hop_pac
+	//fetch 1,mem_24g_hop_pac
+	beq 1,g24_ch	
+	setarg offset_24g_hop_btclk
+	iadd regc,rega
+	ifetcht 4,rega
+	//fetcht 4,mem_24g_hop_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	setarg offset_24g_hop_btclk
+	iadd regc,rega
+	ifetch 4,rega
+	copy pdata,temp
+	//fetch 4,mem_24g_hop_btclk
+	setarg offset_24g_hop_interval
+	iadd regc,rega
+	copy temp,pdata
+	ifetcht 1,rega
+	//fetcht 1,mem_24g_hop_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	setarg offset_24g_hop_btclk
+	iadd regc,contw
+	istore 4,contw
+	//store 4,mem_24g_hop_btclk
+g24_ch_update:
+	call g24_ch
+	call g24_fetch_mem_rf_laststa
+	//fetch 1,mem_24g_rf_laststa
+	increase 1,pdata
+	call g24_store_mem_rf_laststa
+	//store 1,mem_24g_rf_laststa
+	rtnne 2
+	call g24_set0_mem_rf_laststa
+	//jam 0,mem_24g_rf_laststa
+	//jam 1,mem_24g_abort_pac
+	//rtn
+	branch g24_set1_mem_abort_pac
+	
+g24_ch_timer_reinit:
+	copy clkn_bt,pdata
+	arg offset_24g_hop_btclk,rega
+	call g24_set_contw_with_temp
+	istore 4,contw
+	//store 4,mem_24g_hop_btclk
+	//jam 0,mem_24g_rf_laststa
+	//rtn
+	branch g24_set0_mem_rf_laststa
+
+g24_noise_rssi:
+	arg mem_rssi_noise_buffer,rega
+	call g24_noise_rssi_average
+	add regc,offset_rssi_noise_avg,contw
+	istoret 1,contw
+	//storet 1,mem_rssi_noise_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive	
+	branch g24_ch
+
+g24_noise_rssi_average:
+	arg RSSI_BUF_LEN_NOISE+1,loopcnt
+	branch rssi_average
+
+g24_blank_data_process:
+	call g24_ms_blank_data
+	call g24_kb_blank_data
+	branch g24_kb_mul_blank_data
+
+g24_ms_blank_data:
+	setarg offset_24g_ms_blank_data_enable
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_ms_blank_data_enable
+	rtn blank
+	arg TIMER_MS_BLANK,queue
+	call timer_check
+	nrtn blank
+	call g24_set0_mem_ms_blank_data_enable
+	//jam 0,mem_24g_ms_blank_data_enable
+g24_ms_blank_data_2usb:
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data
+	setarg 0
+	istore 7,contw
+	branch g24_data_type1_usbtx_enable
+
+g24_kb_blank_data:
+	setarg offset_24g_kb_blank_data_enable
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_kb_blank_data_enable
+	rtn blank
+	arg TIMER_KB_BLANK,queue
+	call timer_check
+	nrtn blank
+	call g24_set0_mem_kb_blank_data_enable
+	//jam 0,mem_24g_kb_blank_data_enable
+g24_kb_blank_data_2usb:	
+	arg mem_usb_kb_data,contw
+	arg 2,loopcnt
+	call memset0
+	jam KB_NORMAL_REPORT_ID,mem_usb_kb_data
+	branch g24_kb_data_into_ep1_fifo
+
+g24_kb_mul_blank_data:
+	setarg offset_24g_kb_mul_blank_data_enable
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_kb_mul_blank_data_enable
+	rtn blank
+	arg TIMER_KB_MUL_BLANK,queue
+	call timer_check
+	nrtn blank
+	call g24_set0_mem_kb_mul_blank_data_enable
+	//jam 0,mem_24g_kb_mul_blank_data_enable
+g24_kb_mul_blank_data_2usb:
+	arg mem_usb_kb_multikey,contw
+	arg 2,loopcnt
+	call memset0
+	jam KB_MULTIKEY_REPORT_ID,mem_usb_kb_multikey
+	branch g24_kb_mul_data_into_ep2_fifo
+
+g24_dongle_bind_mode:
+	call g24_fetch_mem_dongle_work_mode
+	//fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_BIND
+	call g24_dongle_bind_init
+	branch g24_dongle_bind_data_process
+
+g24_dongle_bind_init:
+	call g24_fetch_mem_dongle_mode_init
+	//fetch 1,mem_dongle_mode_init
+	rtnbit1 DONGLE_BIND
+	set1 DONGLE_BIND,pdata
+	call g24_store_mem_dongle_mode_init
+	//store 1,mem_dongle_mode_init
+	call g24_set1_mem_ackpayload_enable
+	//jam 1,mem_24g_ackpayload_enable
+	call g24_pair_init
+	setarg 0
+	arg offset_dongle_ms_bind_step,rega
+	call g24_set_contw_with_temp
+	//store 3,mem_dongle_ms_bind_step
+	branch g24_contw_istore_3byte
+
+g24_dongle_bind_data_process:
+	call g24_receive_transmit_ack
+	nbranch g24_rx_interrupt_clear,user3	
+	add regc,offset_24g_rxbuf,contr
+	setarg offset_24g_rxdata_temp
+	iadd regc,contw
+	arg 8,loopcnt
+	call memcpy
+	setarg offset_24g_rxdata_temp_add2
+	call g24_set_rega_ifetch_1byte
+	beq DATATYPE_BIND,g24_dongle_bind_first_step	//bind step 1
+	beq DATATYPE_CONFIG,g24_dongle_bind_second_step
+	beq DATATYPE_OK,g24_dongle_bind_third_step
+	beq 0xff,g24_data_attemp
+	branch g24_rx_interrupt_clear
+
+g24_dongle_bind_first_step:
+	call g24_fetch_mem_rxdata_temp_add3_1byte
+	beq BIND_MOUSE,g24_dongle_bind_first_step_mouse
+	beq BIND_KEYBOARD,g24_dongle_bind_first_step_keyboard
+	rtn
+g24_dongle_bind_first_step_mouse:
+	setarg 1
+	call g24_store_mem_ms_bind_step
+	//jam 1,mem_dongle_ms_bind_step
+g24_dongle_bind_ms_payload_cfg:
+	setarg DATATYPE_MOUSE
+	call g24_store_mem_bind_payload
+	//jam DATATYPE_MOUSE,mem_24g_bind_payload
+g24_dongle_bind_payload_cfg:	
+	setarg 0x80
+	arg offset_24g_bind_payload_add1,rega
+	call g24_set_contw_with_regb_store_1byte
+	//jam 0x80,mem_24g_bind_payload+1
+	call g24_fetch_mem_rx_addr
+	//fetch 4,mem_24g_rx_addr
+	arg offset_24g_bind_payload_add2,rega
+	call g24_set_contw_with_temp
+	//store 4,mem_24g_bind_payload+2
+	branch g24_contw_istore_4byte
+
+g24_dongle_bind_first_step_keyboard:
+	setarg 1
+	call g24_store_mem_kb_bind_step
+	//jam 1,mem_dongle_kb_bind_step
+g24_dongle_bind_kb_payload_cfg:
+	setarg DATATYPE_KEYBOARD
+	call g24_store_mem_bind_payload
+	//jam DATATYPE_KEYBOARD,mem_24g_bind_payload
+	branch g24_dongle_bind_payload_cfg
+		
+g24_dongle_bind_second_step:
+	call g24_fetch_mem_rxdata_temp_add3_1byte
+	beq BIND_MOUSE,g24_dongle_bind_second_step_mouse
+	beq BIND_KEYBOARD,g24_dongle_bind_second_step_keyboard
+	rtn
+g24_dongle_bind_second_step_mouse:
+	call g24_dongle_bind_ms_payload_cfg
+	setarg offset_dongle_ms_bind_step
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_dongle_ms_bind_step
+	beq 1,g24_dongle_ms_bind_step_set2
+	rtn
+g24_dongle_ms_bind_step_set2:
+	setarg 2
+	//jam 2,mem_dongle_ms_bind_step
+g24_store_mem_ms_bind_step:
+	arg offset_dongle_ms_bind_step,rega
+	branch g24_set_contw_with_regb_store_1byte
+	
+g24_dongle_bind_second_step_keyboard:
+	call g24_dongle_bind_kb_payload_cfg
+	setarg offset_dongle_kb_bind_step
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_dongle_kb_bind_step
+	beq 1,g24_dongle_kb_bind_step_set2
+	rtn
+g24_dongle_kb_bind_step_set2:
+	setarg 2
+	//jam 2,mem_dongle_kb_bind_step
+g24_store_mem_kb_bind_step:
+	arg offset_dongle_kb_bind_step,rega
+	branch g24_set_contw_with_regb_store_1byte
+
+g24_dongle_bind_third_step:
+	call g24_fetch_mem_rxdata_temp_add3_1byte
+	beq BIND_MOUSE,g24_dongle_bind_third_step_mouse
+	beq BIND_KEYBOARD,g24_dongle_bind_third_step_keyboard
+	rtn
+g24_dongle_bind_third_step_mouse:
+	setarg offset_dongle_ms_bind_step
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_dongle_ms_bind_step
+	beq 2,g24_dongle_ms_bind_step_success
+	rtn
+g24_dongle_ms_bind_step_success:
+	call g24_fetch_mem_bind_device_status
+	//fetch 1,mem_dongle_bind_device_status
+	or_into 0x01,pdata
+	call g24_store_mem_bind_device_status
+	//store 1,mem_dongle_bind_device_status
+g24_dongle_bind_exit:	
+	setarg 0
+	setarg offset_dongle_ms_bind_step
+	iadd regc,contw
+	istore 2,contw
+	branch g24_rx_interrupt_clear
+
+g24_dongle_bind_third_step_keyboard:
+	setarg offset_dongle_kb_bind_step
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_dongle_kb_bind_step
+	bne 0,g24_dongle_kb_bind_step_success
+	rtn
+g24_dongle_kb_bind_step_success:
+	call g24_fetch_mem_bind_device_status
+	//fetch 1,mem_dongle_bind_device_status
+	or_into 0x02,pdata
+	call g24_store_mem_bind_device_status
+	//store 1,mem_dongle_bind_device_status
+	branch g24_dongle_bind_exit
+
+	
+dongle_usb_dispatch:
+	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
+	bpatch patch17_6,mem_patch17
+	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
+usb0_data_ready_report_set0:
+	jam 0,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 usb0_data_ready_report_set0
+dongle_dispose_cmd_get_bind:
+	call g24_fetch_mem_bind_device_status
+	//fetch 1,mem_dongle_bind_device_status
+	store 1,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+dongle_dispose_cmd_exit_bind:
+	call g24_set_work_mem_dongle_work_mode
+	//jam DONGLE_WORK,mem_dongle_work_mode
+	call g24_set0_mem_dongle_mode_init
+	//jam CLEAR_INIT,mem_dongle_mode_init
+	call g24_fetch_mem_bind_device_status
+	//fetch 1,mem_dongle_bind_device_status
+	store 1,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+
+dongle_dispose_cmd_read_mode:
+dongle_dispose_in_bind_mode:
+	jam COMMAND_BIND,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+
+dongle_dispose_cmd_mode:
+	fetch 1,mem_usb0_set_report_data+2
+	beq COM_MODE_BIND,dongle_enter_bind_mode
+//	beq COM_MODE_TEST,dongle_enter_test_mode
+	branch usb0_data_ready_report_set0
+dongle_enter_bind_mode:
+	//jam DONGLE_BIND,mem_dongle_work_mode
+	//jam CLEAR_INIT,mem_dongle_mode_init
+	call g24_bind_mode_enable
+usb0_data_ready_report_set1:
+	jam 1,mem_usb0_data_ready_report
+	rtn
+//dongle_enter_test_mode:
+//	jam DONGLE_TEST,mem_dongle_work_mode
+//	branch usb0_data_ready_report_set1
+
+dongle_dispose_cmd_current_project:
+	jam PRODUCT_ID,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+
+dongle_dispose_cmd_current_mode:
+	call g24_fetch_mem_dongle_work_mode
+	//fetch 1,mem_dongle_work_mode
+	beq DONGLE_WORK,dongle_dispose_in_work_mode
+	beq DONGLE_BIND,dongle_dispose_in_bind_mode
+//	beq DONGLE_TEST,dongle_dispose_in_test_mode
+	rtn
+dongle_dispose_in_work_mode:
+	jam COMMAND_MODE,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+//dongle_dispose_in_test_mode:
+//	jam COMMAND_TEST,mem_usb0_get_report_data+1
+//	branch usb0_data_ready_report_set1
+	
+dongle_dispose_cmd_current_fw_version:
+	jam FW_VERSION0,mem_usb0_get_report_data+1
+	jam FW_VERSION1,mem_usb0_get_report_data+2
+	jam FW_VERSION2,mem_usb0_get_report_data+3
+	branch usb0_data_ready_report_set1
+
+dongle_dispose_cmd_user_defined:
+	//report_id|cmd|data_len|data
+	call g24_set1_mem_ackpayload_enable
+	fetch 1,mem_usb0_set_report_data+2	//data_len:max 30bytes
+	increase 2,pdata
+	copy pdata,loopcnt
+	arg mem_usb0_set_report_data,contr
+	setarg offset_24g_ackpayload
+	iadd regc,contw
+	branch memcpy
+
+
+dongle_auto_bind:
+	bpatch patch17_7,mem_patch17
+	call g24_mode_switch_init
+dongle_auto_bind_loop:
+	call g24_receive_process
+	call usb_isr
+	branch dongle_auto_bind_loop
+
+g24_dongle_work_mode_auto:
+	call g24_fetch_mem_dongle_work_mode
+	//fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_WORK
+	call g24_dongle_work_mode_start
+	branch g24_rx_nodata_process
+
+g24_dongle_bind_mode_auto:
+	call g24_fetch_mem_dongle_work_mode
+	//fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_BIND
+	call g24_dongle_bind_init
+	call g24_dongle_bind_data_process
+	call g24_fetch_mem_bind_device_status
+	//fetch 1,mem_dongle_bind_device_status
+	rtn blank
+	call g24_set0_mem_mode_switch
+	//jam 0,mem_24g_mode_switch
+	call dongle_check_mode
+	call g24_enable_nodata_timer
+g24_timer_init:
+	setarg 0
+	add regc,offset_24g_tx_btclk,contw
+	//store 4,mem_24g_tx_btclk
+	branch g24_contw_istore_4byte
+
+g24_timer_check:
+	call disable_user
+	add regc,offset_24g_tx_btclk,rega
+	ifetcht 4,rega	
+	//fetcht 4,mem_24g_tx_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	add regc,offset_24g_tx_btclk,rega
+	ifetch 4,rega
+	//fetch 4,mem_24g_tx_btclk
+	add regc,offset_24g_interval,rega
+	ifetcht 1,rega
+	//fetcht 1,mem_24g_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	add regc,offset_24g_tx_btclk,contw
+	istore 4,contw
+	//store 4,mem_24g_tx_btclk
+	branch enable_user
+
+g24_mode_switch_init:
+	setarg 1
+	call g24_store_mem_mode_switch
+	//jam 1,mem_24g_mode_switch
+	call g24_set0_mem_time_slice
+	//jam 0,mem_24g_time_slice
+	setarg 0xff
+	add regc,offset_24g_interval,contw
+	istore 1,contw
+	//jam 0xff,mem_24g_interval
+	branch g24_timer_init
+
+g24_mode_switch:
+	setarg offset_24g_mode_switch
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_mode_switch
+	rtn blank
+	call g24_timer_check
+	nrtn user
+	call g24_fetch_mem_time_slice
+	//fetch 1,mem_24g_time_slice
+	increase 1,pdata
+	and_into 1,pdata
+	call g24_store_mem_time_slice
+	//store 1,mem_24g_time_slice
+	beq 0,dongle_check_mode
+	beq 1,g24_bind_mode_enable
+	rtn
+
+g24_bind_mode_enable:
+	//jam DONGLE_BIND,mem_dongle_work_mode
+	//jam CLEAR_INIT,mem_dongle_mode_init
+	//rtn
+	setarg DONGLE_BIND
+	call g24_store_mem_dongle_work_mode
+	branch g24_set0_mem_dongle_mode_init
+
+g24_enable_nodata_timer:
+	setarg 1
+	call g24_store_mem_nodata_timer_enable
+	//jam 1,mem_24g_nodata_timer_enable
+g24_enable_nodata_timer_init:
+	setarg TIMER_NODATA_DELAY
+	arg TIMER_NODATA,queue
+	branch timer_init
+
+g24_rx_nodata_process:
+	call g24_fetch_mem_nodata_timer_enable
+	//fetch 1,mem_24g_nodata_timer_enable
+	rtn blank
+	arg TIMER_NODATA,queue
+	call timer_check
+	nrtn blank
+	call g24_set0_mem_nodata_timer_enable
+	//jam 0,mem_24g_nodata_timer_enable
+	//no data for more than 100ms,then go to search
+	setarg DONGLE_SEARCH
+	call g24_store_mem_dongle_work_mode	
+	//jam DONGLE_SEARCH,mem_dongle_work_mode
+	call g24_set0_mem_dongle_mode_init
+	//jam CLEAR_INIT,mem_dongle_mode_init
+	branch g24_rx_interrupt_clear
+
+g24_dongle_search_mode_auto:
+	bpatch patch18_0,mem_patch18
+	call g24_fetch_mem_dongle_work_mode
+	//fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_SEARCH
+	call g24_dongle_search_mode_init
+	call g24_rx_auto_addr_ch_search
+	call g24_receive_transmit_ack
+	nbranch g24_rx_interrupt_clear,user3
+	//dongle addr,then parse rxdata
+	call g24_dongle_search_addr_check
+	call g24_receive_packet_parse,zero
+	//receive data,then go to paired
+	//jam DONGLE_WORK,mem_dongle_work_mode
+	//jam 0,mem_24g_ackpayload_enable
+	call dongle_check_mode
+	call g24_fetch_mem_dongle_mode_init
+	//fetch 1,mem_dongle_mode_init
+	set1 DONGLE_WORK,pdata
+	call g24_store_mem_dongle_mode_init
+	//store 1,mem_dongle_mode_init
+	call g24_rx_interrupt_clear
+	call g24_enable_nodata_timer
+	call g24_dongle_search_addr_check
+	branch g24_dg_ch_num_reinit,zero
+	setarg offset_24g_kb_addr
+	call g24_set_rega_ifetcht_4byte
+	//fetcht 4,mem_24g_kb_addr
+	call g24_fetch_mem_addr_isub_temp
+	branch g24_kb_ch_num_reinit,zero		
+	setarg offset_24g_mouse_addr
+	call g24_set_rega_ifetcht_4byte
+	//fetcht 4,mem_24g_mouse_addr
+	call g24_fetch_mem_addr_isub_temp
+	branch g24_ms_ch_num_reinit,zero
+	rtn
+
+g24_dongle_search_addr_check:
+	setarg offset_24g_rx_addr
+	call g24_set_rega_ifetcht_4byte
+	//fetcht 4,mem_24g_rx_addr
+g24_fetch_mem_addr_isub_temp:
+	call g24_fetch_mem_addr
+	//fetch 4,mem_24g_addr
+	isub temp,null
+	rtn
+
+g24_dg_ch_num_reinit:
+	setarg offset_24g_dg_ch_number
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_dg_ch_number
+g24_current_ch_num_reinit:
+	//store 1,mem_24g_current_ch_number
+	add regc,offset_24g_current_ch_number,contw
+	branch g24_contw_istore_1byte
+
+g24_kb_ch_num_reinit:
+	setarg offset_24g_kb_ch_number
+	call g24_set_rega_ifetch_1byte	
+	//fetch 1,mem_24g_kb_ch_number
+	branch g24_current_ch_num_reinit
+g24_ms_ch_num_reinit:
+	setarg offset_24g_ms_ch_number
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_ms_ch_number
+	branch g24_current_ch_num_reinit
+
+g24_dongle_search_mode_init:
+	call g24_fetch_mem_dongle_mode_init
+	//fetch 1,mem_dongle_mode_init
+	rtnbit1 DONGLE_SEARCH
+	set1 DONGLE_SEARCH,pdata
+	call g24_store_mem_dongle_mode_init
+	//store 1,mem_dongle_mode_init
+	call g24_set0_mem_time_slice
+	//jam 0,mem_24g_time_slice
+	call g24_set1_mem_ackpayload_enable
+	//jam 1,mem_24g_ackpayload_enable
+	setarg 0
+	add regc,offset_rssi_noise_dg_index,contw
+	istore 3,contw
+	//store 3,mem_rssi_noise_dg_index
+	arg offset_24g_dg_config_ch_once,rega
+	call g24_set_contw_with_temp
+	istore 7,contw
+	//store 7,mem_24g_dg_config_ch_once
+
+	call g24_dongle_search_addr_check
+	nrtn zero
+	add regc,offset_24g_current_ch_number,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_current_ch_number
+	arg offset_24g_dg_ch_number,rega
+	call g24_set_contw_with_regb_store_1byte
+	//store 1,mem_24g_dg_ch_number
+	add regc,offset_24g_ch,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_ch
+	//store 1,mem_24g_dg_last_ch
+	branch g24_store_mem_dg_last_ch
+
+g24_rx_auto_addr_ch_search:
+	bpatch patch18_1,mem_patch18
+	call g24_fetch_mem_time_slice
+	//fetch 1,mem_24g_time_slice
+	increase 1,pdata
+	and_into 3,pdata
+	call g24_store_mem_time_slice
+	//store 1,mem_24g_time_slice
+	//pairing address and channel come first
+	beq 0,g24_rx_auto_bind_config_kb
+	beq 1,g24_rx_auto_bind_config_dongle
+	beq 2,g24_rx_auto_bind_config_mouse
+	beq 3,g24_rx_auto_bind_config_dongle
+	rtn
+
+g24_rx_auto_bind_config_mouse:
+	call g24_dongle_bind_ms_payload_cfg
+	setarg offset_24g_mouse_addr
+	call g24_set_rega_ifetch_4byte
+	//fetch 4,mem_24g_mouse_addr
+	branch g24_rx_auto_addr_ch_search,blank
+	call g24_store_mem_addr
+	//store 4,mem_24g_addr
+	setarg offset_24g_ms_config_ch_once
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_ms_config_ch_once
+	call g24_ms_config_ch_once,blank
+	setarg offset_24g_ms_last_ch
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_ms_last_ch
+	call g24_store_mem_ch
+	//store 1,mem_24g_ch
+	add regc,offset_rssi_noise_ms_index,rega
+	ifetcht 1,rega
+	//fetcht 1,mem_rssi_noise_ms_index
+	arg mem_rssi_noise_ms_buffer,rega
+	call rssi_noise_store
+	add regc,offset_rssi_noise_ms_index,contw
+	istoret 1,contw
+	//storet 1,mem_rssi_noise_ms_index
+	call g24_noise_rssi_average
+	add regc,offset_rssi_noise_ms_avg,contw
+	istoret 1,contw
+	//storet 1,mem_rssi_noise_ms_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	setarg offset_24g_ms_ch_number	
+	call g24_set_rega_ifetcht_1byte
+	//fetcht 1,mem_24g_ms_ch_number
+	call g24_ch_temp_incre_size4 //map size =4
+	arg offset_24g_ms_ch_number,rega
+	call g24_set_contw_with_regb2
+	istoret 1,contw
+	//storet 1,mem_24g_ms_ch_number
+g24_store_mem_ms_last_ch:
+	//store 1,mem_24g_ms_last_ch
+	arg offset_24g_ms_last_ch,rega
+	branch g24_set_contw_with_regb_store_1byte
+
+g24_ms_config_ch_once:
+	setarg 1
+	arg offset_24g_ms_config_ch_once,rega
+	call g24_set_contw_with_regb_store_1byte
+	//jam 1,mem_24g_ms_config_ch_once
+	arg 0,temp
+	call g24_ch_calc
+	//store 1,mem_24g_ms_last_ch
+	//rtn
+	branch g24_store_mem_ms_last_ch
+	
+g24_rx_auto_bind_config_kb:
+	call g24_dongle_bind_kb_payload_cfg
+	setarg offset_24g_kb_addr
+	call g24_set_rega_ifetch_4byte
+	//fetch 4,mem_24g_kb_addr
+	branch g24_rx_auto_addr_ch_search,blank
+	call g24_store_mem_addr
+	//store 4,mem_24g_addr
+	setarg offset_24g_kb_config_ch_once
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_kb_config_ch_once
+	call g24_kb_config_ch_once,blank
+	setarg offset_24g_kb_last_ch
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_kb_last_ch
+	call g24_store_mem_ch
+	//store 1,mem_24g_ch
+	add regc,offset_rssi_noise_kb_index,rega
+	ifetcht 1,rega	
+	//fetcht 1,mem_rssi_noise_kb_index
+	arg mem_rssi_noise_kb_buffer,rega
+	call rssi_noise_store
+	add regc,offset_rssi_noise_kb_index,contw
+	istoret 1,contw
+	//storet 1,mem_rssi_noise_kb_index
+	call g24_noise_rssi_average
+	add regc,offset_rssi_noise_kb_avg,contw
+	istoret 1,contw
+	//storet 1,mem_rssi_noise_kb_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	setarg offset_24g_kb_ch_number	
+	call g24_set_rega_ifetcht_1byte	
+	//fetcht 1,mem_24g_kb_ch_number
+	call g24_ch_temp_incre_size4 //map size =4
+	arg offset_24g_kb_ch_number,rega
+	call g24_set_contw_with_regb2	
+	istoret 1,contw
+	//storet 1,mem_24g_kb_ch_number
+g24_store_mem_kb_last_ch:
+	//store 1,mem_24g_kb_last_ch
+	arg offset_24g_kb_last_ch,rega
+	branch g24_set_contw_with_regb_store_1byte
+
+g24_kb_config_ch_once:
+	setarg 1
+	arg offset_24g_kb_config_ch_once,rega
+	call g24_set_contw_with_regb_store_1byte
+	//jam 1,mem_24g_kb_config_ch_once
+	arg 0,temp
+	call g24_ch_calc
+	//store 1,mem_24g_kb_last_ch
+	//rtn
+	branch g24_store_mem_kb_last_ch
+
+g24_rx_auto_bind_config_dongle:
+	call g24_dongle_bind_ms_payload_cfg
+	call g24_fetch_mem_rx_addr
+	//fetch 4,mem_24g_rx_addr
+	call g24_store_mem_addr
+	//store 4,mem_24g_addr
+	setarg offset_24g_dg_config_ch_once
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_dg_config_ch_once
+	call g24_dg_config_ch_once,blank
+	call g24_dg_store_config_ch
+	add regc,offset_rssi_noise_dg_index,rega
+	ifetcht 1,rega	
+	//fetcht 1,mem_rssi_noise_dg_index
+	arg mem_rssi_noise_dg_buffer,rega
+	call rssi_noise_store
+	add regc,offset_rssi_noise_dg_index,contw
+	istoret 1,contw
+	//storet 1,mem_rssi_noise_dg_index
+	call g24_noise_rssi_average
+	add regc,offset_rssi_noise_dg_avg,contw
+	istoret 1,contw
+	//storet 1,mem_rssi_noise_dg_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	setarg offset_24g_dg_ch_number	
+	call g24_set_rega_ifetcht_1byte	
+	//fetcht 1,mem_24g_dg_ch_number
+	call g24_ch_temp_incre_size4 //map size =4
+	arg offset_24g_dg_ch_number,rega
+	call g24_set_contw_with_regb2
+	istoret 1,contw
+	//storet 1,mem_24g_dg_ch_number
+g24_store_mem_dg_last_ch:
+	//store 1,mem_24g_dg_last_ch
+	//rtn
+	arg offset_24g_dg_last_ch,rega
+	branch g24_set_contw_with_regb_store_1byte
+
+
+g24_dg_config_ch_once:
+	//jam 1,mem_24g_dg_config_ch_once
+	//fetch 1,mem_24g_dg_last_ch
+	//store 1,mem_24g_ch
+	//rtn
+	setarg 1
+	arg offset_24g_dg_config_ch_once,rega
+	call g24_set_contw_with_regb_store_1byte
+g24_dg_store_config_ch:
+	setarg offset_24g_dg_last_ch
+	call g24_set_rega_ifetch_1byte
+	branch g24_store_mem_ch
+
+
+g24_transmit_ack:
+//data type
+	add regc,offset_24g_rxbuf,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_rxbuf
+	call g24_store_mem_data_type
+	//store 1,mem_24g_data_type
+//read len pid crc
+	call g24_read_len_pid_crc
+//read ack
+	call g24_fetch_mem_rxbuf_add1
+	//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_ackpayload_prep:
+	bpatch patch18_2,mem_patch18
+	add regc,offset_24g_datalen,contw
+	call g24_mem_set0
+	//jam 0,mem_24g_datalen
+	setarg offset_24g_ackpayload_enable
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_ackpayload_enable
+	rtn blank
+	setarg 0x06
+	add regc,offset_24g_datalen,contw
+	istore 1,contw
+	//jam 0x06,mem_24g_datalen
+	arg 0x06,loopcnt
+	setarg offset_24g_bind_payload
+	iadd regc,contr
+	//arg mem_24g_bind_payload,contr
+	add regc,offset_24g_txbuf,contw
+	//arg mem_24g_txbuf,contw
+	branch memcpy
+
+
+g24_receive_packet_start:
+	call g24_receive_transmit_ack
+	nbranch g24_rx_interrupt_clear,user3
+	branch g24_receive_packet_parse
+
+g24_receive_transmit_ack:
+	call g24_rx_interrupt_clear
+	call g24_receive_packet
+	nrtn user3
+	branch g24_transmit_ack
+
+g24_receive_packet_parse:
+	bpatch patch18_3,mem_patch18
+	call g24_receive_packet_parse_pid_crc
+	nbranch g24_rx_interrupt_clear,user
+	add regc,offset_24g_rxdata_length,rega
+	ifetch 1,rega
+	//fetch 1,mem_24g_rxdata_length
+	branch g24_rx_interrupt_clear,blank
+	increase 2,pdata
+	iforce loopcnt
+	add regc,offset_24g_rxbuf,contr
+	//arg mem_24g_rxbuf,contr
+	setarg offset_24g_rxdata_temp
+	iadd regc,contw
+	//arg mem_24g_rxdata_temp,contw
+	call memcpy
+	call g24_set0_mem_mode_switch
+	//jam 0,mem_24g_mode_switch
+	call g24_fetch_mem_pair_mode
+	//fetch 1,mem_24g_pair_mode
+	call g24_enable_nodata_timer,blank
+	setarg offset_24g_rxdata_temp_add2
+	call g24_set_rega_ifetch_1byte
+	//fetch 1,mem_24g_rxdata_temp+2
+	beq 0x01,g24_data_type1
+	beq 0x02,g24_data_type2
+	beq 0x03,g24_data_type3
+	beq 0xff,g24_data_attemp
+	branch g24_rx_interrupt_clear
+
+g24_receive_packet_parse_pid_crc:
+	call g24_head_ptr2regc
+	call disable_user
+	add regc,offset_24g_sta_pid,rega
+	ifetch 1,rega		
+	//fetch 1,mem_24g_sta_pid
+	add regc,offset_24g_last_pid,rega
+	ifetcht 1,rega		
+	//fetcht 1,mem_24g_last_pid
+	isub temp,null
+	ncall enable_user,zero
+	add regc,offset_24g_sta_pid,rega
+	ifetch 1,rega	
+	//fetch 1,mem_24g_sta_pid
+	add regc,offset_24g_last_pid,contw
+	istore 1,contw	
+	//store 1,mem_24g_last_pid
+	add regc,offset_24g_sta_crc,rega
+	ifetch 3,rega	
+	//fetch 3,mem_24g_sta_crc
+	add regc,offset_24g_last_crc,rega
+	ifetcht 3,rega	
+	//fetcht 3,mem_24g_last_crc
+	isub temp,null
+	ncall enable_user,zero
+	add regc,offset_24g_sta_crc,rega
+	ifetch 3,rega
+	//fetch 3,mem_24g_sta_crc
+	add regc,offset_24g_last_crc,contw
+	//store 3,mem_24g_last_crc
+	branch g24_contw_istore_3byte
+
+g24_data_type1:
+	call g24_ch_timer_reinit
+	call g24_fetch_mem_abort_pac
+	store 1,mem_temp
+	//fetch 1,mem_24g_abort_pac
+	call g24_fetcht_mem_rxdata_temp
+	fetch 1,mem_temp
+	//fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	setflag true,0,pdata
+	add regc,offset_24g_abort_pac,contw
+	istore 1,contw
+	//store 1,mem_24g_abort_pac
+	beq 1,g24_data_attemp_mouse
+	call g24_fetch_mem_hop_pac
+	//fetch 1,mem_24g_hop_pac
+	call g24_fetcht_mem_rxdata_temp
+	//fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_hop,temp
+	setflag true,0,pdata
+	call g24_store_mem_hop_pac
+	//store 1,mem_24g_hop_pac
+	add regc,offset_24g_cb_rxdata_type1,rega
+	ifetch 2,rega
+	//fetch 2,mem_24g_cb_rxdata_type1
+	branch callback_func
+
+dongle_rxdata_type1:
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data	//report id
+	call g24_fetch_mem_rxdata_temp_add3_7byte
+	//fetch 7,mem_24g_rxdata_temp+3	//key
+	istore 7,contw
+	call g24_fetch_mem_rxdata_temp_add3_7byte
+	//fetch 7,mem_24g_rxdata_temp+3	//key
+	ncall g24_ms_enable_blank_data_forcibly,blank//get kb data
+	call g24_fetch_mem_rxdata_temp_add3_7byte
+	//fetch 7,mem_24g_rxdata_temp+3	//key
+	call g24_ms_disable_blank_data_forcibly,blank
+g24_data_type1_usbtx_enable:
+	jam USB_EP2_MS,mem_usb_ep2_data
+g24_data_type1_usbtx_enable_ep2:	
+	fetch 1,mem_usb_tx_enable
+	set1 2,pdata
+	store 1,mem_usb_tx_enable
+	rtn
+	
+g24_ms_enable_blank_data_forcibly:
+	setarg 1
+	call g24_store_mem_ms_blank_data_enable	
+	//jam 1,mem_24g_ms_blank_data_enable
+g24_ms_enable_blank_data_timer:
+	setarg TIMER_MS_BLANK_DELAY
+	arg TIMER_MS_BLANK,queue
+	branch timer_init
+g24_ms_disable_blank_data_forcibly:
+	call g24_set0_mem_ms_blank_data_enable
+	//jam 0,mem_24g_ms_blank_data_enable
+g24_ms_disable_blank_data_timer:	
+	setarg 0
+	arg TIMER_MS_BLANK,queue
+	branch timer_init
+	
+g24_data_type2:
+	call g24_fetcht_mem_rxdata_temp
+	//fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	branch g24_data_attemp_kbd,true
+	arg mem_usb_kb_data,contw
+	call g24_data_type2_reverse_data
+	fetch 8,mem_usb_kb_data
+	ncall g24_kb_enable_blank_data_forcibly,blank//get kb data
+	fetch 8,mem_usb_kb_data
+	call g24_kb_disable_blank_data_forcibly,blank
+	call g24_head_ptr2regc
+	fetch 8,mem_usb_kb_data
+	arg offset_24g_kb_data_sta_data,rega
+	call g24_set_contw_with_temp
+	istore 8,contw
+	//store 8,mem_24g_kb_data_sta_data
+	setarg offset_24g_kb_data_last_data
+	iadd regc,rega
+	ifetcht 8,rega
+	//fetcht 8,mem_24g_kb_data_last_data
+	isub temp,null
+	ncall g24_kb_data_dispose,zero
+	setarg offset_24g_kb_data_sta_data
+	iadd regc,rega
+	ifetch 8,rega
+	//fetch 8,mem_24g_kb_data_sta_data
+	arg offset_24g_kb_data_last_data,rega
+	call g24_set_contw_with_temp
+	istore 8,contw
+	//store 8,mem_24g_kb_data_last_data
+	branch g24_rx_interrupt_clear
+
+g24_data_type2_reverse_data:
+	setarg offset_24g_rxdata_temp_add2
+	iadd regc,contr
+	//arg mem_24g_rxdata_temp+2,contr
+	arg 9,loopcnt
+	branch reverse_byte
+
+g24_kb_enable_blank_data_forcibly:
+	setarg 1
+	call g24_store_mem_kb_blank_data_enable
+	//jam 1,mem_24g_kb_blank_data_enable
+g24_kb_enable_blank_data_timer:	
+	setarg TIMER_KB_BLANK_DELAY
+	arg TIMER_KB_BLANK,queue
+	branch timer_init
+
+g24_kb_disable_blank_data_forcibly:
+	call g24_set0_mem_kb_blank_data_enable
+	//jam 0,mem_24g_kb_blank_data_enable
+g24_kb_disable_blank_data_timer:	
+	setarg 0
+	arg TIMER_KB_BLANK,queue
+	branch timer_init
+
+g24_kb_data_dispose:
+g24_kb_data_into_ep1_fifo:
+	jam USB_EP1_KB,mem_usb_ep1_data
+	fetch 1,mem_usb_tx_enable
+	set1 1,pdata
+	store 1,mem_usb_tx_enable
+	rtn
+
+g24_data_type3:
+	arg mem_usb_kb_multikey,contw
+	call g24_data_type2_reverse_data
+	fetch 2,mem_usb_kb_multikey+1
+	ncall g24_kb_mul_enable_blank_data_forcibly,blank//get multikey data
+	fetch 2,mem_usb_kb_multikey+1
+	call g24_kb_mul_disable_blank_data_forcibly,blank
+	call g24_head_ptr2regc
+	fetch 3,mem_usb_kb_multikey
+	arg offset_24g_kb_multikey_sta_data,rega
+	call g24_set_contw_with_temp_store_3byte
+	//store 3,mem_24g_kb_multikey_sta_data
+	setarg offset_24g_kb_multikey_last_data
+	iadd regc,rega
+	ifetcht 3,rega
+	//fetcht 3,mem_24g_kb_multikey_last_data
+	isub temp,null
+	ncall g24_kb_mul_data_into_ep2_fifo,zero
+	setarg offset_24g_kb_multikey_sta_data
+	iadd regc,rega
+	ifetch 3,rega
+	//fetch 3,mem_24g_kb_multikey_sta_data
+	arg offset_24g_kb_multikey_last_data,rega
+	call g24_set_contw_with_temp_store_3byte
+	//store 3,mem_24g_kb_multikey_last_data
+	branch g24_rx_interrupt_clear
+
+g24_kb_mul_data_into_ep2_fifo:
+	jam USB_EP2_MULTIKEY,mem_usb_ep2_data
+	branch g24_data_type1_usbtx_enable_ep2
+
+g24_kb_mul_enable_blank_data_forcibly:
+	setarg 1
+	call g24_store_mem_kb_mul_blank_data_enable
+	//jam 1,mem_24g_kb_mul_blank_data_enable
+g24_kb_mul_enable_blank_data_timer:	
+	setarg TIMER_KB_MUL_BLANK_DELAY
+	arg TIMER_KB_MUL_BLANK,queue
+	branch timer_init
+
+g24_kb_mul_disable_blank_data_forcibly:
+	call g24_set0_mem_kb_mul_blank_data_enable
+	//jam 0,mem_24g_kb_mul_blank_data_enable
+g24_kb_mul_disable_blank_data_timer:	
+	setarg 0
+	arg TIMER_KB_MUL_BLANK,queue
+	branch timer_init
+	
+g24_data_attemp:
+	call g24_fetch_mem_rxdata_temp_add3_1byte
+	//fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_MOUSE,g24_data_attemp_mouse
+	beq DATATYPE_KEYBOARD,g24_data_attemp_kbd
+	rtn
+g24_data_attemp_mouse:
+	setarg offset_24g_rxdata_temp_add4
+	call g24_set_rega_ifetch_4byte
+	arg offset_24g_mouse_addr,rega
+	call g24_set_contw_with_temp
+	//fetch 4,mem_24g_rxdata_temp+4
+	//store 4,mem_24g_mouse_addr
+	branch g24_contw_istore_4byte
+
+g24_data_attemp_kbd:
+	setarg offset_24g_rxdata_temp_add4
+	call g24_set_rega_ifetch_4byte
+	arg offset_24g_kb_addr,rega
+	call g24_set_contw_with_temp
+	//fetch 4,mem_24g_rxdata_temp+4
+	//store 4,mem_24g_kb_addr
+	branch g24_contw_istore_4byte
+
+g24_store_mem_24g_mode:
+	call g24_head_ptr2regc
+	add regc,offset_24g_mode,contw
+	istore 1,contw
+	rtn
+
+g24_fetch_mem_device_addr:
+	call g24_head_ptr2regc
+	add regc,offset_24g_device_addr,rega
+	branch g24_rega_ifetch_4byte
+g24_store_mem_device_addr:
+	call g24_head_ptr2regc
+	add regc,offset_24g_device_addr,contw
+	branch g24_contw_istore_4byte
+
+g24_fetch_mem_addr:
+	add regc,offset_24g_addr,rega
+	branch g24_rega_ifetch_4byte
+g24_store_mem_addr:
+	add regc,offset_24g_addr,contw
+g24_contw_istore_4byte:	
+	istore 4,contw
+	rtn
+
+g24_store_mem_ch:
+	add regc,offset_24g_ch,contw
+	branch g24_contw_istore_1byte
+
+g24_set0_mem_pid:
+	setarg 0
+g24_store_mem_pid:
+	call g24_head_ptr2regc
+	add regc,offset_24g_pid,contw
+	branch g24_contw_istore_1byte
+
+g24_store_mem_txpayload:
+	add regc,offset_24g_txpayload,contw
+	branch g24_contw_istore_1byte
+
+g24_set4_mem_max_retry:
+	setarg 4
+g24_store_mem_max_retry:
+	add regc,offset_24g_max_retry,contw
+	branch g24_contw_istore_1byte
+
+g24_fetch_mem_data_type:
+	add regc,offset_24g_data_type,rega
+	branch g24_rega_ifetch_1byte
+g24_store_mem_data_type:
+	add regc,offset_24g_data_type,contw
+	branch g24_contw_istore_1byte
+
+g24_set2_mem_sync_cnt:
+	setarg 2
+g24_store_mem_sync_cnt:
+	add regc,offset_24g_sync_cnt,contw
+	branch g24_contw_istore_1byte
+
+g24_set1_mem_rf_last_sta:
+	setarg 1
+g24_store_mem_rf_last_sta:
+	call g24_head_ptr2regc
+	add regc,offset_24g_rf_last_sta,contw
+	branch g24_contw_istore_1byte
+
+g24_fetch_mem_hop_pac:
+	call g24_head_ptr2regc
+	add regc,offset_24g_hop_pac,rega
+	branch g24_rega_ifetch_1byte
+g24_set1_mem_hop_pac:
+	setarg 1
+g24_store_mem_hop_pac:
+	call g24_head_ptr2regc
+	add regc,offset_24g_hop_pac,contw
+	branch g24_contw_istore_1byte
+
+g24_fetch_mem_abort_pac:
+	call g24_head_ptr2regc
+	add regc,offset_24g_abort_pac,rega
+	branch g24_rega_ifetch_1byte
+g24_set1_mem_abort_pac:
+	setarg 1
+g24_store_mem_abort_pac:
+	call g24_head_ptr2regc
+	add regc,offset_24g_abort_pac,contw
+	branch g24_contw_istore_1byte
+
+g24_fetch_mem_pairing_sm:
+	call g24_head_ptr2regc
+	add regc,offset_24g_pairing_sm,rega
+	branch g24_rega_ifetch_1byte
+g24_store_mem_pairing_sm:
+	add regc,offset_24g_pairing_sm,contw
+	branch g24_contw_istore_1byte
+
+g24_fetch_mem_rf_hop_ch:
+	add regc,offset_24g_rf_hop_ch,rega
+	branch g24_rega_ifetch_1byte
+g24_set0_mem_rf_hop_ch:
+	setarg 0
+g24_store_mem_rf_hop_ch:
+	add regc,offset_24g_rf_hop_ch,contw
+	branch g24_contw_istore_1byte
+
+g24_fetch_mem_rf_work_stage:
+	add regc,offset_24g_rf_work_stage,rega
+	branch g24_rega_ifetch_1byte
+	
+g24_fetch_mem_rxbuf_add1:
+	add regc,offset_24g_rxbuf_add1,rega
+	branch g24_rega_ifetch_1byte
+
+g24_fetch_mem_check_dongle_times:
+	add regc,offset_24g_check_dongle_times,rega
+	branch g24_rega_ifetch_1byte
+g24_set0_mem_check_dongle_times:
+	setarg 0
+g24_store_mem_check_dongle_times:
+	call g24_head_ptr2regc
+	add regc,offset_24g_check_dongle_times,contw
+	branch g24_contw_istore_1byte
+
+g24_store_mem_tx_power:
+	call g24_head_ptr2regc
+	add regc,offset_tx_power_temp,rega
+	ifetch 1,rega
+g24_store_mem_txpower:
+	store 1,mem_tx_power
+	rtn
+
+g24_store_mem_tx_power_temp:
+	call g24_head_ptr2regc
+	fetch 1,mem_tx_power
+	//store 1,mem_tx_power_temp
+	add regc,offset_tx_power_temp,contw
+	branch g24_contw_istore_1byte
+
+g24_fetch_mem_power_ctrl_pac:	
+	add regc,offset_power_ctrl_packet_cnt,rega
+	branch g24_rega_ifetch_1byte
+
+g24_store_mem_power_ctrl_level:
+	add regc,offset_power_ctrl_level,contw
+	branch g24_contw_istore_1byte
+
+g24_fetcht_mem_rxdata_temp:
+	setarg offset_24g_rxdata_temp
+g24_set_rega_ifetcht_1byte:	
+	iadd regc,rega
+	ifetcht 1,rega
+	rtn
+
+g24_fetch_mem_rf_laststa:
+	setarg offset_24g_rf_laststa
+	branch g24_set_rega_ifetch_1byte
+g24_set0_mem_rf_laststa:
+	setarg 0
+g24_store_mem_rf_laststa:
+	arg offset_24g_rf_laststa,rega
+	branch g24_set_contw_with_regb_store_1byte
+
+g24_fetch_mem_rx_addr:
+	setarg offset_24g_rx_addr
+g24_set_rega_ifetch_4byte:	
+	call g24_set_rega
+g24_rega_ifetch_4byte:
+	ifetch 4,rega
+	rtn
+
+g24_fetch_mem_time_slice:
+	setarg offset_24g_time_slice
+	branch g24_set_rega_ifetch_1byte
+g24_set0_mem_time_slice:
+	setarg 0
+g24_store_mem_time_slice:
+	arg offset_24g_time_slice,rega
+	branch g24_set_contw_with_regb_store_1byte
+
+g24_set0_mem_mode_switch:
+	setarg 0
+g24_store_mem_mode_switch:
+	arg offset_24g_mode_switch,rega
+	branch g24_set_contw_with_regb_store_1byte
+	
+g24_store_mem_bind_payload:
+	arg offset_24g_bind_payload,rega
+	branch g24_set_contw_with_regb_store_1byte	
+	
+g24_fetch_mem_bind_device_status:
+	setarg offset_dongle_bind_device_status
+	branch g24_set_rega_ifetch_1byte
+g24_store_mem_bind_device_status:
+	arg offset_dongle_bind_device_status,rega
+	branch g24_set_contw_with_regb_store_1byte
+
+g24_fetch_mem_dongle_work_mode:
+	setarg offset_dongle_work_mode
+	branch g24_set_rega_ifetch_1byte
+g24_set_work_mem_dongle_work_mode:
+	setarg DONGLE_WORK
+g24_store_mem_dongle_work_mode:
+	arg offset_dongle_work_mode,rega
+	branch g24_set_contw_with_regb_store_1byte
+
+g24_fetch_mem_dongle_mode_init:
+	setarg offset_dongle_mode_init
+	branch g24_set_rega_ifetch_1byte
+g24_set0_mem_dongle_mode_init:
+	setarg CLEAR_INIT
+g24_store_mem_dongle_mode_init:
+	arg offset_dongle_mode_init,rega
+	branch g24_set_contw_with_regb_store_1byte
+
+g24_set0_mem_ackpayload_enable:
+	setarg 0
+g24_store_mem_ackpayload_enable:
+	arg offset_24g_ackpayload_enable,rega
+	branch g24_set_contw_with_regb_store_1byte
+g24_set1_mem_ackpayload_enable:
+	setarg 1
+	branch g24_store_mem_ackpayload_enable
+
+g24_fetch_mem_rxdata_temp_add3_7byte:
+	setarg offset_24g_rxdata_temp_add3
+	call g24_set_rega
+	ifetch 7,rega
+	rtn
+
+g24_fetch_mem_nodata_timer_enable:
+	setarg offset_24g_nodata_timer_enable
+	branch g24_set_rega_ifetch_1byte
+g24_set0_mem_nodata_timer_enable:
+	setarg 0
+g24_store_mem_nodata_timer_enable:
+	arg offset_24g_nodata_timer_enable,rega
+	branch g24_set_contw_with_regb_store_1byte
+	
+g24_set0_mem_ms_blank_data_enable:
+	setarg 0
+g24_store_mem_ms_blank_data_enable:
+	arg offset_24g_ms_blank_data_enable,rega
+	branch g24_set_contw_with_regb_store_1byte
+
+g24_set0_mem_kb_blank_data_enable:
+	setarg 0
+g24_store_mem_kb_blank_data_enable:
+	arg offset_24g_kb_blank_data_enable,rega
+	branch g24_set_contw_with_regb_store_1byte
+	
+g24_set0_mem_kb_mul_blank_data_enable:
+	setarg 0
+g24_store_mem_kb_mul_blank_data_enable:
+	arg offset_24g_kb_mul_blank_data_enable,rega
+	branch g24_set_contw_with_regb_store_1byte
+	
+g24_store_mem_power_ctrl_threshold_up:
+	arg offset_power_ctrl_threshold_up,rega
+	branch g24_set_contw_with_regb_store_1byte
+	
+g24_store_mem_power_ctrl_threshold_down:
+	arg offset_power_ctrl_threshold_down,rega
+g24_set_contw_with_regb_store_1byte:
+	call g24_set_contw_with_regb
+g24_contw_istore_1byte:
+	istore 1,contw
+	rtn
+
+g24_fetch_mem_pair_mode:
+	setarg offset_24g_pair_mode
+	branch g24_set_rega_ifetch_1byte
+
+g24_store_mem_pair_mode:
+	arg offset_24g_pair_mode,rega
+	branch g24_set_contw_with_regb_store_1byte
+	
+g24_store_mem_pair_txpower:
+	setarg offset_24g_pair_txpower
+	call g24_set_rega_ifetch_1byte
+	branch g24_store_mem_txpower
+
+g24_fetch_mem_rxdata_temp_add3_1byte:
+	setarg offset_24g_rxdata_temp_add3
+	branch g24_set_rega_ifetch_1byte
+
+g24_set_contw_with_temp:
+	copy pdata,temp
+	copy rega,pdata
+	iadd regc,contw
+	copy temp,pdata
+	rtn
+	
+g24_set_contw_with_temp_store_3byte:
+	call g24_set_contw_with_temp
+g24_contw_istore_3byte:	
+	istore 3,contw
+	rtn
+
+g24_set_contw_with_regb:
+	call g24_head_ptr2regc
+g24_set_contw_with_regb2:
+	copy pdata,regb
+	copy rega,pdata
+	iadd regc,contw
+	copy regb,pdata
+	rtn
+
+g24_set_rega:
+	call g24_head_ptr2regc
+	iadd regc,rega
+	rtn
+
+g24_set_rega_ifetch_1byte:
+	call g24_set_rega
+g24_rega_ifetch_1byte:
+	ifetch 1,rega
+	rtn
+
+g24_set_rega_ifetcht_4byte:
+	call g24_set_rega
+	ifetcht 4,rega
+	rtn
+
+g24_mem_set0:
+	setarg 0
+	branch g24_contw_istore_1byte
+
+endif
+
+
Index: DpiSwitch/program/app.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app.prog	(working copy)
@@ -0,0 +1,576 @@
+app_init:
+	bpatch patch18_4,mem_patch18
+	fetch 1,mem_device_option
+	branch app_init,blank				/* wait ram to be initialized */
+//	beq dvc_op_ukey,le_ukey_init
+	beq dvc_op_dongle,dongle_init
+	beq dvc_op_AntiLost,antilost_init
+	beq dvc_op_shutter,shutter_init
+	beq dvc_op_module,module_init
+	beq dvc_op_car,car_init
+	beq dvc_op_remote_car,remote_car_init
+	bbit1 dvc_op_mouse,mouse_init
+	rtn
+	
+app_lpm_init:
+	bpatch patch18_5,mem_patch18
+	jam 0,mem_tester_emulate
+	jam 0,mem_debug_config
+	jam 0, mem_lch_code
+	setarg 0
+	store 5,mem_sp_state_start
+	fetch 1,mem_device_option
+	branch app_lpm_init,blank				/* wait ram to be initialized */
+	beq dvc_op_module,module_lpm_init
+app_lpm_init0:
+	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_bt:
+	fetch 2,mem_cb_bt_process
+	branch callback_func
+	
+app_process_ble:
+	fetch 2,mem_cb_le_process
+	branch callback_func
+
+app_process_bb_event:
+	bpatch patch18_6,mem_patch18
+	//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_BB_CONNECTED,app_evt_bt_conn
+	beq BT_EVT_BUTTON_LONG_PRESSED,app_evt_button_long_pressed
+	beq BT_EVT_SETUP_COMPLETE,app_evt_setup_complete
+	beq BT_EVT_HID_HANDSHAKE,app_evt_hid_handshake
+	beq BT_EVT_HID_CONNECTED,app_bb_event_hid_connected
+	beq BT_EVT_RECONN_FAILED,app_bb_event_reconn_failed
+	beq BT_EVT_BB_DISCONNECTED,app_bb_event_bb_disconn
+	beq BT_EVT_RECONN_PAGE_TIMEOUT,app_bb_event_reconn_failed	
+	beq BT_EVT_LE_CONNECTED,app_le_event_bb_connected
+	beq BT_EVT_LE_DISCONNECTED,app_le_event_bb_disconn
+	beq BT_EVT_RECONN_STARTED,app_event_reconn_start
+	beq BT_EVT_ENTER_SNIFF,app_event_enter_sniff
+	beq BT_EVT_EXIT_SNIFF,app_event_exit_sniff
+	
+	beq BT_EVT_ML2CAP_CONN_REFUSED,app_event_ml2cap_conn_refused
+	beq BT_EVT_LINKKEY_GENERATE,app_event_linkkey_generate
+	beq BT_EVT_SWITCH_FAIL_MASTER,app_event_switch_fail_master
+	beq BT_EVT_SWITCH_SUCCESS_MASTER,app_event_switch_success
+	rtn
+
+
+app_evt_bt_conn:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_CONNECTED,pdata
+	store 2,mem_ui_state_map
+	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
+	rtn
+
+app_event_switch_success:
+	jam 0,mem_switch_fail_master_count
+	rtn	
+
+app_event_switch_fail_master:
+	fetch 1,mem_switch_fail_master_count
+	increase 1,pdata
+	store 1,mem_switch_fail_master_count
+	sub pdata,1,null
+	branch app_bt_role_switch,positive
+	jam 0,mem_switch_fail_master_count
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_SWITCH_FAIL,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	branch app_bt_disconnect
+	
+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_event_linkkey_generate:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_AFTER_PAIRING ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	branch app_bt_store_reconn_info
+	
+app_event_reconn_start:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_RECONNECT,pdata
+	store 2,mem_ui_state_map
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_AFTER_RECONN,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+app_evt_setup_complete:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_SETUP_COMPLETE,pdata
+	store 2,mem_ui_state_map
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_AFTER_SETUP_DONE,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+app_evt_hid_handshake:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_HID_HANDSHAKE,pdata
+	store 2,mem_ui_state_map
+	rtn
+	
+app_event_enter_sniff:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_SNIFF,pdata
+	store 2,mem_ui_state_map
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_AFTER_SNIFF,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+	
+app_event_exit_sniff:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_SNIFF,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+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:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_CONNECTED,pdata
+	store 2,mem_ui_state_map
+	branch app_lpm_mult_disable
+	
+app_bb_event_hid_connected:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_HID_CONN,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+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_event_ml2cap_conn_refused:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_L2CAP_REFUSED,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	branch  app_bt_disconnect
+
+
+app_evt_timer:
+	bpatch patch18_7,mem_patch18
+	store 1,mem_app_evt_timer_count
+app_evt_100ms_loop:
+	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 app_unsniff_delay_timer
+	call app_discovery_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_unsniff_delay_timer:
+	arg mem_unsniff2sniff_timer_count,regc
+	arg app_unsniff_delay_timeout,regb
+	branch timer_single_step
+	
+app_unsniff_delay_timeout:
+	call context_check_idle
+	branch app_bt_enter_sniff,zero
+	rtn
+
+
+app_discovery_timer:
+	arg mem_discovery_timeout_timer_count,regc
+	arg app_discovery_timeout,regb
+	branch timer_single_step_2B
+	
+app_discovery_timeout:
+	call app_bt_stop_discovery
+	call app_led_off
+	fetch 2,mem_cb_discovry_timeout
+	branch callback_func
+
+	
+app_bb_event_reconn_failed:
+	call app_disconn_reason_flag_clear
+app_clear_reconnect_flag:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_RECONNECT,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+app_bb_event_bb_disconn:
+	jam 0,mem_unsniff2sniff_timer_count
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_RECONNECT,app_bb_event_bb_reconn_disconn
+	isolate0 UI_STATE_BT_SETUP_COMPLETE,pdata
+ 	call app_discard_event,true
+app_bb_event_bb_reconn_disconn:
+	bpatch patch19_0,mem_patch19
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_CONNECTED,pdata
+	set0 UI_STATE_BT_SETUP_COMPLETE,pdata
+	set0 UI_STATE_BT_HID_CONN,pdata
+	set0 UI_STATE_BT_HID_HANDSHAKE,pdata
+	set0 UI_STATE_BT_RECONNECT,pdata
+	store 2,mem_ui_state_map
+	branch app_lpm_mult_disable
+	
+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_bt:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	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_check_sniff:
+	fetch 1,mem_ui_state_map
+	isolate1 UI_STATE_BT_SNIFF,pdata
+	rtn
+
+//*****************************************//
+//*****************API********************//
+//*****************************************//
+//app_clearflag_store:
+//	setarg 0
+//	branch app_flag_store
+app_initflag_store:
+	setarg EEPROM_INIT_FLAG
+app_flag_store:
+	store 2,mem_timeup
+	bpatch patch19_1,mem_patch19
+	arg 2,temp
+	arg mem_timeup,rega
+	arg eeprom_module_init_flag,regb
+	branch iicd_write_eep_data
+
+//initflag is in eeprom to sure is eeprom nead to init
+app_initflag_check:
+	bpatch patch19_2,mem_patch19
+	arg 2,temp
+	arg mem_pdatatemp,rega
+	arg eeprom_module_init_flag,regb
+	call iicd_read_eep_data
+	fetch 2,mem_pdatatemp
+	arg EEPROM_INIT_FLAG,temp
+	isub  temp,null
+	rtn
+
+
+app_start_auto_sniff:
+	fetch 1,mem_unsniff2sniff_timer
+	store 1,mem_unsniff2sniff_timer_count
+	rtn	
+	
+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_l2cap_flow_control_enable:
+	jam L2CAP_FLOW_CTRL_ENABLE,mem_l2cap_flow_ctrl_flag
+	rtn
+
+app_l2cap_flow_control_disable:
+	jam L2CAP_FLOW_CTRL_DISABLE,mem_l2cap_flow_ctrl_flag
+	rtn
+	
+app_bt_set_pincode:
+	jam BT_CMD_SET_PIN_CODE,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_bt_role_switch:
+	jam BT_CMD_ROLE_SWITCH,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_bt_start_reconnect:
+	bpatch patch19_3,mem_patch19
+	fetch 1,mem_app_connection_options
+	store 1,mem_connection_options
+	jam APP_FLAG_RECONNECT,mem_reconnect_flag
+	jam BT_CMD_RECONNECT,mem_fifo_temp
+	branch ui_ipc_send_cmd	
+	
+app_bt_reconnect_cancel:
+	jam BT_CMD_BB_RECONN_CANCEL,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_bt_disconnect:
+	jam BT_CMD_DISCONNECT,mem_fifo_temp
+	branch ui_ipc_send_cmd	
+
+app_bt_start_discovery_short:
+	fetch 2,mem_discovery_timeout
+	store 2,mem_discovery_timeout_timer_count
+app_bt_start_discovery_led_blink:
+	call app_led_start_blink
+app_bt_start_discovery:
+	jam BT_CMD_START_DISCOVERY,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_bt_stop_discovery:
+	setarg 0
+	store 2,mem_discovery_timeout_timer_count
+	jam BT_CMD_STOP_DISCOVERY,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+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_bt_sniff_exit:
+	jam BT_CMD_EXIT_SNIFF,mem_fifo_temp
+	branch  ui_ipc_send_cmd
+	
+app_bt_enter_sniff:
+	jam BT_CMD_ENTER_SNIFF,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_bt_store_reconn_info:
+	jam BT_CMD_STORE_RECONN_INFO_BT,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_store_reconn_info:
+	jam BT_CMD_STORE_RECONN_INFO,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 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: DpiSwitch/program/app_antiLost.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_antiLost.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_antiLost.prog	(working copy)
@@ -0,0 +1,565 @@
+ifdef COMPILE_AntiLost
+antilost_init:
+	rtn wake	
+	jam 0x00,core_gpio_sel1//1: GPIO[26:25] is two wire SPI, 2: GPIO[26:23] is SPI, 3: GPIO[26:23] is PCM
+	setarg antilost_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg keyscan_process_lpm_before
+	store 2,mem_cb_before_lpm
+	setarg antilost_idle_process	//
+	store 2,mem_cb_idle_process
+	setarg antilost_le_conn_process	//
+	store 2,mem_cb_le_process
+	setarg antilost_bb_event_process 
+	store 2,mem_cb_bb_event_process
+	setarg antilost_le_bb_event_timer
+	store 2,mem_cb_event_timer
+	setarg antilost_le_notification
+	store 2,mem_cb_ble_transmit
+	setarg antilost_lpm_lock_process
+	store 2,mem_cb_check_wakelock
+	setarg antilost_le_receive_data_process
+	store 2,mem_cb_att_write
+	bpatch patch19_4,mem_patch19
+	call antilost_buzzer_pwm_init
+	call keyscan_key_init
+	call antilost_adc_init
+	call ui_led_init_global
+	call ui_button_init
+	setarg antilost_key_up_down
+	store 2,mem_cb_antl_key
+	setarg antilost_power_off_cb
+	store 2,mem_antl_power_off_cb
+	setarg antilost_power_starting_cb
+	store 2,mem_antl_power_starting_cb
+	setarg antilost_power_standby_cb
+	store 2,mem_antl_power_standby_cb
+	setarg antilost_led_on_cb
+	store 2,mem_antl_led_cb_on
+	setarg antilost_led_off_cb
+	store 2,mem_antl_led_cb_off
+	setarg antilost_buzzer_on
+	store 2,mem_antl_buzzer_cb_on
+	setarg antilost_buzzer_off
+	store 2,mem_antl_buzzer_cb_off
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BTN_DOWN
+	branch app_enter_hibernate
+
+antilost_le_before_hibernate:
+	call antilost_led_buzzer_stop_blink
+	branch  app_enter_hibernate
+
+antilost_le_notification:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	arg mem_temp_block5,rega
+	call queue_pop
+	nrtn user
+	arg mem_temp_block5,contr
+	branch le_send_notify_from_list
+
+antilost_power_standby_cb:
+	fetch 2,mem_antl_le_sleep_timeout
+	store 2,mem_antl_le_sleep_timer
+	jam 1,mem_antl_key_scan_enable
+	branch antilost_fast_adv_start
+	
+antilost_lpm_lock_process:
+	fetch 1,mem_antl_key_state
+	beq 1,antilost_lpm_ctrl_for_led_buzzer
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,antilost_lpm_ctrl_for_led_buzzer
+	fetch 1,mem_antl_lost_mode
+	beq 1,app_get_lpm_wake_lock
+	fetch 1, mem_antl_queue_curr_num
+	nbranch app_get_lpm_wake_lock,blank 
+	branch app_put_lpm_wake_lock
+	
+antilost_lpm_ctrl_for_led_buzzer:
+	fetch 1,mem_antl_led_state
+	fetcht 1,mem_antl_buzzer_state
+	ior temp,pdata
+	beq 1,app_get_lpm_wake_lock
+	branch app_put_lpm_wake_lock
+
+antilost_bb_event_process:
+	copy regc,pdata
+	beq BT_EVT_BUTTON_UP,app_event_button_up
+	beq BT_EVT_BUTTON_LONG_PRESSED,app_button_long_pressed
+	beq BT_EVT_LE_CONNECTED,antilost_le_process_conn
+	beq BT_EVT_LE_DISCONNECTED,antilost_le_process_discon
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,antilost_le_conn_param_update_rsp_recieved
+	rtn
+antilost_le_conn_param_update_rsp_recieved:
+	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
+	beq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED,antilost_le_conn_param_rejected
+antilost_le_conn_param_accepted:
+	fetch 2,mem_le_new_connslavelatency
+	branch antilost_master_nonsupport_latency,blank
+antilost_le_conn_param_updata_procedure_sucsess:
+	jam CONN_PARAM_UPDATA_PROCEDURE_COMPLETE,mem_antl_conn_updata_procedure_state
+	jam 60,mem_antl_conn_update_timer
+	rtn
+
+antilost_le_conn_param_rejected:
+	fetch 2,mem_le_latency
+	branch antilost_conn_param_updata_procedure_faild,blank
+antilost_conn_param_retransimiting:
+	jam CONN_PARAM_UPDATA_PROCEDURE_STARTING,mem_antl_conn_updata_procedure_state
+	fetcht 2,mem_interval_increment
+	fetch 2,mem_le_interval_min
+	iadd temp,pdata
+	store 2,mem_le_interval_min
+	copy pdata,rega
+	fetch 2,mem_le_interval_max
+	iadd temp,pdata
+	store 2,mem_le_interval_max
+	iadd rega,pdata
+	rshift pdata,temp
+	fetch 2,mem_antl_le_unnormal_interval_max
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	store 2,mem_le_latency
+	jam 1,mem_antl_send_updata_le_param_timer
+	rtn
+antilost_conn_param_updata_procedure_faild:
+	jam CONN_PARAM_UPDATA_PROCEDURE_FAILD,mem_antl_conn_updata_procedure_state
+	rtn
+
+antilost_master_nonsupport_latency:
+	jam 0,mem_lpm_mult
+	jam 0,mem_antl_send_updata_le_param_timer
+	fetch 2,mem_le_new_conninterval	//interval from master
+	fetcht 2,mem_antl_le_unnormal_interval_min
+	isub temp,null
+	setflag positive,0,rega 
+	fetch 2,mem_antl_le_unnormal_interval_max //local intervalmax
+	fetcht 2,mem_le_new_conninterval//interval form master
+	isub temp,pdata
+	setflag positive,1,rega
+	compare	0x03,rega,0x03
+	rtn true //return if the new conn_interval in range through conn_interval_min to conn_interval_max already
+	fetch 8,mem_antl_le_unnormal_interval_min
+	store 8,mem_le_interval_min
+	jam 1,mem_antl_send_updata_le_param_timer
+	rtn                               
+
+
+antilost_le_bb_event_timer:
+	//call ui_button_check_long_press
+	call app_power_timer
+	call antilost_double_click_timer
+	call antilost_le_fast_adv_timer
+	call antilost_le_sleep_timer
+	call antilost_app_updata_le_param_timer
+	call antilost_conn_update_timer
+	branch antilost_adc_check_timer
+
+
+antilost_double_click_timer:
+	arg mem_double_click_timer,regc
+	arg antilost_double_click_timeout,regb
+	branch timer_single_step
+antilost_double_click_timeout:
+	jam 0,mem_butten_click_cnt
+	rtn
+antilost_le_fast_adv_timer:
+	arg mem_antl_fast_adv_timer,regc
+	arg antilost_le_fast_adv_timeout,regb
+	branch timer_single_step_2B
+antilost_le_fast_adv_timeout:
+	arg mem_antl_slow_adv_led_style,regc
+	arg mem_antl_slow_adv_lpm_interval,regb
+	branch antilost_adv_start_common
+	
+
+antilost_conn_update_timer:
+	arg mem_antl_conn_update_timer,regc
+	arg antilost_conn_update_timer_time_out,regb
+	branch timer_single_step
+	
+antilost_conn_update_timer_time_out:
+	fetch 2,mem_le_latency
+	store 1,mem_lpm_mult
+	rtn
+antilost_app_updata_le_param_timer:
+	arg mem_antl_send_updata_le_param_timer,regc
+	arg antilost_app_updata_le_param_timeout,regb
+	branch timer_single_step
+antilost_app_updata_le_param_timeout:
+	fetch 1,mem_le_state
+	compare 0,pdata,0x60
+	nbranch antilost_wait_for_updata_param_instant_expire,true
+	jam CONN_PARAM_UPDATA_PROCEDURE_STARTING,mem_antl_conn_updata_procedure_state
+	call  app_lpm_mult_enable
+	branch le_l2cap_tx_update_req	
+antilost_wait_for_updata_param_instant_expire:
+	jam 1,mem_antl_send_updata_le_param_timer
+	rtn
+	
+antilost_le_sleep_timer:
+	arg mem_antl_le_sleep_timer,regc
+	arg antilost_le_sleep_timer_timeout,regb
+	branch timer_single_step_2B
+
+
+antilost_le_sleep_timer_timeout:
+	branch app_button_long_pressed
+
+antilost_adc_check_timer:
+	//fetch 1,mem_antl_power_timer
+	//rtneq SHUTTER_POWER_OFF
+	arg mem_adc_timer,regc
+	arg antilost_adc_check_timer_timeout,regb
+	branch timer_single_step_2B
+antilost_adc_check_timer_timeout:
+	fetch 2,mem_adc_timeout
+	store 2,mem_adc_timer
+	branch antilost_battery_process
+
+
+antilost_le_process_conn:
+	fetch 2,mem_adc_timeout
+	store 2,mem_adc_timer
+	setarg 0
+	store 2,mem_antl_fast_adv_timer
+	store 2,mem_antl_le_sleep_timer
+	call antilost_alert_off
+	call antilost_led_buzzer_stop_blink
+	jam 0,mem_lpm_mult
+	branch app_ble_stop_adv
+	                                                      
+
+antilost_le_process_discon:
+	//setarg 0
+	//store 1,mem_hci_curr_len
+	setarg 0
+	store 4,mem_adc_timer
+	store 3,mem_antl_conn_updata_procedure_state
+	store 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
+	
+	jam 1,mem_alarm_config_notfy_cnt
+	fetch 2,mem_antl_le_sleep_timeout
+	store 2,mem_antl_le_sleep_timer
+	call queue_init
+	fetch 1,mem_antl_power_state
+	rtneq POWER_OFF
+	call antilost_fast_adv_start
+	branch antilost_on_off_alarm_after_disconn
+
+
+antilost_le_conn_process:
+//bpatch
+	branch antilost_key_process
+
+antilost_idle_process:
+
+	fetch 1,mem_antl_power_state
+	rtnne POWER_STANDBY
+	branch antilost_key_process
+
+
+//////////////////////////////////////////////////////////////////////////////////////////
+/////SOFT WTICH////////
+antilost_power_starting_cb:
+	arg mem_antl_power_starting_buzzer_style,regc
+	call antilost_buzzer_configuration
+	arg mem_antl_power_starting_led_style,regc
+antilost_power_common:
+	branch antilost_led_configuration
+
+antilost_power_off_cb:
+	jam OFF,mem_le_adv_enable
+	arg mem_antl_power_off_buzzer_style,regc
+	call antilost_buzzer_configuration
+	arg mem_antl_power_off_led_style,regc
+	branch antilost_power_common
+	
+antilost_le_receive_data_process:
+	fetch 1,mem_le_att_opcode
+	beq ATTOP_WRITE_REQUEST,antilost_le_parse_att_write_request
+	rtn
+antilost_le_parse_att_write_request:
+	fetch 2,mem_le_att_handle
+//	beq  ATT_WRITE_REQUEST_HANDLE,antilost_key_data_send
+	beq NEW_SPEC_WRITE_HANDLE,antilost_cmd_parse_for_application
+	beq NEW_SPEC_NOTIFICATION_ENABLE_HANDLE,antilost_notify_alarm_config_first_time
+	rtn
+/////////////////////////////////////////////////////////
+
+
+/////////key scan
+antilost_key_process:
+	fetch 1,mem_antl_key_scan_enable
+	rtn blank
+	branch keyscan_key_process
+
+	//queue = key index
+	//rega =1 press, =0 release
+antilost_key_up_down:
+	copy rega,pdata
+	branch antilost_key_is_up,blank
+antilost_key_is_down:
+	copy queue,pdata
+	beq 0,antilost_key0_down
+	rtn
+antilost_key_is_up:
+	copy queue,pdata
+	beq 0,antilost_key0_up
+	rtn
+
+antilost_key0_down:
+	jam 1,mem_antl_key_state
+	arg mem_antl_key_buzzer_style,regc
+	call antilost_buzzer_configuration
+	arg mem_antl_key_led_style,regc
+	call antilost_led_configuration
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,antilost_butten_down_while_disconn
+	branch antilost_butten_down_after_conn
+	
+antilost_key0_up:
+	jam 0,mem_antl_key_state
+	branch antilost_double_click_timer_init
+
+//////////////process for double-click
+
+antilost_double_click_timer_init:
+	fetch 1,mem_butten_click_cnt
+	rtnne 1
+	jam 5,mem_double_click_timer
+	rtn
+
+antilost_butten_down_after_conn:
+	fetch 1,mem_butten_click_cnt
+	pincrease 1
+	store 1,mem_butten_click_cnt
+	beq 1,antilost_click_once
+	beq 2,antilost_click_twice
+	rtn
+antilost_click_once:
+	call antilost_alert_off
+	jam OPCODE1_BUTTEN_CLICK_ONCE,mem_antl_key0_press+5//5 represent opcode offset
+	arg mem_antl_key0_press,regc
+	branch antilost_prepare_data_and_send
+antilost_click_twice:
+	jam 0,mem_butten_click_cnt
+	jam OPCODE2_BUTTEN_DOUBLE_CLICK,mem_antl_key0_press+5
+	arg mem_antl_key0_press,regc
+	call antilost_prepare_data_and_send
+	fetch 1,mem_antl_lost_mode
+	beq 1,antilost_alert_on
+	rtn   //rtn should be retaind
+	
+antilost_butten_down_while_disconn:
+	fetch 2,mem_antl_le_sleep_timeout
+	store 2,mem_antl_le_sleep_timer
+	call antilost_alert_off
+	branch antilost_fast_adv_start
+	
+///////////////////////NEW App Spcecific///////
+antilost_cmd_parse_for_application:
+	bpatch patch19_5,mem_patch19
+	call le_app_receive_data
+	ifetch 1,rega
+	beq OPCODE3_ANTL_START_ALRAM,antilost_on_of_alram
+	beq OPCODE7_ANTL_CONFIG_ALRAM,antilost_configuration_for_alram
+	rtn
+
+antilost_on_of_alram:
+	fetch 1,mem_antl_lost_mode
+	beq ANTI_LE_ALARM_OFF,antilost_alert_on
+	beq ANTI_LE_ALARM_ON,antilost_alert_off
+	rtn
+
+antilost_configuration_for_alram:
+	ifetch 1,regb
+	beq 1,antilost_set_start_alarm_after_disconn
+	beq 0,antilost_set_no_alarm_after_disconn
+	rtn
+/////////////////check////////////////////////
+
+/*input: 1)package data addr in regc
+output:no
+function:calculate check_out value and send data*/
+//mem_temp_block5
+antilost_prepare_data_and_send:
+	bpatch patch19_6,mem_patch19
+	fetch 1,mem_client_characteristic_configuration_descriptor
+	isolate1 NOTIFICATION_ENABLE_BIT,pdata
+	nrtn true
+	add regc,6,contr
+	ifetch 2,contr
+	byteswap pdata,pdata
+	add pdata,5,loopcnt
+	add regc,3,contr
+	call calc_check_sum_start
+	istore 1,contr
+	copy regc,rega
+	branch queue_push
+
+/////////////////NEW APP SPECIFIC check end////////////////////
+
+
+/////////alarm//////////////////////////////
+antilost_alert_on:
+	fetch 1,mem_antl_power_state
+	rtn blank
+	jam 1,mem_antl_lost_mode
+	arg mem_antl_alert_buzzer_stlye,regc
+	call antilost_buzzer_configuration
+	arg mem_antl_alert_led_stlye,regc
+	call antilost_led_configuration
+	jam OPCODE4_CURRENT_ALARM_STATE,mem_antl_key0_release+5//5 represent opcode offset
+	jam 1,mem_antl_key0_release+8 //8 represent data offset,digit 1 represent alarm is on at present
+	arg mem_antl_key0_release,regc
+	branch antilost_prepare_data_and_send
+antilost_alert_off:
+	fetch 1,mem_antl_lost_mode
+	rtn blank
+	jam 0,mem_antl_lost_mode
+	call antilost_led_buzzer_stop_blink
+	jam OPCODE4_CURRENT_ALARM_STATE,mem_antl_key0_release+5//5 represent opcode offset
+	jam 0,mem_antl_key0_release+8 //8 represent data offset,digit 0 represent alarm is off at present
+	arg mem_antl_key0_release,regc
+	branch antilost_prepare_data_and_send
+
+antilost_set_start_alarm_after_disconn:
+	jam 1,mem_alarm_config
+	jam OPCODE7_ANTL_CONFIG_ALRAM,mem_antl_key0_release+5
+	jam 1,mem_antl_key0_release+8
+	arg mem_antl_key0_release,regc
+	branch antilost_prepare_data_and_send
+antilost_set_no_alarm_after_disconn:
+	jam 0,mem_alarm_config
+	jam OPCODE7_ANTL_CONFIG_ALRAM,mem_antl_key0_release+5
+	jam 0,mem_antl_key0_release+8
+	arg mem_antl_key0_release,regc
+	branch antilost_prepare_data_and_send
+antilost_on_off_alarm_after_disconn:
+	fetch 1,mem_alarm_config
+	rtn blank
+	branch antilost_alert_on
+	
+antilost_notify_alarm_config_first_time:
+	ifetch 2,rega
+	store 2,mem_client_characteristic_configuration_descriptor
+	isolate1 NOTIFICATION_ENABLE_BIT,pdata
+	nrtn true
+	fetch 1,mem_alarm_config_notfy_cnt
+	rtn blank
+	jam 0,mem_alarm_config_notfy_cnt
+	fetch 8,mem_antl_le_interval_min
+	store 8,mem_le_interval_min
+	jam 2,mem_antl_send_updata_le_param_timer
+	call antilost_battery_process
+	call antilost_battery_calculate_end //send twice to combat the failure of reception first time
+	jam OPCODE7_ANTL_CONFIG_ALRAM,mem_antl_key0_release+5
+	fetch 1,mem_alarm_config
+	store 1,mem_antl_key0_release+8
+	arg mem_antl_key0_release,regc
+	branch antilost_prepare_data_and_send
+
+//////////////alarm end//////////////////////////
+//sytle address in regc
+antilost_buzzer_configuration:
+	arg 1,rega
+	branch antilost_configuration_common
+antilost_led_configuration:
+	arg 0,rega
+antilost_configuration_common:
+	branch antilost_led_buzzer_style_configuration
+	
+antilost_led_buzzer_stop_blink:
+	arg 0,rega
+	call ui_led_blink_stop_global
+	arg 1,rega
+	call ui_led_blink_stop_global
+	fetch 1,mem_buzzer_pwm_conf
+	branch pwm_disable
+	
+antilost_led_buzzer_style_configuration:
+	call calc_curr_struct_prt
+	arg 7,loopcnt
+	branch ui_led_set_style_global+2
+
+
+
+antilost_fast_adv_start:
+	arg mem_antl_fast_adv_led_style,regc
+	arg mem_antl_lpm_interval,regb
+antilost_adv_start_common:
+	call antilost_adv_interval_lpm_interval_set
+	call antilost_led_configuration
+	fetch 2,mem_antl_fast_adv_timeout
+	store 2,mem_antl_fast_adv_timer
+	branch app_ble_start_adv
+	
+antilost_adv_interval_lpm_interval_set:
+	ifetch 2,regb
+	store 2,mem_lpm_interval
+	ifetch 2,contr
+	store 2,mem_le_adv_interval
+	rtn
+///////////////beep////////////
+antilost_buzzer_pwm_init:
+	arg 0,rega //sys clk 12mhz
+	call pwm_init
+	fetch 6,mem_buzzer_pwm_conf
+	store 6,mem_pdatatemp
+	call pwm_out_set
+	fetch 1,mem_buzzer_pwm_conf
+	branch pwm_disable
+	
+antilost_led_on_cb:
+	jam 1,mem_antl_led_state
+	rtn	
+antilost_led_off_cb:
+	jam 0,mem_antl_led_state
+	rtn
+
+
+
+antilost_buzzer_off:
+	jam 0,mem_antl_buzzer_state
+	fetch 1,mem_buzzer_pwm_conf
+	branch pwm_disable
+	
+antilost_buzzer_on:
+	jam 1,mem_antl_buzzer_state
+	fetch 6,mem_buzzer_pwm_conf
+	store 6,mem_pdatatemp
+	branch pwm_out_set
+
+////////////////beep end///////////////////////////
+/////////////adc start////////////////////////
+antilost_adc_init:
+	jam 0,mem_adc_config_flag
+	branch adc_init_data
+
+antilost_battery_process:
+	call adc_set_mode
+	call vdd_calculate_by_mode
+	store 2,mem_battery_current_voltage
+	arg mem_battery_calculate_set,rega
+	call adc_bat_percent_lowpower_out
+	store 1,mem_voltage_remain_percent //for debug
+	beq 0,antilost_low_battery
+	sub pdata,0x64,null
+	nbranch antilost_full_battery,positive
+	store 1,mem_antl_key0_release+8
+antilost_battery_calculate_end:
+	jam OPCODE5_BATTER_INFORMATION,mem_antl_key0_release+5
+	arg mem_antl_key0_release,regc
+	branch antilost_prepare_data_and_send
+antilost_full_battery:
+	jam 100,mem_antl_key0_release+8
+	branch antilost_battery_calculate_end
+
+antilost_low_battery:
+	branch app_button_long_pressed
+endif
+
+
Index: DpiSwitch/program/app_car.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_car.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_car.prog	(working copy)
@@ -0,0 +1,888 @@
+ifdef COMPILE_CAR
+
+car_init:
+	rtn wake	
+	hfetch 1,core_gpio_sel1
+	and_into 0xf0,pdata
+	hstore 1,core_gpio_sel1
+	setarg car_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+	
+	setarg car_le_process_lpm_before
+	store 2,mem_cb_before_lpm	
+	
+	setarg app_enter_hibernate
+	store 2,mem_cb_discovry_timeout
+	
+	setarg car_scale_process_idle	
+	store 2,mem_cb_idle_process	
+	
+	setarg car_scale_process_bb_event 
+	store 2,mem_cb_bb_event_process	
+	
+	setarg app_get_lpm_wake_lock
+	store 2,mem_cb_check_wakelock
+	
+	setarg car_le_receive_data
+	store 2,mem_cb_att_write
+	
+	setarg car_le_bb_event_timer
+	store 2,mem_cb_event_timer
+	
+	call g24_head_ptr2regc
+	setarg car_24g_receive_data
+	add regc,offset_24g_cb_rxdata_type1,contw
+	istore 2,contw
+
+	setarg car_power_off_signal
+	store 2,mem_remote_car_power_off_cb
+	
+	setarg car_soft_switch_power_on_signal
+	store 2,mem_remote_car_power_standby_cb
+	
+	bpatch patch19_7,mem_patch19
+	call car_init_environment
+	call queue_init
+	jam 2,mem_lpm_mult
+	jam POWER_ON,mem_car_24g_received_pac
+	fetch 1,mem_car_config_soft_switch_enable
+	store 1,mem_car_hard_soft_switch
+	beq HARD_SWITCH, car_hard_switch_power_on_signal
+	fetch 1,mem_car_config_soft_switch_gpio
+	store 1,mem_ui_button_gpio
+	jam OFF,mem_le_adv_enable
+car_soft_switch_power_on_init:
+	call car_ui_led_init
+	call ui_button_init
+	call ui_button_polling
+	jam POWER_STARTING,mem_car_power_state
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BTN_DOWN
+ 	branch app_enter_hibernate
+
+car_power_off_signal:	
+	branch car_ui_led_init
+	
+car_hard_switch_power_on_signal:
+	jam POWER_STANDBY,mem_car_power_state
+car_soft_switch_power_on_signal:
+	jam ON,mem_le_adv_enable
+	call car_ui_led_init
+	arg 0,rega
+	call ui_led_blink_start_global
+	
+	setarg FAST_ADV_INTERVAL_VALUE_CAR
+	call shutter_ble_adv_interval_set
+car_le_modified_name_adv:
+	arg mem_le_name+7,contw
+	fetch 1,mem_le_lap
+car_name_loop:
+	and pdata,0xF0,temp
+	rshift4 temp,temp
+	call car_hex_to_ascii
+	istoret 1, contw
+	and pdata,0x0F,temp
+	call car_hex_to_ascii
+	istoret 1, contw
+	call le_modified_name_att_list
+	fetcht 1,mem_le_name_len
+	copy temp,loopcnt
+	arg mem_le_adv_data+2,contw
+	arg mem_le_name,contr
+	call memcpy
+car_le_modified_name_scan:
+	fetcht 1,mem_le_name_len
+	copy temp,loopcnt
+	arg mem_le_scan_data+2,contw
+	arg mem_le_name,contr
+	branch memcpy
+car_hex_to_ascii:
+	sub temp,9,null
+	branch car_hex_num,positive
+	add temp,55,temp
+	rtn
+car_hex_num:	
+	add temp,48,temp
+	rtn
+
+car_ui_led_init:
+	fetch 1,mem_car_config_blood_led1_gpio
+	bne INVALID_PIN_NUM,car_blood_led_gpio_set
+car_ui_led_init_1:
+	fetch 1,mem_car_config_pairing_led_gpio
+	bne INVALID_PIN_NUM,car_pairing_led_gpio_set
+car_ui_led_init_2:
+	fetch 1,mem_car_config_low_voltage_led_gpio
+	bne INVALID_PIN_NUM,car_low_voltage_led_gpio_set
+car_ui_led_init_3:
+	fetch 1, mem_car_led_num
+	copy pdata,loopcnt
+	setarg mem_car_led_map
+	copy pdata,rega
+car_in_lp1:
+	copy rega,contr
+	ifetch 1,contr
+	copy contr,rega
+	beq INVALID_PIN_NUM,car_in_lp1_end
+	copy pdata,temp
+	call gpio_config_output
+car_in_lp1_end:
+	loop car_in_lp1
+car_ui_led_init_end:
+	rtn
+car_blood_led_gpio_set:
+	fetch 8,mem_car_config_blood_led1_gpio
+	store 8,mem_car_led_map+2
+	branch car_ui_led_init_1
+car_pairing_led_gpio_set:
+	store 1,mem_car_led_map
+	branch car_ui_led_init_2
+car_low_voltage_led_gpio_set:
+	store 1,mem_car_led_map+1
+	branch car_ui_led_init_3
+
+
+car_init_environment:
+	arg 0,rega
+	call pwm_init
+	call car_ir_rx_init
+	call g24_receive_process_init
+	branch car_init_adc_hvin
+
+car_init_adc_hvin:
+	jam 100,mem_car_notify_vdd_value_last
+	fetch 1,mem_car_config_low_voltage_led_gpio
+	store 1,mem_car_style2_struct_led_gpio
+	branch adc_init_data
+	
+car_le_before_hibernate:
+	call gpio_set_before_lpm_common
+	branch keyscan_process_lpm_before
+
+car_le_process_lpm_before:
+	branch keyscan_process_lpm_before
+
+car_key_scan_process:
+//	fetch 1,mem_enable_key_scan
+//	rtn blank
+	branch keyscan_key_process
+
+car_scale_process_idle:
+	call car_le_send_packet
+	call car_ir_receive_process
+	call car_g24_status_process
+	branch car_key_scan_process
+
+car_g24_status_process:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	fetch 1,mem_car_24g_received_pac
+	beq WORK_PAIRED,car_g24_connected_event
+	rtn
+car_g24_connected_event:
+	fetch 1,mem_car_24g_status
+	rtneq WORK_PAIRED
+	jam WORK_PAIRED,mem_car_24g_status
+	branch car_g24_connected
+
+car_le_send_packet:
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+	call le_fifo_check_nearly_full
+	nrtn blank
+	arg mem_car_pop_queue_buff,rega
+	call queue_pop
+	nrtn user
+	arg mem_car_pop_queue_buff,contr
+	branch le_send_notify_from_list
+ 
+car_scale_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_BUTTON_UP,app_event_button_up
+	beq BT_EVT_BUTTON_LONG_PRESSED,app_button_long_pressed
+	beq BT_EVT_LE_CONNECTED,car_scale_event_le_conn
+	beq BT_EVT_LE_DISCONNECTED,car_scale_event_le_discon
+	rtn
+
+car_scale_event_le_conn:
+	setarg disable_24g
+	call g24_store_mem_24g_mode
+	branch car_scale_process_conn
+car_g24_connected:
+	fetch 2,mem_car_24g_no_data_timeout_count
+	store 2,mem_car_24g_no_data_timeout_timer
+car_scale_process_conn:
+	jam 0x14,mem_car_notify_vdd_timer
+	jam 0,mem_lpm_mode
+	call app_ble_stop_adv
+	call app_lpm_mult_enable
+	fetch 1,mem_car_config_pairing_led_conn_status
+	beq 0x01,car_pairing_led_conn_status_setting
+car_scale_process_conn_next:
+	arg 0,rega
+	branch ui_led_on_global
+car_pairing_led_conn_status_setting:
+	arg 0,rega
+	branch ui_led_blink_stop_global
+
+car_scale_event_le_discon:
+	setarg rx_24g
+	call g24_store_mem_24g_mode
+car_g24_disconnect:
+	setarg 0
+	store 5,mem_car_led_control
+	setarg 4
+	call pwm_disable
+	setarg 5
+	call pwm_disable
+	setarg 20
+	call pwm_disable
+	setarg 21
+	call pwm_disable
+	setarg 22
+	call pwm_disable
+	setarg 7
+	call pwm_disable
+	call queue_init
+	jam 10,mem_motor1_speed
+	jam 10,mem_motor2_speed
+	jam 10,mem_motor3_speed
+//	jam 1,mem_lpm_mode
+	jam 2,mem_lpm_mult
+	arg 0,rega
+	call ui_led_blink_start_global
+
+	setarg FAST_ADV_INTERVAL_VALUE_CAR
+	call shutter_ble_adv_interval_set
+	branch app_ble_start_adv
+
+car_le_bb_event_timer:
+//	call car_ui_power_timeout_timer
+	call car_moto1_blank_data_timer
+	call car_moto2_blank_data_timer
+	call car_moto3_blank_data_timer
+	call app_power_timer
+	call car_led_control_timer
+	call car_notify_vdd_timer
+	call car_24g_no_data_timeout_timer
+	call car_ir_breakdown_timer
+	branch car_attack_shake_timer
+
+car_ir_breakdown_timer:
+	arg mem_car_ir_breakdown_check_timer,regc
+	arg car_ir_breakdown_timeout,regb
+	branch timer_single_step
+car_ir_breakdown_timeout:
+	call car_ir_gpio_get_status
+	nrtn true
+	jam 1,mem_car_ir_breakdown_flag
+	rtn
+	
+car_24g_no_data_timeout_timer:
+	arg mem_car_24g_no_data_timeout_timer,regc
+	arg car_24g_no_data_timer_timeout,regb
+	branch timer_single_step_2B
+car_24g_no_data_timer_timeout:
+	jam WORK_SEARCH,mem_car_24g_status
+	branch car_g24_disconnect
+
+car_attack_shake_timer:
+	arg mem_car_attack_shake_timer,regc
+	arg car_attack_shake,regb
+	branch timer_single_step
+car_attack_shake:
+	fetch 1, mem_car_attack_shake_flag
+	branch car_attack_shake_stop,blank
+	jam 2,mem_car_attack_shake_timer
+	jam 0, mem_car_attack_shake_flag
+	setarg 0x0a02
+	store 2,mem_le_receive_payload
+	fetch 1,mem_car_config_device_select
+	beq DEVICE_BATTLE_TANK,car_attack_shake_front_battle_tank
+car_attack_shake_front_battle_car:
+	branch car_motor_control
+car_attack_shake_front_battle_tank:
+	setarg 0x0a02
+	store 2,mem_le_receive_payload+2
+	branch car_motor_control
+car_attack_shake_stop:
+	setarg 0
+	store 4,mem_le_receive_payload
+	branch car_motor_control
+
+car_notify_vdd_timer:
+	fetch 1,mem_car_config_bat_notify_enable
+	rtn blank
+ 	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,car_low_bat_led_off
+	arg mem_car_notify_vdd_timer,regc
+	arg car_notify_vdd,regb
+	branch timer_single_step
+car_notify_vdd:
+	fetch 1,mem_car_notify_vdd_count
+	store 1,mem_car_notify_vdd_timer
+ 	fetch 1,mem_car_working_flag
+ 	nrtn blank
+car_read_hvin:
+	call adc_set_mode
+	call vdd_calculate_by_mode
+	store 2,mem_vdd_now_vol
+	arg mem_vdd_calculate_set,rega
+	call adc_bat_percent_lowpower_out
+	fetcht 1,mem_car_notify_vdd_value_last
+	isub temp,null
+	branch car_notify_vdd_next2,positive
+	store 1,mem_car_notify_vdd_value_last
+	copy pdata,temp
+car_notify_vdd_next2:
+	storet 1,mem_car_notify_vdd_percent
+	fetch 1,mem_car_config_low_voltage_percent
+	isub temp,null
+	call car_enter_low_bat,positive
+	storet 1,mem_notify_bat_payload 
+	arg 6,loopcnt
+	arg mem_notify_bat_head,contr
+	call calc_check_sum_start
+	store 1,mem_notify_bat_check_sum
+	arg mem_notify_bat_packet,rega
+	branch queue_push
+car_enter_low_bat:
+	fetch 1,mem_low_bat_flag
+	nrtn blank
+	jam 1,mem_low_bat_flag
+	arg 1,rega
+	branch ui_led_blink_start_global
+car_low_bat_led_off:
+	arg 1,rega
+	branch ui_led_blink_stop_global
+
+car_led_control_timer:
+	arg mem_car_led_control_timer,regc
+	arg car_led_control,regb
+	branch timer_single_step
+car_led_control:
+	jam 5,mem_car_led_control_timer
+	jam 0,mem_car_led_no
+	fetch 1,mem_car_led_blink_status
+	beq LED_ON,car_led_control_blink_off
+	beq LED_OFF,car_led_control_blink_on
+car_led_control_set:
+	arg mem_car_led_control,contr
+	copy contr,rega
+	arg 8,loopcnt
+car_led_control_timer_next:
+	copy rega,contr
+	ifetch 1,contr
+	copy contr,rega
+	beq LED_OFF,car_led_control_off
+	beq LED_ON,car_led_control_on
+	beq LED_BLINK,car_led_control_blink
+car_led_control_timer_next_2:
+	fetch 1,mem_car_led_no
+	increase 1,pdata
+	store 1,mem_car_led_no
+	loop car_led_control_timer_next
+	rtn
+car_led_switch:
+	fetch 1,mem_car_led_no
+	arg mem_car_config_blood_led_gpio,regb
+	iadd regb,regb
+	ifetcht 1,regb
+	rtn
+car_led_control_off:
+	call car_led_switch
+	call gpio_out_inactive
+	branch car_led_control_timer_next_2
+car_led_control_on:
+	call car_led_switch
+	call gpio_out_active
+	branch car_led_control_timer_next_2
+car_led_control_blink:
+	fetch 1,mem_car_led_blink_status
+	beq LED_ON,car_led_control_off
+	branch car_led_control_on
+car_led_control_blink_on:
+	jam LED_ON,mem_car_led_blink_status
+	branch car_led_control_set
+car_led_control_blink_off:
+	jam LED_OFF,mem_car_led_blink_status
+	branch car_led_control_set
+	
+////////////////////////check sum////////////////////////
+//loopcnt = sum number,contr = ptr
+calc_check_sum_start:
+	arg 0,rega
+calc_check_sum_loop:
+	ifetch 1,contr
+	iadd rega,rega
+	loop calc_check_sum_loop
+calc_check_sum_and:
+	and rega,0xff,pdata
+	rtn
+
+car_le_receive_data:	
+	fetch 1,mem_le_att_opcode
+	beq ATTOP_WRITE_REQUEST,car_le_parse_att_write_request
+	rtn
+car_le_parse_att_write_request:
+	fetch 2,mem_le_att_handle
+	beq ATT_CAR_CONTROL_HANDLE,car_control_le_receive
+	rtn
+
+/*
+*	typedef struct
+*	{
+*		2byte	packet_head				(mem_app_receive_temp)
+*		1byte	packet_cmd				(mem_app_receive_temp+2)
+*		2byte	packet_payload_length	(mem_app_receive_temp+3)
+*		10byte	packet_payload			(mem_app_receive_temp+5)
+*		1byte	packet_check_sum		(mem_app_receive_temp+15)
+*	}
+*/
+le_app_receive_data:
+	bpatch patch1a_0,mem_patch1a
+	ifetch 5,rega
+	store 5,mem_app_receive_temp
+	fetch 2,mem_app_receive_temp
+	arg LE_RECEIVE_PACKET_HEAD,temp
+	isub temp,null
+	nrtn zero
+	fetch 2,mem_app_receive_temp+3
+	byteswap pdata,pdata
+	store 2,mem_app_receive_temp+3
+	copy pdata,loopcnt
+	increase 5,rega
+	copy rega,contr
+	arg mem_app_receive_temp+5,contw
+	call memcpy
+	ifetch 1,contr
+	store 1,mem_app_receive_temp+15
+	arg mem_app_receive_temp+2,rega
+	arg mem_app_receive_temp+5,regb
+	rtn
+
+car_control_le_receive:
+	setarg 0
+	store 5,mem_le_receive_payload
+	store 5,mem_le_receive_payload+5
+	call le_app_receive_data
+	copy regb,contr
+	arg mem_le_receive_payload,contw
+	arg 10,loopcnt
+	call memcpy
+car_receive_cmd_select:
+	bpatch patch1a_1,mem_patch1a
+	ifetch 1,rega
+	beq CAR_CMD_OLD_CAR_CONTROL,car_drive_old
+	beq CAR_CMD_OLD_SPEED_CONTROL,car_speed_set_old
+	beq CAR_CMD_L_R_MOTOR_CONTROL,car_motor_control
+	beq CAR_CMD_F_B_MOTOR_CONTROL,car_motor_control
+	beq CAR_CMD_IR_CONTROL,car_ir_data_rx_from_app
+	beq CAR_CMD_LED_CONTROL,car_led_control_receive
+	beq CAR_CMD_DEVICE_INFO,car_info_request
+	rtn
+
+car_24g_receive_data:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	
+	fetch 2,mem_car_24g_no_data_timeout_count
+	store 2,mem_car_24g_no_data_timeout_timer
+	
+	jam WORK_PAIRED,mem_car_24g_received_pac
+	
+	setarg offset_24g_rxdata_temp_add3
+	call g24_set_rega
+	call car_control_le_receive
+
+	fetch 1,mem_app_receive_temp+2	//cmd
+	beq CAR_CMD_L_R_MOTOR_CONTROL,car_24g_receive_data_next
+	beq CAR_CMD_F_B_MOTOR_CONTROL,car_24g_receive_data_next
+	rtn
+car_24g_receive_data_next:
+	fetch 1,mem_le_receive_payload	//moto1
+	ncall car_moto1_enable_blank_data_timer,blank
+	fetch 1,mem_le_receive_payload+2	//moto2
+	ncall car_moto2_enable_blank_data_timer,blank
+	fetch 1,mem_le_receive_payload+4	//moto3
+	ncall car_moto3_enable_blank_data_timer,blank
+	rtn
+
+car_moto1_enable_blank_data_timer:
+	jam 5,mem_car_moto1_blank_timer
+	rtn
+car_moto2_enable_blank_data_timer:
+	jam 5,mem_car_moto2_blank_timer
+	rtn
+car_moto3_enable_blank_data_timer:
+	jam 5,mem_car_moto3_blank_timer
+	rtn
+
+car_moto1_blank_data_timer:
+	arg mem_car_moto1_blank_timer,regc
+	arg car_moto1_blank_data,regb
+	branch timer_single_step
+car_moto2_blank_data_timer:	
+	arg mem_car_moto2_blank_timer,regc
+	arg car_moto2_blank_data,regb
+	branch timer_single_step
+car_moto3_blank_data_timer:		
+	arg mem_car_moto3_blank_timer,regc
+	arg car_moto3_blank_data,regb
+	branch timer_single_step
+
+car_moto1_blank_data:
+	jam 0,mem_le_receive_payload
+	branch car_motor_control
+car_moto2_blank_data:
+	jam 0,mem_le_receive_payload+2
+	branch car_motor_control
+car_moto3_blank_data:
+	jam 0,mem_le_receive_payload+4
+	branch car_motor_control
+	
+	
+///////////////////////Motor//////////////////////////////////////////
+
+car_drive_old:	
+	call car_left_right_control_old
+	branch car_front_back_control_old
+car_left_right_control_old:
+	fetch 1,mem_le_receive_payload
+	store 1,mem_motor2_status
+	branch car_motor2_control
+car_front_back_control_old:
+	fetch 1,mem_motor1_speed
+	call car_reset_old_speed
+	fetch 1,mem_le_receive_payload+1
+	store 1,mem_motor1_status
+	branch car_motor1_control
+car_reset_old_speed:
+	beq SPEED_LEVEL_2,car_reset_old_speed2
+	beq SPEED_LEVEL_3,car_reset_old_speed3
+	store 1,mem_motor1_speed
+	rtn
+car_reset_old_speed2:
+	jam SPEED_LEVEL_5,mem_motor1_speed
+	rtn
+car_reset_old_speed3:
+	jam SPEED_LEVEL_10,mem_motor1_speed
+	rtn
+car_speed_set_old:
+	fetch 1,mem_le_receive_payload
+	call car_reset_old_speed
+	fetch 1,mem_motor1_speed
+	call car_motor_speed_duty_setting
+	call car_motor_speed_duty_transform
+	branch pwm_pwm0_duty_set
+
+car_motor_control:
+	fetch 1,mem_car_24g_go_die_flag
+	nrtn blank
+	fetch 6,mem_le_receive_payload
+	store 6,mem_motor1_status
+	fetch 1,mem_motor1_speed
+	fetcht 1,mem_motor2_speed
+	iand temp,pdata
+	fetcht 1,mem_motor3_speed
+	iand temp,pdata
+	call car_motor_working_flag,blank
+	bpatch patch1a_2,mem_patch1a
+	call car_motor1_control
+	call car_motor2_control
+	branch car_motor3_control
+car_motor1_control:
+	arg mem_motor1_pwm_set,regb
+	arg mem_motor1_status,contr
+	branch car_motor_status_select
+car_motor2_control:
+	arg mem_motor2_pwm_set,regb
+	arg mem_motor2_status,contr
+	branch car_motor_status_select
+car_motor3_control:
+	arg mem_motor3_pwm_set,regb
+	arg mem_motor3_status,contr
+	branch car_motor_status_select
+car_motor_working_flag:
+	jam 0,mem_car_working_flag
+	rtn
+
+car_motor_status_select:
+	ifetch 1,contr
+	beq MOTOR_STOP,car_motor_stop
+	beq GO_FRONT,car_motor_positive
+	beq GO_BACK,car_motor_negative
+	rtn
+car_motor_positive:
+	jam 0,mem_motor_select_p_n
+	branch car_motor_negative+1
+car_motor_negative:
+	jam 1,mem_motor_select_p_n
+	ifetch 1,contr
+	store 1,mem_car_motor_speed
+	ifetch 8,regb
+	branch car_motor_work
+
+car_motor_stop:
+	ifetch 1,regb
+	call pwm_disable
+	increase 1,regb
+	ifetch 1,regb
+	branch pwm_disable
+car_motor_work:
+	store 8,mem_motor_pwm_pin1_set
+	jam 1,mem_car_working_flag
+	fetch 1,mem_motor_select_p_n
+	beq 0,car_motor_select_positive
+car_motor_select_negative:
+	fetch 1,mem_motor_pwm_pin2_set
+	store 1,mem_motor_pwm_pin_set
+	fetch 1,mem_motor_pwm_pin1_set
+car_motor_work_next:
+	call pwm_disable
+	fetch 1,mem_car_motor_speed
+	call car_motor_speed_duty_setting
+	store 1,mem_motor_pwm_dute_set
+	fetch 6,mem_motor_pwm_pin_set
+	store 6,mem_pdatatemp
+	branch pwm_out_set
+car_motor_select_positive:
+	fetch 1,mem_motor_pwm_pin1_set
+	store 1,mem_motor_pwm_pin_set
+	fetch 1,mem_motor_pwm_pin2_set
+	branch car_motor_work_next
+
+car_motor_speed_duty_setting:
+	mul32 pdata,5,pdata
+	add pdata,50,pdata
+	rtn
+car_motor_speed_duty_transform:
+	arg 12000,temp
+	imul32 temp,pdata
+	div pdata,100
+	call wait_div_end
+	quotient temp
+	copy temp,rega
+	setarg 12000
+	isub temp,regb
+	rtn
+
+/////////////////////IR PROCESS/////////////////////
+car_ir_init:
+	hfetch 1,core_gpio_sel2		// select GPIO3 as pwm4
+	set1 2,pdata
+	hstore 1,core_gpio_sel2
+	setarg 158
+	hstore 2,core_pwm_pcnt4
+	hstore 2,core_pwm_ncnt4
+	rtn
+
+car_ir_data_rx_from_app:
+	fetch 1,mem_car_24g_go_die_flag
+	nrtn blank
+	fetch 2,mem_le_receive_payload
+	store 2,mem_ir_data
+	fetch 1,mem_car_24g_status
+	bne WORK_PAIRED,car_ir_data_tx
+	fetch 2,mem_le_lap
+	store 2,mem_ir_data
+car_ir_data_tx:
+	bpatch patch1a_3,mem_patch1a
+	call car_ir_init
+	call car_ir_enable
+	setarg 48000
+	call sleep
+	call car_ir_disable
+	setarg 7200
+	call sleep
+	arg 16,loopcnt
+car_ir_send_loop:
+	call car_ir_enable
+	fetch 2,mem_ir_data
+	bbit1 0,car_ir_is_bit1
+	setarg 7200
+	call sleep
+	call car_ir_disable
+	branch car_ir_wait_finish
+	
+car_ir_is_bit1:
+	setarg 14400
+	call sleep
+	call car_ir_disable
+car_ir_wait_finish:
+	setarg 7200
+	call sleep
+	fetch 2,mem_ir_data
+	rshift pdata,pdata	
+	store 2,mem_ir_data
+	loop car_ir_send_loop
+
+	jam 2,mem_car_attack_shake_timer
+	jam 1, mem_car_attack_shake_flag
+	setarg 0x0a01
+	store 2,mem_le_receive_payload
+	fetch 1,mem_car_config_device_select
+	beq DEVICE_BATTLE_TANK,car_attack_shake_back_battle_tank
+car_attack_shake_back_battle_car:
+	branch car_motor_control
+car_attack_shake_back_battle_tank:
+	setarg 0x0a01
+	store 2,mem_le_receive_payload+2
+	branch car_motor_control
+	
+car_ir_enable:
+	hfetch 1,core_gpio_key2			// PWM4_enable
+	or_into 0x40,pdata
+	hstore 1,core_gpio_key2	
+	rtn
+car_ir_disable:
+	hfetch 1,core_gpio_key2			// PWM4_disable
+	and_into 0xbf,pdata
+	hstore 1,core_gpio_key2
+	rtn
+	
+car_ir_rx_init:
+	fetch 1,mem_car_config_ir_enable
+	rtneq 0x00
+	call lpm_disable_exen_output
+	fetcht 1,mem_car_config_ir_rx_gpio
+	storet 1,mem_ir_rx_gpio
+	call gpio_config_input
+	call car_ir_gpio_get_status
+	nrtn true
+	jam 1,mem_car_ir_breakdown_check_timer
+	rtn
+
+car_ir_receive_process:
+	fetch 1,mem_car_config_ir_enable
+	rtneq FLAG_IR_DISABLE	
+	fetch 1,mem_car_ir_breakdown_flag
+	nrtn blank
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,car_ir_receive_process_next
+	fetch 1,mem_car_24g_status
+	rtnne WORK_PAIRED
+car_ir_receive_process_next:
+	bpatch patch1a_4,mem_patch1a
+	call car_ir_gpio_get_status
+	nrtn true
+	setarg 36000
+	call sleep
+	call car_ir_gpio_get_status
+	nrtn true
+	call car_ir_clk_get
+car_ir_packet_head_wait_end:
+	call car_ir_clk_check
+	nrtn positive
+	call car_ir_gpio_get_status
+	branch car_ir_packet_head_wait_end,true
+	arg 0,rega
+	arg 16,loopcnt
+	call car_ir_clk_get
+car_ir_receive_process_loop:
+	call car_ir_clk_check
+	nrtn positive
+	call car_ir_gpio_get_status
+	nbranch car_ir_receive_process_loop,true
+	setarg 10800
+	call sleep
+	call car_ir_gpio_get_status
+	branch car_ir_get_bit1,true
+car_ir_get_bit0:
+	setarg 0
+ 	rshift rega,rega
+	ior rega,rega
+	loop car_ir_receive_process_loop
+	branch car_ir_receive_process_end
+car_ir_get_bit1:
+	setarg 0x8000
+	rshift rega,rega
+	ior rega,rega
+	call car_ir_clk_get
+car_ir_get_bit1_wait_low_end:
+	call car_ir_clk_check
+	nrtn positive
+	call car_ir_gpio_get_status
+	branch car_ir_get_bit1_wait_low_end,true
+	loop car_ir_receive_process_loop
+car_ir_receive_process_end:
+	bpatch patch1a_5,mem_patch1a
+	copy rega,pdata
+	store 2,mem_ir_rx_buf
+	store 2,mem_ir_notify_data+8
+	fetch 1,mem_car_24g_status
+	beq WORK_PAIRED,car_ir_24g_receive_attack
+car_ir_data_notify:
+	arg 0x07,loopcnt
+	arg mem_ir_notify_data_head,contr
+	call calc_check_sum_start
+	store 1,mem_ir_notify_data_check_sum
+	arg mem_ir_notify_data,rega
+	branch queue_push
+
+car_ir_24g_receive_attack:
+	fetch 1,mem_car_24g_ir_receive_attack_count
+	increase 1,pdata
+	store 1,mem_car_24g_ir_receive_attack_count
+	div pdata,2
+	call wait_div_end
+	quotient temp
+	remainder pdata
+	nbranch car_ir_24g_receive_attack_blink,blank
+car_ir_24g_receive_attack_off:
+	fetch 1,mem_car_config_led_num
+	isub temp,null
+	call car_ir_24g_go_die,zero
+	arg mem_car_led_control,pdata
+	increase -1,temp
+	iadd temp,rega
+	arg 0,pdata
+	istore 1,rega
+	rtn
+car_ir_24g_receive_attack_blink:
+	arg mem_car_led_control,pdata
+	iadd temp,rega
+	arg 2,pdata
+	istore 1,rega
+	rtn
+car_ir_24g_go_die:
+	jam 1,mem_car_24g_go_die_flag
+	rtn
+car_ir_clk_get:
+	copy clkn_bt,pdata
+	store 4,mem_ir_receive_clkn
+	rtn
+car_ir_clk_check:
+	copy clkn_bt,pdata
+	fetcht 4,mem_ir_receive_clkn
+	isub temp,pdata
+	sub pdata,200,null
+	rtn
+
+car_ir_gpio_get_status:
+	fetcht 1,mem_ir_rx_gpio
+	branch gpio_get_bit
+
+car_led_control_receive:
+	fetch 8,mem_le_receive_payload
+	store 8,mem_car_led_control
+	rtn
+
+car_info_request:
+	fetch 1,mem_car_config_device_select
+	store 1,mem_car_info_request_payload
+	fetch 1,mem_car_config_motor_layout
+	store 1,mem_car_info_request_payload+1
+	fetch 1,mem_car_config_ir_enable
+	store 1,mem_car_info_request_payload+2
+	arg 13,loopcnt
+	arg mem_car_info_request_head,contr
+	call calc_check_sum_start
+	store 1,mem_car_info_request_checksum
+	arg mem_car_info_request,rega
+	branch queue_push
+    
+endif
+
+
+
Index: DpiSwitch/program/app_light.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_light.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_light.prog	(working copy)
@@ -0,0 +1,227 @@
+
+light_init:
+	call clear_eeprom_size_2k
+	jam 0x7a,mem_curr_packet_num
+	call light_load_controler_list
+	call light_init_crr_cmd_count
+	setarg light_pairing_timer
+	store 2,mem_cb_event_timer
+	arg 0,rega
+	branch pwm_init
+
+light_pairing_timer:
+	fetch 2,mem_light_pairing_timer
+	rtn blank
+	increase -1,pdata
+	store 2,mem_light_pairing_timer
+	rtnne 0
+	jam 0,mem_light_pairing_enable
+	rtn
+
+light_init_crr_cmd_count:
+	bpatch patch1a_6,mem_patch1a
+	fetch 1,mem_light_next_record
+	sub pdata,40,null
+	rtn positive
+	jam 0,mem_light_next_record
+	rtn
+
+light_load_controler_list:
+	arg mem_light_next_record,rega
+	arg 0,regb
+	arg 81,temp
+	branch iicd_read_eep_data
+
+//output user:group record find
+light_find_controler_pairing:
+	disable user
+	fetch 1,mem_light_cnum
+	copy pdata,loopcnt
+	
+	arg mem_light_clist,rega
+	copy regc,regb
+light_find_controler_pairing_loop:
+	bpatch patch1a_7,mem_patch1a
+	call light_compare_addr_record
+	branch enable_user,zero
+light_find_single_pairing_diff:
+	increase 4,rega
+	loop light_find_controler_pairing_loop
+	rtn
+
+//rega: regb:
+light_compare_addr_record:
+	bpatch patch1b_0,mem_patch1b
+	ifetch 3,rega
+	ifetcht 3,regb
+	isub temp,null
+	rtn
+//rega: regb:
+light_compare_single_record:
+	bpatch patch1b_1,mem_patch1b
+	ifetch 3,rega
+	ifetcht 3,regb
+	isub temp,null
+	nrtn zero
+	ifetch 1,contr
+	sub pdata,0,null //0 zero
+	rtn zero
+	add rega,3,contr
+	ifetcht 1,contr
+	isub temp,null
+	rtn
+
+//output:find single controler
+light_find_controler_cmd:
+	bpatch patch1b_2,mem_patch1b
+	disable user
+	fetch 1,mem_light_cnum
+	copy pdata,loopcnt
+	
+	arg mem_light_clist,rega
+	copy regc,regb
+light_find_controler_cmd_loop:
+	call light_compare_single_record
+	branch enable_user,zero
+	increase 4,rega
+	loop light_find_controler_cmd_loop
+	rtn
+
+//regc
+light_recv_adv:
+	fetch 1,mem_le_scanrsp_rcv
+	increase 1,pdata
+	store 1,mem_le_scanrsp_rcv
+	arg mem_le_rxbuf+12,regc
+
+light_anylize_command:
+	ifetch 2,regc
+	arg 0x55aa,temp
+	isub temp,null
+	nrtn zero
+	copy contr,regc
+	ifetcht 3,regc
+	setarg 0xffffff
+	isub temp,null
+	branch light_parse_cmd,zero
+	call light_find_controler_cmd
+	branch light_parse_cmd,user
+	rtn
+
+light_parse_cmd:
+	bpatch patch1b_3,mem_patch1b
+	increase 4,regc
+	ifetch 1,regc
+	fetcht 1,mem_curr_packet_num
+	isub temp,null
+	rtn zero
+	store 1,mem_curr_packet_num
+	fetch 1,mem_le_req_rcv
+	increase 1,pdata
+	store 1,mem_le_req_rcv
+	
+	increase 1,regc
+	ifetch 1,regc
+	store 1,mem_light_crr_cmd_count
+	copy pdata,loopcnt
+	rtn blank
+light_parse_cmd_loop:
+	ifetch 1,contr
+	beq LIGHT_CMD_PWM0,light_parse_cmd_pwm0
+	beq LIGHT_CMD_PWM1,light_parse_cmd_pwm1
+	beq LIGHT_CMD_PWM2,light_parse_cmd_pwm2
+	beq LIGHT_CMD_PWM3,light_parse_cmd_pwm3
+	beq LIGHT_CMD_PWM4,light_parse_cmd_pwm4
+	beq LIGHT_CMD_PWM5,light_parse_cmd_pwm5
+	beq LIGHT_CMD_AUTO_MODE,light_parse_auto_mode
+	beq LIGHT_CMD_PAIRING,light_parse_pairing
+	loop light_parse_cmd_loop
+	rtn
+
+light_parse_cmd_pwm0:
+	copy contr,regc
+	fetch 1,mem_light_pwm0
+	store 1,mem_pdatatemp
+	arg 0,temp
+light_parse_cmd_pwm_common:
+	storet 1,mem_pdatatemp+1
+	setarg 10000
+	store 3,mem_pdatatemp+2
+	ifetch 1,regc
+	store 1,mem_pdatatemp+5
+	call  pwm_out_set
+	and regc,1,contr
+	loop light_parse_cmd_loop
+	rtn
+light_parse_cmd_pwm1:
+	copy regc,contr
+	fetch 1,mem_light_pwm1
+	store 1,mem_pdatatemp
+	arg 1,temp
+	branch light_parse_cmd_pwm_common
+light_parse_cmd_pwm2:
+	copy regc,contr
+	fetch 1,mem_light_pwm2
+	store 1,mem_pdatatemp
+	arg 2,temp
+	branch light_parse_cmd_pwm_common
+light_parse_cmd_pwm3:
+	copy regc,contr
+	fetch 1,mem_light_pwm3
+	store 1,mem_pdatatemp
+	arg 3,temp
+	branch light_parse_cmd_pwm_common
+light_parse_cmd_pwm4:
+	copy regc,contr
+	fetch 1,mem_light_pwm4
+	store 1,mem_pdatatemp
+	arg 4,temp
+	branch light_parse_cmd_pwm_common
+light_parse_cmd_pwm5:
+	copy regc,contr
+	fetch 1,mem_light_pwm5
+	store 1,mem_pdatatemp
+	arg 5,temp
+	branch light_parse_cmd_pwm_common
+
+light_parse_auto_mode:
+	ifetch 1,contr
+	rtn
+
+light_parse_pairing:
+	copy contr,regc
+	fetch 1,mem_light_pairing_enable
+	bne 1,light_parse_pairing_abandon
+	call update_controler_list
+light_parse_pairing_abandon:
+	and regc,4,contr
+	rtn
+update_controler_list:
+	bpatch patch1b_4,mem_patch1b
+	call light_find_controler_pairing
+	branch update_conrtoler_list_found,user
+	fetch 1,mem_light_next_record
+	copy pdata,temp
+	increase 1,pdata
+	store 1,mem_light_next_record
+	call light_init_crr_cmd_count
+	lshift2 temp,temp
+	setarg mem_light_clist
+	iadd temp,contw
+	ifetch 4,regc
+	istore 4,contw
+	branch update_conrtoler_store_list
+update_conrtoler_list_found:
+	add regc,3,contr
+	ifetch 1,contr
+	rtn blank
+	ifetch 4,regc
+	istore 4,rega
+update_conrtoler_store_list:
+	arg mem_light_next_record,rega
+	arg 0,regb
+	arg 81,temp
+	branch iicd_write_eep_data
+
+
+
Index: DpiSwitch/program/app_lightC.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_lightC.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_lightC.prog	(working copy)
@@ -0,0 +1,55 @@
+lightc_init:
+	//key scan init
+
+	//gpio init
+	fetcht 1,mem_lightc_led_gpio
+	call gpio_out_inactive
+	rtn
+
+
+lightc_dispatch:
+	//key scan 
+	
+	fetcht 1,mem_lightc_led_gpio
+	call gpio_out_active
+
+
+	fetcht 1,mem_lightc_led_gpio
+	call gpio_out_inactive
+
+	//
+	call lightc_start_adv
+
+	fetch 1,mem_adv_time
+	nrtn blank
+	//sleep 
+	call lpm_write_gpio_wakeup
+	hfetch 4,core_lpm_ctrl
+	set0 15,pdata						/* lowest lpo */
+	hstore 4,core_lpm_reg
+	call lpm_write_ctrl
+	arg param_hibernate_clks,temp
+	branch lpm_sleep
+
+lightc_adv:
+	fetch 1,mem_adv_time
+	branch le_adv_loop_tx,blank
+	increase -1,pdata
+	store 1,mem_adv_time
+	branch le_adv_loop_tx
+
+lightc_start_adv:
+	mul32 pdata,20,pdata
+	arg mem_cmd0_string,contr
+	iadd contr,contr
+	ifetch 1,contr
+	rtn blank
+	copy pdata,rega
+	copy rega,loopcnt
+	arg mem_le_adv_data+2,contw
+	call memcpy
+	copy rega,pdata
+	increase 2,pdata
+	store 1,mem_le_adv_data_len
+	rtn
+
Index: DpiSwitch/program/app_module.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_module.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_module.prog	(working copy)
@@ -0,0 +1,1506 @@
+
+ifdef COMPILE_MODULE
+
+
+
+
+module_init:
+	
+	rtn wake
+	call le_modified_name
+	call adc_init_data
+	setarg module_process_idle
+	store 2,mem_cb_idle_process
+	setarg module_bt_conn_process
+	store 2,mem_cb_bt_process
+	setarg module_process_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg module_le_conn_process
+	store 2,mem_cb_le_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_hci_event_receive_spp_data
+	store 2,mem_cb_receive_spp_data
+	setarg module_le_receive_data
+	store 2,mem_cb_att_write
+	setarg module_bb_event_timer
+	store 2,mem_cb_event_timer
+
+	call module_spp_clear_last_transmite_clock
+	bpatch patch1b_5,mem_patch1b
+	call module_lpm_uart_init
+	call module_gpio_init
+	call check_module_disabled
+	branch module_hci_event_enter_standby_mode
+
+
+module_lpm_uart_init:
+	fetch 4,mem_module_uart_rx_buffer
+	hstore 4,core_uart_rsaddr
+
+	fetch 4,mem_module_uart_tx_buffer
+	hstore 4,core_uart_tsaddr
+
+	hfetch 1,core_gpio_sel1
+	or_into 0x04,pdata
+	and_into 0xfc,pdata
+	hstore 1,core_gpio_sel1
+	jam 0x00,core_uart_ctrl
+
+	fetch 2,mem_module_uart_rx_buffer
+	hstore 2,core_uart_rrptr
+	fetch 2,mem_module_uart_tx_buffer
+	hstore 2,core_uart_twptr
+	hstore 2,core_uart_trptrp
+
+	hfetch 4,core_gpio_pu0
+	set1 7,pdata
+	hstore 4,core_gpio_pu0
+	
+	hfetch 2,core_clkoff
+	set0 CLOCK_OFF_UART,pdata
+	hstore 2,core_clkoff
+	call uart_set_baud_by_mem
+	jam uartclk_crystal,core_uart_clksel
+	jam uart_ctrl_h4,core_uart_ctrl
+
+	fetch 1,mem_module_flag
+	isolate1 MODULE_FLAG_UART_FLOW_CONTROL,pdata
+	hfetcht 1,core_uart_ctrl
+	setflag true,4,temp
+	hstoret 1,core_uart_ctrl
+	rtn
+	
+
+
+module_lpm_init:
+	call module_spp_clear_last_transmite_clock
+	branch module_lpm_uart_init
+//	branch module_gpio_init
+	
+module_gpio_init:
+	//module state pin
+//	call ui_led_init	
+//	call app_led_start_blink
+	//module conn state pin
+	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
+
+	
+module_le_conn_process:
+	rtn
+
+module_bt_conn_process:
+	call module_spp_enter_sniff
+	branch module_control_air_flow
+
+module_spp_enter_sniff:
+	fetch 1,mem_ui_state_map
+	bbit0 UI_STATE_BT_SPP_CONN,module_spp_clear_last_transmite_clock
+	bpatch patch1b_6,mem_patch1b
+	setarg 0x3eff
+	fetcht 4,mem_last_transmite_clock
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_SNIFF,module_spp_clear_last_transmite_clock
+	fetch 1,mem_module_flag
+	rtnbit1 MOUDLE_TASK_SNIFF
+	call module_set_sniff_task_flag
+	call app_bt_enter_sniff
+module_spp_clear_last_transmite_clock:
+	copy clkn_bt,pdata
+	store 4,mem_last_transmite_clock
+	rtn
+	
+
+module_process_idle:
+	call module_control_air_flow
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	branch module_process
+
+	
+module_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_BB_CONNECTED,module_process_bb_conn
+	beq BT_EVT_BB_DISCONNECTED,module_process_bb_event_disconned
+	beq BT_EVT_RECONN_FAILED,module_process_reconn_fail
+	beq BT_EVT_SETUP_COMPLETE,module_process_setup_complete
+	beq BT_EVT_SPP_CONNECTED,module_process_spp_connected
+	beq BT_EVT_SPP_DISCONNECTED,module_process_spp_disconnected
+	beq BT_EVT_PINCODE_REQ,module_process_evt_pincode_req
+	beq BT_EVT_ENTER_SNIFF,module_process_enter_sniff
+	beq BT_EVT_EXIT_SNIFF,module_process_exit_sniff
+	beq BT_EVT_RECONN_PAGE_TIMEOUT,module_process_page_time_out
+	beq BT_EVT_LE_CONNECTED,module_process_le_conn
+	beq BT_EVT_LE_DISCONNECTED,module_process_bb_even_le_disconn
+	beq BT_EVT_SNIFF_NOT_ACCEPT,module_process_sniff_not_accept
+	beq BT_EVT_UNSNIFF_ACCEPT,module_process_unsniff_accept
+	beq BT_EVT_UNSNIFF_NOT_ACCEPT,module_process_unsniff_not_accept
+	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_BT_GKEY_GENERATE,module_hci_event_gkey_generate
+	beq BT_EVT_BT_GET_PASSKEY,module_hci_event_passkey_entry_mode
+	beq BT_EVT_BT_PAIRING_FAIL,module_hci_event_bt_pairing_fail	
+	beq BT_EVT_BT_PAIRING_SUCCESS,module_hci_event_bt_pairing_success
+ifdef SECURE_CONNECTION	
+	beq BT_EVT_LE_GKEY_GENERATE,module_hci_event_le_gkey
+endif
+	beq BT_EVT_STORE_NVRAM,module_hci_event_store_device
+	beq BT_EVT_LE_LTK_LOST,module_process_ble_ltk_lost
+	rtn
+
+	
+module_process_bb_event_disconned:
+	call module_spp_clear_last_transmite_clock
+	fetch 1,mem_flag_pairing_state
+	ncall module_hci_event_bt_pairing_fail,blank
+	call module_disconn_start
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BT_SPP_CONN
+	branch  module_spp_disconnected
+
+module_process_spp_connected:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_SPP_CONN,pdata
+	store 2,mem_ui_state_map
+	fetch 1,mem_module_spp_lpm_mult
+	store 1,mem_lpm_mult
+	call module_set_conn_pin_low
+	branch module_hci_event_spp_connect
+
+module_process_spp_disconnected:
+//	branch module_spp_disconnected
+module_spp_disconnected:
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BT_SPP_CONN
+	set0 UI_STATE_BT_SPP_CONN ,pdata
+	store 2,mem_ui_state_map
+	branch module_hci_event_spp_disconnect
+
+
+module_process_enter_sniff:
+
+module_sniff_param_check:
+	call module_spp_clear_last_transmite_clock
+	//fetch 1,mem_context
+	//rtnbit0 state_insniff
+	fetch 2,mem_context+coffset_tsniff
+	rshift pdata,pdata
+	fetcht 2,mem_sniff_param_interval
+	isub temp,null
+	nbranch module_sniff_param_check_unsniff,zero
+	branch app_lpm_mult_enable
+module_sniff_param_check_unsniff:
+	fetch 1,mem_module_flag
+	rtnbit1 MOUDLE_TASK_UNSNIFF
+	hfetch 2,core_uart_rxitems    //*
+	ncall module_set_unsniff_task_flag,blank    //*仰
+	branch app_bt_sniff_exit
+
+module_process_exit_sniff:
+	call module_clear_sniff_task_flag
+	branch app_lpm_mult_disable
+ 	
+module_process_setup_complete:
+	call module_spp_clear_last_transmite_clock
+	branch module_conn_start
+	
+module_process_bb_even_le_disconn:
+	call le_clr_config_more_data
+	call module_disconn_start
+	branch module_hci_event_le_disconnect
+
+module_process_evt_pincode_req:
+	branch  app_bt_set_pincode
+	
+
+module_process_sniff_not_accept:
+	branch module_clear_sniff_task_flag
+
+
+module_process_unsniff_accept:
+	fetch 1,mem_module_flag
+	bbit0 MOUDLE_TASK_UNSNIFF,app_bt_enter_sniff
+	branch module_clear_unsniff_task_flag
+
+	
+module_process_unsniff_not_accept:
+	branch module_clear_unsniff_task_flag
+
+	
+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_process_bb_conn:
+	jam 0,mem_flag_mode_ssp_pin
+	call module_clear_sniff_task_flag
+	branch module_clear_unsniff_task_flag
+
+module_process_page_time_out:
+module_process_reconn_fail:
+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_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_BT_BIT,pdata
+	call app_bt_stop_discovery,true
+	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
+
+module_process_with_credit:
+	fetch 1,mem_credit_flag
+	rtneq CREDIT_DISABLE
+	branch rfcomm_send_uih_without_payload
+
+module_process:
+	hfetch 1,core_uart_status
+	bbit1 uart_status_rx_fifo_empty,module_process_with_credit  //rx no data
+	call uartd_prepare_rx
+	ifetch 1,contru
+	bne 0x01,module_hci_in_excp
+	hfetch 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
+	hfetch 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 patch1b_7,mem_patch1b
+	hfetch 2,core_uart_rxitems
+	rtn blank
+	call uartd_prepare_rx
+	ifetch 1,contru
+	sub pdata,0x01,null
+	ncall module_hci_dicard_bytes,zero
+	nbranch module_hci_release_except,zero
+	ifetch 1,contru
+	rtneq HCI_CMD_SPP_DATA_REQ
+	rtneq HCI_CMD_SET_CREDIT_GIVEN
+	increase -1,contru
+	call module_hci_dicard_bytes
+	branch module_hci_release_except
+
+module_hci_dicard_packet:
+	call uartd_prepare_rx
+	increase 2,contru
+	ifetch 1,contru
+	iadd contru,contru
+module_hci_dicard_bytes:
+	branch uartd_rxdone
+	
+/*********************HCI CONTROL*********************/
+module_hci_cmd_control:
+	bpatch patch1c_0,mem_patch1c
+	fetch 1,mem_module_uart_opcode
+	beq HCI_CMD_SET_BT_ADDR_REQ,module_hci_cmd_set_bt_addr
+	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_BT_NAME_REQ,module_hci_cmd_set_bt_name
+	beq HCI_CMD_SET_LE_NAME_REQ,module_hci_cmd_set_le_name
+	beq HCI_CMD_SPP_DATA_REQ,module_hci_cmd_receive_spp_data
+	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_PAIRING_REQ,module_hci_cmd_set_pairing_mode
+	beq HCI_CMD_SET_PINCODE_REQ,module_hci_cmd_set_pincode	
+	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_BT_DISCONNECT,module_hci_cmd_bt_disconnect
+	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_SET_CREDIT_GIVEN,module_hci_cmd_set_credit_given
+	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_TEST_CMD_CLOSE_LPM,module_hci_test_cmde_close_lpm
+	branch  module_hci_event_receive_invalid_cmd
+
+/*********************HCI COMMAND*********************/
+
+//command opcode 0x00
+module_hci_cmd_set_bt_addr:
+	fetch 1,mem_module_uart_len
+	bne 6,module_hci_event_receive_invalid_cmd
+	ifetch 6,contru
+	store 6,mem_lap
+	branch module_hci_event_receive_valid_cmd
+
+//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
+	copy rega,contru
+	call module_hci_event_receive_valid_cmd
+	ifetcht 1,contru
+	storet 1,mem_module_bluetooth_stauts_by_command
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	rtnbit1 UI_STATE_BT_CONNECTED
+module_start_adv_discovery_by_command:
+	fetch 1,mem_module_state
+	isolate1 MOUDLE_STATE_BT_BIT,pdata
+	nbranch moudle_start_adv_by_command,true
+	fetcht 1,mem_module_bluetooth_stauts_by_command
+	and temp,0x03,pdata
+	store 1,mem_scan_mode
+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 0x03
+module_hci_cmd_set_bt_name:
+	fetch 1,mem_module_uart_len
+	sub pdata,67,null
+	nbranch module_hci_event_receive_invalid_cmd,positive
+	store 1,mem_local_name_length
+	arg 8,loopcnt
+	call memset0
+	fetch 1,mem_module_uart_len
+	copy pdata,loopcnt
+	copy rega,contru
+	arg mem_local_name,contw
+	call uart_copy_rx_bytes_fast
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x04
+module_hci_cmd_set_le_name:
+	fetch 1,mem_module_uart_len
+	sub pdata,29,null
+	nbranch module_hci_event_receive_invalid_cmd,positive
+	store 1,mem_le_name_len
+	copy pdata,loopcnt
+	copy rega,contru
+	arg mem_le_name,contw
+	call uart_copy_rx_bytes_fast
+	call le_modified_name
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x05
+module_hci_cmd_receive_spp_data:
+	fetch 1,mem_ui_state_map
+	bbit0 UI_STATE_BT_SPP_CONN,module_hci_event_receive_invalid_cmd
+	call app_check_sniff
+	branch module_hci_cmd_spp_exit_sniff,true
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+//	call p_nl_clear_last_transmite_clock
+	call module_spp_clear_last_transmite_clock
+	fetch 1,mem_remote_credits
+	rtn blank
+	fetch 2,mem_nl_rx_len_all
+	bne 0,module_hci_cmd_pass_init_ng_rx_len_all
+	fetch 1,mem_module_uart_len
+	store 2,mem_nl_rx_len_all
+
+	copy rega,contru
+//	ifetch 2,contru
+//	store 2,mem_nl_rx_handle
+	copy contru,pdata
+	store 2,mem_nl_rx_data_src
+module_hci_cmd_pass_init_ng_rx_len_all:
+	call module_hci_cmd_get_current_packet_len_and_remain_len
+	branch spp_tx_rfcomm_packet
+	
+module_hci_cmd_spp_exit_sniff:
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	branch module_exit_sniff
+
+module_hci_cmd_get_current_packet_len_and_remain_len:
+	call module_hci_cmd_get_current_patcket_len
+	fetch 2,mem_nl_rx_len_all
+	fetcht 2,mem_current_packet_length
+	isub temp,pdata
+	store 2,mem_nl_rx_len_all
+	rtn
+
+module_hci_cmd_get_current_patcket_len:
+	fetch 2,mem_nl_rx_len_all
+	arg DM_REFCOM_BUFF_LEN,temp
+	call not_greater_than
+	fetcht 2,mem_rfcomm_max_frame_size
+	call not_greater_than
+	fetcht 2,mem_pn_max_frame_size
+	call not_greater_than
+	store 2,mem_current_packet_length
+	rtn
+
+module_hci_command_tx_spp_tx_complete:
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	jam HCI_CMD_SPP_DATA_REQ,mem_module_uart_opcode
+	branch module_hci_event_receive_valid_cmd
+
+
+//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 1,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
+	copy contru,pdata
+	store 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
+	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 1,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_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 patch1c_1,mem_patch1c
+	add temp,-3,pdata		//sub handle and opcode
+	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
+	fetcht 2,mem_module_hci_notify_handle
+	call le_att_malloc_tx_notify
+	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
+
+
+//output: temp is master mtu
+module_get_le_remote_mtu:
+	arg 0x17,temp
+	fetch 1,mem_module_flag
+	rtnbit1 MODULE_FLAG_BLE_SEND_MTU23
+	fetcht 2,mem_le_remote_mtu
+	rtn
+
+module_check_ble_encrypt_state:
+	fetch 1,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 0x0c
+module_hci_cmd_set_pairing_mode:
+	copy rega,contru
+	ifetch 1,contru
+	beq PAIRING_PINCODE,module_hci_pairing_pincode_mode
+	beq PAIRING_JUSTWORK,module_hci_pairing_just_work_mode
+	beq PAIRING_PASSKEY,module_hci_pairing_passkey
+	beq PAIRING_CONFIRM,module_hci_pairing_numeric_comparison
+	branch module_hci_event_receive_invalid_cmd
+module_hci_pairing_pincode_mode:
+	call ssp_disable
+	jam 0,mem_ssp_enable
+	branch module_hci_event_receive_valid_cmd
+module_hci_pairing_just_work_mode:
+	setarg SSP_MODE_JUST_WORK_IO_CAP_DATA
+module_hci_sspairing_mode:	
+	store 3,mem_sp_iocap_local
+	store 1,mem_ssp_mode_flag
+	call ssp_enable
+	jam 1,mem_ssp_enable
+	branch module_hci_event_receive_valid_cmd
+module_hci_pairing_passkey:
+	setarg SSP_MODE_PASSKEY_IO_CAP_DATA
+	branch module_hci_sspairing_mode
+
+module_hci_pairing_numeric_comparison:
+	setarg SSP_MODE_SSP_PIN_IO_CAP_DATA
+	branch module_hci_sspairing_mode
+
+//command opcode 0x0d
+module_hci_cmd_set_pincode:
+	fetch 1,mem_module_uart_len
+	sub pdata,16,null
+	nbranch module_hci_event_receive_invalid_cmd,positive
+	store 1,mem_pin_length
+	copy pdata,loopcnt
+	arg mem_pin,contw
+	call uart_copy_rx_bytes
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x0e
+module_hci_cmd_set_uart_control_mode:
+	copy rega,contru
+	ifetch 1,contru
+	hfetcht 1,core_uart_ctrl
+	nsetflag blank,4,temp
+	hstoret 1,core_uart_ctrl
+ 	branch module_hci_event_receive_valid_cmd
+
+ 	
+//command opcode 0x0f
+module_hci_cmd_set_uart_baud:
+	fetch 1,mem_module_uart_len
+	copy pdata,loopcnt
+	copy rega,contru
+	call string2dec_from_uart
+	setarg uart_clk_24
+	idiv temp
+	call wait_div_end
+	quotient pdata
+module_hci_cmd_set_uart_baud_ok:
+	store uart_baud_len,mem_baud
+	call module_hci_event_receive_valid_cmd
+	call wait_uarttx
+	branch uart_set_baud_by_mem
+
+
+//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
+module_hci_event_set_cmd_send_response:
+	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 0x11
+module_hci_cmd_bt_disconnect:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BT_CONNECTED,module_hci_event_receive_invalid_cmd
+module_hci_cmd_bt_disconnect_doing:
+	call module_hci_event_receive_valid_cmd
+	branch app_bt_disconnect
+
+	
+//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:
+	fetch 1,mem_module_uart_len
+	copy pdata,loopcnt
+	copy rega,contru
+	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 1,mem_ui_state_map
+	bbit0 UI_STATE_BT_CONNECTED,module_hci_event_receive_invalid_cmd	
+	ifetch 1,contru
+	fetcht 1,mem_flag_mode_ssp_pin
+	setflag blank,FLAG_MODE_SSP_PIN_COMPARISON_RESULT_BIT,temp
+	set1 FLAG_MODE_SSP_PIN_REVICEVE_COMPARISON_BIT ,temp
+	storet 1,mem_flag_mode_ssp_pin
+
+	call module_hci_event_receive_valid_cmd
+
+	fetch 1,mem_flag_mode_ssp_pin
+	bbit1 FLAG_MODE_SSP_PIN_RECIEVE_DHKEY_BIT,module_hci_cmd_spp_number_comparison_result_is1
+	rtn
+
+dhkey_not_accept:
+	jam 0,mem_flag_mode_ssp_pin
+	jam BT_CMD_DHKEY_NOT_ACCEPT,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+
+module_hci_cmd_spp_number_comparison_result_is1:
+	bbit1 FLAG_MODE_SSP_PIN_COMPARISON_RESULT_BIT,number_comparison_successed
+	branch dhkey_not_accept	
+
+
+//command opcode 0x29
+module_hci_cmd_set_credit_given:
+	fetch 1,mem_ui_state_map
+	rtnbit0 UI_STATE_BT_SPP_CONN
+	fetch 1,mem_credit_flag
+	rtneq CREDIT_DISABLE
+	ifetch 1,contru
+	fetcht 1,mem_credit_given
+	iadd temp,temp
+	storet 1,mem_credit_given
+	rtn
+
+	
+//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:
+	ifetch 4,contru
+	store 4,mem_pin
+	jam 4,mem_pin_length
+	jam 0,mem_authentication_passkey_times
+	call module_hci_event_receive_valid_cmd
+	branch authentication_passkey
+
+
+//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:
+	ifetcht 1,contru
+	ifetch 1,contru
+	beq GPIO_INPUT_HIGH_IMPEDANCE,module_set_gpio_high_impedance
+	nsetflag blank,7,temp
+	call gpio_config_input
+	branch module_hci_event_receive_valid_cmd
+
+module_set_gpio_high_impedance:
+	call gpio_set_high_impedance
+	branch module_hci_event_receive_valid_cmd
+	
+module_set_gpio_output:
+	ifetcht 1,contru
+	call gpio_config_output0
+	ifetch 1,contru	
+	isolate1 0,pdata
+	call gpio_out_flag
+	branch module_hci_event_receive_valid_cmd
+
+
+//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
+	branch module_hci_event_set_cmd_send_response
+
+
+//command opcode 0x33
+module_hci_cmd_le_set_pairing_mode:
+	copy rega,contru
+	ifetch 1,contru
+	copy pdata,temp
+ifdef SECURE_CONNECTION
+	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
+endif
+	store 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
+	branch module_hci_event_receive_invalid_cmd
+		
+ifdef SECURE_CONNECTION	
+module_le_set_pairing_mode_secure_justwork:
+	fetch 1,mem_le_secure_connect_enable
+	branch module_hci_event_receive_invalid_cmd,blank
+	storet 1,mem_le_pairing_mode
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch module_le_set_noinputnooutput
+module_le_set_pairing_mode_secure_numeric:
+	fetch 1,mem_le_secure_connect_enable
+	branch module_hci_event_receive_invalid_cmd,blank
+	storet 1,mem_le_pairing_mode
+	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:	
+	fetch 1,mem_le_secure_connect_enable
+	branch module_hci_event_receive_invalid_cmd,blank
+	storet 1,mem_le_pairing_mode
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch module_le_set_displayonly
+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_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
+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:
+	fetch 1,mem_module_uart_len
+	sub pdata,31,null
+	nbranch module_hci_event_receive_invalid_cmd,positive
+	store 1,mem_le_adv_data_len
+	copy pdata,loopcnt
+	copy rega,contru
+	arg mem_le_adv_data,contw
+	call uart_copy_rx_bytes_fast
+	branch module_hci_event_receive_valid_cmd
+	
+
+//command opcode 0x35
+module_hci_cmd_le_set_scan_data:
+	fetch 1,mem_module_uart_len
+	sub pdata,31,null
+	nbranch module_hci_event_receive_invalid_cmd,positive
+	store 1,mem_le_scan_data_len
+	copy pdata,loopcnt
+	copy rega,contru
+	arg mem_le_scan_data,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
+	copy rega,contru
+	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
+	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 0x49
+module_hci_cmd_set_reject_justwork_flag:
+	fetch 1,mem_module_uart_len
+	bne 0x01,module_hci_event_receive_invalid_cmd
+	call module_hci_event_receive_valid_cmd
+	ifetch 1,contru
+	branch classic_bt_clr_reject_justwork_flag,blank
+	branch classic_bt_set_reject_justwork_flag
+
+
+//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 loop
+
+
+//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 0xff
+module_hci_test_cmde_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 0x00
+module_hci_event_spp_connect:
+	jam  HCI_EVENT_SPP_CONN_REP,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+//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 0x03
+module_hci_event_spp_disconnect:
+	jam  HCI_EVENT_SPP_DIS_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 uartd_send
+
+
+//event opcode 0x07
+module_hci_event_receive_spp_data:
+//	call p_nl_clear_last_transmite_clock
+	call module_spp_clear_last_transmite_clock
+	jam HCI_EVENT_SPP_DATA_REP,mem_module_uart_opcode
+	fetch 1,mem_current_length
+	rtn blank
+	call module_hci_prepare_tx
+	fetch 1,mem_current_length
+	copy pdata,loopcnt
+	fetch 2,mem_rfcomm_uih_payload_ptr
+	copy pdata,contr
+	call uart_copy_tx_bytes_fast
+	branch uartd_send
+
+
+//event opcode 0x08
+module_hci_event_receive_le_data:
+	jam HCI_EVENT_LE_DATA_REP,mem_module_uart_opcode
+	fetch 1,mem_module_le_rx_data_len
+	icopy loopcnt
+	increase 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
+	branch uartd_send
+
+
+//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 uartd_send
+
+
+//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_BT_HID_CONN,queue
+	qisolate1 pdata
+	setflag true,3,temp
+
+	arg UI_STATE_BLE_CONNECTED,queue
+	qisolate1 pdata
+	setflag true,5,temp	
+	
+	fetch 1,mem_ui_state_map
+	arg UI_STATE_BT_SPP_CONN,queue
+	qisolate1 pdata
+	setflag true,4,temp	
+	
+	istoret 1,contwu
+	branch uartd_send
+
+//	temp: bit0 3.0 inquiry;bit1 3.0 scan;bit2 ble adv;
+
+module_hci_read_bt_status:
+	arg 0,temp
+	fetch 1,mem_scan_mode
+	arg inq_scan_mode,queue
+	qisolate1 pdata
+	setflag true,0,temp
+	arg page_scan_mode,queue
+	qisolate1 pdata
+	setflag true,1,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 uartd_send
+
+
+//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 uartd_send
+
+
+//event opcode 0x0f
+module_hci_event_invalid_packet:
+	jam HCI_EVENT_INVALID_PACKET,mem_module_uart_opcode
+	hfetch 2,core_uart_rxitems
+	arg 0xff,temp
+	call not_greater_than
+	copy pdata,loopcnt
+	call module_hci_prepare_tx
+	call uartd_prepare_rx
+	call uart_copy_rx2tx
+	branch uartd_send
+
+
+//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 uartd_send
+
+
+//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_bt_pairing_fail:
+	arg FLAG_BT_PAIRING_FAIL,rega
+	branch module_hci_event_pairing_completed
+
+module_hci_event_bt_pairing_success:
+	arg FLAG_BT_PAIRING_SUCCESS,rega
+
+module_hci_event_pairing_completed:
+	jam 0,mem_flag_mode_ssp_pin
+	jam HCI_EVENT_LE_PAIRING_STATE,mem_module_uart_opcode
+	setarg 2
+	call module_hci_prepare_tx
+	copy rega,pdata
+	istore 2,contwu
+	branch uartd_send
+
+
+//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 uartd_send
+
+
+//event opcode 0x1d
+module_hci_event_le_gkey:
+	jam HCI_EVENT_LE_GKEY,mem_module_uart_opcode
+	setarg 4
+	call module_hci_prepare_tx
+	fetch 4,mem_gkey
+	istore 4,contwu
+	branch uartd_send
+
+
+//****************************************************************//
+	//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 patch1c_2,mem_patch1c
+	call module_set_mcu_wake_pin_high_delay
+	fetcht 8,mem_temp
+	call uartd_prepare_tx
+	fetch 3,mem_module_uart_cmd
+	istore 3,contwu
+	rtn
+
+
+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:
+	//call ice_break
+	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
+
+
+delay:
+	increase -1,pdata
+	nop 38
+	nbranch delay,blank
+	rtn
+
+/*********************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:
+	call module_check_ble_encrypt_state
+	rtn user
+	copy rega,pdata
+	store 2,mem_module_le_rx_data_address
+	copy regb,pdata
+	store 1,mem_module_le_rx_data_len
+	fetch 2,mem_le_att_handle
+	fetcht 2,mem_module_data_write_handle
+	isub temp,null
+	branch module_le_receive_data_ok,zero
+	fetcht 2,mem_module_data_write_handle2
+	isub temp,null
+	nrtn zero
+module_le_receive_data_ok:	
+	store 2,mem_module_le_rx_data_handle
+	branch module_hci_event_receive_le_data
+
+
+/*********************hci ble receive data end*********************/
+
+module_exit_sniff:
+	fetch 1,mem_module_flag
+	rtnbit1 MOUDLE_TASK_UNSNIFF
+	call module_set_unsniff_task_flag	
+	branch app_bt_sniff_exit
+
+
+module_set_lpm_mult_2:
+	jam 2,mem_lpm_mult
+	rtn
+
+
+
+module_bb_event_timer:
+	branch module_read_vdd_timer
+
+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 adc_set_mode
+	call vdd_calculate_by_mode
+	div pdata,0x64
+	call wait_div_end
+	quotient pdata
+	remainder temp
+	store 1,mem_module_vdd_quotient
+	storet 1,mem_module_vdd_remainder
+	rtn	
+	
+
+module_control_air_flow:
+	call check_uart_tx_buff
+	branch app_l2cap_flow_control_enable,positive
+	branch app_l2cap_flow_control_disable
+
+
+/**************module state *******************/
+module_set_sniff_task_flag:
+	arg MOUDLE_TASK_SNIFF,queue
+	branch module_set_state
+
+module_clear_sniff_task_flag:
+	arg MOUDLE_TASK_SNIFF,queue
+	branch module_clr_state
+
+module_set_unsniff_task_flag:
+	arg MOUDLE_TASK_UNSNIFF,queue
+	branch module_set_state
+
+module_clear_unsniff_task_flag:
+	arg MOUDLE_TASK_UNSNIFF,queue
+	branch module_clr_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 1,mem_module_flag
+	qset0 pdata
+	store 1,mem_module_flag
+	rtn
+
+module_set_state:
+	fetch 1,mem_module_flag
+	qset1 pdata
+	store 1,mem_module_flag
+	rtn
+	
+/**************module state end*******************/
+
+
+else
+
+endif
Index: DpiSwitch/program/app_mouse.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_mouse.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_mouse.prog	(working copy)
@@ -0,0 +1,2662 @@
+
+
+//define FPGA_DEBUG
+
+
+ifdef COMPILE_MOUSE
+mouse_init:
+	call mouse_setting_config
+	call spi_ncs_enable
+	call mouse_init_sunt
+	call mouse_dpi_config
+	call spi_ncs_disable
+	rtn wake
+	call mouse_cheak_enable_usb
+	call mouse_cb_fuction
+//	fetch 1,mem_wakup_from_power_flag
+//	isolate0 gpio_latch,pdata
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_USB
+	call mouse_wakeup_from_power//,true	// enter 
+ifdef FPGA_DEBUG
+	arg MOUSE_FPGA_DEBUG_GPIO,temp
+	call gpio_config_output
+	arg MOUSE_FPGA_RF_WORK_DEBUG_GPIO,temp
+	call gpio_config_output
+	arg MOUSE_FPGA_DEBUG_GPIO,temp
+	call gpio_out_active
+endif
+	rtnmark1 mark_24g
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	branch mouse_check_reconn_target
+
+
+mouse_delay_4s:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_INIT_DELAY
+	arg 20,loopcnt
+mouse_delay_20ms:
+	setarg 200000
+	call sleep
+	loop delay_10ms
+	rtn
+
+	
+mouse_cheak_enable_usb:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	branch usb_init
+	
+
+mouse_cb_fuction:
+	setarg mouse_le
+	store 2,mem_cb_le_process
+	setarg mouse_send_process
+	store 2,mem_cb_bt_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 le_mouse_bb_event_connect_complete
+	store 2,mem_cb_att_write
+
+	call g24_head_ptr2regc
+	setarg mouse_g24_package_data
+	add regc,offset_24g_cb_data,contw
+	istore 2,contw
+	setarg mouse_g24_enter_lpm
+	add regc,offset_24g_cb_lpm_prepare,contw
+	istore 2,contw
+	setarg mouse_lpm_before_common
+	add regc,offset_24g_cb_lpm_before,contw
+	istore 2,contw
+	
+	setarg mouse_bb_event_timer
+	store 2,mem_cb_event_timer
+	setarg mouse_spi_write_flash_cb
+	store 2,mem_cb_spi_flash_write_complate
+	rtn
+mouse_spi_write_flash_cb:
+mouse_spi_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_SPI2,spid_init
+	branch spid_init2
+
+mouse_setting_config:
+	rtn wake
+	call g24_set_device_addr
+	call mouse_gpio_init
+	call mouse_param_init
+	call mouse_adc_init
+	call le_set_config_fixed_ltk
+	call le_set_justwork
+	call le_set_fixed_ltk
+	call le_set_config_read_authentication
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_init_iic
+	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_cheak
+	rtn
+
+mouse_init_iic:
+	call iic_init_390k
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
+	ncall clear_eeprom_size_2k,true
+	call mouse_load_eeprom_dpi
+	call mouse_init_environment
+	call mouse_set_24g_addr_eeprom
+	branch iicd_read_eep_data
+
+mouse_wakeup_from_power:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_WAKEUP_FROM_POWER,mouse_wakeup_no_from_power
+	fetch 1,mem_wakup_from_power_flag
+	isolate0 gpio_latch,pdata
+	nrtn true
+mouse_wakeup_no_from_power:
+	fetch 1,mem_reconn_times_init
+	store 1,mem_reconn_times
+	fetch 1,mem_config_function_enable
+	rtnbit1 ENABLE_SELECT_DEVICE_BY_SWITCH
+mouse_start_24g_mode:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,g24_auto_pair_start
+	branch g24_check_51cmd_start_24g
+le_mouse_bb_event_connect_complete:
+	fetch 1,mem_le_att_handle
+	sub pdata,26,pdata
+	nrtn zero
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	call ui_ipc_send_cmd
+mouse_le_write_enable:	
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+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
+	rtn
+mouse_dpi_config:
+	fetch 1,mem_config_sensor_motion
+	and pdata,0x0f,pdata
+	store 1,mem_mouse_dpi
+	branch mouse_seting_dpi+2
+
+
+mouse_dpi_cheak:
+	fetcht 1,mem_dpi_button_gpio
+	call gpio_get_bit
+	nbranch mouse_dpi_up,true
+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
+mouse_dpi_down_setting:
+	fetch 1,mem_mouse_dpi
+	increase 1,pdata
+	and pdata,0x03,pdata
+	store 1,mem_mouse_dpi
+	call mouse_seting_dpi
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eerpom_dpi
+	bbit1 MOUSE_ENABLE_FLASH,mouse_before_store_flash_cpi
+	rtn
+mouse_before_store_flash_cpi:
+	arg MOUSE_SPI2_CLK_GPIO,temp
+	call gpio_config_output				//hold high
+	arg MOUSE_SPI2_SDIO_GPIO,temp
+	call gpio_config_output 			//hold high 
+	branch mouse_store_flash_device_info
+
+mouse_seting_dpi:
+	bpatch patch1c_3,mem_patch1c
+	call mosue_dpi_led_blink_init
+	fetch 1,mem_config_sensor_type
+	beq P3610,mouse_seting_3610_dpi
+	beq P3212,mouse_seting_3212_dpi
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_cpi1
+	beq MOUSE_DPI_LEVEL2,mouse_set_cpi2
+	beq MOUSE_DPI_LEVEL3,mouse_set_cpi3
+	beq MOUSE_DPI_LEVEL4,mouse_set_cpi4
+mouse_set_cpi2:
+	fetch 1,mem_320x_dpi_2
+	branch mouse_p3205_dpi
+mouse_set_cpi1:
+	fetch 1,mem_320x_dpi_1
+	branch mouse_p3205_dpi
+mouse_set_cpi3:
+	fetch 1,mem_320x_dpi_3
+	branch mouse_p3205_dpi
+mouse_set_cpi4:
+	fetch 1,mem_320x_dpi_4
+	branch mouse_p3205_dpi
+moue_seting_cpi_count:
+	fetch 1,mem_config_sensor_type
+	rtneq P3065_XY
+	fetch 1 ,mem_mouse_cpi_count
+	increase 1,pdata
+	store 1,mem_mouse_cpi_count
+	rtn
+
+mouse_seting_3212_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_p3212_cpi1
+	beq MOUSE_DPI_LEVEL2,mouse_set_p3212_cpi2
+	beq MOUSE_DPI_LEVEL3,mouse_set_p3212_cpi3
+	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi4
+mouse_set_p3212_cpi2:
+	fetch 1,mem_3212_dpi_2
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi1:
+	fetch 1,mem_3212_dpi_1
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi3:
+	fetch 1,mem_3212_dpi_3
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi4:
+	fetch 1,mem_3212_dpi_4
+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_3610_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_p3610_cpi1
+	beq MOUSE_DPI_LEVEL2,mouse_set_p3610_cpi2
+	beq MOUSE_DPI_LEVEL3,mouse_set_p3610_cpi3
+	beq MOUSE_DPI_LEVEL4,mouse_set_p3610_cpi4
+mouse_set_p3610_cpi2:
+	fetch 1,mem_3610_dpi_2
+	branch mouse_p3610_dpi
+mouse_set_p3610_cpi1:
+	fetch 1,mem_3610_dpi_1
+	branch mouse_p3610_dpi
+mouse_set_p3610_cpi3:
+	fetch 1,mem_3610_dpi_3
+	branch mouse_p3610_dpi
+mouse_set_p3610_cpi4:
+	fetch 1,mem_3610_dpi_4
+mouse_p3610_dpi:
+	store 1,mem_mouse_cpi_count
+	call mouse_spi_sdio_gpio_pollup
+	fetch 1,mem_mouse_cpi_count
+mouse_reset_p3610_dpi:
+	add pdata,0x80,pdata
+	lshift8 pdata,pdata
+	add pdata,MOUSE_P3610_DPI_ADDRESS,pdata
+	copy pdata,rega
+	branch mouse_set_sensor_reg
+	
+mouse_p3205_dpi:
+	store 1,mem_mouse_cpi_count
+	call moue_seting_cpi_count
+	fetch 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_init_environment:
+	call app_initflag_check
+	branch mouse_eeprom_load_recon_info,zero
+	call mouse_ble_init_address
+	call mouse_store_eeprom_device_info
+	branch app_initflag_store
+
+
+mouse_24g_pairing_button:
+	fetch 2,mem_24g_pairing_timer_count
+	rtn blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G
+	rtnbit1 MOSUE_24G_PAIRING_FLAG
+	rtnmark1 mark_24g
+	call mouse_check_key_gpio
+	rtnne MOUSE_LMR_BUTTON
+	call mouse_devce_led_off
+	arg MOSUE_24G_PAIRING_FLAG,queue
+	call mouse_enable_function_flag
+	setarg 0
+	store 2,mem_mouse_direct_timer
+	store 1,mem_mouse_send_blank_timer
+	call g24_set0_mem_check_dongle_times
+	
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_RECONNECT,mouse_cancel_reconnect
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
+	call mouse_stop_discovery
+	branch g24_start_pairing_sm1
+	
+ifdef FPGA_DEBUG
+mouse_fpga_rf_working_normal:
+	fetch 1,mem_le_req_rcv
+	and pdata,0xfe,pdata
+	call mouse_fpga_working_fail,blank
+	fetch 1,mem_le_req_rcv
+	and pdata,0xfe,pdata
+	ncall mouse_fpga_working_normal,blank
+//	fetch 1,mem_inquiryscan_rcvcnt
+//	and pdata,0xfe,pdata
+//	call mouse_fpga_working_fail,blank
+//	fetch 1,mem_inquiryscan_rcvcnt
+//	and pdata,0xfe,pdata
+//	ncall mouse_fpga_working_normal,blank
+	rtn
+
+mouse_fpga_working_fail:
+	arg MOUSE_FPGA_RF_WORK_DEBUG_GPIO,temp
+	branch gpio_out_inactive
+
+mouse_fpga_working_normal:
+	arg MOUSE_FPGA_RF_WORK_DEBUG_GPIO,temp
+	branch gpio_out_active
+
+
+
+endif
+
+mouse_idle:
+ifdef FPGA_DEBUG
+	call mouse_fpga_rf_working_normal
+endif
+	call mouse_24g_pairing_button
+	call ui_check_paring_button
+	call mouse_dpi_cheak
+	call mouse_usb_isr
+	call mouse_wheel_check
+	branch mouse_usb_mode
+mouse_usb_isr:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	call usb_isr	
+	branch usb_offline_state
+
+mouse_cheak_usb:
+	hfetch 1,core_usb_addr
+	bbit0 7,mouse_usb_no_exsit
+	bbit1 7,mouse_usb_exsit
+	rtn
+mouse_usb_no_exsit:
+	fetch 1,mem_usb_addr
+	rtnbit0 7
+	branch soft_reset_chip
+mouse_usb_exsit:
+	fetch 1,mem_usb_addr
+	rtnbit1 7
+	branch mouse_stop_bluetooth_mode
+	
+mouse_usb_mode:
+	call mouse_cheak_usb
+	hfetch 1,core_usb_addr
+	store 1,mem_usb_addr
+	rtnbit0 7
+	call mouse_clkn_check 
+	fetch 4,mem_btclk_sensor
+	fetcht 1,mem_wire_usb_interval
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	store 4,mem_btclk_sensor
+	call mouse_motion
+	nrtn user
+	jam 4,mem_usb_tx_enable
+	branch mouse_wired_to_usb
+
+mouse_clkn_check:
+	fetcht 4,mem_btclk_sensor
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall mouse_clkn_timeout,positive
+	rtn
+mouse_clkn_timeout:
+	setarg 0
+	store 4,mem_btclk_sensor
+	rtn
+
+
+	
+mouse_wired_to_usb:
+	fetch 1,mem_usb_tx_enable
+	rtnbit0 2
+	branch mouse_data_push
+mouse_data_push:
+	hfetch 1,core_usb_addr
+	rtnbit0 7
+	jam USB_EP2_MS,mem_usb_ep2_data
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data	
+	fetch 7,mem_mouse_key
+	istore 7,contw
+	rtn
+
+
+mouse_enable_clock_qdecoder:
+	hfetch 2,core_clkoff
+	set0 CLOCK_OFF_QDECODER,pdata
+	hstore 2,core_clkoff
+	rtn
+
+mouse_param_init:
+	setarg 0x8c00				//bt sdp start address
+	store 2,mem_ui_uuid_table
+	setarg 0x8e7a				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	setarg 0x2402
+	store 2,mem_fcomp_mul
+	setarg 0x2580
+	store 3,mem_class
+	jam 3,mem_lpm_mult_timeout
+	jam 8,mem_lpm_overhead
+	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue
+	setarg 0x0200
+	store 2,mem_lpm_interval
+	jam 0x17,mem_le_local_mtu
+	jam 0x17,mem_le_remote_mtu
+//===========init spi param==============================
+	setarg 0x0a77
+	store 2,mem_spi_init_clk
+//===========default bt reconnect address===================	
+//	jam 1,mem_device_flag
+//	setarg 0x332211
+//	store 3,mem_device1_addr
+//	store 3,mem_device2_addr
+//	store 3,mem_device3_addr
+//	setarg 0x665544
+//	store 3,mem_device1_addr+3
+//	store 3,mem_device2_addr+3
+//	store 3,mem_device3_addr+3
+//	setarg 0x34
+//	store 1,mem_device1_type
+//	store 1,mem_device2_type
+//	store 1,mem_device3_type
+//===========all 16bit uuid==================================
+	setsect 0,0x306
+	setsect 1,0x4440
+	setsect 2,0x10000
+	setsect 3,0x4408
+	store 9,mem_all_uuid_16bits
+	setsect 0,0x1224
+	setsect 1,0x4000
+	setsect 2,0x0
+	istore 5,contw
+//===========features=====================================
+	setsect 0,0x3ffff
+	setsect 1,0x2fe23
+	setsect 2,0x199d9
+	setsect 3,0x20d
+	store 8,mem_features
+//======================================================	
+	setarg 0x012c  				//24g ban pairing timer init
+	store 2,mem_24g_pairing_timer_count
+	call le_modified_name
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	rtnbit0 MOUSE_ENABLE_GPIO_CONTROL_ADC_SENSOR
+	call mouse_sensor_set_angle
+	branch mouse_select_adc
+
+mouse_sensor_set_angle:
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_config_input
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	jam MOUSE_3CLK_ANGLE,mem_config_sensor_angle
+	rtn true
+	jam MOUSE_12CLK_ANGLE,mem_config_sensor_angle
+	rtn
+
+mouse_select_adc:
+	fetcht 1,mem_select_adc_gpio
+	call gpio_config_input
+	fetcht 1,mem_select_adc_gpio
+	call gpio_get_bit
+	jam ADC_CONFIG_VINLPM,mem_adc_config_flag
+	rtn true
+	jam ADC_CONFIG_GPIO,mem_adc_config_flag
+	rtn
+	
+	
+mouse_adc_init:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_VINLPM,mouse_adc_init_data_vinlpm
+	beq ADC_CONFIG_HVIN,mouse_adc_init_data_hvin
+	beq ADC_CONFIG_GPIO,mouse_adc_init_data_io
+	branch mouse_adc_init_data_vinlpm
+	
+mouse_adc_init_data_vinlpm:
+	fetcht 2,mem_2v_adc_vinlpm_data
+	fetch 2,mem_3v_adc_vinlpm_data
+	isub temp,pdata
+	mul32 pdata,20,pdata 
+	div pdata,100
+	call wait_div_end
+	quotient pdata
+	store 2,mem_adc_reference_voltage //vinlpm :2v2 low alter
+	rtn
+mouse_adc_init_data_hvin:
+	fetcht 2,mem_1v_adc_hvin_data
+	fetch 2,mem_5v_adc_hvin_data
+	isub temp,pdata
+	mul32 pdata,230,pdata 
+	div pdata,400
+	call wait_div_end
+	quotient pdata
+	store 2,mem_adc_reference_voltage //hvin :3v3 low alter
+	rtn
+mouse_adc_init_data_io:
+	fetch 2,mem_1v_adc_io_data
+	store 2,mem_adc_reference_voltage  //vio :1v low alter
+	rtn
+mouse_gpio_init:
+	fetcht 1,mem_eeprom_wp_gpio
+	call gpio_config_output
+	call usb_offline_check_init
+	fetcht 1,mem_lbutton_gpio
+	call gpio_config_input
+	fetcht 1,mem_rbutton_gpio
+	call gpio_config_input
+	fetcht 1,mem_mbutton_gpio
+	call gpio_config_input
+	fetcht 1,mem_sensor_data_gpio
+	call gpio_config_input
+
+	fetcht 1,mem_sensor_reset_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_config_input
+
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_config_input
+
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_config_input
+	fetcht 1,mem_whee_tb_data_gpio
+	call gpio_config_input
+
+	fetcht 1,mem_bk_button_gpio
+	call gpio_config_input
+	fetcht 1,mem_fw_button_gpio
+	call gpio_config_input
+
+	fetcht 1,mem_config_low_voltage_alarm_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_config_device1_led_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_config_device2_led_gpio
+	call gpio_config_output
+	
+	fetcht 1,mem_config_device3_led_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_dpi_led_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_config_input
+	
+	fetcht 1,mem_config_bt_button_gpio
+	call gpio_config_input	
+
+	fetcht 1,mem_dpi_button_gpio
+	branch gpio_config_input
+
+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_gpio_set_pupd_by_input:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	and temp,0x7f,queue
+	hfetch 4,core_gpio_in
+	qisolate1 pdata
+	hfetch 4,core_gpio_pu0
+	qsetflag true,pdata
+	hstore 4,core_gpio_pu0
+	hfetch 4,core_gpio_pd0
+	nqsetflag true,pdata
+	hstore 4,core_gpio_pd0
+	rtn
+	
+mouse_before_hibernate:
+	enable user
+	hfetch 4,0x8138
+	setflag user,26,pdata
+	hstore 4,core_lpm_reg
+	call lpm_write_ctrl
+	call mouse_devce_led_off
+	call mouse_before_hibernate_wheel_gpio_set
+//	call gpio_set_before_lpm_common
+	branch mouse_lpm_before_common
+
+
+	
+mouse_process_lpm_before:
+	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:
+	call mouse_wheel_check
+	arg MOUSE_SPI1_CLK_GPIO,temp					// set sclk high
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_SPI2,pdata
+	call mouse_spi_clk_gpio,true
+	call gpio_config_output
+	call twspi_disable
+
+
+
+	fetcht 1,mem_lbutton_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_rbutton_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_mbutton_gpio
+	call gpio_set_wake_by_current_state
+
+	fetcht 1,mem_bk_button_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_fw_button_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_dpi_button_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_set_wake_by_current_state
+	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_data_gpio
+	branch gpio_set_wake
+	
+
+	
+mouse_spi_clk_gpio:
+	arg MOUSE_SPI2_CLK_GPIO,temp
+	rtn
+
+mouse_wheel_check:
+	bpatch patch1c_4,mem_patch1c
+	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_count1
+	increase 1,pdata
+	store 1,mem_mouse_tz_data_count1
+	sub pdata,1,null
+	rtn positive
+	jam 0,mem_mouse_tz_data_count1
+	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_count
+	increase 1,pdata
+	store 1,mem_mouse_tz_data_count
+	sub pdata,1,null
+	rtn positive
+	jam 0,mem_mouse_tz_data_count
+	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:
+	jam 0,mem_mouse_z_data_count1
+	fetch 1,mem_mouse_z_data
+	increase 1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+mouse_wheel_back:
+	jam 0,mem_mouse_z_data_count
+	fetch 1,mem_mouse_z_data
+	increase -1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+	
+	
+mouse_hid_connected:
+	setarg HID_HANDSHAKE_TIMEOUT
+	store 1,mem_hid_handshake_timer_count
+	rtn
+	
+mouse_send_process:
+	fetch 1,mem_app_handshake_flag
+	rtn blank
+	call l2cap_malloc_is_fifo_nearly_full
+	nrtn blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOSUE_24G_PAIRING_FLAG,mouse_send_empty_data
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_send_empty_data
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_send_empty_data
+	call mouse_motion
+	nrtn user
+mouse_send_data:
+	arg 9,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0x02a1
+	istore 2,contw
+	fetch 7,mem_mouse_key
+	istore 7,contw
+	rtn
+
+	
+mouse_send_empty_data:
+	setarg 0
+	store 7,mem_mouse_key
+	branch mouse_send_data
+
+
+mouse_no_data_timer_init:
+	fetch 2,mem_mouse_no_data_timeout
+	store 2,mem_mouse_no_data_timer
+	rtn
+
+	
+mouse_fill_data_le:
+	bpatch patch1c_5,mem_patch1c
+	arg 7,rega //len
+	fetcht 2,mem_le_notify_handle
+	call le_att_malloc_tx_notify
+	fetch 7,mem_mouse_key
+	istore 7,contw
+	rtn
+
+mouse_motion:
+	bpatch patch1c_6,mem_patch1c
+	disable user
+	setarg 0
+	store 6,mem_mouse_x
+	call mouse_cheak_sensor_data
+	call mouse_zwheel
+	call mouse_t_zwheel
+	call mouse_key
+	nrtn user
+	call mouse_no_data_timer_init
+	arg MOUSE_STATUE_UP_FLAG,queue
+	branch mouse_enable_function_flag
+	
+motion_6clk_direction_dispose:
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	store 2,mem_mouse_x
+	branch enable_user
+motion_12clk_direction_dispose:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	store 2,mem_mouse_y
+	branch enable_user
+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
+motion_3clk_direction_dispose:
+	call mouse_sensor_data_swap_places
+	branch enable_user
+mouse_cheak_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 P3610,mouse_p3610_sensor_motion
+	beq P3065_xy,mouse_p32xx_sensor_motion
+	branch mouse_p32xx_sensor_motion
+	
+mouse_clear_sensor_data:
+	fetch 1,mem_mouse_move_flag
+	call mouse_read_sensor_common,blank
+	jam 1,mem_mouse_move_flag
+	rtn
+
+
+mouse_p3212_sensor_motion:
+	call mouse_clear_sensor_data
+	fetcht 1,mem_sensor_data_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_p3212_sensor_motion_1:	
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne P32XX_ID1,mouse_twspi_reset
+	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 extsign_bit3
+	store 1,mem_mouse_x+1
+	fetch 1,mem_mouse_xy_h
+	and pdata,0x0f,pdata
+	call extsign_bit3
+	store 1,mem_mouse_y+1
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,motion_6clk_direction_dispose
+	beq MOUSE_9CLK_ANGLE,motion_9clk_direction_dispose
+	beq MOUSE_12CLK_ANGLE,motion_12clk_direction_dispose
+	beq MOUSE_3CLK_ANGLE,motion_3clk_direction_dispose
+	rtn
+
+mouse_read_3212sensor_xy_high:
+	setarg 0x12
+	branch twspi_read
+	
+mouse_p3065_judge:
+	beq P3065_ID1,mouse_p32xx_sensor_motion_1
+	branch mouse_twspi_reset
+	
+mouse_p32xx_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	fetcht 1,mem_sensor_data_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 extsign
+	store 2,mem_mouse_x
+	fetch 1,mem_mouse_y
+	call extsign
+	store 2,mem_mouse_y
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,motion32xx_6clk_direction_selection
+	beq MOUSE_9CLK_ANGLE,motion32xx_9clk_direction_selection
+	beq MOUSE_12CLK_ANGLE,motion32xx_12clk_direction_selection
+	beq MOUSE_3CLK_ANGLE,motion32xx_3clk_direction_selection
+	rtn
+	
+motion32xx_6clk_direction_selection:
+	call motion_6clk_direction_dispose
+	branch mouse_sensor_sdio_low
+motion32xx_9clk_direction_selection:
+	call motion_9clk_direction_dispose
+	branch mouse_sensor_sdio_low
+motion32xx_12clk_direction_selection:
+	call motion_12clk_direction_dispose
+	branch mouse_sensor_sdio_low
+motion32xx_3clk_direction_selection:
+	call motion_3clk_direction_dispose
+	branch mouse_sensor_sdio_low
+	
+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
+//input regb  output:pdata
+mouse_p3610sensor_read:
+	call spi_ncs_enable
+	nop 100
+	copy regb,pdata
+	call twspi_read
+	copy pdata,regb
+	call spi_ncs_disable
+	nop 100
+	copy regb,pdata
+	rtn	
+mouse_p3610_sensor_motion:
+	disable user
+	fetcht 1,mem_sensor_data_gpio
+	call gpio_get_bit
+	nrtn true
+	arg PAN_REG_MOTION_STAUS,regb
+	call mouse_p3610sensor_read
+	rtnbit0 7
+	arg PAN_REG_PID_L,regb
+	call mouse_p3610sensor_read
+	store 1,mem_sensor_id1
+	bne P3610_ID1,mouse_init_3610sensor_reset
+	fetch 1,mem_mouse_move_flag
+	call mouse_read_sensor3610_data,blank
+	jam 1,mem_mouse_move_flag
+	call mouse_read_sensor3610_data
+	fetch 1,mem_mouse_xy_h
+	rshift4 pdata,pdata
+	call extsign_bit3
+	store 1,mem_mouse_x+1
+	fetch 1,mem_mouse_xy_h
+	and pdata,0x0f,pdata
+	call extsign_bit3
+	store 1,mem_mouse_y+1
+	fetch 1,mem_config_sensor_angle
+	beq 0,motion3610_6clk_direction_selection
+	beq 1,motion3610_9clk_direction_selection
+	beq 2,motion3610_12clk_direction_selection
+	beq 3,motion3610_3clk_direction_selection
+	rtn
+
+mouse_3610_smart_select:
+	fetch 1,mem_sensor_smart_flag
+	beq P3610_SMART_ENABLE,mouse_3610_smart_disable
+	beq P3610_SMART_DISABLE,mouse_3610_smart_enable
+	rtn
+
+
+motion3610_6clk_direction_selection:
+	call motion_6clk_direction_dispose
+	branch mouse_3610_smart_select
+	
+motion3610_12clk_direction_selection:
+	call motion_12clk_direction_dispose
+	branch mouse_3610_smart_select
+	
+motion3610_9clk_direction_selection:
+	call motion_9clk_direction_dispose
+	branch mouse_3610_smart_select
+	
+motion3610_3clk_direction_selection:
+	call motion_3clk_direction_dispose
+	branch mouse_3610_smart_select
+	
+mouse_read_sensor3610_data:
+	call spi_ncs_enable
+	call mouse_read_sensor_common
+	arg 5,pdata
+	call twspi_read
+	store 1,mem_mouse_xy_h
+	arg 7,pdata
+	call twspi_read
+	store 1,mem_sensor_shutter_hi
+	arg 8,pdata
+	call twspi_read
+	store 1,mem_sensor_shutter_lo
+	branch spi_ncs_disable
+
+
+mouse_3610_smart_enable:
+	fetch 1,mem_sensor_shutter_hi
+	rtnne 0
+	fetch 1,mem_sensor_shutter_lo
+	sub pdata,45,null
+	rtn positive
+	jam P3610_SMART_ENABLE,mem_sensor_smart_flag
+	setarg 0xba41
+	call sensor_write
+	setarg 0x0032
+	call sensor_write
+	setarg 0xb541
+	branch sensor_write
+mouse_3610_smart_disable:
+	fetch 1,mem_sensor_shutter_hi
+	rtnne 0
+	fetch 1,mem_sensor_shutter_lo
+	sub pdata,45,null
+	nrtn positive
+	jam P3610_SMART_DISABLE,mem_sensor_smart_flag
+	setarg 0xba41
+	call sensor_write
+	setarg 0x8032
+	call sensor_write
+	setarg 0xb541
+	branch sensor_write
+
+
+
+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
+	store 2,mem_mouse_y
+	rtn
+
+mouse_set_qdecoder_x:
+	arg MOUSE_DEFAULT_XA_GPIO,temp
+	call gpio_config_input
+	arg MOUSE_DEFAULT_XA_GPIO,temp
+	call gpio_get_bit
+	rtn true
+	hfetch 1,core_qdec_cntx
+	set1 4,pdata
+	hstore 1,core_qdec_cntx
+	rtn
+
+mouse_hardware_zwheel:
+	fetcht 1,mem_mouse_z_data
+	hfetch 1,core_qdec_cntx
+	iadd temp,pdata
+	rtn blank
+	store 1,mem_mouse_z
+	jam 0,mem_mouse_z_data
+	branch enable_user
+mouse_hardware_zwheel_beforelpm:
+	fetcht 1,mem_mouse_z_data
+	hfetch 1,core_qdec_cntx
+	iadd temp,pdata
+	store 1,mem_mouse_z_data
+	rtn
+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_check_key_gpio:
+	arg 0,rega
+	fetcht 1,mem_lbutton_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_rbutton_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	fetcht 1,mem_mbutton_gpio
+	call gpio_get_bit
+	setflag true,2,rega
+	call mouse_check_s_key_gpio
+mouse_check_key_gpio_output:
+	copy rega,pdata
+	rtn
+mouse_check_s_key_gpio:
+	fetch 1,mem_bk_button_gpio
+	rtneq GPIO_DISABLE
+	fetcht 1,mem_bk_button_gpio
+	call gpio_get_bit
+	setflag true,3,rega
+	fetcht 1,mem_fw_button_gpio
+	call gpio_get_bit
+	setflag true,4,rega
+	rtn
+
+mouse_key:
+	call mouse_check_key_gpio
+	call mouse_set_mult
+	call mouse_24g_key
+	copy rega,pdata
+	fetcht 1,mem_mouse_key
+	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
+
+//short mult: no key 
+mouse_set_mult:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,mouse_set_ble_mult
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_CONNECTED,mouse_set_bt_mult
+	rtn
+mouse_set_ble_mult:
+	copy rega,pdata
+	nbranch le_set_config_short_mult,blank
+	branch le_clr_config_short_mult
+mouse_set_bt_mult:
+	copy rega,pdata
+	nbranch classic_bt_set_mult_short_flag,blank
+	branch classic_bt_clr_mult_short_flag
+	
+	/* sdio high will cost extra 9mA */
+mouse_sensor_sdio_low:
+	bpatch patch1c_7,mem_patch1c
+	arg MOUSE_SPI1_SDIO_GPIO,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_SPI2,pdata
+	call mouse_sensor_sdio_low2,true
+	call gpio_get_bit
+	rtn true
+	setarg 0x0a
+	call twspi_read
+	nop 1000
+	branch mouse_sensor_sdio_low
+mouse_sensor_sdio_low2:
+	arg MOUSE_SPI2_SDIO_GPIO,temp
+	rtn
+
+mouse_spi_sdio_gpio_pollup:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SPI2,mouse_spi2_sdio_gpio_pollup
+mouse_spi1_sdio_gpio_pollup:
+	arg MOUSE_SPI1_SDIO_GPIO,temp
+	branch gpio_config_input_without_wake
+mouse_spi2_sdio_gpio_pollup:
+	arg MOUSE_SPI2_SDIO_GPIO,temp
+	branch gpio_config_input_without_wake
+
+	
+mouse_init_sunt:
+	call mouse_spi_init
+	rtn wake
+	call mouse_spi_sdio_gpio_pollup
+	fetch 1,mem_config_sensor_type
+	beq P3610,mouse_init_3610sensor
+mouse_init_sensor:
+	call mouse_read_sensor_id
+	beq P32XX_ID1,mouse_init_p32xx_id2_judge
+	beq P3065_ID1,mouse_p3065_init_param
+	call mouse_twspi_reset
+	nop 1000
+	branch mouse_init_sensor
+mouse_twspi_reset:
+	bpatch patch1d_0,mem_patch1d
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SPI2,twspi_reset2
+	branch twspi_reset
+
+mouse_init_3610sensor:
+	call mouse_read_sensor_id
+	beq P3610_ID1,mouse_init_p3610
+	call mouse_init_3610sensor_reset
+	branch mouse_init_3610sensor
+	
+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 P3205_TJ3T_ID2,mouse_3205_3t_init_param
+	beq P3204_TJ3L_ID2,mouse_3204_3l_init_param
+	beq P3212_ID2,mouse_3212_init_param
+	beq PKA8_ID2,mouse_ka8_init_param
+	rtn
+mouse_ka8_init_param:
+	jam KA8,mem_config_sensor_type
+	rtn
+mouse_p3065xy_init_param:
+	jam P3065_XY,mem_config_sensor_type
+	rtn
+mouse_p3065_init_param:
+	fetch 1,mem_sensor_id2
+	beq P3065_XY_ID2,mouse_p3065xy_init_param
+	jam P3065,mem_config_sensor_type
+	rtn
+mouse_3212_init_param:
+	jam P3212,mem_config_sensor_type
+	call mouse_sensor_disable_wp
+	setarg 0x3426
+	call twspi_write
+	setarg 0x0419
+	call twspi_write
+mouse_sensor_enable_wp:
+	setarg 0x0009
+	branch twspi_write
+mouse_sensor_disable_wp:
+	setarg 0x5a09
+	branch twspi_write
+
+mouse_3204_3l_init_param:
+	jam P3204,mem_config_sensor_type
+	call mouse_sensor_disable_wp
+	setarg 0x0f0d//
+	call twspi_write
+	setarg 0xe31d//
+	call twspi_write
+	setarg 0xd27d
+	call twspi_write
+	call mouse_32xx_init_param
+	branch mouse_32xx_init_param_1
+	
+mouse_32xx_init_param:
+	setarg 0x351b
+	call twspi_write
+	setarg 0xb428
+	call twspi_write
+	setarg 0x4629
+	call twspi_write
+	setarg 0x962a
+	call twspi_write
+	setarg 0x8c2b
+	call twspi_write
+	setarg 0x6e2c
+	call twspi_write
+	setarg 0x642d
+	call twspi_write
+	setarg 0x5f38
+	call twspi_write
+	setarg 0x0f39
+	call twspi_write
+	setarg 0x323a
+	call twspi_write
+	setarg 0x473b
+	call twspi_write
+	setarg 0x1042
+	branch twspi_write
+mouse_32xx_init_param_1:	
+	setarg 0x2e54
+	call twspi_write
+	setarg 0xf255
+	call twspi_write
+	setarg 0xf461
+	call twspi_write
+	setarg 0x7063
+	call twspi_write
+	setarg 0x5275
+	call twspi_write
+	setarg 0x4176
+	call twspi_write
+	setarg 0xed77
+	call twspi_write
+	setarg 0x2378
+	call twspi_write
+	setarg 0x4679
+	call twspi_write
+	setarg 0xe57a
+	call twspi_write
+	setarg 0x487c
+	call twspi_write
+	setarg 0x777e
+	call twspi_write
+	setarg 0x017f
+	call twspi_write
+	setarg 0x000b
+	call twspi_write
+	setarg 0x007f
+	call twspi_write
+	branch mouse_sensor_enable_wp
+	
+
+mouse_3205_3t_init_param:
+	jam P3205,mem_config_sensor_type
+	call mouse_sensor_disable_wp
+	setarg 0x100d//
+	call twspi_write
+	setarg 0xed1d//
+	call twspi_write
+	setarg 0x807d
+	call twspi_write
+	call mouse_32xx_init_param
+	setarg 0x0943
+	call twspi_write
+	branch mouse_32xx_init_param_1
+	
+	
+mouse_init_3610sensor_reset:
+	fetcht 1,mem_sensor_reset_gpio
+	call gpio_out_active
+	call delay_10ms
+	fetcht 1,mem_sensor_reset_gpio
+	call gpio_out_inactive
+	branch delay_10ms
+
+mouse_init_p3610:
+	jam P3610,mem_config_sensor_type
+	setarg 0xba41
+	call sensor_write
+	setarg 0x0d11
+	call sensor_write
+	setarg 0x041b
+	call sensor_write
+	setarg 0x041c
+	call sensor_write
+	setarg 0x0f1d
+	call sensor_write
+	setarg 0x0032
+	call sensor_write
+	setarg 0xb541
+	branch sensor_write
+	
+	
+//input-rega
+mouse_set_sensor_reg:
+	setarg 0xba41
+	call sensor_write
+	nop 4000
+	setarg 0xff7f
+	call sensor_write
+	copy rega,pdata
+	call sensor_write
+	setarg 0x007f
+	call sensor_write
+	setarg 0xb541
+	branch sensor_write
+
+extsign:
+	rtnbit0 7
+	arg 0xff00,temp
+	ior temp,pdata
+	rtn
+
+extsign_bit3:
+	rtnbit0 3
+	arg 0xf0,temp
+	ior temp,pdata
+	rtn
+
+
+mouse_le:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOSUE_24G_PAIRING_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
+	call mouse_motion
+	nrtn user
+	branch mouse_fill_data_le
+
+mouse_le_send_empty_packet:
+	setarg 0
+	store 7,mem_mouse_key
+	branch mouse_fill_data_le
+
+mouse_priority_bb_event:	
+	copy regc,pdata
+	beq BT_EVT_LE_CONNECTED,mouse_le_bb_event_connected
+	beq BT_EVT_BB_CONNECTED,mouse_stop_discovery
+	beq BT_EVT_LE_DISCONNECTED,mouse_bb_disconnected
+	beq BT_EVT_BB_DISCONNECTED,mouse_bb_disconnected
+	beq BT_EVT_SETUP_COMPLETE,mouse_bt_event_setup_complete
+	beq BT_EVT_BUTTON_LONG_PRESSED,mouse_bb_event_discovery_btn
+	beq BT_EVT_HID_HANDSHAKE,mouse_bt_hid_handshake
+	beq BT_EVT_HID_CONNECTED,mouse_bt_hid_connected
+	beq BT_EVT_RECONN_FAILED,mouse_bb_event_reconn_failed
+	beq BT_EVT_RECONN_PAGE_TIMEOUT,mouse_bb_event_reconn_timeout
+	beq BT_EVT_PINCODE_REQ,mouse_bb_event_pincode
+	beq BT_EVT_REMOTE_UNSNIFF,app_start_auto_sniff
+	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
+	beq BT_EVT_LE_START_ENC,mouse_le_ll_start_encryt
+	beq BT_EVT_LE_PAIRING_COMPLETE,mouse_le_pairing_complete
+	beq BT_EVT_VIRTUAL_CABLE_UNPLUG,mouse_irtual_cable_unplug
+	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
+	rtn
+
+
+mouse_le_pairing_complete:
+	branch app_ble_store_reconn_info
+
+mouse_24g_attempt_fail:
+	jam 1,mem_mouse_24g_enter_lpm_enable
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	fetcht 1,mem_24g_device_number
+	isub temp,null
+	branch app_enter_hibernate,zero
+	rtn
+mouse_24g_attempt_success:
+	jam 1,mem_mouse_24g_enter_lpm_enable
+	rtn
+mouse_24g_pairing_complete:
+	jam 1,mem_mouse_24g_enter_lpm_enable
+	arg MOSUE_24G_PAIRING_FLAG,queue
+	call mouse_disable_function_flag
+	setarg 0
+	store 2,mem_24g_pairing_timer_count
+	jam 0,mem_mouse_move_flag
+	
+	fetch 1,mem_config_sensor_type
+	sub pdata,P3610,null
+	call mouse_read_sensor3610_data,zero
+	ncall mouse_read_sensor_common,zero
+
+	fetch 1,MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_24g_address
+	call mouse_set_24g_addr_eeprom	//store rx dongle addr to eeprom
+	branch iicd_write_protect_eep_data
+
+mouse_set_24g_addr_eeprom:
+	call g24_head_ptr2regc
+	add regc,offset_24g_addr,rega
+	arg MOUSE_G24_ADDR_EEPROM_OFFECT,regb
+	arg 4,temp
+	rtn
+
+mouse_store_flash_24g_address:
+	call g24_head_ptr2regc
+	add regc,offset_24g_addr,regb
+	ifetch 1,regb
+	store 1,mem_mouse_24g_addr
+	branch mouse_store_flash_device_info
+	
+
+mouse_le_pairing_success:
+	arg LL_PAIRING_SUCCESS_FLAG,queue
+	branch mouse_le_enable_connect_flag
+mouse_le_ll_start_encryt:
+	jam 2,mem_le_start_encrypt_timer
+	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_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_bb_event_connected:
+	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
+	setarg 0
+	store 2,mem_mouse_direct_timer
+	call mouse_no_data_timer_init
+	branch mouse_stop_discovery
+
+mouse_bb_event_pincode:
+	call pincode_reinit
+	branch app_bt_set_pincode
+mouse_bb_event_reconn_timeout:
+ifdef FPGA_DEBUG
+	arg MOUSE_FPGA_DEBUG_GPIO,temp
+	call gpio_config_output
+	arg MOUSE_FPGA_DEBUG_GPIO,temp
+	call gpio_out_inactive
+endif
+mouse_bb_event_reconn_failed:
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_soft_reset
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_start_discovery
+	bbit1 MOSUE_24G_PAIRING_FLAG,g24_start_pairing_sm1
+	branch app_bb_hibernate
+
+	
+mouse_bt_hid_connected:
+	branch mouse_hid_connected
+
+mouse_bt_event_setup_complete:
+	rtn
+
+mouse_soft_reset:
+	call mouse_select_device_enable
+	branch soft_reset_chip
+
+mouse_bb_disconnected:
+	bpatch patch1d_1,mem_patch1d
+	call mouse_bb_discon_clear_stack
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_soft_reset
+	bbit1 MOSUE_24G_PAIRING_FLAG,g24_start_pairing_sm1
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,mouse4_0_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	bbit1 APP_DISC_AFTER_PAIRING,mouse_event_light_state_pairing
+	bbit1 APP_DISC_AFTER_RECONN,mouse_event_light_state_hibernate
+	bbit1 APP_DISC_AFTER_SNIFF,mouse_event_light_state_hibernate
+	branch mouse_start_discovery
+mouse_bb_discon_clear_stack:
+	setarg 0
+	store 8,mem_wheel_tb_old_pinlevel
+	istore 4,contw             //clean wheel statue
+	jam 0,mem_mouse_send_blank_timer
+	jam 0,mem_mouse_move_flag
+	jam APP_HANDSHAKE_NULL,mem_app_handshake_flag
+	jam 0,mem_ltk_exists
+	rtn
+
+mouse_event_light_state_pairing:
+	bbit1 APP_DISC_AFTER_HANDSHAKE,mouse_event_light_state_hibernate
+	bbit1 APP_DISC_AFTER_SNIFF,mouse_event_light_state_hibernate
+	branch mouse_start_discovery
+mouse_event_light_state_hibernate:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	branch app_bb_hibernate
+
+mouse4_0_event_bb_disconn:
+	call mouse_le_clean_connect_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch app_bb_hibernate
+
+mouse_bb_event_timer:
+	call mouse_adc_read
+	call mouse_24g_delay_timer
+	call mouse_ban_24g_pairing_timer
+	call mouse_dpi_led_blink_delay_timer
+	call mouse_statue_up_timer
+	//poll
+	call mouse_statue_cheak_timer
+	call mouse_select_device
+	call mouse_bt_discovery_cheak
+	call mouse_low_voltage_led_timer
+	call mouse_sensor_led_contrl_timer
+	call mouse_check_hid_handshake_timer
+	call mouse_check_discovery_timeout_timer
+	call mouse_check_direct_timeout_timer
+	call mouse_check_no_data_timeout_timer
+	call mouse_check_mouse_state_timer
+	branch mouse_le_enable_att_list_timer
+
+
+
+mouse_sensor_led_contrl_timer:
+	fetch 1,mem_mouse_sensor_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_mouse_sensor_timer_count
+	nrtn blank
+	branch mouse_sensor_led_contrl
+mouse_sensor_led_contrl:
+	fetch 1,mem_sensor_led_style
+	rtneq UI_LED_STATE_BLINK_STOP
+	beq UI_LED_STATE_BLINK_DARKING,mouse_sensor_led_blink_state_darking
+mouse_sensor_led_blink_state_lighting:
+	call mouse_sensor_led_on
+	jam UI_LED_STATE_BLINK_DARKING,mem_sensor_led_style
+	jam LED_SENSOR_BLINK_CNT,mem_mouse_sensor_timer_count
+	rtn
+mouse_sensor_led_blink_state_darking:
+	call mouse_sensor_led_off
+	jam UI_LED_STATE_BLINK_LIGHTING,mem_sensor_led_style
+	jam LED_SENSOR_BLINK_CNT,mem_mouse_sensor_timer_count
+	rtn
+	
+mouse_sensor_led_blink_stop:
+mouse_sensor_reset:
+	setarg 0x8006
+	call twspi_write
+    nop 1000
+	jam 0x00,mem_mouse_sensor_timer_count
+	jam UI_LED_STATE_BLINK_STOP,mem_sensor_led_style
+	branch mouse_init_p32xx_id2_judge
+	
+mouse_p3212sensor_led_on:
+	setarg 0xa006
+	call twspi_write
+	setarg 0xa005
+	branch twspi_write
+mouse_sensor_led_on_global:
+	jam 0,mem_mouse_sensor_timer_count
+mouse_sensor_led_on:
+	fetch 1,mem_config_sensor_type
+	beq P3212,mouse_p3212sensor_led_on
+	setarg 0x0106
+	call twspi_write
+	setarg 0xa105
+	branch twspi_write
+	
+mouse_sensor_led_off_global:
+	jam 0,mem_mouse_sensor_timer_count	
+mouse_sensor_led_off:
+	setarg 0x0906
+	branch twspi_write
+mouse_sensor_start_blink:
+	jam LED_SENSOR_BLINK_CNT,mem_mouse_sensor_timer_count
+	jam UI_LED_STATE_BLINK_START,mem_sensor_led_style
+	rtn
+	
+mouse_check_hid_handshake_timer:
+	arg mem_hid_handshake_timer_count,regc
+	arg mouse_bt_hid_handshake,regb
+	branch timer_single_step
+
+mouse_check_discovery_timeout_timer:
+	arg mem_mouse_discovery_timer,regc
+	arg mouse_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+mouse_check_direct_timeout_timer:	
+	arg mem_mouse_direct_timer,regc
+	arg mouse_check_direct_timeout,regb
+	branch timer_single_step_2B
+	
+mouse_check_no_data_timeout_timer:	
+	arg mem_mouse_no_data_timer,regc
+	arg mouse_check_no_data_timeout,regb
+	branch timer_single_step_2B
+	
+mouse_check_mouse_state_timer:
+	arg mem_mouse_statue_led_timer,regc
+	arg mouse_statue_led_off,regb
+	branch timer_single_step
+
+
+
+mouse_le_enable_att_list_timer:
+	arg mem_le_start_encrypt_timer,regc
+	arg mouse_le_enable_att_list,regb
+	branch timer_single_step
+
+mouse_24g_delay_timer:
+	arg mem_24g_enter_lpm_timer,regc
+	arg mouse_24g_delay,regb
+	branch timer_single_step
+
+mouse_ban_24g_pairing_timer:
+	arg mem_24g_pairing_timer_count,regc
+	arg mouse_ban_24g_pairing,regb
+	branch timer_single_step_2B
+mouse_ban_24g_pairing:
+mouse_24g_delay:
+	rtn
+
+
+mosue_dpi_led_blink_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DPI_LED_BLINK
+	jam 10,mem_mouse_dpi_led_delay_count  //delay 1s led blink
+	fetch 1,mem_dpi_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	rtn
+
+
+mouse_dpi_led_blink_delay_timer:
+	arg mem_mouse_dpi_led_delay_count,regc
+	arg mouse_dpi_led_setting,regb
+	branch timer_single_step	
+mouse_dpi_led_setting:
+	fetch 1,mem_dpi_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	setarg LED_DPI_BLINK
+	store 2,mem_mouse_on_time
+	store 2,mem_mouse_off_time
+	arg 0,rega
+	fetcht 1,mem_mouse_dpi
+	increase 1,temp
+	storet 1,mem_mouse_blink_count
+	jam UI_LED_STATE_BLINK_START,mem_mouse_led_type
+	rtn
+	
+mouse_le_enable_att_list:	
+	fetch 1,mem_le_connect_status_flag
+	rtnbit1 LL_PAIRING_SUCCESS_FLAG
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	call ui_ipc_send_cmd
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+
+mouse_check_discovery_timeout:
+	call mouse_stop_discovery
+	branch app_enter_hibernate
+
+mouse_check_direct_timeout:
+	call app_ble_stop_direct_adv
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	branch app_enter_hibernate
+
+mouse_check_no_data_timeout:
+	bmark1 mark_24g,check_51cmd_hibernate
+	branch mouse_disconnect
+
+	
+
+mouse_bb_event_discovery_btn:
+	bpatch patch1d_2,mem_patch1d
+	jam 0,mem_mouse_send_blank_timer
+	call mouse_disconnect
+	call mouse_le_clean_connect_flag
+	branch mouse_start_discovery
+
+
+
+mouse3_0_check_reconn_target:
+	fetch 6,mem_hci_plap
+	branch app_bt_start_discovery_short,blank
+	call mouse_reconn_setting_led_gpio
+	jam 0x17,mem_connection_options  //ssp
+	fetch 1,mem_ssp_enable
+	nbranch app_bt_start_reconnect,blank
+	jam 0x04,mem_connection_options  //no ssp
+	branch app_bt_start_reconnect
+	
+mouse4_0_check_reconn_target:
+	fetch 2,mem_mouse_direct_timeout
+	store 2,mem_mouse_direct_timer
+	call mouse_reconn_setting_led_gpio
+	call app_lpm_mult_disable
+	branch check_51cmd_adv
+
+mouse_reconn_setting_led_gpio:
+	setarg LED_RECONNECT_BLINK
+	store 2,mem_mouse_on_time
+	store 2,mem_mouse_off_time
+	branch mouse_setting_led_gpio_comman
+	
+mouse_discover_setting_led_gpio:
+	setarg LED_DISCOVERY_BLINK
+	store 2,mem_mouse_on_time
+	store 2,mem_mouse_off_time	
+mouse_setting_led_gpio_comman:
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_device_led1
+	beq MODE_BT_DEVICE2,mouse_device_led2
+	beq MODE_BT_DEVICE3,mouse_device_led3
+	rtn
+mouse_device_led1:
+	fetch 1,mem_config_device1_led_gpio
+	branch mouse_led_blink
+mouse_device_led2:
+	fetch 1,mem_config_device2_led_gpio
+	branch mouse_led_blink
+mouse_device_led3:
+	fetch 1,mem_config_device3_led_gpio
+mouse_led_blink:
+	store 1,mem_temp
+	call mouse_devce_led_off
+	fetch 1,mem_temp
+	store 1,mem_mouse_struct_led_gpio
+	arg 0,rega
+	jam UI_LED_STATE_BLINK_START,mem_mouse_led_type
+	branch ui_led_blink_start_global
+
+mouse_led_off:
+	arg 0,rega
+	branch ui_led_off_global
+mouse_led_on:
+	arg 0,rega
+	branch ui_led_on_global
+
+mouse4_0_bb_event_discovery_btn:
+	branch mouse_le_clean_connect_flag
+	
+mouse_bt_hid_handshake:
+	jam APP_HANDSHAKE_DONE,mem_app_handshake_flag
+	call app_lpm_mult_enable
+	call app_bt_store_reconn_info
+	setarg 0
+	store 2,mem_discovery_timeout_timer_count
+	store 1,mem_hid_handshake_timer_count
+	branch app_bt_enter_sniff
+
+mouse_check_reconn_target:
+	call mouse_cheak_select_device_by_switch
+	fetch 1,mem_device_flag
+	fetcht 1,mem_24g_device_number
+	isub temp,null
+	branch mouse_connect_24g_mode,zero
+	fetch 1,mem_xrecord_mode
+	beq REC_3_MODE,mouse3_0_check_reconn_target
+	beq REC_4_MODE,mouse4_0_check_reconn_target
+	branch mouse_start_discovery
+mouse_connect_24g_mode:
+	call mouse_start_24g_mode
+	rtnmark1 mark_24g
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	rtn
+	
+mouse_start_discovery:
+	bpatch patch1d_3,mem_patch1d
+	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
+	random pdata					//random ble addr
+	store 1,mem_le_lap+1
+mouse_start_discovery_norandom:
+	call app_lpm_mult_disable
+	fetch 2,mem_discovery_timeout
+	store 2,mem_mouse_discovery_timer
+	jam 6,mem_connection_options
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	store 2,mem_mouse_direct_timer
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
+	call mouse_bt_discovery_button_down_disable
+	fetch 1,mem_device_option
+	isolate1 MODE_4_MOUSE,pdata
+	call check_51cmd_adv,true
+	fetch 1,mem_device_option
+	isolate1 MODE_3_MOUSE,pdata
+	call check_51cmd_start_discovery,true
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DISCOVERY_SENSOR_LED,mouse_sensor_start_blink
+	branch mouse_discover_setting_led_gpio
+
+mouse_stop_discovery:
+	bpatch patch1d_4,mem_patch1d
+	fetch 1,mem_device_option
+	isolate1 MODE_4_MOUSE,pdata
+	call mouse_stop_le_adv,true
+	fetch 1,mem_device_option
+	isolate1 MODE_3_MOUSE,pdata
+	call mouse_stop_bt3_discovery,true
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DISCOVERY_SENSOR_LED,mouse_sensor_led_blink_stop
+	branch mouse_devce_led_off
+mouse_stop_le_adv:
+	setarg 0
+	store 2,mem_mouse_direct_timer
+	branch check_51cmd_stop_adv
+mouse_stop_bt3_discovery:
+	setarg 0
+	store 2,mem_mouse_discovery_timer
+	branch check_51cmd_stop_discovery
+
+	
+
+
+
+mouse_store_remote_bdaddr:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call mouse_check_device_addr
+mouse_unplug_clean_bdaddr:
+	call mouse_before_store_reconn_info
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eeprom_device_info	
+	rtn
+mouse_store_eeprom_device_info:
+	arg 88,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+mouse_check_device_addr:
+	fetch 1,mem_record_bt_mode
+	beq REC_4_MODE,mouse_check_le_device_addr
+	beq REC_3_MODE,mouse_check_bt_device_addr
+	rtn
+mouse_check_le_device_addr:
+	store 1,mem_device_addr_temp
+	fetch 6,mem_le_plap
+	branch mouse_check_bt_device_addr_common
+mouse_check_bt_device_addr:
+	store 1,mem_device_addr_temp
+	fetch 6,mem_plap
+mouse_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
+mouse_check_device_addr_end:
+	ifetcht 7,contr
+	isub temp,null
+	branch mouse_clean_addr,zero
+	increase 22,contr
+	loop mouse_check_device_addr_end
+	rtn
+mouse_before_store_reconn_info:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	fetch 1,mem_record_bt_mode
+	istore 1,rega
+	beq REC_4_MODE,mouse_store_le_device
+	beq REC_3_MODE,mouse_store_bt_device
+	rtn
+	
+mouse_store_le_device:
+	fetch 6,mem_le_plap
+	istore 6,contw
+	arg mem_le_ltk,contr
+	call memcpy16
+	fetch 6,mem_le_lap
+	istore 6,contw
+	rtn
+mouse_store_bt_device:
+	fetch 6,mem_plap
+	istore 6,contw
+	arg mem_link_key,contr
+	branch memcpy16
+
+mouse_clean_addr:
+	increase -6,contr
+	copy contr,contw
+	fetcht 6,mem_device_addr_temp+1
+	increase 3,temp
+	istoret 6,contw
+	rtn
+
+
+
+mouse_eeprom_load_recon_info:
+	arg 88,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	call iicd_read_eep_data
+mouse_select_reconn_device:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	fetcht 1,mem_24g_device_number
+	isub temp,null
+	rtn zero
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+	beq REC_3_MODE,mouse_load_bt_device
+	beq REC_4_MODE,mouse_load_le_device
+	rtn
+
+mouse_load_bt_device:
+	ifetch 6,contr
+mouse_load_bt_device_end:
+	store 6,mem_hci_plap
+	arg mem_link_key,contw
+	call memcpy16
+	branch check_link_key_load
+
+mouse_load_le_device:
+	ifetch 6,contr
+mouse_load_le_device_end:
+	store 6,mem_hci_plap
+	arg mem_le_ltk,contw
+	call memcpy16
+	ifetch 6,contr
+	store 6,mem_le_lap
+	rtn
+
+
+mouse_select_device:
+	fetch 1,mem_config_function_enable
+	bbit1 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON,mouse_select_device_by_button
+	bbit1 ENABLE_SELECT_DEVICE_BY_SWITCH,mouse_select_device_by_switch
+	branch mouse_select_device_by_combination_key
+
+mouse_select_device_by_combination_key:
+	call mouse_check_key_gpio
+	beq MOUSE_RM_BUTTON,mouse_select_device_commbination_key_down
+mouse_select_device_commbination_key_up:
+	jam 30,mem_combination_select_device_count	//combination key timer init 
+	fetch 1,mem_select_device_button_statue
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue	
+	rtn
+	
+mouse_select_device_commbination_key_down:
+	call mouse_combination_select_device_timer
+	fetch 1,mem_select_device_button_statue
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_select_device_button_statue
+	branch mouse_select_device_enable
+
+mouse_combination_select_device_timer:
+	fetch 1,mem_combination_select_device_count
+	rtn blank
+	pincrease -1
+	store 1,mem_combination_select_device_count
+	nrtn blank
+	branch mouse_ready_reconnection_by_button
+	
+mouse_select_device_by_button:
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq GPIO_DISABLE
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_get_bit
+	branch mouse_select_device_button_down,true
+mouse_select_device_button_up:
+	fetch 1,mem_select_device_button_statue
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_LONG_BT_BUTTON_FLAG
+	branch mouse_ready_reconnection_by_button
+
+mouse_select_device_button_down:
+	fetch 1,mem_select_device_button_statue
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_select_device_button_statue
+	arg MOUSE_LONG_BT_BUTTON_FLAG,queue
+	branch mouse_disable_function_flag
+
+
+
+mouse_select_device_by_switch:
+	fetch 1,MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 ENABLE_SELECT_DEVICE_BY_SWITCH
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_select1_device
+	beq MODE_24G_DEVICE,mouse_select2_device
+	rtn
+mouse_cheak_select_device_by_switch:
+	fetch 1,MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 ENABLE_SELECT_DEVICE_BY_SWITCH
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_get_bit
+	branch mouse_cheak_select_24gdevice,true
+mouse_select_btdevice:
+	jam MODE_BT_DEVICE1,mem_device_flag
+	rtn
+mouse_cheak_select_24gdevice:
+	fetch 1,mem_24g_device_number
+	store 1,mem_device_flag
+	rtn
+mouse_select1_device:
+	fetcht 1,mem_config_select_device_button_gpio
+	nbranch mouse_ready_reconnection_by_button,true
+	rtn
+mouse_select2_device:
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_get_bit
+	branch mouse_select_device_button_down,true
+	rtn
+
+
+	
+
+mouse_ready_reconnection_by_button:
+	fetcht 1,mem_device_flag
+	increase 1,temp
+	fetch 1,mem_device_number
+	isub temp,null
+	ncall mouse_select_device_count_clean,positive
+	storet 1,mem_device_flag
+	jam 0,mem_link_key_exists
+	call mouse_store_device_number2eeprom
+	call mouse_select_device_enable
+//	call p_select_reconn_device
+	branch mouse_set_reconnection
+
+mouse_store_device_number2eeprom:
+	arg 1,temp
+	arg mem_device_flag,rega
+	arg 0,regb
+	branch iicd_write_eep_data
+
+mouse_set_reconnection:
+	call mouse_stop_bluetooth_mode
+	call mouse_select_device_disable
+	branch mouse_soft_reset
+mouse_stop_bluetooth_mode:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_RECONNECT,mouse_cancel_reconnect
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
+	branch mouse_stop_discovery
+
+mouse_disconnect:
+	bpatch patch1d_5,mem_patch1d
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
+	rtn
+
+mouse_irtual_cable_unplug:
+	setarg 0x01
+	store 6,mem_plap
+	jam REC_3_MODE,mem_record_bt_mode
+	branch mouse_unplug_clean_bdaddr
+
+	
+mouse_cancel_reconnect:
+	call mouse_bt_cannel_reconn_enable
+	branch check_51cmd_bb_reconn_cancel
+
+mouse_bt_discovery_by_button:
+	fetch 1,mem_config_bt_button_gpio
+	rtneq GPIO_DISABLE
+	fetcht 1,mem_config_bt_button_gpio
+	call gpio_get_bit
+	branch mouse_bt_discovery_button_down,true
+mouse_bt_discovery_button_up:
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init 	
+	fetch 1,mem_bt_discovey_button_statue
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_bt_discovey_button_statue	
+	branch mouse_bt_discovery_button_down_disable
+mouse_bt_discovery_button_down:
+	call mouse_bt_discovry_timer
+	fetch 1,mem_bt_discovey_button_statue
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_bt_discovey_button_statue
+	call check_51cmd_bb_reconn_cancel
+	branch mouse_bt_discovery_button_down_enable
+
+	
+mouse_bt_discovery_cheak:
+	fetch 1,mem_config_function_enable
+	bbit1 ENABLE_BT_BUTTON,mouse_bt_discovery_by_button
+mouse_bt_discovery_commbination_key:
+	call mouse_check_key_gpio
+	beq MOUSE_LMR_BUTTON,mouse_bt_discovery_commbination_key_down
+mouse_bt_discovery_commbination_key_up:
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init 
+	fetch 1,mem_bt_discovey_button_statue
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_bt_discovey_button_statue	
+	branch mouse_bt_discovery_button_down_disable
+	
+	
+mouse_bt_discovery_commbination_key_down:
+	call mouse_bt_discovry_timer
+	fetch 1,mem_bt_discovey_button_statue
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_bt_discovey_button_statue
+	call check_51cmd_bb_reconn_cancel
+	branch mouse_bt_discovery_button_down_enable
+
+mouse_bt_discovry_timer:
+	arg mem_combination_ui_button_count,regc
+	arg mouse_long_button_bt_discovry,regb
+	branch timer_single_step
+	
+mouse_long_button_bt_discovry:
+	arg MOUSE_LONG_BT_BUTTON_FLAG,queue
+	call mouse_enable_function_flag
+	call app_evt_button_long_pressed
+	branch mouse_bb_event_discovery_btn
+
+
+mouse_cpi_enable:
+	arg MOUSE_CPI_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_cpi_disable:
+	arg MOUSE_CPI_FLAG,queue
+	branch mouse_disable_function_flag
+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_select_device_count_clean:
+	arg 1,temp
+	rtn
+
+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_adc_read:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	fetch 1,mem_adc_read_timer
+	increase 1,pdata
+	store 1,mem_adc_read_timer
+	sub pdata,10,null              //1s read adc
+	rtn positive
+	jam 0,mem_adc_read_timer
+	call adc_set_mode
+	call vdd_calculate_by_mode
+	store 2,mem_mouse_vdd_now_vol
+	arg mem_mouse_vdd_calculate_set,rega
+	call adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,mouse_power_down
+	bbit0 0,mouse_adc_no_low_voltage
+	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
+	branch mouse_disable_function_flag
+
+mouse_low_voltage_led_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	fetch 1,mem_config_low_voltage_alarm_gpio
+	store 1,mem_mouse_struct_led_gpio
+	fetch 1,mem_adc_low_volatage_led_timer_count
+	pincrease 1
+	store 1,mem_adc_low_volatage_led_timer_count
+	sub pdata,20,null
+	ncall mouse_adc_low_volatage_led_timer_count_clean,positive
+	beq 2,mouse_low_voltage_led_on
+	beq 4,mouse_low_voltage_led_off
+	beq 6,mouse_low_voltage_led_on
+	beq 8,mouse_low_voltage_led_off
+	rtn
+mouse_adc_low_volatage_led_timer_count_clean:
+	jam 1,mem_adc_low_volatage_led_timer_count
+	branch mouse_low_voltage_led_off
+mouse_low_voltage_led_on:
+	arg 0,rega
+	jam UI_LED_STATE_LIGHTING,mem_mouse_led_type
+	branch ui_led_on_global
+mouse_low_voltage_led_off:
+	arg 0,rega
+	jam UI_LED_STATE_LIGHTING,mem_mouse_led_type
+	branch ui_led_off_global
+
+mouse_g24_package_data:
+	call mouse_motion
+	nrtn user
+	arg 7,rega	//length
+	arg mem_mouse_key,regb //tx buff
+	rtn
+	
+mouse_g24_enter_lpm:
+	fetch 1,mem_mouse_24g_enter_lpm_enable
+	rtn blank
+	//do not enter lpm when condition is unallowed
+	fetcht 1,mem_dpi_button_gpio
+	call gpio_get_bit
+	call mouse_24g_dpi_delay_init,true
+	fetch 1,mem_24g_enter_lpm_timer
+	nrtn blank
+	call mouse_check_key_gpio
+	nrtn blank
+	branch g24_lpm_long_sleep
+
+mouse_24g_dpi_delay_init:
+	fetch 1,mem_dpi_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	jam 10,mem_24g_enter_lpm_timer
+	rtn
+
+	
+mouse_load_flash_info_cheak:
+	call mouse_load_flash_flag
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch mouse_load_flash_device_info,zero
+	storet 2,mem_store_flag
+	call mouse_ble_init_address
+	branch mouse_store_flash_device_info
+mouse_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
+	
+	
+mouse_load_flash_flag:
+	setarg mem_store_flag
+	arg mem_mouse_information_start,temp
+	isub temp,temp
+	fetch 3,mem_flash_base
+	iadd temp,pdata
+	arg 2,temp
+	arg mem_store_flag,rega
+	branch spid_read_flash
+
+	
+mouse_load_flash_device_info:
+	setarg mem_mouse_information_end
+	arg mem_mouse_information_start,temp
+	isub temp,temp
+	fetch 3,mem_flash_base
+	arg mem_mouse_information_start,rega
+	call spid_read_flash
+	call mouse_select_reconn_device
+	fetch 4,mem_mouse_24g_addr
+	call g24_head_ptr2regc
+	branch g24_store_mem_addr
+
+mouse_store_flash_device_info:	
+	setarg mem_mouse_information_end
+	arg mem_mouse_information_start,temp
+	isub temp,temp
+	arg mem_mouse_information_start,rega
+	fetch 3,mem_flash_base
+	branch flash_write
+
+mouse_store_eerpom_dpi:
+	arg 1,temp
+	arg mem_mouse_dpi,rega
+	arg MOUSE_DPI_EEPROM_OFFECT,regb
+	branch iicd_write_protect_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
+
+mouse_statue_cheak_timer:
+	rtnmark1 mark_24g
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_STATUE_UP
+	fetch 1,mem_mouse_1step_up_count
+	pincrease 1
+	and pdata,0x07,pdata
+	store 1,mem_mouse_1step_up_count
+	rtnne 0x07         //800ms read sensor
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_CONNECTED,mouse_check_statue_up
+	bbit1 UI_STATE_BLE_CONNECTED,mouse_check_statue_up
+	rtn
+
+
+
+//mosue 
+mouse_check_statue_up:
+	bpatch patch1d_6,mem_patch1d
+	fetch 1,mem_mouse_2step_up_count
+	nrtn blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STATUE_UP_FLAG
+	fetch 1,mem_sensor_squal_reg
+	call sensor_read
+	store 1,mem_sensor_iqc
+	sub pdata,0x10,null
+	branch mouse_statue_up_timer_init,positive
+	jam 0,mem_mouse_2step_up_count
+	rtn
+
+mouse_statue_up_timer_init:
+	jam 30,mem_mouse_2step_up_count
+	rtn
+mouse_statue_up_timer:
+	arg mem_mouse_2step_up_count,regc
+	arg mouse_statue_up,regb
+	branch timer_single_step
+
+mouse_statue_up:
+	fetch 1,mem_sensor_squal_reg
+	call twspi_read
+	sub pdata,0x10,null
+	nrtn positive
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STATUE_UP_FLAG
+	arg MOUSE_STATUE_UP_FLAG,queue
+	call mouse_disable_function_flag
+	jam 0,mem_lpm_mult
+	jam 30,mem_mouse_statue_led_timer         // led on3s
+	call mouse_devce_led_off
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_STATUE_UP_THREE_LED,mouse_three_device_statue_up
+mouse_two_device_statue_up:
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_device1_led_on  		//device_1
+	beq MODE_BT_DEVICE2,mouse_device_blink_led_init		//device_2
+	rtn
+mouse_three_device_statue_up:
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_device1_led_on  		//device_1
+	beq MODE_BT_DEVICE2,mouse_device2_led_on		//device_2
+	beq MODE_BT_DEVICE3,mouse_device3_led_on		//device_3
+	rtn
+	
+mouse_device_blink_led_init:
+	fetch 1,mem_config_device1_led_gpio
+	branch mouse_led_blink
+
+
+
+mouse_statue_led_off:
+	jam 0x20,mem_lpm_mult
+	branch mouse_devce_led_off
+
+
+
+mouse_devce1_led_off:
+	fetch 1,mem_config_device1_led_gpio
+	rtneq GPIO_DISABLE
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_off
+
+mouse_devce2_led_off:
+	fetch 1,mem_config_device2_led_gpio
+	rtneq GPIO_DISABLE
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_off
+	
+mouse_devce_led_off:
+	call mouse_led_off
+	call mouse_devce1_led_off
+	call mouse_devce2_led_off
+mouse_devce3_led_off:
+	fetch 1,mem_config_device3_led_gpio
+	rtneq GPIO_DISABLE
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_off
+
+mouse_device1_led_on:
+	fetch 1,mem_config_device1_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_on
+mouse_device2_led_on:
+	fetch 1,mem_config_device2_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_on
+mouse_device3_led_on:
+	fetch 1,mem_config_device3_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_on
+
+
+
+mouse_polling_device:
+	bpatch patch1d_7,mem_patch1d
+	fetch 1,mem_reconn_times
+	increase -1,pdata
+	store 1,mem_reconn_times
+	fetcht 1,mem_device_flag
+	increase 1,temp
+	fetch 1,mem_device_number
+	isub temp,null
+	ncall mouse_select_device_count_clean,positive
+	storet 1,mem_device_flag
+	jam 0,mem_link_key_exists
+	call mouse_store_device_number2eeprom
+	call mouse_before_store_reconn_info
+	branch mouse_check_reconn_target
+	
+mouse_power_down:
+	call mouse_devce_led_off
+	setarg 0
+	store 8,mem_gpio_wakeup_low
+	branch lpm_hibernate
+
+
+
+
+
+
+endif
+
+
+
Index: DpiSwitch/program/app_remote_car.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_remote_car.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_remote_car.prog	(working copy)
@@ -0,0 +1,480 @@
+ifdef COMPILE_REMOTE_CAR
+
+remote_car_init:
+	rtn wake	
+	hfetch 1,core_gpio_sel1
+	and_into 0xf0,pdata
+	hstore 1,core_gpio_sel1
+	call keyscan_key_init
+	setarg remote_car_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+	
+	setarg remote_car_process_lpm_before
+	store 2,mem_cb_before_lpm	
+	
+	setarg remote_car_scale_process_idle	
+	store 2,mem_cb_idle_process	
+	
+	setarg remote_car_scale_process_bb_event 
+	store 2,mem_cb_bb_event_process	
+	
+	setarg app_get_lpm_wake_lock
+	store 2,mem_cb_check_wakelock	
+
+	call g24_head_ptr2regc
+	setarg remote_car_g24_package_data
+	add regc,offset_24g_cb_data,contw
+	istore 2,contw
+	
+	setarg remote_car_g24_enter_lpm
+	add regc,offset_24g_cb_lpm_prepare,contw
+	istore 2,contw
+	
+	setarg remote_car_process_lpm_before
+	add regc,offset_24g_cb_lpm_before,contw
+	istore 2,contw
+
+	setarg remote_car_event_timer
+	store 2,mem_cb_event_timer
+	
+	setarg remote_car_power_off_signal
+	store 2,mem_remote_car_power_off_cb
+	
+	setarg remote_car_soft_switch_power_on_signal
+	store 2,mem_remote_car_power_standby_cb
+	
+	setarg remote_car_send_key_data
+	store 2,mem_cb_remote_car_keyscan
+	
+	bpatch patch1e_0,mem_patch1e
+	call remote_car_init_environment
+	call queue_init
+	jam 2,mem_lpm_mult
+	fetch 1,mem_remote_car_config_soft_switch_enable
+	store 1,mem_remote_car_hard_soft_switch
+	beq HARD_SWITCH, remote_car_hard_switch_power_on_signal
+	fetch 1,mem_remote_car_config_soft_switch_gpio
+	store 1,mem_ui_button_gpio
+remote_car_soft_switch_power_on_init:
+	call remote_car_ui_led_init
+	call ui_button_init
+	call ui_button_polling
+	jam POWER_STARTING,mem_remote_car_power_state
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BTN_DOWN
+	branch app_enter_hibernate
+
+
+
+remote_car_hard_switch_power_on_signal:
+	jam POWER_STANDBY,mem_remote_car_power_state
+remote_car_soft_switch_power_on_signal:
+	call remote_car_ui_led_init
+//	fetch 1,mem_remote_car_led_map
+	arg 0,rega
+	call ui_led_blink_start_global
+remote_car_connect_24g_mode:
+	branch g24_auto_pair_start
+
+remote_car_power_off_signal:	
+	branch remote_car_ui_led_init
+	
+remote_car_ui_led_init:
+	bpatch patch1e_1,mem_patch1e
+	fetch 1,mem_remote_car_config_connect_led_gpio
+	bne INVALID_PIN_NUM,remote_car_pairing_led_gpio_set
+remote_car_ui_led_init_1:
+	fetcht 1, mem_remote_car_led_map
+	branch gpio_config_output
+remote_car_pairing_led_gpio_set:
+	store 1,mem_remote_car_led_map
+	branch remote_car_ui_led_init_1
+
+
+remote_car_init_environment:
+	call g24_set_device_addr
+	fetch 2,mem_remote_car_no_data_timeout
+	store 2,mem_remote_car_no_data_timer
+	branch remote_car_get_adc_default_data
+
+remote_car_le_before_hibernate:
+//	call keyscan_scan_key
+//	fetch 2, mem_key_value_temp
+//	branch remote_car_in_enter_hibernate,blank
+//	branch app_enter_hibernate
+remote_car_in_enter_hibernate:	
+	call gpio_set_before_lpm_common
+	call remote_car_process_lpm_before
+	branch app_enter_hibernate
+
+remote_car_process_lpm_before:
+	branch keyscan_process_lpm_before
+
+remote_car_g24_enter_lpm:
+	fetch 1,mem_remote_car_24g_enter_lpm_enable
+	rtn blank
+	//do not enter lpm when condition is unallowed
+	branch g24_lpm_long_sleep
+
+remote_car_process_auto_pair_exit:
+	rtn
+
+remote_car_key_scan_process:
+	branch keyscan_key_process
+
+remote_car_scale_process_idle:
+	call remote_car_rocker_process
+	call remote_car_24g_status_process
+	branch remote_car_key_scan_process
+
+remote_car_scale_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_BUTTON_UP,app_event_button_up
+	beq BT_EVT_BUTTON_LONG_PRESSED,app_button_long_pressed
+	beq BT_EVT_24G_PAIRING_COMPLETE,remote_car_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,remote_car_24g_attempt_success
+	beq BT_EVT_24G_ATTEMPT_FAIL,remote_car_24g_attempt_fail
+	rtn
+
+remote_car_24g_attempt_fail:
+	jam 1,mem_remote_car_24g_enter_lpm_enable
+	rtn
+
+remote_car_24g_pairing_complete:
+	jam 1,mem_remote_car_24g_enter_lpm_enable
+	jam WORK_PAIRED,mem_remote_car_24g_auto_work_step
+	jam WORK_PAIRED,mem_remote_car_24g_pair_success_flag
+	rtn
+
+remote_car_24g_attempt_success:
+	jam 1,mem_remote_car_24g_enter_lpm_enable
+	jam WORK_PAIRED,mem_remote_car_24g_auto_work_step
+	jam WORK_PAIRED,mem_remote_car_24g_pair_success_flag
+	rtn
+
+remote_car_24g_status_process:
+	fetch 1,mem_remote_car_24g_auto_work_step
+	rtneq POWER_ON
+	fetch 1,mem_remote_car_24g_status
+	rtneq WORK_PAIRED
+	jam WORK_PAIRED,mem_remote_car_24g_status
+remote_car_scale_process_paired:
+	arg 0,rega
+	branch ui_led_off_global
+remote_car_scale_process_shutdown:
+	arg 0,rega
+	call ui_led_off_global
+	call remote_car_ui_led_init
+	branch app_enter_hibernate
+	
+remote_car_event_timer:
+	call app_power_timer
+	branch remote_car_no_data_timer
+
+remote_car_no_data_timer:
+	fetch 1,mem_remote_car_config_timeout_shutdown_enable
+	rtn blank
+	arg mem_remote_car_no_data_timer,regc
+	arg remote_car_scale_process_shutdown,regb
+	branch timer_single_step_2B
+	
+////////////////////////////////////rocker/////////////////////////////
+remote_car_get_adc_default_data:
+	call remote_car_rocker_get_x
+	storet 2,mem_current_vdd_value_default_mid_x
+	call remote_car_rocker_get_y
+	storet 2,mem_current_vdd_value_default_mid_y
+	rtn
+remote_car_rocker_data_get:
+remote_car_rocker_get_x:
+	fetch 2,mem_current_vdd_value_default_mid_x
+	store 2,mem_current_vdd_value_default_mid_temp
+	call remote_car_get_adc_from_gpio6
+	call remote_car_rocker_get_value
+	store 1,mem_rocker_status
+remote_car_rocker_get_y:
+	fetch 2,mem_current_vdd_value_default_mid_y
+	store 2,mem_current_vdd_value_default_mid_temp
+	call remote_car_get_adc_from_gpio7
+	call remote_car_rocker_get_value
+	store 1,mem_rocker_status+1
+	rtn
+remote_car_rocker_get_value:
+	fetch 2,mem_current_vdd_default_range
+	copy pdata,rega
+	fetch 2,mem_current_vdd_value_default_mid_temp
+	call remote_car_rocker_mid_value_adjust
+	fetch 1,mem_rocker_work_status
+	nbranch remote_car_rocker_translate_key,blank
+	nrtn positive
+	fetcht 2,mem_current_vdd_value_default_mid_temp
+	rtn	
+remote_car_rocker_mid_value_adjust:
+	isub temp,pdata
+	branch remote_car_rocker_mid_adjust_positive,positive
+	sub pdata,0,pdata		//negative adjust
+	jam 1,mem_rocker_negative_flag
+	isub rega,null
+	rtn
+remote_car_rocker_mid_adjust_positive:
+	jam 0,mem_rocker_negative_flag
+	isub rega,null
+	rtn
+remote_car_rocker_translate_key:
+	nbranch remote_car_rocker_middle_key,positive
+	fetch 1,mem_rocker_negative_flag
+	nbranch remote_car_rocker_negative_key,blank
+remote_car_rocker_positive_key:	
+	setarg ROCKER_POSITIVE_KEY
+	rtn
+remote_car_rocker_negative_key:
+	setarg ROCKER_NEGATIVE_KEY
+	rtn
+remote_car_rocker_middle_key:
+	setarg ROCKER_MIDDLE_KEY
+	rtn
+remote_car_get_adc_from_gpio6:
+	jam 0x33,mem_adc_channel
+	branch adc_set_mode
+remote_car_get_adc_from_gpio7:
+	jam 0x34,mem_adc_channel
+	branch adc_set_mode
+
+
+remote_car_rocker_process:
+	fetch 1,mem_remote_car_config_check_way
+	rtnne CAR_REMOTE_CHECK_ROCKER	
+remote_car_read_rocker_check_start:
+	bpatch patch1e_2,mem_patch1e
+	jam 1,mem_rocker_work_status
+	call remote_car_rocker_data_get
+	fetch 2,mem_rocker_status
+	fetcht 2,mem_rocker_last_status
+	isub temp,null
+	rtn zero
+	store 2,mem_rocker_last_status
+	call remote_car_rocker_x_to_key
+	branch remote_car_rocker_y_to_key
+	
+remote_car_rocker_x_to_key:
+	fetch 1,mem_rocker_x_status
+	branch rocker_to_queue_set_0,blank
+	increase -1,pdata
+	branch remote_car_rocker_to_key
+remote_car_rocker_y_to_key:
+	fetch 1,mem_rocker_y_status
+	branch rocker_to_queue_set_2,blank
+	increase 1,pdata
+remote_car_rocker_to_key:
+	copy pdata,queue
+	arg 1,rega
+	branch remote_car_send_key_data
+	
+rocker_to_queue_set_0:
+	arg 0,queue
+	arg 0,rega
+	branch remote_car_send_key_data
+rocker_to_queue_set_2:
+	arg 2,queue
+	arg 0,rega
+	branch remote_car_send_key_data
+	
+remote_car_send_key_data:
+	copy rega,pdata
+	store 1,mem_remote_key_status
+	fetch 1,mem_remote_car_24g_auto_work_step
+	beq POWER_ON,g24_auto_pair_start
+	fetch 2,mem_remote_car_no_data_timeout
+	store 2,mem_remote_car_no_data_timer
+	fetch 1,mem_remote_key_status
+	branch remote_car_key_is_release,blank
+remote_car_key_is_press:
+	bpatch patch1e_3,mem_patch1e
+	arg 0,rega
+	call ui_led_on_global
+remote_car_attack_key_press:
+	copy queue,pdata
+	beq 4,remote_car_send_attack_key4_press
+	beq 5,remote_car_send_attack_key5_press
+	beq 6,remote_car_send_fire_key6_press
+//	fetch 1,mem_remote_car_config_check_way
+//	rtneq CAR_REMOTE_CHECK_ROCKER
+remote_car_motor_key_press:
+	call remote_car_device_layout_select
+	beq CONTROL_F_B_TEN,remote_car_single_motor_key_is_press
+	beq CONTROL_L_R_TEN,remote_car_double_motor_key_press
+	beq CONTROL_L_R_LR,remote_car_single_motor_key_is_press
+	rtn
+	
+remote_car_single_motor_key_is_press:
+	copy queue,pdata
+	beq 0,remote_car_send_motor1_key0_press
+	beq 1,remote_car_send_motor1_key1_press
+	beq 2,remote_car_send_motor2_key2_press
+	beq 3,remote_car_send_motor2_key3_press
+	rtn
+	
+remote_car_double_motor_key_press:
+	copy queue,pdata
+	beq 0,remote_car_send_double_motor_key0_press
+	beq 1,remote_car_send_double_motor_key1_press
+	beq 2,remote_car_send_double_motor_key2_press
+	beq 3,remote_car_send_double_motor_key3_press
+	rtn
+
+remote_car_key_is_release:
+	bpatch patch1e_4,mem_patch1e
+	arg 0,rega
+	call ui_led_off_global
+remote_car_attack_key_release:
+	copy queue,pdata
+	beq 4,remote_car_send_attack_key4_rel
+	beq 5,remote_car_send_attack_key5_rel
+//	fetch 1,mem_remote_car_config_check_way
+//	rtneq CAR_REMOTE_CHECK_ROCKER
+remote_car_motor_key_release:
+	call remote_car_device_layout_select
+	beq CONTROL_F_B_TEN,remote_car_single_motor_key_rel
+	beq CONTROL_L_R_TEN,remote_car_double_motor_key_rel
+	beq CONTROL_L_R_LR,remote_car_single_motor_key_rel
+	rtn
+
+remote_car_device_layout_select:
+	fetch 1,mem_remote_car_config_layout
+	fetcht 1,mem_remote_car_config_key_map
+	ior temp,pdata
+	rtn
+
+//cross key,control front-back motor layout
+remote_car_send_motor1_key0_press:	//front
+	jam MOTOR_POSITIVE,mem_remote_car_24g_motor1_payload
+	branch remote_car_send_key
+remote_car_send_motor1_key1_press:	//back
+	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor1_payload
+	branch remote_car_send_key
+remote_car_send_motor2_key2_press:	//left
+	jam MOTOR_POSITIVE,mem_remote_car_24g_motor2_payload
+	branch remote_car_send_key
+remote_car_send_motor2_key3_press:	//right
+	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor2_payload
+	branch remote_car_send_key
+
+//cross key,control left-right motor layout
+remote_car_send_double_motor_key0_press:	//front
+	jam MOTOR_POSITIVE,mem_remote_car_24g_motor1_payload
+	jam MOTOR_POSITIVE,mem_remote_car_24g_motor2_payload
+	branch remote_car_send_key
+remote_car_send_double_motor_key1_press:	//back
+	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor1_payload
+	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor2_payload
+	branch remote_car_send_key
+remote_car_send_double_motor_key2_press:	//left
+	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor1_payload
+	jam MOTOR_POSITIVE,mem_remote_car_24g_motor2_payload
+	branch remote_car_send_key
+remote_car_send_double_motor_key3_press:	//right
+	jam MOTOR_POSITIVE,mem_remote_car_24g_motor1_payload
+	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor2_payload
+	branch remote_car_send_key
+	
+//attack motor control
+remote_car_send_attack_key4_press:	//attack left
+	jam MOTOR_POSITIVE,mem_remote_car_24g_motor3_payload
+	branch remote_car_send_key
+remote_car_send_attack_key5_press:	//attack right
+	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor3_payload
+	branch remote_car_send_key
+
+remote_car_send_fire_key6_press:
+	jam 0x01,mem_remote_car_24g_fire_send_payload
+	branch remote_car_send_attack
+
+remote_car_single_motor_key_rel:
+	copy queue,pdata
+	beq 0,remote_car_send_motor1_key0_rel
+	beq 1,remote_car_send_motor1_key1_rel
+	beq 2,remote_car_send_motor2_key2_rel
+	beq 3,remote_car_send_motor2_key3_rel
+	rtn
+
+remote_car_double_motor_key_rel:
+	copy queue,pdata
+	beq 0,remote_car_send_double_motor_key0_rel
+	beq 1,remote_car_send_double_motor_key1_rel
+	beq 2,remote_car_send_double_motor_key2_rel
+	beq 3,remote_car_send_double_motor_key3_rel
+	rtn
+
+remote_car_send_motor1_key0_rel:
+remote_car_send_motor1_key1_rel:
+	jam MOTOR_STOP,mem_remote_car_24g_motor1_payload
+	branch remote_car_send_key
+remote_car_send_motor2_key2_rel:
+remote_car_send_motor2_key3_rel:
+	jam MOTOR_STOP,mem_remote_car_24g_motor2_payload
+	branch remote_car_send_key
+	
+remote_car_send_double_motor_key0_rel:
+remote_car_send_double_motor_key1_rel:
+remote_car_send_double_motor_key2_rel:
+remote_car_send_double_motor_key3_rel:
+	jam MOTOR_STOP,mem_remote_car_24g_motor1_payload
+	jam MOTOR_STOP,mem_remote_car_24g_motor2_payload
+	branch remote_car_send_key
+	
+remote_car_send_attack_key4_rel:
+remote_car_send_attack_key5_rel:
+	jam MOTOR_STOP,mem_remote_car_24g_motor3_payload
+	branch remote_car_send_key
+
+remote_car_send_key:
+	arg mem_remote_car_24g_motor_packet,rega
+	branch queue_push
+remote_car_send_attack:
+	arg mem_remote_car_24g_fire_packet,rega
+	branch queue_push
+
+remote_car_g24_package_data:
+	fetch 1,mem_remote_car_24g_pair_success_flag
+	beq WORK_PAIRED,remote_car_g24_send_empty
+	arg mem_remote_car_24g_tx_temp,rega
+	call queue_pop
+	nbranch remote_car_moto_data,user
+remote_car_g24_package_data_continue:
+	arg mem_remote_car_24g_tx_temp,contr
+	ifetch 1,contr
+	copy pdata,rega
+	arg mem_remote_car_24g_tx_temp+1,regb
+	//rega: length
+	//regb: tx buffer
+	rtn
+	
+remote_car_g24_send_empty:
+	jam 0,mem_remote_car_24g_pair_success_flag
+	enable user
+	arg 1,rega
+	arg mem_remote_car_empty_packet,regb
+	rtn
+	
+remote_car_moto_data:
+	fetch 1,mem_remote_car_24g_tx_temp+3	//cmd
+	beq CAR_CMD_L_R_MOTOR_CONTROL,remote_car_moto_data_next
+	beq CAR_CMD_F_B_MOTOR_CONTROL,remote_car_moto_data_next
+	rtn
+remote_car_moto_data_next:
+	fetch 1,mem_remote_car_24g_tx_temp+6	//data moto1
+	nbranch remote_car_moto_data_enable_user,blank
+	fetch 1,mem_remote_car_24g_tx_temp+8	//data moto2
+	nbranch remote_car_moto_data_enable_user,blank
+	fetch 1,mem_remote_car_24g_tx_temp+10	//data moto3
+	nbranch remote_car_moto_data_enable_user,blank
+	rtn
+remote_car_moto_data_enable_user:
+	enable user
+	branch remote_car_g24_package_data_continue
+
+endif
+
+
+
+
Index: DpiSwitch/program/app_shutter.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_shutter.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_shutter.prog	(working copy)
@@ -0,0 +1,1170 @@
+
+ifdef COMPILE_SHUTTER
+
+shutter_init:
+	rtn wake	
+	hfetch 1,core_gpio_sel1
+	and_into 0xfc,pdata
+	hstore 1,core_gpio_sel1
+	setarg shutter_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+
+	setarg shutter_process_lpm_before
+	store 2,mem_cb_before_lpm
+	
+	setarg app_enter_hibernate
+	store 2,mem_cb_discovry_timeout
+	
+	setarg shutter_process_idle
+	store 2,mem_cb_idle_process
+		
+	setarg shutter_process_bb_event 
+	store 2,mem_cb_bb_event_process
+
+	setarg shutter_le_scale_lpm_lock
+	store 2,mem_cb_check_wakelock
+	
+	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
+
+	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
+
+	call le_modified_name
+	call shutter_load_bluetooth_config_by_user_config
+	call shutter_init_bluetooth_config
+	call shutter_init_param	
+	call keyscan_key_init
+	call shutter_load_buffer_config_form_DataRom
+	call queue_init
+	call ui_led_init_global
+	call shutter_load_bluetooth_config
+	call shutter_load_bluetooth_config_by_eeprom
+	
+	bpatch patch1e_5,mem_patch1e
+	call classic_shutter_load_reconn_info
+	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
+
+/**************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
+/**************classic shutter event*****************/
+	beq BT_EVT_BB_CONNECTED,classic_shutter_process_baseband_connect
+	beq BT_EVT_BB_DISCONNECTED,classic_shutter_process_baseband_disconnect
+	beq BT_EVT_RECONN_FAILED,classic_shutter_process_reconnect_failed
+	beq BT_EVT_SETUP_COMPLETE,classic_shutter_process_setup_complete
+	beq BT_EVT_HID_CONNECTED,classic_shutter_process_hid_connect
+	beq BT_EVT_HID_DISCONNECTED,classic_shutter_process_hid_disconnect
+	beq BT_EVT_HID_HANDSHAKE,classic_shutter_process_hid_handshake
+	beq BT_EVT_RECONN_PAGE_TIMEOUT,classic_shutter_process_reconnect_page_timeout
+	beq BT_EVT_VIRTUAL_CABLE_UNPLUG,classic_shutter_process_virtual_cable_unplug
+	beq BT_EVT_REMOTE_UNSNIFF,classic_shutter_process_remote_unsniff
+	beq BT_EVT_STORE_NVRAM,classic_shutter_process_store_reconnect_information
+/**************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,shutter_process_soft_swtich_button_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
+/****************************/
+
+
+/******************classic shutter event**********************/
+classic_shutter_process_baseband_connect:
+	jam 0,mem_classic_shutter_hid_disconn_count
+	jam 0,mem_classic_shutter_cable_unplug_conut	
+	rtn
+
+
+classic_shutter_process_baseband_disconnect:
+	call classic_shutter_disconnect_clear_flag
+	branch classic_shutter_process_reconnect_failed
+
+classic_shutter_disconnect_clear_flag:
+	jam APP_HANDSHAKE_NULL,mem_app_handshake_flag
+	jam 0,mem_hid_handshake_timer_count
+	jam 0,mem_unsniff2sniff_timer_count
+	jam 0,mem_classic_shutter_cable_unplug_conut
+	jam 0,mem_classic_shutter_hid_disconn_count
+	branch queue_init
+
+
+classic_shutter_process_reconnect_failed:
+	call app_disconn_reason_clear
+	branch shutter_start_bluetooth_discovery
+
+
+classic_shutter_process_setup_complete:
+	call shutter_stop_bluetooth_discovery
+	branch app_led_stop_blink
+
+
+classic_shutter_process_hid_connect:
+	setarg HID_HANDSHAKE_TIMEOUT
+	store 1,mem_hid_handshake_timer_count
+	rtn	
+
+
+classic_shutter_process_hid_disconnect:
+	jam 0,mem_classic_shutter_cable_unplug_conut	
+	setarg FLAG_SHUTTER_HID_DISCONN_TIMEOUT
+	store 1,mem_classic_shutter_hid_disconn_count
+	rtn
+
+
+classic_shutter_process_hid_handshake:
+	fetch 1,mem_app_handshake_flag
+	rtneq APP_HANDSHAKE_DONE
+	jam APP_HANDSHAKE_DONE,mem_app_handshake_flag
+	call app_lpm_mult_enable
+	call app_store_reconn_info
+	call shutter_stop_bluetooth_discovery
+	call app_led_off
+	branch app_bt_enter_sniff
+
+
+classic_shutter_process_reconnect_page_timeout:
+	branch classic_shutter_process_reconnect_failed
+
+
+classic_shutter_process_virtual_cable_unplug:
+	setarg FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
+	store 1,mem_classic_shutter_cable_unplug_conut
+	rtn
+
+
+classic_shutter_process_remote_unsniff:
+	branch app_start_auto_sniff
+
+
+/***************classic shutter store reconn info***********************/
+classic_shutter_process_store_reconnect_information:
+	arg NVRAM_EEPROM_OFFSET,regb
+	fetch 1,mem_nv_data_number
+	mul32 pdata,34,temp
+	fetch 2,mem_nv_data_ptr
+	copy pdata,rega
+	branch iicd_write_eep_data
+
+classic_shutter_load_reconn_info:
+	arg NVRAM_EEPROM_OFFSET,regb
+	fetch 1,mem_shutter_bluetooth_type
+	rtnbit0 CLASSIC_SHUTTER
+	fetch 1,mem_nv_data_number
+	rtn blank
+	mul32 pdata,34,temp
+	fetch 2,mem_nv_data_ptr
+	copy pdata,rega
+	branch iicd_read_eep_data
+/**************************************/
+
+/******************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
+	fetch 8,mem_ble_shutter_interval_min
+	store 8,mem_le_interval_min
+	call app_lpm_mult_enable
+	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
+/**************************************/
+
+/******************soft swtich event**********************/
+shutter_process_soft_swtich_button_long_press:
+	branch ui_soft_switch_botton_long_press
+
+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_BT_CONNECTED,app_led_off
+	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
+/************************************/
+/**************classic shutter timer**********************/
+	call classic_shutter_check_unplug_timer
+	call classic_shutter_hid_handshake_timer
+	call classic_shutter_hid_disconn_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
+	bbit1 UI_STATE_BT_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
+/************************************/
+
+/**************classic shutter timer**********************/
+classic_shutter_check_unplug_timer:
+	arg mem_classic_shutter_cable_unplug_conut,regc
+	arg classic_shutter_unplug_timeout,regb
+	branch timer_single_step
+	
+classic_shutter_unplug_timeout:
+	fetch 1,mem_CONTROL_tasks
+	set1  L2CAP_DISCONNECT_INTERRUPT, pdata
+	set1  L2CAP_DISCONNECT_CONTROL, pdata
+	store 1,mem_CONTROL_tasks	
+	rtn
+
+classic_shutter_hid_handshake_timer:
+	arg mem_hid_handshake_timer_count,regc
+	arg classic_shutter_process_hid_handshake,regb
+	branch timer_single_step
+
+classic_shutter_hid_disconn_timer:
+	arg mem_classic_shutter_hid_disconn_count,regc
+	arg app_bt_disconnect,regb
+	branch timer_single_step
+
+/************************************/
+
+/**************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:
+	branch keyscan_process_lpm_before
+
+shutter_le_before_hibernate:
+	call gpio_set_before_lpm_common
+	branch shutter_process_lpm_before
+
+//////////////////////////////////////////////////////////////////////////////////////////
+
+
+/****************shutter bluetooth control**********************/
+shutter_stop_bluetooth_discovery:
+	fetch 1,mem_shutter_bluetooth_type
+	bbit1 CLASSIC_SHUTTER,classic_shutter_stop_bluetooth_discovery
+	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
+	
+classic_shutter_stop_bluetooth_discovery:
+	fetch 2,mem_classic_shutter_connect_timeout
+	store 2,mem_shutter_sleep_timeout
+	store 2,mem_shutter_sleep_timer
+	branch app_bt_stop_discovery
+
+shutter_start_bluetooth_discovery:
+	fetch 1,mem_shutter_soft_switch_power_state
+	rtnne SS_STATE_POWER_ON
+	fetch 1,mem_shutter_bluetooth_type
+	bbit1 CLASSIC_SHUTTER,classic_shutter_start_discovery
+	bbit1 BLE_SHUTTER,ble_shutter_start_discovery
+	rtn
+	
+classic_shutter_start_discovery:
+	fetch 2,mem_classic_shutter_discovery_timeout,
+	store 2,mem_shutter_sleep_timeout
+	store 2,mem_shutter_sleep_timer
+	branch app_bt_start_discovery_short
+
+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_start_reconnect:
+	fetch 1,mem_shutter_soft_switch_power_state
+	rtnne SS_STATE_POWER_ON
+	fetch 1,mem_shutter_bluetooth_type
+	bbit1 CLASSIC_SHUTTER,classic_shutter_start_reconnect
+	bbit1 BLE_SHUTTER,ble_shutter_start_reconnect
+	rtn
+
+classic_shutter_start_reconnect:
+	call app_check_reconn_target
+	branch shutter_start_bluetooth_discovery,blank
+	call app_led_on	
+	call app_bt_stop_discovery
+	branch app_bt_start_reconnect	
+
+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_dav_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
+
+//pdata:adv interval value
+shutter_ble_adv_interval_set:
+	store 2,mem_lpm_interval
+	increase -4,pdata
+	store 2,mem_le_adv_interval
+	rtn
+
+
+shutter_disconnect_current_connection:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
+	branch shutter_stop_bluetooth_discovery
+/**************************************/
+
+/******************classic shutter load reconnect*********************/
+app_check_reconn_target:
+	fetch 1,mem_nv_data_number
+	copy pdata,loopcnt
+	fetch 2,mem_nv_data_ptr
+	copy pdata,rega
+app_check_reconn_target_loop:
+	ifetch 2,rega
+	beq 0,found_reconn_device
+	increase NV_DATA_LEN,rega
+	loop app_check_reconn_target_loop
+	branch enable_blank
+
+found_reconn_device:
+	ifetch 6,contr
+	store 6,mem_hci_plap
+	increase 10,contr
+	arg mem_link_key,contw
+	call  memcpy16
+	call check_link_key_load
+	branch disable_blank
+	
+/**************************************/
+
+/////////////////////////////////////////////////////////////////////////
+//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_BT_CONNECTED,shutter_check_bt_data_enable
+	bbit1 UI_STATE_BLE_CONNECTED,shutter_check_ble_data_enable
+	rtn
+
+shutter_check_bt_data_enable:
+	fetch 1,mem_hid_interrupt_state
+	rtnne 0x3f	
+	branch enable_user
+
+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_BT_CONNECTED
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	branch enable_user
+/////////////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////////////
+shutter_change_bluetooth_status_bt_disconn:
+	fetch 1,mem_shutter_bluetooth_type
+	bbit1 CLASSIC_SHUTTER,classic_shutter_change_bluetooth_status_bt_disconn
+	bbit1 BLE_SHUTTER,ble_shutter_change_bluetooth_status_bt_disconn
+	rtn
+	
+classic_shutter_change_bluetooth_status_bt_disconn:
+	fetch 1,mem_scan_mode
+	rtnne 0x03
+	branch shutter_start_reconnect
+	
+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
+	enable user2
+	rtn
+
+//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
+	bbit1 UI_STATE_BT_CONNECTED,pop_queue_to_classic_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
+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
+
+
+pop_queue_to_classic_data:
+	call l2cap_malloc_is_fifo_nearly_full
+	nrtn blank
+	call queue_pop_one_byte
+	nrtn user
+	pincrease -1
+	mul32 pdata,SHUTTER_CLASSIC_DATA_BUFFER,pdata
+	arg mem_classic_data_buffer1,temp
+	iadd temp,contr
+	ifetch 5,contr
+	store 5,mem_classic_data_buffer
+classic_send_hid_data:
+	fetch 1,mem_classic_data_buffer
+	copy pdata,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0xa1
+	istore 1,contw
+	fetch 4,mem_classic_data_buffer + 1
+	istore 9,contw
+	rtn
+
+///////////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:
+	setarg 0x02
+	store 1,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
+ 	call le_set_config_fixed_ltk
+	call le_set_fixed_ltk
+	call le_set_justwork
+	branch le_set_config_read_authentication
+///////////////////////////////////////
+
+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,contr
+	call memcpy_fast
+	arg BT_KEY_VALUE_LIST_SIZE,loopcnt
+	arg mem_classic_data_buffer1,contw
+	arg CLASSIC_SHUTTER_KEY_VALUE_LIST,contr
+	branch memcpy_fast	
+
+
+shutter_load_ble_gatt_form_DataRom:
+	arg BLE_GATT_LIST_SIZE,loopcnt
+	arg BLE_SHUTTER_GATT_LIST,contr
+	branch memcpy_fast
+
+
+shutter_load_bt_sdp_form_DataRom:
+	arg BT_SDP_LIST_SIZE,loopcnt
+	arg CLASSIC_SHUTTER_SDP_LIST,contr
+	branch memcpy_fast
+	
+
+///////////////////////////////gpio config////////////////////////////////////
+shutter_init_bluetooth_config:
+	call shutter_check_load_config_flag
+	nrtn user
+	fetch 1,mem_shutter_config_select_gpio1
+	call shutter_init_bluetooth_config_gpio_input
+	fetch 1,mem_shutter_config_select_gpio2
+	call shutter_init_bluetooth_config_gpio_input
+	fetch 1,mem_shutter_config_select_gpio3
+	branch shutter_init_bluetooth_config_gpio_input
+	
+shutter_init_bluetooth_config_gpio_input:
+	rtn blank
+	or pdata,0x80,temp
+	branch gpio_config_input_nowake
+	
+
+shutter_load_bluetooth_config:
+	call shutter_check_load_config_flag
+	nrtn user
+	call shutter_load_bluetooth_config_label
+	branch shutter_load_bluetooth_config_by_otp
+
+shutter_load_bluetooth_config_label:
+	arg 0,rega
+	fetch 1,mem_shutter_config_select_gpio1
+	call shutter_load_bluetooth_config_read_gpio_input
+	nsetflag blank,0,rega
+	fetch 1,mem_shutter_config_select_gpio2
+	call shutter_load_bluetooth_config_read_gpio_input
+	nsetflag blank,1,rega
+	fetch 1,mem_shutter_config_select_gpio3
+	call shutter_load_bluetooth_config_read_gpio_input
+	nsetflag blank,2,rega
+	copy rega,pdata
+	store 1,mem_shutter_config_label
+	fetch 1,mem_shutter_config_size
+	imul32 rega,pdata
+	fetcht 2,mem_shutter_config_otp_base_address		//base address
+	iadd temp,pdata
+	store 2,mem_shutter_config_otp_addr
+	rtn
+
+shutter_load_bluetooth_config_read_gpio_input:
+	rtn blank
+	or pdata,0x80,temp
+	call gpio_get_bit
+	nbranch enable_blank,true
+	branch disable_blank
+	
+
+shutter_check_load_config_flag:
+	call disable_user
+	fetch 1,mem_shutter_config_user_size
+	nrtn blank
+	fetch 1,mem_shutter_config_enable
+	rtn blank
+	branch enable_user
+
+
+shutter_load_bluetooth_config_by_otp:
+	call otp_enable_chgpump
+	fetch 2,mem_shutter_config_otp_addr
+	arg mem_shutter_config_data_temp,rega
+	fetcht 1,mem_shutter_config_size
+	call otpd_read_data
+	call otp_disable_chgpump
+shutter_load_bluetooth_config_store_name:
+	fetch 1,mem_shutter_config_data_temp
+	copy pdata,loopcnt
+	store 1,mem_le_name_len
+	call memcpy_fast
+	fetch 1,mem_shutter_config_data_temp
+	copy pdata,loopcnt
+	store 1,mem_local_name_length
+	call memcpy_fast
+	ifetch 1,contr
+	store 1,mem_shutter_key_num
+	ifetch 1,contr
+	store 1,mem_shutter_hard_soft_switch_case
+	rtn
+
+
+shutter_load_bluetooth_config_by_eeprom:
+	fetch 1,mem_shutter_bluetooth_type
+	rtnbit0 CLASSIC_SHUTTER
+	arg 3,temp
+	fetch 2,mem_shutter_config_eeprom_offset_addr
+	copy pdata,regb
+	arg mem_shutter_config_eeprom_start_flag,rega
+	call iicd_read_eep_data
+	fetcht 2,mem_shutter_config_eeprom_start_flag
+	setarg SHUTTER_EEPROM_CONFIG_CRC
+	isub temp,null
+	nrtn zero
+	fetch 1,mem_shutter_config_user_size
+	rtn blank
+	copy pdata,temp
+	fetch 2,mem_shutter_config_eeprom_offset_addr
+	add pdata,3,regb
+	arg mem_shutter_config_data_temp,rega
+	call iicd_read_eep_data
+	branch shutter_store_config
+
+shutter_load_bluetooth_config_by_user_config:
+	fetch 2,mem_shutter_config_user_otp_address
+	rtn blank
+	call otp_enable_chgpump
+	arg 1,temp
+	arg mem_shutter_config_user_size,rega
+	call otpd_read_data
+	
+	fetch 1,mem_shutter_config_user_size
+	rtn blank
+	
+	fetch 2,mem_shutter_config_user_otp_address
+	pincrease 1
+	arg mem_shutter_config_data_temp,rega
+	fetcht 1,mem_shutter_config_user_size
+	call otpd_read_data
+	call otp_disable_chgpump
+shutter_store_config:
+	call shutter_load_bluetooth_config_store_name
+shutter_load_bluetooth_config_custom:
+	ifetch 2,contr
+	rtn blank
+	copy pdata,contw
+	ifetcht 1,contr
+	copy temp,loopcnt
+	call memcpy
+	branch shutter_load_bluetooth_config_custom
+///////////////////////////////////////////////////////////////////
+
+//////////////////////////random mac address//////////////////////////////
+shutter_random_mac_addr:
+	fetch 1,mem_shutter_bluetooth_type
+	rtnbit0 CLASSIC_SHUTTER
+	fetch 2,mem_classic_shutter_random_mac_offset_addr
+	copy pdata,regb
+	arg 4,temp
+	arg mem_shutter_random_mac_data_temp,rega
+	call iicd_read_eep_data
+	fetch 1,mem_shutter_random_mac_data_temp
+	bne 1,shutter_write_random_mac_addr_to_eeprom
+shutter_write_random_mac_addr_to_eeprom:
+	setarg 1
+	store 1,mem_shutter_random_mac_data_temp
+	force 3,loopcnt
+	call generate_random_loop
+	fetch 2,mem_classic_shutter_random_mac_offset_addr
+	copy pdata,regb
+	arg 4,temp
+	arg mem_shutter_random_mac_data_temp,rega
+	call iicd_write_eep_data
+shutter_write_random_mac_addr:
+	fetch 3,mem_shutter_random_mac_data_temp + 1
+	store 3,mem_lap
+	store 3,mem_le_lap
+	rtn
+	
+/////////////////////////////////////////////////////////////////
+shutter_soft_swtich_power_on:
+	branch shutter_start_reconnect
+
+
+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
+	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*********************/
+
+
+/*************unkown function*********************/
+shutter_byteswap:
+	store 6,mem_tmp_buffer
+	fetch 1,mem_tmp_buffer
+	store 1,mem_tmp_buffer+11
+	ifetch 1,contr
+	store 1,mem_tmp_buffer+10
+	ifetch 1,contr
+	store 1,mem_tmp_buffer+9
+	ifetch 1,contr
+	store 1,mem_tmp_buffer+8
+	ifetch 1,contr
+	store 1,mem_tmp_buffer+7
+	ifetch 1,contr
+	store 1,mem_tmp_buffer+6
+	fetch 6,mem_tmp_buffer+6
+	rtn
+
+shutter_random_addr_by_otp:
+	call load_adc_init
+	fetch 1,mem_1v_adc_io_data
+	store 1,mem_le_lap
+	fetch 1,mem_5v_adc_hvin_data
+	istore 1,contw
+	fetch 1,mem_3v_adc_vinlpm_data
+	istore 1,contw
+	fetch 3,mem_le_lap
+	store 3,mem_lap
+	rtn
+
+
+
+//iic read function
+//function name:sim_iic_read_eep_data
+//input:
+//temp:the length that simulation iic want to read eeprom data
+//rega:the memmory point that simulation iic read data store
+//regb:the eeprom address offset
+//mark_eeprom_size:select 02 or other
+//output:nc
+sim_iic_read_eep_data:
+	fetch 2,mem_eeprom_base
+	iadd regb,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	copy temp,regb
+	
+	call sim_iic_start
+	setarg 0xa0
+	call sim_iic_send_byte
+	fetch 1,mem_addr_mi
+	call sim_iic_send_byte
+	bmark1 mark_eeprom_size,sim_iic_read_eep_data_2k
+	fetch 1,mem_addr_mi + 1
+	call sim_iic_send_byte
+sim_iic_read_eep_data_2k:
+	call sim_iic_stop
+
+	call sim_iic_start
+	setarg 0xa1
+	call sim_iic_send_byte
+
+sim_iic_read_eep_data_loop:
+	call sim_iic_read_byte
+	istore 1,rega
+	increase 1,rega
+	increase -1,regb
+	nbranch sim_iic_read_eep_data_loop,zero
+	branch sim_iic_stop
+
+
+//iic write data function
+//function name:sim_iic_write_eep_data
+//input:
+//temp:the length that simulation iic want to write eeprom data
+//rega:the memmory point that simulation iic write data read
+//regb:the eeprom address
+//mark_eeprom_size:select 02 or other
+//output:nc
+sim_iic_write_eep_data:
+	byteswap regb,pdata
+	store 2,mem_addr_mi
+	copy temp,regb
+
+	call sim_iic_start
+	setarg 0xa0
+	call sim_iic_send_byte
+
+	fetch 1,mem_addr_mi
+	call sim_iic_send_byte
+	bmark1 mark_eeprom_size,sim_iic_write_eep_data_loop
+	fetch 1,mem_addr_mi + 1
+	call sim_iic_send_byte
+sim_iic_write_eep_data_loop:
+	ifetch 1,rega
+	call sim_iic_send_byte
+	increase 1,rega
+	increase -1,regb
+	nbranch sim_iic_write_eep_data_loop,zero
+	branch sim_iic_stop
+//	bmark1 mark_eeprom_size
+
+//use reg:pdata,contr,contw,loopcnt
+sim_iic_wait_ack:
+	arg 10,loopcnt
+	call sim_iic_release_sda
+	call sim_iic_scl_output_high	//scl = 1
+	call sim_iic_delay				//delay 2.5us
+sim_iic_wait_ack_loop:
+	call sim_iic_read_sda_level
+	branch sim_iic_scl_output_low,blank	//scl = 0
+	loop sim_iic_wait_ack_loop
+	branch sim_iic_scl_output_low		//scl = 0	
+
+
+//use reg:pdata,contr,contw,rega,queue
+sim_iic_ack_slave:
+	call sim_iic_scl_output_low		//scl = 0	
+	call sim_iic_sda_output_low		//sda = 0
+	call sim_iic_delay				//delay 2.5us
+	call sim_iic_scl_output_high	//scl = 1
+	call sim_iic_delay				//delay 2.5us
+	branch sim_iic_scl_output_low	//scl = 0	
+
+
+//output:pdata receive byte data
+//use reg:pdata,contr,contw,loopcnt,regc,rega
+sim_iic_read_byte:
+	arg 8,loopcnt
+	arg 0,regc
+	call sim_iic_release_sda
+sim_iic_read_byte_loop:
+	call sim_iic_scl_output_high	//scl = 1
+	call sim_iic_delay				//delay 2.5us
+	lshift regc,regc	
+	call sim_iic_read_sda_level
+	iadd regc,regc
+	call sim_iic_delay				//delay 2.5us
+	call sim_iic_scl_output_low		//scl = 0	
+	loop sim_iic_read_byte_loop
+	call sim_iic_ack_slave
+	copy regc,pdata
+	rtn
+
+//input:pdata send byte data
+//use reg:pdata,contr,contw,loopcnt,regc,rega
+sim_iic_send_byte:
+	arg 8,loopcnt
+	copy pdata,regc
+	call sim_iic_scl_output_low		//scl = 0	
+sim_iic_send_byte_loop:
+	isolate1 7,regc
+	call sim_iic_sda_output_high,true	//sda = 1
+	ncall sim_iic_sda_output_low,true	//sda = 0
+	lshift regc,regc
+	call sim_iic_delay				//delay 2.5us
+	call sim_iic_scl_output_high	//scl = 1
+	call sim_iic_delay				//delay 2.5us
+	call sim_iic_scl_output_low		//scl = 0	
+	call sim_iic_delay				//delay 2.5us
+	loop sim_iic_send_byte_loop
+	branch sim_iic_wait_ack
+
+
+//use reg:pdata,contr,contw,rega
+sim_iic_start:
+	call sim_iic_sda_output_high	//sda = 1
+	call sim_iic_scl_output_high	//scl = 1
+	call sim_iic_delay				//delay 2.5us
+	call sim_iic_sda_output_low		//sda = 0
+	call sim_iic_delay				//delay 2.5us
+	branch sim_iic_scl_output_low		//scl = 0
+
+
+//use reg:pdata,contr,contw,rega
+sim_iic_stop:
+	call sim_iic_sda_output_low		//sda = 0
+	call sim_iic_scl_output_high	//scl = 1
+	call sim_iic_delay				//delay 2.5us
+	call sim_iic_sda_output_high	//sda = 1
+	branch sim_iic_delay				//delay 2.5us
+
+
+//scl = 1
+sim_iic_scl_output_high:
+	enable user
+	fetch 1,SIM_IIC_SCL_GPIO_NUM
+	branch sim_iic_config_gpio
+
+//scl = 0
+sim_iic_scl_output_low:
+	disable user
+	fetch 1,SIM_IIC_SCL_GPIO_NUM
+	branch sim_iic_config_gpio
+
+//sda = 1
+sim_iic_sda_output_high:
+	enable user
+	fetch 1,SIM_IIC_SDA_GPIO_NUM
+	branch sim_iic_config_gpio
+
+//sda = 0
+sim_iic_sda_output_low:
+	disable user
+	fetch 1,SIM_IIC_SDA_GPIO_NUM
+	branch sim_iic_config_gpio
+
+//input:pdata the gpio number
+//input:user flag, if enable user,config gpio output high level; if disable user, config gpio output low level
+//use reg:pdata,contr,contw,queue,rega
+sim_iic_config_gpio:
+	and pdata,0x07,queue
+	rshift3 pdata,pdata
+	arg core_gpio_oe0,temp
+	iadd temp,temp
+	ifetch 1,temp
+	qset1 pdata
+	istore 1,temp
+	increase 4,temp
+	ifetch 1,temp
+	qsetflag user,pdata
+	istore 1,temp
+	rtn
+
+
+sim_iic_release_sda:
+	fetch 1,SIM_IIC_SDA_GPIO_NUM
+	and pdata,0x07,queue
+	rshift3 pdata,pdata
+	arg core_gpio_oe0,temp
+	iadd temp,temp
+	ifetch 1,temp
+	qset0 pdata
+	istore 1,temp
+	rtn	
+
+//get sda level
+//output:if sda high level ,pdata is 1;if sda low level ,pdata is 0
+//use reg:pdata,contr,contw,queue,rega,temp
+sim_iic_read_sda_level:
+	nop 4
+	fetch 1,SIM_IIC_SDA_GPIO_NUM
+	and pdata,0x07,queue
+	rshift3 pdata,pdata
+	arg core_gpio_in,temp
+	iadd temp,temp
+	setarg 0
+	ifetcht 1,temp
+	qisolate1 temp
+	setflag true,0,pdata
+	rtn	
+
+//delay 2.5us
+sim_iic_delay:
+//	nop 1
+	rtn
+
+/**********************************/
+
+
+else
+        branch assert
+	
+endif
Index: DpiSwitch/program/app_usb.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_usb.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/app_usb.prog	(working copy)
@@ -0,0 +1,997 @@
+
+usb_isr:
+	bpatch patch1e_6,mem_patch1e
+	hfetch 1,core_usb_status
+	isolate1 7,pdata
+	call usb_init,true
+	call usb_nak_state_judge
+	hfetch 1,core_usb_status
+	store 1,mem_usb_status
+	hfetch 1,core_usb_fifo_empty
+	store 1,mem_usb_fifo_empty
+	hstore 1,core_usb_fifo_empty
+	pinvert
+	fetcht 1,mem_usb_tx_wait
+	iand temp,pdata
+	store 1,mem_usb_tx_wait
+	jam 0xe0,core_usb_status
+	fetch 1,mem_usb_fifo_empty
+	compare 0x1,pdata,0x1
+	call usb0_fifo_empty,true
+	fetch 1,mem_usb_status	
+	compare 0x1,pdata,0x1  
+	call usb_status1,true
+	call usb_tx
+	branch usb_nak_state
+
+usb_init:
+	bpatch patch1e_7,mem_patch1e
+	call usb_init_param
+	jam 0x00,core_usb_config
+ifndef SIM
+	nop 10000
+endif
+	jam 0xc0,core_usb_trig
+	hfetch 2,core_clkoff
+	set0 CLOCK_OFF_USB,pdata
+	hstore 2,core_clkoff
+	jam 0x3c,core_usb_config
+	jam 0xff,core_usb_status
+	jam 0xff,core_usb_fifo_empty
+	jam 0,core_usb_addr
+	jam DEV_DEFAULT,mem_usb0_state
+	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,true
+	rtn
+
+
+usb_nak_state:
+	arg 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_mem_devicedesc_init:
+	arg mem_devicedesc,contw
+	setsect 0,0x11212
+	setsect 1,0x8000
+	setsect 2,0x0
+	setsect 3,0x10000
+	istore 9,contw
+	setsect 0,0x22412
+	setsect 1,0x8604
+	setsect 2,0x1000
+	setsect 3,0x8
+	istore 9,contw
+	setsect 0,0x1
+	istore 1,contw
+	rtn
+	
+usb_init_param:
+	jam 2,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
+	setarg HID_KBDATA_ADDR
+	store 2,mem_hidreportdesc_kb
+	setarg HID_MSDATA_ADDR
+	store 2,mem_hidreportdesc_m
+	arg mem_confdesc,contw
+	arg HID_CONFDATA_ADDR,contr
+	call memcpy64
+	fetch 1,mem_usb_tx_interval
+	ncall usb_tx_interval_config,blank
+	branch usb_mem_devicedesc_init
+	
+usb_tx_interval_config:
+	store 1,mem_confdesc+34
+	store 1,mem_confdesc+59
+	rtn
+usb_nak_state_judge:
+	hfetch 1,core_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 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
+    	
+usb0_fifo_empty:
+	jam 0x1,core_usb_fifo_empty
+	branch usb0_tx
+
+usb_rx_no_data:
+	fetch 1,mem_usb_status
+	bbit1 USB_STATUS_SETUP,usb_class_type
+	rtn
+
+usb_rx_read:
+	hfetch 1,core_usb_ep
+	istore 1,contw
+	loop usb_rx_read
+	rtn
+
+usb_status1:
+	bpatch patch1f_0,mem_patch1f
+	jam 0x11,core_usb_status
+	hfetch 1,core_usb_ep_len
+	store 1,mem_usb_read_len
+	copy pdata,loopcnt
+	branch usb_rx_no_data,blank
+	arg mem_usb_setup,contw
+	call usb_rx_read
+	fetch 1,mem_usb_read_len
+	sub pdata,7,null
+	rtn positive
+usb_class_type:
+	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_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:
+	hfetch 1,core_usb_stall
+	set1 0,pdata
+	hstore 1,core_usb_stall
+	branch usb0_reply_zerolen
+	
+usb0_reply_zerolen:
+	jam 0x40,core_usb_clear
+	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:
+	bpatch patch1f_1,mem_patch1f
+	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:	
+	arg mem_confdesc+19,rega
+	ifetch 1,rega
+	iforce regb
+	branch usb0_respond
+//class_descriptor hid_descriptor--mouse 
+dsc_hid_info_interface1:	
+	arg mem_confdesc+44,rega
+	ifetch 1,rega
+	iforce regb
+	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:
+	hfetch 1,core_usb_addr
+	ncall usb0_set_addr,blank
+	jam 0,mem_usb_set_high_addr_flag
+	rtn
+usb0_set_addr:
+	hfetch 1,core_usb_addr
+   	set1 7,pdata
+	hstore 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
+	fetch 2,mem_hidreportdesc_kb
+	copy pdata,rega
+//	arg mem_hidreportdesc_kb,rega
+	branch usb0_respond_length
+dsc_hid_report_info0:
+	jam 1,mem_usb_device_enumeration_endflag
+	jam USB_GOT_REPORT_REQ,mem_usb_state
+	fetch 2,mem_hidreportdesc_m
+	copy pdata,rega
+//	arg mem_hidreportdesc_m,rega
+	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_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,usb_send_two_packet
+//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:
+	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 8,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:
+	fetch 1,mem_usb_setup_bValue
+	bne DEVICE_REMOTE_WAKEUP,usb0_force_stall
+	hfetch 1,core_usb_config
+	set0 7,pdata
+	hstore 1,core_usb_config
+	jam 0,mem_usb_remote_wakeup
+	jam 1,mem_usb_clear_remote_wakeup
+	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:
+	fetch 1,mem_usb_setup_bValue
+	bne DEVICE_REMOTE_WAKEUP,usb0_force_stall
+	hfetch 1,core_usb_config
+	set1 7,pdata
+	hstore 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 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
+	hstore 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:
+	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:
+	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
+	fetch 1,mem_usb_setup_bLength	//max 0x40
+	iforce loopcnt
+	arg mem_usb0_setup,contr
+	arg mem_usb0_set_report_data,contw
+	call memcpy
+	branch usb0_reply_zerolen
+	
+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:
+	ifetch 1,rega
+	iforce regb
+	increase 1,rega
+//rega=*buff,reb=size	
+usb0_respond:
+	bpatch patch1f_2,mem_patch1f
+	bmark0 mark_isstr,usb0_respond0
+	add regb,1,pdata
+	lshift pdata,pdata
+	hstore 1,core_usb_dfifo0 
+	jam 3,core_usb_dfifo0
+	fetch 1,mem_usb_setup_bLength
+	increase -2,pdata
+	rshift pdata,pdata
+	store 1,mem_usb_setup_bLength
+	beq 0,usb_no_respond_data
+usb0_respond0:
+	fetch 2,mem_usb_setup_bLength
+	isub regb,null
+	branch usb0_respond1,positive
+	copy pdata,regb	
+usb0_respond1:
+	deposit rega
+	store 2,mem_bufptr
+	deposit regb
+	store 1,mem_remain
+	branch usb0_tx
+
+usb_no_respond_data:
+	arg 0,queue
+	branch usb_trig
+
+//mem_bufptr=*buff,mem_remain=size,loopcnt=i,rega=len
+usb0_tx:
+	bpatch patch1f_3,mem_patch1f
+	fetch 1,mem_remain
+	rtn blank
+	copy pdata,loopcnt
+	sub pdata,EP0_PACKET_SIZE,null
+	branch usb0_tx_info,positive
+	arg EP0_PACKET_SIZE,loopcnt	
+usb0_tx_info:
+	fetch 1,mem_remain
+	isub loopcnt,pdata
+	store 1,mem_remain//mem_remain -= len
+	fetch 2,mem_bufptr
+	copy pdata,contr	
+usb0_tx0:
+	ifetch 1,contr
+	hstore 1,core_usb_dfifo0
+	bmark0 mark_isstr,usb0_tx1
+	jam 0,core_usb_dfifo0
+usb0_tx1:
+	loop usb0_tx0
+	copy contr,pdata
+	store 2,mem_bufptr//mem_bufptr += len
+	arg 0,queue
+	call usb_trig
+	fetch 1,mem_remain
+	nrtn blank
+	fetch 1,mem_usb_state
+	rtnne USB_GOT_REPORT_REQ
+	jam USB_CONNECTED,mem_usb_state
+	rtn
+
+
+usb_tx_ep1:
+	arg core_usb_dfifo1,rega
+	arg 1,queue
+usb_tx_loop:
+	ifetch 1,contr
+	istore 1,rega
+	loop usb_tx_loop
+usb_trig:
+	setarg 0
+	qset1 pdata
+	hstore 1,core_usb_trig
+	fetcht 1,mem_usb_tx_wait
+	ior temp,pdata
+	store 1,mem_usb_tx_wait
+	rtn
+
+usb_tx_ep2:
+	arg 2,queue
+	arg core_usb_dfifo2,rega
+	branch usb_tx_loop
+
+usb_tx:
+	bpatch patch1f_4,mem_patch1f
+	fetch 1,mem_usb_tx_enable
+	rtn blank
+	fetch 1,mem_usb_tx_wait
+	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,mem_usb_tx_enable
+	rtnbit0 1
+	fetch 1,mem_usb_tx_wait
+	rtnbit1 1
+	fetch 1,mem_usb_tx_enable
+	set0 1,pdata
+	store 1,mem_usb_tx_enable
+	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,mem_usb_tx_enable
+	rtnbit0 2
+	fetch 1,mem_usb_tx_wait
+	rtnbit1 2
+	fetch 1,mem_usb_tx_enable
+	set0 2,pdata
+	store 1,mem_usb_tx_enable
+	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
+	branch assert
+
+usb_tx_fifo_release:
+	//clear mem_usb_mouse_data/mem_usb_kb_data/mem_usb_kb_multikey
+	arg mem_usb_mouse_data,contw
+	arg 6,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:
+	jam 0,mem_usb_ep1_data
+	arg 8,loopcnt
+	arg mem_usb_kb_data,contr
+	branch usb_tx_ep1
+
+usb_inwake_state_tx_dispose:
+	fetch 1,mem_usb_state
+	beq USB_SLEEP,usb_clear_tx_wait
+	beq USB_CONNECTED, usb_mac_wakeup_trig
+	rtn
+usb_clear_tx_wait:
+	jam 0,mem_usb_tx_wait
+	rtn	
+usb_mac_wakeup_trig:
+	hfetch 1,core_usb_config
+	set1 7,pdata
+	hstore 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 TIMER_WAKEUP,queue
+	call timer_check
+	nrtn blank
+usb_wakeup:
+	hfetch 1,core_usb_config
+	rtnbit0 7	//endpoint wakeup enable
+	jam 0xfc,core_usb_config
+	nop 30000
+	jam 0x3c,core_usb_config
+	rtn
+
+
+
Index: DpiSwitch/program/bt.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/bt.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/bt.prog	(working copy)
@@ -0,0 +1,4175 @@
+define REVD
+//define FPGA
+define ROMCODE
+define PATCH
+define ADC
+//define RAM_VERSION
+//define CLK24M
+//define DEBUG_MALLOC
+//define DEBUG_H4LOG_ENABLE
+//define DEBUG_LIGHT_STATE
+//define E2_LOG
+//define LMP_DBG
+//define ACL_DEBUG
+//define DCDC
+define NVRAM
+define RELEASE
+define SECURE_CONNECTION
+define DEBUG_RF_INIT
+//define SPI_SIMULATE
+//define ROM_RESPIN_OPTIONAL
+
+define SIMPLE_PAIRING
+define COMPILE_RFCOMM
+define COMPILE_SHUTTER
+define COMPILE_AntiLost
+//define COMPILE_IR
+define COMPILE_KEYBOARD
+define COMPILE_MOUSE
+define COMPILE_MODULE
+//define COMPILE_AT
+//define COMPILE_PRCP
+//define COMPILE_USB
+//define COMPILE_DONGLE
+define COMPILE_LE
+define COMPILE_24G
+define COMPILE_CAR
+define COMPILE_REMOTE_CAR
+
+
+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 spi_ncs_gpio_init  // 0xff disable spi ncs gpio init
+	call initialize_radio
+	call iicd_init_12m
+	call init_param
+	call l2cap_init
+	bpatch patch00_1,mem_patch00
+	call rfcomm_init
+	call init_lmp
+	call ui_init
+	call app_init
+	ncall load_chip_option,wake
+	bpatch patch00_2,mem_patch00
+	call app_lpm_init,wake
+ifdef SIMPLE_PAIRING
+	call publickey_init
+else
+	call ssp_disable
+ifdef SECURE_CONNECTION
+	call publickey_init
+
+endif
+endif
+	call lpm_recover_clk,wake
+main_loop:	
+	bpatch patch00_3,mem_patch00
+ifdef SIMPLE_PAIRING
+	call sp_calc_sequence
+endif
+ifdef SECURE_CONNECTION
+	call sp_calc_sequence_256
+endif
+ifdef SIMPLE_PAIRING
+ifdef SECURE_CONNECTION
+	call sp_calc_sequence_256_check
+endif
+endif
+	call le_dispatch
+	bpatch patch00_4,mem_patch00
+	call idle_dispatch
+	call app_process_idle
+	call inquiry_dispatch
+	call inquiry_scan_dispatch
+	call page_scan_dispatch
+	call connection_dispatch
+	call lpm_dispatch
+	call g24_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_5,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
+connection_nosniff:
+	call context_get_next
+	copy loopcnt,null
+	rtn zero
+	call context_load
+	fetch 1,mem_state
+	bbit1 state_inpage,master_page
+	fetch 1,mem_mode
+	bbit1 mode_master, master_dispatch
+	branch slave_dispatch
+
+
+
+/**************************************/
+/**************idle dispatch*********/
+/**************************************/
+	
+idle_dispatch:
+	fetch 1,mem_hci_cmd
+	rtn blank
+	beq hci_cmd_inquiry,idle_inquiry
+	beq hci_cmd_inquiry_cancel,idle_inquiry_cancel
+	beq hci_cmd_remote_name_req,idle_remote_name_req
+	beq hci_cmd_create_conn,idle_create_conn
+	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
+	
+idle_inquiry:
+	set1 mark_inquiry_on,mark
+	set0 mark_inquiry_trainb,mark
+	jam param_ninquiry,mem_ninqy_index
+	jam 31,mem_nfreq_index_inq
+	branch idle_exit
+
+idle_inquiry_cancel:
+	set0 mark_inquiry_on,mark
+	force 0,stop_watch
+	branch idle_exit
+
+idle_remote_name_req:
+	call context_search_plap
+	rtn zero
+	force LMP_NAME_REQ,temp
+	jam 5,mem_nameres_cnt
+	branch idle_start_page
+
+idle_create_conn:
+	bpatch patch00_6,mem_patch00
+idle_create_conn_device:
+	fetch 6,mem_hci_plap
+	branch idle_exit,blank
+	jam RECONNECT_HID,memui_reconnect_mode
+	//jam HS_INIT_CALL,mem_hs_mode //init as master
+	jam CONN_SM_WAIT_FEATURES_RES,mem_conn_sm
+	branch idle_create_conn_cont
+	
+idle_create_conn_cont:
+	force LMP_VERSION_REQ,temp
+idle_start_page:
+	bpatch patch00_7,mem_patch00
+	fetch 1,mem_page_mode
+	branch idle_page_mode_r0,blank
+	lshift3 pdata,pdata
+	lshift4 pdata,pdata
+	increase -1,pdata
+idle_page_mode_r0:
+	store 1,mem_npage
+	store 1,mem_npage_index
+	jam 31,mem_nfreq_index_page
+	set0 mark_page_trainb,mark
+	call context_new
+	nbranch idle_page_fail,zero
+	call get_free_amaddr
+	store 1,mem_amaddr
+	storet 1,mem_lmo_opcode2
+	fetch 6,mem_hci_plap
+	store 6,mem_plap
+	bpatch patch01_0,mem_patch01
+	call timer_reinit
+	force 0,pdata
+	compare LMP_NAME_REQ,temp,0xff
+	nsetflag true,state_init_seq,pdata
+	set1 state_inpage,pdata
+	store 1,mem_state
+	jam BT_EVT_RECONN_STARTED,mem_fifo_temp
+	call ui_ipc_send_event
+	force 0,pdata
+	setflag true,smap_name_req,pdata
+	store 1,mem_state_map
+	setarg 0
+	set1 mode_master,pdata
+	store 1,mem_mode
+	enable master
+	call context_save
+	disable master
+	force page_length_timer,queue
+	fetch 2,mem_page_to
+	call timer_init
+	branch idle_exit
+idle_page_fail:
+	bpatch patch01_1,mem_patch01
+	fetch 6,mem_hci_plap
+	store 6,mem_plap
+	compare LMP_NAME_REQ,temp,0xff
+	branch idle_name_fail,true
+	branch idle_exit
+idle_name_fail:
+	arg mem_tmp_buffer,contw
+	arg 8,loopcnt
+	call memset0
+	jam BT_EVT_RECONN_FAILED,mem_fifo_temp
+	call ui_ipc_send_event
+	branch idle_exit
+	
+
+/******************************************/
+/**************  Inquiry  *****************/
+/******************************************/
+
+inquiry_dispatch:
+	rtnmark0 mark_inquiry_on
+	force inquiry_length_timer,queue
+	call timer_check
+	nsetflag blank,mark_inquiry_on,mark
+	nbranch inquiry_start,blank
+	rtn
+	
+
+
+inquiry_start:
+	bpatch patch01_2,mem_patch01
+	fetcht 2,mem_inq_window
+	force 4,queue
+	call sniff_check_window
+	rtn user
+	call afh_clear
+	force 0,freq_mode
+inquiry_restart:
+	rtn timeout
+	set0 mark_fhs_already_good,mark
+	set0 mark_fhs_eir,mark
+inquiry_rx_restart:
+	add clkn_bt,1,bt_clk
+	isolate1 mark_inquiry_trainb,mark
+	setflag true,2,freq_mode
+	compare 0x00,bt_clk,0x02      /* see if this is even slot */
+	nbranch inquiry_receive,true
+
+inquiry_transmit:
+	bpatch patch01_3,mem_patch01
+	fetch 1,mem_inquiry_transmit
+	increase 1,pdata
+	store 1,mem_inquiry_transmit
+	call fetch_giac
+	call tx_radio_freq
+	call fetch_diac
+	call start_transmitter	/* get ready for that id packet */
+	call start_tx_native
+	call send_access_word
+	call end_of_packet
+	call inquiry_check_train
+	branch inquiry_restart
+
+inquiry_check_train:
+	bpatch patch01_4,mem_patch01
+	fetch 1,mem_nfreq_index_inq
+	increase -1,pdata
+	store 1,mem_nfreq_index_inq
+	rtn positive  /* if it's time to incremnt N */
+	jam 31,mem_nfreq_index_inq
+	fetch 1,mem_ninqy_index
+	increase -1,pdata
+	store 1,mem_ninqy_index
+	rtn positive      /* if it's time to change train */
+	setflip mark_inquiry_trainb,mark
+	jam param_ninquiry,mem_ninqy_index
+	rtn
+
+inquiry_receive:
+	bpatch patch01_5,mem_patch01
+	call fetch_giac
+	call rx_radio_freq
+	call fetch_diac
+	call start_rx_native
+	call start_receiver	/* get ready for that id packet */
+	call wait_access_clkn_rt
+	branch inquiry_sync,sync   /* try look for id packet again if not found */
+	call inquiry_check_train
+	branch inquiry_rx_restart
+inquiry_sync:
+	bpatch patch01_6,mem_patch01
+	call save_rssi
+	call scan_mode_whiten
+	call receive_packet_whitened
+	set0 mark_rxbuf_inuse,mark
+	rtnmark0 mark_fhs_already_good
+inquiry_receive_rtn:
+	bpatch patch01_7,mem_patch01
+inquiry_receive_eir_rtn:
+	fetch 1,mem_inquiry_rcv
+	increase 1,pdata
+	store 1,mem_inquiry_rcv
+	rtn
+		
+/******************************************/
+/**************  Master Dispatch  *************/
+/******************************************/
+
+
+
+master_page:
+	bpatch patch02_0,mem_patch02
+	enable master
+	enable clknt
+	fetch 2,mem_page_interval
+	branch master_page_no_interval,blank
+	force page_interval_timer,queue
+	call timer_check               
+	nrtn blank
+master_page_no_interval:
+	bpatch patch02_1,mem_patch02
+	fetcht 2,mem_page_window
+	force 40,queue
+	call sniff_check_window
+	branch page_exit,user
+	force page_length_timer,queue
+	call timer_check
+	nbranch page_start,blank
+	fetch 1,mem_state_map
+	bbit1 smap_name_req,master_npage_timeout
+	branch master_page_timeout
+master_npage_timeout:
+	arg mem_tmp_buffer,contw
+	arg 8,loopcnt
+	call memset0
+master_page_timeout:
+	bpatch patch02_2,mem_patch02
+	jam 0,mem_state
+	call init_lmp_work
+	jam 0,memui_reconnect_mode
+	jam BT_EVT_RECONN_PAGE_TIMEOUT,mem_fifo_temp
+	call ui_ipc_send_event	
+	branch page_exit
+
+page_start:
+	bpatch patch02_3,mem_patch02
+	force 0,timeup
+	until clkn_rt,meet
+	fetch 1,mem_page_clk
+	increase -1,pdata
+	ixor clkn_bt,pdata
+	compare 0,pdata,3
+	nbranch page_start,true
+	deposit am_addr
+	store 1,mem_fhs_am_addr
+	force 0,N_tx_slot
+	force 0,freq_mode
+
+page_restart:
+	bpatch patch02_4,mem_patch02
+	branch page_exit,timeout
+	call fetch_page_bt_adr
+	arg param_rf_setup, timeup
+	until clkn_rt,meet         /* wait for the start_receiver time against native real clk  */
+page_rx_restart:
+	bpatch patch02_5,mem_patch02
+	fetch 4,mem_page_clk    /* deposit clk_estimate */
+	iforce bt_clk
+	increase 1,pdata
+	store 4,mem_page_clk
+	isolate1 mark_page_trainb,mark
+	setflag true,2,freq_mode
+	compare 0x00,bt_clk,0x02      /* see if this is even slot */
+	nbranch page_receive,true
+	fetch 1, mem_page_transmit
+	increase 1,pdata
+	store 1, mem_page_transmit
+	call tx_radio_freq
+	call start_transmitter	/* get ready for that id packet */
+	call start_tx_native
+	call send_access_word
+	call end_of_packet
+	call page_check_train
+	branch page_restart	
+page_exit:
+	bpatch patch02_6,mem_patch02
+	disable master
+	fetch 2,mem_page_interval      
+	rtn blank
+	force page_interval_timer,queue
+	branch timer_init              
+
+page_check_train:
+	bpatch patch02_7,mem_patch02
+	fetch 1,mem_nfreq_index_page
+	increase -1,pdata
+	store 1,mem_nfreq_index_page
+	rtn positive
+	jam 31,mem_nfreq_index_page
+	fetch 1,mem_npage_index
+	increase -1,pdata                 /* increment N */
+	store 1,mem_npage_index
+	rtn positive      			/* if it's time to change train */
+	setflip mark_page_trainb,mark             /* change train */
+	fetch 1,mem_npage
+	store 1,mem_npage_index
+	rtn
+	
+page_receive:
+	bpatch patch03_0,mem_patch03
+	call rx_radio_freq
+	call start_rx_native
+	call start_receiver	/* get ready for that id packet */
+	call wait_access_clkn_rt	/* try id look for id packet again */
+	branch page_sync,sync         /* restart if didn't receive anything */
+	call page_check_train
+	branch page_rx_restart
+page_sync:
+	call end_of_packet
+	fetch 1, mem_page_rcv
+	increase 1,pdata
+	store 1, mem_page_rcv
+	force 0,stop_watch
+	fetch 4,mem_page_clk
+page_send_fhs:
+	bpatch patch03_1,mem_patch03
+	call rf_setup_time_master_slot
+	call fetch_page_bt_adr
+	increase 1,N_tx_slot
+page_send_fhs_continue:
+	and_into 0x1fd,bt_clk
+	and_into 0x1fc,freq_mode               /* master response = x00, even_train settin must remain the same */
+	call tx_radio_freq
+	call start_transmitter	/* get ready for that id packet */
+	call start_tx_native
+	call send_access_word
+	deposit clkn_bt
+	store 4,mem_clkn_bt
+	force 0,am_addr
+	force type_fhs,type
+	call scan_mode_whiten
+	call transmit_packet_whitened
+page_wait_fhs_reply:
+	bpatch patch03_2,mem_patch03
+	call rf_setup_time_slave_slot
+	or_into 0x02,bt_clk
+	and_into 0x1fc,freq_mode               /* master response sequence = x00, even train setting must be preserved */
+	call rx_radio_freq
+	call start_rx_native
+	call start_receiver	/* get ready for that id packet */
+	call wait_access_clkn_rt	/* look for that reply */
+	call end_of_packet,sync              /* id reply is enough */
+	branch page_wait_fhs_reply_ok,sync           /* no reply then send fhs again */
+	fetch 1,mem_fhs_wait_counter
+	branch page_restart,blank
+	increase -1,pdata
+	store 1,mem_fhs_wait_counter
+	branch page_send_fhs
+	
+page_wait_fhs_reply_ok:
+	bpatch patch03_3,mem_patch03
+	fetch 1, mem_page_rcv_fhs
+	increase 1,pdata
+	store 1, mem_page_rcv_fhs
+	call prepare_newconn
+master_newconn_loop:
+	call master_newconn_once
+	branch newconn_poll_responded,sync
+	call new_conn_timeout
+	nbranch master_newconn_loop,blank
+	branch page_restart
+
+newconn_poll_responded:
+	bpatch patch03_4,mem_patch03
+	fetch 1,mem_state
+	set0 state_inpage,pdata
+	store 1,mem_state
+	call newconn_init
+	disable master
+	rtn
+	
+
+master_dispatch:
+	bpatch patch03_5,mem_patch03
+	enable master
+	enable clknt
+	call role_switch_master
+	rtn user
+	call check_bt_disabled
+	call rf_setup_time_master_slot
+	add clkn_bt,1,bt_clk
+	call fetch_self_bt_adr
+	force 0x03,freq_mode
+	call scheduler_tx_l2cap_pkt
+	call prepare_tx
+	call tx_radio_freq
+	call start_transmitter
+	call start_tx_native
+	call send_access_word
+	call transmit_packet
+master_loop:
+	bpatch patch03_6,mem_patch03
+	call parse_lmp
+	call master_conn_recv_packet
+	nbranch master_notmatch,match
+	call supervision_flush
+	call parse_l2cap
+	fetch 1,mem_master_rcvcnt
+	increase 1,pdata
+	store 1,mem_master_rcvcnt
+master_notmatch:
+	bpatch patch03_7,mem_patch03
+	call scheduler_process
+	call check_master_disconnect
+	nrtn master					/* disconnected */
+	call check_attempt
+	nbranch master_attempt,blank
+master_exit:
+	disable master
+	rtn
+
+master_attempt:
+	call prepare_tx
+	call master_conn_send_packet
+	branch master_loop
+
+
+check_master_disconnect:
+	branch check_master_match,match
+	call supervision_update
+	branch master_disconnect,positive
+check_master_match:
+	call check_disconnect_timeout
+	nbranch master_disconnect,user
+	fetch 1,mem_state_map
+	rtnbit0 smap_name_req
+	rtnbit1 smap_name_res
+	fetch 1,mem_op
+	rtnbit1 op_disconn
+	call conn_timer_expired
+	nrtn blank
+	fetch 1,mem_nameres_cnt
+	increase -1,pdata
+	store 1,mem_nameres_cnt
+	nrtn blank
+	branch lmp_disconnect
+
+master_disconnect:
+	bpatch patch04_0,mem_patch04
+	call quit_connection
+	disable master
+	fetch 1,mem_state_map
+	bbit1 smap_name_req,master_name_disconnect
+	rtn
+	
+master_name_disconnect:
+	fetch 1,mem_state_map
+	rtnbit1 smap_name_res
+master_name_error:
+	arg mem_tmp_buffer,contw
+	arg 8,loopcnt
+	branch memset0
+	
+check_disconnect_timeout:
+	bpatch patch04_1,mem_patch04
+	enable user
+	fetch 1,mem_op
+	rtnbit0 op_disconn
+	call conn_timer_expired
+	nrtn blank
+	branch disable_user
+
+conn_timer_expired:
+	fetch 1,mem_conn_timer
+	increase -1,pdata
+	store 1,mem_conn_timer
+	rtn
+
+linkkey_ready:
+	bpatch patch04_2,mem_patch04
+	fetch 1,mem_state
+	bbit1 state_linkkey,linkkey_set
+	fetch 1,mem_pairing_auth
+	branch linkkey_set,blank
+	jam DEFALT_PAIRING_AUTH,mem_pairing_auth
+	jam BT_EVT_LINKKEY_GENERATE,mem_fifo_temp
+	call ui_ipc_send_event
+	branch linkkey_set
+linkkey_set:
+	bpatch patch04_3,mem_patch04
+	call context_traverse_linkkey
+	fetch 1,mem_state
+	set1 state_linkkey,pdata
+	store 1,mem_state
+	jam 1,mem_link_key_exists
+	fetch 1,mem_conn_sm
+	bne CONN_SM_PAIRING,linkkey_set_continue
+linkkey_set_continue:
+	rtn
+
+generate_linkkey_continue:
+	jam PAIRING_AUTH,mem_pairing_auth
+clear_linkstate:
+	fetch 1,mem_state
+	set0 state_linkkey,pdata
+	store 1,mem_state
+	rtn
+	
+
+	/* rtn user if switch */
+role_switch_check:
+	bpatch patch04_4,mem_patch04
+	disable user
+	fetch 2,mem_tsniff
+	arg 0xffff,temp
+	isub temp,null
+	nrtn zero
+	fetch 4,mem_sniff_anchor
+	branch role_switch_clkn,clknt
+	isub clke_bt,pdata
+	branch role_switch_clke
+role_switch_clkn:
+	isub clkn_bt,pdata
+role_switch_clke:
+	sub pdata,4,null
+	nrtn positive
+	force 0,pdata
+	store 2,mem_tsniff
+	branch enable_user
+
+
+	/* pdata: switch instant, set tsniff=0 for special sniff */	
+role_switch_prepare:
+	copy pdata,temp
+	bpatch patch04_5,mem_patch04
+	storet 4,mem_sniff_anchor
+role_switch_prepare0:
+	jam SWITCH_FLAG_ACCEPT,mem_switch_flag
+	setarg 0xffff
+	store 2,mem_tsniff
+	jam 1,mem_sniff_attempt
+	rtn
+
+
+role_switch_master:
+	bpatch patch04_6,mem_patch04
+	call role_switch_check
+	nrtn user
+	disable user
+	jam param_newconnto,mem_newconnto_counter
+	set0 mark_fhs_already_good,mark
+roles_waitfhs_loop:
+	call rf_setup_time_master_slot
+	call master_recv_packet
+	bmark1 mark_fhs_already_good,roles_replyto_fhs
+	call new_conn_timeout
+	nbranch roles_waitfhs_loop,blank
+role_switch_fail_master:
+	bpatch patch04_7,mem_patch04
+	disable user
+	deposit clkn_bt
+	store 4,mem_next_btclk
+	enable clknt
+	enable master
+	jam BT_EVT_SWITCH_FAIL_MASTER,mem_fifo_temp
+	branch ui_ipc_send_event
+	
+roles_replyto_fhs:
+	bpatch patch05_0,mem_patch05
+	call rf_setup_time_slave_slot
+	arg type_id,type
+	call master_send_packet
+	disable clknt
+	disable master
+	call apply_switch_clke
+	call prepare_newconn
+roles_newconns_loop:
+	bpatch patch05_1,mem_patch05
+	call slave_newconn_once
+	branch roles_newconns_responded,match
+	call new_conn_timeout
+	nbranch roles_newconns_loop,blank
+	branch role_switch_fail_master
+roles_newconns_responded:
+	fetch 1,mem_mode
+	set0 mode_master,pdata
+	store 1,mem_mode
+	call supervision_flush
+	call calc_clke_offset
+	enable user
+	jam BT_EVT_SWITCH_SUCCESS_MASTER,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+
+
+context_load:
+	bpatch patch05_2,mem_patch05
+	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
+	arg mem_state,contw
+	call memcpy
+	disable attempt
+	fetch 1,mem_amaddr
+	iforce am_addr
+	jam 1,mem_current_sniff_attempt
+	branch context_load_master,master
+	jam 1,mem_current_sniff_attempt
+context_load_master:
+	fetch 1,mem_state
+	rtnbit0 state_insniff
+	fetch 1,mem_sniff_attempt
+	store 1,mem_current_sniff_attempt
+	fetch 1,mem_sniff_timeout
+	store 1,mem_current_sniff_timeout
+	rtn
+	
+context_save:
+	bpatch patch05_3,mem_patch05
+	fetch 2,mem_context_ptr
+	iforce contw
+	force context_size,loopcnt
+	arg mem_le_state,contr
+	branch memcpy,le
+	arg mem_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
+	rtnbit1 state_inpage
+context_get_next_sniff:
+	loop context_get_next_loop
+	rtn
+	
+context_new:
+	bpatch patch05_4,mem_patch05
+	arg context_search_empty,regc
+	call context_search
+	nrtn zero					// all occupied
+	deposit rega
+	store 2,mem_context_ptr
+	force 0,null
+	rtn
+	
+	//return zero if anyone's wack is 1.
+	//return nzero if all wack is 0
+context_check_all_wack:
+	call check_esco_amaddr
+	branch context_check_esco_wack,true
+	fetch 2,mem_context_ptr
+	add pdata,coffset_arq,contw
+	fetch 1,mem_arq
+	istore 1,contw
+	arg context_check_a_wack,regc
+	branch context_search
+
+context_check_esco_wack:
+	fetch 1,mem_arq
+	isolate1 wack,pdata
+	branch context_esco_wack,true
+	force 1,null
+	rtn
+context_esco_wack:
+	force 0,null
+	rtn
+	
+	//rtn nzero if idle(no conn)
+context_check_idle:
+	arg context_check_inconn,regc
+	branch context_search
+	
+context_traverse_linkkey:
+	fetcht 2,mem_context_ptr
+	arg context_traverse_clearkey,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 patch05_5,mem_patch05
+	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 patch05_6,mem_patch05
+	arg mem_context,rega
+	arg context_num,loopcnt
+context_search_loop:
+	ifetch 1,rega
+	copy regc,pc
+context_search_next:
+	increase context_size,rega
+	loop context_search_loop
+	force 1,null
+	rtn
+
+context_search_empty:
+	bbit1 state_inconn,context_search_next
+	bbit1 state_inpage,context_search_next
+	force 0,null
+	rtn
+	
+context_search_lap:
+	bbit1 state_inpage,context_search_lap_cont
+	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
+	fetch 1,mem_le_sc_calc
+	nbranch context_search_sniff_sc,blank
+	fetch 9,mem_temp
+	copy regb,contr
+	increase 5,pdata  
+	branch context_search_meet1
+context_search_sniff_sc:
+	fetch 9,mem_temp
+	copy regb,contr	
+	increase 20,pdata  
+context_search_meet1:
+	nbranch context_search_next,positive
+context_search_meet:
+	copy temp,bt_clk
+	call context_next_anchor
+	force 0,null
+	rtn
+	
+	
+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
+	force 0,null 				// found
+	rtn
+	
+context_check_a_wack:
+	bbit0 state_inconn,context_search_next
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	bbit1 mode_le,context_search_next
+	add rega,coffset_arq,contr
+	ifetch 1,contr
+	bbit0 wack,context_search_next
+	force 0,null 				// found
+	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_nexthop
+	
+
+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
+	force 0,null
+	rtn
+
+context_traverse_clearkey:
+	bbit0 state_inconn,context_search_next
+	deposit temp
+	isub rega,null
+	branch context_search_next,null
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	bbit1 mode_le,context_search_next
+	ifetch 1,rega
+	set0 state_linkkey,pdata
+	istore 1,rega
+	branch context_search_next
+
+	
+master_conn_send_packet:
+	bpatch patch05_7,mem_patch05
+	call rf_setup_time_master_slot
+master_send_packet:
+	add clkn_bt,1,bt_clk          /* master start to use native clock */
+	call fetch_self_bt_adr
+	force 0x03,freq_mode          /* we are in connection!! */
+	call tx_radio_freq
+	call start_transmitter
+	call start_tx_native
+	call send_access_word
+	branch transmit_packet
+
+master_conn_recv_packet:
+	bpatch patch06_0,mem_patch06
+	call rf_setup_time_slave_slot
+master_recv_packet:
+	add clkn_bt,1,bt_clk          /* master start to use native clock */
+	call fetch_self_bt_adr
+	force 0x03,freq_mode          /* we are in connection!! */
+	call rx_radio_freq
+	call init_rx_packet_flags
+	call prep_crypt
+	call start_rx_native	/* start listening at start_rx time */
+	call start_receiver
+master_rx_conn_finish_packet:
+	call wait_access_clkn_rt	/* master use native clock */
+	nrtn sync
+	call save_rssi
+	branch receive_packet
+	
+	
+
+master_newconn_once:
+	bpatch patch06_1,mem_patch06
+	fetch 1,mem_fhs_am_addr
+	iforce am_addr			//review
+	force type_poll,type
+	call master_conn_send_packet
+	branch master_conn_recv_packet
+
+
+
+
+
+
+/******************************************/
+/************* Inquiry Scan ***************/
+/******************************************/
+
+inquiry_scan_dispatch:
+	fetch 1,mem_scan_mode
+	rtnbit0 inq_scan_mode
+	force iscan_interval_timer,queue
+	call timer_check
+	nrtn blank
+	fetcht 2,mem_iscan_window
+	force 4,queue
+	call sniff_check_window
+	rtn user
+	call inquiry_scan_start
+	force iscan_interval_timer,queue
+	fetch 2,mem_iscan_interval
+	nbranch timer_init,sync
+	random pdata				/* inquiry scan backoff */
+	iand mask3ff,pdata
+	branch timer_init
+	
+
+inquiry_scan_start:
+	bpatch patch06_2,mem_patch06
+	jam 0,mem_fhs_am_addr
+	disable clknt
+	disable attempt
+	call afh_clear
+	and clkn_bt,0x1fc,bt_clk      /* freeze the clock, set bit[1] 0, this is version 1.1 */
+	force 0x01,freq_mode     /* slave in inquiry scan, kind of same as inquriy_response, this is version 1.1 */
+	call fetch_giac
+	call rx_radio_freq
+	setflip mark_inquiry_state,mark
+	fetch 1,mem_inquiryscan_waitcnt
+	increase 1,pdata
+	store 1,mem_inquiryscan_waitcnt
+	call fetch_diac
+	call start_receiver	/* get ready for that id packet */
+	call wait_access_forever	/* until there is timeout, or matched (true) */
+	nrtn sync
+	bpatch patch06_3,mem_patch06
+	force 0,stop_watch
+	call shutdown_radio	/* must have heard */
+	fetch 1,mem_inquiryscan_rcvcnt
+	increase 1,pdata
+	store 1,mem_inquiryscan_rcvcnt
+	call fetch_giac
+	call rf_setup_time_slave_slot
+	or_into 0x002,bt_clk               /* put clk(1) to 1 */
+	force 0x01,freq_mode               /* slave in inquriy and page, response only */
+	call tx_radio_freq
+	call fetch_diac
+	call start_transmitter	/* get ready for that id packet */
+	call start_tx_external
+	deposit clkn_bt
+	store 4,mem_clkn_bt
+	call send_access_word
+	force type_fhs,type
+	force 0,am_addr                       /* put 0 into am_addr field for fhs */
+	call scan_mode_whiten
+	call transmit_packet_whitened
+	call send_eir
+	and_into 0x1fd,bt_clk                 /* put clk(1) back to 0 */
+	increase 1,N_tx_slot
+	rtn
+
+send_eir:
+	bpatch patch06_4,mem_patch06
+	fetch 1,mem_eir_enable
+	rtn blank
+	arg mem_eir,contw
+	fetch 1,mem_local_name_length
+	copy pdata,loopcnt
+	increase 1,pdata
+	istore 1,contw	
+	copy contw,temp
+	increase 1,pdata
+	store 2,mem_tx_len	
+	copy temp,contw
+	setarg 0x09  //type:name
+	istore 1,contw		
+	arg  mem_local_name,contr
+	call memcpy       //name
+
+	arg mem_all_uuid_128bits,regc
+	arg 4,loopcnt
+	call get_all_uuid
+	arg mem_all_uuid_16bits,regc
+	arg 1,loopcnt
+	call get_all_uuid
+
+	force type_dm3,type		/* DM3 */
+	jam 2,mem_tx_lch
+	setarg mem_eir
+	store 2,mem_txptr
+	call rf_setup_time_slave_slot
+	call tx_radio_freq
+	call start_transmitter	/* get ready for that id packet */
+	call start_tx_external
+	call send_access_word
+	call scan_mode_whiten
+	call transmit_packet_whitened
+	rtn
+
+
+get_all_uuid:
+	copy contw,temp
+	copy regc,contr
+	ifetch 1,contr
+	rtn blank
+lshift_loop:
+	lshift pdata,pdata
+	loop lshift_loop
+	copy pdata,rega
+	increase 2,pdata
+	copy pdata,queue
+	fetch 2,mem_tx_len
+	iadd queue,pdata
+	store 2,mem_tx_len
+	copy temp,contw
+	copy rega,pdata
+	increase 1,pdata
+	istore 1,contw
+	copy regc,contr
+	ifetch 1,contr
+	ifetch 1,contr	//fetch type
+	istore 1,contw
+	copy rega,loopcnt
+	branch memcpy  //copy uuid
+	
+/******************************************/
+/******** Slave dispatch ***********/
+/******************************************/
+
+page_scan_dispatch:	
+	fetch 1,mem_scan_mode
+	rtnbit0 page_scan_mode
+	force pscan_interval_timer,queue
+	call timer_check
+	nrtn blank
+	fetcht 2,mem_pscan_window
+	force 40,queue
+	call sniff_check_window
+	rtn user
+	force 0,am_addr
+	jam param_pagerespto,mem_fhs_wait_counter
+	set0 mark_fhs_already_good,mark
+	call page_scan_start
+	force pscan_interval_timer,queue
+	fetch 2,mem_pscan_interval
+	branch timer_init
+	
+
+page_scan_start:
+	bpatch patch06_5,mem_patch06
+	disable clknt
+	call afh_clear
+	fetch 1,mem_pagescan_waitcnt
+	increase 1,pdata
+	store 1,mem_pagescan_waitcnt
+	force 0,N_tx_slot
+	call fetch_self_bt_adr
+	add clkn_bt,1,bt_clk      /* freeze the clock on native clock until scan window is up */
+	force 0x02, freq_mode     /* slave in inquiry and page, not response */
+	bpatch patch06_6,mem_patch06
+	call rx_radio_freq
+	call start_receiver	/* wait for that id packet from master */
+	call wait_access_forever
+	nrtn sync                          /* pscan window timeout occured, back to dispatch */
+	call shutdown_radio	/* got the id packet */
+	fetch 1,mem_pagescan_rcvcnt
+	increase 1,pdata
+	store 1,mem_pagescan_rcvcnt
+	force 0,stop_watch
+	call rf_setup_time_slave_slot
+	or_into 0x002,bt_clk               /* put clk(1) to 1 */
+	force 0x01,freq_mode               /* slave in inquriy and page, response only */
+	call tx_radio_freq
+	call start_transmitter
+	call start_tx_external
+	call send_access_word
+	call end_of_packet
+	force 0,am_addr
+	arg param_rf_setup, timeup
+	until clke_rt,meet
+	or_into 0x03,clke_bt
+	and_into 0x1fd,bt_clk
+page_scan_wait_fhs_restart:
+	bpatch patch06_7,mem_patch06
+	increase 1,N_tx_slot
+	call rx_radio_freq
+	call start_receiver
+	call wait_access_mhalfbnd
+	nbranch page_scan_wait_fhs_again,sync	/* go back if didn't find access code */
+	call scan_mode_whiten
+	call receive_packet_whitened
+	bmark1 mark_fhs_already_good,page_scan_reply_to_fhs
+page_scan_wait_fhs_again:
+	bpatch patch07_0,mem_patch07
+	fetch 1,mem_fhs_wait_counter
+	rtn blank
+	increase -1,pdata
+	store 1,mem_fhs_wait_counter
+	call rf_setup_time_master_slot	/* set up expiration time */
+	branch page_scan_wait_fhs_restart
+
+
+page_scan_reply_to_fhs:
+	bpatch patch07_1,mem_patch07
+	set0 1,clke_bt
+	set1 0,clke_bt
+	fetch 1,mem_pagescan_rcvfhscnt
+	increase 1,pdata
+	store 1,mem_pagescan_rcvfhscnt
+	call rf_setup_time_slave_slot
+	or_into 0x02,bt_clk
+	call tx_radio_freq
+	call start_transmitter
+	call start_tx_external
+	call send_access_word
+	call end_of_packet
+slave_apply_clke_bt:
+	compare 0x03,clke_bt,0x03
+	branch slave_apply_clke_bt_now,true
+	until null,mhalfbnd
+	branch slave_apply_clke_bt
+slave_apply_clke_bt_now:
+	fetch 4,mem_clke_bt
+	or_into 0x03,pdata
+	icopy clke_bt
+
+start_slave_connection:
+	bpatch patch07_2,mem_patch07
+	fetch 6,extm_lap
+	store 6,mem_plap
+	call prepare_newconn
+slave_newconn_loop:
+	call slave_newconn_once
+	branch sconn_successful,match     /* we were talked to */
+	call new_conn_timeout
+	nbranch slave_newconn_loop,blank
+	rtn
+
+	
+sconn_successful:
+	bpatch patch07_3,mem_patch07
+	call newconn_init
+	call context_new
+	nrtn zero
+	jam 0,mem_mode
+	call calc_clke_offset
+	branch context_save
+
+
+
+
+slave_dispatch:
+	bpatch patch07_4,mem_patch07
+	call calc_clke
+	call role_switch_slave
+	rtn user
+slave_loop:
+	bpatch patch07_5,mem_patch07
+	call check_bt_disabled
+	call scheduler_process
+	call slave_conn_recv_packet	/* go listen for a packet */
+	nbranch slave_notmatch,match
+	call supervision_flush
+	call scheduler_tx_l2cap_pkt
+	call prepare_tx
+	call slave_conn_send_packet
+	call parse_l2cap
+	call parse_lmp
+	fetch 1,mem_slave_rcvcnt
+	increase 1,pdata
+	store 1,mem_slave_rcvcnt
+	call calc_clke_offset
+slave_notmatch:
+	bpatch patch07_6,mem_patch07
+	call lpm_set_mult
+	call supervision_update
+	branch slave_disconnect,positive
+	call check_disconnect_timeout
+	nbranch slave_disconnect,user
+	call check_attempt
+	nbranch slave_loop,blank
+	rtn
+
+slave_disconnect:
+	bpatch patch07_7,mem_patch07
+	jam 0,mem_tester_emulate
+	jam 0,mem_debug_config
+	call quit_connection
+	set0 mark_testmode,mark
+	call test_enable_white
+	fetch 1,mem_state
+	rtn
+
+
+role_switch_slave:
+	bpatch patch08_0,mem_patch08
+	call role_switch_check
+	nrtn user
+	copy am_addr,temp
+	call get_free_amaddr
+	store 1,mem_fhs_am_addr
+	copy temp,am_addr
+	jam param_newconnto,mem_newconnto_counter
+roles_sendfhs_loop:
+	bpatch patch08_1,mem_patch08
+	call rf_setup_time_master_slot
+	force type_fhs,type
+	call slave_send_access
+	deposit clkn_bt
+	store 4,mem_clkn_bt
+	call transmit_packet
+	call rf_setup_time_slave_slot
+	enable user3
+	call slave_receive_access
+	branch roles_got_fhs_reply,sync
+	call shutdown_radio
+	call new_conn_timeout
+	nbranch roles_sendfhs_loop,blank
+	rtnmark0 mark_accept_switch
+	jam LMP_SLOT_OFFSET,mem_lmo_opcode2
+	set1 mark_switch_initiated,mark
+	rtn
+roles_got_fhs_reply:
+	enable clknt
+	call prepare_newconn
+	call afh_clear
+roles_newconn_loop:
+	bpatch patch08_2,mem_patch08
+	call master_newconn_once
+	branch roles_newconn_responded,sync
+	call new_conn_timeout
+	nbranch roles_newconn_loop,blank
+	disable clknt
+	deposit clke_bt
+	store 4,mem_next_btclk
+	rtn
+roles_newconn_responded:
+	enable master
+	bmark0 mark_accept_switch,roles_newconn_nolmp
+	set0 mark_accept_switch,mark
+	jam LMP_ACCEPTED,mem_lmo_opcode2
+	jam LMP_HOST_CONNECTION_REQ,mem_lmi_opcode2
+	call tid_set_reply
+roles_newconn_nolmp:
+	deposit am_addr
+	store 1,mem_amaddr
+	force 0,pdata
+	store 6,mem_clk_offset
+	fetch 1,mem_mode
+	set1 mode_master,pdata
+	store 1,mem_mode
+	call supervision_flush
+	disable master
+	enable user
+	rtn
+
+	
+
+init_rx_packet_flags:
+	bpatch patch08_3,mem_patch08
+	disable match
+	set0 mark_loopback,mark
+	set0 mark_am_addr_broadcast,mark          /* initialize slave flags */
+	set0 mark_longpacket,mark
+	set0 mark_old_packet,mark
+	fetch 1,mem_arq    /* mem_arq + am_addr */
+	set0 arqnx,pdata
+	set1 flowx,pdata
+	store 1,mem_arq
+	rtn
+
+prepare_newconn:
+	bpatch patch08_4,mem_patch08
+	jam param_newconnto,mem_newconnto_counter
+	jam param_newconn_arq,mem_arq
+	fetch 2,mem_rx_window_init
+	store 2,mem_rx_window
+	deposit clkn_bt
+	store 4,mem_next_btclk
+	rtn clknt
+	deposit clke_bt
+	store 4,mem_next_btclk
+	rtn
+
+newconn_init:
+	bpatch patch08_5,mem_patch08
+	call init_lmp_reinit
+	call new_conn_handle
+	store 1,mem_conn_handle
+	setarg 0
+	store 2,mem_l2cap_rxbuff1_len
+	setarg param_supervision_to
+	store 2,mem_supervision_to
+	fetch 1,mem_state
+	set1 state_inconn,pdata
+	store 1,mem_state
+	jam 0,mem_op
+	jam 0,mem_state_map
+	jam 0,mem_lpm_current_mult
+	branch supervision_flush
+	
+
+clear_linkkey:
+	bpatch patch08_6,mem_patch08
+	force 0,pdata
+	store 8,mem_link_key
+	istore 8,contw
+	call clear_linkstate
+	branch context_traverse_linkkey
+	
+new_conn_timeout:
+	fetch 1,mem_newconnto_counter
+	increase -1,pdata
+	store 1,mem_newconnto_counter
+	rtn
+
+new_conn_handle:
+	fetch 1,mem_handle_num
+	increase 1,pdata
+	store 1,mem_handle_num
+	rtn
+
+
+quit_connection:
+	bpatch patch08_7,mem_patch08
+	fetch 1,mem_hci_cmd
+	beq hci_cmd_remote_name_req,quit_connection_name
+	fetch 1,mem_lmp_to_send
+	bne LMP_NAME_REQ,quit_connection_cont
+quit_connection_name:
+	call cmd_check_plap
+	nbranch quit_connection_cont,zero
+	call master_name_error
+	jam 0,mem_hci_cmd
+quit_connection_cont:
+	bpatch patch09_0,mem_patch09
+	call app_disconn_reason_collect_bt
+	call sniff_exit
+	jam BT_EVT_BB_DISCONNECTED,mem_fifo_temp
+	call ui_ipc_send_event
+	call init_lmp_work
+	call l2cap_init_work
+ifdef SIMPLE_PAIRING
+	call sp_initialize
+endif
+	fetch 1,mem_state
+	set0 state_inconn
+	store 1,mem_state
+	jam 0,memui_reconnect_mode
+
+	fetch 1,mem_state_map
+	compare 0x0,pdata,0xc0
+	branch quit_connection_not_clear_mark,true
+	set0 mark_rxbuf_inuse,mark
+quit_connection_not_clear_mark:
+	fetch 1,mem_arq
+	bbit0 wack,quit_connection_not_clear_tx
+quit_connection_not_clear_tx:
+	fetch 1,mem_op
+	rtnbit0 op_txl2cap
+	set0 mark_tx_l2cap,mark
+	rtn
+
+slave_newconn_once:
+	bpatch patch09_1,mem_patch09
+	fetch 1,extm_newconn_am_addr
+	rtn blank     
+	icopy am_addr
+	call slave_conn_recv_packet
+	nrtn match
+	force type_null,type
+	call slave_conn_send_packet
+	deposit am_addr
+	store 1,mem_amaddr                 /* now the new am_addr is official */
+	force 0,pdata
+	store 1,extm_newconn_am_addr
+	rtn
+
+
+/******************************************/
+/********  Time consuming task  ***********/
+/******************************************/
+prepare_tx:
+	bpatch patch09_2,mem_patch09
+	fetch 1,mem_state
+	bbit0 state_insco,prepare_tx_not_sco
+	force type_hv3,type
+	bmark0 mark_esco,prepare_tx_not_esco
+	call check_esco_amaddr
+	nbranch prepare_tx_not_sco,true
+	branch prepare_tx_not_sco,attempt	
+	call set_wait_ack					/* send esco only at the first attempt */
+	setarg 2		/* esco only has 1 retry */
+	store 2,mem_retransmission_cnt
+	rtn
+prepare_tx_not_esco:
+	nrtn attempt						/* send sco only at the first attempt */
+prepare_tx_not_sco:
+	bpatch patch09_3,mem_patch09
+	call context_check_all_wack			 //abandon mark_retransmit, use context_check_all_wack instead.
+	nbranch prepare_tx_no_retransmit,zero
+	fetch 1,mem_arq
+	bbit0 wack,prepare_tx_pollnull		/* other wack, tx buffer in use, but not me */
+prepare_tx_retransmit:
+	bmark1 mark_loopback,prepare_tx_loopback
+	fetch 1,mem_debug_config
+	bbit1 debug_tx_pattern,prepare_tx_txpat
+	fetch 2,mem_retransmission_cnt
+	increase -1,pdata
+	store 2,mem_retransmission_cnt
+	branch prepare_tx_nomore_retransmit,blank
+	fetch 1,mem_last_type
+	iforce type
+	rtn
+
+prepare_tx_nomore_retransmit:
+	bpatch patch09_4,mem_patch09
+	call clear_got_tx
+prepare_tx_no_retransmit:
+	call check_esco_amaddr
+	branch prepare_tx_pollnull,true
+	call send_lmp
+	branch prepare_tx_sendlmp,user
+	fetch 1,mem_op
+	bbit1 op_txl2cap,prepare_tx_sendl2cap
+	bmark1 mark_loopback,prepare_tx_loopback
+	fetch 1,mem_debug_config
+	bbit1 debug_tx_pattern,prepare_tx_txpat
+prepare_tx_pollnull:
+	force type_poll,type				/* POLL for master */
+	rtn master
+	force type_null,type				/* default is NULL */
+	rtn
+prepare_tx_loopback:
+	bpatch patch09_5,mem_patch09
+	fetch 1,mem_rx_type
+	iforce type
+	rtnne 1
+	force type_null,type
+	rtn
+prepare_tx_txpat:
+	fetch 1,test_mode_packet_type
+	and pdata,0xf,type
+	set1 mark_loopback,mark
+	rtn
+prepare_tx_sendlmp:
+	force type_lmp,type
+	branch set_wait_ack
+prepare_tx_sendl2cap:
+	call tx_l2cap_type
+
+set_wait_ack:
+	bpatch patch09_6,mem_patch09
+	fetcht 1,mem_arq
+	set1 wack,temp
+	storet 1,mem_arq
+	deposit type
+	store 1,mem_last_type
+	setarg 0xffff
+	store 2,mem_retransmission_cnt
+	rtn
+
+tx_l2cap_type:
+	bpatch patch09_7,mem_patch09
+	fetch 1,mem_state_map
+	isolate1 smap_edr,pdata
+	fetch 2,mem_tx_len
+	branch tx_l2cap_type_edr,true
+	force type_dm1,type		/* DM1 */
+	sub pdata,17,null			
+	rtn positive
+	force type_dh1,type		/* DH1 */
+	sub pdata,27,null				
+	rtn positive
+	force type_dm3,type		/* DM3 */
+	sub pdata,121,null
+	rtn positive
+	force type_dh3,type		/* DH3 */
+	sub pdata,183,null
+	rtn positive	
+	force type_dm5,type		/* DM5 */
+	sub pdata,224,null
+	rtn positive
+	force type_dh5,type		/* DH5 */
+	rtn
+tx_l2cap_type_edr:
+	force type_dm1,type
+	sub pdata,17,null
+	rtn positive
+	force type_dh1,type		/*2-DH1*/
+	sub pdata,54,null
+	rtn positive
+	force type_dm3,type		/*2-DH3*/
+	arg 367,temp
+	isub temp,null
+	nrtn positive
+	force type_dm5,type		/*2-DH5*/
+	arg 679,temp
+	isub temp,null
+	nrtn positive
+	force type_dh5,type		/*3-DH5*/
+	rtn
+
+
+/******************************************/
+/***********  Receive Packet  *************/
+/******************************************/
+
+
+
+slave_receive_master_slot:
+	fetch 1,mem_state
+	bbit0 state_insniff,slave_receive_notsniff
+	fetch 2,mem_tsniff
+	branch slave_receive_notsniff,blank		/* role switch */
+	nbranch slave_receive_sniff,attempt
+slave_receive_notsniff:
+	call rf_setup_time_master_slot
+slave_receive_access:
+	add clke_bt,1,bt_clk
+slave_receive_sniff:
+	enable swfine
+	fetch 2,mem_rx_window
+	rshift pdata,pdata
+	arg param_pll_setup,temp
+	iadd temp,pdata
+	call ahead_window
+	call fetch_extm_bt_adr
+	force 0x03,freq_mode          /* connection hop */
+	call rx_radio_freq
+	call init_rx_packet_flags
+	call prep_crypt
+	bpatch patch0a_0,mem_patch0a
+	fetch 2,mem_rx_window
+	rshift pdata,pdata
+	call ahead_window
+	call start_receiver
+	enable decode_fec0
+	fetch 2,mem_rx_window
+	arg param_clke_cal,temp
+	iadd temp,stop_watch
+	correlate null,timeout
+	copy clke,temp
+	storet 6,mem_sync_clke
+	disable decode_fec0
+	nrtn sync
+	arg param_clke_cal,clke_rt
+	copy bt_clk,clke_bt
+	branch lpm_adjust_clk,wake
+	rtn
+	
+
+slave_conn_recv_packet:
+	bpatch patch0a_1,mem_patch0a
+	call slave_receive_master_slot
+	nbranch shutdown_radio,sync
+	call save_rssi
+	bmark0 mark_testmode,receive_packet
+	fetch 2,mem_tst_pktcnt_sync
+	increase 1,pdata
+	store 2,mem_tst_pktcnt_sync
+receive_packet:
+	rshift bt_clk,temp
+	or temp,0x40,white_init
+receive_packet_whitened:
+	bpatch patch0a_2,mem_patch0a
+	enable enable_white
+	enable enable_hec
+	enable decode_fec1
+	parse demod,bucket,3  /* get am_addr */
+	rshift8 pwindow,pdata
+	store 1,mem_temp_am_addr
+	parse demod,bucket,4  /* get type */
+	inject bucket,7       /* align up to pwindow */
+	copy pwindow,pdata
+	store 1,mem_rx_type
+	parse demod,bucket,3  /* get arq */
+	rshift8 pwindow,pdata
+	store 1,mem_temp_arq
+	fetch 1,mem_rx_type
+	sub pdata,3,null
+	branch receive_packet_noedr,positive
+	beq 7,receive_packet_noedr		/* esco packet */
+	fetch 1,mem_state_map
+	isolate1 smap_edr,pdata
+	setflag true,PSK,radio_ctrl
+receive_packet_noedr:
+	bpatch patch0a_3,mem_patch0a
+	parse demod,bucket,8   /* cycle thru hec */
+	disable decode_fec1
+	disable enable_hec   /* at this moment, 1 seqn + 8 hec is in shift */
+	branch error_header,crc_failed  /* if hec error, nothing is valid */
+	bmark0 mark_testmode,receive_packet_amchk
+	fetch 2,mem_tst_pktcnt_hec
+	increase 1,pdata
+	store 2,mem_tst_pktcnt_hec
+receive_packet_amchk:	
+	bpatch patch0a_4,mem_patch0a
+	fetch 1,mem_temp_am_addr
+	compare 0,pdata,0x07           /* check for broadcast */
+	setflag true,mark_am_addr_broadcast,mark   /* received a broadcast message, can fire ar_addr if during unpark_req */
+	branch am_addr_ok,true
+	icompare 0x07,am_addr
+	branch am_addr_match,true
+	bmark0 mark_esco,end_of_packet
+	fetcht 1,mem_saved_amaddr
+	icompare 0x7,temp
+	nbranch end_of_packet,true
+	fetch 1,mem_arq    /* mem_arq + am_addr */
+	set0 arqnx,pdata
+	set1 flowx,pdata
+	store 1,mem_arq
+am_addr_match:
+	enable match
+am_addr_ok:
+	bpatch patch0a_5,mem_patch0a
+	fetch 1,mem_rx_type
+	icopy type
+	bmark1 mark_am_addr_broadcast,arqn_bypass        /* arqn doesn't make sense */
+	fetcht 1,mem_temp_arq
+	fetch 1,mem_arq
+	set0 flow,pdata
+	isolate1 flow,temp
+	setflag true,flow,pdata
+	isolate1 arqn,temp
+	setflag true,arqn,pdata
+	store 1,mem_arq
+	isolate0 arqn,temp
+	branch arqn_bypass,true
+	call clear_got_tx
+arqn_bypass:
+	bpatch patch0a_6,mem_patch0a
+	arg 0,temp
+	call reserve_slot
+	and type,0xf,pdata
+	beq type_poll,process_poll
+	beq type_null,end_of_packet	/* null */
+	beq type_fhs,process_fhs
+	fetcht 1,mem_temp_arq
+	fetch 1,mem_arq
+	icompare 0x04,temp    /* bit 2 is seqn */
+	nbranch rx_type_dispatch,true   /* different then it's new */
+	bmark0 mark_am_addr_broadcast,failed_seqn         /* seqn failed, and not broadcast */
+	bbit0 bcast1,rx_type_dispatch           /* first broadcast never fail seqn */
+failed_seqn:
+	set1 mark_old_packet,mark
+rx_type_dispatch:
+	bpatch patch0a_7,mem_patch0a
+	deposit type
+	beq type_dm1, process_dm1
+	beq type_dh1, process_dh1
+	beq type_hv3, process_hev
+	beq type_3dh1, process_3dh1
+	arg 4,temp
+	call reserve_slot
+	beq type_dm3, process_dm3
+	beq type_dh3, process_dh3
+	arg 8,temp
+	call reserve_slot
+	beq type_dm5, process_dm5
+	beq type_dh5, process_dh5
+	rtn
+
+
+process_hev:
+	bpatch patch0b_0,mem_patch0b
+	enable decode_fec0
+	enable enable_crc
+	enable encrypt
+	arg mem_sco_ibuf,contw
+	force 30,loopcnt
+process_hev_loop:	
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	loop process_hev_loop
+	bmark0 mark_esco,end_of_packet
+	parse demod,bucket,16  /* cycle through the crc */
+	nsetflag crc_failed,mark_esco_rxok,mark
+	branch error_payload,crc_failed
+	branch ack_payload
+
+
+process_poll:
+	branch end_of_packet
+
+process_dm3:
+process_dm5:
+	set1 mark_longpacket,mark
+process_dm1:
+	enable decode_fec2
+	branch process_dmh
+	
+process_dh3:
+process_dh5:
+	set1 mark_longpacket,mark
+process_3dh1:
+	set1 PSK3M,radio_ctrl
+process_dh1:
+	enable decode_fec0
+process_dmh:
+	bpatch patch0b_1,mem_patch0b
+	bmark1 mark_rxbuf_inuse,end_of_packet			/* buffer in use, nack */
+	isolate0 PSK,radio_ctrl
+	branch process_dmh_noedr,true
+	disable enable_white
+	enable decode_fec0
+	disable decode_fec2
+	add clkn_bt,2,timeup
+	correlate clkn_bt,meet
+	nbranch error_payload,sync
+	set1 mark_longpacket,mark
+	enable enable_white
+process_dmh_noedr:
+	bpatch patch0b_2,mem_patch0b
+	enable encrypt
+	enable enable_crc
+	parse demod,bucket,3  /* parse in lch+l2cap flow */
+	rshift8 pwindow,pdata
+	store 1,mem_lch_code		/* for loopback */
+	parse demod,bucket,5  /* parse in 5 bit packetlength */
+	bmark1 mark_longpacket,process_dmh_long
+	rshift3 pwindow,loopcnt
+	rshift3 loopcnt,loopcnt
+	branch process_dmh_common
+process_dmh_long:
+	parse demod,bucket,5		/* multi slot packet length of dh3 dh5 dm3 dm5 */
+	rshift pwindow,loopcnt
+	parse demod,bucket,3  /* undefined+bit 9 of length */
+process_dmh_common:	
+	bpatch patch0b_3,mem_patch0b
+	deposit loopcnt
+	store 2,mem_len
+	branch process_dmh_data_end,blank
+	isub mask3ff,null
+	branch error_payload,positive	/* packet too large, discard */
+	bpatch patch0b_4,mem_patch0b
+	set0 mark_fhs_eir,mark
+	fetch 1,mem_lch_code
+	and_into 0x03,pdata
+	arg mem_rxbuf,contw //lmp_data or test packet
+	beq LLID_LMP,process_lmp
+	bmark1 mark_testmode,process_dmh_data
+	//non-HCI mode
+	fetch 1,mem_lch_code
+	and_into 0x03,pdata
+	beq LLID_L2CAP_START,process_dmh_data_l2cap_start_pkt
+	beq LLID_L2CAP_CONT,process_dmh_data_l2cap_continue_pkt
+	branch error_payload
+
+process_lmp:
+	fetch 2,mem_len
+	sub pdata,0x70,null		//lmp buffer size
+	nbranch error_payload,positive
+	bmark1 mark_old_packet,ack_payload
+	branch process_dmh_data
+
+	
+process_dmh_data_l2cap_start_pkt:
+	bpatch patch0b_5,mem_patch0b
+	bmark1 mark_old_packet,ack_payload
+	fetch 2,mem_len
+	arg 0x2e0,temp //l2cap buffer size
+	isub temp,null
+	branch error_payload,positive
+	fetch 1,mem_l2cap_rxbuff_inuse
+	bbit0 L2CAP_INUSE_BUFF1,process_dmh_data_into_buff1
+	bbit0 L2CAP_INUSE_BUFF2,process_dmh_data_into_buff2
+	branch end_of_packet
+process_dmh_data_into_buff1:
+	jam 1,mem_l2cap_rxbuff_new //new data in buff 1
+	fetch 2,mem_l2cap_rxbuff1_len
+	bne 0,end_of_packet			//baseband head error
+	arg mem_l2cap_rxbuff1,contw
+	branch process_dmh_data
+process_dmh_data_into_buff2:
+	jam 2,mem_l2cap_rxbuff_new //new data in buff 2
+	fetch 2,mem_l2cap_rxbuff2_len
+	bne 0,end_of_packet
+	arg mem_l2cap_rxbuff2,contw
+	branch process_dmh_data
+	
+process_dmh_data_l2cap_continue_pkt:
+	bpatch patch0b_6,mem_patch0b
+	bmark1 mark_old_packet,ack_payload
+	fetch 2,mem_len
+	arg 0x2e0,temp //l2cap buffer size
+	isub temp,null
+	branch error_payload,positive
+	fetch 1,mem_l2cap_rxbuff_new
+	beq 1,process_dmh_data_l2cap_continue_pkt1
+	beq 2,process_dmh_data_l2cap_continue_pkt2
+	branch end_of_packet
+process_dmh_data_l2cap_continue_pkt1:
+	arg mem_l2cap_rxbuff1,contw
+	fetch 2,mem_l2cap_rxbuff1_len
+	iadd contw,contw
+	branch process_dmh_data
+process_dmh_data_l2cap_continue_pkt2:
+	arg mem_l2cap_rxbuff2,contw
+	fetch 2,mem_l2cap_rxbuff2_len
+	iadd contw,contw
+process_dmh_data:	
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	loop process_dmh_data
+process_dmh_data_end:	
+	bpatch patch0b_7,mem_patch0b
+	parse demod,bucket,16  /* cycle through the crc */
+	branch error_payload_crc,crc_failed
+	fetch 1,mem_l2cap_flow_ctrl_flag
+	beq L2CAP_FLOW_CTRL_ENABLE,end_of_packet
+	bmark1 mark_testmode,process_dmh_cont
+	bmark1 mark_old_packet,redundant_payload
+	fetch 1,mem_lch_code
+	compare 3,pdata,3
+	branch process_dmh_cont,true
+	fetch 2,mem_len
+	branch process_dmh_cont,blank
+	bpatch patch0c_0,mem_patch0c
+	fetch 1,mem_l2cap_rxbuff_new
+	beq 1,process_l2cap_pass_crc_buff1
+	beq 2,process_l2cap_pass_crc_buff2
+	branch assert
+process_l2cap_pass_crc_buff1:
+	fetch 2,mem_l2cap_rxbuff1_len
+	fetcht 2,mem_len
+	iadd temp,pdata
+	store 2,mem_l2cap_rxbuff1_len
+	beq 0,assert
+	fetcht 2,mem_l2cap_rxbuff1// l2cap payload length
+	increase 4,temp
+	isub temp,null
+	call l2cap_buff1_inuse,zero //l2cap pkts not ended
+	branch process_dmh_cont
+process_l2cap_pass_crc_buff2:
+	fetch 2,mem_l2cap_rxbuff2_len
+	fetcht 2,mem_len
+	iadd temp,pdata
+	store 2,mem_l2cap_rxbuff2_len
+	beq 0,assert
+	fetcht 2,mem_l2cap_rxbuff2// l2cap payload length 
+	add temp,4,temp
+	isub temp,null
+	call l2cap_buff2_inuse,zero //l2cap pkts not ended
+	branch process_dmh_cont
+process_dmh_cont:
+	bpatch patch0c_1,mem_patch0c
+	fetcht 1,mem_state_map
+	fetch 1,mem_lch_code
+	compare 3,pdata,0x03
+	setflag true,smap_rxlmp,temp
+	nsetflag true,smap_rxl2cap,temp
+	storet 1,mem_state_map
+	nbranch process_dmh_cont_rxbuf_not_use,true
+	set1 mark_rxbuf_inuse,mark
+process_dmh_cont_rxbuf_not_use:
+	bmark0 mark_testmode,ack_payload
+	isolate1 smap_rxlmp,temp
+	branch ack_payload,true
+	fetch 2,mem_tst_pktcnt_crc
+	increase 1,pdata
+	store 2,mem_tst_pktcnt_crc
+	set1 mark_loopback,mark
+	set0 smap_rxl2cap,temp
+	set0 mark_rxbuf_inuse,mark
+	storet 1,mem_state_map
+ack_payload:
+	bpatch patch0c_2,mem_patch0c
+	fetcht 1,mem_temp_arq
+	fetch 1,mem_arq
+	set1 arqnx,pdata
+	isolate1 seqn,temp            /* if accept, seqn always copies from the header */
+	setflag true,seqn,pdata
+	isolate1 mark_am_addr_broadcast,mark
+	setflag true,bcast1,pdata
+	store 1,mem_arq
+	fetch 2,mem_len
+	nbranch end_of_packet,blank
+	fetch 1,mem_state_map
+	set0 smap_rxl2cap,pdata//better to do this in l2cap_flow_ctrl_stop
+	store 1,mem_state_map
+	fetch 1,mem_lch_code
+	compare 0x01,pdata,0x07
+	//call l2cap_flow_ctrl_stop,true
+	branch end_of_packet
+	
+error_header:
+	bpatch patch0c_3,mem_patch0c
+	disable match
+	fetch 2,mem_rx_hec_err
+	increase 1,pdata
+	store 2,mem_rx_hec_err
+	branch end_of_packet
+error_payload_crc:
+	fetch 2,mem_rx_crc_err
+	increase 1,pdata
+	store 2,mem_rx_crc_err
+	call discard_pkt
+	bmark0 mark_testmode,error_payload
+	set1 mark_loopback,mark
+error_payload:
+	branch end_of_packet
+	
+discard_pkt:
+	bpatch patch0c_4,mem_patch0c
+	fetch 1,mem_lch_code
+	compare 3,pdata,0x03
+	nbranch discard_pkt_l2cap,true
+discard_pkt_lmp:	
+	fetcht 1,mem_state_map
+	set0 smap_rxlmp,temp
+	storet 1,mem_state_map
+	rtn
+discard_pkt_l2cap:
+//	isolate1 mark_testmode,mark
+//	setflag true,mark_loopback,mark
+	fetcht 1,mem_state_map
+	set0 smap_rxl2cap,temp
+	storet 1,mem_state_map
+	branch  h4_send_acl_trigger_clear
+
+redundant_payload:
+	fetch 1,mem_arq
+	set1 arqnx,pdata
+	store 1,mem_arq
+end_of_packet:
+	bpatch patch0c_5,mem_patch0c
+	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
+	
+process_fhs:
+	bpatch patch0c_6,mem_patch0c
+	enable enable_crc
+	enable decode_fec2
+	parse demod,bucket,72
+	isolate1 58,pdata
+	setflag true,mark_fhs_eir,mark
+	copy bt_adr,temp             /* save current address to aside */
+	ialigned bt_adr            /* send it to access gen */
+	ialigned fhs0			/* get fhs_misc */
+	pulse recalc                /* calc the lap just received from the other guy */
+	setsect 2,0xfffff             /* preset ms of shift reg as big mask */
+	setsect 3,0x0ffff             /* preset ms of shift reg as big mask */
+	nop 32                       /* 30 cycles after recalc */
+	iverify fhs_parity             /* check fhs_parity against ls 34 bits at shift reg, with msb 36 bits as mask */
+	deposit lap
+	store 3,extm_lap
+	deposit uap
+	store 1,extm_uap
+	copy temp,bt_adr             /* put the address back */
+	branch fhs_parity_ok,true     /* fhs parity failed */
+	branch error_payload
+fhs_parity_ok:
+	bpatch patch0c_7,mem_patch0c
+	parse demod,bucket,72
+	ialigned fhs1                   /* give host the information on class and fhs_misc */
+	ialigned am_addr                /* store the am_addr the master assigned us */
+	ialigned nap
+	ialigned regb                   /* store external clock in regb according to clock format */
+	force 0,pdata
+	parse demod,bucket,16  /* cycle through the crc */
+	branch error_payload,crc_failed
+	setarg 0x0ffffffc
+	iand regb,pdata
+	store 4,mem_clke_bt
+	deposit fhs_class
+	store 3,extm_class
+	deposit fhs_misc
+	store 1,extm_fhs_misc
+	deposit am_addr
+	store 1,extm_newconn_am_addr
+	deposit nap
+	store 2,extm_nap
+	deposit bt_clk
+	inject rxf,32
+	compare type_fhs,type,0x0f         /* see if this was fhs packet */
+	setflag true,mark_fhs_already_good,mark
+	branch end_of_packet
+
+clear_got_tx:
+	bpatch patch0d_0,mem_patch0d
+	fetch 1,mem_arq
+	rtnbit0 wack
+	set0 wack,pdata
+	setflip seqnx,pdata
+	store 1,mem_arq
+	fetch 1,mem_last_type
+	beq type_lmp,clear_got_txlmp
+	rtneq type_hv3
+	fetch 1,mem_op
+	rtnbit0 op_txl2cap,pdata
+	set0 op_txl2cap,pdata
+	set1 op_pkt_comp,pdata
+	store 1,mem_op
+	set0 mark_tx_l2cap,mark
+	fetch 2,mem_l2cap_tx_multi_offset
+	nrtn blank
+	fetch 1,mem_op
+	set0 op_pkt_comp,pdata
+	store 1,mem_op
+	branch l2cap_malloc_free
+
+clear_got_txlmp:
+	bpatch patch0d_1,mem_patch0d
+	fetch 1,mem_lmo_header_opcode
+	rshift pdata,pdata
+	beq LMP_START_ENCRYPTION_REQ,start_encryption
+	beq LMP_STOP_ENCRYPTION_REQ,stop_encryption
+	beq LMP_UNSNIFF_REQ, sniff_exit
+	beq LMP_ESCAPE,clear_lmp_escape
+	rtnne LMP_ACCEPTED
+	fetch 1,mem_lmo_payload
+	beq LMP_SCO_LINK_REQ,sco_link_req_by_slave
+	beq LMP_START_ENCRYPTION_REQ,clear_send_setup_complete
+	rtn
+
+clear_lmp_escape:
+	fetch 1,mem_lmo_payload
+	set1 7,pdata
+	rtn
+clear_send_setup_complete:
+	rtn master
+	fetch 1,mem_state
+	rtnbit1 state_conn_comp
+	jam LMP_SETUP_COMPLETE,mem_lmo_opcode2
+	rtn
+	
+// nokia BH-105  CALLING when reconnection
+sco_link_req_by_slave:
+	rtn master
+	fetch 1,mem_mode
+	isolate1 send_sco_when_slave,pdata
+	branch clean_mem_mode,true
+	//jam LMP_REMOVE_SCO_LINK_REQ,mem_lmo_opcode2
+	rtn
+clean_mem_mode:
+	set0 send_sco_when_slave,pdata
+	store 1,mem_mode
+	rtn
+	
+start_encryption:
+	bpatch patch0d_2,mem_patch0d
+	fetch 1,mem_state_map
+	set1 smap_encryption,pdata
+	store 1,mem_state_map
+	jam 1,core_encrypt
+	fetch 1,mem_state
+	isolate1 state_conn_comp,pdata
+	rtn
+
+stop_encryption:
+	bpatch patch0d_3,mem_patch0d
+	fetch 1,mem_state_map
+	set0 smap_encryption,pdata
+	store 1,mem_state_map
+	jam 0,core_encrypt
+	rtn
+
+
+sniff_init:
+	bpatch patch0d_4,mem_patch0d
+	copy clkn_bt,pdata
+	store 4,mem_lpm_delay_after_sniff
+	add clkn_bt,3,rega
+	branch sniff_init_master,master
+	add clke_bt,3,rega
+sniff_init_master:
+	fetcht 2,mem_tsniff
+	deposit rega
+	set0 27,pdata
+	idiv temp
+	fetch 2,mem_dsniff
+	call wait_div_end
+	remainder regc
+	isub regc,pdata
+	branch sniff_init_nowrap,positive
+	iadd temp,pdata
+sniff_init_nowrap:
+	iadd rega,pdata
+	store 4,mem_sniff_anchor
+	jam SWITCH_FLAG_INIT,mem_switch_flag
+	fetch 1,mem_state
+	set1 state_insniff,pdata
+	store 1,mem_state
+	fetch 1,mem_sniff_attempt
+	store 1,mem_current_sniff_attempt
+	setarg 0
+	store 3,mem_sniff_rcv
+	store 3,mem_sniff_lost
+	store 1,mem_sniff_unint_lost
+	jam BT_EVT_ENTER_SNIFF,mem_fifo_temp
+	call ui_ipc_send_event
+	fetch 2,mem_rx_window_sniff
+	store 2,mem_rx_window
+	nrtn master
+	add am_addr,-1,queue
+	rtn
+
+sniff_exit:
+	bpatch patch0d_5,mem_patch0d
+	fetch 1,mem_state
+	rtnbit0 state_insniff
+	set0 state_insniff,pdata
+	store 1,mem_state
+	fetch 2,mem_rx_window_init
+	store 2,mem_rx_window
+	disable wake
+	jam BT_EVT_EXIT_SNIFF,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+check_attempt:
+	bpatch patch0d_6,mem_patch0d
+	enable attempt
+	fetch 1,mem_state
+	bbit1 state_insniff,check_attempt_sniff
+	rtnmark1 mark_testmode						/* pdata won't be blank now, try attempt */
+	fetch 1,mem_arq
+	rtnbit1 wack
+	fetch 1,mem_lmp_to_send
+	nrtn blank
+	fetch 1,mem_op
+	rtnbit1 op_txl2cap
+check_attempt_nomore:
+	force 0,pdata
+	rtn
+
+check_attempt_sniff:
+	bbit0 state_insco,check_attempt_not_sco
+	fetch 1,mem_current_sniff_attempt
+	beq 2,check_attempt_sniff_restore_sco
+	fetch 1,mem_arq
+	bbit1 wack,check_attempt_notimeout
+	bmark0 mark_esco_rxok,check_attempt_notimeout
+check_attempt_sniff_restore_sco:
+	nbranch check_attempt_notimeout,master
+	fetch 1,mem_lmp_to_send
+	nbranch check_attempt_notimeout,blank
+check_attempt_sco_master:
+	fetch 1,mem_sco_poll
+	increase -1,pdata
+	store 1,mem_sco_poll
+	nbranch check_attempt_nomore,blank
+	jam param_sco_poll,mem_sco_poll
+	branch check_attempt_notimeout
+
+
+
+
+
+	
+check_attempt_not_sco:
+	fetch 1,mem_current_sniff_attempt
+	bne 1,check_attempt_notimeout
+	fetch 1,mem_current_sniff_timeout
+	branch check_attempt_notimeout,blank
+	increase -1,pdata
+	store 1,mem_current_sniff_timeout
+	fetch 1,mem_arq
+	rtnbit1 wack						// waiting for next ack
+	nrtn match						// waiting for next poll
+check_attempt_notimeout:
+	fetch 1,mem_current_sniff_attempt
+	increase -1,pdata
+	store 1,mem_current_sniff_attempt
+	rtn
+
+
+
+
+
+
+
+
+
+	/* enable user if sniff window vialation, queue is extra overhead */
+sniff_check_window:
+	bpatch patch0d_7,mem_patch0d
+	disable swfine
+	copy temp,stop_watch
+	call context_search_sniff_window
+	disable user
+	nrtn zero
+	force 0,stop_watch
+	enable user
+	rtn
+
+	//return true if it is esco context
+check_esco_amaddr:
+	fetch 1,mem_esco_addr
+	icompare 0xff,am_addr
+	rtn
+	
+
+parse_l2cap:	
+	bpatch patch0e_0,mem_patch0e
+	set0 mark_rxbuf_inuse,mark 
+parse_l2cap_cont:
+	jam L2CAP_RX_CLEAR,mem_l2cap_rx_done
+	fetch 1,mem_l2cap_rxbuff_inuse
+	rtn blank
+	isolate1 L2CAP_INUSE_BUFF1,pdata
+	arg mem_l2cap_rxbuff1,contr
+	call process_rx_l2cap_pkt,true
+	bpatch patch0e_1,mem_patch0e
+	fetch 1,mem_l2cap_rx_done
+	beq L2CAP_RX_DONE,parse_l2cap_release_buff1
+	
+	jam L2CAP_RX_CLEAR,mem_l2cap_rx_done
+	fetch 1,mem_l2cap_rxbuff_inuse
+	rtnbit0 L2CAP_INUSE_BUFF2
+	arg mem_l2cap_rxbuff2,contr	
+	call process_rx_l2cap_pkt
+	fetch 1,mem_l2cap_rx_done
+	beq L2CAP_RX_DONE,parse_l2cap_release_buff2
+	rtn
+		
+parse_l2cap_release_buff1:
+	fetch 1,mem_l2cap_rxbuff_inuse
+	set0 L2CAP_INUSE_BUFF1,pdata
+	store 1,mem_l2cap_rxbuff_inuse
+	setarg 0
+	store 2,mem_l2cap_rxbuff1_len
+	rtn
+parse_l2cap_release_buff2:
+	fetch 1,mem_l2cap_rxbuff_inuse
+	set0 L2CAP_INUSE_BUFF2,pdata
+	store 1,mem_l2cap_rxbuff_inuse
+	setarg 0
+	store 2,mem_l2cap_rxbuff2_len
+	rtn
+
+l2cap_buff1_inuse:
+	fetch 1,mem_l2cap_rxbuff_inuse
+	set1 L2CAP_INUSE_BUFF1,pdata
+	store 1,mem_l2cap_rxbuff_inuse
+	rtn
+
+l2cap_buff2_inuse:
+	fetch 1,mem_l2cap_rxbuff_inuse
+	set1 L2CAP_INUSE_BUFF2,pdata
+	store 1,mem_l2cap_rxbuff_inuse
+	rtn
+
+/******************************************/
+/**********  Transmit Packet  *************/
+/******************************************/
+
+slave_send_access:
+	bpatch patch0e_2,mem_patch0e
+	add clke_bt,1,bt_clk          /* slave start to use native clock */
+	call fetch_extm_bt_adr
+	force 0x03,freq_mode          /* connection frequency */
+	call tx_radio_freq
+	call start_transmitter
+	call start_tx_external
+	branch send_access_word
+	
+
+slave_conn_send_packet:
+	bpatch patch0e_3,mem_patch0e
+	call rf_setup_time_slave_slot
+	deposit clke_bt
+	fetcht 4,mem_next_btclk
+	isub temp,pdata
+	rtnne 1					/* missed slave slot */
+	compare type_null,type,0x1f
+	nbranch slave_conn_send_access,true
+	fetch 1,mem_rx_type
+	rtn blank					/* null packet, do nothing */
+slave_conn_send_access:
+	call slave_send_access
+transmit_packet:
+	compare type_id,type,0x1f        /* is this id only ? */
+	branch end_of_packet,true
+	rshift bt_clk,temp
+	or temp,0x40,white_init
+transmit_packet_whitened:
+	bpatch patch0e_4,mem_patch0e
+	enable enable_white
+	enable enable_hec
+	enable encode_fec1
+	set0 mark_longpacket,mark
+	deposit am_addr
+	inject mod,3             /* am_addr, temp is disabled */
+	deposit type
+	inject mod,4
+	fetch 1,mem_arq   /* aka mem_arq */
+	inject bucket,4  /* align up to flowx, arqnx, seqnx */
+	inject mod,3
+	enable enable_parity
+	inject mod,8   /* transmit parity */
+	disable encode_fec1
+	disable enable_parity
+	disable enable_hec
+	set0 PSK3M,radio_ctrl
+	arg 0,temp
+	call reserve_slot
+	bpatch patch0e_5,mem_patch0e
+	and type,0x1f,pdata
+	beq type_lmp, transmit_lmp
+	beq type_null, end_of_packet
+	beq type_poll, end_of_packet
+	beq type_fhs, transmit_fhs  /* master mode fhs need got_tx and ack */
+	beq type_dm1, transmit_dm1
+	beq type_dh1, transmit_dh1
+	beq type_hv3, transmit_hev
+	beq type_3dh1, transmit_3dh1
+	arg 4,temp
+	call reserve_slot
+	beq type_dm3, transmit_dm3
+	beq type_dh3, transmit_dh3
+	arg 8,temp
+	call reserve_slot
+	beq type_dh5, transmit_dh5
+	branch transmit_dm5	/* must be 14, dm5 */
+
+
+transmit_hev:
+	bpatch patch0e_6,mem_patch0e
+	enable encode_fec0
+	enable enable_crc
+	enable encrypt
+	force 30,loopcnt
+	arg mem_sco_obuf,contr
+transmit_ev_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop transmit_ev_loop
+	bmark1 mark_esco,transmit_end
+	branch end_of_packet
+	
+transmit_fhs:
+	bpatch patch0e_7,mem_patch0e
+	fetch 1,mem_fhs_am_addr            /* this is the am_addr to assign to slave */
+	icopy am_addr
+	fetch 1,mem_fhs_misc
+	icopy fhs_misc    /* [7:6]SR [5:4]SP [3:1]PS [0]undef  */
+	fetch 3,mem_class   /* store away class */
+	icopy fhs_class
+	fetch 2,mem_nap
+	icopy nap
+	enable enable_crc
+	enable encode_fec2
+	copy bt_adr,rega
+	call fetch_self_bt_adr
+	pulse recalc
+	nop 32                    /* 30 cycles after recalc for sync word generation */
+	copy bt_clk,timeup
+	fetch 4,mem_clkn_bt
+	icopy bt_clk
+	preload fhs0
+	set1 58,pdata		/* eir */
+	inject mod,72
+	preload fhs1
+	inject mod,72
+	copy timeup,bt_clk
+	copy rega,bt_adr
+	enable enable_parity
+	inject mod,16   /* generate CRC */
+	disable enable_parity
+	branch end_of_packet
+
+transmit_lmp:    /* expect the payload ready as in bb spec */
+	bpatch patch0f_0,mem_patch0f
+	enable encrypt
+	enable enable_crc
+	enable encode_fec2
+	fetch 1,mem_lmo_header_length   /* this is the payload header */
+	and pdata,0x1f8,temp       /* temp is number of bits, check payload header format */
+	arg mem_lmo_header_length,contr
+	increase 8,temp   /* temp is in bits */
+transmit_lmp_loop:
+	add temp,-72,regc   /* regc is remainder */
+	nbranch transmit_lmp_finish,positive
+	ifetch 9,contr
+	inject mod,72
+	copy regc,temp
+	branch transmit_lmp_loop
+transmit_lmp_finish:
+	ifetch 9,contr
+	iinject mod,temp
+	branch transmit_end
+
+transmit_dm1:
+	enable encode_fec2
+	branch transmit_dmh
+transmit_dm3:
+transmit_dm5:
+	enable encode_fec2
+	set1 mark_longpacket,mark
+	branch transmit_dmh
+
+transmit_3dh1:
+	set1 PSK3M,radio_ctrl
+transmit_dh1:
+	enable encode_fec0
+	branch transmit_dmh
+	
+transmit_dh3:
+transmit_dh5:
+	set1 PSK3M,radio_ctrl
+	enable encode_fec0
+	set1 mark_longpacket,mark
+
+transmit_dmh:
+	bpatch patch0f_1,mem_patch0f
+	fetch 1,mem_state_map
+	bbit0 smap_edr,transmit_noedr
+	sub type,3,null
+	branch transmit_noedr,positive
+	disable encrypt
+	disable encode_fec2
+	enable encode_fec0
+	disable enable_white
+	set1 PSK,radio_ctrl
+	isolate1 PSK3M,radio_ctrl
+	branch transmit_edr3m,true
+	setarg 0xabeee
+	inject mod,20
+	branch transmit_edr_sync_end
+transmit_edr3m:
+	setarg 0x5faeba
+	inject mod,24
+	setarg 0x12
+	inject mod,6
+transmit_edr_sync_end:	
+	enable enable_white
+	set1 mark_longpacket,mark
+transmit_noedr:
+	enable encrypt
+	enable enable_crc
+	bmark1 mark_loopback,transmit_loopback
+	fetch 1,mem_tx_lch
+	inject mod,3
+	fetch 2,mem_tx_len
+	iforce loopcnt
+	bmark1 mark_longpacket,transmit_long
+	inject mod,5
+	branch transmit_stuff
+transmit_long:	
+	inject mod,13
+transmit_stuff:
+	deposit loopcnt
+	branch transmit_end,blank
+	fetch 2,mem_txptr
+	iforce contr
+transmit_stuff_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop transmit_stuff_loop
+//	branch transmit_end
+
+transmit_end:
+	enable enable_parity
+	inject mod,16
+	disable enable_parity
+	call set_wait_ack
+	fetch 1,mem_state_map
+	bbit0 smap_edr,end_of_packet
+	force 0,pdata
+	inject mod,6				/* edr trailer */
+	branch end_of_packet
+
+
+transmit_loopback:
+	bpatch patch0f_2,mem_patch0f
+	bmark1 mark_longpacket,transmit_loopback_long
+transmit_loopback_short:
+	fetch 1,mem_lch_code
+	inject mod,3						/* LLID and FLOW */
+	fetch 1,mem_len	/* take packet length */
+	iforce regc
+	inject mod,5
+	branch transmit_loopback_cont
+transmit_loopback_long:
+	fetch 1,mem_lch_code
+	inject mod,3						/* LLID and FLOW */
+	fetch 2,mem_len	/* take packet length */
+	iforce regc
+	inject mod,13
+transmit_loopback_cont:
+	arg mem_rxbuf,contr
+transmit_loopback_loop:	
+	copy regc,null
+	branch transmit_loopback_end,zero
+	ifetch 1,contr
+	inject mod,8
+	increase -1,regc
+	branch transmit_loopback_loop
+transmit_loopback_end:
+	fetch 2,mem_tst_pktcnt_dmh
+	increase 1,pdata
+	store 2,mem_tst_pktcnt_dmh
+	branch transmit_end
+	
+
+apply_switch_clke:
+	fetch 4,mem_clke_bt
+	add pdata,7,rega
+	fetch 2,mem_slot_offset
+	nbranch apply_switch_nozero,blank
+	increase -3,rega
+	branch apply_switch_wait_loop
+apply_switch_nozero:
+	mul32 pdata,12,pdata
+	hfetcht 2,core_halfslot
+	increase 1,temp
+apply_switch_loop:
+	isub temp,pdata
+	nbranch apply_switch_bt,positive
+	increase -1,rega
+	branch apply_switch_loop
+apply_switch_bt:
+	sub pdata,0,pdata
+apply_switch_wait_loop:
+	until null,oneslot
+	compare 0,clkn_bt,3
+	nbranch apply_switch_wait_loop,true
+	iforce clke_rt
+	copy rega,clke_bt
+	iforce clke_rt
+	rtn
+	
+
+calc_slot_offset:
+	bpatch patch0f_3,mem_patch0f
+	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:
+	arg 3750,temp
+	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 wait_div_end
+	quotient pdata
+	store 2,mem_slot_offset
+	rtn
+
+calc_clke_offset:
+	bpatch patch0f_4,mem_patch0f
+	deposit clke
+	copy clkn,temp
+	isub temp,null
+	nsetflag positive,44,pdata
+	isub temp,temp
+	setarg 3750
+	isolate0 15,temp
+	branch calc_clke_pos,true
+	setarg -61786
+	iadd temp,temp
+calc_clke_pos:
+	storet 6,mem_le_clk_offset
+	rtn le
+	storet 6,mem_clk_offset
+	rtn
+
+calc_clke:
+	disable clknt
+	fetch 6,mem_le_clk_offset
+	branch calc_clke2,le
+	fetch 6,mem_clk_offset
+calc_clke2:
+	iadd clkn,alarm
+	increase 10,alarm
+	setarg 3750
+	isub alarm,pdata
+	isolate0 15,pdata
+	branch calc_clke_pos_adj,true
+	setarg 0xf15a
+	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 ***********/
+/******************************************/
+
+
+calc_radio_freq:
+	bpatch patch0f_5,mem_patch0f
+	call set_sync_on
+	copy bt_clk,pdata
+	and_into 0x180,pdata
+	compare 3,freq_mode,0x07
+	nbranch freq_not_connection,true    /* don't do the hack if not in connection */
+	rshift3 pdata,pdata
+	iadd freq_index,pdata
+	branch do_hop_mod_now
+freq_not_connection:	
+	copy freq_index,pdata
+do_hop_mod_now:
+	div pdata,79
+	pulse recalc         /* now is good time to recalc id */
+	call wait_div_end
+	remainder rega
+	add rega,-40,temp
+	branch odd_half,positive
+	lshift rega,temp
+	branch freq_result
+odd_half:
+	lshift temp,temp
+	increase 1,temp
+freq_result:	
+	bpatch patch0f_6,mem_patch0f
+	fetch 1,mem_mode
+	bbit0 afh_change,afh_process_con
+afh_process_0:	
+	fetch 4, mem_afh_instant   
+	isub bt_clk, null
+	branch afh_process_con,positive
+	call afh_clear
+	fetch 1,mem_afh_new_mod
+	rtn blank
+	fetch 1,mem_mode
+	set1 afh_enable,pdata
+	store 1,mem_mode
+	fetch 5,mem_afh_map_new
+	store 5,mem_afh_map_lo
+	ifetch 5,contr
+	store 5,mem_afh_map_hi
+	call afh_process_freq_map
+afh_process_con:
+	fetch 1,mem_mode
+	rtnbit0 afh_enable
+	isolate1 1,bt_clk
+	branch afh_same_channel,true	/* at odd slot, use the same as last even */
+	rshift3 temp,rega
+	and temp,7,queue
+	setarg mem_afh_map_lo  
+	iadd rega, rega
+	ifetch 1, rega
+	qisolate0 pdata
+	branch afh_process_1,true		/* not in map, do afh */
+	deposit temp
+	branch afh_process_end
+afh_process_1:
+	fetch 1, mem_afh_used
+	iforce regb                     
+	deposit bt_clk
+	and_into 0x180, pdata
+	rshift3 pdata,pdata
+	iadd freq_index,pdata
+	idiv regb
+	setarg mem_afh_map     
+	call wait_div_end
+	remainder rega
+	iadd rega,contr
+	ifetch 1,contr
+afh_process_end:	
+	store 1,mem_afh_index
+	iforce temp  
+  	rtn
+
+afh_same_channel:
+	fetch 1, mem_afh_index           /* last afh index  */
+	iforce temp
+	rtn
+
+afh_clear:
+	fetch 1,mem_mode
+	set0 afh_enable,pdata
+	set0 afh_change,pdata
+	store 1,mem_mode
+	rtn
+/*
+fixed_frequency:
+	fetcht 1,mem_fixed_freq
+	rtn
+*/
+afh_process_freq_map:
+	bpatch patch0f_7,mem_patch0f
+	arg mem_afh_map,contw
+	force 10,loopcnt
+	call memset0
+	arg mem_afh_map,contw
+	force 0,regC
+	force 2,queue
+process_freq_3:	
+	fetch 5,mem_afh_map_lo
+	iforce temp
+	compare 2,queue,0xff
+	branch process_freq_1,true
+	rshift temp,temp
+process_freq_1:	
+	isolate0 0,temp
+	branch process_freq_0,true
+	deposit regC
+	istore 1,contw
+process_freq_0:
+	rshift2 temp,temp
+	increase 2,regC
+	compare 40,regC,0xfe
+	nbranch process_freq_2,true
+	fetch 5,mem_afh_map_hi
+	iforce temp
+	compare 2,queue,0xff
+	branch process_freq_2,true
+	rshift temp,temp
+process_freq_2:	
+	sub regC,78,null
+	branch process_freq_1,positive
+	force 1,regC
+	increase -1,queue
+	nbranch process_freq_3,zero
+	arg mem_afh_map,rega
+	deposit contw
+	isub rega,pdata
+	store 1,mem_afh_used
+	rtn
+
+rx_radio_freq:
+	bpatch patch10_0,mem_patch10
+	call calc_radio_freq
+	fetch 1,mem_debug_config
+	bbit0 debug_rx_fixed_freq,rx_radio_freq_now
+	fetcht 1,mem_rx_fixed_freq
+rx_radio_freq_now:
+	branch set_freq_rx
+	
+
+tx_radio_freq:
+	bpatch patch10_1,mem_patch10
+	call calc_radio_freq
+	fetch 1,mem_debug_config
+	bbit0 debug_tx_fixed_freq,tx_radio_freq_now
+	fetcht 1,mem_tx_fixed_freq
+tx_radio_freq_now:
+	branch set_freq_tx
+	
+
+fetch_giac:
+	force 0,uap
+	fetch 3,mem_glap
+	iforce lap
+	rtn
+
+fetch_page_bt_adr:
+	bpatch patch10_2,mem_patch10
+	fetch 1,mem_hci_puap
+	icopy uap
+	fetch 3,mem_hci_plap
+	icopy lap
+	rtn
+
+fetch_self_bt_adr:
+	bpatch patch10_3,mem_patch10
+	fetch 2,mem_nap
+	icopy nap
+	fetch 1,mem_uap
+	icopy uap
+	fetch 3,mem_lap
+	icopy lap                 /* copy self_adr,bt_adr */      /* use own address */
+	rtn
+
+fetch_extm_bt_adr:
+	bpatch patch10_4,mem_patch10
+	fetch 2,mem_pnap
+	icopy nap
+	fetch 1,mem_puap
+	icopy uap
+	fetch 3,mem_plap
+	icopy lap         
+	rtn
+
+
+fetch_diac:
+	bmark1 mark_all_diac,fetch_diac_do
+	rtnmark0 mark_inquiry_state
+	rtnmark0 mark_periodical_diac
+fetch_diac_do:
+	and_into -256,lap
+	pulse recalc
+	nop 32
+	rtn
+
+
+shutdown_radio:
+	bpatch patch10_5,mem_patch10
+	branch shutdown_radio0,is_rx
+	jam 0xd4, rf_tx_pa_ib
+	nop 4
+	jam 0xd2, rf_tx_pa_ib
+	nop 4
+	jam 0xd1, rf_tx_pa_ib
+	nop 4	
+	fetch 1,mem_tx_power
+	beq TX_POWER_0DB,shutdown_radio_0db
+	beq TX_POWER_3DB,shutdown_radio_3db
+	beq TX_POWER_5DB,shutdown_radio_5db
+	beq TX_POWER_f3DB,shutdown_radio_f3db
+	beq TX_POWER_f5DB,shutdown_radio_f5db
+	beq TX_POWER_PAIR,shutdown_radio_pair
+shutdown_radio_5db:	
+shutdown_radio_0db:
+	jam 0xd0, rf_tx_pa_ib
+	jam 0xe0, rf_tx_pa_gc
+shutdown_radio0:
+	force 0,radio_ctrl
+	disable is_rx
+	disable is_tx
+	pulse packet_end
+	jam 0x0,rfen_mdm
+	jam 0x0,rfen_tx
+	jam 0x0,rfen_rx
+	jam 0,rfen_sn
+	jam 0x70,rfen_msc
+	jam 0x0,rfen_adc
+	rtn
+	
+shutdown_radio_pair:
+shutdown_radio_f5db:
+shutdown_radio_f3db:
+shutdown_radio_3db:
+	jam 0xd0,rf_tx_pa_ib
+	jam 0xc0,rf_tx_pa_gc
+	branch shutdown_radio0
+
+set_sync_on:
+	bpatch patch10_6,mem_patch10
+	jam 0x0,rfen_mdm					/* if called from tx or rx */
+	jam 0x0,rfen_tx
+	jam 0x18,rfen_rx
+	jam 0xa7,rfen_sn
+	jam 0x7f,rfen_msc
+	rtn
+
+set_freq_rx:
+	bpatch patch10_7,mem_patch10
+		/* IF is +2MHz */
+	storet 1,mem_last_freq
+	add temp,rx_freq_offset,rega			/* index to frequency */
+	jam 0x07,rf_balun_ctrim                                         /*Max added, for best sensitivity*/
+	branch rf_write_freq
+rf_rx_enable:
+	bpatch patch11_0,mem_patch11
+	jam 0xcf,rfen_tx
+	nop 10					/* wait adc clk48 ready */
+	jam 0xff,rfen_rx
+	jam 0xaf,rfen_sn
+	jam 0xff,rfen_msc
+	nop 10
+	jam 0xa0,rfen_mdm
+	rtn
+	
+set_freq_tx_offset:
+	fetch 1,mem_250k_freq_enable	//default: 0
+	branch set_freq_tx_2M_offset,blank
+set_freq_tx_0M_offset:
+	add temp,2,rega			//250k
+	rtn
+set_freq_tx_2M_offset:
+	add temp,0,rega			// bt 2M Medium Frequency
+	rtn
+
+set_freq_tx:
+	bpatch patch11_1,mem_patch11
+	storet 1,mem_last_freq
+	call set_freq_tx_offset
+	call rf_write_freq
+	setarg param_pll_setup
+	call sleep
+txon:	
+	jam 0x1,rfen_adc
+	jam 0x3c,rfen_rx
+	jam 0xe0,rfen_tx
+	jam 0x12,rf_balun_ctrim
+	nop 10
+	jam 0x01,rfen_mdm
+	jam 0x3d,rfen_mdm
+	nop 10
+	jam 0xb7,rfen_sn
+	nop 10
+	jam 0x7f, rfen_mdm
+txon_power_select:	
+	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_f3DB,set_tx_power_f3db	
+	beq TX_POWER_f5DB,set_tx_power_f5db
+	beq TX_POWER_PAIR,set_tx_power_pair
+set_tx_power_0db:	
+	jam 0xf0,rf_tx_pa_gc
+	call txon_common
+	jam 0xd8,rf_tx_pa_ib
+	rtn
+
+set_tx_power_3db:
+	jam 0xdf,rf_tx_pa_gc
+	call txon_common
+	jam 0xdf,rf_tx_pa_ib
+	rtn
+
+set_tx_power_5db:
+	jam 0xff,rf_tx_pa_gc
+	call txon_common
+	jam 0xdf,rf_tx_pa_ib
+	rtn
+set_tx_power_f3db:
+	jam 0xce,rf_tx_pa_gc
+	call txon_common
+	jam 0xd8,rf_tx_pa_ib
+	rtn
+
+set_tx_power_f5db:
+	jam 0xcb,rf_tx_pa_gc
+	call txon_common
+	jam 0xd8,rf_tx_pa_ib
+	rtn
+
+set_tx_power_pair:
+	jam 0xd0,rf_tx_pa_ib
+	jam 0xc0,rf_tx_pa_gc
+	jam 0x4c,0x8957
+	jam 0x6c,0x8958
+	jam 0x50,0x8959
+	rtn
+
+txon_common:
+	nop 4
+	jam 0xd1,rf_tx_pa_ib
+	nop 4
+	jam 0xd2,rf_tx_pa_ib
+	nop 4
+	jam 0xd4,rf_tx_pa_ib
+	rtn
+
+
+initialize_radio:
+	jam clksel_rc,core_clksel
+initialize_radio_wait:
+	fetch 2,mem_rf_init_ptr
+	bbit0 14,initialize_radio_wait
+	iforce contr
+	arg 0x8900,temp
+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 patch11_2,mem_patch11
+	call lpm_cal_xtal_startup
+	call switchto_dpllclk
+//	ncall check_dpll,wake
+	setarg param_dpll_start_delay
+	iadd clkn_bt,pdata
+	store 4,mem_dpll_clkn
+	set1 RESET,radio_ctrl
+	force 0,radio_ctrl
+	ncall do_rccal,wake
+	branch set_rccal
+
+	/* rega is frequency, 00=2400Mhz */
+rf_write_freq:
+	bpatch patch11_3,mem_patch11
+	setarg 2400
+	iadd rega,temp
+	fetch 1,mem_fcomp_mul
+	jam 0x04,rf_pll_rstn
+	imul32 temp,pdata
+	fetcht 1,mem_fcomp_div
+	idiv temp
+	call wait_div_end
+	quotient rega			/* rega is FLOOR(FVCO/fcomp) */
+	remainder pdata		
+	lshift16 pdata,pdata
+	lshift4 pdata,pdata		/* pdata is frac * 2^20 */
+	idiv temp
+	call wait_div_end
+	quotient pdata		/* pdata is frac *2^20/fcomp */
+	lshift8 pdata,pdata
+	lshift pdata,pdata
+	ior rega,pdata
+	hstore 4,rf_pll_intg
+	jam 0x44,rf_pll_rstn
+	jam 0xc4,rf_pll_rstn
+	rtn
+
+	
+do_rccal:
+	bpatch patch11_4,mem_patch11
+	jam 0x02,rfen_adc
+	setarg 250000
+	call sleep					/* wait clkpll&xtal stable */
+	jam 0x7f,rfen_rx
+	nop 130
+	jam 0x30,rf_rccal_ctrl
+	jam 0xd0,rfen_tx
+	jam 0x70,rf_rccal_ctrl
+	jam 0xf0,rf_rccal_ctrl
+	force 50,loopcnt
+do_rccal_loop:
+	hfetch 1,rf_rccal_result
+	bbit1 5,do_rccal_end
+	loop do_rccal_loop
+do_rccal_end:
+	store 1,mem_rf_rccal
+	jam 0,rfen_tx
+	jam 0,rfen_rx
+	jam 0x00,rfen_adc
+	rtn
+
+set_rccal:
+	bpatch patch11_5,mem_patch11
+	fetch 1,mem_rf_rccal
+	set1 5,pdata
+	hstore 1,rf_rccal_ctrl
+	hfetcht 1,rf_bpf_ctrim
+	and_into 7,temp
+	lshift3 pdata,pdata
+	ior temp,pdata
+	hstore 1,rf_bpf_ctrim
+	hfetch 1,rf_bpf_ib
+	set0 bpf_rccal,pdata
+	hstore 1,rf_bpf_ib
+	hfetch 1,rf_adc_rccal
+	set0 adc_rccal,pdata
+	hstore 1,rf_adc_rccal
+	rtn
+
+save_rssi:
+	bpatch patch11_6,mem_patch11
+	hfetch 2,rf_afc_d2a
+	rshift4 pdata,pdata
+	rshift3 pdata,pdata
+	sub pdata,0,pdata
+bcd:
+	and_into 0xff,pdata
+	div pdata,10
+	call wait_div_end
+	quotient pdata
+	lshift4 pdata,pdata
+	remainder temp
+	ior temp,pdata
+	store 1,mem_rssi			/* bcd value */
+	rtn
+
+	
+switchto_dpllclk:
+	jam clksel_rc,core_clksel
+	hfetch 1,rf_clkpll_frac+2
+	set0 4,pdata
+	set0 5,pdata
+	hstore 1,rf_clkpll_frac+2
+	jam 0x00,rfen_ck
+	jam 0x00,rfen_msc
+	jam 0x70,rfen_msc
+	jam 0xff,rfen_ck
+	hfetch 1,rf_clkpll_frac+2
+	set1 4,pdata
+	set1 5,pdata
+	hstore 1,rf_clkpll_frac+2
+	call init_lpm_ctrl
+	hfetch 1,rf_clkpll_int
+	set1 7,pdata
+	hstore 1,rf_clkpll_int
+	set0 7,pdata
+	hstore 1,rf_clkpll_int
+	set1 7,pdata
+	hstore 1,rf_clkpll_int
+	jam clksel_dpll,core_clksel
+	nop 1
+	jam clksel_xtal,core_clksel
+	hfetch 1,rf_clkpll_frac+2
+	and_into 0xcf,pdata
+	hstore 1,rf_clkpll_frac+2
+	or_into 0x30,pdata
+	hstore 1,rf_clkpll_frac+2
+	rtn
+
+	
+xtal_fast_wake:
+	setarg 0xf0f
+	branch lpm_write_config
+
+init_lpm_ctrl:
+	setarg 0x80f
+	branch lpm_write_config
+
+
+
+start_receiver:
+	bpatch patch11_7,mem_patch11
+	call rf_rx_enable
+	disable is_tx
+	enable is_rx
+	pulse init_encrypt
+	rtn
+
+prep_crypt:
+	bpatch patch12_0,mem_patch12
+	fetch 1,mem_state_map
+	isolate1 smap_encryption,pdata
+	setflag true,0,pdata
+	hstore 1,core_encrypt
+	arg mem_kc,contr
+	ifetch 9,contr
+	iforce kc_ls
+	ifetch 7,contr
+	iforce kc_ms
+	fetch 1,mem_key_size
+	add pdata,-1,g1l
+	pulse kc_p_activate               /* immediately start calculating primary Key */
+	rtn
+	
+wait_access_end:
+	deposit clke
+	store 6,mem_sync_clke
+	disable decode_fec0
+	nbranch shutdown_radio,sync
+	arg param_clke_cal,clke_rt
+	increase 1,clke_bt
+	and_into 0x1fc,clke_bt
+	rtn
+
+
+
+wait_access_mhalfbnd:
+	enable decode_fec0
+wait_access_mhalfbnd_correlate:
+	correlate null,mhalfbnd    /* keep correlating until sync is found, or clke half */
+	branch wait_access_end,sync
+	compare 0x02,clke_bt,0x02
+	nbranch wait_access_mhalfbnd_correlate,true
+	branch wait_access_end
+
+wait_access_clkn_rt:
+	bpatch patch12_1,mem_patch12
+	arg param_conn_access,timeup	/* found sync must occur within this time */
+	enable decode_fec0
+	correlate clkn_rt,meet    /* keep correlating until sync is found, or until clkn_rt timeup */
+	disable decode_fec0
+	nbranch shutdown_radio,sync
+	rtn
+
+wait_access_forever:
+	bpatch patch12_2,mem_patch12
+	enable decode_fec0
+	correlate null,timeout    /* keep correlating until sync is found, or timeout */
+	disable decode_fec0
+	nbranch shutdown_radio,sync
+	arg param_clke_cal,clke_rt
+	and_into 0x1fc,clke_bt
+	rtn
+
+	/* reserve slots for mult-slot packet */
+reserve_slot:
+	bpatch patch12_3,mem_patch12
+	iforce rega
+	deposit bt_clk
+	iadd temp,timeup
+	copy timeup,pdata
+	store 4,mem_next_btclk
+	deposit rega
+	rtn
+
+	/* pdata = clks ahead of bt_clk */
+ahead_window:
+	copy pdata,temp
+	bpatch patch12_4,mem_patch12
+	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
+
+
+setup_clk:
+	bpatch patch12_5,mem_patch12
+	branch setup_clkn,clknt
+	until clke_rt,meet
+skip_setup_clke:
+	copy clke_bt,temp
+	branch setup_clknbt
+setup_clkn:
+	branch skip_setup_clkn,attempt
+	until clkn_rt,meet
+skip_setup_clkn:
+	copy clkn_bt,temp
+setup_clknbt:
+	branch setup_clk11,user
+	compare 1,temp,3
+	nbranch setup_clk,true
+setup_complete:
+	bpatch patch12_6,mem_patch12
+	fetch 1,mem_state
+	rtnbit0 state_inconn
+	fetch 4,mem_next_btclk
+	isub temp,pdata
+	nrtn positive
+	sub pdata,0xff,null
+	branch setup_clk,positive
+	rtn
+setup_clk11:
+	compare 3,temp,3
+	nbranch setup_clk,true
+	branch setup_complete
+
+rf_setup_time:
+	bpatch patch12_7,mem_patch12
+	arg param_rf_setup,timeup
+	branch setup_clk
+	
+rf_setup_time_slave_slot:
+	disable user
+	branch rf_setup_time
+
+rf_setup_time_master_slot:
+	enable user
+	branch rf_setup_time
+	
+start_transmitter:
+	bpatch patch13_0,mem_patch13
+	call prep_crypt
+	disable is_rx
+	enable is_tx
+	rtn
+
+
+
+start_tx_native:
+	bpatch patch13_1,mem_patch13
+	arg param_tx_setup,timeup
+	until clkn_rt,meet         /* wait until start_tx time */
+	pulse init_encrypt
+	rtn
+
+start_rx_native:
+	bpatch patch13_2,mem_patch13
+	arg param_rx_setup,timeup
+	until clkn_rt,meet
+	rtn
+
+
+start_tx_external:
+	bpatch patch13_3,mem_patch13
+	arg param_tx_setup,timeup
+	until clke_rt,meet         /* wait until start_tx time */
+	pulse init_encrypt
+	rtn
+
+send_access_word:
+	bpatch patch13_4,mem_patch13
+	preload access          /* load in access word ready to be sent */
+	enable encode_fec0
+	set1 TXGFSK,radio_ctrl
+	inject mod,72
+	disable encode_fec0
+	rtn
+
+
+scan_mode_whiten:
+	copy xin,temp
+	or_into 0x60,temp                /* extend xin with 5->1, 6->1 */
+	copy temp,white_init
+	rtn
+
+
+
+	/* return blank if free amaddr is found */
+get_free_amaddr:
+	bpatch patch13_5,mem_patch13
+	fetch 1,mem_current_amaddr
+	increase 1,pdata
+	bne param_esco_addr,get_free_amaddr_cont
+	force 1,pdata
+get_free_amaddr_cont:
+	store 1,mem_current_amaddr
+	iforce am_addr
+	rtn
+
+get_clk:
+	copy clkn,temp
+	rtn master
+	copy clke,temp
+	rtn
+
+get_clkbt:
+	deposit clkn_bt
+	rtn master
+	deposit clke_bt
+	rtn
+
+
+supervision_update:
+	bpatch patch13_6,mem_patch13
+	fetcht 4,mem_supervision_timer
+	call get_clkbt
+	isub temp,timeup					/* and to 28 bits */
+	deposit timeup
+	fetcht 2,mem_supervision_to
+	lshift temp,temp
+	isub temp,pdata
+	rtn
+	
+supervision_flush:
+	bpatch patch13_7,mem_patch13
+	call get_clkbt
+	store 4,mem_supervision_timer
+	rtn
+
+assert:
+	bpatch patch14_0,mem_patch14
+	branch assert
+	
+loop:
+	branch loop
+
+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:
+	/* clear specified sched ram */
+	arg 0x10,loopcnt
+	arg 0,contw
+	call memset0
+	arg mem_le_state,contw
+	arg 10,loopcnt
+	call memset0
+	jam 0,mem_sp_calc
+	jam 0,mem_fifo_temp
+	jam 0,mem_le_testtype
+	jam 0,mem_debug_config
+	jam 0,mem_lmp_conn_state
+	bpatch patch14_1,mem_patch14
+	jam 0,mem_connection_options
+	jam 0,mem_tester_emulate
+	jam 0,mem_tester_cnt
+	setarg param_glap
+	store 3,mem_glap
+	setarg param_acl_pktlen
+	store 2,mem_acl_pktlen
+	jam param_sco_pktlen,mem_sco_pktlen
+	jam param_acl_pktcnt,mem_acl_pktcnt
+	jam param_sco_pktcnt,mem_sco_pktcnt
+	setarg param_hci_version
+	store 3,mem_hci_version
+//	setarg param_lmp_version
+//	store 3,mem_lmp_version
+//	setarg param_lmp_subversion
+//	store 2,mem_lmp_subversion
+	jam 0x60,mem_fhs_misc		/* R1 for 1.28s ps interval,P2 */
+	jam param_max_slot,mem_max_slot
+	jam 0x02,mem_fw_ver		/* set firmware version */
+ifdef SIMPLE_PAIRING
+	fetch 1,mem_ssp_enable
+	ncall init_memp,blank
+endif
+ifdef SECURE_CONNECTION
+	fetch 1,mem_le_secure_connect_enable
+	ncall init_memp_256,blank
+endif
+	bpatch patch14_2,mem_patch14
+	rtn wake
+	setarg 0
+	store 2,mem_tx_len
+	rshift clkn_bt,pdata
+	store 4,mem_last_clkn
+	rtn
+
+
+
+
+/*****************************************LPO************************************************/
+
+lpmstate:
+	setarg 0xee21
+	hstore 2,core_clkoff			// disable unused peripherals
+	hfetch 4,core_gpio_in
+	store 4,mem_saved_gpio_in
+	hfetch 1,core_lpm_ldocnt
+	store 1,mem_wakup_from_power_flag
+	bbit0 gpio_latch,loadcode		// power up boot
+	enable wake
+	bbit0 cold_wake,lpmwake		
+	disable wake
+	deposit auxcnt
+	nbranch lpmwake,blank		// sleep interrupted, wakeup
+	hfetch 1,core_lpm_ctrl + 3
+	bbit1 reload_code,lpmwake
+	arg param_hibernate_clks,temp
+	branch lpm_enter_sleep
+lpmwake:
+	hfetch 3,core_lpm_xtalcnt
+	hstore 3,core_lpm_reg
+	ifetch 1,contr
+	or_into isogate_mask,pdata		// open all isolation gate&power switch
+	istore 1,contw
+	call lpm_write_ctrl2
+	hfetch 1,core_lpm_isogate
+	set1 enable_retmem,pdata
+	hstore 1,core_lpm_isogate
+	call lpm_write_ctrl2
+	call lpm_load_context,wake
+	hfetch 1,core_lpm_reg+2
+	set0 gpio_latch,pdata			// enable gpio fuction
+	hstore 1,core_lpm_reg+2
+	call lpm_write_ctrl2
+	nbranch loadcode,wake		// wakeup from hibernate
+	rtnmark0 mark_otp_encrypt
+	jam lock_otp,core_misc_ctrl	// disable further read/write of key
+	rtn 
+
+lpm_load_context:
+	fetch 1,mem_saved_spidctrl
+	hstore 1,core_spid_ctrl
+	fetch 3,mem_saved_gsel
+	hstore 3,core_gpio_sel
+	fetch 4,mem_saved_gpio+4
+	hstore 4,core_gpio_out0
+	fetch 4,mem_saved_gpio
+	hstore 4,core_gpio_oe0
+	fetch 8,mem_saved_gpio+8
+	hstore 8,core_gpio_pu0	
+	fetch 8,mem_saved_mark
+	iforce mark
+	hfetch 8,core_gpio_wakeup_low
+	store 8,mem_gpio_wakeup_low
+	call load_ucode
+	rtn
+
+lpm_save_context:
+	deposit mark
+	store 8,mem_saved_mark
+	hfetch 8,core_gpio_oe0
+	store 8,mem_saved_gpio
+	ifetch 8,contr
+	istore 8,contw
+	hfetch 3,core_gpio_sel
+	store 3,mem_saved_gsel
+	hfetch 1,core_spid_ctrl
+	store 1,mem_saved_spidctrl
+	branch lpm_write_gpio_wakeup
+
+lpo_calibration:
+	hfetch 1,core_bist_ctrl
+	nbranch lpo_cal_inited,blank
+	fetch 3,mem_clks_per_lpo
+	nrtn blank
+	jam 0xc0,core_bist_ctrl
+	jam ccnt_start,core_misc_ctrl
+lpo_cal_inited:
+	hfetch 1,core_perf_status
+	rtnbit0 1
+	hfetch 3,core_clk_counter
+	store 3,mem_clks_per_lpo
+	rtn
+
+
+	/* temp is synced clke */
+lpm_adjust_clk:
+	bpatch patch14_3,mem_patch14
+	deposit clke
+	call clk_diff_rt
+	fetcht 4,mem_sleep_counter_all
+	sub temp,0xff,null
+	rtn positive				// interval too small
+	lshift8 pdata,pdata
+	lshift4 pdata,pdata
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	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
+
+
+	/* temp is lpo counter for doze */
+lpm_doze:
+	fetch 1,mem_lpm_config+2
+	set1 reload_code,pdata
+	store 1,mem_lpm_config+2
+	branch lpm_hibernate_normal
+	
+
+	/* no retention memory at all */
+lpm_hibernate:
+	arg param_hibernate_clks,temp
+	fetch 1,mem_lpm_config+1
+	set0 7,pdata					/* lowest lpo */
+	store 1,mem_lpm_config+1
+lpm_hibernate_normal:
+	bpatch patch14_4,mem_patch14
+	call lpm_write_gpio_wakeup
+	fetch 1,mem_lpm_hibernate_switch
+	store 1,mem_lpm_xtalcnt + 4
+	fetch 1,mem_lpm_xtalcnt + 2
+	set1 cold_wake,pdata
+	store 1,mem_lpm_xtalcnt + 2
+
+	/* temp is lpo clocks to sleep */
+lpm_sleep:
+	bpatch patch14_5,mem_patch14
+	call xtal_fast_wake
+	fetch 4,mem_sleep_counter_all
+	iadd temp,pdata
+	store 4,mem_sleep_counter_all
+	call lpm_save_context
+	fetch 5,mem_lpm_xtalcnt
+	hstore 4,core_lpm_reg
+	rshift32 pdata,rega
+	until null,lpo_edge
+	deposit clkn
+	store 6,mem_sleep_clkn
+	jam lpmreg_sel_ctrl2,core_lpm_wr
+	until null,lpo_edge
+	until null,lpo_edge
+	deposit rega
+	hstore 1,core_lpm_isogate
+	jam lpmreg_sel_ctrl2,core_lpm_wr
+lpm_enter_sleep:
+	until null,lpo_edge
+	until null,lpo_edge
+	hstoret 4,core_lpm_reg
+	jam lpmreg_sel_counter,core_lpm_wr
+	until null,never
+
+
+
+
+lpm_recover_clk:
+	bpatch patch14_6,mem_patch14
+	setarg 0
+	copy auxcnt,null
+	branch lpm_recover_timeout,zero
+	hfetch 1,core_lpm_xtalcnt
+	hfetcht 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
+	arg 3750,temp
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	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
+	hfetch 1,core_gpio_in1
+	or_into 0xf0,pdata
+	istore 1,contw
+	rtn
+	
+lpm_dispatch:
+	bpatch patch14_7,mem_patch14
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 1,mem_lpm_mode
+	rtn blank
+	fetch 1,mem_ssp_enable
+	branch lpm_dispatch_next,blank
+	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
+	rtn blank
+lpm_dispatch_next:
+	fetch 1,mem_le_sc_calc
+	nrtn blank	
+	call lpm_check_wake_lock
+	nrtn blank
+	fetch 1,mem_context
+	compare 3,pdata,0x7							/* sco won't sleep */
+	nbranch lpm_dispatch_unconn,true
+	fetch 2,mem_context + coffset_tsniff
+	rtn blank										/* role switch */
+	rtn wake
+	bpatch patch15_0,mem_patch15
+lpm_dispatch_next2:
+	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
+	bpatch patch15_1,mem_patch15
+	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 patch15_2,mem_patch15
+	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 patch15_3,mem_patch15
+	fetch 1,mem_context
+	rtnbit1 state_inconn					// wont sleep in connection
+	rtnbit1 state_inpage					// wont sleep when paging
+	fetch 1,mem_ssp_enable
+	branch lpm_unconn_nossp,blank
+	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
+	rtn blank
+lpm_unconn_nossp:
+	bpatch patch15_4,mem_patch15
+	fetch 1,mem_le_adv_enable
+	nbranch lpm_unconn_cont,blank
+	fetch 1,mem_scan_mode
+	rtn blank
+lpm_unconn_cont:
+	fetch 2,mem_lpm_interval
+	rtn blank
+lpm_sleep_btclk:
+	fetcht 1,mem_lpm_overhead
+	isub temp,pdata
+	arg 7500,temp				/* 1.25ms */
+	imul32 temp,pdata
+	branch lpm_dispatch_sleep
+
+lpm_set_mult:
+	bpatch patch15_5,mem_patch15
+	disable wake
+	fetch 1,mem_state
+	rtnbit0 state_insniff
+	nbranch lpm_not_match,match
+	call lpm_match
+	fetch 2,mem_rx_window_sniff
+	store 2,mem_rx_window
+	fetch 1,mem_arq
+	bbit1 wack,lpm_mult_short
+	bmark0 mark_lpm_mult_enable,lpm_mult_short
+	call l2cap_malloc_is_fifo_empty
+	nbranch lpm_mult_short,blank
+	fetch 1,mem_classic_bt_flag
+	bbit1 SHORT_MULT_FLAG,lpm_mult_short
+lpm_mult_wait_timeout:
+	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
+
+
+classic_bt_set_mult_short_flag:
+	arg SHORT_MULT_FLAG,queue
+	branch classic_bluetooth_set_flag
+	
+classic_bt_clr_mult_short_flag:
+	arg SHORT_MULT_FLAG,queue
+	branch classic_bluetooth_clr_flag
+
+
+
+lpm_match:
+	jam 0,mem_sniff_unint_lost
+	fetch 3,mem_sniff_rcv
+	increase 1,pdata
+	store 3,mem_sniff_rcv
+	rtn
+
+lpm_not_match:
+	bpatch patch15_6,mem_patch15
+	fetcht 2,mem_rx_window_sniff
+	rshift temp,temp
+	fetch 2,mem_rx_window
+	iadd temp,pdata
+	store 2,mem_rx_window
+lpm_lost:
+	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_cal_xtal_startup:
+	bpatch patch15_7,mem_patch15
+	fetch 1,mem_lpm_xtalcnt
+	nrtn blank
+	jam clksel_rc,core_clksel
+	setarg 0xf0c
+	call lpm_write_config
+	setarg 200000
+	call sleep
+	until null,lpo_edge
+	copy lpo_time,alarm
+	call xtal_fast_wake
+	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_cal_xtal_startup_by_snooze:
+	fetch 1,mem_lpm_xtalcnt
+	nrtn blank
+	jam 0xff,core_xtal_stable_time
+	jam clksel_rc,core_clksel
+	call xtal_fast_wake
+	setarg 1000
+	iadd lpo_time,alarm
+	snooze
+	deposit lpo_time
+	nop 12000	//delay about 1ms
+	nop 12000	//delay about 1ms
+	nop 12000	//delay about 1ms
+	nop 12000	//delay about 1ms
+	nop 12000	//delay about 1ms
+	nop 12000	//delay about 1ms
+	nop 12000	//delay about 1ms
+	nop 12000	//delay about 1ms
+	nop 12000	//delay about 1ms
+	isub alarm,pdata
+	add pdata,0x30,pdata
+	arg 0xff,temp
+	call ceiling
+	store 1,mem_lpm_xtalcnt
+	nop 30000
+	nop 30000
+	nop 30000	//delay 90000 nop
+	rtn
+
+
+
+	/* pdata is lpm_reg[11:0] */
+lpm_write_config:
+	arg 0xfff,contw
+	iand contw,contw
+	fetch 1,mem_lpm_config
+	and_into 0xf0,pdata
+	lshift8 pdata,pdata
+	ior contw,pdata
+	hstore 2,core_lpm_reg
+	ifetch 2,contr
+	istore 2,contw
+
+lpm_write_ctrl:
+	setarg lpmreg_sel_ctrl
+	branch lpm_write
+
+lpm_write_ctrl2:
+	setarg lpmreg_sel_ctrl2
+lpm_write:
+	until null,lpo_edge
+	hstore 1,core_lpm_wr
+	until null,lpo_edge
+	until null,lpo_edge
+	rtn
+
+
+lpm_write_gpio_wakeup:
+	bpatch patch16_0,mem_patch16
+	fetch 4,mem_gpio_wakeup_low
+	hstore 4,core_lpm_reg
+	setarg lpmreg_sel_gpiolow
+	call lpm_write
+	fetch 4,mem_gpio_wakeup_high
+	hstore 4,core_lpm_reg
+	setarg lpmreg_sel_gpiohigh
+	branch lpm_write
+
+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 patch16_1,mem_patch16
+	call app_check_wake_lock
+	fetch 2,mem_lpm_wake_lock
+	copy pdata,rega
+	fetch 1,mem_state_map
+	isolate1 smap_rxlmp,pdata
+	setflag true,wake_lock_lmp_rx,rega
+	fetch 1,mem_lmo_opcode1
+	fetcht 1,mem_lmo_opcode2
+	iadd temp,pdata
+	fetcht 1,mem_lmp_to_send
+	iadd temp,pdata
+	nsetflag blank,wake_lock_lmp_tx,rega
+	fetch 1,mem_le_tx_buff_used
+	nsetflag blank,wake_lock_ble_tx,rega
+	fetch 2,mem_l2cap_rxbuff1_len
+	fetcht 2,mem_l2cap_rxbuff2_len
+	iadd temp,pdata
+	nsetflag blank,wake_lock_l2cap_rx,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
+	setarg -8
+	iand rega,rega
+	copy rega,pdata
+	store 2,mem_lpm_wake_lock
+	rtn
+
+lpm_uart_wake_lock:
+	hfetch 2,core_uart_rxitems
+	nsetflag blank,wake_lock_uart_rx ,rega
+	hfetch 2,core_uart_txitems
+	nsetflag blank,wake_lock_uart_tx ,rega
+	rtn
+
+lpm_shut_down:
+	hfetch 4,core_lpm_ctrl
+	set0 27,pdata
+	hstore 4,core_lpm_reg
+	call lpm_write_ctrl
+	branch assert
+	
+lpm_disable_exen_output:
+	hfetch 4,core_lpm_xtalcnt
+	set0 20,pdata
+	hstore 4,core_lpm_reg
+	branch lpm_write_ctrl2
+
+check_bt_disabled:
+	fetch 2,mem_chip_functions
+	bbit1 bt_disabled,assert
+	rtn
+check_ble_disabled:
+	fetch 2,mem_chip_functions
+	bbit1 ble_disabled,assert
+	rtn
+check_module_disabled:
+	fetch 2,mem_chip_functions
+	bbit1 module_disable,assert
+	rtn
+
+
+
+
+
+
+
+//p_check_attempt_sniff:
+//	bbit0 state_insco,p_check_attempt_not_sco
+//	fetch 1,mem_current_sniff_attempt
+//	beq 2,p_check_attempt_sniff_restore_sco
+//	fetch 1,mem_arq
+//	bbit1 wack,p_check_attempt_notimeout
+//	bmark0 mark_esco_rxok,p_check_attempt_notimeout
+//p_check_attempt_sniff_restore_sco:
+//	nbranch p_check_attempt_notimeout,master
+//	fetch 1,mem_lmp_to_send
+//	nbranch p_check_attempt_notimeout,blank
+//p_check_attempt_sco_master:
+//	fetch 1,mem_sco_poll
+//	increase -1,pdata
+//	store 1,mem_sco_poll
+//	nbranch check_attempt_nomore,blank
+//	jam param_sco_poll,mem_sco_poll
+//	branch check_attempt_notimeout
+//p_check_attempt_not_sco:
+//	compare type_null,type,0x1f
+//	branch check_timeout,true
+//	compare type_poll,type,0x1f
+//	branch check_timeout,true
+//	branch check_anchor_end
+//p_check_attempt_notimeout:
+//check_atttemp_decrease:
+//	fetch 1,mem_current_sniff_attempt
+//	increase -1,pdata
+//	store 1,mem_current_sniff_attempt
+//	rtn
+//check_timeout:
+//	fetch 1,mem_sniff_timeout_temp
+//	increase 1,pdata
+//	store 1,mem_sniff_timeout_temp
+//check_anchor_end:
+//	fetch 1,mem_current_sniff_attempt
+//	branch check_anchor_end_attempt0,blank
+//	call check_atttemp_decrease
+//	nrtn blank
+//check_anchor_end_attempt0:  
+//	fetch 1,mem_sniff_timeout_temp
+//	fetcht 1,mem_current_sniff_timeout
+//	isub temp,null
+//	branch p_blank,positive
+//	arg 1,pdata
+//	rtn
+//p_blank:
+//	arg 0,pdata
+//	rtn
+
+
+
Index: DpiSwitch/program/hci_h4.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/hci_h4.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/hci_h4.prog	(working copy)
@@ -0,0 +1,138 @@
+
+ifdef DEBUG_H4LOG_ENABLE
+hci_log:
+	copy regc,pdata
+	rtneq 0x11
+	fetch 1,mem_hci_log
+	increase 1,pdata
+	sub pdata,hci_log_cnt,null
+	branch hci_log_calc_ptr,positive
+	setarg 0
+hci_log_calc_ptr:
+	store 1,mem_hci_log
+	arg hci_log_size,temp
+	imul32 temp,pdata
+	arg mem_hci_log+hci_log_size,contw
+	iadd contw,contw
+hci_log_write_content:
+	fetch 1,mem_hci_log
+	istore 1,contw//counter
+	copy regb,pdata
+	istore 1,contw
+	fetch 2,mem_le_event_count
+	istore 1,contw
+	copy clke_bt,pdata
+	istore 3,contw
+	fetch 1,mem_last_freq
+	istore 1,contw
+	fetch 1,mem_le_rxbuf
+	istore 1,contw
+	rtn
+else
+
+endif
+
+hci_rx_h4:
+	bpatch patch1f_5,mem_patch1f
+	fetch 1,mem_hci_cmd
+	nrtn blank
+hci_rx_h4_1:
+	call hci_h4_parse_packet
+	ncall h4_rx_discard_packet,user
+	rtn
+	
+hci_h4_parse_packet:
+	bpatch patch1f_6,mem_patch1f
+	copy contru,rega
+	arg 4,temp
+	ifetch 1,contru //type
+	beq HCI_H4_TYPE_CMD,hci_h4_parse_packet_wait_len
+	increase 1,temp //acl packet has 2 bytes for length
+	beq HCI_H4_TYPE_ACL,hci_h4_parse_packet_wait_len
+	copy contru,pdata
+	hstore 2,core_uart_rrptr
+	rtn
+hci_h4_parse_packet_wait_len:
+	hfetch 2,core_uart_rxitems
+	isub temp,null
+	nbranch hci_h4_parse_packet_wait_len,positive // while(rxitems >= 4 or 5);
+	//Make sure length has been recieved.
+	disable user
+	copy rega,contru
+	call h4_get_rx_payload_len
+	iadd temp,temp
+hci_h4_parse_packet_wait:
+	hfetch 2,core_uart_rxitems
+	isub temp,null
+	nbranch hci_h4_parse_packet_wait,positive//wait for rcv a complete packet
+	copy rega,contru
+	ifetch 1,contru //HCI packet type
+	beq  HCI_H4_TYPE_CMD,process_hci_cmd
+	branch assert
+	
+h4_rx_discard_packet:
+	bpatch patch1f_7,mem_patch1f
+	hfetch 2,core_uart_rrptr
+	iforce contru
+	call h4_get_rx_payload_len
+	iadd contru,contru
+	deposit contru
+	hstore 2,core_uart_rrptr
+	rtn
+
+
+//contru = pointer to packet start
+//return len via pdata
+h4_get_rx_payload_len:
+	ifetch 1,contru
+	increase 2,contru
+	beq HCI_H4_TYPE_ACL,h4_get_rx_payload_len_acl
+	ifetch 1,contru
+	rtn
+h4_get_rx_payload_len_acl:
+	ifetch 2,contru
+	rtn
+
+h4_get_tx_ptr:
+	hfetch 2,core_uart_twptr
+	increase -5,contwu
+	iadd contwu,contwu
+	rtn
+
+h4_send_packet_event:
+	arg HCI_H4_TYPE_EVENT,temp //type
+	branch h4_send_packet
+h4_send_packet_acl: //upgoing ACL
+	arg HCI_H4_TYPE_ACL,temp //type
+h4_send_packet:
+	bpatchx patch20_0,mem_patch20
+	increase 1,loopcnt
+	hfetch 2,core_uart_twptr
+	copy pdata,contwu
+	copy loopcnt,pdata //length
+	istoret 1,contwu //packet type in temp
+	increase -1,pdata
+	iadd contwu,contwu
+	copy contwu,pdata
+	store 2,mem_hci_acl_tx_trigger_wptr
+	copy temp,pdata
+ifdef ACL_DEBUG
+	beq HCI_H4_TYPE_EVENT,h4_send_packet0
+	hfetch 1,core_uart_txitems
+	ncall ice_break,blank
+	
+h4_send_packet0:	
+	copy temp,pdata
+endif
+	rtneq HCI_H4_TYPE_ACL //not send acl packet immediately
+	fetch 2,mem_hci_acl_tx_trigger_wptr
+	hstore 2,core_uart_twptr
+	branch h4_send_acl_trigger_clear
+	
+	
+h4_send_acl_trigger_clear:
+	setarg 0
+	store 2,mem_hci_acl_tx_trigger_wptr
+	rtn
+
+	
Index: DpiSwitch/program/hci_main.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/hci_main.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/hci_main.prog	(working copy)
@@ -0,0 +1,400 @@
+/*********************************/
+/**********   HCI  *****************/
+/*********************************/
+
+hci_init:
+	rtn wake
+	setarg hci_idle_dispatch
+	store 2,mem_cb_idle_process
+
+	setarg uart_baud_115200
+	store uart_baud_len,mem_baud
+hci_lpm_init:
+	setarg mem_h5rx_buf
+	hstore 2,core_uart_rsaddr
+	setarg mem_h5rx_buf_end
+	hstore 2,core_uart_readdr
+	setarg mem_h5tx_buf
+	hstore 2,core_uart_tsaddr
+	call hci_sel_init
+hci_reinit:
+	jam 0x0,core_uart_ctrl
+ 	setarg mem_h5tx_buf
+	hstore 2,core_uart_twptr
+	hstore 2,core_uart_trptrp
+	setarg mem_h5rx_buf
+	hstore 2,core_uart_rrptr
+	store 2,mem_h5rx_rptr
+hci_init_common:
+	hfetch 2,core_clkoff
+	set0 CLOCK_OFF_UART,pdata
+	hstore 2,core_clkoff
+	call uart_set_baud_by_mem
+	jam uartclk_dpll,core_uart_clksel
+	jam uart_ctrl_h4,core_uart_ctrl
+	rtn
+
+hci_sel_init:
+	setarg mem_h5tx_buf_end
+	hstore 2,core_uart_teaddr
+	hfetch 1,core_gpio_sel1
+	or_into 0x07,pdata
+	hstore 1,core_gpio_sel1
+	rtn
+	
+	
+hci_rx_packet:
+	bpatchx patch20_1,mem_patch20
+	hfetch 1,core_uart_status
+	iforce regb
+	bbit0 uart_status_rx_fifo_empty,hci_rx_packet_cont
+	hfetch 2,core_uart_rxitems
+	iforce regc
+	arg 0x44f,temp
+	isub temp,null
+	nrtn zero
+hci_rx_packet_cont:
+	hfetch 2,core_uart_rrptr
+	iforce contru
+	branch hci_rx_h4
+	
+uart_send_byte:
+	hfetcht 1,core_uart_status
+	isolate1 6,temp
+	branch uart_send_byte,true
+	hstore 1,core_uart_txd
+	rtn
+	
+process_hci_cmd:
+	bpatchx patch20_2,mem_patch20
+	fetch 1,mem_hci_cmd
+	branch process_hci_cmd_cont,blank
+	enable user					/* last command still there */
+	rtn
+process_hci_cmd_cont:
+	ifetch 2,contru
+	iforce alarm				/* alarm is used for sending */
+	iforce queue				/* queue is OCF */
+	ifetch 1,contru		/* skip hci length */
+	iforce temp			/* temp has the length */
+	rshift2 alarm,pdata
+	rshift8 pdata,pdata
+	beq HCI_OGF_VENDOR_SPECIFIC,phci_grp_vendor_specific
+	rtn
+
+
+phci_grp_vendor_specific:
+	bpatchx patch20_3,mem_patch20
+	deposit queue
+	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_BDADDR,phci_grp_vendor_bdaddr
+	beq HCI_VENDOR_CMD_ENTER_LPM,phci_grp_vendor_enter_lpm
+	
+	beq HCI_VENDOR_CMD_MEM,phci_grp_vendor_mem
+	beq HCI_VENDOR_CMD_EEP,phci_grp_vendor_eep
+	beq HCI_VENDOR_CMD_PATCH_SEC_INIT,phci_grp_vendor_patch_sec_init
+	beq HCI_VENDOR_CMD_PATCH_SEC,phci_grp_vendor_patch_sec
+	branch hci_normal_reply
+
+phci_grp_vendor_enter_lpm:
+	call hci_normal_reply
+	call wait_uarttx
+	call gpio_pu_uart_tx
+hci_enter_lpm:
+	call app_put_lpm_wake_lock
+	call app_l2cap_flow_control_enable
+	branch gpio_rx_config_input_with_pu
+
+hci_exit_lpm:
+	jam HCI_RX_READY,mem_hci_lt_rx_state
+	call app_get_lpm_wake_lock
+	call hci_lpm_init
+	branch app_l2cap_flow_control_disable
+	
+phci_grp_vendor_chipid:
+	call hci_get_cmd_complete_ptr
+	hfetch 2,core_chipid
+	istore 2,contwu
+	force 6,loopcnt
+	branch hci_command_complete
+	
+phci_grp_vendor_baud:
+	ifetch 2,contru
+	store 2,mem_baud
+	hstore 2,core_uart_baud
+	rtn
+
+
+phci_grp_vendor_patch_common:
+	//jam 0x80,core_ucode_ctrl
+	ifetch 1,contru
+	copy pdata,temp //check sum via temp
+	hstore 1,core_ucode_low
+	ifetch 1,contru
+	iadd temp,temp
+	set1 7,pdata
+	hstore 1,core_ucode_ctrl
+	ifetch 1,contru
+	iadd temp,temp
+	copy pdata,loopcnt
+	rtn
+	
+phci_grp_vendor_patch:
+	bmark1 mark_otp_encrypt ,phci_grp_vendor_patch_bad
+	call phci_grp_vendor_patch_common
+phci_grp_vendor_patch_loop:
+	ifetch 1,contru
+	hstore 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,contru
+	isub temp,null
+	nbranch phci_grp_vendor_patch_bad,zero
+	branch hci_normal_reply
+
+	
+phci_grp_vendor_patch_sec:
+	bmark0 mark_otp_encrypt ,phci_grp_vendor_patch_bad
+	call phci_grp_vendor_patch_common
+	store 8,mem_pdatatemp
+phci_grp_vendor_patch_sec_loop:
+	call do_aes_cbc	
+	arg 16,loopcnt
+	arg mem_temp_block0,contw
+	call load_uart_sum_loop
+	storet 8,mem_temp
+	arg mem_temp_block2,contw
+	call store_aes_result
+	arg mem_temp_block2,rega
+	arg mem_temp_block0,regb
+	arg mem_temp_block3,contw
+	call xor16	
+	arg 16,loopcnt
+	arg mem_temp_block3,contr
+	call load_ucode_only_loop
+	fetcht 8,mem_temp
+	fetch 8,mem_pdatatemp
+	increase -16,pdata
+	store 8,mem_pdatatemp
+	nbranch phci_grp_vendor_patch_sec_loop,blank
+	branch phci_grp_vendor_patch_check_sum	
+	
+load_ucode_only_loop:
+	ifetch 1,contr
+	hstore 1,core_ucode_data
+	loop load_ucode_only_loop
+	rtn
+
+load_uart_sum_loop:
+	ifetch 1,contru
+	istore 1,contw
+	iadd temp,temp
+	loop load_uart_sum_loop
+	rtn
+
+phci_grp_vendor_patch_sec_init:
+	bmark0 mark_otp_encrypt ,phci_grp_vendor_patch_bad
+	arg 0,temp
+	arg 16,loopcnt
+	arg mem_temp_block0,contw
+	call load_uart_sum_loop
+	hfetch 1,core_gpio_key2
+	and_into 0xfd,pdata   // disable aes for iv
+	hstore 1,core_gpio_key2
+	arg mem_temp_block0,contr
+	arg 16,loopcnt
+	call aes_load_data
+	call aes_init
+	call aes_clear_data
+	branch phci_grp_vendor_patch_check_sum
+
+
+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,contru
+	istore 1,contw
+	iadd temp,temp
+	loop phci_grp_vendor_done_loop
+	and temp,0xff,temp
+	ifetch 1,contru
+	isub temp,null
+	nbranch phci_grp_vendor_patch_bad,zero
+	jam 0,core_ucode_ctrl
+	call hci_normal_reply
+	call h4_rx_discard_packet
+	call clear_key_buf
+	call wait_uarttx
+	branch soft_reset
+
+phci_grp_vendor_patch_bad:
+	jam 0,core_ucode_ctrl
+	branch start
+	
+phci_grp_vendor_bdaddr:
+	ifetch 6,contru
+	store 6,mem_lap
+	branch hci_normal_reply
+
+
+phci_grp_vendor_mem:
+	ifetch 1,contru
+	store 1,mem_hci_curr_len
+	copy pdata,loopcnt
+	ifetch 2,contru
+	store 2,mem_hci_curr_target
+	copy pdata,contw
+	call uart_copy_rx_bytes
+	branch hci_normal_reply
+
+
+phci_grp_vendor_eep:
+	ifetch 1,contru
+	store 1,mem_hci_curr_len
+	copy pdata,loopcnt
+	ifetch 2,contru
+	store 2,mem_hci_curr_target
+	arg mem_l2cap_rxbuff1,contw
+	call uart_copy_rx_bytes
+	fetcht 1,mem_hci_curr_len
+	arg mem_l2cap_rxbuff1,rega
+	fetch 2,mem_hci_curr_target
+	branch iicd_write_ota_data
+	
+	
+
+	
+hci_normal_reply:
+	force 4,loopcnt
+hci_command_complete:	/* loopcnt is hci length */
+	call hci_get_payload_ptr
+	force 0x1,pdata
+	istore 1,contwu
+	deposit alarm
+	istore 3,contwu
+	force HCI_EVENT_COMMAND_COMPLETE,queue
+hci_send_event:		/* queue:event code, loopcnt: length */
+	bpatchx patch20_4,mem_patch20
+	call hci_get_packet_ptr
+	deposit queue
+	istore 1,contwu
+	deposit loopcnt
+	istore 1,contwu
+hci_send_event_raw:
+	force 5,queue
+	increase 2,loopcnt
+hci_send_packet:
+	branch h4_send_packet_event
+
+hci_send_commu_ready_event:
+	force HCI_EVENT_VENDOR_SPECIFIC,queue
+	call hci_get_payload_ptr
+	setarg HCI_VENDOR_EVENT_COMMU_READY
+	istore 1,contwu
+	force 1,loopcnt
+	branch hci_send_event
+
+hci_get_cmd_complete_ptr:
+	force 12,contwu
+	branch hci_get_tx_ptr
+
+hci_get_payload_ptr:
+	force 8,contwu
+	branch hci_get_tx_ptr
+
+hci_get_packet_ptr:
+	force 6,contwu
+hci_get_tx_ptr:
+	branch h4_get_tx_ptr
+
+	
+
+calc_tx_crc16:
+	pulse crc16
+	enable enable_crc
+crcloop:
+	ifetch 1,contwu
+	inject bucket,8
+	loop crcloop
+	enable enable_parity
+	inject bucket,16
+	disable enable_parity
+	disable enable_crc
+	disable crc16
+	byteswap pdata,pdata
+	rtn
+
+
+
+cmd_exit:
+	jam 0,mem_hci_cmd
+	rtn
+cmd_check_plap:
+	fetch 6,mem_hci_plap
+	fetcht 6,mem_plap
+	isub temp,null
+	rtn
+
+	
+	
+//enable ssp master sm
+cmd_pair:
+	fetch 1,mem_op
+	bbit1 op_inrand_req,cmd_pair_passive
+	call tid_initiate
+	jam LMP_IN_RAND,mem_lmo_opcode2
+	branch cmd_exit
+cmd_pair_passive:
+	set0 op_inrand_req,pdata
+	store 1,mem_op
+	call lmp_accept_inrand
+	setarg 0
+	setflag master,smap_lmptid,pdata		
+	store 1,mem_lmo_tid2
+	branch cmd_exit
+	rtn
+cmd_in_sniff:
+	jam LMP_SNIFF_REQ,mem_lmo_opcode2
+	arg mem_sniff_payload,contw
+	setarg 0
+	isolate1 27,clke_bt
+	setflag true,1,pdata		/* use init 2 if bit27 of clke is 1 */
+	istore 1,contw	
+	setarg 0	/* dsniff */
+	istore 2,contw
+	fetch 2,mem_sniff_param_interval	/* tsniff */
+	istore 2,contw
+	fetch 1,mem_sniff_param_attempt	/* attempt */
+	istore 2,contw
+	fetch 1,mem_sniff_param_timeout	/* timeout */
+	istore 2,contw
+	branch cmd_exit
+	
+cmd_exit_sniff:
+	jam LMP_UNSNIFF_REQ,mem_lmo_opcode2
+	branch cmd_exit
+
+hci_idle_dispatch:
+	call gpio_check_uart_state
+	rtn true
+	arg UART_WAKEUP_RX,temp
+	call gpio_get_bit
+	nbranch uart_wake_up,true
+	jam HCI_RX_WAKE,mem_hci_lt_rx_state
+	rtn
+uart_wake_up:
+	fetch 1,mem_hci_lt_rx_state
+	rtnne HCI_RX_WAKE
+	call hci_exit_lpm
+	branch hci_send_commu_ready_event
+	
+	
Index: DpiSwitch/program/hid.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/hid.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/hid.prog	(working copy)
@@ -0,0 +1,84 @@
+/**
+* the following API is to send the HID data
+* 
+*/
+
+/**
+* the following API is to process the hid  rx data
+* 
+*/
+//handle the hid data
+
+hid_rx_process:
+	bpatchx patch20_5,mem_patch20
+	fetch 2,mem_l2cap_payload_ptr
+	copy pdata,contr
+	ifetch 1,contr
+	and pdata,0x0f,temp
+	rshift4 pdata,pdata //hidtype
+	beq hid_type_set_idle,hid_rx_process_handshake
+	beq hid_type_set_protocol,hid_rx_process_handshake
+	beq hid_type_data,hid_rx_process_data
+	beq HID_TYPE_SET_REPORT,hid_rx_process_set_report
+	beq HID_TYPE_CONTROL,hid_rx_process_hid_control
+	rtn
+
+hid_rx_process_hid_control:
+	copy temp,pdata
+	beq HID_CONTROL_P_VIRTUALCABLEUNPLUG,hid_rx_process_virtual_cable_unplug
+	beq HID_CONTROL_P_SUSPEND,hid_rx_process_suspend
+	rtn
+	
+hid_rx_process_virtual_cable_unplug:
+	jam BT_EVT_VIRTUAL_CABLE_UNPLUG,mem_fifo_temp
+	call ui_ipc_send_event
+	fetch 1,mem_device_option
+	rtnbit0 dvc_op_mouse
+	copy temp,pdata
+	beq HID_CONTROL_P_VIRTUALCABLEUNPLUG,mouse_irtual_cable_unplug
+	rtn
+hid_rx_process_suspend:
+	rtn
+
+hid_rx_process_set_report:
+	call hid_rx_process_data
+	arg 0x01,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_ctrl_remote_cid
+	istore 2,contw
+	setarg 0x00
+	istore 1,contw
+	rtn
+
+hid_rx_process_handshake:
+	arg 1,regA//payload length
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_ctrl_remote_cid
+	istore 2,contw
+	setarg 0
+	istore 1,contw
+	jam 1,mem_ui_data_txbuff_length
+	fetch 1,mem_hid_control_state
+	set1 l2cap_channel_hid_handshake_done
+	store 1,mem_hid_control_state
+	jam BT_EVT_HID_HANDSHAKE,mem_fifo_temp
+	branch ui_ipc_send_event
+
+hid_rx_process_data:
+	ifetch 1,contr
+	beq HID_REPORT_ID_KB,hid_rx_process_data_hid_kb
+	rtn
+
+hid_rx_process_data_hid_kb:
+	rtn
+
+	
+hid_malloc_tx_buff:
+	call l2cap_malloc
+	copy rega,temp
+	storet 1,mem_ui_data_txbuff_length
+	copy pdata,contw
+	copy rega,pdata
+	istore 2,contw //hid payload length
+	rtn
+
Index: DpiSwitch/program/kscan_peipherals.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/kscan_peipherals.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/kscan_peipherals.prog	(working copy)
@@ -0,0 +1,152 @@
+
+
+
+ifdef COMPILE_KEYSCAN
+/****************************************key scan***************************************/
+/******the key_scan use explain******
+
+* First:call kscan_init
+* Second:call kscan_main
+* Finally: the key scanning reault is mem_kscan_value.
+
+******
+***************************************************************************************
+*/
+kscan_init:  
+	fetch 2,mem_kscan_ptr
+	copy pdata,regc
+	call kscan_row_num_select
+	branch kscan_col_num_select
+
+kscan_col_init:
+	setarg 0
+	add regc,KEYSCAN_OFFECT_SHIFT_COUNT,rega
+	istore 1,rega
+	add regc,KEYSCAN_OFFECT_COL_NUM,rega
+	ifetch 1,rega
+	branch kscan_value_init,blank
+	copy pdata,loopcnt
+	add regc,KEYSCAN_OFFECT_COL_CONF_PIN,regb
+kscan_col_loop: 
+	ifetcht 1, regb
+	call gpio_config_output
+	ifetcht 1, regb
+	call gpio_out_active
+	call kscan_value_init             
+	ifetcht 1,regb
+	call gpio_config_input
+	increase 1,regb
+	loop kscan_col_loop
+	rtn  
+kscan_row_num_select:          
+	add regc,KEYSCAN_OFFECT_ROW_NUM,contw
+	ifetch 1,contw 
+	rtn blank
+	copy pdata,loopcnt
+	add regc,KEYSCAN_OFFECT_ROW_CONF_PIN,rega
+	branch kscan_ioselect_input   
+kscan_col_num_select:           
+	add regc,KEYSCAN_OFFECT_COL_NUM,contw
+	ifetch 1,contw 
+	rtn blank
+	copy pdata,loopcnt
+	add regc,KEYSCAN_OFFECT_COL_CONF_PIN,rega
+	branch kscan_ioselect_input
+kscan_ioselect_input: 
+	ifetcht 1,rega
+	call gpio_config_input 
+	increase 1,rega
+	loop kscan_ioselect_input
+	rtn
+kscan_value_init:
+	setarg 0
+	add regc,KEYSCAN_OFFECT_ROW_COUNT,rega
+	istore 1,rega
+	add regc,KEYSCAN_OFFECT_ROW_CONF_PIN,rega
+kscan_save_vaule:
+	ifetcht 1,rega       
+	call gpio_get_bit   
+	add regc,KEYSCAN_OFFECT_VALUE_TEMP,temp
+	ifetch 2,temp
+ 	add regc,KEYSCAN_OFFECT_SHIFT_COUNT,contr
+	ifetcht 1,contr
+	copy temp,queue
+	qsetflag true,pdata
+
+	add regc,KEYSCAN_OFFECT_VALUE_TEMP,temp
+ 	istore 2,temp
+	increase 1,rega
+    
+	add regc,KEYSCAN_OFFECT_SHIFT_COUNT,contw
+	ifetch 1,contw 
+	increase 1,pdata
+	istore 1,contw
+    
+	add regc,KEYSCAN_OFFECT_ROW_COUNT,contw
+	ifetcht 1,contw 
+	increase 1,temp
+	istoret 1,contw
+	add regc,KEYSCAN_OFFECT_ROW_NUM,contw
+	ifetch 1,contw 
+	ixor temp,null  
+	nbranch kscan_save_vaule,zero
+	rtn       
+	
+	
+kscan_lpm_berfore:
+	fetch 2,mem_kscan_ptr
+	copy pdata,regc
+ 	add regc,KEYSCAN_OFFECT_ROW_NUM,contw
+ 	ifetch 1,contw 
+	copy pdata,loopcnt
+	add regc,KEYSCAN_OFFECT_COL_CONF_PIN,rega
+kscan_select_wake:    
+	ifetcht 1,rega
+	call gpio_set_wake   
+	increase 1,rega
+	loop kscan_select_wake
+	rtn
+
+kscan_clkn_bt_timer_check:
+	ifetcht 4,rega
+	copy clkn_bt,pdata
+	isub temp,null
+	rtn positive
+	setarg 0
+	istore 4,rega
+	rtn
+
+kscan_process:
+	fetch 2,mem_kscan_ptr
+	copy pdata,regc
+	add regc,KEYSCAN_OFFECT_BTCLK,rega
+	call kscan_clkn_bt_timer_check
+	ifetch 4,rega
+	add regc,KEYSCAN_OFFECT_BTCLK_INTERVAL,regb
+	ifetcht 1,regb
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	istore 4,rega
+	call kscan_col_init  
+	add regc,KEYSCAN_OFFECT_VALUE_TEMP,rega
+	ifetch 2,rega
+	add regc,KEYSCAN_OFFECT_LASVALUE,rega
+	ifetcht 2,rega
+	istore 2,rega
+	iand temp,pdata
+	add regc,KEYSCAN_OFFECT_VALUE,rega    
+	istore 2,rega 
+	rtn  
+
+endif
+	
+	
+
+
+
+	
+    
+	
+
Index: DpiSwitch/program/l2cap.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/l2cap.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/l2cap.prog	(working copy)
@@ -0,0 +1,1929 @@
+/************************************/
+/*initialize L2CAP related variables*/
+/************************************/
+l2cap_init:
+	branch l2cap_init_wake,wake
+l2cap_init_work:
+	setarg mem_l2cap_xmem_end
+	arg mem_l2cap_xmem_start,contw
+	isub contw,loopcnt
+	call clear_mem
+l2cap_init_wake:	
+	bpatchx patch20_6,mem_patch20
+	setarg mem_sdp_mem_end
+	arg mem_sdp_mem_start,contw
+	isub contw,loopcnt
+	call clear_mem
+	setarg mem_l2cap_mem_end
+	arg mem_l2cap_mem_start,contw
+	isub contw,loopcnt
+	call clear_mem
+	branch l2cap_lpm_load_txbuf
+	
+process_rx_l2cap_pkt:
+	bpatchx patch20_7,mem_patch20
+	copy contr,temp
+	//call l2cap_malloc_is_fifo_full
+	//nrtn blank
+	copy temp,contr
+	ifetch 2,contr
+	store 2,mem_l2cap_rx_pkt_length
+	ifetch 2,contr
+	store 2,mem_l2cap_rx_cid
+	deposit contr
+	store 2,mem_l2cap_payload_ptr
+	fetch 1,memui_reconnect_mode
+	beq NO_RECONNECTION,l2cap_rx_multiplexing
+	branch ml2cap_rx_multiplexing
+
+l2cap_rx_multiplexing:
+	fetch 2, mem_l2cap_rx_pkt_length
+	branch l2cap_rx_reset_state,blank
+	bpatchx patch21_0,mem_patch21
+	fetch 1,mem_l2cap_rx_cid
+	beq L2CAP_signal_channel,l2cap_call_proc_signal
+l2cap_rx_multiplexing0:
+	beq L2CAP_SDP_channel,l2cap_call_proc_sdp
+	beq L2CAP_RFCOMM_channel,l2cap_call_proc_rfcomm
+	beq L2CAP_HID_Control_channel,l2cap_call_proc_hid
+	beq L2CAP_HID_Interrupt_channel,l2cap_call_proc_hid
+	branch l2cap_rx_reset_state
+
+l2cap_check_map:
+//	call l2cap_malloc_is_fifo_full
+//	nrtn blank
+	bpatchx patch21_1,mem_patch21
+	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
+
+set_pdata_0:
+	setarg 0
+	rtn
+
+
+l2cap_call_proc_signal:
+	call l2cap_check_map
+	nrtn blank
+l2cap_call_proc_signal0:
+	call l2cap_malloc_signal_channel
+	call l2cap_process_signal_pkt
+	fetcht 2,mem_l2cap_signal_tx_length
+	branch l2cap_call_proc_no_reply,blank
+	call l2cap_get_signal_tx_buff
+	fetch 2,mem_l2cap_signal_tx_length
+	istore 2,contw
+	force L2CAP_signal_channel,pdata
+	istore 2,contw
+	branch l2cap_rx_reset_state
+	
+l2cap_call_proc_sigal_pending:
+	fetch 1,mem_l2cap_pending_item
+	rtn blank
+	copy pdata,rega
+	bpatchx patch21_2,mem_patch21
+	fetch 4,mem_l2cap_sdpres_delay_time
+	arg 0x100,temp
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	jam 0,mem_l2cap_pending_item
+	copy rega,pdata
+	beq L2CAP_SDP_channel,l2cap_sdp_conn_succ
+	branch assert
+l2cap_sdp_conn_succ:
+	arg 0,debug
+	call l2cap_malloc_signal_channel
+	call restore_l2cap_req_param
+	call l2cap_get_signal_tx_payload
+	call save_cont_pointers
+	call send_connection_sdp_res
+	call l2cap_get_signal_tx_buff
+	//fetch 2,mem_l2cap_signal_tx_length
+	setarg 0x000c
+	istore 2,contw
+	force L2CAP_signal_channel,pdata
+	istore 2,contw
+	branch l2cap_rx_reset_state
+
+
+
+l2cap_reset_sdp_map:
+	bpatchx patch21_3,mem_patch21
+	fetch 2,mem_sdp_tx_pkt_length
+	increase 4,pdata
+	rshift4 pdata,pdata
+	rshift3 pdata,pdata
+	add pdata,1,temp ///temp: how many128
+	arg mem_tx_fifo3,contr
+	ifetch 3,contr
+	rtn blank
+	store 3,mem_tx_fifo_map_temp
+	fetch 1,mem_tx_fifo_map_temp
+	copy pdata,rega
+	call check_l2cap_map
+	copy regb,pdata
+	store 1,mem_tx_fifo3
+	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
+
+l2cap_call_proc_sdp:
+	call l2cap_malloc_is_fifo_empty
+	nrtn blank// not process this packet until fifo empty
+	call l2cap_check_map
+	nrtn blank
+	call l2cap_malloc_sdp_channel
+	call sdp_process
+	call l2cap_reset_sdp_map
+	branch l2cap_call_proc_sdp_common
+
+	
+ml2cap_call_proc_sdp:
+	call l2cap_malloc_is_fifo_empty
+	nrtn blank// not process this packet until fifo empty
+	call l2cap_malloc_sdp_channel
+	call sdp_process
+l2cap_call_proc_sdp_common:
+	call l2cap_get_sdp_tx_buff
+	fetch 2,mem_sdp_tx_pkt_length
+	branch l2cap_call_proc_no_reply,blank
+	istore 2,contw
+	fetch 2,mem_sdp_remote_cid
+	istore 2,contw
+	branch l2cap_rx_reset_state
+
+l2cap_call_proc_hid:
+	call hid_rx_process
+	branch l2cap_rx_reset_state
+
+l2cap_call_proc_rfcomm:
+	bpatchx patch21_4,mem_patch21
+	jam RFCOMM_MALLOC_SUCCEED,mem_rfcomm_malloc_fail_flag
+	call rfcomm_rx_process
+	fetch 1,mem_rfcomm_malloc_fail_flag
+	rtneq RFCOMM_MALLOC_FAIL
+	branch l2cap_rx_reset_state
+l2cap_call_proc_no_reply:
+	call l2cap_malloc_discard
+	//fall through
+l2cap_rx_reset_state:
+	setarg 0
+	store 2,mem_l2cap_rx_pkt_length
+	store 2,mem_l2cap_rx_cid
+	jam L2CAP_RX_DONE,mem_l2cap_rx_done
+	rtn
+/* To process one L2CAP signalling pkt consisting of 1 or more signalling commands.	*/
+l2cap_process_signal_pkt:
+	bpatchx patch21_5,mem_patch21
+	call l2cap_get_signal_tx_payload
+	force 0,regB
+	fetch 2,mem_l2cap_rx_pkt_length
+	copy pdata,regC
+	fetch 2,mem_l2cap_payload_ptr
+	iforce contr
+l2cap_process_signal_pkt_loop:
+	call l2cap_process_one_signal
+	deposit regC
+	increase -4,regC
+	increase -4,pdata
+	nbranch l2cap_process_signal_pkt_loop,blank
+	copy regB,pdata
+	store 2,mem_l2cap_signal_tx_length
+	rtn
+
+l2cap_process_one_signal:
+	bpatchx patch21_6,mem_patch21
+	ifetch 1,contr
+	beq signal_cmd_reject,l2cap_proc_signal_cmd_reject
+	beq signal_connect_req,l2cap_proc_signal_connect_req
+	beq signal_connect_rsp,l2cap_proc_signal_connect_rsp
+	beq signal_config_req,l2cap_proc_signal_config_req
+	beq signal_config_rsp,l2cap_proc_signal_config_rsp
+	beq signal_disconnect_req,l2cap_proc_signal_disconnect_req
+	beq signal_disconnect_rsp,l2cap_proc_signal_disconnect_rsp
+	beq signal_echo_req,l2cap_proc_signal_echo_req
+	beq signal_echo_rsp,l2cap_proc_signal_echo_rsp
+	beq signal_info_req,l2cap_proc_signal_info_req
+	beq signal_info_rsp,l2cap_proc_signal_info_rsp
+	call l2cap_reject_command
+l2cap_process_one_signal_rtn:
+	rtn
+
+l2cap_proc_signal_info_req:
+	ifetch 1,contr //IDs
+	copy pdata,queue
+	ifetch 2,contr //length
+	copy pdata,rega
+	copy regc,pdata
+	isub rega,regc
+	setarg signal_info_rsp
+	istore 1,contw
+	copy queue,pdata
+	istore 1, contw
+	ifetch 2,contr 
+l2cap_proc_signal_info_req_reply:
+	beq L2CAP_SIG_EXT_FEATRUE,l2cap_proc_signal_info_req_ext
+	beq L2CAP_SIG_FIX_FEATRUE,l2cap_proc_signal_info_req_fix
+	rtn
+l2cap_proc_signal_info_req_ext:
+	setarg 0x020008
+	istore 6, contw
+	setarg 0x0280
+	istore 4, contw
+	force 12,pdata
+	branch l2cap_proc_signal_info_req_common
+l2cap_proc_signal_info_req_fix:
+	setarg 0x3000c
+	istore 6, contw
+	setarg 0x0006
+	istore 8, contw
+	force 16,pdata
+l2cap_proc_signal_info_req_common:
+	iadd regb,regb
+	branch l2cap_process_one_signal_rtn
+	
+ml2cap_proc_signal_info_req:
+	ifetch 1,contr //IDs
+	copy pdata,queue
+	ifetch 2,contr //length
+	copy pdata,rega
+	ifetch 2,contr
+	store 2,mem_temp
+	copy regc,pdata
+	isub rega,regc 
+	call l2cap_get_signal_tx_payload
+	setarg signal_info_rsp
+	istore 1,contw
+	copy queue,pdata
+	istore 1,contw 
+	fetch 2,mem_temp
+	branch l2cap_proc_signal_info_req_reply
+
+
+/*  Respond to the command reject signal sent from the remote BD.   */
+l2cap_proc_signal_cmd_reject:
+	ifetch 1,contr
+	copy pdata,queue
+	ifetch 2,contr
+	copy pdata,regA
+	iadd contr,contr
+	copy regC,pdata
+	isub regA,regC
+l2cap_proc_signal_cmd_reject_rtn:
+	branch l2cap_process_one_signal_rtn
+/* Respond to an L2CAP connection request from remote BD. (generate a connection_rsp)	*/
+l2cap_proc_signal_connect_req:
+	call save_cont_pointers
+	//fetch 6,mem_inquiry_bd_addr
+  	//store 6,mem_master_paged_bd_addr
+  	call load_cont_pointers
+	arg 0,debug
+	ifetch 1,contr
+	copy pdata,queue
+	ifetch 2,contr
+	copy pdata,regA
+	ifetch 2,contr
+	copy pdata,temp //PSM
+	ifetch 2,contr
+	copy pdata,timeup
+	bpatchx patch21_7,mem_patch21
+	copy temp,pdata
+	beq PSM_SDP,l2cap_proc_signal_connect_req_sdp
+	beq PSM_RFCOMM,l2cap_proc_signal_connect_req_rfcomm
+	beq PSM_HID_control,l2cap_proc_signal_connect_req_hid_ctrl
+	beq PSM_HID_interrupt,l2cap_proc_signal_connect_req_hid_int
+	call l2cap_reject_command
+	branch l2cap_proc_signal_connect_req_rtn
+
+l2cap_proc_signal_connect_req_sdp:
+	call save_cont_pointers
+	arg L2CAP_SDP_channel,temp
+	fetch 2,mem_sdp_remote_cid
+	nbranch already_connected,blank
+	copy timeup,pdata
+	store 2,mem_sdp_remote_cid
+	copy clkn_bt,pdata
+	store 4,mem_l2cap_sdpres_delay_time
+	call store_l2cap_req_param
+	branch  send_connection_pending
+
+store_l2cap_req_param:
+	storet 2,mem_psm
+	deposit timeup
+	store 2,mem_scid
+	deposit rega
+	store 2,mem_cmd_length
+	deposit regb
+	store 2,mem_tt2
+	deposit regc
+	store 2,mem_tt3
+	deposit queue
+	store 2,mem_id
+	rtn
+
+restore_l2cap_req_param:
+	fetcht 2,mem_psm
+	fetch 2,mem_scid
+	copy pdata,timeup
+	fetch 2,mem_cmd_length
+	copy pdata,rega
+	fetch 2,mem_tt2
+	copy pdata,regb
+	fetch 2,mem_tt3
+	copy pdata,regc
+	fetch 2,mem_id
+	copy pdata,queue
+	rtn
+
+l2cap_proc_signal_connect_req_rfcomm:
+	call save_cont_pointers
+	setarg L2CAP_RFCOMM_channel
+	arg L2CAP_RFCOMM_channel,temp
+	fetch 2,mem_RFCOMM_remote_CID
+	nbranch already_connected,blank
+	copy timeup,pdata
+	store 2,mem_RFCOMM_remote_CID
+	fetch 1,mem_rfcomm_state
+	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
+	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
+	store 1,mem_rfcomm_state
+	branch send_connection_res
+l2cap_proc_signal_connect_req_hid_ctrl:
+	call save_cont_pointers
+	arg L2CAP_HID_Control_channel,temp
+	fetch 2,mem_hid_ctrl_remote_cid
+	nbranch already_connected,blank
+	copy timeup,pdata
+	store 2,mem_hid_ctrl_remote_cid
+	fetch 1,mem_hid_control_state
+	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
+	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
+	store 1,mem_hid_control_state
+	branch send_connection_res
+l2cap_proc_signal_connect_req_hid_int:
+	call save_cont_pointers
+	deposit clke
+	arg L2CAP_HID_Interrupt_channel,temp
+	fetch 2,mem_hid_int_remote_cid
+	nbranch already_connected,blank
+	copy timeup,pdata
+	store 2,mem_hid_int_remote_cid
+	fetch 1,mem_hid_interrupt_state
+	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
+	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
+	store 1,mem_hid_interrupt_state
+	branch send_connection_res
+
+send_connection_pending:
+	setarg L2CAP_connect_pending
+	store 2,memL2CAP_T1
+	jam L2CAP_SDP_channel,mem_l2cap_pending_item
+	branch send_connection_res0
+send_connection_sdp_res:
+	fetch 1,mem_sdp_state
+	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
+	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
+	store 1,mem_sdp_state
+send_connection_res:
+	setarg L2CAP_connect_successful
+	store 2,memL2CAP_T1
+send_connection_res0:
+	bpatchx patch22_0,mem_patch22
+	call load_cont_pointers
+	setarg signal_connect_rsp
+	istore 1,contw
+	copy queue,pdata
+	istore 1,contw
+	setarg 0x0008
+	istore 2,contw
+	copy temp,pdata
+	istore 2,contw
+	copy timeup,pdata
+	istore 2,contw
+	fetch 2,memL2CAP_T1
+	beq L2CAP_connect_pending,connect_pending
+	isolate0 0,debug
+	branch connect_suc,true
+	setarg L2CAP_connect_refused_no_resources
+connect_suc:
+	istore 2,contw
+	force 0x0000,pdata
+	istore 2,contw
+	setarg 12
+	branch connect_req_update_byte_counts
+connect_pending:
+	istore 2,contw
+	force 0x0002,pdata
+	istore 2,contw
+	setarg 12
+	branch connect_req_update_byte_counts
+	
+already_connected:
+	set1 0,debug
+	branch send_connection_res
+connect_req_update_byte_counts:
+	iadd regB,regB
+	copy regC,pdata
+	isub regA,regC
+	branch l2cap_proc_signal_connect_req_rtn
+l2cap_proc_signal_connect_req_rtn:
+	branch l2cap_process_one_signal_rtn
+
+l2cap_proc_signal_connect_rsp:
+	ifetch 1,contr //identifier
+	copy pdata,queue
+	ifetch 2,contr //length
+	copy pdata,regA
+	copy regC,pdata
+	isub regA,regC
+	ifetch 2,contr //remote cid
+	copy pdata,timeup
+	ifetch 2,contr //local cid
+	copy pdata,temp
+	bpatchx patch22_1,mem_patch22
+	setarg L2CAP_SDP_channel
+	isub temp,null
+	branch l2cap_proc_signal_connect_rsp_sdp,zero
+	setarg L2CAP_RFCOMM_channel
+	isub temp,null
+	branch l2cap_proc_signal_connect_rsp_rfcomm,zero
+	setarg L2CAP_HID_Control_channel
+	isub temp,null
+	branch l2cap_proc_signal_connect_rsp_hid_ctrl,zero
+	setarg L2CAP_HID_Interrupt_channel
+	isub temp,null
+	branch l2cap_proc_signal_connect_rsp_hid_int,zero
+	rtn
+
+l2cap_proc_signal_connect_rsp_sdp:
+	copy timeup,pdata
+	store 2,mem_sdp_remote_cid
+	fetch 1,mem_sdp_state
+	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
+	store 1,mem_sdp_state
+	branch l2cap_process_one_signal_rtn
+l2cap_proc_signal_connect_rsp_rfcomm:
+	copy timeup,pdata
+	store 2,mem_rfcomm_remote_CID
+	fetch 1,mem_rfcomm_state
+	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
+	store 1,mem_rfcomm_state
+	rtn
+l2cap_proc_signal_connect_rsp_hid_int:
+	copy timeup,pdata
+	store 2,mem_hid_ctrl_remote_cid
+	fetch 1,mem_hid_interrupt_state
+	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
+	store 1,mem_hid_interrupt_state
+	rtn
+l2cap_proc_signal_connect_rsp_hid_ctrl:
+	copy timeup,pdata
+	store 2,mem_hid_int_remote_cid
+	fetch 1,mem_hid_control_state
+	set1 L2CAP_CHANNEL_STATE_CONN_RES,pdata
+	store 1,mem_hid_control_state
+	rtn
+
+l2cap_proc_signal_config_req:
+	ifetch 1,contr//identifier
+	copy pdata,queue
+	ifetch 2,contr//length
+	copy pdata,regA
+	copy regC,pdata
+	isub regA,regC
+	ifetch 2,contr//dest cid
+	copy pdata,temp
+	copy temp,regA
+	bpatchx patch22_2,mem_patch22
+	setarg L2CAP_SDP_channel
+	isub temp,null
+	branch l2cap_proc_signal_config_req_sdp,zero
+	setarg L2CAP_RFCOMM_channel
+	isub temp,null
+	branch l2cap_proc_signal_config_req_rfcomm,zero
+	setarg L2CAP_HID_Control_channel
+	isub temp,null
+	branch l2cap_proc_signal_config_req_hid_ctrl,zero
+	setarg L2CAP_HID_Interrupt_channel
+	isub temp,null
+	branch l2cap_proc_signal_config_req_hid_int,zero
+	branch l2cap_reject_command
+	//branch L2CAP_proc_signal_config_req_rtn
+l2cap_proc_signal_config_req_sdp:
+	copy contw, timeup
+	fetch 1,mem_sdp_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
+	//set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
+	store 1,mem_sdp_state
+	copy timeup,contw
+	arg L2CAP_SDP_channel,timeup
+	fetch 2,mem_sdp_remote_cid
+	copy pdata,temp
+	branch l2cap_send_config_rsp
+l2cap_proc_signal_config_req_hid_ctrl:
+	copy contw, timeup
+	fetch 1,mem_hid_control_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
+	//set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
+	store 1,mem_hid_control_state
+	copy timeup,contw
+	arg L2CAP_HID_Control_channel,timeup
+	fetch 2,mem_hid_ctrl_remote_cid
+	copy pdata,temp
+	branch l2cap_send_config_rsp
+l2cap_proc_signal_config_req_hid_int:
+	copy contw, timeup
+	fetch 1,mem_hid_interrupt_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
+	//set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
+	store 1,mem_hid_interrupt_state
+	copy timeup,contw
+	arg L2CAP_HID_Interrupt_channel,timeup
+	fetch 2,mem_hid_int_remote_cid
+	copy pdata,temp
+	branch l2cap_send_config_rsp
+l2cap_proc_signal_config_req_rfcomm:
+	copy contw, timeup
+	fetch 1,mem_rfcomm_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
+	//set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
+	store 1,mem_rfcomm_state
+//	jam UPPERSM_RP_SDP_CONN,mem_upper_sm_remote_page
+	copy timeup,contw
+	arg L2CAP_RFCOMM_channel,timeup
+	fetch 2,mem_RFCOMM_remote_CID
+	copy pdata,temp
+l2cap_send_config_rsp:
+	bpatchx patch22_3,mem_patch22
+	setarg  signal_config_rsp
+	istore 1,contw
+	copy queue,pdata
+	istore 1,contw
+	setarg 0x0006
+	istore 2,contw
+	copy temp,pdata
+	istore 2,contw
+	force 0x00,pdata
+	istore 2,contw
+	force L2CAP_config_success,pdata
+	istore 2,contw
+	force 10,pdata
+	iadd regB,regB
+	//copy temp,pdata
+	storet 2,mem_config_req_dest_CID
+	copy queue,pdata
+	store 1,mem_config_identifier
+	force L2CAP_SDP_channel,pdata
+	icompare 0xff,timeup
+	branch l2cap_send_config_rsp_is_sdp,true
+	increase 1,pdata
+l2cap_send_config_rsp_is_sdp:
+	//store 1,mem_send_config_req
+	rtn
+l2cap_check_channel_state:
+	disable user
+	rtnbit1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
+	rtnbit0 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
+	rtnbit0 L2CAP_CHANNEL_STATE_CONN_RES,pdata
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
+	copy contr,contw
+	increase -1,contw
+	istore 1,contw
+	enable user
+	rtn
+l2cap_send_config_req:
+l2cap_send_config_req_sdp:
+	fetch 1,mem_sdp_state
+	call l2cap_check_channel_state
+	nbranch l2cap_send_config_req_rfcomm,user
+	jam L2CAP_SDP_channel,mem_send_config_req
+	fetch 2,mem_sdp_remote_cid
+	store 2,mem_config_req_dest_CID
+	branch l2cap_generate_config_req
+l2cap_send_config_req_rfcomm:
+	fetch 1,mem_rfcomm_state
+	call l2cap_check_channel_state
+	nbranch l2cap_send_config_req_hid_ctrl,user
+	jam L2CAP_RFCOMM_channel,mem_send_config_req
+	fetch 2,mem_RFCOMM_remote_CID
+	store 2,mem_config_req_dest_CID
+	branch l2cap_generate_config_req
+l2cap_send_config_req_hid_ctrl:
+	fetch 1,mem_hid_control_state
+	call l2cap_check_channel_state
+	nbranch l2cap_send_config_req_hid_int,user
+	jam L2CAP_HID_Control_channel,mem_send_config_req
+	fetch 2,mem_hid_ctrl_remote_cid
+	store 2,mem_config_req_dest_CID
+	branch l2cap_generate_config_req
+l2cap_send_config_req_hid_int:
+	fetch 1,mem_hid_interrupt_state
+	call l2cap_check_channel_state
+	nrtn user//End of sending config req
+	jam L2CAP_HID_Interrupt_channel,mem_send_config_req
+	fetch 2,mem_hid_int_remote_cid
+	store 2,mem_config_req_dest_CID
+	//branch L2CAP_generate_config_req
+
+l2cap_generate_config_req:
+	bpatchx patch22_4,mem_patch22
+	call l2cap_get_req_id
+	call l2cap_malloc_signal_channel
+	force 0,regB
+	call l2cap_get_signal_tx_payload
+	force signal_config_req,pdata
+	istore 1,contw
+	fetch 1,mem_ML2CAP_comm_id
+	istore 1,contw
+	setarg 0x0008
+	istore 2,contw
+	fetch 2,mem_config_req_dest_CID
+	istore 2,contw
+	setarg 0x0000
+	istore 2,contw
+	force 1,pdata
+	istore 1,contw
+	force 2,pdata
+	istore 1,contw
+	fetch 1,mem_send_config_req
+	beq L2CAP_RFCOMM_channel,l2cap_generate_config_req_rfcomm
+	setarg L2CAP_config_MTU_SDP
+	istore 2,contw
+	branch l2cap_generate_config_req_done
+l2cap_generate_config_req_rfcomm:
+	setarg L2CAP_config_MTU_RFCOMM
+	istore 2,contw
+l2cap_generate_config_req_done:
+	arg 0x0c,temp
+	storet 2,mem_l2cap_signal_tx_length
+	call l2cap_get_signal_tx_buff
+	fetch 2,mem_l2cap_signal_tx_length
+	istore 2,contw
+	force L2CAP_signal_channel,pdata
+	istore 2,contw
+	jam 0,mem_send_config_req
+l2cap_proc_signal_config_req_rtn:
+	branch l2cap_process_one_signal_rtn
+
+l2cap_proc_signal_config_rsp:
+	increase 1,contr
+	ifetch 2,contr
+	copy pdata,regA
+	copy regC,pdata
+	isub regA,regC
+	ifetch 2,contr //source cid
+	copy pdata,regA
+	bpatchx patch22_5,mem_patch22
+	setarg L2CAP_SDP_channel
+	isub rega,null
+	branch l2cap_proc_signal_config_rsp_sdp,zero
+	setarg L2CAP_RFCOMM_channel
+	isub rega,null
+	branch l2cap_proc_signal_config_rsp_rfcomm,zero
+	setarg L2CAP_HID_Control_channel
+	isub rega,null
+	branch l2cap_proc_signal_config_rsp_hid_ctrl,zero
+	setarg L2CAP_HID_Interrupt_channel
+	isub rega,null
+	branch l2cap_proc_signal_config_rsp_hid_int,zero
+	increase 2,contr
+	ifetch 2,contr
+	iforce null
+	branch l2cap_process_one_signal_rtn
+l2cap_proc_signal_config_rsp_sdp:
+	fetch 1,mem_sdp_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES,pdata
+	store 1,mem_sdp_state
+	branch l2cap_process_one_signal_rtn
+l2cap_proc_signal_config_rsp_rfcomm:
+	fetch 1,mem_rfcomm_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES,pdata
+	store 1,mem_rfcomm_state
+	branch l2cap_process_one_signal_rtn
+l2cap_proc_signal_config_rsp_hid_ctrl:
+	fetch 1,mem_hid_control_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES,pdata
+	store 1,mem_hid_control_state
+	branch l2cap_process_one_signal_rtn
+l2cap_proc_signal_config_rsp_hid_int:
+	fetch 1,mem_hid_interrupt_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES,pdata
+	store 1,mem_hid_interrupt_state
+	jam BT_EVT_HID_CONNECTED,mem_fifo_temp
+	branch ui_ipc_send_event
+	
+
+
+l2cap_proc_signal_disconnect_req:
+	ifetch 1,contr
+	copy pdata,queue
+	ifetch 2,contr
+	copy pdata,regA
+	copy regC,pdata
+	isub regA,regC
+	ifetch 2,contr
+	copy pdata,regA
+	ifetch 2,contr
+	copy pdata,timeup
+	copy regA,temp
+	call save_cont_pointers
+	bpatchx patch22_6,mem_patch22
+	setarg L2CAP_SDP_channel
+	isub temp,null
+	branch l2cap_proc_signal_disconnect_req_sdp,zero
+	setarg L2CAP_RFCOMM_channel
+	isub temp,null
+	branch l2cap_proc_signal_disconnect_req_rfcomm,zero
+	setarg L2CAP_HID_Control_channel
+	isub temp,null
+	branch l2cap_proc_signal_disconnect_req_hid_ctrl,zero
+	setarg L2CAP_HID_Interrupt_channel
+	isub temp,null
+	branch l2cap_proc_signal_disconnect_req_hid_int,zero
+	call l2cap_reject_command
+	branch l2cap_proc_signal_disconnect_req_err_rtn
+l2cap_proc_signal_disconnect_req_hid_ctrl:
+	copy timeup,temp
+	fetch 2,mem_hid_ctrl_remote_cid
+	isub temp,null
+	branch l2cap_disconnect_hid_control_now,zero
+	call l2cap_reject_command
+	branch l2cap_proc_signal_disconnect_req_err_rtn
+l2cap_proc_signal_disconnect_req_hid_int:
+	copy timeup,temp
+	fetch 2,mem_hid_int_remote_cid
+	isub temp,null
+	branch l2cap_disconnect_hid_interrupt_now,zero
+	call l2cap_reject_command
+	branch l2cap_proc_signal_disconnect_req_err_rtn
+
+l2cap_proc_signal_disconnect_req_sdp:
+	copy timeup,temp
+	fetch 2,mem_sdp_remote_cid
+	isub temp,null
+	branch l2cap_disconnect_sdp_now,zero
+	call l2cap_reject_command
+	branch l2cap_proc_signal_disconnect_req_err_rtn
+l2cap_disconnect_hid_control_now:
+	call l2cap_reset_hid_ctrl_state
+	branch l2cap_send_disconnect_rsp_pkt
+l2cap_disconnect_hid_interrupt_now:
+	call l2cap_reset_hid_int_state
+	fetch 2, mem_hid_ctrl_remote_cid
+	branch l2cap_send_disconnect_rsp_pkt, blank
+	//set the flag,hid channel close
+	//should we set here?
+	//call HID_mem_lock
+	//fetch 1, mem_hid_cb1
+	//set1 HID_CB_APP_HID_DISCONNECTED,pdata
+	//store 1, mem_hid_cb1
+	//call HID_mem_unlock
+	branch l2cap_send_disconnect_rsp_pkt
+
+l2cap_disconnect_sdp_now:
+	call l2cap_reset_sdp_channel_state
+	fetch 1,mem_upper_sm_ss
+	nbranch l2cap_send_disconnect_rsp_pkt,blank
+	//jam LMP_ENCRYPTION_MODE_REQ,mem_lmo_opcode2
+	//jam UPPERSM_RP_SDP_CONN,mem_upper_sm_remote_page
+	branch l2cap_send_disconnect_rsp_pkt
+l2cap_proc_signal_disconnect_req_rfcomm:
+	copy timeup,temp
+	fetch 2, mem_RFCOMM_remote_CID
+	isub temp,null
+	branch l2cap_disconnect_rfcomm_now,zero
+	call l2cap_reject_command
+	branch l2cap_proc_signal_disconnect_req_err_rtn
+l2cap_disconnect_rfcomm_now:
+	call l2cap_reset_rfcomm_channel_state
+	branch l2cap_send_disconnect_rsp_pkt
+l2cap_send_disconnect_rsp_pkt:
+	call load_cont_pointers
+	setarg signal_disconnect_rsp
+	istore 1,contw
+	copy queue,pdata
+	istore 1,contw
+	setarg 0x0004
+	istore 2,contw
+	copy regA,pdata
+	istore 2,contw
+	copy timeup,pdata
+	istore 2,contw
+	force 8,pdata
+	branch l2cap_proc_signal_disconnect_req_rtn
+l2cap_proc_signal_disconnect_req_err_rtn:
+	call load_cont_pointers
+	branch l2cap_proc_signal_disconnect_req_rtn
+l2cap_proc_signal_disconnect_req_rtn:
+	iadd regB,regB
+	branch l2cap_process_one_signal_rtn
+l2cap_proc_signal_disconnect_rsp:
+	ifetch 1,contr
+	copy pdata,queue
+	ifetch 2,contr
+	copy pdata,regA
+	copy regC,pdata
+	isub regA,regC
+	ifetch 2,contr
+	copy pdata,timeup
+	ifetch 2,contr
+	copy pdata,temp
+	call save_cont_pointers
+	bpatchx patch22_7,mem_patch22
+	setarg L2CAP_SDP_channel
+	isub temp,null
+	branch l2cap_proc_signal_disconnect_rsp_sdp,zero
+	setarg L2CAP_RFCOMM_channel
+	isub temp,null
+	branch l2cap_proc_signal_disconnect_rsp_rfcomm,zero
+	setarg L2CAP_HID_Control_channel
+	isub temp,null
+	branch l2cap_proc_signal_disconnect_rsp_hid_ctrl,zero
+	setarg L2CAP_HID_Interrupt_channel
+	isub temp,null
+	branch l2cap_proc_signal_disconnect_rsp_hid_int,zero
+	call l2cap_reject_command
+	branch l2cap_proc_signal_disconnect_rsp_err_rtn
+l2cap_proc_signal_disconnect_rsp_sdp:
+	copy temp,regA
+	copy timeup,temp
+	fetch 2,mem_sdp_remote_cid
+	isub temp,null
+	call l2cap_reset_sdp_channel_state,zero
+	branch l2cap_proc_signal_disconnect_rsp_rtn
+l2cap_proc_signal_disconnect_rsp_rfcomm:
+	copy temp,regA
+	copy timeup,temp
+	fetch 2,mem_rfcomm_remote_CID
+	isub temp,null
+	call l2cap_reset_rfcomm_channel_state,zero
+	branch l2cap_proc_signal_disconnect_rsp_rtn
+l2cap_proc_signal_disconnect_rsp_hid_ctrl:
+	copy temp,regA
+	copy timeup,temp
+	fetch 2,mem_hid_ctrl_remote_cid
+	isub temp,null
+	call  l2cap_reset_hid_ctrl_state,zero
+	branch l2cap_proc_signal_disconnect_rsp_rtn
+l2cap_proc_signal_disconnect_rsp_hid_int:
+	copy temp,regA
+	copy timeup,temp
+	fetch 2,mem_hid_int_remote_cid
+	isub temp,null
+	call l2cap_reset_hid_int_state,zero
+	branch l2cap_proc_signal_disconnect_rsp_rtn
+l2cap_proc_signal_disconnect_rsp_rtn:
+	call load_cont_pointers
+	branch l2cap_process_one_signal_rtn
+l2cap_proc_signal_disconnect_rsp_err_rtn:
+	branch l2cap_process_one_signal_rtn
+
+/* received an echo request from remote BD.  Will echo the 1st 1 byte back,		*/
+l2cap_proc_signal_echo_req:
+	ifetch 1,contr
+	copy pdata,queue
+	ifetch 2,contr
+	copy pdata,regA
+	iadd contr,contr
+	setarg 9
+	istore 1,contw
+	copy queue,pdata
+	istore 1,contw
+	force 0x0000,pdata
+	istore 2,contw
+	force 4,pdata
+	iadd regB,regB
+	copy regC,pdata
+	isub regA,regC
+	branch l2cap_process_one_signal_rtn
+l2cap_proc_signal_echo_rsp:
+	branch l2cap_process_one_signal_rtn
+
+l2cap_proc_signal_info_rsp:
+	branch l2cap_process_one_signal_rtn
+l2cap_reject_command:
+	force 0,regB
+	call l2cap_get_signal_tx_payload
+	setarg signal_cmd_reject
+	istore 1,contw
+	copy queue,pdata
+	istore 1,contw
+	setarg 2
+	istore 2,contw
+	setarg cmd_not_understood
+	istore 2,contw
+	increase 6,regB
+	arg 4,regC
+	branch l2cap_process_one_signal_rtn
+
+
+
+l2cap_reset_rfcomm_channel_state:
+	setarg 0
+	store 2,mem_RFCOMM_Tx_pkt_length
+	store 2,mem_RFCOMM_remote_CID
+	jam 0,mem_rfcomm_state
+	rtn
+l2cap_reset_sdp_channel_state:
+	setarg 0
+	store 2,mem_sdp_tx_pkt_length
+	store 2,mem_sdp_remote_cid
+	jam 0,mem_sdp_state
+	rtn
+l2cap_reset_hid_ctrl_state:
+	setarg 0
+	store 2,mem_hid_ctrl_remote_cid
+	jam 0,mem_hid_control_state
+	fetch 1,mem_hid_interrupt_state
+	beq 0,l2cap_reset_hid_disconnected
+	rtn
+
+l2cap_reset_hid_int_state:
+	setarg 0
+	store 2,mem_hid_int_remote_cid
+	jam 0,mem_hid_interrupt_state
+	fetch 1,mem_hid_control_state
+	beq 0,l2cap_reset_hid_disconnected
+	rtn
+	
+l2cap_reset_hid_disconnected:
+	jam BT_EVT_HID_DISCONNECTED,mem_fifo_temp
+	branch ui_ipc_send_event	
+
+l2cap_disconnect_interrupt_req:
+	fetch 1,mem_CONTROL_tasks
+	set0  L2CAP_DISCONNECT_INTERRUPT, pdata
+	store 1,mem_CONTROL_tasks
+	fetch 2, mem_hid_int_remote_cid
+	rtn blank
+	call l2cap_malloc_signal_channel
+	fetch 2, mem_hid_int_remote_cid
+	copy pdata,regA
+	force L2CAP_HID_Interrupt_channel,regB
+	branch l2cap_generate_disconnect_req
+l2cap_disconnect_control_req:
+	fetch 1,mem_CONTROL_tasks
+	set0  L2CAP_DISCONNECT_CONTROL, pdata
+	store 1,mem_CONTROL_tasks
+	fetch 2, mem_hid_ctrl_remote_cid
+	rtn blank
+	call l2cap_malloc_signal_channel
+	fetch 2, mem_hid_ctrl_remote_cid
+	copy pdata,regA
+	force L2CAP_HID_Control_channel,regB
+l2cap_generate_disconnect_req:
+	call l2cap_get_req_id
+	call l2cap_get_signal_tx_payload
+	force signal_disconnect_req,pdata
+	istore 1,contw
+	fetch  1,mem_ML2CAP_comm_id
+	istore 1,contw
+	setarg 0x0004
+	istore 2,contw
+	copy regA,pdata
+	istore 2,contw
+	copy regB,pdata
+	istore 2,contw
+	force 0x08,temp //signal tx length in temp
+	branch ml2cap_send_signal
+
+ml2cap_send_signal_connect_req:
+	bpatchx patch23_0,mem_patch23
+	call l2cap_get_req_id
+	call l2cap_get_signal_tx_payload
+	setarg signal_connect_req
+	istore 1,contw
+	fetch 1,mem_ML2CAP_comm_id
+	istore 1,contw
+	setarg 0x0004
+	istore 2,contw
+	copy temp,pdata	 //PSM
+	istore 2,contw
+	copy timeup,pdata
+	istore 2,contw
+	arg 8,temp
+	branch ml2cap_send_signal
+ml2cap_send_signal_config_req:
+	bpatchx patch23_1,mem_patch23
+	call l2cap_get_req_id
+	call l2cap_get_signal_tx_payload
+	setarg signal_config_req
+	istore 1,contw
+	fetch 1,mem_ML2CAP_comm_id
+	istore 1,contw
+	setarg 0x0008
+	istore 2,contw
+	/****modigy for nokia*****/
+	copy temp,pdata
+	/*setarg 0x0040*/
+	istore 2,contw
+	setarg 0x0000
+	istore 2,contw
+	setarg 0x01
+	istore 1,contw
+	setarg 0x02
+	istore 1,contw
+	setarg L2CAP_config_MTU_RFCOMM
+	istore 2,contw
+	arg 0xc,temp
+	branch ml2cap_send_signal
+ml2cap_send_signal_disconn_req:
+	bpatchx patch23_2,mem_patch23
+	call l2cap_get_req_id
+	call l2cap_get_signal_tx_payload
+	setarg signal_disconnect_req
+	istore 1,contw
+	fetch 1,mem_ML2CAP_comm_id
+	increase 1,pdata
+	copy contw,regA
+	store 1,mem_ML2CAP_comm_id
+	copy regA,contw
+	istore 1,contw
+	setarg 0x0004
+	istore 2,contw
+	copy temp,pdata
+	istore 2,contw
+	copy timeup,pdata
+	istore 2,contw
+	arg 0x8,temp
+	//branch ml2cap_send_signal
+	//Fall through
+ml2cap_send_signal:
+	storet 2,mem_l2cap_signal_tx_length
+	copy temp,pdata
+	branch l2cap_malloc_discard,blank
+	call l2cap_get_signal_tx_buff
+	fetch 2,mem_l2cap_signal_tx_length
+	istore 2,contw //make sure that length is still in temp!
+	force L2CAP_signal_channel,pdata
+	istore 2,contw
+	rtn
+
+msdp_send_req_done:
+	fetch 2,mem_sdp_tx_pkt_length
+	branch assert,blank
+	call l2cap_get_sdp_tx_buff
+	fetch 2,mem_sdp_tx_pkt_length
+	istore 2,contw
+	fetch 2,mem_sdp_remote_cid
+	istore 2,contw
+	rtn
+ml2cap_rx_multiplexing:
+	fetch 2, mem_l2cap_rx_pkt_length
+	branch l2cap_rx_reset_state,blank
+	bpatchx patch23_3,mem_patch23
+	fetch 1,mem_l2cap_rx_cid
+	beq L2CAP_signal_channel,ml2cap_call_proc_signal
+	beq L2CAP_SDP_channel,ml2cap_call_proc_sdp
+	beq L2CAP_RFCOMM_channel,l2cap_call_proc_rfcomm
+	beq L2CAP_HID_Control_channel,l2cap_call_proc_hid
+	beq L2CAP_HID_Interrupt_channel,l2cap_call_proc_hid
+	branch l2cap_rx_reset_state
+
+ml2cap_call_proc_signal:
+	bpatchx patch23_4,mem_patch23
+	call l2cap_malloc_signal_channel
+	force 0,regB
+	call l2cap_get_signal_tx_payload
+	copy pdata,contw
+	fetch 2,mem_l2cap_rx_pkt_length
+	copy pdata,regC
+	fetch 2,mem_l2cap_payload_ptr
+	iforce contr
+ml2cap_proc_one_comm_loop:
+	call ml2cap_proc_one_comm
+	increase -4,regC
+	nbranch ml2cap_proc_one_comm_loop,zero
+	copy regB,temp
+	call ml2cap_send_signal
+	branch l2cap_rx_reset_state
+	
+ml2cap_proc_one_comm:
+	ifetch 1,contr
+	beq signal_connect_req,ml2cap_proc_signal_connect_req
+	beq signal_cmd_reject,ml2cap_proc_signal_cmd_reject
+	beq signal_connect_rsp,ml2cap_proc_signal_connect_rsp
+	beq signal_config_rsp,ml2cap_proc_signal_config_rsp
+	beq signal_config_req,ml2cap_proc_signal_config_req
+	beq signal_disconnect_rsp,ml2cap_proc_signal_disconn_rsp
+	beq signal_disconnect_req,ml2cap_proc_signal_disconn_req
+	beq signal_echo_req,l2cap_proc_signal_echo_req
+	beq signal_info_req,ml2cap_proc_signal_info_req
+	branch ml2cap_proc_send_reject
+
+ml2cap_proc_signal_connect_req:
+	call save_cont_pointers
+	//jam NO_RECONNECTION,memui_reconnect_mode
+	call load_cont_pointers
+	branch l2cap_proc_signal_connect_req
+ml2cap_proc_signal_cmd_reject:
+	ifetch 1,contr
+	copy pdata,queue
+	ifetch 2,contr
+	copy pdata,regA
+	copy regC,pdata
+	isub regA,regC
+mvptr:
+	ifetch 1,contr
+	increase -1,regA
+	nbranch mvptr,zero
+	rtn
+ml2cap_proc_signal_connect_rsp:
+	ifetch 1,contr //id
+	copy pdata,queue
+	ifetch 2,contr
+	copy pdata,regA	//length
+	ifetch 2,contr
+	copy pdata,timeup	//destination	cid
+	ifetch 2,contr
+	copy pdata,temp	//source	cid
+	ifetch 2,contr 		// result
+	sub pdata,0,null
+	branch ml2cap_proc_signal_connect_rsp_sucessful,zero
+	beq L2CAP_connect_refused_PSM_unsupported,ml2cap_proc_signal_connect_refused_result
+	beq L2CAP_connect_refused_no_resources,ml2cap_proc_signal_connect_refused_result
+	branch ml2cap_proc_signal_connect_rsp_mnosucc
+ml2cap_proc_signal_connect_refused_result:
+	jam BT_EVT_ML2CAP_CONN_REFUSED,mem_fifo_temp
+	call ui_ipc_send_event
+ml2cap_proc_signal_connect_rsp_mnosucc:
+	ifetch 2,contr //reason
+	branch mnosucc
+ml2cap_proc_signal_connect_rsp_sucessful:
+	call save_cont_pointers
+	//fetch 1,mem_ML2CAP_comm_id
+	//icompare 0xff,queue
+	//nbranch mnosucc1,true
+	bpatchx patch23_5,mem_patch23
+	setarg L2CAP_SDP_channel
+	isub temp,null
+	branch ml2cap_proc_signal_connect_rsp_sdp,zero
+	setarg L2CAP_RFCOMM_channel
+	isub temp,null
+	branch ml2cap_proc_signal_connect_rsp_rfcomm,zero
+	setarg L2CAP_HID_Interrupt_channel
+	isub temp,null
+	branch ml2cap_proc_signal_connect_rsp_hid_int,zero
+	setarg L2CAP_HID_Control_channel
+	isub temp,null
+	branch ml2cap_proc_signal_connect_rsp_hid_ctrl,zero
+	branch mnosucc
+ml2cap_proc_signal_connect_rsp_sdp:
+	copy timeup,pdata
+	store 2,mem_sdp_remote_cid
+	fetch 1,mem_sdp_state
+	set1 L2CAP_CHANNEL_STATE_CONN_RES
+	store 1,mem_sdp_state
+	branch mnosucc1
+ml2cap_proc_signal_connect_rsp_rfcomm:
+	copy timeup,pdata
+	store 2,mem_RFCOMM_remote_CID
+	fetch 1,mem_rfcomm_state
+	set1 L2CAP_CHANNEL_STATE_CONN_RES
+	store 1,mem_rfcomm_state
+	branch mnosucc1
+ml2cap_proc_signal_connect_rsp_hid_ctrl:
+	copy timeup,pdata
+	store 2,mem_hid_ctrl_remote_cid
+	fetch 1,mem_hid_control_state
+	set1 L2CAP_CHANNEL_STATE_CONN_RES
+	store 1,mem_hid_control_state
+	branch mnosucc1
+ml2cap_proc_signal_connect_rsp_hid_int:
+	copy timeup,pdata
+	store 2,mem_hid_int_remote_cid
+	fetch 1,mem_hid_interrupt_state
+	set1 L2CAP_CHANNEL_STATE_CONN_RES
+	store 1,mem_hid_interrupt_state
+	//branch mnosucc1
+
+mnosucc1:
+	call load_cont_pointers
+mnosucc:
+	copy regC,pdata
+	isub regA,regC
+	rtn
+
+ml2cap_proc_signal_config_rsp:
+	ifetch 1,contr		//	Ident
+	copy pdata,queue
+	ifetch 2,contr		//	SigLen
+	copy pdata,regA
+	copy regC,pdata
+	isub regA,regC
+	ifetch 2,contr		//	DestnCID
+	copy pdata,timeup
+	ifetch 2,contr
+	ifetch 2,contr		//	Get the result value, check success
+	nbranch mcrsdone1,blank
+	call save_cont_pointers
+	//fetch 1,mem_ML2CAP_comm_id
+	//icompare 0xff,queue
+	//nbranch mcfrsdone,true
+	copy timeup,temp
+	bpatchx patch23_6,mem_patch23
+	setarg L2CAP_SDP_channel
+	isub temp,null
+	branch ml2cap_proc_signal_config_rsp_sdp,zero
+	setarg L2CAP_RFCOMM_channel
+	isub temp,null
+	branch ml2cap_proc_signal_config_rsp_rfcomm,zero
+	setarg L2CAP_HID_Control_channel
+	isub temp,null
+	branch ml2cap_proc_signal_config_rsp_hid_ctrl,zero
+	setarg L2CAP_HID_Interrupt_channel
+	isub temp,null
+	branch ml2cap_proc_signal_config_rsp_hid_int,zero
+ml2cap_proc_signal_config_rsp_sdp:
+	fetch 1,mem_sdp_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES
+	store 1,mem_sdp_state
+	rtn
+ml2cap_proc_signal_config_rsp_rfcomm:
+	fetch 1,mem_rfcomm_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES
+	store 1,mem_rfcomm_state
+	rtn
+ml2cap_proc_signal_config_rsp_hid_ctrl:
+	fetch 1,mem_hid_control_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES
+	store 1,mem_hid_control_state
+	rtn
+ml2cap_proc_signal_config_rsp_hid_int:
+	fetch 1,mem_hid_interrupt_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_RES
+	store 1,mem_hid_interrupt_state
+	jam BT_EVT_HID_CONNECTED,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+mcfrsdone:
+	call load_cont_pointers
+mcrsdone1:
+	increase -6,regA
+mloop2:
+	branch mcrsdone,zero
+	increase 1,contr
+	increase -1,regA
+	branch mloop2
+mcrsdone:
+	rtn
+ml2cap_proc_signal_config_req:
+	ifetch 1,contr		//	Ident
+	copy pdata,queue
+	ifetch 2,contr		//	SigLen
+	copy pdata,regA
+	copy regC,pdata
+	isub regA,regC
+	ifetch 2,contr		//	DestnCID
+	increase 2,contr
+	copy pdata,temp
+	setarg  signal_config_rsp
+	istore 1,contw
+	copy queue,pdata
+	istore 1,contw
+	increase 2,regA
+	copy regA,pdata
+	istore 2,contw
+	call save_cont_pointers
+	bpatchx patch23_7,mem_patch23
+	setarg L2CAP_SDP_channel
+	isub temp,null
+	branch ml2cap_proc_signal_config_req_sdp,zero
+	setarg L2CAP_RFCOMM_channel
+	isub temp,null
+	branch ml2cap_proc_signal_config_req_rfcomm,zero
+	setarg L2CAP_HID_Control_channel
+	isub temp,null
+	branch ml2cap_proc_signal_config_req_hid_ctrl,zero
+	setarg L2CAP_HID_Interrupt_channel
+	isub temp,null
+	branch ml2cap_proc_signal_config_req_hid_int,zero
+	branch mcfgrq_done
+ml2cap_proc_signal_config_req_sdp:
+	fetch 1,mem_sdp_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
+	store 1,mem_sdp_state
+	bbit1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,ml2cap_proc_signal_config_req_sdp_nsndreq
+	fetcht 1,mem_CONTROL_tasks
+	set1 L2CAP_init_Config_Req,temp
+	storet 1,mem_CONTROL_tasks
+	copy queue,pdata
+	increase 1,pdata
+	store 1,mem_config_identifier
+	fetch 1,mem_sdp_state
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
+	store 1,mem_sdp_state
+ml2cap_proc_signal_config_req_sdp_nsndreq:
+	fetch 2,mem_sdp_remote_cid
+	store 2,mem_config_req_dest_CID
+	branch mcfgrq_done
+ml2cap_proc_signal_config_req_rfcomm:
+	fetch 1,mem_rfcomm_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
+	store 1,mem_rfcomm_state
+	fetch 2,mem_RFCOMM_remote_CID
+	branch mcfgrq_done
+ml2cap_proc_signal_config_req_hid_ctrl:
+	fetch 1,mem_hid_control_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
+	store 1,mem_hid_control_state
+	fetch 2,mem_hid_ctrl_remote_cid
+	branch mcfgrq_done
+ml2cap_proc_signal_config_req_hid_int:
+	fetch 1,mem_hid_interrupt_state
+	set1 L2CAP_CHANNEL_STATE_RCV_CFG_REQ,pdata
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_RES,pdata
+	store 1,mem_hid_interrupt_state
+	fetch 2,mem_hid_int_remote_cid
+	//branch mcfgrq_done
+
+mcfgrq_done:
+	copy pdata,timeup
+	call load_cont_pointers
+/*******for Nokia**************/
+	copy timeup,pdata
+	/*setarg 0x0040*/
+	istore 2,contw
+	force 0x0000,pdata
+	istore 2,contw
+	force 0x0000,pdata
+	istore 2,contw
+	force 10,pdata
+	iadd regB,regB
+	increase -6,regA
+mloop1:
+	branch mcrqdone,zero
+	ifetch 1,contr
+	istore 1,contw
+	increase 1,regB
+	increase -1,regA
+	branch mloop1
+mcrqdone:
+	rtn
+ml2cap_proc_signal_disconn_req:
+	ifetch 1,contr
+	copy pdata,queue
+	ifetch 2,contr
+	copy pdata,regA
+	copy regC,pdata
+	isub regA,regC
+
+	ifetch 2,contr
+	copy pdata,regA
+	ifetch 2,contr
+	copy pdata,timeup
+	call save_cont_pointers
+	bpatchx patch24_0,mem_patch24
+	setarg L2CAP_SDP_channel
+	copy regA,temp
+	isub temp,null
+	branch ml2cap_proc_signal_disconn_sdp,zero
+	setarg L2CAP_HID_Control_channel
+	copy regA,temp
+	isub temp,null
+	branch ml2cap_proc_signal_disconn_hid_ctrl,zero
+	setarg L2CAP_HID_Interrupt_channel
+	copy regA,temp
+	isub temp,null
+	branch ml2cap_proc_signal_disconn_hid_int,zero
+	branch mclsrfc
+ml2cap_proc_signal_disconn_sdp:
+	setarg 0x0000
+	store 2,mem_sdp_tx_pkt_length
+	store 2,mem_sdp_remote_cid
+	store 1,mem_sdp_state
+	branch mclssdp
+ml2cap_proc_signal_disconn_hid_ctrl:
+	call l2cap_reset_hid_ctrl_state
+	branch mclssdp
+ml2cap_proc_signal_disconn_hid_int:
+	call l2cap_reset_hid_int_state
+	//call HID_mem_lock
+	//fetch 1, mem_hid_cb1
+	//set1 HID_CB_APP_HID_DISCONNECTED,pdata
+	//store 1, mem_hid_cb1
+	//call HID_mem_unlock
+	branch mclssdp
+mclsrfc:
+	setarg 0x0000
+	store 2,mem_RFCOMM_Tx_pkt_length
+mclssdp:
+	call load_cont_pointers
+	setarg signal_disconnect_rsp
+	istore 1,contw
+	copy queue,pdata
+	istore 1,contw
+	setarg 0x0004
+	istore 2,contw
+	copy regA,pdata
+	istore 2,contw
+	copy timeup,pdata
+	istore 2,contw
+	force 8,pdata
+	iadd regB,regB
+	rtn
+
+ml2cap_proc_signal_disconn_rsp:
+	ifetch 1,contr
+	copy pdata,queue
+	ifetch 2,contr
+	copy pdata,regA
+	ifetch 2,contr
+	copy pdata,timeup
+	ifetch 2,contr
+	copy pdata,temp
+	call save_cont_pointers
+	bpatchx patch24_1,mem_patch24
+	fetch 1,mem_ML2CAP_comm_id
+	icompare 0xff,queue
+	nbranch mdisdone,true
+	setarg L2CAP_SDP_channel
+	isub temp,null
+	branch ml2cap_proc_signal_disconn_rsp_sdp,zero
+	setarg L2CAP_RFCOMM_channel
+	isub temp,null
+	branch ml2cap_proc_signal_disconn_rsp_rfcomm,zero
+	branch mdisdone
+ml2cap_proc_signal_disconn_rsp_sdp:
+	jam 0,mem_sdp_remote_cid
+	jam 0,mem_sdp_state
+	branch mdisdone
+ml2cap_proc_signal_disconn_rsp_rfcomm:
+	//
+	//
+mdisdone:
+	call load_cont_pointers
+	copy regC,pdata
+	isub regA,regC
+	rtn
+
+ml2cap_proc_send_reject:
+	setarg signal_cmd_reject
+	istore 1,contw
+	ifetch 1,contr
+	istore 1,contw
+	setarg 0x0002
+	istore 2,contw
+	setarg 0x0000
+	istore 2,contw
+	setarg 0x0006
+	iadd regB,regB
+	force 4,regC
+	rtn
+	
+//l2cap command id, 0 is not allowed
+l2cap_get_req_id:
+	fetch 1,mem_ML2CAP_comm_id
+	increase 1,pdata
+	bne 0,l2cap_get_req_id_ok
+	increase 1,pdata
+l2cap_get_req_id_ok:
+	store 1,mem_ML2CAP_comm_id
+	rtn
+
+
+/*********************************************************/
+//char* malloc(short len)
+//input: regA -> len
+//rtn: regB -> pbuff;return from pdata
+//val: queue -> i
+//val: timeup -> buff_cnt
+/*********************************************************/
+l2cap_malloc:
+	bpatchx patch24_2,mem_patch24
+	arg 0,regb
+	call l2cap_malloc_is_fifo_full
+	nbranch assert,blank//assert when fifo full
+	call l2cap_malloc_get_full_map
+ifdef DEBUG_MALLOC
+	call l2cap_malloc_log_get_ptr
+	copy regA,pdata
+	istore 2,contw
+	sub pdata,1024,null
+	branch assert,positive
+	branch assert,blank
+endif
+	arg mem_tx_buff0,regB//pbuff = buff0;
+	arg 0,queue // i = 0;
+l2cap_malloc_loop:
+	fetcht 1,mem_used_map
+	qisolate1 temp
+	branch l2cap_malloc_next,true//if(1 == (used_map & (1 << i)))goto next;
+	call l2cap_malloc_enough
+	sub timeup,0,null// (0 - timeup)
+	branch l2cap_malloc_next,positive//if(buff_cnt <= 0)goto next;
+	call l2cap_malloc_into_fifo
+	branch l2cap_malloc_rtn//return (pbuff);
+l2cap_malloc_next:
+	increase 128,regB//pbuff += BUFF_SIZE;//point to next buff
+	increase 1,queue
+	setarg 8//BUFF_MAX_COUNT
+	isub queue,null //BUFF_MAX_COUNT - i
+	branch l2cap_malloc_loop,positive//while(i < buff_max_count)
+	arg 0,regB//return NULL
+l2cap_malloc_rtn:
+ifdef DEBUG_MALLOC
+	call l2cap_malloc_log_get_ptr
+	copy regB,pdata
+	istore 2,contw
+endif
+	copy regB,pdata
+	branch assert,blank
+	rtn//return pointer via pdata
+	
+/*********************************************************/
+//void* l2cap_malloc_fifo_out(void)
+//output:len -> temp
+//output:ptr ->pdata
+//only get ptr,not free
+/*********************************************************/
+l2cap_malloc_fifo_out:
+	bpatchx patch24_3,mem_patch24
+	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:
+	bpatchx patch24_4,mem_patch24
+	call l2cap_malloc_fifo_get_first_ptr
+	copy contr,contw
+	copy contr,temp
+	setarg 0
+	istore 3,contw
+ifdef DEBUG_MALLOC
+	call l2cap_malloc_log_get_ptr
+	setarg 0xaa
+	istore 1,contw
+	istoret 1,contw
+endif
+	rtn
+/*********************************************************/
+//void l2cap_malloc_discard(void)
+//discard the latest malloc
+/*********************************************************/
+l2cap_malloc_discard:
+	bpatchx patch24_5,mem_patch24
+	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:
+	bpatchx patch24_6,mem_patch24
+	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:
+	bpatchx patch24_7,mem_patch24
+	fetch 3,mem_tx_fifo1
+	rtn
+/*********************************************************/
+//bool fifo_is_empty(void)
+//blank == 1: empty
+//blank == 0: not empty
+/*********************************************************/
+l2cap_malloc_is_fifo_empty:
+	bpatchx patch25_0,mem_patch25
+	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 assert,blank // fifo is empty
+	arg mem_tx_fifo0,contr
+ifdef DEBUG_MALLOC
+	arg 5,loopcnt
+l2cap_malloc_free_loop:
+	increase -1,loopcnt
+	copy loopcnt,pdata
+	branch assert,blank
+else
+l2cap_malloc_free_loop:
+endif
+	ifetch 3,contr
+	branch l2cap_malloc_free_loop,blank
+	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:
+	bpatchx patch25_1,mem_patch25
+	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
+/*********************************************************/
+//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)
+/*********************************************************/
+l2cap_malloc_into_fifo:
+	bpatchx patch25_2,mem_patch25
+	call l2cap_malloc_is_fifo_full
+	nbranch assert,blank //fifo full
+	call l2cap_malloc_is_fifo_empty
+	branch l2cap_malloc_into_fifo_no_push,blank//fifo empty, no need to push
+	fetch 3,mem_tx_fifo1
+	store 3,mem_tx_fifo0
+	ifetch 3,contr//mem_tx_fifo2
+	istore 3,contw//mem_tx_fifo1
+	ifetch 3,contr//mem_tx_fifo3
+	istore 3,contw//mem_tx_fifo2
+	setarg 0
+	istore 3,contw//mem_tx_fifo3
+l2cap_malloc_into_fifo_no_push:
+	arg 0,temp
+	copy timeup,pdata
+	iadd queue,pdata
+l2cap_malloc_into_fifo_loop:
+	qset1 temp//fifo->map |= 1 << i;
+	increase 1,queue
+	isub queue,null
+	nbranch l2cap_malloc_into_fifo_loop,zero
+	//map in temp
+	lshift8 regB,pdata
+	ior temp,pdata
+	store 3,mem_tx_fifo3
+	rtn
+
+/*********************************************************/
+//char is_size_enough(char buff_index, short len)
+//input: regA -> len
+//input: queue -> buff_index
+//rtn: timeup -> buff_cnt
+//val: max_size_fom_buff_index -> temp
+//val: i -> loopcnt
+/*********************************************************/
+l2cap_malloc_enough:
+	bpatchx patch25_3,mem_patch25
+	call l2cap_malloc_get_full_map
+	copy queue,regC//restore buff_index to regC
+	arg 0,temp
+	arg 0,timeup//default return val
+	//increase 1,queue
+l2cap_malloc_enough_loop:
+	copy queue,pdata
+	beq 8,l2cap_malloc_enough_end
+	fetch 1,mem_used_map
+	qisolate1 pdata
+	branch l2cap_malloc_enough_end,true
+	increase 128,temp
+	increase 1,queue
+	copy regA,pdata
+	isub temp,null
+	branch l2cap_malloc_enough_end,zero//(max_size_fom_buff_index ==  len)
+	branch l2cap_malloc_enough_loop,positive//(max_size_fom_buff_index <  len)
+l2cap_malloc_enough_end:
+	copy temp,pdata
+	isub regA,null
+	nbranch l2cap_malloc_enough_rtn,positive// max_size_fom_buff_index - len > 0
+	copy queue,pdata//i
+	copy regC,temp//buff_index
+	isub temp,timeup//return (i - buff_index)
+l2cap_malloc_enough_rtn:
+	copy regC,queue//restore buff_index to queue
+	rtn
+	
+ifdef DEBUG_MALLOC
+l2cap_malloc_log_get_ptr:
+	fetch 2,mem_tx_malloc_log
+	increase 2,pdata
+	store 2,mem_tx_malloc_log
+	sub pdata,62,null
+	nbranch l2cap_malloc_log_clean,positive
+	increase -2,pdata
+	iadd contw,contw
+	rtn
+l2cap_malloc_log_clean:
+	jam 0x00,mem_tx_malloc_log
+	branch l2cap_malloc_log_get_ptr	
+endif
+
+l2cap_malloc_signal_channel:
+	bpatchx patch25_4,mem_patch25
+	arg L2CAP_SIGNAL_MALLOC_SIZE,regA
+	call l2cap_malloc
+	store 2,mem_l2cap_signal_tx_buff_ptr
+	increase 4,pdata
+	store 2,mem_l2cap_signal_tx_payload_ptr
+	setarg 0
+	store 2,mem_l2cap_signal_tx_length
+	rtn
+
+l2cap_get_signal_tx_buff:
+	fetch 2,mem_l2cap_signal_tx_buff_ptr
+	branch l2cap_util_pdata_to_contw
+
+l2cap_get_signal_tx_payload:
+	fetch 2,mem_l2cap_signal_tx_payload_ptr
+	branch l2cap_util_pdata_to_contw
+
+
+l2cap_malloc_sdp_channel:
+	bpatchx patch25_5,mem_patch25
+	arg SDP_MALLOC_SIZE,regA
+	call l2cap_malloc
+	store 2,mem_sdp_tx_buff_ptr
+	increase 4,pdata
+	store 2,mem_sdp_tx_payload_ptr
+	setarg 0
+	store 2,mem_sdp_tx_pkt_length
+	rtn
+
+l2cap_get_sdp_tx_buff:
+	fetch 2,mem_sdp_tx_buff_ptr
+	branch l2cap_util_pdata_to_contw
+
+l2cap_get_sdp_tx_payload:
+	fetch 2,mem_sdp_tx_payload_ptr
+	branch l2cap_util_pdata_to_contw
+
+
+l2cap_malloc_rfcomm_channel:
+	bpatchx patch25_6,mem_patch25
+	call push_stack
+	jam RFCOMM_MALLOC_FAIL,mem_rfcomm_malloc_fail_flag
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	arg RFCOMM_MALLOC_SIZE,regA
+	call l2cap_malloc
+	store 2,mem_rfcomm_tx_buff_ptr
+	increase 4,pdata
+	store 2,mem_rfcomm_tx_payload_ptr
+	setarg 0
+	store 2,mem_rfcomm_tx_pkt_length
+	jam RFCOMM_MALLOC_SUCCEED,mem_rfcomm_malloc_fail_flag
+	branch pop_stack
+
+l2cap_get_rfcomm_tx_buff:
+	fetch 2,mem_rfcomm_tx_buff_ptr
+	branch l2cap_util_pdata_to_contw
+	
+l2cap_util_pdata_to_contw:
+	branch assert,blank
+	copy pdata,contw
+	rtn
+	
+
+l2cap_lpm_save_calc_len:
+	bpatchx patch25_7,mem_patch25
+	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_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_txbuf:
+	bpatchx patch26_0,mem_patch26
+	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
+	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:
+	bpatchx patch26_1,mem_patch26
+	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
+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: DpiSwitch/program/le.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/le.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/le.prog	(working copy)
@@ -0,0 +1,1839 @@
+ifdef COMPILE_LE
+//******************************************//
+//*************LE INIT ****************//
+//******************************************//
+
+
+le_init_conn:
+	bpatchx patch26_2,mem_patch26
+	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
+	store 5,mem_le_pcnt_tx
+	set1 39,pdata
+	store 5,mem_le_pcnt_rx
+	jam 1,mem_le_txheader
+	jam 0,mem_le_txlen
+	branch le_supervision_flush
+
+le_init_master:
+	bpatchx patch26_3,mem_patch26
+	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_le_pcnt_rx
+	set1 39,pdata
+	store 5,mem_le_pcnt_tx	
+	branch le_init_conn
+
+
+le_init_slave:
+	bpatchx patch26_4,mem_patch26
+	disable master
+ 	setarg 0x17
+ 	store 2,mem_le_remote_mtu
+	jam lemode_slave,mem_le_mode
+	jam 0,mem_le_adv_enable
+	jam 0,mem_lpm_current_mult
+	jam FLAG_LE_PAIRING_NULL,mem_le_pairing_state
+	jam FLAG_LE_ENC_NULL,mem_le_enc_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_dispatch:
+	call le_enable
+	call le_scan
+	call le_adv
+	branch le_disable
+
+le_conn_dispatch:
+	bpatchx patch26_5,mem_patch26
+	call le_enable
+	call app_process_ble
+	fetch 1,mem_le_mode
+	beq lemode_master,le_master_dispatch
+	branch le_slave_dispatch
+	
+//******************************************//
+//***********LE master process*********//
+//******************************************//
+	
+le_master_dispatch:
+	bpatchx patch26_6,mem_patch26
+	enable master
+	call le_supervision_update
+	branch le_master_disconn,positive
+	call check_ble_disabled
+	call le_setup
+	call le_prepare_tx
+	disable match
+	call le_transmit_receive_sifs
+	nrtn match
+	bpatchx patch26_7,mem_patch26
+	fetch 1,mem_le_conn_rcv
+	increase 1,pdata
+	store 1,mem_le_conn_rcv
+	call le_acknowledge
+	disable master
+	rtn
+	
+le_master_disconn:
+	call le_disconnect
+	disable master
+	rtn
+	
+//******************************************//
+//***********LE slave process***********//
+//******************************************//
+le_slave_dispatch:
+	bpatchx patch27_0,mem_patch27
+	jam 0,mem_le_md_count
+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
+	call check_ble_disabled
+	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
+	branch le_slave_cont
+	
+
+le_slave_match:
+	bpatchx patch27_1,mem_patch27
+	fetch 1,mem_le_md_count
+	pincrease 1
+	store 1,mem_le_md_count
+	beq LE_MD_MAX_COUNT,le_slave_cont
+	call le_acknowledge
+	call le_prepare_tx
+	call le_transmit_norx
+	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 patch27_2,mem_patch27
+	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 patch27_3,mem_patch27
+	call le_lpm_set_mult
+	call le_update_channel_map
+	call le_update_param
+	branch calc_clke_offset
+
+
+le_check_md:
+	disable user
+	bmark1 mark_ble_rx_md,enable_user
+	bmark1 mark_ble_tx_md,enable_user
+	rtn
+
+
+le_slave_more_data:
+	bpatchx patch27_4,mem_patch27
+	enable attempt
+	call le_transmit_receive_sifs_notx
+	branch le_slave_match,match
+	branch le_slave_cont
+
+le_slave_disconn:
+
+	//fall through
+le_disconnect:
+	bpatchx patch27_5,mem_patch27
+	call le_clear_connection_info
+	call app_disconn_reason_collect_ble
+ifdef SECURE_CONNECTION
+	call sp_initialize_256
+endif
+	jam BT_EVT_LE_DISCONNECTED,mem_fifo_temp
+	branch ui_ipc_send_event
+
+le_clear_connection_info:
+	setarg 0
+	store 9,mem_le_tx_buff_used
+	jam 0,mem_le_conn_handle
+	jam lemode_idle,mem_le_mode
+	jam 0,mem_le_state
+	jam FLAG_LE_ENC_NULL,mem_le_enc_state
+	jam FLAG_LE_PAIRING_NULL,mem_le_pairing_state
+	rtn
+	
+le_got_first_packet:
+	bpatchx patch27_6,mem_patch27
+	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
+	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
+
+
+le_enable:
+	bpatchx patch27_7,mem_patch27
+	jam 0x36,rf_adc_goff        /*For BLE, tune AGC_gain_offset, Max added*/
+	jam 0x5f,rf_agc_nsat        //for BLE
+	enable le
+	jam 7,rfen_ulp			/* enable ulp */
+	call check_ble_disabled
+	fetch 1,mem_250k_freq_enable	//default: 0
+	rtn blank
+	jam 0xb8,rf_iq_gain
+	rtn
+	
+le_disable:
+	bpatchx patch28_0,mem_patch28
+	jam 0x2e,rf_adc_goff        /*For BR/EDR, tune AGC_gain_offset, Max added*/
+	jam 0xff,rf_agc_nsat         //for EDR&BR
+	disable le
+	jam 3,rfen_ulp
+	arg 0,stop_watch
+	rtn
+	
+le_prep:
+	disable enable_crc
+	disable enable_white
+	fetch 3,mem_le_crcinit
+	iforce crc24_init
+	fetch 1,mem_le_ch_mapped
+	reverse pdata,temp
+	set1 1,temp
+	rshift temp,white_init
+	rtn
+	
+
+lerx_setfreq:
+	call le_setfreq
+	call set_freq_rx
+	setarg param_pll_setup
+	call sleep
+	branch rf_rx_enable
+
+letx_setfreq:
+	branch txon,match
+letx_setfreq0:
+	call le_setfreq
+	branch set_freq_tx
+le_setfreq:
+	bpatchx patch28_1,mem_patch28
+	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_adv_access:
+	setarg 0x8e89be
+	lshift8 pdata,pdata
+	or_into 0xd6,pdata
+	iforce access
+	setarg 0x555555
+	store 3,mem_le_crcinit
+	rtn
+
+le_setup:
+	bpatchx patch28_2,mem_patch28
+	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:
+	arg param_pll_setup,temp
+	iadd temp,pdata
+	call ahead_window
+	deposit clke
+	store 6,mem_le_rxon_ts
+	rtn
+
+le_next_adv_channel:
+	bpatchx patch28_3,mem_patch28
+	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_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
+
+
+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
+
+
+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_37:
+	jam 37,mem_le_ch_mapped
+	fetch 1,mem_le_adv_channel_map_temp
+	set1 BIT_ADV_CHANNEL_MAP_37,pdata
+	store 1,mem_le_adv_channel_map_temp
+	rtn
+
+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
+	store 1,mem_le_adv_channel_map_temp
+	rtn
+
+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
+	store 1,mem_le_adv_channel_map_temp
+	rtn
+
+
+
+le_context_nexthop:
+	bpatchx patch28_4,mem_patch28
+	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
+	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
+
+
+le_calc_channel_map:
+	bpatchx patch28_5,mem_patch28
+	fetch 5,mem_le_channel_map
+	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
+	store 1,mem_le_channels
+	rtn
+
+le_map_channel:
+	bpatchx patch28_6,mem_patch28
+	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:
+	bpatchx patch28_7,mem_patch28
+	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 patch29_0,mem_patch29
+	enable swfine
+	fetch 2,mem_le_receive_window
+	fetcht 4,mem_le_transmit_window
+	iadd temp,timeup
+le_receive_packet:
+	call lerx_setfreq
+le_receive_rxon:
+	bpatchx patch29_1,mem_patch29
+	call le_prep
+	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 end_of_packet,sync
+	branch le_receive_skip,attempt
+	arg param_clke_cal_le,clke_rt
+	copy bt_clk,clke_bt
+	fetch 1,mem_le_state
+	bbit0 lestate_got_first_packet,le_receive_skip
+	call lpm_adjust_clk,wake
+le_receive_skip:
+	bpatchx patch29_2,mem_patch29
+	call save_rssi
+	enable enable_white
+	enable enable_crc
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_le_rxbuf
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	and pdata,0x3f,loopcnt
+	branch lerx_nopayload,zero
+	
+lerx_loop:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	loop lerx_loop
+	
+lerx_nopayload:
+	bpatchx patch29_3,mem_patch29
+	parse demod,bucket,24	
+	enable swfine
+	arg param_sifs,stop_watch		// start SIFS timer after last bit of crc
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	branch end_of_packet,crc_failed
+	enable match
+	fetch 1,mem_last_freq
+	add pdata,0,rega				// ble 2M Medium Frequency
+	call rf_write_freq				/* set frequency to tx mode freq */
+	disable decode_fec0
+	branch set_sync_on
+
+le_transmit_receive_sifs:
+	bpatchx patch29_4,mem_patch29
+	call le_transmit
+le_transmit_receive_sifs_notx:
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	enable swfine
+	arg 5500,timeup 
+	branch le_receive_rxon
+
+le_transmit_norx:
+	call le_transmit
+	branch end_of_packet
+	
+le_transmit:
+	bpatchx patch29_5,mem_patch29
+	call le_prep
+	call letx_setfreq
+	branch le_transmit0
+	
+le_transmit0:
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+	call le_wait_tx
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,40
+	enable enable_white
+	enable enable_crc
+	bpatchx patch29_6,mem_patch29
+	fetch 1,mem_le_txheader
+	inject mod,8
+	ifetch 1,contr
+	and pdata,0x3f,loopcnt
+	inject mod,8
+	branch letr_nopayload,zero
+letr_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop letr_loop
+	
+letr_nopayload:
+	enable enable_parity
+	inject mod,24
+	disable enable_parity
+	until null,tx_clear
+	nop 100          /* flush out the last bit */
+	disable encode_fec0
+	rtn
+	
+le_send_adv_ind:
+	bpatchx patch29_7,mem_patch29
+	fetch 1,mem_le_adv_type
+	beq ADV_DIRECT_IND,le_send_adv_direct_ind
+	fetch 1,mem_le_adv_own_addr_type
+	lshift4 pdata,pdata
+	lshift2 pdata,pdata
+	store 1,mem_le_txheader
+	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:
+	fetch 1,mem_le_adv_direct_addr_type
+	lshift4 pdata,pdata
+	lshift2 pdata,pdata
+	increase 1,pdata
+	store 1,mem_le_txheader
+	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 patch2a_0,mem_patch2a
+	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
+	
+le_send_scan_request:
+	bpatchx patch2a_1,mem_patch2a
+	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
+
+
+le_send_scan_response:
+	bpatchx patch2a_2,mem_patch2a
+	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_connect_request:
+	bpatchx patch2a_3,mem_patch2a
+	force -1,pdata
+	setsect 2,1
+	store 5,mem_le_channel_map
+	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 patch2a_4,mem_patch2a
+	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 patch2a_5,mem_patch2a
+	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_init_adv:
+	bpatchx patch2a_6,mem_patch2a
+	disable master
+	branch le_adv_access
+	
+
+
+le_update_param:
+	fetch 1,mem_le_state
+	rtnbit0 lestate_update_param
+	fetch 2,mem_le_event_count
+	fetcht 2,mem_le_instant
+	isub temp,pdata
+	nrtn positive
+	store 2,mem_pdatatemp
+	bpatchx patch2a_7,mem_patch2a
+	fetch 1,mem_le_state
+	set0 lestate_update_param,pdata
+	set0 lestate_got_first_packet,pdata
+	store 1,mem_le_state
+	fetch 4,mem_le_anchor
+	fetcht 2,mem_le_tsniff
+	storet 2,mem_temp
+	isub temp,rega
+	bpatchx patch2b_0,mem_patch2b
+	fetch 1,mem_le_new_param
+	store 1,mem_le_window_size
+	ifetcht 2,contr
+	ifetch 2,contr
+	lshift2 pdata,pdata
+	store 2,mem_le_tsniff
+	lshift2 temp,temp
+	iadd temp,pdata
+	ifetcht 4,contr
+	storet 4,mem_le_slave_latency	// and superTO
+	iadd rega,pdata
+	copy pdata,regab
+	fetch 2,mem_le_tsniff
+	fetcht 2,mem_temp	//last sniff
+	isub temp,pdata		//last sniff - new sniff
+	fetcht 2,mem_pdatatemp
+	imul32 temp,pdata
+	iadd regab,pdata
+	store 4,mem_le_anchor
+	call le_receive_window_size
+	fetch 2,mem_le_superto
+	store 2,mem_le_init_superto
+	rtn
+
+
+le_update_channel_map:
+	bpatchx patch2b_1,mem_patch2b
+	fetch 1,mem_le_state
+	rtnbit0 lestate_update_map
+	fetch 2,mem_le_event_count
+	fetcht 2,mem_le_instant
+	isub temp,pdata
+	nrtn positive
+	fetch 1,mem_le_state
+	set0 lestate_update_map,pdata
+	store 1,mem_le_state
+ 	fetch 5,mem_le_new_map
+	store 5,mem_le_channel_map
+	branch le_calc_channel_map	
+	
+	
+le_acknowledge:
+	bpatchx patch2b_2,mem_patch2b
+	call le_supervision_flush
+	call le_check_wak
+	fetch 1,mem_le_rxbuf
+	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+1			
+	branch le_ack_unenc,blank		/* empty packet, no decryption */
+	fetch 1,mem_le_state
+	bbit0 lestate_encryption,le_ack_unenc
+	call load_sk
+	call le_decrypt
+	nrtn blank
+le_ack_unenc:
+	fetcht 1,mem_le_arq
+	setflip nesn,temp
+	storet 1,mem_le_arq
+	rtn
+
+	
+le_check_wak:
+	bpatchx patch2b_3,mem_patch2b
+	fetcht 1,mem_le_arq
+	isolate0 wak,temp
+	rtn true
+	fetch 1,mem_le_rxbuf
+	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
+	fetch 1,mem_le_txpayload
+	beq LL_START_ENC_REQ,le_set_enc
+	fetch 1,mem_le_enc_state
+	beq FLAG_LE_ENC_PAUSE,le_clear_enc
+	rtn
+	
+
+le_set_enc:
+	fetch 1,mem_le_state
+	set1 lestate_encryption,pdata
+	store 1,mem_le_state
+	rtn	
+	
+le_clear_enc:
+	bpatchx patch2b_4,mem_patch2b
+	jam FLAG_LE_ENC_NULL,mem_le_enc_state
+	arg 0,pdata
+	store 4,mem_le_last_mic
+	store 5,mem_le_pcnt_tx
+	set1 39,pdata
+	store 5,mem_le_pcnt_rx
+	fetch 1,mem_le_state
+	set0 lestate_encryption,pdata
+	store 1,mem_le_state
+	rtn
+
+
+le_wait_adv:
+	bpatchx patch2b_5,mem_patch2b
+	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_scan:
+	bpatchx patch2b_6,mem_patch2b
+	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 patch2b_7,mem_patch2b
+	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
+	bpatchx patch2c_0,mem_patch2c
+	fetch 1,mem_le_scanrsp_rcv
+	increase 1,pdata
+	store 1,mem_le_scanrsp_rcv
+	fetch 9,mem_le_rxbuf+8
+	store 9,mem_tmp_buffer
+	rtn
+	
+le_create_conn:
+	bpatchx patch2c_1,mem_patch2c
+	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
+	bpatchx patch2c_2,mem_patch2c
+	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_scan_check_sender_addr_type:
+	arg 1,rega// sender_addr_type
+	fetch 1,mem_le_rxbuf
+	rtnbit1 LE_SENDER_ADDR_BIT
+	arg 0,rega
+	rtn
+
+
+
+le_prepare_tx:
+	bpatchx patch2c_3,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 1,contr
+	ifetcht 1,contr
+	copy temp,rega
+	isub rega,pdata
+	arg LE_MAX_PAKET_LEN,temp
+	call not_greater_than
+	copy pdata,temp
+	ifetch 1,contr
+	copy pdata,type
+	copy rega,pdata
+	iadd contr,contr
+	arg mem_le_txpayload,contw
+	copy temp,loopcnt
+	call memcpy
+	call le_update_tx_type
+	call le_send_packet
+	
+	call le_fifo_get_first_tx_ptr
+	ifetch 1,contr
+	copy pdata,rega
+	copy contr,regc
+	ifetcht 1,contr
+	copy temp,regb
+	isub regb,pdata
+	arg LE_MAX_PAKET_LEN,temp
+	call not_greater_than
+	iadd regb,pdata
+	istore 1,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 1,contr				//pdata:length
+	ifetcht 1,contr				//temp:offest
+	isub temp,pdata			//pdata:length - offset
+	sub pdata,LE_MAX_PAKET_LEN,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_4,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_5,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:	
+	fetch 1,mem_le_state
+	rtnbit0 lestate_encryption
+	call load_sk
+	branch le_encrypt
+
+
+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_6,mem_patch2c
+	rtnmark1 mark_old_packet
+	call le_fifo_check_full
+	nrtn blank
+	fetch 1,mem_le_rxbuf
+	and pdata,0x3,pdata
+	store 1,mem_le_packet_llid
+	ifetch 1,contr
+	and pdata,0x1f,pdata
+	store 1,mem_le_packet_size
+	rtn blank							//empty rtn
+	copy contr,pdata
+	store 2,mem_le_payload_ptr
+	fetch 1,mem_le_packet_llid
+	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
+	fetch 2,mem_le_payload_ptr
+	copy pdata,contr
+	ifetch 2,contr	//l2cap len
+	store 2,mem_le_l2cap_size
+	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
+	fetcht 1,mem_le_packet_size
+	storet 1,mem_le_packet_len_recved
+	fetch 2,mem_le_l2cap_size
+	increase 4,pdata
+	isub temp,null
+	branch enable_user,zero
+	fetch 1,mem_le_packet_size
+	copy pdata,loopcnt
+	arg mem_le_l2capbuf,contw
+	fetch 2,mem_le_payload_ptr
+	copy pdata,contr
+	call memcpy
+	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 1,mem_le_packet_len_recved
+	nrtn blank
+	branch disable_user
+
+le_check_l2cap_llid_continue:
+	call le_check_l2cap_continue_legal
+	nrtn user
+	fetch 1,mem_le_packet_len_recved
+	arg mem_le_l2capbuf,contw
+	iadd contw,rega
+	fetcht 1,mem_le_packet_size
+	iadd temp,pdata
+	store 1,mem_le_packet_len_recved
+	fetch 1,mem_le_packet_size
+	copy pdata,loopcnt
+	copy rega,contw
+	fetch 2,mem_le_payload_ptr
+	copy pdata,contr
+	call memcpy_fast
+	setarg mem_le_l2capbuf
+	store 2,mem_le_payload_ptr		//update ptr->mem_le_l2capbuff
+	fetch 2,mem_le_l2cap_size
+	increase 4,pdata
+	fetcht 1,mem_le_packet_len_recved
+	isub temp,null
+	branch enable_user,zero
+	branch disable_user
+
+
+
+
+	
+le_get_search_att_type:
+	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_get_search_att_uuid:
+	call store_contr
+	arg mem_le_search_uuid_length,contw
+	branch le_get_search_common
+
+
+	/* rega pointers to data, regb is length */
+le_writeatt_cb:
+	fetch 2,mem_cb_att_write
+	branch callback_func
+	
+le_supervision_update:
+	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
+
+
+le_adv:
+	jam 36,mem_le_ch_mapped
+	jam 0,mem_le_adv_channel_map_temp
+le_adv_loop:
+	bpatchx patch2d_0,mem_patch2d
+	fetch 1,mem_le_adv_enable
+	rtn blank
+	arg le_adv_interval_timer,queue
+	call timer_check
+	nrtn blank
+	bpatchx patch2d_1,mem_patch2d
+le_adv_loop_tx:
+	disable master
+	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
+	and pdata,0x0f,pdata
+	beq SCAN_REQ,le_send_scan_response
+	beq CONNECT_REQ,le_parse_connect_req
+le_adv_not_match:
+	bpatchx patch2d_2,mem_patch2d
+	random pdata 
+	arg 0x1ff,temp
+	iand temp,pdata
+	add pdata,250,pdata
+	call delay
+	fetch 1,mem_le_adv_channel_map_temp
+	fetcht 1,mem_le_adv_channel_map
+	isub temp,null
+	nbranch le_adv_loop,zero
+	arg le_adv_interval_timer,queue
+	fetch 2,mem_le_adv_interval
+	branch timer_init
+	
+
+le_receive_window_size:
+	bpatchx patch2d_3,mem_patch2d
+	fetch 1,mem_le_peer_sca
+	call le_sca_map
+	fetch 2,mem_le_tsniff
+	imul32 temp,pdata
+	arg 375,temp
+	imul32 temp,pdata
+	arg 100000,temp
+	idiv temp
+	fetch 1,mem_le_window_size
+	arg 20000,temp
+	imul32 temp,pdata
+	iadd temp,pdata
+	store 4,mem_le_transmit_window
+	bpatchx patch2d_4,mem_patch2d
+	fetch 2,mem_rx_window_sniff
+	call wait_div_end
+	quotient temp
+	iadd temp,pdata
+	store 2,mem_le_receive_window
+	rtn
+
+le_parse_connect_req:
+	bpatchx patch2d_5,mem_patch2d
+	fetch 6,mem_le_rxbuf+8
+	fetcht 6,mem_le_lap
+	isub temp,null
+	nrtn zero
+	call le_scan_check_sender_addr_type
+	copy rega,pdata
+	store 1,mem_le_conn_peer_addr_type
+	fetch 7,mem_le_rxbuf+21
+	store 7,mem_tmp_buffer
+	ifetch 8,contr
+	istore 8,contw
+	fetch 6,mem_le_rxbuf+2
+	store 6,mem_le_plap
+	increase 6,contr
+	ifetch 8,contr
+	store 8,mem_le_access 	// and crcinit & window size
+	ifetcht 2,contr				// transmit offset
+	bpatchx patch2d_6,mem_patch2d
+	lshift2 temp,temp			
+	ifetch 2,contr				// connInterval
+	lshift2 pdata,pdata
+	store 2,mem_le_tsniff
+	store 4,mem_le_anchor
+	isub temp,pdata
+	add pdata,-2,clke_bt
+	ifetch 9,contr
+	store 9,mem_le_slave_latency// and super to & channel map
+	bpatchx patch2d_7,mem_patch2d
+	ifetch 1,contr
+	rshift4 pdata,temp
+	rshift temp,temp
+	storet 1,mem_le_peer_sca
+	and_into 0x1f,pdata
+	store 1,mem_le_hop
+	call le_receive_window_size
+	call le_calc_channel_map
+	call le_init_slave
+	call context_new
+	nrtn zero
+	bpatchx patch2e_0,mem_patch2e
+	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_init_attlist_search:
+	bpatchx patch2e_1,mem_patch2e
+	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
+	enable user
+	rtn
+
+	/* return handle in pdata, blank:end of list, positive:in range */
+le_att_handle_inrange:
+	ifetch 2,contr
+	rtn blank
+	isub regb,null			/* less than start ? */
+	nrtn positive
+	isub regc,null			/* greater than end ? */
+	rtn zero
+	branch le_att_handle_blank,positive
+	force 1,null
+	rtn
+le_att_handle_blank:
+	force 0,pdata
+	rtn
+
+
+	/* 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 patch2e_2,mem_patch2e
+	fetch 2,mem_ui_le_uuid_table
+	iforce contr
+le_att_get_handle_loop1:
+	ifetch 2,contr
+	rtn blank
+	isub temp,null
+	rtn zero
+	ifetch 1,contr
+	iadd contr,contr	
+	ifetch 1,contr			// length  
+	iadd contr,contr
+	branch le_att_get_handle_loop1
+le_att_get_handle_ptr_found:
+	ifetch 1,contr
+	iadd contr,contr	
+	rtn	
+
+
+
+le_att_get_short_uuid_ptr:
+	bpatchx patch2e_3,mem_patch2e
+	fetch 2,mem_ui_le_uuid_table
+	iforce contr
+le_att_get_short_uuid_loop:
+	ifetch 2,contr
+	rtn blank
+	ifetch 1,contr
+	iadd contr,contr
+	increase -2,contr
+	ifetch 2,contr
+	isub temp,null
+	rtn zero
+	ifetch 1,contr			 
+	iadd contr,contr
+	branch le_att_get_short_uuid_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 patch2e_4,mem_patch2e
+	fetch 2,mem_ui_le_uuid_table
+le_att_get_handle_info_fast:
+	iforce contr
+	copy temp,rega
+le_att_get_handle_loop:
+	ifetch 2,contr
+	branch le_att_unfind_handle,blank
+	isub rega,null
+	branch le_att_finded_handle, zero
+	ifetch 1,contr			// length  
+	iadd contr,contr	
+	ifetch 1,contr			//length 
+	iadd contr,contr
+	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_modified_name:
+	bpatchx patch2e_5,mem_patch2e
+	call le_modified_name_att_list
+	branch le_modified_name_adv
+
+le_modified_name_att_list:
+	arg UUID_CHRCTR_DEVICE_NAME,temp
+	call le_att_get_short_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
+	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 patch2e_6,mem_patch2e
+	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 patch2e_7,mem_patch2e
+	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
+
+	nbranch lpm_mult_short,match
+	bmark1 mark_old_packet,lpm_mult_short
+
+	fetch 1,mem_le_packet_size
+	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_configuration
+	bbit1 BIT_BLE_SHORT_MULT,lpm_mult_short	//check flag,if flag is 1,always short mult
+	
+	fetch 1,mem_le_state
+	bbit1 lestate_update_param,lpm_mult_short
+	branch lpm_mult_wait_timeout
+	
+le_lpm_lost:
+	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_clr_config_short_mult:
+	arg BIT_BLE_SHORT_MULT,queue
+	branch le_clr_config
+
+
+le_set_config:
+	fetch 1,mem_le_configuration
+	qset1 pdata
+	store 1,mem_le_configuration
+	rtn
+
+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
+	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:
+	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:
+	force LLID_L2CAP_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:
+	sub rega,240,null			//check max len
+	nbranch assert,positive
+	fetch 1,mem_le_tx_buff_used
+	arg 1,temp
+	arg LE_TX_BUFF_COUNT,loopcnt
+le_fifo_malloc_tx_loop:
+	iand temp,null
+	branch le_fifo_malloc_tx_got_empty,zero
+	lshift temp,temp
+	loop le_fifo_malloc_tx_loop
+	branch assert				//no empty buff
+le_fifo_malloc_tx_got_empty:
+	ixor temp,pdata
+	store 1,mem_le_tx_buff_used
+	sub loopcnt,LE_TX_BUFF_COUNT,pdata
+	lshift4 pdata,pdata
+	lshift4 pdata,pdata
+	arg mem_le_tx_buffer0,temp
+	iadd temp,temp
+le_fifo_tx_find_empty_ptr:
+	arg 0,loopcnt
+	arg mem_le_tx_ptr0,contr
+le_fifo_tx_find_empty_ptr_loop:
+	ifetch 2,contr
+	branch le_fifo_tx_found_empty_ptr,blank
+	copy loopcnt,pdata
+	increase 1,loopcnt
+	bne LE_TX_BUFF_COUNT,le_fifo_tx_find_empty_ptr_loop
+	branch assert
+
+	
+le_fifo_tx_found_empty_ptr:
+	increase -2,contr
+	istoret 2,contr
+	copy temp,contw
+	copy rega,pdata
+	istore 1,contw				//lengh
+	setarg 0
+	istore 1,contw				//offset
+	copy type,pdata
+	istore 1,contw				//LLID
+	rtn
+
+
+
+le_fifo_get_first_tx_ptr:
+	fetch 2,mem_le_tx_ptr0
+	copy pdata,contr
+	rtn
+
+le_fifo_get_second_tx_ptr:
+	fetch 2,mem_le_tx_ptr1
+	copy pdata,contr
+	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_le_tx_ptr3
+	nrtn blank
+	fetch 2,mem_le_tx_ptr2
+	nrtn blank
+	fetch 2,mem_le_tx_ptr1
+	nrtn blank
+	fetch 2,mem_le_tx_ptr0
+	rtn
+
+le_fifo_get_first_l2cap_ptr:
+	call le_fifo_get_first_tx_ptr
+	increase 3,contr
+	rtn
+
+le_fifo_get_first_att_ptr:
+	call le_fifo_get_first_tx_ptr
+	increase 7,contr
+	rtn
+
+le_fifo_get_last_att_ptr:
+	call le_fifo_get_last_tx_ptr
+	increase 7,contr
+	rtn
+
+le_fifo_get_last_l2cap_ptr:
+	call le_fifo_get_last_tx_ptr
+	increase 3,contr
+	rtn
+
+	
+
+le_fifo_check_full:
+	fetch 2,mem_le_tx_ptr3
+	rtn
+
+
+le_fifo_check_nearly_full:
+	fetch 2,mem_le_tx_ptr2
+	rtn
+
+	
+le_fifo_check_empty:
+	fetch 2,mem_le_tx_ptr0
+	rtn
+
+
+le_fifo_release_first_node:
+	fetch 2,mem_le_tx_ptr0
+	arg mem_le_tx_buffer0,temp
+	isub temp,pdata
+	rshift4 pdata,pdata
+	rshift4 pdata,queue
+	fetch 1,mem_le_tx_buff_used
+	qset0 pdata
+	store 1,mem_le_tx_buff_used
+	arg 0,loopcnt
+le_fifo_release_first_node_loop:
+	lshift loopcnt,pdata
+	arg mem_le_tx_ptr1,temp
+	iadd temp,temp
+	ifetch 2,temp
+	increase -2,temp
+	istore 2,temp
+	copy loopcnt,pdata
+	increase 1,loopcnt
+	bne LE_TX_BUFF_UPDATE_LOOPCNT,le_fifo_release_first_node_loop
+	setarg 0
+	istore 2,temp
+	rtn
+
+
+
Index: DpiSwitch/program/le_l2cap_att.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/le_l2cap_att.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/le_l2cap_att.prog	(working copy)
@@ -0,0 +1,713 @@
+
+
+le_parse_att:
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	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_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
+	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
+	istore 1,contw
+	fetch 2,mem_le_local_mtu
+	istore 2,contw
+	rtn
+
+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
+	
+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_info,user
+	call push_stack_rega_b_c
+	call disable_user
+	force 20,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	call pop_stack_rega_b_c
+	setarg ATTOP_FIND_INFORMATION_RESPONSE
+	istore 1,contw
+	setarg UUID_SIZE_16BIT
+	istore 1,contw
+le_send_att_find_information_res_store_info:
+	call get_contr
+	ifetch 2,contr
+	istore 2,contw
+	ifetch 1,contr
+	copy pdata,loopcnt
+	call memcpy
+	call store_contw
+	increase -1,timeup
+	branch le_send_att_find_information_res_end,zero
+le_send_att_find_information_res_cont:
+	ifetch 1,contr
+	iadd contr,contr
+	branch le_send_att_find_information_res_loop
+le_send_att_find_information_res_next:
+	ifetch 1,contr
+	iadd contr,contr
+	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_uuid
+	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_uuid
+	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
+	beq 1,le_send_att_read_by_type_response_end
+	call le_att_same_uuid
+	nbranch le_send_att_read_by_type_response_next_handle,zero
+	nbranch le_send_att_read_by_type_res_found_next,user
+	disable user
+	arg 20,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
+	increase 5,pdata
+	istore 1,alarm
+	fetch 1,mem_le_cur_uuid_length
+	beq 16,le_send_att_read_by_type_response_end
+	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
+	fetch 1,mem_le_cur_uuid_length
+	beq 16,le_send_att_read_by_type_response_end
+	
+	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:
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+le_send_att_read_by_type_res_not_char_loop:
+	call le_att_check_handle_end
+	nbranch le_send_att_error_response_notfound,positive
+	call le_att_get_handle_info_from_ptr
+	beq 1,le_send_att_error_response_notfound
+	call le_att_same_uuid
+	nbranch le_send_att_read_by_type_res_not_char_next,zero
+
+le_send_att_read_by_type_res_not_char_common:
+	arg 20,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BY_TYPE_RESPONSE
+	istore 1,contw
+	fetch 1,mem_le_curr_att_len
+	copy pdata,loopcnt
+	increase 2,pdata
+	istore 1,contw
+	fetch 2,mem_temp
+	istore 2,contw
+	call get_contr
+	call memcpy_fast
+	call store_contw
+	branch le_send_auto_len_by_mem
+	
+le_send_att_read_by_type_res_not_char_next:
+ 	call le_att_next_handle
+	branch le_send_att_read_by_type_res_not_char_loop
+
+
+le_send_att_read_by_type_res_device_name:
+	arg UUID_CHRCTR_DEVICE_NAME,temp
+	call le_att_get_short_uuid_ptr
+	rtn blank
+	increase -5,contr // point to handle
+	ifetch 2,contr		
+	store 2,mem_temp
+	arg 20,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BY_TYPE_RESPONSE
+	istore 1,contw
+	fetch 1,mem_le_name_len
+	copy pdata,loopcnt
+	increase 2,pdata
+	istore 1,contw
+	fetch 2,mem_temp
+	istore 2,contw
+	arg mem_le_name,contr
+	call memcpy_fast
+	call store_contw
+	branch le_send_auto_len_by_mem
+
+
+
+le_parse_att_read_request:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,le_send_att_read_response_check_auth
+
+le_send_att_read_response:
+	call le_att_get_handle_ptr
+	branch le_send_att_error_response_notfound,blank
+	increase -2,contr
+	ifetch 2,contr
+	arg UUID_CHRCTR_DEVICE_NAME,temp
+	isub temp,null
+	branch le_send_device_name,zero
+	ifetch 1,contr
+	sub pdata,22,null
+	branch le_send_att_read_response_less,positive
+	force 22,pdata
+le_send_att_read_response_less:
+	copy pdata,regc
+	call store_contr
+	add regc,1,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_RESPONSE
+	istore 1,contw
+	copy regc,loopcnt
+	call get_contr
+	branch memcpy
+
+le_send_device_name:
+	call store_contr
+	fetch 1,mem_le_name_len
+	add pdata,1,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_RESPONSE
+	istore 1,contw
+	fetch 1,mem_le_name_len
+	copy pdata,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
+//le_send_att_read_response_error_insufficient_auth:
+	call le_check_encrypt_state
+	nbranch le_send_att_read_response,user
+	jam ATT_ERR_INSUFFICIENT_AUTHENTICATION,mem_le_err_code
+	branch le_send_att_error_response
+
+
+le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+le_send_att_read_blob_response:
+	arg 20,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BLOB_RESPONSE
+	istore 1,contw
+	fetch 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	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
+	sub loopcnt,22,null
+	branch le_send_att_read_blob_response_less,positive
+	force 22,loopcnt
+le_send_att_read_blob_response_less:
+	deposit rega
+	iadd contr,contr
+	call memcpy_fast
+	call store_contw
+	branch le_send_auto_len_by_mem
+
+
+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
+//	arg 23,pdata
+//	isub temp,null
+//	call ice_break,zero
+	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
+le_send_att_read_by_group_type_response_loop:
+	call le_att_check_handle_end
+	nbranch le_send_att_read_by_group_type_end0,positive
+	fetcht 2,mem_temp
+	call le_att_get_handle_info_from_ptr
+	beq 1,le_send_att_read_by_group_type_end1
+
+	call le_att_same_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
+	nbranch le_send_att_read_by_group_type_store_write_record,user		//un first
+	disable user
+	//first att uuid
+	arg 20,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
+	increase 4,pdata
+	istore 1,contw
+	call store_contw
+	branch le_send_att_read_by_group_type_store_record
+le_send_att_read_by_group_type_store_write_record:
+	fetch 1,mem_le_curr_att_len
+	beq 16,le_send_att_read_by_group_type_end1
+	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_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:
+	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
+	jam ATT_ERR_INSUFFICIENT_AUTHENTICATION,mem_le_err_code
+	branch le_send_att_error_response
+
+le_send_att_write_response:
+	force 1,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_WRITE_RESPONSE
+	istore 1,contw
+	rtn
+
+le_check_encrypt_state:
+	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_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:
+	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:	
+	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:
+	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:
+	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_att_same_uuid:
+	fetcht 1,mem_le_search_uuid_length
+	arg mem_le_search_uuid,rega
+	branch le_att_check_same_common
+
+
+le_store_att_record:
+	fetch 1,mem_le_curr_att_len
+	store 1, mem_tmp_buffer
+	copy pdata,loopcnt
+	call get_contr
+	branch memcpy_fast
+
+
+le_write_att_record:
+	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_tmp_buffer
+	copy pdata,loopcnt
+	call memcpy_fast
+	branch store_contw
+
+
+
+le_send_auto_len_by_mem:
+	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
+
+
Index: DpiSwitch/program/le_l2cap_signalling.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/le_l2cap_signalling.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/le_l2cap_signalling.prog	(working copy)
@@ -0,0 +1,54 @@
+
+
+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: DpiSwitch/program/le_l2cap_smp.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/le_l2cap_smp.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/le_l2cap_smp.prog	(working copy)
@@ -0,0 +1,594 @@
+
+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
+
+	
+le_secure_connection_enable:
+	fetch 1,mem_le_pres_auth
+	set1 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT,pdata
+	store 1,mem_le_pres_auth
+	rtn
+le_secure_connection_disable:
+	fetch 1,mem_le_pres_auth
+	set0 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT,pdata
+	store 1,mem_le_pres_auth
+	rtn
+
+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
+	call le_check_master_support_secure_connect
+	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_check_master_support_secure_connect:
+	fetch 1,mem_le_preq_auth
+	rtnbit1  LE_AUTH_SECURE_CONNECTION_PAIRING_BIT
+	fetch 1,mem_le_pairing_mode
+	rtnbit0 LE_PAIRING_MODE_SECURE_CONNECT_BIT
+	branch app_ble_disconnect	
+
+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:
+ifdef SECURE_CONNECTION
+	copy contr,rega
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_parse_smp_pairing_confirm_secure_passkey
+	copy rega,contr
+endif
+	arg mem_le_rconfirm,contw
+	call memcpy16
+	branch le_send_smp_pairing_confirm
+ifdef SECURE_CONNECTION
+le_parse_smp_pairing_confirm_secure_passkey:
+	copy rega,contr
+	arg mem_le_rconfirm,contw
+	call memcpy16
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	jam LE_SC_STAT_PASSKEY_WAIT_CONFIRM,mem_le_secure_connect_state	
+	rtn
+endif	
+
+
+le_send_smp_pairing_confirm:
+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:	
+ifdef SECURE_CONNECTION
+	copy contr,rega
+	fetch 1,mem_le_pairing_mode
+	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,le_parse_smp_pairing_random_sc
+	copy rega,contr
+endif
+	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:
+	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
+	call function_g2
+//	jam LE_SC_STAT_RECEIVE_RANDOM,mem_le_secure_connect_state
+//	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	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_parse_smp_encryption_information:
+	arg mem_le_peer_ltk,contw
+	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_plap+5
+	compare 0xc0,pdata,0xc0
+	rtn true
+	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_le_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 patch2f_0,mem_patch2f
+	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_AUTH,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:
+	jam FLAG_LE_PARING_SEND_ENC_INFORMATION,mem_le_pairing_state
+	jam BT_EVT_LE_ENC_INFO,mem_fifo_temp
+	call ui_ipc_send_event
+	call le_send_smp_encryption_information
+	fetch 1,mem_device_option
+	rtnne dvc_op_module
+	call le_check_master_addr_type
+	rtn user
+	branch app_ble_store_reconn_info
+
+
+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:
+	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 patch2f_1,mem_patch2f
+	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_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
+//	arg mem_le_r,contw
+//	force 2,loopcnt
+//	call memset0
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY ,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	
+	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
+	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 LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+//	jam LE_SC_STAT_PASSKEY_WAIT_CONFIRM,mem_le_secure_connect_state	
+//	branch p_ng_event_le_get_passkey
+	jam 0,mem_authentication_passkey_times
+	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_le_sc_local_key_invalid
+	beq SP_KEY_VALID_256,le_public_key_ready
+//	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	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:
+	force LE_L2CAP_CID_SMP,regb
+	branch le_fifo_malloc_tx_l2cap
+
+
Index: DpiSwitch/program/le_ll.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/le_ll.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/le_ll.prog	(working copy)
@@ -0,0 +1,212 @@
+
+le_parse_ll:
+	fetch 1,mem_le_rxbuf+2
+	beq LL_CONNECTION_UPDATE_REQ,le_parse_connection_update_req
+	beq LL_CHANNEL_MAP_REQ,le_parse_channel_map_req
+	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
+	arg 2,rega
+	arg LL_UNKNOWN_RSP,regb
+	call le_fifo_malloc_tx_ll
+	fetch 1,mem_le_rxbuf+2
+	istore 1,contw
+	rtn	
+
+
+le_parse_connection_update_req:
+	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
+
+le_parse_channel_map_req:
+	ifetch 5,contr
+	store 5,mem_le_new_map
+	ifetch 2,contr
+	store 2,mem_le_instant
+	fetcht 2,mem_le_event_count
+	isub temp,null
+	nbranch le_parse_terminate_ind,positive
+	fetch 1,mem_le_state
+	set1 lestate_update_map,pdata
+	store 1,mem_le_state
+	rtn
+
+
+le_parse_terminate_ind:
+	setarg 20 // 200ms
+	store 2,mem_le_superto
+	store 2,mem_le_init_superto
+	rtn
+
+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
+
+le_parse_feature_req:
+
+le_send_feature_rsp:
+	arg 9,rega
+	arg LL_FEATURE_RSP,regb
+	call le_fifo_malloc_tx_ll
+	setarg param_le_features
+	istore 8,contw
+	rtn
+
+
+le_parse_version_ind:
+	rtn master
+le_send_version_ind:
+	arg 6,rega
+	arg LL_VERSION_IND,regb
+	call le_fifo_malloc_tx_ll
+	fetch 5,mem_lmp_version
+	istore 5,contw
+	rtn
+
+
+le_parse_ping_req:
+	arg LL_PING_RSP,regb
+	branch le_send_ll_one_lenth
+
+//regb:ll opcode
+le_send_ll_one_lenth:
+	arg 1,rega
+	branch le_fifo_malloc_tx_ll
+
+	
+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_le_ivm
+	call le_send_enc_rsp
+	bpatchx patch2f_2,mem_patch2f
+	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:
+	bpatchx patch2f_3,mem_patch2f
+	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
+
+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		
+	
+le_send_enc_rsp:
+	arg mem_le_skds,contw
+	force 8,loopcnt
+	call generate_random_loop
+	arg mem_le_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_le_ivs
+	istore 4,contw
+	rtn
+
+le_send_start_enc_req:
+	arg LL_START_ENC_REQ,regb
+	branch le_send_ll_one_lenth
+
+le_send_start_enc_rsp:
+	arg LL_START_ENC_RSP,regb
+	branch le_send_ll_one_lenth
+	
+	
+le_parse_enc_rsp:
+	ifetch 8,contr
+	store 8,mem_le_skds
+	ifetch 4,contr
+	store 4,mem_le_ivs
+	branch generate_sk
+	
+le_parse_start_enc_req:
+	fetch 1,mem_le_state
+	set1 lestate_encryption,pdata
+	store 1,mem_le_state
+	rtn
+	
+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
+	
+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	
+
+le_send_pause_enc_rsp:
+	arg LL_PAUSE_ENC_RSP,regb
+	branch le_send_ll_one_lenth	
+			
+
+le_parse_feature_rsp:
+le_parse_unknown_rsp:
+le_parse_pause_enc_rsp:
+le_parse_reject_ind:
+le_parse_ping_rsp:
+	rtn
+
+
Index: DpiSwitch/program/lmp.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/lmp.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/lmp.prog	(working copy)
@@ -0,0 +1,2521 @@
+	
+/******************************************/
+/*************   LMP Parse   **************/
+/******************************************/
+init_lmp:
+	rtn wake
+init_lmp_work:
+	bpatchx patch2f_4,mem_patch2f
+	setarg 0
+	store 1,mem_lmp_to_send
+	store 1,mem_conn_sm
+	store 1,mem_lmo_opcode1
+	store 1,mem_lmo_opcode2
+	store 1,mem_esco_addr
+	store 1,mem_auth_enable
+	store 1,mem_connection_options
+	store 1,mem_pairing_auth
+	jam SWITCH_FLAG_INIT,mem_switch_flag
+	jam 0,mem_switch_fail_master_count
+	jam NULL_ENCRYP,mem_wait_encryption
+init_lmp_reinit:	
+	jam 0,mem_pairing_auth
+	jam 0,mem_sp_localsm
+	jam 0,mem_lmp_conn_state
+	//fall through
+parse_rx_done:
+	rtn
+
+parse_lmp:
+	bpatchx patch2f_5,mem_patch2f
+	call setlocalsm_master,master	//use this flag in hci
+	ncall setlocalsm_slave,master
+	call lmo_fifo_check
+	nrtn blank
+	fetch 1,mem_state_map
+	rtnbit0 smap_rxlmp
+	set0 smap_rxlmp,pdata
+	set0 mark_rxbuf_inuse,mark
+	store 1,mem_state_map
+	fetch 1,mem_rxbuf
+	fetcht 1,mem_state_map
+	isolate1 smap_lmptidinit,pdata
+	setflag true,smap_lmptid,temp
+	storet 1,mem_state_map
+	and_into 0x2,temp //smap_lmptid only
+	storet 1,mem_lmo_tid2
+	fetcht 1,mem_state_map
+	rshift pdata,pdata			/* align lmp_opcode */
+  	store 1,mem_lmi_opcode2
+	bpatchx patch2f_6,mem_patch2f
+  	fetch 1,mem_lmi_opcode2
+  	beq LMP_ESCAPE,parse_lmp_escape//multi
+  	beq LMP_ACCEPTED,parse_lmp_accepted//multi
+	beq LMP_NOT_ACCEPTED,parse_lmp_not_accepted//multi
+  	beq LMP_SET_AFH, parse_lmp_set_afh
+  	beq LMP_CLKOFFSET_REQ, parse_lmp_clkoffset_req
+ 	beq LMP_ENCRYPTION_MODE_REQ, parse_lmp_encryption_mode_req
+ 	beq LMP_ENCRYPTION_KEY_SIZE_REQ,parse_lmp_crypt_key
+	beq LMP_AUTO_RATE,parse_lmp_auto_rate
+	beq LMP_TEST_CONTROL,parse_lmp_test_control//multi
+	beq LMP_TEST_ACTIVATE,parse_lmp_test_activate
+	beq LMP_SETUP_COMPLETE,parse_lmp_setup_complete
+	beq LMP_SUPERVISION_TIMEOUT,parse_lmp_supervision_timeout
+	beq LMP_FEATURES_REQ,parse_lmp_features_req
+	beq LMP_HOST_CONNECTION_REQ,parse_lmp_conn_req
+	beq LMP_VERSION_REQ,parse_lmp_version_req
+	beq LMP_VERSION_RES,parse_lmp_version_res
+	beq LMP_DETACH,parse_lmp_detach
+	beq LMP_MAX_SLOT,parse_lmp_max_slot
+	beq LMP_MAX_SLOT_REQ,parse_lmp_max_slot_req
+	beq LMP_NAME_REQ,parse_lmp_name_req
+	beq LMP_NAME_RES,parse_lmp_name_res
+	beq LMP_FEATURES_RES,parse_lmp_features_res
+	beq LMP_COMB_KEY,parse_lmp_comb_key
+	beq LMP_AU_RAND, parse_lmp_au_rand
+	beq LMP_IN_RAND,parse_lmp_in_rand
+	beq LMP_SRES,parse_lmp_sres
+	beq LMP_INCR_POWER_REQ,parse_lmp_incr_power
+	beq LMP_DECR_POWER_REQ,parse_lmp_decr_power
+	beq LMP_MAX_POWER, parse_lmp_max_power
+	beq LMP_MIN_POWER, parse_lmp_min_power
+	beq LMP_PAGE_MODE_REQ, parse_lmp_page_mode_req
+	beq LMP_PAGE_SCAN_MODE_REQ, parse_lmp_page_scan_mode_req
+	beq LMP_PREFERRED_RATE, parse_lmp_preferred_rate
+	beq LMP_SLOT_OFFSET, parse_lmp_slot_offset
+	beq LMP_SNIFF_REQ, parse_lmp_sniff_req
+	beq LMP_START_ENCRYPTION_REQ, parse_lmp_start_encryption_req
+	beq LMP_STOP_ENCRYPTION_REQ, parse_lmp_stop_encryption_req
+	beq LMP_SWITCH_REQ, parse_lmp_switch_req
+	beq LMP_TEMP_RAND, parse_lmp_temp_rand
+	beq LMP_TEMP_KEY, parse_lmp_temp_key
+	beq LMP_TIMING_ACCURACY_REQ, parse_lmp_timing_accuracy_req
+	beq LMP_TIMING_ACCURACY_RES, parse_lmp_timing_accuracy_res
+	beq LMP_UNIT_KEY, parse_lmp_unit_key
+	beq LMP_UNSNIFF_REQ, parse_lmp_unsniff_req
+	beq LMP_USE_SEMI_PERMANENT_KEY, parse_lmp_use_semi_permanend_key
+	beq  LMP_ENCAPSULATED_HEADER,parse_lmp_encapsulated_header
+	beq  LMP_ENCAPSULATED_PAYLOAD,parse_lmp_encapsulated_payload
+	beq	LMP_SIMPLE_PAIRING_CONFIRM,parse_simple_pairing_confirm
+	beq  LMP_SIMPLE_PAIRING_NUMBER,parse_lmp_simple_pairing_number
+	beq  LMP_DHKEY_CHECK,parse_dhkey_check
+	beq LMP_CLKOFFSET_RES, parse_lmp_clkoffset_res
+	beq LMP_ENC_KEY_SIZE_MASK_REQ,parse_enc_key_size_mask_req
+/* lmp is not recognized, check to see if we respond to all messages */ 
+/* rejecting the unrecognized message with PDU not recognized */
+reject_unknown_packet:
+	jam UNKNOWN_LMP_PDU,mem_lmo_reason2
+reject_lmp_packet:
+	jam LMP_NOT_ACCEPTED,mem_lmo_opcode2
+	rtn
+
+parse_lmp_clkoffset_req:
+	jam LMP_CLKOFFSET_RES,mem_lmo_opcode2
+	rtn	
+
+parse_enc_key_size_mask_req:
+	jam LMP_ENC_KEY_SIZE_MASK_RES,mem_lmo_opcode2
+	rtn
+	
+parse_lmp_set_afh:
+	fetch 4,mem_rxbuf+1
+	lshift pdata,pdata
+	store 4,mem_afh_instant
+	fetch 1,mem_rxbuf+5
+	store 1,mem_afh_new_mod
+	fetch 5,mem_rxbuf+6
+	store 5,mem_afh_map_new
+	fetch 5,mem_rxbuf+11
+	istore 5,contw
+	fetch 1,mem_mode
+	set1 afh_change,pdata
+	store 1,mem_mode
+	rtn
+parse_lmp_escape:
+	bpatchx patch2f_7,mem_patch2f
+	fetch 1,mem_rxbuf+1
+	set1 7,pdata
+	store 1,mem_lmi_opcode2
+	beq LMP_EXT_ACCEPTED,parse_lmpext_accepted
+	beq LMP_NOT_ACCEPTED_EXT,parse_lmpext_not_accepted
+	beq LMP_SNIFF_SUBRATING_REQ, parse_lmp_sniff_subrating_req
+	beq LMP_SNIFF_SUBRATING_RES, parse_lmp_sniff_subrating_res
+	beq LMP_PACKET_TYPE_TABLE_REQ,parse_lmpext_packet_type_table_req
+	beq LMP_EXT_FEATURES_REQ,parse_lmpext_features_req
+	beq LMP_EXT_FEATURES_RES,parse_lmpext_features_res
+	beq LMP_EXT_CHN_CLASSIFICATION_REQ,parse_lmpext_chn_classification_req
+	beq LMP_PAUSE_ENCRYPTION_REQ,parse_lmpext_pause_encrypt
+	beq LMP_RESUME_ENCRYPTION_REQ,parse_lmpext_resume_encrypt
+	beq LMP_IO_CAP_REQ,parse_lmpext_iocap_req
+	beq LMP_IO_CAP_RES,parse_lmpext_iocap_res
+	rtneq LMP_EXT_FEATURES_RES
+
+
+reject_unknown_ext_packet:
+	jam LMP_NOT_ACCEPTED_EXT,mem_lmo_opcode2
+	jam UNKNOWN_LMP_PDU,mem_lmo_reason2
+	
+	rtn
+parse_lmpext_chn_classification_req:
+	jam LMP_NOT_ACCEPTED_EXT,mem_lmo_opcode2
+	jam NOT_SUPPORT_CHN_CLASSIFICATION,mem_lmo_reason2
+	rtn
+	
+parse_lmpext_iocap_req:
+	call iocap_lmpext_load
+	jam LMP_IO_CAP_RES,mem_lmo_opcode2
+	rtn
+
+parse_lmpext_iocap_res:
+	call iocap_lmpext_load
+	branch iocap_lmpext_common
+	
+iocap_lmpext_load:
+	arg      mem_sp_iocap_remote,contw
+	fetch 3, mem_rxbuf+2
+	istore    3,contw
+	rtn
+	
+iocap_lmpext_common:
+ifdef SIMPLE_PAIRING
+	branch master_set_mem_master_sp_flag,true//is un very ok to use master flag,but we have to add many codes if wo don't
+endif
+	rtn
+parse_lmpext_accepted:
+	fetch 1,mem_rxbuf+3
+	set1 7,pdata
+	store 1,mem_lmi_accepted_opcode
+	beq LMP_PACKET_TYPE_TABLE_REQ,parse_lmpext_accepted_ptt
+	rtn
+
+	
+parse_lmpext_not_accepted:
+	fetch 1,mem_rxbuf+3
+	set1 7,pdata
+	store 1,mem_lmi_accepted_opcode
+	beq LMP_PACKET_TYPE_TABLE_REQ,parse_lmpext_not_accepted_ptt
+	rtn
+
+parse_lmpext_accepted_ptt:
+	fetch 1,mem_ptt
+	fetcht 1,mem_state_map
+	nsetflag blank,smap_edr,temp
+	storet 1,mem_state_map
+parse_lmpext_not_accepted_ptt:
+	fetch 1,mem_state
+	rtnbit0 state_init_seq
+	set0 state_init_seq,pdata
+	store 1,mem_state
+	fetch 1,mem_auth_enable
+	nrtn blank
+	jam LMP_SETUP_COMPLETE,mem_lmo_opcode2
+	rtn
+
+parse_lmpext_pause_encrypt:
+	nbranch parse_lmpext_pause_encrypt_slave, master
+	jam LMP_STOP_ENCRYPTION_REQ,mem_lmo_opcode2
+	branch tid_reply
+
+parse_lmpext_pause_encrypt_slave:	
+	jam LMP_PAUSE_ENCRYPTION_REQ, mem_lmo_opcode2
+	rtn
+
+parse_lmpext_resume_encrypt:
+//trans file to pc may cause pause/resume encrypt
+//if ms is conn_sm_wait_end the controllor won't send ack after recieved start_encypt_accept
+	call tid_reply
+	branch lmp_start_encryption
+
+parse_lmpext_features_req:
+	jam LMP_EXT_FEATURES_RES,mem_lmo_opcode2
+	rtn
+
+parse_lmpext_features_res:
+	fetcht 1,mem_rxbuf+4
+	and temp,0x1,temp
+	storet 1,mem_remote_sppcap
+	fetch 1,mem_hci_cmd
+	bne hci_cmd_wait_remote_ext_feature,parse_lmpext_features_res_not_hci
+	jam 0,mem_hci_cmd
+parse_lmpext_features_res_not_hci:
+	fetch 1,mem_conn_sm
+	rtnne CONN_SM_WAIT_FEATURES_EXT
+	jam CONN_SM_SEND_CONN_REQ,mem_conn_sm
+	branch process_conn_sm
+
+parse_lmp_accepted:
+	bpatchx patch30_0,mem_patch30
+	fetch 1,mem_rxbuf+1
+	store 1,mem_lmi_accepted_opcode
+	beq LMP_HOST_CONNECTION_REQ,parse_lmp_accepted_hostconn//ok
+	beq LMP_IN_RAND,parse_lmp_accepted_inrand//ok
+	beq LMP_ENCRYPTION_MODE_REQ,parse_lmp_accepted_enc_mode//ok
+	beq LMP_ENCRYPTION_KEY_SIZE_REQ,parse_lmp_accepted_enc_keysize//ok
+	beq LMP_START_ENCRYPTION_REQ,parse_lmp_accepted_start_enc//ok
+	beq LMP_STOP_ENCRYPTION_REQ,parse_lmp_accepted_stop_enc//ok
+	beq LMP_UNSNIFF_REQ,parse_lmp_accepted_unsniff_req//ok
+	beq LMP_SNIFF_REQ,parse_lmp_accepted_sniff_req//ok
+	beq LMP_SWITCH_REQ,parse_lmp_accepted_switch
+	// simple pairing 
+	beq LMP_ENCAPSULATED_HEADER,parse_lmp_accepted_encapsulated_header//ok
+	beq LMP_ENCAPSULATED_PAYLOAD,parse_lmp_accepted_encapsulated_payload//ok
+	beq LMP_SIMPLE_PAIRING_NUMBER,parse_lmp_accepted_simple_pairing_number//ok
+	beq LMP_DHKEY_CHECK,parse_lmp_accepted_dhkey_check//ok
+	rtn
+	
+parse_lmp_not_accepted:
+	bpatchx patch30_1,mem_patch30
+	fetch 1,mem_rxbuf+1
+	store 1,mem_lmi_accepted_opcode
+	beq LMP_NAME_REQ,parse_lmp_not_accepted_name_req//ok
+	beq LMP_HOST_CONNECTION_REQ,parse_lmp_not_accepted_hostconn//ok
+	beq LMP_AU_RAND,parse_lmp_not_accepted_aurand//ok
+	beq LMP_IN_RAND,parse_lmp_not_accepted_inrand//ok
+	beq LMP_SWITCH_REQ,parse_lmp_not_accepted_switch//ok
+	/* simple pairing support */
+	beq  LMP_SIMPLE_PAIRING_NUMBER,parse_lmp_not_accepted_simple_pairing_number//ok
+	beq  LMP_DHKEY_CHECK,parse_lmp_not_accepted_dhkey_check//ok
+	beq LMP_UNSNIFF_REQ,parse_lmp_not_accepted_unsniff_req
+	beq LMP_SNIFF_REQ,parse_lmp_not_acdcept_sniff_req
+	rtn
+
+parse_lmp_accepted_switch:
+	jam BT_EVT_SWITCH_ACCEPT,mem_fifo_temp
+	call ui_ipc_send_event
+	branch role_switch_prepare0
+parse_lmp_not_accepted_switch:
+	jam BT_EVT_SWITCH_NOT_ACCEPT,mem_fifo_temp
+	call ui_ipc_send_event
+	jam SWITCH_FLAG_NOT_ACCEPT,mem_switch_flag
+	setarg TIMER_SWITCH_WAITE
+	arg switch_wait_timer,queue
+	branch timer_init
+
+
+parse_lmp_accepted_hostconn:
+	//fetch 1,mem_state
+	//rtnbit0 state_init_seq
+	fetch 1,mem_lmp_conn_state
+	set1 RECEIVED_CONN_REQ,pdata
+	store 1,mem_lmp_conn_state
+	jam BT_EVT_BB_CONNECTED,mem_fifo_temp
+	call ui_ipc_send_event
+	jam LMP_PACKET_TYPE_TABLE_REQ,mem_lmo_opcode2
+	//nbranch parse_lmp_accepted_hostconn_ctn,master
+parse_lmp_accepted_hostconn_ctn:
+	/* checking to see if we requested host connection */
+	fetch 1,mem_conn_sm
+	bne CONN_SM_WAIT_CONN_ACCEPT, parse_rx_done
+	//branch parse_lmp_accepted_hostconn_master,master
+	/* continuing on with host connection state machine */
+	jam CONN_SM_AUTH_PAIR,mem_conn_sm
+	rtn
+	//branch host_create_conn_auth_pair
+
+	/* we need to move fast and send au_rand...jumping to next part of state machine for conn */
+//parse_lmp_accepted_hostconn_master:
+	//jam CONN_SM_AUTH_PAIR ,mem_conn_sm
+//	rtn
+
+parse_lmp_not_accepted_hostconn:
+	jam ACL_CONNECTION_ALREADY_EXISTS,mem_disconn_reason_send
+	jam LMP_DETACH,mem_lmo_opcode2
+	/* clearing connection state machine */
+	jam CONN_SM_STANDBY,mem_conn_sm
+	/* sending error message to host */
+	branch parse_rx_done,true
+	rtn
+
+parse_lmp_accepted_inrand:
+	fetch 1,mem_link_key_exists
+	nrtn blank
+	call clear_linkkey
+	call  lmp_generate_key
+	rtn master
+	set1 mark_slave_in_rand_accepted,mark
+	rtn
+
+parse_lmp_accepted_enc_mode:
+	nrtn master
+	jam LMP_ENCRYPTION_KEY_SIZE_REQ,mem_lmo_opcode2
+	fetch 1,mem_state_map
+	rtnbit0 smap_encryption
+	jam LMP_STOP_ENCRYPTION_REQ,mem_lmo_opcode2
+	rtn
+
+parse_lmp_accepted_enc_keysize:
+	branch lmp_start_encryption
+	
+parse_lmp_accepted_start_enc:
+	call send_create_conn_start_l2cap_timer_sm
+	fetch 1,mem_state
+	rtnbit1 state_conn_comp
+	jam LMP_SETUP_COMPLETE,mem_lmo_opcode2
+	fetch 1,mem_conn_sm
+	rtnne CONN_SM_ENCRYPT_WAIT
+	jam CONN_SM_ENCRYPT_WAIT_CLEAR,mem_conn_sm
+	rtn
+	
+parse_lmp_accepted_stop_enc:
+	/* again this won't work with multipoint. keep track of anyone else encrypting */
+	//jam HOST_STOP_ENCRYPTION,message_queue_B0
+	//jam 1,message_queue_B1
+	//jam HOST_RETURN_SUCCESS,message_queue_B2
+	//fetch 1,mem_lmp_state2
+	//set1 MESSAGE_QUEUE,pdata
+	//store 1,mem_lmp_state2
+	rtn
+
+parse_lmp_not_accepted_aurand:	
+parse_lmp_not_accepted_aurand_send_detach:	
+	jam LMP_DETACH,mem_lmo_opcode2
+	jam OTHER_END_TERMINATED,mem_disconn_reason_send
+	rtn
+/*in pair remote cancel the pair*/
+parse_lmp_not_accepted_inrand:
+	fetch 1,mem_rxbuf+2
+	beq KEY_MISSING,parse_lmp_inrand_key_missing
+	rtnne PAIRING_NOT_ALLOWED
+	jam PAIRING_NOT_ALLOWED,mem_disconn_reason_send
+	jam LMP_DETACH,mem_lmo_opcode2
+	rtn	
+parse_lmp_inrand_key_missing:
+	jam KEY_MISSING,mem_disconn_reason_send
+	jam LMP_DETACH,mem_lmo_opcode2
+	rtn
+	
+parse_lmp_not_accepted_name_req:
+	rtn
+	
+parse_lmp_not_accepted_simple_pairing_number:
+	jam      SP_STAT_NULL,mem_sp_state
+	jam LMP_DETACH,mem_lmo_opcode2
+	branch   parse_rx_done
+	
+parse_lmp_not_accepted_dhkey_check:
+ifdef LMP_DBG
+	call ice_break
+endif
+	jam      SP_STAT_NULL,mem_sp_state
+	jam LMP_DETACH,mem_lmo_opcode2
+	branch   parse_rx_done
+parse_lmp_not_accepted_unsniff_req:
+	jam BT_EVT_UNSNIFF_NOT_ACCEPT,mem_fifo_temp
+	branch ui_ipc_send_event
+	
+parse_lmp_accepted_unsniff_req:
+	jam BT_EVT_UNSNIFF_ACCEPT,mem_fifo_temp
+	call ui_ipc_send_event
+	branch sniff_exit
+	
+parse_lmp_accepted_sniff_req:
+	jam BT_EVT_SNIFF_ACCEPT,mem_fifo_temp
+	call ui_ipc_send_event
+	setarg 0
+	store 2,mem_dsniff
+	fetch 2,mem_sniff_param_interval
+	lshift pdata,pdata
+	store 2,mem_tsniff
+	fetch 1,mem_sniff_param_attempt
+	store 1,mem_sniff_attempt
+	fetch 1,mem_sniff_param_timeout
+	store 1,mem_sniff_timeout
+	branch sniff_init
+	
+parse_lmp_not_acdcept_sniff_req:
+	jam BT_EVT_SNIFF_NOT_ACCEPT,mem_fifo_temp
+	branch ui_ipc_send_event
+	
+parse_lmp_crypt_key:
+	fetcht 1,mem_rxbuf+1
+	storet 1,mem_key_size
+	branch accept_lmp_msg
+	
+parse_lmp_setup_complete:
+	fetch 1,mem_lmp_conn_state
+	set1 RECEIVED_SETUP_COMPLETE,pdata
+	store 1,mem_lmp_conn_state
+	rtnbit1 SENT_SETUP_COMPLETE
+	jam LMP_SETUP_COMPLETE,mem_lmo_opcode2
+	branch parse_rx_done
+	
+parse_lmp_max_slot:
+	//jam LMP_MAX_SLOT,mem_lmi_opcode2
+	//branch accept_lmp_msg
+	rtn
+	
+parse_lmp_max_slot_req:
+	fetch 1,mem_max_slot
+	fetcht 1,mem_rxbuf+1
+	isub temp,null
+	//jam LMP_MAX_SLOT_REQ,mem_lmi_opcode2
+	branch accept_lmp_msg,positive
+	jam LMP_NOT_ACCEPTED,mem_lmo_opcode2
+	jam UNSPECIFIED_ERROR,mem_lmo_reason2
+	jam LMP_MAX_SLOT_REQ,mem_lmi_opcode2
+	rtn
+	
+parse_lmp_detach:
+	call prepare_disconnect
+	branch accept_lmp_msg
+	
+accept_lmp_msg:
+	jam LMP_ACCEPTED,mem_lmo_opcode2
+	rtn
+
+parse_lmp_incr_power:
+	jam LMP_MAX_POWER,mem_lmo_opcode2
+	rtn
+
+parse_lmp_decr_power:
+	jam LMP_MIN_POWER,mem_lmo_opcode2
+	rtn
+	
+parse_lmp_version_res:
+	fetch 1,mem_conn_sm
+	rtneq CONN_SM_WAIT_VERSION
+	/* continuing on with host connection state machine */
+	jam CONN_SM_SEND_FEATURES ,mem_conn_sm
+	/* we need to move fast and send au_rand...jumping to next part of state machine for conn */
+	rtn
+
+
+parse_lmp_auto_rate:
+	rtn	
+
+parse_lmp_in_rand:
+	call lmp_copy_rand
+	jam pincode_state_wait_pincode,mem_pincode_state
+	jam BT_EVT_PINCODE_REQ,mem_fifo_temp
+	call ui_ipc_send_event
+
+	call tid_check
+	nbranch lmp_accept_inrand,true
+	//fetch 1,mem_auth_enable
+	nbranch parse_lmp_inrand_res,master // ignore this because of not ssp temporary
+	jam LMP_NOT_ACCEPTED,mem_lmo_opcode2
+	jam LMP_IN_RAND,mem_lmi_opcode2
+	jam TRANSACTION_COLLISION,mem_lmo_reason2
+	rtn
+parse_lmp_inrand_res:
+	fetch 1,mem_op
+	set1 op_inrand_req,pdata
+	store 1,mem_op
+	rtn
+
+//store current tid
+pop_tid_follow:
+	fetcht 1,mem_state_map
+	nsetflag blank,smap_lmptid,temp
+	storet 1,mem_state_map
+	rtn
+	
+//restore current tid
+push_tid_follow:
+	fetch 1,mem_lmo_tid2
+	rshift pdata,pdata
+	and_into 1,pdata
+	rtn
+
+parse_lmp_au_rand_moudle:
+	fetch 1,mem_nv_data_number
+	rtn blank
+	fetch 1,mem_pairing_auth
+	call load_device_list,blank
+	rtn	
+
+parse_lmp_au_rand:
+	call parse_lmp_au_rand_moudle
+	call push_tid_follow
+	store 1,mem_sres_tid
+	call lmp_copy_rand
+	jam LMP_SRES,mem_lmo_opcode2
+	fetch 1,mem_link_key_exists
+	nrtn blank
+	fetch 1,mem_state
+	rtnbit1 state_combkey		/* we have comb key, but not verified */
+	jam KEY_MISSING,mem_lmo_reason2
+	branch reject_lmp_packet
+
+parse_lmp_sres:	
+	arg mem_plap,rega
+	call function_e1
+	fetch 4,mem_rxbuf+1
+	fetcht 4,mem_input_store
+	isub temp,null
+	branch authentication_ok,zero
+	jam LMP_DETACH,mem_lmo_opcode2
+	jam AUTHENTICATION_FAILURE_ERROR,mem_disconn_reason_send	
+	rtn
+authentication_ok:
+	call authentication_ok_common
+	fetch 1,mem_ssp_enable
+	branch  pairing_success,blank
+	rtn
+
+	
+authentication_ok_common:
+	call copy_aco
+	call linkkey_ready///save link key
+	fetch 1,mem_op
+	isolate1 op_auth_req,pdata
+	set0 op_auth_req,pdata
+	store 1,mem_op
+	fetch 1,mem_conn_sm
+	beq CONN_SM_AUTH_WAIT,authentication_ok_conn_sm
+	beq CONN_SM_PAIRING_WAIT,authentication_ok_conn_sm
+	rtn
+authentication_ok_conn_sm:
+	fetch 1,mem_pairing_auth
+	rtnne DEFALT_PAIRING_AUTH
+	fetch 1,mem_state_map
+	rtnbit1 smap_encryption
+	branch host_create_conn_encrypt
+
+parse_lmp_comb_key:
+	arg mem_rxbuf+1,rega
+	arg mem_kinit,regb
+	arg mem_random_number,contw
+	call xor16
+	arg mem_plap,rega
+	call generate_linkkey
+	jam LMP_AU_RAND,mem_lmo_opcode2
+	fetch 1,mem_state
+	bbit0 state_combkey,lmp_generate_key
+	rtn
+	
+parse_lmp_name_res:
+	fetch 2,mem_len
+	add pdata,-3,loopcnt	//for remote name length error
+	fetcht 1,mem_rxbuf+1
+	setarg mem_tmp_buffer
+	iadd temp,contw
+	arg mem_rxbuf+3,contr
+	call memcpy
+	fetcht 1,mem_name_offset
+	fetch 1,mem_rxbuf+2
+	isub temp,pdata
+	sub pdata,14,null
+	branch parse_lmp_name_res_end,positive
+	add temp,14,pdata
+	store 1,mem_name_offset
+	jam LMP_NAME_REQ,mem_lmo_opcode2
+	rtn
+parse_lmp_name_res_end:
+	fetch 1,mem_state_map
+	set1 smap_name_res,pdata
+	store 1,mem_state_map
+	bbit1 smap_name_req,lmp_disconnect
+	rtn
+parse_lmp_name_req:
+	fetch 1,mem_rxbuf+1
+	store 1,mem_lmi_opcode2 //offset 
+	jam LMP_NAME_RES,mem_lmo_opcode2
+	rtn
+
+parse_lmp_conn_req:
+	branch accept_lmp_msg
+
+parse_lmp_timing_accuracy_req:
+	jam LMP_TIMING_ACCURACY_RES,mem_lmo_opcode2
+	rtn
+
+parse_lmp_features_req:
+	jam LMP_FEATURES_RES,mem_lmo_opcode2
+	rtn
+
+parse_lmp_version_req:
+	jam LMP_VERSION_RES,mem_lmo_opcode2
+	rtn
+
+parse_lmp_supervision_timeout:
+//	fetch 2,mem_rxbuf+1
+//	store 2,mem_supervision_to
+	rtn
+	
+
+
+parse_lmp_sniff_subrating_req:
+	fetch 2,mem_tsniff
+	iforce temp
+	fetch 1,mem_rxbuf+2
+	store 1,mem_subsniff_rate
+	imul32 temp,temp
+	fetch 2,mem_rxbuf+3
+	lshift pdata,pdata
+	store 2,mem_subsniff_tcmax
+	fetch 4,mem_rxbuf+5
+	lshift pdata,pdata
+ 	store 4,mem_subsniff_instant
+	//product pdata
+	deposit temp
+	store 2,mem_subsniff_tsniff
+	rtn
+parse_lmpext_packet_type_table_req:
+	fetcht 1,mem_ptt
+	fetch 1,mem_rxbuf+2
+	ixor temp,null
+	nbranch reject_unknown_ext_packet,zero
+	isolate1 0,pdata
+	fetch 1,mem_state_map
+	setflag true,smap_edr,pdata
+	store 1,mem_state_map
+	jam LMP_EXT_ACCEPTED,mem_lmo_opcode2
+	jam LMP_PACKET_TYPE_TABLE_REQ,mem_lmi_opcode2
+	rtn
+
+	
+parse_lmp_sniff_subrating_res:
+parse_lmp_preferred_rate:
+parse_lmp_max_power:
+parse_lmp_min_power:
+	rtn
+parse_lmp_page_mode_req:
+	//jam LMP_PAGE_MODE_REQ,mem_lmi_opcode2
+	branch accept_lmp_msg
+parse_lmp_page_scan_mode_req:
+	//this can influence connection. need accepted
+	//jam LMP_PAGE_SCAN_MODE_REQ,mem_lmi_opcode2
+	branch accept_lmp_msg
+
+
+	
+parse_lmp_slot_offset:
+	fetch 2,mem_rxbuf+1
+	store 2,mem_slot_offset
+	rtn
+
+parse_lmp_sniff_req_check_sniff_para:
+	fetch 2,mem_rxbuf+4 /* tsniff */
+	fetcht 1,mem_lpm_mult
+	imul32 temp,pdata
+	arg 0x640,temp
+	isub temp,null
+//	branch lmp_reject_sniff,positive
+	rtn
+	
+parse_lmp_sniff_req:
+	fetch 2,mem_rxbuf+6
+	branch lmp_reject_sniff,blank
+	call parse_lmp_sniff_req_check_sniff_para
+	branch lmp_reject_sniff,positive
+	fetch 1,mem_device_option
+	sub pdata,dvc_op_module,null
+	call module_set_lpm_mult_2,zero
+	fetch 1,mem_state
+	bbit1 state_insniff,lmp_reject_sniff
+	fetch 2,mem_rxbuf+2 /* dsniff */
+	lshift pdata,pdata
+	store 2,mem_dsniff	
+	fetch 2,mem_rxbuf+4 /* tsniff */
+	lshift pdata,pdata
+	store 2,mem_tsniff
+	fetch 2,mem_rxbuf+6 /* sniff attempt */
+	store 1,mem_sniff_attempt
+	iforce temp
+	fetch 2,mem_rxbuf+8 /* sniff timeout */
+	store 1,mem_sniff_timeout
+	isub temp,null
+	nbranch set_big_value_to_attempt,positive
+	store 1,mem_sniff_attempt
+set_big_value_to_attempt:	
+	//call sniff_init
+	jam LMP_ACCEPTED,mem_lmo_opcode2
+	jam LMP_SNIFF_REQ,mem_lmi_opcode2
+	rtn
+
+lmp_reject_sniff:
+	jam PDU_NOT_ALLOWED,mem_lmo_reason2
+	branch reject_lmp_packet
+
+parse_lmp_start_encryption_req:
+	call accept_lmp_msg
+	call lmp_copy_rand
+	call function_e3
+	branch start_encryption
+	
+parse_lmp_stop_encryption_req:
+	call accept_lmp_msg
+	branch stop_encryption
+	
+
+parse_lmp_switch_req:
+	fetch 4,mem_rxbuf+1
+	lshift pdata,pdata
+	//branch parse_lmp_switch_req_not_accept
+	branch parse_lmp_switch_accept,master
+	fetcht 1,mem_link_key_exists
+	nbranch parse_lmp_switch_req_clear_mark,blank
+parse_lmp_switch_req_not_accept:
+	jam LMP_NOT_ACCEPTED,mem_lmo_opcode2
+	jam LMP_SWITCH_REQ,mem_lmi_opcode2
+	jam PDU_NOT_ALLOWED,mem_lmo_reason2
+	rtn
+parse_lmp_switch_req_clear_mark:
+	jam LMP_SLOT_OFFSET,mem_lmo_opcode2
+	jam 0,mem_conn_sm
+	branch role_switch_prepare
+
+parse_lmp_switch_accept:
+	call role_switch_prepare
+	set1 mark_reconn_recieve_switch,mark
+	fetch 1,mem_connection_options
+	set0 CONNECTION_SWITCH,pdata
+	store 1,mem_connection_options
+	branch accept_lmp_msg
+
+	
+
+parse_lmp_temp_rand:
+parse_lmp_temp_key:
+parse_lmp_timing_accuracy_res:	
+parse_lmp_unit_key:	
+parse_lmp_use_semi_permanend_key:
+	rtn
+
+	
+parse_lmp_unsniff_req:
+	jam LMP_ACCEPTED,mem_lmo_opcode2
+	jam LMP_UNSNIFF_REQ,mem_lmi_opcode2
+	jam BT_EVT_REMOTE_UNSNIFF,mem_fifo_temp
+	call ui_ipc_send_event
+	branch sniff_exit
+	
+parse_lmp_encapsulated_header:
+	fetch 1,mem_rxbuf+1
+	bne ENCAPSULATED_MAJOR_TYPE_P192,parse_lmp_encapsulated_header_reject
+	fetch 1,mem_rxbuf+2
+	bne ENCAPSULATED_MINOR_TYPE_P192,parse_lmp_encapsulated_header_reject
+	fetch 1,mem_rxbuf+3
+	bne ENCAPSULATED_LEN_P192,parse_lmp_encapsulated_header_reject
+	call check_localsm
+	branch parse_lmp_encapsulated_header_master,true
+	jam SP_STAT_KEY_RECV,mem_sp_state
+parse_lmp_encapsulated_header_master:
+	jam LMP_ACCEPTED,mem_lmo_opcode2
+	jam LMP_ENCAPSULATED_HEADER,mem_lmi_opcode2
+	branch parse_rx_done
+	
+parse_lmp_encapsulated_header_reject:
+	jam      PDU_NOT_ALLOWED,mem_lmo_reason2
+	branch   reject_lmp_packet
+	
+parse_lmp_accepted_encapsulated_header:
+	//jam LMP_ENCAPSULATED_PAYLOAD,mem_lmi_opcode2
+	//branch   accept_lmp_msg  	
+	jam LMP_ENCAPSULATED_PAYLOAD,mem_lmo_opcode2
+      //   branch   accept_lmp_msg  	
+         rtn
+parse_lmp_accepted_simple_pairing_number:
+	fetch 1,mem_ssp_mode_flag
+	beq SSP_MODE_SSP_PIN_FLAG,parse_lmp_accepted_simple_pairing_number_ssp_pin
+	beq SSP_MODE_PASSKEY_ENTRY_FLAG,parse_lmp_accepted_simple_pairing_number_passkey
+parse_lmp_accepted_simple_pairing_number_common:
+	call check_localsm
+	rtn true
+	jam SP_STAT_CONFIRM_RECV,mem_sp_state
+	rtn
+
+parse_lmp_accepted_simple_pairing_number_ssp_pin:
+	call g_noninit_number_confirm
+	jam BT_EVT_BT_GKEY_GENERATE,mem_fifo_temp
+	call ui_ipc_send_event
+	branch parse_lmp_accepted_simple_pairing_number_common
+
+
+parse_lmp_accepted_simple_pairing_number_passkey:
+	call check_localsm
+	rtn true
+	fetch 1,mem_authentication_passkey_times
+	beq 19,authentication_passkey_end
+	increase 1,pdata
+	store 1,mem_authentication_passkey_times
+//	branch p_authentication_passkey
+
+authentication_passkey:
+	jam      SP_FLAG_COMMIT,mem_sp_flag
+	jam      SP_STAT_COMMIT_CALC,mem_sp_state 
+	fetch 1,mem_authentication_passkey_times
+	copy pdata,queue
+	fetch 6,mem_pin
+	qisolate1 pdata
+	setarg 0x80
+	setflag true,0,pdata
+	store 1,mem_passkey_1bit
+	rtn
+
+authentication_passkey_end:	
+	jam SP_STAT_CONFIRM_RECV,mem_sp_state
+	rtn
+
+parse_lmp_accepted_dhkey_check:
+	call parse_lmp_accepted_dhkey_check_common
+pairing_success:
+	fetch 1,mem_flag_pairing_state
+	rtn blank
+	jam FLAG_PAIRING_STATE_NOT_PAIRING,mem_flag_pairing_state
+	jam BT_EVT_BT_PAIRING_SUCCESS,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+parse_lmp_accepted_dhkey_check_common:
+	//here must be change***  shyd
+	call check_localsm
+ifdef SIMPLE_PAIRING
+	ncall g_noninit,true	//when be master  call g_init
+	call g_init,true
+endif
+	call check_localsm
+	rtn true
+	jam SP_STAT_LINK_KEY_CALC,mem_sp_state
+	jam SP_FLAG_COMMIT,mem_sp_flag
+	rtn
+
+parse_simple_pairing_confirm:
+	arg mem_sp_confirm_remote,contw
+	arg mem_rxbuf+1,contr
+	call memcpy16
+	fetch 1,mem_ssp_mode_flag
+	rtneq  SSP_MODE_PASSKEY_ENTRY_FLAG
+ifdef SIMPLE_PAIRING
+	branch master_set_mem_master_sp_flag
+endif
+	
+parse_lmp_encapsulated_payload:
+	fetch 1,mem_master_sp_state
+	beq SP_STAT_RANDOM_SEND,parse_encapsulated_payload_master
+	fetch    1,mem_sp_state
+	bne SP_STAT_KEY_RECV,parse_lmp_encapsulated_payload_reject
+parse_encapsulated_payload_master:
+	fetch    1,mem_sp_remote_key_recv_count
+	sub      pdata,0x20,contw
+	nbranch  parse_lmp_encapsulated_payload_reject,positive
+	arg      mem_sp_pubkey_remote,contw
+	iadd     contw,contw
+	fetch 8,mem_rxbuf+1
+	istore   8,contw
+	fetch 8,mem_rxbuf+9
+	istore   8,contw
+	fetch    1,mem_sp_remote_key_recv_count
+	increase 16,pdata
+	store    1,mem_sp_remote_key_recv_count
+	bne ENCAPSULATED_LEN_P192,accept_lmp_msg
+parse_lmp_encapsulated_payload_completed:
+	call check_localsm
+	branch accept_lmp_msg,true
+	jam      SP_KEY_VALID,mem_sp_remote_key_invalid
+	jam      SP_STAT_KEY_GENERATE,mem_sp_state
+	jam      SP_FLAG_COMMIT,mem_sp_flag  
+	branch   accept_lmp_msg
+parse_lmp_encapsulated_payload_reject:
+	jam      PDU_NOT_ALLOWED,mem_lmo_reason2
+	branch   reject_lmp_packet	
+parse_lmp_accepted_encapsulated_payload: 
+	fetch 1,mem_sp_local_key_send_count
+	beq	ENCAPSULATED_LEN_P192,parse_lmp_encapsulated_payload_all_accepted
+	jam LMP_ENCAPSULATED_PAYLOAD,mem_lmo_opcode2
+	branch   parse_rx_done 
+	
+parse_lmp_encapsulated_payload_all_accepted:   
+	call check_localsm
+	branch parse_lmp_encapsulated_payload_all_accepted_master,true
+	fetch 1,mem_ssp_mode_flag
+	beq SSP_MODE_PASSKEY_ENTRY_FLAG,parse_lmp_encapsulated_payload_all_accepted_get_passkey
+	jam      SP_FLAG_COMMIT,mem_sp_flag
+	jam      SP_STAT_COMMIT_CALC,mem_sp_state 
+	branch   parse_rx_done
+
+parse_lmp_encapsulated_payload_all_accepted_get_passkey:
+	jam BT_EVT_BT_GET_PASSKEY,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+parse_lmp_encapsulated_payload_all_accepted_master:
+	//call sp_master_generate_local_key
+	branch   parse_rx_done   
+
+parse_lmp_simple_pairing_number:
+	fetch 1,mem_master_sp_state
+	beq SP_STAT_RANDOM_SEND,parse_lmp_simple_pairing_number_master
+	fetch    1,mem_sp_state
+	bne SP_STAT_RANDOM_RECV,parse_lmp_simple_pairing_number_reject
+parse_lmp_simple_pairing_number_master:
+	arg      mem_sp_random_remote,contw
+	fetch 8,mem_rxbuf+1
+	istore   8,contw
+	fetch 8,mem_rxbuf+9
+	istore   8,contw
+	call check_localsm
+	branch parse_lmp_simple_pairing_number_master0,true
+	jam      SP_STAT_RANDOM_SEND,mem_sp_state
+	jam      SP_FLAG_COMMIT,mem_sp_flag
+	branch accept_lmp_msg  
+parse_lmp_simple_pairing_number_master0:
+	jam SP_STAT_COMMIT_CALC,mem_master_sp_state
+ifdef SIMPLE_PAIRING
+	branch master_set_mem_master_sp_flag
+endif
+	//jam LMP_SIMPLE_PAIRING_NUMBER,mem_lmi_opcode2
+	//branch accept_lmp_msg  
+parse_lmp_simple_pairing_number_reject:
+	jam      PDU_NOT_ALLOWED,mem_lmo_reason2
+	branch reject_lmp_packet
+	
+parse_dhkey_check:
+	fetch    1,mem_master_sp_state
+	beq SP_STAT_CONFIRM_SEND,parse_dhkey_check_master
+	fetch    1,mem_sp_state
+	bne SP_STAT_CONFIRM_RECV,parse_lmp_dhkey_check_reject
+parse_dhkey_check_master:
+	arg      mem_sp_check_result,contw
+	arg mem_rxbuf+1,contr
+	call memcpy16
+	call check_localsm
+	branch parse_dhkey_check_master0,true
+	fetch 1,mem_ssp_mode_flag
+	beq SSP_MODE_SSP_PIN_FLAG,number_comparison_mode
+number_comparison_successed:
+	jam 0,mem_flag_mode_ssp_pin
+	jam SP_STAT_CONFIRM_CHECK,mem_sp_state
+	jam SP_FLAG_COMMIT,mem_sp_flag
+	jam LMP_DHKey_Check,mem_lmi_opcode2
+	branch   parse_rx_done
+	
+parse_dhkey_check_master0:
+	jam      SP_STAT_CONFIRM_CHECK,mem_master_sp_state
+	jam      SP_FLAG_COMMIT,mem_master_sp_flag
+	branch   parse_rx_done
+parse_lmp_dhkey_check_reject:
+	jam      PDU_NOT_ALLOWED,mem_lmo_reason2
+	branch reject_lmp_packet
+
+number_comparison_mode:
+	fetch 1,mem_flag_mode_ssp_pin
+	bbit1 FLAG_MODE_SSP_PIN_REVICEVE_COMPARISON_BIT ,comparison_result
+	set1 FLAG_MODE_SSP_PIN_RECIEVE_DHKEY_BIT,pdata
+	store 1,mem_flag_mode_ssp_pin
+	rtn
+	
+comparison_result:
+	bbit1 FLAG_MODE_SSP_PIN_COMPARISON_RESULT_BIT,number_comparison_successed
+	jam 0,mem_flag_mode_ssp_pin
+	branch parse_lmp_dhkey_check_reject
+
+	
+parse_lmp_clkoffset_res:
+	branch parse_rx_done
+		
+parse_lmp_encryption_mode_req:
+	fetch 1,mem_connection_options
+	set0 CONNECTION_ENCRYPT
+	store 1,mem_connection_options
+	call accept_lmp_msg
+	nrtn master					/* do sth only if we're master */
+	fetch 1,mem_rxbuf+1
+	fetcht 1,mem_op
+	setflag blank,op_stop_enc,temp
+	nsetflag blank,op_start_enc,temp
+	storet 1,mem_op
+	rtn 
+	
+parse_lmp_features_res:
+	fetcht 8,mem_rxbuf+1		/*fix bcp(baoshijie) err*/
+parse_lmp_features_res_not_hci:	
+	fetch 1,mem_conn_sm
+	rtnne CONN_SM_WAIT_FEATURES_RES
+
+	fetch 1,mem_connection_options
+	bbit0 CONNECTION_FEATURE_EXT,parse_lmp_send_conn
+
+	jam CONN_SM_SEND_FEATURES_EXT,mem_conn_sm
+	rtn
+parse_lmp_send_conn:
+	jam CONN_SM_SEND_CONN_REQ,mem_conn_sm
+	rtn
+parse_lmp_test_activate:
+	fetch 1,mem_debug_config
+	store 1,mem_test_mode_old_debug_config
+	jam LMP_ACCEPTED,mem_lmo_opcode2
+	jam LMP_TEST_ACTIVATE,mem_lmi_opcode2
+	rtn
+parse_lmp_test_control:
+	/* the 9 test control parameters are XORed with 0x55 */
+	/* doing the XOR here and storing in mem_temp_payload */
+	jam LMP_ACCEPTED,mem_lmo_opcode2
+	jam LMP_TEST_CONTROL,mem_lmi_opcode2
+	force 9,loopcnt
+	arg mem_rxbuf+1,contr
+	arg mem_temp_payload,contw
+parse_lmp_test_xor:
+	ifetch 1,contr
+	xor_into 0x55,pdata
+	istore 1,contw
+	loop parse_lmp_test_xor
+	fetch 1,test_mode_scenario
+	fetcht 1,mem_tester_emulate
+	set0 tester_no_whitening,temp
+	set0 tester_pattern_test,temp
+	beq EXIT_TEST_MODE,	 parse_lmp_test_control_exit
+	beq PAUSE_TEST_MODE,	 parse_lmp_test_control_pause
+	beq CLOSED_LOOP_BACK_ACL,	 parse_lmp_test_control_loopback
+	beq ACL_WITHOUT_WHITENING,	 parse_lmp_test_control_loopback_nowhite
+	beq CLOSED_LOOP_BACK_SCO,	 parse_lmp_test_control_loopback
+	beq SCO_WITHOUT_WHITENING,	 parse_lmp_test_control_loopback_nowhite
+	beq ZERO_PATTERN,	 parse_lmp_test_control_pattern
+	beq ONE_PATTERN,	 parse_lmp_test_control_pattern
+	beq ALT_PATTERN,	 parse_lmp_test_control_pattern
+	beq ALT2_PATTERN,	 parse_lmp_test_control_pattern
+	beq PSEUDORANDOM,	 parse_lmp_test_control_pattern
+	rtn
+parse_lmp_test_control_exit:
+	/* restoring old parameters */
+	fetch 1,mem_tester_emulate
+	set1 tester_exit,pdata
+	set1 tester_change,pdata
+	store 1,mem_tester_emulate
+	rtn
+parse_lmp_test_control_pattern:
+	set1 tester_pattern_test,temp
+	jam 5,mem_lch_code
+	fetch 2,test_mode_data_length
+	iforce loopcnt
+	store 2,mem_len
+	arg mem_rxbuf,contw
+	call pn9
+parse_lmp_test_control_loopback_nowhite:
+	set1 tester_no_whitening,temp
+parse_lmp_test_control_loopback:
+	set1 tester_change,temp
+	force 0,pdata
+	store 1,mem_slave_rcvcnt
+	store 2,mem_tst_pktcnt_crc
+	store 2,mem_tst_pktcnt_dmh
+	store 2,mem_tst_pktcnt_hec
+	store 2,mem_tst_pktcnt_sync
+	fetch 1,test_mode_hopping_mode
+	compare FIXED_FREQ,pdata,0xff
+	setflag true,tester_fixed_freq,temp
+	storet 1,mem_tester_emulate
+	rtn
+
+parse_lmp_test_control_pause:
+	set0 mark_testmode,mark
+	jam 0,mem_tester_emulate
+	fetch 1,mem_debug_config
+	set0 debug_tx_pattern,pdata
+	store 1,mem_debug_config
+	rtn
+
+
+	
+	
+
+lmp_copy_rand:	
+	arg mem_rxbuf+1,contr
+	arg mem_random_number,contw
+	branch memcpy16
+
+lmp_generate_key:
+	jam LMP_COMB_KEY,mem_lmo_opcode2
+	rtn
+
+lmp_start_encryption:
+	nrtn master
+	jam LMP_START_ENCRYPTION_REQ,mem_lmo_opcode2
+	rtn
+	
+lmp_accept_inrand:
+	arg mem_lap,rega
+	call generate_kinit
+	jam LMP_ACCEPTED,mem_lmo_opcode2
+	jam LMP_IN_RAND,mem_lmi_opcode2
+	rtn
+
+lmp_disconnect:
+	jam 10,mem_conn_timer
+	jam LMP_DETACH,mem_lmo_opcode2
+	jam LOCAL_HOST,mem_disconn_reason_send	
+	rtn
+
+/*********************************/
+/*********lmp send*************/
+/********************************/
+	/* enable user if a lmp packet is to send */
+send_lmp:
+	bpatchx patch30_2,mem_patch30
+	disable user
+	call lmo_fifo_process
+	fetch 1,mem_lmp_to_send
+	rtn blank
+/* lmp message to be processed. this will either be because host??? */
+/* wants to send a lmp message or because one resulted from the LMP */
+/* processing section */
+/********* outgoing lmp lookup table *************/
+	bbit1 7,send_lmp_escape
+send_lmp0:
+	beq LMP_NAME_REQ,	 send_lmp_name_req
+	beq LMP_NAME_RES,	 send_lmp_name_res
+	beq LMP_ACCEPTED,	 send_lmp_accepted
+	beq LMP_NOT_ACCEPTED,	 send_lmp_not_accepted
+	beq LMP_FEATURES_REQ,	 send_lmp_features_req
+	beq LMP_FEATURES_RES,	 send_lmp_features_res
+	beq LMP_TIMING_ACCURACY_RES,	 send_lmp_timing_accuracy_res
+	beq LMP_VERSION_REQ,	 send_lmp_version_req
+	beq LMP_VERSION_RES,	 send_lmp_version_res
+	beq LMP_SETUP_COMPLETE,	 send_lmp_setup_complete
+	beq LMP_SUPERVISION_TIMEOUT,	 send_lmp_superto
+	beq LMP_HOST_CONNECTION_REQ,send_lmp_no_payload
+	beq LMP_IN_RAND,send_lmp_inrand
+	beq LMP_COMB_KEY,send_lmp_comb_key
+	beq LMP_AU_RAND,send_lmp_aurand
+	beq LMP_SRES,send_lmp_sres
+	beq LMP_ENCRYPTION_MODE_REQ,send_lmp_encryption_mode_req
+	beq LMP_ENCRYPTION_KEY_SIZE_REQ,send_lmp_encryption_key_size_req
+	beq LMP_START_ENCRYPTION_REQ,send_lmp_start_encryption
+	beq LMP_DETACH,send_lmp_detach
+	beq LMP_QUALITY_OF_SERVICE_REQ, send_lmp_quality_of_service_req
+	beq LMP_UNIT_KEY,send_lmp_unit_key
+	//Optional (O)
+	beq LMP_INCR_POWER_REQ,send_lmp_inc_power	
+	beq LMP_CLKOFFSET_RES, send_lmp_clkoffset_res	
+	beq LMP_MAX_POWER,send_lmp_nopayload_reply
+	beq LMP_MAX_SLOT, send_lmp_max_slot
+	beq LMP_MAX_SLOT_REQ, send_lmp_max_slot_req
+	beq LMP_MIN_POWER,send_lmp_nopayload_reply
+	beq LMP_SLOT_OFFSET, send_lmp_slot_offset
+	beq LMP_SWITCH_REQ, send_lmp_switch_req
+	beq LMP_SNIFF_REQ, send_lmp_sniff_req
+	beq LMP_STOP_ENCRYPTION_REQ, send_lmp_stop_encryption_req	
+	beq LMP_TIMING_ACCURACY_REQ, send_lmp_timing_accuracy_req
+	beq LMP_UNSNIFF_REQ, send_lmp_unsniff_req
+	beq LMP_ENCAPSULATED_HEADER,send_lmp_encapsulated_header
+	beq LMP_ENCAPSULATED_PAYLOAD,send_lmp_encapsulated_payload
+	beq LMP_SIMPLE_PAIRING_CONFIRM,send_lmp_simple_pairing_comfirm
+	beq LMP_SIMPLE_PAIRING_NUMBER,send_lmp_simple_pairing_number
+	beq LMP_DHKEY_CHECK,send_lmp_dhkey_check
+	beq LMP_AUTO_RATE,send_lmp_auto_rate
+	beq LMP_ENC_KEY_SIZE_MASK_RES,send_lmp_enc_key_size_mask_res
+	//master only must(M)
+	beq LMP_CLKOFFSET_REQ, send_lmp_clkoffset_req
+	beq LMP_QUALITY_OF_SERVICE, send_lmp_quality_of_service
+	beq LMP_TEST_ACTIVATE, send_lmp_test_activate
+	beq LMP_TEST_CONTROL, send_lmp_test_control
+send_lmp_error:
+	branch assert
+	rtn
+send_lmp_escape:
+	beq LMP_EXT_ACCEPTED,send_lmpext_accepted
+	beq LMP_EXT_FEATURES_RES,send_lmpext_features_res
+	beq LMP_NOT_ACCEPTED_EXT,send_lmpext_not_accepted
+	beq LMP_EXT_FEATURES_REQ,send_lmpext_features_req
+	beq LMP_PACKET_TYPE_TABLE_REQ,send_lmpext_packet_type_table_req
+	beq LMP_PAUSE_ENCRYPTION_REQ,send_lmpext_pause_encryption_req
+	beq LMP_IO_CAP_REQ,send_lmp_io_cap_req
+         beq LMP_IO_CAP_RES,send_lmpext_io_cap_res
+         beq LMP_SNIFF_SUBRATING_REQ,send_lmpext_sniff_subrating_req
+         beq LMP_SNIFF_SUBRATING_RES,send_lmpext_sniff_subrating_res
+	branch assert
+
+
+/******** LMP follow messages **********/
+/****** TID follow received packet  *******/
+
+send_lmp_accepted:
+	force 2,pdata
+	call msg_send_lmp
+	fetch 1,mem_lmi_opcode
+	istore 1,contw
+	call send_lmp_follow
+	bpatchx patch30_3,mem_patch30
+	fetch 1,mem_lmi_opcode
+	beq LMP_IN_RAND,send_lmp_accepted_inrand
+	beq LMP_ENCRYPTION_MODE_REQ,send_lmp_accepted_enc_mode
+	beq LMP_ENCRYPTION_KEY_SIZE_REQ,send_lmp_accepted_enc_key
+	beq LMP_SNIFF_REQ,send_lmp_accept_sniff_req
+	beq LMP_HOST_CONNECTION_REQ,send_lmp_accepted_connection
+	beq LMP_DHKEY_CHECK,send_lmp_accept_dhkey_check
+	beq LMP_START_ENCRYPTION_REQ,send_create_conn_start_l2cap_timer_sm  
+	rtn	
+	
+send_create_conn_start_l2cap_timer_sm:
+	fetch 1,mem_conn_sm
+	rtn blank
+	jam CONN_SM_WAIT_DONE,mem_conn_sm
+	setarg TIMER_ENPT_WAITE
+	arg enpt_delay_timer,queue
+	branch timer_init
+	
+send_lmp_accept_sniff_req:
+	branch sniff_init
+send_lmp_not_accepted:
+	force 3,pdata
+	call msg_send_lmp
+	fetch 1,mem_lmi_opcode
+	beq LMP_AU_RAND,send_not_accept_aurand
+	istore 1,contw
+	fetch 1,mem_lmo_reason
+	istore 1,contw
+	branch send_lmp_follow
+
+send_not_accept_aurand:
+	istore 1,contw
+	fetch 1,mem_lmo_reason
+	istore 1,contw
+	arg mem_sres_tid,temp
+	branch special_tid_store
+
+send_lmpext_accepted:	
+	force 4,queue
+	call send_lmpext
+	setarg LMP_ESCAPE
+	istore 1,contw
+	fetch 1,mem_lmi_opcode
+	set0 7,pdata
+	istore 1,contw
+	fetch 1,mem_lmi_opcode
+	branch send_lmp_follow
+
+send_lmpext_not_accepted:
+	force 5,queue
+	call send_lmpext
+	setarg LMP_ESCAPE
+	istore 1,contw
+	fetch 1,mem_lmi_opcode
+	set0 7,pdata
+	istore 1,contw
+	fetch 1,mem_lmo_reason
+	istore 1,contw
+	branch send_lmp_follow
+	
+
+send_lmp_accepted_inrand:
+	call clear_linkkey
+	call tid_check	
+	rtn true
+	branch lmp_generate_key
+
+send_lmp_accepted_enc_mode:
+	fetch 1,mem_op
+	bbit1 op_start_enc,send_lmp_accepted_enc_start
+	rtnbit0 op_stop_enc
+	jam LMP_STOP_ENCRYPTION_REQ,mem_lmo_opcode2
+	set0 op_stop_enc,pdata
+	call tid_reply
+	branch send_lmp_accepted_enc_exit
+send_lmp_accepted_enc_start:
+	jam LMP_ENCRYPTION_KEY_SIZE_REQ,mem_lmo_opcode2
+	set0 op_start_enc,pdata
+send_lmp_accepted_enc_exit:
+	store 1,mem_op
+	rtn
+
+send_lmp_accepted_enc_key:
+	call check_localsm
+	branch lmp_start_encryption,true
+	rtn
+
+send_lmp_accepted_connection:
+	jam LMP_PACKET_TYPE_TABLE_REQ,mem_lmo_opcode2
+	//jam LMP_SETUP_COMPLETE,mem_lmo_opcode2
+	fetch 1,mem_lmp_conn_state
+	set1 RECEIVED_CONN_REQ,pdata
+	store 1,mem_lmp_conn_state
+	jam BT_EVT_BB_CONNECTED,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+send_lmp_accept_dhkey_check:
+	rtn
+/******** LMP reply messages **********/
+/****** TID always set to remote  *******/
+
+send_lmpext_features_res:
+	force 12,queue
+	call send_lmpext
+	setarg 0x01
+	istore 1,contw
+	fetch 2,mem_lmpext_ssp_enable
+	istore 2,contw
+	setarg 0
+	istore 3,contw
+	setarg 0x00
+	istore 4,contw
+	branch send_lmp_reply
+send_lmpext_io_cap_res:     
+	force 5,queue
+         call send_lmpext
+       	fetch 3,mem_sp_iocap_local
+         istore 3,contw
+	call send_lmp_reply
+	jam FLAG_PAIRING_STATE_PAIRING,mem_flag_pairing_state
+	fetch 1,mem_sp_iocap_local
+	beq DISPLAY_YESNO,responder_iocap_display_yesno
+	beq KEYBOARD_ONLY,responder_iocap_keyboard_only
+	beq NO_INPUT_NO_OUTPUT,responder_iocap_no_input_no_output
+	rtn
+
+responder_iocap_keyboard_only:
+	fetch 1,mem_sp_iocap_remote
+	beq DISPLAY_ONLY,responder_iocap_keyboard_only_initiator_iocap_display_only
+	beq DISPLAY_YESNO,responder_iocap_keyboard_only_initiator_iocap_display_yesno
+	beq KEYBOARD_ONLY,responder_iocap_keyboard_only_initiator_iocap_keyboard_only
+	beq NO_INPUT_NO_OUTPUT,responder_iocap_keyboard_only_initiator_iocap_no_input_no_output
+	rtn
+
+
+responder_iocap_display_yesno:
+	fetch 1,mem_sp_iocap_remote
+	beq DISPLAY_ONLY,responder_iocap_display_yesno_initiator_iocap_display_only
+	beq DISPLAY_YESNO,responder_iocap_display_yesno_initiator_iocap_display_yesno
+	beq KEYBOARD_ONLY,responder_iocap_display_yesno_initiator_iocap_keyboard_only
+	beq NO_INPUT_NO_OUTPUT,responder_iocap_display_yesno_initiator_iocap_no_input_no_output
+	rtn
+
+	
+responder_iocap_no_input_no_output:
+	fetch 1,mem_sp_iocap_remote
+	beq DISPLAY_ONLY,responder_iocap_no_input_no_output_initiator_iocap_display_only
+	beq DISPLAY_YESNO,responder_iocap_no_input_no_output_initiator_iocap_display_yesno
+	beq KEYBOARD_ONLY,responder_iocap_no_input_no_output_initiator_iocap_keyboard_only
+	beq NO_INPUT_NO_OUTPUT,responder_iocap_no_input_no_output_initiator_iocap_no_input_no_output
+	rtn
+
+responder_iocap_keyboard_only_initiator_iocap_no_input_no_output:
+responder_iocap_display_yesno_initiator_iocap_no_input_no_output:
+responder_iocap_display_yesno_initiator_iocap_display_only:
+responder_iocap_no_input_no_output_initiator_iocap_display_only:
+responder_iocap_no_input_no_output_initiator_iocap_display_yesno:
+responder_iocap_no_input_no_output_initiator_iocap_keyboard_only:
+responder_iocap_no_input_no_output_initiator_iocap_no_input_no_output:
+set_ssp_mode_justwork: 
+	jam SSP_MODE_JUST_WORK_FLAG,mem_ssp_mode_flag
+	fetch 1,mem_classic_bt_flag
+	bbit1 FLAG_SSP_REJECT_JUSTWORK,app_bt_disconnect
+	rtn
+
+responder_iocap_display_yesno_initiator_iocap_display_yesno:
+set_ssp_mode_numeric_comparison: 
+	jam SSP_MODE_SSP_PIN_FLAG,mem_ssp_mode_flag
+	rtn
+
+responder_iocap_keyboard_only_initiator_iocap_display_yesno:
+responder_iocap_keyboard_only_initiator_iocap_keyboard_only:	
+responder_iocap_keyboard_only_initiator_iocap_display_only:	
+responder_iocap_display_yesno_initiator_iocap_keyboard_only:
+set_ssp_mode_passkey: 
+	jam SSP_MODE_PASSKEY_ENTRY_FLAG,mem_ssp_mode_flag
+	rtn
+
+
+classic_bt_set_reject_justwork_flag:
+	arg FLAG_SSP_REJECT_JUSTWORK,queue
+	branch classic_bluetooth_set_flag
+
+classic_bt_clr_reject_justwork_flag:
+	arg FLAG_SSP_REJECT_JUSTWORK,queue
+	branch classic_bluetooth_clr_flag
+
+classic_bluetooth_set_flag:
+	fetch 1,mem_classic_bt_flag
+	qset1 pdata
+	store 1,mem_classic_bt_flag
+	rtn
+
+classic_bluetooth_clr_flag:
+	fetch 1,mem_classic_bt_flag
+	qset0 pdata
+	store 1,mem_classic_bt_flag
+	rtn
+
+         
+send_lmp_io_cap_req:
+	force 5,queue
+	call send_lmpext
+	fetch 3,mem_sp_iocap_local
+	istore 3,contw
+	branch send_lmp_request
+	
+
+send_lmpext_sniff_subrating_req: 
+
+	rtn
+send_lmpext_sniff_subrating_res: 
+         force 9,queue
+         call send_lmpext
+         fetch 1,mem_subsniff_rate
+         istore 1,contw
+         fetch 2,mem_subsniff_tcmax
+         istore 2,contw
+         fetch 4,mem_subsniff_instant
+         istore 4,contw
+	branch send_lmp_reply
+
+send_lmp_name_res:
+	force 17,pdata
+	call msg_send_lmp
+	fetch 1,mem_lmi_opcode  /* loading name offset */
+	copy pdata,temp
+	beq 0x00,send_lmp_name_res_offset_ok
+	beq 0x0e,send_lmp_name_res_offset_ok
+	beq 0x1c,send_lmp_name_res_offset_ok
+	rtn
+send_lmp_name_res_offset_ok:
+	istore 1,contw	/* writing name offset */
+	fetch 1,mem_local_name_length
+	istore 1,contw	/* writing name length */
+	arg 14,loopcnt
+	setarg mem_local_name
+	iadd temp,contr	/* setting read location */
+	call memcpy
+	branch send_lmp_reply
+
+
+send_lmp_timing_accuracy_res:
+	force 3,pdata
+	call msg_send_lmp
+	setarg 0x0114
+	istore 2,contw
+	branch send_lmp_reply
+
+send_lmp_clkoffset_res:
+	// dopod s505 must wait for this res
+	force 3,pdata
+	call msg_send_lmp
+	fetch 4,mem_clke_bt
+	isub clkn_bt,pdata
+	branch send_lmp_clkoffset_res_master,master
+	sub pdata,0,pdata		/* our role is slave */
+send_lmp_clkoffset_res_master:	
+	// bit 16-2 of clkslave-clkmaster
+	rshift2 pdata,pdata
+	set0 15,pdata
+	istore 2,contw
+	branch send_lmp_reply
+
+send_lmp_version_res:
+	force 6,pdata
+	call msg_send_lmp
+	fetch 5,mem_lmp_version
+	istore 5,contw
+	branch send_lmp_reply
+
+send_lmp_features_res:
+	force 9,pdata
+	call msg_send_lmp
+	fetch 8,mem_features
+	istore 8,contw
+	branch send_lmp_reply  
+
+
+/******** LMP request messages **********/
+/****** TID always set to local initiated *******/
+	
+
+send_lmpext_features_req:
+	force 12,queue
+	call send_lmpext
+	setarg 0x01
+	istore 1,contw
+	fetch 2,mem_lmpext_ssp_enable
+	istore 2,contw
+	setarg 0
+	istore 3,contw
+	setarg 0x00
+	istore 4,contw
+	branch send_lmp_request
+
+send_lmpext_packet_type_table_req:
+	force 3,queue
+	call send_lmpext
+	fetch 1,mem_ptt
+	istore 1,contw
+	disable user
+	call send_lmp_request
+	nrtn user
+	nrtn master
+	fetch 1,mem_afh_cfg
+	rtnbit0 AFH_CFG_ON
+	call afh_init
+	branch afh_open_all_channels
+	
+//default:featrue is enable,extfeature is disable
+ssp_enable:
+	bpatchx patch30_4,mem_patch30
+	fetch 1,mem_features+6
+	set1 param_featrue_ssp,pdata
+	store 1,mem_features+6
+	setarg param_lmpext_ssp_enable
+	store 2,mem_lmpext_ssp_enable
+	rtn
+
+ssp_disable:
+	bpatchx patch30_5,mem_patch30
+	fetch 1,mem_features+6
+	set0 param_featrue_ssp,pdata
+	store 1,mem_features+6
+	setarg 0
+	store 2,mem_lmpext_ssp_enable
+	rtn
+	
+afh_init:
+	jam 0x3,mem_afh_cfg
+	setarg 0
+	store 4,mem_afh_timer
+	arg mem_afh_map_lo,contw
+	call afh_reset_map
+	arg mem_afh_map_new,contw
+	call afh_reset_map
+	arg mem_afh_classify_channel_map,contw
+	call afh_reset_map
+	branch afh_clear_error_counter
+afh_open_all_channels:
+	arg mem_afh_map_new,contw
+	call afh_reset_map
+	call afh_clear_error_counter
+	branch afh_set_send_flag
+
+
+afh_reset_map:
+	setarg 0xffffff
+	istore 3,contw
+	istore 3,contw
+	istore 3,contw
+	setarg 0x7f
+	istore 1,contw
+	rtn
+afh_clear_error_counter:
+	setarg 0
+	store 2,mem_afh_error_total
+	rtn
+afh_set_send_flag:
+	fetch 1,mem_afh_cfg
+	set1 send_lmp_set_afh,pdata
+	store 1,mem_afh_cfg
+	rtn
+
+
+send_lmpext_pause_encryption_req:
+	force 2,queue
+	call send_lmpext
+	nbranch send_lmp_reply,master
+	// assume slave will not send pause req firstly???
+	branch send_lmp_request
+
+
+	
+send_lmp_detach:
+	force 2,pdata
+	call msg_send_lmp
+	fetch 1,mem_disconn_reason_send
+	istore 1,contw
+	call send_lmp_request
+prepare_disconnect:
+	fetch 1,mem_op
+	set1 op_disconn,pdata
+	store 1,mem_op
+	jam 50,mem_conn_timer
+	rtn
+	
+
+send_lmp_no_payload:
+	force 1,pdata
+	call msg_send_lmp
+	branch send_lmp_request
+send_lmp_nopayload_reply:
+	force 1,pdata
+	call msg_send_lmp
+	branch send_lmp_reply
+	
+	
+send_lmp_encryption_mode_req:
+	force 2,pdata
+	call msg_send_lmp
+	fetch 1,mem_state_map
+	isolate0 smap_encryption,pdata
+	setflag true,0,pdata
+	and_into 1,pdata
+	istore 1,contw
+	branch send_lmp_request
+
+
+send_lmp_superto:
+	force 3,pdata
+	call msg_send_lmp
+	fetch 2,mem_supervision_to
+	istore 2,contw
+	branch send_lmp_request
+
+send_lmp_name_req:
+	jam 250,mem_conn_timer
+	force 2,pdata
+	call msg_send_lmp
+	fetch 1,mem_name_offset
+	istore 1,contw
+	branch send_lmp_request
+
+send_lmp_test_control:
+	force 10,pdata
+	call msg_send_lmp
+	arg mem_temp_payload,contr
+	force 9,loopcnt
+send_lmp_test_control_loop:	
+	ifetch 1,contr
+	xor_into 0x55,pdata
+	istore 1,contw
+	loop send_lmp_test_control_loop
+	branch send_lmp_request  
+
+send_lmp_quality_of_service_req:
+	branch send_lmp_request
+send_lmp_unit_key:
+	branch send_lmp_request
+
+send_lmp_slot_offset:
+	rtn master
+	call calc_slot_offset
+	force 9,pdata
+	call msg_send_lmp
+	fetch 2,mem_slot_offset
+	istore 2,contw
+	fetch 3,mem_lap
+	istore 3,contw
+	fetch 1,mem_uap
+	istore 1,contw
+	fetch 2,mem_nap
+	istore 2,contw
+	bmark0 mark_switch_initiated,send_lmp_slot_offset_reply
+	set0 mark_switch_initiated,mark
+	call send_lmp_request
+	jam LMP_SWITCH_REQ,mem_lmo_opcode2
+	rtn
+send_lmp_slot_offset_reply:
+	call send_lmp_reply
+	jam LMP_ACCEPTED,mem_lmo_opcode2
+	jam LMP_SWITCH_REQ,mem_lmi_opcode2
+	rtn
+	
+send_lmp_switch_req:
+	arg 0x200,temp
+	branch switch_on_native,master
+	deposit clke_bt
+	branch switch_slack
+switch_on_native:
+	deposit clkn_bt
+switch_slack:
+	deposit bt_clk
+	iadd temp,pdata
+	and_into 0x1fc,pdata
+	store 4,mem_sniff_anchor
+	force 5,pdata
+	call msg_send_lmp
+	fetch 4,mem_sniff_anchor		/* reused as switch instant */
+	rshift pdata,pdata
+	istore 4,contw
+	branch send_lmp_request
+	
+send_lmp_sniff_req:
+	force 10,pdata
+	call msg_send_lmp
+	arg mem_sniff_payload,contr
+	ifetch 9,contr
+	istore 9,contw
+	branch send_lmp_request
+
+	
+send_lmp_timing_accuracy_req:
+/* default to TID_NORM_SEND */
+	force 3,pdata
+	call msg_send_lmp
+	setarg 0x0114
+	istore 2,contw
+	branch send_lmp_request
+	
+send_lmp_unsniff_req:
+//--------------------need to completa
+	force 1,pdata
+	call msg_send_lmp
+	//fetch 1,mem_unsniff_pending
+	//nbranch send_msg_done,blank
+	//jam 1,mem_unsniff_pending
+	//fetch 2,mem_sniff_attempt
+	//fetch 2,mem_nsniff_attempt
+	//lshift3 pdata,pdata
+	//lshift pdata,pdata
+	//store 1,mem_unsniff_cnt
+	branch send_lmp_request
+
+	
+send_lmp_max_slot:
+	force 2,pdata
+	call msg_send_lmp
+	fetch 1,mem_max_slot
+	istore 1,contw
+	branch send_lmp_request
+	
+	
+send_lmp_max_slot_req:
+	force 2,pdata
+	call msg_send_lmp
+	setarg 0x05		/*5 slot*/
+	istore 1,contw
+	branch send_lmp_request
+
+
+send_lmp_inc_power:
+	force 2,pdata
+	call msg_send_lmp
+	setarg 0x00		/*5 slot*/
+	istore 1,contw
+	branch send_lmp_request
+
+
+send_lmp_setup_complete_by_module:
+	jam LMP_MAX_SLOT_REQ,mem_lmo_opcode2
+	rtn
+send_lmp_setup_complete:
+	fetch 1,mem_device_option
+	sub pdata,dvc_op_module,null
+	call send_lmp_setup_complete_by_module,zero
+	fetch 1,mem_state
+	set1 state_conn_comp,pdata
+	store 1,mem_state
+	copy clkn_bt,pdata
+	store 4,mem_aurand_send_delay_time
+	fetch 1,mem_lmp_conn_state
+	bbit1 SENT_SETUP_COMPLETE,send_lmp_setup_complete_has_sent
+	set1 SENT_SETUP_COMPLETE,pdata
+	store 1,mem_lmp_conn_state
+	jam BT_EVT_SETUP_COMPLETE,mem_fifo_temp
+	call ui_ipc_send_event
+	force 1,pdata
+	call msg_send_lmp
+	branch send_lmp_request
+send_lmp_setup_complete_has_sent:
+	jam 0,mem_lmp_to_send
+	rtn
+	
+send_lmp_version_req:
+	force 6,pdata
+	call msg_send_lmp
+	fetch 5,mem_lmp_version
+	istore 5,contw
+	branch send_lmp_request
+
+send_lmp_features_req:
+	force 9,pdata
+	call msg_send_lmp
+	fetch 8,mem_features
+	istore 8,contw
+	branch send_lmp_request  
+
+sp_master_send_io_cap_get:
+	jam SP_FLAG_COMMIT,mem_master_sp_flag
+	fetch 1,mem_sp_local_key_invalid
+	rtnne SP_KEY_VALID
+	jam SP_MASTER_STAT_START_DONE,mem_master_sp_state
+	rtn
+
+sp_master_send_io_cap_send:
+	call tid_initiate
+	jam LMP_IO_CAP_REQ,mem_lmo_opcode2
+	jam SP_STAT_KEY_SEND,mem_master_sp_state
+	rtn
+	
+	
+sp_master_send_LMP_ENCAPSULATED_HEADER:
+	call tid_initiate
+	jam      LMP_ENCAPSULATED_HEADER,mem_lmo_opcode2
+	jam SP_STAT_RANDOM_SEND,mem_master_sp_state
+	rtn
+	
+sp_master_commitment_compare:
+	arg mem_sp_calc_result_high,rega
+	arg mem_sp_confirm_remote,regb
+	arg 16,loopcnt
+	call string_compare
+	branch sp_master_commitment_compare_success,zero
+	jam SP_STAT_NULL,mem_master_sp_state
+ifdef SIMPLE_PAIRING
+	call master_clear_mem_master_sp_flag
+endif
+	jam   PDU_NOT_ALLOWED,mem_lmo_reason2
+	jam 	LMP_SIMPLE_PAIRING_NUMBER,mem_lmi_opcode2 
+ifdef LMP_DBG
+	call ice_break
+endif
+	branch reject_lmp_packet
+sp_master_commitment_compare_success:
+	jam 	SP_STAT_CONFIRM_CALC,mem_master_sp_state
+ifdef SIMPLE_PAIRING
+	call master_set_mem_master_sp_flag
+endif
+	jam LMP_SIMPLE_PAIRING_NUMBER,mem_lmi_opcode2
+	branch accept_lmp_msg  
+	
+
+	
+sp_master_send_lmp_simple_pairing_number:
+	jam LMP_SIMPLE_PAIRING_NUMBER,mem_lmo_opcode2
+	rtn
+	
+
+
+sp_send_lmp_encapsulated_header:
+	// calculate the private & public key here
+	//jam      LMP_ENCAPSULATED_HEADER,mem_lmp_to_send
+	jam      LMP_ENCAPSULATED_HEADER,mem_lmo_opcode2
+	//jam      TID_PAIRING,mem_lmp_tid
+	rtn
+	//fetch 1,mem_tid_table
+	//set1 TID_PAIRING,pdata
+	//store 1,mem_tid_table
+     
+    
+send_lmp_encapsulated_header: 
+	jam 0,mem_sp_local_key_send_count
+	force 4,pdata
+	call msg_send_lmp
+	force ENCAPSULATED_MAJOR_TYPE_P192,pdata
+	istore 1,contw
+	force ENCAPSULATED_MINOR_TYPE_P192,pdata
+	istore 1,contw  
+	force ENCAPSULATED_LEN_P192,pdata
+	istore 1,contw 
+	call check_localsm
+	branch send_lmp_request,true
+	branch send_lmp_reply
+
+send_lmp_encapsulated_payload:
+	//jam      TID_PAIRING,mem_lmp_tid
+	 force 17,pdata
+	call msg_send_lmp
+	fetch 1,mem_sp_local_key_send_count
+	arg mem_sp_pubkey_local,contr
+	iadd contr,contr    
+	ifetch   8,contr
+	istore   8,contw
+	ifetch   8,contr
+	istore   8,contw
+	fetch    1,mem_sp_local_key_send_count
+	increase 16,pdata
+	store    1,mem_sp_local_key_send_count
+	call check_localsm
+	branch send_lmp_request,true
+	branch send_lmp_reply
+	//branch send_lmp_request
+	
+sp_send_lmp_simple_pairing_comfirm:
+        jam      SP_STAT_RANDOM_RECV,mem_sp_state
+        jam      LMP_SIMPLE_PAIRING_CONFIRM,mem_lmo_opcode2
+        rtn
+send_lmp_simple_pairing_comfirm:
+        //jam      SP_STAT_RANDOM_RECV,mem_sp_state
+        //jam      TID_PAIRING,mem_lmp_tid
+        force    17,pdata
+        call msg_send_lmp   
+        arg      mem_sp_calc_result_high,contr
+        ifetch   8,contr
+        istore   8,contw
+        ifetch   8,contr
+        istore   8,contw 
+        branch send_lmp_reply
+
+sp_send_lmp_simple_pairing_number:
+	jam      LMP_SIMPLE_PAIRING_NUMBER,mem_lmo_opcode2
+	rtn
+
+send_lmp_simple_pairing_number:
+	//jam      TID_PAIRING,mem_lmp_tid
+	call check_localsm
+ifdef SIMPLE_PAIRING
+	call sp_local_random_key_generator,true
+endif
+	force    17,pdata
+	call msg_send_lmp
+	arg      mem_sp_random_local,contr
+	ifetch   8,contr
+	istore   8,contw
+	ifetch   8,contr
+	istore   8,contw
+	call check_localsm
+	nbranch send_lmp_reply,true
+	branch send_lmp_request,true
+
+master_sp_sm_end:
+	//jam DEFAULT_STATEMACHINE,mem_sp_localsm
+	jam SP_STAT_DONE,mem_master_sp_state
+sp_aurand_send:
+	call tid_initiate
+	jam LMP_AU_RAND,mem_lmo_opcode2
+	call check_localsm_master
+ifdef SIMPLE_PAIRING
+	branch sp_master_key_prarm_push,true
+	branch sp_link_key_prarm_push
+endif
+master_sp_send_lmp_dhkey_check:
+	call tid_reply
+sp_send_lmp_dhkey_check: 
+	jam      LMP_DHKEY_CHECK,mem_lmo_opcode2
+	rtn
+send_lmp_dhkey_check: 
+	//jam      TID_PAIRING,mem_lmp_tid
+	force    17,pdata
+	call     msg_send_lmp
+	arg      mem_sp_calc_result_high,contr
+	ifetch   8,contr
+	istore   8,contw
+	ifetch   8,contr
+	istore   8,contw 
+	call check_localsm
+	nbranch send_lmp_reply,true
+	branch send_lmp_request,true
+
+send_lmp_enc_key_size_mask_res:
+	force 3,pdata
+	call msg_send_lmp   
+	setarg 0xfffe //enc key size mask
+	istore 2,contw
+	branch send_lmp_reply
+
+send_lmp_auto_rate:
+	branch send_lmp_request
+send_lmp_clkoffset_req:
+	branch send_lmp_request
+send_lmp_quality_of_service:
+	branch send_lmp_request
+send_lmp_test_activate:
+	branch send_lmp_request
+
+/******** LMP request/reply messages **********/
+/****** TID transaction specific *******/
+
+send_lmp_comb_key:
+	call generate_random_number
+	arg mem_lap,rega
+	call generate_linkkey
+	force 17,pdata
+	call msg_send_lmp
+	arg mem_kinit,rega
+	arg mem_random_number,regb
+	call xor16
+	nbranch send_lmp_follow,master
+	branch send_lmp_tid
+
+send_lmp_inrand:
+	call generate_random_number
+	arg mem_plap,rega
+	call generate_kinit
+send_lmp_rand:	/* used by in_rand,au_rand,start_encrypt */
+	force 17,pdata
+	call msg_send_lmp
+	arg mem_random_number,contr
+	call memcpy16
+	fetch 1,mem_conn_sm 
+	beq CONN_SM_AUTH_WAIT,send_lmp_request
+	beq CONN_SM_PAIRING_WAIT,send_lmp_request
+	branch send_lmp_tid
+
+send_lmp_aurand:
+	fetch 1,mem_pairing_auth
+	branch send_lmp_aurand_notpairing,blank
+	call check_localsm
+	call tid_initiate,true
+	ncall tid_reply,true
+	branch send_lmp_aurand_common
+send_lmp_aurand_notpairing:
+	call tid_initiate
+send_lmp_aurand_common:
+	call generate_random_number
+	branch send_lmp_rand
+
+send_lmp_sres:
+	arg mem_lap,rega
+	call function_e1
+	force 5,pdata
+	call msg_send_lmp
+	fetch 4,mem_input_store
+	istore 4,contw
+	arg mem_sres_tid,temp
+	call special_tid_store
+	call copy_aco
+	call check_localsm
+	branch send_lmp_sres_master,true
+	jam DONE_ENCRYP,mem_wait_encryption
+	fetch 1,mem_pairing_auth
+	rtn blank
+	jam LMP_AU_RAND,mem_lmo_opcode2
+send_lmp_sres_master:
+	fetch 1,mem_link_key_exists
+	rtn blank
+send_lmp_sres_startenc:
+	call check_localsm
+	nbranch send_lmp_sres_startenc_slave,true
+	fetch 1,mem_auth_enable
+	rtn blank
+	jam LMP_ENCRYPTION_MODE_REQ, mem_lmo_opcode2
+	rtn
+send_lmp_sres_startenc_slave:
+	rtnmark0 mark_slave_in_rand_accepted
+	set0 mark_slave_in_rand_accepted,mark
+	jam LMP_ENCRYPTION_MODE_REQ, mem_lmo_opcode2
+	rtn
+	
+
+	
+send_lmp_start_encryption:
+	call generate_random_number
+	call function_e3
+	force 17,pdata
+	call msg_send_lmp
+	arg mem_random_number,contr
+	call memcpy16
+	branch send_lmp_tid
+
+send_lmp_stop_encryption_req:
+	force 1,pdata
+	call msg_send_lmp
+	branch send_lmp_tid
+
+send_lmp_encryption_key_size_req:
+	force 2,pdata
+	call msg_send_lmp
+	force 16,pdata
+	istore 1,contw
+	store 1,mem_key_size
+	branch send_lmp_tid
+
+msg_send_lmp:
+/* FLOW is set high and LMP is indicated */
+	lshift3 pdata,pdata
+	or_into 0x07,pdata
+	store 1,mem_lmo_header_length
+	arg 17,loopcnt
+	arg mem_lmo_payload,contw
+	call clear_mem
+	arg mem_lmo_payload,contw
+	rtn
+
+send_lmpext:
+	and pdata,0x7f,rega
+	jam LMP_ESCAPE,mem_lmp_to_send
+	deposit queue
+	call msg_send_lmp
+	deposit rega
+	istore 1,contw
+	rtn
+
+send_lmp_follow:
+	fetch 1,mem_lmp_to_send
+	lshift pdata,pdata
+	fetcht 1,mem_state_map
+	isolate1 smap_lmptid,temp
+	setflag true,0,pdata
+	branch send_lmp_exit
+
+
+send_lmp_tid:
+	fetcht 1,mem_state_map
+	and_into 1,temp
+	branch send_lmp_end
+
+send_lmp_reply:
+	force 0,temp
+	branch send_lmp_end
+	
+send_lmp_request:
+	force 1,temp
+send_lmp_end:
+	fetch 1,mem_lmp_to_send
+	lshift pdata,pdata
+	setflag master,0,pdata
+	ixor temp,pdata
+send_lmp_exit:
+	store 1,mem_lmo_header_opcode
+	jam 0,mem_lmp_to_send
+	call lmo_fifo_process_lmo0empty
+	enable user
+	rtn
+
+//blank : not full 
+lmo_fifo_check:
+	fetch 1,mem_lmo_opcode2
+	rtn blank
+	call lmo_fifo_process
+	fetch 1,mem_lmo_opcode2
+	rtn
+
+lmo_fifo_process:
+	bpatchx patch30_6,mem_patch30
+	fetch 1,mem_lmp_to_send
+	branch lmo_fifo_process_lmo0empty,blank
+	fetch 1,mem_lmo_opcode1
+	nrtn blank
+	branch lmo_fifo_process_lmo2to1
+lmo_fifo_process_lmo0empty:
+	fetch 1,mem_lmo_opcode1
+	branch lmo_fifo_process_lmo1_empty,blank
+	fetch 3,mem_lmo_opcode1
+	store 3,mem_lmp_to_send//1=>0
+	fetcht 1,mem_lmo_tid1
+	fetch 1,mem_state_map
+	set0 smap_lmptid,pdata
+	ior temp,pdata
+	store 1,mem_state_map
+	jam 0,mem_lmo_opcode1
+lmo_fifo_process_lmo2to1:
+	fetch 1,mem_lmo_opcode2
+	rtn blank
+	fetch 4,mem_lmo_opcode2
+	store 4,mem_lmo_opcode1//2=>1
+	jam 0,mem_lmo_opcode2
+	rtn
+lmo_fifo_process_lmo1_empty:
+	fetch 1,mem_lmo_opcode2
+	rtn blank
+	fetch 3,mem_lmo_opcode2
+	store 3,mem_lmp_to_send//2=>0	
+	fetcht 1,mem_lmo_tid2
+	fetch 1,mem_state_map
+	set0 smap_lmptid,pdata
+	ior temp,pdata
+	store 1,mem_state_map
+	jam 0,mem_lmo_opcode2
+	rtn
+	
+//input:temp
+special_tid_store:
+	bpatchx patch30_7,mem_patch30
+	fetch 1,mem_state_map
+	copy pdata,regc
+	ifetch 1,temp
+	call pop_tid_follow
+	call send_lmp_follow
+	copy regc,pdata
+	store 1,mem_state_map
+	rtn
+	
+tid_reply:
+	fetcht 1,mem_state_map
+	set0 smap_lmptidinit,temp
+	storet 1,mem_state_map
+	rtn
+	
+tid_initiate:
+	fetcht 1,mem_state_map
+	set1 smap_lmptidinit,temp
+	storet 1,mem_state_map
+	rtn
+	
+	/* true if transaction from remote */
+tid_check:
+	nsetflag master,smap_lmptid,pdata //it is ok
+	fetcht 1,mem_state_map
+	ixor temp,pdata
+	isolate1 smap_lmptid,pdata
+	rtn	
+
+	/* set to remote */
+tid_set_reply:
+	fetch 1,mem_state_map
+	setflag master,smap_lmptid,pdata //it is ok
+	store 1,mem_state_map
+	rtn
+
+	/*rtn true when we lead lmp*/
+check_localsm:
+	fetch 1,mem_sp_localsm
+	compare 	LOCAL_STATEMACHINE,pdata,0x7f
+	rtn
+setlocalsm_master:
+	fetch 1,mem_sp_localsm
+	set1 7,pdata
+	store 1,mem_sp_localsm
+	rtn
+setlocalsm_slave:
+	fetch 1,mem_sp_localsm
+	set0 7,pdata
+	store 1,mem_sp_localsm
+	rtn
+check_localsm_master:
+	fetch 1,mem_sp_localsm
+	isolate1 7,pdata
+	store 1,mem_sp_localsm
+	rtn
+	
+generate_random_number:
+	/* generating a 16 byte random number,storing in ape_random_number */
+	arg mem_random_number,contw
+generate_random:
+	force 16,loopcnt
+generate_random_another:
+generate_random_loop:
+	random pdata
+	istore 1,contw
+	loop generate_random_another
+	rtn
+
+generate_linkkey:
+	call function_e21
+	arg mem_link_key,rega
+	arg mem_input_store,regb
+	ifetch 8,rega					/* check if already got comb key */
+	fetcht 1,mem_state
+	nsetflag blank,state_combkey,temp
+	storet 1,mem_state
+	copy rega,contw
+	call  xor16
+	branch generate_linkkey_continue
+
+/*********************************/
+/*********lmp send*************/
+/********************************/
+
+process_conn_sm:
+	//nrtn master
+	bpatchx patch31_0,mem_patch31
+
+	call lmo_fifo_check
+	nrtn blank
+process_conn_sm_continue:
+	fetch 1,mem_conn_sm
+	rtn blank
+	/* state machine begins in standby */
+	//beq CONN_SM_STANDBY, host_create_conn_begin
+	//beq CONN_SM_WAIT_PAGE, host_create_conn_wait_page
+	beq CONN_SM_SEND_CONN_REQ, host_create_conn_send_conn_req
+	beq CONN_SM_WAIT_CONN_ACCEPT, host_create_conn_wait_accept
+	beq CONN_SM_SEND_FEATURES, host_create_conn_send_features
+	beq CONN_SM_WAIT_FEATURES_RES, host_create_conn_waiting
+	beq CONN_SM_SEND_SWITCH,host_create_conn_send_switch
+	beq CONN_SM_AUTH_PAIR, host_create_conn_auth_pair
+	beq CONN_SM_AUTH_PAIR_WAIT, host_create_conn_auth_pair_wait
+	beq CONN_SM_ENCRYPT, host_create_conn_encrypt
+	beq CONN_SM_ENCRYPT_WAIT, host_create_conn_encrypt_wait
+	beq CONN_SM_ENCRYPT_WAIT_CLEAR, host_create_conn_encrypt_wait_clear
+	beq CONN_SM_SEND_SETUP_COMPLETE, host_create_conn_send_setup_complete
+	beq CONN_SM_WAIT_SETUP_COMPLETE, host_create_conn_wait_setup_complete
+	beq CONN_SM_DETACH_DELAY,host_create_conn_master_detach
+	beq CONN_SM_SEND_VERSION, host_create_conn_send_version
+	beq CONN_SM_WAIT_VERSION, host_create_conn_waiting
+	beq CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION, host_creat_conn_wait_switch
+	beq CONN_SM_SEND_FEATURES_EXT,host_creat_conn_send_feat_ext
+	beq CONN_SM_WAIT_FEATURES_EXT,host_create_conn_waiting
+	beq CONN_SM_PAIRING,host_create_conn_pairing
+	beq CONN_SM_PAIRING_WAIT,host_create_conn_pairing_wait
+	beq CONN_SM_AUTH,host_create_conn_auth
+	beq CONN_SM_AUTH_WAIT,host_create_conn_auth_wait
+	beq CONN_SM_DONE,host_create_conn_done
+	beq CONN_SM_WAIT_DONE,host_create_conn_done_wait
+	jam CONN_SM_STANDBY,mem_conn_sm
+	/* sending error message to host */
+	rtn
+host_create_conn_done:
+	fetch 1,mem_lmp_conn_state		
+	rtnbit0 RECEIVED_SETUP_COMPLETE
+	rtnbit0 SENT_SETUP_COMPLETE
+	jam CONN_SM_STANDBY,mem_conn_sm
+	call host_conn_judge_encrypt
+	branch scheduler_start_upper_sm
+	
+host_conn_judge_encrypt:
+	fetch 1,mem_connection_options
+	rtnbit0 CONNECTION_ENCRYPT
+	jam CONN_SM_ENCRYPT_WAIT,mem_conn_sm
+	rtn
+
+host_create_conn_done_wait:
+	arg enpt_delay_timer,queue
+	call timer_check
+	nrtn blank
+	jam CONN_SM_DONE,mem_conn_sm
+	rtn
+	
+host_create_conn_auth:
+	fetch 1,mem_connection_options
+	set0 CONNECTION_AUTH,pdata
+	store 1,mem_connection_options
+	jam CONN_SM_AUTH_WAIT,mem_conn_sm
+	jam LMP_AU_RAND,mem_lmo_opcode2
+	rtn 
+host_create_conn_auth_wait:
+	rtn
+host_create_conn_pairing:
+	fetch 1,mem_pincode_state
+	rtnne pincode_state_pincode_ready //wait for pincode
+	call host_auth
+	jam CONN_SM_PAIRING_WAIT,mem_conn_sm
+	rtn
+
+host_create_conn_pairing_wait:
+	rtn
+host_creat_conn_send_feat_ext:
+	jam CONN_SM_WAIT_FEATURES_EXT,mem_conn_sm
+	jam LMP_EXT_FEATURES_REQ,mem_lmo_opcode2
+	rtn
+host_create_conn_send_version:
+	jam CONN_SM_WAIT_VERSION,mem_conn_sm
+	jam LMP_VERSION_REQ,mem_lmo_opcode2
+	rtn 
+	
+host_creat_conn_wait_switch:
+	fetch 1,mem_switch_flag
+	rtneq SWITCH_FLAG_INIT
+	beq SWITCH_FLAG_ACCEPT,host_create_conn_switch_accept
+	arg switch_wait_timer,queue
+	call timer_check
+	nrtn blank
+	jam SWITCH_FLAG_INIT,mem_switch_flag
+	branch host_create_conn_switch
+host_create_conn_switch_accept:
+	rtn master
+	branch host_create_conn_auth_pair
+
+host_create_conn_send_features:
+	jam CONN_SM_WAIT_FEATURES_RES,mem_conn_sm
+	jam LMP_FEATURES_REQ,mem_lmo_opcode2
+	rtn 
+host_create_conn_send_switch:
+	jam LMP_SWITCH_REQ,mem_lmo_opcode2
+	set1 mark_switch_initiated,mark
+	jam CONN_SM_WAIT_CONN_ACCEPT,mem_conn_sm
+	setarg 0x1ff
+	store 2, mem_soft_timer
+	rtn
+host_create_conn_send_conn_req:
+	jam CONN_SM_WAIT_CONN_ACCEPT,mem_conn_sm
+	jam 0xff,mem_soft_timer
+	set0 mark_reconn_recieve_switch,mark
+	jam LMP_HOST_CONNECTION_REQ,mem_lmo_opcode2
+	branch init_lmp_reinit
+host_create_conn_wait_accept:
+	rtnmark1 mark_reconn_recieve_switch
+	fetch 2,mem_soft_timer
+	sub pdata,1,pdata
+	branch host_create_conn_resend,zero
+	store 2, mem_soft_timer
+	rtn
+host_create_conn_resend:
+	jam CONN_SM_SEND_SWITCH,mem_conn_sm
+	rtn
+host_create_conn_waiting:
+	/* we will exit waiting for connection request accepted, features res, or other commands to finish */
+	rtn 
+
+host_create_conn_switch:
+	fetch 1,mem_lmp_conn_state
+	rtnbit0 SENT_SETUP_COMPLETE
+	rtnbit0 RECEIVED_SETUP_COMPLETE
+	fetch 1,mem_connection_options
+	set0 CONNECTION_SWITCH,pdata
+	store 1,mem_connection_options
+	jam LMP_SWITCH_REQ,mem_lmo_opcode2
+	jam CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION,mem_conn_sm
+	rtn 
+
+host_create_conn_send_setup_complete:
+	jam CONN_SM_WAIT_SETUP_COMPLETE,mem_conn_sm	
+	jam LMP_SETUP_COMPLETE,mem_lmo_opcode2
+	rtn 
+
+host_create_conn_wait_setup_complete:
+	fetch 1,mem_lmp_conn_state
+	rtnbit0 RECEIVED_SETUP_COMPLETE
+	jam CONN_SM_STANDBY,mem_conn_sm	
+
+	rtn
+host_create_conn_wait_setup_complete_rtn:	
+	jam CONN_SM_AUTH_PAIR ,mem_conn_sm
+	rtn
+
+host_create_conn_master_detach:
+	fetch 1, mem_soft_timer
+	increase -1,pdata
+	branch host_create_conn_send_detach,blank//detach
+	store 1, mem_soft_timer
+	rtn 
+host_create_conn_send_detach:
+	jam LMP_DETACH,mem_lmo_opcode2
+	jam LOCAL_HOST,mem_disconn_reason_send
+	jam 0,mem_conn_sm
+	rtn
+host_create_conn_auth_pair:
+	/* checking whether or not to do m/s switch */
+	fetch 1,mem_connection_options
+	bbit1 CONNECTION_SWITCH,host_create_conn_switch
+	bbit1 CONNECTION_AUTH,host_create_conn_auth_pair_true
+host_create_conn_sm_done:
+	jam CONN_SM_DONE,mem_conn_sm
+	rtn
+host_create_conn_auth_pair_true:
+	fetch 1,mem_link_key_exists
+	branch host_create_conn_auth_pair_nokey,blank
+	fetch 1,mem_lmp_conn_state
+	rtnbit0 SENT_SETUP_COMPLETE
+	rtnbit0 RECEIVED_SETUP_COMPLETE
+	fetch 4,mem_aurand_send_delay_time
+	arg 100,temp
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	branch host_create_conn_auth
+
+
+
+host_create_conn_auth_pair_nokey:
+	jam CONN_SM_PAIRING,mem_conn_sm
+	jam 4,mem_pin_length
+	setarg 0x3030
+	store 2,mem_pin
+	istore 2,contw
+	jam pincode_state_pincode_ready,mem_pincode_state
+	branch host_create_conn_pairing
+
+host_create_conn_auth_pair_wait:
+	rtn
+host_create_conn_encrypt:
+	fetch 1,mem_connection_options
+	bbit1 CONNECTION_ENCRYPT,host_create_conn_encrypt_start
+	jam CONN_SM_DONE,mem_conn_sm
+	rtn 
+
+host_create_conn_encrypt_start:
+	fetch 1,mem_connection_options
+	set0 CONNECTION_ENCRYPT,pdata
+	store 1,mem_connection_options
+	jam LMP_ENCRYPTION_MODE_REQ,mem_lmo_opcode2  
+	rtn
+
+host_create_conn_encrypt_wait:
+	fetch 1, mem_wait_encryption
+	rtn blank
+	jam CONN_SM_STANDBY,mem_conn_sm
+	branch host_create_conn_encrypt_start 
+
+host_create_conn_encrypt_wait_clear:
+	jam CONN_SM_SEND_SETUP_COMPLETE,mem_conn_sm
+	rtn 
+
+host_auth:
+	fetch 1,mem_op
+	bbit1 op_inrand_req,remote_auth
+	call tid_initiate
+	jam LMP_IN_RAND,mem_lmo_opcode2
+	branch cmd_exit
+remote_auth:
+	fetch 1,mem_op
+	set0 op_inrand_req,pdata
+	store 1,mem_op
+	call lmp_accept_inrand
+	call tid_set_reply
+	branch cmd_exit
+
+pincode_reinit:
+	setarg 4
+	store 1,mem_pin_length
+	setarg 0x3030
+	istore 2,contw
+	istore 2,contw
+	rtn
+	
+
Index: DpiSwitch/program/patch.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/patch.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/patch.prog	(working copy)
@@ -0,0 +1,3735 @@
+//define DONGLE
+define MOUSE
+define G24
+define BLE
+define CLASSIC_BT
+define MOUSE_SMOOTHER
+//define ADC_ENABLE
+//define P24G_LOG
+//define RF_DEBUG
+define BLE_FAST_CONN_ENABLE
+
+//define DEBUGLOG
+//define DEBUGLOG_CALLBACK
+//define DEBUGLOG_EVENT
+//define DEBUGLOG_CMD
+//define DEBUGLOG_MISC
+//define DEBUGLOG_STATUS
+//define DEBUGLOG_PARSE_LMP
+//define DEBUGLOG_SEND_LMP
+//define DEBUGLOG_CONN_SM
+//define DEBUGLOG_UPPER_SM
+
+
+p_start:
+	branch p_patch_array
+
+// zcode start
+p_zcode:
+
+//only for power on once
+p_wake_from_power:
+ifdef BLE
+	call p_mouse_data_init
+endif
+	fetch 1,mem_tx_power
+	store 1,mem_tx_power_temp
+	call power_ctrl_pac_succ_cnt_init
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init
+	call p_mouse_bt_discovery_button_up_init
+	call p_mouse_spi_init
+ifdef MOUSE_SMOOTHER
+	call p_drawing_optima_init
+endif
+	call p_mouse_cb_fuction
+	call p_mouse_wakeup_from_power
+	branch p_mouse_setting_config
+
+p_mouse_cb_fuction:
+ifdef G24
+	setarg p_mouse_g24_package_data
+	store 2,mem_cb_24g_data
+endif	
+ifdef BLE
+	setarg p_mouse_le
+	store 2,mem_cb_le_process
+	setarg p_le_mouse_bb_event_connect_complete
+	store 2,mem_cb_att_write
+endif
+ifdef CLASSIC_BT
+	setarg p_mouse_bt
+	store 2,mem_cb_bt_process
+endif	
+	setarg p_mouse_before_lpm
+	store 2,mem_cb_before_lpm
+	setarg p_mouse_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg p_mouse_idle
+	store 2,mem_cb_idle_process
+	setarg p_mouse_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg p_mouse_bb_event_timer
+	store 2,mem_cb_event_timer
+	rtn	
+
+p_mouse_wakeup_from_power:
+	setarg 25
+	store 2,mem_24g_transmit_by_interrupt_exit_count_init
+	ncall p_mouse_24g_transmit_by_interrupt_exit_count_max,wake
+	call p_mouse_init_sunt
+	call p_mouse_sensor_powerdown
+p_mouse_wakeup_no_from_power:
+	fetch 1,mem_reconn_times_init
+	store 1,mem_reconn_times
+	fetch 6,mem_le_lap
+	store 6,mem_le_normal_lap
+	fetch 1,mem_power_on_flag
+	rtnbit1 2
+	//power on
+	branch p_mouse_dpi_config_default
+	
+p_mouse_24g_transmit_by_interrupt_exit_count_max:
+	setarg 375
+	store 2,mem_24g_transmit_by_interrupt_exit_count_init
+	rtn
+
+	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
+	//patch00_0 and patch11_2 are unuseful because of otp
+	beq patch00_1,p_soft_reset_1
+	beq patch00_2,p_soft_reset_2
+	beq patch10_5,p_shutdown_radio
+	beq patch11_1,p_set_freq_tx
+ifdef CLASSIC_BT
+	beq patch03_3,p_page_wait_fhs_reply_ok
+	beq patch04_6,p_role_switch_master
+	beq patch09_0,p_quit_connection_cont
+	beq patch09_2,p_prepare_tx
+	beq patch0a_1,p_slave_conn_recv_packet
+ 	beq patch0b_1,p_process_dmh
+	beq patch14_7,p_lpm_dispatch
+	beq patch15_5,p_lpm_set_mult
+	beq patch19_3,app_bt_start_reconnect+3
+	beq patch1d_1,p_mouse_bb_disconnected
+endif	
+	beq patch14_1,p_init_param
+	beq patch16_1,p_lpm_check_wake_lock
+	beq patch16_2,p_g24_dispatch
+	beq patch18_4,p_device_init
+	beq patch1c_3,p_mouse_seting_dpi
+	beq patch1c_6,p_mouse_motion
+	beq patch1d_2,p_mouse_bb_event_discovery_btn
+	beq patch1d_3,p_mouse_start_discovery
+	beq patch1d_4,p_mouse_stop_discovery
+	branch loop
+pf_patch_ext:
+ifdef BLE
+	beq patch27_1,p_le_slave_match
+	beq patch28_3,p_le_next_adv_channel
+	beq patch29_2,p_le_receive_skip
+	beq patch2a_7,p_le_update_param
+	beq patch2b_1,p_le_update_channel_map
+	beq patch2c_3,p_le_prepare_tx
+	beq patch2c_6,p_le_parse
+	beq patch2c_7,p_le_parse_l2cap
+	beq patch2d_2,p_le_adv_not_match
+	beq patch2e_7,p_le_lpm_setmult
+	beq patch3f_2,p_check_51cmd_once_continue
+endif	
+ifdef CLASSIC_BT
+	beq patch20_5,p_hid_rx_process
+	beq patch30_0,p_parse_lmp_accepted
+	beq patch30_2,p_send_lmp
+	beq patch31_0,p_process_conn_sm
+endif
+	beq patch31_4,p_twspi_reset
+	beq patch31_5,p_spid_init
+ifdef DEBUGLOG
+	beq patch2f_6,p_parse_lmp_opcode
+	beq patch37_6,p_process_upper_sm_reconn
+	beq patch3e_6,p_ui_ipc_send_event
+	beq patch3e_7,p_ui_ipc_send_cmd
+endif
+	branch loop
+	
+
+ifdef MOUSE
+p_rssi_signal:
+	copy pdata,rega
+	fetcht 1,mem_rssi_signal_index
+	setarg mem_rssi_signal_buf
+	iadd temp,contw
+	copy rega,pdata
+	istore 1,contw
+	increase 1,temp
+	and_into RSSI_BUF_LEN_SIGNAL,temp
+	storet 1,mem_rssi_signal_index
+	rtn
+
+p_soft_reset_1:
+//	call p_mouse_select_device_button_wakeup_check
+	arg mem_sp_state,contw
+	arg 12,loopcnt
+	call clear_mem
+ifdef BLE
+	call p_mouse_le_txbuff_load
+endif
+	call rfcomm_init
+	call init_lmp
+	ncall lpm_disable_exen_output,wake
+	call ui_init+1
+	branch soft_reset+11
+	
+p_soft_reset_2:
+	call app_lpm_init,wake
+ifdef SIMPLE_PAIRING
+	call publickey_init
+else
+	call ssp_disable
+ifdef SECURE_CONNECTION
+	call publickey_init
+endif
+endif
+	call lpm_recover_clk,wake
+p_sp_cal_loop:
+	call sp_calc_sequence
+	fetch 1,mem_ssp_enable
+	branch main_loop,blank
+	fetch 1,mem_sp_local_key_invalid // simple pairing is not ready
+	branch p_sp_cal_loop,blank
+	branch main_loop
+
+p_init_param:
+	setarg param_le_version
+	store 3,mem_lmp_version
+	setarg param_le_subversion
+	store 2,mem_lmp_version+3
+	branch init_param+12
+
+p_lpm_check_wake_lock:
+	rtnmark1 mark_24g
+	fetch 1,mem_mouse_multi_led_state
+	nbranch disable_blank,blank
+	fetch 1,mem_mouse_multi_led_blink_count
+	nbranch disable_blank,blank
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	branch disable_blank,blank
+	fetch 1,mem_mouse_le_conn_param_reject
+	beq LE_LPM_DISABLE,disable_blank
+ifdef CLASSIC_BT	
+	fetch 2,mem_sdp_remote_cid
+	nbranch disable_blank,blank
+endif
+	fetch 1,mem_mouse_wheel_trigger
+	nbranch disable_blank,blank
+	branch enable_blank
+
+
+ifdef G24
+p_g24_dispatch:
+	rtnmark0 mark_24g
+	fetch 1,mem_24g_conn_sm
+	bbit1 STATE_24G_PAIR,p_g24_pair_dispatch
+	bbit1 STATE_24G_RECONN,p_g24_reconn_dispatch
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,p_g24_transmit_by_interrupt
+p_g24_transmit_process:
+	call p_g24_txdata_prep
+	nbranch p_g24_nodata_transmit,user
+	jam 10,mem_24g_search_dongle_delay_count	
+	call p_g24_rf_sta_check
+p_g24_transmit_start:
+	call p_g24_transmit_packet
+	fetch 1,mem_24g_pairing_sm
+	rtnne STATE_24G_PAIRING_SUCCESS
+	call power_ctrl_start
+	call g24_long_sleep_shorter_param_update
+	fetch 1,mem_mouse_multi_led_state
+	beq ON,p_g24_transmit_by_interrupt_enable
+p_g24_short_sleep:	
+	call p_g24_lpm_wait
+	nrtn user
+	call p_clear_wake
+	setarg 60500
+	branch lpm_dispatch_sleep
+
+p_g24_pair_dispatch:
+	jam ZCODE_60,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_g24_reconn_dispatch:
+	jam ZCODE_53,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+g24_long_sleep_shorter_param_update:
+//	fetch 1,mem_config_function_enable
+//	rtnbit1 ENABLE_SENSOR_MOTION_PIN
+	setarg G24_LONG_SLEEP_STEP1
+	store 3,mem_24g_enter_hibernate
+	jam 20,mem_24g_long_sleep_param_update_timer
+	rtn
+
+p_g24_transmit_by_interrupt:
+	call p_g24_timer_check
+	nrtn user
+	call p_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 p_g24_transmit_by_interrupt_exit,zero
+	branch p_g24_transmit_process
+p_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 25
+	store 2,mem_24g_transmit_by_interrupt_exit_count_init
+p_g24_interval_min:
+	jam 0,mem_24g_pac_index
+	fetch 1,mem_24g_interval_min
+p_g24_interval_store:
+	store 1,mem_24g_interval
+	rtn
+p_g24_interval_max:
+	fetch 1,mem_24g_interval_max
+	branch p_g24_interval_store	
+p_g24_interval_calibrate:
+	fetch 1,mem_24g_pac_index
+	increase 1,pdata
+	store 1,mem_24g_pac_index
+	beq 4,p_g24_interval_max
+	beq 5,p_g24_interval_min
+	rtn
+
+p_g24_nodata_transmit:
+	fetch 1,mem_24g_abort_pac
+	call p_g24_send_abort_packet,blank
+	fetch 1,mem_mouse_multi_led_blink_count
+	nrtn blank
+	fetch 1,mem_mouse_multi_led_state
+	rtneq ON
+	fetch 1,mem_24g_transmit_by_interrupt
+	rtneq G24_TX_TIMER_INT_ENABLE
+	call p_g24_search_dongle
+	fetch 1,mem_24g_search_dongle_ch
+	rtnne G24_CH_NUMBER
+	jam 0,mem_24g_search_dongle_ch
+p_g24_long_sleep:
+	call p_g24_lpm_wait
+	nrtn user
+	fetch 3,mem_24g_enter_hibernate
+	call clk2lpo
+	storet 4,mem_sleep_counter
+  	branch lpm_sleep
+
+p_g24_lpm_wait:
+	enable user
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	fetch 1,mem_lpm_mode
+	branch disable_user,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,disable_user
+p_mouse_setgpio_lpm:
+	call p_mouse_set_sdio_high
+	call p_clear_wake
+p_mouse_setgpio_hibernate:	
+	call mouse_lpm_before_common
+	call p_flash_ncs_disable
+	hfetch 4,core_gpio_oe0
+	hfetcht 4,core_gpio_pu0
+	ior temp,temp
+	invert temp,temp
+	hstoret 4,core_gpio_pd0
+	hfetch 1,core_gpio_pd1
+	set0 2,pdata
+	hstore 1,core_gpio_pd1
+	hfetch 1,core_gpio_pd2	//flash hold pin gpio22
+	set0 6,pdata
+	hstore 1,core_gpio_pd2
+	branch p_mouse_multi_led_gpio_set_float
+
+p_g24_send_abort_packet:
+	jam 1,mem_24g_abort_pac
+p_g24_send_abort_packet1:	
+	jam 0,mem_24g_rf_hop_ch
+	call p_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 p_g24_txdata_enable_tx
+	call p_g24_transmit_packet
+	branch power_ctrl_start
+
+p_g24_search_dongle_init:
+	setarg 0
+	store 3,mem_24g_search_dongle_action
+	rtn
+
+p_g24_search_dongle:
+	fetch 1,mem_24g_search_dongle_delay_count
+	nrtn blank
+	fetch 1,mem_24g_abort_pac
+	rtn blank
+p_g24_search_dongle_loop:
+	fetch 1,mem_24g_search_dongle_ch
+	increase 1,pdata
+	store 1,mem_24g_search_dongle_ch
+	call p_g24_ch
+	call p_g24_send_abort_packet1
+	fetch 1,mem_24g_search_dongle_ch
+	bne G24_CH_NUMBER,p_g24_search_dongle_loop
+	
+	fetch 1,mem_24g_search_dongle_count
+	increase 1,pdata
+	store 1,mem_24g_search_dongle_count
+	beq G24_CH_POLL_COUNT,p_g24_search_dongle_check
+	rtn
+
+p_g24_search_dongle_check:
+	jam 0,mem_24g_search_dongle_count
+	fetch 1,mem_24g_search_dongle_action
+	rtnbit1 G24_DISCONN_STATE
+	set1 G24_DISCONN_STATE,pdata
+	store 1,mem_24g_search_dongle_action
+	setarg G24_DISCONN_NODATA_TIMER	//3min
+	store 2,mem_mouse_no_data_timer
+	branch p_mouse_sensor_powerdown
+
+p_g24_search_dongle_success:
+	fetch 1,mem_24g_abort_pac
+	branch p_g24_search_dongle_init,blank
+	jam 0,mem_24g_search_dongle_count
+	jam G24_CH_NUMBER,mem_24g_search_dongle_ch
+	fetch 1,mem_24g_search_dongle_action
+	rtnbit0 G24_DISCONN_STATE
+	set0 G24_DISCONN_STATE,pdata
+	store 1,mem_24g_search_dongle_action
+	call mouse_no_data_timer_init
+	branch p_mouse_init_sensor_reset
+
+//p_g24_set_device_addr:
+//	call adc_init_data
+//	fetch 4,mem_2v_adc_vinlpm_data	//adc data from otp
+//	store 4,mem_24g_device_addr	
+//	nrtn blank
+//	fetch 4,mem_lap
+//	store 4,mem_24g_device_addr
+//	rtn
+
+p_g24_transmit_rf_sta_init:
+	jam 1,mem_24g_rf_last_sta
+	jam 0,mem_24g_sync_cnt
+p_g24_transmit_rf_ctrl_clear:	
+	fetch 1,mem_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_24g_data_type
+	rtn
+	
+p_g24_hop_ch_enable:
+	fetch 1,mem_24g_data_type
+	set1 bit_hop,pdata
+	store 1,mem_24g_data_type
+	//update txpayload
+	store 1,mem_24g_txpayload
+	rtn
+p_g24_hop_ch_disable:
+	fetch 1,mem_24g_data_type
+	set0 bit_hop,pdata
+	store 1,mem_24g_data_type
+	store 1,mem_24g_txpayload
+	call power_ctrl_pac_succ_decrs
+	branch p_g24_ch
+	
+//p_g24_transmit_hop_pac_fail:
+//	call power_ctrl_pac_succ_decrs
+//	fetch 1,mem_24g_rf_work_stage
+//	beq 1,p_g24_transmit_hop_pac_fail_wo_hop
+//	beq 2,p_g24_transmit_hop_pac_fail_hop_stage2
+//	rtn
+//p_g24_transmit_hop_pac_fail_wo_hop:
+//	jam 2,mem_24g_sync_cnt
+//p_g24_transmit_hop_pac_fail_stage1:	
+//	jam 0,mem_24g_hop_pac_retry
+//	jam 0,mem_24g_rf_last_sta
+//	branch p_g24_transmit_rf_ctrl_clear
+
+//p_g24_transmit_hop_pac_fail_hop_stage2:
+//	jam 0,mem_24g_rf_hop_ch
+//	branch p_g24_transmit_hop_pac_fail_stage1
+
+//	
+//p_g24_transmit_pac_fail_hop_stage3:
+//	fetch 2,mem_24g_txfail_cnt
+//	increase 1,pdata
+//	store 2,mem_24g_txfail_cnt
+//	bbit1 10,p_g24_tx_attempt_fail	//1024ms * 8
+//	fetch 1,mem_24g_rf_hop_ch
+//	beq 1,p_g24_rf_hop_fastly
+//	jam 1,mem_24g_rf_hop_ch
+p_g24_rf_hop_attemp_again:
+	fetch 1,mem_24g_rf_hop_ch
+	bne 1,p_g24_transmit_rf_ctrl_clear
+p_g24_rf_hop_fastly:
+	fetch 1,mem_24g_hop_fastly_cnt
+	increase 1,pdata
+	store 1,mem_24g_hop_fastly_cnt
+	beq 4,p_g24_rf_hop_fastly_exit
+	call p_g24_ch
+	jam 2,mem_24g_max_retry
+	branch p_g24_transmit_packet
+
+p_g24_rf_hop_fastly_exit:
+	call power_ctrl_pac_succ_decrs
+	jam 0,mem_24g_hop_fastly_cnt
+	branch p_g24_transmit_rf_ctrl_clear
+
+p_g24_transmit_hop_pac_succ_wo_hop:
+	jam 2,mem_24g_sync_cnt
+p_g24_transmit_hop_pac_succ:
+	jam 1,mem_24g_rf_last_sta
+	jam 0,mem_24g_rf_hop_ch
+	branch p_g24_transmit_rf_ctrl_clear
+
+p_g24_transmit_succ_rf_config:
+	fetch 1,mem_24g_rf_work_stage
+	beq 3,p_g24_transmit_hop_pac_succ
+	fetch 1,mem_24g_data_type
+	isolate0 bit_hop,pdata
+	branch p_g24_transmit_rf_sta_init,true
+	fetch 1,mem_24g_rf_work_stage
+	beq 1,p_g24_transmit_hop_pac_succ_wo_hop
+	beq 2,p_g24_transmit_hop_pac_succ
+	rtn
+
+p_g24_rf_sta_check:
+	fetch 1,mem_24g_pairing_sm
+	rtnne STATE_24G_PAIRING_SUCCESS
+	call p_g24_rf_laststa_synccnt_check
+	ncall p_g24_rf_sync_cnt_check,user2
+	rtn
+
+p_g24_rf_laststa_synccnt_check:
+	disable user2
+	fetch 1,mem_24g_rf_last_sta
+	rtnne 1
+	fetch 1,mem_24g_sync_cnt
+	rtnne 0
+	jam 1,mem_24g_rf_work_stage
+	jam 4,mem_24g_max_retry
+	branch enable_user2
+
+p_g24_rf_sync_cnt_check:
+	fetch 1,mem_24g_sync_cnt
+	branch p_g24_rf_hop_attemp,blank
+	increase -1,pdata
+	store 1,mem_24g_sync_cnt
+	jam 2,mem_24g_rf_work_stage
+	jam 4,mem_24g_max_retry
+p_g24_ch:
+	fetcht 1,mem_24g_current_ch_number
+	fetch 1,mem_24g_addr	
+	and_into 0x03,pdata
+	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
+	setarg mem_24g_ch_map1
+	iadd rega,pdata
+	iadd temp,contr
+	ifetch 1,contr
+	store 1,mem_24g_ch
+	increase 1,temp
+	and_into 3,temp //map size =4
+	storet 1,mem_24g_current_ch_number
+	rtn
+
+p_g24_rf_hop_attemp:
+	jam 3,mem_24g_rf_work_stage
+	fetch 1,mem_24g_rf_hop_ch
+	nbranch p_g24_rf_hop_attemp_again,blank
+	jam 2,mem_24g_max_retry
+	branch p_g24_ch
+
+p_g24_txdata_prep:
+	fetch 1,mem_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,p_g24_pairing_sm	
+p_g24_txdata_prep_packeage_data:
+	call p_g24_package_data
+p_g24_txdata_enable_tx:	
+	call p_g24_transmit_prep
+	jam ENSURE_ON_24G,mem_24g_ensure
+	rtn
+
+p_g24_package_data:
+	fetch 2,mem_cb_24g_data
+	call callback_func
+	branch p_g24_accumulate_mouse_data,user
+	fetch 7,mem_24g_txbuf+1	//mouse data
+	rtn blank
+	branch enable_user	// retransmit
+p_g24_accumulate_mouse_data:
+	call p_mouse_data_xy_release
+	jam 0,mem_24g_abort_pac
+	add rega,1,pdata
+	store 1,mem_24g_datalen
+	call p_g24_transmit_rf_ctrl_clear
+	store 1,mem_24g_txbuf
+	ifetcht 1,contw
+	ifetch 1,regb
+	ior temp,pdata
+	istore 1,contw	//key
+	increase 1,regb
+	ifetch 4,regb
+	istore 4,contw	//x,y
+	increase 4,regb
+	arg mem_24g_txbuf+6,contw
+	arg 2,loopcnt
+p_g24_accumulation_loop:
+	ifetch 1,regb
+	ifetcht 1,contw	//wheel,twheel
+	iadd temp,pdata
+	istore 1,contw
+	increase 1,regb
+	loop p_g24_accumulation_loop
+	rtn
+
+p_g24_transmit_packet:
+	jam 0,mem_24g_retry
+p_g24_transmit_loop:
+	arg param_rx_setup,timeup
+	until clkn_rt,meet
+	call p_g24_transmit_receive_ack
+//	fetch 1,mem_24g_no_ack	//tx noack
+//	rtneq no_ack_24g
+	nbranch p_g24_retransmit,sync
+	nbranch p_g24_retransmit,user3
+	call p_g24_search_dongle_success
+	call p_g24_txbuf_clear
+	call p_g24_ackpayload_parse
+	call power_ctrl_pac_succ_incrs
+p_g24_transmit_next_packet:
+	fetch 1,mem_24g_pid
+	increase 1,pdata
+	store 1,mem_24g_pid
+	call p_g24_hop_enable_packet	
+	fetch 1,mem_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,p_g24_paring_mode_start
+	call p_g24_transmit_succ_rf_config
+p_g24_transmit_abandon:
+	setarg 0
+	store 4,mem_24g_ensure
+	store 1,mem_24g_hop_pac_retry
+	rtn
+
+p_g24_txbuf_clear:
+	arg 4,loopcnt
+	arg mem_24g_txbuf,contw
+	branch memset0
+
+p_g24_hop_enable_packet:
+	fetch 1,mem_24g_data_type
+	bbit1 bit_hop,p_g24_hop_ch_disable
+	rtn	
+
+p_g24_transmit_receive_ack:
+	disable user3
+	call p_g24_transmit
+	
+ifdef RF_DEBUG
+	call test_gpio_low
+endif
+
+//	fetch 1,mem_24g_no_ack
+//	beq no_ack_24g,p_g24_transmit_no_ack	//tx no ack
+	force 0,radio_ctrl
+	fetch 4,mem_24g_addr
+	iforce access
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	call p_g24_receive_rxon
+	call p_g24_end_of_packet,user3
+	rtn
+p_g24_transmit_no_ack:
+	call p_g24_end_of_packet
+	branch p_g24_transmit_next_packet
+
+p_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+1
+	bbit1 4,g24_stop_24g_mode
+	fetch 1,mem_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,p_g24_tx_paring_retry
+	call p_g24_tx_hop_ch_process
+	branch p_g24_transmit_loop
+	
+p_g24_tx_paring_retry:
+	fetch 1,mem_24g_txfail_cnt
+	rtnne 0xff
+p_g24_tx_attempt_fail:
+	setarg 0
+	store 2,mem_24g_txfail_cnt
+	branch g24_stop_24g_mode
+
+p_g24_tx_fast_hop:
+	call power_ctrl_txpower_incrs
+	call power_ctrl_pac_succ_decrs
+	branch p_g24_ch
+
+p_g24_tx_hop_ch_process:
+	fetch 1,mem_24g_retry
+	sub pdata,11,null
+	nbranch  p_g24_tx_fast_hop,positive		// >= 6+6 hop fast    fail packet count >= 2
+	increase 1,pdata
+	store 1,mem_24g_retry
+	beq 2,p_g24_hop_ch_enable
+	beq 6,p_g24_hop_ch_disable
+	beq 8,p_g24_hop_ch_enable
+	beq 12,p_g24_hop_ch_disable
+	rtn
+
+p_g24_ackpayload_parse:
+	call p_g24_read_len_pid_crc
+	fetch 1,mem_24g_rxdata_length	//ack payload length 
+	rtn blank
+	iforce loopcnt
+	arg mem_24g_rxbuf+2,contr
+	arg mem_24g_rxpayload,contw	//ack payload buffer 
+	branch memcpy
+
+p_g24_pair_init:
+	jam TX_POWER_0DB,mem_tx_power
+	jam 0,mem_24g_pid
+	jam G24_PAIR_CH,mem_24g_ch
+	fetch 4,mem_24g_paring_addr
+p_g24_update_addr_and_synccrc8:	
+	store 4,mem_24g_addr
+//output: 1BYTE crc8
+p_g24_syncword_crc8:
+	arg 0,rega
+	arg 4,loopcnt
+	arg mem_24g_addr,contr
+p_g24_syncword_crc8_loop:
+	ifetch 1,contr
+	iadd rega,rega
+	loop p_g24_syncword_crc8_loop
+	copy rega,pdata
+	store 2,mem_24g_syncword
+	fetch 1,mem_24g_syncword
+	fetcht 1,mem_24g_syncword+1
+	iadd temp,pdata
+	store 1,mem_24g_syncword_crc8
+	rtn
+
+p_g24_start_pairing_sm1:
+	set1 mark_24g,mark
+	call p_g24_pair_init
+p_g24_set_pairing_sm_1:
+	jam STATE_24G_PAIRING_1,mem_24g_pairing_sm
+	rtn
+
+p_g24_pairing_sm:
+	jam ZCODE_90,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_g24_paring_mode_start:
+	call power_ctrl_pac_succ_cnt_init
+p_g24_paring_mode:
+	jam ZCODE_91,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_g24_start_24g_mode:
+	jam ZCODE_40,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_g24_auto_pair_start:
+	jam ZCODE_41,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_g24_check_51cmd_stop_24g:
+	set0 mark_24g,mark
+	jam STATE_24G_STOP,mem_24g_conn_sm
+	call le_disable
+p_mouse_disable_g24_pairing_flag:
+	arg MOSUE_24G_PAIRING_FLAG,queue
+	branch mouse_disable_function_flag
+
+
+p_g24_put_data_in_buff:
+	storet 1,mem_24g_datalen
+	copy temp,loopcnt
+	arg mem_24g_txbuf,contw
+	copy rega,contr
+	branch memcpy
+
+p_g24_read_len_pid_crc:
+//read control
+	fetch 1,mem_24g_rxbuf+1
+	rshift3 pdata,pdata
+	store 1,mem_24g_rxdata_length
+//get crc
+	increase 1,pdata
+	arg mem_24g_rxbuf+1,contr
+	iadd contr,contr
+	ifetch 3,contr
+	store 3,mem_24g_sta_crc
+//read pid
+	fetch 1,mem_24g_rxbuf+1
+	rshift pdata,pdata
+	and pdata,0x03,pdata
+	store 1,mem_24g_sta_pid
+	rtn
+
+
+
+p_g24_transmit_prep:
+ifdef P24G_LOG
+	fetch 1,mem_24g_paccnt
+	increase 1,pdata
+	store 1,mem_24g_paccnt
+endif
+
+// total length
+	fetch 1,mem_24g_datalen
+	increase 2,pdata
+	store 1,mem_24g_txlen
+// data type
+	fetch 1,mem_24g_data_type
+	store 1,mem_24g_txpayload
+//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
+	fetch 1,mem_24g_datalen
+	lshift3 pdata,pdata
+	fetcht 1,mem_24g_pid
+	and temp,0x03,temp
+	lshift temp,temp
+	ior temp,pdata
+	fetcht 1,mem_24g_no_ack
+	iadd temp,pdata
+	istore 1,contw
+//prepare payload data
+	fetch 1,mem_24g_datalen
+	iforce loopcnt
+	arg mem_24g_txbuf,contr
+	branch memcpy
+
+//p_g24_ch:
+//	fetcht 1,mem_24g_current_ch_number
+//	fetch 1,mem_24g_addr	
+//	and_into 0x03,pdata
+//	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
+//	setarg mem_24g_ch_map1
+//	iadd rega,pdata
+//	iadd temp,contr
+//	ifetch 1,contr
+//	store 1,mem_24g_ch
+//	increase 1,temp
+//	and_into 3,temp //map size =4
+//	storet 1,mem_24g_current_ch_number
+//	rtn
+
+//p_g24_ch_map_size:
+//	call p_g24_ch_calc
+//	increase 1,temp
+//	and_into 3,temp //map size =4
+//	rtn
+	
+//p_g24_ch_calc:
+//	fetch 1,mem_24g_addr	
+//	and_into 0x03,pdata
+//	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
+//	setarg mem_24g_ch_map1
+//	iadd rega,pdata
+//	iadd temp,contr
+//	ifetch 1,contr
+//	store 1,mem_24g_ch
+//	rtn
+
+p_g24_prep:
+	disable enable_crc
+	disable enable_white
+	setarg 0x555555
+	iforce crc24_init
+	fetch 1,mem_24g_ch
+	reverse pdata,temp
+	set1 1,temp
+	rshift temp,white_init
+	rtn
+
+//p_g24_receive_packet:
+//	call le_enable
+//	fetch 4,mem_24g_addr
+//	iforce access
+//	call set_sync_on
+//	fetcht 1,mem_24g_ch
+//	call set_freq_rx
+//	setarg param_pll_setup
+//	call sleep
+//	call rf_rx_enable
+p_g24_receive_rxon:
+
+ifdef RF_DEBUG
+	call test_h_l_h
+endif
+
+	call p_g24_prep
+	disable user3
+	enable decode_fec0
+	enable is_rx
+	disable is_tx
+	enable swfine
+	fetch 2,mem_24g_rx_window
+	iforce stop_watch
+	correlate null,timeout
+	nbranch p_g24_sync_timeout,sync
+
+ifdef RF_DEBUG
+	call test_gpio_low
+	call test_gpio_high
+endif
+
+	disable decode_fec0
+	enable decode_fec1
+	enable enable_white
+	enable enable_crc
+	call p_g24_receive_byte
+	store 1,mem_24g_get_syncword_crc8
+	fetcht 1,mem_24g_syncword_crc8
+	isub temp,null
+	nbranch p_g24_end_of_packet,zero
+	call p_g24_receive_byte
+	store 1,mem_24g_rxbuf	//device id
+//	fetch 1,mem_24g_mode
+//	sub pdata,rx_24g,null
+//	branch p_g24_receive_skip,zero
+	fetch 1,mem_24g_rxbuf
+	fetcht 1,mem_24g_data_type
+	icompare bits_data,temp
+	nbranch p_g24_end_of_packet,true
+p_g24_receive_skip:
+	call p_g24_receive_byte
+	istore 1,contw
+	rshift3 pdata,pdata
+	and pdata,0x1f,loopcnt	//max payload: 32bytes
+	branch p_g24rx_nopayload,zero
+p_g24rx_loop:
+	call p_g24_receive_byte
+	istore 1,contw
+	loop p_g24rx_loop
+p_g24rx_nopayload:
+ifdef MOUSE
+	//receive rssi hex
+	copy contw,rega
+	call p_g24_receive_byte
+	store 1,mem_rssi_hex_received
+	copy rega,contw
+endif
+	parse demod,bucket,24
+	enable swfine
+	arg param_sifs,stop_watch	
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	disable decode_fec1
+ifdef DONGLE
+	call save_rssi
+endif	
+	branch p_g24_end_of_packet,crc_failed
+
+ifdef RF_DEBUG
+	call test_gpio_low
+	call test_gpio_high
+endif
+
+	enable user3
+	fetch 1,mem_last_freq
+	add pdata,0,rega
+	call rf_write_freq
+	disable decode_fec0
+	call set_sync_on
+ifdef DONGLE
+	rtn
+endif
+ifdef MOUSE
+	fetch 1,mem_rssi_hex_received
+	call p_rssi_signal
+endif
+	rtn
+
+p_g24_receive_byte:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	rtn
+	
+p_g24_sync_timeout:
+//ifdef DONGLE
+//	call p_rssi_noise
+//endif
+//	branch p_g24_end_of_packet
+p_g24_end_of_packet:
+	disable encode_fec1
+	disable decode_fec1
+	call end_of_packet
+ifdef RF_DEBUG
+	call test_gpio_low
+endif
+	rtn
+
+p_g24_set_freq_tx:
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	branch set_freq_tx
+
+p_g24_transmit:
+	call le_enable
+	fetch 4,mem_24g_addr
+	iforce access
+	call p_g24_prep
+	call p_g24_set_freq_tx
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+
+ifdef RF_DEBUG
+	call test_gpio_high
+endif
+	
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,40
+	disable encode_fec0
+	enable encode_fec1
+	enable enable_white
+	enable enable_crc
+	fetch 1,mem_24g_syncword_crc8
+	inject mod,8
+	fetch 1,mem_24g_txlen
+	iforce loopcnt
+	arg mem_24g_txpayload,contr
+p_g24tr_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop p_g24tr_loop
+ifdef DONGLE
+	fetch 1,mem_rssi_hex
+	inject mod,8
+endif
+
+ifdef P24G_LOG	
+	fetch 1,mem_tx_power
+	inject mod,8
+	fetch 1,mem_rssi_avg_received
+	inject mod,8
+	fetch 1,mem_24g_paccnt
+	inject mod,8
+endif
+
+	enable enable_parity
+	inject mod,24	//crc
+	disable enable_parity
+	until null,tx_clear
+	nop 100
+	disable encode_fec0
+	disable encode_fec1
+	rtn
+
+p_g24_timer_check:
+	call disable_user
+	fetcht 4,mem_24g_tx_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_24g_tx_btclk
+	fetcht 1,mem_24g_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_24g_tx_btclk
+	branch enable_user
+
+//p_rssi_noise:
+//	call save_rssi
+//	rtn blank
+//	fetcht 1,mem_rssi_noise_index
+//	arg mem_rssi_noise_buffer,rega
+//	call p_rssi_store
+//	storet 1,mem_rssi_noise_index
+//	rtn
+	
+//p_rssi_store:
+//	copy rega,pdata
+//	iadd temp,contw
+//	fetch 1,mem_rssi
+//	istore 1,contw
+//	increase 1,temp
+//ifdef DONGLE
+//	and_into RSSI_BUF_LEN_NOISE,temp
+//endif
+//ifdef MOUSE
+//	and_into RSSI_BUF_LEN_SIGNAL,temp
+//endif
+//	rtn
+p_rssi_average:
+	arg 0,temp
+ifdef DONGLE
+	arg RSSI_BUF_LEN_NOISE+1,loopcnt
+endif
+ifdef MOUSE
+	arg RSSI_BUF_LEN_SIGNAL+1,loopcnt
+endif
+	copy rega,contr
+ifdef DONGLE
+	branch rssi_average_loop
+endif
+ifdef MOUSE
+p_rssi_average_loop:
+	ifetch 1,contr
+	iadd temp,temp
+	loop p_rssi_average_loop
+	rshift3 temp,pdata
+	copy pdata,temp
+	rtnmark0 mark_24g
+	//2BCD
+	div pdata,10
+	call wait_div_end
+	quotient pdata
+	lshift4 pdata,pdata
+	remainder temp
+	ior temp,temp
+	rtn
+endif
+	rtn
+
+endif
+
+p_mouse_before_lpm:
+	rtnmark1 mark_24g
+	call p_mouse_le_txbuff_save
+	call p_mouse_setgpio_lpm
+	fetch 1,mem_context
+	bbit0 state_inconn,p_clear_wake
+	fetch 1,mem_lpm_current_mult
+	nrtn blank
+p_clear_wake:
+	setarg 0
+	store 8,mem_gpio_wakeup_low
+	rtn
+
+
+p_mouse_set_sdio_high:
+	fetch 1,mem_mouse_init_sensor_reset_flag
+	rtn blank
+	branch p_mouse_seting_sensor_type// make sdio high to make 100uA less	
+
+p_device_init:
+ifdef DEBUGLOG
+	call debuglog_init
+ifdef DEBUGLOG_STATUS
+	setarg DEBUGLOG_DTYPE_STATUS
+	store 2,mem_debuglog_datatype
+	setarg STATUS_LPM_WAKE
+	store 2,mem_debuglog_dataval
+	call debuglog_push	
+endif
+endif
+	call app_lpm_mult_enable
+	call enable_authrom
+	branch p_device_wake_from_lpm,wake
+p_device_wake_from_power:
+ifdef DEBUGLOG
+ifdef DEBUGLOG_STATUS
+	setarg DEBUGLOG_DTYPE_STATUS
+	store 2,mem_debuglog_datatype
+	setarg STATUS_CODE_WAKE
+	store 2,mem_debuglog_dataval
+	call debuglog_push
+endif
+endif
+ifdef RF_DEBUG
+	call test_gpio_init
+endif
+	call p_wake_from_power
+//ifdef G24
+//	fetch 1,mem_power_on_flag
+//	bbit1 2,p_mouse_skip_24g_pair
+//	call p_mouse_check_key_gpio
+//	beq MOUSE_LR_BUTTON,p_mouse_24g_pairing_button
+//p_mouse_skip_24g_pair:
+//endif
+p_mouse_check_reconn_target:
+	call p_mouse_tx_power_init
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_connect_24g_mode
+//	beq MODE_DEFAULT_DEVICE,p_mouse_connect_24g_mode
+	fetch 1,mem_xrecord_mode
+ifdef CLASSIC_BT
+	beq REC_3_MODE,p_mouse3_0_check_reconn_target
+endif
+ifdef BLE
+	beq REC_4_MODE,p_mouse4_0_check_reconn_target
+endif
+ifdef BLE_FAST_CONN_ENABLE
+	fetch 1,mem_mouse_fast_conn_flag
+	sub pdata,0xff,null
+	call p_mouse_fast_conn_le_switch_adv,zero
+endif
+	call p_mouse_fast_conn_adv_switch_timer_reinit
+	jam 6,mem_connection_options
+	call p_mouse_check_fast_conn_adv_start
+	branch check_51cmd_start_discovery
+
+p_device_wake_from_lpm:
+	branch p_mouse_spi_init
+
+p_mouse_tx_power_init:
+	fetch 1,mem_tx_power_temp
+	store 1,mem_tx_power
+	rtn
+
+//p_mouse_check_select_device_by_switch:
+//	fetch 1,mem_config_function_enable
+//	branch mouse_cheak_select_device_by_switch+1
+
+ifdef CLASSIC_BT
+p_mouse3_0_check_reconn_target:
+	call p_mouse_mode_bt_device1_multi_led_blink3s
+	fetch 6,mem_hci_plap
+	branch app_bt_start_discovery_short,blank
+	branch mouse3_0_check_reconn_target+3
+endif	
+
+ifdef BLE
+p_mouse4_0_check_reconn_target:
+	jam ZCODE_11,mem_zcode_temp_param0
+	branch p_zcode_entrance
+endif
+
+//ifdef G24
+//p_mouse_24g_pairing_button:
+//	jam ZCODE_42,mem_zcode_temp_param0
+//	branch p_zcode_entrance
+//endif
+
+p_mouse_init_sunt:
+	call p_mouse_spi_init
+	call mouse_spi_sdio_gpio_pollup
+p_mouse_init_sensor:
+	call mouse_read_sensor_id
+	beq P32XX_ID1,p_mouse_init_p32xx_id2_judge
+	beq P3065_ID1,p_mouse_p3065_init_param
+	call mouse_twspi_reset
+	nop 1000
+	branch p_mouse_init_sensor
+
+p_mouse_init_p32xx_id2_judge:
+	call p_mouse_sensor_poweron
+	branch mouse_init_p32xx_id2_judge
+
+p_mouse_p3065_init_param:
+	call p_mouse_sensor_poweron
+	fetch 1,mem_sensor_id2
+	beq P3065_XY_ID2,mouse_p3065xy_init_param
+	jam P3065,mem_config_sensor_type
+	rtn
+
+p_mouse_setting_config:
+	jam ZCODE_80,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+//ncs gpio output high
+p_flash_ncs_disable:
+	fetcht 1,mem_flash_ncs_gpio
+	branch gpio_out_inactive
+
+p_spid_init_flash:
+	jam 0x40,core_spid_ctrl
+	jam 0x0,core_spid_delay
+	hfetch 1,core_gpio_sel1
+	set0 0,pdata
+	set0 1,pdata
+	set1 3,pdata
+	set0 4,pdata
+	hstore 1,core_gpio_sel1
+	setarg 0
+	store 4,mem_spid_tbuf
+	hfetch 1,core_gpio_pd3	//gpio24 can not be set pulldown
+	set0 0,pdata
+	hstore 1,core_gpio_pd3
+	rtn
+
+p_mouse_load_flash_info_check:
+	call p_flash_release_deep_power_down
+	call mouse_load_flash_flag
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch p_mouse_load_flash_device_info,zero
+	storet 2,mem_store_flag
+	call mouse_ble_init_address
+	fetch 1,mem_config_sensor_motion
+	store 1,mem_mouse_dpi
+	fetch 4,mem_mouse_24g_addr_init
+	store 4,mem_mouse_24g_addr
+	store 4,mem_24g_addr
+p_mouse_store_flash_device_info:
+	call p_flash_release_deep_power_down
+	call p_flash_erase_sector
+	call p_mouse_information_flash_parameters
+	call p_spid_write_flash
+	call p_wait_flash_done
+	//user flash data
+	arg 7,temp
+	arg mem_mouse_flash_start_temp,rega
+	arg MOUSE_USER_DATA_OFFECT,regb
+	fetch 3,mem_flash_base
+	iadd regb,pdata
+	call p_spid_write_flash
+	call p_wait_flash_done
+	call p_flash_deep_power_down
+p_mouse_spi_init:
+	jam 0x76,mem_spi_init_clk
+	branch mouse_spi_init
+
+p_flash_erase_sector:
+	fetch 3,mem_flash_base
+	store 3,mem_spi_write_addr
+	call flash_erase_sector+2
+p_wait_flash_done:
+	setarg 100000
+	call sleep
+	call spid_unlock_flash
+	setarg mem_spid_rbuf
+	hstore 2,core_spid_rxaddr
+	setarg FLASH_READ_SATUS
+	call spid_read_reg
+	bbit1 FLASH_STATUS_WIP,p_wait_flash_done
+	rtn
+
+p_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
+
+p_mouse_information_flash_parameters:
+	setarg mem_mouse_information_end
+	arg mem_mouse_information_start,temp
+	isub temp,temp
+	fetch 3,mem_flash_base
+	arg mem_mouse_information_start,rega
+	rtn
+
+p_mouse_read_flash:
+	call p_flash_release_deep_power_down
+	call p_mouse_information_flash_parameters
+	branch spid_read_flash
+
+p_mouse_load_flash_device_info:
+	call p_mouse_read_flash
+	call p_mouse_load_flash_user_data
+//	call p_mouse_check_select_device_by_switch
+//	call p_mouse_switch_Hwakeup_byPB
+	call mouse_select_reconn_device
+	fetch 4,mem_mouse_24g_addr
+	store 4,mem_24g_addr
+	rtn
+
+p_flash_deep_power_down:
+	jam FLASH_COMMAND_DEEP_POWER_DOWN,mem_temp
+p_spid_write_flash_cmd:
+	call p_spid_init_flash
+	call spid_unlock_flash
+	arg mem_write_flash_head_temp,rega
+	fetcht 1,mem_temp
+	branch spid_write_flash_common
+
+p_flash_release_deep_power_down:
+	jam FLASH_COMMAND_RELEASE_DEEP_POWER_DOWN,mem_temp
+	branch p_spid_write_flash_cmd
+
+ifdef BLE_FAST_CONN_ENABLE
+p_mouse_fast_conn_quit:
+	setarg 0x50
+	store 2,mem_mouse_direct_timer
+	call app_ble_store_reconn_info
+p_mouse_store_fast_conn_flag:
+	jam 0x5a,mem_mouse_fast_conn_flag
+	branch p_mouse_store_flash_device_info
+
+p_mouse_fast_conn_le_switch_adv:
+	jam 1,mem_le_switch_adv_timer
+	jam 1,mem_le_switch_adv_flag
+p_mouse_fast_conn_init:
+	setarg -1
+	store 6,mem_le_lap
+	rtn	
+
+endif
+
+p_mouse_load_flash_user_data:
+	call p_flash_release_deep_power_down
+	arg 7,temp
+	arg mem_mouse_flash_start_temp,rega
+	arg MOUSE_USER_DATA_OFFECT,regb
+	fetch 3,mem_flash_base
+	iadd regb,pdata
+	branch spid_read_flash
+
+//p_mouse_select_device_button_wakeup_check:
+//	jam 0,mem_mouse_select_device_button_wakeup_flag
+//	fetcht 1,mem_config_select_device_button_gpio
+//	call gpio_config_input
+//	fetcht 1,mem_config_select_device_button_gpio
+//	call gpio_get_bit
+//	nrtn true
+//	call delay_10ms
+//	fetcht 1,mem_config_select_device_button_gpio
+//	call gpio_get_bit
+//	nrtn true
+//	jam 1,mem_mouse_select_device_button_wakeup_flag
+//	rtn
+
+//p_mouse_switch_Hwakeup_byPB:
+//	fetch 1,mem_config_function_enable
+//	rtnbit1 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON
+//	fetch 1,mem_mouse_select_device_button_wakeup_flag
+//	rtn blank
+//p_mouse_switch_device:
+//	fetcht 1,mem_device_flag
+//	increase 1,temp
+//	fetch 1,mem_device_number
+//	isub temp,null
+//	ncall mouse_select_device_count_clean,positive
+//	storet 1,mem_device_flag
+//	branch p_mouse_store_flash_device_info
+
+p_mouse_connect_24g_mode:
+	call p_mouse_mode_24g_device_multi_led_blink3s
+p_mouse_start_24g_mode:
+//	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+//	rtnbit0 MOUSE_ENABLE_24G
+	fetch 1,mem_power_on_flag
+	bbit1 2,p_g24_start_24g_mode	//hibernate goto reconn
+	fetch 4,mem_mouse_24g_addr_init	//power on goto pair
+	store 4,mem_24g_addr
+	call p_mouse_store_flash_device_info	
+	branch p_g24_auto_pair_start
+
+ifdef G24
+p_mouse_g24_package_data:
+	call mouse_g24_package_data
+	fetch 2,mem_mouse_z
+	rtn blank
+p_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
+endif	
+	
+ifdef BLE
+p_mouse_le_txbuff_save:
+	arg mem_le_tx_buffer0,contr
+	arg mem_le_tx_buffer0_omemalloc,contw
+	call p_mouse_le_txbuff_copy
+	arg mem_le_tx_buffer1,contr
+	call p_mouse_le_txbuff_copy
+	arg mem_le_tx_buffer2,contr
+	call p_mouse_le_txbuff_copy
+	arg mem_le_tx_buffer3,contr
+p_mouse_le_txbuff_copy:	
+	arg 27,loopcnt
+	branch memcpy
+
+p_mouse_le_txbuff_load:
+	arg mem_le_tx_buffer0_omemalloc,contr
+	arg mem_le_tx_buffer0,contw
+	call p_mouse_le_txbuff_copy
+	arg mem_le_tx_buffer1,contw
+	call p_mouse_le_txbuff_copy
+	arg mem_le_tx_buffer2,contw
+	call p_mouse_le_txbuff_copy
+	arg mem_le_tx_buffer3,contw
+	branch p_mouse_le_txbuff_copy
+
+
+p_mouse_le_current_mult_update:
+	jam 0,mem_lpm_mult
+	jam 30,mem_mouse_le_current_mult_timer
+	rtn
+
+p_mouse_data_xy_release:
+	fetch 1,mem_mouse_long_mult_flag
+	rtnne 1
+	setarg 0
+	store 1,mem_mouse_long_mult_flag
+	store 4,mem_mouse_x
+p_mouse_sensor_poweron:
+	call p_mouse_spi_init
+	setarg 0x8006	// reset to factory settings
+	call twspi_write
+	nop 12000
+p_mouse_dpi_config:
+	fetch 1,mem_mouse_dpi
+	beq 0xff,p_mouse_dpi_config_default
+	branch p_mouse_seting_dpi
+p_mouse_dpi_config_default:
+	fetch 1,mem_config_sensor_motion
+	store 1,mem_mouse_dpi
+	branch p_mouse_seting_dpi
+
+p_mouse_le:
+	call le_fifo_check_nearly_full
+	nrtn blank
+ifdef BLE_FAST_CONN_ENABLE
+	fetch 1,mem_mouse_fast_conn_flag
+	beq 0xff,p_mouse_le_next
+endif	
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+p_mouse_le_next:	
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	call p_mouse_clear_sensor_data,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
+	call mouse_motion
+	nrtn user
+	call p_mouse_le_current_mult_update
+	call p_mouse_data_xy_release
+	call p_mouse_wheel_trigger
+p_mouse_data_push:
+	arg mem_mouse_key,rega
+	call queue_push
+	call p_mouse_queue_increase,user
+	
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	setarg MISC_LOST_MOUSEDATA
+	store 2,mem_debuglog_dataval
+	nbranch debuglog_push,user
+
+	setarg MISC_PUSH_MOUSEDATA
+	store 2,mem_debuglog_dataval
+	call debuglog_push
+endif
+endif
+	rtn
+
+p_mouse_data_init:
+	jam 7,mem_mouse_data_queue	//data length
+	jam 4,mem_mouse_data_queue+1	//fifo depth
+	setarg mem_mouse_data_queue
+	store 2,mem_queue_ptr
+	branch queue_init
+
+p_mouse_queue_increase:
+	fetch 1,mem_mouse_data_queue_num
+	increase 1,pdata
+	store 1, mem_mouse_data_queue_num
+	rtn
+	
+p_mouse_data_pull:
+	arg mem_mouse_key,rega
+	call queue_pop
+	branch p_mouse_fill_data_le,user
+	rtn
+
+p_mouse_fill_data_le:
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	setarg MISC_PULL_MOUSEDATA
+	store 2,mem_debuglog_dataval
+	call debuglog_push
+
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_mouse_x
+	store 1,mem_debuglog_dataval
+	fetch 1,mem_mouse_y
+	store 1,mem_debuglog_dataval+1
+	call debuglog_push	
+endif
+endif
+	call le_clear_md
+	fetch 1,mem_mouse_data_queue_num
+	sub pdata,1,null
+	ncall le_set_md,positive
+	fetch 1,mem_mouse_data_queue_num
+	rtn blank
+	increase -1,pdata
+	store 1, mem_mouse_data_queue_num
+	branch mouse_fill_data_le
+	
+endif
+
+p_mouse_wheel_trigger:
+	fetch 2,mem_mouse_z
+	rtn blank
+	jam 1,mem_mouse_wheel_trigger
+	jam 10,mem_mouse_wheel_trigger_timer
+	rtn
+
+ifdef CLASSIC_BT
+p_mouse_bt:
+	rtn attempt
+	fetch 1,mem_app_handshake_flag
+	rtn blank
+	call l2cap_malloc_is_fifo_nearly_full
+	nrtn blank
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	call p_mouse_clear_sensor_data,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_send_empty_data
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,mouse_send_empty_data
+	call mouse_motion
+	nrtn user
+	call p_mouse_le_current_mult_update
+	call p_mouse_data_xy_release
+	call p_mouse_wheel_trigger
+	fetch 1,mem_mouse_bt_boot_mode
+	beq 1,p_mouse_send_data_boot_mode	//boot
+	fetch 1,mem_mouse_bt_send_first_package_flag
+	rtn blank
+	branch mouse_send_data	//report
+
+p_mouse_send_data_boot_mode:
+	fetch 1,mem_mouse_key
+	store 1,mem_mouse_bt_boot_data
+	fetch 1,mem_mouse_x
+	istore 1,contw
+	fetch 1,mem_mouse_y
+	istore 1,contw
+	fetch 2,mem_mouse_z
+	istore 2,contw
+
+	arg 7,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0x02a1
+	istore 2,contw
+	fetch 5,mem_mouse_bt_boot_data
+	istore 5,contw
+	rtn
+
+p_mouse_clear_sensor_data:
+	jam 1,mem_mouse_clear_sensor_data_flag
+	call le_set_config_more_data
+p_mouse_init_sensor_reset:
+	jam 1,mem_mouse_init_sensor_reset_flag
+	branch p_mouse_init_sunt
+endif
+
+p_mouse_idle:
+	call ui_check_paring_button
+	call p_mouse_dpi_check
+	branch mouse_wheel_check
+
+p_mouse_dpi_check:
+	fetcht 1,mem_dpi_button_gpio
+	call p_gpio_set_input_pd
+	fetcht 1,mem_dpi_button_gpio
+	call gpio_get_bit
+	branch p_mouse_dpi_up,true
+	call p_gpio_set_input_pu
+p_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
+	rtn
+p_mouse_dpi_up:
+	call p_gpio_set_input_pu
+	fetch 1,mem_mouse_dpi_button_state
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	call p_mouse_load_flash_user_data
+	fetch 1,mem_mouse_long_button_select_device
+	branch p_mouse_select_device_and_reset,blank//rtn blank
+	fetch 1,mem_mouse_dpi
+	increase 1,pdata
+	and pdata,0x03,pdata
+	store 1,mem_mouse_dpi
+	increase 2,pdata
+	store 1,mem_mouse_multi_led_blink_count
+	call p_mouse_dpi_multi_led_blink
+	call mouse_seting_dpi
+	branch p_mouse_store_flash_device_info
+
+	
+
+p_mouse_priority_bb_event:
+	copy regc,pdata
+ifdef BLE	
+	beq BT_EVT_LE_CONNECTED,p_mouse_le_bb_event_connected
+	beq BT_EVT_LE_DISCONNECTED,p_mouse_le_bb_disconnected
+	beq BT_EVT_LE_ENC_INFO,p_mouse_le_enc_info
+	beq BT_EVT_LE_START_ENC,p_mouse_le_ll_start_encryt
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,p_mouse_le_conn_param_update_rsp_recieved
+endif
+ifdef CLASSIC_BT
+	beq BT_EVT_RECONN_FAILED,p_mouse_bb_event_reconn_failed
+	beq BT_EVT_RECONN_PAGE_TIMEOUT,p_mouse_bb_event_reconn_timeout
+	beq BT_EVT_SWITCH_NOT_ACCEPT,app_bt_role_switch	
+	beq BT_EVT_SNIFF_NOT_ACCEPT,p_mouse_sniff_not_accept
+	beq BT_EVT_BB_CONNECTED,p_mouse_bb_event_connected
+	beq BT_EVT_BB_DISCONNECTED,p_mouse_bb_event_disconnected
+	beq BT_EVT_SWITCH_SUCCESS_MASTER,p_mouse_enter_sniff_check
+endif
+ifdef G24
+	beq BT_EVT_24G_PAIRING_COMPLETE,p_mouse_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_FAIL,p_mouse_24g_attempt_fail
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,p_mouse_24g_attempt_success
+endif
+	branch mouse_priority_bb_event+1
+
+ifdef BLE
+p_mouse_le_bb_event_connected:
+	call p_mouse_init_sensor_reset
+	jam ZCODE_B0,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_mouse_le_bb_disconnected:
+	call p_mouse_sensor_powerdown_check	//sensor power down
+	jam ZCODE_A2,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_mouse_le_enc_info:
+p_app_updata_le_param:
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+p_mouse_le_ll_start_encryt:
+	jam ZCODE_B3,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_mouse_le_conn_param_update_rsp_recieved:
+	jam ZCODE_A1,mem_zcode_temp_param0
+	branch p_zcode_entrance
+endif
+
+
+ifdef CLASSIC_BT
+p_mouse_bb_event_reconn_timeout:
+p_mouse_bb_event_reconn_failed:
+	jam ZCODE_A3,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_mouse_irtual_cable_unplug:
+	jam ZCODE_70,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_mouse_sniff_not_accept:
+	jam ZCODE_B1,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_mouse_bb_event_connected:
+	call p_mouse_store_eeprom_enable
+	call p_mouse_init_sensor_reset
+ifdef BLE_FAST_CONN_ENABLE
+	setarg 0
+	store 3,mem_le_switch_adv_flag
+	call p_mouse_store_fast_conn_flag
+endif
+	call p_mouse_null_enter_hibernate_disable
+	jam 0,mem_mouse_send_switch_req_timer
+	branch mouse_stop_discovery
+
+p_mouse_bb_event_disconnected:
+	call p_mouse_sensor_powerdown_check	//sensor power down
+	jam ZCODE_B4,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_mouse_enter_sniff_check:
+	jam ZCODE_B2,mem_zcode_temp_param0
+	branch p_zcode_entrance
+endif
+
+ifdef G24
+p_mouse_24g_pairing_complete:
+	call p_mouse_init_sensor_reset
+	jam ZCODE_50,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_mouse_24g_attempt_fail:
+	call p_mouse_sensor_powerdown_check	//sensor power down
+	jam ZCODE_51,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_mouse_24g_attempt_success:
+	call p_mouse_init_sensor_reset
+	jam ZCODE_52,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_mouse_before_hibernate:
+	call p_mouse_sensor_powerdown_check
+	jam ZCODE_A0,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_mouse_sensor_powerdown_check:
+	fetch 1,mem_mouse_init_sensor_reset_flag
+	rtn blank
+	jam 0,mem_mouse_init_sensor_reset_flag
+p_mouse_sensor_powerdown:
+	call p_mouse_init_sunt
+	setarg 0x06
+	call twspi_read
+	or pdata,0x08,pdata
+	lshift8 pdata,pdata
+	add pdata,0x06,pdata
+	branch twspi_write	//make sdio high
+
+
+p_mouse_bb_event_timer:
+ifdef ADC_ENABLE
+	call p_mouse_adc_read
+	call p_mouse_low_voltage_led_timer
+	call p_low_power_nodata_off_led_time_check
+endif
+ifdef BLE_FAST_CONN_ENABLE
+	call p_mouse_le_switch_adv_timer
+endif
+	call p_mouse_multi_led_blink_timer
+	call p_mouse_wheel_trigger_timer
+	call p_mouse_null_enter_hibernate_timer
+	call p_mouse_bt_discovery_check
+	call mouse_check_discovery_timeout_timer
+	call p_mouse_select_device
+//	call p_mouse_check_select_device_by_switch_timer
+ifdef G24	
+	call p_mouse_g24_long_sleep_param_update_timer
+	call p_mouse_g24_search_dongle_delay_timer
+	call p_mouse_g24_stop_mode_timeout_timer
+endif
+ifdef BLE	
+	call p_mouse_check_direct_timeout_timer
+	call p_mouse_le_enable_att_list_timer
+	call p_le_send_smp_security_request_timer
+	call p_mouse_le_current_mult_update_timer	
+endif
+ifdef CLASSIC_BT
+	call p_mouse_send_switch_req_timer
+	call mouse_check_hid_handshake_timer
+	call p_mouse_bt_check_sniff_req_timeout_timer
+endif
+	branch mouse_check_no_data_timeout_timer
+
+
+//p_mouse_check_select_device_by_switch_timer:
+//	fetch 1,mem_config_function_enable
+//	rtnbit0 ENABLE_SELECT_DEVICE_BY_SWITCH
+//	fetcht 1,mem_config_select_device_button_gpio
+//	call gpio_get_bit
+//	branch p_mouse_cheak_select_24gdevice,true
+//p_mouse_select_btdevice:
+//	fetch 1,mem_device_flag
+//	bne MODE_BT_DEVICE1,soft_reset_chip
+//	rtn
+//p_mouse_cheak_select_24gdevice:
+//	fetch 1,mem_device_flag
+//	bne MODE_24G_DEVICE,soft_reset_chip
+//	rtn
+
+ifdef BLE_FAST_CONN_ENABLE
+p_mouse_le_switch_adv_timer:
+	fetch 1,mem_le_switch_adv_flag
+	rtn blank
+	arg mem_le_switch_adv_timer,regc
+	arg p_mouse_le_switch_adv,regb
+	branch timer_single_step
+p_mouse_le_switch_adv:
+	jam 1,mem_le_switch_adv_timer
+	fetch 1,mem_le_switch_adv_count
+	increase 1,pdata
+	and_into 1,pdata
+	store 1,mem_le_switch_adv_count
+	beq 0,p_mouse_check_fast_conn_adv_start1
+p_check_51cmd_adv:
+ifdef BLE_FAST_CONN_ENABLE
+	fetch 6,mem_le_normal_lap
+	store 6,mem_le_lap
+endif
+	call p_mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+p_mouse_le_adv_data_update:
+	jam 0x1f,mem_le_adv_data_len
+	jam 0x1f,mem_le_scan_data_len
+	call p_mouse_store_eeprom_enable
+	arg mem_le_adv_swift_pair,contr
+p_le_adv_data_update:
+	arg mem_le_adv_data+11,contw
+	arg 19,loopcnt
+	call memcpy
+	branch le_modified_name_adv
+
+p_mouse_store_eeprom_enable:
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	branch mouse_enable_function_flag
+
+p_mouse_check_fast_conn_adv_start:
+p_mouse_check_fast_conn_adv_start1:
+	jam 0,mem_le_adv_data_len
+	jam 0,mem_le_scan_data_len
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	branch p_mouse_fast_conn_init
+endif
+
+
+ifdef G24
+p_mouse_g24_long_sleep_param_update_timer:
+	arg mem_24g_long_sleep_param_update_timer,regc
+	arg p_mouse_g24_long_sleep_normal_param,regb
+	branch timer_single_step
+p_mouse_g24_long_sleep_normal_param:
+	setarg G24_LONG_SLEEP_STEP2
+	store 3,mem_24g_enter_hibernate
+p_mouse_long_mult_flag_enable:	
+	jam 1,mem_mouse_long_mult_flag
+	rtn
+
+p_mouse_g24_search_dongle_delay_timer:
+	arg mem_24g_search_dongle_delay_count,regc
+	arg 0,regb
+	branch timer_single_step
+
+p_mouse_g24_stop_mode_timeout_timer:
+	arg mem_24g_stop_g24_mode_timeout,regc
+	arg p_mouse_g24_stop_mode_timeout,regb
+	branch timer_single_step_2B
+p_mouse_g24_stop_mode_timeout:
+	jam 1,mem_24g_stop_g24_mode
+	rtn
+endif
+
+p_mouse_select_device:
+p_mouse_select_device_by_button:
+	fetcht 1,mem_config_select_device_button_gpio
+	call p_gpio_set_input_pd
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_get_bit
+	nbranch p_mouse_select_device_button_down,true
+p_mouse_select_device_button_up:
+	call p_gpio_set_input_pu
+	fetch 1,mem_mouse_button_select_device_timer_init
+	store 1,mem_mouse_button_select_device_count
+	fetch 1,mem_select_device_button_statue
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue
+	arg MOUSE_LONG_BT_BUTTON_FLAG,queue
+	branch mouse_disable_function_flag
+p_mouse_select_device_button_down:
+	call p_gpio_set_input_pu
+	call p_mouse_button_select_device_timer
+	call p_mouse_null_enter_hibernate_check
+	fetch 1,mem_select_device_button_statue
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_select_device_button_statue
+	rtn
+
+p_mouse_button_select_device_timer:
+	arg mem_mouse_button_select_device_count,regc
+	arg p_mouse_long_button_select_device,regb
+	branch timer_single_step
+p_mouse_long_button_select_device:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_LONG_BT_BUTTON_FLAG
+	call p_mouse_long_button_state_clear	
+p_mouse_ready_reconnection_by_button:
+	jam 0,mem_link_key_exists
+//	call p_mouse_switch_device
+	fetcht 1,mem_device_flag
+	increase 1,temp
+	fetch 1,mem_device_number
+	isub temp,null
+	ncall mouse_select_device_count_clean,positive
+	storet 1,mem_device_flag
+	call p_mouse_store_flash_device_info
+	branch mouse_ready_reconnection_by_button+8
+
+p_mouse_select_device_and_reset:
+	jam 0xff,mem_mouse_long_button_select_device
+	branch p_mouse_store_flash_device_info
+p_mouse_long_button_state_clear:
+	jam 0,mem_mouse_long_button_select_device
+	branch p_mouse_store_flash_device_info
+
+ifdef CLASSIC_BT
+p_mouse_send_switch_req_timer:
+	arg mem_mouse_send_switch_req_timer,regc
+	arg host_create_conn_resend,regb
+	branch timer_single_step
+
+p_mouse_bt_check_sniff_req_timeout_timer:
+	arg mem_mouse_bt_send_first_package_timer,regc
+	arg p_mouse_bt_send_first_package,regb
+	branch timer_single_step
+p_mouse_bt_send_first_package:
+	jam 1,mem_mouse_bt_send_first_package_flag
+	rtn
+endif
+
+
+ifdef BLE
+p_mouse_check_direct_timeout_timer:
+	arg mem_mouse_direct_timer,regc
+	arg p_mouse_check_direct_timeout,regb
+	branch timer_single_step_2B
+p_mouse_check_direct_timeout:
+	jam 1,mem_mouse_le_not_tx_disconn
+	call p_mouse_long_button_bt_normal_discovery
+	branch p_mouse_bt_discovery_button_up_init
+
+p_mouse_le_enable_att_list_timer:
+	arg mem_le_start_encrypt_timer,regc
+	arg mouse_le_write_enable,regb
+	branch timer_single_step
+
+p_le_send_smp_security_request_timer:
+	fetch 1,mem_mouse_le_bb_connected_flag
+	rtn blank
+	arg mem_mouse_send_secutiry_request_timer,regc
+	arg p_le_pairing_sm_start_check,regb
+	branch timer_single_step
+p_le_pairing_sm_start_check:
+	fetch 1,mem_le_send_security_request_flag
+	nrtn blank
+	branch le_pairing_sm_start
+
+p_mouse_le_current_mult_update_timer:
+	arg mem_mouse_le_current_mult_timer,regc
+	arg p_mouse_le_current_mult_reinit,regb
+	branch timer_single_step
+p_mouse_le_current_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+	branch p_mouse_long_mult_flag_enable
+endif
+
+p_mouse_wheel_trigger_timer:
+	arg mem_mouse_wheel_trigger_timer,regc
+	arg p_mouse_wheel_trigger_disable,regb
+	branch timer_single_step
+p_mouse_wheel_trigger_disable:
+	jam 0,mem_mouse_wheel_trigger
+	rtn
+
+p_mouse_bt_discovery_check:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+p_mouse_bt_discovery_commbination_key:
+//	fetch 1,mem_mouse_dpi_button_state
+//	branch p_mouse_bt_discovery_commbination_key_down,blank
+	call p_mouse_check_key_gpio
+	beq MOUSE_LMR_BUTTON,p_mouse_bt_discovery_commbination_key_down
+p_mouse_bt_discovery_commbination_key_up:
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init
+	fetch 1,mem_bt_discovey_button_statue
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_bt_discovey_button_statue
+p_mouse_bt_discovery_button_up_init:	
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+	branch mouse_bt_discovery_button_down_disable
+p_mouse_bt_discovery_commbination_key_down:
+	jam 40,mem_mouse_null_enter_hibernate_timer
+	call p_mouse_bt_discovery_timer
+	branch mouse_bt_discovery_commbination_key_down+1
+
+p_mouse_bt_discovery_timer:
+	arg mem_combination_ui_button_count,regc
+	arg p_mouse_long_button_bt_discovery,regb
+	branch timer_single_step
+p_mouse_long_button_bt_discovery:
+	call p_mouse_long_button_state_clear
+	fetch 1,mem_le_switch_adv_flag
+	nbranch p_mouse_fast_conn_adv_switch_timer_reinit,blank
+p_mouse_long_button_bt_normal_discovery:
+	call p_mouse_le_adv_data_update
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BT_RECONNECT,pdata
+	call mouse_cancel_reconnect,true
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_enable_function_flag
+	branch mouse_long_button_bt_discovry
+
+p_mouse_fast_conn_adv_switch_timer_reinit:
+	fetch 2,mem_discovery_timeout
+	store 2,mem_mouse_discovery_timer
+	rtn
+
+p_mouse_null_enter_hibernate_timer:
+	fetch 1,mem_mouse_null_enter_hibernate_flag
+	rtn blank
+	arg mem_mouse_null_enter_hibernate_timer,regc
+	arg p_mouse_null_enter_hibernate,regb
+	branch timer_single_step
+p_mouse_null_enter_hibernate:
+	jam 0,mem_mouse_null_enter_hibernate_flag
+	branch app_enter_hibernate
+p_mouse_null_enter_hibernate_check:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	rtnbit1 UI_STATE_BT_CONNECTED
+	rtnmark1 mark_24g
+p_mouse_null_enter_hibernate_enable:	//ble never connected
+	jam 1,mem_mouse_null_enter_hibernate_flag
+	jam 40,mem_mouse_null_enter_hibernate_timer	//lmr 3s
+	rtn
+p_mouse_null_enter_hibernate_disable:	//ble never connected
+	jam 0,mem_mouse_null_enter_hibernate_flag
+	jam 0,mem_mouse_null_enter_hibernate_timer	//lmr 3s
+	rtn
+
+p_mouse_multi_led_blink_timer:
+	fetch 1,mem_mouse_multi_led_blink_enable
+	rtn blank
+	branch p_mouse_multi_led_type_blink
+//	fetch 1,mem_mouse_multi_led_type
+//	beq MULTI_LED_BLINK,p_mouse_multi_led_type_blink
+//p_mouse_multi_led_type_on:
+//	call p_mouse_multi_led_on
+//	fetch 1,mem_mouse_multi_led_on_timer
+//	increase 1,pdata
+//	store 1,mem_mouse_multi_led_on_timer
+//	fetcht 1,mem_mouse_multi_led_on_timer_init
+//	isub temp,null
+//	call p_mouse_multi_led_off_poweron2s,zero
+//	rtn
+//p_mouse_multi_led_off_poweron2s:
+//	jam 0,mem_mouse_multi_led_on_poweron2s_flag
+//	call p_mouse_multi_led_off
+//	fetch 1,mem_device_flag
+//	rtnne MODE_BT_DEVICE1
+//	fetch 2,mem_ui_state_map
+//	rtnbit1 UI_STATE_BLE_CONNECTED
+//	rtnbit1 UI_STATE_BT_CONNECTED
+//	fetch 1,mem_mouse_fast_conn_flag
+//	bne 0xff,p_mouse_bt_reconn_multi_led_blink
+p_mouse_discovery_multi_led_blink:
+	jam 0,mem_mouse_multi_led_blink_poweron3s_flag
+	jam 5,mem_mouse_multi_led_blink_timer_init	//300ms
+//p_mouse_discovery_multi_led_blink1:
+	jam 0,mem_mouse_multi_led_blink_count_limited
+	jam 1,mem_mouse_multi_led_blink_count//0 will clear mem_mouse_multi_led_blink_enable/mem_mouse_multi_led_type
+p_mouse_multi_led_blink_enable:
+	jam 5,mem_mouse_multi_led_blink_timer
+	jam ON,mem_mouse_multi_led_blink_enable
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	rtn
+
+//p_mouse_bt_reconn_multi_led_blink:
+//	jam 1,mem_mouse_multi_led_blink_timer_init	//500ms
+//	branch p_mouse_discovery_multi_led_blink1
+
+p_mouse_multi_led_type_blink:
+	arg mem_mouse_multi_led_blink_timer,regc
+	arg p_mouse_multi_led_type_blink_timeout,regb
+	branch timer_single_step
+p_mouse_multi_led_type_blink_timeout:
+	fetch 1,mem_mouse_multi_led_blink_timer_init
+	store 1,mem_mouse_multi_led_blink_timer
+	fetch 1,mem_mouse_multi_led_blink_count_limited
+	branch p_mouse_multi_led_blink_count_no_limited,blank
+	fetch 1,mem_mouse_multi_led_blink_count
+	branch p_mouse_multi_led_blink_off,blank
+	increase -1,pdata
+	store 1,mem_mouse_multi_led_blink_count
+p_mouse_multi_led_blink_count_no_limited:
+	fetch 1,mem_mouse_multi_led_state
+	beq ON,p_mouse_multi_led_off
+p_mouse_multi_led_on:
+	jam ON,mem_mouse_multi_led_state
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,p_mouse_multi_down_led_on
+p_mouse_multi_up_led_on:
+	fetcht 1,mem_mouse_multi_led_gpio
+	set1 gpio_active_bit,temp
+	call gpio_config_output
+	fetcht 1,mem_mouse_multi_led_gpio
+	branch gpio_out_active
+p_mouse_multi_down_led_on:
+	fetcht 1,mem_mouse_multi_led_gpio
+	call gpio_config_output
+	fetcht 1,mem_mouse_multi_led_gpio
+	branch gpio_out_inactive
+
+p_mouse_discovey_led_blink_off:
+//	fetch 1,mem_mouse_multi_led_on_timer
+//	nrtn blank
+//	fetch 1,mem_mouse_multi_led_on_poweron2s_flag
+//	nrtn blank
+	fetch 1,mem_mouse_multi_led_blink_poweron3s_flag
+	nrtn blank
+p_mouse_multi_led_blink_off:
+	setarg 0
+	store 3,mem_mouse_multi_led_blink_timer
+p_mouse_multi_led_off:
+	fetch 1,mem_mouse_multi_led_blink_count
+	nbranch p_mouse_multi_led_off_wait_blink_over,blank
+	jam 0,mem_mouse_multi_led_blink_poweron3s_flag
+	jam 0,mem_mouse_multi_led_blink_enable
+	jam 0,mem_mouse_multi_led_type
+p_mouse_multi_led_off_wait_blink_over:
+	jam 0,mem_mouse_multi_led_on_timer
+	jam OFF,mem_mouse_multi_led_state
+p_mouse_multi_led_gpio_set_float:
+//	fetch 1,mem_mouse_multi_led_gpio
+//	rtneq UI_BUTTON_GPIO_DISABLE
+	fetcht 1,mem_mouse_multi_led_gpio
+p_mouse_set_gpio_suspend:
+	set0 gpio_active_bit,temp
+	branch gpio_set_high_impedance
+
+//p_mouse_mode_bt_device1_multi_led_on:
+//p_mouse_mode_24g_device_multi_led_on:
+//	jam 1,mem_mouse_multi_led_on_poweron2s_flag
+//	jam ON,mem_mouse_multi_led_blink_enable
+//	jam MULTI_LED_ON,mem_mouse_multi_led_type
+//	jam 0,mem_mouse_multi_led_on_timer
+//	rtn
+p_mouse_mode_bt_device1_multi_led_blink3s:
+	jam 1,mem_mouse_multi_led_blink_poweron3s_flag
+p_mouse_mode_24g_device_multi_led_blink3s:
+	jam 27,mem_mouse_multi_led_blink_count
+	jam 1,mem_mouse_multi_led_blink_timer_init	//100ms
+	branch p_mouse_dpi_multi_led_blink+1
+p_mouse_dpi_multi_led_blink:
+	jam 5,mem_mouse_multi_led_blink_timer_init	//300ms
+	jam 1,mem_mouse_multi_led_blink_count_limited
+	branch p_mouse_multi_led_blink_enable
+	
+
+ifdef ADC_ENABLE
+p_mouse_adc_read:
+//	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+//	rtnbit0 MOUSE_ENABLE_ADC
+	fetch 1,mem_adc_read_timer
+	increase 1,pdata
+	store 1,mem_adc_read_timer
+	sub pdata,10,null              //1s read adc
+	rtn positive
+	
+	call adc_init_data
+	
+	jam 0,mem_adc_read_timer
+	call adc_set_mode
+	call vdd_calculate_by_mode
+	store 2,mem_mouse_vdd_now_vol
+	arg mem_mouse_vdd_calculate_set,rega
+	call p_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,app_enter_hibernate
+	bbit0 0,p_mouse_adc_no_low_voltage
+	jam 1,mem_mouse_adc_last_low_voltage_flag
+	branch mouse_adc_low_voltage
+
+p_mouse_adc_no_low_voltage:
+	call mouse_adc_no_low_voltage
+	fetch 1,mem_mouse_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_mouse_adc_last_low_voltage_flag
+p_mouse_adc_low_volatage_led_off:
+	fetch 1,mem_config_low_voltage_alarm_gpio
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_on
+
+//p_adc_set_mode:
+//	fetch 1,mem_adc_config_flag
+//	beq ADC_CONFIG_GPIO,p_adc_check_gpio
+//	branch adc_set_mode+1
+//p_adc_check_gpio:
+//	hfetch 1,core_gpio_pu0	//gpio5 pull up disable
+//	set0 5,pdata
+//	hstore 1,core_gpio_pu0
+//	call adc_check_gpio
+//	hfetch 1,core_gpio_pu0	//gpio5 pull up enable
+//	set1 5,pdata
+//	hstore 1,core_gpio_pu0
+//	rtn
+
+p_adc_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+	fetcht 2,mem_pdatatemp+2	//shutdown voltage 0.9v
+	fetch 2,mem_pdatatemp+6		//now voltage
+	isub temp,null
+	nbranch adc_set_no_power_flag,positive
+	fetcht 2,mem_pdatatemp+4	//low voltage 1.0v
+	isub temp,null
+	nbranch adc_set_low_power_flag,positive
+p_adc_clear_low_power_flag:
+	fetch 1,mem_adc_power_flag
+	set0 0,pdata
+	store 1,mem_adc_power_flag
+	rtn
+
+p_mouse_low_voltage_led_timer:
+	fetch 1,mem_low_power_led_blink_flag
+	nrtn blank	//15s no action
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	rtnbit1 UI_STATE_BT_DISCOVERY
+	fetch 1,mem_config_low_voltage_alarm_gpio
+	store 1,mem_mouse_struct_led_gpio
+
+	setarg G24_LONG_SLEEP_STEP2
+	store 3,mem_24g_enter_hibernate
+	
+	fetch 1,mem_adc_low_volatage_led_timer_count
+	pincrease 1
+	store 1,mem_adc_low_volatage_led_timer_count
+	beq 5,mouse_low_voltage_led_on
+	sub pdata,10,null
+	nbranch p_mouse_adc_low_volatage_led_timer_count_clean,positive
+	rtn
+p_mouse_adc_low_volatage_led_timer_count_clean:
+	jam 1,mem_adc_low_volatage_led_timer_count
+	branch mouse_low_voltage_led_off
+
+p_low_power_no_data_off_led_time:
+	fetch 1,mem_low_power_check_count
+	increase 1,pdata
+	store 1,mem_low_power_check_count
+	sub pdata,LOW_VOLTAGE_LED_COUNT,null
+	rtn positive
+p_low_power_no_data_off_led_time_nolimited:
+	jam 0,mem_low_power_led_blink_flag
+	jam 0x96,mem_low_power_no_data_off_led_time
+	rtn
+p_low_power_nodata_off_led_time_check:
+	arg mem_low_power_no_data_off_led_time,regc
+	arg p_mouse_check_low_power_nodata_timeout,regb
+	branch timer_single_step
+p_mouse_check_low_power_nodata_timeout:
+	setarg G24_LONG_SLEEP_STEP3
+	store 3,mem_24g_enter_hibernate
+	jam 1,mem_low_power_led_blink_flag
+	branch p_mouse_adc_low_volatage_led_off
+endif
+
+p_mouse_seting_dpi:
+p_mouse_seting_sensor_type:
+	fetch 1,mem_config_sensor_type
+//	beq P3212,p_mouse_seting_3212_dpi
+	beq P3065_XY,p_mouse_seting_3065XY_dpi
+	beq MX8650,p_mouse_seting_3065XY_dpi
+	beq KA8,p_mouse_seting_ka8_dpi
+p_mouse_seting_3205_dpi:
+	fetch 1,mem_mouse_dpi
+	sub pdata,MOUSE_DPI_LEVEL2,null
+	call p_mouse_3205_dpi_recount,zero
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_cpi1
+	beq MOUSE_DPI_LEVEL4,mouse_set_cpi4
+	branch mouse_set_cpi3
+p_mouse_3205_dpi_recount:
+	jam MOUSE_DPI_LEVEL3,mem_mouse_dpi
+	rtn
+
+p_mouse_seting_3065XY_dpi:
+	fetch 1,mem_mouse_dpi
+	sub pdata,MOUSE_DPI_LEVEL2,null
+	call p_mouse_3205_dpi_recount,zero
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,p_mouse_3065xy_set_cpi1
+	beq MOUSE_DPI_LEVEL4,p_mouse_3065xy_set_cpi4
+p_mouse_3065xy_set_cpi3:
+	fetch 1,mem_3065xy_dpi_3
+p_mouse_dpi_store:
+	store 1,mem_mouse_cpi_count
+	branch mouse_p3205_dpi+3
+p_mouse_3065xy_set_cpi1:
+	fetch 1,mem_3065xy_dpi_1
+	branch p_mouse_dpi_store
+p_mouse_3065xy_set_cpi4:
+	fetch 1,mem_3065xy_dpi_4
+	branch p_mouse_dpi_store
+
+p_mouse_seting_ka8_dpi:
+	fetch 1,mem_mouse_dpi
+	call p_mouse_3205_dpi_recount,blank
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL2,mouse_set_cpi2			//800
+	beq MOUSE_DPI_LEVEL4,p_mouse_ka8_set_cpi3		//1600
+	branch mouse_set_cpi4							//1200
+p_mouse_ka8_set_cpi3:	
+	setarg 5
+	branch mouse_p3205_dpi
+	
+//p_mouse_seting_3212_dpi:
+//	fetch 1,mem_mouse_dpi
+//	sub pdata,MOUSE_DPI_LEVEL2,null
+//	call p_mouse_3205_dpi_recount,zero
+//	fetch 1,mem_mouse_dpi
+//	beq MOUSE_DPI_LEVEL1,mouse_set_p3212_cpi1
+//	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi4
+//	branch mouse_set_p3212_cpi3
+
+
+p_mouse_motion:
+	disable user
+	setarg 0
+	store 6,mem_mouse_x
+	call p_mouse_cheak_sensor_data
+	call mouse_zwheel
+	call mouse_t_zwheel
+	call p_mouse_key
+ifdef MOUSE_SMOOTHER	
+	nbranch p_drawing_optima_init,user
+	call p_drawing_optima
+else
+	nrtn user
+endif
+	branch mouse_motion+9
+
+p_mouse_key:
+	call p_mouse_check_key_gpio
+	branch mouse_key+1
+
+p_mouse_check_key_gpio:
+	arg 0,rega
+	call p_mouse_check_lkey_gpio
+//	call p_mouse_check_rkey_gpio
+//	call p_mouse_check_mkey_gpio
+//	call p_mouse_check_skey_gpio
+	branch mouse_check_key_gpio_output
+//p_mouse_check_skey_gpio:
+//	fetch 1,mem_bk_button_gpio
+//	rtneq GPIO_DISABLE
+//	call p_mouse_check_bk_key_gpio
+//	branch p_mouse_check_fw_key_gpio
+	
+p_mouse_check_lkey_gpio:
+	fetcht 1,mem_lbutton_gpio
+	call p_gpio_set_input_pu
+	fetcht 1,mem_lbutton_gpio
+	call gpio_get_bit
+	setflag true,0,rega			//true = 1,input low level
+//	rtn
+p_mouse_check_rkey_gpio:
+	fetcht 1,mem_rbutton_gpio
+	call p_gpio_set_input_pu
+	fetcht 1,mem_rbutton_gpio
+	call gpio_get_bit
+	setflag true,1,rega			//true = 1,input low level
+//	rtn
+p_mouse_check_mkey_gpio:
+	fetcht 1,mem_mbutton_gpio
+	call p_gpio_set_input_pu
+	fetcht 1,mem_mbutton_gpio
+	call gpio_get_bit
+	setflag true,2,rega			//true = 1,input low level
+	rtn
+//p_mouse_check_bk_key_gpio:
+//	fetcht 1,mem_bk_button_gpio
+//	call p_gpio_set_input_pd
+//	fetcht 1,mem_bk_button_gpio
+//	call gpio_get_bit
+//	nsetflag true,3,rega
+//	branch p_gpio_set_input_pu
+//p_mouse_check_fw_key_gpio:
+//	fetcht 1,mem_fw_button_gpio
+//	call p_gpio_set_input_pd
+//	fetcht 1,mem_fw_button_gpio
+//	call gpio_get_bit
+//	nsetflag true,4,rega
+p_gpio_set_input_pu:
+	set1 gpio_active_bit,temp
+	arg core_gpio_pu0,contw
+	call gpio_set_bit
+	set0 gpio_active_bit,temp
+	branch p_gpio_set_input_pd4
+	
+p_gpio_set_input_pd:
+	set0 gpio_active_bit,temp
+	arg core_gpio_pu0,contw
+	call gpio_set_bit
+	set1 gpio_active_bit,temp
+p_gpio_set_input_pd4:	
+	arg core_gpio_pd0,contw
+	branch gpio_set_high_impedance+4
+
+
+p_mouse_cheak_sensor_data:
+//	fetch 1,mem_config_sensor_type
+//	beq P3212,p_mouse_p3212_sensor_motion
+p_mouse_p32xx_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	branch mouse_p32xx_sensor_motion_2
+//p_mouse_p3212_sensor_motion:
+//	call mouse_clear_sensor_data
+//	branch mouse_p3212_sensor_motion_1
+	
+p_mouse_bb_event_discovery_btn:
+	call p_mouse_null_enter_hibernate_disable
+ifdef G24	
+	isolate1 mark_24g,mark
+	call p_g24_check_51cmd_stop_24g,true
+endif
+	jam 0,mem_mouse_send_blank_timer
+	fetch 1,mem_mouse_le_not_tx_disconn
+	call mouse_disconnect,blank
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	branch mouse_bb_event_discovery_btn+3
+
+ifdef BLE
+p_mouse_start_discovery:
+	jam ZCODE_30,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_mouse_stop_discovery:
+	call p_mouse_discovey_led_blink_off
+	jam 1,mem_mouse_init_sensor_reset_flag
+	call p_mouse_sensor_poweron		//clear sensor data,confirm the motion pin high
+	branch mouse_stop_discovery+1
+
+ifdef BLE
+p_le_slave_match:
+	fetch 1,mem_le_md_count
+	pincrease 1
+	store 1,mem_le_md_count
+	beq LE_MD_MAX_COUNT,le_slave_cont
+	call le_acknowledge
+	call le_prepare_tx
+	call power_ctrl_start
+	branch le_slave_match+7
+
+p_le_next_adv_channel:
+	fetch 1,mem_le_ch_mapped
+	increase 1,pdata
+	store 1,mem_le_ch_mapped
+	rtnne 40
+	jam 37,mem_le_ch_mapped
+	rtn
+
+p_le_receive_skip:
+	call save_rssi
+	call p_rssi_signal
+	branch le_receive_skip+2
+
+p_le_update_param:
+	jam ZCODE_20,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_le_update_channel_map:
+	jam ZCODE_21,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_le_prepare_tx:
+	fetch 1,mem_le_arq
+	bbit1 wak,p_le_prepare_tx_wak
+	call power_ctrl_pac_succ_incrs	
+	fetch 1,mem_empty_count
+	nbranch p_le_send_empyt,blank
+	fetch 1,mem_le_state 
+	bbit0 lestate_encryption,p_le_tx_4
+	fetch 1,mem_le_rxbuf+1  
+	branch p_le_tx_4,blank  
+	branch le_send_empty      // send empty data when got non empty packet
+p_le_send_empyt:
+	fetch 1,mem_empty_count
+	increase -1,pdata
+	store 1,mem_empty_count
+	branch le_send_empty
+p_le_tx_4:	
+	fetch 1,mem_le_pairing_state
+	bne FLAG_LE_PAIRING_AFTER_AUTH,p_in_le_tx_4
+	jam 3,mem_empty_count
+p_in_le_tx_4:
+	call le_fifo_check_nearly_full
+	call p_mouse_data_pull,blank
+	branch le_prepare_tx+4
+
+p_le_prepare_tx_wak:
+	call p_le_check_tx_retransmit_setmd
+	branch p_le_power_ctrl_pac_succ_decrs
+
+p_le_check_tx_retransmit_setmd:
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+	fetch 1,mem_mouse_data_queue_num
+	rtn blank
+	fetch 1,mem_le_txlen
+	rtn blank
+	fetch 1,mem_le_txheader
+	set1 md,pdata
+	store 1,mem_le_txheader
+	call le_set_md
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	setarg MISC_LE_RETRANSMIT_MD
+	store 2,mem_debuglog_dataval
+	call debuglog_push	
+endif
+endif
+	rtn
+
+	
+	
+p_le_power_ctrl_pac_succ_decrs:
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	setarg MISC_LE_RETRANSMIT
+	store 2,mem_debuglog_dataval
+	call debuglog_push	
+endif
+endif
+	branch power_ctrl_pac_succ_decrs
+
+p_mouse_le_reconn_write_enable_timer_reinit:
+	fetch 1,mem_mouse_le_reconnect_flag
+	rtn blank
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtneq 0x03
+	jam 2,mem_le_start_encrypt_timer
+	rtn
+
+p_le_parse:
+	rtnmark1 mark_old_packet
+	call le_fifo_check_full
+	nrtn blank
+	fetch 1,mem_le_rxbuf
+	and pdata,0x3,pdata
+	store 1,mem_le_packet_llid
+	ifetch 1,contr
+	and pdata,0x1f,pdata
+	store 1,mem_le_packet_size
+	rtn blank							//empty rtn
+	copy contr,pdata
+	store 2,mem_le_payload_ptr
+	fetch 1,mem_le_packet_llid
+	beq LLID_LE_LL,p_le_parse_ll
+	branch le_parse_l2cap
+p_le_parse_ll:
+	fetch 1,mem_le_rxbuf+2
+	beq LL_CONNECTION_UPDATE_REQ,p_le_parse_connection_update_req
+	beq LL_CHANNEL_MAP_REQ,p_le_parse_channel_map_req
+	branch le_parse_ll+1
+p_le_parse_connection_update_req:
+	call le_parse_connection_update_req
+	fetch 1,mem_mouse_le_updata_not_accepted_flag
+	rtn blank
+//ipad not accepted updata, need reinit mem_lpm_mult.   mem_lpm_mult = LL_CONNECTION_UPDATE_REQ latency = 04	
+p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset:	
+	fetch 1,mem_le_new_connslavelatency
+	store 1,mem_lpm_mult
+	store 1,mem_lpm_mult_init
+	rtn		
+p_le_parse_channel_map_req:
+	ifetch 5,contr
+	store 5,mem_le_new_map
+	ifetch 2,contr
+	store 2,mem_le_instant
+	branch le_parse_channel_map_req+7	
+	
+p_le_parse_l2cap:
+	ifetch 2,contr
+	beq LE_L2CAP_CID_ATT,p_le_parse_att
+	beq LE_L2CAP_CID_SMP,p_le_parse_smp
+	branch le_parse_l2cap+11
+p_le_parse_att:
+	call store_contr
+	call p_mouse_le_reconn_write_enable_timer_reinit
+	call get_contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_READ_BY_GROUP_TYPE_REQUEST,p_le_parse_att_read_by_group_type_request
+	rshift8 pdata,temp
+	sub temp,0x24,null
+	branch p_le_parse_att1,positive
+	arg mem_mouse_le_uuid_sup,temp
+	storet 2,mem_ui_le_uuid_table
+	call le_parse_att+2
+	setarg 0x8e7a
+	store 2,mem_ui_le_uuid_table
+	rtn
+
+p_le_parse_att_read_by_group_type_request:
+	call le_parse_att_read_by_group_type_request
+	call le_fifo_get_last_tx_ptr
+	increase 7,contr
+	ifetch 1,contr
+	rtnne ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+	increase 5,contr
+	ifetch 2,contr
+	arg UUID_SERVICE_HIDS,temp
+	isub temp,null
+	nrtn zero
+	increase -4,contr
+	setarg 0x2b
+	istore 2,contr
+	rtn
+
+p_le_parse_att1:
+	beq ATTOP_READ_REQUEST,p_le_parse_att_read_request
+	branch le_parse_att+2
+p_le_parse_att_read_request:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,p_le_send_att_read_response_check_auth
+p_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 le_send_att_read_response
+p_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch p_le_send_att_read_response,zero
+	call le_check_encrypt_state
+	nbranch p_le_send_att_read_response,user
+	branch le_send_att_read_response_check_auth+5
+	
+p_le_parse_smp:
+	ifetch 1,contr
+	beq SMP_PAIRING_REQUEST,p_le_parse_smp_pairing_request
+	beq SMP_PAIRING_FAILED,p_le_parse_smp_pairing_failed
+	branch le_parse_smp+1
+p_le_parse_smp_pairing_request:
+	jam 1,mem_le_send_security_request_flag
+	branch le_parse_smp_pairing_request	
+p_le_parse_smp_pairing_failed:
+	jam ZCODE_82,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_le_adv_not_match:
+	fetch 1,mem_le_ch_mapped
+	bne 39,le_adv_loop
+	call p_le_adv_random_delay
+	arg le_adv_interval_timer,queue
+	fetch 2,mem_le_adv_interval
+	branch timer_init
+p_le_adv_random_delay:
+	random pdata
+	arg 0x1ff,temp
+	iand temp,pdata
+	add pdata,250,pdata
+	branch delay
+
+p_le_lpm_setmult:
+	disable wake
+	branch p_le_lpm_set_mult_attempt,attempt
+	nbranch le_lpm_lost,match
+p_le_lpm_set_mult_attempt:
+	call lpm_match
+	fetch 2,mem_rx_window_sniff
+	store 2,mem_le_receive_window
+	fetch 1,mem_le_connect_status_flag
+	bne 3,lpm_mult_short
+	branch le_lpm_set_mult_attempt+3
+
+p_le_mouse_bb_event_connect_complete:
+	fetch 1,mem_mouse_le_reconnect_flag
+	nrtn blank
+	fetch 1,mem_le_att_handle
+	sub pdata,26,pdata
+	nrtn zero
+	jam 0,mem_le_start_encrypt_timer
+	branch mouse_le_write_enable
+endif
+
+p_twspi_reset:
+	hfetch 1,core_gpio_out3
+	and_into 0xfd,pdata
+	hstore 1,core_gpio_out3
+	hfetcht 1,core_gpio_oe3
+	or_into 0x2,temp
+	hstoret 1,core_gpio_oe3
+	call twspi_disable
+	and_into 0xfd,temp
+	nop 13
+	call p_twspi_enable
+	hstoret 1,core_gpio_oe3
+	rtn
+
+p_spid_init:
+	call spid_init_common
+p_twspi_enable:
+	hfetch 1,core_gpio_sel1
+	set1 0,pdata
+	set0 1,pdata
+	set0 3,pdata
+	hstore 1,core_gpio_sel1  //enable spi
+	rtn
+
+
+ifdef CLASSIC_BT
+p_page_wait_fhs_reply_ok:
+	jam ZCODE_00,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_role_switch_master:
+	call role_switch_check
+	nrtn user
+p_wait_role_switch_anchor:
+	disable user
+	jam param_newconnto,mem_newconnto_counter
+	set0 mark_fhs_already_good,mark
+	set0 mark_role_switch_receive_fhs,mark
+p_roles_waitfhs_loop:
+	call rf_setup_time_master_slot
+	call master_recv_packet
+	bmark1 mark_fhs_already_good,p_roles_replyto_fhs
+	call new_conn_timeout
+	nbranch p_roles_waitfhs_loop,blank
+	bmark1 mark_role_switch_receive_fhs,p_roles_replyto_fhs1
+	branch role_switch_fail_master
+	
+p_roles_replyto_fhs:
+	call rf_setup_time_slave_slot
+	arg type_id,type
+	call master_send_packet
+	set1 mark_role_switch_receive_fhs,mark
+	set0 mark_fhs_already_good,mark
+	force 1,am_addr	/* process_fhs will update am_addr, so slave will not receive fhs succeffully sometimes */
+	jam 2,mem_newconnto_counter
+	branch p_roles_waitfhs_loop
+
+p_roles_replyto_fhs1:
+	fetch 4,mem_clke_bt		//wait for 2 fhs,need 2.5ms
+	pincrease 8
+	store 4,mem_clke_bt
+	branch roles_replyto_fhs+4
+
+p_process_dmh:
+	bmark1 mark_first_packet,end_of_packet
+	branch process_dmh+1
+
+p_quit_connection_cont:
+	call app_disconn_reason_collect_bt
+	call sniff_exit
+	jam BT_EVT_BB_DISCONNECTED,mem_fifo_temp
+	call ui_ipc_send_event
+	call init_lmp_work
+	call l2cap_init_work
+	branch quit_connection_cont+8
+
+p_prepare_tx:
+	fetch 1,mem_state
+	isolate1 state_inconn,pdata
+	call p_bt_power_ctrl,true
+	branch prepare_tx+1
+p_bt_power_ctrl:
+	fetch 1,mem_arq
+	isolate1 wack,pdata
+	call power_ctrl_pac_succ_decrs,true
+	ncall power_ctrl_pac_succ_incrs,true
+	branch power_ctrl_start
+
+p_slave_conn_recv_packet:
+	call slave_receive_master_slot
+	nbranch shutdown_radio,sync
+	call save_rssi
+	call p_rssi_signal
+	branch slave_conn_recv_packet+4
+
+p_lpm_dispatch:
+	rtnmark1 mark_24g
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 1,mem_lpm_mode
+	rtn blank
+	fetch 1,mem_ssp_enable
+	branch p_lpm_dispatch_next,blank
+	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
+	rtn blank
+p_lpm_dispatch_next:
+	fetch 1,mem_le_sc_calc
+	nrtn blank
+	call lpm_check_wake_lock
+	nrtn blank
+	fetch 1,mem_context
+	compare 3,pdata,0x7							//sco won't sleep 
+	nbranch lpm_dispatch_unconn,true
+	fetch 2,mem_context + coffset_tsniff	//role switch 
+	arg 0xffff,temp
+	isub temp,null
+	rtn zero
+	branch lpm_dispatch_next+9
+
+p_lpm_set_mult:
+	disable wake
+	fetch 1,mem_state
+	rtnbit0 state_insniff
+	nbranch lpm_not_match,match
+	call lpm_match
+	fetch 2,mem_rx_window_sniff
+	store 2,mem_rx_window
+	fetch 1,mem_arq
+	bbit1 wack,lpm_mult_short
+	bmark0 mark_lpm_mult_enable,lpm_mult_short
+	call l2cap_malloc_is_fifo_empty
+	nbranch lpm_mult_short,blank
+	call p_lpm_set_attemp_timeout,blank	//fixed bt3.0 connected high current
+	branch lpm_set_mult+13	
+p_lpm_set_attemp_timeout:
+	jam 1,mem_current_sniff_attempt
+	jam 0,mem_current_sniff_timeout
+	rtn	
+
+p_mouse_bb_disconnected:
+	jam ZCODE_01,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_hid_rx_process:
+	jam ZCODE_02,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_parse_lmp_accepted:
+	fetch 1,mem_rxbuf+1
+	store 1,mem_lmi_accepted_opcode
+	beq LMP_SWITCH_REQ,p_parse_lmp_accepted_switch
+	branch parse_lmp_accepted+3
+p_parse_lmp_accepted_switch:
+	call parse_lmp_accepted_switch
+	jam 1,mem_bt_rcvd_switch_req_accept
+	fetch 1,mem_bt_send_lmp_setup_complete
+	rtn blank
+	jam 2,mem_bt_send_lmp_setup_complete
+	rtn
+
+p_send_lmp:
+	jam ZCODE_10,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_process_conn_sm:
+	call lmo_fifo_check
+	nrtn blank
+p_process_conn_sm_continue:
+	fetch 1,mem_conn_sm
+	rtn blank
+ifdef DEBUGLOG
+ifdef DEBUGLOG_CONN_SM
+	call pdata_push
+	setarg DEBUGLOG_DTYPE_CONN_SM
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_conn_sm
+	store 2,mem_debuglog_dataval
+	call pdata_pull
+	call debuglog_push	
+endif
+endif
+	beq CONN_SM_SEND_CONN_REQ, p_host_create_conn_send_conn_req
+	beq CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION,p_host_creat_conn_wait_switch
+	branch process_conn_sm_continue+2
+
+p_host_creat_conn_wait_switch:
+	fetch 1,mem_switch_flag
+	rtneq SWITCH_FLAG_INIT
+	beq SWITCH_FLAG_ACCEPT,p_host_create_conn_switch_accept
+	branch host_creat_conn_wait_switch+3
+p_host_create_conn_switch_accept:
+	rtn master
+p_host_create_conn_auth_pair:
+	/* checking whether or not to do m/s switch */
+	fetch 1,mem_connection_options
+	bbit1 CONNECTION_AUTH,p_host_create_conn_auth_pair_true
+	branch host_create_conn_auth_pair+1
+p_host_create_conn_auth_pair_true:
+	fetch 1,mem_bt_send_lmp_setup_complete
+	beq 1,host_create_conn_auth_pair_true
+	//sumsung a5100 patch
+	fetch 1,mem_link_key_exists
+	branch host_create_conn_auth_pair_nokey,blank
+	fetch 1,mem_lmp_conn_state
+	rtnbit0 SENT_SETUP_COMPLETE
+	rtnbit0 RECEIVED_SETUP_COMPLETE
+	fetch 1,mem_bt_send_max_slot_req_accept_after_switch
+	rtn blank
+	jam 0,mem_bt_send_max_slot_req_accept_after_switch	
+	fetch 4,mem_aurand_send_delay_time
+	arg 20,temp
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nbranch p_bt_send_max_slot_req_accept_after_switch_wait,positive
+	branch host_create_conn_auth
+
+p_bt_send_max_slot_req_accept_after_switch_wait:
+	jam 1,mem_bt_send_max_slot_req_accept_after_switch
+	rtn
+
+p_host_create_conn_send_conn_req:
+	jam 20,mem_mouse_send_switch_req_timer
+	branch host_create_conn_send_conn_req
+
+	
+ifdef DEBUGLOG
+p_parse_lmp_opcode:
+ifdef DEBUGLOG
+ifdef DEBUGLOG_PARSE_LMP
+	setarg DEBUGLOG_DTYPE_PARSE_LMP
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_rxbuf+1
+	store 1,mem_debuglog_dataval+1 
+	fetch 1,mem_lmi_opcode2
+	store 2,mem_debuglog_dataval
+	call debuglog_push 
+endif
+endif
+	branch parse_lmp+21
+
+p_process_upper_sm_reconn:
+	fetch 1,mem_upper_sm_reconn
+	rtn blank
+ifdef DEBUGLOG
+ifdef DEBUGLOG_UPPER_SM
+	call pdata_push
+	setarg DEBUGLOG_DTYPE_UPPER_SM
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_upper_sm_reconn
+	store 2,mem_debuglog_dataval
+	call pdata_pull
+	call debuglog_push	
+endif
+endif
+	branch process_upper_sm_reconn+3
+
+endif	
+
+endif
+	
+ifdef DEBUGLOG
+p_ui_ipc_send_event:
+ifdef DEBUGLOG
+ifdef DEBUGLOG_EVENT
+	call pdata_push
+	setarg DEBUGLOG_DTYPE_EVENT
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_fifo_temp
+	store 2,mem_debuglog_dataval
+	call pdata_pull
+	call debuglog_push	
+endif
+endif
+	branch ui_ipc_send_event+1
+
+p_ui_ipc_send_cmd:
+ifdef DEBUGLOG
+ifdef DEBUGLOG_CMD
+	call pdata_push
+	setarg DEBUGLOG_DTYPE_CMD
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_fifo_temp
+	store 2,mem_debuglog_dataval
+	call pdata_pull
+	call debuglog_push
+endif
+endif
+	branch ui_ipc_send_cmd+1
+endif
+
+p_check_51cmd_once_continue:
+	call lmo_fifo_check
+	nbranch check_51cmd_restore,blank  //process this cmd next time while lmo fifo is full
+	fetch 1,mem_fifo_temp
+	bmark0 mark_context,check_51cmd_check_idle
+	beq BT_CMD_STORE_RECONN_INFO_LE,p_flash_store_le_reconn_info
+	beq BT_CMD_STORE_RECONN_INFO_BT,p_flash_store_bd_reconn_info
+	beq BT_CMD_LE_UPDATE_CONN,p_check_51cmd_ble_update_connect_param
+	branch check_51cmd_once_continue+2
+
+p_flash_store_le_reconn_info:
+	jam REC_4_MODE,mem_record_bt_mode
+	fetch 6,mem_le_plap
+	branch p_flash_store_reconn_info
+p_flash_store_bd_reconn_info:
+	jam REC_3_MODE,mem_record_bt_mode
+	fetch 6,mem_plap	
+p_flash_store_reconn_info:
+	store 6,mem_temp_lap
+p_mouse_store_remote_bdaddr:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call mouse_check_device_addr
+p_mouse_unplug_clean_bdaddr:
+	call mouse_before_store_reconn_info
+	branch p_mouse_store_flash_device_info
+
+p_check_51cmd_ble_update_connect_param:
+	call le_fifo_check_full
+	nrtn blank
+	branch le_l2cap_tx_update_req
+
+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
+
+power_ctrl_start:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	rtnbit1 UI_STATE_BT_RECONNECT
+	rtnbit1 UI_STATE_BT_DISCOVERY
+	
+	arg mem_rssi_signal_buf,rega
+	call p_rssi_average
+	storet 1,mem_rssi_avg_received
+
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	store 1,mem_debuglog_dataval
+	fetch 1,mem_rssi_avg_received
+	store 1,mem_debuglog_dataval+1
+	call debuglog_push	
+endif
+endif
+	setarg RSSI_DIS_MAX_24G
+	bmark1 mark_24g,power_ctrl_start_next
+	setarg RSSI_DIS_MAX_BLE
+power_ctrl_start_next:	
+	isub temp,null
+	nbranch power_ctrl_txpower_incrs_force,positive
+
+	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
+	rtnne 32
+	jam 0,mem_power_ctrl_pac_succ_cnt
+power_ctrl_txpower_decrs:
+	fetcht 1,mem_rssi_avg_received
+	setarg RSSI_DIS_MIN_24G
+	bmark1 mark_24g,power_ctrl_txpower_decrs_next
+	setarg RSSI_DIS_MIN_BLE	
+power_ctrl_txpower_decrs_next:	
+	isub temp,null
+	nrtn positive
+	fetch 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+	increase -1,pdata
+	store 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+power_ctrl_decrs_level1:
+power_ctrl_incrs_level1:	//0dBm
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	setarg MISC_TXPOWER_1
+	store 2,mem_debuglog_dataval
+	call debuglog_push
+endif
+endif
+	jam TX_POWER_0DB,mem_tx_power
+	rtn
+
+power_ctrl_txpower_incrs_force:
+	jam 0,mem_power_ctrl_pac_succ_cnt
+power_ctrl_txpower_incrs:
+	fetch 1,mem_power_ctrl_level
+	beq 2,power_ctrl_incrs_level2
+	increase 1,pdata
+	store 1,mem_power_ctrl_level
+	beq 1,power_ctrl_incrs_level1
+power_ctrl_incrs_level2:	//+6dBm
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	setarg MISC_TXPOWER_2
+	store 2,mem_debuglog_dataval
+	call debuglog_push
+endif
+endif
+	jam TX_POWER_5DB,mem_tx_power
+	rtn
+	
+power_ctrl_decrs_level0: //-5dBm
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	setarg MISC_TXPOWER_0
+	store 2,mem_debuglog_dataval
+	call debuglog_push
+endif
+endif
+	jam TX_POWER_f5DB,mem_tx_power
+	rtn
+
+endif
+
+p_set_freq_tx:
+	storet 1,mem_last_freq
+	add temp,0,rega			/* index to frequency */
+	call rf_write_freq
+	setarg param_pll_setup	//128us
+	call sleep
+p_rf_tx_enable:
+	jam 0x1,rfen_adc
+	jam 0x3c,rfen_rx
+	jam 0xe0,rfen_tx
+	nop 10 /* wait LDOs to turn ON*/
+	jam 0x01, rfen_mdm
+	jam 0x3d, rfen_mdm
+	nop 10 /* wait tx blocks to turn ON*/
+	jam 0xb7,rfen_sn
+	nop 10 /* wait tx lo buffer to turn ON*/
+	jam 0x7d, rfen_mdm
+	fetch 1,mem_tx_power
+//	beq TX_POWER_0DB,p_set_tx_power_0db
+//	beq TX_POWER_3DB,p_set_tx_power_3db	
+	beq TX_POWER_5DB,p_set_tx_power_5db
+//	beq TX_POWER_f3DB,p_set_tx_power_f3db	
+	beq TX_POWER_f5DB,p_set_tx_power_f5db
+	beq TX_POWER_PAIR,p_set_tx_power_pair
+//	branch p_set_tx_power_0db
+p_set_tx_power_0db:
+	call p_rx_low_sens
+//	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xe0,0x8956
+//	jam 0x88,0x8957
+	jam 0x6c,0x8958
+//	jam 0x10,0x8959
+	branch set_tx_power_0db
+
+//p_set_tx_power_3db:
+//	call p_rx_high_sens
+//	jam 0xba,0x894b
+//	jam 0xd0,0x8955
+//	jam 0xe0,0x8956
+//	jam 0x88,0x8957
+//	jam 0x3c,0x8958
+//	jam 0x10,0x8959
+//	branch set_tx_power_3db
+	
+p_set_tx_power_5db:
+	call p_rx_high_sens
+//	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xe0,0x8956
+//	jam 0x88,0x8957
+	jam 0x3c,0x8958
+//	jam 0x10,0x8959
+	branch set_tx_power_5db
+
+//p_set_tx_power_f3db:
+//	call p_rx_low_sens
+//	jam 0xba,0x894b
+//	jam 0xd0,0x8955
+//	jam 0xc0,0x8956
+//	jam 0x88,0x8957
+//	jam 0x6c,0x8958
+//	jam 0x10,0x8959
+//	branch set_tx_power_f3db
+	
+p_set_tx_power_f5db:
+	call p_rx_low_sens
+//	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xc0,0x8956
+//	jam 0x88,0x8957
+	jam 0x6c,0x8958
+//	jam 0x10,0x8959
+	branch set_tx_power_f5db
+
+p_rx_low_sens:
+	jam 0x5b,0x894c
+	jam 0x96,0x894d
+	jam 0x2c,0x894e 
+	jam 0x46,0x894f
+	rtn
+
+p_rx_high_sens:
+	jam 0xfb,0x894c 
+	jam 0xef,0x894d
+	jam 0xec,0x894e 
+	jam 0x5e,0x894f
+	rtn
+		
+p_set_tx_power_pair:	//50-100cm distance
+//	jam 0xba,0x894b
+ 	jam 0xc2,0x8956
+ 	jam 0xd0,0x8955
+	rtn	
+
+p_shutdown_radio:
+	force 8,radio_ctrl
+	branch shutdown_radio+1
+
+// input : mem_zcode_temp_param0 ---- zocde number(0~1f)
+p_zcode_entrance:
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_zcode_temp_param0
+	store 1,mem_debuglog_dataval
+	fetch 1,mem_zcode_current_number
+	istore 1,contw
+	call debuglog_push	
+endif
+endif
+	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 3,mem_xip_flash_offset
+	isub temp,pdata
+
+	fetcht 3,mem_flash_start_addr
+	iadd temp,pdata
+	increase -5,pdata
+	store 3,mem_flash_address
+	call p_flash_release_deep_power_down
+p_zcode_read_loop:
+	fetch 3,mem_flash_address
+	arg ZCODE_BUFF_SIZE,temp
+	arg mem_zcode_buff,rega
+	call spid_read_flash
+	fetch 4,mem_zcode_buff
+	branch p_zcode_read_loop,blank	//sometimes we will lost p_start,read flash again
+	call p_mouse_spi_init
+
+	setarg mem_zcode_buff
+	store 2,mem_patch_ptr
+	jam ZCODE_CODE_SIZE,mem_patch_len
+	call load_ucode
+	setarg 0
+	store 4,mem_patch_ptr
+p_zcode_run:
+	fetch 1,mem_zcode_temp_param0
+	branch p_zcode
+
+ifdef DEBUGLOG 
+pdata_push:
+	store 8,mem_debuglog_pdata
+	rtn
+
+pdata_pull:
+	fetch 8,mem_debuglog_pdata
+	rtn
+	
+debuglog_init:
+	call pdata_push
+	call debuglog_uart_init
+	call debuglog_mem_init
+	branch pdata_pull
+ 
+debuglog_uart_init:
+	/*step1:SET IO TX:GPIO6	RX:GPIO7*/
+	hfetch 1,core_gpio_sel1
+	set1 2,pdata
+	hstore 1,core_gpio_sel1 //Open UARTGPIO MUX
+	hfetch 4,core_gpio_pu0	 //RX pull up
+	set1 7,pdata
+	hstore 4,core_gpio_pu0
+	
+	/*step2:sel UARTclk bit0	=0:crystal	 =1:48M*/
+	hfetch 1,core_uart_clksel
+	set1 0,pdata
+	hstore 1,core_uart_clksel
+
+	/*step3:Enable uart clk
+	core_clkoff(0x8050)bit15 = 0,Enable uart clk*/
+	hfetch 2,core_clkoff
+	set0 0x0f,pdata
+	hstore 2,core_clkoff
+
+	/*step3:Set Ring Buffer*/
+	setarg mem_module_rx_buf		//RX buf Start Addr
+	hstore 2,core_uart_rsaddr
+
+	setarg mem_module_rx_buf_end	//RX buf End Addr
+	hstore 2,core_uart_readdr
+
+	setarg mem_module_tx_buf		//TX BUF Start Addr
+	hstore 2,core_uart_tsaddr
+
+	setarg 0x1eff	//TX buf End Addr
+	hstore 2,core_uart_teaddr
+	
+	setarg mem_module_rx_buf		//RX buf RPTR
+	hstore 2,core_uart_rrptr
+
+	setarg mem_module_tx_buf		//TX buf WPTR
+	hstore 2,core_uart_twptr
+
+	hstore 2,core_uart_trptrp		//TX buf RPTR
+
+	/*step4:SET baud*/
+	//hstore 2,mem_baud
+	setarg 0x34
+	hstore 2,core_uart_baud
+
+	/*step5:SET DataLen,parity bit,flow control and enable UART
+	RW	0	Enable UART
+	RW	1	1: odd parity; 0: even parity
+	RW	2	UART Data length 1: 9 bits; 0: 8 bits
+	RW	3	1: HCI uart SLIP protocol
+	RW	4	1: enable RTS/CTS flow control
+	RW	5	1: enable 7816 smart card protocol
+	RW	6	1: enable half duplex single line UART
+	RW	7	1: Use baud settings 0:auto detect baud rate*/
+	jam 0x00,core_uart_ctrl
+	jam 0x81,core_uart_ctrl
+	rtn 
+
+debuglog_mem_init:
+	jam DEBUGLOG_HEAD,mem_debuglog_temp
+	jam DEBUGLOG_TYPE,mem_debuglog_type
+	jam DEBUGLOG_LEN ,mem_debuglog_datalen
+	jam DEBUGLOG_TAIL,mem_debuglog_tail
+	rtn	
+
+debuglog_push:
+	call pdata_push
+	hfetch 1,core_uart_status
+	rtnbit1 uart_status_tx_fifo_full
+	call uartd_prepare_tx
+	fetch 8,mem_debuglog_temp
+	istore 8,contwu
+	call uartd_send
+	branch pdata_pull 
+endif
+
+ifdef RF_DEBUG
+test_gpio_init:
+	arg TEST_GPIO,temp
+	call gpio_config_output
+test_gpio_low:
+	arg TEST_GPIO,temp
+	call gpio_out_active
+	nop 10
+	rtn
+test_gpio_high:
+	arg TEST_GPIO,temp
+	call gpio_out_inactive
+	nop 10
+	rtn
+
+test_h_l:
+	call test_gpio_high
+	branch test_gpio_low
+test_h_l_h:
+	call test_gpio_high
+	call test_gpio_low	
+	branch test_gpio_high
+endif
+
+ifdef MOUSE_SMOOTHER
+//notice: need to call p_mouse_drawing_optima_init when waked from mult
+p_drawing_optima:
+	fetch 4,mem_mouse_x
+	rtn blank
+	call p_data_abs_check
+	setarg 0x06	//asm_flag enable condition
+	call p_data_greater_than_check
+	setarg 0x03	//asm_flag disable condition
+	call p_data_less_than_check
+	fetch 1,mem_mouse_asm_flag
+	beq 1,p_drawing_optima_modify
+p_drawing_optima_init:
+	arg 5,loopcnt
+	arg mem_mouse_asm_flag,contw
+	branch clear_mem
+
+p_drawing_optima_modify:
+	fetch 2,mem_mouse_x_pre
+	store 2,mem_data_pre
+	fetch 2,mem_mouse_x
+	store 2,mem_data_current
+	call p_drawing_optima_data
+	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 p_drawing_optima_data
+	fetch 2,mem_data_pre
+	store 2,mem_mouse_y_pre
+	fetch 2,mem_data_current
+	store 2,mem_mouse_y
+	rtn
+
+/**********
+input:data_pre,data_current
+output:data_pre,data_current after optima
+***********/
+p_drawing_optima_data:
+	fetch 2,mem_data_pre
+	fetcht 2,mem_data_current
+	iadd temp,pdata
+	store 3,mem_data_sum
+	isolate1 16,pdata
+	branch p_data_sum_overflow,true
+	fetch 1,mem_data_sum+1
+	beq 0xff,p_data_sum_n
+	fetch 1,mem_data_sum
+p_data_store_pre:
+	rshift pdata,pdata
+	store 2,mem_data_pre
+	store 2,mem_data_current
+	rtn
+p_data_sum_overflow:
+	fetch 1,mem_data_sum+1	//sum positive
+	beq 0,p_data_sum_overflow_p
+	fetch 3,mem_data_sum	//全负相加
+	branch p_data_store_pre
+p_data_sum_overflow_p:
+	jam 0,mem_data_sum+2
+	fetch 1,mem_data_sum
+	branch p_data_store_pre
+
+p_data_sum_n:
+	fetch 1,mem_data_sum	//sum negetive
+	call p_pdata_get_half
+	store 1,mem_data_pre
+	store 1,mem_data_current
+	branch p_data_zero,blank
+	setarg 0xff
+p_data_set_direction:	
+	store 1,mem_data_pre+1
+	store 1,mem_data_current+1
+	rtn
+p_data_zero:
+	setarg 0
+	branch p_data_set_direction
+
+p_pdata_get_half:
+	sub pdata,0,pdata
+	store 1,mem_rega
+	fetch 1,mem_rega
+	rshift pdata,pdata
+	store 1,mem_rega
+	fetch 1,mem_rega
+	sub pdata,0,pdata
+	rtn
+
+//rega mouse_x, regb mouse_y, pdata refer
+p_data_greater_than_check:
+	isub rega,null
+	nbranch p_enable_asm,positive
+	isub regb,null
+	nbranch p_enable_asm,positive
+p_disable_asm:
+	jam 0,mem_mouse_asm_flag
+	rtn
+p_data_less_than_check:
+	isub rega,null
+	nrtn positive
+	isub regb,null
+	nrtn positive
+	branch p_disable_asm
+p_enable_asm:
+	jam 1,mem_mouse_asm_flag
+	rtn
+
+p_data_abs_check:
+	fetch 2,mem_mouse_x
+	store 2,mem_data_current
+	call p_data_abs
+	copy pdata,rega
+	fetch 2,mem_mouse_y
+	store 2,mem_data_current
+	call p_data_abs
+	copy pdata,regb
+	rtn
+
+/***********
+input: data_current
+output:pdata,abs
+************/
+p_data_abs:
+	fetch 1,mem_data_current+1
+	beq 0xff,p_data_reversal
+	fetch 1,mem_data_current
+p_data_abs_store:
+	and_into 0xff,pdata
+	//output:pdata
+	rtn
+p_data_reversal:
+	fetch 2,mem_data_current
+	sub pdata,0,pdata
+	branch p_data_abs_store
+
+endif
+
+ifdef TESTDATA
+//1 mem_m_key
+//2 mem_m_x
+//2 mem_m_y
+//1 mem_m_z
+//1 mem_m_tz
+//1 mem_24g_test
+p_g24_test_data:
+	fetch 1,mem_24g_test
+	increase 1,pdata
+	store 1,mem_24g_test
+	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 0x05
+	store 2,mem_m_x
+	setarg 0
+	store 2,mem_m_y
+	store 1,mem_m_z
+	store 1,mem_m_key
+	store 1,mem_m_tz
+p_data:	
+	enable user
+	fetch 7,mem_m_key
+	store 7,mem_mouse_key
+	rtn
+p_ms_y_up:
+	setarg 0x05
+	store 2,mem_m_y
+	setarg 0
+	store 2,mem_m_x
+	store 1,mem_m_z
+	store 1,mem_m_key
+	store 1,mem_m_tz
+	branch p_data
+p_ms_x_left:
+	setarg 0xfffb
+	store 2,mem_m_x
+	setarg 0
+	store 2,mem_m_y
+	store 1,mem_m_z
+	store 1,mem_m_key
+	store 1,mem_m_tz
+	branch p_data
+p_ms_y_down:
+	fetch 1,mem_24g_test
+	beq 200,p_mem_usb_data_square_cnt_set0
+	setarg 0xfffb
+	store 2,mem_m_y
+	setarg 0
+	store 2,mem_m_x
+	store 1,mem_m_z
+	store 1,mem_m_key
+	store 1,mem_m_tz
+	branch p_data
+p_mem_usb_data_square_cnt_set0:
+	jam 0,mem_24g_test
+	branch p_ms_y_down+2
+endif
+
+ifdef MEMLOG
+p_hci_log:
+	fetch 1,0x4d00
+	increase 1,pdata
+	sub pdata,50,null
+	branch p_hci_log_calc_ptr,positive
+	setarg 0
+p_hci_log_calc_ptr:
+	store 1,0x4d00
+	arg 8,temp
+	imul32 temp,pdata
+	arg 0x4d08,contw
+	iadd contw,contw
+p_hci_log_write_content:
+	fetch 1,0x4d00
+	istore 1,contw//counter
+	fetch 4,mem_le_supervision_timer
+	istore 4,contw
+	fetch 2,mem_le_superto
+	istore 2,contw	
+	rtn
+endif
+
+
Index: DpiSwitch/program/peripherals.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/peripherals.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/peripherals.prog	(working copy)
@@ -0,0 +1,2440 @@
+
+/* ===================== two wire SPI gpio ======================= */
+
+twspi_reset:
+	bpatchx patch31_4,mem_patch31
+	hfetch 1,core_gpio_oe3
+	arg 0x06,temp
+	ior temp,pdata
+	hstore 1,core_gpio_oe3
+	hfetch 1,core_gpio_out3
+	ior temp,pdata
+	hstore 1,core_gpio_out3
+	call twspi_disable
+	hfetch 1,core_gpio_out3
+	set0 1,pdata
+	set0 2,pdata
+	hstore 1,core_gpio_out3	
+	nop 30  
+	branch twspi_enable
+
+twspi_reset2:
+	hfetch 1,core_gpio_oe3
+	arg 0xc0,temp
+	ior temp,pdata
+	hstore 1,core_gpio_oe3
+	hfetch 1,core_gpio_out3
+	ior temp,pdata
+	hstore 1,core_gpio_out3
+	call twspi_disable
+	hfetch 1,core_gpio_out3
+	set0 6,pdata
+	set0 7,pdata
+	hstore 1,core_gpio_out3	
+	nop 30  
+	branch twspi_enable2
+
+twspi_disable:
+	hfetch 1,core_gpio_sel1
+	and pdata,0xfc,pdata
+	hstore 1,core_gpio_sel1  //disable spi
+	rtn
+twspi_enable:
+	hfetch 1,core_gpio_sel1
+	or pdata,0x01,pdata
+	hstore 1,core_gpio_sel1  //enable spi
+	rtn
+twspi_enable2:
+	hfetch 1,core_gpio_sel1
+	or pdata,0x03,pdata
+	set0 4,pdata
+	hstore 1,core_gpio_sel1  //enable spi2
+	rtn
+
+// input read reg number: pdata 
+//output reg data: pdata
+sensor_read:
+	copy pdata,regb
+	call spi_ncs_enable
+	nop 100
+	copy regb,pdata
+	call twspi_read
+	copy pdata,regb
+	call spi_ncs_disable
+	nop 100
+	copy regb,pdata
+	rtn
+// input write reg number: pdata 
+sensor_write:
+	copy pdata,regb
+	call spi_ncs_enable
+	nop 100
+	copy regb,pdata
+	call twspi_write
+	call spi_ncs_disable
+	nop 100
+	rtn
+//spi gpio init .
+//0xff :disable spi ncs gpio init
+spi_ncs_gpio_init:
+	fetcht 1,mem_spi_ncs_gpio
+	branch gpio_config_output
+
+//nsc gpio ouput low
+spi_ncs_enable:
+	fetcht 1,mem_spi_ncs_gpio
+	branch gpio_out_active
+
+//ncs gpio output high
+spi_ncs_disable:
+	fetcht 1,mem_spi_ncs_gpio
+	branch gpio_out_inactive
+
+
+twspi_write:
+	branch spid_write_reg
+	
+twspi_read:
+	branch spid_read_reg
+
+
+
+/* ===================== code loading ======================= */
+
+
+read_function_aes:
+	nbranch read_function,user
+	hfetch 1,core_gpio_key2
+	or_into 0x2,pdata   	// enable aes 
+	hstore 1,core_gpio_key2
+read_function:
+	copy temp,null
+	branch read_fuction_zero,zero
+	copy regc,pc
+read_fuction_zero:
+	isolate0 0,null
+	branch set_ucode_status
+	
+/* return temp = block length */
+get_block_header:
+	force 4,temp
+get_block_header0:
+	arg mem_ucode_buf,rega
+	hfetch 1,core_gpio_key2
+	and_into 0xfd,pdata   	// disable aes for header
+	hstore 1,core_gpio_key2
+	call read_function
+	arg 0x55aa,rega
+	fetch 2,mem_ucode_buf
+	ifetcht 2,contr
+	isub rega,null
+	rtn	
+
+read_first_block:
+	arg 2,temp
+	arg mem_ucode_ptr,rega
+	call read_function
+	fetch 2,mem_ucode_ptr
+	store 2,mem_addr_mi
+	call get_iv,user
+	rtn
+	
+get_iv:
+	arg 16,temp
+	arg mem_ucode_keybuf,rega
+	hfetch 1,core_gpio_key2
+	and_into 0xfd,pdata   // disable aes for iv
+	hstore 1,core_gpio_key2
+	call read_function
+	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_storage:
+	disable match
+	call get_block_header
+	nrtn zero
+	enable match
+	jam 0x80, core_ucode_ctrl
+	jam 0,core_ucode_hi
+	jam 0,core_ucode_low
+	arg core_ucode_data,rega
+	call read_function_aes
+	jam 0x0, core_ucode_ctrl
+load_storage_loop:
+	arg 6,temp
+	call get_block_header0
+	nrtn zero
+	ifetch 2,contr
+	iforce rega
+	call read_function
+	branch load_storage_loop
+
+	
+	/* only load memory data from eeprom */
+reload_eeprom:
+	call clean_mem
+	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:
+	call clean_mem
+	disable user
+	call otp_enable_chgpump
+	setarg otp_ucode_flag
+	arg mem_otp_ucode_flag,rega
+	arg 2,temp
+	call otpd_read_data
+	fetch 2,mem_otp_ucode_flag
+	bbit0 otp_uflag_aes, loadcode_otp
+	jam 0x25,core_clkoff			// disable debug uart
+	setarg otp_ucode_aeskey
+	arg mem_ucode_keybuf,rega
+	arg 16,temp
+	call otpd_read_data
+	jam lock_otp,core_misc_ctrl	// disable further read/write of key
+	set1 mark_otp_encrypt,mark	
+	arg mem_ucode_keybuf,contr
+	call load_key
+	enable user					// set user for aes
+loadcode_otp:
+	jam 0,mem_loadcode_times
+loadcode_otp_2:
+	call loadcode_check_times
+	fetch 2,mem_otp_ucode_flag
+	byteswap pdata,pdata
+	arg 0x7ff,temp
+	iand temp,pdata
+	branch loadcode_iic, zero
+	call otp_set_addr
+	arg otpd_read_code,regc
+	call get_iv,user
+	call load_storage
+	fetch 1,mem_ucode_status
+	bbit0 0,loadcode_otp_2			// crc error, try again
+	
+loadcode_iic:
+	call otp_disable_chgpump
+	jam 0,mem_loadcode_times
+loadcode_iic_2:	
+	call loadcode_check_times
+	call clear_eeprom_size_2k
+	fetch 1,mem_otp_ucode_flag
+	bbit1 otp_uflag_skip_eep,loadcode_spi
+	call loadcode_iic_by_eeprom
+	nbranch loadcode_iic_eeprom_2k,match
+	fetch 1,mem_ucode_status
+	bbit0 0,loadcode_iic_2			// crc error, try again
+	branch loadcode_hci
+loadcode_iic_eeprom_2k:
+	call set_eeprom_size_2k
+	fetch 1,mem_otp_ucode_flag
+	bbit1 otp_uflag_skip_eep,loadcode_spi
+	call loadcode_iic_by_eeprom
+	nbranch loadcode_spi,match
+	fetch 1,mem_ucode_status
+	bbit0 0,loadcode_iic_2			// crc error, try again
+	branch loadcode_hci
+	
+loadcode_spi:
+	jam 0,mem_loadcode_times
+loadcode_spi_2:
+	call loadcode_check_times
+	fetch 1,mem_otp_ucode_flag
+	bbit1 otp_uflag_skip_flash, loadcode_hci
+	setarg 0x0
+	store 3,mem_addr_hi
+	call spid_init_flash
+	arg spid_load_flash,regc
+	call read_first_block
+	call load_storage
+	nbranch loadcode_hci,match
+	fetch 1,mem_ucode_status
+	bbit0 0,loadcode_spi_2			// crc error, try again
+
+loadcode_hci:
+	bmark1 mark_otp_encrypt,loadcode_hci_enc
+	call clear_key_buf
+loadcode_hci_enc:
+	fetch 1,mem_otp_ucode_flag
+	bbit0 otp_uflag_hci,clear_key_buf
+	jam 0x21,core_clkoff			// enable debug uart
+	call hci_init
+loadcode_hci_loop:
+	call hci_rx_packet
+	branch loadcode_hci_loop
+
+clear_key_buf:
+	setarg 0
+	store 8,mem_ucode_keybuf
+	store 8,mem_ucode_keybuf+8
+	force regidx_key,regext_index
+	call aes_clear
+	jam 0x21,core_clkoff		// enable debug uart
+	rtn
+	
+
+loadcode_iic_by_eeprom:
+	setarg 0x0
+	store 2,mem_addr_mi
+	arg iicd_read_eep,regc
+	call iicd_init_12m
+	call read_first_block
+	branch load_storage
+
+
+loadcode_check_times:
+	fetch 1,mem_loadcode_times
+	increase 1,pdata
+	sub pdata,3,null
+	nbranch loadcode_error,positive
+	store 1,mem_loadcode_times
+	rtn
+
+loadcode_error:
+	call clear_key_buf
+	call ice_break
+	rtn
+
+
+/* true flag is set into status */
+set_ucode_status:
+	fetch 1,mem_ucode_status
+	lshift pdata,pdata
+	setflag true,0,pdata
+	isolate0 15,rega
+	rtn true
+	store 1,mem_ucode_status
+	rtn
+
+	/* queue is bit position of hw done status */
+decrypt_code:
+	hfetch 1,core_gpio_key2
+	rtnbit0 1
+	branch decrypt_code_skip	/* skip to key generation at first for speed */
+decrypt_code_loop:
+	hfetch 1,core_dma_status
+	qisolate1 pdata
+	rtn true
+decrypt_code_skip:
+	hfetch 1,core_misc_status
+	bbit0 1,decrypt_code_loop
+	call do_aes_cbc
+	branch decrypt_code_loop
+
+
+
+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
+	hstore 1,core_ucode_data
+	loop load_ucode_loop
+	jam 0x0, core_ucode_ctrl
+	rtn
+
+
+/* ===================== SPI dma ======================= */
+
+spid_init:
+	bpatchx patch31_5,mem_patch31
+	call spid_init_common
+	branch twspi_enable
+
+spid_init2:
+	call spid_init_common
+	call twspi_disable
+	branch twspi_enable2
+	
+spid_init_common:
+	fetch 1,mem_spi_init_clk
+	hstore 1,core_spid_ctrl	// A7530 should at least 34, or write fail
+	fetch 1,mem_spi_init_delay_time
+	hstore 1,core_spid_delay	// 4us delay
+	setarg mem_spid_tbuf
+	hstore 2,core_spid_txaddr
+	setarg mem_spid_rbuf
+	hstore 2,core_spid_rxaddr
+	branch twspi_disable
+	
+spid_reset:
+	hfetch 1,core_spid_ctrl
+	set1 7,pdata
+	hstore 1,core_spid_ctrl
+	set0 7,pdata
+	hstore 1,core_spid_ctrl
+	rtn
+
+
+/* pdata 6:0 is reg address, 15:8 is data to write */
+spid_write_reg:
+	set1 7,pdata
+	store 2,mem_spid_tbuf
+	bpatchx patch31_6,mem_patch31
+	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 */
+spid_read_reg:
+	force 1,temp
+/* pdata 6:0 is burst reg address, temp is bytes to read */
+spid_read_regs:
+//	nop 100
+	store 1,mem_spid_tbuf
+	bpatchx patch31_7,mem_patch31
+	jam 1,core_spid_txlen
+	hstoret 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
+	hfetch 1,core_dma_status
+	bbit0 spid_done,wait_spid_done
+	rtn
+
+spid_init_flash:
+	jam 0x40,core_spid_ctrl
+	jam 0x0,core_spid_delay
+	hfetch 1,core_gpio_sel1
+	set0 0,pdata
+	set1 1,pdata
+	hstore 1,core_gpio_sel1
+	setarg 0
+	store 4,mem_spid_tbuf
+	rtn
+
+
+spid_unlock_flash:
+	setarg 0
+	hstore 2,core_spid_rxlen
+	setarg 1
+	hstore 2,core_spid_txlen
+	setarg mem_spid_tbuf
+	hstore 2,core_spid_txaddr
+	jam 6,mem_spid_tbuf
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+
+
+/**
+ ******************************************************************************
+ ** \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 flash_write_start
+
+
+flash_write_spi_sm_timer:
+	fetch 1,mem_spi_write_flash_sm 	
+	beq FLASH_SM_START,flash_write_start
+	beq FLASH_SM_ERASE_SECTOR,flash_erase_sector
+	beq FLASH_SM_WAIT_ERASE_SECTOR,flash_wait_erase_sector
+	beq FLASH_SM_WRITE_DATA,flash_write_data
+	beq FLASH_SM_WAIT_WRITE_DATA,flash_wait_write_data
+	rtn
+
+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
+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
+	fetch 3,mem_spi_write_addr
+	jam 4,core_spid_txlen
+	arg FLASH_COMMAND_SECTOR_ERASE,temp
+	branch spid_write_flash_common
+	
+flash_wait_erase_sector:
+	call spid_init_flash
+	call spid_unlock_flash
+	setarg FLASH_READ_SATUS
+	call spid_read_reg
+	rtnbit1 FLASH_STATUS_WIP
+	jam FLASH_SM_WRITE_DATA,mem_spi_write_flash_sm
+	rtn
+flash_write_data:
+	call spid_init_flash
+	jam FLASH_SM_WAIT_WRITE_DATA,mem_spi_write_flash_sm
+	call spid_unlock_flash
+	call flash_data_preserve
+	call spid_write_flash
+	branch flash_data_recover
+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
+flash_data_recover:
+	fetch 4,mem_temp
+	fetcht 2,mem_spi_write_ptr
+	increase -4,temp
+	istore 4,temp
+	rtn
+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
+
+
+/* pdata is flash address, rega pointers to txdata(4 ahead bytes should be left), temp is length */
+spid_write_flash:
+	increase 4,temp
+	hstoret 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
+	hstore 2,core_spid_txaddr
+	setarg 0
+	hstore 2,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+
+
+/* temp is length, rega pointers to buf   */
+spid_read_flash:
+	hstoret 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
+	hstore 2,core_spid_txlen
+	jam FLASH_COMMAND_READ_DATA,mem_spid_tbuf
+	setarg mem_spid_tbuf
+	hstore 2,core_spid_txaddr
+	deposit rega
+	hstore 2,core_spid_rxaddr
+	hfetch 1,core_spid_ctrl
+	isolate0 15,rega
+	setflag true,6,pdata
+	hstore 1,core_spid_ctrl
+	jam spid_start,core_misc_ctrl
+spi_read_flash_wait:
+	hfetch 1,core_dma_status
+	bbit1 7,spi_read_flash_wait			// waiting for spid write
+	arg spid_done,queue
+	branch wait_spid_done
+
+
+/* temp is length, rega pointers to buf  */
+spid_load_flash:
+	hstoret 2,core_spid_rxlen
+	setarg 4
+	hstore 2,core_spid_txlen
+	jam 3,mem_spid_tbuf
+	setarg mem_spid_tbuf
+	hstore 2,core_spid_txaddr
+	deposit rega
+	hstore 2,core_spid_rxaddr
+	hfetch 1,core_spid_ctrl
+	isolate0 15,rega
+	setflag true,6,pdata
+	hstore 1,core_spid_ctrl
+	jam spid_start,core_misc_ctrl
+spi_load_flash_wait:
+	hfetch 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 1,mem_addr_mi
+	lshift8 pdata,pdata
+	ior regb,regb
+	fetch 1,mem_addr_lo
+	ior regb,pdata
+	iadd temp,pdata
+	store 1,mem_addr_lo
+	rshift8 pdata,pdata
+	store 1,mem_addr_mi
+	rshift8 pdata,pdata
+	store 1,mem_addr_hi
+	rtn
+
+/*****************************************************************************
+*soft reset chip
+*****************************************************************************/
+soft_reset_chip:
+	jam 1,core_reset
+	rtn
+
+
+
+/* ===================== I2C dma ======================= */
+
+iic_init_390k:	//390khz
+	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
+  	branch iicd_init_gpio	
+
+
+iicd_init_12m:
+	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
+iicd_init_gpio:	
+	hfetch 1,core_gpio_pu3
+	or_into 0xc0,pdata
+	hstore 1,core_gpio_pu3
+	hfetch 1,core_gpio_sel1
+	or_into 0x10,pdata
+	hstore 1,core_gpio_sel1
+	rtn
+
+
+
+wait_iicd_done:
+	hfetch 1,core_dma_status
+	bbit0 iicd_done,wait_iicd_done
+	rtn
+
+/*
+pdata is tx length
+rega is points to tx buffer
+regb is points to rx buffer
+temp is rx length
+*/
+iicd_read_data:
+	hstore 2,core_iicd_txlen
+	deposit rega
+	hstore 2,core_iicd_txaddr	
+	deposit regb
+	hstore 2,core_iicd_rxaddr
+	deposit temp	
+	hstore 2,core_iicd_rxlen
+	arg 1,temp
+	nsetflag blank,1,temp
+	hstore 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
+	hstore 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:
+	bpatchx patch32_0,mem_patch32
+	bmark1 mark_eeprom_size,iicd_read_eep_data_size_2k
+	fetch 2,mem_eeprom_base
+	iadd regb,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+
+/* rega pointers to buf, temp is length  */
+iicd_read_eep:
+	bpatchx patch32_1,mem_patch32
+	bmark1 mark_eeprom_size,iicd_read_eep_size_2k_lcadcode
+	setarg 4
+	hstore 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	jam 0xa1,mem_iicd_tbuf+3
+iicd_read_eep_common:	
+	setarg mem_iicd_tbuf
+	hstore 2,core_iicd_txaddr
+	hstoret 2,core_iicd_rxlen
+	deposit rega
+	hstore 2,core_iicd_rxaddr
+	setarg 2
+	isolate0 15,rega
+	setflag true,0,pdata
+	hstore 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
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	rtn
+
+iicd_read_eep_load_code_size_2k:
+	fetch 1,mem_addr_mi
+	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
+iicd_write_ota_data:
+	store 2,mem_pdatatemp //curr ptr
+	bpatchx patch32_2,mem_patch32
+	storet 2,mem_temp	//len
+	copy rega,pdata
+	store 2,mem_contr
+iicd_write_eep_loop:
+	call iicd_eep_transparency
+
+	fetcht 2,mem_regb
+	fetch 2,mem_contr
+	copy pdata,rega
+	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:
+	bpatchx patch32_3,mem_patch32
+	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:
+	increase 2,temp
+	hstoret 2,core_iicd_txlen
+	increase -2,rega
+	ifetcht 3,rega
+	copy temp,regb
+	arg 0xa0,temp
+	istoret 1,rega
+//	byteswap pdata,pdata
+	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
+	bpatchx patch32_4,mem_patch32
+	bmark1 mark_eeprom_size,iicd_write_eep_size_2k
+	copy regb,pdata
+	increase 3,temp
+	hstoret 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:	
+	deposit rega
+	hstore 2,core_iicd_txaddr
+	setarg 0
+	hstore 2,core_iicd_rxlen
+	jam 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	copy regb,pdata
+	istore 3,rega
+	
+iic_check_eeprom_standby:
+	bpatchx patch32_5,mem_patch32
+	jam 0,mem_iicd_tbuf+3
+iic_check_eeprom_standby_wait:
+	setarg 1
+	hstore 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	setarg mem_iicd_tbuf
+	hstore 2,core_iicd_txaddr
+	setarg 0
+	hstore 2,core_iicd_rxlen
+	hstore 2,core_iicd_rxaddr
+	setarg 3
+	hstore 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	hfetch 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
+
+/* ===================== OTP ======================= */
+
+otp_enable_chgpump:
+	jam 0x70,rfen_chgpump
+	nop param_chgpump_delay
+	rtn
+
+otp_disable_chgpump:
+	jam 0x30,rfen_chgpump
+	rtn
+	
+otp_set_addr:
+	lshift3 pdata,pdata
+	hstore 2,core_otp_addr
+	jam 0,core_otpd_ctrl
+	rtn	
+
+/* pdata = otp address, rega pointers data, loopcnt is count */
+otp_write:
+	call otp_set_addr
+	call otp_ce
+otp_program:
+	ifetcht 1,rega
+	increase 1,rega
+	force 0,queue
+otp_program_bit:
+	qisolate0 temp
+	branch otp_skip_0,true
+	hfetch 1,core_otp_din
+	set1 6,pdata				/* din */
+	set1 7,pdata				/* dle */
+	hstore 1,core_otp_din
+	jam 0x02,core_otp_ctrl	/* web */
+	jam 0x82,core_otp_ctrl
+	set0 7,pdata				/* dle */
+	hstore 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 */
+	hfetch 1,core_otp_rdata
+	jam 0x92,core_otp_ctrl	/* release readen */
+	nop 1
+	jam 0x82,core_otp_ctrl	/* release pgmvfy */
+	qisolate0 pdata
+	branch otp_program_bit,true	/* program error */
+otp_skip_0:
+	hfetch 2,core_otp_addr
+	increase 1,pdata
+	hstore 2,core_otp_addr
+	increase 1,queue
+	compare 8,queue,0xf
+	nbranch otp_program_bit,true
+	loop otp_program
+	jam 0x83,core_otp_ctrl
+	rtn
+
+otp_ce:
+	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
+
+	/* rega points to data, temp is count */
+otpd_read_init:
+	call otp_ce
+	jam 0xa2,core_otp_ctrl	/* readen */
+	deposit rega
+	hstore 2,core_otpd_addr
+	set1 11,temp
+	isolate0 15,pdata
+	setflag true,15,temp
+	hstoret 2,core_otpd_len
+	jam otpd_start,core_misc_ctrl
+	rtn
+
+otpd_wait_end:
+	hfetch 1,core_dma_status
+	bbit0 otpd_done,otpd_wait_end
+	rtn
+	
+	/* pdata=otp address, rega points to data, temp is count */
+otpd_read_data:
+	call otp_set_addr
+	call otpd_read_init
+	call otpd_wait_end
+	jam 0x83,core_otp_ctrl	/* release ceb */
+	rtn
+
+
+
+/* rega pointers to buf, temp is length */
+otpd_read_code:	
+	hfetch 2,core_current_otp_addr
+	hstore 2,core_otp_addr
+	call otpd_read_init
+	arg otpd_done,queue
+	call decrypt_code
+	call otpd_wait_end
+	isolate1 otpd_crcok,pdata	
+	call set_ucode_status
+	jam 0x83,core_otp_ctrl	/* release ceb */
+	rtn
+
+/* ===================== uart dma ======================= */
+uartd_prepare_tx:
+	hfetch 2,core_uart_twptr
+	iforce contwu
+	rtn
+
+uartd_send:
+	deposit contwu
+	hstore 2,core_uart_twptr
+	rtn
+
+uartd_rxdone:
+	deposit contru
+	hstore 2,core_uart_rrptr
+	rtn
+
+uartd_prepare_rx:
+	hfetch 2,core_uart_rrptr
+	copy pdata,contru
+	rtn
+
+uart_set_baud_by_mem:
+	fetch uart_baud_len,mem_baud
+	hstore uart_baud_len,core_uart_baud
+	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,contwu
+	rtn
+
+uart_tx_4_bytes:
+	ifetch 4,contr
+	istore 4,contwu
+	rtn
+
+uart_copy_tx_bytes:
+	deposit loopcnt
+	rtn blank
+uart_copy_tx_bytes_loop:
+	ifetch 1,contr
+	istore 1,contwu
+	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,contru
+	istore 8,contw
+	rtn
+
+uart_rx_4_bytes:
+	ifetch 4,contru
+	istore 4,contw
+	rtn
+
+
+uart_copy_rx_bytes:
+	deposit loopcnt
+	rtn blank
+uart_copy_rx_bytes_loop:
+	ifetch 1,contru
+	istore 1,contw
+	loop uart_copy_rx_bytes_loop
+	rtn
+
+
+uart_copy_rx2tx:
+	deposit loopcnt
+	rtn blank
+uart_copy_rx2tx_loop:
+	ifetch 1,contru
+	istore 1,contwu
+	loop uart_copy_rx2tx_loop
+	rtn
+
+
+/* ===================== eeprom data ======================= */
+
+app_store_nvram_event:
+	jam BT_EVT_STORE_NVRAM,mem_fifo_temp
+	branch ui_ipc_send_event
+
+check_51cmd_store_reconn_info:
+check_51cmd_update_device_record:
+	bpatchx patch32_6,mem_patch32
+	fetch 1,mem_nv_data_number
+	rtn blank		// not nv data
+	call check_nvram
+	call init_device_list,zero
+	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
+
+
+nvram_find_addr_from_bd_list:
+	call disable_user
+	fetch 1,mem_nv_data_number
+	rtn blank		// not nv data
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_CONNECTED,find_addr_from_bd_list_SPP_mode
+find_addr_from_bd_list_ble_mode:
+	bpatchx patch32_7,mem_patch32
+	fetch 1,mem_le_conn_peer_addr_type
+	beq MASTER_PUBLIC_ADDR,find_addr_from_bd_list_static_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
+	compare 0x00,pdata,0xc0
+	branch find_addr_from_bd_list_random_non_resolvable_private_address,true
+find_addr_from_bd_list_static_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
+	
+//input :pdata EDIV and rands
+find_addr_from_bd_list_SPP_mode:
+	bpatchx patch33_0,mem_patch33
+	jam REC_3_MODE,mem_temp_reconn_record
+	fetch 6,mem_plap
+find_addr_from_bd_list_common:
+	store 6,mem_temp_reconn_record+1
+	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:
+	bpatchx patch33_1,mem_patch33
+	call nvram_find_addr_from_bd_list
+	fetch 1,mem_state
+	setflag user,state_combkey,pdata	/* we have link key */
+	store 1,mem_state
+	nbranch clear_key_exists,user
+	add rega,10,contr
+//	copy rega,contr
+	arg mem_link_key,contw
+	call  memcpy16
+	branch check_link_key_load
+clear_key_exists:
+	jam 0,mem_link_key_exists
+	rtn
+
+load_device_list_mode_4:
+	fetch 9,mem_le_ediv
+	branch clear_ltk_exists,blank
+	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:
+	fetch 6,mem_le_plap
+	store 6,mem_temp_lap
+	jam REC_4_MODE,mem_record_bt_mode
+	branch eeprom_store_reconn_info
+eeprom_store_bd_reconn_info:
+	fetch 6,mem_plap
+	store 6,mem_temp_lap
+	jam REC_3_MODE,mem_record_bt_mode
+eeprom_store_reconn_info:
+	fetch 1,mem_device_option
+	beq dvc_op_module,check_51cmd_update_device_record
+	bbit1 dvc_op_mouse,mouse_store_remote_bdaddr
+	rtn
+	
+
+check_link_key_load:
+	fetch 8,mem_link_key
+	fetcht 8,mem_link_key+8
+	ior temp,pdata
+	rtn blank
+	jam 1,mem_link_key_exists
+	rtn
+	
+
+/* =============== GPIO CONTROL ================= */
+
+
+	//temp [4:0]=GPIO number, 0-31, 
+gpio_set_wake_by_current_state:
+	bpatchx patch33_2,mem_patch33
+	set1 7,temp
+	call gpio_get_bit
+	nsetflag true,7,temp
+	//branch gpio_set_wake
+	//fall through
+	
+	//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_set_wake:
+	bpatchx patch33_3,mem_patch33
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	isolate0 7,temp
+	and temp,0x1f,queue
+	fetch 4,mem_gpio_wakeup_low
+	qsetflag true,pdata
+	store 4,mem_gpio_wakeup_low
+	fetch 4,mem_gpio_wakeup_high
+	nqsetflag true,pdata
+	store 4,mem_gpio_wakeup_high
+	rtn
+	
+	//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_clr_wake:
+	bpatchx patch33_4,mem_patch33
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	isolate0 7,temp
+	and temp,0x1f,queue
+	fetch 4,mem_gpio_wakeup_low
+	qset0 pdata
+	store 4,mem_gpio_wakeup_low
+	fetch 4,mem_gpio_wakeup_high
+	qset0 pdata
+	store 4,mem_gpio_wakeup_high
+	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:
+	arg core_gpio_pd0,contw
+	call gpio_set_bit
+	setflip gpio_active_bit,temp
+	arg core_gpio_pu0,contw
+	call gpio_set_bit
+	set0 gpio_active_bit,temp
+	arg core_gpio_oe0,contw
+	branch gpio_set_bit
+
+
+gpio_set_high_impedance:
+	arg core_gpio_pd0,contw
+	call gpio_set_bit
+	set0 gpio_active_bit,temp
+	arg core_gpio_pu0,contw
+	call gpio_set_bit
+	set0 gpio_active_bit,temp
+	arg core_gpio_oe0,contw
+	branch gpio_set_bit
+
+
+	//temp [4:0]=GPIO number, 0-31, [7]=0, low active. set gpio to inactive state
+gpio_config_output:	
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	setflip gpio_active_bit,temp
+	call gpio_out
+gpio_config_output0:
+	set1 gpio_active_bit,temp
+	arg core_gpio_oe0,contw
+	branch gpio_set_bit
+	
+gpio_common:
+	and temp,0x07,queue
+	rshift3 temp,pdata
+	and_into 3,pdata
+	iadd contw,contw
+	ifetch 1,contw
+	rtn
+
+gpio_check_active:
+	arg core_gpio_out0,contw
+	branch get_bit_common
+
+	
+	/* temp is gpio number, return true if gpio active */
+gpio_get_bit:
+	arg core_gpio_in,contw
+get_bit_common:
+	call gpio_common
+	isolate1 gpio_active_bit,temp
+	branch gpio_get_bit_reverse,true
+	qisolate0 pdata
+	rtn
+gpio_get_bit_reverse:
+	qisolate1 pdata
+	rtn
+
+gpio_out_inactive:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	isolate1 7,null
+	branch gpio_out_flag
+
+gpio_out_active:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	isolate0 7,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:
+	arg core_gpio_out0,contw
+
+	//temp [4:0]=GPIO number, 0-31, [7]=bit value; contw is gpio reg base
+gpio_set_bit:
+	call gpio_common
+	isolate1 gpio_active_bit,temp
+	qsetflag true,pdata
+	istore 1,contw
+	rtn
+
+gpio_set_before_lpm_common:
+	arg -1,rega
+	hfetch 1,core_gpio_sel1
+	compare 0x02,pdata,0x03
+	call neglact4_from_23_pin,true	//spi
+
+	compare 0x01,pdata,0x03
+	call neglact2_form_25_pin,true	//two spi gpio25 26
+
+	compare 0x03,pdata,0x03
+	call neglact2_form_25_pin,true	//two spi gpio30 31
+	 	 
+	isolate1 2,pdata
+	call neglect2_from_6_pin,true	//uart
+	 
+	isolate1 3,pdata
+	call neglect4_from_9_pin,true	//spi
+
+	isolate1 4,pdata
+	call neglact2_form_30_pin,true	//IIC GPIO30 31
+
+	isolate1 6,pdata
+	nsetflag true,04,rega			//pwm0 gpio4
+
+	isolate1 7,pdata
+	nsetflag true,05,rega			//pwm1 gpio5
+
+	hfetch 1,core_gpio_sel2
+	isolate1 0,pdata
+	nsetflag true,27,rega			//pwm2 gpio27
+	isolate1 1,pdata
+	nsetflag true,28,rega			//pwm3 gpio28
+	isolate1 2,pdata
+	nsetflag true,03,rega			//pwm4 gpio03
+	isolate1 3,pdata
+	nsetflag true,08,rega			//pwm5 gpio08
+	isolate1 4,pdata
+	nsetflag true,20,rega			//pwm0 gpio20
+	isolate1 5,pdata
+	nsetflag true,21,rega			//pwm1 gpio21
+	isolate1 6,pdata
+	nsetflag true,22,rega			//pwm2 gpio22
+	isolate1 7,pdata
+	nsetflag true,23,rega			//pwm3 gpio23
+		
+	hfetch 1,core_gpio_sel
+	isolate1 0,pdata
+	nsetflag true,05,rega			//ADC GPIO05
+	isolate1 1,pdata
+	nsetflag true,06,rega			//ADC GPIO06
+	isolate1 2,pdata
+	nsetflag true,07,rega			//ADC GPIO07
+	isolate1 3,pdata
+	nsetflag true,18,rega			//ADC GPIO18
+	isolate1 4,pdata
+	nsetflag true,19,rega			//ADC GPIO19
+	isolate1 5,pdata
+	nsetflag true,20,rega			//ADC GPIO20
+	isolate1 6,pdata
+	nsetflag true,21,rega			//ADC GPIO21
+	isolate1 7,pdata
+	nsetflag true,22,rega			//ADC GPIO22
+	
+	hfetch 1,core_uart_ctrl
+	isolate1 4,pdata
+	call neglact2_form_2_pin,true
+	bpatchx patch33_5,mem_patch33
+
+	hfetch 4,core_gpio_pu0
+	hfetcht 4,core_gpio_pd0
+	ior temp,pdata
+	invert pdata,pdata
+	iand rega,pdata
+	//set0 4,pdata //revc
+	hstore 4,core_gpio_oe0
+	rtn
+	
+	
+neglect2_from_6_pin: //uart
+	 arg 6,queue
+	 branch neglect_2_pin
+neglect4_from_9_pin:
+	 arg 9,queue
+	 branch neglact_4_pin
+neglact4_from_23_pin:
+	 arg 23,queue
+	 branch neglact_4_pin
+neglact2_form_25_pin:
+	 arg 25,queue
+	 branch neglect_2_pin
+neglact2_form_30_pin:
+	 arg 30,queue
+	 branch neglect_2_pin
+neglact2_form_2_pin:
+	 arg 2,queue
+	 branch neglect_2_pin
+neglact_1_pin:
+	arg 1,loopcnt
+	branch neglect_pin_loop
+neglact_4_pin:
+	 arg 4,loopcnt
+	 branch neglect_pin_loop
+neglect_2_pin:
+	 arg 2,loopcnt
+neglect_pin_loop:
+	 qset0 rega
+	 increase 1,queue
+	 loop neglect_pin_loop
+	 rtn
+
+
+
+
+
+
+/* ===================== sniff GPIO CONTROL ======================= */
+gpio_cfg_uart_tx_output:
+	call gpio_uart2gpio
+	arg UART_WAKEUP_TX,temp
+	branch gpio_config_output
+
+gpio_pu_uart_tx:
+	call gpio_cfg_uart_tx_output
+	arg UART_WAKEUP_TX,temp
+	branch gpio_out_inactive
+
+
+
+gpio_rx_config_input_with_pu:
+	call gpio_uart2gpio
+	hfetch 1, core_gpio_pu0
+	set1 UART_WAKEUP_RX,pdata
+	hstore 1,core_gpio_pu0
+	arg UART_WAKEUP_RX,temp
+	branch gpio_config_input
+	
+gpio_uart2gpio:
+	hfetch 1,core_gpio_sel1
+	and_into 0xfb,pdata
+	hstore 1,core_gpio_sel1
+	rtn
+
+gpio_check_uart_state:
+	hfetch 1,core_gpio_sel1
+	isolate1 2,pdata
+	rtn
+
+load_chip_option:
+	call otp_enable_chgpump
+	setarg OTP_CHIP_FUNCTIONS
+	arg mem_chip_functions,rega
+	arg 0x02,temp
+	call otpd_read_data
+	branch otp_disable_chgpump
+
+
+load_adc_init:
+	call otp_enable_chgpump
+	setarg otp_adc_io_0_5V_addr
+	arg mem_0_5_adc_io_data,rega
+	arg 14,temp
+	call otpd_read_data
+	branch otp_disable_chgpump
+
+
+//mem_adc_config_flag 0:vinlpm 1:Hvin 2: GPIO
+adc_init_data:
+	bpatchx patch33_6,mem_patch33
+
+	call load_adc_init
+	
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_VINLPM,adc_init_data_vinlpm
+	beq ADC_CONFIG_HVIN,adc_init_data_hvin
+	beq ADC_CONFIG_GPIO,adc_init_data_io
+	rtn	
+
+adc_init_data_vinlpm:
+	fetcht 2,mem_otp_adc_flag
+	setarg OTP_ADC_FLAG
+	isub temp,null
+	branch adc_check_data_vinlpm,zero
+	setarg 0x4dfa
+	store 2,mem_3v_adc_vinlpm_data	
+	setarg 0x4894
+	store 2,mem_2v_adc_vinlpm_data
+	branch set_vdd_reference_voltage_1v
+
+adc_check_data_vinlpm:
+	fetch 2,mem_3v_adc_vinlpm_data
+	nbranch adc_check_2v_vinlpm,blank
+	setarg 0x4dfa
+	store 2,mem_3v_adc_vinlpm_data
+adc_check_2v_vinlpm:	
+	fetch 2,mem_2v_adc_vinlpm_data
+	nbranch set_vdd_reference_voltage_1v,blank
+	setarg 0x4894
+	store 2,mem_2v_adc_vinlpm_data
+set_vdd_reference_voltage_1v:
+	setarg 100
+	store 2,mem_reference_voltage //set reference voltage = 1V
+	rtn		
+
+adc_init_data_hvin:
+	fetcht 2,mem_otp_adc_flag
+	setarg OTP_ADC_FLAG
+	isub temp,null
+	branch adc_check_data_hvin,zero
+	setarg 0x5932
+	store 2,mem_5v_adc_hvin_data	
+	setarg 0x4323
+	store 2,mem_1v_adc_hvin_data
+	branch set_vdd_reference_voltage_4v
+
+adc_check_data_hvin:
+	fetch 2,mem_5v_adc_hvin_data
+	nbranch adc_check_1v_hvin,blank
+	setarg 0x5932
+	store 2,mem_5v_adc_hvin_data
+adc_check_1v_hvin:	
+	fetch 2,mem_1v_adc_hvin_data
+	nbranch set_vdd_reference_voltage_4v,blank
+	setarg 0x4323
+	store 2,mem_1v_adc_hvin_data
+set_vdd_reference_voltage_4v:
+	setarg 400
+	store 2,mem_reference_voltage //set reference voltage = 4V
+	rtn 	
+
+adc_init_data_io:
+	fetcht 2,mem_otp_adc_flag
+	setarg OTP_ADC_FLAG
+	isub temp,null
+	branch adc_check_data_io,zero
+	setarg 0x6946
+	store 2,mem_1v_adc_io_data	
+	setarg 0x5377
+	store 2,mem_0_5_adc_io_data
+	branch set_vdd_reference_voltage_0_5v
+
+adc_check_data_io:
+	fetch 2,mem_1v_adc_io_data
+	nbranch adc_check_0_5v_io,blank
+	setarg 0x6946
+	store 2,mem_1v_adc_io_data
+adc_check_0_5v_io:
+	fetch 2,mem_0_5_adc_io_data
+	nbranch set_vdd_reference_voltage_0_5v,blank
+	setarg 0x5377
+	store 2,mem_0_5_adc_io_data
+set_vdd_reference_voltage_0_5v:
+	setarg 50
+	store 2,mem_reference_voltage //set reference voltage = 0.5V
+	rtn	
+
+
+adc_set_mode:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_VINLPM,adc_check_vinlpm
+	beq ADC_CONFIG_HVIN,adc_check_hvin
+	beq ADC_CONFIG_GPIO,adc_check_gpio
+	rtn
+adc_check_vinlpm:
+	jam 0xbf,rf_adc_mode	//read VINLPM voltage directly	
+	branch read_adc
+adc_check_hvin:
+	jam 0xaf,rf_adc_mode	//read HVIN voltage directly
+	branch read_adc
+adc_check_gpio:
+	jam 0x8f,rf_adc_mode
+	fetch 1,mem_adc_channel
+	hstore 1,rf_adc_ch
+	branch read_adc
+read_adc:
+	bpatchx patch33_7,mem_patch33
+	hfetch 1,core_uart_baud + 1
+	set1 7,pdata
+	hstore 1,core_uart_baud + 1 
+	hfetch 1,rf_adc_ch
+	or_into 0x30,pdata
+	hstore 1,rf_adc_ch
+	jam 0x7c,rfen_adc
+	jam 0xaa,rf_adc_gc
+	nop 5000
+	hfetcht 2,core_adc_sum
+	hfetch 1,core_uart_baud + 1
+	set0 7,pdata
+	hstore 1,core_uart_baud + 1
+	storet 2,mem_adc_current_value
+	rtn
+
+vdd_calculate_by_mode:
+	bpatchx patch34_0,mem_patch34
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_VINLPM,vdd_calculate_vinlpm
+	beq ADC_CONFIG_HVIN,vdd_calculate_hvin
+	beq ADC_CONFIG_GPIO,vdd_calculate_io
+	rtn
+
+vdd_calculate_vinlpm:
+	fetch 2,mem_3v_adc_vinlpm_data
+	fetcht 2,mem_2v_adc_vinlpm_data
+	arg 200,regc
+	branch vdd_calculate
+
+vdd_calculate_hvin:
+	fetch 2,mem_5v_adc_hvin_data
+	fetcht 2,mem_1v_adc_hvin_data
+	arg 100,regc
+	branch vdd_calculate
+
+vdd_calculate_io:
+	fetch 2,mem_1v_adc_io_data
+	fetcht 2,mem_0_5_adc_io_data
+	arg 50,regc
+	branch vdd_calculate
+	
+vdd_calculate:
+	isub temp,rega
+	fetch 2,mem_adc_current_value
+	isub temp,pdata
+	nbranch vdd_calculate1,positive
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	iadd regb,pdata
+vdd_calculate2:
+	idiv rega
+	call wait_div_end
+	quotient pdata	
+	rtn
+
+vdd_calculate1:
+	copy temp,pdata
+	fetcht 2,mem_adc_current_value
+	isub temp,pdata
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	isub regb,pdata
+	branch vdd_calculate2
+
+/*	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
+	store 1,mem_adc_power_flag
+	rtn
+adc_set_no_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 1,temp
+	storet 1,mem_adc_power_flag
+	rtn
+
+ifdef SPI_SIMULATE
+/******************************simulate spi slave start**********************************/
+
+/*
+// Define SPI struct, gpio config
+mem_spi_simulate_struct:
+02	#cs
+03	#sclk
+04	#mosi
+05	#miso
+08	#motion
+*/
+
+/*
+Brief: spi_simulate_init_slave
+Input: None
+Output: None
+Return: None
+Brief: cs_gpio,sclk_gpio,mosi_gpio : input
+	miso_gpio : output
+*/
+spi_simulate_init_slave:
+	call spi_simulate_variable_release_slave
+	branch spi_simulate_gpio_config_slave
+
+spi_simulate_variable_release_slave:
+	arg mem_spi_simulate_read_byte_slave,contw
+	arg 53,loopcnt
+	call buffer_release
+	arg mem_spi_simulate_write_byte_slave,contw
+	arg 54,loopcnt
+	branch buffer_release
+
+buffer_release:
+	setarg 0
+buffer_release_loop:
+	istore 1,contw
+	loop buffer_release_loop
+	rtn
+	
+spi_simulate_gpio_config_slave:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_config_input
+	fetcht 1,mem_spi_simulate_sclk_gpio
+	call gpio_config_input
+	fetcht 1,mem_spi_simulate_mosi_gpio
+	call gpio_config_input
+	fetcht 1,mem_spi_simulate_miso_gpio
+	call gpio_config_output
+	fetcht 1,mem_spi_simulate_motion_gpio
+	call gpio_config_output
+	branch spi_simulate_motion_disable
+
+spi_simulate_motion_enable:
+	fetcht 1,mem_spi_simulate_motion_gpio
+	branch gpio_out_inactive
+spi_simulate_motion_disable:
+	fetcht 1,mem_spi_simulate_motion_gpio
+	branch gpio_out_active
+	
+/*
+Brief: spi_simulate_read_byte_slave
+Input: rega: read length
+Output: mem_spi_simulate_read_byte_slave: read buffer
+Return: None
+Brief: when the cs_gpio is low level,slave reads data from master at the rising edge of the sclk gpio
+*/
+spi_simulate_read_byte_slave:
+	copy rega,pdata
+	store 1,mem_spi_simulate_read_length_slave
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nrtn true
+spi_simulate_read_byte_slave1:	
+	jam 0,mem_spi_simulate_read_byte_slave_temp
+	arg 8,loopcnt
+spi_simulate_read_byte_slave_loop:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_read_byte_slave_end,true
+	
+	fetcht 1, mem_spi_simulate_sclk_gpio
+	call gpio_get_bit
+	branch spi_simulate_read_byte_slave_loop,true	
+	fetch 1,mem_spi_simulate_read_byte_slave_temp
+	lshift pdata,pdata
+	store 1,mem_spi_simulate_read_byte_slave_temp
+	fetcht 1, mem_spi_simulate_mosi_gpio
+	call gpio_get_bit
+	ncall spi_simulate_read_byte_or_one,true
+spi_simulate_read_byte_slave_loop1:	
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_read_byte_slave_end,true
+
+	fetcht 1, mem_spi_simulate_sclk_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_read_byte_slave_loop1,true
+	loop spi_simulate_read_byte_slave_loop
+	
+	fetcht 1,mem_spi_simulate_read_length_slave_temp
+	setarg mem_spi_simulate_read_byte_slave
+	iadd temp,contw
+	copy contw,regb
+	increase 1,temp
+	storet 1,mem_spi_simulate_read_length_slave_temp
+	fetch 1,mem_spi_simulate_read_byte_slave_temp
+	copy regb,contw
+	istore 1,contw
+
+	fetch 1,mem_spi_simulate_read_length_slave
+	increase -1,pdata
+	store 1,mem_spi_simulate_read_length_slave
+	nbranch spi_simulate_read_byte_slave1,blank
+	
+spi_simulate_read_byte_slave_loop2:	
+	fetcht 1, mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_read_byte_slave_loop2,true
+spi_simulate_read_byte_slave_end:	
+	jam 0,mem_spi_simulate_read_length_slave
+	jam 0,mem_spi_simulate_read_length_slave_temp
+	jam 0,mem_spi_simulate_read_byte_slave_temp
+	rtn
+
+spi_simulate_read_byte_or_one:
+	fetch 1,mem_spi_simulate_read_byte_slave_temp
+	or_into 1,pdata
+	store 1,mem_spi_simulate_read_byte_slave_temp
+	rtn
+
+
+/*
+Brief: spi_simulate_write_byte_slave
+Input: rega: write length;  write buffer:mem_spi_simulate_write_byte_slave;
+Output: None
+Return: None
+Brief: when the cs_gpio is low level,slave writes data to master at the falling edge of the sclk gpio
+*/
+spi_simulate_write_byte_slave:
+	copy rega,pdata
+	store 1,mem_spi_simulate_write_length_slave
+	jam 0,mem_spi_simulate_write_length_slave_temp
+	jam 0,mem_spi_simulate_write_byte_slave_temp
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nrtn true
+spi_simulate_write_byte_slave1:
+	fetcht 1,mem_spi_simulate_write_length_slave_temp
+	setarg mem_spi_simulate_write_byte_slave
+	iadd temp,contr
+	copy contr,regb
+	increase 1,temp
+	storet 1,mem_spi_simulate_write_length_slave_temp
+	copy regb,contr
+	ifetch 1,contr
+	store 1,mem_spi_simulate_write_byte_slave_temp
+	
+	arg 8,loopcnt
+spi_simulate_write_byte_slave_loop:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_write_byte_slave_end,true
+	fetcht 1, mem_spi_simulate_sclk_gpio
+	call gpio_get_bit
+	branch spi_simulate_write_byte_slave_loop,true
+spi_simulate_write_byte_slave_loop1:
+	fetch 1,mem_spi_simulate_write_byte_slave_temp
+	store 1,mem_spi_simulate_write_byte_slave_temp_temp
+	and_into 0x80,pdata
+	beq 0x80,spi_simulate_set_miso_gpio_high
+	call spi_simulate_set_miso_gpio_low
+spi_simulate_write_byte_slave_loop2:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_write_byte_slave_end,true
+	fetcht 1, mem_spi_simulate_sclk_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_write_byte_slave_loop2,true	
+	fetch 1,mem_spi_simulate_write_byte_slave_temp_temp
+	lshift pdata,pdata
+	store 1,mem_spi_simulate_write_byte_slave_temp
+	loop spi_simulate_write_byte_slave_loop
+
+	fetch 1,mem_spi_simulate_write_length_slave
+	increase -1,pdata
+	store 1,mem_spi_simulate_write_length_slave
+	nbranch spi_simulate_write_byte_slave1,blank
+	
+spi_simulate_write_byte_slave_loop3:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	branch spi_simulate_write_byte_slave_loop3,true
+spi_simulate_write_byte_slave_end:	
+	jam 0,mem_spi_simulate_write_length_slave_temp
+	jam 0,mem_spi_simulate_write_byte_slave_temp
+	jam 0,mem_spi_simulate_write_byte_slave_temp_temp
+	rtn
+	
+spi_simulate_set_miso_gpio_high:
+	fetcht 1,mem_spi_simulate_miso_gpio
+	call gpio_out_inactive
+	branch spi_simulate_write_byte_slave_loop2
+spi_simulate_set_miso_gpio_low:
+	fetcht 1,mem_spi_simulate_miso_gpio
+	branch gpio_out_active	
+
+/******************************simulate spi slave end**********************************/
+
+endif  //SPI_SIMULATE
+
+
+/****************************************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
+	jam 0,mem_key_value_temp
+keyscan_scan_key_lp1:
+	ifetcht 1, rega
+	call gpio_get_bit
+	bpatchx patch34_1,mem_patch34
+	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
+	ixor temp,null
+	rtn zero
+	enable user
+	rtn
+
+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 patch34_2,mem_patch34
+	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
+	rshift pdata,temp
+	storet 2,mem_key_value
+	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
+	rtn
+keyscan_send_key_data:
+	bpatchx patch34_3,mem_patch34
+	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:
+	hfetch 1,core_clksel
+	ior rega,pdata
+	hstore 1,core_clksel
+	hfetch 2,core_clkoff
+	set0 CLOCK_OFF_PWM,pdata
+	hstore 2,core_clkoff
+	nop 100
+	rtn
+
+/*	typedef struct
+*	{
+*		uint8 gpio_num
+*		uint8 pwm_channel
+*		uint24 frequency
+*		uint8 duty_cycle   //0-100
+*	}PWM_Style;
+	addr: mem_pdatatemp
+*/
+pwm_out_set:
+	fetcht 3,mem_pdatatemp+2
+	setarg PWM_12MHZ
+	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
+	branch pwm_enable
+
+//rega:pcnt ;regb:ncnt ;pdata:pwm channel select
+pwm_duty_cycle_set:
+	beq 0,pwm_pwm0_duty_set
+	beq 1,pwm_pwm1_duty_set
+	beq 2,pwm_pwm2_duty_set
+	beq 3,pwm_pwm3_duty_set
+	beq 4,pwm_pwm4_duty_set
+	beq 5,pwm_pwm5_duty_set
+pwm_pwm0_duty_set:
+	arg core_pwm_pcnt0,contw
+	branch pwm_set_pncnt
+pwm_pwm1_duty_set:
+	arg core_pwm_pcnt1,contw
+	branch pwm_set_pncnt
+pwm_pwm2_duty_set:
+	arg core_pwm_pcnt2,contw
+	branch pwm_set_pncnt
+pwm_pwm3_duty_set:
+	arg core_pwm_pcnt3,contw
+	branch pwm_set_pncnt
+pwm_pwm4_duty_set:
+	arg core_pwm_pcnt4,contw
+	branch pwm_set_pncnt
+pwm_pwm5_duty_set:
+	arg core_pwm_pcnt5,contw
+	branch pwm_set_pncnt
+pwm_set_pncnt:
+	copy rega,pdata
+	istore 2,contw
+	copy regb,pdata
+	istore 2,contw
+	rtn
+
+
+//pdata:gpio select
+pwm_enable:
+	enable user
+	branch pwm_gpio_set
+pwm_disable:
+	disable user
+pwm_gpio_set:
+	beq 4,pwm_gpio4_set
+	beq 5,pwm_gpio5_set
+	beq 27,pwm_gpio27_set
+	beq 28,pwm_gpio28_set
+	beq 3,pwm_gpio3_set
+	beq 8,pwm_gpio8_set
+	beq 20,pwm_gpio20_set
+	beq 21,pwm_gpio21_set
+	beq 22,pwm_gpio22_set
+	beq 23,pwm_gpio23_set
+	rtn
+
+
+pwm_gpio4_set:	//pwm 0
+	arg 6,queue
+	branch pwm_one_set_select
+pwm_gpio5_set:	//pwm 1
+  	arg 7,queue
+	branch pwm_one_set_select
+pwm_gpio27_set:	//pwm 2
+  	arg 8,queue
+	branch pwm_one_set_select
+pwm_gpio28_set:	//pwm 3
+	arg 9,queue
+	branch pwm_one_set_select
+pwm_gpio3_set:	//pwm 4
+ 	arg 10,queue
+	branch pwm_one_set_select
+pwm_gpio8_set:	//pwm 5
+  	arg 11,queue
+	branch pwm_one_set_select
+pwm_gpio20_set:	//pwm 0
+  	arg 12,queue
+	branch pwm_tw0_set_select
+pwm_gpio21_set:	//pwm 1
+  	arg 13,queue
+	branch pwm_tw0_set_select
+pwm_gpio22_set:	//pwm 2
+   	arg 14,queue
+	branch pwm_tw0_set_select
+pwm_gpio23_set:	//pwm 3
+    	arg 15,queue
+	branch pwm_tw0_set_select
+
+pwm_set_select:
+	hfetch 2,core_gpio_sel1
+	qsetflag user,pdata
+	hstore 2,core_gpio_sel1
+	copy rega,queue
+	hfetch 1,core_gpio_key2
+   	qsetflag user,pdata
+   	hstore 1,core_gpio_key2
+	rtn
+
+pwm_one_set_select:
+	add queue,-4,rega
+	branch pwm_set_select
+
+pwm_tw0_set_select:
+	add queue,-10,rega
+	branch pwm_set_select
+
+
+	
Index: DpiSwitch/program/rfcomm.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/rfcomm.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/rfcomm.prog	(working copy)
@@ -0,0 +1,960 @@
+
+ifdef COMPILE_RFCOMM
+rfcomm_init:
+	rtn wake
+	jam 0,mem_rfcomm_send_more_pkt
+	jam BITS9600,memRemoteRPNBitRate        
+	jam DATABITS8,memRemotePRNDataBits      
+	jam 0x11,memRemotePRNXon
+	jam 0x13,memRemotePRNXoff
+	setarg 0
+	store 3,memRemotePRNStopBit
+	store 1,mem_spp_state                  
+	jam 0,memui_reconnect_mode
+	//branch rfcomm_init_spp
+rfcomm_init_spp:
+	bpatchx patch34_4,mem_patch34
+	setarg 0
+	store 1,mem_spp_state
+	store 1,mem_remote_spp_channel
+	store 1,mem_pn_dlci
+	fetch 1,mem_credit_flag
+	beq CREDIT_ENABLE,rfcomm_init_spp_with_credit
+	jam 0x50,mem_credit_given
+	rtn
+
+rfcomm_init_spp_with_credit:
+	jam 0x00,mem_credit_given
+	rtn
+
+set_CR_bit:
+	or_into 0x02,temp
+	rtn
+
+
+/*below added by koufan*/
+
+/*rfcomm_send */
+
+
+
+	/*rfcomm_calculate_FCS_sabm*/
+	/*input: address in temp*/
+	/*output: FCS in pdata  */
+rfcomm_calculate_FCS_sabm:
+	copy temp,pdata
+	reverse pdata,pdata //address
+	store 1,memFCStemp3
+	force INI_TX_SABM,pdata
+	reverse pdata,pdata
+	store 1,memFCStemp2
+	force 0x01,pdata                        
+	reverse pdata,pdata
+	store 1,memFCStemp1
+	call caculate_fcs
+	copy temp,pdata                        
+	rtn
+rfcomm_calculate_FCS_ua:
+	reverse pdata,pdata //address
+	store 1,memFCStemp3
+	force   RSP_TX_UA, pdata
+	reverse pdata, pdata
+	store   1, memFCStemp2
+	force   0x01, pdata
+	reverse pdata, pdata
+	store   1, memFCStemp1
+	branch caculate_fcs
+	/* FCS return from temp                */
+rfcomm_calculate_FCS_dlci0:
+	fetch 1,mem_rfcomm_initiator
+	branch rfcomm_calculate_FCS_dlci0_res,blank
+	setarg 0x70 //FCS of initiator
+	rtn
+rfcomm_calculate_FCS_dlci0_res:
+	setarg 0xaa//FCS of responder
+	rtn
+	
+rfcomm_save_FCS_uih:
+	reverse pdata, pdata //address 
+	store 1,memFCStemp3                     /* contw distroided                    */
+	force RSP_RX_UIH,pdata 
+	call caculate_UIHdata_fcs
+	fetcht 2,mem_contw_temp
+	copy temp,contw
+	istore 1,contw                      /* save FCS for later use              */
+	copy contw,temp
+	storet 2,mem_contw_temp
+	force RSP_RX_UIH_WDATA,pdata             /* P/F =1 + RSP_RX_UIH                 */
+	call caculate_UIHdata_fcs
+	fetcht 2,mem_contw_temp
+	copy temp,contw
+	istore 1,contw             /* save FCS for later use              */
+	rtn	
+/**********************************************************************/
+/* This subroutine caculates the FCS for UIH data                     */
+/* Input:                                                             */
+/*        the address byte at memFCStemp3(bit reversed), control byte */
+/*        at pdata (not bit reversed)                                 */
+/* Output:                                                            */
+/*        pdata: the FCS                                              */
+/**********************************************************************/  
+caculate_UIHdata_fcs:
+	reverse pdata,pdata
+	store   1,memFCStemp2
+	fetch   2, memFCStemp2                     
+	lshift8 pdata,pdata
+	store 3,mem_mod2div_temp
+	arg     0x107,regA
+	arg 0xf,regB
+	call mod2div
+	xor_into     0xd7, pdata
+	invert  pdata,pdata
+	reverse pdata,pdata
+	rtn
+	
+/**********************************************************************/
+/* This subroutine caculates the FCS                                  */
+/* Input:                                                             */
+/*        the address byte at memFCStemp3, control byte at memFCStemp2*/  
+/*        lenght at memFCStemp1 (all above data are bit reversed)     */
+/* Output:                                                            */
+/*        temp: the FCS                                               */
+/**********************************************************************/     
+caculate_fcs:
+	fetch 3, memFCStemp1                    /* load 3 bytes start at memFCStemp1   */
+	store 3,mem_mod2div_temp
+	arg 0x107,regA
+	arg 0xf,regB  //24bit(memFCStemp1+..+memFCStemp3) - 9bit(regA) = 15bit
+	call mod2div
+	lshift8 pdata,pdata 
+	arg 0x7, regB  //16bit(lshift8 pdata,pdata ) - 9bit(regA) = 7bit
+	call mod2div
+	xor_into     0x2b, pdata		//0x3d
+	invert  pdata, pdata                        
+	reverse pdata, pdata                      /* FCS at pdata                        */
+	copy    pdata, temp
+	rtn
+
+mod2div:
+	arg 0,regC
+	copy regB,loopcnt
+	call right_shift_n // right shift pdata (regB)bit
+	icopy temp
+mod2div_loop:
+	//jam 1,0x1fff
+//mod2div_loop1:
+	//fetch 1,0x1fff
+	//nbranch mod2div_loop1,blank
+	copy temp,pdata
+	lshift regC,regC//quotient
+	bbit0 8, mod2div_not_enough_reduction//the high bit of 0x107
+	ixor regA,temp// temp----remainer
+	increase 1,regC// quotient
+mod2div_not_enough_reduction: //Minuend smaller than Subtrahend
+	lshift temp,temp
+	fetch 3,mem_mod2div_temp
+	increase -1,regB
+	compare 0xff,regB,0xff
+	branch mod2div_end,true
+	copy regB,loopcnt
+	call right_shift_n // right shift pdata (regB)bit
+	isolate1 0,pdata
+	setflag true,0,temp //move a new bit from Dividend(queue) into Minuend(pdata)
+	branch mod2div_loop
+mod2div_end:
+	//output:remainer in pdata
+	rshift  temp,pdata
+	rtn
+
+get_rfcomm_snd_adss:
+	fetcht 1,mem_pn_dlci
+dlci_to_address_cmd:
+	//input DLCI from temp
+	lshift2 temp,temp
+	set1 RFCOMM_ADDRESS_EXT_LEN,temp
+	fetch 1,mem_rfcomm_initiator
+	ncall set_CR_bit,blank
+	storet 1,mem_rfcomm_send_adss
+	rtn
+
+channel_to_dlci:
+	//input channel from temp
+	lshift temp,temp
+	fetch 1,mem_rfcomm_initiator
+	setflag blank,0,temp //direction in dlci
+	//output dlci to temp
+	rtn
+rfcomm_rx_process_DLCI0_sabm:
+	fetcht 1,mem_current_channel //address
+	jam 0xd7,mem_current_fcs //FCS
+	call rfcomm_send_ua
+	fetch 1,mem_rfcomm_state
+	set1 L2CAP_CHANNEL_RFCOMM_ONLY_SABM,pdata
+	set1 L2CAP_CHANNEL_RFCOMM_ONLY_UA,pdata
+	store 1,mem_rfcomm_state
+	jam 0,mem_rfcomm_initiator
+	branch rfcomm_rx_process_end
+rfcomm_rx_process_DLCI0_ua:
+	fetch 1,mem_rfcomm_state
+	set1 L2CAP_CHANNEL_RFCOMM_ONLY_UA,pdata
+	store 1,mem_rfcomm_state
+	branch rfcomm_rx_process_end
+
+	
+rfcomm_rx_process:
+	bpatchx patch34_5,mem_patch34
+	fetch 1,memui_reconnect_mode
+	beq NO_RECONNECTION,rfcomm_rx_process_remote_page
+	branch rfcomm_rx_process_reconn
+
+rfcomm_rx_process_remote_page:
+	fetch 2,mem_l2cap_payload_ptr
+	copy pdata,contr
+	call get_rfcomm_head_struct
+	fetch 1,mem_current_channel
+	beq 0,parse_dlci0_rp
+	branch parse_uih_rp
+parse_dlci0_rp:
+	bpatchx patch34_6,mem_patch34
+	fetch 1,mem_current_frame_type
+	beq RFCOMM_FRAME_TYPE_SABM,rfcomm_rx_process_DLCI0_sabm
+	beq RFCOMM_FRAME_TYPE_UA,rfcomm_rx_process_DLCI0_ua
+	beq RFCOMM_FRAME_TYPE_UIH,parse_DLCI0_rp_uih
+	beq RFCOMM_FRAME_TYPE_DISCONN,parse_uih_rp_spp_disconn_send_event
+	rtn
+
+
+parse_DLCI0_rp_uih:
+	fetch 2,mem_rfcomm_uih_payload_ptr
+	copy pdata,contr
+	call get_rfcomm_uih_head_struct
+	fetch 1,mem_uih_cmd_type
+	beq UIH_PARAM_NEG_CMD,parse_DLCI0_rp_uih_pn_cmd
+	beq UIH_PARAM_NEG_RES,parse_DLCI0_rp_uih_pn_res
+	beq UIH_MODEM_STATUS_CMD,parse_DLCI0_rp_uih_ms_cmd
+	beq UIH_MODEM_STATUS_RES,parse_DLCI0_rp_uih_ms_res
+	beq UIH_PARAM_CMD_REMOVE_PORT,parse_DLCI0_rp_uih_cmd_port	
+	branch rfcomm_rx_process_end
+	
+parse_DLCI0_rp_uih_pn_cmd:
+	call parse_DLCI0_rp_uih_pn_res_common
+
+	branch parse_DLCI0_rp_uih_pn_cmd_spp
+
+parse_DLCI0_rp_uih_pn_cmd_spp:
+	fetch 1,mem_spp_state
+	set1 RFCOMM_CHANNEL_STATE_PN_CMD,pdata
+	set1 RFCOMM_CHANNEL_STATE_PN_RES,pdata
+	store 1,mem_spp_state
+	call rfcomm_send_param_neg_res
+	branch rfcomm_rx_process_end
+	
+parse_DLCI0_rp_uih_pn_res:
+	call parse_DLCI0_rp_uih_pn_res_common
+	branch rfcomm_rx_process_end
+
+parse_DLCI0_rp_uih_pn_res_common:
+	call get_param_payload_ptr
+	branch  get_rfcomm_prarmer_negotiation
+
+get_rfcomm_param_modem_status:
+	call get_param_payload_ptr
+	ifetch 1,contr
+	rshift3 pdata,pdata
+	store 1,mem_ms_channel
+	ifetch 1,contr
+	store 1,mem_ms_param
+	rtn
+
+
+get_rfcomm_head_struct:
+	ifetch 1,contr
+	store 1,mem_current_adss
+	rshift3 pdata,pdata
+	store 1,mem_current_channel
+	ifetch 1,contr
+	store 1,mem_current_frame_type
+get_rfcomm_current_length:
+	call get_rfcomm_length_common
+	storet 2,mem_current_length
+	copy contr,pdata
+	store 2,mem_rfcomm_uih_payload_ptr
+	rtn
+
+get_rfcomm_uih_head_struct:
+	ifetch 1,contr
+	rshift pdata,pdata
+	store 1,mem_uih_cmd_type
+	call get_rfcomm_length_common
+	storet 2,mem_uih_length
+	copy contr,pdata
+	store 2,mem_param_payload_ptr
+	rtn
+
+
+get_param_payload_ptr:
+	fetch 2,mem_param_payload_ptr
+	copy pdata,contr
+	rtn
+
+get_rfcomm_length_common:
+	ifetch 1,contr
+	copy pdata,temp
+	rshift temp,temp
+	rtnbit1 0
+	ifetch 1,contr
+	lshift3 pdata,pdata
+	lshift4 pdata,pdata
+	iadd temp,temp
+	rtn
+
+get_rfcomm_prarmer_negotiation:
+	ifetch 1,contr
+	store 1,mem_pn_dlci
+	ifetch 1,contr
+	store 1,mem_pn_credit_flow_type_info
+	ifetch 1,contr
+	store 1,mem_pn_priority
+	ifetch 1,contr
+	store 1,mem_pn_acknowledg_timer
+	ifetch 2,contr
+	store 2,mem_pn_max_frame_size
+	ifetch 1,contr
+	store 1,mem_pn_max_retrans
+	ifetch 1,contr
+	store 1,mem_remote_credits
+	rtn
+
+
+parse_DLCI0_rp_uih_ms_cmd:
+	call get_rfcomm_param_modem_status
+
+	branch parse_DLCI0_rp_uih_ms_cmd_spp
+
+parse_DLCI0_rp_uih_ms_cmd_spp:
+	fetch 1,mem_spp_state
+	set1 RFCOMM_CHANNEL_STATE_RCV_MS_CMD,pdata
+	set1 RFCOMM_CHANNEL_STATE_SND_MS_RES,pdata
+	store 1,mem_spp_state
+	fetcht 1,mem_pn_dlci
+	lshift2 temp,temp
+	or_into 3,temp
+	call rfcomm_send_modem_status_res
+	jam MORE_PKT_MSC_CMD_SPP,mem_rfcomm_send_more_pkt
+	branch rfcomm_rx_process_end
+	
+parse_DLCI0_rp_uih_ms_res:
+	jam BT_EVT_SPP_CONNECTED,mem_fifo_temp
+	call ui_ipc_send_event
+	call get_rfcomm_param_modem_status
+	fetch 1,mem_ms_channel
+	sub pdata,1,null
+	branch parse_DLCI0_rp_uih_MS_RES_spp,zero
+	branch assert
+parse_DLCI0_rp_uih_ms_res_spp:
+	fetch 1,mem_spp_state
+	set1 RFCOMM_CHANNEL_STATE_RCV_MS_RES,pdata
+	store 1,mem_spp_state
+	branch rfcomm_rx_process_end
+
+parse_DLCI0_rp_uih_cmd_port:
+	call get_param_payload_ptr
+	ifetch 1,contr
+	store 1,mem_rpn_dlci
+	call l2cap_malloc_rfcomm_channel
+	call l2cap_get_rfcomm_tx_buff
+	setarg 0x000e
+	istore 2,contw //l2cap len
+	fetch 2,mem_rfcomm_remote_cid
+	istore 2,contw//cid
+	fetch 1,mem_rfcomm_initiator
+	//setarg 5
+	lshift pdata,pdata
+	set1 0,pdata //ext len
+	istore 1,contw //DLCI0 address
+	bpatchx patch34_7,mem_patch34
+	setarg 0x15ef
+	istore 2,contw
+	setarg 0x1191
+	istore 2,contw
+	//fetch 1,mem_pn_dlci
+	//setarg 0x0b
+	fetch 1,mem_rpn_dlci
+	istore 1,contw //DLCI
+	setarg 0x000007
+	istore 5,contw
+//	setarg 0 //max frame size
+//	istore 2,contw 
+	setarg 0x01 //max retrans
+	istore 2,contw
+//	setarg 0x00
+//	istore 1,contw // init credits
+	call rfcomm_calculate_FCS_dlci0
+	istore 1,contw
+	rtn
+
+
+
+parse_uih_rp:
+	branch parse_uih_rp_spp
+
+parse_uih_rp_spp:
+	bpatchx patch35_0,mem_patch35
+	fetch 1,mem_current_frame_type
+	beq RFCOMM_FRAME_TYPE_UA,parse_uih_rp_spp_ua
+	beq RFCOMM_FRAME_TYPE_SABM,parse_uih_rp_spp_sabm
+	beq RFCOMM_FRAME_TYPE_UIH,parse_uih_spp_uih
+	beq RFCOMM_FRAME_TYPE_UIH_CREDITS,parse_uih_spp_uih_credits
+	beq RFCOMM_FRAME_TYPE_DISCONN,parse_uih_rp_spp_disconn
+	rtn
+parse_uih_rp_spp_ua:
+	fetch 1,mem_spp_state
+	set1 RFCOMM_CHANNEL_STATE_UA,pdata
+	store 1,mem_spp_state
+	branch rfcomm_rx_process_end
+parse_uih_rp_spp_sabm:
+	fetch 1,mem_spp_state
+	set1 RFCOMM_CHANNEL_STATE_UA,pdata
+	set1 RFCOMM_CHANNEL_STATE_SABM,pdata
+	store 1,mem_spp_state
+	fetch 1,mem_current_adss
+	call rfcomm_calculate_FCS_ua
+	store 1,mem_current_fcs
+	call rfcomm_send_ua
+	fetch 1,mem_current_adss
+	rshift2 pdata,pdata
+	store 1,mem_pn_dlci
+	lshift2 pdata,pdata
+	set0 RFCOMM_ADDRESS_CR,pdata
+	set1 RFCOMM_ADDRESS_EXT_LEN,pdata 
+	arg mem_HIUfcs_spp,temp // mem_HIUfcs_HF_WCredits in regB++
+	storet 2,mem_contw_temp
+	call rfcomm_save_FCS_uih
+	branch rfcomm_rx_process_end
+	
+parse_uih_spp_uih_credits:
+	fetch 2,mem_rfcomm_uih_payload_ptr
+	copy pdata,contr
+	increase 1,pdata
+	store 2,mem_rfcomm_uih_payload_ptr
+	ifetch 1,contr //remote credits
+	fetcht 1,mem_remote_credits
+	iadd temp,pdata
+	store 1,mem_remote_credits
+parse_uih_spp_uih:
+	call rfcomm_increase_credit_given
+parse_uih_spp_uih_cont:
+	call get_rfcomm_snd_adss
+	call rfcomm_send_uih_without_payload
+	call spp_process_rx_data
+	branch rfcomm_rx_process_end
+
+parse_uih_rp_spp_disconn_send_event:
+	jam BT_EVT_SPP_DISCONNECTED,mem_fifo_temp
+	call ui_ipc_send_event	
+parse_uih_rp_spp_disconn:
+	call rfcomm_init_spp
+	fetch 1,mem_current_adss
+	call rfcomm_calculate_FCS_ua
+	store 1,mem_current_fcs
+	call rfcomm_send_ua
+	branch rfcomm_rx_process_end
+	
+///////////////////////////////////////////
+///////////////////////////////////////////
+///////////////////////////////////////////
+rfcomm_rx_process_reconn:
+	fetch 2,mem_l2cap_payload_ptr
+	copy pdata,contr
+	call get_rfcomm_head_struct
+	fetch 1,mem_current_channel
+	beq 0,parse_DLCI0_reconn
+	branch parse_uih_reconn
+		
+parse_DLCI0_reconn:
+	bpatchx patch35_1,mem_patch35
+	fetch 1,mem_current_frame_type
+	beq RFCOMM_FRAME_TYPE_SABM,rfcomm_rx_process_DLCI0_sabm
+	beq RFCOMM_FRAME_TYPE_UA,rfcomm_rx_process_DLCI0_ua
+	beq RFCOMM_FRAME_TYPE_UIH,parse_DLCI0_reconn_uih
+	branch rfcomm_rx_process_end
+parse_DLCI0_reconn_uih:
+	fetch 2,mem_rfcomm_uih_payload_ptr
+	copy pdata,contr
+	call get_rfcomm_uih_head_struct
+	fetch 1,mem_uih_cmd_type
+	beq UIH_PARAM_NEG_CMD,parse_DLCI0_reconn_uih_pn_cmd
+	beq UIH_PARAM_NEG_RES,parse_DLCI0_reconn_uih_pn_cmd
+	beq UIH_MODEM_STATUS_CMD,parse_DLCI0_reconn_uih_ms_cmd
+	beq UIH_MODEM_STATUS_RES,parse_DLCI0_reconn_uih_ms_res
+	branch rfcomm_rx_process_end
+
+parse_DLCI0_reconn_uih_pn_cmd:
+	call parse_DLCI0_rp_uih_pn_res_common
+	fetch 1,mem_pn_dlci
+	rshift pdata,pdata
+	fetcht 1,mem_remote_spp_channel
+	isub temp,null
+	branch parse_DLCI0_reconn_uih_pn_cmd_spp,zero
+	branch assert
+parse_DLCI0_reconn_uih_pn_cmd_spp:
+	fetch 1,mem_spp_state
+	set1 RFCOMM_CHANNEL_STATE_PN_RES,pdata
+	store 1,mem_spp_state
+	branch rfcomm_rx_process_end
+
+parse_DLCI0_reconn_uih_ms_cmd:
+	call get_rfcomm_param_modem_status
+	fetch 1,mem_ms_channel
+	fetcht 1,mem_remote_spp_channel
+	isub temp,null
+	branch parse_DLCI0_reconn_uih_ms_cmd_spp,zero
+	branch assert
+	branch rfcomm_rx_process_end
+parse_DLCI0_reconn_uih_ms_cmd_spp:
+	fetch 1,mem_spp_state
+	set1 RFCOMM_CHANNEL_STATE_RCV_MS_CMD,pdata
+	set1 RFCOMM_CHANNEL_STATE_SND_MS_RES,pdata
+	store 1,mem_spp_state
+	fetcht 1,mem_pn_dlci
+	lshift2 temp,temp
+	or_into 3,temp
+	call rfcomm_send_modem_status_res
+	branch rfcomm_rx_process_end
+	
+parse_DLCI0_reconn_uih_ms_res:
+	call get_rfcomm_param_modem_status
+	fetch 1,mem_ms_channel
+	fetcht 1,mem_remote_spp_channel
+	isub temp,null
+	branch parse_DLCI0_reconn_uih_ms_res_spp,zero
+	branch assert
+parse_DLCI0_reconn_uih_ms_res_spp:
+	fetch 1,mem_spp_state
+	set1 RFCOMM_CHANNEL_STATE_RCV_MS_RES,pdata
+	store 1,mem_spp_state
+	branch rfcomm_rx_process_end
+
+parse_uih_reconn:
+	fetch 1,mem_current_channel
+	fetcht 1,mem_remote_spp_channel
+	isub temp,null
+	branch parse_uih_reconn_spp,zero
+	branch assert
+	branch rfcomm_rx_process_end
+
+parse_uih_reconn_spp:
+	fetch 1,mem_current_frame_type
+	beq RFCOMM_FRAME_TYPE_UA,parse_uih_reconn_spp_ua
+	beq RFCOMM_FRAME_TYPE_UIH,parse_uih_spp_uih
+	beq RFCOMM_FRAME_TYPE_UIH_CREDITS,parse_uih_spp_uih_credits
+	beq RFCOMM_FRAME_TYPE_DISCONN,parse_uih_reconn_spp_disconn
+parse_uih_reconn_spp_ua:
+	fetch 1,mem_spp_state
+	set1 RFCOMM_CHANNEL_STATE_UA,pdata
+	store 1,mem_spp_state
+	branch rfcomm_rx_process_end
+parse_uih_reconn_spp_sabm:
+	branch parse_uih_reconn_spp_sabm//loop
+parse_uih_reconn_spp_disconn:
+	branch parse_uih_rp_spp_disconn
+rfcomm_rx_process_end:
+	rtn
+	
+rfcomm_send_more_pkt:
+	fetch 1,mem_rfcomm_send_more_pkt
+	rtn blank
+	beq MORE_PKT_MSC_CMD_SPP,rfcomm_send_more_pkt_msc_cmd_spp
+	branch assert
+	
+rfcomm_send_more_pkt_msc_cmd_spp:
+	jam 0,mem_rfcomm_send_more_pkt
+	call l2cap_malloc_rfcomm_channel
+	arg SPP_SLAVE_CHANNEL,temp
+	fetcht 1,mem_pn_dlci
+	lshift2 temp,temp
+rfcomm_send_more_pkt_msc_cmd_spp0:
+	or_into 0x03,temp
+	arg 0xaa,regA
+	call rfcomm_send_modem_status_cmd
+	call l2cap_get_rfcomm_tx_buff
+	copy contw,contr
+	ifetch 2, contr
+	branch assert,blank
+	rtn
+
+rfcomm_send_sabm:
+	call l2cap_get_rfcomm_tx_buff
+	setarg 0x0004
+	istore 2,contw //l2cap len
+	fetch 2,mem_rfcomm_remote_cid
+	istore 2,contw//cid
+	fetch 1,mem_current_adss
+	istore 1,contw //address
+	bpatchx patch35_2,mem_patch35
+	setarg 0x013f
+	istore 2,contw
+	fetch 1,mem_current_fcs
+	istore 1,contw
+	rtn
+rfcomm_send_ua:
+	call l2cap_malloc_rfcomm_channel
+	call l2cap_get_rfcomm_tx_buff
+	setarg 0x0004
+	istore 2,contw //l2cap len
+	fetch 2,mem_rfcomm_remote_cid
+	istore 2,contw//cid
+	fetch 1,mem_current_adss
+	istore 1,contw //address
+	bpatchx patch35_3,mem_patch35
+	setarg 0x0173
+	istore 2,contw
+	fetch 1,mem_current_fcs
+	istore 1,contw
+	rtn
+rfcomm_send_param_neg_cmd:
+	call l2cap_get_rfcomm_tx_buff
+	setarg 0x000e
+	istore 2,contw //l2cap len
+	fetch 2,mem_rfcomm_remote_cid
+	istore 2,contw//cid
+	fetch 1,mem_rfcomm_initiator
+	lshift pdata,pdata
+	set1 0,pdata //ext len
+	istore 1,contw //DLCI0 address
+	bpatchx patch35_4,mem_patch35
+	setarg 0x15ef
+	istore 2,contw
+	setarg 0x1183
+	istore 2,contw
+	copy temp,pdata //DLCI in temp
+	istore 1,contw
+	setarg 0x0000f0
+	istore 3,contw
+	setarg RFCOMM_MAX_FRAME_SIZE
+	istore 2,contw
+	setarg 0
+	istore 1,contw
+	setarg 0x01		//change here later
+	istore 1,contw
+	call rfcomm_calculate_FCS_dlci0
+	istore 1,contw
+	jam 0x10,mem_credit_given
+	rtn
+rfcomm_send_param_neg_res:
+	call l2cap_malloc_rfcomm_channel
+	call l2cap_get_rfcomm_tx_buff
+	setarg 0x000e
+	istore 2,contw //l2cap len
+	fetch 2,mem_rfcomm_remote_cid
+	istore 2,contw//cid
+	fetch 1,mem_rfcomm_initiator
+	lshift pdata,pdata
+	set1 0,pdata //ext len
+	istore 1,contw //DLCI0 address
+	bpatchx patch35_5,mem_patch35
+	setarg 0x15ef
+	istore 2,contw
+	setarg 0x1181
+	istore 2,contw
+	fetch 1,mem_pn_dlci
+	istore 1,contw //DLCI
+	setarg 0x0000e0
+	istore 3,contw
+	fetch 2,mem_rfcomm_max_frame_size
+	istore 2,contw 
+	setarg 0x00 //max retrans
+	istore 1,contw
+	fetch 1,mem_rfcomm_credit_init_data
+	istore 1,contw // init credits
+	call rfcomm_calculate_FCS_dlci0
+	istore 1,contw
+	rtn
+rfcomm_send_modem_status_cmd:
+	call l2cap_get_rfcomm_tx_buff
+	setarg 0x0008
+	istore 2,contw //l2cap len
+	fetch 2,mem_rfcomm_remote_cid
+	istore 2,contw//cid
+	fetch 1,mem_rfcomm_initiator
+	lshift pdata,pdata
+	set1 0,pdata //ext len
+	istore 1,contw //DLCI0 address
+	bpatchx patch35_6,mem_patch35
+	setarg 0x09ef
+	istore 2,contw
+	setarg 0x05e3
+	istore 2,contw
+	copy temp,pdata //DLCI adress
+	istore 1,contw
+	setarg 0x8d
+	istore 1,contw
+	call rfcomm_calculate_FCS_dlci0
+	istore 1,contw
+	rtn
+
+rfcomm_send_modem_status_res:
+	call l2cap_malloc_rfcomm_channel
+	call l2cap_get_rfcomm_tx_buff
+	setarg 0x0008
+	istore 2,contw //l2cap len
+	fetch 2,mem_rfcomm_remote_cid
+	istore 2,contw//cid
+	copy temp,timeup
+	fetch 1,mem_rfcomm_initiator
+	lshift pdata,pdata
+	set1 0,pdata //ext len
+	istore 1,contw //DLCI0 address
+	bpatchx patch35_7,mem_patch35
+	setarg 0x09ef
+	istore 2,contw
+	setarg 0x05e1
+	istore 2,contw
+	copy timeup,pdata //DLCI address in temp
+	istore 1,contw
+	setarg 0x8d
+	istore 1,contw
+	call rfcomm_calculate_FCS_dlci0
+	istore 1,contw
+	rtn
+
+rfcomm_send_uih_without_payload:
+	bpatchx patch36_0,mem_patch36
+	fetch 1,mem_credit_given
+	rtn blank
+	hfetch 2,core_uart_rxitems
+	nrtn blank
+	copy rega,pdata
+	store 1,mem_pdatatemp+1
+	storet 1,mem_pdatatemp
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	call l2cap_malloc_rfcomm_channel
+	call l2cap_get_rfcomm_tx_buff
+	setarg 0x05
+	istore 2,contw
+	fetch 2,mem_RFCOMM_remote_CID
+	istore 2,contw
+	fetch 1,mem_rfcomm_send_adss
+	istore 1,contw
+	setarg 0x01ff
+	istore 2,contw
+	fetch 1,mem_credit_given
+	istore 1,contw
+	fetch 1,mem_HIUfcs_SPP_WCredits
+	istore 1,contw
+	jam 0,mem_credit_given
+	rtn
+	
+rfcomm_increase_credit_given:
+	bpatchx patch36_1,mem_patch36
+	fetch 1,mem_credit_flag
+	rtneq CREDIT_ENABLE
+	fetch 2,mem_current_length
+	rtn blank
+	fetch 1,mem_credit_given
+	increase 1,pdata
+	store 1,mem_credit_given
+	rtn
+
+spp_process_rx_data:
+	fetch 2,mem_cb_receive_spp_data
+	branch callback_func
+
+spp_tx_rfcomm_packet:
+	bpatchx patch36_2,mem_patch36
+	//credit
+	fetch 1,mem_remote_credits
+	rtn blank
+	increase -1,pdata
+	store 1,mem_remote_credits
+	fetch 2,mem_pn_max_frame_size
+	fetcht 2,mem_current_packet_length
+	isub temp,null
+	branch ssp_tx_rfcomm_from_uart,positive
+	store 2,mem_current_packet_length
+ssp_tx_rfcomm_from_uart:
+	fetch 1,mem_credit_given
+	branch ssp_tx_rfcomm_from_uart_without_credit,blank
+	jam 1,mem_rfcomm_send_offset
+	fetch 1,mem_HIUfcs_SPP_WCredits
+	store 1,mem_rfcomm_send_fcs
+	setarg RSP_RX_UIH_WDATA
+	store 1,mem_rfcomm_send_frame_type
+	branch ssp_tx_rfcomm_from_uart_common
+ssp_tx_rfcomm_from_uart_without_credit:
+	jam 0,mem_rfcomm_send_offset
+	fetch 1,mem_HIUfcs_SPP
+	store 1,mem_rfcomm_send_fcs
+	setarg RSP_TX_UIH
+	store 1,mem_rfcomm_send_frame_type
+ssp_tx_rfcomm_from_uart_common:
+	bpatchx patch36_3,mem_patch36
+	fetch 2,mem_current_packet_length
+	sub pdata,127,null
+	branch ssp_tx_rfcomm_from_uart_common0,positive
+	fetch 1,mem_rfcomm_send_offset
+	increase 1,pdata
+	store 1,mem_rfcomm_send_offset
+ssp_tx_rfcomm_from_uart_common0:
+	call get_rfcomm_snd_adss
+	fetch 2,mem_current_packet_length
+	increase 8,pdata	//fcs + rfcommhead + l2caphead == 8
+	fetcht 1,mem_rfcomm_send_offset
+	iadd temp,rega
+	//rfcomm payload
+	call l2cap_malloc
+	store 2,mem_rfcomm_tx_buff_ptr
+	increase 4,pdata
+	store 2,mem_rfcomm_tx_payload_ptr
+	copy pdata,contw
+	fetch 1,mem_rfcomm_send_adss
+	istore 1,contw
+	fetch 1,mem_rfcomm_send_frame_type
+	istore 1,contw
+	call ssp_tx_write_length
+	call ssp_tx_write_given_credit
+	bpatchx patch36_4,mem_patch36
+	fetch 2,mem_nl_rx_data_src		//src
+	copy pdata,contru
+	fetch 2,mem_current_packet_length
+	copy pdata,loopcnt
+	call uart_copy_rx_bytes_fast
+	copy contw,temp
+	copy contru,pdata
+	store 2,mem_nl_rx_data_src
+	copy temp,contw	
+	fetch 1,mem_rfcomm_send_fcs
+	istore 1,contw
+	fetch 2,mem_rfcomm_tx_buff_ptr
+	copy pdata,contw
+	fetch 2,mem_current_packet_length
+	fetcht 1,mem_rfcomm_send_offset
+	iadd temp,pdata
+	increase 4,pdata
+	istore 2,contw
+	fetch 2,mem_rfcomm_remote_cid
+	istore 2,contw
+	jam 0,mem_credit_given	//whatever mem_credit_given is set to 0
+	fetch 2,mem_nl_rx_len_all
+	beq 0,module_hci_command_tx_spp_tx_complete
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	rtn
+
+ssp_tx_write_length:
+	bpatchx patch36_5,mem_patch36
+	fetch 2,mem_current_packet_length
+	sub pdata,0x7f,null
+	nbranch ssp_tx_write_long_packet,positive
+	lshift pdata,pdata
+	set1 0,pdata
+	istore 1,contw
+	rtn
+ssp_tx_write_long_packet:
+	fetch 2,mem_current_packet_length
+	rshift3 pdata,pdata
+	rshift4 pdata,temp
+	and_into 0x7f,pdata
+	lshift pdata,pdata
+	set0 0,pdata
+	istore 1,contw
+	istoret 1,contw
+	rtn
+ssp_tx_write_given_credit:
+	fetch 1,mem_credit_given
+	rtn blank
+	istore 1,contw
+	rtn
+
+	
+
+
+else
+
+rfcomm_init:
+	rtn
+rfcomm_init_spp:
+set_CR_bit:
+rfcomm_calculate_FCS_sabm:
+rfcomm_calculate_FCS_ua:
+rfcomm_calculate_FCS_dlci0:
+rfcomm_calculate_FCS_dlci0_res:
+rfcomm_save_FCS_uih:
+caculate_UIHdata_fcs:
+caculate_fcs:
+mod2div:
+mod2div_loop:
+mod2div_not_enough_reduction:
+mod2div_end:
+get_rfcomm_snd_adss:
+dlci_to_address_cmd:
+dlci_to_address_res:
+channel_to_dlci:
+rfcomm_rx_process_DLCI0_sabm:
+rfcomm_rx_process_DLCI0_ua:
+rfcomm_rx_process:
+rfcomm_rx_process_remote_page:
+parse_dlci0_rp:
+parse_DLCI0_rp_uih:
+parse_DLCI0_rp_uih_pn_cmd:
+parse_DLCI0_rp_uih_pn_cmd_spp:
+parse_DLCI0_rp_uih_pn_res:
+parse_DLCI0_rp_uih_pn_res_common:
+get_rfcomm_param_modem_status:
+get_rfcomm_head_struct:
+get_rfcomm_current_length:
+get_rfcomm_uih_head_struct:
+get_param_payload_ptr:
+get_rfcomm_param_length_common:
+get_rfcomm_length_common:
+get_rfcomm_prarmer_negotiation:
+parse_DLCI0_rp_uih_ms_cmd:
+parse_DLCI0_rp_uih_ms_cmd_spp:
+parse_DLCI0_rp_uih_ms_res:
+parse_DLCI0_rp_uih_ms_res_spp:
+parse_uih_rp:
+parse_uih_rp_spp:
+parse_uih_rp_spp_ua:
+parse_uih_rp_spp_sabm:
+parse_uih_spp_uih_credits:
+parse_uih_spp_uih:
+parse_uih_spp_uih_cont:
+parse_uih_rp_spp_disconn:
+rfcomm_rx_process_reconn:
+	branch assert 
+parse_DLCI0_reconn:
+parse_DLCI0_reconn_uih:
+parse_DLCI0_reconn_uih_pn_cmd:
+parse_DLCI0_reconn_uih_pn_cmd_spp:
+parse_DLCI0_reconn_uih_ms_cmd:
+parse_DLCI0_reconn_uih_ms_cmd_spp:
+parse_DLCI0_reconn_uih_ms_res:
+parse_DLCI0_reconn_uih_ms_res_noext:
+parse_DLCI0_reconn_uih_ms_res_spp:
+parse_uih_reconn:
+parse_uih_reconn_spp:
+parse_uih_reconn_spp_ua:
+parse_uih_reconn_spp_sabm:
+parse_uih_reconn_spp_disconn:
+rfcomm_rx_process_end:
+rfcomm_send_more_pkt:
+rfcomm_send_more_pkt_msc_cmd_spp:
+rfcomm_send_sabm:
+rfcomm_send_ua:
+rfcomm_send_param_neg_cmd:
+rfcomm_send_param_neg_res:
+rfcomm_send_modem_status_cmd:
+rfcomm_send_modem_status_res:
+rfcomm_send_uih_without_payload:
+rfcomm_increase_credit_given:
+spp_process_rx_data:
+spp_tx_rfcomm_packet:
+ssp_tx_rfcomm_from_uart:
+ssp_tx_rfcomm_from_uart_without_credit:
+ssp_tx_rfcomm_from_uart_common:
+ssp_tx_rfcomm_from_uart_common0:
+ssp_tx_write_length:
+ssp_tx_write_long_packet:
+ssp_tx_write_given_credit:
+	branch assert
+endif
Index: DpiSwitch/program/scheduler.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/scheduler.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/scheduler.prog	(working copy)
@@ -0,0 +1,461 @@
+scheduler_process:
+	bpatchx patch36_6,mem_patch36
+	call check_51cmd
+	call app_process_bb_event
+	call process_conn_sm
+/* check the connection state sequence byte */
+	bpatchx patch36_7,mem_patch36
+ifdef SIMPLE_PAIRING
+	call sp_calc_sequence
+	call simple_pairing_sequence
+	call master_simple_paring_sequence
+endif
+//return if it is hci mode. 'cause the following is host part.
+//notify BB to tx a l2cap packet
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	//for conn to MTK 
+	call l2cap_call_proc_sigal_pending
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	bpatchx patch37_0,mem_patch37
+//to generat a new l2cap packet
+	call process_upper_sm
+	call l2cap_send_config_req
+ifdef COMPILE_RFCOMM
+	call rfcomm_send_more_pkt//use this function to send msc_cmd after msc_rep sent
+endif
+scheduler_process0:
+	call scheduler_tx_disconnect_hid //may not used
+	bpatchx patch37_1,mem_patch37
+//	call l2cap_malloc_is_fifo_full
+//	nrtn blank
+	branch app_process_bt
+	
+scheduler_tx_disconnect_hid:
+	fetch 1,mem_CONTROL_tasks		
+	bbit1 L2CAP_DISCONNECT_INTERRUPT,L2CAP_disconnect_interrupt_req
+	bbit1 L2CAP_DISCONNECT_CONTROL,L2CAP_disconnect_control_req
+	rtn
+	
+scheduler_tx_l2cap_pkt:
+	bpatchx patch37_2,mem_patch37
+	call l2cap_malloc_is_fifo_empty
+	rtn blank //empty
+	fetch 1,mem_op
+	rtnbit1 op_txl2cap
+	call l2cap_malloc_fifo_out
+	store 2,mem_txptr
+	copy pdata,contr
+	ifetch 2,contr
+	increase 4,pdata
+	store 2,mem_tx_len
+	jam 6,mem_tx_lch//start pkt
+	bpatchx patch37_3,mem_patch37
+	fetch 2,mem_l2cap_tx_multi_offset
+	branch scheduler_tx_l2cap_start_pkt,blank
+	fetch 1,mem_op
+	rtnbit0 op_pkt_comp
+	set0 op_pkt_comp,pdata
+	store 1,mem_op
+	jam 5,mem_tx_lch//continue pkt
+	fetcht 2,mem_l2cap_tx_multi_offset
+	fetch 2,mem_txptr
+	iadd temp,pdata
+	store 2,mem_txptr
+	fetch 2,mem_tx_len
+	isub temp,pdata
+	store 2,mem_tx_len
+scheduler_tx_l2cap_start_pkt:
+	bpatchx patch37_4,mem_patch37
+	fetch 2,mem_tx_len
+	branch assert,blank
+	arg l2cap_max_pkt_len,temp //max len of dh3 pkt
+	isub temp,pdata
+	nbranch scheduler_Tx_l2cap_last_pkt,positive
+	bpatchx patch37_5,mem_patch37
+	storet 2,mem_tx_len //l2cap_max_pkt_len
+	fetch 2,mem_l2cap_tx_multi_offset
+	iadd temp,pdata
+	store 2,mem_l2cap_tx_multi_offset
+	branch scheduler_Tx_l2cap_pkt_end
+scheduler_Tx_l2cap_last_pkt:
+	setarg 0
+	store 2,mem_l2cap_tx_multi_offset
+scheduler_Tx_l2cap_pkt_end:
+	fetch 1,mem_op
+	set1 op_txl2cap,pdata
+	store 1,mem_op
+	rtn
+
+scheduler_start_upper_sm:
+	fetch 1,mem_UI_profile_supported
+	bbit1 support_HID,scheduler_start_upper_sm_hid
+	jam UPPERSM_RECONN_SDP_CONN,mem_upper_sm_reconn
+	rtn
+scheduler_start_upper_sm_hid:
+	jam UPPERSM_RECONN_HID_CTRL_CONN,mem_upper_sm_reconn
+	rtn
+	
+process_upper_sm:
+	fetch 1,memui_reconnect_mode
+	nbranch process_upper_sm_reconn,blank
+process_upper_sm_remote_page:
+	fetch 1,mem_upper_sm_remote_page
+	//beq UPPERSM_RP_IDLE,process_upper_sm_rp_idle
+	rtn blank
+	//nothing to do when remote page to create a connection.
+	jam 0,mem_upper_sm_remote_page
+process_upper_sm_rp_wait:
+	rtn
+
+
+process_upper_sm_reconn:
+	bpatchx patch37_6,mem_patch37
+	fetch 1,mem_upper_sm_reconn
+	rtn blank
+	beq UPPERSM_RECONN_SDP_CONN,process_upper_sm_reconn_sdp_conn
+	beq UPPERSM_RECONN_SDP_CONN_WAIT,process_upper_sm_reconn_sdp_conn_wait
+	beq UPPERSM_RECONN_SDP_CFG,process_upper_sm_reconn_sdp_cfg
+	beq UPPERSM_RECONN_SDP_CFG_WAIT,process_upper_sm_reconn_sdp_cfg_wait
+	beq UPPERSM_RECONN_SS_SPP,process_upper_sm_reconn_ss_spp
+	beq UPPERSM_RECONN_SS_SPP_WAIT,process_upper_sm_reconn_ss_spp_wait
+	beq UPPERSM_RECONN_SDP_DISCONN,process_upper_sm_reconn_sdp_disconn
+	beq UPPERSM_RECONN_SDP_DISCONN_WAIT,process_upper_sm_reconn_sdp_disconn_wait
+	beq UPPERSM_RECONN_HID_CTRL_CONN,process_upper_sm_reconn_hid_ctrl_conn
+	beq UPPERSM_RECONN_HID_CTRL_CONN_WAIT,process_upper_sm_reconn_hid_ctrl_conn_wait
+	beq UPPERSM_RECONN_HID_CTRL_CFG,process_upper_sm_reconn_hid_ctrl_cfg
+	beq UPPERSM_RECONN_HID_CTRL_CFG_WAIT,process_upper_sm_reconn_hid_ctrl_cfg_wait
+	beq UPPERSM_RECONN_HID_INT_CONN,process_upper_sm_reconn_hid_int_conn
+	beq UPPERSM_RECONN_HID_INT_CONN_WAIT,process_upper_sm_reconn_hid_int_conn_wait
+	beq UPPERSM_RECONN_HID_INT_CFG,process_upper_sm_reconn_hid_int_cfg
+	beq UPPERSM_RECONN_HID_INT_CFG_WAIT,process_upper_sm_reconn_hid_int_cfg_wait
+	beq UPPERSM_RECONN_RFCOMM_CONN,process_upper_sm_reconn_rfcomm_conn
+	beq UPPERSM_RECONN_RFCOMM_CONN_WAIT,process_upper_sm_reconn_rfcomm_conn_wait
+	beq UPPERSM_RECONN_RFCOMM_CFG,process_upper_sm_reconn_rfcomm_cfg
+	beq UPPERSM_RECONN_RFCOMM_CFG_WAIT,process_upper_sm_reconn_rfcomm_cfg_wait
+	beq UPPERSM_RECONN_RFCOMM_SABM,process_upper_sm_reconn_rfcomm_sabm
+	beq UPPERSM_RECONN_RFCOMM_SABM_WAIT,process_upper_sm_reconn_rfcomm_sabm_wait
+	beq UPPERSM_RECONN_SPP_CMD_PN,process_upper_sm_reconn_spp_cmd_pn
+	beq UPPERSM_RECONN_SPP_CMD_PN_WAIT,process_upper_sm_reconn_spp_cmd_pn_wait
+	beq UPPERSM_RECONN_SPP_SABM,process_upper_sm_reconn_spp_sabm
+	beq UPPERSM_RECONN_SPP_SABM_WAIT,process_upper_sm_reconn_spp_sabm_wait
+	beq UPPERSM_RECONN_SPP_CMD_MS,process_upper_sm_reconn_spp_cmd_ms
+	beq UPPERSM_RECONN_SPP_CMD_MS_WAIT,process_upper_sm_reconn_spp_cmd_ms_wait
+process_upper_sm_reconn_wait:
+	rtn
+process_upper_sm_reconn_sdp_conn:
+	call upper_sm_send_sdp_conn //return n-user if sending failed
+	jam UPPERSM_RECONN_SDP_CONN_WAIT,mem_upper_sm_reconn
+	fetch 1,mem_sdp_state
+	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
+	store 1,mem_sdp_state
+	rtn
+process_upper_sm_reconn_sdp_cfg:
+	jam UPPERSM_RECONN_SDP_CFG_WAIT,mem_upper_sm_reconn
+	fetch 1,mem_sdp_state
+	rtnbit1 L2CAP_CHANNEL_STATE_SND_CFG_REQ
+	jam UPPERSM_RECONN_SDP_CFG,mem_upper_sm_reconn
+	call upper_sm_send_sdp_cfg //return n-user if sending failed
+	jam UPPERSM_RECONN_SDP_CFG_WAIT,mem_upper_sm_reconn
+	fetch 1,mem_sdp_state
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
+	store 1,mem_sdp_state
+	rtn
+process_upper_sm_reconn_ss_spp:
+	call l2cap_malloc_is_fifo_empty
+	nrtn blank
+	call upper_sm_send_ss_spp
+	jam UPPERSM_RECONN_SS_SPP_WAIT,mem_upper_sm_reconn
+	rtn
+process_upper_sm_reconn_sdp_disconn:
+	call upper_sm_send_sdp_disconn
+	jam UPPERSM_RECONN_SDP_DISCONN_WAIT,mem_upper_sm_reconn
+	rtn
+process_upper_sm_reconn_hid_ctrl_conn:
+	call upper_sm_send_hid_ctrl_conn
+	jam UPPERSM_RECONN_HID_CTRL_CONN_WAIT,mem_upper_sm_reconn
+	fetch 1,mem_hid_control_state
+	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
+	store 1,mem_hid_control_state
+	rtn
+process_upper_sm_reconn_hid_ctrl_cfg:    
+	call upper_sm_send_hid_ctrl_cfg
+	jam UPPERSM_RECONN_HID_CTRL_CFG_WAIT,mem_upper_sm_reconn
+	fetch 1,mem_hid_control_state
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
+	store 1,mem_hid_control_state
+	rtn
+process_upper_sm_reconn_hid_int_conn:
+	call upper_sm_send_hid_int_conn
+	jam UPPERSM_RECONN_HID_INT_CONN_WAIT,mem_upper_sm_reconn
+	fetch 1,mem_hid_interrupt_state
+	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
+	store 1,mem_hid_interrupt_state
+	rtn
+process_upper_sm_reconn_hid_int_cfg:    
+	call upper_sm_send_hid_int_cfg
+	jam UPPERSM_RECONN_HID_INT_CFG_WAIT,mem_upper_sm_reconn
+	fetch 1,mem_hid_interrupt_state
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
+	store 1,mem_hid_interrupt_state
+	rtn
+process_upper_sm_reconn_rfcomm_conn:
+	call upper_sm_send_rfcomm_conn
+	jam UPPERSM_RECONN_RFCOMM_CONN_WAIT,mem_upper_sm_reconn
+	fetch 1,mem_rfcomm_state
+	set1 L2CAP_CHANNEL_STATE_CONN_REQ,pdata
+	store 1,mem_rfcomm_state
+	rtn
+process_upper_sm_reconn_rfcomm_cfg: 
+	call upper_sm_send_rfcomm_cfg
+	jam UPPERSM_RECONN_RFCOMM_CFG_WAIT,mem_upper_sm_reconn
+	fetch 1,mem_rfcomm_state
+	set1 L2CAP_CHANNEL_STATE_SND_CFG_REQ,pdata
+	store 1,mem_rfcomm_state
+	rtn
+process_upper_sm_reconn_rfcomm_sabm:
+	call upper_sm_send_rfcomm_sabm
+	jam UPPERSM_RECONN_RFCOMM_SABM_WAIT,mem_upper_sm_reconn
+	fetch 1,mem_rfcomm_state
+	set1 L2CAP_CHANNEL_RFCOMM_ONLY_SABM,pdata
+	store 1,mem_rfcomm_state
+	rtn
+process_upper_sm_reconn_spp_cmd_pn: 
+	call upper_sm_send_spp_cmd_pn
+	fetch 1,mem_spp_state
+	set1 RFCOMM_CHANNEL_STATE_PN_CMD
+	store 1,mem_spp_state
+	jam UPPERSM_RECONN_SPP_CMD_PN_WAIT,mem_upper_sm_reconn
+	rtn
+process_upper_sm_reconn_spp_sabm:   
+	call upper_sm_send_spp_sabm
+	fetch 1,mem_spp_state
+	set1 RFCOMM_CHANNEL_STATE_SABM
+	store 1,mem_spp_state
+	jam UPPERSM_RECONN_SPP_SABM_WAIT,mem_upper_sm_reconn
+	fetch 1,mem_remote_spp_channel //address in pdata
+	lshift3 pdata,pdata
+	or_into 3,pdata
+	arg mem_HIUfcs_SPP,temp // mem_HIUfcs_spp_WCredits in regB++
+	storet 2,mem_contw_temp
+	branch rfcomm_save_FCS_uih
+process_upper_sm_reconn_spp_cmd_ms: 
+	call upper_sm_send_spp_cmd_ms
+	fetch 1,mem_spp_state
+	set1 RFCOMM_CHANNEL_STATE_SND_MS_CMD
+	store 1,mem_spp_state
+	jam UPPERSM_RECONN_SPP_CMD_MS_WAIT,mem_upper_sm_reconn
+	rtn
+
+process_upper_sm_reconn_sdp_conn_wait:
+	fetch 1,mem_sdp_state
+	rtnbit0 L2CAP_CHANNEL_STATE_CONN_RES
+	jam UPPERSM_RECONN_SDP_CFG,mem_upper_sm_reconn
+	branch process_upper_sm_reconn
+process_upper_sm_reconn_sdp_cfg_wait:
+	fetch 1,mem_sdp_state
+	rtnne L2CAP_CHANNEL_SETUP_COMPLETE
+	jam UPPERSM_RECONN_SS_SPP ,mem_upper_sm_reconn
+process_upper_sm_reconn_ss_spp_wait:
+	fetch 1,mem_message_to_uppersm
+	rtnne RECIEVE_SS_REASULT_HF
+	jam 0,mem_message_to_uppersm
+	jam UPPERSM_RECONN_SDP_DISCONN,mem_upper_sm_reconn
+	branch process_upper_sm_reconn
+process_upper_sm_reconn_sdp_disconn_wait:
+	fetch 1,mem_sdp_state
+	nrtn blank
+	fetch 1,mem_UI_profile_supported
+	bbit1 support_HID,process_upper_sm_reconn_setup_hid
+	bbit1 support_SPP,process_upper_sm_reconn_setup_rfcomm
+	branch process_upper_sm_reconn_termination
+process_upper_sm_reconn_hid_ctrl_conn_wait:
+	fetch 1,mem_hid_control_state
+	rtnbit0 L2CAP_CHANNEL_STATE_CONN_RES
+	jam UPPERSM_RECONN_HID_CTRL_CFG,mem_upper_sm_reconn
+	branch process_upper_sm_reconn
+process_upper_sm_reconn_hid_ctrl_cfg_wait:
+	fetch 1,mem_hid_control_state
+	rtnne L2CAP_CHANNEL_SETUP_COMPLETE
+	jam UPPERSM_RECONN_HID_INT_CONN,mem_upper_sm_reconn
+	branch process_upper_sm_reconn
+process_upper_sm_reconn_hid_int_conn_wait:  
+	fetch 1,mem_hid_interrupt_state
+	rtnbit0 L2CAP_CHANNEL_STATE_CONN_RES
+	jam UPPERSM_RECONN_HID_INT_CFG,mem_upper_sm_reconn
+	branch process_upper_sm_reconn
+process_upper_sm_reconn_hid_int_cfg_wait:  
+	fetch 1,mem_hid_interrupt_state
+	rtnne L2CAP_CHANNEL_SETUP_COMPLETE
+	fetch 1,mem_UI_profile_supported
+	bbit1 support_SPP,process_upper_sm_reconn_setup_rfcomm
+	branch process_upper_sm_reconn_termination
+process_upper_sm_reconn_rfcomm_conn_wait: 
+	fetch 1,mem_rfcomm_state
+	rtnbit0 L2CAP_CHANNEL_STATE_CONN_RES
+	jam UPPERSM_RECONN_RFCOMM_CFG,mem_upper_sm_reconn
+	branch process_upper_sm_reconn
+process_upper_sm_reconn_rfcomm_cfg_wait:
+	fetch 1,mem_rfcomm_state
+	rtnne L2CAP_CHANNEL_SETUP_COMPLETE
+	jam UPPERSM_RECONN_RFCOMM_SABM,mem_upper_sm_reconn
+	branch process_upper_sm_reconn
+process_upper_sm_reconn_rfcomm_sabm_wait:  
+	fetch 1,mem_rfcomm_state
+	rtnne L2CAP_CHANNEL_RFCOMM_DLCI0_OPENED
+	fetch 1,mem_UI_profile_supported
+	bbit1 support_SPP,process_upper_sm_reconn_setup_spp
+	branch process_upper_sm_reconn_termination
+process_upper_sm_reconn_spp_cmd_pn_wait:
+	fetch 1,mem_spp_state
+	rtnbit0 RFCOMM_CHANNEL_STATE_PN_RES
+	jam UPPERSM_RECONN_SPP_SABM,mem_upper_sm_reconn
+	branch process_upper_sm_reconn
+process_upper_sm_reconn_spp_sabm_wait:
+	fetch 1,mem_spp_state
+	rtnbit0 RFCOMM_CHANNEL_STATE_UA
+	jam UPPERSM_RECONN_SPP_CMD_MS ,mem_upper_sm_reconn
+	branch process_upper_sm_reconn
+process_upper_sm_reconn_spp_cmd_ms_wait: 
+	fetch 1,mem_spp_state
+	rtnne RFCOMM_CHANNEL_SETUP_COMPLETE
+	branch process_upper_sm_reconn_termination
+
+process_upper_sm_reconn_setup_hid:
+	jam UPPERSM_RECONN_HID_CTRL_CONN,mem_upper_sm_reconn
+	branch process_upper_sm_reconn
+
+process_upper_sm_reconn_setup_rfcomm:
+	jam UPPERSM_RECONN_RFCOMM_CONN,mem_upper_sm_reconn
+	branch process_upper_sm_reconn
+process_upper_sm_reconn_setup_spp:
+	jam UPPERSM_RECONN_SPP_CMD_PN,mem_upper_sm_reconn
+	branch process_upper_sm_reconn
+
+
+
+process_upper_sm_reconn_termination:
+	jam 0,mem_upper_sm_reconn
+	rtn
+upper_sm_send_sdp_conn:
+	bpatchx patch37_7,mem_patch37
+	call l2cap_malloc_signal_channel
+	setarg PSM_SDP
+	copy pdata,temp
+	setarg L2CAP_SDP_channel
+	copy pdata,timeup
+	branch ML2CAP_send_signal_connect_req
+	
+upper_sm_send_sdp_cfg:
+	bpatchx patch38_0,mem_patch38
+	call l2cap_malloc_signal_channel
+	fetch 2,mem_SDP_remote_CID
+	copy pdata,temp
+	branch ML2CAP_send_signal_config_req
+	
+upper_sm_send_sdp_disconn:
+	bpatchx patch38_1,mem_patch38
+	call l2cap_malloc_signal_channel
+	fetch 2,mem_SDP_remote_CID
+	copy pdata,temp
+	arg L2CAP_SDP_channel,timeup
+	call ML2CAP_send_signal_disconn_req
+	fetch 1,mem_sdp_state
+	set0 L2CAP_CHANNEL_STATE_RCV_CFG_RES ,pdata
+	store 1,mem_sdp_state
+	rtn
+//service search
+upper_sm_send_ss_spp:
+	bpatchx patch38_2,mem_patch38
+	call l2cap_malloc_sdp_channel
+	call sdp_send_spp_request
+	branch MSDP_send_req_done
+
+upper_sm_send_rfcomm_conn:
+	bpatchx patch38_3,mem_patch38
+	call l2cap_malloc_signal_channel
+	setarg PSM_RFCOMM
+	copy pdata,temp
+	setarg L2CAP_RFCOMM_channel
+	copy pdata,timeup
+	branch ML2CAP_send_signal_connect_req
+
+upper_sm_send_rfcomm_cfg:
+	bpatchx patch38_4,mem_patch38
+	call l2cap_malloc_signal_channel
+	fetch 2,mem_rfcomm_remote_cid
+	copy pdata,temp
+	branch ML2CAP_send_signal_config_req
+
+upper_sm_send_hid_ctrl_conn:
+	bpatchx patch38_5,mem_patch38
+	call l2cap_malloc_signal_channel
+	setarg PSM_HID_control
+	copy pdata,temp
+	setarg L2CAP_HID_Control_channel
+	copy pdata,timeup
+	branch ML2CAP_send_signal_connect_req
+
+upper_sm_send_hid_ctrl_cfg:
+	bpatchx patch38_6,mem_patch38
+	call l2cap_malloc_signal_channel
+	fetch 2,mem_hid_ctrl_remote_cid
+	copy pdata,temp
+	branch ML2CAP_send_signal_config_req
+
+upper_sm_send_hid_int_conn:
+	bpatchx patch38_7,mem_patch38
+	call l2cap_malloc_signal_channel
+	setarg PSM_HID_interrupt
+	copy pdata,temp
+	setarg L2CAP_HID_interrupt_channel
+	copy pdata,timeup
+	branch ML2CAP_send_signal_connect_req
+	
+upper_sm_send_hid_int_cfg:
+	bpatchx patch39_0,mem_patch39
+	call l2cap_malloc_signal_channel
+	fetch 2,mem_hid_int_remote_cid
+	copy pdata,temp
+	branch ML2CAP_send_signal_config_req
+
+upper_sm_send_rfcomm_sabm:
+	bpatchx patch39_1,mem_patch39
+	call l2cap_malloc_rfcomm_channel
+	//force 3,temp //address
+	jam 3,mem_current_adss
+	jam 0x1c,mem_current_fcs
+	call rfcomm_send_sabm
+	jam 1,mem_rfcomm_initiator
+	rtn
+
+upper_sm_send_spp_cmd_pn:
+	bpatchx patch39_2,mem_patch39
+	call l2cap_malloc_rfcomm_channel
+	fetcht 1,mem_remote_spp_channel
+	call channel_to_dlci
+	storet 1,mem_pn_dlci
+	branch rfcomm_send_param_neg_cmd
+
+upper_sm_send_spp_sabm:
+	bpatchx patch39_3,mem_patch39
+	call l2cap_malloc_rfcomm_channel
+	fetcht 1,mem_pn_dlci
+	call dlci_to_address_cmd
+	call rfcomm_calculate_FCS_sabm //sabm fcs use once only,not need to save
+	store 1,mem_current_fcs
+	fetcht 1,mem_pn_dlci
+	call dlci_to_address_cmd
+	storet 1,mem_current_adss
+	branch rfcomm_send_sabm
+
+upper_sm_send_spp_cmd_ms:
+	bpatchx patch39_4,mem_patch39
+	call l2cap_malloc_rfcomm_channel
+	fetcht 1,mem_pn_dlci
+	call dlci_to_address_cmd //address in temp
+	branch rfcomm_send_modem_status_cmd
+
+
+
Index: DpiSwitch/program/sdp.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/sdp.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/sdp.prog	(working copy)
@@ -0,0 +1,1206 @@
+/**********************************************************************/
+/* Subroutine: sdp_process                                         */
+/* Process Service Discovery Request                                  */
+/* Called from L2CAP, check PDUID, branch to different req processings*/
+/*                                                                    */  
+/* Input:       mem_L2CAP_Rx_payload                                  */
+/* Output:      mem_SDP_Tx_payload, mem_SDP_Tx_pkt_length	      */
+/*                                                                    */
+/**********************************************************************/     
+sdp_process:
+	bpatchx patch39_5,mem_patch39
+	fetch 2,mem_l2cap_payload_ptr
+	iforce contr
+//	ifetchr regb,1,contr				/* PDUID */
+//	storer regb,1,mem_sdp_pduid
+	ifetch 1,contr
+	copy pdata,regb
+	store 1,mem_sdp_pduid
+	ifetch 2,contr
+	store 2,mem_sdp_transactionid			/* save transaction id */
+	ifetch 1,contr				/* higher byte of parameter length */
+	lshift8 pdata,timeup				
+	ifetch 1,contr				/* lower byte of parameter length */
+	iadd timeup,timeup				/* parameter length stored in "timeup" */
+	bpatchx patch39_6,mem_patch39
+	copy contr,temp
+	arg 4,loopcnt
+	arg mem_sdp_handle_list,contw
+	call memset0
+	copy temp,contr 
+	deposit regb						/* PDUID  */
+	beq SDP_ERROR_RES,sdp_process_error_res
+	beq SDP_SEARCH_REQ,sdp_process_ss_req
+	beq SDP_SEARCH_RES,sdp_process_ss_res
+	beq SDP_ATTRIBUTE_REQ,sdp_process_sa_req
+	beq SDP_ATTRIBUTE_RES,sdp_process_sa_res
+	beq SDP_SEARCHATTRIB_REQ,sdp_process_ssa_req
+	beq SDP_SEARCHATTRIB_RES,sdp_process_ssa_res
+	branch sdp_insufficient_resource
+
+/**********************************************************************/
+/* ss_req			                              */
+/* Processing Service Search Request                                  */
+/* Call: ask_serviceclassid, empty_response                     */
+/*                                                                    */  
+/* Input:       mem_L2CAP_Rx_payload pointer in contr                 */
+/* Output:      mem_SDP_Tx_payload, mem_SDP_Tx_pkt_length	      */
+/*                                                                    */
+/**********************************************************************/     
+sdp_process_ss_req:
+	bpatchx patch39_7,mem_patch39
+	call ask_serviceclassid
+	compare 1,temp,0xff
+	branch ss_empty_rsp,true
+	compare 0xff,temp,0xff
+	branch sdp_invalid_request_syntax,true
+
+	ifetch 2,contr				/* max aservice record count */
+	store 2,mem_sdp_record_maxcnt
+	increase -2,timeup
+
+	increase -1,timeup				/* continuation state 1 byte (0) */
+	nbranch sdp_invalid_pdu_size,zero		/* invalid pdu size */
+	arg mem_sdp_uuid_search_ptr,timeup
+	ifetch 2,timeup
+	rtn blank
+	call search_all_uuid
+	call l2cap_get_sdp_tx_payload			/* put the pointer to Tx buffer  */
+	force 3,pdata						/* PDUID 3, Service Search Response */
+	istore 1,contw
+	fetch 2,mem_sdp_transactionid			/* write transaction id */
+	istore 2,contw
+	lshift2 queue,pdata
+	add pdata,5,pdata
+	add pdata,5,regc
+	byteswap pdata,pdata
+	istore 2,contw							/* write parLength */
+	deposit queue
+	byteswap pdata,pdata
+	istore 2,contw							/* write TotSrvRecCount */
+	istore 2,contw							/* write CurSrvRecCount */
+	arg mem_sdp_handle_list,contr
+	copy queue,loopcnt
+	branch ss_req_blank,zero
+ss_req_loop:	
+	ifetch 4,contr
+	istore 4,contw
+	loop ss_req_loop
+ss_req_blank:	
+	force 0,pdata
+	istore 1,contw							/* continuation state */
+	deposit regc
+	store 2,mem_sdp_tx_pkt_length
+//	branch assert,blank
+	rtn
+
+/**********************************************************************/
+/* sa_req			                              */
+/* Processing Service Attribute Request                               */
+/* Call: ask_attributeid, empty_response (if 3 stored attr.     */
+/* not asked) or answer_attributelist                              */  
+/* Input:       mem_L2CAP_Rx_payload pointer in contr                 */
+/* Output:      mem_SDP_Tx_payload, mem_SDP_Tx_pkt_length	      */
+/*                                                                    */
+/**********************************************************************/     
+sdp_process_sa_req:
+	bpatchx patch3a_0,mem_patch3a
+	ifetch 4,contr				/* service record handle */
+	store 4,mem_sdp_record_handle	 
+	increase -4,timeup
+	call sdp_store_maxbyte
+	store 2,mem_sdp_attribute_maxbyte
+	increase -2,timeup
+	call dataelementtype6		/* result: data size stored in rega */
+	branch sdp_invalid_request_syntax,zero
+	compare 5,rega,0xff  // length
+	//branch sa_req_all,true
+	branch sa_judge_wholerange,true
+sa_isnot_wholerange:
+	arg mem_sdp_attrib_list,contw
+	force 0,queue
+	branch sa_req_loop
+sa_judge_wholerange:
+	ifetch 1,contr
+	bne SDP_ATTRIBUTE_RANGE,sdp_invalid_request_syntax
+	ifetch 2,contr
+	nbranch sa_judge_wholerange_false1,blank
+	ifetch 1,contr
+	bne 0xff,sa_judge_wholerange_false2
+	ifetch 1,contr
+	bne 0xff,sa_judge_wholerange_false3		//also exist potential bug because mem_sdp_attrib_list length is only 7f
+	branch sa_req_all
+sa_judge_wholerange_false3:
+	increase -5,contr
+	branch sa_isnot_wholerange
+sa_judge_wholerange_false2:
+	increase -4,contr
+	branch sa_isnot_wholerange
+sa_judge_wholerange_false1:
+	increase -3,contr
+	branch sa_isnot_wholerange
+sa_req_loop:	
+	ifetch 1,contr
+	beq SDP_ATTRIBUTE_ID, sa_req_one_id
+	beq SDP_ATTRIBUTE_RANGE, sa_req_range
+sa_req_range:
+	ifetch 2, contr
+	istore 2, contw
+	increase 1,queue
+	byteswap pdata,regb
+	ifetch 2, contr
+	byteswap pdata,pdata
+sa_req_range_id_increase:	
+	increase 1, regb
+	isub regb, null
+	nbranch sa_req_range_id_finish,positive
+	copy pdata, regc
+	byteswap regb,pdata
+	istore 2, contw
+	increase 1,queue
+	copy regc, pdata
+	branch sa_req_range_id_increase
+sa_req_range_id_finish:
+	increase -5,timeup
+	increase -5,rega
+	branch sa_req_check_next_id
+sa_req_one_id:
+	ifetch 2,contr
+	istore 2,contw //save the attribute id in mem_sdp_attrib_list
+	increase 1,queue
+	increase -3,timeup
+	increase -3,rega
+sa_req_check_next_id:	
+	nbranch sdp_invalid_request_syntax,positive
+	nbranch sa_req_loop,zero //another attribute 
+	increase -1,timeup
+	nbranch sdp_invalid_request_syntax,zero
+	
+	call l2cap_get_sdp_tx_payload
+	increase 10,contw
+	arg mem_sdp_attrib_list,rega
+sa_req_handle_attributelist_next:
+	copy queue,pdata
+	branch sa_req_handle_attributelist_end,blank
+	ifetch 2,rega
+	branch sa_req_handle_attributelist_end,blank
+	iforce regb /* regb is the attribute ID */
+	fetch 4,mem_sdp_record_handle	
+	iforce temp
+	call search_handle_attrib
+	copy contr,pdata
+	branch sa_req_handle_attributelist_notfound,blank
+	increase -3,contr
+	ifetch 3,contr
+	istore 3,contw
+	call sdp_data_len
+	iforce loopcnt	
+	call memcpy
+sa_req_handle_attributelist_notfound:
+	increase 2,rega
+	increase -1, queue
+	branch sa_req_handle_attributelist_next
+
+sa_req_handle_attributelist_end:	
+	arg SDP_ATTRIBUTE_RES,rega
+	call ssa_req_range_lastfreg_common
+	fetch 2,mem_sdp_tx_pkt_length	
+	beq 11,sa_empty_rsp
+	branch  ssa_req_range_attrbutes_length_no_continue
+
+
+sdp_store_continue_common:
+	ifetch 1, contr
+	beq 0, sdp_store_continue_0byte
+	beq 1,sdp_store_continue_1byte
+	beq 2, sdp_store_continue_2byte
+sdp_store_continue_0byte:	
+	increase -1,timeup				/* continuation state byte (0) */
+	branch sdp_store_continue_end
+sdp_store_continue_1byte:
+	ifetch 1, contr
+	increase -2,timeup				/* continuation state byte (1) */
+	branch sdp_store_continue_end
+sdp_store_continue_2byte:
+	ifetch 2, contr
+	byteswap pdata,pdata
+	increase -3,timeup				/* continuation state byte (2) */
+sdp_store_continue_end:
+	store 2, mem_sdp_continue_byte	
+	rtn
+	
+sa_req_all:	
+	increase -5,timeup
+	call sdp_store_continue_common
+	nbranch sdp_invalid_pdu_size,zero
+	fetcht 4,mem_sdp_record_handle		
+	call search_handle
+	nbranch sdp_invalid_service_record_handle,zero
+	copy contr,rega
+	call l2cap_get_sdp_tx_payload
+	copy rega,contr
+	increase 3,contw//arg mem_SDP_Tx_payload+3,contw
+	copy contr,timeup //sdp start pointer
+	call sdp_get_data
+	copy pdata, rega //sdp total length
+//	fetchr regb,2,mem_sdp_continue_byte
+	fetch 2,mem_sdp_continue_byte
+	copy pdata,regb
+	copy rega,pdata
+	isub regb,regb //total_length - continue_byte in regb
+	fetch 2, mem_sdp_attribute_maxbyte
+	isub regb, null
+	nbranch sa_req_all_fragment_sdp, positive
+	// the last fragment
+	disable user
+	fetch 2, mem_sdp_continue_byte
+	branch sa_req_all_fisrt_fragment,blank
+	iadd timeup, contr //set the read pointer
+	increase 3,regb //include the total length field, 3 bytes
+	copy regb, loopcnt
+	copy loopcnt, pdata
+	increase 3, pdata
+	byteswap pdata,pdata
+	istore 2, contw
+	copy loopcnt, pdata
+	byteswap pdata,pdata
+	istore 2, contw
+	branch sa_req_all_answer_attributelist_full_loop
+sa_req_all_fisrt_fragment:
+	add rega,6,loopcnt
+	branch sa_req_all_parlength_continue_byte, user
+	byteswap loopcnt,pdata
+	branch sa_req_all_parlength_continue_byte_end
+sa_req_all_parlength_continue_byte:
+	copy loopcnt, pdata
+	increase 2, pdata
+	byteswap pdata,pdata
+sa_req_all_parlength_continue_byte_end:
+	istore 2,contw				/* ParLength */
+	increase -3,loopcnt
+	byteswap loopcnt,pdata			
+	istore 2,contw				/* AttrListByteCount */
+	copy timeup,contr
+	branch sa_req_all_answer_attributelist_full_loop
+sa_req_all_fragment_sdp:
+	enable user
+//	fetchr rega,2,mem_sdp_attribute_maxbyte
+	fetch 2,mem_sdp_attribute_maxbyte
+	copy pdata,rega
+	copy rega,loopcnt
+	fetch 2, mem_sdp_continue_byte
+	branch sa_req_all_fisrt_fragment,blank
+	iadd timeup, contr
+	copy rega,pdata
+	increase 5,pdata
+	byteswap pdata,pdata	
+	istore 2, contw
+	copy rega,pdata
+	byteswap pdata,pdata
+	istore 2, contw
+sa_req_all_answer_attributelist_full_loop:
+	call memcpy
+	nbranch sa_req_all_last_frag_continue, user
+	force 2,pdata
+	istore 1,contw
+	copy contr, pdata
+	isub timeup, pdata
+	byteswap pdata,pdata
+	istore 2, contw   // continuation length
+	branch sa_req_all_frag_end
+sa_req_all_last_frag_continue:
+	force 0,pdata
+	istore 1,contw
+sa_req_all_frag_end:	
+	arg SDP_ATTRIBUTE_RES,rega
+	branch ssa_req_range_common	
+	
+/**********************************************************************/
+/* ssa_req                          		      */
+/* Processing Service Search Attribute Request                        */
+/* Call: ask_serviceclassid, ask_attributeid, empty_response */
+/*       or answer_attributelist                                   */  
+/* Input:       contr                                                 */
+/* Output:      mem_SDP_Tx_payload, mem_SDP_Tx_pkt_length             */
+/*                                                                    */
+/**********************************************************************/     
+sdp_process_ssa_req:
+	bpatchx patch3a_1,mem_patch3a
+	call ask_serviceclassid
+	compare 0xff,temp,0xff
+	branch sdp_invalid_request_syntax,true
+	call sdp_store_maxbyte
+	store 2,mem_sdp_attribute_maxbyte
+	increase -2,timeup
+	call dataelementtype6
+	arg mem_sdp_attrib_list,contw
+	force 0,queue
+ssa_req_loop:	
+	ifetch 1,contr 
+	beq SDP_ATTRIBUTE_RANGE,ssa_req_range
+	ifetch 2,contr 
+	istore 2,contw //save the attribute id in mem_sdp_attrib_list
+	increase 1,queue
+	increase -3,timeup
+	increase -3,rega
+	nbranch sdp_invalid_request_syntax,positive
+	nbranch ssa_req_loop,zero
+	increase -1,timeup
+	nbranch sdp_invalid_request_syntax,zero
+	call l2cap_get_sdp_tx_payload
+	increase 13,contw//arg mem_SDP_Tx_payload+13,contw
+	fetch 2,mem_sdp_uuid_search_ptr
+	iforce regc
+	arg mem_sdp_attrib_list,rega
+ssa_req_attributelist_next:	
+	ifetch 2,rega
+	branch ssa_req_attributelist_end,blank
+	iforce regb						/* regb is the attribute ID */
+	call search_attrib
+	branch ssa_req_attributelist_notfound,blank
+	increase -3,contr
+	ifetch 3,contr
+	istore 3,contw
+	call sdp_data_len
+	iforce loopcnt	
+  	call memcpy
+ssa_req_attributelist_notfound:
+	increase 2,rega
+	branch ssa_req_attributelist_next
+
+ssa_req_attributelist_end:
+	call ssa_req_range_lastfreg
+	fetch 2,mem_sdp_tx_pkt_length	
+	beq 14,ssa_empty_rsp
+	call ssa_req_range_attrbutes_length_no_continue
+	branch ssa_req_range_attrbutes_length_no_continue
+
+
+sdp_store_maxbyte:	
+	ifetch 2,contr				 
+	byteswap pdata,pdata
+	increase -3,pdata	
+	arg 200,temp
+	isub temp,null
+	nrtn positive
+	setarg 200
+	rtn
+	
+
+ssa_req_range:
+	increase 4,contr
+	increase -5,timeup
+	increase -5,rega
+	nbranch sdp_invalid_request_syntax,zero
+	call 	sdp_store_continue_common
+	nbranch sdp_invalid_pdu_size,zero
+	arg mem_sdp_uuid_search_ptr,timeup
+	call search_all_uuid  
+	deposit queue
+	branch ssa_empty_rsp,blank
+	store 1,mem_handle_humber
+//	storer regb,2,mem_sdp_all_length
+	copy regb,pdata
+	store 2,mem_sdp_all_length
+	arg 0,queue
+	arg 0,rega
+	call l2cap_get_sdp_tx_payload
+	increase 10,contw 
+ssa_req_range_find_handle:
+	call ssa_req_range_get_length	
+	nbranch assert,user
+	copy contr,timeup
+	copy pdata,regc
+	iadd rega,rega
+//	copy pdata,rega 
+//	fetch 2,mem_sdp_all_length
+	fetch 2,mem_sdp_continue_byte
+	copy pdata,regb
+	branch ssa_req_range_first_freg,blank
+ssa_req_range_later_freg_with_continue:
+	copy rega,pdata
+	isub regb,regb //total_length - continue_byte in rega
+	branch ssa_req_range_next_handle,zero
+	nbranch ssa_req_range_next_handle,positive
+	fetch 2, mem_sdp_attribute_maxbyte
+	isub regb, null
+	branch ssa_req_range_maxbyte_with_continue,zero
+	nbranch ssa_req_range_maxbyte_with_continue, positive  
+	
+ // data length < =maxbyte 
+ssa_req_range_send_not_maxbyte:
+ 	copy regb,loopcnt
+	call ssa_req_range_maxbyte_with_continue_cpy
+ 	fetch 1,mem_handle_humber
+	increase 1,queue
+	isub queue,null
+	branch ssa_req_range_lastfreg,zero
+	branch ssa_req_range_freg_with_continue
+	
+ssa_req_range_maxbyte_with_continue:
+ 	copy pdata,loopcnt
+ 	call ssa_req_range_maxbyte_with_continue_cpy
+ 	branch ssa_req_range_freg_with_continue
+ 	
+ssa_req_range_maxbyte_with_continue_cpy:
+	increase -3,contw   
+	copy loopcnt,temp
+ 	copy regc,pdata
+	isub regb,pdata
+	iadd timeup,contr
+ 	branch memcpy
+
+ssa_req_range_next_handle:
+	fetch 1,mem_handle_humber
+	increase 1,queue
+	isub queue,null
+	rtn zero //
+	branch ssa_req_range_find_handle
+
+ssa_req_range_get_length:	
+	call disable_user
+	arg mem_sdp_handle_list,contr
+	lshift2 queue,pdata
+	iadd contr,contr
+	ifetcht 4, contr
+	call search_handle
+	nrtn zero
+	call sdp_data_len
+	branch enable_user
+
+ssa_req_range_first_freg:
+	fetch 2, mem_sdp_attribute_maxbyte
+	isub rega, null
+	nbranch ssa_req_range_firstfreg_maxbyte_with_continue,positive
+	copy rega,loopcnt
+	copy loopcnt,temp
+	copy timeup,contr
+	call memcpy
+	fetch 2,mem_sdp_all_length
+	isub rega,null
+	branch ssa_req_range_freg_no_continue,zero
+ssa_req_range_firstfreg_not_maxbyte_with_continue:
+	call ssa_req_range_freg_with_continue
+	branch ssa_req_range_attrbutes_length
+	
+ssa_req_range_freg_no_continue:
+	call ssa_req_range_lastfreg
+	branch ssa_req_range_attrbutes_length
+	
+ssa_req_range_lastfreg:
+	arg SDP_SEARCHATTRIB_RES,rega  //PUD ID
+ssa_req_range_lastfreg_common:
+	force 0,pdata
+	istore 1,contw
+	call ssa_req_range_common
+	fetcht 2,mem_sdp_tx_pkt_length
+	increase -5,temp
+	byteswap temp,pdata
+	istore 2, contw
+	increase -3,temp
+	byteswap temp,pdata
+	istore 2, contw  //attribute length
+	rtn
+
+ssa_req_range_firstfreg_maxbyte_with_continue:
+	copy pdata,loopcnt
+	copy loopcnt,temp
+	copy timeup,contr
+	call memcpy
+	call ssa_req_range_freg_with_continue
+ssa_req_range_attrbutes_length:	
+	setarg 0x36
+	istore 1,contw
+	fetch 2,mem_sdp_all_length
+	byteswap pdata,pdata
+	istore 2, contw 
+	rtn	
+
+ssa_req_range_attrbutes_length_no_continue:	
+	setarg 0x36
+	istore 1,contw
+	increase -3,temp
+	byteswap temp,pdata
+	istore 2, contw 
+	rtn	
+
+ssa_req_range_freg_with_continue:
+	arg SDP_SEARCHATTRIB_RES,rega  //PUD ID
+	setarg 2
+	istore 1,contw	
+	fetch 2,mem_sdp_continue_byte
+	iadd temp,temp
+	byteswap temp,pdata
+	istore 2,contw
+	call ssa_req_range_common
+	fetcht 2,mem_sdp_tx_pkt_length
+	increase -5,temp
+	byteswap temp,pdata
+	istore 2, contw
+	increase -5,temp
+	byteswap temp,pdata
+	istore 2, contw 
+	rtn	
+
+ssa_req_range_common:
+	fetch 2,mem_sdp_tx_payload_ptr
+	isub contw,pdata
+	sub pdata,0,pdata
+	store 2,mem_sdp_tx_pkt_length
+	call l2cap_get_sdp_tx_payload 
+	copy rega,pdata  //PUD ID
+	istore 1,contw
+	fetch 2,mem_sdp_transactionid
+	istore 2,contw
+	rtn
+
+
+
+
+/**********************************************************************/
+/* ssa_res			                      */
+/* Processing Service Search Attribute Response                       */
+/* Call: dataelementtype6, attribute_reading                    */
+/* Input:       contr                                                 */
+/* Output:      mem_sdp_record_handle,mem_sdp_search_failed           */
+/*                                                                    */
+/**********************************************************************/     
+sdp_process_ssa_res:
+sdp_process_ss_res:
+sdp_process_sa_res:
+sdp_process_error_res:
+	rtn
+/*
+sdp_process_ss_res:
+	bpatchx patch3a_2,mem_patch3a
+	ifetch 2,contr
+	ifetch 2,contr
+	byteswap pdata,pdata
+	bne 1,assert
+	ifetch 4,contr
+	store 4,mem_sdp_record_handle
+	fetchr regc,2,mem_sdp_l2capch_ptr
+	add regc,offset_lc_state,regc
+	ifetch 1,regc
+	set1 L2CAP_CHANNEL_STATE_RECV_SEARCH_RES,pdata
+	istore 1,regc
+	rtn
+	
+sdp_process_sa_res:
+	bpatchx patch3a_3,mem_patch3a
+	fetchr regc,2,mem_sdp_l2capch_ptr
+	add regc,offset_lc_state,regc
+	ifetch 1,regc
+	set1 L2CAP_CHANNEL_STATE_RECV_ATTRIB_RES,pdata
+	istore 1,regc
+	copy temp,contr
+	ifetch 2,contr
+	call search_rfcomm_cn
+	store 1,mem_profile_channel	
+	rtn
+*/
+
+				    
+
+sdp_invalid_service_record_handle:		
+	setarg 0x0200
+	store 2,mem_sdp_error_code
+	branch sdp_error_response
+sdp_invalid_pdu_size:				
+	setarg 0x0400
+	store 2,mem_sdp_error_code
+	branch sdp_error_response
+sdp_insufficient_resource:			
+	setarg 0x0600
+	store 2,mem_sdp_error_code
+	branch sdp_error_response
+sdp_invalid_request_syntax:			
+	setarg 0x0300
+	store 2,mem_sdp_error_code
+sdp_error_response:	
+	call l2cap_get_sdp_tx_payload
+	istore 1,contw
+	fetch 2,mem_sdp_transactionid			
+	istore 2,contw
+	setarg 0x0200					
+	istore 2,contw
+	fetch 2,mem_sdp_error_code			
+	istore 2,contw
+	jam  7,mem_sdp_tx_pkt_length
+	rtn
+
+
+//store uuid in mem_sdp_uuid_search_ptr,
+//return temp 0xff if wrong 
+ask_serviceclassid:  
+	arg 0,regb
+	force 0,temp					/* use "temp" to mark syntax error or to mark 128 bit uuid */
+	arg mem_sdp_uuid_search_ptr,contw
+	call dataelementtype6
+	branch asksrv_error,zero
+classidloop:
+	increase 1,regb
+	ifetch 1,contr
+	increase -1,rega
+	increase -1,timeup
+	compare 0x18,pdata,0xf8			/* 5 MSB: b00011: uuid */
+	nbranch asksrv_error,true
+	compare 0x04,pdata,0x07			/* 3 LSB: b100 128 bits uuid */
+	nbranch cmp032,true
+	force 1,temp					/* mark it as 128 bit uuid */
+skip2bytes:
+	ifetch 1,contr
+	increase -1,rega	
+	increase -1,timeup
+	bne 0x00, frstbwrong
+	ifetch 1,contr
+	increase -1,rega	
+	increase -1,timeup
+	beq 0x00, cmpuuid
+	branch scndbwrong
+frstbwrong:  
+	increase 1,contr
+	increase -1,rega	
+	increase -1,timeup
+scndbwrong:  
+	increase 2,contr				/* skip 2 bytes, first 2 bytes already wrong */
+	increase -2,rega	
+	increase -2,timeup
+	compare 0x00,temp,0xff                        /* 128 bits or 32 bits ? */
+	branch loopornot,true
+	increase 12,contr				/* skip 12 bytes, first 2 bytes already wrong */
+	increase -12,rega	
+	increase -12,timeup
+	branch loopornot
+cmp032:
+	compare 0x02,pdata,0x07			/* 3 LSB: b010 32 bits uuid */
+	nbranch cmp016,true
+	branch skip2bytes			
+cmp016:
+	compare 0x01,pdata,0x07			/* 3 LSB: b001 16 bit uuid */
+	nbranch asksrv_error,true
+cmpuuid:
+	increase -2,rega
+	increase -2,timeup
+	ifetch 2,contr				/* higher order byte */
+	sub regb,4,null
+	branch uuidsize,zero //max store uuids =3 
+	istore 2,contw
+uuidsize:
+	compare 0x00,temp,0xff			/* is this 128 bits uuid */
+	branch loopornot,true
+	copy contr,temp
+	ifetch 1,contr
+	bne 0x00, wrong12b
+	ifetch 1,contr
+	bne 0x00, wrong12b
+	ifetch 1,contr
+	bne 0x10, wrong12b
+	ifetch 1,contr
+	bne 0x00, wrong12b
+	ifetch 1,contr
+	bne 0x80, wrong12b
+	ifetch 1,contr
+	bne 0x00, wrong12b
+	ifetch 1,contr
+	bne 0x00, wrong12b
+	ifetch 1,contr
+	bne 0x80, wrong12b
+	ifetch 1,contr
+	bne 0x5f, wrong12b
+	ifetch 1,contr
+	bne 0x9b, wrong12b
+	ifetch 1,contr
+	bne 0x34, wrong12b
+	ifetch 1,contr
+	beq 0xfb, chck12dn
+wrong12b:
+	copy temp,contr  
+wrong12b1:
+	increase 12,contr				/* skip 12 bytes */
+	force 0x00,queue
+	force 0x00,temp
+	branch chck12dn
+
+chck12dn:
+	increase -12,timeup
+	increase -12,rega
+loopornot:
+	force 0x00,temp
+	compare 0x00,rega,0xff
+	nbranch classidloop,true
+	force 0,pdata
+	istore 2,contw			/* end list with null */
+	rtn
+asksrv_error:
+	arg 0xff,temp
+	rtn
+
+/**********************************************************************/
+/* Subroutine: dataelementtype6                                    */
+/* Parse Data Element Sequence, obtain the data size                  */
+/* Input:  SDP Rx Buf Pointer in contr, parameter count in timeup     */
+/* Output: data length in rega, data pointer in contr             */
+/*         and  parameter count in timeup, return with zero flag set: */
+/*         syntax error                                               */
+/**********************************************************************/     
+dataelementtype6:
+	bpatchx patch3a_4,mem_patch3a
+	ifetch 1,contr
+	increase -1,timeup
+	compare 0x30,pdata,0xf8			/* 5 MSB: b00110: type 6 */
+	nbranch dsize_error,true
+	compare 0x07,pdata,0x07			/* 3 LSB: b111: 32 bits */
+	branch dsize32,true
+	compare 0x06,pdata,0x07			/* 3 LSB: b110: 16 bits */
+	branch dsize16,true
+	compare 0x05,pdata,0x07			/* 3 LSB: b101: 8 bits */
+	nbranch dsize_error,true
+//	ifetchr rega,1,contr				/* data length in reg A */
+	ifetch 1,contr
+	copy pdata,rega
+	increase -1,timeup
+	branch dsize
+dsize32:
+	increase 2,contr				 
+	increase -2,timeup
+dsize16:
+	ifetch 2,contr
+	byteswap pdata,rega
+	increase -2,timeup
+dsize:
+	force 0x01,pdata
+	rtn
+dsize_error:
+	force 0x00,pdata
+	rtn
+
+/**********************************************************************/
+/* Subroutine: sa_empty_rsp                                      */
+/* Send empty response                                                */
+/*                                                                    */
+/* Input:       mem_sdp_pduid, mem_sdp_transactionid                  */
+/* Output:      mem_SDP_Tx_payload, mem_SDP_Tx_pkt_length             */
+/*                                                                    */
+/**********************************************************************/     
+ss_empty_rsp:
+	setarg SDP_SEARCH_RES
+	store 1, mem_sdp_pduid
+	branch empty_response
+sa_empty_rsp:
+	setarg SDP_ATTRIBUTE_RES
+	store 1, mem_sdp_pduid
+	branch empty_response
+ssa_empty_rsp:
+	setarg SDP_SEARCHATTRIB_RES
+	store 1, mem_sdp_pduid
+empty_response:
+	call l2cap_get_sdp_tx_payload			/* empty attribute list */
+//	fetchr regb,1,mem_sdp_pduid				/* PDUID */
+//	istorer regb,1,contw
+	fetch 1,mem_sdp_pduid
+	copy pdata,regb
+	istore 1,contw 
+	fetch 2,mem_sdp_transactionid			/* copy back transaction id */
+	istore 2,contw
+	setarg 0x0500
+	istore 2, contw
+	compare SDP_ATTRIBUTE_RES,regb,0xff			 
+	branch fullsearch,true
+	compare SDP_SEARCHATTRIB_RES,regb,0xff			 
+	branch fullsearch,true
+	setarg 0x000000
+	istore 5,contw
+	branch outempty
+
+fullsearch:					/* pduid must be 5 or 7 */
+	setarg 0x350200
+	istore 5,contw
+outempty:
+	jam 10,mem_sdp_tx_pkt_length
+	rtn
+
+//return length in pdata(whole element ,include header and data ), contr not change
+sdp_data_len:
+	call store_contw
+	call store_contr
+	call sdp_get_data
+	call get_contw
+	call get_contr
+	copy temp,pdata
+	rtn
+
+//return data length in pdata, contr is data pionter,return length in temp(whole element ,include header and data )
+sdp_get_data:
+	ifetch 1,contr
+	and pdata,0x7,loopcnt
+	rshift3 pdata,pdata
+	bne 0,sdp_get_data_type_not0
+sdp_get_data_type0:	
+	force 1,pdata
+	force 1,temp
+	rtn
+	
+sdp_get_data_type_not0_sizeindex01234:
+	call left_shift_n
+	add pdata,1,temp  //add header length
+	rtn
+sdp_get_data_type_not0:
+	deposit loopcnt
+	sub pdata,4,null
+	branch sdp_get_data_type_not0_sizeindex01234,positive
+	beq 5,sdp_get_data_type_not0_sizeindex5
+	beq 6,sdp_get_data_type_not0_sizeindex6
+	beq 7,sdp_get_data_type_not0_sizeindex7
+	rtn
+	
+sdp_get_data_type_not0_sizeindex5:
+	ifetch 1,contr
+	add pdata,2,temp  //add header length
+	rtn
+sdp_get_data_type_not0_sizeindex6:
+	ifetch 2,contr
+	byteswap pdata,pdata
+	add pdata,3,temp  //add header length
+	rtn
+sdp_get_data_type_not0_sizeindex7:
+	ifetch 2,contr	
+	byteswap pdata,pdata
+	ifetcht 2,contr	
+	byteswap temp,temp
+	lshift16 temp,temp
+	iadd temp,pdata
+	add pdata,5,temp  //add header length
+	rtn
+
+/* find with uuids
+input uuids pionter in timeup
+return handles in mem_sdp_handle_list; handles number in queue if found 
+return regb all length*/
+search_all_uuid:
+	bpatchx patch3a_5,mem_patch3a
+	force 0,queue
+	arg 0,regb
+	arg mem_sdp_handle_list,contw
+search_all_uuid_llop:
+	ifetch 2,timeup
+ 	rtn blank
+	call search_uuid
+	copy queue,pdata
+	rtneq SDP_MAX_HANDLE_NUMBER 
+	increase 2,timeup
+ 	branch search_all_uuid_llop
+	
+search_uuid:
+//	arg 0,regb
+	iforce regc
+//	force 0,queue
+	fetch 2, mem_ui_uuid_table
+	iforce contr
+search_uuid_next:
+	copy queue,pdata
+	rtneq SDP_MAX_HANDLE_NUMBER   
+	disable user
+	ifetch 1,contr
+	rtn blank
+	iforce loopcnt
+search_uuid_loop:	
+	ifetch 2,contr
+	isub regc,null
+	nbranch search_uuid_not_found,zero
+	enable user					// uuid match
+search_uuid_not_found:
+	loop search_uuid_loop
+	ifetcht 4,contr					// get handle 
+	copy contr,rega
+	nbranch search_uuid_nomatch,user
+	arg mem_sdp_handle_list,contr
+	arg SDP_MAX_HANDLE_NUMBER,loopcnt 
+search_uuid_check_same_handle:
+	ifetch 4,contr
+	branch search_uuid_store_handle,blank
+	isub temp,null
+	branch search_uuid_nomatch,zero
+	loop search_uuid_check_same_handle
+	rtn 
+search_uuid_store_handle:
+	istoret 4,contw
+	increase 1,queue
+	copy rega,contr
+	call sdp_data_len
+	iadd regb,regb
+	iadd contr,contr		 
+	branch search_uuid_next
+search_uuid_nomatch:	
+	copy rega,contr
+	call sdp_get_data
+	iadd contr,contr			// next paragraph 
+	branch search_uuid_next
+
+/* temp is handle,
+return zero  if found
+return data pointer in contr 
+*/
+search_handle:
+	bpatchx patch3a_6,mem_patch3a
+	fetch 2,mem_ui_uuid_table
+	iforce contr
+search_handle_loop:	
+	ifetch 1,contr
+	branch disable_zero,blank
+	lshift pdata,pdata
+	iadd contr,contr
+	ifetch 4,contr
+	isub temp,null
+	rtn zero
+	deposit contw
+	store 2,mem_contw
+	storet 8,mem_temp
+	call sdp_get_data
+	iadd contr,contr
+	copy contr,pdata
+	fetcht 2,mem_contw
+	copy temp,contw
+	fetcht 8,mem_temp
+	copy pdata,contr
+	branch search_handle_loop
+
+/**
+* input regb and regc.regb is the attribute ID and regc is UUID.
+* set contr if find attribute or 0 if not
+*/
+search_attrib:
+	bpatchx patch3a_7,mem_patch3a
+	fetch 2,mem_ui_uuid_table
+	iforce contr
+search_attrib_next:
+	ifetch 1,contr
+	branch search_attrib_end, blank
+	iforce loopcnt
+search_attrib_loop:	
+	ifetch 2,contr
+	isub regc,null						/* regc is UUID, compare it */
+	branch search_attrib_found_uuid,zero
+	loop search_attrib_loop
+	increase 4,contr
+	call sdp_get_data
+	iadd contr,contr			/* next paragraph */
+	branch search_attrib_next	
+search_attrib_found_uuid:
+	increase -1,loopcnt
+	lshift loopcnt,pdata
+	iadd contr,contr
+	increase 4,contr
+	call sdp_get_data
+	iadd contr,timeup					/* attribute list end */
+search_attrib_loop_attribs:	
+	increase 1,contr
+	ifetch 2,contr
+	isub regb,null
+	//force 0x1,pdata,zero
+//	setflag zero, 0,pdata
+//	copy timeup, timeup
+	branch disable_blank,zero			/* attribute found */
+	call sdp_data_len
+	iadd contr,contr
+	deposit timeup
+	isub contr,null
+	branch search_attrib_end, zero /*attribute end, not found the attribute, return contr = 0*/
+	branch search_attrib_loop_attribs	
+search_attrib_end:
+	force 0,contr
+	force 0,pdata
+	rtn
+	
+
+//search the attribute according the record handle
+//record handle in temp, attribute in regb
+//set the contr to zero if not found
+search_handle_attrib:	
+	bpatchx patch3b_0,mem_patch3b
+	fetch 2,mem_ui_uuid_table
+	iforce contr
+search_handle_attrib_next:
+	ifetch 1,contr
+	branch search_handle_attrib_end, blank
+	lshift pdata,pdata
+	iadd contr, contr
+	ifetch 4,contr
+	isub temp,null						/* regc is UUID, compare it */
+	branch search_handl_attrib_found_handle,zero
+	call sdp_get_data
+	iadd contr,contr			/* next paragraph */
+	branch search_handle_attrib_next	
+search_handl_attrib_found_handle:
+	call sdp_get_data
+	iadd contr,timeup					/* attribute list end */
+search_handle_attrib_loop_attribs:	
+	increase 1,contr
+	ifetch 2,contr
+	isub regb,null
+	rtn zero							/* attribute found */
+	call sdp_data_len
+	iadd contr,contr
+	deposit timeup
+	isub contr,null
+	branch search_handle_attrib_end, zero /*attribute end, not found the attribute, return contr = 0*/
+	branch search_handle_attrib_loop_attribs
+search_handle_attrib_end:
+	force 0,contr
+	rtn	
+
+
+//enable user if find rfcomm channel number, pdata is channel number
+search_rfcomm_cn:
+	arg 0x0400,regb  // attribute protocol edscriptor list
+	call search_handl_attrib_found_handle
+	arg 0x0300,regb  // uuid rfcomm
+	call search_uuid_in_data
+	nrtn user
+	sub rega,3,null
+	branch disable_user,positive
+	ifetch 1,contr
+	bne 0x08,disable_user
+	ifetch 1,contr
+	rtn
+	
+ //input timeup is lenth
+ //input contr is data ptr
+ //return contr is end of uuid; enable user if found uuid
+search_uuid_in_data:
+	bpatchx patch3b_1,mem_patch3b
+	call sdp_get_data
+	copy pdata,rega
+search_uuid_in_data_loop:	
+	ifetch 1,contr
+	and pdata,0x7,loopcnt
+	rshift3 pdata,pdata
+	sub pdata,3,null
+	branch search_uuid_in_data_found_uuid,zero
+	copy loopcnt,pdata
+	beq 5,search_uuid_in_data_found_element_index5
+	beq 6,search_uuid_in_data_found_element_index6
+	beq 7,search_uuid_in_data_found_element_index7
+	increase -1,contr
+	call sdp_get_data
+	iadd contr,contr
+	copy rega,pdata
+	isub temp,rega
+	branch disable_user,zero
+	branch search_uuid_in_data_loop
+	
+search_uuid_in_data_found_element_index5:
+	increase -2,rega
+	increase 1,contr
+	branch search_uuid_in_data_loop
+search_uuid_in_data_found_element_index6:
+	increase -3,rega
+	increase 2,contr
+	branch search_uuid_in_data_loop
+search_uuid_in_data_found_element_index7:
+	increase -5,rega
+	increase 4,contr
+	branch search_uuid_in_data_loop		
+	
+search_uuid_in_data_found_uuid:
+	increase -1,rega
+	copy loopcnt,pdata
+	beq 1,search_uuid_in_data_type_uuid_16
+	beq 2,search_uuid_in_data_type_uuid_32
+	beq 4,search_uuid_in_data_type_uuid_128
+	branch disable_user 
+search_uuid_in_data_type_uuid_128:
+	increase -12,rega
+search_uuid_in_data_type_uuid_32:
+	ifetch 2,contr
+	increase -2,rega
+search_uuid_in_data_type_uuid_16:
+	ifetch 2,contr
+	isub regb,null
+	branch enable_user,zero
+	increase -2,rega
+	branch disable_user,zero
+	branch search_uuid_in_data_loop
+
+/*
+//rega:l2cap len ,mem_search_uuid:uuid to search
+sdp_send_search_req:
+	call l2cap_malloc_sdp_req
+	setarg SDP_SEARCH_REQ
+	istore 1,contw
+	fetch 2,mem_sdp_transactionid_local
+	byteswap pdata,pdata
+	istore 2,contw
+	increase -5,rega
+	byteswap rega,rega
+	//istorer rega,2,contw
+	copy rega,pdata
+	istore 2,contw
+	setarg 0x0335
+	istore 2,contw
+	setarg 0x19
+	istore 1,contw
+	fetch 2,mem_search_uuid
+	istore 2,contw
+	setarg 0x0008
+	istore 2,contw
+	setarg 0
+	istore 1,contw
+	rtn
+
+//rega:l2cap len
+sdp_send_attribute_req:
+	call l2cap_malloc_sdp_req
+	setarg SDP_ATTRIBUTE_REQ
+	istore 1,contw
+	fetch 2,mem_sdp_transactionid_local
+	byteswap pdata,pdata
+	istore 2,contw
+	increase -5,rega
+	byteswap rega,rega
+//	istorer rega,2,contw
+	copy rega,pdata
+	istore 2,contw
+	fetch 4,mem_sdp_record_handle
+	istore 4,contw
+	setarg 0x2c01
+	istore 2,contw
+	setarg 0x0535
+	istore 2,contw
+	setarg 0x0a
+	istore 1,contw
+	setarg 0
+	istore 2,contw
+	setarg -1
+	istore 2,contw
+	setarg 0
+	istore 1,contw
+	rtn
+*/	
+	
+
+sdp_send_spp_request:
+	call l2cap_get_sdp_tx_payload
+	copy pdata,contw
+	setarg 6//Search Attr Req
+	istore 1,contw
+	setarg sdp_tid_spp					
+	istore 2,contw
+	setarg 0x0f00 //length15
+	istore 2,contw
+	setarg 0x1a0535
+	istore 3,contw
+	setarg 0x0111
+	lshift16 pdata,pdata //UUID
+	istore 4,contw
+	setarg 0x2600 //max return len
+	istore 2,contw
+	setarg 0x0335
+	istore 2,contw
+	setarg 0x0009
+	istore 2,contw
+	setarg 0x0004
+	istore 2,contw
+	jam 0x14,mem_sdp_tx_pkt_length
+	rtn
+
Index: DpiSwitch/program/security.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/security.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/security.prog	(working copy)
@@ -0,0 +1,1642 @@
+
+ifdef SECURE_CONNECTION
+	
+function_g2:
+	bpatchx patch3b_2,mem_patch3b
+	jam 80,mem_AES_CMAC_data_length
+	arg memdat,contw
+	arg mem_le_srand,contr
+	call memcpy16
+	arg mem_le_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 memdat,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 patch3b_3,mem_patch3b
+	jam 65,mem_AES_CMAC_data_length
+	arg memdat,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 memdat,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 patch3b_4,mem_patch3b
+	jam 53,mem_AES_CMAC_data_length
+	setarg 0x100
+	store 2,memdat
+	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,memdat
+	arg mem_le_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,memdat
+	arg mem_le_pubkey_remote_x_256,contr
+	call memcpy32
+	arg mem_le_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 patch3b_5,mem_patch3b
+	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 memdat,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 memdat,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 memdat,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 memdat,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 patch3b_6,mem_patch3b
+	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 patch3b_7,mem_patch3b
+	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
+
+endif
+	
+generate_kinit:
+	call function_e22
+	arg mem_input_store,contr
+	arg mem_kinit,contw		/* Kinit is ready */
+	branch memcpy16
+
+
+function_e21:	/* rega pointers to bdaddr */
+	disable user
+	call function_expand
+	arg mem_random_number,contr
+	arg mem_x,contw
+	force 15,loopcnt
+	call memcpy			
+	ifetch 1,contr
+	xor_into 6,pdata
+	istore 1,contw
+	setarg mem_y
+	store 2,memp_ar_input
+	setarg mem_x
+	store 2,memp_ar_key
+	set1 mark_ar2,mark
+	branch function_ar
+
+
+	
+function_e22:		/* rega pointers to bdaddr */
+	fetcht 1,mem_pin_length
+	force 16,regb			/* total 16 bytes */
+	add temp,6,regc		/* regc is l' */
+	sub regc,16,null		
+	branch function_e22_pin_init,positive 
+	force 16,regc
+function_e22_pin_init:			/* generate x from pin and bdaddr */
+	arg mem_x,contw
+function_e22_genx_pin:
+	arg mem_pin,contr
+	copy temp,loopcnt
+	disable user
+function_e22_genx_loop:
+	ifetch 1,contr
+	istore 1,contw
+	increase -1,regb
+	branch function_e22_genx_end,zero
+	loop function_e22_genx_loop
+	branch function_e22_genx_pin,user
+	enable user
+	force 6,loopcnt
+	copy rega,contr
+	branch function_e22_genx_loop
+function_e22_genx_end:
+	arg mem_random_number,contr
+	arg mem_y,contw
+	call memcpy16
+	fetch 1,mem_y15
+	ixor regc,pdata
+	store 1,mem_y15	/* inpy[15] = rand_num[15]^l'; */
+	setarg mem_y
+	store 2,memp_ar_input
+	setarg mem_x
+	store 2,memp_ar_key
+	set1 mark_ar2,mark
+	branch function_ar
+
+
+
+
+function_e1:	/* rega pointers to bdaddr */
+	disable user
+	call function_expand
+	branch function_hash
+
+function_e3:
+	arg mem_aco,rega
+	enable user
+	call function_expand
+	call function_hash
+	arg mem_input_store,contr
+	arg mem_kc,contw
+	branch memcpy16
+
+	/* costs 41769 clocks */
+function_hash:
+	setarg mem_random_number
+	store 2,memp_ar_input
+	setarg mem_link_key
+	store 2,memp_ar_key
+	set0 mark_ar2,mark
+	call function_ar
+	arg mem_input_store,rega
+	arg mem_random_number,regb
+	arg mem_x,contw
+	call xor16
+	arg mem_x,rega
+	arg mem_y,regb
+	copy regb,contw
+	enable user
+	call add16
+	call key_offset
+	setarg mem_y
+	store 2,memp_ar_input
+	setarg mem_x
+	store 2,memp_ar_key
+	set1 mark_ar2,mark
+	branch function_ar
+	
+
+	/* totally costs 20700 clocks */
+function_ar:
+	jam 0,mem_ar_hround
+	fetch 2,memp_ar_key
+	iforce contr
+	arg mem_key_store,contw
+	call memcpy16
+	fetch 2,memp_ar_input
+	iforce contr
+	arg mem_input_store,contw
+	call memcpy16
+	
+function_ar_loop:
+	call key_scheduling
+	disable user
+	bmark0 mark_ar2,function_ar_original
+	fetch 1,mem_ar_hround
+	bne 4,function_ar_original
+	fetch 2,memp_ar_input
+	iforce regb
+	call xor_mod32_ar2
+function_ar_original:
+	call xor_mod32
+	call el_boxes
+	fetch 1,mem_ar_hround
+	increase 1,pdata
+	store 1,mem_ar_hround
+
+	call key_scheduling
+	enable user
+	call xor_mod32
+	call pht
+	call permute
+	call pht
+	call permute
+	call pht
+	call permute
+	call pht
+	fetch 1,mem_ar_hround
+	increase 1,pdata
+	store 1,mem_ar_hround
+	bne 16,function_ar_loop
+	call key_scheduling
+	disable user
+	branch xor_mod32
+	
+/* input round number and temp key in mem_key_store, and output the next temp key in mem_key_store */
+/* round key is generated and store in mem_round_key */
+key_scheduling:
+	fetch 1,mem_ar_hround
+	arg mem_key_store,contr
+	branch key_sched_zero,blank
+	iforce regb      			/* regb is half round */
+	force 17,loopcnt
+	copy contr,contw
+key_rotateloop:
+	ifetch 1,contr
+	lshift3 pdata,temp
+	rshift2 pdata,pdata
+	rshift3 pdata,pdata
+	ior temp,pdata
+	istore 1,contw
+	loop key_rotateloop
+	setarg mem_key_store
+	iadd regb,contr
+	force 16,loopcnt    
+	arg mem_round_key,contw
+key_select_octet_loop:
+	ifetch 1,contr
+	istore 1,contw
+	compare mem_key_store_end,contr,0xff
+	nbranch key_select_octet_nwrap,true
+	increase -17,contr
+key_select_octet_nwrap:
+	loop key_select_octet_loop
+	force 0,rega         /* rega is index of octet within row */
+	add regb,-1,regc    /* this is the row index, half_round#1 is 0 */
+	lshift2 regc,regc
+	lshift2 regc,regc
+	call enable_authrom
+	setarg mem_b_box
+	iadd regc,regc       /* regc hold the starting address of the row */
+	arg mem_round_key,contw
+	force 16,loopcnt
+bias_round_key_loop:
+	ifetcht 1,regc
+	ifetch 1,contw
+	iadd temp,pdata
+	istore 1,contw
+	increase 1,regc
+	loop bias_round_key_loop
+	branch disable_authrom
+
+key_sched_zero:    /* round 0, key1 */
+	force 16,loopcnt
+	force 0,temp
+create_byte_16_loop:
+	ifetch 1,contr
+	ixor temp,temp
+	loop create_byte_16_loop
+	deposit temp
+	istore 1,contr    	/* store the byte #16 */
+	arg mem_key_store,contr
+	arg mem_round_key,contw
+	branch memcpy16
+
+xor_mod32:     /* xor on 0,3, add on 1,2. if user is set, invert. x in rega and y in regb, out in contw */
+	arg mem_round_key,regb
+xor_mod32_ar2:
+	force 16,loopcnt
+	arg mem_input_store,rega
+	copy rega,contw
+xor_mod32_loop:	
+	ifetcht 1,rega
+	ifetch 1,regb
+	ixor temp,alarm
+	and loopcnt,3,regc
+	nbranch xor_mod32_invert,user
+	xor_into 3,regc
+xor_mod32_invert:
+	sub regc,1,regc
+	branch xor_even,positive
+	iadd temp,alarm
+xor_even:
+	deposit alarm
+	istore 1,contw
+	increase 1,rega
+	increase 1,regb
+	loop xor_mod32_loop
+	rtn
+
+el_boxes:
+	call enable_authrom
+	force 16,loopcnt
+	arg mem_input_store,rega
+el_box_loop:	
+	ifetch 1,rega
+	arg mem_e_box,contr
+	and loopcnt,3,regc
+	sub regc,1,null
+	branch e_boxes,positive
+	arg mem_l_box,contr
+e_boxes:
+	iadd contr,contr
+	ifetch 1,contr
+	istore 1,rega
+	increase 1,rega
+	loop el_box_loop
+	branch disable_authrom
+
+pht:				
+	force 8,loopcnt
+	arg mem_input_store,contr
+	copy contr,contw
+pht_loop:
+	ifetch 1,contr
+	iforce rega
+	ifetch 1,contr
+	iforce regb
+	lshift rega,pdata
+	iadd regb,pdata
+	istore 1,contw
+	deposit rega
+	iadd regb,pdata
+	istore 1,contw
+	loop pht_loop
+	rtn
+
+/* 8 11 12 15 2 1 6 5 10 9 14 13 0 7 4 3 */
+permute:			
+	setarg 0x8ae42c
+	iforce temp
+	force 7,loopcnt
+	call permute_exchange
+	setarg 0xd751b
+	iforce temp
+	force 5,loopcnt
+	call permute_exchange
+	fetch 1,mem_input_store+15
+	iforce rega
+	fetch 1,mem_input_store+3
+	store 1,mem_input_store+15
+	deposit rega
+	store 1,mem_input_store+3
+	rtn
+
+permute_exchange:
+	and temp,0xf,regb
+permute_loop:
+	and temp,0xf,pdata
+	arg mem_input_store,contw
+	iadd contw,contw
+	ifetch 1,contw
+	iforce regc
+	deposit rega
+	istore 1,contw
+	copy regc,rega
+	rshift4 temp,temp
+	loop permute_loop	
+	setarg mem_input_store
+	iadd regb,contw
+	deposit rega
+	istore 1,contw
+	rtn
+
+add16:
+	enable user
+	branch xor_add16
+
+xor16:
+	disable user
+xor_add16:	/* if user is set, do add, else do xor */
+	force 16,loopcnt	/* rega and regb pointers to src, contw is result */
+xoradd_loop:
+	ifetcht 1,rega
+	ifetch 1,regb
+	branch xoradd_add,user
+	ixor temp,pdata
+	branch xoradd_store
+xoradd_add:	
+	iadd temp,pdata
+xoradd_store:	
+	istore 1,contw
+	increase 1,rega
+	increase 1,regb
+	loop xoradd_loop
+	rtn
+
+	
+function_expand:		/* rega pointers to bdaddr, or aco and user is set */
+	arg mem_y,contw
+	ifetch 6,rega
+	istore 6,contw
+	branch expand_12,user
+	ifetch 6,rega
+	branch expand_cont
+expand_12:
+	ifetch 6,contr
+expand_cont:
+	istore 6,contw
+	ifetch 4,rega
+	istore 4,contw
+	rtn
+
+key_offset:
+	arg mem_link_key,contr
+	arg mem_x,contw
+	arg 0,temp
+	setarg 0x8395a7
+	call concatenate_temp24
+	setarg 0xb3c1df
+	call concatenate_temp24
+	setarg 0xe5e9
+	call concatenate_temp16
+	copy temp,regab
+	disable user
+	call key_addxor
+	copy regab,temp
+	enable user
+	branch key_addxor
+
+key_addxor:
+	force 8,loopcnt
+key_addxor_loop:	
+	ifetch 1,contr
+	compare 1,loopcnt,1
+	branch key_high,user
+	branch key_xor,true
+key_add:	
+	iadd temp,pdata
+	branch key_store
+key_high:
+	branch key_add,true
+key_xor:
+	ixor temp,pdata
+key_store:
+	istore 1,contw
+	rshift8 temp,temp
+	loop key_addxor_loop
+	rtn
+
+copy_aco:
+	fetch 6,mem_input_store+4
+	store 6,mem_aco
+	ifetch 6,contr
+	istore 6,contw
+	rtn
+	
+concatenate_temp24:
+	lshift8 temp,temp
+concatenate_temp16:
+	lshift16 temp,temp
+	ior temp,temp
+	rtn
+
+ifdef TESTING
+test_security:
+	fetch 1,0xff
+	branch test_security,blank
+
+	/* inrand */
+	setarg 0x1BC683
+	store 3,0x0
+	setarg 0x122980
+	istore 3,contw
+	setarg 0xD0DB17
+	istore 3,contw
+	setarg 0x2B1D78
+	istore 3,contw
+	setarg 0x2743A6
+	istore 3,contw
+	setarg 0xD8
+	istore 1,contw
+
+	/* comb A */
+	setarg 0xA6D0C9
+	store 3,0x10
+	setarg 0xA9E86C
+	istore 3,contw
+	setarg 0x9E89D5
+	istore 3,contw
+	setarg 0xC61838
+	istore 3,contw
+	setarg 0x6F0318
+	istore 3,contw
+	setarg 0x9F
+	istore 1,contw
+
+	/* comb B */
+	setarg 0x7F6833
+	store 3,0x20
+	setarg 0xE62E1B
+	istore 3,contw
+	setarg 0x9F67FC
+	istore 3,contw
+	setarg 0x8D3712
+	istore 3,contw
+	setarg 0x0B846C
+	istore 3,contw
+	setarg 0x4A
+	istore 1,contw
+
+	/* auth rand A */
+	setarg 0xFBB686
+	store 3,0x30
+	setarg 0x19FE7F
+	istore 3,contw
+	setarg 0x16A439
+	istore 3,contw
+	setarg 0xF4F6A4
+	istore 3,contw
+	setarg 0x10D61D
+	istore 3,contw
+	setarg 0xDE
+	istore 1,contw
+
+	/* auth rand B */
+	setarg 0x735B0C
+	store 3,0x40
+	setarg 0xA7F06B
+	istore 3,contw
+	setarg 0x04625E
+	istore 3,contw
+	setarg 0x3463B0
+	istore 3,contw
+	setarg 0xB8F17A
+	istore 3,contw
+	setarg 0x7C
+	istore 1,contw
+
+	/* address A */
+	setarg 0xf91330
+	store 3,0xb0
+	setarg 0x664c7d
+	istore 3,contw
+
+	/* address B */
+	setarg 0xdc7100
+	store 3,0xb8
+	setarg 0x2ea003
+	istore 3,contw
+
+	/* sres A */
+	setarg 0x2EEE19
+	store 3,0x50
+	setarg 0x7E
+	istore 1,contw
+
+	/* sres B */
+	setarg 0x4231A4
+	store 3,0x58
+	setarg 0xD1
+	istore 1,contw
+
+	/* linkA */
+	setarg 0xa6a026
+	store 3,0x60
+	setarg 0x2569d2
+	istore 3,contw
+	setarg 0xab4a9d
+	istore 3,contw
+	setarg 0x5e87c0
+	istore 3,contw
+	setarg 0x792aa9
+	istore 3,contw
+	setarg 0x4b
+	istore 1,contw
+
+	/* linkB */
+	setarg 0xa1f07d
+	store 3,0x70
+	setarg 0xec97a6
+	istore 3,contw
+	setarg 0xae31eb
+	istore 3,contw
+	setarg 0x6fe3c4
+	istore 3,contw
+	setarg 0xa1ae1a
+	istore 3,contw
+	setarg 0x3a
+	istore 1,contw
+
+	/* linkkey */
+	setarg 0x07505b
+	store 3,0x80
+	setarg 0xc9fe74
+	istore 3,contw
+	setarg 0x057b76
+	istore 3,contw
+	setarg 0x316404
+	istore 3,contw
+	setarg 0xd884b3
+	istore 3,contw
+	setarg 0x71
+	istore 1,contw
+
+	/* K */
+	setarg 0x0c333f
+	store 3,0x90
+	setarg 0x41de70
+	istore 3,contw
+	setarg 0x9b05a2
+	istore 3,contw
+	setarg 0xb954a2
+	istore 3,contw
+	setarg 0xb37516
+	istore 3,contw
+	setarg 0x36
+	istore 1,contw
+
+	/* kinit */
+	setarg 0x5ff91a
+	store 3,0xa0
+	setarg 0x39b5a4
+	istore 3,contw
+	setarg 0x258f2d
+	istore 3,contw
+	setarg 0x5d4a85
+	istore 3,contw
+	setarg 0x656ad3
+	istore 3,contw
+	setarg 0xab
+	istore 1,contw
+
+	arg 0,contr
+	arg mem_random_number,contw
+	call memcpy16
+	setarg 0x3131
+	store 2,mem_pin
+	istore 2,contw
+	jam 4,mem_pin_length
+	arg 0xb8,rega
+	call function_e22
+	arg mem_input_store,contr
+	arg mem_kinit,contw
+	call memcpy16
+	arg 0x10,rega
+	arg mem_kinit,regb
+	arg mem_random_number,contw
+	call xor16
+	arg 0xb0,rega
+	call function_e21
+	arg 0x60,regb
+	call compare16
+error_lka:
+	nbranch error_lka,zero
+	arg mem_input_store,contr
+	arg mem_link_key,contw	
+	call memcpy16
+	arg 0x20,rega
+	arg mem_kinit,regb
+	arg mem_random_number,contw
+	call xor16
+	arg 0xb8,rega
+	call function_e21
+	arg 0x70,regb
+	call compare16
+error_lkb:
+	nbranch error_lkb,zero
+	arg mem_input_store,rega
+	arg mem_link_key,regb
+	arg mem_link_key,contw
+	call xor16
+	arg 0x30,contr
+	arg mem_random_number,contw
+	call memcpy16
+	arg 0xb8,rega
+	call function_e1
+	arg 0x50,regb
+	force 4,loopcnt
+	call compare_key
+error_sresa:
+	nbranch error_sresa,zero
+	arg 0x40,contr
+	arg mem_random_number,contw
+	call memcpy16
+	arg 0xb0,rega
+	call function_e1
+	arg 0x58,regb
+	force 4,loopcnt
+	call compare_key
+error_sresb:
+	nbranch error_sresb,zero
+	branch loop1
+	
+	arg 0,contr
+	arg mem_random_number,contw
+	call memcpy16
+	force 12,loopcnt
+	call memcpy
+	arg 0x1c,contr
+	arg mem_link_key,contw
+	call memcpy16
+	arg 0x10,rega
+	call function_e3
+	branch loop1
+
+compare16:
+	force 16,loopcnt
+compare_key:
+	arg mem_input_store,rega
+	branch compare_loop
+
+compare_loop:
+	ifetch 1,rega
+	ifetcht 1,regb
+	isub temp,null
+	nrtn zero
+	increase 1,rega
+	increase 1,regb
+	loop compare_loop
+	force 0,pdata
+	rtn
+
+endif
+
+
+loop1:	
+	branch loop1
+
+/* ==================== LE security ================= */
+
+generate_stk:
+	bpatchx patch3c_0,mem_patch3c
+	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
+
+	/* 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			/* B0 */
+	lshift8 temp,regext
+	ior regext,regext
+	increase 1,regext_index
+	rshift8 temp,regext
+	rshift16 regext,regext
+	fetch 2,mem_le_ivm
+	lshift16,pdata,pdata
+	ior regext,regext				/* octet3&octet4 of counter and low 16 bit of IV */
+	increase 1,regext_index
+	ifetch 4,contr					/* IV2-IV5 */
+	iforce regext
+	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
+	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
+	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:
+	bpatchx patch3c_1,mem_patch3c
+	arg mem_le_txheader,regc
+	fetcht 5,mem_le_pcnt_tx
+	call generate_mic
+	force regidx_xor,regext_index
+	iforce regext
+	force 0,rega					/* rega is block counter */
+	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_le_pcnt_tx
+	increase 1,temp
+	storet 5,mem_le_pcnt_tx
+	rtn
+
+le_decrypt:
+	bpatchx patch3c_2,mem_patch3c
+	fetch 1,mem_le_rxbuf+1
+	sub pdata,20,null
+	branch le_dec_cont,positive
+le_dec_cont:
+	arg mem_le_rxbuf+2,regc
+	add pdata,-1,regb
+	increase -4,pdata				/* mic will be discarded */
+	store 1,mem_le_rxbuf+1
+	iadd regc,contr
+	ifetch 4,contr
+	force regidx_xor,regext_index
+	iforce regext
+	force 0,rega					/* rega is block counter */
+	fetcht 5,mem_le_pcnt_rx
+	call first_block_data
+	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				/* MIC ok? */
+	nrtn blank
+	fetch 4,mem_le_last_mic			/* reduntdant packet? */
+	isub temp,pdata
+	rtn blank
+	storet 4,mem_le_last_mic
+	fetch 5,mem_le_pcnt_rx
+	increase 1,pdata
+	store 5,mem_le_pcnt_rx
+	force 0,pdata
+	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
+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 patch3c_3,mem_patch3c
+	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
+
+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
+	force 0,null
+	rtn
+
+enable_authrom:
+	hfetch 1,core_clkoff
+	set0 CLOCK_OFF_AUTH_ROM,pdata
+	hstore 1,core_clkoff
+	rtn
+
+disable_authrom:
+	hfetch 1,core_clkoff
+	set1 CLOCK_OFF_AUTH_ROM,pdata
+	hstore 1,core_clkoff
+	rtn
+
+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
+
+
+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: DpiSwitch/program/sim.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/sim.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/sim.prog	(working copy)
@@ -0,0 +1,518 @@
+simstart:
+	force 8,radio_ctrl
+	force 0,radio_ctrl
+	jam 0xe0,0x8907			// set if_phase=7 for simulation environment
+	jam 0xe0,0x890a
+	jam 0x25,0x8912
+	jam 0xff,rfen_ck
+	jam 5,core_clksel
+//	call init_24m
+//	branch sim_usb
+//	branch sim_iic
+//	branch sim_clk
+//	call sim_uart
+//	branch sim_lpm
+//	branch sim_c1
+//	branch loop
+//	call sim_spi
+//	call sim_eep
+//	branch test_tx
+//	branch sim_le
+//	branch sim_250k
+	branch sim_main
+
+
+
+
+sim_lpm:
+	hfetch 1,0xffd
+	beq 1,sim_assert
+	branch sim_lpm_do
+	setarg 0
+	set1 31,pdata
+	store 8,mem_gpio_wakeup_low
+	branch lpm_hibernate
+sim_lpm_sleep:
+	jam 1,mem_context
+	branch sim_lpm_wait,wake
+	jam 0x70,core_bist_ctrl
+	jam ccnt_start,core_misc_ctrl
+sim_lpm_wait:
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch sim_lpm_wait,blank
+	call lpm_recover_clk,wake
+	jam 0x1b,mem_lpm_ldocnt
+	arg sim_assert,loopcnt
+	hfetch 1,core_gpio_wakeup_low+2
+	bbit0 2,sim_lpm_loop
+	until null,lpo_edge
+	jam 0x20,core_misc_ctrl
+	until null,lpo_edge
+sim_lpm_loop:
+	hfetch 1,core_misc_status
+	bbit1 6,sim_lpm_loop
+	hfetch 1,core_gpio_in+3
+	compare 0x20,pdata,0x20
+	setarg 0
+	setflag true,29,pdata
+	setflag true,30,pdata
+	store 4,mem_gpio_wakeup_low
+	setarg 0
+	nsetflag true,29,pdata
+	nsetflag true,30,pdata
+	store 4,mem_gpio_wakeup_high
+sim_lpm_do:
+	arg 30,temp
+	branch lpm_sleep
+
+sim_assert:
+	branch sim_assert
+
+
+sim_main:
+	call init_param
+	jam 0,core_clkoff
+	hfetch 1,0x17fd
+	beq 1,sim_slave
+
+	arg 3,temp
+	call set_freq_tx
+	nop 500
+	enable encode_fec0
+	disable is_rx
+	enable is_tx
+	set1 TXGFSK,radio_ctrl
+	call sim_access
+	preload access
+	inject mod,72
+	setarg 0x123456
+	inject mod,72
+	set1 PSK,radio_ctrl
+	setarg 0xabeee
+	inject mod,20
+	setarg 0x22aa33
+	inject mod,72
+	branch s_loop
+
+
+	jam dvc_op_hci,mem_device_option
+	fetch 6,mem_lap
+	store 6,mem_hci_plap
+	setarg 0xbdbdbd
+	store 3,mem_lap
+	istore 3,contw
+	jam hci_cmd_create_conn,mem_hci_cmd
+	force 0xf,pdata
+	add pdata,-2,clkn_bt
+	store 4,mem_page_clk
+	rshift clkn_bt,pdata
+	store 4,mem_last_clkn
+	jam 0,mem_scan_mode
+sim_loop:
+	call idle_dispatch
+	fetch 1,mem_context
+	bbit0 state_inconn,sim_skip
+	set1 mark_tx_l2cap,mark
+	fetch 1,mem_context + coffset_op		
+	set1 op_txl2cap,pdata
+	store 1,mem_context + coffset_op
+	jam 0,mem_context + coffset_lmp_to_send
+	jam 0,mem_lmo_opcode2
+	setarg 700
+	store 2,mem_tx_len
+	setarg mem_tmp_buffer
+	store 2,mem_txptr
+	jam 6,mem_tx_lch
+	jam 1,mem_hci_conn_handle
+sim_skip:
+	call connection_dispatch
+	branch sim_loop		
+
+sim_slave:
+
+	arg 3,temp
+	call set_freq_rx
+	call rf_rx_enable
+	call sim_access
+	enable is_rx
+	enable decode_fec0
+	correlate null,never
+	set1 PSK,radio_ctrl
+	correlate null,never
+	parse demod,bucket,72
+	branch s_loop
+
+
+	jam 2,mem_scan_mode
+	call page_scan_dispatch
+	branch sim_slave
+
+sim_access:
+	setarg 0x1234567
+	iforce lap
+	pulse recalc
+	nop 32
+	rtn
+
+sim_iic:
+	call iicd_init_12m
+	setarg 3
+	hstore 2,core_iicd_txlen
+	setarg 0x1f051e
+	store 3,mem_iicd_addr
+	setarg mem_iicd_addr
+	hstore 2,core_iicd_txaddr
+	setarg 1
+	hstore 2,core_iicd_rxlen
+	jam 3,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	nop 300
+	setarg 0xd321d2
+	store 3,mem_iicd_addr
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+s_loop:
+	branch s_loop
+
+sim_usb:
+	call usb_init
+sim_usb_loop:
+	call usb_isr
+	branch sim_usb_loop
+
+init_24m:
+	jam 0x4b,core_halfslot
+	jam 0x1d,core_halfslot + 1
+	jam 1,core_clksel
+	rtn
+
+
+p_transmit_sw:
+	reverse uap,regc				// hec init
+	enable encode_fec0
+	set0 mark_longpacket,mark
+	copy am_addr,temp
+	arg 3,loopcnt
+	call p_head
+	copy type,temp
+	arg 4,loopcnt
+	call p_head
+	fetch 1,mem_arq
+	lshift4 pdata,temp
+	arg 3,loopcnt
+	call p_head
+	copy regc,temp
+	arg 8,loopcnt
+	call p_head
+	reverse uap,regc
+	lshift8 regc,regc				// crc init
+	and type,0x1f,pdata
+	beq type_fhs, p_transmit_fhs
+
+
+
+p_transmit_fhs:
+	call fetch_self_bt_adr
+	pulse recalc
+	enable user
+	call p_fec2_init
+	fetch 1,mem_fhs_am_addr            /* this is the am_addr to assign to slave */
+	icopy am_addr
+	fetch 1,mem_fhs_misc
+	icopy fhs_misc    /* [7:6]SR [5:4]SP [3:1]PS [0]undef  */
+	fetch 3,mem_class   /* store away class */
+	icopy fhs_class
+	copy bt_adr,rega
+	nop 12                    /* 30 cycles after recalc for sync word generation */
+	copy bt_clk,timeup
+	fetch 4,mem_clkn_bt
+	icopy bt_clk
+	preload fhs0
+	iforce temp
+	arg 32,loopcnt
+	call p_fec2
+	preload fhs0
+	set1 58,pdata		/* eir */
+	rshift32 pdata,temp
+	arg 40,loopcnt
+	call p_fec2
+	preload fhs1
+	iforce temp
+	arg 32,loopcnt
+	call p_fec2
+	preload fhs1
+	rshift32 pdata,temp
+	arg 40,loopcnt
+	call p_fec2
+	copy timeup,bt_clk
+	copy rega,bt_adr
+	copy regc,temp
+	arg 16,loopcnt
+	disable user
+	call p_fec2
+	branch end_of_packet
+	
+// hec or crc is in regc
+p_hec:
+	deposit temp
+	ixor regc,pdata
+	rshift regc,regc
+	rtnbit0 0
+	xor_into 0xe5,regc
+	rtn
+
+// hec or crc is in regc
+p_crc:
+	deposit temp
+	ixor regc,pdata
+	rshift regc,regc
+	rtnbit0 0
+	setarg 0x8408
+	ixor regc,regc
+	rtn
+
+
+// white is in debug
+p_white:
+	isolate1 6,debug
+	lshift debug,debug
+	nrtn true
+	xor_into 0x11,debug
+	xor_into 1,temp
+	rtn
+
+// data in temp, length in loopcnt
+p_head:
+	call p_hec
+	call p_white
+	isolate0 0,temp
+	setarg 0
+	branch p_fec1_0,true
+	setarg 7
+p_fec1_0:
+	inject mod,3
+	rshift temp,temp
+	loop p_head
+	rtn
+
+p_fec0:
+	call p_white
+	deposit temp
+	inject mod,1
+	loop p_fec0
+	rtn
+
+p_fec2:
+	call p_crc,user
+	call p_white
+	deposit temp
+	ixor alarm,pdata
+	rshift alarm,alarm
+	bbit0 0,p_fec2_zero
+	xor_into 0x15,alarm
+p_fec2_zero:
+	deposit temp
+	inject mod,1
+	rshift temp,temp
+	increase -1,queue
+	nbranch p_fec2_nf,zero
+	deposit alarm
+	inject mod,5
+	call p_fec2_init
+p_fec2_nf:
+	loop p_fec2	
+	rtn
+
+p_fec2_init:
+	arg 10,queue
+	arg 0,alarm
+	rtn
+
+
+ifdef NULL
+sim_250k:
+	call init_250k
+	hfetch 1,1
+	bbit1 7,sim_250k_rx
+	call tx_radio_freq
+	call start_transmitter	/* get ready for that id packet */
+	nop 600
+	enable encode_fec0
+	set1 TXGFSK,radio_ctrl
+	force 0,pdata
+	inject mod,9
+	setarg 0xaa
+	inject mod,8
+	preload access
+	inject mod,32
+	setarg 0x1da861
+	inject mod,24
+	setarg 0x94445b
+	inject mod,24
+	setarg 0x1275f
+	inject mod,24
+	branch loop
+sim_250k_rx:
+	call rx_radio_freq
+	call start_receiver	/* wait for that id packet from master */
+	enable decode_fec0
+	correlate null,never
+	parse demod,bucket,72
+	branch loop
+
+	
+
+
+
+sim_uart:
+	setarg mem_le_test_uart_rxbuf
+	hstore 2,core_uart_tsaddr
+	hstore 2,core_uart_twptr
+	hstore 2,core_uart_trptrp
+	increase 0x80,pdata
+	hstore 2,core_uart_teaddr
+	hstore 2,core_uart_rsaddr
+	hstore 2,core_uart_rrptr
+	increase 0x80,pdata
+	hstore 2,core_uart_readdr
+	increase 1,pdata
+	jam 0x84,core_gpio_sel1
+	jam 0x80,core_gpio_pu2
+	jam 0xe5,core_uart_ctrl
+	setarg 0x30
+	hstore 2,core_uart_baud
+	hfetch 1,1
+	bbit1 7,sim_uart_wait
+	setarg 0x1357d9a
+	store 4,mem_le_test_uart_rxbuf
+	setarg 0x55aa69
+	istore 3,contw
+	setarg 0xfedcb3
+	istore 3,contw
+	deposit contw
+	hstore 2,core_uart_twptr
+sim_uart_wait:
+	nop 20000
+	rtn
+
+sim_spi:
+	call spid_init_flash
+	call spid_unlock_flash
+	call spid_init
+	setarg 0x35
+	call spid_read_reg
+	nop 200
+	force 4,temp
+	setarg 0x42
+	branch spid_read_regs
+
+sim_eep:
+	call iicd_init_12m
+	setarg 3
+	hstore 2,core_iicd_txlen
+	setarg 0x1f051e
+	store 3,mem_iicd_addr
+	setarg mem_iicd_addr
+	hstore 2,core_iicd_txaddr
+	setarg 1
+	hstore 2,core_iicd_rxlen
+	jam 3,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	nop 200
+	setarg 0x18f7a3b
+	store 4,mem_iicd_addr
+	arg mem_iicd_addr,rega
+	arg 4,temp
+	setarg 0x1235
+	call iicd_write_eep
+	nop 300
+	arg mem_ucode_keybuf,rega
+	arg 1,temp
+	setarg 0x3512
+	store 2,mem_addr_mi
+	call iicd_read_eep
+	arg 1,temp
+	setarg 0x3512
+	store 2,mem_addr_mi
+	call iicd_read_eep
+	nop 200
+	setarg 0xa1
+	arg 3,temp
+	arg mem_ucode_keybuf,rega
+	branch iicd_read_data
+
+sim_otp:
+	setarg 0x123456
+	store 3,0x800
+	setarg 0x10
+	arg 0x800,rega
+	arg 0x10,loopcnt
+	branch otp_write
+
+sim_clk:
+	add lpo_time,12,alarm
+	snooze
+clock_loop:
+	nop 100
+	jam 1,core_config
+	setflag user,0,pdata
+	random pdata
+	and_into 0x1f,pdata
+	hstore 1,core_clksel
+	nop 70
+	jam 2,core_kick
+	nop 200
+	branch clock_loop
+	jam 2,core_clksel
+	setarg 1500
+	call sleep
+	jam 0x42,core_clksel
+	add lpo_time,200,alarm
+	snooze
+	branch 0x4000
+
+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
+
+	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
+endif
Index: DpiSwitch/program/simple_pairing.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/simple_pairing.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/simple_pairing.prog	(working copy)
@@ -0,0 +1,2362 @@
+
+publickey_init:
+	fetch 1,mem_ssp_enable
+	nbranch sp_initialize,blank
+	branch sp_initialize_256
+
+sp_calc_sequence_256_check:
+	bpatchx patch3c_4,mem_patch3c
+	fetch 1,mem_ssp_enable
+	rtn blank
+	fetch 1,mem_sp_local_key_invalid
+	rtnne SP_KEY_VALID
+	fetch 1,mem_le_secure_connect_enable
+	rtn blank
+	fetch 1,mem_le_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_le_sc_calc
+	beq SP_CALC_STANDBY,sp_initialize_256
+	rtn
+stop_publickey_calc_256:
+	jam SP_CALC_STANDBY,mem_le_sc_calc	
+	rtn
+	
+ifdef SIMPLE_PAIRING
+
+sp_initialize:
+	bpatchx patch3c_5,mem_patch3c
+	fetch 1,mem_ssp_enable 
+	branch ssp_disable, blank
+	call ssp_enable
+	call sp_clear_flags
+	branch sp_pubkey_calc 
+	
+sp_clear_flags:
+	setarg 0
+	store 8,mem_sp_state_start
+	store 4,mem_sp_flag_start
+	store 7,mem_sp_iocap_remote
+	rtn
+
+sp_generate_local_key:
+	jam SP_FLAG_COMMIT,mem_sp_flag  
+	branch sp_generate_local_key0
+sp_master_generate_local_key:
+	fetch 1,mem_sp_local_key_invalid
+	beq SP_KEY_VALID,sp_dhkey_calc
+	branch assert
+sp_generate_local_key0:
+	fetch 1,mem_sp_local_key_invalid
+	beq SP_KEY_VALID,sp_start_send_pubkey
+	branch sp_pubkey_calc
+    
+sp_start_send_pubkey:
+	call sp_dhkey_calc
+	fetch 1,mem_master_sp_state
+	nrtn blank
+	jam SP_STAT_KEY_SEND,mem_sp_state
+	rtn
+
+
+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	
+	
+sp_calc_check_publickey:
+	call sp_calc_b
+	arg mem_sp_pubkey_remote_y,regA
+	arg mem_t7_256,contw
+	call bn_sqrmod 
+	arg mem_sp_pubkey_remote_x,regA
+	arg mem_t2_256,contw
+	call bn_sqrmod
+  	arg mem_t2_256,regA
+	arg mem_sp_pubkey_remote_x,regB
+	arg mem_t2_256,contw
+	call bn_mulmod	
+  	arg mem_a,regA
+	arg mem_sp_pubkey_remote_x,regB
+	arg mem_t3_256,contw
+	call bn_mulmod	
+  	arg mem_t3_256,regA
+	arg mem_t2_256,regB
+	arg mem_t2_256,contw
+	call bn_addmod	 
+  	arg mem_t0_256,regA
+	arg mem_t2_256,regB
+	arg mem_t0_256,contw
+	call bn_addmod	 
+ 	arg 24,loopcnt
+ 	arg mem_t7_256,regA
+	arg mem_t0_256,regB
+	branch  string_compare
+	
+sp_calc_b:
+	arg mem_gy,regA
+	arg mem_t0_256,contw
+	call bn_sqrmod   
+	arg mem_gx,regA
+	arg mem_t2_256,contw
+  	call bn_sqrmod
+  	arg mem_t2_256,regA
+	arg mem_gx,regB
+	arg mem_t2_256,contw
+	call bn_mulmod	
+	arg mem_a,regA
+	arg mem_gx,regB
+	arg mem_t3_256,contw
+	call bn_mulmod	 
+  	arg mem_t3_256,regA
+	arg mem_t2_256,regB
+	arg mem_t2_256,contw
+	call bn_addmod	 
+  	arg mem_t0_256,regA
+	arg mem_t2_256,regB
+	arg mem_t0_256,contw
+	branch  bn_submod	
+
+   
+sp_calculate_commitment:
+	fetch 1,mem_sp_calc
+	bne SP_CALC_STANDBY,sp_calculate_commitment_wait_dhkey_calc
+	call sp_local_random_key_generator
+	arg mem_sp_prarm_stack,contw
+	setarg mem_sp_random_local_end
+	istore 2,contw
+	setarg mem_sp_pubkey_local_x_end
+	istore 2,contw
+	setarg mem_sp_pubkey_remote_x_end
+	istore 2,contw
+	branch sp_calculate_commitment0
+master_sp_calculate_commitment:
+	arg mem_sp_prarm_stack,contw
+	setarg mem_sp_random_remote_end
+	istore 2,contw
+	setarg mem_sp_pubkey_remote_x_end
+	istore 2,contw
+	setarg mem_sp_pubkey_local_x_end
+	istore 2,contw
+sp_calculate_commitment0:
+	call function_f1
+	fetch 1,mem_master_sp_state
+	beq SP_STAT_COMMIT_CALC,master_sp_calculate_commitment0
+	jam SP_FLAG_COMMIT,mem_sp_flag
+	jam SP_STAT_COMMIT_SEND,mem_sp_state
+	rtn
+master_sp_calculate_commitment0:
+	jam SP_STAT_COMMITMENT_COMPARE,mem_master_sp_state
+	call sp_master_generate_local_key
+	branch master_set_mem_master_sp_flag 
+
+sp_local_random_key_generator:
+	arg mem_sp_random_local,contw
+	force 8,queue
+	branch random_generator
+  
+sp_calculate_commitment_wait_dhkey_calc:
+	jam      SP_FLAG_COMMIT,mem_sp_flag
+	rtn
+    
+sp_confirm_check:
+    /* calculate Ea here */
+	bpatchx patch3c_6,mem_patch3c
+	arg      mem_addr_value,contw
+	fetch    6,mem_lap
+	istore   6,contw
+	fetch    6,mem_plap
+	istore   6,contw
+	fetch    3,mem_sp_iocap_remote
+	istore   3,contw 
+
+	call     function_f3a
+
+	arg      mem_sp_calc_result_high,regA
+	arg      mem_sp_check_result,regB    
+	force    4,queue 
+	call     compare4
+	nbranch  sp_confirm_check_failed,true  
+
+	call sp_confirm_check_success
+	jam LMP_DHKey_Check,mem_lmi_opcode2
+	branch tid_set_reply
+    
+sp_confirm_check_success:
+	fetch 1,mem_master_sp_state
+	beq SP_STAT_CONFIRM_CHECK,sp_confirm_check_success_master
+	jam SP_STAT_CONFIRM_CALC,mem_sp_state
+	jam SP_FLAG_COMMIT,mem_sp_flag  
+	jam LMP_ACCEPTED,mem_lmo_opcode2
+	rtn
+sp_confirm_check_success_master:
+	jam LMP_ACCEPTED,mem_lmo_opcode2
+	jam SP_STATE_END,mem_master_sp_state
+	branch master_set_mem_master_sp_flag
+	//accept opcode?
+	
+sp_confirm_check_failed:
+	fetch 1,mem_master_sp_state
+	beq SP_STAT_CONFIRM_CHECK,sp_confirm_check_failed_master
+	jam SP_STAT_NULL,mem_sp_state
+	jam LMP_NOT_ACCEPTED,mem_lmo_opcode2
+	//accept opcode?
+	jam      AUTHENTICATION_FAILURE_ERROR,mem_lmo_reason2 
+	rtn
+sp_confirm_check_failed_master:
+	jam LMP_NOT_ACCEPTED,mem_lmo_opcode2
+	jam SP_STAT_NULL,mem_master_sp_state
+	rtn
+    
+sp_confirm_calc:
+	fetch 1,mem_sp_dh_ready
+	beq SP_FLAG_COMMIT, sp_confirm_calc_ready
+	jam 	SP_STAT_CONFIRM_CALC,mem_master_sp_state
+	branch master_set_mem_master_sp_flag
+sp_confirm_calc_ready:
+	arg      mem_addr_value,contw
+	fetch    6,mem_plap
+	istore   6,contw
+	fetch    6,mem_lap
+	istore   6,contw
+	fetch    3,mem_sp_iocap_local
+	istore   3,contw 
+
+	call     function_f3b
+	fetch 1,mem_master_sp_state
+	beq SP_STAT_CONFIRM_CALC,sp_confirm_calc_master
+	jam      SP_STAT_CONFIRM_SEND,mem_sp_state
+	jam      SP_FLAG_COMMIT,mem_sp_flag
+	rtn
+sp_confirm_calc_master:
+	jam      SP_STAT_CONFIRM_SEND,mem_master_sp_state
+	jam      SP_FLAG_COMMIT,mem_master_sp_flag
+	rtn   
+
+sp_master_key_prarm_push:
+	arg mem_sp_prarm_stack,contw
+	fetch    6,mem_plap
+	istore   6,contw
+	fetch    6,mem_lap
+	istore   6,contw
+	setarg mem_sp_random_local_end
+	istore 2,contw
+	setarg mem_sp_random_remote_end
+	istore 2,contw
+	branch sp_link_key_calc
+sp_link_key_prarm_push:
+	jam      SP_STAT_DONE,mem_sp_state    
+	arg mem_sp_prarm_stack,contw
+	fetch    6,mem_lap
+	istore   6,contw
+	fetch    6,mem_plap
+	istore   6,contw
+	setarg mem_sp_random_remote_end
+	istore 2,contw
+	setarg mem_sp_random_local_end
+	istore 2,contw
+sp_link_key_calc:
+    /*calculate Link key here */
+	arg      mem_addr_value,contw
+	fetch    6,mem_sp_prarm_stack
+	istore   6,contw
+	fetch    6,mem_sp_prarm_stack+6
+	istore   6,contw
+	
+	call     function_f2    
+
+	/*handle linkkey  */
+	jam 1,mem_link_key_exists
+	arg mem_link_key,contw
+	arg mem_sp_calc_result_high,contr
+	call memcpy16
+	branch  generate_linkkey_continue
+
+    
+sp_pubkey_calc:
+	bpatchx patch3c_7,mem_patch3c
+	fetch    1,mem_sp_local_key_invalid
+	rtnne SP_KEY_INVALID
+	fetch    1,mem_sp_calc
+	rtnne  SP_CALC_STANDBY
+	arg      mem_sp_private_key,contw 
+	force    11,queue
+	call     random_generator
+	random   pdata
+	rshift   pdata,pdata
+	istore   2,contw 
+/* we don't need fixed private key,generate random key instead */ 
+	arg      mem_k,contw
+	arg      mem_sp_private_key,contr	
+	call     memcpy24 //mem_sp_private_key=>mem_k 24BYTES
+
+	arg      mem_ax,contw
+	arg      mem_gx,contr
+	call     memcpy48 //mem_gx=>mem_ax 48bytes
+
+	arg      mem_az,contw
+	call     bn_zero
+	jam      1,mem_az //0=>mem_az 24bytes
+
+	call     eckp_calc_init
+	jam SP_CALC_PUBKEY,mem_sp_calc
+	rtn    
+	
+sp_pubkey_generated:
+	arg      mem_sp_pubkey_local,contw
+	arg      mem_bx,contr
+	call     memcpy48   
+	jam      SP_KEY_VALID,mem_sp_local_key_invalid
+	jam      SP_CALC_STANDBY,mem_sp_calc
+	rtn
+
+sp_dhkey_calc:
+	bpatchx patch3d_0,mem_patch3d
+	fetch    1,mem_sp_dhkey_invalid
+	rtnne  SP_KEY_INVALID
+	fetch    1,mem_sp_calc
+	rtnne  SP_CALC_STANDBY
+
+	arg      mem_k,contw
+	arg      mem_sp_private_key,contr	
+	call     memcpy24
+
+	arg      mem_ax,contw
+	arg      mem_sp_pubkey_remote,contr
+	call     memcpy48
+
+	arg      mem_az,contw
+	call     bn_zero
+	jam      1,mem_az
+
+	call     eckp_calc_init
+	jam      SP_CALC_DHKEY,mem_sp_calc
+	rtn 	
+	
+sp_dhkey_generated:
+	jam SP_FLAG_COMMIT,mem_sp_dh_ready
+	arg mem_sp_dhkey,contw
+	arg mem_bx,contr
+	call memcpy24
+	jam SP_KEY_VALID,mem_sp_dhkey_invalid
+	jam SP_CALC_STANDBY,mem_sp_calc
+	rtn
+
+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:
+	disable  true
+	rtn
+compare4_success:
+	enable   true
+	rtn
+
+/*************************************************/
+/** Message state machine routines ***************/
+/*************************************************/
+// simple pairing support 
+
+simple_pairing_sequence:
+	bpatchx patch3d_1,mem_patch3d
+         fetch 1,mem_sp_flag
+         rtn blank
+	call lmo_fifo_check
+	nrtn blank
+	jam      SP_FLAG_STANDBY,mem_sp_flag
+	fetch    1,mem_sp_state
+	beq  SP_STAT_KEY_SEND,sp_send_LMP_ENCAPSULATED_HEADER
+	beq  SP_STAT_COMMIT_SEND,sp_send_LMP_SIMPLE_PAIRING_COMFIRM
+	beq  SP_STAT_RANDOM_SEND,sp_send_LMP_SIMPLE_PAIRING_NUMBER
+	beq  SP_STAT_CONFIRM_SEND,sp_send_LMP_DHKEY_CHECK
+	beq  SP_STAT_KEY_GENERATE,sp_generate_local_key
+	beq  SP_STAT_COMMIT_CALC,sp_calculate_commitment
+	beq  SP_STAT_CONFIRM_CHECK,sp_confirm_check
+	beq  SP_STAT_CONFIRM_CALC,sp_confirm_calc
+	beq  SP_STAT_LINK_KEY_CALC,sp_link_key_prarm_push
+	//beq  SP_STAT_FEATURE_EXT_SEND,send_LMP_FEATURES_REQ_EXT
+	rtn  
+
+master_simple_paring_sequence:
+	bpatchx patch3d_2,mem_patch3d
+	fetch 1,mem_master_sp_flag
+	rtn blank
+	call lmo_fifo_check
+	nrtn blank
+	jam SP_FLAG_STANDBY,mem_master_sp_flag
+	fetch 1,mem_master_sp_state
+	beq SP_MASTER_STAT_START_SKIP,sp_master_send_io_cap_get
+	beq SP_MASTER_STAT_START_DONE,sp_master_send_io_cap_send
+	beq SP_STAT_KEY_SEND,sp_master_send_LMP_ENCAPSULATED_HEADER
+	beq SP_STAT_COMMIT_CALC,master_sp_calculate_commitment
+	beq SP_STAT_COMMITMENT_COMPARE,sp_master_commitment_compare
+	beq SP_STAT_RANDOM_SEND,sp_master_send_LMP_SIMPLE_PAIRING_NUMBER
+	beq SP_STAT_CONFIRM_CALC,sp_confirm_calc
+	beq SP_STAT_CONFIRM_SEND,master_sp_send_lmp_dhkey_check
+	beq SP_STAT_CONFIRM_CHECK,sp_confirm_check
+	beq SP_STATE_END,master_sp_sm_end
+	rtn
+
+master_set_mem_master_sp_flag:
+	jam SP_FLAG_COMMIT,mem_master_sp_flag
+	rtn
+	
+master_clear_mem_master_sp_flag:
+	jam SP_FLAG_STANDBY,mem_master_sp_flag
+	rtn
+sp_calc_sequence:
+	bpatchx patch3d_3,mem_patch3d
+	fetch 1,mem_ssp_enable
+	rtn blank
+	fetch 1,mem_sp_calc
+	rtn blank
+	increase 0x80,pdata
+	store    1,mem_sp_calc
+	rtnbit1 7
+	fetch    1,mem_ec_loopc
+	branch   sp_calc_sequence_done,blank
+	branch   eckp_calc
+
+sp_calc_sequence_done:    
+	call ecunmapz
+	fetch 1,mem_sp_calc
+	beq  SP_CALC_PUBKEY,sp_pubkey_generated
+	beq  SP_CALC_DHKEY,sp_dhkey_generated
+	rtn
+
+
+bn_testbit:
+	and pdata,7,queue
+	rshift3 pdata,pdata
+	iadd contr,contr
+	ifetch 1,contr
+	qisolate0 pdata
+	rtn
+
+
+ec_copy:
+	call memcpy24
+	call memcpy24
+	branch memcpy24
+	
+	
+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_lshiftmod:
+	call bn_lshift
+bn_lshiftmod_ismod:	
+	isolate1 0,regC
+	branch bn_lshiftmod_0,true
+	arg mem_p,regB
+	copy regA,regC
+	increase -24,regA
+	call bn_bigeq
+	nrtn positive
+	copy regC,regA
+bn_lshiftmod_0:
+	increase -24,regA
+	arg mem_p,regB
+	copy regA,contw
+	branch bn_sub
+	
+
+bn_addmod:
+	call bn_add
+	copy contw,regA
+	branch bn_lshiftmod_ismod
+	
+bn_submod:
+	call bn_sub
+	isolate0 0,regC
+	rtn true
+	arg mem_p,regB
+	add contw,-24,regA
+	copy regA,contw
+	branch bn_add
+	
+
+bn_p192mod:
+	copy contw,timeup				/* save result ptr */
+	copy regA,alarm				/* temp save regA */
+	arg mem_tmp2,regB
+	copy regB,contw
+	add regA,24,contr
+	ifetch 8,contr
+	istore 8,contw
+	istore 8,contw
+	force 0,pdata
+	istore 8,contw
+	copy timeup,contw
+	call bn_addmod
+	arg mem_tmp2,regB
+	copy regB,contw
+	force 0,pdata
+	istore 8,contw
+	add alarm,32,contr
+	ifetch 8,contr
+	istore 8,contw
+	istore 8,contw
+	copy timeup,regA
+	copy regA,contw
+	call bn_addmod
+	arg mem_tmp2,regB
+	copy regB,contw
+	add alarm,40,contr
+	ifetch 8,contr
+	istore 8,contw
+	istore 8,contw
+	istore 8,contw
+	copy timeup,regA
+	copy regA,contw
+	branch bn_addmod
+		
+
+bn_load:
+	force 6,loopcnt
+bn_load_0:	
+	ifetch 4,contr
+	iforce regext
+	increase 1,regext_index
+	loop bn_load_0
+	rtn
+
+
+	/* cost 1562 clks */	
+bn_mulmod:
+	copy contw,timeup					/* save result ptr */
+	arg mem_tmp1,contw
+	call bn_zero
+	arg mem_tmp1,contw
+	copy regA,contr
+	force 0,regext_index
+	call bn_load
+	copy regB,contr
+	call bn_load
+	force 0,regB
+bn_mulmod_1:	
+	force 0,temp
+	force 6,regC
+bn_mulmod_0:
+	ifetch 4,contw					/* d[i+j] */
+	iforce regA
+	copy regB,regext_index
+	deposit regext
+	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 12,regC,0xff
+	nbranch bn_mulmod_0,true
+	deposit temp
+	istore 4,contw					/* d[i + 12] = u */
+	increase -24,contw
+	increase 1,regB
+	compare 6,regB,0xff
+	nbranch bn_mulmod_1,true
+	arg mem_tmp1,regA
+	copy timeup,contw
+	branch bn_p192mod
+
+	
+bn_sqrmod:
+	copy regA,regB
+	branch bn_mulmod
+
+bn_rshifteven:
+	copy regA,alarm
+bn_rshifteven_1:
+	copy alarm,regA
+	ifetch 1,regA
+	isolate1 0,pdata
+	rtn true
+	call bn_rshift6
+	ifetch 1,regB
+	isolate0 0,pdata
+	branch bn_rshifteven_0,true
+	arg mem_p,regA
+	copy regB,contw
+	call bn_add
+	ifetch 1,regB
+	iadd regC,pdata
+	istore 1,regB						/* [6] */
+	increase -24,regB
+bn_rshifteven_0:
+	add regB,24,regA
+	force 7,loopcnt
+	call bn_rshift
+	branch bn_rshifteven_1
+
+	/* cost 141910 clks */
+bn_invmod:
+	copy contw,timeup					/* save result ptr */
+	arg mem_tmp0,contw				/* x */
+	call bn_zero
+	force 0,pdata
+	store 4,mem_tmp5
+	store 4,mem_t2
+	jam 1,mem_tmp0
+	arg mem_tmp1,contw				/* y */
+	call bn_zero
+	arg mem_p,contr
+	arg mem_tmp2,contw				/* a */
+	call memcpy24
+	copy regA,contr
+	arg mem_tmp3,contw				/* b */
+	call memcpy24
+bn_invmod_2:	
+	arg mem_tmp3,contr
+	call bn_eq_zero
+	branch bn_invmod_0,blank
+	arg mem_tmp3,regA
+	arg mem_tmp0,regB
+	call bn_rshifteven
+
+	arg mem_tmp2,regA
+	arg mem_tmp1,regB
+	call bn_rshifteven
+	arg mem_tmp3,regA
+	arg mem_tmp2,regB
+	call bn_bigeq
+	branch bn_invmod_1,positive
+	arg mem_tmp2,regA
+	arg mem_tmp3,regB
+	copy regA,contw
+	call bn_sub
+	arg mem_tmp0,regA
+	arg mem_tmp1,regB
+	copy regB,contw
+	call bn_add
+	ifetch 1,regA
+	iadd regC,regC
+	ifetch 1,regB
+	iadd regC,pdata
+	istore 1,regB
+	branch bn_invmod_2
+bn_invmod_1:
+	arg mem_tmp3,regA
+	arg mem_tmp2,regB
+	copy regA,contw
+	call bn_sub
+	arg mem_tmp1,regA
+	arg mem_tmp0,regB
+	copy regB,contw
+	call bn_add
+	ifetch 1,regA
+	iadd regC,regC
+	ifetch 1,regB
+	iadd regC,pdata
+	istore 1,regB
+	branch bn_invmod_2
+bn_invmod_0:
+	arg mem_tmp0,contw
+	call bn_zero
+	fetch 1,mem_tmp5
+	store 1,mem_tmp0
+	store 1,mem_tmp0a
+	arg mem_tmp0,regA
+	arg mem_tmp1,regB
+	copy regB,contw
+	call bn_addmod
+	arg mem_p,regA
+	arg mem_tmp1,regB
+	copy timeup,contw
+	branch bn_submod
+	
+
+
+	/* cost 64742 clks */
+ecdbl:
+	arg mem_cz,regA
+	arg mem_t2,contw
+	call bn_sqrmod
+	arg mem_t2,regA
+	arg mem_t3,contw
+	call bn_sqrmod
+	arg mem_a,regA
+	arg mem_t3,regB
+	arg mem_t3,contw
+	call bn_mulmod		/* t3=a*z4	*/
+	arg mem_cx,regA
+	arg mem_t2,contw
+	call bn_sqrmod
+	arg mem_t2,contr
+	arg mem_t1,contw
+	call memcpy24
+	arg mem_t1,regA
+	call bn_lshiftmod
+	arg mem_t2,regA
+	arg mem_t1,regB
+	arg mem_t2,contw
+	call bn_addmod
+	arg mem_t2,regA
+	arg mem_t3,regB
+	arg mem_t2,contw
+	call bn_addmod		/* t2=3*x2 + z*z4		D  */
+	arg mem_cx,contr
+	arg mem_t1,contw
+	call memcpy24
+	arg mem_cy,regA
+	arg mem_t3,contw
+	call bn_sqrmod
+	arg mem_t1,regA
+	call bn_lshiftmod
+	arg mem_t1,regA
+	call bn_lshiftmod
+	arg mem_t1,regA		
+	arg mem_t3,regB
+	arg mem_t1,contw
+	call bn_mulmod		/* t1=4x*y2	B	*/
+	arg mem_t3,regA
+	arg mem_t0,contw
+	call bn_sqrmod
+	arg mem_t0,regA
+	call bn_lshiftmod
+	arg mem_t0,regA
+	call bn_lshiftmod		
+	arg mem_t0,regA		
+	call bn_lshiftmod		/* t0=8*y4		C */
+	arg mem_cy,contr
+	arg mem_t3,contw
+	call memcpy24
+	arg mem_t3,regA
+	call bn_lshiftmod
+	arg mem_t3,regA
+	arg mem_cz,regB
+	arg mem_cz,contw
+	call bn_mulmod		
+	arg mem_t2,regA
+	arg mem_t3,contw
+	call bn_sqrmod
+	arg mem_t3,regA
+	arg mem_t1,regB
+	arg mem_t3,contw
+	call bn_submod
+	arg mem_t3,regA
+	arg mem_t1,regB
+	arg mem_cx,contw
+	call bn_submod
+	arg mem_t1,regA
+	arg mem_cx,regB
+	arg mem_t3,contw
+	call bn_submod
+	arg mem_t3,regA
+	arg mem_t2,regB
+	arg mem_t3,contw
+	call bn_mulmod		
+	arg mem_t3,regA
+	arg mem_t0,regB
+	arg mem_cy,contw
+	branch bn_submod
+	
+
+	/* cost 104904	clks */
+ecadd:
+	arg mem_az,regA
+	arg mem_t7,contw
+	call bn_sqrmod
+	arg mem_cx,regA
+	arg mem_t7,regB
+	arg mem_t0,contw
+	call bn_mulmod		/* n1=t0=xa*zb2  */
+	arg mem_az,regA
+	arg mem_t7,regB
+	arg mem_t7,contw
+	call bn_mulmod	
+	arg mem_cy,regA
+	arg mem_t7,regB
+	arg mem_t1,contw
+	call bn_mulmod		/* n2=t1=ya*zb3 */
+	arg mem_cz,regA
+	arg mem_t7,contw
+	call bn_sqrmod
+	arg mem_ax,regA
+	arg mem_t7,regB
+	arg mem_t2,contw
+	call bn_mulmod		/* n3=t2=xb*za2 */
+	arg mem_cz,regA
+	arg mem_t7,regB
+	arg mem_t7,contw
+	call bn_mulmod	
+	arg mem_ay,regA
+	arg mem_t7,regB
+	arg mem_t3,contw
+	call bn_mulmod		/* n4=t3=yb*za3 */
+	arg mem_t0,regA
+	arg mem_t2,regB
+	arg mem_t7,contw
+	call bn_submod		/* n5=t7=n1-n3=t0-t2 */
+	arg mem_t0,regA
+	arg mem_t2,regB
+	arg mem_t0,contw
+	call bn_addmod		/* n7=t0=n1+n3=t0+t2 */
+	arg mem_t1,regA
+	arg mem_t3,regB
+	arg mem_t2,contw
+	call bn_submod		/* n6=t2=n2-n4=t1-t3 */
+	arg mem_t1,regA
+	arg mem_t3,regB
+	arg mem_t1,contw
+	call bn_addmod		/* n8=t1=n2+n4=t1+t3 */
+	arg mem_t1,regA
+	arg mem_t7,regB
+	arg mem_t1,contw
+	call bn_mulmod		/* t1=n8*n5 */
+	arg mem_cz,regA
+	arg mem_az,regB
+	arg mem_t3,contw
+	call bn_mulmod	
+	arg mem_t3,regA
+	arg mem_t7,regB
+	arg mem_cz,contw
+	call bn_mulmod		/* z=za*zb*n5 */
+	arg mem_t7,regA
+	arg mem_t7,contw
+	call bn_sqrmod		/* t7=n5^2 */
+	arg mem_t7,regA
+	arg mem_t0,regB
+	arg mem_t3,contw
+	call bn_mulmod		/* t3=n5^2*n7 */
+	arg mem_t7,regA
+	arg mem_t1,regB
+	arg mem_t1,contw
+	call bn_mulmod		/* t1=n8*n5^3 */
+	arg mem_t2,regA
+	arg mem_cx,contw
+	call bn_sqrmod		
+	arg mem_cx,regA
+	arg mem_t3,regB
+	arg mem_cx,contw
+	call bn_submod		/* x=n6^2-n5^2*n7 */
+	arg mem_cx,contr
+	arg mem_t7,contw
+	call memcpy24
+	arg mem_t7,regA
+	call bn_lshiftmod		/* t7=2*x */
+	arg mem_t3,regA
+	arg mem_t7,regB
+	arg mem_t3,contw
+	call bn_submod		/* t3=n9 */
+	arg mem_t3,regA
+	arg mem_t2,regB
+	arg mem_t2,contw
+	call bn_mulmod		/* t2=n9*n6 */
+	arg mem_t2,regA
+	arg mem_t1,regB
+	arg mem_cy,contw
+	call bn_submod	
+	arg mem_cy,regA
+	arg mem_p,regB
+	arg mem_cy,contw
+	force 0,regC
+	fetch 1,mem_cy
+	isolate1 0,pdata
+	call bn_add,true
+	copy regC,alarm
+	arg mem_cy,regA
+	call bn_rshift6
+	fetch 1,mem_cy5
+	isolate1 0,alarm
+	setflag true,7,pdata
+	store 1,mem_cy5
+	rtn
+
+	/* cost 22276983 clks */
+
+eckp_0:	
+	fetch 1,mem_ec_loopc
+	increase -1,pdata
+	nrtn positive
+	store 1,mem_ec_loopc
+	fetch 1,mem_ec_infinite
+	call ecdbl,blank
+	fetch 1,mem_ec_loopc
+	arg mem_k,contr
+	call bn_testbit
+	branch eckp_0,true
+	fetch 1,mem_ec_infinite
+	nbranch eckp_1,blank
+	call ecadd
+	branch eckp_0
+eckp_1:
+	jam 0,mem_ec_infinite
+	arg mem_ax,contr
+	arg mem_cx,contw
+	call ec_copy
+	branch eckp_0
+
+	/* cost 162522 clks */
+ecunmapz:
+	arg mem_cz,regA
+	arg mem_t3,contw
+	call bn_invmod			/* t3 = 1/z */
+	arg mem_t3,regA
+	arg mem_t1,contw		
+	call bn_sqrmod			/* t1 = 1/z2 */
+	arg mem_cx,regA
+	arg mem_t1,regB
+	arg mem_bx,contw
+	call bn_mulmod
+	arg mem_t3,regA
+	arg mem_t1,regB
+	arg mem_t2,contw			
+	call bn_mulmod			/* t2 = 1/z3 */
+	arg mem_cy,regA
+	arg mem_t2,regB
+	arg mem_by,contw
+	branch bn_mulmod		
+	
+	
+
+sha_endian_swap2:	
+	ifetch 4,contr
+	force 4,regA
+	increase 3,contw
+sha_endian_loop:	
+	istore 1,contw
+	rshift8 pdata,pdata
+	increase -2,contw
+	increase -1,regA
+	nbranch sha_endian_loop,zero
+	increase 5,contw
+	loop sha_endian_swap2
+	rtn	
+
+
+sha_getw:
+	lshift2 queue,pdata
+	iadd timeup,contr
+	ifetch 4,contr
+	rtn
+	
+sha_r:
+	force 16,alarm
+	arg memdat,timeup
+sha_r_loop:	
+	add alarm,-7,queue
+	call sha_getw
+	iforce temp						/* W[t - 7] */
+	add alarm,-16,queue
+	call sha_getw
+	iadd temp,temp					/* W[t-7] + W[t-16] */
+	add alarm,-2,queue
+	call sha_getw
+	shasx pdata,1,pdata
+	iadd temp,temp					/* S1(W[t -  2]) + W[t-7] + W[t-16] */
+	add alarm,-15,queue
+	call sha_getw
+	shasx pdata,0,pdata
+	iadd temp,temp					/* S0(W[t - 15]) + S1(W[t -  2]) + W[t-7] + W[t-16] */
+	lshift2 alarm,pdata
+	iadd timeup,contw
+	istoret 4,contw
+	increase 1,alarm
+	compare 64,alarm,0xff
+	nbranch sha_r_loop,true
+	rtn
+	
+
+sha_init:
+	arg memh0,contr
+	force 7,regext_index
+sha_init_0:	
+	ifetch 4,contr
+	iforce regext
+	increase -1,regext_index
+	branch sha_init_0,positive
+	rtn
+
+sha:
+	bpatchx patch3d_4,mem_patch3d
+	call sha_r		/* preprocessing data into R() */
+	arg memahbak,contw
+	force 0,regext_index
+sha_0:	
+	deposit regext
+	istore 4,contw
+	increase 1,regext_index
+	compare 8,regext_index,0xff
+	nbranch sha_0,true
+	call enable_authrom
+	arg memk,timeup
+	arg memdat,alarm
+	force 64,loopcnt
+sha_loop:	
+	ifetcht 4,alarm
+	ifetch 4,timeup
+	increase 4,timeup
+	increase 4,alarm
+	iadd temp,pdata			/* x+K */
+	force 7,regext_index
+	iadd regext,temp			/* x+K+h */
+	force 4,regext_index
+	shasx regext,3,pdata
+	iadd temp,temp			/* temp = s3(e)+x+K+h */
+	force 5,regext_index
+	deposit regext
+	force 6,regext_index
+	ixor regext,pdata
+	force 4,regext_index
+	iand regext,pdata			/* (e & (f ^ g)) */
+	force 6,regext_index
+	ixor regext,pdata			/* F1(e, f, g) = g ^ (e & (f ^ g)) */
+	iadd temp,temp			/* temp1 = h + S3(e) + F1(e,f,g) + K + x */
+	force 7,regext_index
+	copy temp,regext			/* save to H */
+	force 3,regext_index
+	deposit regext
+	iadd temp,regext			/* save to D */
+	force 0,regext_index
+	deposit regext
+	force 1,regext_index
+	iand regext,temp			/* a & b */
+	ior regext,pdata			/* a | b */			
+	force 2,regext_index
+	iand regext,pdata			/* (c & (a | b)) */
+	ior temp,temp				/* F0:(a & b) | (c & (a | b)) */
+	force 0,regext_index
+	shasx regext,2,pdata
+	iadd temp,pdata			/* temp2 = S2(a) + F0(a,b,c) */
+	force 7,regext_index
+	iadd regext,regext			/* h = temp1 + temp2 */
+	regexrot					/* rotate move h,a-g => a-h */
+	loop sha_loop
+	arg memahbak,contr
+	force 0,regext_index
+sha_1:	
+	ifetch 4,contr
+	iadd regext,regext
+	increase 1,regext_index
+	compare 8,regext_index,0xff
+	nbranch sha_1,true
+	branch disable_authrom
+
+	
+sha_result:
+	arg   memresult,contw
+	force 7,regext_index
+sha_regext_save:
+	deposit regext
+	istore  4,contw 
+	increase -1,regext_index
+	branch   sha_regext_save,positive
+	rtn	
+
+pad_xor:
+//	arg memx_end,contr
+	arg      memdat,contw
+	increase -4,contr
+	sub      loopcnt,16,regA
+pad_xor_0:	    
+	ifetch   4,contr
+	ixor     temp,pdata
+	istore   4,contw	
+	increase -8,contr	
+	loop  pad_xor_0
+	copy     regA,loopcnt
+	deposit  temp
+pad_xor_1:	
+	istore 4,contw
+	loop pad_xor_1
+	rtn
+
+g_noninit_number_confirm:
+	call g_noninit0
+	call sha_result
+	branch g_common0
+
+g_noninit:
+	call g_noninit0
+	branch g_common0
+	
+g_noninit0:
+ 	arg      mem_sp_pubkey_remote_x_end,contr
+	arg      memdat,contw
+	force    6,loopcnt
+	call     memcpy_dword_swap
+	arg      mem_sp_pubkey_local_x_end,contr
+	force    6,loopcnt
+	call     memcpy_dword_swap
+	arg      mem_sp_random_remote_end,contr
+	call     memcpy_dword_swap4
+	call     sha_init
+	call     sha	
+ 	arg      mem_sp_random_local_end,contr
+	arg      memdat,contw
+	branch g_common
+	
+g_init:
+ 	arg      mem_sp_pubkey_local_x_end,contr
+	arg      memdat,contw
+	force    6,loopcnt
+	call     memcpy_dword_swap
+	arg      mem_sp_pubkey_remote_x_end,contr
+	force    6,loopcnt
+	call     memcpy_dword_swap
+	arg      mem_sp_random_local_end,contr
+	call     memcpy_dword_swap4
+	call     sha_init
+	call     sha	
+ 	arg      mem_sp_random_remote_end,contr
+	arg      memdat,contw
+	call g_common
+	branch g_common0
+	
+g_common:	
+	call     memcpy_dword_swap4
+	setarg   0x800000
+	lshift8  pdata,pdata 
+	istore   4,contw
+	force    5,loopcnt
+	call memset0
+	setarg 640
+	istore 4,contw
+	branch sha
+g_common0:
+	fetch 4,memresult
+//	store 4,mem_gkey
+	arg 1000,rega
+	idiv rega
+	call wait_div_end
+	remainder pdata
+	store 4,mem_gkey
+	quotient pdata
+	arg 1000,rega
+	idiv rega
+	call wait_div_end
+	remainder pdata
+	arg 1000,rega
+	imul32 rega,pdata
+	fetcht 4,mem_gkey
+	iadd temp,pdata
+	store 4,mem_gkey
+	rtn
+
+function_f1_no_key:
+	jam 0,mem_passkey_1bit
+	branch function_f1_common
+	
+function_f1:
+	fetch 1,mem_ssp_mode_flag
+	bne  SSP_MODE_PASSKEY_ENTRY_FLAG,function_f1_no_key
+function_f1_common:
+	bpatchx patch3d_5,mem_patch3d
+	setarg   0x363636
+	lshift8  pdata,temp
+	or_into       0x36,temp
+	fetch 2,mem_sp_prarm_stack
+	copy pdata,contr
+	force    4,loopcnt
+	call     pad_xor
+	call     sha_init
+	call     sha
+	fetch 2,mem_sp_prarm_stack+2
+	copy pdata,contr
+	arg      memdat,contw
+	force    6,loopcnt
+	call     memcpy_dword_swap
+	fetch 2,mem_sp_prarm_stack+4
+	copy pdata,contr
+	force    6,loopcnt
+	call     memcpy_dword_swap
+	setarg   0x800000
+	istore   3,contw
+	
+	fetch 1,mem_passkey_1bit
+	
+	istore   1,contw
+	force    0,pdata
+	istore   8,contw
+	setarg   0x0388
+	istore   4,contw
+	call     sha
+	call     sha_result
+	arg      memresult,contr
+	arg      memahsave,contw 
+	call     memcpy32
+    
+	setarg   0x5c5c5c
+	lshift8  pdata,temp
+	or_into       0x5c,temp
+	fetch 2,mem_sp_prarm_stack
+	copy pdata,contr
+	force    4,loopcnt
+	call     pad_xor
+	call     sha_init
+	call     sha
+	arg      memahsave_end,contr
+	arg      memdat,contw
+	force    8,loopcnt
+	call     memcpy_dword_swap
+	setarg   0x800000
+	lshift8  pdata,pdata 
+	istore   4,contw
+	call		bn_zero
+	setarg   0x0300
+	istore   4,contw
+	call     sha
+	branch     sha_result
+	
+	
+function_f2:
+	setarg   0x363636
+	lshift8  pdata,temp
+	or_into       0x36,temp
+	arg      mem_sp_dhkey_end,contr
+	force    6,loopcnt
+	call     pad_xor
+	call     sha_init
+	call     sha
+	fetch 2,mem_sp_prarm_stack+12
+	copy pdata,contr
+	arg      memdat,contw
+	call     memcpy_dword_swap4
+	fetch 2,mem_sp_prarm_stack+14
+	copy pdata,contr
+	call     memcpy_dword_swap4
+
+	setarg   0x62746c
+	lshift8  pdata,pdata
+	or_into       0x6b,pdata       
+	istore   4,contw
+	arg      mem_addr_value_end,contr
+	force    3,loopcnt
+	call     memcpy_dword_swap
+	
+	setarg   0x800000
+	lshift8  pdata,pdata 
+	istore   4,contw
+	force    0,pdata
+	istore   8,contw
+	setarg   0x0380
+	istore   4,contw
+	call     sha
+
+	call     sha_result
+	arg      memresult,contr
+	arg      memahsave,contw 
+	call     memcpy32
+    
+	setarg   0x5c5c5c
+	lshift8  pdata,temp
+	or_into       0x5c,temp
+	arg      mem_sp_dhkey_end,contr 
+	force    6,loopcnt
+	call     pad_xor
+	call     sha_init
+	call     sha
+	arg      memahsave_end,contr
+	arg      memdat,contw
+	force    8,loopcnt
+	call     memcpy_dword_swap
+	setarg   0x800000
+	lshift8  pdata,pdata 
+	istore   4,contw
+	call bn_zero
+	setarg   0x0300
+	istore   4,contw
+	call     sha
+	branch     sha_result
+	
+
+function_f3a:
+	fetch 1,mem_ssp_mode_flag
+	bne  SSP_MODE_PASSKEY_ENTRY_FLAG,function_f3a_no_pin
+function_f3a_common:
+	bpatchx patch3d_6,mem_patch3d
+	setarg   0x363636
+	lshift8  pdata,temp
+	or_into       0x36,temp
+	arg      mem_sp_dhkey_end,contr
+	force    6,loopcnt
+	call     pad_xor
+	call     sha_init
+	call     sha
+	arg      mem_sp_random_remote_end,contr
+	arg      memdat,contw
+	call     memcpy_dword_swap4
+	arg      mem_sp_random_local_end,contr
+	call     memcpy_dword_swap4
+	branch function_f3_common
+
+function_f3a_no_pin:
+	setarg 0
+	store 4,mem_pin
+	branch function_f3a_common
+
+function_f3b_no_pin:
+	setarg 0
+	store 4,mem_pin
+	branch function_f3b_common
+
+
+function_f3b:
+	fetch 1,mem_ssp_mode_flag
+	bne  SSP_MODE_PASSKEY_ENTRY_FLAG,function_f3b_no_pin
+function_f3b_common:
+	setarg   0x363636
+	lshift8  pdata,temp
+	or_into       0x36,temp
+	arg      mem_sp_dhkey_end,contr
+	force    6,loopcnt
+	call     pad_xor
+	call     sha_init
+	call     sha
+
+	arg      mem_sp_random_local_end,contr
+	arg      memdat,contw
+	call     memcpy_dword_swap4
+	arg      mem_sp_random_remote_end,contr
+	call     memcpy_dword_swap4
+function_f3_common:    
+	setarg   0x0    
+	istore   8,contw
+	istore   4,contw
+	fetch 4,mem_pin
+	istore   4,contw
+	
+	copy     contw,temp
+	jam      0x80,mem_addr_padding
+	copy     temp,contw
+	arg      mem_addr_iocap_end,contr
+	call     memcpy_dword_swap4
+
+	call     sha
+    
+	arg      memdat,contw
+	force 7,loopcnt
+	call memset0
+	istore   4,contw
+	setarg   0x03F8
+	istore   4,contw
+	call     sha
+	call     sha_result
+	
+	arg      memresult,contr
+	arg      memahsave,contw 
+	call     memcpy32
+    
+	setarg   0x5c5c5c
+	lshift8  pdata,temp
+	or_into       0x5c,temp
+	arg      mem_sp_dhkey_end,contr 
+	force    6,loopcnt
+	call     pad_xor
+	call     sha_init
+	call     sha
+	arg      memahsave_end,contr
+	arg      memdat,contw
+	force    8,loopcnt
+	call     memcpy_dword_swap
+	setarg   0x800000
+	lshift8  pdata,pdata 
+	istore   4,contw
+	call bn_zero
+	setarg   0x0300
+	istore   4,contw
+	call     sha	
+	branch     sha_result
+		
+/*
+eckp:
+	jam 192,mem_ec_loopc
+	jam 1,mem_ec_infinite
+*/
+eckp_calc_init:
+	jam      192,mem_ec_loopc
+eckp_calc_init_1:    
+	fetch    1,mem_ec_loopc
+	rtn      blank
+	increase -1,pdata
+	store    1,mem_ec_loopc 	
+	arg      mem_k,contr
+	call     bn_testbit
+	branch eckp_calc_init_1,true
+	arg      mem_ax,contr
+	arg      mem_cx,contw
+	branch     ec_copy	
+	
+eckp_calc:
+	call     ecdbl  
+	fetch    1,mem_ec_loopc
+	increase -1,pdata
+	store    1,mem_ec_loopc
+	arg      mem_k,contr
+	call     bn_testbit
+	rtn	true
+	branch     ecadd                
+	             
+memcpy_dword_swap4:
+	force 4,loopcnt
+memcpy_dword_swap:
+	increase -4,contr
+memcpy_dword_swap_loop:
+	ifetch   4,contr
+	istore   4,contw
+	increase -8,contr
+	loop   memcpy_dword_swap_loop 
+    	rtn
+
+else
+sp_initialize:
+	rtn
+
+endif
+	
+
+ifdef SECURE_CONNECTION
+
+sp_initialize_256:	
+	bpatchx patch3d_7,mem_patch3d
+	fetch 1,mem_le_secure_connect_enable
+	branch  le_secure_connection_disable,blank
+	call le_secure_connection_enable
+	call sp_clear_flags
+//	jam SP_KEY_INVALID_256,mem_le_sc_local_key_invalid
+	branch sp_pubkey_calc_256
+    	
+
+
+
+sp_pubkey_calc_256:
+	fetch    1,mem_le_sc_local_key_invalid
+	rtnne SP_KEY_INVALID
+	fetch    1,mem_le_sc_calc
+	rtnne  SP_CALC_STANDBY
+	
+	arg      mem_le_private_key_256,contw 
+	force    15,queue
+	call     random_generator
+	random   pdata
+	rshift   pdata,pdata
+	istore   2,contw 
+
+	arg      mem_k_256,contw
+	arg      mem_le_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_le_sc_calc
+	rtn    
+
+sp_pubkey_generated_256:
+	arg      mem_le_pubkey_local_x_256,contw
+	arg      mem_bx_256,contr
+	call     memcpy64   
+	jam      SP_KEY_VALID_256,mem_le_sc_local_key_invalid
+	jam      SP_CALC_STANDBY,mem_le_sc_calc
+	rtn
+	
+
+
+sp_dhkey_calc_256:
+	fetch    1,mem_sp_dhkey_invalid
+	rtnne  SP_KEY_INVALID
+	fetch    1,mem_le_sc_calc
+	rtnne  SP_CALC_STANDBY
+
+	arg      mem_k_256,contw
+	arg      mem_le_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_le_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_le_sc_calc
+	rtn
+
+
+
+sp_calc_sequence_256:
+	fetch 1,mem_le_secure_connect_enable
+	rtn blank
+	fetch 1,mem_le_sc_calc
+	rtn blank
+	increase 0x80,pdata
+	store    1,mem_le_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 patch3e_0,mem_patch3e
+	call ecunmapz_256
+	fetch 1,mem_le_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 patch3e_1,mem_patch3e
+	setarg 256,pdata
+	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 patch3e_2,mem_patch3e
+	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		
+
+else
+sp_initialize_256:
+	rtn
+
+endif
+
+
Index: DpiSwitch/program/ui.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/ui.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/ui.prog	(working copy)
@@ -0,0 +1,701 @@
+ui_init:
+	call lpm_disable_exen_output
+	rtn wake
+	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 patch3e_3,mem_patch3e
+	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
+	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
+	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:
+	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 gpio_config_output
+	call ui_led_off_static
+	increase LED_OFFSET_LENGTH,regb
+	loop ui_led_init_loop
+	rtn
+
+	
+//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 patch3e_4,mem_patch3e
+	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
+	//call ice_break
+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:
+	bpatchx patch3e_5,mem_patch3e
+	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 patch3e_6,mem_patch3e
+	call ui_ipc_get_lock
+	copy rega,pdata
+	store 4,mem_ipc_rega_temp
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_in
+	fetch 4,mem_ipc_rega_temp
+	copy pdata,rega
+	branch ui_ipc_put_lock
+
+ui_ipc_send_cmd:
+	bpatchx patch3e_7,mem_patch3e
+	call ui_ipc_get_lock
+	copy rega,pdata
+	store 4,mem_ipc_rega_temp	
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_in
+	fetch 4,mem_ipc_rega_temp
+	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 patch3f_0,mem_patch3f
+	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 patch3f_1,mem_patch3f
+	copy temp,pdata
+	rtn blank
+ 	beq BT_CMD_START_DISCOVERY,check_51cmd_start_discovery
+  	beq BT_CMD_STOP_DISCOVERY,check_51cmd_stop_discovery
+  	beq BT_CMD_RECONNECT,check_51cmd_reconnect
+  	beq BT_CMD_ENTER_SNIFF_SUBRATING,check_51cmd_enter_sniff_subrating
+  	beq BT_CMD_EXIT_SNIFF_SUBRATING,check_51cmd_exit_sniff_subrating
+  	beq BT_CMD_SNIFF_TEST,check_51cmd_sniff_test
+	beq BT_CMD_START_INQUIRY,check_51cmd_inq
+	beq BT_CMD_STOP_INQUIRY,check_51cmd_stop_inq
+	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
+	beq BT_CMD_LE_SMP_SECURITY_REQUEST,check_51cmd_le_smp_sec_req
+	beq BT_CMD_BB_RECONN_CANCEL,check_51cmd_bb_reconn_cancel
+	//context related, process in context
+	store 1,mem_fifo_temp
+	bpatchx patch3f_2,mem_patch3f
+	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
+	beq BT_CMD_DISCONNECT,check_51cmd_disconnect
+  	beq BT_CMD_ENTER_SNIFF,cmd_in_sniff
+  	beq BT_CMD_EXIT_SNIFF,cmd_exit_sniff
+  	beq BT_CMD_SET_PIN_CODE,check_51cmd_pincode
+	beq BT_CMD_LE_DISCONNECT,check_51cmd_le_disconnect
+	beq BT_CMD_LE_UPDATE_CONN,check_51cmd_ble_update_connect_param
+	beq BT_CMD_ROLE_SWITCH,check_51cmd_role_switch
+	beq BT_CMD_STORE_RECONN_INFO_LE,eeprom_store_le_reconn_info
+	beq BT_CMD_STORE_RECONN_INFO_BT,eeprom_store_bd_reconn_info
+	beq BT_CMD_DHKEY_NOT_ACCEPT,check_51cmd_dhkey_not_accept
+	beq BT_CMD_STORE_RECONN_INFO,check_51cmd_store_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 0x01	
+check_51cmd_start_discovery:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_DISCOVERY
+	store 2,mem_ui_state_map
+	jam 3,mem_scan_mode
+	rtn
+
+
+//command opcode 0x02	
+check_51cmd_stop_discovery:
+	jam 0,mem_hid_handshake_timer_count
+	jam 0,mem_scan_mode
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_DISCOVERY
+	store 2,mem_ui_state_map
+	rtn	
+
+
+//command opcode 0x03	
+check_51cmd_reconnect:	
+	jam hci_cmd_create_conn,mem_hci_cmd
+	rtn	
+
+
+//command opcode 0x04
+check_51cmd_disconnect:
+	jam LMP_DETACH,mem_lmo_opcode2
+	jam OTHER_END_TERMINATED,mem_disconn_reason_send
+	rtn
+
+	
+//command opcode 0x07
+check_51cmd_enter_sniff_subrating:
+	rtn
+
+
+//command opcode 0x08
+check_51cmd_exit_sniff_subrating:
+	rtn	
+
+
+//command opcode 0x09
+check_51cmd_sniff_test:
+	rtn	
+
+
+//command opcode 0x10
+check_51cmd_pincode:
+	jam pincode_state_pincode_ready,mem_pincode_state
+	branch cmd_pair
+
+
+//command opcode 0x11
+check_51cmd_inq:
+	rtn
+
+
+//command opcode 0x12
+check_51cmd_stop_inq:
+	rtn
+
+
+//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
+	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
+
+
+//command opcode 0x29
+check_51cmd_role_switch:
+  	jam LMP_SLOT_OFFSET,mem_lmo_opcode2
+	set1 mark_switch_initiated,mark
+	nrtn master
+	jam SWITCH_FLAG_INIT,mem_switch_flag
+	jam LMP_SWITCH_REQ ,mem_lmo_opcode2
+	fetch 1,mem_connection_options
+	set0 CONNECTION_SWITCH,pdata
+	store 1,mem_connection_options
+	rtn
+
+
+//command opcode 0x30
+check_51cmd_bb_reconn_cancel:
+	force page_length_timer,queue
+	branch timer_stop
+
+
+//command opcode 0x33
+check_51cmd_dhkey_not_accept:
+	call tid_set_reply
+	jam LMP_DHKey_Check,mem_lmi_opcode2
+	branch parse_lmp_dhkey_check_reject	
+
+
+ui_check_paring_button:
+	fetch 1,mem_ui_state_map
+	rtnbit0 UI_STATE_BTN_DOWN
+	rtnbit0 UI_STATE_BT_RECONNECT
+	branch check_51cmd_bb_reconn_cancel
+
+
+
+///////////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:
+	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:
+	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
+
+
+//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: DpiSwitch/program/utility.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/utility.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/utility.prog	(working copy)
@@ -0,0 +1,614 @@
+
+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
+push_stack:
+	deposit contw
+	store 2, mem_contw
+	storet 8,mem_temp
+	deposit timeup
+	store 4,mem_timeup
+	call push_stack_rega_b_c
+	deposit contr
+	store 2, mem_contr
+	rtn
+
+push_stack_rega_b_c:
+	deposit rega
+	store 4, mem_rega
+	deposit regb
+	store 4, mem_regb
+	deposit regc
+	store 3, mem_regc
+	rtn
+
+pop_stack:
+	fetcht 8,mem_temp
+	fetch 4,mem_timeup
+	iforce timeup
+	call pop_stack_rega_b_c
+	fetch 2, mem_contw
+	iforce contw
+	fetch 2, mem_contr
+	iforce contr
+	rtn
+
+pop_stack_rega_b_c:
+	fetch 4, mem_rega
+	iforce rega
+	fetch 4, mem_regb
+	iforce regb
+	fetch 3,mem_regc
+	iforce regc
+	rtn
+
+get_contw:
+	fetch 2,mem_contw
+	copy pdata,contw
+	rtn
+get_contr:
+	fetch 2,mem_contr
+	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_hold_contw
+	copy contr,pdata
+	store 2,mem_hold_contr
+	rtn
+load_cont_pointers:
+	fetch 2,mem_hold_contw
+	copy pdata,contw
+	fetch 2,mem_hold_contr
+	copy pdata,contr
+	rtn
+
+memcpy96:
+	call memcpy32
+memcpy64:
+	call memcpy32
+	branch memcpy32
+memcpy12:
+	call memcpy8
+memcpy4:
+	ifetch 4,contr
+	istore 4,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_10ms:
+	arg 10,loopcnt
+delay_ms_wait:
+	nop 12000
+	loop delay_ms_wait
+	rtn
+
+bn_zero:
+	force 3,loopcnt
+memset0:
+	force 0,pdata
+memset8:
+	istore   8,contw
+	loop   memset8
+	rtn
+
+memset0_8:
+	force 0,pdata
+	istore 8,contw
+	rtn
+memset0_4:
+	force 0,pdata
+	istore 4,contw
+	rtn	
+	
+clear_mem_256:
+	force 4,loopcnt
+	branch memset0 
+clear_mem_512:
+	force 8,loopcnt
+	branch memset0 
+
+clear_mem:
+	deposit loopcnt
+	rtn blank
+	setarg 0
+clear_mem_loop:
+	istore 1,contw
+	loop clear_mem_loop
+	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 patch3f_3,mem_patch3f
+	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
+
+
+memcpy_fast:
+	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
+	arg mem_timers,contw
+	iforce temp
+	lshift queue,pdata
+	iadd contw,contw
+	istoret 2,contw
+	bpatchx patch3f_4,mem_patch3f
+	rtn
+
+timer_check_timeout:
+	arg 0x800,timeup
+	lshift16 timeup,timeup
+	iadd timeup,pdata
+	rtn
+
+
+timer_reinit:
+	arg 0,queue
+timer_check:
+	bpatchx patch3f_5,mem_patch3f
+	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
+	setarg 3750
+	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
+	arg -61786,temp
+	iadd temp,pdata
+	set0 64,pdata
+	rtn
+
+clk2rt:
+	iforce contr
+	rshift16 pdata,pdata
+	arg 3750,temp
+	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:
+	arg 3750,temp
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	lshift16 pdata,pdata
+	remainder temp
+	ior temp,temp
+	rtn
+
+
+
+//input:contru 
+//output:temp
+//used register: temp regc
+string2dec_from_uart:
+	arg 0,temp
+string2dec_from_uart_done:
+         copy temp,regc
+	ifetch 1,contru
+	call uchar2dialog	
+	copy regc,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
+
+pn9:
+	copy temp,alarm
+	setarg 0x1ff
+	force 0,regb
+pn9_loop:	
+	rshift3 pdata,rega
+	rshift rega,rega
+	ixor rega,rega
+	isolate1 0,rega
+	setflag true,9,pdata
+	rshift temp,temp
+	isolate1 0,pdata
+	setflag true,7,temp
+	rshift pdata,pdata
+	increase 1,regb
+	compare 0,regb,0x7
+	nbranch pn9_loop,true
+	istoret 1,contw
+	loop pn9_loop
+	copy alarm,temp
+	rtn
+
+
+wait_div_end:	
+	rtn modone
+	branch wait_div_end
+
+
+
+//input:
+//	count:loopcnt str1:rega str2:regb
+//output:
+//	same:set falg true ,diff set falg false
+// 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
+	force 0,null
+	rtn
+
+	/* 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_mem:
+	arg 0x200,loopcnt
+	arg 0x4000,contw
+	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:
+	hfetch 2,core_uart_txitems
+	nbranch wait_uarttx,blank
+	rtn
+
+ice_break:
+	jam 0x1,core_ice_ctrl
+	rtn
+
+ice_setbp:
+	hstore 2,core_ice_break0
+	hfetch 1,core_ice_ctrl
+	set1 4,pdata
+	hstore 1,core_ice_ctrl
+	rtn
+ice_setbp2:
+	hstore 2,core_ice_break1
+	hfetch 1,core_ice_ctrl
+	set1 6,pdata
+	hstore 1,core_ice_ctrl
+	rtn
+	
+ice_set_write_bp:
+	hstore 2,core_ice_break0
+	jam 0x30,core_ice_ctrl
+	rtn
+	
+
+
+test_enable_white:
+	hfetch 1,core_config
+	set0 whiteoff_bit,pdata
+	hstore 1,core_config			/* whitening on */
+	rtn
+
+check_uart_tx_buff:
+	hfetch 2,core_uart_txitems
+	arg UART_AIR_CONTROL_THRESHOLD,temp
+pdata_sub_temp:
+	isub temp,null
+	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 patch3f_6,mem_patch3f
+	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 patch3f_7,mem_patch3f
+	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
+	
+not_greater_than:
+	isub temp,null
+	nrtn positive
+	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
+
+disable_blank:
+	setarg 1
+	rtn
+
+enable_blank:
+	setarg 0
+	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
+
+
Index: DpiSwitch/program/z.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/z.prog	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/program/z.prog	(working copy)
@@ -0,0 +1,806 @@
+
+org 0x10001
+z_entrance0:
+	beq ZCODE_00,z_page_wait_fhs_reply_ok
+	beq ZCODE_01,z_mouse_bb_disconnected
+	beq ZCODE_02,z_hid_rx_process
+	rtn
+
+z_page_wait_fhs_reply_ok:
+ 	fetch 1, mem_page_rcv_fhs
+	increase 1,pdata
+	store 1, mem_page_rcv_fhs
+	call prepare_newconn
+z_master_newconn_loop:
+ 	set1 mark_first_packet,mark
+	call master_newconn_once
+	branch z_newconn_poll_responded,sync
+	set0 mark_first_packet,mark
+	call new_conn_timeout
+	nbranch z_master_newconn_loop,blank
+	branch page_restart
+z_newconn_poll_responded:
+	set0 mark_first_packet,mark
+	branch newconn_poll_responded
+
+z_mouse_bb_disconnected:
+	jam 0,mem_mouse_enter_sniff_count
+	jam 0x0e,mem_sniff_param_interval	//115Hz
+	call mouse_bb_discon_clear_stack
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,mouse4_0_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	bbit1 APP_DISC_AFTER_PAIRING,z_mouse_event_light_state_pairing
+	bbit1 APP_DISC_AFTER_RECONN,z_mouse_event_light_state_hibernate
+	bbit1 APP_DISC_AFTER_SNIFF,z_mouse_event_light_state_hibernate
+	branch mouse_start_discovery
+	
+z_mouse_event_light_state_pairing:
+	bbit1 APP_DISC_AFTER_HANDSHAKE,z_mouse_event_light_state_hibernate
+	bbit1 APP_DISC_AFTER_SNIFF,z_mouse_event_light_state_hibernate
+	branch mouse_start_discovery
+z_mouse_event_light_state_hibernate:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	call app_disconn_reason_clear
+	call p_mouse_check_key_gpio	//mult_key pair
+	beq MOUSE_LMR_BUTTON,z_mouse_null_enter_hibernate_enable
+	branch app_bb_hibernate
+
+z_mouse_null_enter_hibernate_enable:	//ble never connected
+	jam 1,mem_mouse_null_enter_hibernate_flag
+	jam 40,mem_mouse_null_enter_hibernate_timer	//lmr 3s
+	rtn	
+
+z_hid_rx_process:
+	fetch 2,mem_l2cap_payload_ptr
+	copy pdata,contr
+	ifetch 1,contr
+	store 1,mem_l2cap_rcv
+	and pdata,0x0f,temp
+	rshift4 pdata,pdata //hidtype
+	beq hid_type_set_protocol,z_hid_rx_set_protocol
+	beq HID_TYPE_CONTROL,z_hid_rx_process_hid_control
+	branch hid_rx_process+6
+z_hid_rx_set_protocol:
+	call hid_rx_process_handshake
+	jam 0,mem_mouse_bt_boot_mode
+	fetch 1,mem_l2cap_rcv
+	isolate1 0,pdata
+	rtn true
+	jam 1,mem_mouse_bt_boot_mode	//boot mode
+	rtn
+
+z_hid_rx_process_hid_control:
+	copy temp,pdata
+	beq HID_CONTROL_P_VIRTUALCABLEUNPLUG,p_mouse_irtual_cable_unplug
+	branch hid_rx_process_hid_control+2
+
+org 0x20001
+
+z_entrance1:
+	beq ZCODE_10,z_send_lmp
+	beq ZCODE_11,z_mouse4_0_check_reconn_target
+	rtn
+
+z_mouse4_0_check_reconn_target:
+	call p_mouse_mode_bt_device1_multi_led_blink3s
+	jam 1,mem_le_send_security_request_flag
+	jam 1,mem_mouse_le_reconnect_flag
+	fetch 2,mem_mouse_direct_timeout
+	store 2,mem_mouse_direct_timer
+	call p_mouse_store_eeprom_enable
+	call app_lpm_mult_disable
+	arg mem_le_scan_data,contr
+	call p_le_adv_data_update
+	jam 0x1f,mem_le_scan_data_len
+	branch check_51cmd_adv
+
+z_send_lmp:
+	disable user
+	call lmo_fifo_process
+
+ifdef DEBUGLOG
+ifdef DEBUGLOG_SEND_LMP
+	setarg DEBUGLOG_DTYPE_SEND_LMP
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_lmi_opcode
+	store 1,mem_debuglog_dataval+1
+	fetch 1,mem_lmp_to_send
+	store 1,mem_debuglog_dataval
+	fetch 1,mem_lmp_to_send
+	store 2,mem_debuglog_dataval
+	ncall debuglog_push,blank
+endif
+endif
+	
+	fetch 1,mem_lmp_to_send
+	rtn blank
+	bbit1 7,z_send_lmp_escape
+	beq LMP_ACCEPTED,z_send_lmp_accepted
+	beq LMP_SETUP_COMPLETE,z_send_lmp_setup_complete
+	beq LMP_SNIFF_REQ, z_send_lmp_sniff_req
+	branch send_lmp0
+z_send_lmp_escape:
+	beq LMP_EXT_FEATURES_RES,z_send_lmpext_features_res
+	beq LMP_EXT_FEATURES_REQ,z_send_lmpext_features_req	
+	branch send_lmp_escape
+z_send_lmpext_features_res:
+	call z_check_ssp_enable
+	fetch 1,mem_lmp_to_send
+	branch send_lmpext_features_res
+z_send_lmpext_features_req:
+	call z_check_ssp_enable
+	fetch 1,mem_lmp_to_send
+	branch send_lmpext_features_req
+z_check_ssp_enable:
+	fetch 1,mem_ssp_enable 
+	branch ssp_disable,blank
+	branch ssp_enable
+
+z_send_lmp_setup_complete:
+	jam 1,mem_bt_send_lmp_setup_complete
+	branch send_lmp_setup_complete
+
+z_send_lmp_sniff_req:
+	jam 4,mem_mouse_bt_send_first_package_timer
+	branch send_lmp_sniff_req
+	
+
+z_send_lmp_accepted:
+	force 2,pdata
+	call msg_send_lmp
+	fetch 1,mem_lmi_opcode
+	istore 1,contw
+	store 1,mem_lmi_opcode_temp
+	call send_lmp_follow
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_lmi_opcode_temp
+	store 1,mem_debuglog_dataval
+	call debuglog_push	
+endif
+endif
+	fetch 1,mem_lmi_opcode_temp
+	beq LMP_MAX_SLOT_REQ,z_send_lmp_accepted_max_slot_req	//sumsung a5100 patch
+	branch send_lmp_accepted+7
+
+z_send_lmp_accepted_max_slot_req:
+	fetch 1,mem_bt_rcvd_switch_req_accept
+	rtn blank
+	jam 0,mem_bt_rcvd_switch_req_accept
+	fetch 1,mem_bt_send_lmp_setup_complete
+	rtnne 2
+	jam 1,mem_bt_send_max_slot_req_accept_after_switch
+	copy clkn_bt,pdata
+	store 4,mem_aurand_send_delay_time
+	rtn
+	
+org 0x30001
+
+z_entrance2:
+	beq ZCODE_20,z_le_update_param
+	beq ZCODE_21,z_le_update_channel_map
+	rtn
+
+z_le_update_param:
+	call z_mouse_le_conn_param_check
+	branch le_update_param+8
+z_mouse_le_lpm_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+z_mouse_le_conn_param_lpm_enable:
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	rtn
+z_mouse_le_conn_param_lpm_disable:
+	jam LE_LPM_DISABLE,mem_mouse_le_conn_param_reject
+	rtn
+z_mouse_le_conn_param_check:
+	fetch 1,mem_le_new_conninterval
+	sub pdata,LE_INTERVAL_15MS,null
+	nbranch z_mouse_le_conn_param_lpm_disable,positive
+	fetch 1,mem_le_new_connslavelatency
+	fetcht 1,mem_lpm_mult_init
+	isub temp,null
+	branch z_mouse_le_lpm_mult_reinit,positive
+	fetch 1,mem_le_new_connslavelatency
+	store 1,mem_lpm_mult
+	branch z_mouse_le_conn_param_lpm_enable
+
+z_le_update_channel_map:
+	fetch 1,mem_le_state
+	rtnbit0 lestate_update_map
+	call z_le_channel_map_overflow_check
+	nrtn user
+	branch le_update_channel_map+3
+z_le_channel_map_overflow_check:
+	enable user
+	fetch 1,mem_le_event_count+1
+	rshift4 pdata,pdata
+	rtnne 0x0f
+	fetch 1,mem_le_instant+1
+	rshift4 pdata,pdata
+	rtnne 0x00
+	branch disable_user
+
+org 0x40001
+
+z_entrance3:
+	beq ZCODE_30,z_mouse_start_discovery
+	rtn
+
+z_mouse_start_discovery:
+	call p_mouse_tx_power_init
+	jam 0,mem_le_send_security_request_flag
+	jam 1,mem_mouse_start_discovery_enable
+	jam MODE_BT_DEVICE1,mem_device_flag
+	jam 0,mem_mouse_clear_sensor_data_flag
+z_mouse_start_discovery_norandom:
+ifdef BLE_FAST_CONN_ENABLE
+	fetch 6,mem_le_normal_lap
+	store 6,mem_le_lap
+endif
+	call app_lpm_mult_disable
+	fetch 2,mem_discovery_timeout
+	store 2,mem_mouse_discovery_timer
+	jam 6,mem_connection_options
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	store 2,mem_mouse_direct_timer
+	call p_mouse_store_eeprom_enable
+	call mouse_bt_discovery_button_down_disable
+
+	call p_mouse_load_flash_device_info
+	fetch 1,mem_xrecord_mode
+	sub pdata,REC_3_MODE,null
+	call z3_check_51cmd_adv,zero
+
+	fetch 1,mem_device_option
+	isolate1 MODE_3_MOUSE,pdata
+	call check_51cmd_start_discovery,true
+	branch p_mouse_discovery_multi_led_blink
+
+z3_check_51cmd_adv:
+ifdef BLE_FAST_CONN_ENABLE
+	fetch 6,mem_le_normal_lap
+	store 6,mem_le_lap
+endif
+	call p_mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+org 0x50001
+
+z_entrance4:
+	beq ZCODE_40,z_g24_start_24g_mode
+	beq ZCODE_41,z_g24_auto_pair_start	
+	beq ZCODE_42,z_mouse_24g_pairing_button
+	rtn
+
+z_g24_start_24g_mode:
+	call z_g24_factory_check
+	branch p_g24_auto_pair_start,user
+	set1 mark_24g,mark
+	fetch 1,mem_24g_conn_sm
+	set1 STATE_24G_RECONN,pdata
+	store 1,mem_24g_conn_sm
+	call p_g24_syncword_crc8
+	call p_g24_ch
+	branch z_g24_auto_pair_timeout_init
+
+z_g24_factory_check:
+	arg 2,loopcnt
+	arg mem_24g_addr,contr
+	call enable_user
+	setarg 0xffff
+z4_pdata_0xff_check_loop:
+	ifetcht 2,contr
+	isub temp,null
+	ncall disable_user,zero
+	loop z4_pdata_0xff_check_loop
+	rtn
+
+z_g24_auto_pair_start:
+	set1 mark_24g,mark
+	fetch 1,mem_24g_conn_sm
+	set1 STATE_24G_PAIR,pdata
+	store 1,mem_24g_conn_sm
+z_g24_auto_pair_timeout_init:
+	setarg G24_DISCONN_NODATA_TIMER
+	store 2,mem_24g_stop_g24_mode_timeout
+	jam 0,mem_24g_stop_g24_mode
+	rtn	
+	
+z_mouse_24g_pairing_button:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G
+	rtnbit1 MOSUE_24G_PAIRING_FLAG
+	rtnmark1 mark_24g
+	call mouse_devce_led_off
+	arg MOSUE_24G_PAIRING_FLAG,queue
+	call mouse_enable_function_flag
+	setarg 0
+	store 2,mem_mouse_direct_timer
+	store 1,mem_mouse_send_blank_timer
+	store 2,mem_24g_check_dongle_times
+	call mouse_stop_discovery
+	branch p_g24_auto_pair_start
+	
+
+org 0x60001
+
+z_entrance5:
+	beq ZCODE_50,z_mouse_24g_pairing_complete
+	beq ZCODE_51,z_mouse_24g_attempt_fail
+	beq ZCODE_52,z_mouse_24g_attempt_success
+	beq ZCODE_53,z_g24_reconn_dispatch
+	rtn
+
+z_mouse_24g_pairing_complete:
+	arg MOSUE_24G_PAIRING_FLAG,queue
+	call mouse_disable_function_flag
+	jam 0,mem_mouse_move_flag
+	call mouse_read_sensor_common
+	call p_mouse_tx_power_init
+	branch z_mouse_24g_attempt_success
+
+z_mouse_24g_attempt_fail:
+	jam G24_TX_TIMER_INT_DISABLE,mem_24g_transmit_by_interrupt
+	call p_mouse_tx_power_init
+	call p_g24_check_51cmd_stop_24g
+	branch app_enter_hibernate
+
+z_mouse_24g_attempt_success:
+	call z_g24_auto_pair_timeout_clear
+	call p_mouse_null_enter_hibernate_disable
+	call mouse_no_data_timer_init
+	fetch 4,mem_24g_addr
+	store 4,mem_mouse_24g_addr
+	call mouse_cheak_select_24gdevice
+	branch p_mouse_store_flash_device_info
+
+z_g24_auto_pair_timeout_clear:
+	setarg 0
+	store 3,mem_24g_stop_g24_mode
+	rtn
+
+z_g24_reconn_dispatch:
+	fetch 1,mem_24g_stop_g24_mode
+	beq 1,g24_stop_24g_mode
+	call z_g24_tx_attemp_data_prep
+	call p_g24_transmit_receive_ack
+	nbranch p_g24_ch,sync
+	nbranch p_g24_ch,user3
+	fetch 1,mem_24g_conn_sm
+	set0 STATE_24G_RECONN,pdata
+	store 1,mem_24g_conn_sm
+z_g24_tx_attemp_dongle_succ:
+	jam 0,mem_mouse_long_mult_flag
+	call g24_app_tx_attempt_success
+	call p_g24_txbuf_clear
+	branch p_g24_transmit_by_interrupt_enable
+
+
+z_g24_store_dongle_addr:
+	fetch 4,mem_24g_rxpayload+2
+	branch p_g24_update_addr_and_synccrc8
+
+z_g24_tx_attemp_data_prep:
+	jam 0xff,mem_24g_common_temp
+	fetch 1,mem_24g_data_type
+	store 1,mem_24g_common_temp+1
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_common_temp+2
+	arg 6,temp
+	arg mem_24g_common_temp,rega
+	call p_g24_put_data_in_buff
+	branch p_g24_transmit_prep
+
+	
+endif
+
+
+org 0x70001
+
+z_entrance6:
+//	beq ZCODE_60,z_g24_pair_dispatch
+z_g24_pair_dispatch:
+	fetch 1,mem_24g_stop_g24_mode
+	beq 1,g24_stop_24g_mode
+	jam 0xff,mem_24g_common_temp
+	fetch 1,mem_24g_data_type
+	store 1,mem_24g_common_temp+1
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_common_temp+2
+	arg 6,temp
+	arg mem_24g_common_temp,rega
+	call p_g24_put_data_in_buff
+	call p_g24_transmit_prep
+	call p_g24_transmit_receive_ack
+	nbranch z_g24_pair_txdata_retry,sync
+	nbranch z_g24_pair_txdata_retry,user3
+//	fetch 1,mem_24g_conn_sm
+//	set0 STATE_24G_PAIR,pdata
+//	store 1,mem_24g_conn_sm
+	jam 0,mem_24g_conn_sm
+	call p_g24_ackpayload_parse
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_allpowerful_addr
+	isub temp,null
+	branch z_g24_auto_pair_skip_rx_length,zero
+	fetch 1,mem_24g_rxdata_length	//ack payload length
+	rtn blank
+z_g24_auto_pair_skip_rx_length:
+	call p_mouse_tx_power_init
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_paring_addr
+	isub temp,null
+	branch p_g24_start_pairing_sm1,zero
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_device_addr
+	isub temp,null
+	call z7_g24_store_dongle_addr,zero
+	jam 0,mem_mouse_long_mult_flag
+	call g24_app_tx_attempt_success
+	call p_g24_txbuf_clear
+	branch p_g24_transmit_by_interrupt_enable
+
+z7_g24_store_dongle_addr:
+	fetch 4,mem_24g_rxpayload+2
+	branch p_g24_update_addr_and_synccrc8
+
+z_g24_pair_txdata_retry:
+z_g24_pair_txdata_switch:
+	fetch 1,mem_24g_auto_paring_switch
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_24g_auto_paring_switch
+	beq 0,z_g24_auto_pair_first_attemp
+	beq 2,z_g24_auto_pair_all_powerful
+	branch p_g24_pair_init
+	
+z_g24_auto_pair_first_attemp:
+	call p_mouse_tx_power_init
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_addr
+	fetch 1,mem_24g_pair_current_ch_num
+	store 1,mem_24g_current_ch_number
+	call z_g24_ch_syncword_crc8_init
+	storet 1,mem_24g_pair_current_ch_num
+	rtn
+
+z_g24_ch_syncword_crc8_init:
+	call p_g24_syncword_crc8
+	branch p_g24_ch
+
+z_g24_auto_pair_all_powerful:
+	jam TX_POWER_PAIR,mem_tx_power
+	fetch 4,mem_24g_allpowerful_addr
+	store 4,mem_24g_addr
+	fetch 1,mem_24g_powerful_current_ch_num
+	store 1,mem_24g_current_ch_number
+	call z_g24_ch_syncword_crc8_init
+	storet 1,mem_24g_powerful_current_ch_num
+	rtn
+
+org 0x80001
+
+z_entrance7:
+	beq ZCODE_70,z_mouse_irtual_cable_unplug
+	rtn
+
+z_mouse_irtual_cable_unplug:
+	setarg -1
+	store 6,mem_plap
+	jam REC_3_MODE,mem_record_bt_mode
+	jam 0xff,mem_mouse_fast_conn_flag
+	call mouse_before_store_reconn_info
+	jam 0xff,mem_device1_type
+	branch p_mouse_store_flash_device_info
+
+
+
+
+org 0x90001
+
+z_entrance8:
+	beq ZCODE_80,z_mouse_setting_config
+	rtn
+
+z_mouse_setting_config:
+ifdef G24
+	fetch 4,mem_lap
+	store 4,mem_24g_device_addr
+endif
+//	//disable usb function
+//	hfetch 1,core_usb_config
+//	set0 4,pdata
+//	hstore 1,core_usb_config
+	call mouse_gpio_init
+	call p_mouse_multi_led_gpio_set_float
+	fetcht 1,mem_flash_ncs_gpio
+	call gpio_config_output
+	
+	call mouse_param_init
+
+//	setarg 0x1802	//16M XTAL
+//	store 2,mem_fcomp_mul	
+	
+ifdef CLASSIC_BT
+	call z_mouse_bt_sdp_update
+endif	
+	setarg 0
+	store 2,mem_lpm_interval
+	call load_adc_init
+	call mouse_adc_init
+ifdef BLE	
+	call le_set_config_fixed_ltk
+	call le_set_justwork
+	call le_set_fixed_ltk
+	call le_set_config_read_authentication
+endif
+	branch p_mouse_load_flash_info_check
+
+
+ifdef CLASSIC_BT
+z_mouse_bt_sdp_update:
+	call enable_authrom
+	arg 0x8c00,contr
+	arg mem_mouse_uuid_list,contw
+	arg 369,loopcnt
+	call memcpy
+	//Attribute: HID SSR Host Max Latency
+	setarg 0x0f0209
+	istore 3,contw
+	setarg 0x120009
+	istore 3,contw
+	//Attribute: HID SSR Host Min Timeout
+	setarg 0x100209
+	istore 3,contw
+	setarg 0x000009
+	istore 3,contw
+	arg 0x8d71,contr
+	arg 265,loopcnt
+	call memcpy
+	
+	jam 0,mem_mouse_uuid_list+23	//Service Record Handle: 0x 00 01 00 00
+	jam 0x6d,mem_mouse_uuid_list+15	//total length
+	setarg 0x401f
+	store 2,mem_mouse_uuid_list+357	//timeout
+	setarg 0x6d04
+	store 2,mem_mouse_uuid_list+462	//VID
+	setarg 0x16b0
+	store 2,mem_mouse_uuid_list+468	//PID
+
+	setarg mem_mouse_uuid_list				//bt sdp start address
+	store 2,mem_ui_uuid_table
+	rtn
+endif	
+
+
+
+org 0xa0001
+
+z_entrance9:
+	beq ZCODE_90,z_g24_pairing_sm
+	beq ZCODE_91,z_g24_paring_mode
+	rtn
+
+z_g24_pairing_sm:
+	fetch 1,mem_24g_ensure
+	beq ENSURE_ON_24G,enable_user
+	fetch 1,mem_24g_pairing_sm
+	beq STATE_24G_PAIRING_1,z_g24_pairing_sm_1
+	beq STATE_24G_PAIRING_2,z_g24_pairing_sm_2
+	beq STATE_24G_PAIRING_3,z_g24_pairing_sm_3
+	branch assert
+
+z_g24_pairing_sm_1:
+	jam STATE_24G_PAIRING_1_WAITING_ACK,mem_24g_pairing_sm
+	jam 0xaa,mem_24g_common_temp
+	branch z_g24_pairing_sm_common
+z_g24_pairing_sm_2:
+	jam STATE_24G_PAIRING_2_WAITING_ACK,mem_24g_pairing_sm
+	jam 0x55,mem_24g_common_temp
+	branch z_g24_pairing_sm_common
+z_g24_pairing_sm_3:
+	jam STATE_24G_PAIRING_3_WAITING_ACK,mem_24g_pairing_sm
+	jam 0x22,mem_24g_common_temp
+z_g24_pairing_sm_common:
+	fetch 1,mem_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_24g_common_temp+1
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_common_temp+2
+z_g24_put_pairing_data_in_buff:
+	jam 0,mem_24g_common_temp+6
+	arg mem_24g_common_temp,rega
+	arg 7,temp
+	call p_g24_put_data_in_buff
+	call p_g24_txdata_enable_tx
+	branch enable_user
+
+z_g24_paring_mode:
+	fetch 1,mem_24g_pairing_sm
+	rtneq STATE_24G_PAIRING_SUCCESS
+	beq STATE_24G_PAIRING_1_WAITING_ACK,z_g24_pairing_sm_1_waiting_ack
+	beq STATE_24G_PAIRING_2_WAITING_ACK,z_g24_pairing_sm_2_waiting_ack
+	beq STATE_24G_PAIRING_3_WAITING_ACK,z_g24_pairing_sm_3_waiting_ack
+	rtn
+
+z_g24_pairing_sm_1_waiting_ack:
+	jam STATE_24G_PAIRING_2,mem_24g_pairing_sm
+	branch p_g24_transmit_abandon
+z_g24_pairing_sm_2_waiting_ack:
+	jam STATE_24G_PAIRING_3,mem_24g_pairing_sm
+	branch p_g24_transmit_abandon
+z_g24_pairing_sm_3_waiting_ack:
+	jam STATE_24G_PAIRING_SUCCESS,mem_24g_pairing_sm
+	jam BT_EVT_24G_PAIRING_COMPLETE,mem_fifo_temp
+	call ui_ipc_send_event	
+	fetch 4,mem_24g_rxpayload+2
+	call p_g24_update_addr_and_synccrc8
+	branch p_g24_transmit_abandon
+
+
+org 0xb0001
+
+z_entranceA:
+	beq ZCODE_A0,z_mouse_before_hibernate
+	beq ZCODE_A1,z_mouse_le_conn_param_update_rsp_recieved
+	beq ZCODE_A2,z_mouse_le_bb_disconnected
+	beq ZCODE_A3,z_mouse_bb_event_reconn_timeout
+	rtn
+
+z_mouse_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
+	branch z_mouse_le_conn_param_update_rsp_not_accepted,positive
+	setarg LE_INTERVAL_11_25MS
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	call p_app_updata_le_param
+	jam LE_LPM_DISABLE,mem_mouse_le_conn_param_reject
+	rtn
+//ipad not accepted updata, need reinit mem_lpm_mult.   mem_lpm_mult = CONNECT_IND latency = 0
+z_mouse_le_conn_param_update_rsp_not_accepted:
+	jam 1,mem_mouse_le_updata_not_accepted_flag
+	branch p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset
+
+z_mouse_bb_event_reconn_timeout:
+z_mouse_bb_event_reconn_failed:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BTN_DOWN
+	rtnbit1 UI_STATE_BT_DISCOVERY
+	rtnbit1 UI_STATE_BLE_ADV
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+	branch app_bb_hibernate
+
+z_mouse_le_bb_disconnected:
+	jam 0,mem_mouse_le_bb_connected_flag
+	setarg LE_INTERVAL_8_75MS
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	jam 0,mem_mouse_clear_sensor_data_flag
+	call p_mouse_data_init
+	call le_clr_config_more_data
+	call mouse_bb_disconnected
+	fetch 1,mem_mouse_start_discovery_enable
+	rtn blank
+z_check_51cmd_adv:
+ifdef BLE_FAST_CONN_ENABLE
+	fetch 6,mem_le_normal_lap
+	store 6,mem_le_lap
+endif
+	call p_mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+z_mouse_before_hibernate:
+	hfetch 4,core_lpm_ctrl
+	set1 26,pdata
+	hstore 4,core_lpm_reg
+	call lpm_write_ctrl
+	call disable_authrom
+	call mouse_devce_led_off
+	call mouse_before_hibernate_wheel_gpio_set
+	call p_mouse_setgpio_hibernate
+
+	call p_flash_deep_power_down
+	hfetch 1,core_gpio_sel1
+	and pdata,0xf7,pdata
+	hstore 1,core_gpio_sel1  //disable flash spi
+	hfetch 1,core_gpio_pd3	//gpio24 can not be set pulldown
+	set1 0,pdata
+	hstore 1,core_gpio_pd3
+	fetch 8,mem_gpio_wakeup_low
+	set0 20,pdata	//disable R Key wake
+	store 8,mem_gpio_wakeup_low
+	fetcht 1,mem_dpi_button_gpio
+	call p_gpio_set_input_pd
+	fetch 8,mem_gpio_wakeup_low
+	set1 52,pdata	//enable dpi wake
+	store 8,mem_gpio_wakeup_low
+	rtn	
+
+	
+org 0xc0001
+
+z_entranceB:
+	beq ZCODE_B0,z_mouse_le_bb_event_connected
+	beq ZCODE_B1,z_mouse_sniff_not_accept
+	beq ZCODE_B2,z_mouse_enter_sniff_check
+	beq ZCODE_B3,z_mouse_le_ll_start_encryt
+	beq ZCODE_B4,z_mouse_bb_event_disconnected
+	rtn
+
+z_mouse_le_bb_event_connected:
+ifdef BLE_FAST_CONN_ENABLE
+	setarg 0
+	store 3,mem_le_switch_adv_flag
+	arg 3,loopcnt
+	arg mem_le_lap,contr
+	call z_pdata_0xff_check
+	ncall p_mouse_fast_conn_quit,user
+endif
+	jam 1,mem_mouse_le_bb_connected_flag
+	fetch 1,mem_mouse_le_reconnect_flag
+	nbranch z_mouse_le_bb_event_connected_next,blank
+	jam 0x14,mem_mouse_send_secutiry_request_timer
+z_mouse_le_bb_event_connected_next:
+	jam 0,mem_mouse_le_not_tx_disconn
+	jam 0,mem_mouse_start_discovery_enable
+	call p_mouse_null_enter_hibernate_disable
+	call p_mouse_data_init
+	branch mouse_le_bb_event_connected
+
+z_pdata_0xff_check:
+	call enable_user
+	setarg 0xffff
+z_pdata_0xff_check_loop:
+	ifetcht 2,contr
+	isub temp,null
+	ncall disable_user,zero
+	loop z_pdata_0xff_check_loop
+	rtn
+
+z_mouse_sniff_not_accept:
+	fetch 1,mem_mouse_enter_sniff_count
+	rtneq 2
+	increase 1,pdata
+	store 1,mem_mouse_enter_sniff_count
+	jam 0x12,mem_sniff_param_interval	//89Hz
+	branch app_bt_enter_sniff
+
+z_mouse_enter_sniff_check:
+	fetch 1,mem_mouse_enter_sniff_count
+	rtnne 2
+	jam 0,mem_mouse_enter_sniff_count
+	jam 0x0e,mem_sniff_param_interval	//89Hz
+	branch app_bt_enter_sniff
+
+z_mouse_le_ll_start_encryt:
+	fetch 1,mem_mouse_le_reconnect_flag
+	beq 1,z_mouse_le_ll_reconn_start_encryt
+	jam 20,mem_le_start_encrypt_timer
+	branch z_mouse_le_ll_enable_start_enc_flag
+z_mouse_le_ll_reconn_start_encryt:
+	call p_app_updata_le_param
+	jam 10,mem_le_start_encrypt_timer
+z_mouse_le_ll_enable_start_enc_flag:
+	arg LL_START_ENC_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+z_mouse_bb_event_disconnected:
+	jam 0,mem_bt_rcvd_switch_req_accept
+	jam 0,mem_bt_send_lmp_setup_complete
+	jam 0,mem_mouse_bt_send_first_package_flag
+	branch mouse_bb_disconnected
+
+
+
Index: DpiSwitch/sched/109x.dat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/sched/109x.dat	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/sched/109x.dat	(working copy)
@@ -0,0 +1,37 @@
+
+mem_lpm_config:8f 1f ce	#4khz
+mem_lpm_xtalcnt:00 0a 0b ef 07
+mem_lpm_hibernate_switch:00
+mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
+#mem_fcomp_mul:02
+#mem_fcomp_div:24
+mem_iscan_window:12 00
+mem_iscan_interval:80 00
+mem_pscan_window:12 00
+mem_pscan_interval:80 00
+mem_inq_window:20 00
+mem_page_window:20 00
+mem_page_to:00 40
+mem_rx_window_init:80 04
+mem_rx_window_sniff:00 08
+
+mem_seqi:00
+
+
+
+mem_tx_power:00#0dbm
+mem_rf_init_data_new:
+# tx power
+4b ba
+55 d0
+56 e0
+57 88
+58 6c
+59 10
+#xtal 16M
+#68 e6
+ff
+mem_rf_init_ptr:mem_rf_init_data_new
+
+
+
Index: DpiSwitch/sched/mouse.dat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/sched/mouse.dat	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/sched/mouse.dat	(working copy)
@@ -0,0 +1,953 @@
+mem_patch00:06
+mem_patch03:08
+mem_patch04:40
+mem_patch09:05
+mem_patch0a:02
+mem_patch0b:02
+mem_patch10:20
+mem_patch11:02
+mem_patch14:82
+mem_patch15:20
+mem_patch16:06
+mem_patch18:10
+mem_patch19:08
+mem_patch1c:48
+mem_patch1d:1e
+mem_patch20:20
+mem_patch27:02
+mem_patch28:08
+mem_patch29:04
+mem_patch2a:80
+mem_patch2b:02
+mem_patch2c:c8
+mem_patch2d:04
+mem_patch2e:80
+mem_patch30:05
+mem_patch31:31
+mem_patch3f:04
+
+
+#debug
+#mem_patch2f:40
+#mem_patch37:40
+#mem_patch3e:c0
+
+
+mem_device_option:43
+mem_lpm_mode:01
+mem_lpm_mult:20
+mem_lpm_mult_init:20
+#mem_lpm_interval:00 00
+
+mem_mouse_function_enable:
+#bit0 MOUSE_ENABLE_USB
+#bit1 MOUSE_ENABLE_24G
+#bit2 MOUSE_ENABLE_SPI2
+#bit3 MOUSE_ENABLE_FLASH
+#bit4 MOUSE_ENABLE_EEPROM
+#bit5 MOUSE_ENABLE_STATUE_UP_THREE_LED
+#bit6 MOUSE_ENABLE_STATUE_UP
+#bit7 MOUSE_ENABLE_DPI_LED_BLINK
+0a
+#bit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+#bit1 MOUSE_ENABLE_2K_EEPROM
+#bit2 MOUSE_ENABLE_ADC
+#bit3 MOUSE_ENABLE_INIT_DELAY
+#bit4 MOUSE_ENABLE_DISCOVERY_SENSOR_LED
+#bit5 MOUSE_ENABLE_AUTO_24G_PARING
+#bit6 MOUSE_ENABLE_WAKEUP_FROM_POWER
+#bit7 MOUSE_ENABLE_GPIO_CONTROL_ADC_SENSOR
+00
+
+mem_app_connection_options:06
+mem_lap:20 51 17 01 20 20
+mem_local_name_length:
+'BT3.0 Mouse
+mem_sniff_param_interval:
+0e 00 
+01 00 ##mem_sniff_param_attempt:01 00
+02##mem_sniff_param_timeout:00 00
+
+
+mem_unsniff2sniff_timer:0a
+mem_ssp_mode_flag:03
+mem_ssp_enable:01
+##mem_all_uuid_16bits:
+##06
+##03#Type: Complete list of 16-bit UUIDs
+##0011 0100 1002 1124  1200  0001
+mem_all_uuid_128bits:00
+mem_ptt:00
+
+
+mem_sp_iocap_local:03 00 04
+mem_ui_profile_supported:01
+mem_eir_enable:01
+
+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
+'\09BT5.0 Mouse
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BT5.0 Mouse
+
+
+#max 20bytes, att list data rom limits
+mem_le_name_len:
+'BT5.0 Mouse
+
+
+mem_le_interval_min:
+07 00 #min interval
+07 00 #max interval
+20 00 #latency
+2c 01 #timeout
+
+
+mem_le_adv_interval:00 00
+mem_le_adv_type:00 
+mem_le_adv_own_addr_type:00
+mem_le_adv_channel_map:07 
+
+mem_le_lap:8e 45 34 0e 8e ed
+
+mem_le_transmit_window:50
+
+mem_le_notify_handle:19 00
+mem_le_pairing_handle:22 00
+
+
+mem_discovery_timeout:08 07#3min
+mem_mouse_direct_timeout:50 00#8s
+mem_mouse_no_data_timeout:70 17#30min
+
+mem_flash_ncs_gpio:0a
+mem_spi_ncs_gpio:ff
+mem_ui_button_gpio:ff
+mem_ui_button_timeout:1e
+
+mem_device_number:02 #max device number
+mem_24g_device_number:02 #devie 2 :24g mode
+mem_adc_config_flag:01 #0 vinlpm 1 hvin 2 gpio
+mem_adc_channel:32 #gpio5
+mem_mouse_vdd_full_vol:a4 01#4.2V
+18 01#mem_mouse_vdd_empty_vol:5a 00# 2.8V
+40 01#mem_mouse_vdd_low_vol:64 00  #3.2v
+
+mem_config_sensor_type:00
+02 #mem_config_sensor_motion:02
+06 #mem_lbutton_gpio:04
+14 #mem_rbutton_gpio:1b
+1d #mem_mbutton_gpio:17
+ff #mem_bk_button_gpio:ff
+ff #mem_fw_button_gpio:ff
+14 #mem_dpi_button_gpio:06
+1c #mem_whee_a_data_gpio:02
+1b #mem_whee_b_data_gpio:03
+ff #mem_whee_ta_data_gpio:ff
+ff #mem_whee_tb_data_gpio:ff
+ff #mem_config_bt_button_gpio:ff
+14 #mem_config_select_device_button_gpio:ff
+ff #mem_config_paraing_led_gpio:ff
+ff #mem_config_low_voltage_alarm_gpio:08
+ff #mem_config_device1_led_gpio:08
+ff #mem_config_device2_led_gpio:ff
+ff #mem_config_device3_led_gpio:ff
+ff #mem_sensor_data_gpio:18
+ff #mem_dpi_led_gpio:08
+20 #mem_config_function_enable:04
+03 #mem_config_sensor_angle:00
+ff #mem_select_sensor_angle_gpio:ff
+ff #mem_select_adc_gpio:ff
+
+#mouse sensor angle
+#0x00 MOUSE_6CLK_ANGLE
+#0X01 MOUSE_9CLK_ANGLE
+#0X02 MOUSE_12CLK_ANGLE
+#0X03 MOUSE_3CLK_ANGLE
+
+
+mem_eeprom_wp_gpio:ff
+mem_sensor_reset_gpio:ff
+mem_sensor_squal_reg:07# 07:3205         	06:3610
+mem_usb_offline_check_gpio:ff
+#mem_wire_usb_interval:19 #128
+
+#mem_config_function_enable:
+#bit0 ENABLE_BT_DISCOVERY_BY_GPIO_LED
+#bit1 ENABLE_MODE_LED
+#bit2 ENABLE_LOW_VOLTAGE_LED
+#bit3 ENABLE_DEVICE_LED
+#bit4 ENABLE_BT_BUTTON
+#bit5 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON
+#bit6 ENABLE_SELECT_DEVICE_BY_SWITCH
+#bit7 ENABLE_SENSOR_MOTION_PIN
+#20
+
+mem_mouse_dpi_seting:
+01##mem_320x_dpi_1
+02##mem_320x_dpi_2
+03##mem_320x_dpi_3
+04##mem_320x_dpi_4
+
+#15##mem_3212_dpi_1#800
+#1f##mem_3212_dpi_2#1200
+#2a##mem_3212_dpi_3#1600
+#3f##mem_3212_dpi_4#2400
+
+#04##mem_3610_dpi_1
+#05##mem_3610_dpi_2
+#07##mem_3610_dpi_3
+#08##mem_3610_dpi_4
+
+mem_mouse_3065xy_dpi_seting:
+00
+01
+02
+03
+
+
+mem_ui_led_struct_ptr:mem_mouse_led_type
+mem_ui_led_struct_num:01
+
+
+mem_mouse_le_uuid_sup:
+25 00 02 03 28 01 12 
+26 00 02 4d 2a 07 00 00 00 00 00 00 00 
+27 00 02 02 29 02 00 00
+28 00 02 08 29 02 11 01
+29 00 02 03 28 01 0e 
+2a 00 02 4d 2a 07 00 00 00 00 00 00 00
+2b 00 02 08 29 02 11 02
+
+
+#mem_le_att_pnp_id_len:07
+#mem_le_att_pnp_id:
+#02		#verdor ID source
+#35 12	#usb verdor ID
+#22 aa 	#product ID
+#01 00	#product version
+
+  
+#24g init
+mem_24g_mode:01#tx
+mem_24g_data_type:01        #mouse 1,kb 2
+mem_24g_max_retry:04#max tx retry
+mem_24g_no_ack:00#with ack
+mem_24g_rx_window:c0 12     #400us
+mem_24g_interval:19
+mem_24g_interval_min:19
+mem_24g_interval_max:1c
+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
+mem_24g_pairing_sm:ff
+mem_24g_paring_addr:20 15 10 05
+mem_24g_allpowerful_addr:0f 0f 0f 0f
+mem_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_24g_enter_hibernate:80 ee 36
+
+mem_device_flag:
+02
+ff
+ff ff ff ff ff ff
+#mem_device2_type:
+#34
+#11 22 33 44 55 66
+#mem_device3_type:
+#34
+#11 22 33 44 55 66
+mem_mouse_fast_conn_flag:ff
+mem_mouse_long_button_select_device:ff
+mem_mouse_24g_addr_init:ff ff ff ff
+
+
+mem_flash_base:00 50 00
+#mem_eeprom_base:90 1f
+#mem_eeprom_block_size:80
+mem_reconn_times_init:00
+mem_bt_discovey_button_statue:01#default: button up
+mem_mouse_dpi_button_state:01
+mem_empty_count:03
+
+mem_mouse_multi_led_gpio:05
+mem_mouse_multi_led_on_timer_init:14
+mem_mouse_multi_led_blink_timer_init:03
+
+#select device timer init 3s
+mem_mouse_button_select_device_timer_init:19
+
+#zcode
+mem_zcode_current_number:ff
+mem_xip_flash_offset:00 00 00
+
+#yichip sdp
+#04 0011 0100 1002 1124
+#00 01 00 00
+#36 01 6d
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#24
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#11
+#35
+#03
+#19
+#00
+#11
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#06
+#35
+#09
+#09
+#65
+#6e
+#09
+#00
+#6a
+#09
+#01
+#00
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#11
+#24
+#09
+#01
+#00
+#09
+#00
+#0d
+#35
+#0f
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#13
+#35
+#03
+#19
+#00
+#11
+#09
+#01
+#00
+#25
+#16
+#59
+#69
+#43
+#68
+#69
+#70
+#20
+#42
+#6c
+#75
+#65
+#74
+#6f
+#6f
+#74
+#68
+#20
+#4d
+#6f
+#75
+#73
+#65
+#09
+#01
+#01
+#25
+#05
+#4d
+#6f
+#75
+#73
+#65
+#09
+#01
+#02
+#25
+#06
+#59
+#69
+#43
+#68
+#69
+#70
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#01
+#11
+#09
+#02
+#02
+#08
+#80
+#09
+#02
+#03
+#08
+#21
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#28
+#01
+#09
+#02
+#06
+#35
+#81
+#35
+#7f
+#08
+#22
+#25
+#7b
+#05
+#01
+#09
+#02
+#a1
+#01
+#85
+#02
+#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
+#75
+#08
+#95
+#01
+#81
+#06
+#c0
+#c0
+#05
+#0c
+#09
+#01
+#a1
+#01
+#85
+#03
+#75
+#10
+#95
+#02
+#15
+#01
+#26
+#8c
+#02
+#19
+#01
+#2a
+#8c
+#02
+#81
+#60
+#c0
+#06
+#00
+#ff
+#09
+#01
+#a1
+#01
+#85
+#10
+#75
+#08
+#95
+#06
+#15
+#00
+#26
+#ff
+#00
+#09
+#01
+#81
+#00
+#09
+#01
+#91
+#00
+#c0
+#09
+#02
+#07
+#35
+#08
+#35
+#06
+#09
+#04
+#09
+#09
+#01
+#00
+#09
+#02
+#08
+#28
+#00
+#09
+#02
+#09
+#28
+#01
+#09
+#02
+#0a
+#28
+#01
+#09
+#02
+#0b
+#09
+#01
+#00
+#09
+#02
+#0c
+#09
+#1f
+#40
+#09
+#02
+#0d
+#28
+#00
+#09
+#02
+#0e
+#28
+#01
+#09
+#02
+#0f
+#09
+#00
+#12
+#09
+#02
+#10
+#09
+#00
+#00
+#
+#04 1002 1200 0100 0001
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09
+#02
+#00
+#09
+#01
+#03
+#09
+#02
+#01
+#09
+#04
+#6d
+#09
+#02
+#02
+#09
+#b0
+#16
+#09
+#02
+#03
+#09
+#01
+#29
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#00
+#00
+#
+#01 0001
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#05
+#ac
+#09
+#02
+#02
+#09
+#02
+#39
+#09
+#02
+#03
+#09
+#00
+#44
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#
+#03 1101 0003 0100
+#00 01 00 02
+#36 00 2f
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#02
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#01
+#09
+#00
+#04
+#35
+#0c
+#35
+#03
+#19
+#01
+#00
+#35
+#05
+#19
+#00
+#03
+#08
+#01
+#09
+#01
+#00
+#25
+#09
+#53
+#50
+#50
+#20
+#73
+
+
+
+#logi sdp
+#04 1000 0100 0001 1002
+#00 00 00 00
+#36 00 92 
+#09 00 00 0a 00 00 00 00 09 00 01 35 03 19 10 00 09 00 04 35 0d 35 06 
+#19 01 00 09 00 01 35 03 19 00 01 09 00 05 35 03 19 10 02 09 00 06 35 
+#09 09 65 6e 09 00 6a 09 01 00 09 00 09 35 08 35 06 19 01 00 09 01 00 
+#09 01 00 25 2c 4c 6f 67 69 74 65 63 68 20 42 6c 75 65 74 6f 6f 74 68 20 
+#57 69 72 65 6c 65 73 73 20 4d 6f 75 73 65 20 53 44 50 20 53 65 72 76 65 
+#72 09 01 01 25 0f 42 6c 75 65 74 6f 6f 74 68 20 4d 6f 75 73 65 09 02 00 35 03 09 01 00
+
+#04 1124 0100 0011 1002
+#00 01 00 00
+#36 01 ee 
+#09 00 00 0a 00 01 00 00 09 00 01 35 03 19 11 24 09 00 04 35 
+#0d 35 06 19 01 00 09 00 11 35 03 19 00 11 09 00 05 35 03 19 10 02 
+#09 00 06 35 09 09 65 6e 09 00 6a 09 01 00 09 00 09 35 08 35 06 19 11 24 
+#09 01 01 09 00 0d 35 0f 35 0d 35 06 19 01 00 09 00 13 35 03 19 00 11 09 01 
+#00 25 21 4c 6f 67 69 74 65 63 68 20 42 6c 75 65 74 6f 6f 74 68 20 57 69 72 65 6c 
+#65 73 73 20 4d 6f 75 73 65 09 01 01 25 0f 42 6c 75 65 74 6f 6f 74 68 20 4d 6f 75 
+#73 65 09 01 02 25 08 4c 6f 67 69 74 65 63 68 09 02 01 09 01 11 09 02 02 08 80 09 02 
+#03 08 21 09 02 04 28 01 09 02 05 28 01 09 02 06 35 fc 35 fa 08 22 25 f6 05 01 09 02 a1 01 
+#85 02 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 0c 95 02 81 06 09 38 15 81 25 7f 75 08 95 01 81 06 05 0c 0a 38 02 75 08 95 01 81 
+#06 c0 c0 05 0c 09 01 a1 01 85 03 05 06 09 20 15 00 26 64 00 75 08 95 01 81 02 c0 06 00 ff 09 01 
+#a1 01 85 10 75 08 95 06 15 00 26 ff 00 09 01 81 00 09 01 91 00 c0 06 00 ff 09 02 a1 01 85 11 75 
+#08 95 13 15 00 26 ff 00 09 02 81 00 09 02 91 00 c0 05 01 09 06 a1 01 85 04 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 29 ff 81 00 c0 05 0c 09 01 a1 01 85 05 
+#15 00 25 01 75 01 95 02 0a 25 02 0a 24 02 81 02 95 01 75 06 81 03 c0 09 02 07 35 08 35 
+#06 09 04 09 09 01 00 09 02 09 28 01 09 02 0a 28 01 09 02 0c 09 1f 40 09 02 0d 28 00 09 
+#02 0e 28 01 09 02 0f 09 00 12 09 02 10 09 00 00
+
+#04 1200 0100 0001 1002
+#00 01 00 01
+#36 00 ad 
+#09 00 00 0a 00 01 00 01 09 00 01 35 03 19 12 00 09 00 04 35 0d 35 06 19 01 
+#00 09 00 01 35 03 19 00 01 09 00 05 35 03 19 10 02 09 00 06 35 09 09 65 
+#6e 09 00 6a 09 01 00 09 00 09 35 08 35 06 19 12 00 09 01 00 09 01 00 
+#25 2c 4c 6f 67 69 74 65 63 68 20 42 6c 75 65 74 6f 6f 74 68 20 57 69 72 
+#65 6c 65 73 73 20 4d 6f 75 73 65 20 50 6e 50 20 53 65 72 76 65 72 09 01 
+#01 25 0f 42 6c 75 65 74 6f 6f 74 68 20 4d 6f 75 73 65 09 02 00 09 01 03 09 
+#02 01 09 04 6d 09 02 02 09 b0 16 09 02 03 09 12 03 09 02 04 28 01 09 02 05 09 00 02 00
+
+
Index: DpiSwitch/util/crc16.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: DpiSwitch/util/crc16.exe
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/crc16.exe	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/crc16.exe	(working copy)

Property changes on: DpiSwitch/util/crc16.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: DpiSwitch/util/crc16.pl
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/crc16.pl	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/crc16.pl	(working copy)
@@ -0,0 +1,27 @@
+$debug = 0;
+$crc = 0xffff;
+$i = 0;
+$offset = 0xffff;
+$source_file = $ARGV[0];
+$offset = $ARGV[1];
+
+open(EEP,"$source_file") or die $!;
+
+while (<EEP>) {    
+	$c = hex();
+
+  if($i >= $offset){
+  	if($debug){printf "%02x\t", $c;}
+  	$crc  = ($crc >> 8) | ($crc << 8);
+		$crc ^= $c & 0xff;
+		$crc ^= ($crc & 0xff) >> 4;
+		$crc ^= $crc << 12;
+		$crc ^= ($crc & 0xff) << 5;
+		$crc &= 0xffff;
+  }
+  $i ++;
+  if($debug){printf "%02x\t", $crc;}
+  printf "%02x\n", $c;
+}
+
+printf "%02x\n%02x\n", (($crc >> 8) & 0xff),($crc & 0xff);
Index: DpiSwitch/util/eeprom2fulleeprom.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: DpiSwitch/util/eeprom2fulleeprom.exe
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/eeprom2fulleeprom.exe	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/eeprom2fulleeprom.exe	(working copy)

Property changes on: DpiSwitch/util/eeprom2fulleeprom.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: DpiSwitch/util/eeprom2fulleeprom.pl
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/eeprom2fulleeprom.pl	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/eeprom2fulleeprom.pl	(working copy)
@@ -0,0 +1,18 @@
+
+
+
+$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: DpiSwitch/util/flash_dat2eeprom_dat.pl
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/flash_dat2eeprom_dat.pl	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/flash_dat2eeprom_dat.pl	(working copy)
@@ -0,0 +1,24 @@
+
+#改前三个字节为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=3;
+	print file_out "00\n02\n";
+	while($j<$length){
+			print file_out "$lines[$j]";
+			$j++;
+	}
+#	print "----- reverse end -----";
+	close(file);
+	close(file_out);
+}
Index: DpiSwitch/util/genotp.pl
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/genotp.pl	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/genotp.pl	(working copy)
@@ -0,0 +1,38 @@
+#!/usr/bin/perl
+
+open(FILE,"program.lis") or die $!;
+$page_size = 64;
+$j = $page_size;
+while(<FILE>){
+	if(/^([0-9a-f]+)\s+([0-9a-f]+)/ && hex($1) >= 0x10000) {
+		#print $1,"\n",$j,"\n";
+		if(hex(substr($1,length($1)-4,4)) == 1){
+
+			#print "aaa\n";
+			for(;$j < $page_size;$j++) {
+					print "00\n00\n00\n00\n";
+					#print $j,"\n";
+			}
+			$j = 0;
+		}
+		if($j == 0){
+			print "20\n20\n00\n40\n";
+			$j ++;
+		}
+		for($i = 0;$i < 4;$i++) {
+			print substr($2, $i*2, 2),"\n"; 
+
+		}
+		$j ++;
+		if($j == $page_size){
+			$j = 0;
+		}elsif($j > $page_size){
+			print "Overflow at 0x",$1," !\n";
+			close(FILE);
+			die;
+		}
+
+	}
+}
+#print "codecnt = ",$codecnt,"\n";
+close(FILE);
\ No newline at end of file
Index: DpiSwitch/util/memalloc.pl
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/memalloc.pl	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/memalloc.pl	(working copy)
@@ -0,0 +1,74 @@
+#!/usr/bin/perl
+$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;$i < @f;$i++) { $cmalloc[$i] = (); }
+for($i = 0;$i < @f;$i++) { 
+	$_ = $f[$i];
+	$start = 1 if(/^\s*memalloc\s*\(\s*$/);
+	$start = 2 if(/^\s*xmemalloc\s*\(\s*$/);
+	$start = 3 if(/^\s*omemalloc\s*\(\s*$/);
+	$start = 10 + $1 if(/^\s*cmemalloc\s+([0-9])\s*\(\s*$/);
+	if($start) {
+		if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+			if($start == 1) {
+				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+				$addr += $1;
+				$bstr .= $str;
+				$sstr .= $str;
+			} elsif($start == 2) {
+				$str = sprintf "0x%04x %s%s\n", $xaddr, $2, $3;
+				$xaddr += $1;
+				$xstr .= $str;
+			} else {
+				push @ostr, $_;
+			}
+		}
+		if(/^\s*\)\s*$/) {
+			if(@ostr > 0) {
+				if($start == 3) {
+					push @omalloc,[@ostr];
+				} elsif($start > 9) {
+					$j = $start - 10;
+					push @{$cmalloc[$j]},@ostr;
+				} 
+			}
+			$start = 0;
+			@ostr = ();
+		}
+	} else {
+		$sstr .= $_;
+	}
+}
+for($i = 0;$i <= $#cmalloc;$i++) {
+	push @omalloc,$cmalloc[$i];
+#	for($j = 0;$j <= $#{$cmalloc[$i]};$j++) {		print $cmalloc[$i][$j];	}
+}
+
+$xend = $xaddr;
+for($i = 0;$i <= $#omalloc;$i++) {
+	for($j = 0, $oaddr = $xaddr;$j <= $#{$omalloc[$i]};$j++) {
+		if($omalloc[$i][$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+			$str = sprintf "0x%04x %s%s\n", $oaddr, $2, $3;
+			$oaddr += $1;
+			$xstr .= $str;
+		}
+	}
+}
+$xend = $oaddr if($oaddr > $xend);
+print file $xstr, $sstr;
+print file1 $bstr, $xstr;
+close file;
+close file1;
+printf "\nLast allocated address is %04x\n", $addr;
+printf "\nLast allocated xmem address is %04x\n", $xend;
\ No newline at end of file
Index: DpiSwitch/util/mergepatch.pl
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/mergepatch.pl	(nonexistent)
+++ /branch/mouse_project/YJX_Project/YJX_1059/DpiSwitch/util/mergepatch.pl	(working copy)
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+$defs = "";
+$fmt = 0;
+
+
+sub parseif {
+	my($fname) = @_;
+	open file, $fname;
+	@f = <file>;
+	close file;
+	open file, ">$fname";
+	@valid = (1);
+	for($i = 0;$i < @f;$i++) { 
+		$_ = $f[$i];
+		$defs .= $1 . " " if(/^define\s+(\w+)\s*/);
+		if(/^ifdef\s+(\w+)\s*/) {
+			push @valid, ($defs =~ /(^|\s)$1(\s|$)/ ? 1 : 0) & $valid[$#valid];
+		} elsif(/^ifndef\s+(\w+)\s*/) {
+			push @valid, ($defs =~ /(^|\s)$1(\s|$)/ ? 0 : 1) & $valid[$#valid];
+		} elsif(/^else/) {
+			printf "%s\nelse without if at line %d\n", $f[$i - 3], $i if($#valid == 0);
+			$valid[$#valid] = (1 - $valid[$#valid]) & $valid[$#valid - 1];
+		} elsif(/^endif/) {
+			printf "%s\nendif without if at line %d\n", $_, $i if($#valid == 0);
+			pop @valid;
+		} elsif($valid[$#valid]) {
+			if(/^include\s+(.+)\s*/) {
+				open file2, "program/$1";
+				@f2 = <file2>;
+				close file2;
+				splice(@f, $i + 1, 0, @f2);
+			} else {
+				print file $_;
+			}
+		}
+	}
+	close file;
+}
+
+parseif("output/bt_program23.meta");
+$fmt = 1;
+parseif("output/bt_format.meta");
+
+
