Index: adc.h
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/adc.h	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/adc.h	(working copy)
@@ -1,16 +1,17 @@
 #ifndef _ADC_H
 #define _ADC_H
 #include "common.h"
-//#define ADC_ENABLE
+
+#define ADC_ENABLE
+#define ADC_TYPE_VINLPM			0x01	// 1.8V~3.6V
+//#define ADC_TYPE_HVIN			0x02	// 3.0~5.5V
+//#define ADC_TYPE_GPIO			0x04	// 0~1.5V
 
 
 // GPIO5 0x30,   GPIO6 0x31,   GPIO7 0x32,
 //GPIO18 0x33,   GPIO19 0x34,   GPIO20 0x35,   GPIO21 0x36,    GPIO22 0x37
 #define ADC_CHANNEL				0x33	
 
-#define ADC_TYPE_VINLPM			0x01	// 1.8V~3.6V
-#define ADC_TYPE_HVIN			0x02	// 3.0~5.5V
-#define ADC_TYPE_GPIO			0x04	// 0~1.5V
 
 #define BAT_STATUS_NONE			0
 #define BAT_STATUS_LOW				1
@@ -19,6 +20,7 @@
 //battery check
 #define BATTERY_CHECK_INTERVAL 		5			// 500ms*5 = 2.5s
 #define INIT_BATTERY_VALUE   				0x7990
+#define INIT_BATTERY_VALUE_VINLPM		0x5151
 #define LOW_BATTERY_FLASH_INTERVAL	4	
 
 // battery to gpio R = 1M
@@ -26,6 +28,10 @@
 #define LOW_BATTER_COEFFICIENT_1V0       0.27
 #define LOW_BATTER_COEFFICIENT_0V9	0.19
 
+#define LOW_BATTER_COEFFICIENT_2V2   	0.74
+#define LOW_BATTER_COEFFICIENT_2V0       0.67
+
+
 #define LOW_BATTER_COEFFICIENT_3V3   	1.11
 #define LOW_BATTER_COEFFICIENT_3V2       1.07
 #define LOW_BATTER_COEFFICIENT_3V1	1.04
Index: adc.c
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/adc.c	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/adc.c	(working copy)
@@ -2,45 +2,46 @@
 
 void YC_adc_init()
 {
+#ifdef  ADC_ENABLE
 	byte i;
-	#ifndef  ADC_ENABLE
-		return;
-	#endif	
-	m_adc_channel = ADC_CHANNEL;
+	
 	g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
 	g_variable.battery_value_index = 0;
+
+#ifdef ADC_TYPE_HVIN 	
 	for (i = 0; i < BAT_ARRAY_LEN; i++)
 	{
 		g_variable.battery_value[i] = INIT_BATTERY_VALUE;
 	}
 
-	
-	if(m_adc_config_flag == ADC_TYPE_HVIN)
-	{
-		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V2+m_adc0vBase;
-		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V0+m_adc0vBase;
-	}
-	else if(m_adc_config_flag == ADC_TYPE_VINLPM)
+	g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V2+m_adc0vBase;
+	g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V0+m_adc0vBase;
+#endif
+#ifdef ADC_TYPE_VINLPM
+		for (i = 0; i < BAT_ARRAY_LEN; i++)
+		{
+			g_variable.battery_value[i] = INIT_BATTERY_VALUE_VINLPM;
+		}
+		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_2V2+m_adc0vBase;
+		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_2V0+m_adc0vBase;
+#endif
+#ifdef ADC_TYPE_GPIO
+	m_adc_channel = ADC_CHANNEL;
+	for (i = 0; i < BAT_ARRAY_LEN; i++)
 	{
-
+		g_variable.battery_value[i] = INIT_BATTERY_VALUE;
 	}
-	else
-	{
 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_1V1+m_adc0vBase;
 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_0V9+m_adc0vBase;
-	}
-	
+#endif	
+#endif
 }
 
 void YC_adc_check() 
 {
+#ifdef  ADC_ENABLE
 	byte i;
 	ulong batValue = 0;
-	#ifndef  ADC_ENABLE
-		return;
-	#endif	
-//	if(m_adcCurrentValue < m_adc0vBase) 
-//		return;
 
 	g_variable.battery_value[g_variable.battery_value_index++] = m_adcCurrentValue;
 	if (g_variable.battery_value_index >= BAT_ARRAY_LEN)
@@ -66,12 +67,13 @@
 			g_variable.battery_status = BAT_STATUS_NONE;
 		}
 	}
-	
+#endif	
 }
 
 
 void YC_adc_check_timer500ms()
 {
+#ifdef  ADC_ENABLE
 	// adc check timer	
 	if (g_variable.battery_check_interval)
 	{
@@ -82,6 +84,7 @@
 			YC_adc_check();
 		}
 	}
+#endif	
 }
 
 
Index: global_variable.h
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/global_variable.h	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/global_variable.h	(working copy)
@@ -94,6 +94,7 @@
 	 byte key_combination_ctrl;				// 0x4cf5
 	 byte key_combination_keyvalue;		// 0x4cf6
 	 byte battery_low_led_flash_flag;		// 0x4cf7
+	 byte one_key_press_wait_release_timer;
 	
 	 byte mouse_data_send_flag;
 	 byte sensor_key;
Index: kb_process.h
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/kb_process.h	(revision 114)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/kb_process.h	(working copy)
@@ -24,8 +24,13 @@
 #define CAMBINATION_KEY_COMPLETE			3
 #define CAMBINATION_KEY_WAIT_RELEASE 		4
 #define CAMBINATION_KEY_RELEASE			5	
+#define CAMBINATION_KEY_NULL				6
 
 
+#define OSMODE_WINDOWS	0x00
+#define OSMODE_ANDROID		0x01
+#define OSMODE_IOS			0x02
+
 //gipo
 #define NUM_LOCK_LED_GPIO    	0xff
 #define CAPS_LED_GPIO		  	30
@@ -33,8 +38,8 @@
 #define EEPROM_WP_GPIO			0xff
 #define BT_LED_GPIO		  		15
 #define BT2_LED_GPIO				0xff
-#define LOWPOWER_LED_GPIO		0xff
-#define G24_LED_GPIO				16
+#define LOWPOWER_LED_GPIO		29
+#define G24_LED_GPIO				0xff
 
 
 
Index: kb_process.c
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/kb_process.c	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/kb_process.c	(working copy)
@@ -174,17 +174,20 @@
 	}
 	else
 */	
-	{
-			
+	{	
 		if((g_variable.key_combination_step == CAMBINATION_KEY_FREE)
-		||(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
 		||(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE)
+		|| (g_variable.key_combination_step == CAMBINATION_KEY_RELEASE)
 		)
 			kb_motion();
 		else
 		{
-			
-			if(g_variable.key_combination_step == CAMBINATION_KEY_HOLD)
+			if(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
+			{
+				kb_send_combination_key(g_variable.key_combination_ctrl,0);
+				g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
+			}
+			else if(g_variable.key_combination_step == CAMBINATION_KEY_HOLD)
 			{	
 				g_variable.key_combination_step = CAMBINATION_KEY_COMPLETE;
 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
@@ -192,15 +195,16 @@
 			else if(g_variable.key_combination_step == CAMBINATION_KEY_WAIT_RELEASE)
 			{
 				g_variable.key_combination_keyvalue = 0;
-				g_variable.key_combination_step = CAMBINATION_KEY_RELEASE;
 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+				g_variable.key_combination_ctrl = 0;
+				g_variable.key_combination_step = CAMBINATION_KEY_RELEASE;
 			}
-			else if(g_variable.key_combination_step == CAMBINATION_KEY_RELEASE)
+			else if(g_variable.key_combination_step == CAMBINATION_KEY_NULL)
 			{
-				g_variable.key_combination_ctrl = 0;
 				g_variable.key_combination_keyvalue = 0;
-				g_variable.key_combination_step = CAMBINATION_KEY_FREE;
+				g_variable.key_combination_ctrl = 0;
 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+				g_variable.key_combination_step = CAMBINATION_KEY_FREE;
 			}
 		}
 	}
@@ -232,7 +236,7 @@
 	
 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
 	{
-		kscurrmult = 0x3;
+		kscurrmult = 0x3;			// lpm wakeup timer
 	}
 	delayChgInvTimer = 10;
 	g_variable.sleepTimer = 0;
@@ -240,16 +244,14 @@
 	xmemclear(multikey,9);
 
 	m_power_on_flag = 1;
-	if(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
+	if( (g_variable.key_combination_step == CAMBINATION_KEY_PRESS) ||
+	    (g_variable.key_combination_step == CAMBINATION_KEY_WAIT_RELEASE) ||
+	    (g_variable.key_combination_step == CAMBINATION_KEY_HOLD))
 	{
-		hidBuff[0] = HID_REPORTID_1;
-		hidBuff[1] |= g_variable.key_combination_ctrl;
-		hidBuff[3] = 0x00; 
-		IPC_TxHidData(hidBuff, 9);
-		g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
 		return;
 	}
 
+
 	kb_multikey_setup(pEvt);
 	
 	if (mult_key_status == KEY_PRESS) 
@@ -267,7 +269,7 @@
 	}
 	else 
 	{
-		hidBuff[0] = HID_REPORTID_1;
+		hidBuff[0] = HID_REPORTID_1;		// standard key send
 		hidBuff[1] = pEvt->standardSel;
 		hidBuff[2] = 0;
 
@@ -325,31 +327,27 @@
 
 
 
-byte key_replace(byte key_state, byte key_value , byte key_replace_value )
+
+void kb_combination_key_press(byte press_state,byte special_key,byte standrad_key)
 {
-	byte temp_value;
+	g_variable.key_combination_ctrl = special_key;	
+	g_variable.key_combination_keyvalue = standrad_key;
 
-	temp_value = key_value;
-	if (key_state & 1)
+	if(press_state & 1)
 	{
-		fn_tx_flag++;
-		temp_value = key_replace_value;
+		if(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE) 
+			g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
+		else	
+			g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
 	}
 	else
 	{
-		if(fn_tx_flag != 0)
-		{	
-			fn_tx_flag--;
-			temp_value = key_replace_value;
-		}
+		g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
 	}
 
-	return temp_value;
 }
 
 
-
-
 byte key_fn_function(byte state ,byte key_value)
 {
 	byte temp = 0;
@@ -357,80 +355,126 @@
 	temp = key_value;
 	if(fn_flag == 1)			// Fn lock
 	{
+	#ifdef MULTISYSTEM_ENABLE
+		if((key_value == HID_KEY_Q) || (key_value == HID_KEY_W) || (key_value == HID_KEY_E))
+		{
+			if(key_value == HID_KEY_Q)
+			{
+				g_variable.system_mode = OSMODE_IOS;
+			}
+			else if(key_value == HID_KEY_W)
+			{
+				g_variable.system_mode = OSMODE_ANDROID;
+
+			}
+			else if(key_value == HID_KEY_E)
+			{
+				g_variable.system_mode = OSMODE_WINDOWS;
+
+			}
+	
+			temp = HID_KEY_NULL;
+			IIC_WriteBlock(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+		}	
 		
+	}
+	
+	if( (fn_flag == 1 && g_variable.system_mode == OSMODE_WINDOWS) ||
+	     (fn_flag == 0 && g_variable.system_mode == OSMODE_IOS) ||
+	     (fn_flag == 0 && g_variable.system_mode == OSMODE_ANDROID))
+	{
+	#endif	
 		switch (key_value)
-		{ 
+		{ 	
+			case HID_KEY_ESC:
+				temp = HID_MULTIKEY_AC_HOME;
+				break;
 			case HID_KEY_F1:
-				temp = key_replace(state,key_value,HID_MULTIKEY_LIGHT_DOWN);
+				temp = HID_MULTIKEY_PRE_TRACK;
 				break;
 			case HID_KEY_F2:
-				temp = key_replace(state,key_value,HID_MULTIKEY_LIGHT_UP);
+				temp = HID_MULTIKEY_PALY;
 				break;
 			case HID_KEY_F3:
-				g_variable.key_combination_ctrl = KS_SEL_LALT;
-					
-				g_variable.key_combination_keyvalue = HID_KEY_TAB;
-				
-				if(state & 1)
-				{
-					g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
-				}
-				else
-				{
-					g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
-				}
-				
-				temp = key_replace(state,key_value,HID_KEY_NULL);
+				temp = HID_MULTIKEY_NEXT_TRACK;
 				break;
 			case HID_KEY_F4:
-				g_variable.key_combination_ctrl = KS_SEL_LGUI;
-				g_variable.key_combination_keyvalue = HID_KEY_D;
-				
-				if(state & 1)
+			#ifdef MULTISYSTEM_ENABLE
+				if(g_variable.system_mode == OSMODE_IOS)
 				{
-					g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+					temp = HID_MULTIKEY_IOS_SOFT_KB;
+				}
+				else if(g_variable.system_mode == OSMODE_ANDROID)
+				{
+					temp = HID_MULTIKEY_ANDROID_SOFT_KB;
 				}
 				else
+			#endif	
 				{
-					g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
+					kb_combination_key_press(state,KS_SEL_LALT,HID_KEY_TAB);
+					temp = HID_KEY_NULL;
 				}
-				temp = key_replace(state,key_value,HID_KEY_NULL);
-
 				break;
 			case HID_KEY_F5:
-				g_variable.key_combination_ctrl = KS_SEL_LGUI;
-				g_variable.key_combination_keyvalue = HID_KEY_LEFT_ARROW;
-				
-				if(state & 1)
+			#ifdef MULTISYSTEM_ENABLE
+				if(g_variable.system_mode == OSMODE_IOS)
 				{
-					g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+					kb_combination_key_press(state,KS_SEL_LGUI | KS_SEL_LSHIFT,HID_KEY_3);	// ios prt
+					g_variable.one_key_press_wait_release_timer = 10;
+					temp = HID_KEY_NULL;
 				}
-				else
+				else if(g_variable.system_mode == OSMODE_ANDROID)
 				{
-					g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
+					temp = HID_MULTIKEY_ANDROID_SETUP_SHORTCUTS;
 				}
-				temp = key_replace(state,key_value,HID_KEY_NULL);
+				else
+			#endif	
+				{
+					kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_K);	// win8 device
+					temp = HID_KEY_NULL;
+				}	
 				break;
 			case HID_KEY_F6:
-				temp = key_replace(state,key_value,HID_MULTIKEY_AC_SEARCH);
+				temp = HID_MULTIKEY_MAIL;
 				break;
 			case HID_KEY_F7:
-				temp = key_replace(state,key_value,HID_MULTIKEY_PRE_TRACK);
-				break;
+				temp = HID_MULTIKEY_AC_SEARCH;
+				break;	
 			case HID_KEY_F8:
-				temp = key_replace(state,key_value,HID_MULTIKEY_PALY);
+				temp = HID_MULTIKEY_NEXT_TRACK;
 				break;
 			case HID_KEY_F9:
-				temp = key_replace(state,key_value,HID_MULTIKEY_NEXT_TRACK);
+				temp = HID_MULTIKEY_VOL_DOWN;
 				break;
 			case HID_KEY_F10:
-				temp = key_replace(state,key_value,HID_MULTIKEY_MUTE);
+				temp = HID_MULTIKEY_VOL_UP;
 				break;
 			case HID_KEY_F11:
-				temp = key_replace(state,key_value,HID_MULTIKEY_VOL_DOWN);
+				temp = HID_MULTIKEY_MUTE;
 				break;
 			case HID_KEY_F12:
-				temp = key_replace(state,key_value,HID_MULTIKEY_VOL_UP);
+			#ifdef MULTISYSTEM_ENABLE
+				if(g_variable.system_mode == OSMODE_IOS)		// language switch
+				{
+					kb_combination_key_press(state,KS_SEL_LCTRL,HID_KEY_SPACE);	
+				}
+				else if(g_variable.system_mode == OSMODE_ANDROID)
+				{
+					kb_combination_key_press(state,KS_SEL_LSHIFT,HID_KEY_SPACE);		
+				}
+				else
+			#endif	
+				{
+					kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_SPACE);		
+				}
+			#ifdef MULTISYSTEM_ENABLE	
+				if(state & 1)
+				{						
+					if(g_variable.system_mode != OSMODE_WINDOWS)
+						g_variable.one_key_press_wait_release_timer = 10;
+				}
+			#endif	
+				temp = HID_KEY_NULL;
 				break;
 			default :
 				break;
@@ -451,18 +495,20 @@
 		if ((pEvt->ksPool[i] &0xF0) == 0xf0 
 			|| (pEvt->ksPool[i] &0xD0) == 0xD0)
 		{
+			/*
 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_MEDIA) //media select
 			{
 				kb_set_multikey(0x0183); 
 			}
-			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PALY) //play / pause
+			else*/ 
+			if (pEvt->ksPool[i] ==  HID_MULTIKEY_PALY) //play / pause
 			{ 
 				kb_set_multikey(0x00cd);
 			}
-			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_STOP)  //stop
+		/*	else if (pEvt->ksPool[i] ==  HID_MULTIKEY_STOP)  //stop
 			{
 				kb_set_multikey(0x00b7);
-			}
+			}	*/
 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PRE_TRACK) //pre Track
 			{
 				kb_set_multikey(0x00b6);
@@ -483,16 +529,15 @@
 			{
 				kb_set_multikey(0x00e2);
 			}
-		/*
-			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MY_COMPUTER) 
+		/*	else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MY_COMPUTER) 
 			{
 				kb_set_multikey(0x0194);
-			}
+			}	*/
 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_MAIL)  //mail
 			{
 				kb_set_multikey(0x018a);//mail
 			}
-			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_CALCULATOR) //calculator
+		/*	else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_CALCULATOR) //calculator
 			{
 				kb_set_multikey(0x0192);
 			}
@@ -515,8 +560,7 @@
 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_REFRESH) //www refresh
 			{
 				kb_set_multikey(0x0227);
-			}
-			
+			}	*/
 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_SEARCH)  //www search
 			{
 				kb_set_multikey(0x0221);
@@ -525,15 +569,30 @@
 			{
 				kb_set_multikey(0x0223);
 			}
-			*/
-			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_DOWN)
+		/*	else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_DOWN)
 			{
 				kb_set_multikey(0x0070);
 			}
 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_UP)
 			{
 				kb_set_multikey(0x006f);
-			}
+			}	*/
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_IOS_SOFT_KB)  //IOS VIR KB
+		      	{
+		        	kb_set_multikey(0x00b8);
+		      	}
+		  /*    else if (pEvt->ksPool[i] ==  HID_MULTIKEY_POWER)
+		      	{
+		        	kb_set_multikey(0x0930);
+		      	}	*/
+		      	else if (pEvt->ksPool[i] ==  HID_MULTIKEY_ANDROID_SETUP_SHORTCUTS)
+		      	{
+		        	kb_set_multikey(0x0306);
+		      	}
+		      	else if (pEvt->ksPool[i] ==  HID_MULTIKEY_ANDROID_SOFT_KB)
+		      	{
+		        	kb_set_multikey(0x0307);
+		      	}
 			
 			if(mult_key_status == KEY_WAIT_RELEASE)
 			{
Index: kbhid.h
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/kbhid.h	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/kbhid.h	(working copy)
@@ -271,6 +271,10 @@
  	HID_MULTIKEY_AC_HOME		= 0xD6,
  	HID_MULTIKEY_LIGHT_DOWN	= 0xD7,
  	HID_MULTIKEY_LIGHT_UP		= 0xD8,
+ 	HID_MULTIKEY_IOS_SOFT_KB 	= 0xD9,		
+	HID_MULTIKEY_POWER 		= 0xDA,		//lock screen
+	HID_MULTIKEY_ANDROID_SETUP_SHORTCUTS = 0xDB,	
+	HID_MULTIKEY_ANDROID_SOFT_KB	= 0xDC,
 	
 };
 
Index: keyscan.c
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/keyscan.c	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/keyscan.c	(working copy)
@@ -30,15 +30,36 @@
     return c;
 }
 
+#ifdef MULTISYSTEM_ENABLE
+byte key_ios_replace(byte key)
+{
+	byte key_temp;
+	key_temp = key;
+	if(g_variable.system_mode == OSMODE_IOS)
+	{
+		if(key == HID_KEY_RIGHT_ALT)
+			key_temp = HID_KEY_RIGHT_GUI;	
+		else if(key == HID_KEY_LEFT_GUI)
+			key_temp = HID_KEY_LEFT_ALT;
+		else if(key == HID_KEY_LEFT_ALT)
+			key_temp = HID_KEY_LEFT_GUI;	
+	}
+	return key_temp;
+}
+#endif
 
 //byte col[] = {25,26};
 static void keyIn(byte key)
 {
 	byte i = 0;
-
-	if(key >= 0xe0 && key <= 0xe7)
-	{
-		ksEvtPool.standardSel  |=  0x01 << (key & 0x07);
+	byte key_temp;
+	key_temp = key;
+	if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
+	{
+	#ifdef MULTISYSTEM_ENABLE
+		key_temp = key_ios_replace(key);
+	#endif
+		ksEvtPool.standardSel  |=  0x01 << (key_temp & 0x07);
 		return;
 	}
 /*
@@ -103,7 +124,8 @@
 {
 	byte i = 0 ;
 	byte found = 0;
-
+	byte key_temp;
+	key_temp = key;
 	if ((key &0xF0) == 0xf0 || (key &0xD0) == 0xD0)
 	{
 		if(mult_key_status == KEY_WAIT_RELEASE)
@@ -114,11 +136,15 @@
 	else
 		standard_key_release_flag = 1;
 
-	if(key >= 0xe0 && key <= 0xe7)
+	if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
 	{
-		ksEvtPool.standardSel  &=  ~(0x01 << (key & 0x07));
+	#ifdef MULTISYSTEM_ENABLE
+		key_temp = key_ios_replace(key);
+	#endif
+		ksEvtPool.standardSel  &= ~0x01 << (key_temp & 0x07);
 		return;
 	}
+	
 
 /*
 	if (key == HID_KEY_RIGHT_GUI ) 
Index: led.h
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/led.h	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/led.h	(working copy)
@@ -8,8 +8,6 @@
 
 void LED_all_shutdown();
 void LED_handle();
-void LED_device_poweron();
-void LED_device_poweroff();
 
 #endif /* YC_LED_H */
 
Index: led.c
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/led.c	(revision 114)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/led.c	(working copy)
@@ -10,16 +10,6 @@
 }
 
 
-void LED_device_poweron()
-{
-	GPIO_Setout(BT_LED_GPIO,LED_ON);
-}
-
-void LED_device_poweroff()
-{
-	GPIO_Setout(BT_LED_GPIO,LED_OFF);
-}
-
 
 void LED_handle()
 {
@@ -97,7 +87,6 @@
 	else
 	{
 		//GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
-		GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
 	}
 
 }
Index: output/FW
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: output/FW.COD
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/FW.COD	(revision 114)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/FW.COD	(working copy)
@@ -1,4 +1,4 @@
-LX51 LINKER/LOCATER V4.41                                                               06/01/2020  18:34:35  PAGE 1
+LX51 LINKER/LOCATER V4.41                                                               06/12/2020  12:11:06  PAGE 1
 
 
 
@@ -178,7 +178,7 @@
 000796 E0                MOVX    A,@DPTR
 000797 FD                MOV     R5,A
 000798 7B64              MOV     R3,#064H
-00079A 122183            LCALL   _bufsize
+00079A 122056            LCALL   _bufsize
 00079D 904E66            MOV     DPTR,#len
 0007A0 E0                MOVX    A,@DPTR
 0007A1 FE                MOV     R6,A
@@ -348,8 +348,8 @@
 
 ----- FUNCTION _kb_motion_keyscan (BEGIN) -----
  FILE: 'kb_process.c'
-  211: void kb_motion_keyscan(tKSEVENT *pEvt)
-  212: {
+  215: void kb_motion_keyscan(tKSEVENT *pEvt)
+  216: {
 000880 904E6F            MOV     DPTR,#pEvt
 000883 EB                MOV     A,R3
 000884 F0                MOVX    @DPTR,A
@@ -359,29 +359,29 @@
 000888 A3                INC     DPTR
 000889 E9                MOV     A,R1
 00088A F0                MOVX    @DPTR,A
-  213: 	byte temp = 0;
-  214: 	byte i=0;
+  217: 	byte temp = 0;
+  218: 	byte i=0;
 00088B E4                CLR     A
 00088C A3                INC     DPTR
 00088D F0                MOVX    @DPTR,A
-  215: 	
+  219: 	
 00088E A3                INC     DPTR
 00088F F0                MOVX    @DPTR,A
-  216: 	fn_flag = 0;
+  220: 	fn_flag = 0;
 000890 904DDB            MOV     DPTR,#fn_flag
 000893 F0                MOVX    @DPTR,A
-  217: 	for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
+  221: 	for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
 000894 904E73            MOV     DPTR,#i
 000897 F0                MOVX    @DPTR,A
-000898         ?C0031?KB_PROCESS:
+000898         ?C0033?KB_PROCESS:
 000898 904E73            MOV     DPTR,#i
 00089B E0                MOVX    A,@DPTR
 00089C FF                MOV     R7,A
 00089D C3                CLR     C
 00089E 9405              SUBB    A,#05H
-0008A0 502C              JNC     ?C0032?KB_PROCESS
-  218: 	{
-  219: 		if (pEvt->ksPool[i] == HID_KEY_FN) 		// Fn key check
+0008A0 502C              JNC     ?C0034?KB_PROCESS
+  222: 	{
+  223: 		if (pEvt->ksPool[i] == HID_KEY_FN) 		// Fn key check
 0008A2 904E6F            MOV     DPTR,#pEvt
 0008A5 E0                MOVX    A,@DPTR
 0008A6 FB                MOV     R3,A
@@ -403,29 +403,29 @@
 0008B8 3A                ADDC    A,R2
 0008B9 FA                MOV     R2,A
 0008BA 1203B6            LCALL   ?C?CLDPTR
-0008BD B4AF06            CJNE    A,#0AFH,?C0033?KB_PROCESS
-  220: 		{
-  221: 			fn_flag = 1;
+0008BD B4AF06            CJNE    A,#0AFH,?C0035?KB_PROCESS
+  224: 		{
+  225: 			fn_flag = 1;
 0008C0 904DDB            MOV     DPTR,#fn_flag
 0008C3 7401              MOV     A,#01H
 0008C5 F0                MOVX    @DPTR,A
-  222: 		}
-  223: 	}
-0008C6         ?C0033?KB_PROCESS:
+  226: 		}
+  227: 	}
+0008C6         ?C0035?KB_PROCESS:
 0008C6 904E73            MOV     DPTR,#i
 0008C9 E0                MOVX    A,@DPTR
 0008CA 04                INC     A
 0008CB F0                MOVX    @DPTR,A
-0008CC 80CA              SJMP    ?C0031?KB_PROCESS
-0008CE         ?C0032?KB_PROCESS:
-  224: 	fn_flag_last = fn_flag;
+0008CC 80CA              SJMP    ?C0033?KB_PROCESS
+0008CE         ?C0034?KB_PROCESS:
+  228: 	fn_flag_last = fn_flag;
 0008CE 904DDB            MOV     DPTR,#fn_flag
 0008D1 E0                MOVX    A,@DPTR
 0008D2 904DE0            MOV     DPTR,#fn_flag_last
 0008D5 F0                MOVX    @DPTR,A
-  225: 
-  226: 	
-  227: 	if(kb_device_select(pEvt))		// select device or discovery
+  229: 
+  230: 	
+  231: 	if(kb_device_select(pEvt))		// select device or discovery
 0008D6 904E6F            MOV     DPTR,#pEvt
 0008D9 E0                MOVX    A,@DPTR
 0008DA FB                MOV     R3,A
@@ -435,13 +435,13 @@
 0008DE A3                INC     DPTR
 0008DF E0                MOVX    A,@DPTR
 0008E0 F9                MOV     R1,A
-0008E1 1217D4            LCALL   _kb_device_select
+0008E1 121848            LCALL   _kb_device_select
 0008E4 EF                MOV     A,R7
 0008E5 6002              JZ      $ + 4H
-0008E7 4142              AJMP    ?C0036?KB_PROCESS
-0008E9         ?C0035?KB_PROCESS:
-  228: 		return;
-  229: 	if (pEvt == NULL)
+0008E7 412A              AJMP    ?C0038?KB_PROCESS
+0008E9         ?C0037?KB_PROCESS:
+  232: 		return;
+  233: 	if (pEvt == NULL)
 0008E9 904E6F            MOV     DPTR,#pEvt
 0008EC E0                MOVX    A,@DPTR
 0008ED A3                INC     DPTR
@@ -451,676 +451,658 @@
 0008F1 E0                MOVX    A,@DPTR
 0008F2 4A                ORL     A,R2
 0008F3 7002              JNZ     $ + 4H
-0008F5 4142              AJMP    ?C0036?KB_PROCESS
-0008F7         ?C0037?KB_PROCESS:
-  230: 		return;
-  231: 
-  232: 	
-  233: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+0008F5 412A              AJMP    ?C0038?KB_PROCESS
+0008F7         ?C0039?KB_PROCESS:
+  234: 		return;
+  235: 
+  236: 	
+  237: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
 0008F7 904CC7            MOV     DPTR,#g_variable+08H
 0008FA E0                MOVX    A,@DPTR
-0008FB B40406            CJNE    A,#04H,?C0038?KB_PROCESS
-  234: 	{
-  235: 		kscurrmult = 0x3;
+0008FB B40406            CJNE    A,#04H,?C0040?KB_PROCESS
+  238: 	{
+  239: 		kscurrmult = 0x3;			// lpm wakeup timer
 0008FE 904213            MOV     DPTR,#kscurrmult
 000901 7403              MOV     A,#03H
 000903 F0                MOVX    @DPTR,A
-  236: 	}
-000904         ?C0038?KB_PROCESS:
-  237: 	delayChgInvTimer = 10;
+  240: 	}
+000904         ?C0040?KB_PROCESS:
+  241: 	delayChgInvTimer = 10;
 000904 904DDE            MOV     DPTR,#delayChgInvTimer
 000907 740A              MOV     A,#0AH
 000909 F0                MOVX    @DPTR,A
-  238: 	g_variable.sleepTimer = 0;
+  242: 	g_variable.sleepTimer = 0;
 00090A E4                CLR     A
 00090B 904CE3            MOV     DPTR,#g_variable+024H
 00090E F0                MOVX    @DPTR,A
 00090F A3                INC     DPTR
 000910 F0                MOVX    @DPTR,A
-  239: 	xmemclear(hidBuff,9);
+  243: 	xmemclear(hidBuff,9);
 000911 7B01              MOV     R3,#01H
 000913 7A48              MOV     R2,#HIGH hidBuff
 000915 7900              MOV     R1,#LOW hidBuff
 000917 7D09              MOV     R5,#09H
 000919 FC                MOV     R4,A
-00091A 71EA              ACALL   _xmemclear
-  240: 	xmemclear(multikey,9);
+00091A 71D8              ACALL   _xmemclear
+  244: 	xmemclear(multikey,9);
 00091C 7B01              MOV     R3,#01H
 00091E 7A4E              MOV     R2,#HIGH multikey
 000920 7902              MOV     R1,#LOW multikey
 000922 7D09              MOV     R5,#09H
 000924 7C00              MOV     R4,#00H
-000926 71EA              ACALL   _xmemclear
-  241: 
-  242: 	m_power_on_flag = 1;
+000926 71D8              ACALL   _xmemclear
+  245: 
+  246: 	m_power_on_flag = 1;
 000928 904CB6            MOV     DPTR,#m_power_on_flag
 00092B 7401              MOV     A,#01H
 00092D F0                MOVX    @DPTR,A
-  243: 	if(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
+  247: 	if( (g_variable.key_combination_step == CAMBINATION_KEY_PRESS) ||
 00092E 904CF4            MOV     DPTR,#g_variable+035H
 000931 E0                MOVX    A,@DPTR
-000932 B4012A            CJNE    A,#01H,?C0039?KB_PROCESS
-  244: 	{
-  245: 		hidBuff[0] = HID_REPORTID_1;
-000935 904800            MOV     DPTR,#hidBuff
-000938 7401              MOV     A,#01H
-00093A F0                MOVX    @DPTR,A
-  246: 		hidBuff[1] |= g_variable.key_combination_ctrl;
-00093B A3                INC     DPTR
-00093C E0                MOVX    A,@DPTR
-00093D FF                MOV     R7,A
-00093E 904CF5            MOV     DPTR,#g_variable+036H
-000941 E0                MOVX    A,@DPTR
-000942 FE                MOV     R6,A
-000943 EF                MOV     A,R7
-000944 4E                ORL     A,R6
-000945 904801            MOV     DPTR,#hidBuff+01H
-000948 F0                MOVX    @DPTR,A
-  247: 		hidBuff[3] = 0x00; 
-000949 E4                CLR     A
-00094A 904803            MOV     DPTR,#hidBuff+03H
-00094D F0                MOVX    @DPTR,A
-  248: 		IPC_TxHidData(hidBuff, 9);
-00094E 7B01              MOV     R3,#01H
-000950 7A48              MOV     R2,#HIGH hidBuff
-000952 7900              MOV     R1,#LOW hidBuff
-000954 7D09              MOV     R5,#09H
-000956 5143              ACALL   _IPC_TxHidData
-  249: 		g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
-000958 904CF4            MOV     DPTR,#g_variable+035H
+000932 FF                MOV     R7,A
+000933 6401              XRL     A,#01H
+000935 7002              JNZ     $ + 4H
+000937 412A              AJMP    ?C0038?KB_PROCESS
+000939 EF                MOV     A,R7
+00093A 6404              XRL     A,#04H
+00093C 7002              JNZ     $ + 4H
+00093E 412A              AJMP    ?C0038?KB_PROCESS
+000940 EF                MOV     A,R7
+000941 6402              XRL     A,#02H
+000943 7002              JNZ     $ + 4H
+000945 412A              AJMP    ?C0038?KB_PROCESS
+  248: 	    (g_variable.key_combination_step == CAMBINATION_KEY_WAIT_RELEASE) ||
+  249: 	    (g_variable.key_combination_step == CAMBINATION_KEY_HOLD))
+  250: 	{
+  251: 		return;
+  252: 	}
+000947         ?C0041?KB_PROCESS:
+  253: 
+  254: 
+  255: 	kb_multikey_setup(pEvt);
+000947 904E6F            MOV     DPTR,#pEvt
+00094A E0                MOVX    A,@DPTR
+00094B FB                MOV     R3,A
+00094C A3                INC     DPTR
+00094D E0                MOVX    A,@DPTR
+00094E FA                MOV     R2,A
+00094F A3                INC     DPTR
+000950 E0                MOVX    A,@DPTR
+000951 F9                MOV     R1,A
+000952 512B              ACALL   _kb_multikey_setup
+  256: 	
+  257: 	if (mult_key_status == KEY_PRESS) 
+000954 904E01            MOV     DPTR,#mult_key_status
+000957 E0                MOVX    A,@DPTR
+000958 B40111            CJNE    A,#01H,?C0043?KB_PROCESS
+  258: 	{
+  259: 		mult_key_status = KEY_WAIT_RELEASE;
 00095B 7402              MOV     A,#02H
 00095D F0                MOVX    @DPTR,A
-00095E 22                RET     
-  250: 		return;
-  251: 	}
-00095F         ?C0039?KB_PROCESS:
-  252: 
-  253: 	kb_multikey_setup(pEvt);
-00095F 904E6F            MOV     DPTR,#pEvt
-000962 E0                MOVX    A,@DPTR
-000963 FB                MOV     R3,A
-000964 A3                INC     DPTR
-000965 E0                MOVX    A,@DPTR
-000966 FA                MOV     R2,A
-000967 A3                INC     DPTR
-000968 E0                MOVX    A,@DPTR
-000969 F9                MOV     R1,A
-00096A 5174              ACALL   _kb_multikey_setup
-  254: 	
-  255: 	if (mult_key_status == KEY_PRESS) 
+  260: 		multikey[0] = HID_REPORTID_2;	
+00095E 904E02            MOV     DPTR,#multikey
+000961 F0                MOVX    @DPTR,A
+  261: 		IPC_TxHidData(multikey, 3);
+000962 7B01              MOV     R3,#01H
+000964 7A4E              MOV     R2,#HIGH multikey
+000966 7902              MOV     R1,#LOW multikey
+000968 7D03              MOV     R5,#03H
+00096A 818A              AJMP    _IPC_TxHidData
+  262: 	}
+00096C         ?C0043?KB_PROCESS:
+  263: 	else if(mult_key_status == KEY_RELEASE)
 00096C 904E01            MOV     DPTR,#mult_key_status
 00096F E0                MOVX    A,@DPTR
-000970 B40111            CJNE    A,#01H,?C0040?KB_PROCESS
-  256: 	{
-  257: 		mult_key_status = KEY_WAIT_RELEASE;
-000973 7402              MOV     A,#02H
-000975 F0                MOVX    @DPTR,A
-  258: 		multikey[0] = HID_REPORTID_2;	
-000976 904E02            MOV     DPTR,#multikey
-000979 F0                MOVX    @DPTR,A
-  259: 		IPC_TxHidData(multikey, 3);
-00097A 7B01              MOV     R3,#01H
-00097C 7A4E              MOV     R2,#HIGH multikey
-00097E 7902              MOV     R1,#LOW multikey
-000980 7D03              MOV     R5,#03H
-000982 4143              AJMP    _IPC_TxHidData
-  260: 	}
-000984         ?C0040?KB_PROCESS:
-  261: 	else if(mult_key_status == KEY_RELEASE)
-000984 904E01            MOV     DPTR,#mult_key_status
-000987 E0                MOVX    A,@DPTR
-000988 B40316            CJNE    A,#03H,?C0042?KB_PROCESS
-  262: 	{
-  263: 		mult_key_status = KEY_STANDBY;
-00098B E4                CLR     A
-00098C F0                MOVX    @DPTR,A
-  264: 		mult_key_value = 0;
-00098D 904DE3            MOV     DPTR,#mult_key_value
-000990 F0                MOVX    @DPTR,A
-  265: 		multikey[0] = HID_REPORTID_2;	
-000991 904E02            MOV     DPTR,#multikey
-000994 7402              MOV     A,#02H
-000996 F0                MOVX    @DPTR,A
-  266: 		IPC_TxHidData(multikey, 3);
-000997 7B01              MOV     R3,#01H
-000999 7A4E              MOV     R2,#HIGH multikey
-00099B 7902              MOV     R1,#LOW multikey
-00099D 7D03              MOV     R5,#03H
-00099F 4143              AJMP    _IPC_TxHidData
-  267: 	}
-0009A1         ?C0042?KB_PROCESS:
-  268: 	else 
-  269: 	{
-  270: 		hidBuff[0] = HID_REPORTID_1;
-0009A1 904800            MOV     DPTR,#hidBuff
-0009A4 7401              MOV     A,#01H
-0009A6 F0                MOVX    @DPTR,A
-  271: 		hidBuff[1] = pEvt->standardSel;
-0009A7 904E6F            MOV     DPTR,#pEvt
-0009AA E0                MOVX    A,@DPTR
-0009AB FB                MOV     R3,A
-0009AC A3                INC     DPTR
-0009AD E0                MOVX    A,@DPTR
-0009AE FA                MOV     R2,A
-0009AF A3                INC     DPTR
-0009B0 E0                MOVX    A,@DPTR
-0009B1 F9                MOV     R1,A
-0009B2 1203B6            LCALL   ?C?CLDPTR
-0009B5 904801            MOV     DPTR,#hidBuff+01H
-0009B8 F0                MOVX    @DPTR,A
-  272: 		hidBuff[2] = 0;
-0009B9 E4                CLR     A
-0009BA A3                INC     DPTR
-0009BB F0                MOVX    @DPTR,A
-  273: 
-  274: 		standard_key_release_flag = 0;
-0009BC 904DD8            MOV     DPTR,#standard_key_release_flag
-0009BF F0                MOVX    @DPTR,A
+000970 B40316            CJNE    A,#03H,?C0045?KB_PROCESS
+  264: 	{
+  265: 		mult_key_status = KEY_STANDBY;
+000973 E4                CLR     A
+000974 F0                MOVX    @DPTR,A
+  266: 		mult_key_value = 0;
+000975 904DE3            MOV     DPTR,#mult_key_value
+000978 F0                MOVX    @DPTR,A
+  267: 		multikey[0] = HID_REPORTID_2;	
+000979 904E02            MOV     DPTR,#multikey
+00097C 7402              MOV     A,#02H
+00097E F0                MOVX    @DPTR,A
+  268: 		IPC_TxHidData(multikey, 3);
+00097F 7B01              MOV     R3,#01H
+000981 7A4E              MOV     R2,#HIGH multikey
+000983 7902              MOV     R1,#LOW multikey
+000985 7D03              MOV     R5,#03H
+000987 818A              AJMP    _IPC_TxHidData
+  269: 	}
+000989         ?C0045?KB_PROCESS:
+  270: 	else 
+  271: 	{
+  272: 		hidBuff[0] = HID_REPORTID_1;		// standard key send
+000989 904800            MOV     DPTR,#hidBuff
+00098C 7401              MOV     A,#01H
+00098E F0                MOVX    @DPTR,A
+  273: 		hidBuff[1] = pEvt->standardSel;
+00098F 904E6F            MOV     DPTR,#pEvt
+000992 E0                MOVX    A,@DPTR
+000993 FB                MOV     R3,A
+000994 A3                INC     DPTR
+000995 E0                MOVX    A,@DPTR
+000996 FA                MOV     R2,A
+000997 A3                INC     DPTR
+000998 E0                MOVX    A,@DPTR
+000999 F9                MOV     R1,A
+00099A 1203B6            LCALL   ?C?CLDPTR
+00099D 904801            MOV     DPTR,#hidBuff+01H
+0009A0 F0                MOVX    @DPTR,A
+  274: 		hidBuff[2] = 0;
+0009A1 E4                CLR     A
+0009A2 A3                INC     DPTR
+0009A3 F0                MOVX    @DPTR,A
   275: 
-  276: 		if (pEvt->ksPool[0] == HID_KEY_FN)
-0009C0 900001            MOV     DPTR,#01H
-0009C3 1203CF            LCALL   ?C?CLDOPTR
-0009C6 B4AF1E            CJNE    A,#0AFH,?C0044?KB_PROCESS
-  277: 			xmemcpy(&hidBuff[3], &pEvt->ksPool[1], 5);
-0009C9 7E48              MOV     R6,#HIGH hidBuff+03H
-0009CB 7F03              MOV     R7,#LOW hidBuff+03H
-0009CD 904E6F            MOV     DPTR,#pEvt
-0009D0 E0                MOVX    A,@DPTR
-0009D1 FB                MOV     R3,A
-0009D2 A3                INC     DPTR
-0009D3 E0                MOVX    A,@DPTR
-0009D4 FA                MOV     R2,A
-0009D5 A3                INC     DPTR
+  276: 		standard_key_release_flag = 0;
+0009A4 904DD8            MOV     DPTR,#standard_key_release_flag
+0009A7 F0                MOVX    @DPTR,A
+  277: 
+  278: 		if (pEvt->ksPool[0] == HID_KEY_FN)
+0009A8 900001            MOV     DPTR,#01H
+0009AB 1203CF            LCALL   ?C?CLDOPTR
+0009AE B4AF1E            CJNE    A,#0AFH,?C0047?KB_PROCESS
+  279: 			xmemcpy(&hidBuff[3], &pEvt->ksPool[1], 5);
+0009B1 7E48              MOV     R6,#HIGH hidBuff+03H
+0009B3 7F03              MOV     R7,#LOW hidBuff+03H
+0009B5 904E6F            MOV     DPTR,#pEvt
+0009B8 E0                MOVX    A,@DPTR
+0009B9 FB                MOV     R3,A
+0009BA A3                INC     DPTR
+0009BB E0                MOVX    A,@DPTR
+0009BC FA                MOV     R2,A
+0009BD A3                INC     DPTR
+0009BE E0                MOVX    A,@DPTR
+0009BF 2402              ADD     A,#02H
+0009C1 F9                MOV     R1,A
+0009C2 E4                CLR     A
+0009C3 3A                ADDC    A,R2
+0009C4 FA                MOV     R2,A
+0009C5 904E6E            MOV     DPTR,#?_xmemcpy?BYTE+05H
+0009C8 7405              MOV     A,#05H
+0009CA F0                MOVX    @DPTR,A
+0009CB 113D              ACALL   _xmemcpy
+0009CD 801C              SJMP    ?C0048?KB_PROCESS
+0009CF         ?C0047?KB_PROCESS:
+  280: 		else
+  281: 			xmemcpy(&hidBuff[3], pEvt->ksPool, 6);
+0009CF 7E48              MOV     R6,#HIGH hidBuff+03H
+0009D1 7F03              MOV     R7,#LOW hidBuff+03H
+0009D3 904E6F            MOV     DPTR,#pEvt
 0009D6 E0                MOVX    A,@DPTR
-0009D7 2402              ADD     A,#02H
-0009D9 F9                MOV     R1,A
-0009DA E4                CLR     A
-0009DB 3A                ADDC    A,R2
-0009DC FA                MOV     R2,A
-0009DD 904E6E            MOV     DPTR,#?_xmemcpy?BYTE+05H
-0009E0 7405              MOV     A,#05H
-0009E2 F0                MOVX    @DPTR,A
-0009E3 113D              ACALL   _xmemcpy
-0009E5 801C              SJMP    ?C0045?KB_PROCESS
-0009E7         ?C0044?KB_PROCESS:
-  278: 		else
-  279: 			xmemcpy(&hidBuff[3], pEvt->ksPool, 6);
-0009E7 7E48              MOV     R6,#HIGH hidBuff+03H
-0009E9 7F03              MOV     R7,#LOW hidBuff+03H
-0009EB 904E6F            MOV     DPTR,#pEvt
-0009EE E0                MOVX    A,@DPTR
-0009EF FB                MOV     R3,A
-0009F0 A3                INC     DPTR
-0009F1 E0                MOVX    A,@DPTR
-0009F2 FA                MOV     R2,A
-0009F3 A3                INC     DPTR
+0009D7 FB                MOV     R3,A
+0009D8 A3                INC     DPTR
+0009D9 E0                MOVX    A,@DPTR
+0009DA FA                MOV     R2,A
+0009DB A3                INC     DPTR
+0009DC E0                MOVX    A,@DPTR
+0009DD 2401              ADD     A,#01H
+0009DF F9                MOV     R1,A
+0009E0 E4                CLR     A
+0009E1 3A                ADDC    A,R2
+0009E2 FA                MOV     R2,A
+0009E3 904E6E            MOV     DPTR,#?_xmemcpy?BYTE+05H
+0009E6 7406              MOV     A,#06H
+0009E8 F0                MOVX    @DPTR,A
+0009E9 113D              ACALL   _xmemcpy
+0009EB         ?C0048?KB_PROCESS:
+  282: 		
+  283: 		for(i = 3; i<9;i++)
+0009EB 904E73            MOV     DPTR,#i
+0009EE 7403              MOV     A,#03H
+0009F0 F0                MOVX    @DPTR,A
+0009F1         ?C0049?KB_PROCESS:
+0009F1 904E73            MOV     DPTR,#i
 0009F4 E0                MOVX    A,@DPTR
-0009F5 2401              ADD     A,#01H
-0009F7 F9                MOV     R1,A
-0009F8 E4                CLR     A
-0009F9 3A                ADDC    A,R2
-0009FA FA                MOV     R2,A
-0009FB 904E6E            MOV     DPTR,#?_xmemcpy?BYTE+05H
-0009FE 7406              MOV     A,#06H
-000A00 F0                MOVX    @DPTR,A
-000A01 113D              ACALL   _xmemcpy
-000A03         ?C0045?KB_PROCESS:
-  280: 		
-  281: 		for(i = 3; i<9;i++)
-000A03 904E73            MOV     DPTR,#i
-000A06 7403              MOV     A,#03H
-000A08 F0                MOVX    @DPTR,A
-000A09         ?C0046?KB_PROCESS:
+0009F5 FF                MOV     R7,A
+0009F6 C3                CLR     C
+0009F7 9409              SUBB    A,#09H
+0009F9 5025              JNC     ?C0050?KB_PROCESS
+  284: 		{
+  285: 			if (hidBuff[i] == HID_KEY_FN)
+0009FB 7400              MOV     A,#LOW hidBuff
+0009FD 2F                ADD     A,R7
+0009FE F582              MOV     DPL,A
+000A00 E4                CLR     A
+000A01 3448              ADDC    A,#HIGH hidBuff
+000A03 F583              MOV     DPH,A
+000A05 E0                MOVX    A,@DPTR
+000A06 B4AF0F            CJNE    A,#0AFH,?C0051?KB_PROCESS
+  286: 				hidBuff[i] = 0;
 000A09 904E73            MOV     DPTR,#i
 000A0C E0                MOVX    A,@DPTR
-000A0D FF                MOV     R7,A
-000A0E C3                CLR     C
-000A0F 9409              SUBB    A,#09H
-000A11 5025              JNC     ?C0047?KB_PROCESS
-  282: 		{
-  283: 			if (hidBuff[i] == HID_KEY_FN)
-000A13 7400              MOV     A,#LOW hidBuff
-000A15 2F                ADD     A,R7
-000A16 F582              MOV     DPL,A
-000A18 E4                CLR     A
-000A19 3448              ADDC    A,#HIGH hidBuff
-000A1B F583              MOV     DPH,A
-000A1D E0                MOVX    A,@DPTR
-000A1E B4AF0F            CJNE    A,#0AFH,?C0048?KB_PROCESS
-  284: 				hidBuff[i] = 0;
-000A21 904E73            MOV     DPTR,#i
-000A24 E0                MOVX    A,@DPTR
-000A25 2400              ADD     A,#LOW hidBuff
-000A27 F582              MOV     DPL,A
-000A29 E4                CLR     A
-000A2A 3448              ADDC    A,#HIGH hidBuff
-000A2C F583              MOV     DPH,A
-000A2E E4                CLR     A
-000A2F F0                MOVX    @DPTR,A
-  285: 		}
-000A30         ?C0048?KB_PROCESS:
-000A30 904E73            MOV     DPTR,#i
-000A33 E0                MOVX    A,@DPTR
-000A34 04                INC     A
-000A35 F0                MOVX    @DPTR,A
-000A36 80D1              SJMP    ?C0046?KB_PROCESS
-000A38         ?C0047?KB_PROCESS:
-  286: 		
-  287: 		IPC_TxHidData(hidBuff, 9);
-000A38 7B01              MOV     R3,#01H
-000A3A 7A48              MOV     R2,#HIGH hidBuff
-000A3C 7900              MOV     R1,#LOW hidBuff
-000A3E 7D09              MOV     R5,#09H
-000A40 5143              ACALL   _IPC_TxHidData
-  288: 	}
-  289: 	return;
-  290: }
-000A42         ?C0036?KB_PROCESS:
-000A42 22                RET     
+000A0D 2400              ADD     A,#LOW hidBuff
+000A0F F582              MOV     DPL,A
+000A11 E4                CLR     A
+000A12 3448              ADDC    A,#HIGH hidBuff
+000A14 F583              MOV     DPH,A
+000A16 E4                CLR     A
+000A17 F0                MOVX    @DPTR,A
+  287: 		}
+000A18         ?C0051?KB_PROCESS:
+000A18 904E73            MOV     DPTR,#i
+000A1B E0                MOVX    A,@DPTR
+000A1C 04                INC     A
+000A1D F0                MOVX    @DPTR,A
+000A1E 80D1              SJMP    ?C0049?KB_PROCESS
+000A20         ?C0050?KB_PROCESS:
+  288: 		
+  289: 		IPC_TxHidData(hidBuff, 9);
+000A20 7B01              MOV     R3,#01H
+000A22 7A48              MOV     R2,#HIGH hidBuff
+000A24 7900              MOV     R1,#LOW hidBuff
+000A26 7D09              MOV     R5,#09H
+000A28 918A              ACALL   _IPC_TxHidData
+  290: 	}
+  291: 	return;
+  292: }
+000A2A         ?C0038?KB_PROCESS:
+000A2A 22                RET     
 ----- FUNCTION _kb_motion_keyscan (END) -------
 
 
------ FUNCTION _IPC_TxHidData (BEGIN) -----
+----- FUNCTION _kb_multikey_setup (BEGIN) -----
  FILE: 'kb_process.c'
-   52: void IPC_TxHidData(byte* dt, byte len)
-   53: {
-000A43 904E7E            MOV     DPTR,#dt
-000A46 EB                MOV     A,R3
-000A47 F0                MOVX    @DPTR,A
-000A48 A3                INC     DPTR
-000A49 EA                MOV     A,R2
-000A4A F0                MOVX    @DPTR,A
+  489: void kb_multikey_setup(tKSEVENT *pEvt)
+  490: {
+000A2B 904E82            MOV     DPTR,#pEvt
+000A2E EB                MOV     A,R3
+000A2F F0                MOVX    @DPTR,A
+000A30 A3                INC     DPTR
+000A31 EA                MOV     A,R2
+000A32 F0                MOVX    @DPTR,A
+000A33 A3                INC     DPTR
+000A34 E9                MOV     A,R1
+000A35 F0                MOVX    @DPTR,A
+  491: 	byte i = 0;
+  492: 	
+000A36 E4                CLR     A
+000A37 A3                INC     DPTR
+000A38 F0                MOVX    @DPTR,A
+  493: 	for (i = 0;i < 6;i++)
+000A39 F0                MOVX    @DPTR,A
+000A3A         ?C0082?KB_PROCESS:
+000A3A 904E85            MOV     DPTR,#i
+000A3D E0                MOVX    A,@DPTR
+000A3E FF                MOV     R7,A
+000A3F C3                CLR     C
+000A40 9406              SUBB    A,#06H
+000A42 4002              JC      $ + 4H
+000A44 61BC              AJMP    ?C0111?KB_PROCESS
+  494: 	{		
+  495: 		if ((pEvt->ksPool[i] &0xF0) == 0xf0 
+000A46 904E82            MOV     DPTR,#pEvt
+000A49 E0                MOVX    A,@DPTR
+000A4A FB                MOV     R3,A
 000A4B A3                INC     DPTR
-000A4C E9                MOV     A,R1
-000A4D F0                MOVX    @DPTR,A
+000A4C E0                MOVX    A,@DPTR
+000A4D FA                MOV     R2,A
 000A4E A3                INC     DPTR
-000A4F ED                MOV     A,R5
-000A50 F0                MOVX    @DPTR,A
-   54: 	if(!YC_check_need_reconnected()) 
-   55: 		return;
-000A51 F1FC              ACALL   YC_check_need_reconnected
-000A53 EF                MOV     A,R7
-000A54 601D              JZ      ?C0013?KB_PROCESS
-000A56         ?C0012?KB_PROCESS:
-   56: 	if (g_variable.release_data)
-000A56 904CEB            MOV     DPTR,#g_variable+02CH
-000A59 E0                MOVX    A,@DPTR
-000A5A 7017              JNZ     ?C0013?KB_PROCESS
-000A5C         ?C0014?KB_PROCESS:
-   57: 		return;
-   58: 
-   59: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
-000A5C 904CC7            MOV     DPTR,#g_variable+08H
-000A5F E0                MOVX    A,@DPTR
-000A60 B40410            CJNE    A,#04H,?C0013?KB_PROCESS
-   60: 	{
-   61: 		IPC_TxBleData(dt,len);
-000A63 904E7E            MOV     DPTR,#dt
-000A66 E0                MOVX    A,@DPTR
-000A67 FB                MOV     R3,A
-000A68 A3                INC     DPTR
-000A69 E0                MOVX    A,@DPTR
-000A6A FA                MOV     R2,A
-000A6B A3                INC     DPTR
-000A6C E0                MOVX    A,@DPTR
-000A6D F9                MOV     R1,A
-000A6E A3                INC     DPTR
-000A6F E0                MOVX    A,@DPTR
-000A70 FD                MOV     R5,A
-000A71 B15F              ACALL   _IPC_TxBleData
-   62: 	}
-   63: }
-000A73         ?C0013?KB_PROCESS:
-000A73 22                RET     
------ FUNCTION _IPC_TxHidData (END) -------
-
-
------ FUNCTION _kb_multikey_setup (BEGIN) -----
- FILE: 'kb_process.c'
-  445: void kb_multikey_setup(tKSEVENT *pEvt)
-  446: {
-000A74 904E82            MOV     DPTR,#pEvt
-000A77 EB                MOV     A,R3
-000A78 F0                MOVX    @DPTR,A
-000A79 A3                INC     DPTR
-000A7A EA                MOV     A,R2
-000A7B F0                MOVX    @DPTR,A
-000A7C A3                INC     DPTR
-000A7D E9                MOV     A,R1
-000A7E F0                MOVX    @DPTR,A
-  447: 	byte i = 0;
-  448: 	
-000A7F E4                CLR     A
-000A80 A3                INC     DPTR
-000A81 F0                MOVX    @DPTR,A
-  449: 	for (i = 0;i < 6;i++)
-000A82 F0                MOVX    @DPTR,A
-000A83         ?C0083?KB_PROCESS:
-000A83 904E85            MOV     DPTR,#i
-000A86 E0                MOVX    A,@DPTR
-000A87 FF                MOV     R7,A
-000A88 C3                CLR     C
-000A89 9406              SUBB    A,#06H
-000A8B 4002              JC      $ + 4H
-000A8D 61CE              AJMP    ?C0108?KB_PROCESS
-  450: 	{		
-  451: 		if ((pEvt->ksPool[i] &0xF0) == 0xf0 
-000A8F 904E82            MOV     DPTR,#pEvt
+000A4F E0                MOVX    A,@DPTR
+000A50 2401              ADD     A,#01H
+000A52 F9                MOV     R1,A
+000A53 E4                CLR     A
+000A54 3A                ADDC    A,R2
+000A55 FA                MOV     R2,A
+000A56 7E00              MOV     R6,#00H
+000A58 E9                MOV     A,R1
+000A59 2F                ADD     A,R7
+000A5A F9                MOV     R1,A
+000A5B EE                MOV     A,R6
+000A5C 3A                ADDC    A,R2
+000A5D FA                MOV     R2,A
+000A5E 1203B6            LCALL   ?C?CLDPTR
+000A61 FF                MOV     R7,A
+000A62 54F0              ANL     A,#0F0H
+000A64 64F0              XRL     A,#0F0H
+000A66 6009              JZ      ?C0086?KB_PROCESS
+000A68 EF                MOV     A,R7
+000A69 54D0              ANL     A,#0D0H
+000A6B 64D0              XRL     A,#0D0H
+000A6D 6002              JZ      $ + 4H
+000A6F 61B4              AJMP    ?C0084?KB_PROCESS
+000A71         ?C0086?KB_PROCESS:
+  496: 			|| (pEvt->ksPool[i] &0xD0) == 0xD0)
+  497: 		{
+  498: 			/*
+  499: 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_MEDIA) //media select
+  500: 			{
+  501: 				kb_set_multikey(0x0183); 
+  502: 			}
+  503: 			else*/ 
+  504: 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_PALY) //play / pause
+000A71 1203B6            LCALL   ?C?CLDPTR
+000A74 FB                MOV     R3,A
+000A75 B4F208            CJNE    A,#0F2H,?C0087?KB_PROCESS
+  505: 			{ 
+  506: 				kb_set_multikey(0x00cd);
+000A78 7FCD              MOV     R7,#0CDH
+000A7A 7E00              MOV     R6,#00H
+000A7C 71BD              ACALL   _kb_set_multikey
+  507: 			}
+000A7E 6189              AJMP    ?C0088?KB_PROCESS
+000A80         ?C0087?KB_PROCESS:
+  508: 		/*	else if (pEvt->ksPool[i] ==  HID_MULTIKEY_STOP)  //stop
+  509: 			{
+  510: 				kb_set_multikey(0x00b7);
+  511: 			}	*/
+  512: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PRE_TRACK) //pre Track
+000A80 EB                MOV     A,R3
+000A81 B4F408            CJNE    A,#0F4H,?C0089?KB_PROCESS
+  513: 			{
+  514: 				kb_set_multikey(0x00b6);
+000A84 7FB6              MOV     R7,#0B6H
+000A86 7E00              MOV     R6,#00H
+000A88 71BD              ACALL   _kb_set_multikey
+  515: 			}
+000A8A 6189              AJMP    ?C0088?KB_PROCESS
+000A8C         ?C0089?KB_PROCESS:
+  516: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_NEXT_TRACK) //next Track
+000A8C 904E82            MOV     DPTR,#pEvt
+000A8F E0                MOVX    A,@DPTR
+000A90 FB                MOV     R3,A
+000A91 A3                INC     DPTR
 000A92 E0                MOVX    A,@DPTR
-000A93 FB                MOV     R3,A
+000A93 FA                MOV     R2,A
 000A94 A3                INC     DPTR
 000A95 E0                MOVX    A,@DPTR
-000A96 FA                MOV     R2,A
-000A97 A3                INC     DPTR
-000A98 E0                MOVX    A,@DPTR
-000A99 2401              ADD     A,#01H
-000A9B F9                MOV     R1,A
-000A9C E4                CLR     A
-000A9D 3A                ADDC    A,R2
-000A9E FA                MOV     R2,A
-000A9F 7E00              MOV     R6,#00H
-000AA1 E9                MOV     A,R1
-000AA2 2F                ADD     A,R7
-000AA3 F9                MOV     R1,A
-000AA4 EE                MOV     A,R6
-000AA5 3A                ADDC    A,R2
-000AA6 FA                MOV     R2,A
-000AA7 1203B6            LCALL   ?C?CLDPTR
-000AAA FF                MOV     R7,A
-000AAB 54F0              ANL     A,#0F0H
-000AAD 64F0              XRL     A,#0F0H
-000AAF 6009              JZ      ?C0087?KB_PROCESS
-000AB1 EF                MOV     A,R7
-000AB2 54D0              ANL     A,#0D0H
-000AB4 64D0              XRL     A,#0D0H
-000AB6 6002              JZ      $ + 4H
-000AB8 61C6              AJMP    ?C0085?KB_PROCESS
-000ABA         ?C0087?KB_PROCESS:
-  452: 			|| (pEvt->ksPool[i] &0xD0) == 0xD0)
-  453: 		{
-  454: 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_MEDIA) //media select
-000ABA 1203B6            LCALL   ?C?CLDPTR
-000ABD FB                MOV     R3,A
-000ABE B4F108            CJNE    A,#0F1H,?C0088?KB_PROCESS
-  455: 			{
-  456: 				kb_set_multikey(0x0183); 
-000AC1 7F83              MOV     R7,#083H
-000AC3 7E01              MOV     R6,#01H
-000AC5 71CF              ACALL   _kb_set_multikey
-  457: 			}
-000AC7 619B              AJMP    ?C0089?KB_PROCESS
-000AC9         ?C0088?KB_PROCESS:
-  458: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PALY) //play / pause
-000AC9 EB                MOV     A,R3
-000ACA B4F208            CJNE    A,#0F2H,?C0090?KB_PROCESS
-  459: 			{ 
-  460: 				kb_set_multikey(0x00cd);
-000ACD 7FCD              MOV     R7,#0CDH
-000ACF 7E00              MOV     R6,#00H
-000AD1 71CF              ACALL   _kb_set_multikey
-  461: 			}
-000AD3 619B              AJMP    ?C0089?KB_PROCESS
-000AD5         ?C0090?KB_PROCESS:
-  462: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_STOP)  //stop
-000AD5 904E82            MOV     DPTR,#pEvt
-000AD8 E0                MOVX    A,@DPTR
-000AD9 FB                MOV     R3,A
-000ADA A3                INC     DPTR
-000ADB E0                MOVX    A,@DPTR
-000ADC FA                MOV     R2,A
-000ADD A3                INC     DPTR
-000ADE E0                MOVX    A,@DPTR
-000ADF 2401              ADD     A,#01H
-000AE1 F9                MOV     R1,A
-000AE2 E4                CLR     A
-000AE3 3A                ADDC    A,R2
-000AE4 FA                MOV     R2,A
-000AE5 A3                INC     DPTR
-000AE6 E0                MOVX    A,@DPTR
-000AE7 7E00              MOV     R6,#00H
-000AE9 29                ADD     A,R1
-000AEA F9                MOV     R1,A
-000AEB EE                MOV     A,R6
-000AEC 3A                ADDC    A,R2
-000AED FA                MOV     R2,A
-000AEE 1203B6            LCALL   ?C?CLDPTR
-000AF1 FB                MOV     R3,A
-000AF2 B4F306            CJNE    A,#0F3H,?C0092?KB_PROCESS
-  463: 			{
-  464: 				kb_set_multikey(0x00b7);
-000AF5 7FB7              MOV     R7,#0B7H
-000AF7 71CF              ACALL   _kb_set_multikey
-  465: 			}
-000AF9 619B              AJMP    ?C0089?KB_PROCESS
-000AFB         ?C0092?KB_PROCESS:
-  466: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PRE_TRACK) //pre Track
-000AFB EB                MOV     A,R3
-000AFC B4F408            CJNE    A,#0F4H,?C0094?KB_PROCESS
-  467: 			{
-  468: 				kb_set_multikey(0x00b6);
-000AFF 7FB6              MOV     R7,#0B6H
-000B01 7E00              MOV     R6,#00H
-000B03 71CF              ACALL   _kb_set_multikey
-  469: 			}
-000B05 619B              AJMP    ?C0089?KB_PROCESS
-000B07         ?C0094?KB_PROCESS:
-  470: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_NEXT_TRACK) //next Track
-000B07 904E82            MOV     DPTR,#pEvt
-000B0A E0                MOVX    A,@DPTR
-000B0B FB                MOV     R3,A
-000B0C A3                INC     DPTR
-000B0D E0                MOVX    A,@DPTR
-000B0E FA                MOV     R2,A
-000B0F A3                INC     DPTR
-000B10 E0                MOVX    A,@DPTR
-000B11 2401              ADD     A,#01H
-000B13 F9                MOV     R1,A
-000B14 E4                CLR     A
-000B15 3A                ADDC    A,R2
-000B16 FA                MOV     R2,A
-000B17 A3                INC     DPTR
-000B18 E0                MOVX    A,@DPTR
-000B19 7E00              MOV     R6,#00H
-000B1B 29                ADD     A,R1
-000B1C F9                MOV     R1,A
-000B1D EE                MOV     A,R6
-000B1E 3A                ADDC    A,R2
-000B1F FA                MOV     R2,A
-000B20 1203B6            LCALL   ?C?CLDPTR
-000B23 FB                MOV     R3,A
-000B24 B4F506            CJNE    A,#0F5H,?C0096?KB_PROCESS
-  471: 			{
-  472: 				kb_set_multikey(0x00b5);
-000B27 7FB5              MOV     R7,#0B5H
-000B29 71CF              ACALL   _kb_set_multikey
-  473: 			}
-000B2B 806E              SJMP    ?C0089?KB_PROCESS
-000B2D         ?C0096?KB_PROCESS:
-  474: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_DOWN) //vol-
-000B2D EB                MOV     A,R3
-000B2E B4F608            CJNE    A,#0F6H,?C0098?KB_PROCESS
-  475: 			{
-  476: 				kb_set_multikey(0x00ea);
-000B31 7FEA              MOV     R7,#0EAH
-000B33 7E00              MOV     R6,#00H
-000B35 71CF              ACALL   _kb_set_multikey
-  477: 			}
-000B37 8062              SJMP    ?C0089?KB_PROCESS
-000B39         ?C0098?KB_PROCESS:
-  478: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_UP) //vol+
-000B39 904E82            MOV     DPTR,#pEvt
-000B3C E0                MOVX    A,@DPTR
-000B3D FB                MOV     R3,A
-000B3E A3                INC     DPTR
-000B3F E0                MOVX    A,@DPTR
-000B40 FA                MOV     R2,A
-000B41 A3                INC     DPTR
-000B42 E0                MOVX    A,@DPTR
-000B43 2401              ADD     A,#01H
-000B45 F9                MOV     R1,A
-000B46 E4                CLR     A
-000B47 3A                ADDC    A,R2
-000B48 FA                MOV     R2,A
-000B49 A3                INC     DPTR
-000B4A E0                MOVX    A,@DPTR
-000B4B 7E00              MOV     R6,#00H
-000B4D 29                ADD     A,R1
-000B4E F9                MOV     R1,A
-000B4F EE                MOV     A,R6
-000B50 3A                ADDC    A,R2
-000B51 FA                MOV     R2,A
-000B52 1203B6            LCALL   ?C?CLDPTR
-000B55 FB                MOV     R3,A
-000B56 B4F706            CJNE    A,#0F7H,?C0100?KB_PROCESS
-  479: 			{
-  480: 				kb_set_multikey(0x00e9);
-000B59 7FE9              MOV     R7,#0E9H
-000B5B 71CF              ACALL   _kb_set_multikey
-  481: 			}
-000B5D 803C              SJMP    ?C0089?KB_PROCESS
-000B5F         ?C0100?KB_PROCESS:
-  482: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MUTE) //mute
-000B5F EB                MOV     A,R3
-000B60 B4F808            CJNE    A,#0F8H,?C0102?KB_PROCESS
-  483: 			{
-  484: 				kb_set_multikey(0x00e2);
-000B63 7FE2              MOV     R7,#0E2H
-000B65 7E00              MOV     R6,#00H
-000B67 71CF              ACALL   _kb_set_multikey
-  485: 			}
-000B69 8030              SJMP    ?C0089?KB_PROCESS
-000B6B         ?C0102?KB_PROCESS:
-  486: 		/*
-  487: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MY_COMPUTER) 
-  488: 			{
-  489: 				kb_set_multikey(0x0194);
-  490: 			}
-  491: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_MAIL)  //mail
-  492: 			{
-  493: 				kb_set_multikey(0x018a);//mail
-  494: 			}
-  495: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_CALCULATOR) //calculator
-  496: 			{
-  497: 				kb_set_multikey(0x0192);
-  498: 			}
-  499: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FAVORITES) 
-  500: 			{
-  501: 				kb_set_multikey(0x022a);//www Favorites
-  502: 			}
-  503: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FORWARD)  
-  504: 			{
-  505: 				kb_set_multikey(0x0225);
-  506: 			}
-  507: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_STOP)  //www Stop
-  508: 			{
-  509: 				kb_set_multikey(0x0226);
-  510: 			}
-  511: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_BACK)  
-  512: 			{
-  513: 				kb_set_multikey(0x0224);
-  514: 			}
-  515: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_REFRESH) //www refresh
-  516: 			{
-  517: 				kb_set_multikey(0x0227);
-  518: 			}
-  519: 			
-  520: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_SEARCH)  //www search
+000A96 2401              ADD     A,#01H
+000A98 F9                MOV     R1,A
+000A99 E4                CLR     A
+000A9A 3A                ADDC    A,R2
+000A9B FA                MOV     R2,A
+000A9C A3                INC     DPTR
+000A9D E0                MOVX    A,@DPTR
+000A9E 7E00              MOV     R6,#00H
+000AA0 29                ADD     A,R1
+000AA1 F9                MOV     R1,A
+000AA2 EE                MOV     A,R6
+000AA3 3A                ADDC    A,R2
+000AA4 FA                MOV     R2,A
+000AA5 1203B6            LCALL   ?C?CLDPTR
+000AA8 FB                MOV     R3,A
+000AA9 B4F506            CJNE    A,#0F5H,?C0091?KB_PROCESS
+  517: 			{
+  518: 				kb_set_multikey(0x00b5);
+000AAC 7FB5              MOV     R7,#0B5H
+000AAE 71BD              ACALL   _kb_set_multikey
+  519: 			}
+000AB0 6189              AJMP    ?C0088?KB_PROCESS
+000AB2         ?C0091?KB_PROCESS:
+  520: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_DOWN) //vol-
+000AB2 EB                MOV     A,R3
+000AB3 B4F608            CJNE    A,#0F6H,?C0093?KB_PROCESS
   521: 			{
-  522: 				kb_set_multikey(0x0221);
+  522: 				kb_set_multikey(0x00ea);
+000AB6 7FEA              MOV     R7,#0EAH
+000AB8 7E00              MOV     R6,#00H
+000ABA 71BD              ACALL   _kb_set_multikey
   523: 			}
-  524: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_HOME)
+000ABC 6189              AJMP    ?C0088?KB_PROCESS
+000ABE         ?C0093?KB_PROCESS:
+  524: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_UP) //vol+
+000ABE 904E82            MOV     DPTR,#pEvt
+000AC1 E0                MOVX    A,@DPTR
+000AC2 FB                MOV     R3,A
+000AC3 A3                INC     DPTR
+000AC4 E0                MOVX    A,@DPTR
+000AC5 FA                MOV     R2,A
+000AC6 A3                INC     DPTR
+000AC7 E0                MOVX    A,@DPTR
+000AC8 2401              ADD     A,#01H
+000ACA F9                MOV     R1,A
+000ACB E4                CLR     A
+000ACC 3A                ADDC    A,R2
+000ACD FA                MOV     R2,A
+000ACE A3                INC     DPTR
+000ACF E0                MOVX    A,@DPTR
+000AD0 7E00              MOV     R6,#00H
+000AD2 29                ADD     A,R1
+000AD3 F9                MOV     R1,A
+000AD4 EE                MOV     A,R6
+000AD5 3A                ADDC    A,R2
+000AD6 FA                MOV     R2,A
+000AD7 1203B6            LCALL   ?C?CLDPTR
+000ADA FB                MOV     R3,A
+000ADB B4F706            CJNE    A,#0F7H,?C0095?KB_PROCESS
   525: 			{
-  526: 				kb_set_multikey(0x0223);
+  526: 				kb_set_multikey(0x00e9);
+000ADE 7FE9              MOV     R7,#0E9H
+000AE0 71BD              ACALL   _kb_set_multikey
   527: 			}
-  528: 			*/
-  529: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_DOWN)
-000B6B 904E82            MOV     DPTR,#pEvt
-000B6E E0                MOVX    A,@DPTR
-000B6F FB                MOV     R3,A
-000B70 A3                INC     DPTR
-000B71 E0                MOVX    A,@DPTR
-000B72 FA                MOV     R2,A
-000B73 A3                INC     DPTR
-000B74 E0                MOVX    A,@DPTR
-000B75 2401              ADD     A,#01H
-000B77 F9                MOV     R1,A
-000B78 E4                CLR     A
-000B79 3A                ADDC    A,R2
-000B7A FA                MOV     R2,A
-000B7B A3                INC     DPTR
-000B7C E0                MOVX    A,@DPTR
-000B7D 7E00              MOV     R6,#00H
-000B7F 29                ADD     A,R1
-000B80 F9                MOV     R1,A
-000B81 EE                MOV     A,R6
-000B82 3A                ADDC    A,R2
-000B83 FA                MOV     R2,A
-000B84 1203B6            LCALL   ?C?CLDPTR
-000B87 FB                MOV     R3,A
-000B88 B4D706            CJNE    A,#0D7H,?C0104?KB_PROCESS
-  530: 			{
-  531: 				kb_set_multikey(0x0070);
-000B8B 7F70              MOV     R7,#070H
-000B8D 71CF              ACALL   _kb_set_multikey
-  532: 			}
-000B8F 800A              SJMP    ?C0089?KB_PROCESS
-000B91         ?C0104?KB_PROCESS:
-  533: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_UP)
-000B91 EB                MOV     A,R3
-000B92 B4D806            CJNE    A,#0D8H,?C0089?KB_PROCESS
-  534: 			{
-  535: 				kb_set_multikey(0x006f);
-000B95 7F6F              MOV     R7,#06FH
-000B97 7E00              MOV     R6,#00H
-000B99 71CF              ACALL   _kb_set_multikey
-  536: 			}
-000B9B         ?C0089?KB_PROCESS:
-  537: 			
-  538: 			if(mult_key_status == KEY_WAIT_RELEASE)
-000B9B 904E01            MOV     DPTR,#mult_key_status
-000B9E E0                MOVX    A,@DPTR
-000B9F B40224            CJNE    A,#02H,?C0085?KB_PROCESS
-  539: 			{
-  540: 				mult_key_value = pEvt->ksPool[i];
-000BA2 904E82            MOV     DPTR,#pEvt
-000BA5 E0                MOVX    A,@DPTR
-000BA6 FB                MOV     R3,A
-000BA7 A3                INC     DPTR
-000BA8 E0                MOVX    A,@DPTR
-000BA9 FA                MOV     R2,A
-000BAA A3                INC     DPTR
-000BAB E0                MOVX    A,@DPTR
-000BAC 2401              ADD     A,#01H
-000BAE F9                MOV     R1,A
-000BAF E4                CLR     A
-000BB0 3A                ADDC    A,R2
-000BB1 FA                MOV     R2,A
-000BB2 A3                INC     DPTR
-000BB3 E0                MOVX    A,@DPTR
-000BB4 7E00              MOV     R6,#00H
-000BB6 29                ADD     A,R1
-000BB7 F9                MOV     R1,A
-000BB8 EE                MOV     A,R6
-000BB9 3A                ADDC    A,R2
-000BBA FA                MOV     R2,A
-000BBB 1203B6            LCALL   ?C?CLDPTR
-000BBE 904DE3            MOV     DPTR,#mult_key_value
-000BC1 F0                MOVX    @DPTR,A
-  541: 				pEvt->ksPool[i] = 0;
-000BC2 E4                CLR     A
-000BC3 1203FC            LCALL   ?C?CSTPTR
-  542: 			}
-  543: 		}
-  544: 	}
-000BC6         ?C0085?KB_PROCESS:
-000BC6 904E85            MOV     DPTR,#i
-000BC9 E0                MOVX    A,@DPTR
-000BCA 04                INC     A
-000BCB F0                MOVX    @DPTR,A
-000BCC 4183              AJMP    ?C0083?KB_PROCESS
-  545: }
-000BCE         ?C0108?KB_PROCESS:
-000BCE 22                RET     
+000AE2 6189              AJMP    ?C0088?KB_PROCESS
+000AE4         ?C0095?KB_PROCESS:
+  528: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MUTE) //mute
+000AE4 EB                MOV     A,R3
+000AE5 B4F808            CJNE    A,#0F8H,?C0097?KB_PROCESS
+  529: 			{
+  530: 				kb_set_multikey(0x00e2);
+000AE8 7FE2              MOV     R7,#0E2H
+000AEA 7E00              MOV     R6,#00H
+000AEC 71BD              ACALL   _kb_set_multikey
+  531: 			}
+000AEE 6189              AJMP    ?C0088?KB_PROCESS
+000AF0         ?C0097?KB_PROCESS:
+  532: 		/*	else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MY_COMPUTER) 
+  533: 			{
+  534: 				kb_set_multikey(0x0194);
+  535: 			}	*/
+  536: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_MAIL)  //mail
+000AF0 904E82            MOV     DPTR,#pEvt
+000AF3 E0                MOVX    A,@DPTR
+000AF4 FB                MOV     R3,A
+000AF5 A3                INC     DPTR
+000AF6 E0                MOVX    A,@DPTR
+000AF7 FA                MOV     R2,A
+000AF8 A3                INC     DPTR
+000AF9 E0                MOVX    A,@DPTR
+000AFA 2401              ADD     A,#01H
+000AFC F9                MOV     R1,A
+000AFD E4                CLR     A
+000AFE 3A                ADDC    A,R2
+000AFF FA                MOV     R2,A
+000B00 A3                INC     DPTR
+000B01 E0                MOVX    A,@DPTR
+000B02 7E00              MOV     R6,#00H
+000B04 29                ADD     A,R1
+000B05 F9                MOV     R1,A
+000B06 EE                MOV     A,R6
+000B07 3A                ADDC    A,R2
+000B08 FA                MOV     R2,A
+000B09 1203B6            LCALL   ?C?CLDPTR
+000B0C FB                MOV     R3,A
+000B0D B4FA07            CJNE    A,#0FAH,?C0099?KB_PROCESS
+  537: 			{
+  538: 				kb_set_multikey(0x018a);//mail
+000B10 7F8A              MOV     R7,#08AH
+000B12 0E                INC     R6
+000B13 71BD              ACALL   _kb_set_multikey
+  539: 			}
+000B15 8072              SJMP    ?C0088?KB_PROCESS
+000B17         ?C0099?KB_PROCESS:
+  540: 		/*	else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_CALCULATOR) //calculator
+  541: 			{
+  542: 				kb_set_multikey(0x0192);
+  543: 			}
+  544: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FAVORITES) 
+  545: 			{
+  546: 				kb_set_multikey(0x022a);//www Favorites
+  547: 			}
+  548: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FORWARD)  
+  549: 			{
+  550: 				kb_set_multikey(0x0225);
+  551: 			}
+  552: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_STOP)  //www Stop
+  553: 			{
+  554: 				kb_set_multikey(0x0226);
+  555: 			}
+  556: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_BACK)  
+  557: 			{
+  558: 				kb_set_multikey(0x0224);
+  559: 			}
+  560: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_REFRESH) //www refresh
+  561: 			{
+  562: 				kb_set_multikey(0x0227);
+  563: 			}	*/
+  564: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_SEARCH)  //www search
+000B17 EB                MOV     A,R3
+000B18 B4D508            CJNE    A,#0D5H,?C0101?KB_PROCESS
+  565: 			{
+  566: 				kb_set_multikey(0x0221);
+000B1B 7F21              MOV     R7,#021H
+000B1D 7E02              MOV     R6,#02H
+000B1F 71BD              ACALL   _kb_set_multikey
+  567: 			}
+000B21 8066              SJMP    ?C0088?KB_PROCESS
+000B23         ?C0101?KB_PROCESS:
+  568: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_HOME)
+000B23 904E82            MOV     DPTR,#pEvt
+000B26 E0                MOVX    A,@DPTR
+000B27 FB                MOV     R3,A
+000B28 A3                INC     DPTR
+000B29 E0                MOVX    A,@DPTR
+000B2A FA                MOV     R2,A
+000B2B A3                INC     DPTR
+000B2C E0                MOVX    A,@DPTR
+000B2D 2401              ADD     A,#01H
+000B2F F9                MOV     R1,A
+000B30 E4                CLR     A
+000B31 3A                ADDC    A,R2
+000B32 FA                MOV     R2,A
+000B33 A3                INC     DPTR
+000B34 E0                MOVX    A,@DPTR
+000B35 7E00              MOV     R6,#00H
+000B37 29                ADD     A,R1
+000B38 F9                MOV     R1,A
+000B39 EE                MOV     A,R6
+000B3A 3A                ADDC    A,R2
+000B3B FA                MOV     R2,A
+000B3C 1203B6            LCALL   ?C?CLDPTR
+000B3F FB                MOV     R3,A
+000B40 B4D608            CJNE    A,#0D6H,?C0103?KB_PROCESS
+  569: 			{
+  570: 				kb_set_multikey(0x0223);
+000B43 7F23              MOV     R7,#023H
+000B45 7E02              MOV     R6,#02H
+000B47 71BD              ACALL   _kb_set_multikey
+  571: 			}
+000B49 803E              SJMP    ?C0088?KB_PROCESS
+000B4B         ?C0103?KB_PROCESS:
+  572: 		/*	else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_DOWN)
+  573: 			{
+  574: 				kb_set_multikey(0x0070);
+  575: 			}
+  576: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_UP)
+  577: 			{
+  578: 				kb_set_multikey(0x006f);
+  579: 			}	*/
+  580: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_IOS_SOFT_KB)  //IOS VIR KB
+000B4B EB                MOV     A,R3
+000B4C B4D908            CJNE    A,#0D9H,?C0105?KB_PROCESS
+  581: 		      	{
+  582: 		        	kb_set_multikey(0x00b8);
+000B4F 7FB8              MOV     R7,#0B8H
+000B51 7E00              MOV     R6,#00H
+000B53 71BD              ACALL   _kb_set_multikey
+  583: 		      	}
+000B55 8032              SJMP    ?C0088?KB_PROCESS
+000B57         ?C0105?KB_PROCESS:
+  584: 		  /*    else if (pEvt->ksPool[i] ==  HID_MULTIKEY_POWER)
+  585: 		      	{
+  586: 		        	kb_set_multikey(0x0930);
+  587: 		      	}	*/
+  588: 		      	else if (pEvt->ksPool[i] ==  HID_MULTIKEY_ANDROID_SETUP_SHORTCUTS)
+000B57 904E82            MOV     DPTR,#pEvt
+000B5A E0                MOVX    A,@DPTR
+000B5B FB                MOV     R3,A
+000B5C A3                INC     DPTR
+000B5D E0                MOVX    A,@DPTR
+000B5E FA                MOV     R2,A
+000B5F A3                INC     DPTR
+000B60 E0                MOVX    A,@DPTR
+000B61 2401              ADD     A,#01H
+000B63 F9                MOV     R1,A
+000B64 E4                CLR     A
+000B65 3A                ADDC    A,R2
+000B66 FA                MOV     R2,A
+000B67 A3                INC     DPTR
+000B68 E0                MOVX    A,@DPTR
+000B69 7E00              MOV     R6,#00H
+000B6B 29                ADD     A,R1
+000B6C F9                MOV     R1,A
+000B6D EE                MOV     A,R6
+000B6E 3A                ADDC    A,R2
+000B6F FA                MOV     R2,A
+000B70 1203B6            LCALL   ?C?CLDPTR
+000B73 FB                MOV     R3,A
+000B74 B4DB08            CJNE    A,#0DBH,?C0107?KB_PROCESS
+  589: 		      	{
+  590: 		        	kb_set_multikey(0x0306);
+000B77 7F06              MOV     R7,#06H
+000B79 7E03              MOV     R6,#03H
+000B7B 71BD              ACALL   _kb_set_multikey
+  591: 		      	}
+000B7D 800A              SJMP    ?C0088?KB_PROCESS
+000B7F         ?C0107?KB_PROCESS:
+  592: 		      	else if (pEvt->ksPool[i] ==  HID_MULTIKEY_ANDROID_SOFT_KB)
+000B7F EB                MOV     A,R3
+000B80 B4DC06            CJNE    A,#0DCH,?C0088?KB_PROCESS
+  593: 		      	{
+  594: 		        	kb_set_multikey(0x0307);
+000B83 7F07              MOV     R7,#07H
+000B85 7E03              MOV     R6,#03H
+000B87 71BD              ACALL   _kb_set_multikey
+  595: 		      	}
+000B89         ?C0088?KB_PROCESS:
+  596: 			
+  597: 			if(mult_key_status == KEY_WAIT_RELEASE)
+000B89 904E01            MOV     DPTR,#mult_key_status
+000B8C E0                MOVX    A,@DPTR
+000B8D B40224            CJNE    A,#02H,?C0084?KB_PROCESS
+  598: 			{
+  599: 				mult_key_value = pEvt->ksPool[i];
+000B90 904E82            MOV     DPTR,#pEvt
+000B93 E0                MOVX    A,@DPTR
+000B94 FB                MOV     R3,A
+000B95 A3                INC     DPTR
+000B96 E0                MOVX    A,@DPTR
+000B97 FA                MOV     R2,A
+000B98 A3                INC     DPTR
+000B99 E0                MOVX    A,@DPTR
+000B9A 2401              ADD     A,#01H
+000B9C F9                MOV     R1,A
+000B9D E4                CLR     A
+000B9E 3A                ADDC    A,R2
+000B9F FA                MOV     R2,A
+000BA0 A3                INC     DPTR
+000BA1 E0                MOVX    A,@DPTR
+000BA2 7E00              MOV     R6,#00H
+000BA4 29                ADD     A,R1
+000BA5 F9                MOV     R1,A
+000BA6 EE                MOV     A,R6
+000BA7 3A                ADDC    A,R2
+000BA8 FA                MOV     R2,A
+000BA9 1203B6            LCALL   ?C?CLDPTR
+000BAC 904DE3            MOV     DPTR,#mult_key_value
+000BAF F0                MOVX    @DPTR,A
+  600: 				pEvt->ksPool[i] = 0;
+000BB0 E4                CLR     A
+000BB1 1203FC            LCALL   ?C?CSTPTR
+  601: 			}
+  602: 		}
+  603: 	}
+000BB4         ?C0084?KB_PROCESS:
+000BB4 904E85            MOV     DPTR,#i
+000BB7 E0                MOVX    A,@DPTR
+000BB8 04                INC     A
+000BB9 F0                MOVX    @DPTR,A
+000BBA 413A              AJMP    ?C0082?KB_PROCESS
+  604: }
+000BBC         ?C0111?KB_PROCESS:
+000BBC 22                RET     
 ----- FUNCTION _kb_multikey_setup (END) -------
 
 
@@ -1129,71 +1111,71 @@
    66: void kb_set_multikey(word multikey_value)
    67: {
 ;---- Variable 'multikey_value' assigned to Register 'R4/R5' ----
-000BCF AD07              MOV     R5,AR7
-000BD1 AC06              MOV     R4,AR6
+000BBD AD07              MOV     R5,AR7
+000BBF AC06              MOV     R4,AR6
    68: 	if(mult_key_status != KEY_WAIT_RELEASE)
    69: 	{
-000BD3 904E01            MOV     DPTR,#mult_key_status
-000BD6 E0                MOVX    A,@DPTR
-000BD7 6402              XRL     A,#02H
-000BD9 600E              JZ      ?C0017?KB_PROCESS
+000BC1 904E01            MOV     DPTR,#mult_key_status
+000BC4 E0                MOVX    A,@DPTR
+000BC5 6402              XRL     A,#02H
+000BC7 600E              JZ      ?C0017?KB_PROCESS
    70: 		mult_key_status = KEY_PRESS;
    71: 		multikey[0] = HID_REPORTID_2;
-000BDB 7401              MOV     A,#01H
-000BDD F0                MOVX    @DPTR,A
+000BC9 7401              MOV     A,#01H
+000BCB F0                MOVX    @DPTR,A
    72: 		multikey[1] = (multikey_value&0xff);
-000BDE 904E02            MOV     DPTR,#multikey
-000BE1 04                INC     A
-000BE2 F0                MOVX    @DPTR,A
+000BCC 904E02            MOV     DPTR,#multikey
+000BCF 04                INC     A
+000BD0 F0                MOVX    @DPTR,A
    73: 		multikey[2] = ((multikey_value>>8)&0xff);
-000BE3 EF                MOV     A,R7
-000BE4 A3                INC     DPTR
-000BE5 F0                MOVX    @DPTR,A
+000BD1 EF                MOV     A,R7
+000BD2 A3                INC     DPTR
+000BD3 F0                MOVX    @DPTR,A
    74: 	}
-000BE6 EE                MOV     A,R6
-000BE7 A3                INC     DPTR
-000BE8 F0                MOVX    @DPTR,A
+000BD4 EE                MOV     A,R6
+000BD5 A3                INC     DPTR
+000BD6 F0                MOVX    @DPTR,A
    75: }
    76: 
-000BE9         ?C0017?KB_PROCESS:
-000BE9 22                RET     
+000BD7         ?C0017?KB_PROCESS:
+000BD7 22                RET     
 ----- FUNCTION _kb_set_multikey (END) -------
 
 
 ----- FUNCTION _xmemclear (BEGIN) -----
-000BEA 904E9E            MOV     DPTR,#dest
-000BED EB                MOV     A,R3
-000BEE F0                MOVX    @DPTR,A
-000BEF A3                INC     DPTR
-000BF0 EA                MOV     A,R2
-000BF1 F0                MOVX    @DPTR,A
-000BF2 A3                INC     DPTR
-000BF3 E9                MOV     A,R1
-000BF4 F0                MOVX    @DPTR,A
+000BD8 904E9E            MOV     DPTR,#dest
+000BDB EB                MOV     A,R3
+000BDC F0                MOVX    @DPTR,A
+000BDD A3                INC     DPTR
+000BDE EA                MOV     A,R2
+000BDF F0                MOVX    @DPTR,A
+000BE0 A3                INC     DPTR
+000BE1 E9                MOV     A,R1
+000BE2 F0                MOVX    @DPTR,A
 ;---- Variable 'len' assigned to Register 'R4/R5' ----
-000BF5         ?C0008?UTILITIES:
-000BF5 ED                MOV     A,R5
-000BF6 1D                DEC     R5
-000BF7 AE04              MOV     R6,AR4
-000BF9 7001              JNZ     ?C0026?UTILITIES
-000BFB 1C                DEC     R4
-000BFC         ?C0026?UTILITIES:
-000BFC 4E                ORL     A,R6
-000BFD 6016              JZ      ?C0010?UTILITIES
-000BFF 904E9E            MOV     DPTR,#dest
-000C02 E0                MOVX    A,@DPTR
-000C03 FB                MOV     R3,A
-000C04 A3                INC     DPTR
-000C05 E4                CLR     A
-000C06 75F001            MOV     B,#01H
-000C09 120424            LCALL   ?C?ILDIX
-000C0C A9F0              MOV     R1,B
-000C0E FA                MOV     R2,A
-000C0F E4                CLR     A
-000C10 1203FC            LCALL   ?C?CSTPTR
-000C13 80E0              SJMP    ?C0008?UTILITIES
-000C15         ?C0010?UTILITIES:
-000C15 22                RET     
+000BE3         ?C0008?UTILITIES:
+000BE3 ED                MOV     A,R5
+000BE4 1D                DEC     R5
+000BE5 AE04              MOV     R6,AR4
+000BE7 7001              JNZ     ?C0026?UTILITIES
+000BE9 1C                DEC     R4
+000BEA         ?C0026?UTILITIES:
+000BEA 4E                ORL     A,R6
+000BEB 6016              JZ      ?C0010?UTILITIES
+000BED 904E9E            MOV     DPTR,#dest
+000BF0 E0                MOVX    A,@DPTR
+000BF1 FB                MOV     R3,A
+000BF2 A3                INC     DPTR
+000BF3 E4                CLR     A
+000BF4 75F001            MOV     B,#01H
+000BF7 120424            LCALL   ?C?ILDIX
+000BFA A9F0              MOV     R1,B
+000BFC FA                MOV     R2,A
+000BFD E4                CLR     A
+000BFE 1203FC            LCALL   ?C?CSTPTR
+000C01 80E0              SJMP    ?C0008?UTILITIES
+000C03         ?C0010?UTILITIES:
+000C03 22                RET     
 ----- FUNCTION _xmemclear (END) -------
 
 
@@ -1203,144 +1185,199 @@
    12: {
    13: 	xmemclear((byte *)&g_variable,sizeof(G_VARIABLE_MAP));
    14: 	xmemclear(ksSelMapOld,KB_KSCAN_COL_NUM);
-000C16 7B01              MOV     R3,#01H
-000C18 7A4C              MOV     R2,#HIGH g_variable
-000C1A 79BF              MOV     R1,#LOW g_variable
-000C1C 7D42              MOV     R5,#042H
-000C1E 7C00              MOV     R4,#00H
-000C20 71EA              ACALL   _xmemclear
+000C04 7B01              MOV     R3,#01H
+000C06 7A4C              MOV     R2,#HIGH g_variable
+000C08 79BF              MOV     R1,#LOW g_variable
+000C0A 7D43              MOV     R5,#043H
+000C0C 7C00              MOV     R4,#00H
+000C0E 71D8              ACALL   _xmemclear
    15: 	xmemclear(ksSelMapCheck,KB_KSCAN_COL_NUM);
-000C22 7B01              MOV     R3,#01H
-000C24 7A4D              MOV     R2,#HIGH ksSelMapOld
-000C26 7993              MOV     R1,#LOW ksSelMapOld
-000C28 7D14              MOV     R5,#014H
-000C2A 7C00              MOV     R4,#00H
-000C2C 71EA              ACALL   _xmemclear
+000C10 7B01              MOV     R3,#01H
+000C12 7A4D              MOV     R2,#HIGH ksSelMapOld
+000C14 7993              MOV     R1,#LOW ksSelMapOld
+000C16 7D14              MOV     R5,#014H
+000C18 7C00              MOV     R4,#00H
+000C1A 71D8              ACALL   _xmemclear
    16: 	xmemclear(ksSelMapCurr,KB_KSCAN_COL_NUM);
-000C2E 7B01              MOV     R3,#01H
-000C30 7A4D              MOV     R2,#HIGH ksSelMapCheck
-000C32 79A8              MOV     R1,#LOW ksSelMapCheck
-000C34 7D14              MOV     R5,#014H
-000C36 7C00              MOV     R4,#00H
-000C38 71EA              ACALL   _xmemclear
+000C1C 7B01              MOV     R3,#01H
+000C1E 7A4D              MOV     R2,#HIGH ksSelMapCheck
+000C20 79A8              MOV     R1,#LOW ksSelMapCheck
+000C22 7D14              MOV     R5,#014H
+000C24 7C00              MOV     R4,#00H
+000C26 71D8              ACALL   _xmemclear
    17: 	xmemclear(hidBuff,9);
-000C3A 7B01              MOV     R3,#01H
-000C3C 7A4D              MOV     R2,#HIGH ksSelMapCurr
-000C3E 79BC              MOV     R1,#LOW ksSelMapCurr
-000C40 7D14              MOV     R5,#014H
-000C42 7C00              MOV     R4,#00H
-000C44 71EA              ACALL   _xmemclear
+000C28 7B01              MOV     R3,#01H
+000C2A 7A4D              MOV     R2,#HIGH ksSelMapCurr
+000C2C 79BC              MOV     R1,#LOW ksSelMapCurr
+000C2E 7D14              MOV     R5,#014H
+000C30 7C00              MOV     R4,#00H
+000C32 71D8              ACALL   _xmemclear
    18: 	xmemclear(multikey,9);
-000C46 7B01              MOV     R3,#01H
-000C48 7A48              MOV     R2,#HIGH hidBuff
-000C4A 7900              MOV     R1,#LOW hidBuff
-000C4C 7D09              MOV     R5,#09H
-000C4E 7C00              MOV     R4,#00H
-000C50 71EA              ACALL   _xmemclear
+000C34 7B01              MOV     R3,#01H
+000C36 7A48              MOV     R2,#HIGH hidBuff
+000C38 7900              MOV     R1,#LOW hidBuff
+000C3A 7D09              MOV     R5,#09H
+000C3C 7C00              MOV     R4,#00H
+000C3E 71D8              ACALL   _xmemclear
    19:  
-000C52 7B01              MOV     R3,#01H
-000C54 7A4E              MOV     R2,#HIGH multikey
-000C56 7902              MOV     R1,#LOW multikey
-000C58 7D09              MOV     R5,#09H
-000C5A 7C00              MOV     R4,#00H
-000C5C 71EA              ACALL   _xmemclear
+000C40 7B01              MOV     R3,#01H
+000C42 7A4E              MOV     R2,#HIGH multikey
+000C44 7902              MOV     R1,#LOW multikey
+000C46 7D09              MOV     R5,#09H
+000C48 7C00              MOV     R4,#00H
+000C4A 71D8              ACALL   _xmemclear
    20: 	delayChgInvTimer = 0;
-000C5E E4                CLR     A
-000C5F 904DDE            MOV     DPTR,#delayChgInvTimer
-000C62 F0                MOVX    @DPTR,A
+000C4C E4                CLR     A
+000C4D 904DDE            MOV     DPTR,#delayChgInvTimer
+000C50 F0                MOVX    @DPTR,A
    21: 	action_timeout = 0;
-000C63 904DE2            MOV     DPTR,#action_timeout
-000C66 F0                MOVX    @DPTR,A
+000C51 904DE2            MOV     DPTR,#action_timeout
+000C54 F0                MOVX    @DPTR,A
    22: 
    23: 	power_on_flag = 0;
-000C67 904DE1            MOV     DPTR,#power_on_flag
-000C6A F0                MOVX    @DPTR,A
+000C55 904DE1            MOV     DPTR,#power_on_flag
+000C58 F0                MOVX    @DPTR,A
    24: 	ble_reconnect_flag = 0;
-000C6B 904DDD            MOV     DPTR,#ble_reconnect_flag
-000C6E F0                MOVX    @DPTR,A
+000C59 904DDD            MOV     DPTR,#ble_reconnect_flag
+000C5C F0                MOVX    @DPTR,A
    25: 	press_long_time_flag = 0;
-000C6F 904DDC            MOV     DPTR,#press_long_time_flag
-000C72 F0                MOVX    @DPTR,A
+000C5D 904DDC            MOV     DPTR,#press_long_time_flag
+000C60 F0                MOVX    @DPTR,A
    26: 	mult_key_status = 0;
-000C73 904E01            MOV     DPTR,#mult_key_status
-000C76 F0                MOVX    @DPTR,A
+000C61 904E01            MOV     DPTR,#mult_key_status
+000C64 F0                MOVX    @DPTR,A
    27: 	long_press_flag = 0;
-000C77 904DD5            MOV     DPTR,#long_press_flag
-000C7A F0                MOVX    @DPTR,A
+000C65 904DD5            MOV     DPTR,#long_press_flag
+000C68 F0                MOVX    @DPTR,A
    28: 	standard_key_release_flag = 0;
-000C7B 904DD8            MOV     DPTR,#standard_key_release_flag
-000C7E F0                MOVX    @DPTR,A
+000C69 904DD8            MOV     DPTR,#standard_key_release_flag
+000C6C F0                MOVX    @DPTR,A
    29: 	fn_flag = 0;
-000C7F 904DDB            MOV     DPTR,#fn_flag
-000C82 F0                MOVX    @DPTR,A
+000C6D 904DDB            MOV     DPTR,#fn_flag
+000C70 F0                MOVX    @DPTR,A
    30: 	fn_flag_last = 0;
-000C83 904DE0            MOV     DPTR,#fn_flag_last
-000C86 F0                MOVX    @DPTR,A
+000C71 904DE0            MOV     DPTR,#fn_flag_last
+000C74 F0                MOVX    @DPTR,A
    31: 	fn_tx_flag = 0;
-000C87 904DD3            MOV     DPTR,#fn_tx_flag
-000C8A F0                MOVX    @DPTR,A
+000C75 904DD3            MOV     DPTR,#fn_tx_flag
+000C78 F0                MOVX    @DPTR,A
    32: 	fn_lock_flag = 0;
-000C8B 904DDF            MOV     DPTR,#fn_lock_flag
-000C8E F0                MOVX    @DPTR,A
+000C79 904DDF            MOV     DPTR,#fn_lock_flag
+000C7C F0                MOVX    @DPTR,A
    33: 
    34: 	mult_key_value = 0;
-000C8F 904DE3            MOV     DPTR,#mult_key_value
-000C92 F0                MOVX    @DPTR,A
+000C7D 904DE3            MOV     DPTR,#mult_key_value
+000C80 F0                MOVX    @DPTR,A
    35: 	m_caps_num_lock_last = 0; 
-000C93 904DD9            MOV     DPTR,#m_caps_num_lock_last
-000C96 F0                MOVX    @DPTR,A
+000C81 904DD9            MOV     DPTR,#m_caps_num_lock_last
+000C84 F0                MOVX    @DPTR,A
    36: 	m_reconnect_continue = 0;
-000C97 904D38            MOV     DPTR,#m_reconnect_continue
-000C9A F0                MOVX    @DPTR,A
+000C85 904D38            MOV     DPTR,#m_reconnect_continue
+000C88 F0                MOVX    @DPTR,A
    37: }
-000C9B 22                RET     
+000C89 22                RET     
 ----- FUNCTION System_clear_mem (END) -------
 
 
+----- FUNCTION _IPC_TxHidData (BEGIN) -----
+ FILE: 'kb_process.c'
+   52: void IPC_TxHidData(byte* dt, byte len)
+   53: {
+000C8A 904E7E            MOV     DPTR,#dt
+000C8D EB                MOV     A,R3
+000C8E F0                MOVX    @DPTR,A
+000C8F A3                INC     DPTR
+000C90 EA                MOV     A,R2
+000C91 F0                MOVX    @DPTR,A
+000C92 A3                INC     DPTR
+000C93 E9                MOV     A,R1
+000C94 F0                MOVX    @DPTR,A
+000C95 A3                INC     DPTR
+000C96 ED                MOV     A,R5
+000C97 F0                MOVX    @DPTR,A
+   54: 	if(!YC_check_need_reconnected()) 
+   55: 		return;
+000C98 1217E6            LCALL   YC_check_need_reconnected
+000C9B EF                MOV     A,R7
+000C9C 601D              JZ      ?C0013?KB_PROCESS
+000C9E         ?C0012?KB_PROCESS:
+   56: 	if (g_variable.release_data)
+000C9E 904CEB            MOV     DPTR,#g_variable+02CH
+000CA1 E0                MOVX    A,@DPTR
+000CA2 7017              JNZ     ?C0013?KB_PROCESS
+000CA4         ?C0014?KB_PROCESS:
+   57: 		return;
+   58: 
+   59: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+000CA4 904CC7            MOV     DPTR,#g_variable+08H
+000CA7 E0                MOVX    A,@DPTR
+000CA8 B40410            CJNE    A,#04H,?C0013?KB_PROCESS
+   60: 	{
+   61: 		IPC_TxBleData(dt,len);
+000CAB 904E7E            MOV     DPTR,#dt
+000CAE E0                MOVX    A,@DPTR
+000CAF FB                MOV     R3,A
+000CB0 A3                INC     DPTR
+000CB1 E0                MOVX    A,@DPTR
+000CB2 FA                MOV     R2,A
+000CB3 A3                INC     DPTR
+000CB4 E0                MOVX    A,@DPTR
+000CB5 F9                MOV     R1,A
+000CB6 A3                INC     DPTR
+000CB7 E0                MOVX    A,@DPTR
+000CB8 FD                MOV     R5,A
+000CB9 B19F              ACALL   _IPC_TxBleData
+   62: 	}
+   63: }
+000CBB         ?C0013?KB_PROCESS:
+000CBB 22                RET     
+----- FUNCTION _IPC_TxHidData (END) -------
+
+
 ----- FUNCTION _kb_send_combination_key (BEGIN) -----
  FILE: 'kb_process.c'
    78: void kb_send_combination_key(byte ctrl_value,byte key_value)
    79: {
-000C9C 904EA7            MOV     DPTR,#ctrl_value
-000C9F EF                MOV     A,R7
-000CA0 F0                MOVX    @DPTR,A
-000CA1 A3                INC     DPTR
-000CA2 ED                MOV     A,R5
-000CA3 F0                MOVX    @DPTR,A
+000CBC 904EA7            MOV     DPTR,#ctrl_value
+000CBF EF                MOV     A,R7
+000CC0 F0                MOVX    @DPTR,A
+000CC1 A3                INC     DPTR
+000CC2 ED                MOV     A,R5
+000CC3 F0                MOVX    @DPTR,A
    80: 	xmemclear(hidBuff,9);
    81: 	hidBuff[0] = HID_REPORTID_1;
-000CA4 7B01              MOV     R3,#01H
-000CA6 7A48              MOV     R2,#HIGH hidBuff
-000CA8 7900              MOV     R1,#LOW hidBuff
-000CAA 7D09              MOV     R5,#09H
-000CAC 7C00              MOV     R4,#00H
-000CAE 71EA              ACALL   _xmemclear
+000CC4 7B01              MOV     R3,#01H
+000CC6 7A48              MOV     R2,#HIGH hidBuff
+000CC8 7900              MOV     R1,#LOW hidBuff
+000CCA 7D09              MOV     R5,#09H
+000CCC 7C00              MOV     R4,#00H
+000CCE 71D8              ACALL   _xmemclear
    82: 	hidBuff[1] |= ctrl_value;
-000CB0 904800            MOV     DPTR,#hidBuff
-000CB3 7401              MOV     A,#01H
-000CB5 F0                MOVX    @DPTR,A
+000CD0 904800            MOV     DPTR,#hidBuff
+000CD3 7401              MOV     A,#01H
+000CD5 F0                MOVX    @DPTR,A
    83: 	hidBuff[3] = key_value; 
-000CB6 A3                INC     DPTR
-000CB7 E0                MOVX    A,@DPTR
-000CB8 FF                MOV     R7,A
-000CB9 904EA7            MOV     DPTR,#ctrl_value
-000CBC E0                MOVX    A,@DPTR
-000CBD FE                MOV     R6,A
-000CBE EF                MOV     A,R7
-000CBF 4E                ORL     A,R6
-000CC0 904801            MOV     DPTR,#hidBuff+01H
-000CC3 F0                MOVX    @DPTR,A
+000CD6 A3                INC     DPTR
+000CD7 E0                MOVX    A,@DPTR
+000CD8 FF                MOV     R7,A
+000CD9 904EA7            MOV     DPTR,#ctrl_value
+000CDC E0                MOVX    A,@DPTR
+000CDD FE                MOV     R6,A
+000CDE EF                MOV     A,R7
+000CDF 4E                ORL     A,R6
+000CE0 904801            MOV     DPTR,#hidBuff+01H
+000CE3 F0                MOVX    @DPTR,A
    84: 	IPC_TxHidData(hidBuff, 9);
-000CC4 904EA8            MOV     DPTR,#key_value
-000CC7 E0                MOVX    A,@DPTR
-000CC8 904803            MOV     DPTR,#hidBuff+03H
-000CCB F0                MOVX    @DPTR,A
+000CE4 904EA8            MOV     DPTR,#key_value
+000CE7 E0                MOVX    A,@DPTR
+000CE8 904803            MOV     DPTR,#hidBuff+03H
+000CEB F0                MOVX    @DPTR,A
    85: }
-000CCC 7B01              MOV     R3,#01H
-000CCE 7A48              MOV     R2,#HIGH hidBuff
-000CD0 7900              MOV     R1,#LOW hidBuff
-000CD2 7D09              MOV     R5,#09H
-000CD4 4143              AJMP    _IPC_TxHidData
+000CEC 7B01              MOV     R3,#01H
+000CEE 7A48              MOV     R2,#HIGH hidBuff
+000CF0 7900              MOV     R1,#LOW hidBuff
+000CF2 7D09              MOV     R5,#09H
+000CF4 8094              SJMP    _IPC_TxHidData
 ----- FUNCTION _kb_send_combination_key (END) -------
 
 
@@ -1356,97 +1393,118 @@
   174: 	}
   175: 	else
   176: */	
-  177: 	{
-  178: 			
-  179: 		if((g_variable.key_combination_step == CAMBINATION_KEY_FREE)
-000CD6 904CF4            MOV     DPTR,#g_variable+035H
-000CD9 E0                MOVX    A,@DPTR
-000CDA FF                MOV     R7,A
-000CDB 6008              JZ      ?C0023?KB_PROCESS
-000CDD 6401              XRL     A,#01H
-000CDF 6004              JZ      ?C0023?KB_PROCESS
-000CE1 EF                MOV     A,R7
-000CE2 B40302            CJNE    A,#03H,?C0022?KB_PROCESS
-000CE5         ?C0023?KB_PROCESS:
-  180: 		||(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
-  181: 		||(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE)
-  182: 		)
-  183: 			kb_motion();
-000CE5 8045              SJMP    kb_motion
-000CE7         ?C0022?KB_PROCESS:
-  184: 		else
-  185: 		{
-  186: 			
-  187: 			if(g_variable.key_combination_step == CAMBINATION_KEY_HOLD)
-000CE7 904CF4            MOV     DPTR,#g_variable+035H
-000CEA E0                MOVX    A,@DPTR
-000CEB B4020B            CJNE    A,#02H,?C0025?KB_PROCESS
-  188: 			{	
-  189: 				g_variable.key_combination_step = CAMBINATION_KEY_COMPLETE;
-000CEE 7403              MOV     A,#03H
-000CF0 F0                MOVX    @DPTR,A
-  190: 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
-000CF1 A3                INC     DPTR
-000CF2 E0                MOVX    A,@DPTR
-000CF3 FF                MOV     R7,A
-000CF4 A3                INC     DPTR
-000CF5 E0                MOVX    A,@DPTR
-000CF6 FD                MOV     R5,A
-000CF7 80A3              SJMP    _kb_send_combination_key
-  191: 			}
-000CF9         ?C0025?KB_PROCESS:
-  192: 			else if(g_variable.key_combination_step == CAMBINATION_KEY_WAIT_RELEASE)
-000CF9 904CF4            MOV     DPTR,#g_variable+035H
-000CFC E0                MOVX    A,@DPTR
-000CFD B40413            CJNE    A,#04H,?C0027?KB_PROCESS
-  193: 			{
-  194: 				g_variable.key_combination_keyvalue = 0;
-000D00 E4                CLR     A
-000D01 904CF6            MOV     DPTR,#g_variable+037H
-000D04 F0                MOVX    @DPTR,A
-  195: 				g_variable.key_combination_step = CAMBINATION_KEY_RELEASE;
-000D05 904CF4            MOV     DPTR,#g_variable+035H
-000D08 7405              MOV     A,#05H
-000D0A F0                MOVX    @DPTR,A
-  196: 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
-000D0B A3                INC     DPTR
-000D0C E0                MOVX    A,@DPTR
-000D0D FF                MOV     R7,A
+  177: 	{	
+  178: 		if((g_variable.key_combination_step == CAMBINATION_KEY_FREE)
+000CF6 904CF4            MOV     DPTR,#g_variable+035H
+000CF9 E0                MOVX    A,@DPTR
+000CFA FF                MOV     R7,A
+000CFB 6008              JZ      ?C0023?KB_PROCESS
+000CFD 6403              XRL     A,#03H
+000CFF 6004              JZ      ?C0023?KB_PROCESS
+000D01 EF                MOV     A,R7
+000D02 B40502            CJNE    A,#05H,?C0022?KB_PROCESS
+000D05         ?C0023?KB_PROCESS:
+  179: 		||(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE)
+  180: 		|| (g_variable.key_combination_step == CAMBINATION_KEY_RELEASE)
+  181: 		)
+  182: 			kb_motion();
+000D05 8065              SJMP    kb_motion
+000D07         ?C0022?KB_PROCESS:
+  183: 		else
+  184: 		{
+  185: 			if(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
+000D07 904CF4            MOV     DPTR,#g_variable+035H
+000D0A E0                MOVX    A,@DPTR
+000D0B B4010E            CJNE    A,#01H,?C0025?KB_PROCESS
+  186: 			{
+  187: 				kb_send_combination_key(g_variable.key_combination_ctrl,0);
 000D0E A3                INC     DPTR
 000D0F E0                MOVX    A,@DPTR
-000D10 FD                MOV     R5,A
-000D11 8089              SJMP    _kb_send_combination_key
-  197: 			}
-000D13         ?C0027?KB_PROCESS:
-  198: 			else if(g_variable.key_combination_step == CAMBINATION_KEY_RELEASE)
-000D13 904CF4            MOV     DPTR,#g_variable+035H
-000D16 E0                MOVX    A,@DPTR
-000D17 B40511            CJNE    A,#05H,?C0030?KB_PROCESS
-  199: 			{
-  200: 				g_variable.key_combination_ctrl = 0;
-000D1A E4                CLR     A
-000D1B A3                INC     DPTR
-000D1C F0                MOVX    @DPTR,A
-  201: 				g_variable.key_combination_keyvalue = 0;
-000D1D A3                INC     DPTR
-000D1E F0                MOVX    @DPTR,A
-  202: 				g_variable.key_combination_step = CAMBINATION_KEY_FREE;
-000D1F 904CF4            MOV     DPTR,#g_variable+035H
-000D22 F0                MOVX    @DPTR,A
-  203: 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
-000D23 A3                INC     DPTR
-000D24 E0                MOVX    A,@DPTR
-000D25 FF                MOV     R7,A
+000D10 FF                MOV     R7,A
+000D11 E4                CLR     A
+000D12 FD                MOV     R5,A
+000D13 91BC              ACALL   _kb_send_combination_key
+  188: 				g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
+000D15 904CF4            MOV     DPTR,#g_variable+035H
+000D18 7402              MOV     A,#02H
+000D1A F0                MOVX    @DPTR,A
+  189: 			}
+000D1B 22                RET     
+000D1C         ?C0025?KB_PROCESS:
+  190: 			else if(g_variable.key_combination_step == CAMBINATION_KEY_HOLD)
+000D1C 904CF4            MOV     DPTR,#g_variable+035H
+000D1F E0                MOVX    A,@DPTR
+000D20 B4020B            CJNE    A,#02H,?C0027?KB_PROCESS
+  191: 			{	
+  192: 				g_variable.key_combination_step = CAMBINATION_KEY_COMPLETE;
+000D23 7403              MOV     A,#03H
+000D25 F0                MOVX    @DPTR,A
+  193: 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
 000D26 A3                INC     DPTR
 000D27 E0                MOVX    A,@DPTR
-000D28 FD                MOV     R5,A
-000D29 919C              ACALL   _kb_send_combination_key
-  204: 			}
-  205: 		}
-  206: 	}
-  207: }
-000D2B         ?C0030?KB_PROCESS:
-000D2B 22                RET     
+000D28 FF                MOV     R7,A
+000D29 A3                INC     DPTR
+000D2A E0                MOVX    A,@DPTR
+000D2B FD                MOV     R5,A
+000D2C 808E              SJMP    _kb_send_combination_key
+  194: 			}
+000D2E         ?C0027?KB_PROCESS:
+  195: 			else if(g_variable.key_combination_step == CAMBINATION_KEY_WAIT_RELEASE)
+000D2E 904CF4            MOV     DPTR,#g_variable+035H
+000D31 E0                MOVX    A,@DPTR
+000D32 B4041A            CJNE    A,#04H,?C0029?KB_PROCESS
+  196: 			{
+  197: 				g_variable.key_combination_keyvalue = 0;
+000D35 E4                CLR     A
+000D36 904CF6            MOV     DPTR,#g_variable+037H
+000D39 F0                MOVX    @DPTR,A
+  198: 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+000D3A 904CF5            MOV     DPTR,#g_variable+036H
+000D3D E0                MOVX    A,@DPTR
+000D3E FF                MOV     R7,A
+000D3F E4                CLR     A
+000D40 FD                MOV     R5,A
+000D41 91BC              ACALL   _kb_send_combination_key
+  199: 				g_variable.key_combination_ctrl = 0;
+000D43 E4                CLR     A
+000D44 904CF5            MOV     DPTR,#g_variable+036H
+000D47 F0                MOVX    @DPTR,A
+  200: 				g_variable.key_combination_step = CAMBINATION_KEY_RELEASE;
+000D48 904CF4            MOV     DPTR,#g_variable+035H
+000D4B 7405              MOV     A,#05H
+000D4D F0                MOVX    @DPTR,A
+  201: 			}
+000D4E 22                RET     
+000D4F         ?C0029?KB_PROCESS:
+  202: 			else if(g_variable.key_combination_step == CAMBINATION_KEY_NULL)
+000D4F 904CF4            MOV     DPTR,#g_variable+035H
+000D52 E0                MOVX    A,@DPTR
+000D53 B40615            CJNE    A,#06H,?C0032?KB_PROCESS
+  203: 			{
+  204: 				g_variable.key_combination_keyvalue = 0;
+000D56 E4                CLR     A
+000D57 904CF6            MOV     DPTR,#g_variable+037H
+000D5A F0                MOVX    @DPTR,A
+  205: 				g_variable.key_combination_ctrl = 0;
+000D5B 904CF5            MOV     DPTR,#g_variable+036H
+000D5E F0                MOVX    @DPTR,A
+  206: 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+000D5F A3                INC     DPTR
+000D60 E0                MOVX    A,@DPTR
+000D61 FD                MOV     R5,A
+000D62 E4                CLR     A
+000D63 FF                MOV     R7,A
+000D64 91BC              ACALL   _kb_send_combination_key
+  207: 				g_variable.key_combination_step = CAMBINATION_KEY_FREE;
+000D66 E4                CLR     A
+000D67 904CF4            MOV     DPTR,#g_variable+035H
+000D6A F0                MOVX    @DPTR,A
+  208: 			}
+  209: 		}
+  210: 	}
+  211: }
+000D6B         ?C0032?KB_PROCESS:
+000D6B 22                RET     
 ----- FUNCTION kb_need_keyscan (END) -------
 
 
@@ -1456,92 +1514,92 @@
   150: {
   151: 	tKSEVENT *pEvt = NULL;
   152: 	
-000D2C 904E92            MOV     DPTR,#pEvt
-000D2F E4                CLR     A
-000D30 F0                MOVX    @DPTR,A
-000D31 A3                INC     DPTR
-000D32 F0                MOVX    @DPTR,A
-000D33 A3                INC     DPTR
-000D34 F0                MOVX    @DPTR,A
+000D6C 904E92            MOV     DPTR,#pEvt
+000D6F E4                CLR     A
+000D70 F0                MOVX    @DPTR,A
+000D71 A3                INC     DPTR
+000D72 F0                MOVX    @DPTR,A
+000D73 A3                INC     DPTR
+000D74 F0                MOVX    @DPTR,A
   153: 	if (!IPC_IsTxBuffEmpty())
-000D35 122372            LCALL   IPC_IsTxBuffEmpty
-000D38 5024              JNC     ?C0020?KB_PROCESS
-000D3A         ?C0019?KB_PROCESS:
+000D75 122245            LCALL   IPC_IsTxBuffEmpty
+000D78 5024              JNC     ?C0020?KB_PROCESS
+000D7A         ?C0019?KB_PROCESS:
   154: 		return;
   155: 	pEvt = KS_GetCurrentEvt();
-000D3A 1219B2            LCALL   KS_GetCurrentEvt
-000D3D 904E92            MOV     DPTR,#pEvt
-000D40 EB                MOV     A,R3
-000D41 F0                MOVX    @DPTR,A
-000D42 A3                INC     DPTR
-000D43 EA                MOV     A,R2
-000D44 F0                MOVX    @DPTR,A
-000D45 A3                INC     DPTR
-000D46 E9                MOV     A,R1
-000D47 F0                MOVX    @DPTR,A
+000D7A 1219A1            LCALL   KS_GetCurrentEvt
+000D7D 904E92            MOV     DPTR,#pEvt
+000D80 EB                MOV     A,R3
+000D81 F0                MOVX    @DPTR,A
+000D82 A3                INC     DPTR
+000D83 EA                MOV     A,R2
+000D84 F0                MOVX    @DPTR,A
+000D85 A3                INC     DPTR
+000D86 E9                MOV     A,R1
+000D87 F0                MOVX    @DPTR,A
   156: 
   157: 	if (pEvt == NULL)
-000D48 4A                ORL     A,R2
-000D49 7006              JNZ     ?C0021?KB_PROCESS
+000D88 4A                ORL     A,R2
+000D89 7006              JNZ     ?C0021?KB_PROCESS
   158: 	{
   159: 		m_power_on_flag = 1;
-000D4B 904CB6            MOV     DPTR,#m_power_on_flag
-000D4E 04                INC     A
-000D4F F0                MOVX    @DPTR,A
-000D50 22                RET     
+000D8B 904CB6            MOV     DPTR,#m_power_on_flag
+000D8E 04                INC     A
+000D8F F0                MOVX    @DPTR,A
+000D90 22                RET     
   160: 		return;
   161: 	}
-000D51         ?C0021?KB_PROCESS:
+000D91         ?C0021?KB_PROCESS:
   162: 	kb_motion_keyscan(pEvt);
-000D51 904E92            MOV     DPTR,#pEvt
-000D54 E0                MOVX    A,@DPTR
-000D55 FB                MOV     R3,A
-000D56 A3                INC     DPTR
-000D57 E0                MOVX    A,@DPTR
-000D58 FA                MOV     R2,A
-000D59 A3                INC     DPTR
-000D5A E0                MOVX    A,@DPTR
-000D5B F9                MOV     R1,A
-000D5C 1180              ACALL   _kb_motion_keyscan
+000D91 904E92            MOV     DPTR,#pEvt
+000D94 E0                MOVX    A,@DPTR
+000D95 FB                MOV     R3,A
+000D96 A3                INC     DPTR
+000D97 E0                MOVX    A,@DPTR
+000D98 FA                MOV     R2,A
+000D99 A3                INC     DPTR
+000D9A E0                MOVX    A,@DPTR
+000D9B F9                MOV     R1,A
+000D9C 1180              ACALL   _kb_motion_keyscan
   163: }
-000D5E         ?C0020?KB_PROCESS:
-000D5E 22                RET     
+000D9E         ?C0020?KB_PROCESS:
+000D9E 22                RET     
 ----- FUNCTION kb_motion (END) -------
 
 
 ----- FUNCTION _IPC_TxBleData (BEGIN) -----
 ;---- Variable 'len' assigned to Register 'R5' ----
 ;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
-000D5F 900BE7            MOV     DPTR,#ipcSendBuff
-000D62 7405              MOV     A,#05H
-000D64 F0                MOVX    @DPTR,A
+000D9F 900BE7            MOV     DPTR,#ipcSendBuff
+000DA2 7405              MOV     A,#05H
+000DA4 F0                MOVX    @DPTR,A
 ;----                  JMP     _IPC_TxData
 ----- FUNCTION _IPC_TxBleData (END) -------
 
 
 ----- FUNCTION _IPC_TxData (BEGIN) -----
-000D65 904EB4            MOV     DPTR,#len
-000D68 ED                MOV     A,R5
-000D69 F0                MOVX    @DPTR,A
+000DA5 904EB3            MOV     DPTR,#len
+000DA8 ED                MOV     A,R5
+000DA9 F0                MOVX    @DPTR,A
 ;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
-000D6A E0                MOVX    A,@DPTR
-000D6B FD                MOV     R5,A
-000D6C 900BE8            MOV     DPTR,#ipcSendBuff+01H
-000D6F F0                MOVX    @DPTR,A
-000D70 7E0B              MOV     R6,#HIGH ipcSendBuff+02H
-000D72 7FE9              MOV     R7,#LOW ipcSendBuff+02H
-000D74 904E6E            MOV     DPTR,#?_xmemcpy?BYTE+05H
-000D77 ED                MOV     A,R5
-000D78 F0                MOVX    @DPTR,A
-000D79 113D              ACALL   _xmemcpy
-000D7B 7B01              MOV     R3,#01H
-000D7D 7A0B              MOV     R2,#HIGH ipcSendBuff
-000D7F 79E7              MOV     R1,#LOW ipcSendBuff
-000D81 904EB4            MOV     DPTR,#len
-000D84 E0                MOVX    A,@DPTR
-000D85 2402              ADD     A,#02H
-000D87 FD                MOV     R5,A
-000D88 02076B            LJMP    _ipcTx
+000DAA E0                MOVX    A,@DPTR
+000DAB FD                MOV     R5,A
+000DAC 900BE8            MOV     DPTR,#ipcSendBuff+01H
+000DAF F0                MOVX    @DPTR,A
+000DB0 7E0B              MOV     R6,#HIGH ipcSendBuff+02H
+000DB2 7FE9              MOV     R7,#LOW ipcSendBuff+02H
+000DB4 904E6E            MOV     DPTR,#?_xmemcpy?BYTE+05H
+000DB7 ED                MOV     A,R5
+000DB8 F0                MOVX    @DPTR,A
+000DB9 113D              ACALL   _xmemcpy
+000DBB 7B01              MOV     R3,#01H
+000DBD 7A0B              MOV     R2,#HIGH ipcSendBuff
+000DBF 79E7              MOV     R1,#LOW ipcSendBuff
+000DC1 904EB3            MOV     DPTR,#len
+000DC4 E0                MOVX    A,@DPTR
+000DC5 2402              ADD     A,#02H
+000DC7 FD                MOV     R5,A
+000DC8 02076B            LJMP    _ipcTx
 ----- FUNCTION _IPC_TxData (END) -------
 
 
@@ -1551,512 +1609,454 @@
    47: {
    48: 	System_clear_mem();
    49: 	YC_adc_init();
-000D8B 9116              ACALL   System_clear_mem
+000DCB 9104              ACALL   System_clear_mem
    50: 	g_variable.release_data =1;
-000D8D 121F58            LCALL   YC_adc_init
+000DCD 121EB6            LCALL   YC_adc_init
    51: 	g_variable.powerOn_timer = KB_POWERON_LED_ON_TIMER;
-000D90 904CEB            MOV     DPTR,#g_variable+02CH
-000D93 7401              MOV     A,#01H
-000D95 F0                MOVX    @DPTR,A
+000DD0 904CEB            MOV     DPTR,#g_variable+02CH
+000DD3 7401              MOV     A,#01H
+000DD5 F0                MOVX    @DPTR,A
    52: 	g_variable.recon_count = 0;
-000D96 904CE5            MOV     DPTR,#g_variable+026H
-000D99 741E              MOV     A,#01EH
-000D9B F0                MOVX    @DPTR,A
+000DD6 904CE5            MOV     DPTR,#g_variable+026H
+000DD9 741E              MOV     A,#01EH
+000DDB F0                MOVX    @DPTR,A
    53: 	g_variable.test_buff = 0xff;
-000D9C E4                CLR     A
-000D9D 904CF0            MOV     DPTR,#g_variable+031H
-000DA0 F0                MOVX    @DPTR,A
+000DDC E4                CLR     A
+000DDD 904CF0            MOV     DPTR,#g_variable+031H
+000DE0 F0                MOVX    @DPTR,A
    54: }
-000DA1 904D00            MOV     DPTR,#g_variable+041H
-000DA4 74FF              MOV     A,#0FFH
-000DA6 F0                MOVX    @DPTR,A
+000DE1 904D01            MOV     DPTR,#g_variable+042H
+000DE4 74FF              MOV     A,#0FFH
+000DE6 F0                MOVX    @DPTR,A
    55: 
-000DA7 22                RET     
+000DE7 22                RET     
 ----- FUNCTION System_Software_init (END) -------
 
 
 ----- FUNCTION YC_System_Main (BEGIN) -----
  FILE: 'sys.c'
-  450: void YC_System_Main(void)
-  451: {
-  452: 	kb_cb_init();
-  453: 	while(1) {
-000DA8 121F45            LCALL   kb_cb_init
-000DAB         ?C0077?SYS:
-  454: 		IPC_DealSingleStep();
-  455: 		kb_need_keyscan();
-000DAB 12222D            LCALL   IPC_DealSingleStep
-  456: 		YC_update_eeprom_data();
-000DAE 91D6              ACALL   kb_need_keyscan
-  457: 		LED_handle();
-000DB0 F15C              ACALL   YC_update_eeprom_data
-  458: 		
-000DB2 121E96            LCALL   LED_handle
-  459: 		switch (current_task) {
-000DB5 900B7E            MOV     DPTR,#current_task
-000DB8 E0                MOVX    A,@DPTR
-000DB9 14                DEC     A
-000DBA 600C              JZ      ?C0083?SYS
-000DBC 24FE              ADD     A,#0FEH
-000DBE 70EB              JNZ     ?C0077?SYS
-  460: 		case FIX_ENTER_HIBERNATE:
-000DC0         ?C0080?SYS:
-  461: 			KS_Unistall();
-000DC0 B1EE              ACALL   KS_Unistall
-  462: 			//GPIO_SetWakeupByCurrentState(BT_BUTTON_GPIO);
-  463: 			LED_all_shutdown();
-000DC2 F1A3              ACALL   LED_all_shutdown
-  464: 			IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
-000DC4 F139              ACALL   IPC_WaitLpm
-000DC6         ?C0081?SYS:
-  465: 			while(1);
-000DC6 80FE              SJMP    ?C0081?SYS
-  466: 			break;
-  467: 			
-  468: 		case FIX_ENTER_LPM:
-000DC8         ?C0083?SYS:
-  469: 			if (g_variable.delay_enter_lpm_timer ||g_variable.lockLpm ||g_variable.powerOn_timer ||
-000DC8 904CEA            MOV     DPTR,#g_variable+02BH
-000DCB E0                MOVX    A,@DPTR
-000DCC 7012              JNZ     ?C0085?SYS
-000DCE 904CEC            MOV     DPTR,#g_variable+02DH
-000DD1 E0                MOVX    A,@DPTR
-000DD2 700C              JNZ     ?C0085?SYS
-000DD4 904CE5            MOV     DPTR,#g_variable+026H
-000DD7 E0                MOVX    A,@DPTR
-000DD8 7006              JNZ     ?C0085?SYS
-000DDA 904CE7            MOV     DPTR,#g_variable+028H
-000DDD E0                MOVX    A,@DPTR
-000DDE 6005              JZ      ?C0084?SYS
-000DE0         ?C0085?SYS:
-  470: 			g_variable.sys_capslockled_on_timer  //||g_variable.sys_numlockled_on_timer
-  471: 			) 
-  472: 			{
-  473: 				IPC_AbandonLpm();
-000DE0 122366            LCALL   IPC_AbandonLpm
-  474: 				break;
-000DE3 80C6              SJMP    ?C0077?SYS
-  475: 			}
-000DE5         ?C0084?SYS:
-  476: 			else
-  477: 			{
-  478: 				KS_Unistall();
-000DE5 B1EE              ACALL   KS_Unistall
-  479: 				IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
-000DE7 F139              ACALL   IPC_WaitLpm
-  480: 				break;
-000DE9 80C0              SJMP    ?C0077?SYS
-  481: 			}
-  482: 		}
-  483: 	}
-000DEB 80BE              SJMP    ?C0077?SYS
-000DED 22                RET     
+  463: void YC_System_Main(void)
+  464: {
+  465: 	kb_cb_init();
+  466: 	while(1) {
+000DE8 121EA3            LCALL   kb_cb_init
+000DEB         ?C0077?SYS:
+  467: 		IPC_DealSingleStep();
+  468: 		kb_need_keyscan();
+000DEB 122100            LCALL   IPC_DealSingleStep
+  469: 		YC_update_eeprom_data();
+000DEE 91F6              ACALL   kb_need_keyscan
+  470: 		LED_handle();
+000DF0 121169            LCALL   YC_update_eeprom_data
+  471: 		
+000DF3 121065            LCALL   LED_handle
+  472: 		switch (current_task) {
+000DF6 900B7E            MOV     DPTR,#current_task
+000DF9 E0                MOVX    A,@DPTR
+000DFA 14                DEC     A
+000DFB 600C              JZ      ?C0083?SYS
+000DFD 24FE              ADD     A,#0FEH
+000DFF 70EA              JNZ     ?C0077?SYS
+  473: 		case FIX_ENTER_HIBERNATE:
+000E01         ?C0080?SYS:
+  474: 			KS_Unistall();
+000E01 D12F              ACALL   KS_Unistall
+  475: 			//GPIO_SetWakeupByCurrentState(BT_BUTTON_GPIO);
+  476: 			LED_all_shutdown();
+000E03 F19C              ACALL   LED_all_shutdown
+  477: 			IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+000E05 F179              ACALL   IPC_WaitLpm
+000E07         ?C0081?SYS:
+  478: 			while(1);
+000E07 80FE              SJMP    ?C0081?SYS
+  479: 			break;
+  480: 			
+  481: 		case FIX_ENTER_LPM:
+000E09         ?C0083?SYS:
+  482: 			if (g_variable.delay_enter_lpm_timer ||g_variable.lockLpm ||g_variable.powerOn_timer ||g_variable.one_key_pres
+>> s_wait_release_timer
+000E09 904CEA            MOV     DPTR,#g_variable+02BH
+000E0C E0                MOVX    A,@DPTR
+000E0D 7012              JNZ     ?C0085?SYS
+000E0F 904CEC            MOV     DPTR,#g_variable+02DH
+000E12 E0                MOVX    A,@DPTR
+000E13 700C              JNZ     ?C0085?SYS
+000E15 904CE5            MOV     DPTR,#g_variable+026H
+000E18 E0                MOVX    A,@DPTR
+000E19 7006              JNZ     ?C0085?SYS
+000E1B 904CF8            MOV     DPTR,#g_variable+039H
+000E1E E0                MOVX    A,@DPTR
+000E1F 6005              JZ      ?C0084?SYS
+000E21         ?C0085?SYS:
+  483: 			) 
+  484: 			{
+  485: 				IPC_AbandonLpm();
+000E21 122239            LCALL   IPC_AbandonLpm
+  486: 				break;
+000E24 80C5              SJMP    ?C0077?SYS
+  487: 			}
+000E26         ?C0084?SYS:
+  488: 			else
+  489: 			{
+  490: 				KS_Unistall();
+000E26 D12F              ACALL   KS_Unistall
+  491: 				IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+000E28 F179              ACALL   IPC_WaitLpm
+  492: 				break;
+000E2A 80BF              SJMP    ?C0077?SYS
+  493: 			}
+  494: 		}
+  495: 	}
+000E2C 80BD              SJMP    ?C0077?SYS
+000E2E 22                RET     
 ----- FUNCTION YC_System_Main (END) -------
 
 
 ----- FUNCTION KS_Unistall (BEGIN) -----
  FILE: 'keyscan.c'
-  214: void KS_Unistall()
-  215: {
-  216: 	byte i = 0;
-  217: 	byte temp = 0;
+  240: void KS_Unistall()
+  241: {
+  242: 	byte i = 0;
+  243: 	byte temp = 0;
 ;---- Variable 'i' assigned to Register 'R7' ----
-000DEE E4                CLR     A
-000DEF FF                MOV     R7,A
-  218: 	byte tgroup = 0;
-000DF0 904EB2            MOV     DPTR,#temp
-000DF3 F0                MOVX    @DPTR,A
-  219: 	byte tgpionum = 0;
+000E2F E4                CLR     A
+000E30 FF                MOV     R7,A
+  244: 	byte tgroup = 0;
+000E31 904EB2            MOV     DPTR,#temp
+000E34 F0                MOVX    @DPTR,A
+  245: 	byte tgpionum = 0;
 ;---- Variable 'tgroup' assigned to Register 'R6' ----
-000DF4 FE                MOV     R6,A
-  220: 	for (i=0; col[i]!=0; i++) {
+000E35 FE                MOV     R6,A
+  246: 	for (i=0; col[i]!=0; i++) {
 ;---- Variable 'tgpionum' assigned to Register 'R5' ----
-000DF5 FD                MOV     R5,A
-  221: 		tgroup = col[i]  >> 3;
-000DF6         ?C0037?KEYSCAN:
-000DF6 EF                MOV     A,R7
-000DF7 90060C            MOV     DPTR,#col
-000DFA 93                MOVC    A,@A+DPTR
-000DFB 6049              JZ      ?C0038?KEYSCAN
-  222: 		tgpionum = 1 << (col[i] & 7);
-000DFD EF                MOV     A,R7
-000DFE 93                MOVC    A,@A+DPTR
-000DFF FD                MOV     R5,A
-000E00 13                RRC     A
-000E01 13                RRC     A
-000E02 13                RRC     A
-000E03 541F              ANL     A,#01FH
-000E05 FE                MOV     R6,A
-  223: 		REG_GPIO_PUP (tgroup) &= ~tgpionum;
-000E06 ED                MOV     A,R5
-000E07 5407              ANL     A,#07H
-000E09 FD                MOV     R5,A
-000E0A 7401              MOV     A,#01H
-000E0C A805              MOV     R0,AR5
-000E0E 08                INC     R0
-000E0F 8002              SJMP    ?C0093?KEYSCAN
-000E11         ?C0092?KEYSCAN:
-000E11 C3                CLR     C
-000E12 33                RLC     A
-000E13         ?C0093?KEYSCAN:
-000E13 D8FC              DJNZ    R0,?C0092?KEYSCAN
-000E15 FD                MOV     R5,A
-  224: 		REG_GPIO_OE(tgroup) |= tgpionum;
-000E16 EE                MOV     A,R6
-000E17 2478              ADD     A,#078H
-000E19 FB                MOV     R3,A
-000E1A E4                CLR     A
-000E1B 3480              ADDC    A,#080H
-000E1D 8B82              MOV     DPL,R3
-000E1F F583              MOV     DPH,A
-000E21 E0                MOVX    A,@DPTR
-000E22 FC                MOV     R4,A
-000E23 ED                MOV     A,R5
-000E24 F4                CPL     A
-000E25 FB                MOV     R3,A
-000E26 EC                MOV     A,R4
-000E27 5B                ANL     A,R3
-000E28 F0                MOVX    @DPTR,A
-  225: 		REG_GPIO_OUT(tgroup) &= ~tgpionum;
-000E29 EE                MOV     A,R6
-000E2A 2470              ADD     A,#070H
-000E2C F582              MOV     DPL,A
-000E2E E4                CLR     A
-000E2F 3480              ADDC    A,#080H
-000E31 F583              MOV     DPH,A
-000E33 E0                MOVX    A,@DPTR
-000E34 4D                ORL     A,R5
-000E35 F0                MOVX    @DPTR,A
-  226: 	}
-000E36 EE                MOV     A,R6
-000E37 2474              ADD     A,#074H
-000E39 F582              MOV     DPL,A
-000E3B E4                CLR     A
-000E3C 3480              ADDC    A,#080H
-000E3E F583              MOV     DPH,A
-000E40 E0                MOVX    A,@DPTR
-000E41 5B                ANL     A,R3
-000E42 F0                MOVX    @DPTR,A
-  227: 	
-000E43 0F                INC     R7
-000E44 80B0              SJMP    ?C0037?KEYSCAN
-000E46         ?C0038?KEYSCAN:
-  228: 	GPIO_fillpd();
-000E46 1223FD            LCALL   GPIO_fillpd
-  229: 	
-  230: 	temp = REG_GPIO_IN(0);
-000E49 90811C            MOV     DPTR,#0811CH
-000E4C E0                MOVX    A,@DPTR
-000E4D 904EB2            MOV     DPTR,#temp
-000E50 F0                MOVX    @DPTR,A
-  231: 	if (g_variable.battery_status != 2)
-000E51 904CD5            MOV     DPTR,#g_variable+016H
-000E54 E0                MOVX    A,@DPTR
-000E55 6402              XRL     A,#02H
-000E57 6036              JZ      ?C0040?KEYSCAN
-  232: 	{
-  233: 		if(long_press_flag)
-000E59 904DD5            MOV     DPTR,#long_press_flag
-000E5C E0                MOVX    A,@DPTR
-000E5D 6020              JZ      ?C0041?KEYSCAN
-  234: 		{
-  235: 			GPIO_SetWakeupByCurrentState(0);
-000E5F E4                CLR     A
-000E60 FF                MOV     R7,A
-000E61 D199              ACALL   _GPIO_SetWakeupByCurrentState
-  236: 			GPIO_SetWakeupByCurrentState(1);
-000E63 7F01              MOV     R7,#01H
-000E65 D199              ACALL   _GPIO_SetWakeupByCurrentState
-  237: 			GPIO_SetWakeupByCurrentState(2);
-000E67 7F02              MOV     R7,#02H
-000E69 D199              ACALL   _GPIO_SetWakeupByCurrentState
-  238: 			GPIO_SetWakeupByCurrentState(3);
-000E6B 7F03              MOV     R7,#03H
-000E6D D199              ACALL   _GPIO_SetWakeupByCurrentState
-  239: 			GPIO_SetWakeupByCurrentState(4);
-000E6F 7F04              MOV     R7,#04H
-000E71 D199              ACALL   _GPIO_SetWakeupByCurrentState
-  240: 			GPIO_SetWakeupByCurrentState(5);
-000E73 7F05              MOV     R7,#05H
-000E75 D199              ACALL   _GPIO_SetWakeupByCurrentState
-  241: 			GPIO_SetWakeupByCurrentState(6);
-000E77 7F06              MOV     R7,#06H
-000E79 D199              ACALL   _GPIO_SetWakeupByCurrentState
-  242: 			GPIO_SetWakeupByCurrentState(7);
-000E7B 7F07              MOV     R7,#07H
-000E7D 801A              SJMP    _GPIO_SetWakeupByCurrentState
-  243: 		}
-000E7F         ?C0041?KEYSCAN:
-  244: 		else
-  245: 		{
-  246: 			YC_GPIOWakeupL[0] = temp;
-000E7F 904EB2            MOV     DPTR,#temp
-000E82 E0                MOVX    A,@DPTR
-000E83 FF                MOV     R7,A
-000E84 9000A3            MOV     DPTR,#YC_GPIOWakeupL
-000E87 F0                MOVX    @DPTR,A
-  247: 			YC_GPIOWakeupH[0] = ~temp;
-000E88 EF                MOV     A,R7
-000E89 F4                CPL     A
-000E8A 9000A7            MOV     DPTR,#YC_GPIOWakeupH
-000E8D F0                MOVX    @DPTR,A
-  248: 		}
-  249: 
-  250: 	}
-000E8E 22                RET     
-000E8F         ?C0040?KEYSCAN:
-  251: 	else
-  252: 	{
-  253: 		YC_GPIOWakeupL[0] = 0;
-000E8F E4                CLR     A
-000E90 9000A3            MOV     DPTR,#YC_GPIOWakeupL
-000E93 F0                MOVX    @DPTR,A
-  254: 		YC_GPIOWakeupH[0] = 0;
-000E94 9000A7            MOV     DPTR,#YC_GPIOWakeupH
-000E97 F0                MOVX    @DPTR,A
-  255: 	}
-  256: }
-000E98 22                RET     
+000E36 FD                MOV     R5,A
+  247: 		tgroup = col[i]  >> 3;
+000E37         ?C0037?KEYSCAN:
+000E37 EF                MOV     A,R7
+000E38 90060C            MOV     DPTR,#col
+000E3B 93                MOVC    A,@A+DPTR
+000E3C 6049              JZ      ?C0038?KEYSCAN
+  248: 		tgpionum = 1 << (col[i] & 7);
+000E3E EF                MOV     A,R7
+000E3F 93                MOVC    A,@A+DPTR
+000E40 FD                MOV     R5,A
+000E41 13                RRC     A
+000E42 13                RRC     A
+000E43 13                RRC     A
+000E44 541F              ANL     A,#01FH
+000E46 FE                MOV     R6,A
+  249: 		REG_GPIO_PUP (tgroup) &= ~tgpionum;
+000E47 ED                MOV     A,R5
+000E48 5407              ANL     A,#07H
+000E4A FD                MOV     R5,A
+000E4B 7401              MOV     A,#01H
+000E4D A805              MOV     R0,AR5
+000E4F 08                INC     R0
+000E50 8002              SJMP    ?C0093?KEYSCAN
+000E52         ?C0092?KEYSCAN:
+000E52 C3                CLR     C
+000E53 33                RLC     A
+000E54         ?C0093?KEYSCAN:
+000E54 D8FC              DJNZ    R0,?C0092?KEYSCAN
+000E56 FD                MOV     R5,A
+  250: 		REG_GPIO_OE(tgroup) |= tgpionum;
+000E57 EE                MOV     A,R6
+000E58 2478              ADD     A,#078H
+000E5A FB                MOV     R3,A
+000E5B E4                CLR     A
+000E5C 3480              ADDC    A,#080H
+000E5E 8B82              MOV     DPL,R3
+000E60 F583              MOV     DPH,A
+000E62 E0                MOVX    A,@DPTR
+000E63 FC                MOV     R4,A
+000E64 ED                MOV     A,R5
+000E65 F4                CPL     A
+000E66 FB                MOV     R3,A
+000E67 EC                MOV     A,R4
+000E68 5B                ANL     A,R3
+000E69 F0                MOVX    @DPTR,A
+  251: 		REG_GPIO_OUT(tgroup) &= ~tgpionum;
+000E6A EE                MOV     A,R6
+000E6B 2470              ADD     A,#070H
+000E6D F582              MOV     DPL,A
+000E6F E4                CLR     A
+000E70 3480              ADDC    A,#080H
+000E72 F583              MOV     DPH,A
+000E74 E0                MOVX    A,@DPTR
+000E75 4D                ORL     A,R5
+000E76 F0                MOVX    @DPTR,A
+  252: 	}
+000E77 EE                MOV     A,R6
+000E78 2474              ADD     A,#074H
+000E7A F582              MOV     DPL,A
+000E7C E4                CLR     A
+000E7D 3480              ADDC    A,#080H
+000E7F F583              MOV     DPH,A
+000E81 E0                MOVX    A,@DPTR
+000E82 5B                ANL     A,R3
+000E83 F0                MOVX    @DPTR,A
+  253: 	
+000E84 0F                INC     R7
+000E85 80B0              SJMP    ?C0037?KEYSCAN
+000E87         ?C0038?KEYSCAN:
+  254: 	GPIO_fillpd();
+000E87 122314            LCALL   GPIO_fillpd
+  255: 	
+  256: 	temp = REG_GPIO_IN(0);
+000E8A 90811C            MOV     DPTR,#0811CH
+000E8D E0                MOVX    A,@DPTR
+000E8E 904EB2            MOV     DPTR,#temp
+000E91 F0                MOVX    @DPTR,A
+  257: 	if (g_variable.battery_status != 2)
+000E92 904CD5            MOV     DPTR,#g_variable+016H
+000E95 E0                MOVX    A,@DPTR
+000E96 6402              XRL     A,#02H
+000E98 6036              JZ      ?C0040?KEYSCAN
+  258: 	{
+  259: 		if(long_press_flag)
+000E9A 904DD5            MOV     DPTR,#long_press_flag
+000E9D E0                MOVX    A,@DPTR
+000E9E 6020              JZ      ?C0041?KEYSCAN
+  260: 		{
+  261: 			GPIO_SetWakeupByCurrentState(0);
+000EA0 E4                CLR     A
+000EA1 FF                MOV     R7,A
+000EA2 D1DA              ACALL   _GPIO_SetWakeupByCurrentState
+  262: 			GPIO_SetWakeupByCurrentState(1);
+000EA4 7F01              MOV     R7,#01H
+000EA6 D1DA              ACALL   _GPIO_SetWakeupByCurrentState
+  263: 			GPIO_SetWakeupByCurrentState(2);
+000EA8 7F02              MOV     R7,#02H
+000EAA D1DA              ACALL   _GPIO_SetWakeupByCurrentState
+  264: 			GPIO_SetWakeupByCurrentState(3);
+000EAC 7F03              MOV     R7,#03H
+000EAE D1DA              ACALL   _GPIO_SetWakeupByCurrentState
+  265: 			GPIO_SetWakeupByCurrentState(4);
+000EB0 7F04              MOV     R7,#04H
+000EB2 D1DA              ACALL   _GPIO_SetWakeupByCurrentState
+  266: 			GPIO_SetWakeupByCurrentState(5);
+000EB4 7F05              MOV     R7,#05H
+000EB6 D1DA              ACALL   _GPIO_SetWakeupByCurrentState
+  267: 			GPIO_SetWakeupByCurrentState(6);
+000EB8 7F06              MOV     R7,#06H
+000EBA D1DA              ACALL   _GPIO_SetWakeupByCurrentState
+  268: 			GPIO_SetWakeupByCurrentState(7);
+000EBC 7F07              MOV     R7,#07H
+000EBE 801A              SJMP    _GPIO_SetWakeupByCurrentState
+  269: 		}
+000EC0         ?C0041?KEYSCAN:
+  270: 		else
+  271: 		{
+  272: 			YC_GPIOWakeupL[0] = temp;
+000EC0 904EB2            MOV     DPTR,#temp
+000EC3 E0                MOVX    A,@DPTR
+000EC4 FF                MOV     R7,A
+000EC5 9000A3            MOV     DPTR,#YC_GPIOWakeupL
+000EC8 F0                MOVX    @DPTR,A
+  273: 			YC_GPIOWakeupH[0] = ~temp;
+000EC9 EF                MOV     A,R7
+000ECA F4                CPL     A
+000ECB 9000A7            MOV     DPTR,#YC_GPIOWakeupH
+000ECE F0                MOVX    @DPTR,A
+  274: 		}
+  275: 
+  276: 	}
+000ECF 22                RET     
+000ED0         ?C0040?KEYSCAN:
+  277: 	else
+  278: 	{
+  279: 		YC_GPIOWakeupL[0] = 0;
+000ED0 E4                CLR     A
+000ED1 9000A3            MOV     DPTR,#YC_GPIOWakeupL
+000ED4 F0                MOVX    @DPTR,A
+  280: 		YC_GPIOWakeupH[0] = 0;
+000ED5 9000A7            MOV     DPTR,#YC_GPIOWakeupH
+000ED8 F0                MOVX    @DPTR,A
+  281: 	}
+  282: }
+000ED9 22                RET     
 ----- FUNCTION KS_Unistall (END) -------
 
 
 ----- FUNCTION _GPIO_SetWakeupByCurrentState (BEGIN) -----
-000E99 904EB6            MOV     DPTR,#gpio_num
-000E9C EF                MOV     A,R7
-000E9D F0                MOVX    @DPTR,A
-000E9E 12171E            LCALL   _GPIO_GetInputStatus
-000EA1 9208              MOV     st,C
-000EA3 904EB6            MOV     DPTR,#gpio_num
-000EA6 E0                MOVX    A,@DPTR
-000EA7 FF                MOV     R7,A
-000EA8 A208              MOV     C,st
-000EAA B3                CPL     C
-000EAB 9207              MOV     ?_GPIO_SetWakeup?BIT,C
+000EDA 904EB5            MOV     DPTR,#gpio_num
+000EDD EF                MOV     A,R7
+000EDE F0                MOVX    @DPTR,A
+000EDF F1CA              ACALL   _GPIO_GetInputStatus
+000EE1 9208              MOV     st,C
+000EE3 904EB5            MOV     DPTR,#gpio_num
+000EE6 E0                MOVX    A,@DPTR
+000EE7 FF                MOV     R7,A
+000EE8 A208              MOV     C,st
+000EEA B3                CPL     C
+000EEB 9207              MOV     ?_GPIO_SetWakeup?BIT,C
 ;----                  JMP     _GPIO_SetWakeup
 ----- FUNCTION _GPIO_SetWakeupByCurrentState (END) -------
 
 
 ----- FUNCTION _GPIO_SetWakeup (BEGIN) -----
 ;---- Variable 'gpio_num' assigned to Register 'R7' ----
-000EAD EF                MOV     A,R7
-000EAE F4                CPL     A
-000EAF 7002              JNZ     $ + 4H
-000EB1 E138              AJMP    ?C0019?GPIO
-000EB3         ?C0018?GPIO:
-000EB3 EF                MOV     A,R7
-000EB4 5407              ANL     A,#07H
-000EB6 FE                MOV     R6,A
+000EED EF                MOV     A,R7
+000EEE F4                CPL     A
+000EEF 7002              JNZ     $ + 4H
+000EF1 E178              AJMP    ?C0019?GPIO
+000EF3         ?C0018?GPIO:
+000EF3 EF                MOV     A,R7
+000EF4 5407              ANL     A,#07H
+000EF6 FE                MOV     R6,A
 ;---- Variable 'queue' assigned to Register 'R6' ----
-000EB7 EF                MOV     A,R7
-000EB8 13                RRC     A
-000EB9 13                RRC     A
-000EBA 13                RRC     A
-000EBB 5403              ANL     A,#03H
-000EBD FF                MOV     R7,A
+000EF7 EF                MOV     A,R7
+000EF8 13                RRC     A
+000EF9 13                RRC     A
+000EFA 13                RRC     A
+000EFB 5403              ANL     A,#03H
+000EFD FF                MOV     R7,A
 ;---- Variable 'group' assigned to Register 'R7' ----
-000EBE 300743            JNB     st,?C0020?GPIO
-000EC1 24A3              ADD     A,#LOW YC_GPIOWakeupL
-000EC3 F582              MOV     DPL,A
-000EC5 E4                CLR     A
-000EC6 3400              ADDC    A,#HIGH YC_GPIOWakeupL
-000EC8 F583              MOV     DPH,A
-000ECA C083              PUSH    DPH
-000ECC C082              PUSH    DPL
-000ECE E0                MOVX    A,@DPTR
-000ECF FD                MOV     R5,A
-000ED0 7401              MOV     A,#01H
-000ED2 A806              MOV     R0,AR6
-000ED4 08                INC     R0
-000ED5 8002              SJMP    ?C0037?GPIO
-000ED7         ?C0036?GPIO:
-000ED7 C3                CLR     C
-000ED8 33                RLC     A
-000ED9         ?C0037?GPIO:
-000ED9 D8FC              DJNZ    R0,?C0036?GPIO
-000EDB F4                CPL     A
-000EDC 5D                ANL     A,R5
-000EDD D082              POP     DPL
-000EDF D083              POP     DPH
-000EE1 F0                MOVX    @DPTR,A
-000EE2 74A7              MOV     A,#LOW YC_GPIOWakeupH
-000EE4 2F                ADD     A,R7
-000EE5 F582              MOV     DPL,A
-000EE7 E4                CLR     A
-000EE8 3400              ADDC    A,#HIGH YC_GPIOWakeupH
-000EEA F583              MOV     DPH,A
-000EEC C083              PUSH    DPH
-000EEE C082              PUSH    DPL
-000EF0 E0                MOVX    A,@DPTR
-000EF1 FF                MOV     R7,A
-000EF2 7401              MOV     A,#01H
-000EF4 A806              MOV     R0,AR6
-000EF6 08                INC     R0
-000EF7 8002              SJMP    ?C0039?GPIO
-000EF9         ?C0038?GPIO:
-000EF9 C3                CLR     C
-000EFA 33                RLC     A
-000EFB         ?C0039?GPIO:
-000EFB D8FC              DJNZ    R0,?C0038?GPIO
-000EFD 4F                ORL     A,R7
-000EFE D082              POP     DPL
-000F00 D083              POP     DPH
-000F02 F0                MOVX    @DPTR,A
-000F03 22                RET     
-000F04         ?C0020?GPIO:
-000F04 74A3              MOV     A,#LOW YC_GPIOWakeupL
-000F06 2F                ADD     A,R7
-000F07 F582              MOV     DPL,A
-000F09 E4                CLR     A
-000F0A 3400              ADDC    A,#HIGH YC_GPIOWakeupL
-000F0C F583              MOV     DPH,A
-000F0E C083              PUSH    DPH
-000F10 C082              PUSH    DPL
-000F12 E0                MOVX    A,@DPTR
-000F13 FD                MOV     R5,A
-000F14 7401              MOV     A,#01H
-000F16 A806              MOV     R0,AR6
-000F18 08                INC     R0
-000F19 8002              SJMP    ?C0041?GPIO
-000F1B         ?C0040?GPIO:
-000F1B C3                CLR     C
-000F1C 33                RLC     A
-000F1D         ?C0041?GPIO:
-000F1D D8FC              DJNZ    R0,?C0040?GPIO
-000F1F FC                MOV     R4,A
-000F20 4D                ORL     A,R5
-000F21 D082              POP     DPL
-000F23 D083              POP     DPH
-000F25 F0                MOVX    @DPTR,A
-000F26 74A7              MOV     A,#LOW YC_GPIOWakeupH
-000F28 2F                ADD     A,R7
-000F29 F582              MOV     DPL,A
-000F2B E4                CLR     A
-000F2C 3400              ADDC    A,#HIGH YC_GPIOWakeupH
-000F2E F583              MOV     DPH,A
+000EFE 300743            JNB     st,?C0020?GPIO
+000F01 24A3              ADD     A,#LOW YC_GPIOWakeupL
+000F03 F582              MOV     DPL,A
+000F05 E4                CLR     A
+000F06 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+000F08 F583              MOV     DPH,A
+000F0A C083              PUSH    DPH
+000F0C C082              PUSH    DPL
+000F0E E0                MOVX    A,@DPTR
+000F0F FD                MOV     R5,A
+000F10 7401              MOV     A,#01H
+000F12 A806              MOV     R0,AR6
+000F14 08                INC     R0
+000F15 8002              SJMP    ?C0037?GPIO
+000F17         ?C0036?GPIO:
+000F17 C3                CLR     C
+000F18 33                RLC     A
+000F19         ?C0037?GPIO:
+000F19 D8FC              DJNZ    R0,?C0036?GPIO
+000F1B F4                CPL     A
+000F1C 5D                ANL     A,R5
+000F1D D082              POP     DPL
+000F1F D083              POP     DPH
+000F21 F0                MOVX    @DPTR,A
+000F22 74A7              MOV     A,#LOW YC_GPIOWakeupH
+000F24 2F                ADD     A,R7
+000F25 F582              MOV     DPL,A
+000F27 E4                CLR     A
+000F28 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+000F2A F583              MOV     DPH,A
+000F2C C083              PUSH    DPH
+000F2E C082              PUSH    DPL
 000F30 E0                MOVX    A,@DPTR
 000F31 FF                MOV     R7,A
-000F32 EC                MOV     A,R4
-000F33 F4                CPL     A
-000F34 FE                MOV     R6,A
-000F35 EF                MOV     A,R7
-000F36 5E                ANL     A,R6
-000F37 F0                MOVX    @DPTR,A
-000F38         ?C0019?GPIO:
-000F38 22                RET     
+000F32 7401              MOV     A,#01H
+000F34 A806              MOV     R0,AR6
+000F36 08                INC     R0
+000F37 8002              SJMP    ?C0039?GPIO
+000F39         ?C0038?GPIO:
+000F39 C3                CLR     C
+000F3A 33                RLC     A
+000F3B         ?C0039?GPIO:
+000F3B D8FC              DJNZ    R0,?C0038?GPIO
+000F3D 4F                ORL     A,R7
+000F3E D082              POP     DPL
+000F40 D083              POP     DPH
+000F42 F0                MOVX    @DPTR,A
+000F43 22                RET     
+000F44         ?C0020?GPIO:
+000F44 74A3              MOV     A,#LOW YC_GPIOWakeupL
+000F46 2F                ADD     A,R7
+000F47 F582              MOV     DPL,A
+000F49 E4                CLR     A
+000F4A 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+000F4C F583              MOV     DPH,A
+000F4E C083              PUSH    DPH
+000F50 C082              PUSH    DPL
+000F52 E0                MOVX    A,@DPTR
+000F53 FD                MOV     R5,A
+000F54 7401              MOV     A,#01H
+000F56 A806              MOV     R0,AR6
+000F58 08                INC     R0
+000F59 8002              SJMP    ?C0041?GPIO
+000F5B         ?C0040?GPIO:
+000F5B C3                CLR     C
+000F5C 33                RLC     A
+000F5D         ?C0041?GPIO:
+000F5D D8FC              DJNZ    R0,?C0040?GPIO
+000F5F FC                MOV     R4,A
+000F60 4D                ORL     A,R5
+000F61 D082              POP     DPL
+000F63 D083              POP     DPH
+000F65 F0                MOVX    @DPTR,A
+000F66 74A7              MOV     A,#LOW YC_GPIOWakeupH
+000F68 2F                ADD     A,R7
+000F69 F582              MOV     DPL,A
+000F6B E4                CLR     A
+000F6C 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+000F6E F583              MOV     DPH,A
+000F70 E0                MOVX    A,@DPTR
+000F71 FF                MOV     R7,A
+000F72 EC                MOV     A,R4
+000F73 F4                CPL     A
+000F74 FE                MOV     R6,A
+000F75 EF                MOV     A,R7
+000F76 5E                ANL     A,R6
+000F77 F0                MOVX    @DPTR,A
+000F78         ?C0019?GPIO:
+000F78 22                RET     
 ----- FUNCTION _GPIO_SetWakeup (END) -------
 
 
 ----- FUNCTION IPC_WaitLpm (BEGIN) -----
-000F39 E4                CLR     A
-000F3A 900B7F            MOV     DPTR,#lpm_flag
-000F3D F0                MOVX    @DPTR,A
-000F3E 900B7E            MOV     DPTR,#current_task
-000F41 F0                MOVX    @DPTR,A
-000F42 7F01              MOV     R7,#01H
+000F79 E4                CLR     A
+000F7A 900B7F            MOV     DPTR,#lpm_flag
+000F7D F0                MOVX    @DPTR,A
+000F7E 900B7E            MOV     DPTR,#current_task
+000F81 F0                MOVX    @DPTR,A
+000F82 7F01              MOV     R7,#01H
 ;----                  JMP     _Delay1ms
 ----- FUNCTION IPC_WaitLpm (END) -------
 
 
 ----- FUNCTION _Delay1ms (BEGIN) -----
 ;---- Variable 'Time' assigned to Register 'R7' ----
-000F44         ?C0014?UTILITIES:
-000F44 EF                MOV     A,R7
-000F45 D3                SETB    C
-000F46 9400              SUBB    A,#00H
-000F48 4011              JC      ?C0020?UTILITIES
+000F84         ?C0014?UTILITIES:
+000F84 EF                MOV     A,R7
+000F85 D3                SETB    C
+000F86 9400              SUBB    A,#00H
+000F88 4011              JC      ?C0020?UTILITIES
 ;---- Variable 'j' assigned to Register 'R4/R5' ----
-000F4A E4                CLR     A
-000F4B FD                MOV     R5,A
-000F4C FC                MOV     R4,A
-000F4D         ?C0017?UTILITIES:
-000F4D 0D                INC     R5
-000F4E BD0001            CJNE    R5,#00H,?C0028?UTILITIES
-000F51 0C                INC     R4
-000F52         ?C0028?UTILITIES:
-000F52 BC04F8            CJNE    R4,#04H,?C0017?UTILITIES
-000F55 BDA6F5            CJNE    R5,#0A6H,?C0017?UTILITIES
-000F58         ?C0016?UTILITIES:
-000F58 1F                DEC     R7
-000F59 80E9              SJMP    ?C0014?UTILITIES
-000F5B         ?C0020?UTILITIES:
-000F5B 22                RET     
+000F8A E4                CLR     A
+000F8B FD                MOV     R5,A
+000F8C FC                MOV     R4,A
+000F8D         ?C0017?UTILITIES:
+000F8D 0D                INC     R5
+000F8E BD0001            CJNE    R5,#00H,?C0028?UTILITIES
+000F91 0C                INC     R4
+000F92         ?C0028?UTILITIES:
+000F92 BC04F8            CJNE    R4,#04H,?C0017?UTILITIES
+000F95 BDA6F5            CJNE    R5,#0A6H,?C0017?UTILITIES
+000F98         ?C0016?UTILITIES:
+000F98 1F                DEC     R7
+000F99 80E9              SJMP    ?C0014?UTILITIES
+000F9B         ?C0020?UTILITIES:
+000F9B 22                RET     
 ----- FUNCTION _Delay1ms (END) -------
 
 
------ FUNCTION YC_update_eeprom_data (BEGIN) -----
- FILE: 'bluetooth.c'
-  134: void YC_update_eeprom_data()
-  135: {
-  136: 	if (g_variable.update_eeprom_flag)				//bt3.0  bt4.2 record information save
-  137: 	{
-000F5C 904CBF            MOV     DPTR,#g_variable
-000F5F E0                MOVX    A,@DPTR
-000F60 FF                MOV     R7,A
-000F61 603F              JZ      ?C0026?BLUETOOTH
-  138: 		if (g_variable.update_eeprom_flag != 3)
-  139: 			Delay1ms(200);
-000F63 6403              XRL     A,#03H
-000F65 6004              JZ      ?C0025?BLUETOOTH
-  140: 		GPIO_Setout(EEPROM_WP_GPIO,0);
-000F67 7FC8              MOV     R7,#0C8H
-000F69 F144              ACALL   _Delay1ms
-000F6B         ?C0025?BLUETOOTH:
-  141: 		IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD) , (byte *)&bd_key_record_list);
-000F6B C201              CLR     ?_GPIO_Setout?BIT
-000F6D 7FFF              MOV     R7,#0FFH
-000F6F F1D0              ACALL   _GPIO_Setout
-  142: 		IIC_WriteBlock(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
-000F71 7B01              MOV     R3,#01H
-000F73 7A4D              MOV     R2,#HIGH bd_key_record_list
-000F75 79E4              MOV     R1,#LOW bd_key_record_list
-000F77 7D1D              MOV     R5,#01DH
-000F79 7C00              MOV     R4,#00H
-000F7B 7FD8              MOV     R7,#0D8H
-000F7D 7E3F              MOV     R6,#03FH
-000F7F 12161F            LCALL   _IIC_WriteBlock
-  143: 		GPIO_Setout(EEPROM_WP_GPIO,1);
-000F82 7B01              MOV     R3,#01H
-000F84 7A4C              MOV     R2,#HIGH g_variable+033H
-000F86 79F2              MOV     R1,#LOW g_variable+033H
-000F88 7D02              MOV     R5,#02H
-000F8A 7C00              MOV     R4,#00H
-000F8C 7FF6              MOV     R7,#0F6H
-000F8E 7E3F              MOV     R6,#03FH
-000F90 12161F            LCALL   _IIC_WriteBlock
-  144: 		Delay1ms(10);
-000F93 D201              SETB    ?_GPIO_Setout?BIT
-000F95 7FFF              MOV     R7,#0FFH
-000F97 F1D0              ACALL   _GPIO_Setout
-  145: 		g_variable.update_eeprom_flag = 0;
-000F99 7F0A              MOV     R7,#0AH
-000F9B F144              ACALL   _Delay1ms
-  146: 	}
-000F9D E4                CLR     A
-000F9E 904CBF            MOV     DPTR,#g_variable
-000FA1 F0                MOVX    @DPTR,A
-  147: }
-  148: 
-000FA2         ?C0026?BLUETOOTH:
-000FA2 22                RET     
------ FUNCTION YC_update_eeprom_data (END) -------
-
-
 ----- FUNCTION LED_all_shutdown (BEGIN) -----
  FILE: 'led.c'
     4: void LED_all_shutdown()
     5: {
     6: 	//GPIO_SetOutput(NUM_LOCK_LED_GPIO,LED_OFF);
     7: 	GPIO_SetOutput(CAPS_LED_GPIO,LED_OFF);
-000FA3 C206              CLR     ?_GPIO_SetOutput?BIT
-000FA5 7F1E              MOV     R7,#01EH
-000FA7 F1B3              ACALL   _GPIO_SetOutput
+000F9C C206              CLR     ?_GPIO_SetOutput?BIT
+000F9E 7F1E              MOV     R7,#01EH
+000FA0 F1AC              ACALL   _GPIO_SetOutput
     8: 	GPIO_SetOutput(BT_LED_GPIO,LED_OFF);	
-000FA9 C206              CLR     ?_GPIO_SetOutput?BIT
-000FAB 7F0F              MOV     R7,#0FH
-000FAD F1B3              ACALL   _GPIO_SetOutput
+000FA2 C206              CLR     ?_GPIO_SetOutput?BIT
+000FA4 7F0F              MOV     R7,#0FH
+000FA6 F1AC              ACALL   _GPIO_SetOutput
     9: 	GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_OFF);
-000FAF C206              CLR     ?_GPIO_SetOutput?BIT
-000FB1 7FFF              MOV     R7,#0FFH
+000FA8 C206              CLR     ?_GPIO_SetOutput?BIT
+000FAA 7F1D              MOV     R7,#01DH
 ;----                  JMP     _GPIO_SetOutput
    10: }
 ----- FUNCTION LED_all_shutdown (END) -------
@@ -2064,75 +2064,86 @@
 
 ----- FUNCTION _GPIO_SetOutput (BEGIN) -----
 ;---- Variable 'gpio_num' assigned to Register 'R4' ----
-000FB3 AC07              MOV     R4,AR7
-000FB5 EC                MOV     A,R4
-000FB6 F4                CPL     A
-000FB7 6016              JZ      ?C0017?GPIO
-000FB9         ?C0016?GPIO:
+000FAC AC07              MOV     R4,AR7
+000FAE EC                MOV     A,R4
+000FAF F4                CPL     A
+000FB0 6017              JZ      ?C0017?GPIO
+000FB2         ?C0016?GPIO:
+000FB2 AF04              MOV     R7,AR4
+000FB4 D204              SETB    ?_GPIO_Setoe?BIT
+000FB6 1215B6            LCALL   _GPIO_Setoe
 000FB9 AF04              MOV     R7,AR4
-000FBB D204              SETB    ?_GPIO_Setoe?BIT
-000FBD 12133C            LCALL   _GPIO_Setoe
-000FC0 AF04              MOV     R7,AR4
-000FC2 A206              MOV     C,st
-000FC4 9201              MOV     ?_GPIO_Setout?BIT,C
-000FC6 F1D0              ACALL   _GPIO_Setout
-000FC8 AF04              MOV     R7,AR4
-000FCA C202              CLR     ?_GPIO_SetPu?BIT
-000FCC 12131A            LCALL   _GPIO_SetPu
-000FCF         ?C0017?GPIO:
-000FCF 22                RET     
+000FBB A206              MOV     C,st
+000FBD 9201              MOV     ?_GPIO_Setout?BIT,C
+000FBF 121054            LCALL   _GPIO_Setout
+000FC2 AF04              MOV     R7,AR4
+000FC4 C202              CLR     ?_GPIO_SetPu?BIT
+000FC6 121533            LCALL   _GPIO_SetPu
+000FC9         ?C0017?GPIO:
+000FC9 22                RET     
 ----- FUNCTION _GPIO_SetOutput (END) -------
 
 
------ FUNCTION _GPIO_Setout (BEGIN) -----
+----- FUNCTION _GPIO_GetInputStatus (BEGIN) -----
 ;---- Variable 'gpio_num' assigned to Register 'R7' ----
-000FD0 EF                MOV     A,R7
-000FD1 F4                CPL     A
-000FD2 600D              JZ      ?C0007?GPIO
-000FD4         ?C0006?GPIO:
-000FD4 7B01              MOV     R3,#01H
-000FD6 7A80              MOV     R2,#080H
-000FD8 7974              MOV     R1,#074H
-000FDA A201              MOV     C,bit_val
-000FDC 9200              MOV     ?_gpioSetBit?BIT,C
-000FDE 12134D            LCALL   _gpioSetBit
-000FE1         ?C0007?GPIO:
-000FE1 22                RET     
------ FUNCTION _GPIO_Setout (END) -------
-
-
------ FUNCTION main (BEGIN) -----
- FILE: 'ram.c'
-    5: void main()
-    6: {
-    7: 	YC_System_Main();
-    8: }
-000FE2 A1A8              AJMP    YC_System_Main
------ FUNCTION main (END) -------
-
-
------ FUNCTION System_Hardware_init (BEGIN) -----
- FILE: 'sys.c'
-   39: static void System_Hardware_init()
-   40: {
-   41: 	KS_Initialize();
-   42: 	LED_all_shutdown();
-000FE4 1212B6            LCALL   KS_Initialize
-   43: }
-000FE7 80BA              SJMP    LED_all_shutdown
------ FUNCTION System_Hardware_init (END) -------
+000FCA 7B01              MOV     R3,#01H
+000FCC 7A81              MOV     R2,#081H
+000FCE 791C              MOV     R1,#01CH
+;----                  JMP     _gpioGetBit
+----- FUNCTION _GPIO_GetInputStatus (END) -------
 
 
------ FUNCTION LED_device_poweron (BEGIN) -----
- FILE: 'led.c'
-   13: void LED_device_poweron()
-   14: {
-   15: 	GPIO_Setout(BT_LED_GPIO,LED_ON);
-   16: }
-000FE9 D201              SETB    ?_GPIO_Setout?BIT
-000FEB 7F0F              MOV     R7,#0FH
-000FED 80E1              SJMP    _GPIO_Setout
------ FUNCTION LED_device_poweron (END) -------
+----- FUNCTION _gpioGetBit (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R5' ----
+000FD0 AD07              MOV     R5,AR7
+;---- Variable 'reg_base' assigned to Register 'R1/R2/R3' ----
+000FD2 E4                CLR     A
+000FD3 904EB4            MOV     DPTR,#queue
+000FD6 F0                MOVX    @DPTR,A
+;---- Variable 'group' assigned to Register 'R6' ----
+000FD7 FE                MOV     R6,A
+000FD8 EF                MOV     A,R7
+000FD9 5407              ANL     A,#07H
+000FDB F0                MOVX    @DPTR,A
+000FDC EF                MOV     A,R7
+000FDD 13                RRC     A
+000FDE 13                RRC     A
+000FDF 13                RRC     A
+000FE0 5403              ANL     A,#03H
+000FE2 FE                MOV     R6,A
+000FE3 F582              MOV     DPL,A
+000FE5 758300            MOV     DPH,#00H
+000FE8 1203CF            LCALL   ?C?CLDOPTR
+000FEB FD                MOV     R5,A
+000FEC 33                RLC     A
+000FED 95E0              SUBB    A,ACC
+000FEF FC                MOV     R4,A
+000FF0 904EB4            MOV     DPTR,#queue
+000FF3 E0                MOVX    A,@DPTR
+000FF4 FF                MOV     R7,A
+000FF5 7401              MOV     A,#01H
+000FF7 7E00              MOV     R6,#00H
+000FF9 A807              MOV     R0,AR7
+000FFB 08                INC     R0
+000FFC 8005              SJMP    ?C0035?GPIO
+000FFE         ?C0034?GPIO:
+000FFE C3                CLR     C
+000FFF 33                RLC     A
+001000 CE                XCH     A,R6
+001001 33                RLC     A
+001002 CE                XCH     A,R6
+001003         ?C0035?GPIO:
+001003 D8F9              DJNZ    R0,?C0034?GPIO
+001005 FF                MOV     R7,A
+001006 EE                MOV     A,R6
+001007 5C                ANL     A,R4
+001008 FE                MOV     R6,A
+001009 EF                MOV     A,R7
+00100A 5D                ANL     A,R5
+00100B 4E                ORL     A,R6
+00100C 24FF              ADD     A,#0FFH
+00100E 22                RET     
+----- FUNCTION _gpioGetBit (END) -------
 
 
 ----- FUNCTION YC_check_is_connected (BEGIN) -----
@@ -2141,674 +2152,1086 @@
    48: {
    49: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
    50: 	{
-000FEF 904CC7            MOV     DPTR,#g_variable+08H
-000FF2 E0                MOVX    A,@DPTR
-000FF3 B40403            CJNE    A,#04H,?C0007?BLUETOOTH
+00100F 904CC7            MOV     DPTR,#g_variable+08H
+001012 E0                MOVX    A,@DPTR
+001013 B40403            CJNE    A,#04H,?C0007?BLUETOOTH
    51: 		return 1;
    52: 	}
-000FF6 7F01              MOV     R7,#01H
-000FF8 22                RET     
+001016 7F01              MOV     R7,#01H
+001018 22                RET     
    53: 	return 0;
-000FF9         ?C0007?BLUETOOTH:
+001019         ?C0007?BLUETOOTH:
    54: }
-000FF9 7F00              MOV     R7,#00H
+001019 7F00              MOV     R7,#00H
    55: 
-000FFB 22                RET     
+00101B 22                RET     
 ----- FUNCTION YC_check_is_connected (END) -------
 
 
------ FUNCTION YC_check_need_reconnected (BEGIN) -----
- FILE: 'bluetooth.c'
-   56: byte YC_check_need_reconnected()
-   57: {
-   58: 	byte return_val = 0;
-   59: 	 if (g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE)
-000FFC E4                CLR     A
-000FFD 904EAD            MOV     DPTR,#return_val
-001000 F0                MOVX    @DPTR,A
-   60: 		return return_val;
-001001 904CC8            MOV     DPTR,#g_variable+09H
-001004 E0                MOVX    A,@DPTR
-001005 B40206            CJNE    A,#02H,?C0009?BLUETOOTH
-   61: 	if ((m_ui_state_map & 0x0008) == 0x0008)		
-001008 904EAD            MOV     DPTR,#return_val
-00100B E0                MOVX    A,@DPTR
-00100C FF                MOV     R7,A
-00100D 22                RET     
-00100E         ?C0009?BLUETOOTH:
-   62: 		return return_val;
-00100E 9047F5            MOV     DPTR,#m_ui_state_map+01H
-001011 E0                MOVX    A,@DPTR
-001012 30E306            JNB     ACC.3,?C0011?BLUETOOTH
-   63: 
-001015 904EAD            MOV     DPTR,#return_val
-001018 E0                MOVX    A,@DPTR
-001019 FF                MOV     R7,A
-00101A 22                RET     
-00101B         ?C0011?BLUETOOTH:
-   64: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_DISCONNECT)
-00101B 904CC7            MOV     DPTR,#g_variable+08H
-00101E E0                MOVX    A,@DPTR
-00101F 701A              JNZ     ?C0012?BLUETOOTH
-   65: 	{
-   66: 		if(g_variable.recon_delay == 0)
-001021 904CEF            MOV     DPTR,#g_variable+030H
-001024 E0                MOVX    A,@DPTR
-001025 701E              JNZ     ?C0015?BLUETOOTH
-   67: 		{
-   68: 			g_variable.recon_delay = 10;
-001027 740A              MOV     A,#0AH
-001029 F0                MOVX    @DPTR,A
-   69: 			if ((g_variable.recon_count == 0)
-00102A A3                INC     DPTR
-00102B E0                MOVX    A,@DPTR
-00102C 7017              JNZ     ?C0015?BLUETOOTH
-00102E 904DE1            MOV     DPTR,#power_on_flag
-001031 E0                MOVX    A,@DPTR
-001032 B40210            CJNE    A,#02H,?C0015?BLUETOOTH
-   70: 			&& (power_on_flag == 2))
-   71: 			{				
-   72: 				YC_key_action_handle(KEY_RECON_0);
-001035 7F01              MOV     R7,#01H
-001037 114B              ACALL   _YC_key_action_handle
-   73: 			}
-   74: 		}
-   75: 	}
-001039 800A              SJMP    ?C0015?BLUETOOTH
-00103B         ?C0012?BLUETOOTH:
-   76: 	else
-   77: 	{
-   78: 		g_variable.release_data = 0;
-00103B E4                CLR     A
-00103C 904CEB            MOV     DPTR,#g_variable+02CH
-00103F F0                MOVX    @DPTR,A
-   79: 		return_val = 1;
-001040 904EAD            MOV     DPTR,#return_val
-001043 04                INC     A
-001044 F0                MOVX    @DPTR,A
-   80: 	}
-001045         ?C0015?BLUETOOTH:
-   81: 	return return_val;
-001045 904EAD            MOV     DPTR,#return_val
-001048 E0                MOVX    A,@DPTR
-001049 FF                MOV     R7,A
-   82: }
-00104A 22                RET     
------ FUNCTION YC_check_need_reconnected (END) -------
-
-
------ FUNCTION _YC_key_action_handle (BEGIN) -----
- FILE: 'kb_process.c'
-    3: void YC_key_action_handle(byte key_num)
-    4: {
-00104B 904EAE            MOV     DPTR,#key_num
-00104E EF                MOV     A,R7
-00104F F0                MOVX    @DPTR,A
-    5: 	switch (key_num)
-    6: 	{
-001050 24FE              ADD     A,#0FEH
-001052 600F              JZ      ?C0004?KB_PROCESS
-001054 14                DEC     A
-001055 600C              JZ      ?C0004?KB_PROCESS
-001057 24FE              ADD     A,#0FEH
-001059 6035              JZ      ?C0006?KB_PROCESS
-00105B 24F8              ADD     A,#0F8H
-00105D 602C              JZ      ?C0005?KB_PROCESS
-00105F 240C              ADD     A,#0CH
-001061 705F              JNZ     ?C0010?KB_PROCESS
-    7: 	case KEY_RECON_0:
-    8: 	case KEY_RECON_1:
-    9: 	case KEY_RECON_2:
-   10: 		recon_index = key_num-1;
-001063         ?C0004?KB_PROCESS:
-   11: 		kscurrmult = 0x05;
-001063 904EAE            MOV     DPTR,#key_num
-001066 E0                MOVX    A,@DPTR
-001067 14                DEC     A
-001068 904DD1            MOV     DPTR,#recon_index
-00106B F0                MOVX    @DPTR,A
-   12: 		g_variable.recon_count = 5;
-00106C 904213            MOV     DPTR,#kscurrmult
-00106F 7405              MOV     A,#05H
-001071 F0                MOVX    @DPTR,A
-   13: 		IPC_TxControlCmd(IPC_CMD_DISCONNECT);
-001072 904CF0            MOV     DPTR,#g_variable+031H
-001075 F0                MOVX    @DPTR,A
-   14: 		Delay1ms(10);
-001076 7F04              MOV     R7,#04H
-001078 120744            LCALL   _IPC_TxControlCmd
-   15: 		IPC_TxControlCmd(IPC_CMD_SET_RECONNECT_INIT);
-00107B 7F0A              MOV     R7,#0AH
-00107D 120F44            LCALL   _Delay1ms
-   16: 		g_variable.key_action = KEY_NONE;
-001080 7F2A              MOV     R7,#02AH
-001082 120744            LCALL   _IPC_TxControlCmd
-   17: 
-001085 E4                CLR     A
-001086 904CED            MOV     DPTR,#g_variable+02EH
-001089 F0                MOVX    @DPTR,A
-   18: 		break;
-00108A 22                RET     
-   19: 	case KEY_STOP_DISCOVERY:
-00108B         ?C0005?KB_PROCESS:
-   20: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
-00108B 7F0E              MOV     R7,#0EH
-00108D 020744            LJMP    _IPC_TxControlCmd
-   21: 		break;
-   22: 	case KEY_DISCOVERY:
-001090         ?C0006?KB_PROCESS:
-   23: 		g_variable.recon_count = 0;
-001090 E4                CLR     A
-001091 904CF0            MOV     DPTR,#g_variable+031H
-001094 F0                MOVX    @DPTR,A
-   24: 		if (YC_disconnect_all_link() || YC_cancel_reconnect())
-001095 9111              ACALL   YC_disconnect_all_link
-001097 EF                MOV     A,R7
-001098 7005              JNZ     ?C0008?KB_PROCESS
-00109A D1CD              ACALL   YC_cancel_reconnect
-00109C EF                MOV     A,R7
-00109D 600F              JZ      ?C0007?KB_PROCESS
-00109F         ?C0008?KB_PROCESS:
-   25: 		{
-   26: 			g_variable.key_action = key_num;
-00109F 904EAE            MOV     DPTR,#key_num
-0010A2 E0                MOVX    A,@DPTR
-0010A3 904CED            MOV     DPTR,#g_variable+02EH
-0010A6 F0                MOVX    @DPTR,A
-   27: 			action_timeout = 3;
-0010A7 904DE2            MOV     DPTR,#action_timeout
-0010AA 7403              MOV     A,#03H
-0010AC F0                MOVX    @DPTR,A
-   28: 		}
-0010AD 22                RET     
-0010AE         ?C0007?KB_PROCESS:
-   29: 		else
-   30: 		{
-   31: 			YC_clear_reconnect_flag();
-0010AE 51A2              ACALL   YC_clear_reconnect_flag
-   32: 			m_lpm_mode = 0;
-0010B0 E4                CLR     A
-0010B1 904131            MOV     DPTR,#m_lpm_mode
-0010B4 F0                MOVX    @DPTR,A
-   33: 			YC_get_ble_ramdon_lap();
-0010B5 71AE              ACALL   YC_get_ble_ramdon_lap
-   34: 			IPC_TxControlCmd(IPC_CMD_START_ADV);
-0010B7 7F0D              MOV     R7,#0DH
-0010B9 120744            LCALL   _IPC_TxControlCmd
-   35: 			g_variable.key_action = KEY_NONE;
-0010BC E4                CLR     A
-0010BD 904CED            MOV     DPTR,#g_variable+02EH
-0010C0 F0                MOVX    @DPTR,A
-   36: 		}
-   37: 		break;
-0010C1 22                RET     
-   38: /*		
-   39: 	case KEY_DISCONNECT_ALL:
-   40: 		YC_disconnect_all_link();
-   41: 		g_variable.key_action = KEY_NONE;
-   42: 		break;
-   43: */		
-   44: 	default:
-0010C2         ?C0010?KB_PROCESS:
-   45: 		g_variable.key_action = KEY_NONE;
-0010C2 E4                CLR     A
-0010C3 904CED            MOV     DPTR,#g_variable+02EH
-0010C6 F0                MOVX    @DPTR,A
-   46: 		break;
-   47: 	}
-   48: }
-0010C7 22                RET     
------ FUNCTION _YC_key_action_handle (END) -------
+----- FUNCTION LED_timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  191: void LED_timer500ms()
+  192: {
+  193: 	if (power_on_flag != 2)
+  194: 		return;
+00101C 904DE1            MOV     DPTR,#power_on_flag
+00101F E0                MOVX    A,@DPTR
+001020 6402              XRL     A,#02H
+001022 702F              JNZ     ?C0027?SYS
+001024         ?C0026?SYS:
+  195: 	if (g_variable.pairing_timeout != 0) //bt  pairing
+001024 904CE9            MOV     DPTR,#g_variable+02AH
+001027 E0                MOVX    A,@DPTR
+001028 6004              JZ      ?C0028?SYS
+  196: 	{
+  197: 		GPIO_FlipOutBit(BT_LED_GPIO);
+00102A 7F0F              MOV     R7,#0FH
+00102C 91DC              ACALL   _GPIO_FlipOutBit
+  198: 		
+  199: 	}
+00102E         ?C0028?SYS:
+  200: 
+  201: 
+  202: 	
+  203: 	if (YC_check_is_connected())
+00102E 110F              ACALL   YC_check_is_connected
+001030 EF                MOV     A,R7
+001031 6020              JZ      ?C0027?SYS
+  204: 	{
+  205: 		/*
+  206: 		if(g_variable.sys_numlockled_on_timer)
+  207: 		{
+  208: 			g_variable.sys_numlockled_on_timer--;
+  209: 			GPIO_Setout(NUM_LOCK_LED_GPIO, LED_ON);
+  210: 			if(!g_variable.sys_numlockled_on_timer)
+  211: 				GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+  212: 		}
+  213: 		else 
+  214: 			GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+  215: 		*/	
+  216: 
+  217: 		if(g_variable.sys_capslockled_on_timer)
+001033 904CE7            MOV     DPTR,#g_variable+028H
+001036 E0                MOVX    A,@DPTR
+001037 6014              JZ      ?C0030?SYS
+  218: 		{
+  219: 			g_variable.sys_capslockled_on_timer--;
+001039 14                DEC     A
+00103A F0                MOVX    @DPTR,A
+  220: 			GPIO_Setout(CAPS_LED_GPIO, LED_ON);
+00103B D201              SETB    ?_GPIO_Setout?BIT
+00103D 7F1E              MOV     R7,#01EH
+00103F 1154              ACALL   _GPIO_Setout
+  221: 			if(!g_variable.sys_capslockled_on_timer)
+001041 904CE7            MOV     DPTR,#g_variable+028H
+001044 E0                MOVX    A,@DPTR
+001045 700C              JNZ     ?C0027?SYS
+  222: 				GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+001047 C201              CLR     ?_GPIO_Setout?BIT
+001049 7F1E              MOV     R7,#01EH
+00104B 8007              SJMP    _GPIO_Setout
+  223: 		}
+00104D         ?C0030?SYS:
+  224: 		else
+  225: 			GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+00104D C201              CLR     ?_GPIO_Setout?BIT
+00104F 7F1E              MOV     R7,#01EH
+001051 1154              ACALL   _GPIO_Setout
+  226: 	}	
+  227: }
+001053         ?C0027?SYS:
+001053 22                RET     
+----- FUNCTION LED_timer500ms (END) -------
 
 
------ FUNCTION YC_pairing_timerout_500ms (BEGIN) -----
- FILE: 'sys.c'
-  275: void YC_pairing_timerout_500ms()
-  276: {
-  277: //pairing timer
-  278: 	if (g_variable.pairing_timeout != 0)
-0010C8 904CE9            MOV     DPTR,#g_variable+02AH
-0010CB E0                MOVX    A,@DPTR
-0010CC 6016              JZ      ?C0047?SYS
-  279: 	{
-  280: 		g_variable.sleepTimer = 0;
-0010CE E4                CLR     A
-0010CF 904CE3            MOV     DPTR,#g_variable+024H
-0010D2 F0                MOVX    @DPTR,A
-0010D3 A3                INC     DPTR
-0010D4 F0                MOVX    @DPTR,A
-  281: 		g_variable.pairing_timeout--;
-0010D5 904CE9            MOV     DPTR,#g_variable+02AH
-0010D8 E0                MOVX    A,@DPTR
-0010D9 14                DEC     A
-0010DA F0                MOVX    @DPTR,A
-  282: 		if (g_variable.pairing_timeout == 0)
-0010DB E0                MOVX    A,@DPTR
-0010DC 7006              JNZ     ?C0047?SYS
-  283: 		{	
-  284: 			YC_key_action_handle(KEY_STOP_DISCOVERY);
-0010DE 7F0D              MOV     R7,#0DH
-0010E0 114B              ACALL   _YC_key_action_handle
-  285: 			System_long_sleep();
-0010E2 11E5              ACALL   System_long_sleep
-  286: 		}
-  287: 	}
-  288: }
-0010E4         ?C0047?SYS:
-0010E4 22                RET     
------ FUNCTION YC_pairing_timerout_500ms (END) -------
+----- FUNCTION _GPIO_Setout (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+001054 EF                MOV     A,R7
+001055 F4                CPL     A
+001056 600C              JZ      ?C0007?GPIO
+001058         ?C0006?GPIO:
+001058 7B01              MOV     R3,#01H
+00105A 7A80              MOV     R2,#080H
+00105C 7974              MOV     R1,#074H
+00105E A201              MOV     C,bit_val
+001060 9200              MOV     ?_gpioSetBit?BIT,C
+001062 B155              ACALL   _gpioSetBit
+001064         ?C0007?GPIO:
+001064 22                RET     
+----- FUNCTION _GPIO_Setout (END) -------
 
 
------ FUNCTION System_long_sleep (BEGIN) -----
- FILE: 'sys.c'
-   62: void System_long_sleep()
-   63: { 
-   64: 	m_reconnect_continue = 0;
-   65: 	IPC_TxControlCmd(IPC_CMD_ENTER_HIBERNATE);
-0010E5 E4                CLR     A
-0010E6 904D38            MOV     DPTR,#m_reconnect_continue
-0010E9 F0                MOVX    @DPTR,A
-   66: }
-0010EA 7F19              MOV     R7,#019H
-0010EC 020744            LJMP    _IPC_TxControlCmd
------ FUNCTION System_long_sleep (END) -------
+----- FUNCTION LED_handle (BEGIN) -----
+ FILE: 'led.c'
+   14: void LED_handle()
+   15: {
+   16: 	if (power_on_flag != 2)
+   17: 		return;
+001065 904DE1            MOV     DPTR,#power_on_flag
+001068 E0                MOVX    A,@DPTR
+001069 6402              XRL     A,#02H
+00106B 707C              JNZ     ?C0003?LED
+00106D         ?C0002?LED:
+   18: 
+   19: 	if(!g_variable.pairing_timeout)
+00106D 904CE9            MOV     DPTR,#g_variable+02AH
+001070 E0                MOVX    A,@DPTR
+001071 7076              JNZ     ?C0003?LED
+   20: 	{
+   21: 		//low battery LED process
+   22: 		if (g_variable.battery_status == BAT_STATUS_SHUT_DOWN)
+001073 904CD5            MOV     DPTR,#g_variable+016H
+001076 E0                MOVX    A,@DPTR
+001077 B40204            CJNE    A,#02H,?C0005?LED
+   23: 		{
+   24: 			System_long_sleep();
+00107A 515E              ACALL   System_long_sleep
+   25: 		}
+00107C 802E              SJMP    ?C0006?LED
+00107E         ?C0005?LED:
+   26: 		else if (g_variable.battery_status == BAT_STATUS_LOW)
+00107E 904CD5            MOV     DPTR,#g_variable+016H
+001081 E0                MOVX    A,@DPTR
+001082 B40114            CJNE    A,#01H,?C0007?LED
+   27: 		{
+   28: 			if (g_variable.battery_low_led_flash_flag == 0)
+001085 904CF7            MOV     DPTR,#g_variable+038H
+001088 E0                MOVX    A,@DPTR
+001089 7021              JNZ     ?C0006?LED
+   29: 			{
+   30: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
+00108B 904CE2            MOV     DPTR,#g_variable+023H
+00108E 7404              MOV     A,#04H
+001090 F0                MOVX    @DPTR,A
+   31: 				g_variable.battery_low_led_flash_flag = 1;
+001091 904CF7            MOV     DPTR,#g_variable+038H
+001094 7401              MOV     A,#01H
+001096 F0                MOVX    @DPTR,A
+   32: 			}
+   33: 		}
+001097 8013              SJMP    ?C0006?LED
+001099         ?C0007?LED:
+   34: 		else
+   35: 		{
+   36: 			if (g_variable.battery_low_led_flash_flag == 1)
+001099 904CF7            MOV     DPTR,#g_variable+038H
+00109C E0                MOVX    A,@DPTR
+00109D B4010C            CJNE    A,#01H,?C0006?LED
+   37: 			{
+   38: 				g_variable.battery_low_led_flash_flag = 0;
+0010A0 E4                CLR     A
+0010A1 F0                MOVX    @DPTR,A
+   39: 				g_variable.battery_low_led_flash_interval = 0;
+0010A2 904CE2            MOV     DPTR,#g_variable+023H
+0010A5 F0                MOVX    @DPTR,A
+   40: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+0010A6 C201              CLR     ?_GPIO_Setout?BIT
+0010A8 7F1D              MOV     R7,#01DH
+0010AA 1154              ACALL   _GPIO_Setout
+   41: 			}
+   42: 		}
+0010AC         ?C0006?LED:
+   43: 
+   44: 		//capslock  numlock  scrolllock LED process
+   45: 		if (YC_check_is_connected())
+0010AC 110F              ACALL   YC_check_is_connected
+0010AE EF                MOV     A,R7
+0010AF 6032              JZ      ?C0011?LED
+   46: 		{
+   47: 			if(m_caps_num_lock != m_caps_num_lock_last)
+0010B1 904DD9            MOV     DPTR,#m_caps_num_lock_last
+0010B4 E0                MOVX    A,@DPTR
+0010B5 FF                MOV     R7,A
+0010B6 904CB7            MOV     DPTR,#m_caps_num_lock
+0010B9 E0                MOVX    A,@DPTR
+0010BA 6F                XRL     A,R7
+0010BB 602C              JZ      ?C0003?LED
+   48: 			{
+   49: 				/*
+   50: 				if(m_caps_num_lock & KB_PC_KEYSEL_NUMLOCK)
+   51: 				{
+   52: 					g_variable.sys_numlockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
+   53: 					GPIO_Setout(NUM_LOCK_LED_GPIO, 0);
+   54: 				}
+   55: 				else
+   56: 				{
+   57: 					GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+   58: 					g_variable.sys_numlockled_on_timer = LED_ON;
+   59: 				}
+   60: 				*/
+   61: 				
+   62: 				if(m_caps_num_lock & KB_PC_KEYSEL_CAPSLOCK)
+0010BD E0                MOVX    A,@DPTR
+0010BE 30E10E            JNB     ACC.1,?C0013?LED
+   63: 				{
+   64: 					g_variable.sys_capslockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
+0010C1 904CE7            MOV     DPTR,#g_variable+028H
+0010C4 740C              MOV     A,#0CH
+0010C6 F0                MOVX    @DPTR,A
+   65: 					GPIO_Setout(CAPS_LED_GPIO, LED_ON);
+0010C7 D201              SETB    ?_GPIO_Setout?BIT
+0010C9 7F1E              MOV     R7,#01EH
+0010CB 1154              ACALL   _GPIO_Setout
+   66: 				}
+0010CD 800B              SJMP    ?C0014?LED
+0010CF         ?C0013?LED:
+   67: 				else 
+   68: 				{
+   69: 					GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+0010CF C201              CLR     ?_GPIO_Setout?BIT
+0010D1 7F1E              MOV     R7,#01EH
+0010D3 1154              ACALL   _GPIO_Setout
+   70: 					g_variable.sys_capslockled_on_timer = 0;
+0010D5 E4                CLR     A
+0010D6 904CE7            MOV     DPTR,#g_variable+028H
+0010D9 F0                MOVX    @DPTR,A
+   71: 				}	
+0010DA         ?C0014?LED:
+   72: 
+   73: 				//if(m_caps_num_lock & KB_PC_KEYSEL_SCROLLLOCK)
+   74: 				//	g_variable.sys_scrolllockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
+   75: 				//else 
+   76: 				//	g_variable.sys_scrolllockled_on_timer = 0;
+   77: 					
+   78: 				m_caps_num_lock_last = m_caps_num_lock;
+0010DA 904CB7            MOV     DPTR,#m_caps_num_lock
+0010DD E0                MOVX    A,@DPTR
+0010DE 904DD9            MOV     DPTR,#m_caps_num_lock_last
+0010E1 F0                MOVX    @DPTR,A
+   79: 			}
+   80: 		}
+0010E2 22                RET     
+0010E3         ?C0011?LED:
+   81: 		else
+   82: 		{
+   83: 			//GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+   84: 			GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+0010E3 C201              CLR     ?_GPIO_Setout?BIT
+0010E5 7F1E              MOV     R7,#01EH
+0010E7 1154              ACALL   _GPIO_Setout
+   85: 		}
+   86: 	}
+   87: 	else
+   88: 	{
+   89: 		//GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+   90: 	}
+   91: 
+   92: }
+0010E9         ?C0003?LED:
+0010E9 22                RET     
+----- FUNCTION LED_handle (END) -------
 
 
------ FUNCTION _kb_cb_event (BEGIN) -----
+----- FUNCTION kb_cb_Timer100ms (BEGIN) -----
  FILE: 'sys.c'
-   87: static void kb_cb_event(byte evt)
-   88: {
-;---- Variable 'evt' assigned to Register 'R7' ----
-   89: 	switch (evt) 
-   90: 	{
-0010EF EF                MOV     A,R7
-0010F0 24EC              ADD     A,#0ECH
-0010F2 607A              JZ      ?C0017?SYS
-0010F4 14                DEC     A
-0010F5 7002              JNZ     $ + 4H
-0010F7 21B9              AJMP    ?C0021?SYS
-0010F9 24EC              ADD     A,#0ECH
-0010FB 7002              JNZ     $ + 4H
-0010FD 21AD              AJMP    ?C0020?SYS
-0010FF 24F9              ADD     A,#0F9H
-001101 6066              JZ      ?C0015?SYS
-001103 24FD              ADD     A,#0FDH
-001105 600F              JZ      ?C0013?SYS
-001107 14                DEC     A
-001108 7002              JNZ     $ + 4H
-00110A 2191              AJMP    ?C0019?SYS
-00110C 24FD              ADD     A,#0FDH
-00110E 605B              JZ      ?C0016?SYS
-001110 2408              ADD     A,#08H
-001112 6002              JZ      $ + 4H
-001114 21F1              AJMP    ?C0025?SYS
-   91: 	case IPC_EVT_HIBERNATE_WAKE:
-   92: //		System_Hardware_init();
-   93: //		System_Software_init();
-   94: //		break;	
-   95: 	case IPC_EVT_RESET:
-001116         ?C0013?SYS:
-   96: 		System_Hardware_init();
-001116 120FE4            LCALL   System_Hardware_init
-   97: 		System_Software_init();
-001119 120D8B            LCALL   System_Software_init
-   98: 		IIC_Read(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD), (byte *)bd_key_record_list);
-00111C 7B01              MOV     R3,#01H
-00111E 7A4D              MOV     R2,#HIGH bd_key_record_list
-001120 79E4              MOV     R1,#LOW bd_key_record_list
-001122 7D1D              MOV     R5,#01DH
-001124 7C00              MOV     R4,#00H
-001126 7FD8              MOV     R7,#0D8H
-001128 7E3F              MOV     R6,#03FH
-00112A 31F2              ACALL   _IIC_Read
-   99: 		Delay1ms(10);
-00112C 7F0A              MOV     R7,#0AH
-00112E 120F44            LCALL   _Delay1ms
-  100: 		IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
-001131 7B01              MOV     R3,#01H
-001133 7A4C              MOV     R2,#HIGH g_variable+033H
-001135 79F2              MOV     R1,#LOW g_variable+033H
-001137 7D02              MOV     R5,#02H
-001139 7C00              MOV     R4,#00H
-00113B 7FF6              MOV     R7,#0F6H
-00113D 7E3F              MOV     R6,#03FH
-00113F 31F2              ACALL   _IIC_Read
-  101: 		if(g_variable.ble_ramdon_lap1 == 0xff && g_variable.ble_ramdon_lap2 == 0xff)
-001141 904CF2            MOV     DPTR,#g_variable+033H
-001144 E0                MOVX    A,@DPTR
-001145 B4FF1F            CJNE    A,#0FFH,?C0014?SYS
-001148 A3                INC     DPTR
+  384: static void kb_cb_Timer100ms()
+  385: {
+  386: 
+  387: 	if (g_variable.delay_enter_lpm_timer) 
+0010EA 904CEA            MOV     DPTR,#g_variable+02BH
+0010ED E0                MOVX    A,@DPTR
+0010EE 6002              JZ      ?C0060?SYS
+  388: 	{
+  389: 		g_variable.delay_enter_lpm_timer --;
+0010F0 14                DEC     A
+0010F1 F0                MOVX    @DPTR,A
+  390: 	}
+0010F2         ?C0060?SYS:
+  391: 
+  392: 	if(g_variable.recon_delay)
+0010F2 904CEF            MOV     DPTR,#g_variable+030H
+0010F5 E0                MOVX    A,@DPTR
+0010F6 6002              JZ      ?C0061?SYS
+  393: 		g_variable.recon_delay--;
+0010F8 14                DEC     A
+0010F9 F0                MOVX    @DPTR,A
+0010FA         ?C0061?SYS:
+  394: 
+  395: 	if(g_variable.one_key_press_wait_release_timer)
+0010FA 904CF8            MOV     DPTR,#g_variable+039H
+0010FD E0                MOVX    A,@DPTR
+0010FE 600A              JZ      ?C0062?SYS
+  396: 	{
+  397: 		g_variable.one_key_press_wait_release_timer--;
+001100 14                DEC     A
+001101 F0                MOVX    @DPTR,A
+  398: 		if(!g_variable.one_key_press_wait_release_timer)
+001102 E0                MOVX    A,@DPTR
+001103 7005              JNZ     ?C0062?SYS
+  399: 			g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+001105 904CF4            MOV     DPTR,#g_variable+035H
+001108 04                INC     A
+001109 F0                MOVX    @DPTR,A
+  400: 	}
+00110A         ?C0062?SYS:
+  401: 
+  402: 
+  403: 
+  404: 	if (g_variable.powerOn_timer != 0)
+00110A 904CE5            MOV     DPTR,#g_variable+026H
+00110D E0                MOVX    A,@DPTR
+00110E 6016              JZ      ?C0064?SYS
+  405: 	{	
+  406: 		g_variable.powerOn_timer--;
+001110 14                DEC     A
+001111 F0                MOVX    @DPTR,A
+  407: 		GPIO_Setout(BT_LED_GPIO,LED_ON);
+001112 D201              SETB    ?_GPIO_Setout?BIT
+001114 7F0F              MOV     R7,#0FH
+001116 1154              ACALL   _GPIO_Setout
+  408: 		if (!g_variable.powerOn_timer)
+001118 904CE5            MOV     DPTR,#g_variable+026H
+00111B E0                MOVX    A,@DPTR
+00111C 7031              JNZ     ?C0066?SYS
+  409: 		{
+  410: 			GPIO_Setout(BT_LED_GPIO,LED_OFF);
+00111E C201              CLR     ?_GPIO_Setout?BIT
+001120 7F0F              MOV     R7,#0FH
+001122 1154              ACALL   _GPIO_Setout
+  411: 		}
+  412: 	}
+001124 8029              SJMP    ?C0066?SYS
+001126         ?C0064?SYS:
+  413: 	else
+  414: 	if (g_variable.pairing_timeout == 0)  //  pairing
+001126 904CE9            MOV     DPTR,#g_variable+02AH
+001129 E0                MOVX    A,@DPTR
+00112A 7023              JNZ     ?C0066?SYS
+  415: 	{
+  416: 		if(g_variable.battery_low_led_flash_interval)
+00112C 904CE2            MOV     DPTR,#g_variable+023H
+00112F E0                MOVX    A,@DPTR
+001130 601D              JZ      ?C0066?SYS
+  417: 		{
+  418: 			g_variable.battery_low_led_flash_interval--;
+001132 14                DEC     A
+001133 F0                MOVX    @DPTR,A
+  419: 			if(g_variable.battery_low_led_flash_interval & 0x02)
+001134 E0                MOVX    A,@DPTR
+001135 30E108            JNB     ACC.1,?C0069?SYS
+  420: 			{
+  421: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_ON);
+001138 D201              SETB    ?_GPIO_Setout?BIT
+00113A 7F1D              MOV     R7,#01DH
+00113C 1154              ACALL   _GPIO_Setout
+  422: 			}
+00113E 8006              SJMP    ?C0070?SYS
+001140         ?C0069?SYS:
+  423: 			else
+  424: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);	
+001140 C201              CLR     ?_GPIO_Setout?BIT
+001142 7F1D              MOV     R7,#01DH
+001144 1154              ACALL   _GPIO_Setout
+001146         ?C0070?SYS:
+  425: 			if(!g_variable.battery_low_led_flash_interval)
+001146 904CE2            MOV     DPTR,#g_variable+023H
 001149 E0                MOVX    A,@DPTR
-00114A B4FF1A            CJNE    A,#0FFH,?C0014?SYS
-  102: 		{
-  103: 			g_variable.ble_ramdon_lap1 = m_adc3vValue;
-00114D 904C93            MOV     DPTR,#m_adc3vValue
-001150 E0                MOVX    A,@DPTR
-001151 A3                INC     DPTR
+00114A 7003              JNZ     ?C0066?SYS
+  426: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
+00114C 7404              MOV     A,#04H
+00114E F0                MOVX    @DPTR,A
+  427: 		}
+  428: 	}
+00114F         ?C0066?SYS:
+  429: 
+  430: 	if (delayChgInvTimer != 0)
+00114F 904DDE            MOV     DPTR,#delayChgInvTimer
 001152 E0                MOVX    A,@DPTR
-001153 904CF2            MOV     DPTR,#g_variable+033H
-001156 F0                MOVX    @DPTR,A
-  104: 			g_variable.ble_ramdon_lap2 = m_adc0vBase;
-001157 904C91            MOV     DPTR,#m_adc0vBase
-00115A E0                MOVX    A,@DPTR
-00115B A3                INC     DPTR
-00115C E0                MOVX    A,@DPTR
-00115D 904CF3            MOV     DPTR,#g_variable+034H
-001160 F0                MOVX    @DPTR,A
-  105: 			g_variable.update_eeprom_flag = 1;
-001161 904CBF            MOV     DPTR,#g_variable
-001164 7401              MOV     A,#01H
-001166 F0                MOVX    @DPTR,A
-  106: 		}
-001167         ?C0014?SYS:
-  107: 
-  108: 		YC_start_reconnect();
-001167 41AC              AJMP    YC_start_reconnect
-  109: 		break;
-  110: 	case IPC_EVT_WAKEUP:
-001169         ?C0015?SYS:
-  111: 		KS_Initialize();
-001169 41B6              AJMP    KS_Initialize
-  112: 		break;
-  113: 
-  114: // connection event
-  115: 	case IPC_EVT_RECONNECT_STANDY:
-00116B         ?C0016?SYS:
-  116: 		YC_load_record_list();
-00116B 0206C2            LJMP    YC_load_record_list
-  117: 		break;		
-  118: 
-  119: // BT 4.2 event
-  120: 	case IPC_EVT_LE_CONNECTED:
-00116E         ?C0017?SYS:
-  121: 		g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTING;
-00116E 904CC7            MOV     DPTR,#g_variable+08H
-001171 7403              MOV     A,#03H
-001173 F0                MOVX    @DPTR,A
-  122: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_INIT;
-001174 A3                INC     DPTR
-001175 7401              MOV     A,#01H
-001177 F0                MOVX    @DPTR,A
-  123: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
-001178 7F0E              MOV     R7,#0EH
-00117A 120744            LCALL   _IPC_TxControlCmd
-  124: 		if(!g_variable.powerOn_timer)
-00117D 904CE5            MOV     DPTR,#g_variable+026H
-001180 E0                MOVX    A,@DPTR
-001181 7002              JNZ     ?C0018?SYS
-  125: 			LED_device_poweroff();
-001183 B176              ACALL   LED_device_poweroff
-001185         ?C0018?SYS:
-  126: 		g_variable.pairing_timeout = 0;
-001185 E4                CLR     A
-001186 904CE9            MOV     DPTR,#g_variable+02AH
-001189 F0                MOVX    @DPTR,A
-  127: 		g_variable.sleepTimer = 0;
-00118A 904CE3            MOV     DPTR,#g_variable+024H
-00118D F0                MOVX    @DPTR,A
-00118E A3                INC     DPTR
-00118F F0                MOVX    @DPTR,A
-  128: 		break;
-001190 22                RET     
-  129: 	case IPC_EVT_LE_PROTOCOL_CONNECTED:
-001191         ?C0019?SYS:
-  130: 	    	g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTED;
-001191 904CC7            MOV     DPTR,#g_variable+08H
-001194 7404              MOV     A,#04H
-001196 F0                MOVX    @DPTR,A
-  131: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
-001197 E4                CLR     A
-001198 A3                INC     DPTR
-001199 F0                MOVX    @DPTR,A
-  132: 		YC_clear_reconnect_flag();
-00119A 51A2              ACALL   YC_clear_reconnect_flag
-  133: 		g_variable.release_data = 0;
-00119C E4                CLR     A
-00119D 904CEB            MOV     DPTR,#g_variable+02CH
-0011A0 F0                MOVX    @DPTR,A
-  134: 		m_lpm_mode = 1;
-0011A1 904131            MOV     DPTR,#m_lpm_mode
-0011A4 04                INC     A
-0011A5 F0                MOVX    @DPTR,A
-  135: 		g_variable.update_eeprom_flag = 3;
-0011A6 904CBF            MOV     DPTR,#g_variable
-0011A9 7403              MOV     A,#03H
-0011AB F0                MOVX    @DPTR,A
-  136: 		break;
-0011AC 22                RET     
-  137: 	case IPC_EVT_LE_ENC_INFO:
-0011AD         ?C0020?SYS:
-  138: 		YC_store_record_list(TYPE_BLE);
-0011AD 7F01              MOV     R7,#01H
-0011AF 1207FD            LCALL   _YC_store_record_list
-  139: 		g_variable.update_eeprom_flag = 3;
-0011B2 904CBF            MOV     DPTR,#g_variable
-0011B5 7403              MOV     A,#03H
-0011B7 F0                MOVX    @DPTR,A
-  140: 		break;
-0011B8 22                RET     
-  141: /*
-  142: 	case IPC_EVT_LE_PINCODE_REQ:
-  143: 		le_pin_code = 0;
-  144: 		le_pin_code_len = 0;
-  145: 		g_variable.ble_currentSubState =  CHANGE_TO_BLE_SUB_PINCODE;
-  146: 		g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTING;
-  147: 		break;
-  148: */		
-  149: 	case IPC_EVT_LE_DISCONNECTED:	
-0011B9         ?C0021?SYS:
-  150: 		g_variable.history_state = g_variable.ble_currentState ;
-0011B9 904CC7            MOV     DPTR,#g_variable+08H
-0011BC E0                MOVX    A,@DPTR
-0011BD 904CCB            MOV     DPTR,#g_variable+0CH
-0011C0 F0                MOVX    @DPTR,A
-  151: 		g_variable.ble_currentState = CHANGE_TO_BLE_DISCONNECT;
-0011C1 E4                CLR     A
-0011C2 904CC7            MOV     DPTR,#g_variable+08H
-0011C5 F0                MOVX    @DPTR,A
-  152: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
-0011C6 A3                INC     DPTR
-0011C7 F0                MOVX    @DPTR,A
-  153: 		g_variable.release_data = 1;
-0011C8 904CEB            MOV     DPTR,#g_variable+02CH
-0011CB 04                INC     A
-0011CC F0                MOVX    @DPTR,A
-  154: 		
-  155: 		if (g_variable.lockLpm == 1)
-0011CD A3                INC     DPTR
-0011CE E0                MOVX    A,@DPTR
-0011CF B40104            CJNE    A,#01H,?C0022?SYS
-  156: 		{
-  157: 			g_variable.lockLpm =0;
-0011D2 E4                CLR     A
-0011D3 F0                MOVX    @DPTR,A
-  158: 			System_long_sleep();
-0011D4 01E5              AJMP    System_long_sleep
-  159: 			break;
-  160: 		}
-0011D6         ?C0022?SYS:
-  161: 
-  162: 		if (g_variable.key_action != KEY_NONE)
-0011D6 904CED            MOV     DPTR,#g_variable+02EH
-0011D9 E0                MOVX    A,@DPTR
-0011DA FF                MOV     R7,A
-0011DB 6002              JZ      ?C0023?SYS
-  163: 		{
-  164: 			YC_key_action_handle(g_variable.key_action);
-0011DD 014B              AJMP    _YC_key_action_handle
-  165: 			break;
-  166: 		}
-0011DF         ?C0023?SYS:
-  167: 
-  168: 
-  169: 		if (g_variable.recon_count != 0)
-0011DF 904CF0            MOV     DPTR,#g_variable+031H
-0011E2 E0                MOVX    A,@DPTR
-0011E3 6003              JZ      ?C0024?SYS
-  170: 		{
-  171: 			YC_load_record_list();
-0011E5 0206C2            LJMP    YC_load_record_list
-  172: 			break;
-  173: 		}
-0011E8         ?C0024?SYS:
-  174: 
-  175: 		System_long_sleep();		
-0011E8 11E5              ACALL   System_long_sleep
-  176: 		g_variable.sleepTimer = 0;
-0011EA E4                CLR     A
-0011EB 904CE3            MOV     DPTR,#g_variable+024H
-0011EE F0                MOVX    @DPTR,A
-0011EF A3                INC     DPTR
-0011F0 F0                MOVX    @DPTR,A
-  177: 		break;
-  178: 	}
-  179: }
-0011F1         ?C0025?SYS:
-0011F1 22                RET     
------ FUNCTION _kb_cb_event (END) -------
+001153 6013              JZ      ?C0075?SYS
+  431: 	{
+  432: 		delayChgInvTimer--;
+001155 E0                MOVX    A,@DPTR
+001156 14                DEC     A
+001157 F0                MOVX    @DPTR,A
+  433: 		if (delayChgInvTimer == 0)
+001158 E0                MOVX    A,@DPTR
+001159 700D              JNZ     ?C0075?SYS
+  434: 		{
+  435: 		
+  436: 			if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+00115B 904CC7            MOV     DPTR,#g_variable+08H
+00115E E0                MOVX    A,@DPTR
+00115F B40406            CJNE    A,#04H,?C0075?SYS
+  437: 			{
+  438: 				kscurrmult = 0x0c;
+001162 904213            MOV     DPTR,#kscurrmult
+001165 740C              MOV     A,#0CH
+001167 F0                MOVX    @DPTR,A
+  439: 			}
+  440: 		}
+  441: 	}
+  442: }
+001168         ?C0075?SYS:
+001168 22                RET     
+----- FUNCTION kb_cb_Timer100ms (END) -------
 
 
------ FUNCTION _IIC_Read (BEGIN) -----
-0011F2 904E79            MOV     DPTR,#len
-0011F5 EC                MOV     A,R4
-0011F6 F0                MOVX    @DPTR,A
-0011F7 A3                INC     DPTR
-0011F8 ED                MOV     A,R5
-0011F9 F0                MOVX    @DPTR,A
-0011FA A3                INC     DPTR
-0011FB EB                MOV     A,R3
-0011FC F0                MOVX    @DPTR,A
-0011FD A3                INC     DPTR
-0011FE EA                MOV     A,R2
-0011FF F0                MOVX    @DPTR,A
-001200 A3                INC     DPTR
-001201 E9                MOV     A,R1
-001202 F0                MOVX    @DPTR,A
-;---- Variable 'addr' assigned to Register 'R6/R7' ----
-;---- Variable 'mem_src' assigned to Register 'R6/R7' ----
-001203 908098            MOV     DPTR,#08098H
-001206 7404              MOV     A,#04H
-001208 F0                MOVX    @DPTR,A
-001209 A3                INC     DPTR
-00120A E4                CLR     A
-00120B F0                MOVX    @DPTR,A
-00120C 900CAF            MOV     DPTR,#YC_IICDTbuf
-00120F 74A0              MOV     A,#0A0H
-001211 F0                MOVX    @DPTR,A
-001212 A3                INC     DPTR
-001213 EE                MOV     A,R6
-001214 F0                MOVX    @DPTR,A
-001215 A3                INC     DPTR
-001216 EF                MOV     A,R7
-001217 F0                MOVX    @DPTR,A
-001218 900CB2            MOV     DPTR,#YC_IICDTbuf+03H
-00121B 74A1              MOV     A,#0A1H
+----- FUNCTION YC_update_eeprom_data (BEGIN) -----
+ FILE: 'bluetooth.c'
+  134: void YC_update_eeprom_data()
+  135: {
+  136: 	if (g_variable.update_eeprom_flag)				//bt3.0  bt4.2 record information save
+  137: 	{
+001169 904CBF            MOV     DPTR,#g_variable
+00116C E0                MOVX    A,@DPTR
+00116D FF                MOV     R7,A
+00116E 603F              JZ      ?C0026?BLUETOOTH
+  138: 		if (g_variable.update_eeprom_flag != 3)
+  139: 			Delay1ms(200);
+001170 6403              XRL     A,#03H
+001172 6005              JZ      ?C0025?BLUETOOTH
+  140: 		GPIO_Setout(EEPROM_WP_GPIO,0);
+001174 7FC8              MOV     R7,#0C8H
+001176 120F84            LCALL   _Delay1ms
+001179         ?C0025?BLUETOOTH:
+  141: 		IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD) , (byte *)&bd_key_record_list);
+001179 C201              CLR     ?_GPIO_Setout?BIT
+00117B 7FFF              MOV     R7,#0FFH
+00117D 1154              ACALL   _GPIO_Setout
+  142: 		IIC_WriteBlock(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+00117F 7B01              MOV     R3,#01H
+001181 7A4D              MOV     R2,#HIGH bd_key_record_list
+001183 79E4              MOV     R1,#LOW bd_key_record_list
+001185 7D1D              MOV     R5,#01DH
+001187 7C00              MOV     R4,#00H
+001189 7FD8              MOV     R7,#0D8H
+00118B 7E3F              MOV     R6,#03FH
+00118D 31B0              ACALL   _IIC_WriteBlock
+  143: 		GPIO_Setout(EEPROM_WP_GPIO,1);
+00118F 7B01              MOV     R3,#01H
+001191 7A4C              MOV     R2,#HIGH g_variable+033H
+001193 79F2              MOV     R1,#LOW g_variable+033H
+001195 7D02              MOV     R5,#02H
+001197 7C00              MOV     R4,#00H
+001199 7FF6              MOV     R7,#0F6H
+00119B 7E3F              MOV     R6,#03FH
+00119D 31B0              ACALL   _IIC_WriteBlock
+  144: 		Delay1ms(10);
+00119F D201              SETB    ?_GPIO_Setout?BIT
+0011A1 7FFF              MOV     R7,#0FFH
+0011A3 1154              ACALL   _GPIO_Setout
+  145: 		g_variable.update_eeprom_flag = 0;
+0011A5 7F0A              MOV     R7,#0AH
+0011A7 120F84            LCALL   _Delay1ms
+  146: 	}
+0011AA E4                CLR     A
+0011AB 904CBF            MOV     DPTR,#g_variable
+0011AE F0                MOVX    @DPTR,A
+  147: }
+  148: 
+0011AF         ?C0026?BLUETOOTH:
+0011AF 22                RET     
+----- FUNCTION YC_update_eeprom_data (END) -------
+
+
+----- FUNCTION _IIC_WriteBlock (BEGIN) -----
+0011B0 904E3D            MOV     DPTR,#addr
+0011B3 EE                MOV     A,R6
+0011B4 F0                MOVX    @DPTR,A
+0011B5 A3                INC     DPTR
+0011B6 EF                MOV     A,R7
+0011B7 F0                MOVX    @DPTR,A
+0011B8 A3                INC     DPTR
+0011B9 EC                MOV     A,R4
+0011BA F0                MOVX    @DPTR,A
+0011BB A3                INC     DPTR
+0011BC ED                MOV     A,R5
+0011BD F0                MOVX    @DPTR,A
+0011BE A3                INC     DPTR
+0011BF EB                MOV     A,R3
+0011C0 F0                MOVX    @DPTR,A
+0011C1 A3                INC     DPTR
+0011C2 EA                MOV     A,R2
+0011C3 F0                MOVX    @DPTR,A
+0011C4 A3                INC     DPTR
+0011C5 E9                MOV     A,R1
+0011C6 F0                MOVX    @DPTR,A
+0011C7         ?C0007?IIC:
+0011C7 904E3F            MOV     DPTR,#len
+0011CA E0                MOVX    A,@DPTR
+0011CB 7002              JNZ     ?C0012?IIC
+0011CD A3                INC     DPTR
+0011CE E0                MOVX    A,@DPTR
+0011CF         ?C0012?IIC:
+0011CF 7002              JNZ     $ + 4H
+0011D1 415D              AJMP    ?C0011?IIC
+0011D3 904E3D            MOV     DPTR,#addr
+0011D6 E0                MOVX    A,@DPTR
+0011D7 FE                MOV     R6,A
+0011D8 A3                INC     DPTR
+0011D9 E0                MOVX    A,@DPTR
+0011DA FF                MOV     R7,A
+0011DB 440F              ORL     A,#0FH
+0011DD 2401              ADD     A,#01H
+0011DF FD                MOV     R5,A
+0011E0 E4                CLR     A
+0011E1 3E                ADDC    A,R6
+0011E2 FC                MOV     R4,A
+;---- Variable 'cris' assigned to Register 'R4/R5' ----
+0011E3 C3                CLR     C
+0011E4 ED                MOV     A,R5
+0011E5 9F                SUBB    A,R7
+0011E6 FF                MOV     R7,A
+0011E7 EC                MOV     A,R4
+0011E8 9E                SUBB    A,R6
+0011E9 FE                MOV     R6,A
+0011EA 904E44            MOV     DPTR,#curr_len
+0011ED F0                MOVX    @DPTR,A
+0011EE A3                INC     DPTR
+0011EF EF                MOV     A,R7
+0011F0 F0                MOVX    @DPTR,A
+0011F1 904E3F            MOV     DPTR,#len
+0011F4 E0                MOVX    A,@DPTR
+0011F5 FC                MOV     R4,A
+0011F6 A3                INC     DPTR
+0011F7 E0                MOVX    A,@DPTR
+0011F8 FD                MOV     R5,A
+0011F9 D3                SETB    C
+0011FA 9F                SUBB    A,R7
+0011FB EC                MOV     A,R4
+0011FC 9E                SUBB    A,R6
+0011FD 400A              JC      ?C0009?IIC
+0011FF 904E44            MOV     DPTR,#curr_len
+001202 E0                MOVX    A,@DPTR
+001203 FE                MOV     R6,A
+001204 A3                INC     DPTR
+001205 E0                MOVX    A,@DPTR
+001206 FF                MOV     R7,A
+001207 8004              SJMP    ?C0010?IIC
+001209         ?C0009?IIC:
+001209 AE04              MOV     R6,AR4
+00120B AF05              MOV     R7,AR5
+00120D         ?C0010?IIC:
+00120D 904E44            MOV     DPTR,#curr_len
+001210 EE                MOV     A,R6
+001211 F0                MOVX    @DPTR,A
+001212 FC                MOV     R4,A
+001213 A3                INC     DPTR
+001214 EF                MOV     A,R7
+001215 F0                MOVX    @DPTR,A
+001216 FD                MOV     R5,A
+001217 C3                CLR     C
+001218 904E40            MOV     DPTR,#len+01H
+00121B E0                MOVX    A,@DPTR
+00121C 9D                SUBB    A,R5
 00121D F0                MOVX    @DPTR,A
-00121E 7A0C              MOV     R2,#HIGH YC_IICDTbuf
-001220 79AF              MOV     R1,#LOW YC_IICDTbuf
-001222 7E0C              MOV     R6,#HIGH YC_IICDTbuf
-001224 7FAF              MOV     R7,#LOW YC_IICDTbuf
-001226 74AF              MOV     A,#LOW YC_IICDTbuf
-001228 FC                MOV     R4,A
-001229 740C              MOV     A,#HIGH YC_IICDTbuf
+00121E 904E3F            MOV     DPTR,#len
+001221 E0                MOVX    A,@DPTR
+001222 9C                SUBB    A,R4
+001223 F0                MOVX    @DPTR,A
+001224 904E3D            MOV     DPTR,#addr
+001227 E0                MOVX    A,@DPTR
+001228 FE                MOV     R6,A
+001229 A3                INC     DPTR
+00122A E0                MOVX    A,@DPTR
 00122B FF                MOV     R7,A
-00122C EC                MOV     A,R4
-00122D FE                MOV     R6,A
-00122E EF                MOV     A,R7
-00122F 90809A            MOV     DPTR,#0809AH
-001232 EE                MOV     A,R6
-001233 F0                MOVX    @DPTR,A
+00122C 904E41            MOV     DPTR,#pbuff
+00122F E0                MOVX    A,@DPTR
+001230 FB                MOV     R3,A
+001231 A3                INC     DPTR
+001232 E0                MOVX    A,@DPTR
+001233 FA                MOV     R2,A
 001234 A3                INC     DPTR
-001235 EF                MOV     A,R7
-001236 F0                MOVX    @DPTR,A
-001237 904E79            MOV     DPTR,#len
-00123A E0                MOVX    A,@DPTR
-00123B FC                MOV     R4,A
-00123C A3                INC     DPTR
-00123D E0                MOVX    A,@DPTR
-00123E FA                MOV     R2,A
-00123F EC                MOV     A,R4
-001240 FF                MOV     R7,A
-001241 EA                MOV     A,R2
+001235 E0                MOVX    A,@DPTR
+001236 F9                MOV     R1,A
+001237 F14B              ACALL   _IIC_write
+001239 7F0A              MOV     R7,#0AH
+00123B 120F84            LCALL   _Delay1ms
+00123E 904E44            MOV     DPTR,#curr_len
+001241 E0                MOVX    A,@DPTR
 001242 FE                MOV     R6,A
-001243 EF                MOV     A,R7
-001244 90809E            MOV     DPTR,#0809EH
-001247 EE                MOV     A,R6
-001248 F0                MOVX    @DPTR,A
-001249 A3                INC     DPTR
-00124A EF                MOV     A,R7
-00124B F0                MOVX    @DPTR,A
-00124C 7A0B              MOV     R2,#HIGH IIC_TempBuff
-00124E 7983              MOV     R1,#LOW IIC_TempBuff
-001250 7E0B              MOV     R6,#HIGH IIC_TempBuff
-001252 7F83              MOV     R7,#LOW IIC_TempBuff
-001254 7483              MOV     A,#LOW IIC_TempBuff
-001256 FC                MOV     R4,A
-001257 740B              MOV     A,#HIGH IIC_TempBuff
-001259 FF                MOV     R7,A
-00125A EC                MOV     A,R4
-00125B FE                MOV     R6,A
-00125C EF                MOV     A,R7
-00125D 90809C            MOV     DPTR,#0809CH
-001260 EE                MOV     A,R6
-001261 F0                MOVX    @DPTR,A
-001262 A3                INC     DPTR
-001263 EF                MOV     A,R7
-001264 F0                MOVX    @DPTR,A
-001265 908090            MOV     DPTR,#08090H
-001268 7402              MOV     A,#02H
-00126A F0                MOVX    @DPTR,A
-00126B 90809C            MOV     DPTR,#0809CH
-00126E A3                INC     DPTR
-00126F E0                MOVX    A,@DPTR
-001270 20E707            JB      ACC.7,?C0004?IIC
-001273 908090            MOV     DPTR,#08090H
-001276 E0                MOVX    A,@DPTR
-001277 4401              ORL     A,#01H
-001279 F0                MOVX    @DPTR,A
-00127A         ?C0004?IIC:
-00127A 908006            MOV     DPTR,#08006H
-00127D E0                MOVX    A,@DPTR
-00127E 4404              ORL     A,#04H
-001280 F0                MOVX    @DPTR,A
-001281 B17D              ACALL   IIcWaitDone
-001283 904E7B            MOV     DPTR,#pbuff
-001286 E0                MOVX    A,@DPTR
-001287 A3                INC     DPTR
-001288 E0                MOVX    A,@DPTR
-001289 FA                MOV     R2,A
-00128A A3                INC     DPTR
-00128B E0                MOVX    A,@DPTR
-00128C AE02              MOV     R6,AR2
-00128E FF                MOV     R7,A
-00128F 7B01              MOV     R3,#01H
-001291 7A0B              MOV     R2,#HIGH IIC_TempBuff
-001293 7983              MOV     R1,#LOW IIC_TempBuff
-001295 904E79            MOV     DPTR,#len
-001298 E0                MOVX    A,@DPTR
-001299 A3                INC     DPTR
-00129A E0                MOVX    A,@DPTR
-00129B 904E6E            MOV     DPTR,#?_xmemcpy?BYTE+05H
-00129E F0                MOVX    @DPTR,A
-00129F 02083D            LJMP    _xmemcpy
+001243 A3                INC     DPTR
+001244 E0                MOVX    A,@DPTR
+001245 FF                MOV     R7,A
+001246 904E42            MOV     DPTR,#pbuff+01H
+001249 EE                MOV     A,R6
+00124A 8FF0              MOV     B,R7
+00124C 12040E            LCALL   ?C?IILDX
+00124F 904E3E            MOV     DPTR,#addr+01H
+001252 E0                MOVX    A,@DPTR
+001253 2F                ADD     A,R7
+001254 F0                MOVX    @DPTR,A
+001255 904E3D            MOV     DPTR,#addr
+001258 E0                MOVX    A,@DPTR
+001259 3E                ADDC    A,R6
+00125A F0                MOVX    @DPTR,A
+00125B 21C7              AJMP    ?C0007?IIC
+00125D         ?C0011?IIC:
+00125D 22                RET     
+----- FUNCTION _IIC_WriteBlock (END) -------
+
+
+----- FUNCTION System_long_sleep (BEGIN) -----
+ FILE: 'sys.c'
+   62: void System_long_sleep()
+   63: { 
+   64: 	m_reconnect_continue = 0;
+   65: 	IPC_TxControlCmd(IPC_CMD_ENTER_HIBERNATE);
+00125E E4                CLR     A
+00125F 904D38            MOV     DPTR,#m_reconnect_continue
+001262 F0                MOVX    @DPTR,A
+   66: }
+001263 7F19              MOV     R7,#019H
+001265 020744            LJMP    _IPC_TxControlCmd
+----- FUNCTION System_long_sleep (END) -------
+
+
+----- FUNCTION _kb_cb_event (BEGIN) -----
+ FILE: 'sys.c'
+   87: static void kb_cb_event(byte evt)
+   88: {
+;---- Variable 'evt' assigned to Register 'R7' ----
+   89: 	switch (evt) 
+   90: 	{
+001268 EF                MOV     A,R7
+001269 24EC              ADD     A,#0ECH
+00126B 6079              JZ      ?C0017?SYS
+00126D 14                DEC     A
+00126E 7002              JNZ     $ + 4H
+001270 6135              AJMP    ?C0021?SYS
+001272 24EC              ADD     A,#0ECH
+001274 7002              JNZ     $ + 4H
+001276 6129              AJMP    ?C0020?SYS
+001278 24F9              ADD     A,#0F9H
+00127A 6065              JZ      ?C0015?SYS
+00127C 24FD              ADD     A,#0FDH
+00127E 600F              JZ      ?C0013?SYS
+001280 14                DEC     A
+001281 7002              JNZ     $ + 4H
+001283 610D              AJMP    ?C0019?SYS
+001285 24FD              ADD     A,#0FDH
+001287 605A              JZ      ?C0016?SYS
+001289 2408              ADD     A,#08H
+00128B 6002              JZ      $ + 4H
+00128D 616D              AJMP    ?C0025?SYS
+   91: 	case IPC_EVT_HIBERNATE_WAKE:
+   92: //		System_Hardware_init();
+   93: //		System_Software_init();
+   94: //		break;	
+   95: 	case IPC_EVT_RESET:
+00128F         ?C0013?SYS:
+   96: 		System_Hardware_init();
+00128F 911E              ACALL   System_Hardware_init
+   97: 		System_Software_init();
+001291 120DCB            LCALL   System_Software_init
+   98: 		IIC_Read(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD), (byte *)bd_key_record_list);
+001294 7B01              MOV     R3,#01H
+001296 7A4D              MOV     R2,#HIGH bd_key_record_list
+001298 79E4              MOV     R1,#LOW bd_key_record_list
+00129A 7D1D              MOV     R5,#01DH
+00129C 7C00              MOV     R4,#00H
+00129E 7FD8              MOV     R7,#0D8H
+0012A0 7E3F              MOV     R6,#03FH
+0012A2 716E              ACALL   _IIC_Read
+   99: 		Delay1ms(10);
+0012A4 7F0A              MOV     R7,#0AH
+0012A6 120F84            LCALL   _Delay1ms
+  100: 	#ifdef MULTISYSTEM_ENABLE	
+  101: 		IIC_Read(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+  102: 		Delay1ms(10);
+  103: 		if(g_variable.system_mode > OSMODE_IOS)
+  104: 		{
+  105: 			g_variable.system_mode = OSMODE_WINDOWS;
+  106: 			IIC_WriteBlock(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+  107: 		}
+  108: 	#endif	
+  109: 		IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+0012A9 7B01              MOV     R3,#01H
+0012AB 7A4C              MOV     R2,#HIGH g_variable+033H
+0012AD 79F2              MOV     R1,#LOW g_variable+033H
+0012AF 7D02              MOV     R5,#02H
+0012B1 7C00              MOV     R4,#00H
+0012B3 7FF6              MOV     R7,#0F6H
+0012B5 7E3F              MOV     R6,#03FH
+0012B7 716E              ACALL   _IIC_Read
+  110: 		if(g_variable.ble_ramdon_lap1 == 0xff && g_variable.ble_ramdon_lap2 == 0xff)
+0012B9 904CF2            MOV     DPTR,#g_variable+033H
+0012BC E0                MOVX    A,@DPTR
+0012BD B4FF1F            CJNE    A,#0FFH,?C0014?SYS
+0012C0 A3                INC     DPTR
+0012C1 E0                MOVX    A,@DPTR
+0012C2 B4FF1A            CJNE    A,#0FFH,?C0014?SYS
+  111: 		{
+  112: 			g_variable.ble_ramdon_lap1 = m_adc3vValue;
+0012C5 904C93            MOV     DPTR,#m_adc3vValue
+0012C8 E0                MOVX    A,@DPTR
+0012C9 A3                INC     DPTR
+0012CA E0                MOVX    A,@DPTR
+0012CB 904CF2            MOV     DPTR,#g_variable+033H
+0012CE F0                MOVX    @DPTR,A
+  113: 			g_variable.ble_ramdon_lap2 = m_adc0vBase;
+0012CF 904C91            MOV     DPTR,#m_adc0vBase
+0012D2 E0                MOVX    A,@DPTR
+0012D3 A3                INC     DPTR
+0012D4 E0                MOVX    A,@DPTR
+0012D5 904CF3            MOV     DPTR,#g_variable+034H
+0012D8 F0                MOVX    @DPTR,A
+  114: 			g_variable.update_eeprom_flag = 1;
+0012D9 904CBF            MOV     DPTR,#g_variable
+0012DC 7401              MOV     A,#01H
+0012DE F0                MOVX    @DPTR,A
+  115: 		}
+0012DF         ?C0014?SYS:
+  116: 			
+  117: 		YC_start_reconnect();
+0012DF 814C              AJMP    YC_start_reconnect
+  118: 		break;
+  119: 	case IPC_EVT_WAKEUP:
+0012E1         ?C0015?SYS:
+  120: 		KS_Initialize();
+0012E1 8123              AJMP    KS_Initialize
+  121: 		break;
+  122: 
+  123: // connection event
+  124: 	case IPC_EVT_RECONNECT_STANDY:
+0012E3         ?C0016?SYS:
+  125: 		YC_load_record_list();
+0012E3 0206C2            LJMP    YC_load_record_list
+  126: 		break;		
+  127: 
+  128: // BT 4.2 event
+  129: 	case IPC_EVT_LE_CONNECTED:
+0012E6         ?C0017?SYS:
+  130: 		g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTING;
+0012E6 904CC7            MOV     DPTR,#g_variable+08H
+0012E9 7403              MOV     A,#03H
+0012EB F0                MOVX    @DPTR,A
+  131: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_INIT;
+0012EC A3                INC     DPTR
+0012ED 7401              MOV     A,#01H
+0012EF F0                MOVX    @DPTR,A
+  132: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+0012F0 7F0E              MOV     R7,#0EH
+0012F2 120744            LCALL   _IPC_TxControlCmd
+  133: 		if(!g_variable.powerOn_timer)
+0012F5 904CE5            MOV     DPTR,#g_variable+026H
+0012F8 E0                MOVX    A,@DPTR
+0012F9 7006              JNZ     ?C0018?SYS
+  134: 			GPIO_Setout(BT_LED_GPIO,LED_OFF);
+0012FB C201              CLR     ?_GPIO_Setout?BIT
+0012FD 7F0F              MOV     R7,#0FH
+0012FF 1154              ACALL   _GPIO_Setout
+001301         ?C0018?SYS:
+  135: 		g_variable.pairing_timeout = 0;
+001301 E4                CLR     A
+001302 904CE9            MOV     DPTR,#g_variable+02AH
+001305 F0                MOVX    @DPTR,A
+  136: 		g_variable.sleepTimer = 0;
+001306 904CE3            MOV     DPTR,#g_variable+024H
+001309 F0                MOVX    @DPTR,A
+00130A A3                INC     DPTR
+00130B F0                MOVX    @DPTR,A
+  137: 		break;
+00130C 22                RET     
+  138: 	case IPC_EVT_LE_PROTOCOL_CONNECTED:
+00130D         ?C0019?SYS:
+  139: 	    	g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTED;
+00130D 904CC7            MOV     DPTR,#g_variable+08H
+001310 7404              MOV     A,#04H
+001312 F0                MOVX    @DPTR,A
+  140: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+001313 E4                CLR     A
+001314 A3                INC     DPTR
+001315 F0                MOVX    @DPTR,A
+  141: 		YC_clear_reconnect_flag();
+001316 91D2              ACALL   YC_clear_reconnect_flag
+  142: 		g_variable.release_data = 0;
+001318 E4                CLR     A
+001319 904CEB            MOV     DPTR,#g_variable+02CH
+00131C F0                MOVX    @DPTR,A
+  143: 		m_lpm_mode = 1;
+00131D 904131            MOV     DPTR,#m_lpm_mode
+001320 04                INC     A
+001321 F0                MOVX    @DPTR,A
+  144: 		g_variable.update_eeprom_flag = 3;
+001322 904CBF            MOV     DPTR,#g_variable
+001325 7403              MOV     A,#03H
+001327 F0                MOVX    @DPTR,A
+  145: 		break;
+001328 22                RET     
+  146: 	case IPC_EVT_LE_ENC_INFO:
+001329         ?C0020?SYS:
+  147: 		YC_store_record_list(TYPE_BLE);
+001329 7F01              MOV     R7,#01H
+00132B 1207FD            LCALL   _YC_store_record_list
+  148: 		g_variable.update_eeprom_flag = 3;
+00132E 904CBF            MOV     DPTR,#g_variable
+001331 7403              MOV     A,#03H
+001333 F0                MOVX    @DPTR,A
+  149: 		break;
+001334 22                RET     
+  150: /*
+  151: 	case IPC_EVT_LE_PINCODE_REQ:
+  152: 		le_pin_code = 0;
+  153: 		le_pin_code_len = 0;
+  154: 		g_variable.ble_currentSubState =  CHANGE_TO_BLE_SUB_PINCODE;
+  155: 		g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTING;
+  156: 		break;
+  157: */		
+  158: 	case IPC_EVT_LE_DISCONNECTED:	
+001335         ?C0021?SYS:
+  159: 		g_variable.history_state = g_variable.ble_currentState ;
+001335 904CC7            MOV     DPTR,#g_variable+08H
+001338 E0                MOVX    A,@DPTR
+001339 904CCB            MOV     DPTR,#g_variable+0CH
+00133C F0                MOVX    @DPTR,A
+  160: 		g_variable.ble_currentState = CHANGE_TO_BLE_DISCONNECT;
+00133D E4                CLR     A
+00133E 904CC7            MOV     DPTR,#g_variable+08H
+001341 F0                MOVX    @DPTR,A
+  161: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+001342 A3                INC     DPTR
+001343 F0                MOVX    @DPTR,A
+  162: 		g_variable.release_data = 1;
+001344 904CEB            MOV     DPTR,#g_variable+02CH
+001347 04                INC     A
+001348 F0                MOVX    @DPTR,A
+  163: 		
+  164: 		if (g_variable.lockLpm == 1)
+001349 A3                INC     DPTR
+00134A E0                MOVX    A,@DPTR
+00134B B40104            CJNE    A,#01H,?C0022?SYS
+  165: 		{
+  166: 			g_variable.lockLpm =0;
+00134E E4                CLR     A
+00134F F0                MOVX    @DPTR,A
+  167: 			System_long_sleep();
+001350 415E              AJMP    System_long_sleep
+  168: 			break;
+  169: 		}
+001352         ?C0022?SYS:
+  170: 
+  171: 		if (g_variable.key_action != KEY_NONE)
+001352 904CED            MOV     DPTR,#g_variable+02EH
+001355 E0                MOVX    A,@DPTR
+001356 FF                MOV     R7,A
+001357 6002              JZ      ?C0023?SYS
+  172: 		{
+  173: 			YC_key_action_handle(g_variable.key_action);
+001359 8154              AJMP    _YC_key_action_handle
+  174: 			break;
+  175: 		}
+00135B         ?C0023?SYS:
+  176: 
+  177: 
+  178: 		if (g_variable.recon_count != 0)
+00135B 904CF0            MOV     DPTR,#g_variable+031H
+00135E E0                MOVX    A,@DPTR
+00135F 6003              JZ      ?C0024?SYS
+  179: 		{
+  180: 			YC_load_record_list();
+001361 0206C2            LJMP    YC_load_record_list
+  181: 			break;
+  182: 		}
+001364         ?C0024?SYS:
+  183: 
+  184: 		System_long_sleep();		
+001364 515E              ACALL   System_long_sleep
+  185: 		g_variable.sleepTimer = 0;
+001366 E4                CLR     A
+001367 904CE3            MOV     DPTR,#g_variable+024H
+00136A F0                MOVX    @DPTR,A
+00136B A3                INC     DPTR
+00136C F0                MOVX    @DPTR,A
+  186: 		break;
+  187: 	}
+  188: }
+00136D         ?C0025?SYS:
+00136D 22                RET     
+----- FUNCTION _kb_cb_event (END) -------
+
+
+----- FUNCTION _IIC_Read (BEGIN) -----
+00136E 904E79            MOV     DPTR,#len
+001371 EC                MOV     A,R4
+001372 F0                MOVX    @DPTR,A
+001373 A3                INC     DPTR
+001374 ED                MOV     A,R5
+001375 F0                MOVX    @DPTR,A
+001376 A3                INC     DPTR
+001377 EB                MOV     A,R3
+001378 F0                MOVX    @DPTR,A
+001379 A3                INC     DPTR
+00137A EA                MOV     A,R2
+00137B F0                MOVX    @DPTR,A
+00137C A3                INC     DPTR
+00137D E9                MOV     A,R1
+00137E F0                MOVX    @DPTR,A
+;---- Variable 'addr' assigned to Register 'R6/R7' ----
+;---- Variable 'mem_src' assigned to Register 'R6/R7' ----
+00137F 908098            MOV     DPTR,#08098H
+001382 7404              MOV     A,#04H
+001384 F0                MOVX    @DPTR,A
+001385 A3                INC     DPTR
+001386 E4                CLR     A
+001387 F0                MOVX    @DPTR,A
+001388 900CAF            MOV     DPTR,#YC_IICDTbuf
+00138B 74A0              MOV     A,#0A0H
+00138D F0                MOVX    @DPTR,A
+00138E A3                INC     DPTR
+00138F EE                MOV     A,R6
+001390 F0                MOVX    @DPTR,A
+001391 A3                INC     DPTR
+001392 EF                MOV     A,R7
+001393 F0                MOVX    @DPTR,A
+001394 900CB2            MOV     DPTR,#YC_IICDTbuf+03H
+001397 74A1              MOV     A,#0A1H
+001399 F0                MOVX    @DPTR,A
+00139A 7A0C              MOV     R2,#HIGH YC_IICDTbuf
+00139C 79AF              MOV     R1,#LOW YC_IICDTbuf
+00139E 7E0C              MOV     R6,#HIGH YC_IICDTbuf
+0013A0 7FAF              MOV     R7,#LOW YC_IICDTbuf
+0013A2 74AF              MOV     A,#LOW YC_IICDTbuf
+0013A4 FC                MOV     R4,A
+0013A5 740C              MOV     A,#HIGH YC_IICDTbuf
+0013A7 FF                MOV     R7,A
+0013A8 EC                MOV     A,R4
+0013A9 FE                MOV     R6,A
+0013AA EF                MOV     A,R7
+0013AB 90809A            MOV     DPTR,#0809AH
+0013AE EE                MOV     A,R6
+0013AF F0                MOVX    @DPTR,A
+0013B0 A3                INC     DPTR
+0013B1 EF                MOV     A,R7
+0013B2 F0                MOVX    @DPTR,A
+0013B3 904E79            MOV     DPTR,#len
+0013B6 E0                MOVX    A,@DPTR
+0013B7 FC                MOV     R4,A
+0013B8 A3                INC     DPTR
+0013B9 E0                MOVX    A,@DPTR
+0013BA FA                MOV     R2,A
+0013BB EC                MOV     A,R4
+0013BC FF                MOV     R7,A
+0013BD EA                MOV     A,R2
+0013BE FE                MOV     R6,A
+0013BF EF                MOV     A,R7
+0013C0 90809E            MOV     DPTR,#0809EH
+0013C3 EE                MOV     A,R6
+0013C4 F0                MOVX    @DPTR,A
+0013C5 A3                INC     DPTR
+0013C6 EF                MOV     A,R7
+0013C7 F0                MOVX    @DPTR,A
+0013C8 7A0B              MOV     R2,#HIGH IIC_TempBuff
+0013CA 7983              MOV     R1,#LOW IIC_TempBuff
+0013CC 7E0B              MOV     R6,#HIGH IIC_TempBuff
+0013CE 7F83              MOV     R7,#LOW IIC_TempBuff
+0013D0 7483              MOV     A,#LOW IIC_TempBuff
+0013D2 FC                MOV     R4,A
+0013D3 740B              MOV     A,#HIGH IIC_TempBuff
+0013D5 FF                MOV     R7,A
+0013D6 EC                MOV     A,R4
+0013D7 FE                MOV     R6,A
+0013D8 EF                MOV     A,R7
+0013D9 90809C            MOV     DPTR,#0809CH
+0013DC EE                MOV     A,R6
+0013DD F0                MOVX    @DPTR,A
+0013DE A3                INC     DPTR
+0013DF EF                MOV     A,R7
+0013E0 F0                MOVX    @DPTR,A
+0013E1 908090            MOV     DPTR,#08090H
+0013E4 7402              MOV     A,#02H
+0013E6 F0                MOVX    @DPTR,A
+0013E7 90809C            MOV     DPTR,#0809CH
+0013EA A3                INC     DPTR
+0013EB E0                MOVX    A,@DPTR
+0013EC 20E707            JB      ACC.7,?C0004?IIC
+0013EF 908090            MOV     DPTR,#08090H
+0013F2 E0                MOVX    A,@DPTR
+0013F3 4401              ORL     A,#01H
+0013F5 F0                MOVX    @DPTR,A
+0013F6         ?C0004?IIC:
+0013F6 908006            MOV     DPTR,#08006H
+0013F9 E0                MOVX    A,@DPTR
+0013FA 4404              ORL     A,#04H
+0013FC F0                MOVX    @DPTR,A
+0013FD F143              ACALL   IIcWaitDone
+0013FF 904E7B            MOV     DPTR,#pbuff
+001402 E0                MOVX    A,@DPTR
+001403 A3                INC     DPTR
+001404 E0                MOVX    A,@DPTR
+001405 FA                MOV     R2,A
+001406 A3                INC     DPTR
+001407 E0                MOVX    A,@DPTR
+001408 AE02              MOV     R6,AR2
+00140A FF                MOV     R7,A
+00140B 7B01              MOV     R3,#01H
+00140D 7A0B              MOV     R2,#HIGH IIC_TempBuff
+00140F 7983              MOV     R1,#LOW IIC_TempBuff
+001411 904E79            MOV     DPTR,#len
+001414 E0                MOVX    A,@DPTR
+001415 A3                INC     DPTR
+001416 E0                MOVX    A,@DPTR
+001417 904E6E            MOV     DPTR,#?_xmemcpy?BYTE+05H
+00141A F0                MOVX    @DPTR,A
+00141B 02083D            LJMP    _xmemcpy
 ----- FUNCTION _IIC_Read (END) -------
 
 
------ FUNCTION YC_clear_reconnect_flag (BEGIN) -----
- FILE: 'bluetooth.c'
-   97: void YC_clear_reconnect_flag()  
-   98: {
-   99: 	g_variable.recon_count = 0;
-  100: 	ble_reconnect_flag = 0;
-0012A2 E4                CLR     A
-0012A3 904CF0            MOV     DPTR,#g_variable+031H
-0012A6 F0                MOVX    @DPTR,A
-  101: }
-0012A7 904DDD            MOV     DPTR,#ble_reconnect_flag
-0012AA F0                MOVX    @DPTR,A
-  102: 
-0012AB 22                RET     
------ FUNCTION YC_clear_reconnect_flag (END) -------
+----- FUNCTION System_Hardware_init (BEGIN) -----
+ FILE: 'sys.c'
+   39: static void System_Hardware_init()
+   40: {
+   41: 	KS_Initialize();
+   42: 	LED_all_shutdown();
+00141E 9123              ACALL   KS_Initialize
+   43: }
+001420 020F9C            LJMP    LED_all_shutdown
+----- FUNCTION System_Hardware_init (END) -------
+
+
+----- FUNCTION KS_Initialize (BEGIN) -----
+ FILE: 'keyscan.c'
+  231: void KS_Initialize()
+  232: {
+  233: 	REG_GPIO_SELECT(0) = 0;
+  234: 	REG_GPIO_SELECT(1) = 0;
+001423 908080            MOV     DPTR,#08080H
+001426 E4                CLR     A
+001427 F0                MOVX    @DPTR,A
+  235: 	REG_GPIO_SELECT(2) = 0;
+001428 A3                INC     DPTR
+001429 F0                MOVX    @DPTR,A
+  236: 	ksRawInitialize();
+00142A A3                INC     DPTR
+00142B F0                MOVX    @DPTR,A
+  237: 	ksColInitialize();
+00142C 91F8              ACALL   ksRawInitialize
+;----                  JMP     ksColInitialize
+  238: }
+----- FUNCTION KS_Initialize (END) -------
+
+
+----- FUNCTION ksColInitialize (BEGIN) -----
+ FILE: 'keyscan.c'
+  223: static void ksColInitialize()
+  224: {
+  225: 	byte i = 0;
+  226: 	for (i=0; col[i]!=0; i++) {
+00142E E4                CLR     A
+00142F 904EB1            MOV     DPTR,#i
+001432 F0                MOVX    @DPTR,A
+  227: 		GPIO_SetInput(col[i], 0);
+001433 F0                MOVX    @DPTR,A
+001434         ?C0032?KEYSCAN:
+001434 904EB1            MOV     DPTR,#i
+001437 E0                MOVX    A,@DPTR
+001438 90060C            MOV     DPTR,#col
+00143B 93                MOVC    A,@A+DPTR
+00143C FF                MOV     R7,A
+00143D 600C              JZ      ?C0035?KEYSCAN
+  228: 	}
+00143F C205              CLR     ?_GPIO_SetInput?BIT
+001441 B115              ACALL   _GPIO_SetInput
+  229: }
+001443 904EB1            MOV     DPTR,#i
+001446 E0                MOVX    A,@DPTR
+001447 04                INC     A
+001448 F0                MOVX    @DPTR,A
+001449 80E9              SJMP    ?C0032?KEYSCAN
+  230: 
+00144B         ?C0035?KEYSCAN:
+00144B 22                RET     
+----- FUNCTION ksColInitialize (END) -------
 
 
 ----- FUNCTION YC_start_reconnect (BEGIN) -----
@@ -2817,1051 +3240,1018 @@
   117: {
   118: 	power_on_flag = 2;
   119: 	YC_key_action_handle(KEY_RECON_0);
-0012AC 904DE1            MOV     DPTR,#power_on_flag
-0012AF 7402              MOV     A,#02H
-0012B1 F0                MOVX    @DPTR,A
+00144C 904DE1            MOV     DPTR,#power_on_flag
+00144F 7402              MOV     A,#02H
+001451 F0                MOVX    @DPTR,A
   120: }
-0012B2 7F01              MOV     R7,#01H
-0012B4 014B              AJMP    _YC_key_action_handle
+001452 7F01              MOV     R7,#01H
+;----                  JMP     _YC_key_action_handle
 ----- FUNCTION YC_start_reconnect (END) -------
 
 
------ FUNCTION KS_Initialize (BEGIN) -----
- FILE: 'keyscan.c'
-  205: void KS_Initialize()
-  206: {
-  207: 	REG_GPIO_SELECT(0) = 0;
-  208: 	REG_GPIO_SELECT(1) = 0;
-0012B6 908080            MOV     DPTR,#08080H
-0012B9 E4                CLR     A
-0012BA F0                MOVX    @DPTR,A
-  209: 	REG_GPIO_SELECT(2) = 0;
-0012BB A3                INC     DPTR
-0012BC F0                MOVX    @DPTR,A
-  210: 	ksRawInitialize();
-0012BD A3                INC     DPTR
-0012BE F0                MOVX    @DPTR,A
-  211: 	ksColInitialize();
-0012BF 51DF              ACALL   ksRawInitialize
-;----                  JMP     ksColInitialize
-  212: }
------ FUNCTION KS_Initialize (END) -------
+----- FUNCTION _YC_key_action_handle (BEGIN) -----
+ FILE: 'kb_process.c'
+    3: void YC_key_action_handle(byte key_num)
+    4: {
+001454 904EAE            MOV     DPTR,#key_num
+001457 EF                MOV     A,R7
+001458 F0                MOVX    @DPTR,A
+    5: 	switch (key_num)
+    6: 	{
+001459 24FE              ADD     A,#0FEH
+00145B 600F              JZ      ?C0004?KB_PROCESS
+00145D 14                DEC     A
+00145E 600C              JZ      ?C0004?KB_PROCESS
+001460 24FE              ADD     A,#0FEH
+001462 6035              JZ      ?C0006?KB_PROCESS
+001464 24F8              ADD     A,#0F8H
+001466 602C              JZ      ?C0005?KB_PROCESS
+001468 240C              ADD     A,#0CH
+00146A 7060              JNZ     ?C0010?KB_PROCESS
+    7: 	case KEY_RECON_0:
+    8: 	case KEY_RECON_1:
+    9: 	case KEY_RECON_2:
+   10: 		recon_index = key_num-1;
+00146C         ?C0004?KB_PROCESS:
+   11: 		kscurrmult = 0x05;
+00146C 904EAE            MOV     DPTR,#key_num
+00146F E0                MOVX    A,@DPTR
+001470 14                DEC     A
+001471 904DD1            MOV     DPTR,#recon_index
+001474 F0                MOVX    @DPTR,A
+   12: 		g_variable.recon_count = 5;
+001475 904213            MOV     DPTR,#kscurrmult
+001478 7405              MOV     A,#05H
+00147A F0                MOVX    @DPTR,A
+   13: 		IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+00147B 904CF0            MOV     DPTR,#g_variable+031H
+00147E F0                MOVX    @DPTR,A
+   14: 		Delay1ms(10);
+00147F 7F04              MOV     R7,#04H
+001481 120744            LCALL   _IPC_TxControlCmd
+   15: 		IPC_TxControlCmd(IPC_CMD_SET_RECONNECT_INIT);
+001484 7F0A              MOV     R7,#0AH
+001486 120F84            LCALL   _Delay1ms
+   16: 		g_variable.key_action = KEY_NONE;
+001489 7F2A              MOV     R7,#02AH
+00148B 120744            LCALL   _IPC_TxControlCmd
+   17: 
+00148E E4                CLR     A
+00148F 904CED            MOV     DPTR,#g_variable+02EH
+001492 F0                MOVX    @DPTR,A
+   18: 		break;
+001493 22                RET     
+   19: 	case KEY_STOP_DISCOVERY:
+001494         ?C0005?KB_PROCESS:
+   20: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+001494 7F0E              MOV     R7,#0EH
+001496 020744            LJMP    _IPC_TxControlCmd
+   21: 		break;
+   22: 	case KEY_DISCOVERY:
+001499         ?C0006?KB_PROCESS:
+   23: 		g_variable.recon_count = 0;
+001499 E4                CLR     A
+00149A 904CF0            MOV     DPTR,#g_variable+031H
+00149D F0                MOVX    @DPTR,A
+   24: 		if (YC_disconnect_all_link() || YC_cancel_reconnect())
+00149E D1CE              ACALL   YC_disconnect_all_link
+0014A0 EF                MOV     A,R7
+0014A1 7006              JNZ     ?C0008?KB_PROCESS
+0014A3 121836            LCALL   YC_cancel_reconnect
+0014A6 EF                MOV     A,R7
+0014A7 600F              JZ      ?C0007?KB_PROCESS
+0014A9         ?C0008?KB_PROCESS:
+   25: 		{
+   26: 			g_variable.key_action = key_num;
+0014A9 904EAE            MOV     DPTR,#key_num
+0014AC E0                MOVX    A,@DPTR
+0014AD 904CED            MOV     DPTR,#g_variable+02EH
+0014B0 F0                MOVX    @DPTR,A
+   27: 			action_timeout = 3;
+0014B1 904DE2            MOV     DPTR,#action_timeout
+0014B4 7403              MOV     A,#03H
+0014B6 F0                MOVX    @DPTR,A
+   28: 		}
+0014B7 22                RET     
+0014B8         ?C0007?KB_PROCESS:
+   29: 		else
+   30: 		{
+   31: 			YC_clear_reconnect_flag();
+0014B8 91D2              ACALL   YC_clear_reconnect_flag
+   32: 			m_lpm_mode = 0;
+0014BA E4                CLR     A
+0014BB 904131            MOV     DPTR,#m_lpm_mode
+0014BE F0                MOVX    @DPTR,A
+   33: 			YC_get_ble_ramdon_lap();
+0014BF D1E6              ACALL   YC_get_ble_ramdon_lap
+   34: 			IPC_TxControlCmd(IPC_CMD_START_ADV);
+0014C1 7F0D              MOV     R7,#0DH
+0014C3 120744            LCALL   _IPC_TxControlCmd
+   35: 			g_variable.key_action = KEY_NONE;
+0014C6 E4                CLR     A
+0014C7 904CED            MOV     DPTR,#g_variable+02EH
+0014CA F0                MOVX    @DPTR,A
+   36: 		}
+   37: 		break;
+0014CB 22                RET     
+   38: /*		
+   39: 	case KEY_DISCONNECT_ALL:
+   40: 		YC_disconnect_all_link();
+   41: 		g_variable.key_action = KEY_NONE;
+   42: 		break;
+   43: */		
+   44: 	default:
+0014CC         ?C0010?KB_PROCESS:
+   45: 		g_variable.key_action = KEY_NONE;
+0014CC E4                CLR     A
+0014CD 904CED            MOV     DPTR,#g_variable+02EH
+0014D0 F0                MOVX    @DPTR,A
+   46: 		break;
+   47: 	}
+   48: }
+0014D1 22                RET     
+----- FUNCTION _YC_key_action_handle (END) -------
 
 
------ FUNCTION ksColInitialize (BEGIN) -----
- FILE: 'keyscan.c'
-  197: static void ksColInitialize()
-  198: {
-  199: 	byte i = 0;
-  200: 	for (i=0; col[i]!=0; i++) {
-0012C1 E4                CLR     A
-0012C2 904EB1            MOV     DPTR,#i
-0012C5 F0                MOVX    @DPTR,A
-  201: 		GPIO_SetInput(col[i], 0);
-0012C6 F0                MOVX    @DPTR,A
-0012C7         ?C0032?KEYSCAN:
-0012C7 904EB1            MOV     DPTR,#i
-0012CA E0                MOVX    A,@DPTR
-0012CB 90060C            MOV     DPTR,#col
-0012CE 93                MOVC    A,@A+DPTR
-0012CF FF                MOV     R7,A
-0012D0 600C              JZ      ?C0035?KEYSCAN
-  202: 	}
-0012D2 C205              CLR     ?_GPIO_SetInput?BIT
-0012D4 51FC              ACALL   _GPIO_SetInput
-  203: }
-0012D6 904EB1            MOV     DPTR,#i
-0012D9 E0                MOVX    A,@DPTR
-0012DA 04                INC     A
-0012DB F0                MOVX    @DPTR,A
-0012DC 80E9              SJMP    ?C0032?KEYSCAN
-  204: 
-0012DE         ?C0035?KEYSCAN:
-0012DE 22                RET     
------ FUNCTION ksColInitialize (END) -------
+----- FUNCTION YC_clear_reconnect_flag (BEGIN) -----
+ FILE: 'bluetooth.c'
+   97: void YC_clear_reconnect_flag()  
+   98: {
+   99: 	g_variable.recon_count = 0;
+  100: 	ble_reconnect_flag = 0;
+0014D2 E4                CLR     A
+0014D3 904CF0            MOV     DPTR,#g_variable+031H
+0014D6 F0                MOVX    @DPTR,A
+  101: }
+0014D7 904DDD            MOV     DPTR,#ble_reconnect_flag
+0014DA F0                MOVX    @DPTR,A
+  102: 
+0014DB 22                RET     
+----- FUNCTION YC_clear_reconnect_flag (END) -------
+
+
+----- FUNCTION _GPIO_FlipOutBit (BEGIN) -----
+0014DC 904EB6            MOV     DPTR,#gpio_num
+0014DF EF                MOV     A,R7
+0014E0 F0                MOVX    @DPTR,A
+0014E1 7B01              MOV     R3,#01H
+0014E3 7A80              MOV     R2,#080H
+0014E5 7974              MOV     R1,#074H
+0014E7 120FD0            LCALL   _gpioGetBit
+0014EA 9209              MOV     st,C
+0014EC 904EB6            MOV     DPTR,#gpio_num
+0014EF E0                MOVX    A,@DPTR
+0014F0 FF                MOV     R7,A
+0014F1 A209              MOV     C,st
+0014F3 B3                CPL     C
+0014F4 9201              MOV     ?_GPIO_Setout?BIT,C
+0014F6 0154              AJMP    _GPIO_Setout
+----- FUNCTION _GPIO_FlipOutBit (END) -------
 
 
 ----- FUNCTION ksRawInitialize (BEGIN) -----
  FILE: 'keyscan.c'
-  188: static void ksRawInitialize()
-  189: {
-  190: 	byte i = 0;
-  191: 	
-0012DF E4                CLR     A
-0012E0 904EB0            MOV     DPTR,#i
-0012E3 F0                MOVX    @DPTR,A
-  192: 	for (i=0; i<8; i++) {
-0012E4 F0                MOVX    @DPTR,A
-0012E5         ?C0028?KEYSCAN:
-0012E5 904EB0            MOV     DPTR,#i
-0012E8 E0                MOVX    A,@DPTR
-0012E9 FF                MOV     R7,A
-0012EA C3                CLR     C
-0012EB 9408              SUBB    A,#08H
-0012ED 500C              JNC     ?C0031?KEYSCAN
-  193: 		GPIO_SetInput(i, 0);
-0012EF C205              CLR     ?_GPIO_SetInput?BIT
-0012F1 51FC              ACALL   _GPIO_SetInput
-  194: 	}
-0012F3 904EB0            MOV     DPTR,#i
-0012F6 E0                MOVX    A,@DPTR
-0012F7 04                INC     A
-0012F8 F0                MOVX    @DPTR,A
-0012F9 80EA              SJMP    ?C0028?KEYSCAN
-  195: }
-0012FB         ?C0031?KEYSCAN:
-0012FB 22                RET     
+  214: static void ksRawInitialize()
+  215: {
+  216: 	byte i = 0;
+  217: 	
+0014F8 E4                CLR     A
+0014F9 904EB0            MOV     DPTR,#i
+0014FC F0                MOVX    @DPTR,A
+  218: 	for (i=0; i<8; i++) {
+0014FD F0                MOVX    @DPTR,A
+0014FE         ?C0028?KEYSCAN:
+0014FE 904EB0            MOV     DPTR,#i
+001501 E0                MOVX    A,@DPTR
+001502 FF                MOV     R7,A
+001503 C3                CLR     C
+001504 9408              SUBB    A,#08H
+001506 500C              JNC     ?C0031?KEYSCAN
+  219: 		GPIO_SetInput(i, 0);
+001508 C205              CLR     ?_GPIO_SetInput?BIT
+00150A B115              ACALL   _GPIO_SetInput
+  220: 	}
+00150C 904EB0            MOV     DPTR,#i
+00150F E0                MOVX    A,@DPTR
+001510 04                INC     A
+001511 F0                MOVX    @DPTR,A
+001512 80EA              SJMP    ?C0028?KEYSCAN
+  221: }
+001514         ?C0031?KEYSCAN:
+001514 22                RET     
 ----- FUNCTION ksRawInitialize (END) -------
 
 
 ----- FUNCTION _GPIO_SetInput (BEGIN) -----
 ;---- Variable 'gpio_num' assigned to Register 'R4' ----
-0012FC AC07              MOV     R4,AR7
-0012FE EC                MOV     A,R4
-0012FF F4                CPL     A
-001300 6017              JZ      ?C0015?GPIO
-001302         ?C0014?GPIO:
-001302 AF04              MOV     R7,AR4
-001304 A205              MOV     C,st
-001306 9203              MOV     ?_GPIO_SetPd?BIT,C
-001308 712B              ACALL   _GPIO_SetPd
-00130A AF04              MOV     R7,AR4
-00130C A205              MOV     C,st
-00130E B3                CPL     C
-00130F 9202              MOV     ?_GPIO_SetPu?BIT,C
-001311 711A              ACALL   _GPIO_SetPu
-001313 AF04              MOV     R7,AR4
-001315 C204              CLR     ?_GPIO_Setoe?BIT
-001317 713C              ACALL   _GPIO_Setoe
-001319         ?C0015?GPIO:
-001319 22                RET     
+001515 AC07              MOV     R4,AR7
+001517 EC                MOV     A,R4
+001518 F4                CPL     A
+001519 6017              JZ      ?C0015?GPIO
+00151B         ?C0014?GPIO:
+00151B AF04              MOV     R7,AR4
+00151D A205              MOV     C,st
+00151F 9203              MOV     ?_GPIO_SetPd?BIT,C
+001521 B144              ACALL   _GPIO_SetPd
+001523 AF04              MOV     R7,AR4
+001525 A205              MOV     C,st
+001527 B3                CPL     C
+001528 9202              MOV     ?_GPIO_SetPu?BIT,C
+00152A B133              ACALL   _GPIO_SetPu
+00152C AF04              MOV     R7,AR4
+00152E C204              CLR     ?_GPIO_Setoe?BIT
+001530 B1B6              ACALL   _GPIO_Setoe
+001532         ?C0015?GPIO:
+001532 22                RET     
 ----- FUNCTION _GPIO_SetInput (END) -------
 
 
 ----- FUNCTION _GPIO_SetPu (BEGIN) -----
 ;---- Variable 'gpio_num' assigned to Register 'R7' ----
-00131A EF                MOV     A,R7
-00131B F4                CPL     A
-00131C 600C              JZ      ?C0009?GPIO
-00131E         ?C0008?GPIO:
-00131E 7B01              MOV     R3,#01H
-001320 7A80              MOV     R2,#080H
-001322 7978              MOV     R1,#078H
-001324 A202              MOV     C,bit_val
-001326 9200              MOV     ?_gpioSetBit?BIT,C
-001328 714D              ACALL   _gpioSetBit
-00132A         ?C0009?GPIO:
-00132A 22                RET     
+001533 EF                MOV     A,R7
+001534 F4                CPL     A
+001535 600C              JZ      ?C0009?GPIO
+001537         ?C0008?GPIO:
+001537 7B01              MOV     R3,#01H
+001539 7A80              MOV     R2,#080H
+00153B 7978              MOV     R1,#078H
+00153D A202              MOV     C,bit_val
+00153F 9200              MOV     ?_gpioSetBit?BIT,C
+001541 B155              ACALL   _gpioSetBit
+001543         ?C0009?GPIO:
+001543 22                RET     
 ----- FUNCTION _GPIO_SetPu (END) -------
 
 
 ----- FUNCTION _GPIO_SetPd (BEGIN) -----
 ;---- Variable 'gpio_num' assigned to Register 'R7' ----
-00132B EF                MOV     A,R7
-00132C F4                CPL     A
-00132D 600C              JZ      ?C0011?GPIO
-00132F         ?C0010?GPIO:
-00132F 7B01              MOV     R3,#01H
-001331 7A80              MOV     R2,#080H
-001333 797C              MOV     R1,#07CH
-001335 A203              MOV     C,bit_val
-001337 9200              MOV     ?_gpioSetBit?BIT,C
-001339 714D              ACALL   _gpioSetBit
-00133B         ?C0011?GPIO:
-00133B 22                RET     
+001544 EF                MOV     A,R7
+001545 F4                CPL     A
+001546 600C              JZ      ?C0011?GPIO
+001548         ?C0010?GPIO:
+001548 7B01              MOV     R3,#01H
+00154A 7A80              MOV     R2,#080H
+00154C 797C              MOV     R1,#07CH
+00154E A203              MOV     C,bit_val
+001550 9200              MOV     ?_gpioSetBit?BIT,C
+001552 B155              ACALL   _gpioSetBit
+001554         ?C0011?GPIO:
+001554 22                RET     
 ----- FUNCTION _GPIO_SetPd (END) -------
 
 
------ FUNCTION _GPIO_Setoe (BEGIN) -----
-;---- Variable 'gpio_num' assigned to Register 'R7' ----
-00133C EF                MOV     A,R7
-00133D F4                CPL     A
-00133E 600C              JZ      ?C0013?GPIO
-001340         ?C0012?GPIO:
-001340 7B01              MOV     R3,#01H
-001342 7A80              MOV     R2,#080H
-001344 7970              MOV     R1,#070H
-001346 A204              MOV     C,bit_val
-001348 9200              MOV     ?_gpioSetBit?BIT,C
-00134A 714D              ACALL   _gpioSetBit
-00134C         ?C0013?GPIO:
-00134C 22                RET     
------ FUNCTION _GPIO_Setoe (END) -------
-
-
 ----- FUNCTION _gpioSetBit (BEGIN) -----
-00134D 904EA4            MOV     DPTR,#reg_base
-001350 EB                MOV     A,R3
-001351 F0                MOVX    @DPTR,A
-001352 A3                INC     DPTR
-001353 EA                MOV     A,R2
-001354 F0                MOVX    @DPTR,A
-001355 A3                INC     DPTR
-001356 E9                MOV     A,R1
-001357 F0                MOVX    @DPTR,A
+001555 904EA4            MOV     DPTR,#reg_base
+001558 EB                MOV     A,R3
+001559 F0                MOVX    @DPTR,A
+00155A A3                INC     DPTR
+00155B EA                MOV     A,R2
+00155C F0                MOVX    @DPTR,A
+00155D A3                INC     DPTR
+00155E E9                MOV     A,R1
+00155F F0                MOVX    @DPTR,A
 ;---- Variable 'gpio_num' assigned to Register 'R7' ----
 ;---- Variable 'queue' assigned to Register 'R6' ----
-001358 E4                CLR     A
-001359 FE                MOV     R6,A
+001560 E4                CLR     A
+001561 FE                MOV     R6,A
 ;---- Variable 'group' assigned to Register 'R5' ----
-00135A FD                MOV     R5,A
-00135B EF                MOV     A,R7
-00135C 5407              ANL     A,#07H
-00135E FE                MOV     R6,A
-00135F EF                MOV     A,R7
-001360 13                RRC     A
-001361 13                RRC     A
-001362 13                RRC     A
-001363 5403              ANL     A,#03H
-001365 FD                MOV     R5,A
-001366 300022            JNB     bit_val,?C0001?GPIO
-001369 904EA4            MOV     DPTR,#reg_base
-00136C E0                MOVX    A,@DPTR
-00136D FB                MOV     R3,A
-00136E A3                INC     DPTR
-00136F E0                MOVX    A,@DPTR
-001370 FA                MOV     R2,A
-001371 A3                INC     DPTR
-001372 E0                MOVX    A,@DPTR
-001373 2D                ADD     A,R5
-001374 F9                MOV     R1,A
-001375 E4                CLR     A
-001376 3A                ADDC    A,R2
-001377 FA                MOV     R2,A
-001378 1203B6            LCALL   ?C?CLDPTR
-00137B FF                MOV     R7,A
-00137C 7401              MOV     A,#01H
-00137E A806              MOV     R0,AR6
-001380 08                INC     R0
-001381 8002              SJMP    ?C0031?GPIO
-001383         ?C0030?GPIO:
-001383 C3                CLR     C
-001384 33                RLC     A
-001385         ?C0031?GPIO:
-001385 D8FC              DJNZ    R0,?C0030?GPIO
-001387 4F                ORL     A,R7
-001388 0203FC            LJMP    ?C?CSTPTR
-00138B         ?C0001?GPIO:
-00138B 904EA4            MOV     DPTR,#reg_base
-00138E E0                MOVX    A,@DPTR
-00138F FB                MOV     R3,A
-001390 A3                INC     DPTR
-001391 E0                MOVX    A,@DPTR
-001392 FA                MOV     R2,A
-001393 A3                INC     DPTR
-001394 E0                MOVX    A,@DPTR
-001395 2D                ADD     A,R5
-001396 F9                MOV     R1,A
-001397 E4                CLR     A
-001398 3A                ADDC    A,R2
-001399 FA                MOV     R2,A
-00139A 1203B6            LCALL   ?C?CLDPTR
-00139D FF                MOV     R7,A
-00139E 7401              MOV     A,#01H
-0013A0 A806              MOV     R0,AR6
-0013A2 08                INC     R0
-0013A3 8002              SJMP    ?C0033?GPIO
-0013A5         ?C0032?GPIO:
-0013A5 C3                CLR     C
-0013A6 33                RLC     A
-0013A7         ?C0033?GPIO:
-0013A7 D8FC              DJNZ    R0,?C0032?GPIO
-0013A9 F4                CPL     A
-0013AA 5F                ANL     A,R7
-0013AB 0203FC            LJMP    ?C?CSTPTR
+001562 FD                MOV     R5,A
+001563 EF                MOV     A,R7
+001564 5407              ANL     A,#07H
+001566 FE                MOV     R6,A
+001567 EF                MOV     A,R7
+001568 13                RRC     A
+001569 13                RRC     A
+00156A 13                RRC     A
+00156B 5403              ANL     A,#03H
+00156D FD                MOV     R5,A
+00156E 300022            JNB     bit_val,?C0001?GPIO
+001571 904EA4            MOV     DPTR,#reg_base
+001574 E0                MOVX    A,@DPTR
+001575 FB                MOV     R3,A
+001576 A3                INC     DPTR
+001577 E0                MOVX    A,@DPTR
+001578 FA                MOV     R2,A
+001579 A3                INC     DPTR
+00157A E0                MOVX    A,@DPTR
+00157B 2D                ADD     A,R5
+00157C F9                MOV     R1,A
+00157D E4                CLR     A
+00157E 3A                ADDC    A,R2
+00157F FA                MOV     R2,A
+001580 1203B6            LCALL   ?C?CLDPTR
+001583 FF                MOV     R7,A
+001584 7401              MOV     A,#01H
+001586 A806              MOV     R0,AR6
+001588 08                INC     R0
+001589 8002              SJMP    ?C0031?GPIO
+00158B         ?C0030?GPIO:
+00158B C3                CLR     C
+00158C 33                RLC     A
+00158D         ?C0031?GPIO:
+00158D D8FC              DJNZ    R0,?C0030?GPIO
+00158F 4F                ORL     A,R7
+001590 0203FC            LJMP    ?C?CSTPTR
+001593         ?C0001?GPIO:
+001593 904EA4            MOV     DPTR,#reg_base
+001596 E0                MOVX    A,@DPTR
+001597 FB                MOV     R3,A
+001598 A3                INC     DPTR
+001599 E0                MOVX    A,@DPTR
+00159A FA                MOV     R2,A
+00159B A3                INC     DPTR
+00159C E0                MOVX    A,@DPTR
+00159D 2D                ADD     A,R5
+00159E F9                MOV     R1,A
+00159F E4                CLR     A
+0015A0 3A                ADDC    A,R2
+0015A1 FA                MOV     R2,A
+0015A2 1203B6            LCALL   ?C?CLDPTR
+0015A5 FF                MOV     R7,A
+0015A6 7401              MOV     A,#01H
+0015A8 A806              MOV     R0,AR6
+0015AA 08                INC     R0
+0015AB 8002              SJMP    ?C0033?GPIO
+0015AD         ?C0032?GPIO:
+0015AD C3                CLR     C
+0015AE 33                RLC     A
+0015AF         ?C0033?GPIO:
+0015AF D8FC              DJNZ    R0,?C0032?GPIO
+0015B1 F4                CPL     A
+0015B2 5F                ANL     A,R7
+0015B3 0203FC            LJMP    ?C?CSTPTR
 ----- FUNCTION _gpioSetBit (END) -------
 
 
------ FUNCTION YC_get_ble_ramdon_lap (BEGIN) -----
- FILE: 'bluetooth.c'
-  123: void YC_get_ble_ramdon_lap()		
-  124: {
-  125: 	IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
-  126: 	g_variable.ble_ramdon_lap1++;
-0013AE 7B01              MOV     R3,#01H
-0013B0 7A4C              MOV     R2,#HIGH g_variable+033H
-0013B2 79F2              MOV     R1,#LOW g_variable+033H
-0013B4 7D02              MOV     R5,#02H
-0013B6 7C00              MOV     R4,#00H
-0013B8 7FF6              MOV     R7,#0F6H
-0013BA 7E3F              MOV     R6,#03FH
-0013BC 31F2              ACALL   _IIC_Read
-  127: 	g_variable.ble_ramdon_lap2++;
-0013BE 904CF2            MOV     DPTR,#g_variable+033H
-0013C1 E0                MOVX    A,@DPTR
-0013C2 04                INC     A
-0013C3 F0                MOVX    @DPTR,A
-  128: 	m_le_lap[1] = g_variable.ble_ramdon_lap1;
-0013C4 A3                INC     DPTR
-0013C5 E0                MOVX    A,@DPTR
-0013C6 04                INC     A
-0013C7 F0                MOVX    @DPTR,A
-  129: 	m_le_lap[2] = g_variable.ble_ramdon_lap2;
-0013C8 904CF2            MOV     DPTR,#g_variable+033H
-0013CB E0                MOVX    A,@DPTR
-0013CC 9044FA            MOV     DPTR,#m_le_lap+01H
-0013CF F0                MOVX    @DPTR,A
-  130: }
-0013D0 904CF3            MOV     DPTR,#g_variable+034H
-0013D3 E0                MOVX    A,@DPTR
-0013D4 9044FB            MOV     DPTR,#m_le_lap+02H
-0013D7 F0                MOVX    @DPTR,A
-  131: 
-0013D8 22                RET     
------ FUNCTION YC_get_ble_ramdon_lap (END) -------
+----- FUNCTION _GPIO_Setoe (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+0015B6 EF                MOV     A,R7
+0015B7 F4                CPL     A
+0015B8 600C              JZ      ?C0013?GPIO
+0015BA         ?C0012?GPIO:
+0015BA 7B01              MOV     R3,#01H
+0015BC 7A80              MOV     R2,#080H
+0015BE 7970              MOV     R1,#070H
+0015C0 A204              MOV     C,bit_val
+0015C2 9200              MOV     ?_gpioSetBit?BIT,C
+0015C4 B155              ACALL   _gpioSetBit
+0015C6         ?C0013?GPIO:
+0015C6 22                RET     
+----- FUNCTION _GPIO_Setoe (END) -------
+
+
+----- FUNCTION YC_pairing_timerout_500ms (BEGIN) -----
+ FILE: 'sys.c'
+  279: void YC_pairing_timerout_500ms()
+  280: {
+  281: //pairing timer
+  282: 	if (g_variable.pairing_timeout != 0)
+0015C7 904CE9            MOV     DPTR,#g_variable+02AH
+0015CA E0                MOVX    A,@DPTR
+0015CB 6016              JZ      ?C0045?SYS
+  283: 	{
+  284: 		g_variable.sleepTimer = 0;
+0015CD E4                CLR     A
+0015CE 904CE3            MOV     DPTR,#g_variable+024H
+0015D1 F0                MOVX    @DPTR,A
+0015D2 A3                INC     DPTR
+0015D3 F0                MOVX    @DPTR,A
+  285: 		g_variable.pairing_timeout--;
+0015D4 904CE9            MOV     DPTR,#g_variable+02AH
+0015D7 E0                MOVX    A,@DPTR
+0015D8 14                DEC     A
+0015D9 F0                MOVX    @DPTR,A
+  286: 		if (g_variable.pairing_timeout == 0)
+0015DA E0                MOVX    A,@DPTR
+0015DB 7006              JNZ     ?C0045?SYS
+  287: 		{	
+  288: 			YC_key_action_handle(KEY_STOP_DISCOVERY);
+0015DD 7F0D              MOV     R7,#0DH
+0015DF 9154              ACALL   _YC_key_action_handle
+  289: 			System_long_sleep();
+0015E1 515E              ACALL   System_long_sleep
+  290: 		}
+  291: 	}
+  292: }
+0015E3         ?C0045?SYS:
+0015E3 22                RET     
+----- FUNCTION YC_pairing_timerout_500ms (END) -------
+
+
+----- FUNCTION kb_cb_Timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  362: static void kb_cb_Timer500ms()
+  363: {
+  364: 	LED_timer500ms();	
+  365: 
+0015E4 111C              ACALL   LED_timer500ms
+  366: 	g_variable.sleepTimer++;
+0015E6 904CE4            MOV     DPTR,#g_variable+025H
+0015E9 E0                MOVX    A,@DPTR
+0015EA 04                INC     A
+0015EB F0                MOVX    @DPTR,A
+0015EC 7006              JNZ     ?C0090?SYS
+0015EE 904CE3            MOV     DPTR,#g_variable+024H
+0015F1 E0                MOVX    A,@DPTR
+0015F2 04                INC     A
+0015F3 F0                MOVX    @DPTR,A
+0015F4         ?C0090?SYS:
+  367: 
+  368: 	YC_adc_check_timer500ms();
+0015F4 D1BC              ACALL   YC_adc_check_timer500ms
+  369: 	YC_connect_timeout_500ms();
+0015F6 B1FE              ACALL   YC_connect_timeout_500ms
+  370: 	kb_button_press_timer500ms();
+0015F8 D136              ACALL   kb_button_press_timer500ms
+  371: 	YC_wait_disconnect_timer500ms();
+0015FA F111              ACALL   YC_wait_disconnect_timer500ms
+  372: 	YC_pairing_timerout_500ms();
+0015FC 80C9              SJMP    YC_pairing_timerout_500ms
+  373: 	
+  374: /*	
+  375: 	if(g_variable.ble_currentSubState ==  CHANGE_TO_BLE_SUB_PINCODE)
+  376: 	{
+  377: 		g_variable.sleepTimer = 0;				//wait macOS enter pincode
+  378: 	}
+  379: */	
+  380: 	return;
+----- FUNCTION kb_cb_Timer500ms (END) -------
 
 
 ----- FUNCTION YC_connect_timeout_500ms (BEGIN) -----
  FILE: 'sys.c'
-  225: void YC_connect_timeout_500ms()
-  226: {
-  227: 	
-  228: //system long sleep timer
-  229: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
-0013D9 904CC7            MOV     DPTR,#g_variable+08H
-0013DC E0                MOVX    A,@DPTR
-0013DD B40415            CJNE    A,#04H,?C0035?SYS
-  230: 	{
-  231: 		if (g_variable.sleepTimer == STANDBY_TIMER_30MIN) 
-0013E0 904CE3            MOV     DPTR,#g_variable+024H
-0013E3 E0                MOVX    A,@DPTR
-0013E4 B40E29            CJNE    A,#0EH,?C0040?SYS
-0013E7 A3                INC     DPTR
-0013E8 E0                MOVX    A,@DPTR
-0013E9 B41024            CJNE    A,#010H,?C0040?SYS
-  232: 		{
-  233: 			YC_disconnect_all_link();
-0013EC 9111              ACALL   YC_disconnect_all_link
-  234: 			g_variable.lockLpm = 1;
-0013EE 904CEC            MOV     DPTR,#g_variable+02DH
-0013F1 7401              MOV     A,#01H
-0013F3 F0                MOVX    @DPTR,A
-  235: 		}
-  236: 	}
-0013F4 22                RET     
-0013F5         ?C0035?SYS:
-  237: 	else
-  238: 	{
-  239: 		if (g_variable.sleepTimer == RECONNECT_TIMER_10S)
-0013F5 904CE3            MOV     DPTR,#g_variable+024H
-0013F8 E0                MOVX    A,@DPTR
-0013F9 7004              JNZ     ?C0089?SYS
-0013FB A3                INC     DPTR
-0013FC E0                MOVX    A,@DPTR
-0013FD 6414              XRL     A,#014H
-0013FF         ?C0089?SYS:
-0013FF 700F              JNZ     ?C0040?SYS
-  240: 		{
-  241: 			if(ble_reconnect_flag)
-001401 904DDD            MOV     DPTR,#ble_reconnect_flag
-001404 E0                MOVX    A,@DPTR
-001405 6007              JZ      ?C0039?SYS
-  242: 			{
-  243: 				ble_reconnect_flag = 0;
-001407 E4                CLR     A
-001408 F0                MOVX    @DPTR,A
-  244: 				IPC_TxControlCmd(IPC_CMD_STOP_ADV);
-001409 7F0E              MOV     R7,#0EH
-00140B 120744            LCALL   _IPC_TxControlCmd
-  245: 			}
-00140E         ?C0039?SYS:
-  246: 			System_long_sleep();
-00140E 11E5              ACALL   System_long_sleep
-  247: 		}
-  248: 	}
-  249: }
-001410         ?C0040?SYS:
-001410 22                RET     
+  229: void YC_connect_timeout_500ms()
+  230: {
+  231: 	
+  232: //system long sleep timer
+  233: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+0015FE 904CC7            MOV     DPTR,#g_variable+08H
+001601 E0                MOVX    A,@DPTR
+001602 B40415            CJNE    A,#04H,?C0033?SYS
+  234: 	{
+  235: 		if (g_variable.sleepTimer == STANDBY_TIMER_30MIN) 
+001605 904CE3            MOV     DPTR,#g_variable+024H
+001608 E0                MOVX    A,@DPTR
+001609 B40E29            CJNE    A,#0EH,?C0038?SYS
+00160C A3                INC     DPTR
+00160D E0                MOVX    A,@DPTR
+00160E B41024            CJNE    A,#010H,?C0038?SYS
+  236: 		{
+  237: 			YC_disconnect_all_link();
+001611 D1CE              ACALL   YC_disconnect_all_link
+  238: 			g_variable.lockLpm = 1;
+001613 904CEC            MOV     DPTR,#g_variable+02DH
+001616 7401              MOV     A,#01H
+001618 F0                MOVX    @DPTR,A
+  239: 		}
+  240: 	}
+001619 22                RET     
+00161A         ?C0033?SYS:
+  241: 	else
+  242: 	{
+  243: 		if (g_variable.sleepTimer == RECONNECT_TIMER_10S)
+00161A 904CE3            MOV     DPTR,#g_variable+024H
+00161D E0                MOVX    A,@DPTR
+00161E 7004              JNZ     ?C0089?SYS
+001620 A3                INC     DPTR
+001621 E0                MOVX    A,@DPTR
+001622 6414              XRL     A,#014H
+001624         ?C0089?SYS:
+001624 700F              JNZ     ?C0038?SYS
+  244: 		{
+  245: 			if(ble_reconnect_flag)
+001626 904DDD            MOV     DPTR,#ble_reconnect_flag
+001629 E0                MOVX    A,@DPTR
+00162A 6007              JZ      ?C0037?SYS
+  246: 			{
+  247: 				ble_reconnect_flag = 0;
+00162C E4                CLR     A
+00162D F0                MOVX    @DPTR,A
+  248: 				IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+00162E 7F0E              MOV     R7,#0EH
+001630 120744            LCALL   _IPC_TxControlCmd
+  249: 			}
+001633         ?C0037?SYS:
+  250: 			System_long_sleep();
+001633 515E              ACALL   System_long_sleep
+  251: 		}
+  252: 	}
+  253: }
+001635         ?C0038?SYS:
+001635 22                RET     
 ----- FUNCTION YC_connect_timeout_500ms (END) -------
 
 
+----- FUNCTION kb_button_press_timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  294: void kb_button_press_timer500ms()
+  295: {
+  296: 	
+  297: //key status 
+  298: /*
+  299: 	if (g_variable.button_flag & KEY_FLAG_BTKEY_PRESS)		//press BT key
+  300: 	{
+  301: 		if (g_variable.button_timer[0] < 250)
+  302: 			g_variable.button_timer[0]++;
+  303: 		if (g_variable.button_timer[0] == 2)
+  304: 		{
+  305: 			YC_key_action_handle(KEY_DISCOVERY);
+  306: 		}
+  307: 	}
+  308: 	else
+  309: 		g_variable.button_timer[0] = 0;
+  310: */		
+  311: 	
+  312: 	if (g_variable.button_flag & KEY_FLAG_SAME_KEY_PRESS)
+001636 904CCE            MOV     DPTR,#g_variable+0FH
+001639 E0                MOVX    A,@DPTR
+00163A 30E13D            JNB     ACC.1,?C0046?SYS
+  313: 	{
+  314: 		if (g_variable.button_timer[1] < 250)
+00163D 904CD0            MOV     DPTR,#g_variable+011H
+001640 E0                MOVX    A,@DPTR
+001641 C3                CLR     C
+001642 94FA              SUBB    A,#0FAH
+001644 5003              JNC     ?C0047?SYS
+  315: 			g_variable.button_timer[1]++;
+001646 E0                MOVX    A,@DPTR
+001647 04                INC     A
+001648 F0                MOVX    @DPTR,A
+001649         ?C0047?SYS:
+  316: 		if (g_variable.button_timer[1] == 180)			// 500ms*180*3 = 4min30s
+001649 904CD0            MOV     DPTR,#g_variable+011H
+00164C E0                MOVX    A,@DPTR
+00164D 64B4              XRL     A,#0B4H
+00164F 702E              JNZ     ?C0052?SYS
+  317: 		{
+  318: 			press_long_time_flag++;
+001651 904DDC            MOV     DPTR,#press_long_time_flag
+001654 E0                MOVX    A,@DPTR
+001655 04                INC     A
+001656 F0                MOVX    @DPTR,A
+  319: 			if(press_long_time_flag <= 2)
+001657 E0                MOVX    A,@DPTR
+001658 D3                SETB    C
+001659 9402              SUBB    A,#02H
+00165B 5007              JNC     ?C0049?SYS
+  320: 			{
+  321: 				g_variable.button_timer[1] = 0;
+00165D E4                CLR     A
+00165E 904CD0            MOV     DPTR,#g_variable+011H
+001661 F0                MOVX    @DPTR,A
+  322: 			}
+001662 801B              SJMP    ?C0052?SYS
+001664         ?C0049?SYS:
+  323: 			else if(press_long_time_flag == 3)
+001664 904DDC            MOV     DPTR,#press_long_time_flag
+001667 E0                MOVX    A,@DPTR
+001668 B40314            CJNE    A,#03H,?C0052?SYS
+  324: 			{
+  325: 				long_press_flag = 1;
+00166B 904DD5            MOV     DPTR,#long_press_flag
+00166E 7401              MOV     A,#01H
+001670 F0                MOVX    @DPTR,A
+  326: 				g_variable.button_timer[1] = 0;
+001671 E4                CLR     A
+001672 904CD0            MOV     DPTR,#g_variable+011H
+001675 F0                MOVX    @DPTR,A
+  327: 				System_long_sleep();
+001676 515E              ACALL   System_long_sleep
+  328: 			}
+  329: 		}
+  330: 	}
+001678 8005              SJMP    ?C0052?SYS
+00167A         ?C0046?SYS:
+  331: 	else
+  332: 		press_long_time_flag = 0;
+00167A E4                CLR     A
+00167B 904DDC            MOV     DPTR,#press_long_time_flag
+00167E F0                MOVX    @DPTR,A
+00167F         ?C0052?SYS:
+  333: 
+  334: 
+  335: 	if (g_variable.button_flag & KEY_FLAG_FN_DEVICE_BUTTON)
+00167F 904CCE            MOV     DPTR,#g_variable+0FH
+001682 E0                MOVX    A,@DPTR
+001683 30E330            JNB     ACC.3,?C0053?SYS
+  336: 	{
+  337: 		g_variable.delay_enter_lpm_timer = 10;
+001686 904CEA            MOV     DPTR,#g_variable+02BH
+001689 740A              MOV     A,#0AH
+00168B F0                MOVX    @DPTR,A
+  338: 		if (g_variable.button_timer[3] < 250)
+00168C 904CD2            MOV     DPTR,#g_variable+013H
+00168F E0                MOVX    A,@DPTR
+001690 C3                CLR     C
+001691 94FA              SUBB    A,#0FAH
+001693 5003              JNC     ?C0054?SYS
+  339: 			g_variable.button_timer[3]++;
+001695 E0                MOVX    A,@DPTR
+001696 04                INC     A
+001697 F0                MOVX    @DPTR,A
+001698         ?C0054?SYS:
+  340: 		if (g_variable.button_timer[3] == 6)
+001698 904CD2            MOV     DPTR,#g_variable+013H
+00169B E0                MOVX    A,@DPTR
+00169C B4061C            CJNE    A,#06H,?C0058?SYS
+  341: 		{
+  342: 			//do discoverable
+  343: 			if(!g_variable.pairing_timeout)
+00169F 904CE9            MOV     DPTR,#g_variable+02AH
+0016A2 E0                MOVX    A,@DPTR
+0016A3 7016              JNZ     ?C0058?SYS
+  344: 			{
+  345: 				g_variable.pairing_timeout = BT_PAIRING_TIME_OUT_2MIN;
+0016A5 74F0              MOV     A,#0F0H
+0016A7 F0                MOVX    @DPTR,A
+  346: 				YC_key_action_handle(KEY_DISCOVERY);
+0016A8 7F05              MOV     R7,#05H
+0016AA 9154              ACALL   _YC_key_action_handle
+  347: 				LED_all_shutdown();
+0016AC 120F9C            LCALL   LED_all_shutdown
+  348: 				g_variable.release_data = 1;
+0016AF 904CEB            MOV     DPTR,#g_variable+02CH
+0016B2 7401              MOV     A,#01H
+0016B4 F0                MOVX    @DPTR,A
+  349: 			}
+  350: 		}
+  351: 	}
+0016B5 22                RET     
+0016B6         ?C0053?SYS:
+  352: 	else
+  353: 	{
+  354: 		g_variable.button_timer[3] = 0;
+0016B6 E4                CLR     A
+0016B7 904CD2            MOV     DPTR,#g_variable+013H
+0016BA F0                MOVX    @DPTR,A
+  355: 	}
+  356: 
+  357: 
+  358: }
+0016BB         ?C0058?SYS:
+0016BB 22                RET     
+----- FUNCTION kb_button_press_timer500ms (END) -------
+
+
+----- FUNCTION YC_adc_check_timer500ms (BEGIN) -----
+ FILE: 'adc.c'
+   74: void YC_adc_check_timer500ms()
+   75: {
+   76: #ifdef  ADC_ENABLE
+   77: 	// adc check timer	
+   78: 	if (g_variable.battery_check_interval)
+0016BC 904CD3            MOV     DPTR,#g_variable+014H
+0016BF E0                MOVX    A,@DPTR
+0016C0 600B              JZ      ?C0016?ADC
+   79: 	{
+   80: 		g_variable.battery_check_interval--;
+0016C2 14                DEC     A
+0016C3 F0                MOVX    @DPTR,A
+   81: 		if (g_variable.battery_check_interval == 0)
+0016C4 E0                MOVX    A,@DPTR
+0016C5 7006              JNZ     ?C0016?ADC
+   82: 		{
+   83: 			g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
+0016C7 7405              MOV     A,#05H
+0016C9 F0                MOVX    @DPTR,A
+   84: 			YC_adc_check();
+0016CA 121F73            LCALL   YC_adc_check
+   85: 		}
+   86: 	}
+   87: #endif	
+   88: }
+0016CD         ?C0016?ADC:
+0016CD 22                RET     
+----- FUNCTION YC_adc_check_timer500ms (END) -------
+
+
 ----- FUNCTION YC_disconnect_all_link (BEGIN) -----
  FILE: 'bluetooth.c'
   104: byte YC_disconnect_all_link()
   105: {
   106: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED 
   107: 		||g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTING)
-001411 904CC7            MOV     DPTR,#g_variable+08H
-001414 E0                MOVX    A,@DPTR
-001415 FF                MOV     R7,A
-001416 6404              XRL     A,#04H
-001418 6004              JZ      ?C0020?BLUETOOTH
-00141A EF                MOV     A,R7
-00141B B40308            CJNE    A,#03H,?C0019?BLUETOOTH
-00141E         ?C0020?BLUETOOTH:
+0016CE 904CC7            MOV     DPTR,#g_variable+08H
+0016D1 E0                MOVX    A,@DPTR
+0016D2 FF                MOV     R7,A
+0016D3 6404              XRL     A,#04H
+0016D5 6004              JZ      ?C0020?BLUETOOTH
+0016D7 EF                MOV     A,R7
+0016D8 B40308            CJNE    A,#03H,?C0019?BLUETOOTH
+0016DB         ?C0020?BLUETOOTH:
   108: 	{
   109: 		IPC_TxControlCmd(IPC_CMD_LE_DISCONNECT);
-00141E 7F11              MOV     R7,#011H
-001420 120744            LCALL   _IPC_TxControlCmd
+0016DB 7F11              MOV     R7,#011H
+0016DD 120744            LCALL   _IPC_TxControlCmd
   110: 		return 1;
-001423 7F01              MOV     R7,#01H
-001425 22                RET     
+0016E0 7F01              MOV     R7,#01H
+0016E2 22                RET     
   111: 	}
-001426         ?C0019?BLUETOOTH:
+0016E3         ?C0019?BLUETOOTH:
   112: 	return 0;
-001426 7F00              MOV     R7,#00H
+0016E3 7F00              MOV     R7,#00H
   113: }
-001428 22                RET     
+0016E5 22                RET     
 ----- FUNCTION YC_disconnect_all_link (END) -------
 
 
------ FUNCTION kb_cb_Timer500ms (BEGIN) -----
- FILE: 'sys.c'
-  358: static void kb_cb_Timer500ms()
-  359: {
-  360: 	LED_timer500ms();	
-  361: 
-001429 B10D              ACALL   LED_timer500ms
-  362: 	g_variable.sleepTimer++;
-00142B 904CE4            MOV     DPTR,#g_variable+025H
-00142E E0                MOVX    A,@DPTR
-00142F 04                INC     A
-001430 F0                MOVX    @DPTR,A
-001431 7006              JNZ     ?C0090?SYS
-001433 904CE3            MOV     DPTR,#g_variable+024H
-001436 E0                MOVX    A,@DPTR
-001437 04                INC     A
-001438 F0                MOVX    @DPTR,A
-001439         ?C0090?SYS:
-  363: 
-  364: 	YC_adc_check_timer500ms();
-001439 91C9              ACALL   YC_adc_check_timer500ms
-  365: 	YC_connect_timeout_500ms();
-00143B 71D9              ACALL   YC_connect_timeout_500ms
-  366: 	kb_button_press_timer500ms();
-00143D 9143              ACALL   kb_button_press_timer500ms
-  367: 	YC_wait_disconnect_timer500ms();
-00143F 91DB              ACALL   YC_wait_disconnect_timer500ms
-  368: 	YC_pairing_timerout_500ms();
-001441 01C8              AJMP    YC_pairing_timerout_500ms
-  369: 	
-  370: /*	
-  371: 	if(g_variable.ble_currentSubState ==  CHANGE_TO_BLE_SUB_PINCODE)
-  372: 	{
-  373: 		g_variable.sleepTimer = 0;				//wait macOS enter pincode
-  374: 	}
-  375: */	
-  376: 	return;
------ FUNCTION kb_cb_Timer500ms (END) -------
-
-
------ FUNCTION kb_button_press_timer500ms (BEGIN) -----
- FILE: 'sys.c'
-  290: void kb_button_press_timer500ms()
-  291: {
-  292: 	
-  293: //key status 
-  294: /*
-  295: 	if (g_variable.button_flag & KEY_FLAG_BTKEY_PRESS)		//press BT key
-  296: 	{
-  297: 		if (g_variable.button_timer[0] < 250)
-  298: 			g_variable.button_timer[0]++;
-  299: 		if (g_variable.button_timer[0] == 2)
-  300: 		{
-  301: 			YC_key_action_handle(KEY_DISCOVERY);
-  302: 		}
-  303: 	}
-  304: 	else
-  305: 		g_variable.button_timer[0] = 0;
-  306: */		
-  307: 	
-  308: 	if (g_variable.button_flag & KEY_FLAG_SAME_KEY_PRESS)
-001443 904CCE            MOV     DPTR,#g_variable+0FH
-001446 E0                MOVX    A,@DPTR
-001447 30E13D            JNB     ACC.1,?C0048?SYS
-  309: 	{
-  310: 		if (g_variable.button_timer[1] < 250)
-00144A 904CD0            MOV     DPTR,#g_variable+011H
-00144D E0                MOVX    A,@DPTR
-00144E C3                CLR     C
-00144F 94FA              SUBB    A,#0FAH
-001451 5003              JNC     ?C0049?SYS
-  311: 			g_variable.button_timer[1]++;
-001453 E0                MOVX    A,@DPTR
-001454 04                INC     A
-001455 F0                MOVX    @DPTR,A
-001456         ?C0049?SYS:
-  312: 		if (g_variable.button_timer[1] == 180)			// 500ms*180*3 = 4min30s
-001456 904CD0            MOV     DPTR,#g_variable+011H
-001459 E0                MOVX    A,@DPTR
-00145A 64B4              XRL     A,#0B4H
-00145C 702E              JNZ     ?C0054?SYS
-  313: 		{
-  314: 			press_long_time_flag++;
-00145E 904DDC            MOV     DPTR,#press_long_time_flag
-001461 E0                MOVX    A,@DPTR
-001462 04                INC     A
-001463 F0                MOVX    @DPTR,A
-  315: 			if(press_long_time_flag <= 2)
-001464 E0                MOVX    A,@DPTR
-001465 D3                SETB    C
-001466 9402              SUBB    A,#02H
-001468 5007              JNC     ?C0051?SYS
-  316: 			{
-  317: 				g_variable.button_timer[1] = 0;
-00146A E4                CLR     A
-00146B 904CD0            MOV     DPTR,#g_variable+011H
-00146E F0                MOVX    @DPTR,A
-  318: 			}
-00146F 801B              SJMP    ?C0054?SYS
-001471         ?C0051?SYS:
-  319: 			else if(press_long_time_flag == 3)
-001471 904DDC            MOV     DPTR,#press_long_time_flag
-001474 E0                MOVX    A,@DPTR
-001475 B40314            CJNE    A,#03H,?C0054?SYS
-  320: 			{
-  321: 				long_press_flag = 1;
-001478 904DD5            MOV     DPTR,#long_press_flag
-00147B 7401              MOV     A,#01H
-00147D F0                MOVX    @DPTR,A
-  322: 				g_variable.button_timer[1] = 0;
-00147E E4                CLR     A
-00147F 904CD0            MOV     DPTR,#g_variable+011H
-001482 F0                MOVX    @DPTR,A
-  323: 				System_long_sleep();
-001483 11E5              ACALL   System_long_sleep
-  324: 			}
-  325: 		}
-  326: 	}
-001485 8005              SJMP    ?C0054?SYS
-001487         ?C0048?SYS:
-  327: 	else
-  328: 		press_long_time_flag = 0;
-001487 E4                CLR     A
-001488 904DDC            MOV     DPTR,#press_long_time_flag
-00148B F0                MOVX    @DPTR,A
-00148C         ?C0054?SYS:
-  329: 
-  330: 
-  331: 	if (g_variable.button_flag & KEY_FLAG_FN_DEVICE_BUTTON)
-00148C 904CCE            MOV     DPTR,#g_variable+0FH
-00148F E0                MOVX    A,@DPTR
-001490 30E330            JNB     ACC.3,?C0055?SYS
-  332: 	{
-  333: 		g_variable.delay_enter_lpm_timer = 10;
-001493 904CEA            MOV     DPTR,#g_variable+02BH
-001496 740A              MOV     A,#0AH
-001498 F0                MOVX    @DPTR,A
-  334: 		if (g_variable.button_timer[3] < 250)
-001499 904CD2            MOV     DPTR,#g_variable+013H
-00149C E0                MOVX    A,@DPTR
-00149D C3                CLR     C
-00149E 94FA              SUBB    A,#0FAH
-0014A0 5003              JNC     ?C0056?SYS
-  335: 			g_variable.button_timer[3]++;
-0014A2 E0                MOVX    A,@DPTR
-0014A3 04                INC     A
-0014A4 F0                MOVX    @DPTR,A
-0014A5         ?C0056?SYS:
-  336: 		if (g_variable.button_timer[3] == 6)
-0014A5 904CD2            MOV     DPTR,#g_variable+013H
-0014A8 E0                MOVX    A,@DPTR
-0014A9 B4061C            CJNE    A,#06H,?C0060?SYS
-  337: 		{
-  338: 			//do discoverable
-  339: 			if(!g_variable.pairing_timeout)
-0014AC 904CE9            MOV     DPTR,#g_variable+02AH
-0014AF E0                MOVX    A,@DPTR
-0014B0 7016              JNZ     ?C0060?SYS
-  340: 			{
-  341: 				g_variable.pairing_timeout = BT_PAIRING_TIME_OUT_2MIN;
-0014B2 74F0              MOV     A,#0F0H
-0014B4 F0                MOVX    @DPTR,A
-  342: 				YC_key_action_handle(KEY_DISCOVERY);
-0014B5 7F05              MOV     R7,#05H
-0014B7 114B              ACALL   _YC_key_action_handle
-  343: 				LED_all_shutdown();
-0014B9 120FA3            LCALL   LED_all_shutdown
-  344: 				g_variable.release_data = 1;
-0014BC 904CEB            MOV     DPTR,#g_variable+02CH
-0014BF 7401              MOV     A,#01H
-0014C1 F0                MOVX    @DPTR,A
-  345: 			}
-  346: 		}
-  347: 	}
-0014C2 22                RET     
-0014C3         ?C0055?SYS:
-  348: 	else
-  349: 	{
-  350: 		g_variable.button_timer[3] = 0;
-0014C3 E4                CLR     A
-0014C4 904CD2            MOV     DPTR,#g_variable+013H
-0014C7 F0                MOVX    @DPTR,A
-  351: 	}
-  352: 
-  353: 
-  354: }
-0014C8         ?C0060?SYS:
-0014C8 22                RET     
------ FUNCTION kb_button_press_timer500ms (END) -------
-
-
------ FUNCTION YC_adc_check_timer500ms (BEGIN) -----
- FILE: 'adc.c'
-   73: void YC_adc_check_timer500ms()
-   74: {
-   75: 	// adc check timer	
-   76: 	if (g_variable.battery_check_interval)
-0014C9 904CD3            MOV     DPTR,#g_variable+014H
-0014CC E0                MOVX    A,@DPTR
-0014CD 600B              JZ      ?C0020?ADC
-   77: 	{
-   78: 		g_variable.battery_check_interval--;
-0014CF 14                DEC     A
-0014D0 F0                MOVX    @DPTR,A
-   79: 		if (g_variable.battery_check_interval == 0)
-0014D1 E0                MOVX    A,@DPTR
-0014D2 7006              JNZ     ?C0020?ADC
-   80: 		{
-   81: 			g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
-0014D4 7405              MOV     A,#05H
-0014D6 F0                MOVX    @DPTR,A
-   82: 			YC_adc_check();
-0014D7 1220CD            LCALL   YC_adc_check
-   83: 		}
-   84: 	}
-   85: }
-0014DA         ?C0020?ADC:
-0014DA 22                RET     
------ FUNCTION YC_adc_check_timer500ms (END) -------
+----- FUNCTION YC_get_ble_ramdon_lap (BEGIN) -----
+ FILE: 'bluetooth.c'
+  123: void YC_get_ble_ramdon_lap()		
+  124: {
+  125: 	IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+  126: 	g_variable.ble_ramdon_lap1++;
+0016E6 7B01              MOV     R3,#01H
+0016E8 7A4C              MOV     R2,#HIGH g_variable+033H
+0016EA 79F2              MOV     R1,#LOW g_variable+033H
+0016EC 7D02              MOV     R5,#02H
+0016EE 7C00              MOV     R4,#00H
+0016F0 7FF6              MOV     R7,#0F6H
+0016F2 7E3F              MOV     R6,#03FH
+0016F4 716E              ACALL   _IIC_Read
+  127: 	g_variable.ble_ramdon_lap2++;
+0016F6 904CF2            MOV     DPTR,#g_variable+033H
+0016F9 E0                MOVX    A,@DPTR
+0016FA 04                INC     A
+0016FB F0                MOVX    @DPTR,A
+  128: 	m_le_lap[1] = g_variable.ble_ramdon_lap1;
+0016FC A3                INC     DPTR
+0016FD E0                MOVX    A,@DPTR
+0016FE 04                INC     A
+0016FF F0                MOVX    @DPTR,A
+  129: 	m_le_lap[2] = g_variable.ble_ramdon_lap2;
+001700 904CF2            MOV     DPTR,#g_variable+033H
+001703 E0                MOVX    A,@DPTR
+001704 9044FA            MOV     DPTR,#m_le_lap+01H
+001707 F0                MOVX    @DPTR,A
+  130: }
+001708 904CF3            MOV     DPTR,#g_variable+034H
+00170B E0                MOVX    A,@DPTR
+00170C 9044FB            MOV     DPTR,#m_le_lap+02H
+00170F F0                MOVX    @DPTR,A
+  131: 
+001710 22                RET     
+----- FUNCTION YC_get_ble_ramdon_lap (END) -------
 
 
 ----- FUNCTION YC_wait_disconnect_timer500ms (BEGIN) -----
  FILE: 'sys.c'
-  252: void YC_wait_disconnect_timer500ms()
-  253: {
-  254: //before discovery/adv,if current state is connected,wait disconnect done
-  255: 	if (action_timeout!=0)
-0014DB 904DE2            MOV     DPTR,#action_timeout
-0014DE E0                MOVX    A,@DPTR
-0014DF 602B              JZ      ?C0044?SYS
-  256: 	{
-  257: 		action_timeout--;
-0014E1 E0                MOVX    A,@DPTR
-0014E2 14                DEC     A
-0014E3 F0                MOVX    @DPTR,A
-  258: 		if(action_timeout == 0)
-0014E4 E0                MOVX    A,@DPTR
-0014E5 7025              JNZ     ?C0044?SYS
-  259: 		{
-  260: 			if(g_variable.key_action == KEY_DISCOVERY
-0014E7 904CED            MOV     DPTR,#g_variable+02EH
-0014EA E0                MOVX    A,@DPTR
-0014EB B4051E            CJNE    A,#05H,?C0044?SYS
-0014EE 9047F5            MOV     DPTR,#m_ui_state_map+01H
-0014F1 E0                MOVX    A,@DPTR
-0014F2 20E317            JB      ACC.3,?C0044?SYS
-  261: 			&& (m_ui_state_map & 0x0008) != 0x0008)
-  262: 			{
-  263: 				m_lpm_mode = 0;
-0014F5 E4                CLR     A
-0014F6 904131            MOV     DPTR,#m_lpm_mode
-0014F9 F0                MOVX    @DPTR,A
-  264: 				g_variable.pairing_timeout = BT_PAIRING_TIME_OUT_2MIN;
-0014FA 904CE9            MOV     DPTR,#g_variable+02AH
-0014FD 74F0              MOV     A,#0F0H
-0014FF F0                MOVX    @DPTR,A
-  265: 				YC_get_ble_ramdon_lap();
-001500 71AE              ACALL   YC_get_ble_ramdon_lap
-  266: 				IPC_TxControlCmd(IPC_CMD_START_ADV);
-001502 7F0D              MOV     R7,#0DH
-001504 120744            LCALL   _IPC_TxControlCmd
-  267: 				g_variable.key_action = KEY_NONE;
-001507 E4                CLR     A
-001508 904CED            MOV     DPTR,#g_variable+02EH
-00150B F0                MOVX    @DPTR,A
-  268: 			}
-  269: 		}
-  270: 	}
-  271: 
-  272: }
-00150C         ?C0044?SYS:
-00150C 22                RET     
+  256: void YC_wait_disconnect_timer500ms()
+  257: {
+  258: //before discovery/adv,if current state is connected,wait disconnect done
+  259: 	if (action_timeout!=0)
+001711 904DE2            MOV     DPTR,#action_timeout
+001714 E0                MOVX    A,@DPTR
+001715 602B              JZ      ?C0042?SYS
+  260: 	{
+  261: 		action_timeout--;
+001717 E0                MOVX    A,@DPTR
+001718 14                DEC     A
+001719 F0                MOVX    @DPTR,A
+  262: 		if(action_timeout == 0)
+00171A E0                MOVX    A,@DPTR
+00171B 7025              JNZ     ?C0042?SYS
+  263: 		{
+  264: 			if(g_variable.key_action == KEY_DISCOVERY
+00171D 904CED            MOV     DPTR,#g_variable+02EH
+001720 E0                MOVX    A,@DPTR
+001721 B4051E            CJNE    A,#05H,?C0042?SYS
+001724 9047F5            MOV     DPTR,#m_ui_state_map+01H
+001727 E0                MOVX    A,@DPTR
+001728 20E317            JB      ACC.3,?C0042?SYS
+  265: 			&& (m_ui_state_map & 0x0008) != 0x0008)
+  266: 			{
+  267: 				m_lpm_mode = 0;
+00172B E4                CLR     A
+00172C 904131            MOV     DPTR,#m_lpm_mode
+00172F F0                MOVX    @DPTR,A
+  268: 				g_variable.pairing_timeout = BT_PAIRING_TIME_OUT_2MIN;
+001730 904CE9            MOV     DPTR,#g_variable+02AH
+001733 74F0              MOV     A,#0F0H
+001735 F0                MOVX    @DPTR,A
+  269: 				YC_get_ble_ramdon_lap();
+001736 D1E6              ACALL   YC_get_ble_ramdon_lap
+  270: 				IPC_TxControlCmd(IPC_CMD_START_ADV);
+001738 7F0D              MOV     R7,#0DH
+00173A 120744            LCALL   _IPC_TxControlCmd
+  271: 				g_variable.key_action = KEY_NONE;
+00173D E4                CLR     A
+00173E 904CED            MOV     DPTR,#g_variable+02EH
+001741 F0                MOVX    @DPTR,A
+  272: 			}
+  273: 		}
+  274: 	}
+  275: 
+  276: }
+001742         ?C0042?SYS:
+001742 22                RET     
 ----- FUNCTION YC_wait_disconnect_timer500ms (END) -------
 
 
------ FUNCTION LED_timer500ms (BEGIN) -----
- FILE: 'sys.c'
-  182: void LED_timer500ms()
-  183: {
-  184: 	if (power_on_flag != 2)
-  185: 		return;
-00150D 904DE1            MOV     DPTR,#power_on_flag
-001510 E0                MOVX    A,@DPTR
-001511 6402              XRL     A,#02H
-001513 7044              JNZ     ?C0027?SYS
-001515         ?C0026?SYS:
-  186: 	if (g_variable.pairing_timeout != 0) //bt  pairing
-001515 904CE9            MOV     DPTR,#g_variable+02AH
-001518 E0                MOVX    A,@DPTR
-001519 6015              JZ      ?C0028?SYS
-  187: 	{
-  188: 		if (g_variable.button_reconnect_flag != 1)
-00151B 904CCC            MOV     DPTR,#g_variable+0DH
-00151E E0                MOVX    A,@DPTR
-00151F 6401              XRL     A,#01H
-001521 6006              JZ      ?C0029?SYS
-  189: 		{
-  190: 			GPIO_FlipOutBit(BT_LED_GPIO);
-001523 7F0F              MOV     R7,#0FH
-001525 B15A              ACALL   _GPIO_FlipOutBit
-  191: 		}
-001527 8007              SJMP    ?C0028?SYS
-001529         ?C0029?SYS:
-  192: 		else
-  193: 		{
-  194: 			GPIO_Setout(BT_LED_GPIO,LED_OFF);
-001529 C201              CLR     ?_GPIO_Setout?BIT
-00152B 7F0F              MOV     R7,#0FH
-00152D 120FD0            LCALL   _GPIO_Setout
-  195: 		}
-  196: 	}
-001530         ?C0028?SYS:
-  197: 
-  198: 	
-  199: 	if (YC_check_is_connected())
-001530 120FEF            LCALL   YC_check_is_connected
-001533 EF                MOV     A,R7
-001534 6023              JZ      ?C0027?SYS
-  200: 	{
-  201: 		/*
-  202: 		if(g_variable.sys_numlockled_on_timer)
-  203: 		{
-  204: 			g_variable.sys_numlockled_on_timer--;
-  205: 			GPIO_Setout(NUM_LOCK_LED_GPIO, LED_ON);
-  206: 			if(!g_variable.sys_numlockled_on_timer)
-  207: 				GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
-  208: 		}
-  209: 		else 
-  210: 			GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
-  211: 		*/	
-  212: 
-  213: 		if(g_variable.sys_capslockled_on_timer)
-001536 904CE7            MOV     DPTR,#g_variable+028H
-001539 E0                MOVX    A,@DPTR
-00153A 6016              JZ      ?C0032?SYS
-  214: 		{
-  215: 			g_variable.sys_capslockled_on_timer--;
-00153C 14                DEC     A
-00153D F0                MOVX    @DPTR,A
-  216: 			GPIO_Setout(CAPS_LED_GPIO, LED_ON);
-00153E D201              SETB    ?_GPIO_Setout?BIT
-001540 7F1E              MOV     R7,#01EH
-001542 120FD0            LCALL   _GPIO_Setout
-  217: 			if(!g_variable.sys_capslockled_on_timer)
-001545 904CE7            MOV     DPTR,#g_variable+028H
-001548 E0                MOVX    A,@DPTR
-001549 700E              JNZ     ?C0027?SYS
-  218: 				GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
-00154B C201              CLR     ?_GPIO_Setout?BIT
-00154D 7F1E              MOV     R7,#01EH
-00154F 020FD0            LJMP    _GPIO_Setout
-  219: 		}
-001552         ?C0032?SYS:
-  220: 		else
-  221: 			GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
-001552 C201              CLR     ?_GPIO_Setout?BIT
-001554 7F1E              MOV     R7,#01EH
-001556 120FD0            LCALL   _GPIO_Setout
-  222: 	}	
-  223: }
-001559         ?C0027?SYS:
-001559 22                RET     
------ FUNCTION LED_timer500ms (END) -------
-
-
------ FUNCTION _GPIO_FlipOutBit (BEGIN) -----
-00155A 904EB7            MOV     DPTR,#gpio_num
-00155D EF                MOV     A,R7
-00155E F0                MOVX    @DPTR,A
-00155F 7B01              MOV     R3,#01H
-001561 7A80              MOV     R2,#080H
-001563 7974              MOV     R1,#074H
-001565 D1DF              ACALL   _gpioGetBit
-001567 9209              MOV     st,C
-001569 904EB7            MOV     DPTR,#gpio_num
-00156C E0                MOVX    A,@DPTR
-00156D FF                MOV     R7,A
-00156E A209              MOV     C,st
-001570 B3                CPL     C
-001571 9201              MOV     ?_GPIO_Setout?BIT,C
-001573 020FD0            LJMP    _GPIO_Setout
------ FUNCTION _GPIO_FlipOutBit (END) -------
-
-
------ FUNCTION LED_device_poweroff (BEGIN) -----
- FILE: 'led.c'
-   18: void LED_device_poweroff()
-   19: {
-   20: 	GPIO_Setout(BT_LED_GPIO,LED_OFF);
-   21: }
-001576 C201              CLR     ?_GPIO_Setout?BIT
-001578 7F0F              MOV     R7,#0FH
-00157A 020FD0            LJMP    _GPIO_Setout
------ FUNCTION LED_device_poweroff (END) -------
-
-
 ----- FUNCTION IIcWaitDone (BEGIN) -----
-00157D         ?C0001?IIC:
-00157D 90812C            MOV     DPTR,#0812CH
-001580 E0                MOVX    A,@DPTR
-001581 30E5F9            JNB     ACC.5,?C0001?IIC
-001584 22                RET     
+001743         ?C0001?IIC:
+001743 90812C            MOV     DPTR,#0812CH
+001746 E0                MOVX    A,@DPTR
+001747 30E5F9            JNB     ACC.5,?C0001?IIC
+00174A 22                RET     
 ----- FUNCTION IIcWaitDone (END) -------
 
 
 ----- FUNCTION _IIC_write (BEGIN) -----
-001585 904E5C            MOV     DPTR,#addr
-001588 EE                MOV     A,R6
-001589 F0                MOVX    @DPTR,A
-00158A A3                INC     DPTR
-00158B EF                MOV     A,R7
-00158C F0                MOVX    @DPTR,A
-00158D 904E60            MOV     DPTR,#pbuff
-001590 EB                MOV     A,R3
-001591 F0                MOVX    @DPTR,A
-001592 A3                INC     DPTR
-001593 EA                MOV     A,R2
-001594 F0                MOVX    @DPTR,A
-001595 A3                INC     DPTR
-001596 E9                MOV     A,R1
-001597 F0                MOVX    @DPTR,A
-001598 904E5E            MOV     DPTR,#len
-00159B EC                MOV     A,R4
-00159C F0                MOVX    @DPTR,A
-00159D A3                INC     DPTR
-00159E ED                MOV     A,R5
-00159F F0                MOVX    @DPTR,A
-0015A0 A3                INC     DPTR
-0015A1 E0                MOVX    A,@DPTR
-0015A2 F9                MOV     R1,A
-0015A3 A3                INC     DPTR
-0015A4 E0                MOVX    A,@DPTR
-0015A5 FA                MOV     R2,A
-0015A6 A3                INC     DPTR
-0015A7 E0                MOVX    A,@DPTR
-0015A8 904E49            MOV     DPTR,#?_dmemcpy?BYTE+03H
-0015AB C9                XCH     A,R1
-0015AC F0                MOVX    @DPTR,A
-0015AD A3                INC     DPTR
-0015AE EA                MOV     A,R2
-0015AF F0                MOVX    @DPTR,A
-0015B0 A3                INC     DPTR
-0015B1 E9                MOV     A,R1
-0015B2 F0                MOVX    @DPTR,A
-0015B3 A3                INC     DPTR
-0015B4 EC                MOV     A,R4
-0015B5 F0                MOVX    @DPTR,A
-0015B6 A3                INC     DPTR
-0015B7 ED                MOV     A,R5
-0015B8 F0                MOVX    @DPTR,A
-0015B9 7B01              MOV     R3,#01H
-0015BB 7A0B              MOV     R2,#HIGH IIC_TempBuff+03H
-0015BD 7986              MOV     R1,#LOW IIC_TempBuff+03H
-0015BF F126              ACALL   _dmemcpy
-0015C1 900B83            MOV     DPTR,#IIC_TempBuff
-0015C4 74A0              MOV     A,#0A0H
-0015C6 F0                MOVX    @DPTR,A
-0015C7 904E5C            MOV     DPTR,#addr
-0015CA E0                MOVX    A,@DPTR
-0015CB FF                MOV     R7,A
-0015CC A3                INC     DPTR
-0015CD E0                MOVX    A,@DPTR
-0015CE 900B84            MOV     DPTR,#IIC_TempBuff+01H
-0015D1 CF                XCH     A,R7
-0015D2 F0                MOVX    @DPTR,A
-0015D3 A3                INC     DPTR
-0015D4 EF                MOV     A,R7
-0015D5 F0                MOVX    @DPTR,A
-0015D6 904E5F            MOV     DPTR,#len+01H
-0015D9 E0                MOVX    A,@DPTR
-0015DA 2403              ADD     A,#03H
-0015DC FD                MOV     R5,A
-0015DD 904E5E            MOV     DPTR,#len
-0015E0 E0                MOVX    A,@DPTR
-0015E1 3400              ADDC    A,#00H
-0015E3 FC                MOV     R4,A
-0015E4 ED                MOV     A,R5
-0015E5 FA                MOV     R2,A
-0015E6 EC                MOV     A,R4
-0015E7 FF                MOV     R7,A
-0015E8 EA                MOV     A,R2
-0015E9 FE                MOV     R6,A
-0015EA EF                MOV     A,R7
-0015EB 908098            MOV     DPTR,#08098H
-0015EE EE                MOV     A,R6
-0015EF F0                MOVX    @DPTR,A
-0015F0 A3                INC     DPTR
-0015F1 EF                MOV     A,R7
-0015F2 F0                MOVX    @DPTR,A
-0015F3 7A0B              MOV     R2,#HIGH IIC_TempBuff
-0015F5 7983              MOV     R1,#LOW IIC_TempBuff
-0015F7 7E0B              MOV     R6,#HIGH IIC_TempBuff
-0015F9 7F83              MOV     R7,#LOW IIC_TempBuff
-0015FB 7483              MOV     A,#LOW IIC_TempBuff
-0015FD FC                MOV     R4,A
-0015FE 740B              MOV     A,#HIGH IIC_TempBuff
-001600 FF                MOV     R7,A
-001601 EC                MOV     A,R4
-001602 FE                MOV     R6,A
-001603 EF                MOV     A,R7
-001604 A3                INC     DPTR
-001605 EE                MOV     A,R6
-001606 F0                MOVX    @DPTR,A
-001607 A3                INC     DPTR
-001608 EF                MOV     A,R7
-001609 F0                MOVX    @DPTR,A
-00160A 90809E            MOV     DPTR,#0809EH
-00160D E4                CLR     A
-00160E F0                MOVX    @DPTR,A
-00160F A3                INC     DPTR
-001610 F0                MOVX    @DPTR,A
-001611 908090            MOV     DPTR,#08090H
-001614 04                INC     A
-001615 F0                MOVX    @DPTR,A
-001616 908006            MOV     DPTR,#08006H
-001619 E0                MOVX    A,@DPTR
-00161A 4404              ORL     A,#04H
-00161C F0                MOVX    @DPTR,A
-00161D A17D              AJMP    IIcWaitDone
+00174B 904E5C            MOV     DPTR,#addr
+00174E EE                MOV     A,R6
+00174F F0                MOVX    @DPTR,A
+001750 A3                INC     DPTR
+001751 EF                MOV     A,R7
+001752 F0                MOVX    @DPTR,A
+001753 904E60            MOV     DPTR,#pbuff
+001756 EB                MOV     A,R3
+001757 F0                MOVX    @DPTR,A
+001758 A3                INC     DPTR
+001759 EA                MOV     A,R2
+00175A F0                MOVX    @DPTR,A
+00175B A3                INC     DPTR
+00175C E9                MOV     A,R1
+00175D F0                MOVX    @DPTR,A
+00175E 904E5E            MOV     DPTR,#len
+001761 EC                MOV     A,R4
+001762 F0                MOVX    @DPTR,A
+001763 A3                INC     DPTR
+001764 ED                MOV     A,R5
+001765 F0                MOVX    @DPTR,A
+001766 A3                INC     DPTR
+001767 E0                MOVX    A,@DPTR
+001768 F9                MOV     R1,A
+001769 A3                INC     DPTR
+00176A E0                MOVX    A,@DPTR
+00176B FA                MOV     R2,A
+00176C A3                INC     DPTR
+00176D E0                MOVX    A,@DPTR
+00176E 904E49            MOV     DPTR,#?_dmemcpy?BYTE+03H
+001771 C9                XCH     A,R1
+001772 F0                MOVX    @DPTR,A
+001773 A3                INC     DPTR
+001774 EA                MOV     A,R2
+001775 F0                MOVX    @DPTR,A
+001776 A3                INC     DPTR
+001777 E9                MOV     A,R1
+001778 F0                MOVX    @DPTR,A
+001779 A3                INC     DPTR
+00177A EC                MOV     A,R4
+00177B F0                MOVX    @DPTR,A
+00177C A3                INC     DPTR
+00177D ED                MOV     A,R5
+00177E F0                MOVX    @DPTR,A
+00177F 7B01              MOV     R3,#01H
+001781 7A0B              MOV     R2,#HIGH IIC_TempBuff+03H
+001783 7986              MOV     R1,#LOW IIC_TempBuff+03H
+001785 122264            LCALL   _dmemcpy
+001788 900B83            MOV     DPTR,#IIC_TempBuff
+00178B 74A0              MOV     A,#0A0H
+00178D F0                MOVX    @DPTR,A
+00178E 904E5C            MOV     DPTR,#addr
+001791 E0                MOVX    A,@DPTR
+001792 FF                MOV     R7,A
+001793 A3                INC     DPTR
+001794 E0                MOVX    A,@DPTR
+001795 900B84            MOV     DPTR,#IIC_TempBuff+01H
+001798 CF                XCH     A,R7
+001799 F0                MOVX    @DPTR,A
+00179A A3                INC     DPTR
+00179B EF                MOV     A,R7
+00179C F0                MOVX    @DPTR,A
+00179D 904E5F            MOV     DPTR,#len+01H
+0017A0 E0                MOVX    A,@DPTR
+0017A1 2403              ADD     A,#03H
+0017A3 FD                MOV     R5,A
+0017A4 904E5E            MOV     DPTR,#len
+0017A7 E0                MOVX    A,@DPTR
+0017A8 3400              ADDC    A,#00H
+0017AA FC                MOV     R4,A
+0017AB ED                MOV     A,R5
+0017AC FA                MOV     R2,A
+0017AD EC                MOV     A,R4
+0017AE FF                MOV     R7,A
+0017AF EA                MOV     A,R2
+0017B0 FE                MOV     R6,A
+0017B1 EF                MOV     A,R7
+0017B2 908098            MOV     DPTR,#08098H
+0017B5 EE                MOV     A,R6
+0017B6 F0                MOVX    @DPTR,A
+0017B7 A3                INC     DPTR
+0017B8 EF                MOV     A,R7
+0017B9 F0                MOVX    @DPTR,A
+0017BA 7A0B              MOV     R2,#HIGH IIC_TempBuff
+0017BC 7983              MOV     R1,#LOW IIC_TempBuff
+0017BE 7E0B              MOV     R6,#HIGH IIC_TempBuff
+0017C0 7F83              MOV     R7,#LOW IIC_TempBuff
+0017C2 7483              MOV     A,#LOW IIC_TempBuff
+0017C4 FC                MOV     R4,A
+0017C5 740B              MOV     A,#HIGH IIC_TempBuff
+0017C7 FF                MOV     R7,A
+0017C8 EC                MOV     A,R4
+0017C9 FE                MOV     R6,A
+0017CA EF                MOV     A,R7
+0017CB A3                INC     DPTR
+0017CC EE                MOV     A,R6
+0017CD F0                MOVX    @DPTR,A
+0017CE A3                INC     DPTR
+0017CF EF                MOV     A,R7
+0017D0 F0                MOVX    @DPTR,A
+0017D1 90809E            MOV     DPTR,#0809EH
+0017D4 E4                CLR     A
+0017D5 F0                MOVX    @DPTR,A
+0017D6 A3                INC     DPTR
+0017D7 F0                MOVX    @DPTR,A
+0017D8 908090            MOV     DPTR,#08090H
+0017DB 04                INC     A
+0017DC F0                MOVX    @DPTR,A
+0017DD 908006            MOV     DPTR,#08006H
+0017E0 E0                MOVX    A,@DPTR
+0017E1 4404              ORL     A,#04H
+0017E3 F0                MOVX    @DPTR,A
+0017E4 E143              AJMP    IIcWaitDone
 ----- FUNCTION _IIC_write (END) -------
 
 
------ FUNCTION _IIC_WriteBlock (BEGIN) -----
-00161F 904E3D            MOV     DPTR,#addr
-001622 EE                MOV     A,R6
-001623 F0                MOVX    @DPTR,A
-001624 A3                INC     DPTR
-001625 EF                MOV     A,R7
-001626 F0                MOVX    @DPTR,A
-001627 A3                INC     DPTR
-001628 EC                MOV     A,R4
-001629 F0                MOVX    @DPTR,A
-00162A A3                INC     DPTR
-00162B ED                MOV     A,R5
-00162C F0                MOVX    @DPTR,A
-00162D A3                INC     DPTR
-00162E EB                MOV     A,R3
-00162F F0                MOVX    @DPTR,A
-001630 A3                INC     DPTR
-001631 EA                MOV     A,R2
-001632 F0                MOVX    @DPTR,A
-001633 A3                INC     DPTR
-001634 E9                MOV     A,R1
-001635 F0                MOVX    @DPTR,A
-001636         ?C0007?IIC:
-001636 904E3F            MOV     DPTR,#len
-001639 E0                MOVX    A,@DPTR
-00163A 7002              JNZ     ?C0012?IIC
-00163C A3                INC     DPTR
-00163D E0                MOVX    A,@DPTR
-00163E         ?C0012?IIC:
-00163E 7002              JNZ     $ + 4H
-001640 C1CC              AJMP    ?C0011?IIC
-001642 904E3D            MOV     DPTR,#addr
-001645 E0                MOVX    A,@DPTR
-001646 FE                MOV     R6,A
-001647 A3                INC     DPTR
-001648 E0                MOVX    A,@DPTR
-001649 FF                MOV     R7,A
-00164A 440F              ORL     A,#0FH
-00164C 2401              ADD     A,#01H
-00164E FD                MOV     R5,A
-00164F E4                CLR     A
-001650 3E                ADDC    A,R6
-001651 FC                MOV     R4,A
-;---- Variable 'cris' assigned to Register 'R4/R5' ----
-001652 C3                CLR     C
-001653 ED                MOV     A,R5
-001654 9F                SUBB    A,R7
-001655 FF                MOV     R7,A
-001656 EC                MOV     A,R4
-001657 9E                SUBB    A,R6
-001658 FE                MOV     R6,A
-001659 904E44            MOV     DPTR,#curr_len
-00165C F0                MOVX    @DPTR,A
-00165D A3                INC     DPTR
-00165E EF                MOV     A,R7
-00165F F0                MOVX    @DPTR,A
-001660 904E3F            MOV     DPTR,#len
-001663 E0                MOVX    A,@DPTR
-001664 FC                MOV     R4,A
-001665 A3                INC     DPTR
-001666 E0                MOVX    A,@DPTR
-001667 FD                MOV     R5,A
-001668 D3                SETB    C
-001669 9F                SUBB    A,R7
-00166A EC                MOV     A,R4
-00166B 9E                SUBB    A,R6
-00166C 400A              JC      ?C0009?IIC
-00166E 904E44            MOV     DPTR,#curr_len
-001671 E0                MOVX    A,@DPTR
-001672 FE                MOV     R6,A
-001673 A3                INC     DPTR
-001674 E0                MOVX    A,@DPTR
-001675 FF                MOV     R7,A
-001676 8004              SJMP    ?C0010?IIC
-001678         ?C0009?IIC:
-001678 AE04              MOV     R6,AR4
-00167A AF05              MOV     R7,AR5
-00167C         ?C0010?IIC:
-00167C 904E44            MOV     DPTR,#curr_len
-00167F EE                MOV     A,R6
-001680 F0                MOVX    @DPTR,A
-001681 FC                MOV     R4,A
-001682 A3                INC     DPTR
-001683 EF                MOV     A,R7
-001684 F0                MOVX    @DPTR,A
-001685 FD                MOV     R5,A
-001686 C3                CLR     C
-001687 904E40            MOV     DPTR,#len+01H
-00168A E0                MOVX    A,@DPTR
-00168B 9D                SUBB    A,R5
-00168C F0                MOVX    @DPTR,A
-00168D 904E3F            MOV     DPTR,#len
-001690 E0                MOVX    A,@DPTR
-001691 9C                SUBB    A,R4
-001692 F0                MOVX    @DPTR,A
-001693 904E3D            MOV     DPTR,#addr
-001696 E0                MOVX    A,@DPTR
-001697 FE                MOV     R6,A
-001698 A3                INC     DPTR
-001699 E0                MOVX    A,@DPTR
-00169A FF                MOV     R7,A
-00169B 904E41            MOV     DPTR,#pbuff
-00169E E0                MOVX    A,@DPTR
-00169F FB                MOV     R3,A
-0016A0 A3                INC     DPTR
-0016A1 E0                MOVX    A,@DPTR
-0016A2 FA                MOV     R2,A
-0016A3 A3                INC     DPTR
-0016A4 E0                MOVX    A,@DPTR
-0016A5 F9                MOV     R1,A
-0016A6 B185              ACALL   _IIC_write
-0016A8 7F0A              MOV     R7,#0AH
-0016AA 120F44            LCALL   _Delay1ms
-0016AD 904E44            MOV     DPTR,#curr_len
-0016B0 E0                MOVX    A,@DPTR
-0016B1 FE                MOV     R6,A
-0016B2 A3                INC     DPTR
-0016B3 E0                MOVX    A,@DPTR
-0016B4 FF                MOV     R7,A
-0016B5 904E42            MOV     DPTR,#pbuff+01H
-0016B8 EE                MOV     A,R6
-0016B9 8FF0              MOV     B,R7
-0016BB 12040E            LCALL   ?C?IILDX
-0016BE 904E3E            MOV     DPTR,#addr+01H
-0016C1 E0                MOVX    A,@DPTR
-0016C2 2F                ADD     A,R7
-0016C3 F0                MOVX    @DPTR,A
-0016C4 904E3D            MOV     DPTR,#addr
-0016C7 E0                MOVX    A,@DPTR
-0016C8 3E                ADDC    A,R6
-0016C9 F0                MOVX    @DPTR,A
-0016CA C136              AJMP    ?C0007?IIC
-0016CC         ?C0011?IIC:
-0016CC 22                RET     
------ FUNCTION _IIC_WriteBlock (END) -------
+----- FUNCTION YC_check_need_reconnected (BEGIN) -----
+ FILE: 'bluetooth.c'
+   56: byte YC_check_need_reconnected()
+   57: {
+   58: 	byte return_val = 0;
+   59: 	 if (g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE)
+0017E6 E4                CLR     A
+0017E7 904EAD            MOV     DPTR,#return_val
+0017EA F0                MOVX    @DPTR,A
+   60: 		return return_val;
+0017EB 904CC8            MOV     DPTR,#g_variable+09H
+0017EE E0                MOVX    A,@DPTR
+0017EF B40206            CJNE    A,#02H,?C0009?BLUETOOTH
+   61: 	if ((m_ui_state_map & 0x0008) == 0x0008)		
+0017F2 904EAD            MOV     DPTR,#return_val
+0017F5 E0                MOVX    A,@DPTR
+0017F6 FF                MOV     R7,A
+0017F7 22                RET     
+0017F8         ?C0009?BLUETOOTH:
+   62: 		return return_val;
+0017F8 9047F5            MOV     DPTR,#m_ui_state_map+01H
+0017FB E0                MOVX    A,@DPTR
+0017FC 30E306            JNB     ACC.3,?C0011?BLUETOOTH
+   63: 
+0017FF 904EAD            MOV     DPTR,#return_val
+001802 E0                MOVX    A,@DPTR
+001803 FF                MOV     R7,A
+001804 22                RET     
+001805         ?C0011?BLUETOOTH:
+   64: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_DISCONNECT)
+001805 904CC7            MOV     DPTR,#g_variable+08H
+001808 E0                MOVX    A,@DPTR
+001809 701B              JNZ     ?C0012?BLUETOOTH
+   65: 	{
+   66: 		if(g_variable.recon_delay == 0)
+00180B 904CEF            MOV     DPTR,#g_variable+030H
+00180E E0                MOVX    A,@DPTR
+00180F 701F              JNZ     ?C0015?BLUETOOTH
+   67: 		{
+   68: 			g_variable.recon_delay = 10;
+001811 740A              MOV     A,#0AH
+001813 F0                MOVX    @DPTR,A
+   69: 			if ((g_variable.recon_count == 0)
+001814 A3                INC     DPTR
+001815 E0                MOVX    A,@DPTR
+001816 7018              JNZ     ?C0015?BLUETOOTH
+001818 904DE1            MOV     DPTR,#power_on_flag
+00181B E0                MOVX    A,@DPTR
+00181C B40211            CJNE    A,#02H,?C0015?BLUETOOTH
+   70: 			&& (power_on_flag == 2))
+   71: 			{				
+   72: 				YC_key_action_handle(KEY_RECON_0);
+00181F 7F01              MOV     R7,#01H
+001821 121454            LCALL   _YC_key_action_handle
+   73: 			}
+   74: 		}
+   75: 	}
+001824 800A              SJMP    ?C0015?BLUETOOTH
+001826         ?C0012?BLUETOOTH:
+   76: 	else
+   77: 	{
+   78: 		g_variable.release_data = 0;
+001826 E4                CLR     A
+001827 904CEB            MOV     DPTR,#g_variable+02CH
+00182A F0                MOVX    @DPTR,A
+   79: 		return_val = 1;
+00182B 904EAD            MOV     DPTR,#return_val
+00182E 04                INC     A
+00182F F0                MOVX    @DPTR,A
+   80: 	}
+001830         ?C0015?BLUETOOTH:
+   81: 	return return_val;
+001830 904EAD            MOV     DPTR,#return_val
+001833 E0                MOVX    A,@DPTR
+001834 FF                MOV     R7,A
+   82: }
+001835 22                RET     
+----- FUNCTION YC_check_need_reconnected (END) -------
 
 
 ----- FUNCTION YC_cancel_reconnect (BEGIN) -----
@@ -3870,1151 +4260,884 @@
    86: {
    87: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_DIRECT_ADV)
    88: 	{
-0016CD 904CC7            MOV     DPTR,#g_variable+08H
-0016D0 E0                MOVX    A,@DPTR
-0016D1 B40208            CJNE    A,#02H,?C0016?BLUETOOTH
+001836 904CC7            MOV     DPTR,#g_variable+08H
+001839 E0                MOVX    A,@DPTR
+00183A B40208            CJNE    A,#02H,?C0016?BLUETOOTH
    89: 		//stop adv
    90: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
-0016D4 7F0E              MOV     R7,#0EH
-0016D6 120744            LCALL   _IPC_TxControlCmd
+00183D 7F0E              MOV     R7,#0EH
+00183F 120744            LCALL   _IPC_TxControlCmd
    91: 		return 1;
-0016D9 7F01              MOV     R7,#01H
-0016DB 22                RET     
+001842 7F01              MOV     R7,#01H
+001844 22                RET     
    92: 	}
-0016DC         ?C0016?BLUETOOTH:
+001845         ?C0016?BLUETOOTH:
    93: 	return 0;
-0016DC 7F00              MOV     R7,#00H
+001845 7F00              MOV     R7,#00H
    94: }
-0016DE 22                RET     
+001847 22                RET     
 ----- FUNCTION YC_cancel_reconnect (END) -------
 
 
------ FUNCTION _gpioGetBit (BEGIN) -----
-;---- Variable 'gpio_num' assigned to Register 'R5' ----
-0016DF AD07              MOV     R5,AR7
-;---- Variable 'reg_base' assigned to Register 'R1/R2/R3' ----
-0016E1 E4                CLR     A
-0016E2 904EB5            MOV     DPTR,#queue
-0016E5 F0                MOVX    @DPTR,A
-;---- Variable 'group' assigned to Register 'R6' ----
-0016E6 FE                MOV     R6,A
-0016E7 EF                MOV     A,R7
-0016E8 5407              ANL     A,#07H
-0016EA F0                MOVX    @DPTR,A
-0016EB EF                MOV     A,R7
-0016EC 13                RRC     A
-0016ED 13                RRC     A
-0016EE 13                RRC     A
-0016EF 5403              ANL     A,#03H
-0016F1 FE                MOV     R6,A
-0016F2 F582              MOV     DPL,A
-0016F4 758300            MOV     DPH,#00H
-0016F7 1203CF            LCALL   ?C?CLDOPTR
-0016FA FD                MOV     R5,A
-0016FB 33                RLC     A
-0016FC 95E0              SUBB    A,ACC
-0016FE FC                MOV     R4,A
-0016FF 904EB5            MOV     DPTR,#queue
-001702 E0                MOVX    A,@DPTR
-001703 FF                MOV     R7,A
-001704 7401              MOV     A,#01H
-001706 7E00              MOV     R6,#00H
-001708 A807              MOV     R0,AR7
-00170A 08                INC     R0
-00170B 8005              SJMP    ?C0035?GPIO
-00170D         ?C0034?GPIO:
-00170D C3                CLR     C
-00170E 33                RLC     A
-00170F CE                XCH     A,R6
-001710 33                RLC     A
-001711 CE                XCH     A,R6
-001712         ?C0035?GPIO:
-001712 D8F9              DJNZ    R0,?C0034?GPIO
-001714 FF                MOV     R7,A
-001715 EE                MOV     A,R6
-001716 5C                ANL     A,R4
-001717 FE                MOV     R6,A
-001718 EF                MOV     A,R7
-001719 5D                ANL     A,R5
-00171A 4E                ORL     A,R6
-00171B 24FF              ADD     A,#0FFH
-00171D 22                RET     
------ FUNCTION _gpioGetBit (END) -------
-
-
------ FUNCTION _GPIO_GetInputStatus (BEGIN) -----
-;---- Variable 'gpio_num' assigned to Register 'R7' ----
-00171E 7B01              MOV     R3,#01H
-001720 7A81              MOV     R2,#081H
-001722 791C              MOV     R1,#01CH
-001724 80B9              SJMP    _gpioGetBit
------ FUNCTION _GPIO_GetInputStatus (END) -------
-
-
------ FUNCTION _dmemcpy (BEGIN) -----
-001726 904E46            MOV     DPTR,#dest
-001729 EB                MOV     A,R3
-00172A F0                MOVX    @DPTR,A
-00172B A3                INC     DPTR
-00172C EA                MOV     A,R2
-00172D F0                MOVX    @DPTR,A
-00172E A3                INC     DPTR
-00172F E9                MOV     A,R1
-001730 F0                MOVX    @DPTR,A
-001731         ?C0005?UTILITIES:
-001731 904E4C            MOV     DPTR,#len
-001734 74FF              MOV     A,#0FFH
-001736 F5F0              MOV     B,A
-001738 120424            LCALL   ?C?ILDIX
-00173B 45F0              ORL     A,B
-00173D 602A              JZ      ?C0007?UTILITIES
-00173F 904E49            MOV     DPTR,#src
-001742 E0                MOVX    A,@DPTR
-001743 FB                MOV     R3,A
-001744 A3                INC     DPTR
-001745 E4                CLR     A
-001746 75F001            MOV     B,#01H
-001749 120424            LCALL   ?C?ILDIX
-00174C A9F0              MOV     R1,B
-00174E FA                MOV     R2,A
-00174F 1203B6            LCALL   ?C?CLDPTR
-001752 FF                MOV     R7,A
-001753 904E46            MOV     DPTR,#dest
-001756 E0                MOVX    A,@DPTR
-001757 FB                MOV     R3,A
-001758 A3                INC     DPTR
-001759 E4                CLR     A
-00175A 75F001            MOV     B,#01H
-00175D 120424            LCALL   ?C?ILDIX
-001760 A9F0              MOV     R1,B
-001762 FA                MOV     R2,A
-001763 EF                MOV     A,R7
-001764 1203FC            LCALL   ?C?CSTPTR
-001767 80C8              SJMP    ?C0005?UTILITIES
-001769         ?C0007?UTILITIES:
-001769 22                RET     
------ FUNCTION _dmemcpy (END) -------
-
-
------ FUNCTION kb_cb_Timer100ms (BEGIN) -----
- FILE: 'sys.c'
-  380: static void kb_cb_Timer100ms()
-  381: {
-  382: 
-  383: 	if (g_variable.delay_enter_lpm_timer) 
-00176A 904CEA            MOV     DPTR,#g_variable+02BH
-00176D E0                MOVX    A,@DPTR
-00176E 6002              JZ      ?C0062?SYS
-  384: 	{
-  385: 		g_variable.delay_enter_lpm_timer --;
-001770 14                DEC     A
-001771 F0                MOVX    @DPTR,A
-  386: 	}
-001772         ?C0062?SYS:
-  387: 
-  388: 	if(g_variable.recon_delay)
-001772 904CEF            MOV     DPTR,#g_variable+030H
-001775 E0                MOVX    A,@DPTR
-001776 6002              JZ      ?C0063?SYS
-  389: 		g_variable.recon_delay--;
-001778 14                DEC     A
-001779 F0                MOVX    @DPTR,A
-00177A         ?C0063?SYS:
-  390: 
-  391: 	if (g_variable.powerOn_timer != 0)
-00177A 904CE5            MOV     DPTR,#g_variable+026H
-00177D E0                MOVX    A,@DPTR
-00177E 600F              JZ      ?C0064?SYS
-  392: 	{	
-  393: 		g_variable.powerOn_timer--;
-001780 14                DEC     A
-001781 F0                MOVX    @DPTR,A
-  394: 		LED_device_poweron();
-001782 120FE9            LCALL   LED_device_poweron
-  395: 		if (!g_variable.powerOn_timer)
-001785 904CE5            MOV     DPTR,#g_variable+026H
-001788 E0                MOVX    A,@DPTR
-001789 702F              JNZ     ?C0066?SYS
-  396: 		{
-  397: 			LED_device_poweroff();
-00178B B176              ACALL   LED_device_poweroff
-  398: 		}
-  399: 	}
-00178D 802B              SJMP    ?C0066?SYS
-00178F         ?C0064?SYS:
-  400: 	else
-  401: 	if (g_variable.pairing_timeout == 0)  //  pairing
-00178F 904CE9            MOV     DPTR,#g_variable+02AH
-001792 E0                MOVX    A,@DPTR
-001793 7025              JNZ     ?C0066?SYS
-  402: 	{
-  403: 		if(g_variable.battery_low_led_flash_interval)
-001795 904CE2            MOV     DPTR,#g_variable+023H
-001798 E0                MOVX    A,@DPTR
-001799 601F              JZ      ?C0066?SYS
-  404: 		{
-  405: 			g_variable.battery_low_led_flash_interval--;
-00179B 14                DEC     A
-00179C F0                MOVX    @DPTR,A
-  406: 			if(g_variable.battery_low_led_flash_interval & 0x02)
-00179D E0                MOVX    A,@DPTR
-00179E 30E109            JNB     ACC.1,?C0069?SYS
-  407: 			{
-  408: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_ON);
-0017A1 D201              SETB    ?_GPIO_Setout?BIT
-0017A3 7FFF              MOV     R7,#0FFH
-0017A5 120FD0            LCALL   _GPIO_Setout
-  409: 			}
-0017A8 8007              SJMP    ?C0070?SYS
-0017AA         ?C0069?SYS:
-  410: 			else
-  411: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);	
-0017AA C201              CLR     ?_GPIO_Setout?BIT
-0017AC 7FFF              MOV     R7,#0FFH
-0017AE 120FD0            LCALL   _GPIO_Setout
-0017B1         ?C0070?SYS:
-  412: 			if(!g_variable.battery_low_led_flash_interval)
-0017B1 904CE2            MOV     DPTR,#g_variable+023H
-0017B4 E0                MOVX    A,@DPTR
-0017B5 7003              JNZ     ?C0066?SYS
-  413: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
-0017B7 7404              MOV     A,#04H
-0017B9 F0                MOVX    @DPTR,A
-  414: 		}
-  415: 	}
-0017BA         ?C0066?SYS:
-  416: 
-  417: 	if (delayChgInvTimer != 0)
-0017BA 904DDE            MOV     DPTR,#delayChgInvTimer
-0017BD E0                MOVX    A,@DPTR
-0017BE 6013              JZ      ?C0075?SYS
-  418: 	{
-  419: 		delayChgInvTimer--;
-0017C0 E0                MOVX    A,@DPTR
-0017C1 14                DEC     A
-0017C2 F0                MOVX    @DPTR,A
-  420: 		if (delayChgInvTimer == 0)
-0017C3 E0                MOVX    A,@DPTR
-0017C4 700D              JNZ     ?C0075?SYS
-  421: 		{
-  422: 		
-  423: 			if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
-0017C6 904CC7            MOV     DPTR,#g_variable+08H
-0017C9 E0                MOVX    A,@DPTR
-0017CA B40406            CJNE    A,#04H,?C0075?SYS
-  424: 			{
-  425: 				kscurrmult = 0x0c;
-0017CD 904213            MOV     DPTR,#kscurrmult
-0017D0 740C              MOV     A,#0CH
-0017D2 F0                MOVX    @DPTR,A
-  426: 			}
-  427: 		}
-  428: 	}
-  429: }
-0017D3         ?C0075?SYS:
-0017D3 22                RET     
------ FUNCTION kb_cb_Timer100ms (END) -------
-
-
 ----- FUNCTION _kb_device_select (BEGIN) -----
  FILE: 'kb_process.c'
-  294: byte kb_device_select(tKSEVENT *pEvt)
-  295: {
-0017D4 904E95            MOV     DPTR,#pEvt
-0017D7 EB                MOV     A,R3
-0017D8 F0                MOVX    @DPTR,A
-0017D9 A3                INC     DPTR
-0017DA EA                MOV     A,R2
-0017DB F0                MOVX    @DPTR,A
-0017DC A3                INC     DPTR
-0017DD E9                MOV     A,R1
-0017DE F0                MOVX    @DPTR,A
-  296: 	byte temp = 0;
-  297: 	byte i=0;
+  296: byte kb_device_select(tKSEVENT *pEvt)
+  297: {
+001848 904E95            MOV     DPTR,#pEvt
+00184B EB                MOV     A,R3
+00184C F0                MOVX    @DPTR,A
+00184D A3                INC     DPTR
+00184E EA                MOV     A,R2
+00184F F0                MOVX    @DPTR,A
+001850 A3                INC     DPTR
+001851 E9                MOV     A,R1
+001852 F0                MOVX    @DPTR,A
+  298: 	byte temp = 0;
+  299: 	byte i=0;
 ;---- Variable 'temp' assigned to Register 'R6' ----
-0017DF E4                CLR     A
-0017E0 FE                MOV     R6,A
-  298: 	
+001853 E4                CLR     A
+001854 FE                MOV     R6,A
+  300: 	
 ;---- Variable 'i' assigned to Register 'R5' ----
-0017E1 FD                MOV     R5,A
-  299: 	if (fn_flag == 1) 
-0017E2 904DDB            MOV     DPTR,#fn_flag
-0017E5 E0                MOVX    A,@DPTR
-0017E6 6401              XRL     A,#01H
-0017E8 7040              JNZ     ?C0050?KB_PROCESS
-  300: 	{
-  301: 		i = KS_BUFF_POLL_LEN-1;
-0017EA 7D05              MOV     R5,#05H
-0017EC         ?C0051?KB_PROCESS:
-  302: 
-  303: 		while (i--) 
-0017EC AF05              MOV     R7,AR5
-0017EE 1D                DEC     R5
-0017EF EF                MOV     A,R7
-0017F0 603F              JZ      ?C0056?KB_PROCESS
-  304: 		{
-  305: 			temp = pEvt->ksPool[i];
-0017F2 904E95            MOV     DPTR,#pEvt
-0017F5 E0                MOVX    A,@DPTR
-0017F6 FB                MOV     R3,A
-0017F7 A3                INC     DPTR
-0017F8 E0                MOVX    A,@DPTR
-0017F9 FA                MOV     R2,A
-0017FA A3                INC     DPTR
-0017FB E0                MOVX    A,@DPTR
-0017FC 2401              ADD     A,#01H
-0017FE F9                MOV     R1,A
-0017FF E4                CLR     A
-001800 3A                ADDC    A,R2
-001801 FA                MOV     R2,A
-001802 ED                MOV     A,R5
-001803 7E00              MOV     R6,#00H
-001805 29                ADD     A,R1
-001806 F9                MOV     R1,A
-001807 EE                MOV     A,R6
-001808 3A                ADDC    A,R2
-001809 FA                MOV     R2,A
-00180A 1203B6            LCALL   ?C?CLDPTR
-00180D FE                MOV     R6,A
-  306: 
-  307: 			if (temp == HID_KEY_1) 
-00180E B41E10            CJNE    A,#01EH,?C0053?KB_PROCESS
-  308: 			{
-  309: 				g_variable.delay_enter_lpm_timer = 10;
-001811 904CEA            MOV     DPTR,#g_variable+02BH
-001814 740A              MOV     A,#0AH
-001816 F0                MOVX    @DPTR,A
-  310: 				g_variable.button_flag |= KEY_FLAG_FN_DEVICE_BUTTON;
-001817 904CCE            MOV     DPTR,#g_variable+0FH
-00181A E0                MOVX    A,@DPTR
-00181B 4408              ORL     A,#08H
-00181D F0                MOVX    @DPTR,A
-  311: 				return 1;
-00181E 7F01              MOV     R7,#01H
-001820 22                RET     
-  312: 			}
-001821         ?C0053?KB_PROCESS:
-  313: 			else
-  314: 			{
-  315: 				g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
-001821 904CCE            MOV     DPTR,#g_variable+0FH
-001824 E0                MOVX    A,@DPTR
-001825 54F7              ANL     A,#0F7H
-001827 F0                MOVX    @DPTR,A
-  316: 			}
-  317: 		}
-001828 80C2              SJMP    ?C0051?KB_PROCESS
-  318: 	}
-00182A         ?C0050?KB_PROCESS:
-  319: 	else
-  320: 	{
-  321: 		g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
-00182A 904CCE            MOV     DPTR,#g_variable+0FH
-00182D E0                MOVX    A,@DPTR
-00182E 54F7              ANL     A,#0F7H
-001830 F0                MOVX    @DPTR,A
-  322: 	}
-001831         ?C0056?KB_PROCESS:
-  323: 	return 0;
-001831 7F00              MOV     R7,#00H
-  324: }
-001833 22                RET     
+001855 FD                MOV     R5,A
+  301: 	if (fn_flag == 1) 
+001856 904DDB            MOV     DPTR,#fn_flag
+001859 E0                MOVX    A,@DPTR
+00185A 6401              XRL     A,#01H
+00185C 7040              JNZ     ?C0053?KB_PROCESS
+  302: 	{
+  303: 		i = KS_BUFF_POLL_LEN-1;
+00185E 7D05              MOV     R5,#05H
+001860         ?C0054?KB_PROCESS:
+  304: 
+  305: 		while (i--) 
+001860 AF05              MOV     R7,AR5
+001862 1D                DEC     R5
+001863 EF                MOV     A,R7
+001864 603F              JZ      ?C0059?KB_PROCESS
+  306: 		{
+  307: 			temp = pEvt->ksPool[i];
+001866 904E95            MOV     DPTR,#pEvt
+001869 E0                MOVX    A,@DPTR
+00186A FB                MOV     R3,A
+00186B A3                INC     DPTR
+00186C E0                MOVX    A,@DPTR
+00186D FA                MOV     R2,A
+00186E A3                INC     DPTR
+00186F E0                MOVX    A,@DPTR
+001870 2401              ADD     A,#01H
+001872 F9                MOV     R1,A
+001873 E4                CLR     A
+001874 3A                ADDC    A,R2
+001875 FA                MOV     R2,A
+001876 ED                MOV     A,R5
+001877 7E00              MOV     R6,#00H
+001879 29                ADD     A,R1
+00187A F9                MOV     R1,A
+00187B EE                MOV     A,R6
+00187C 3A                ADDC    A,R2
+00187D FA                MOV     R2,A
+00187E 1203B6            LCALL   ?C?CLDPTR
+001881 FE                MOV     R6,A
+  308: 
+  309: 			if (temp == HID_KEY_1) 
+001882 B41E10            CJNE    A,#01EH,?C0056?KB_PROCESS
+  310: 			{
+  311: 				g_variable.delay_enter_lpm_timer = 10;
+001885 904CEA            MOV     DPTR,#g_variable+02BH
+001888 740A              MOV     A,#0AH
+00188A F0                MOVX    @DPTR,A
+  312: 				g_variable.button_flag |= KEY_FLAG_FN_DEVICE_BUTTON;
+00188B 904CCE            MOV     DPTR,#g_variable+0FH
+00188E E0                MOVX    A,@DPTR
+00188F 4408              ORL     A,#08H
+001891 F0                MOVX    @DPTR,A
+  313: 				return 1;
+001892 7F01              MOV     R7,#01H
+001894 22                RET     
+  314: 			}
+001895         ?C0056?KB_PROCESS:
+  315: 			else
+  316: 			{
+  317: 				g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+001895 904CCE            MOV     DPTR,#g_variable+0FH
+001898 E0                MOVX    A,@DPTR
+001899 54F7              ANL     A,#0F7H
+00189B F0                MOVX    @DPTR,A
+  318: 			}
+  319: 		}
+00189C 80C2              SJMP    ?C0054?KB_PROCESS
+  320: 	}
+00189E         ?C0053?KB_PROCESS:
+  321: 	else
+  322: 	{
+  323: 		g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+00189E 904CCE            MOV     DPTR,#g_variable+0FH
+0018A1 E0                MOVX    A,@DPTR
+0018A2 54F7              ANL     A,#0F7H
+0018A4 F0                MOVX    @DPTR,A
+  324: 	}
+0018A5         ?C0059?KB_PROCESS:
+  325: 	return 0;
+0018A5 7F00              MOV     R7,#00H
+  326: }
+0018A7 22                RET     
 ----- FUNCTION _kb_device_select (END) -------
 
 
------ FUNCTION _key_replace (BEGIN) -----
+----- FUNCTION _kb_combination_key_press (BEGIN) -----
  FILE: 'kb_process.c'
-  328: byte key_replace(byte key_state, byte key_value , byte key_replace_value )
-  329: {
-;---- Variable 'key_state' assigned to Register 'R7' ----
-;---- Variable 'key_replace_value' assigned to Register 'R3' ----
-;---- Variable 'key_value' assigned to Register 'R5' ----
-  330: 	byte temp_value;
-  331: 
-  332: 	temp_value = key_value;
-001834 AE05              MOV     R6,AR5
-;---- Variable 'temp_value' assigned to Register 'R6' ----
-  333: 	if (key_state & 1)
-001836 EF                MOV     A,R7
-001837 30E00A            JNB     ACC.0,?C0057?KB_PROCESS
-  334: 	{
-  335: 		fn_tx_flag++;
-00183A 904DD3            MOV     DPTR,#fn_tx_flag
-00183D E0                MOVX    A,@DPTR
-00183E 04                INC     A
-00183F F0                MOVX    @DPTR,A
-  336: 		temp_value = key_replace_value;
-001840 AE03              MOV     R6,AR3
-  337: 	}
-001842 800D              SJMP    ?C0058?KB_PROCESS
-001844         ?C0057?KB_PROCESS:
-  338: 	else
-  339: 	{
-  340: 		if(fn_tx_flag != 0)
-001844 904DD3            MOV     DPTR,#fn_tx_flag
-001847 E0                MOVX    A,@DPTR
-001848 6007              JZ      ?C0058?KB_PROCESS
-  341: 		{	
-  342: 			fn_tx_flag--;
-00184A E0                MOVX    A,@DPTR
-00184B 14                DEC     A
-00184C F0                MOVX    @DPTR,A
-  343: 			temp_value = key_replace_value;
-00184D AF03              MOV     R7,AR3
-00184F AE07              MOV     R6,AR7
-  344: 		}
-  345: 	}
-001851         ?C0058?KB_PROCESS:
-  346: 
-  347: 	return temp_value;
-001851 AF06              MOV     R7,AR6
+  331: void kb_combination_key_press(byte press_state,byte special_key,byte standrad_key)
+  332: {
+;---- Variable 'press_state' assigned to Register 'R7' ----
+;---- Variable 'standrad_key' assigned to Register 'R3' ----
+;---- Variable 'special_key' assigned to Register 'R5' ----
+  333: 	g_variable.key_combination_ctrl = special_key;	
+  334: 	g_variable.key_combination_keyvalue = standrad_key;
+0018A8 904CF5            MOV     DPTR,#g_variable+036H
+0018AB ED                MOV     A,R5
+0018AC F0                MOVX    @DPTR,A
+  335: 
+0018AD A3                INC     DPTR
+0018AE EB                MOV     A,R3
+0018AF F0                MOVX    @DPTR,A
+  336: 	if(press_state & 1)
+0018B0 EF                MOV     A,R7
+0018B1 30E012            JNB     ACC.0,?C0060?KB_PROCESS
+  337: 	{
+  338: 		if(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE) 
+0018B4 904CF4            MOV     DPTR,#g_variable+035H
+0018B7 E0                MOVX    A,@DPTR
+0018B8 B40304            CJNE    A,#03H,?C0061?KB_PROCESS
+  339: 			g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
+0018BB 7402              MOV     A,#02H
+0018BD F0                MOVX    @DPTR,A
+0018BE 22                RET     
+0018BF         ?C0061?KB_PROCESS:
+  340: 		else	
+  341: 			g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+0018BF 904CF4            MOV     DPTR,#g_variable+035H
+0018C2 7401              MOV     A,#01H
+0018C4 F0                MOVX    @DPTR,A
+  342: 	}
+0018C5 22                RET     
+0018C6         ?C0060?KB_PROCESS:
+  343: 	else
+  344: 	{
+  345: 		g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
+0018C6 904CF4            MOV     DPTR,#g_variable+035H
+0018C9 7404              MOV     A,#04H
+0018CB F0                MOVX    @DPTR,A
+  346: 	}
+  347: 
   348: }
-001853 22                RET     
------ FUNCTION _key_replace (END) -------
+0018CC 22                RET     
+----- FUNCTION _kb_combination_key_press (END) -------
 
 
 ----- FUNCTION _key_fn_function (BEGIN) -----
  FILE: 'kb_process.c'
-  353: byte key_fn_function(byte state ,byte key_value)
-  354: {
+  351: byte key_fn_function(byte state ,byte key_value)
+  352: {
 ;---- Variable 'state' assigned to Register 'R6' ----
-001854 AE07              MOV     R6,AR7
-;---- Variable 'key_value' assigned to Register 'R4' ----
-001856 AC05              MOV     R4,AR5
-  355: 	byte temp = 0;
-  356: 
-001858 E4                CLR     A
-001859 904EAF            MOV     DPTR,#temp
-00185C F0                MOVX    @DPTR,A
-  357: 	temp = key_value;
-00185D EC                MOV     A,R4
-00185E F0                MOVX    @DPTR,A
-  358: 	if(fn_flag == 1)			// Fn lock
-00185F 904DDB            MOV     DPTR,#fn_flag
-001862 E0                MOVX    A,@DPTR
-001863 6401              XRL     A,#01H
-001865 6002              JZ      $ + 4H
-001867 21AC              AJMP    ?C0061?KB_PROCESS
-  359: 	{
-  360: 		
-  361: 		switch (key_value)
-001869 EC                MOV     A,R4
-00186A 24C6              ADD     A,#0C6H
-00186C B40C00            CJNE    A,#0CH,?C0109?KB_PROCESS
-00186F         ?C0109?KB_PROCESS:
-00186F 4002              JC      $ + 4H
-001871 21AC              AJMP    ?C0061?KB_PROCESS
-001873 901881            MOV     DPTR,#01881H
-001876 75F003            MOV     B,#03H
-001879 A4                MUL     AB
-00187A C583              XCH     A,DPH
-00187C 25F0              ADD     A,B
-00187E C583              XCH     A,DPH
-001880 73                JMP     @A+DPTR
-001881         ?C0110?KB_PROCESS:
-001881 0218A5            LJMP    ?C0063?KB_PROCESS
-001884 0218B4            LJMP    ?C0064?KB_PROCESS
-001887 0218C3            LJMP    ?C0065?KB_PROCESS
-00188A 0218EE            LJMP    ?C0068?KB_PROCESS
-00188D 021918            LJMP    ?C0071?KB_PROCESS
-001890 021943            LJMP    ?C0074?KB_PROCESS
-001893 021952            LJMP    ?C0075?KB_PROCESS
-001896 021961            LJMP    ?C0076?KB_PROCESS
-001899 021970            LJMP    ?C0077?KB_PROCESS
-00189C 02197F            LJMP    ?C0078?KB_PROCESS
-00189F 02198E            LJMP    ?C0079?KB_PROCESS
-0018A2 02199D            LJMP    ?C0080?KB_PROCESS
-  362: 		{ 
-  363: 			case HID_KEY_F1:
-0018A5         ?C0063?KB_PROCESS:
-  364: 				temp = key_replace(state,key_value,HID_MULTIKEY_LIGHT_DOWN);
-0018A5 AF06              MOV     R7,AR6
-0018A7 AD04              MOV     R5,AR4
-0018A9 7BD7              MOV     R3,#0D7H
-0018AB 1134              ACALL   _key_replace
-0018AD 904EAF            MOV     DPTR,#temp
-0018B0 EF                MOV     A,R7
-0018B1 F0                MOVX    @DPTR,A
-  365: 				break;
-0018B2 21AC              AJMP    ?C0061?KB_PROCESS
-  366: 			case HID_KEY_F2:
-0018B4         ?C0064?KB_PROCESS:
-  367: 				temp = key_replace(state,key_value,HID_MULTIKEY_LIGHT_UP);
-0018B4 AF06              MOV     R7,AR6
-0018B6 AD04              MOV     R5,AR4
-0018B8 7BD8              MOV     R3,#0D8H
-0018BA 1134              ACALL   _key_replace
-0018BC 904EAF            MOV     DPTR,#temp
-0018BF EF                MOV     A,R7
-0018C0 F0                MOVX    @DPTR,A
-  368: 				break;
-0018C1 21AC              AJMP    ?C0061?KB_PROCESS
-  369: 			case HID_KEY_F3:
-0018C3         ?C0065?KB_PROCESS:
-  370: 				g_variable.key_combination_ctrl = KS_SEL_LALT;
-0018C3 904CF5            MOV     DPTR,#g_variable+036H
-0018C6 7404              MOV     A,#04H
-0018C8 F0                MOVX    @DPTR,A
-  371: 					
-  372: 				g_variable.key_combination_keyvalue = HID_KEY_TAB;
-0018C9 A3                INC     DPTR
-0018CA 742B              MOV     A,#02BH
-0018CC F0                MOVX    @DPTR,A
-  373: 				
-  374: 				if(state & 1)
-0018CD EE                MOV     A,R6
-0018CE 30E008            JNB     ACC.0,?C0066?KB_PROCESS
-  375: 				{
-  376: 					g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
-0018D1 904CF4            MOV     DPTR,#g_variable+035H
-0018D4 7401              MOV     A,#01H
-0018D6 F0                MOVX    @DPTR,A
-  377: 				}
-0018D7 8006              SJMP    ?C0067?KB_PROCESS
-0018D9         ?C0066?KB_PROCESS:
-  378: 				else
-  379: 				{
-  380: 					g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
-0018D9 904CF4            MOV     DPTR,#g_variable+035H
-0018DC 7404              MOV     A,#04H
-0018DE F0                MOVX    @DPTR,A
-  381: 				}
-0018DF         ?C0067?KB_PROCESS:
-  382: 				
-  383: 				temp = key_replace(state,key_value,HID_KEY_NULL);
-0018DF AF06              MOV     R7,AR6
-0018E1 AD04              MOV     R5,AR4
-0018E3 E4                CLR     A
-0018E4 FB                MOV     R3,A
-0018E5 1134              ACALL   _key_replace
-0018E7 904EAF            MOV     DPTR,#temp
-0018EA EF                MOV     A,R7
-0018EB F0                MOVX    @DPTR,A
-  384: 				break;
-0018EC 21AC              AJMP    ?C0061?KB_PROCESS
-  385: 			case HID_KEY_F4:
-0018EE         ?C0068?KB_PROCESS:
-  386: 				g_variable.key_combination_ctrl = KS_SEL_LGUI;
-0018EE 904CF5            MOV     DPTR,#g_variable+036H
-0018F1 7408              MOV     A,#08H
-0018F3 F0                MOVX    @DPTR,A
-  387: 				g_variable.key_combination_keyvalue = HID_KEY_D;
-0018F4 A3                INC     DPTR
-0018F5 14                DEC     A
-0018F6 F0                MOVX    @DPTR,A
-  388: 				
-  389: 				if(state & 1)
-0018F7 EE                MOV     A,R6
-0018F8 30E008            JNB     ACC.0,?C0069?KB_PROCESS
-  390: 				{
-  391: 					g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
-0018FB 904CF4            MOV     DPTR,#g_variable+035H
-0018FE 7401              MOV     A,#01H
-001900 F0                MOVX    @DPTR,A
-  392: 				}
-001901 8006              SJMP    ?C0070?KB_PROCESS
-001903         ?C0069?KB_PROCESS:
-  393: 				else
-  394: 				{
-  395: 					g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
-001903 904CF4            MOV     DPTR,#g_variable+035H
-001906 7404              MOV     A,#04H
-001908 F0                MOVX    @DPTR,A
-  396: 				}
-001909         ?C0070?KB_PROCESS:
-  397: 				temp = key_replace(state,key_value,HID_KEY_NULL);
-001909 AF06              MOV     R7,AR6
-00190B AD04              MOV     R5,AR4
-00190D E4                CLR     A
-00190E FB                MOV     R3,A
-00190F 1134              ACALL   _key_replace
-001911 904EAF            MOV     DPTR,#temp
-001914 EF                MOV     A,R7
-001915 F0                MOVX    @DPTR,A
-  398: 
-  399: 				break;
-001916 21AC              AJMP    ?C0061?KB_PROCESS
-  400: 			case HID_KEY_F5:
-001918         ?C0071?KB_PROCESS:
-  401: 				g_variable.key_combination_ctrl = KS_SEL_LGUI;
-001918 904CF5            MOV     DPTR,#g_variable+036H
-00191B 7408              MOV     A,#08H
-00191D F0                MOVX    @DPTR,A
-  402: 				g_variable.key_combination_keyvalue = HID_KEY_LEFT_ARROW;
-00191E A3                INC     DPTR
-00191F 7450              MOV     A,#050H
-001921 F0                MOVX    @DPTR,A
-  403: 				
-  404: 				if(state & 1)
-001922 EE                MOV     A,R6
-001923 30E008            JNB     ACC.0,?C0072?KB_PROCESS
-  405: 				{
-  406: 					g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
-001926 904CF4            MOV     DPTR,#g_variable+035H
-001929 7401              MOV     A,#01H
-00192B F0                MOVX    @DPTR,A
-  407: 				}
-00192C 8006              SJMP    ?C0073?KB_PROCESS
-00192E         ?C0072?KB_PROCESS:
-  408: 				else
-  409: 				{
-  410: 					g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
-00192E 904CF4            MOV     DPTR,#g_variable+035H
-001931 7404              MOV     A,#04H
-001933 F0                MOVX    @DPTR,A
-  411: 				}
-001934         ?C0073?KB_PROCESS:
-  412: 				temp = key_replace(state,key_value,HID_KEY_NULL);
-001934 AF06              MOV     R7,AR6
-001936 AD04              MOV     R5,AR4
-001938 E4                CLR     A
-001939 FB                MOV     R3,A
-00193A 1134              ACALL   _key_replace
-00193C 904EAF            MOV     DPTR,#temp
-00193F EF                MOV     A,R7
-001940 F0                MOVX    @DPTR,A
-  413: 				break;
-001941 8069              SJMP    ?C0061?KB_PROCESS
-  414: 			case HID_KEY_F6:
-001943         ?C0074?KB_PROCESS:
-  415: 				temp = key_replace(state,key_value,HID_MULTIKEY_AC_SEARCH);
-001943 AF06              MOV     R7,AR6
-001945 AD04              MOV     R5,AR4
-001947 7BD5              MOV     R3,#0D5H
-001949 1134              ACALL   _key_replace
-00194B 904EAF            MOV     DPTR,#temp
-00194E EF                MOV     A,R7
-00194F F0                MOVX    @DPTR,A
-  416: 				break;
-001950 805A              SJMP    ?C0061?KB_PROCESS
-  417: 			case HID_KEY_F7:
-001952         ?C0075?KB_PROCESS:
-  418: 				temp = key_replace(state,key_value,HID_MULTIKEY_PRE_TRACK);
-001952 AF06              MOV     R7,AR6
-001954 AD04              MOV     R5,AR4
-001956 7BF4              MOV     R3,#0F4H
-001958 1134              ACALL   _key_replace
-00195A 904EAF            MOV     DPTR,#temp
-00195D EF                MOV     A,R7
-00195E F0                MOVX    @DPTR,A
-  419: 				break;
-00195F 804B              SJMP    ?C0061?KB_PROCESS
-  420: 			case HID_KEY_F8:
-001961         ?C0076?KB_PROCESS:
-  421: 				temp = key_replace(state,key_value,HID_MULTIKEY_PALY);
-001961 AF06              MOV     R7,AR6
-001963 AD04              MOV     R5,AR4
-001965 7BF2              MOV     R3,#0F2H
-001967 1134              ACALL   _key_replace
-001969 904EAF            MOV     DPTR,#temp
-00196C EF                MOV     A,R7
-00196D F0                MOVX    @DPTR,A
-  422: 				break;
-00196E 803C              SJMP    ?C0061?KB_PROCESS
-  423: 			case HID_KEY_F9:
-001970         ?C0077?KB_PROCESS:
-  424: 				temp = key_replace(state,key_value,HID_MULTIKEY_NEXT_TRACK);
-001970 AF06              MOV     R7,AR6
-001972 AD04              MOV     R5,AR4
-001974 7BF5              MOV     R3,#0F5H
-001976 1134              ACALL   _key_replace
-001978 904EAF            MOV     DPTR,#temp
-00197B EF                MOV     A,R7
-00197C F0                MOVX    @DPTR,A
-  425: 				break;
-00197D 802D              SJMP    ?C0061?KB_PROCESS
-  426: 			case HID_KEY_F10:
-00197F         ?C0078?KB_PROCESS:
-  427: 				temp = key_replace(state,key_value,HID_MULTIKEY_MUTE);
-00197F AF06              MOV     R7,AR6
-001981 AD04              MOV     R5,AR4
-001983 7BF8              MOV     R3,#0F8H
-001985 1134              ACALL   _key_replace
-001987 904EAF            MOV     DPTR,#temp
-00198A EF                MOV     A,R7
+0018CD AE07              MOV     R6,AR7
+;---- Variable 'key_value' assigned to Register 'R5' ----
+  353: 	byte temp = 0;
+  354: 
+0018CF E4                CLR     A
+0018D0 904EAF            MOV     DPTR,#temp
+0018D3 F0                MOVX    @DPTR,A
+  355: 	temp = key_value;
+0018D4 ED                MOV     A,R5
+0018D5 F0                MOVX    @DPTR,A
+  356: 	if(fn_flag == 1)			// Fn lock
+0018D6 904DDB            MOV     DPTR,#fn_flag
+0018D9 E0                MOVX    A,@DPTR
+0018DA 6401              XRL     A,#01H
+0018DC 6002              JZ      $ + 4H
+0018DE 219B              AJMP    ?C0065?KB_PROCESS
+  357: 	{
+  358: 	#ifdef MULTISYSTEM_ENABLE
+  359: 		if((key_value == HID_KEY_Q) || (key_value == HID_KEY_W) || (key_value == HID_KEY_E))
+  360: 		{
+  361: 			if(key_value == HID_KEY_Q)
+  362: 			{
+  363: 				g_variable.system_mode = OSMODE_IOS;
+  364: 			}
+  365: 			else if(key_value == HID_KEY_W)
+  366: 			{
+  367: 				g_variable.system_mode = OSMODE_ANDROID;
+  368: 
+  369: 			}
+  370: 			else if(key_value == HID_KEY_E)
+  371: 			{
+  372: 				g_variable.system_mode = OSMODE_WINDOWS;
+  373: 
+  374: 			}
+  375: 	
+  376: 			temp = HID_KEY_NULL;
+  377: 			IIC_WriteBlock(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+  378: 		}	
+  379: 		
+  380: 	}
+  381: 	
+  382: 	if( (fn_flag == 1 && g_variable.system_mode == OSMODE_WINDOWS) ||
+  383: 	     (fn_flag == 0 && g_variable.system_mode == OSMODE_IOS) ||
+  384: 	     (fn_flag == 0 && g_variable.system_mode == OSMODE_ANDROID))
+  385: 	{
+  386: 	#endif	
+  387: 		switch (key_value)
+0018E0 ED                MOV     A,R5
+0018E1 24D7              ADD     A,#0D7H
+0018E3 603B              JZ      ?C0067?KB_PROCESS
+0018E5 24EF              ADD     A,#0EFH
+0018E7 B40C00            CJNE    A,#0CH,?C0112?KB_PROCESS
+0018EA         ?C0112?KB_PROCESS:
+0018EA 4002              JC      $ + 4H
+0018EC 219B              AJMP    ?C0065?KB_PROCESS
+0018EE 9018FC            MOV     DPTR,#018FCH
+0018F1 75F003            MOV     B,#03H
+0018F4 A4                MUL     AB
+0018F5 C583              XCH     A,DPH
+0018F7 25F0              ADD     A,B
+0018F9 C583              XCH     A,DPH
+0018FB 73                JMP     @A+DPTR
+0018FC         ?C0113?KB_PROCESS:
+0018FC 021928            LJMP    ?C0068?KB_PROCESS
+0018FF 021930            LJMP    ?C0069?KB_PROCESS
+001902 021938            LJMP    ?C0070?KB_PROCESS
+001905 021940            LJMP    ?C0071?KB_PROCESS
+001908 02194F            LJMP    ?C0072?KB_PROCESS
+00190B 02195E            LJMP    ?C0073?KB_PROCESS
+00190E 021966            LJMP    ?C0074?KB_PROCESS
+001911 02196E            LJMP    ?C0075?KB_PROCESS
+001914 021976            LJMP    ?C0076?KB_PROCESS
+001917 02197E            LJMP    ?C0077?KB_PROCESS
+00191A 021986            LJMP    ?C0078?KB_PROCESS
+00191D 02198E            LJMP    ?C0079?KB_PROCESS
+  388: 		{ 	
+  389: 			case HID_KEY_ESC:
+001920         ?C0067?KB_PROCESS:
+  390: 				temp = HID_MULTIKEY_AC_HOME;
+001920 904EAF            MOV     DPTR,#temp
+001923 74D6              MOV     A,#0D6H
+001925 F0                MOVX    @DPTR,A
+  391: 				break;
+001926 8073              SJMP    ?C0065?KB_PROCESS
+  392: 			case HID_KEY_F1:
+001928         ?C0068?KB_PROCESS:
+  393: 				temp = HID_MULTIKEY_PRE_TRACK;
+001928 904EAF            MOV     DPTR,#temp
+00192B 74F4              MOV     A,#0F4H
+00192D F0                MOVX    @DPTR,A
+  394: 				break;
+00192E 806B              SJMP    ?C0065?KB_PROCESS
+  395: 			case HID_KEY_F2:
+001930         ?C0069?KB_PROCESS:
+  396: 				temp = HID_MULTIKEY_PALY;
+001930 904EAF            MOV     DPTR,#temp
+001933 74F2              MOV     A,#0F2H
+001935 F0                MOVX    @DPTR,A
+  397: 				break;
+001936 8063              SJMP    ?C0065?KB_PROCESS
+  398: 			case HID_KEY_F3:
+001938         ?C0070?KB_PROCESS:
+  399: 				temp = HID_MULTIKEY_NEXT_TRACK;
+001938 904EAF            MOV     DPTR,#temp
+00193B 74F5              MOV     A,#0F5H
+00193D F0                MOVX    @DPTR,A
+  400: 				break;
+00193E 805B              SJMP    ?C0065?KB_PROCESS
+  401: 			case HID_KEY_F4:
+001940         ?C0071?KB_PROCESS:
+  402: 			#ifdef MULTISYSTEM_ENABLE
+  403: 				if(g_variable.system_mode == OSMODE_IOS)
+  404: 				{
+  405: 					temp = HID_MULTIKEY_IOS_SOFT_KB;
+  406: 				}
+  407: 				else if(g_variable.system_mode == OSMODE_ANDROID)
+  408: 				{
+  409: 					temp = HID_MULTIKEY_ANDROID_SOFT_KB;
+  410: 				}
+  411: 				else
+  412: 			#endif	
+  413: 				{
+  414: 					kb_combination_key_press(state,KS_SEL_LALT,HID_KEY_TAB);
+001940 AF06              MOV     R7,AR6
+001942 7B2B              MOV     R3,#02BH
+001944 7D04              MOV     R5,#04H
+001946 11A8              ACALL   _kb_combination_key_press
+  415: 					temp = HID_KEY_NULL;
+001948 E4                CLR     A
+001949 904EAF            MOV     DPTR,#temp
+00194C F0                MOVX    @DPTR,A
+  416: 				}
+  417: 				break;
+00194D 804C              SJMP    ?C0065?KB_PROCESS
+  418: 			case HID_KEY_F5:
+00194F         ?C0072?KB_PROCESS:
+  419: 			#ifdef MULTISYSTEM_ENABLE
+  420: 				if(g_variable.system_mode == OSMODE_IOS)
+  421: 				{
+  422: 					kb_combination_key_press(state,KS_SEL_LGUI | KS_SEL_LSHIFT,HID_KEY_3);	// ios prt
+  423: 					g_variable.one_key_press_wait_release_timer = 10;
+  424: 					temp = HID_KEY_NULL;
+  425: 				}
+  426: 				else if(g_variable.system_mode == OSMODE_ANDROID)
+  427: 				{
+  428: 					temp = HID_MULTIKEY_ANDROID_SETUP_SHORTCUTS;
+  429: 				}
+  430: 				else
+  431: 			#endif	
+  432: 				{
+  433: 					kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_K);	// win8 device
+00194F AF06              MOV     R7,AR6
+001951 7B0E              MOV     R3,#0EH
+001953 7D08              MOV     R5,#08H
+001955 11A8              ACALL   _kb_combination_key_press
+  434: 					temp = HID_KEY_NULL;
+001957 E4                CLR     A
+001958 904EAF            MOV     DPTR,#temp
+00195B F0                MOVX    @DPTR,A
+  435: 				}	
+  436: 				break;
+00195C 803D              SJMP    ?C0065?KB_PROCESS
+  437: 			case HID_KEY_F6:
+00195E         ?C0073?KB_PROCESS:
+  438: 				temp = HID_MULTIKEY_MAIL;
+00195E 904EAF            MOV     DPTR,#temp
+001961 74FA              MOV     A,#0FAH
+001963 F0                MOVX    @DPTR,A
+  439: 				break;
+001964 8035              SJMP    ?C0065?KB_PROCESS
+  440: 			case HID_KEY_F7:
+001966         ?C0074?KB_PROCESS:
+  441: 				temp = HID_MULTIKEY_AC_SEARCH;
+001966 904EAF            MOV     DPTR,#temp
+001969 74D5              MOV     A,#0D5H
+00196B F0                MOVX    @DPTR,A
+  442: 				break;	
+00196C 802D              SJMP    ?C0065?KB_PROCESS
+  443: 			case HID_KEY_F8:
+00196E         ?C0075?KB_PROCESS:
+  444: 				temp = HID_MULTIKEY_NEXT_TRACK;
+00196E 904EAF            MOV     DPTR,#temp
+001971 74F5              MOV     A,#0F5H
+001973 F0                MOVX    @DPTR,A
+  445: 				break;
+001974 8025              SJMP    ?C0065?KB_PROCESS
+  446: 			case HID_KEY_F9:
+001976         ?C0076?KB_PROCESS:
+  447: 				temp = HID_MULTIKEY_VOL_DOWN;
+001976 904EAF            MOV     DPTR,#temp
+001979 74F6              MOV     A,#0F6H
+00197B F0                MOVX    @DPTR,A
+  448: 				break;
+00197C 801D              SJMP    ?C0065?KB_PROCESS
+  449: 			case HID_KEY_F10:
+00197E         ?C0077?KB_PROCESS:
+  450: 				temp = HID_MULTIKEY_VOL_UP;
+00197E 904EAF            MOV     DPTR,#temp
+001981 74F7              MOV     A,#0F7H
+001983 F0                MOVX    @DPTR,A
+  451: 				break;
+001984 8015              SJMP    ?C0065?KB_PROCESS
+  452: 			case HID_KEY_F11:
+001986         ?C0078?KB_PROCESS:
+  453: 				temp = HID_MULTIKEY_MUTE;
+001986 904EAF            MOV     DPTR,#temp
+001989 74F8              MOV     A,#0F8H
 00198B F0                MOVX    @DPTR,A
-  428: 				break;
-00198C 801E              SJMP    ?C0061?KB_PROCESS
-  429: 			case HID_KEY_F11:
+  454: 				break;
+00198C 800D              SJMP    ?C0065?KB_PROCESS
+  455: 			case HID_KEY_F12:
 00198E         ?C0079?KB_PROCESS:
-  430: 				temp = key_replace(state,key_value,HID_MULTIKEY_VOL_DOWN);
+  456: 			#ifdef MULTISYSTEM_ENABLE
+  457: 				if(g_variable.system_mode == OSMODE_IOS)		// language switch
+  458: 				{
+  459: 					kb_combination_key_press(state,KS_SEL_LCTRL,HID_KEY_SPACE);	
+  460: 				}
+  461: 				else if(g_variable.system_mode == OSMODE_ANDROID)
+  462: 				{
+  463: 					kb_combination_key_press(state,KS_SEL_LSHIFT,HID_KEY_SPACE);		
+  464: 				}
+  465: 				else
+  466: 			#endif	
+  467: 				{
+  468: 					kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_SPACE);		
 00198E AF06              MOV     R7,AR6
-001990 AD04              MOV     R5,AR4
-001992 7BF6              MOV     R3,#0F6H
-001994 1134              ACALL   _key_replace
-001996 904EAF            MOV     DPTR,#temp
-001999 EF                MOV     A,R7
+001990 7B2C              MOV     R3,#02CH
+001992 7D08              MOV     R5,#08H
+001994 11A8              ACALL   _kb_combination_key_press
+  469: 				}
+  470: 			#ifdef MULTISYSTEM_ENABLE	
+  471: 				if(state & 1)
+  472: 				{						
+  473: 					if(g_variable.system_mode != OSMODE_WINDOWS)
+  474: 						g_variable.one_key_press_wait_release_timer = 10;
+  475: 				}
+  476: 			#endif	
+  477: 				temp = HID_KEY_NULL;
+001996 E4                CLR     A
+001997 904EAF            MOV     DPTR,#temp
 00199A F0                MOVX    @DPTR,A
-  431: 				break;
-00199B 800F              SJMP    ?C0061?KB_PROCESS
-  432: 			case HID_KEY_F12:
-00199D         ?C0080?KB_PROCESS:
-  433: 				temp = key_replace(state,key_value,HID_MULTIKEY_VOL_UP);
-00199D AF06              MOV     R7,AR6
-00199F AE04              MOV     R6,AR4
-0019A1 AD06              MOV     R5,AR6
-0019A3 7BF7              MOV     R3,#0F7H
-0019A5 1134              ACALL   _key_replace
-0019A7 904EAF            MOV     DPTR,#temp
-0019AA EF                MOV     A,R7
-0019AB F0                MOVX    @DPTR,A
-  434: 				break;
-  435: 			default :
-  436: 				break;
-  437: 		}
-  438: 	}
-0019AC         ?C0061?KB_PROCESS:
-  439: 
-  440: 	return temp;
-0019AC 904EAF            MOV     DPTR,#temp
-0019AF E0                MOVX    A,@DPTR
-0019B0 FF                MOV     R7,A
-  441: }
-0019B1 22                RET     
+  478: 				break;
+  479: 			default :
+  480: 				break;
+  481: 		}
+  482: 	}
+00199B         ?C0065?KB_PROCESS:
+  483: 
+  484: 	return temp;
+00199B 904EAF            MOV     DPTR,#temp
+00199E E0                MOVX    A,@DPTR
+00199F FF                MOV     R7,A
+  485: }
+0019A0 22                RET     
 ----- FUNCTION _key_fn_function (END) -------
 
 
 ----- FUNCTION KS_GetCurrentEvt (BEGIN) -----
  FILE: 'keyscan.c'
-  299: tKSEVENT *KS_GetCurrentEvt()
-  300: {
-  301: 	//
-  302: 	byte i = 0;
-0019B2 E4                CLR     A
-0019B3 904E2F            MOV     DPTR,#i
-0019B6 F0                MOVX    @DPTR,A
-  303: 	byte j = 0;
-0019B7 A3                INC     DPTR
-0019B8 F0                MOVX    @DPTR,A
-  304: 	byte temp = 0;
-0019B9 A3                INC     DPTR
-0019BA F0                MOVX    @DPTR,A
-  305: 	byte flag = 0;
-0019BB A3                INC     DPTR
-0019BC F0                MOVX    @DPTR,A
-  306: 	byte offset = 0;
-0019BD A3                INC     DPTR
-0019BE F0                MOVX    @DPTR,A
-  307: 	byte state = 0;
-0019BF A3                INC     DPTR
-0019C0 F0                MOVX    @DPTR,A
-  308: 	byte colCounttemp = 0;
-0019C1 A3                INC     DPTR
-0019C2 F0                MOVX    @DPTR,A
-  309: 	byte rawSel =0;
-0019C3 A3                INC     DPTR
-0019C4 F0                MOVX    @DPTR,A
-  310: 	byte keyCounttemp = 0;
-0019C5 A3                INC     DPTR
-0019C6 F0                MOVX    @DPTR,A
-  311: 	byte key_value_temp = 0;
-0019C7 A3                INC     DPTR
-0019C8 F0                MOVX    @DPTR,A
-  312: 	byte ghost = 0;
-0019C9 A3                INC     DPTR
-0019CA F0                MOVX    @DPTR,A
-  313: 	byte rawCount = 0;
-0019CB A3                INC     DPTR
-0019CC F0                MOVX    @DPTR,A
-  314: 	byte colCount = 0;
-0019CD A3                INC     DPTR
-0019CE F0                MOVX    @DPTR,A
-  315: 	byte keyCount = 0;
-0019CF A3                INC     DPTR
-0019D0 F0                MOVX    @DPTR,A
-  316: 	
-  317: 	KS_ScanMatrix();
-0019D1 B136              ACALL   KS_ScanMatrix
-  318: 
-  319: 	if (compare_str(ksSelMapCurr,ksSelMapCheck,KB_KSCAN_COL_NUM) 
-0019D3 7A4D              MOV     R2,#HIGH ksSelMapCheck
-0019D5 79A8              MOV     R1,#LOW ksSelMapCheck
-0019D7 904E58            MOV     DPTR,#?_compare_str?BYTE+03H
-0019DA 7401              MOV     A,#01H
-0019DC F0                MOVX    @DPTR,A
-0019DD A3                INC     DPTR
-0019DE 744D              MOV     A,#HIGH ksSelMapCheck
-0019E0 F0                MOVX    @DPTR,A
-0019E1 A3                INC     DPTR
-0019E2 74A8              MOV     A,#LOW ksSelMapCheck
-0019E4 F0                MOVX    @DPTR,A
-0019E5 A3                INC     DPTR
-0019E6 7414              MOV     A,#014H
-0019E8 F0                MOVX    @DPTR,A
-0019E9 7B01              MOV     R3,#01H
-0019EB 7A4D              MOV     R2,#HIGH ksSelMapCurr
-0019ED 79BC              MOV     R1,#LOW ksSelMapCurr
-0019EF 71EC              ACALL   _compare_str
-0019F1 EF                MOV     A,R7
-0019F2 6016              JZ      ?C0061?KEYSCAN
-0019F4 7B01              MOV     R3,#01H
-0019F6 7A4D              MOV     R2,#HIGH ksSelMapCurr
-0019F8 79BC              MOV     R1,#LOW ksSelMapCurr
-0019FA 7D14              MOV     R5,#014H
-0019FC 71BC              ACALL   _array_is_empty
-0019FE EF                MOV     A,R7
-0019FF 7009              JNZ     ?C0061?KEYSCAN
-  320: 		&& !array_is_empty(ksSelMapCurr,KB_KSCAN_COL_NUM))
-  321: 	{
-  322: 		g_variable.button_flag |= 0x02;
-001A01 904CCE            MOV     DPTR,#g_variable+0FH
-001A04 E0                MOVX    A,@DPTR
-001A05 4402              ORL     A,#02H
-001A07 F0                MOVX    @DPTR,A
-  323: 	}
-001A08 800C              SJMP    ?C0062?KEYSCAN
-001A0A         ?C0061?KEYSCAN:
-  324: 	else
-  325: 	{	
-  326: 		g_variable.button_flag &= 0xFD;
-001A0A 904CCE            MOV     DPTR,#g_variable+0FH
+  325: tKSEVENT *KS_GetCurrentEvt()
+  326: {
+  327: 	//
+  328: 	byte i = 0;
+0019A1 E4                CLR     A
+0019A2 904E2F            MOV     DPTR,#i
+0019A5 F0                MOVX    @DPTR,A
+  329: 	byte j = 0;
+0019A6 A3                INC     DPTR
+0019A7 F0                MOVX    @DPTR,A
+  330: 	byte temp = 0;
+0019A8 A3                INC     DPTR
+0019A9 F0                MOVX    @DPTR,A
+  331: 	byte flag = 0;
+0019AA A3                INC     DPTR
+0019AB F0                MOVX    @DPTR,A
+  332: 	byte offset = 0;
+0019AC A3                INC     DPTR
+0019AD F0                MOVX    @DPTR,A
+  333: 	byte state = 0;
+0019AE A3                INC     DPTR
+0019AF F0                MOVX    @DPTR,A
+  334: 	byte colCounttemp = 0;
+0019B0 A3                INC     DPTR
+0019B1 F0                MOVX    @DPTR,A
+  335: 	byte rawSel =0;
+0019B2 A3                INC     DPTR
+0019B3 F0                MOVX    @DPTR,A
+  336: 	byte keyCounttemp = 0;
+0019B4 A3                INC     DPTR
+0019B5 F0                MOVX    @DPTR,A
+  337: 	byte key_value_temp = 0;
+0019B6 A3                INC     DPTR
+0019B7 F0                MOVX    @DPTR,A
+  338: 	byte ghost = 0;
+0019B8 A3                INC     DPTR
+0019B9 F0                MOVX    @DPTR,A
+  339: 	byte rawCount = 0;
+0019BA A3                INC     DPTR
+0019BB F0                MOVX    @DPTR,A
+  340: 	byte colCount = 0;
+0019BC A3                INC     DPTR
+0019BD F0                MOVX    @DPTR,A
+  341: 	byte keyCount = 0;
+0019BE A3                INC     DPTR
+0019BF F0                MOVX    @DPTR,A
+  342: 	
+  343: 	KS_ScanMatrix();
+0019C0 B128              ACALL   KS_ScanMatrix
+  344: 
+  345: 	if (compare_str(ksSelMapCurr,ksSelMapCheck,KB_KSCAN_COL_NUM) 
+0019C2 7A4D              MOV     R2,#HIGH ksSelMapCheck
+0019C4 79A8              MOV     R1,#LOW ksSelMapCheck
+0019C6 904E58            MOV     DPTR,#?_compare_str?BYTE+03H
+0019C9 7401              MOV     A,#01H
+0019CB F0                MOVX    @DPTR,A
+0019CC A3                INC     DPTR
+0019CD 744D              MOV     A,#HIGH ksSelMapCheck
+0019CF F0                MOVX    @DPTR,A
+0019D0 A3                INC     DPTR
+0019D1 74A8              MOV     A,#LOW ksSelMapCheck
+0019D3 F0                MOVX    @DPTR,A
+0019D4 A3                INC     DPTR
+0019D5 7414              MOV     A,#014H
+0019D7 F0                MOVX    @DPTR,A
+0019D8 7B01              MOV     R3,#01H
+0019DA 7A4D              MOV     R2,#HIGH ksSelMapCurr
+0019DC 79BC              MOV     R1,#LOW ksSelMapCurr
+0019DE 71DB              ACALL   _compare_str
+0019E0 EF                MOV     A,R7
+0019E1 6016              JZ      ?C0061?KEYSCAN
+0019E3 7B01              MOV     R3,#01H
+0019E5 7A4D              MOV     R2,#HIGH ksSelMapCurr
+0019E7 79BC              MOV     R1,#LOW ksSelMapCurr
+0019E9 7D14              MOV     R5,#014H
+0019EB 71AB              ACALL   _array_is_empty
+0019ED EF                MOV     A,R7
+0019EE 7009              JNZ     ?C0061?KEYSCAN
+  346: 		&& !array_is_empty(ksSelMapCurr,KB_KSCAN_COL_NUM))
+  347: 	{
+  348: 		g_variable.button_flag |= 0x02;
+0019F0 904CCE            MOV     DPTR,#g_variable+0FH
+0019F3 E0                MOVX    A,@DPTR
+0019F4 4402              ORL     A,#02H
+0019F6 F0                MOVX    @DPTR,A
+  349: 	}
+0019F7 800C              SJMP    ?C0062?KEYSCAN
+0019F9         ?C0061?KEYSCAN:
+  350: 	else
+  351: 	{	
+  352: 		g_variable.button_flag &= 0xFD;
+0019F9 904CCE            MOV     DPTR,#g_variable+0FH
+0019FC E0                MOVX    A,@DPTR
+0019FD 54FD              ANL     A,#0FDH
+0019FF F0                MOVX    @DPTR,A
+  353: 		g_variable.button_timer[1] = 0;
+001A00 E4                CLR     A
+001A01 904CD0            MOV     DPTR,#g_variable+011H
+001A04 F0                MOVX    @DPTR,A
+  354: 	}
+001A05         ?C0062?KEYSCAN:
+  355: 
+  356: 	for (i=0; col[i]!=0; i++) {
+001A05 E4                CLR     A
+001A06 904E2F            MOV     DPTR,#i
+001A09 F0                MOVX    @DPTR,A
+001A0A         ?C0063?KEYSCAN:
+001A0A 904E2F            MOV     DPTR,#i
 001A0D E0                MOVX    A,@DPTR
-001A0E 54FD              ANL     A,#0FDH
-001A10 F0                MOVX    @DPTR,A
-  327: 		g_variable.button_timer[1] = 0;
-001A11 E4                CLR     A
-001A12 904CD0            MOV     DPTR,#g_variable+011H
-001A15 F0                MOVX    @DPTR,A
-  328: 	}
-001A16         ?C0062?KEYSCAN:
-  329: 
-  330: 	for (i=0; col[i]!=0; i++) {
-001A16 E4                CLR     A
-001A17 904E2F            MOV     DPTR,#i
-001A1A F0                MOVX    @DPTR,A
-001A1B         ?C0063?KEYSCAN:
-001A1B 904E2F            MOV     DPTR,#i
-001A1E E0                MOVX    A,@DPTR
-001A1F FF                MOV     R7,A
-001A20 90060C            MOV     DPTR,#col
-001A23 93                MOVC    A,@A+DPTR
-001A24 602F              JZ      ?C0064?KEYSCAN
-  331: 		temp = ksSelMapCurr[i];
-001A26 74BC              MOV     A,#LOW ksSelMapCurr
-001A28 2F                ADD     A,R7
-001A29 F582              MOV     DPL,A
-001A2B E4                CLR     A
-001A2C 344D              ADDC    A,#HIGH ksSelMapCurr
-001A2E F583              MOV     DPH,A
-001A30 E0                MOVX    A,@DPTR
-001A31 904E31            MOV     DPTR,#temp
-001A34 F0                MOVX    @DPTR,A
-  332: 		if (temp!=0) {
-001A35 E0                MOVX    A,@DPTR
-001A36 FD                MOV     R5,A
-001A37 6014              JZ      ?C0065?KEYSCAN
-  333: 			colCounttemp++;
-001A39 904E35            MOV     DPTR,#colCounttemp
-001A3C E0                MOVX    A,@DPTR
-001A3D 04                INC     A
-001A3E F0                MOVX    @DPTR,A
-  334: 			rawSel = temp|rawSel;
-001A3F A3                INC     DPTR
-001A40 E0                MOVX    A,@DPTR
-001A41 FE                MOV     R6,A
-001A42 ED                MOV     A,R5
-001A43 4E                ORL     A,R6
-001A44 F0                MOVX    @DPTR,A
-  335: 			keyCounttemp += bit_count(temp);
-001A45 AF05              MOV     R7,AR5
-001A47 71AE              ACALL   _bit_count
-001A49 A3                INC     DPTR
-001A4A E0                MOVX    A,@DPTR
-001A4B 2F                ADD     A,R7
-001A4C F0                MOVX    @DPTR,A
-  336: 		}
-  337: 	}
-001A4D         ?C0065?KEYSCAN:
-001A4D 904E2F            MOV     DPTR,#i
-001A50 E0                MOVX    A,@DPTR
-001A51 04                INC     A
-001A52 F0                MOVX    @DPTR,A
-001A53 80C6              SJMP    ?C0063?KEYSCAN
-001A55         ?C0064?KEYSCAN:
-  338: 	keyCount = keyCounttemp;
-001A55 904E37            MOV     DPTR,#keyCounttemp
-001A58 E0                MOVX    A,@DPTR
-001A59 904E3C            MOV     DPTR,#keyCount
-001A5C F0                MOVX    @DPTR,A
-  339: 	colCount = colCounttemp;
-001A5D 904E35            MOV     DPTR,#colCounttemp
-001A60 E0                MOVX    A,@DPTR
-001A61 904E3B            MOV     DPTR,#colCount
-001A64 F0                MOVX    @DPTR,A
-  340: 	rawCount = bit_count(rawSel);
-001A65 904E36            MOV     DPTR,#rawSel
-001A68 E0                MOVX    A,@DPTR
-001A69 FF                MOV     R7,A
-001A6A 71AE              ACALL   _bit_count
-001A6C 904E3A            MOV     DPTR,#rawCount
-001A6F EF                MOV     A,R7
-001A70 F0                MOVX    @DPTR,A
-  341: 	if (keyCount >2 && keyCount > MAX(colCount, rawCount)) {
-001A71 904E3C            MOV     DPTR,#keyCount
-001A74 E0                MOVX    A,@DPTR
-001A75 FF                MOV     R7,A
-001A76 D3                SETB    C
-001A77 9402              SUBB    A,#02H
-001A79 401D              JC      ?C0067?KEYSCAN
-001A7B 904E3A            MOV     DPTR,#rawCount
-001A7E E0                MOVX    A,@DPTR
-001A7F FE                MOV     R6,A
-001A80 A3                INC     DPTR
-001A81 E0                MOVX    A,@DPTR
-001A82 FD                MOV     R5,A
-001A83 D3                SETB    C
-001A84 9E                SUBB    A,R6
-001A85 4004              JC      ?C0068?KEYSCAN
-001A87 AE05              MOV     R6,AR5
-001A89 8000              SJMP    ?C0069?KEYSCAN
-001A8B         ?C0068?KEYSCAN:
-001A8B         ?C0069?KEYSCAN:
-001A8B EF                MOV     A,R7
-001A8C D3                SETB    C
-001A8D 9E                SUBB    A,R6
-001A8E 4008              JC      ?C0067?KEYSCAN
-  342: 		ghost = 1;
-001A90 904E39            MOV     DPTR,#ghost
-001A93 7401              MOV     A,#01H
-001A95 F0                MOVX    @DPTR,A
-  343: 	}
-001A96 8005              SJMP    ?C0070?KEYSCAN
-001A98         ?C0067?KEYSCAN:
-  344: 	else {
-  345: 		ghost = 0;
-001A98 E4                CLR     A
-001A99 904E39            MOV     DPTR,#ghost
-001A9C F0                MOVX    @DPTR,A
-  346: 	}
-001A9D         ?C0070?KEYSCAN:
-  347: 	
-  348: 	for (i=0; col[i]!=0; i++)
-001A9D E4                CLR     A
-001A9E 904E2F            MOV     DPTR,#i
-001AA1 F0                MOVX    @DPTR,A
-001AA2         ?C0071?KEYSCAN:
-001AA2 904E2F            MOV     DPTR,#i
-001AA5 E0                MOVX    A,@DPTR
-001AA6 FF                MOV     R7,A
-001AA7 90060C            MOV     DPTR,#col
-001AAA 93                MOVC    A,@A+DPTR
-001AAB 7002              JNZ     $ + 4H
-001AAD 6182              AJMP    ?C0072?KEYSCAN
-  349: 	{
-  350: 		temp = ksSelMapCurr[i] ^ ksSelMapOld[i];
-001AAF 7493              MOV     A,#LOW ksSelMapOld
-001AB1 2F                ADD     A,R7
-001AB2 F582              MOV     DPL,A
-001AB4 E4                CLR     A
-001AB5 344D              ADDC    A,#HIGH ksSelMapOld
-001AB7 F583              MOV     DPH,A
-001AB9 E0                MOVX    A,@DPTR
-001ABA FE                MOV     R6,A
-001ABB 74BC              MOV     A,#LOW ksSelMapCurr
-001ABD 2F                ADD     A,R7
-001ABE F582              MOV     DPL,A
-001AC0 E4                CLR     A
-001AC1 344D              ADDC    A,#HIGH ksSelMapCurr
-001AC3 F583              MOV     DPH,A
-001AC5 E0                MOVX    A,@DPTR
-001AC6 6E                XRL     A,R6
-001AC7 904E31            MOV     DPTR,#temp
-001ACA F0                MOVX    @DPTR,A
-  351: 		state = ksSelMapCurr[i];
-001ACB 904E2F            MOV     DPTR,#i
-001ACE E0                MOVX    A,@DPTR
-001ACF FF                MOV     R7,A
-001AD0 24BC              ADD     A,#LOW ksSelMapCurr
-001AD2 F582              MOV     DPL,A
-001AD4 E4                CLR     A
-001AD5 344D              ADDC    A,#HIGH ksSelMapCurr
-001AD7 F583              MOV     DPH,A
-001AD9 E0                MOVX    A,@DPTR
-001ADA 904E34            MOV     DPTR,#state
-001ADD F0                MOVX    @DPTR,A
-  352: 		if (temp == 0) 
-001ADE 904E31            MOV     DPTR,#temp
-001AE1 E0                MOVX    A,@DPTR
-001AE2 7004              JNZ     ?C0074?KEYSCAN
-  353: 		{
-  354: 			continue;
-001AE4 617A              AJMP    ?C0073?KEYSCAN
-  355: 		}
-001AE6 617A              AJMP    ?C0073?KEYSCAN
-001AE8         ?C0074?KEYSCAN:
-  356: 		else 
-  357: 		{
-  358: 
-  359: 			if (ghost) 
-001AE8 904E39            MOV     DPTR,#ghost
-001AEB E0                MOVX    A,@DPTR
-001AEC 6007              JZ      ?C0076?KEYSCAN
-  360: 				return NULL;
-001AEE 7B00              MOV     R3,#00H
-001AF0 7A00              MOV     R2,#00H
-001AF2 7900              MOV     R1,#00H
-001AF4 22                RET     
-001AF5         ?C0076?KEYSCAN:
-  361: 			ksSelMapOld[i] = ksSelMapCurr[i];
-001AF5 74BC              MOV     A,#LOW ksSelMapCurr
-001AF7 2F                ADD     A,R7
-001AF8 F582              MOV     DPL,A
-001AFA E4                CLR     A
-001AFB 344D              ADDC    A,#HIGH ksSelMapCurr
-001AFD F583              MOV     DPH,A
-001AFF E0                MOVX    A,@DPTR
-001B00 FE                MOV     R6,A
-001B01 7493              MOV     A,#LOW ksSelMapOld
-001B03 2F                ADD     A,R7
-001B04 F582              MOV     DPL,A
-001B06 E4                CLR     A
-001B07 344D              ADDC    A,#HIGH ksSelMapOld
-001B09 F583              MOV     DPH,A
-001B0B EE                MOV     A,R6
-001B0C F0                MOVX    @DPTR,A
-  362: 			for (j = 0 ; j<8 ; j++) 
-001B0D E4                CLR     A
-001B0E 904E30            MOV     DPTR,#j
-001B11 F0                MOVX    @DPTR,A
-001B12         ?C0078?KEYSCAN:
-001B12 904E30            MOV     DPTR,#j
-001B15 E0                MOVX    A,@DPTR
-001B16 FF                MOV     R7,A
-001B17 C3                CLR     C
-001B18 9408              SUBB    A,#08H
-001B1A 5058              JNC     ?C0079?KEYSCAN
-  363: 			{
-  364: 				if (temp&1)
-001B1C A3                INC     DPTR
-001B1D E0                MOVX    A,@DPTR
-001B1E 30E03B            JNB     ACC.0,?C0081?KEYSCAN
-  365: 				{
-  366: 					offset = i<<3 |j;
-001B21 904E2F            MOV     DPTR,#i
-001B24 E0                MOVX    A,@DPTR
-001B25 FE                MOV     R6,A
-001B26 33                RLC     A
-001B27 33                RLC     A
-001B28 33                RLC     A
-001B29 54F8              ANL     A,#0F8H
-001B2B FE                MOV     R6,A
-001B2C EF                MOV     A,R7
-001B2D 4E                ORL     A,R6
-001B2E 904E33            MOV     DPTR,#offset
-001B31 F0                MOVX    @DPTR,A
-  367: 					key_value_temp = key_fn_function(state,ksMap[offset]);
-001B32 A3                INC     DPTR
-001B33 E0                MOVX    A,@DPTR
-001B34 FF                MOV     R7,A
-001B35 904E33            MOV     DPTR,#offset
-001B38 E0                MOVX    A,@DPTR
-001B39 900621            MOV     DPTR,#ksMap
-001B3C 93                MOVC    A,@A+DPTR
-001B3D FD                MOV     R5,A
-001B3E 1154              ACALL   _key_fn_function
-001B40 904E38            MOV     DPTR,#key_value_temp
-001B43 EF                MOV     A,R7
-001B44 F0                MOVX    @DPTR,A
-  368: 					if (state & 1)
-001B45 904E34            MOV     DPTR,#state
-001B48 E0                MOVX    A,@DPTR
-001B49 30E009            JNB     ACC.0,?C0082?KEYSCAN
-  369: 					{
-  370: 						keyIn(key_value_temp);
-001B4C 904E38            MOV     DPTR,#key_value_temp
-001B4F E0                MOVX    A,@DPTR
-001B50 FF                MOV     R7,A
-001B51 9136              ACALL   _keyIn
-  371: 					}
-001B53 8007              SJMP    ?C0081?KEYSCAN
-001B55         ?C0082?KEYSCAN:
-  372: 					else
-  373: 					{
-  374: 						keyOut(key_value_temp);
-001B55 904E38            MOV     DPTR,#key_value_temp
-001B58 E0                MOVX    A,@DPTR
-001B59 FF                MOV     R7,A
-001B5A 918C              ACALL   _keyOut
-  375: 					}
-  376: 				}
-001B5C         ?C0081?KEYSCAN:
-  377: 				temp = temp >>1;
-001B5C 904E31            MOV     DPTR,#temp
-001B5F E0                MOVX    A,@DPTR
-001B60 FF                MOV     R7,A
-001B61 C3                CLR     C
-001B62 13                RRC     A
-001B63 F0                MOVX    @DPTR,A
-  378: 				state = state>>1;
-001B64 904E34            MOV     DPTR,#state
-001B67 E0                MOVX    A,@DPTR
-001B68 FF                MOV     R7,A
-001B69 C3                CLR     C
-001B6A 13                RRC     A
-001B6B F0                MOVX    @DPTR,A
-  379: 			}
-001B6C 904E30            MOV     DPTR,#j
-001B6F E0                MOVX    A,@DPTR
-001B70 04                INC     A
-001B71 F0                MOVX    @DPTR,A
-001B72 809E              SJMP    ?C0078?KEYSCAN
-001B74         ?C0079?KEYSCAN:
-  380: 			flag = 1;
-001B74 904E32            MOV     DPTR,#flag
-001B77 7401              MOV     A,#01H
-001B79 F0                MOVX    @DPTR,A
+001A0E FF                MOV     R7,A
+001A0F 90060C            MOV     DPTR,#col
+001A12 93                MOVC    A,@A+DPTR
+001A13 602F              JZ      ?C0064?KEYSCAN
+  357: 		temp = ksSelMapCurr[i];
+001A15 74BC              MOV     A,#LOW ksSelMapCurr
+001A17 2F                ADD     A,R7
+001A18 F582              MOV     DPL,A
+001A1A E4                CLR     A
+001A1B 344D              ADDC    A,#HIGH ksSelMapCurr
+001A1D F583              MOV     DPH,A
+001A1F E0                MOVX    A,@DPTR
+001A20 904E31            MOV     DPTR,#temp
+001A23 F0                MOVX    @DPTR,A
+  358: 		if (temp!=0) {
+001A24 E0                MOVX    A,@DPTR
+001A25 FD                MOV     R5,A
+001A26 6014              JZ      ?C0065?KEYSCAN
+  359: 			colCounttemp++;
+001A28 904E35            MOV     DPTR,#colCounttemp
+001A2B E0                MOVX    A,@DPTR
+001A2C 04                INC     A
+001A2D F0                MOVX    @DPTR,A
+  360: 			rawSel = temp|rawSel;
+001A2E A3                INC     DPTR
+001A2F E0                MOVX    A,@DPTR
+001A30 FE                MOV     R6,A
+001A31 ED                MOV     A,R5
+001A32 4E                ORL     A,R6
+001A33 F0                MOVX    @DPTR,A
+  361: 			keyCounttemp += bit_count(temp);
+001A34 AF05              MOV     R7,AR5
+001A36 719D              ACALL   _bit_count
+001A38 A3                INC     DPTR
+001A39 E0                MOVX    A,@DPTR
+001A3A 2F                ADD     A,R7
+001A3B F0                MOVX    @DPTR,A
+  362: 		}
+  363: 	}
+001A3C         ?C0065?KEYSCAN:
+001A3C 904E2F            MOV     DPTR,#i
+001A3F E0                MOVX    A,@DPTR
+001A40 04                INC     A
+001A41 F0                MOVX    @DPTR,A
+001A42 80C6              SJMP    ?C0063?KEYSCAN
+001A44         ?C0064?KEYSCAN:
+  364: 	keyCount = keyCounttemp;
+001A44 904E37            MOV     DPTR,#keyCounttemp
+001A47 E0                MOVX    A,@DPTR
+001A48 904E3C            MOV     DPTR,#keyCount
+001A4B F0                MOVX    @DPTR,A
+  365: 	colCount = colCounttemp;
+001A4C 904E35            MOV     DPTR,#colCounttemp
+001A4F E0                MOVX    A,@DPTR
+001A50 904E3B            MOV     DPTR,#colCount
+001A53 F0                MOVX    @DPTR,A
+  366: 	rawCount = bit_count(rawSel);
+001A54 904E36            MOV     DPTR,#rawSel
+001A57 E0                MOVX    A,@DPTR
+001A58 FF                MOV     R7,A
+001A59 719D              ACALL   _bit_count
+001A5B 904E3A            MOV     DPTR,#rawCount
+001A5E EF                MOV     A,R7
+001A5F F0                MOVX    @DPTR,A
+  367: 	if (keyCount >2 && keyCount > MAX(colCount, rawCount)) {
+001A60 904E3C            MOV     DPTR,#keyCount
+001A63 E0                MOVX    A,@DPTR
+001A64 FF                MOV     R7,A
+001A65 D3                SETB    C
+001A66 9402              SUBB    A,#02H
+001A68 401D              JC      ?C0067?KEYSCAN
+001A6A 904E3A            MOV     DPTR,#rawCount
+001A6D E0                MOVX    A,@DPTR
+001A6E FE                MOV     R6,A
+001A6F A3                INC     DPTR
+001A70 E0                MOVX    A,@DPTR
+001A71 FD                MOV     R5,A
+001A72 D3                SETB    C
+001A73 9E                SUBB    A,R6
+001A74 4004              JC      ?C0068?KEYSCAN
+001A76 AE05              MOV     R6,AR5
+001A78 8000              SJMP    ?C0069?KEYSCAN
+001A7A         ?C0068?KEYSCAN:
+001A7A         ?C0069?KEYSCAN:
+001A7A EF                MOV     A,R7
+001A7B D3                SETB    C
+001A7C 9E                SUBB    A,R6
+001A7D 4008              JC      ?C0067?KEYSCAN
+  368: 		ghost = 1;
+001A7F 904E39            MOV     DPTR,#ghost
+001A82 7401              MOV     A,#01H
+001A84 F0                MOVX    @DPTR,A
+  369: 	}
+001A85 8005              SJMP    ?C0070?KEYSCAN
+001A87         ?C0067?KEYSCAN:
+  370: 	else {
+  371: 		ghost = 0;
+001A87 E4                CLR     A
+001A88 904E39            MOV     DPTR,#ghost
+001A8B F0                MOVX    @DPTR,A
+  372: 	}
+001A8C         ?C0070?KEYSCAN:
+  373: 	
+  374: 	for (i=0; col[i]!=0; i++)
+001A8C E4                CLR     A
+001A8D 904E2F            MOV     DPTR,#i
+001A90 F0                MOVX    @DPTR,A
+001A91         ?C0071?KEYSCAN:
+001A91 904E2F            MOV     DPTR,#i
+001A94 E0                MOVX    A,@DPTR
+001A95 FF                MOV     R7,A
+001A96 90060C            MOV     DPTR,#col
+001A99 93                MOVC    A,@A+DPTR
+001A9A 7002              JNZ     $ + 4H
+001A9C 6171              AJMP    ?C0072?KEYSCAN
+  375: 	{
+  376: 		temp = ksSelMapCurr[i] ^ ksSelMapOld[i];
+001A9E 7493              MOV     A,#LOW ksSelMapOld
+001AA0 2F                ADD     A,R7
+001AA1 F582              MOV     DPL,A
+001AA3 E4                CLR     A
+001AA4 344D              ADDC    A,#HIGH ksSelMapOld
+001AA6 F583              MOV     DPH,A
+001AA8 E0                MOVX    A,@DPTR
+001AA9 FE                MOV     R6,A
+001AAA 74BC              MOV     A,#LOW ksSelMapCurr
+001AAC 2F                ADD     A,R7
+001AAD F582              MOV     DPL,A
+001AAF E4                CLR     A
+001AB0 344D              ADDC    A,#HIGH ksSelMapCurr
+001AB2 F583              MOV     DPH,A
+001AB4 E0                MOVX    A,@DPTR
+001AB5 6E                XRL     A,R6
+001AB6 904E31            MOV     DPTR,#temp
+001AB9 F0                MOVX    @DPTR,A
+  377: 		state = ksSelMapCurr[i];
+001ABA 904E2F            MOV     DPTR,#i
+001ABD E0                MOVX    A,@DPTR
+001ABE FF                MOV     R7,A
+001ABF 24BC              ADD     A,#LOW ksSelMapCurr
+001AC1 F582              MOV     DPL,A
+001AC3 E4                CLR     A
+001AC4 344D              ADDC    A,#HIGH ksSelMapCurr
+001AC6 F583              MOV     DPH,A
+001AC8 E0                MOVX    A,@DPTR
+001AC9 904E34            MOV     DPTR,#state
+001ACC F0                MOVX    @DPTR,A
+  378: 		if (temp == 0) 
+001ACD 904E31            MOV     DPTR,#temp
+001AD0 E0                MOVX    A,@DPTR
+001AD1 7004              JNZ     ?C0074?KEYSCAN
+  379: 		{
+  380: 			continue;
+001AD3 6169              AJMP    ?C0073?KEYSCAN
   381: 		}
-  382: 	}
-001B7A         ?C0073?KEYSCAN:
-001B7A 904E2F            MOV     DPTR,#i
-001B7D E0                MOVX    A,@DPTR
-001B7E 04                INC     A
-001B7F F0                MOVX    @DPTR,A
-001B80 41A2              AJMP    ?C0071?KEYSCAN
-001B82         ?C0072?KEYSCAN:
-  383: 	
-  384: 	if((mult_key_status == KEY_RELEASE) && (standard_key_release_flag == 1))
-001B82 904E01            MOV     DPTR,#mult_key_status
+001AD5 6169              AJMP    ?C0073?KEYSCAN
+001AD7         ?C0074?KEYSCAN:
+  382: 		else 
+  383: 		{
+  384: 
+  385: 			if (ghost) 
+001AD7 904E39            MOV     DPTR,#ghost
+001ADA E0                MOVX    A,@DPTR
+001ADB 6007              JZ      ?C0076?KEYSCAN
+  386: 				return NULL;
+001ADD 7B00              MOV     R3,#00H
+001ADF 7A00              MOV     R2,#00H
+001AE1 7900              MOV     R1,#00H
+001AE3 22                RET     
+001AE4         ?C0076?KEYSCAN:
+  387: 			ksSelMapOld[i] = ksSelMapCurr[i];
+001AE4 74BC              MOV     A,#LOW ksSelMapCurr
+001AE6 2F                ADD     A,R7
+001AE7 F582              MOV     DPL,A
+001AE9 E4                CLR     A
+001AEA 344D              ADDC    A,#HIGH ksSelMapCurr
+001AEC F583              MOV     DPH,A
+001AEE E0                MOVX    A,@DPTR
+001AEF FE                MOV     R6,A
+001AF0 7493              MOV     A,#LOW ksSelMapOld
+001AF2 2F                ADD     A,R7
+001AF3 F582              MOV     DPL,A
+001AF5 E4                CLR     A
+001AF6 344D              ADDC    A,#HIGH ksSelMapOld
+001AF8 F583              MOV     DPH,A
+001AFA EE                MOV     A,R6
+001AFB F0                MOVX    @DPTR,A
+  388: 			for (j = 0 ; j<8 ; j++) 
+001AFC E4                CLR     A
+001AFD 904E30            MOV     DPTR,#j
+001B00 F0                MOVX    @DPTR,A
+001B01         ?C0078?KEYSCAN:
+001B01 904E30            MOV     DPTR,#j
+001B04 E0                MOVX    A,@DPTR
+001B05 FF                MOV     R7,A
+001B06 C3                CLR     C
+001B07 9408              SUBB    A,#08H
+001B09 5058              JNC     ?C0079?KEYSCAN
+  389: 			{
+  390: 				if (temp&1)
+001B0B A3                INC     DPTR
+001B0C E0                MOVX    A,@DPTR
+001B0D 30E03B            JNB     ACC.0,?C0081?KEYSCAN
+  391: 				{
+  392: 					offset = i<<3 |j;
+001B10 904E2F            MOV     DPTR,#i
+001B13 E0                MOVX    A,@DPTR
+001B14 FE                MOV     R6,A
+001B15 33                RLC     A
+001B16 33                RLC     A
+001B17 33                RLC     A
+001B18 54F8              ANL     A,#0F8H
+001B1A FE                MOV     R6,A
+001B1B EF                MOV     A,R7
+001B1C 4E                ORL     A,R6
+001B1D 904E33            MOV     DPTR,#offset
+001B20 F0                MOVX    @DPTR,A
+  393: 					key_value_temp = key_fn_function(state,ksMap[offset]);
+001B21 A3                INC     DPTR
+001B22 E0                MOVX    A,@DPTR
+001B23 FF                MOV     R7,A
+001B24 904E33            MOV     DPTR,#offset
+001B27 E0                MOVX    A,@DPTR
+001B28 900621            MOV     DPTR,#ksMap
+001B2B 93                MOVC    A,@A+DPTR
+001B2C FD                MOV     R5,A
+001B2D 11CD              ACALL   _key_fn_function
+001B2F 904E38            MOV     DPTR,#key_value_temp
+001B32 EF                MOV     A,R7
+001B33 F0                MOVX    @DPTR,A
+  394: 					if (state & 1)
+001B34 904E34            MOV     DPTR,#state
+001B37 E0                MOVX    A,@DPTR
+001B38 30E009            JNB     ACC.0,?C0082?KEYSCAN
+  395: 					{
+  396: 						keyIn(key_value_temp);
+001B3B 904E38            MOV     DPTR,#key_value_temp
+001B3E E0                MOVX    A,@DPTR
+001B3F FF                MOV     R7,A
+001B40 9125              ACALL   _keyIn
+  397: 					}
+001B42 8007              SJMP    ?C0081?KEYSCAN
+001B44         ?C0082?KEYSCAN:
+  398: 					else
+  399: 					{
+  400: 						keyOut(key_value_temp);
+001B44 904E38            MOV     DPTR,#key_value_temp
+001B47 E0                MOVX    A,@DPTR
+001B48 FF                MOV     R7,A
+001B49 917D              ACALL   _keyOut
+  401: 					}
+  402: 				}
+001B4B         ?C0081?KEYSCAN:
+  403: 				temp = temp >>1;
+001B4B 904E31            MOV     DPTR,#temp
+001B4E E0                MOVX    A,@DPTR
+001B4F FF                MOV     R7,A
+001B50 C3                CLR     C
+001B51 13                RRC     A
+001B52 F0                MOVX    @DPTR,A
+  404: 				state = state>>1;
+001B53 904E34            MOV     DPTR,#state
+001B56 E0                MOVX    A,@DPTR
+001B57 FF                MOV     R7,A
+001B58 C3                CLR     C
+001B59 13                RRC     A
+001B5A F0                MOVX    @DPTR,A
+  405: 			}
+001B5B 904E30            MOV     DPTR,#j
+001B5E E0                MOVX    A,@DPTR
+001B5F 04                INC     A
+001B60 F0                MOVX    @DPTR,A
+001B61 809E              SJMP    ?C0078?KEYSCAN
+001B63         ?C0079?KEYSCAN:
+  406: 			flag = 1;
+001B63 904E32            MOV     DPTR,#flag
+001B66 7401              MOV     A,#01H
+001B68 F0                MOVX    @DPTR,A
+  407: 		}
+  408: 	}
+001B69         ?C0073?KEYSCAN:
+001B69 904E2F            MOV     DPTR,#i
+001B6C E0                MOVX    A,@DPTR
+001B6D 04                INC     A
+001B6E F0                MOVX    @DPTR,A
+001B6F 4191              AJMP    ?C0071?KEYSCAN
+001B71         ?C0072?KEYSCAN:
+  409: 	
+  410: 	if((mult_key_status == KEY_RELEASE) && (standard_key_release_flag == 1))
+001B71 904E01            MOV     DPTR,#mult_key_status
+001B74 E0                MOVX    A,@DPTR
+001B75 B4030A            CJNE    A,#03H,?C0084?KEYSCAN
+001B78 904DD8            MOV     DPTR,#standard_key_release_flag
+001B7B E0                MOVX    A,@DPTR
+001B7C B40103            CJNE    A,#01H,?C0084?KEYSCAN
+  411: 	{
+  412: 		standard_key_release_flag = 2;		//media key and standard key  release the same time
+001B7F 7402              MOV     A,#02H
+001B81 F0                MOVX    @DPTR,A
+  413: 	}
+001B82         ?C0084?KEYSCAN:
+  414: 
+  415: 	
+  416: 	if (flag || standard_key_release_flag == 2) 
+001B82 904E32            MOV     DPTR,#flag
 001B85 E0                MOVX    A,@DPTR
-001B86 B4030A            CJNE    A,#03H,?C0084?KEYSCAN
-001B89 904DD8            MOV     DPTR,#standard_key_release_flag
-001B8C E0                MOVX    A,@DPTR
-001B8D B40103            CJNE    A,#01H,?C0084?KEYSCAN
-  385: 	{
-  386: 		standard_key_release_flag = 2;		//media key and standard key  release the same time
-001B90 7402              MOV     A,#02H
-001B92 F0                MOVX    @DPTR,A
-  387: 	}
-001B93         ?C0084?KEYSCAN:
-  388: 
-  389: 	
-  390: 	if (flag || standard_key_release_flag == 2) 
-001B93 904E32            MOV     DPTR,#flag
-001B96 E0                MOVX    A,@DPTR
-001B97 7007              JNZ     ?C0086?KEYSCAN
-001B99 904DD8            MOV     DPTR,#standard_key_release_flag
-001B9C E0                MOVX    A,@DPTR
-001B9D B40207            CJNE    A,#02H,?C0085?KEYSCAN
-001BA0         ?C0086?KEYSCAN:
-  391: 	{
-  392: 		return &ksEvtPool;
-001BA0 7B01              MOV     R3,#01H
-001BA2 7A4E              MOV     R2,#HIGH ksEvtPool
-001BA4 794E              MOV     R1,#LOW ksEvtPool
-001BA6 22                RET     
-  393: 	}
-001BA7         ?C0085?KEYSCAN:
-  394: 	else
-  395: 	{
-  396: 		return NULL;
-001BA7 7B00              MOV     R3,#00H
-001BA9 7A00              MOV     R2,#00H
-001BAB 7900              MOV     R1,#00H
-  397: 	}
-  398: 	
-  399: 
-  400: }
-001BAD 22                RET     
+001B86 7007              JNZ     ?C0086?KEYSCAN
+001B88 904DD8            MOV     DPTR,#standard_key_release_flag
+001B8B E0                MOVX    A,@DPTR
+001B8C B40207            CJNE    A,#02H,?C0085?KEYSCAN
+001B8F         ?C0086?KEYSCAN:
+  417: 	{
+  418: 		return &ksEvtPool;
+001B8F 7B01              MOV     R3,#01H
+001B91 7A4E              MOV     R2,#HIGH ksEvtPool
+001B93 794E              MOV     R1,#LOW ksEvtPool
+001B95 22                RET     
+  419: 	}
+001B96         ?C0085?KEYSCAN:
+  420: 	else
+  421: 	{
+  422: 		return NULL;
+001B96 7B00              MOV     R3,#00H
+001B98 7A00              MOV     R2,#00H
+001B9A 7900              MOV     R1,#00H
+  423: 	}
+  424: 	
+  425: 
+  426: }
+001B9C 22                RET     
 ----- FUNCTION KS_GetCurrentEvt (END) -------
 
 
@@ -5026,968 +5149,813 @@
    26: 	unsigned char c;
    27: 	for (c = 0; v; c++) {
 ;---- Variable 'c' assigned to Register 'R6' ----
-001BAE E4                CLR     A
-001BAF FE                MOV     R6,A
-001BB0         ?C0001?KEYSCAN:
-001BB0 EF                MOV     A,R7
-001BB1 6006              JZ      ?C0002?KEYSCAN
+001B9D E4                CLR     A
+001B9E FE                MOV     R6,A
+001B9F         ?C0001?KEYSCAN:
+001B9F EF                MOV     A,R7
+001BA0 6006              JZ      ?C0002?KEYSCAN
    28:     	v &= v - 1;
-001BB3 14                DEC     A
-001BB4 5F                ANL     A,R7
-001BB5 FF                MOV     R7,A
+001BA2 14                DEC     A
+001BA3 5F                ANL     A,R7
+001BA4 FF                MOV     R7,A
    29:     }
-001BB6 0E                INC     R6
-001BB7 80F7              SJMP    ?C0001?KEYSCAN
-001BB9         ?C0002?KEYSCAN:
+001BA5 0E                INC     R6
+001BA6 80F7              SJMP    ?C0001?KEYSCAN
+001BA8         ?C0002?KEYSCAN:
    30:     return c;
-001BB9 AF06              MOV     R7,AR6
+001BA8 AF06              MOV     R7,AR6
    31: }
-001BBB 22                RET     
+001BAA 22                RET     
 ----- FUNCTION _bit_count (END) -------
 
 
 ----- FUNCTION _array_is_empty (BEGIN) -----
  FILE: 'keyscan.c'
-  287: byte array_is_empty(byte * str1,byte len)
-  288: {
-001BBC 904E98            MOV     DPTR,#str1
-001BBF EB                MOV     A,R3
-001BC0 F0                MOVX    @DPTR,A
-001BC1 A3                INC     DPTR
-001BC2 EA                MOV     A,R2
-001BC3 F0                MOVX    @DPTR,A
-001BC4 A3                INC     DPTR
-001BC5 E9                MOV     A,R1
-001BC6 F0                MOVX    @DPTR,A
+  313: byte array_is_empty(byte * str1,byte len)
+  314: {
+001BAB 904E98            MOV     DPTR,#str1
+001BAE EB                MOV     A,R3
+001BAF F0                MOVX    @DPTR,A
+001BB0 A3                INC     DPTR
+001BB1 EA                MOV     A,R2
+001BB2 F0                MOVX    @DPTR,A
+001BB3 A3                INC     DPTR
+001BB4 E9                MOV     A,R1
+001BB5 F0                MOVX    @DPTR,A
 ;---- Variable 'len' assigned to Register 'R5' ----
-  289: 	byte i;
-  290: 	for (i=0;i < len;i++)
+  315: 	byte i;
+  316: 	for (i=0;i < len;i++)
 ;---- Variable 'i' assigned to Register 'R7' ----
-001BC7 E4                CLR     A
-001BC8 FF                MOV     R7,A
-001BC9         ?C0056?KEYSCAN:
-001BC9 EF                MOV     A,R7
-001BCA C3                CLR     C
-001BCB 9D                SUBB    A,R5
-001BCC 501B              JNC     ?C0057?KEYSCAN
-  291: 	{
-  292: 		if (str1[i] != 0)
-001BCE 904E98            MOV     DPTR,#str1
-001BD1 E0                MOVX    A,@DPTR
-001BD2 FB                MOV     R3,A
-001BD3 A3                INC     DPTR
-001BD4 E0                MOVX    A,@DPTR
-001BD5 FA                MOV     R2,A
-001BD6 A3                INC     DPTR
-001BD7 E0                MOVX    A,@DPTR
-001BD8 F9                MOV     R1,A
-001BD9 8F82              MOV     DPL,R7
-001BDB 758300            MOV     DPH,#00H
-001BDE 1203CF            LCALL   ?C?CLDOPTR
-001BE1 6003              JZ      ?C0058?KEYSCAN
-  293: 			return 0x00;
-001BE3 7F00              MOV     R7,#00H
-001BE5 22                RET     
-  294: 	}
-001BE6         ?C0058?KEYSCAN:
-001BE6 0F                INC     R7
-001BE7 80E0              SJMP    ?C0056?KEYSCAN
-001BE9         ?C0057?KEYSCAN:
-  295: 	return 0x01;
-001BE9 7F01              MOV     R7,#01H
-  296: }
-001BEB 22                RET     
+001BB6 E4                CLR     A
+001BB7 FF                MOV     R7,A
+001BB8         ?C0056?KEYSCAN:
+001BB8 EF                MOV     A,R7
+001BB9 C3                CLR     C
+001BBA 9D                SUBB    A,R5
+001BBB 501B              JNC     ?C0057?KEYSCAN
+  317: 	{
+  318: 		if (str1[i] != 0)
+001BBD 904E98            MOV     DPTR,#str1
+001BC0 E0                MOVX    A,@DPTR
+001BC1 FB                MOV     R3,A
+001BC2 A3                INC     DPTR
+001BC3 E0                MOVX    A,@DPTR
+001BC4 FA                MOV     R2,A
+001BC5 A3                INC     DPTR
+001BC6 E0                MOVX    A,@DPTR
+001BC7 F9                MOV     R1,A
+001BC8 8F82              MOV     DPL,R7
+001BCA 758300            MOV     DPH,#00H
+001BCD 1203CF            LCALL   ?C?CLDOPTR
+001BD0 6003              JZ      ?C0058?KEYSCAN
+  319: 			return 0x00;
+001BD2 7F00              MOV     R7,#00H
+001BD4 22                RET     
+  320: 	}
+001BD5         ?C0058?KEYSCAN:
+001BD5 0F                INC     R7
+001BD6 80E0              SJMP    ?C0056?KEYSCAN
+001BD8         ?C0057?KEYSCAN:
+  321: 	return 0x01;
+001BD8 7F01              MOV     R7,#01H
+  322: }
+001BDA 22                RET     
 ----- FUNCTION _array_is_empty (END) -------
 
 
 ----- FUNCTION _compare_str (BEGIN) -----
-001BEC 904E55            MOV     DPTR,#str1
-001BEF EB                MOV     A,R3
-001BF0 F0                MOVX    @DPTR,A
-001BF1 A3                INC     DPTR
-001BF2 EA                MOV     A,R2
-001BF3 F0                MOVX    @DPTR,A
-001BF4 A3                INC     DPTR
-001BF5 E9                MOV     A,R1
-001BF6 F0                MOVX    @DPTR,A
+001BDB 904E55            MOV     DPTR,#str1
+001BDE EB                MOV     A,R3
+001BDF F0                MOVX    @DPTR,A
+001BE0 A3                INC     DPTR
+001BE1 EA                MOV     A,R2
+001BE2 F0                MOVX    @DPTR,A
+001BE3 A3                INC     DPTR
+001BE4 E9                MOV     A,R1
+001BE5 F0                MOVX    @DPTR,A
 ;---- Variable 'i' assigned to Register 'R7' ----
-001BF7 E4                CLR     A
-001BF8 FF                MOV     R7,A
-001BF9         ?C0021?UTILITIES:
-001BF9 904E5B            MOV     DPTR,#len
-001BFC E0                MOVX    A,@DPTR
-001BFD FE                MOV     R6,A
-001BFE EF                MOV     A,R7
-001BFF C3                CLR     C
-001C00 9E                SUBB    A,R6
-001C01 5030              JNC     ?C0022?UTILITIES
-001C03 904E58            MOV     DPTR,#str2
-001C06 E0                MOVX    A,@DPTR
-001C07 FB                MOV     R3,A
-001C08 A3                INC     DPTR
+001BE6 E4                CLR     A
+001BE7 FF                MOV     R7,A
+001BE8         ?C0021?UTILITIES:
+001BE8 904E5B            MOV     DPTR,#len
+001BEB E0                MOVX    A,@DPTR
+001BEC FE                MOV     R6,A
+001BED EF                MOV     A,R7
+001BEE C3                CLR     C
+001BEF 9E                SUBB    A,R6
+001BF0 5030              JNC     ?C0022?UTILITIES
+001BF2 904E58            MOV     DPTR,#str2
+001BF5 E0                MOVX    A,@DPTR
+001BF6 FB                MOV     R3,A
+001BF7 A3                INC     DPTR
+001BF8 E0                MOVX    A,@DPTR
+001BF9 FA                MOV     R2,A
+001BFA A3                INC     DPTR
+001BFB E0                MOVX    A,@DPTR
+001BFC F9                MOV     R1,A
+001BFD 8F82              MOV     DPL,R7
+001BFF 758300            MOV     DPH,#00H
+001C02 1203CF            LCALL   ?C?CLDOPTR
+001C05 FE                MOV     R6,A
+001C06 904E55            MOV     DPTR,#str1
 001C09 E0                MOVX    A,@DPTR
-001C0A FA                MOV     R2,A
+001C0A FB                MOV     R3,A
 001C0B A3                INC     DPTR
 001C0C E0                MOVX    A,@DPTR
-001C0D F9                MOV     R1,A
-001C0E 8F82              MOV     DPL,R7
-001C10 758300            MOV     DPH,#00H
-001C13 1203CF            LCALL   ?C?CLDOPTR
-001C16 FE                MOV     R6,A
-001C17 904E55            MOV     DPTR,#str1
-001C1A E0                MOVX    A,@DPTR
-001C1B FB                MOV     R3,A
-001C1C A3                INC     DPTR
-001C1D E0                MOVX    A,@DPTR
-001C1E FA                MOV     R2,A
-001C1F A3                INC     DPTR
-001C20 E0                MOVX    A,@DPTR
-001C21 F9                MOV     R1,A
-001C22 8F82              MOV     DPL,R7
-001C24 758300            MOV     DPH,#00H
-001C27 1203CF            LCALL   ?C?CLDOPTR
-001C2A 6E                XRL     A,R6
-001C2B 6003              JZ      ?C0023?UTILITIES
-001C2D 7F00              MOV     R7,#00H
-001C2F 22                RET     
-001C30         ?C0023?UTILITIES:
-001C30 0F                INC     R7
-001C31 80C6              SJMP    ?C0021?UTILITIES
-001C33         ?C0022?UTILITIES:
-001C33 7F01              MOV     R7,#01H
-001C35 22                RET     
+001C0D FA                MOV     R2,A
+001C0E A3                INC     DPTR
+001C0F E0                MOVX    A,@DPTR
+001C10 F9                MOV     R1,A
+001C11 8F82              MOV     DPL,R7
+001C13 758300            MOV     DPH,#00H
+001C16 1203CF            LCALL   ?C?CLDOPTR
+001C19 6E                XRL     A,R6
+001C1A 6003              JZ      ?C0023?UTILITIES
+001C1C 7F00              MOV     R7,#00H
+001C1E 22                RET     
+001C1F         ?C0023?UTILITIES:
+001C1F 0F                INC     R7
+001C20 80C6              SJMP    ?C0021?UTILITIES
+001C22         ?C0022?UTILITIES:
+001C22 7F01              MOV     R7,#01H
+001C24 22                RET     
 ----- FUNCTION _compare_str (END) -------
 
 
 ----- FUNCTION _keyIn (BEGIN) -----
  FILE: 'keyscan.c'
-   35: static void keyIn(byte key)
-   36: {
+   52: static void keyIn(byte key)
+   53: {
 ;---- Variable 'key' assigned to Register 'R7' ----
-   37: 	byte i = 0;
-   38: 
+   54: 	byte i = 0;
+   55: 	byte key_temp;
 ;---- Variable 'i' assigned to Register 'R6' ----
-001C36 E4                CLR     A
-001C37 FE                MOV     R6,A
-   39: 	if(key >= 0xe0 && key <= 0xe7)
-001C38 EF                MOV     A,R7
-001C39 C3                CLR     C
-001C3A 94E0              SUBB    A,#0E0H
-001C3C 4020              JC      ?C0005?KEYSCAN
-001C3E EF                MOV     A,R7
-001C3F D3                SETB    C
-001C40 94E7              SUBB    A,#0E7H
-001C42 501A              JNC     ?C0005?KEYSCAN
-   40: 	{
-   41: 		ksEvtPool.standardSel  |=  0x01 << (key & 0x07);
-001C44 904E4E            MOV     DPTR,#ksEvtPool
-001C47 E0                MOVX    A,@DPTR
-001C48 FE                MOV     R6,A
-001C49 EF                MOV     A,R7
-001C4A 5407              ANL     A,#07H
-001C4C FF                MOV     R7,A
-001C4D 7401              MOV     A,#01H
-001C4F A807              MOV     R0,AR7
-001C51 08                INC     R0
-001C52 8002              SJMP    ?C0089?KEYSCAN
-001C54         ?C0088?KEYSCAN:
-001C54 C3                CLR     C
-001C55 33                RLC     A
-001C56         ?C0089?KEYSCAN:
-001C56 D8FC              DJNZ    R0,?C0088?KEYSCAN
-001C58 4E                ORL     A,R6
-001C59 904E4E            MOV     DPTR,#ksEvtPool
-001C5C F0                MOVX    @DPTR,A
-001C5D 22                RET     
-   42: 		return;
-   43: 	}
-001C5E         ?C0005?KEYSCAN:
-   44: /*
-   45: 
-   46: 	if (key == HID_KEY_RIGHT_GUI)
-   47: 	{
-   48: 		ksEvtPool.standardSel |= KS_SEL_RGUI;
-   49: 		return;
-   50: 	}
-   51: 	else if (key ==HID_KEY_RIGHT_ALT) 
-   52: 	{
-   53: 		ksEvtPool.standardSel |= KS_SEL_RALT;
-   54: 		return;
-   55: 	}
-   56: 	else if (key ==HID_KEY_RIGHT_SHIFT) 
-   57: 	{
-   58: 		ksEvtPool.standardSel |= KS_SEL_RSHIFT;
-   59: 		return;
-   60: 	}
-   61: 	else if (key ==HID_KEY_RIGHT_CTL) 
-   62: 	{
-   63: 		ksEvtPool.standardSel |= KS_SEL_RCTRL;
-   64: 		return;
-   65: 	}
-   66: 	else if (key ==HID_KEY_LEFT_GUI) 
-   67: 	{
-   68: 		ksEvtPool.standardSel |= KS_SEL_LGUI;
-   69: 		return;
-   70: 	}
-   71: 	else if (key ==HID_KEY_LEFT_ALT) 
-   72: 	{
-   73: 		ksEvtPool.standardSel |= KS_SEL_LALT;
-   74: 		return;
-   75: 	}
-   76: 	else if (key ==HID_KEY_LEFT_SHIFT)
-   77: 	{
-   78: 		ksEvtPool.standardSel |= KS_SEL_LSHIFT;
-   79: 		return;
-   80: 	}
-   81: 	else if (key ==HID_KEY_LEFT_CTL) 
-   82: 	{
-   83: 		ksEvtPool.standardSel |= KS_SEL_LCTRL;
-   84: 		return;
-   85: 	}
-   86: */	
-   87: 	//special key
-   88: 
-   89: 	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
-001C5E E4                CLR     A
-001C5F FE                MOV     R6,A
-001C60         ?C0007?KEYSCAN:
-   90: 	{
-   91: 		if (ksEvtPool.ksPool[i] == key)
-001C60 744F              MOV     A,#LOW ksEvtPool+01H
-001C62 2E                ADD     A,R6
-001C63 F582              MOV     DPL,A
-001C65 E4                CLR     A
-001C66 344E              ADDC    A,#HIGH ksEvtPool+01H
-001C68 F583              MOV     DPH,A
-001C6A E0                MOVX    A,@DPTR
-001C6B FD                MOV     R5,A
-001C6C 6F                XRL     A,R7
-001C6D 601C              JZ      ?C0006?KEYSCAN
-   92: 			break;
-001C6F         ?C0010?KEYSCAN:
-   93: 		if (ksEvtPool.ksPool[i] == 0) 
-001C6F ED                MOV     A,R5
-001C70 7014              JNZ     ?C0009?KEYSCAN
-   94: 		{
-   95: 			if(mult_key_value != key)
-001C72 904DE3            MOV     DPTR,#mult_key_value
-001C75 E0                MOVX    A,@DPTR
-001C76 6F                XRL     A,R7
-001C77 6012              JZ      ?C0006?KEYSCAN
-   96: 				ksEvtPool.ksPool[i] = key;
-001C79 744F              MOV     A,#LOW ksEvtPool+01H
-001C7B 2E                ADD     A,R6
-001C7C F582              MOV     DPL,A
-001C7E E4                CLR     A
-001C7F 344E              ADDC    A,#HIGH ksEvtPool+01H
-001C81 F583              MOV     DPH,A
-001C83 EF                MOV     A,R7
-001C84 F0                MOVX    @DPTR,A
-   97: 			break;
-001C85 22                RET     
-   98: 		}
-   99: 	}
-001C86         ?C0009?KEYSCAN:
-001C86 0E                INC     R6
-001C87 EE                MOV     A,R6
-001C88 B406D5            CJNE    A,#06H,?C0007?KEYSCAN
-  100: }
-001C8B         ?C0006?KEYSCAN:
-001C8B 22                RET     
+001C25 E4                CLR     A
+001C26 FE                MOV     R6,A
+   56: 	key_temp = key;
+;---- Variable 'key_temp' assigned to Register 'R5' ----
+001C27 AD07              MOV     R5,AR7
+   57: 	if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
+001C29 EF                MOV     A,R7
+001C2A C3                CLR     C
+001C2B 94E0              SUBB    A,#0E0H
+001C2D 4020              JC      ?C0005?KEYSCAN
+001C2F EF                MOV     A,R7
+001C30 D3                SETB    C
+001C31 94E7              SUBB    A,#0E7H
+001C33 501A              JNC     ?C0005?KEYSCAN
+   58: 	{
+   59: 	#ifdef MULTISYSTEM_ENABLE
+   60: 		key_temp = key_ios_replace(key);
+   61: 	#endif
+   62: 		ksEvtPool.standardSel  |=  0x01 << (key_temp & 0x07);
+001C35 904E4E            MOV     DPTR,#ksEvtPool
+001C38 E0                MOVX    A,@DPTR
+001C39 FF                MOV     R7,A
+001C3A ED                MOV     A,R5
+001C3B 5407              ANL     A,#07H
+001C3D FE                MOV     R6,A
+001C3E 7401              MOV     A,#01H
+001C40 A806              MOV     R0,AR6
+001C42 08                INC     R0
+001C43 8002              SJMP    ?C0089?KEYSCAN
+001C45         ?C0088?KEYSCAN:
+001C45 C3                CLR     C
+001C46 33                RLC     A
+001C47         ?C0089?KEYSCAN:
+001C47 D8FC              DJNZ    R0,?C0088?KEYSCAN
+001C49 4F                ORL     A,R7
+001C4A 904E4E            MOV     DPTR,#ksEvtPool
+001C4D F0                MOVX    @DPTR,A
+001C4E 22                RET     
+   63: 		return;
+   64: 	}
+001C4F         ?C0005?KEYSCAN:
+   65: /*
+   66: 
+   67: 	if (key == HID_KEY_RIGHT_GUI)
+   68: 	{
+   69: 		ksEvtPool.standardSel |= KS_SEL_RGUI;
+   70: 		return;
+   71: 	}
+   72: 	else if (key ==HID_KEY_RIGHT_ALT) 
+   73: 	{
+   74: 		ksEvtPool.standardSel |= KS_SEL_RALT;
+   75: 		return;
+   76: 	}
+   77: 	else if (key ==HID_KEY_RIGHT_SHIFT) 
+   78: 	{
+   79: 		ksEvtPool.standardSel |= KS_SEL_RSHIFT;
+   80: 		return;
+   81: 	}
+   82: 	else if (key ==HID_KEY_RIGHT_CTL) 
+   83: 	{
+   84: 		ksEvtPool.standardSel |= KS_SEL_RCTRL;
+   85: 		return;
+   86: 	}
+   87: 	else if (key ==HID_KEY_LEFT_GUI) 
+   88: 	{
+   89: 		ksEvtPool.standardSel |= KS_SEL_LGUI;
+   90: 		return;
+   91: 	}
+   92: 	else if (key ==HID_KEY_LEFT_ALT) 
+   93: 	{
+   94: 		ksEvtPool.standardSel |= KS_SEL_LALT;
+   95: 		return;
+   96: 	}
+   97: 	else if (key ==HID_KEY_LEFT_SHIFT)
+   98: 	{
+   99: 		ksEvtPool.standardSel |= KS_SEL_LSHIFT;
+  100: 		return;
+  101: 	}
+  102: 	else if (key ==HID_KEY_LEFT_CTL) 
+  103: 	{
+  104: 		ksEvtPool.standardSel |= KS_SEL_LCTRL;
+  105: 		return;
+  106: 	}
+  107: */	
+  108: 	//special key
+  109: 
+  110: 	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
+001C4F E4                CLR     A
+001C50 FE                MOV     R6,A
+001C51         ?C0007?KEYSCAN:
+  111: 	{
+  112: 		if (ksEvtPool.ksPool[i] == key)
+001C51 744F              MOV     A,#LOW ksEvtPool+01H
+001C53 2E                ADD     A,R6
+001C54 F582              MOV     DPL,A
+001C56 E4                CLR     A
+001C57 344E              ADDC    A,#HIGH ksEvtPool+01H
+001C59 F583              MOV     DPH,A
+001C5B E0                MOVX    A,@DPTR
+001C5C FD                MOV     R5,A
+001C5D 6F                XRL     A,R7
+001C5E 601C              JZ      ?C0006?KEYSCAN
+  113: 			break;
+001C60         ?C0010?KEYSCAN:
+  114: 		if (ksEvtPool.ksPool[i] == 0) 
+001C60 ED                MOV     A,R5
+001C61 7014              JNZ     ?C0009?KEYSCAN
+  115: 		{
+  116: 			if(mult_key_value != key)
+001C63 904DE3            MOV     DPTR,#mult_key_value
+001C66 E0                MOVX    A,@DPTR
+001C67 6F                XRL     A,R7
+001C68 6012              JZ      ?C0006?KEYSCAN
+  117: 				ksEvtPool.ksPool[i] = key;
+001C6A 744F              MOV     A,#LOW ksEvtPool+01H
+001C6C 2E                ADD     A,R6
+001C6D F582              MOV     DPL,A
+001C6F E4                CLR     A
+001C70 344E              ADDC    A,#HIGH ksEvtPool+01H
+001C72 F583              MOV     DPH,A
+001C74 EF                MOV     A,R7
+001C75 F0                MOVX    @DPTR,A
+  118: 			break;
+001C76 22                RET     
+  119: 		}
+  120: 	}
+001C77         ?C0009?KEYSCAN:
+001C77 0E                INC     R6
+001C78 EE                MOV     A,R6
+001C79 B406D5            CJNE    A,#06H,?C0007?KEYSCAN
+  121: }
+001C7C         ?C0006?KEYSCAN:
+001C7C 22                RET     
 ----- FUNCTION _keyIn (END) -------
 
 
 ----- FUNCTION _keyOut (BEGIN) -----
  FILE: 'keyscan.c'
-  102: static void keyOut(byte key)
-  103: {
+  123: static void keyOut(byte key)
+  124: {
 ;---- Variable 'key' assigned to Register 'R7' ----
-  104: 	byte i = 0 ;
-  105: 	byte found = 0;
+  125: 	byte i = 0 ;
+  126: 	byte found = 0;
 ;---- Variable 'i' assigned to Register 'R6' ----
-001C8C E4                CLR     A
-001C8D FE                MOV     R6,A
-  106: 
+001C7D E4                CLR     A
+001C7E FE                MOV     R6,A
+  127: 	byte key_temp;
 ;---- Variable 'found' assigned to Register 'R5' ----
-001C8E FD                MOV     R5,A
-  107: 	if ((key &0xF0) == 0xf0 || (key &0xD0) == 0xD0)
-001C8F EF                MOV     A,R7
-001C90 54F0              ANL     A,#0F0H
-001C92 64F0              XRL     A,#0F0H
-001C94 6007              JZ      ?C0014?KEYSCAN
-001C96 EF                MOV     A,R7
-001C97 54D0              ANL     A,#0D0H
-001C99 FC                MOV     R4,A
-001C9A BCD00C            CJNE    R4,#0D0H,?C0013?KEYSCAN
-001C9D         ?C0014?KEYSCAN:
-  108: 	{
-  109: 		if(mult_key_status == KEY_WAIT_RELEASE)
-001C9D 904E01            MOV     DPTR,#mult_key_status
-001CA0 E0                MOVX    A,@DPTR
-001CA1 B4020B            CJNE    A,#02H,?C0016?KEYSCAN
-  110: 		{
-  111: 			mult_key_status = KEY_RELEASE;
-001CA4 7403              MOV     A,#03H
-001CA6 F0                MOVX    @DPTR,A
-  112: 		}
-  113: 	}
-001CA7 8006              SJMP    ?C0016?KEYSCAN
-001CA9         ?C0013?KEYSCAN:
-  114: 	else
-  115: 		standard_key_release_flag = 1;
-001CA9 904DD8            MOV     DPTR,#standard_key_release_flag
-001CAC 7401              MOV     A,#01H
-001CAE F0                MOVX    @DPTR,A
-001CAF         ?C0016?KEYSCAN:
-  116: 
-  117: 	if(key >= 0xe0 && key <= 0xe7)
-001CAF EF                MOV     A,R7
-001CB0 C3                CLR     C
-001CB1 94E0              SUBB    A,#0E0H
-001CB3 4021              JC      ?C0017?KEYSCAN
-001CB5 EF                MOV     A,R7
-001CB6 D3                SETB    C
-001CB7 94E7              SUBB    A,#0E7H
-001CB9 501B              JNC     ?C0017?KEYSCAN
-  118: 	{
-  119: 		ksEvtPool.standardSel  &=  ~(0x01 << (key & 0x07));
-001CBB 904E4E            MOV     DPTR,#ksEvtPool
-001CBE E0                MOVX    A,@DPTR
-001CBF FE                MOV     R6,A
-001CC0 EF                MOV     A,R7
-001CC1 5407              ANL     A,#07H
-001CC3 FF                MOV     R7,A
-001CC4 7401              MOV     A,#01H
-001CC6 A807              MOV     R0,AR7
-001CC8 08                INC     R0
-001CC9 8002              SJMP    ?C0091?KEYSCAN
-001CCB         ?C0090?KEYSCAN:
-001CCB C3                CLR     C
-001CCC 33                RLC     A
-001CCD         ?C0091?KEYSCAN:
-001CCD D8FC              DJNZ    R0,?C0090?KEYSCAN
-001CCF F4                CPL     A
-001CD0 5E                ANL     A,R6
-001CD1 904E4E            MOV     DPTR,#ksEvtPool
-001CD4 F0                MOVX    @DPTR,A
-001CD5 22                RET     
-  120: 		return;
-  121: 	}
-001CD6         ?C0017?KEYSCAN:
-  122: 
-  123: /*
-  124: 	if (key == HID_KEY_RIGHT_GUI ) 
-  125: 	{
-  126: 		ksEvtPool.standardSel &= ~KS_SEL_RGUI;
-  127: 		return;
-  128: 	}
-  129: 	else if (key ==HID_KEY_RIGHT_ALT ) 
+001C7F FD                MOV     R5,A
+  128: 	key_temp = key;
+;---- Variable 'key_temp' assigned to Register 'R4' ----
+001C80 AC07              MOV     R4,AR7
+  129: 	if ((key &0xF0) == 0xf0 || (key &0xD0) == 0xD0)
+001C82 EF                MOV     A,R7
+001C83 54F0              ANL     A,#0F0H
+001C85 64F0              XRL     A,#0F0H
+001C87 6007              JZ      ?C0014?KEYSCAN
+001C89 EF                MOV     A,R7
+001C8A 54D0              ANL     A,#0D0H
+001C8C FB                MOV     R3,A
+001C8D BBD00C            CJNE    R3,#0D0H,?C0013?KEYSCAN
+001C90         ?C0014?KEYSCAN:
   130: 	{
-  131: 		ksEvtPool.standardSel &= ~KS_SEL_RALT;
-  132: 		return;
-  133: 	}
-  134: 	else if (key ==HID_KEY_RIGHT_SHIFT) 
-  135: 	{
-  136: 		ksEvtPool.standardSel &= ~KS_SEL_RSHIFT;
-  137: 		return;
-  138: 	}
-  139: 	else if (key ==HID_KEY_RIGHT_CTL) 
+  131: 		if(mult_key_status == KEY_WAIT_RELEASE)
+001C90 904E01            MOV     DPTR,#mult_key_status
+001C93 E0                MOVX    A,@DPTR
+001C94 B4020B            CJNE    A,#02H,?C0016?KEYSCAN
+  132: 		{
+  133: 			mult_key_status = KEY_RELEASE;
+001C97 7403              MOV     A,#03H
+001C99 F0                MOVX    @DPTR,A
+  134: 		}
+  135: 	}
+001C9A 8006              SJMP    ?C0016?KEYSCAN
+001C9C         ?C0013?KEYSCAN:
+  136: 	else
+  137: 		standard_key_release_flag = 1;
+001C9C 904DD8            MOV     DPTR,#standard_key_release_flag
+001C9F 7401              MOV     A,#01H
+001CA1 F0                MOVX    @DPTR,A
+001CA2         ?C0016?KEYSCAN:
+  138: 
+  139: 	if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
+001CA2 EF                MOV     A,R7
+001CA3 C3                CLR     C
+001CA4 94E0              SUBB    A,#0E0H
+001CA6 4020              JC      ?C0017?KEYSCAN
+001CA8 EF                MOV     A,R7
+001CA9 D3                SETB    C
+001CAA 94E7              SUBB    A,#0E7H
+001CAC 501A              JNC     ?C0017?KEYSCAN
   140: 	{
-  141: 		ksEvtPool.standardSel &= ~KS_SEL_RCTRL;
-  142: 		return;
-  143: 	}
-  144: 	else if (key ==HID_KEY_LEFT_GUI)
-  145: 	{
-  146: 		ksEvtPool.standardSel &= ~KS_SEL_LGUI;
-  147: 		return;
-  148: 	}
-  149: 	else if (key ==HID_KEY_LEFT_ALT)
-  150: 	{
-  151: 		ksEvtPool.standardSel &= ~KS_SEL_LALT;
-  152: 		return;
-  153: 	}
-  154: 	else if (key ==HID_KEY_LEFT_SHIFT) 
-  155: 	{
-  156: 		ksEvtPool.standardSel &= ~KS_SEL_LSHIFT;
-  157: 		return;
-  158: 	}
-  159: 	else if (key ==HID_KEY_LEFT_CTL) 
-  160: 	{
-  161: 		ksEvtPool.standardSel &= ~ KS_SEL_LCTRL;
-  162: 		return;
-  163: 	}
-  164: */	
-  165: 	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
-001CD6 E4                CLR     A
-001CD7 FE                MOV     R6,A
-001CD8         ?C0019?KEYSCAN:
+  141: 	#ifdef MULTISYSTEM_ENABLE
+  142: 		key_temp = key_ios_replace(key);
+  143: 	#endif
+  144: 		ksEvtPool.standardSel  &= ~0x01 << (key_temp & 0x07);
+001CAE 904E4E            MOV     DPTR,#ksEvtPool
+001CB1 E0                MOVX    A,@DPTR
+001CB2 FF                MOV     R7,A
+001CB3 EC                MOV     A,R4
+001CB4 5407              ANL     A,#07H
+001CB6 FE                MOV     R6,A
+001CB7 74FE              MOV     A,#0FEH
+001CB9 A806              MOV     R0,AR6
+001CBB 08                INC     R0
+001CBC 8002              SJMP    ?C0091?KEYSCAN
+001CBE         ?C0090?KEYSCAN:
+001CBE C3                CLR     C
+001CBF 33                RLC     A
+001CC0         ?C0091?KEYSCAN:
+001CC0 D8FC              DJNZ    R0,?C0090?KEYSCAN
+001CC2 5F                ANL     A,R7
+001CC3 904E4E            MOV     DPTR,#ksEvtPool
+001CC6 F0                MOVX    @DPTR,A
+001CC7 22                RET     
+  145: 		return;
+  146: 	}
+001CC8         ?C0017?KEYSCAN:
+  147: 	
+  148: 
+  149: /*
+  150: 	if (key == HID_KEY_RIGHT_GUI ) 
+  151: 	{
+  152: 		ksEvtPool.standardSel &= ~KS_SEL_RGUI;
+  153: 		return;
+  154: 	}
+  155: 	else if (key ==HID_KEY_RIGHT_ALT ) 
+  156: 	{
+  157: 		ksEvtPool.standardSel &= ~KS_SEL_RALT;
+  158: 		return;
+  159: 	}
+  160: 	else if (key ==HID_KEY_RIGHT_SHIFT) 
+  161: 	{
+  162: 		ksEvtPool.standardSel &= ~KS_SEL_RSHIFT;
+  163: 		return;
+  164: 	}
+  165: 	else if (key ==HID_KEY_RIGHT_CTL) 
   166: 	{
-  167: 		if (found == 0) 
-001CD8 ED                MOV     A,R5
-001CD9 7021              JNZ     ?C0022?KEYSCAN
-  168: 		{
-  169: 			if (ksEvtPool.ksPool[i] == key) {
-001CDB 744F              MOV     A,#LOW ksEvtPool+01H
-001CDD 2E                ADD     A,R6
-001CDE F582              MOV     DPL,A
-001CE0 E4                CLR     A
-001CE1 344E              ADDC    A,#HIGH ksEvtPool+01H
-001CE3 F583              MOV     DPH,A
-001CE5 E0                MOVX    A,@DPTR
-001CE6 6F                XRL     A,R7
-001CE7 7047              JNZ     ?C0021?KEYSCAN
-  170: 				if (i == KS_BUFF_POLL_LEN-1) {
-001CE9 EE                MOV     A,R6
-001CEA B4050B            CJNE    A,#05H,?C0024?KEYSCAN
-  171: 					ksEvtPool.ksPool[i] = 0;
-001CED 244F              ADD     A,#LOW ksEvtPool+01H
-001CEF F582              MOV     DPL,A
-001CF1 E4                CLR     A
-001CF2 344E              ADDC    A,#HIGH ksEvtPool+01H
-001CF4 F583              MOV     DPH,A
-001CF6 E4                CLR     A
-001CF7 F0                MOVX    @DPTR,A
-  172: 				}
-001CF8         ?C0024?KEYSCAN:
-  173: 				found = 1;
-001CF8 7D01              MOV     R5,#01H
-  174: 			}
-  175: 		}
-001CFA 8034              SJMP    ?C0021?KEYSCAN
-001CFC         ?C0022?KEYSCAN:
-  176: 		else 
-  177: 		{
-  178: 			ksEvtPool.ksPool[i-1] = ksEvtPool.ksPool[i];
-001CFC 744F              MOV     A,#LOW ksEvtPool+01H
-001CFE 2E                ADD     A,R6
-001CFF F582              MOV     DPL,A
-001D01 E4                CLR     A
-001D02 344E              ADDC    A,#HIGH ksEvtPool+01H
-001D04 F583              MOV     DPH,A
-001D06 E0                MOVX    A,@DPTR
-001D07 FC                MOV     R4,A
-001D08 744E              MOV     A,#LOW ksEvtPool
-001D0A 2E                ADD     A,R6
-001D0B F582              MOV     DPL,A
-001D0D E4                CLR     A
-001D0E 344E              ADDC    A,#HIGH ksEvtPool
-001D10 F583              MOV     DPH,A
-001D12 EC                MOV     A,R4
-001D13 F0                MOVX    @DPTR,A
-  179: 			if (ksEvtPool.ksPool[i] == 0)
-001D14 744F              MOV     A,#LOW ksEvtPool+01H
-001D16 2E                ADD     A,R6
-001D17 F582              MOV     DPL,A
-001D19 E4                CLR     A
-001D1A 344E              ADDC    A,#HIGH ksEvtPool+01H
-001D1C F583              MOV     DPH,A
-001D1E E0                MOVX    A,@DPTR
-001D1F 6014              JZ      ?C0018?KEYSCAN
-  180: 				break;
-001D21         ?C0026?KEYSCAN:
-  181: 			if (i == KS_BUFF_POLL_LEN-1) {
-001D21 EE                MOV     A,R6
-001D22 B4050B            CJNE    A,#05H,?C0021?KEYSCAN
-  182: 				ksEvtPool.ksPool[i] = 0;
-001D25 244F              ADD     A,#LOW ksEvtPool+01H
-001D27 F582              MOV     DPL,A
-001D29 E4                CLR     A
-001D2A 344E              ADDC    A,#HIGH ksEvtPool+01H
-001D2C F583              MOV     DPH,A
-001D2E E4                CLR     A
-001D2F F0                MOVX    @DPTR,A
-  183: 			}
-  184: 		}
-  185: 	}
-001D30         ?C0021?KEYSCAN:
-001D30 0E                INC     R6
-001D31 EE                MOV     A,R6
-001D32 B406A3            CJNE    A,#06H,?C0019?KEYSCAN
-  186: }
-001D35         ?C0018?KEYSCAN:
-001D35 22                RET     
+  167: 		ksEvtPool.standardSel &= ~KS_SEL_RCTRL;
+  168: 		return;
+  169: 	}
+  170: 	else if (key ==HID_KEY_LEFT_GUI)
+  171: 	{
+  172: 		ksEvtPool.standardSel &= ~KS_SEL_LGUI;
+  173: 		return;
+  174: 	}
+  175: 	else if (key ==HID_KEY_LEFT_ALT)
+  176: 	{
+  177: 		ksEvtPool.standardSel &= ~KS_SEL_LALT;
+  178: 		return;
+  179: 	}
+  180: 	else if (key ==HID_KEY_LEFT_SHIFT) 
+  181: 	{
+  182: 		ksEvtPool.standardSel &= ~KS_SEL_LSHIFT;
+  183: 		return;
+  184: 	}
+  185: 	else if (key ==HID_KEY_LEFT_CTL) 
+  186: 	{
+  187: 		ksEvtPool.standardSel &= ~ KS_SEL_LCTRL;
+  188: 		return;
+  189: 	}
+  190: */	
+  191: 	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
+001CC8 E4                CLR     A
+001CC9 FE                MOV     R6,A
+001CCA         ?C0019?KEYSCAN:
+  192: 	{
+  193: 		if (found == 0) 
+001CCA ED                MOV     A,R5
+001CCB 7021              JNZ     ?C0022?KEYSCAN
+  194: 		{
+  195: 			if (ksEvtPool.ksPool[i] == key) {
+001CCD 744F              MOV     A,#LOW ksEvtPool+01H
+001CCF 2E                ADD     A,R6
+001CD0 F582              MOV     DPL,A
+001CD2 E4                CLR     A
+001CD3 344E              ADDC    A,#HIGH ksEvtPool+01H
+001CD5 F583              MOV     DPH,A
+001CD7 E0                MOVX    A,@DPTR
+001CD8 6F                XRL     A,R7
+001CD9 7047              JNZ     ?C0021?KEYSCAN
+  196: 				if (i == KS_BUFF_POLL_LEN-1) {
+001CDB EE                MOV     A,R6
+001CDC B4050B            CJNE    A,#05H,?C0024?KEYSCAN
+  197: 					ksEvtPool.ksPool[i] = 0;
+001CDF 244F              ADD     A,#LOW ksEvtPool+01H
+001CE1 F582              MOV     DPL,A
+001CE3 E4                CLR     A
+001CE4 344E              ADDC    A,#HIGH ksEvtPool+01H
+001CE6 F583              MOV     DPH,A
+001CE8 E4                CLR     A
+001CE9 F0                MOVX    @DPTR,A
+  198: 				}
+001CEA         ?C0024?KEYSCAN:
+  199: 				found = 1;
+001CEA 7D01              MOV     R5,#01H
+  200: 			}
+  201: 		}
+001CEC 8034              SJMP    ?C0021?KEYSCAN
+001CEE         ?C0022?KEYSCAN:
+  202: 		else 
+  203: 		{
+  204: 			ksEvtPool.ksPool[i-1] = ksEvtPool.ksPool[i];
+001CEE 744F              MOV     A,#LOW ksEvtPool+01H
+001CF0 2E                ADD     A,R6
+001CF1 F582              MOV     DPL,A
+001CF3 E4                CLR     A
+001CF4 344E              ADDC    A,#HIGH ksEvtPool+01H
+001CF6 F583              MOV     DPH,A
+001CF8 E0                MOVX    A,@DPTR
+001CF9 FC                MOV     R4,A
+001CFA 744E              MOV     A,#LOW ksEvtPool
+001CFC 2E                ADD     A,R6
+001CFD F582              MOV     DPL,A
+001CFF E4                CLR     A
+001D00 344E              ADDC    A,#HIGH ksEvtPool
+001D02 F583              MOV     DPH,A
+001D04 EC                MOV     A,R4
+001D05 F0                MOVX    @DPTR,A
+  205: 			if (ksEvtPool.ksPool[i] == 0)
+001D06 744F              MOV     A,#LOW ksEvtPool+01H
+001D08 2E                ADD     A,R6
+001D09 F582              MOV     DPL,A
+001D0B E4                CLR     A
+001D0C 344E              ADDC    A,#HIGH ksEvtPool+01H
+001D0E F583              MOV     DPH,A
+001D10 E0                MOVX    A,@DPTR
+001D11 6014              JZ      ?C0018?KEYSCAN
+  206: 				break;
+001D13         ?C0026?KEYSCAN:
+  207: 			if (i == KS_BUFF_POLL_LEN-1) {
+001D13 EE                MOV     A,R6
+001D14 B4050B            CJNE    A,#05H,?C0021?KEYSCAN
+  208: 				ksEvtPool.ksPool[i] = 0;
+001D17 244F              ADD     A,#LOW ksEvtPool+01H
+001D19 F582              MOV     DPL,A
+001D1B E4                CLR     A
+001D1C 344E              ADDC    A,#HIGH ksEvtPool+01H
+001D1E F583              MOV     DPH,A
+001D20 E4                CLR     A
+001D21 F0                MOVX    @DPTR,A
+  209: 			}
+  210: 		}
+  211: 	}
+001D22         ?C0021?KEYSCAN:
+001D22 0E                INC     R6
+001D23 EE                MOV     A,R6
+001D24 B406A3            CJNE    A,#06H,?C0019?KEYSCAN
+  212: }
+001D27         ?C0018?KEYSCAN:
+001D27 22                RET     
 ----- FUNCTION _keyOut (END) -------
 
 
 ----- FUNCTION KS_ScanMatrix (BEGIN) -----
  FILE: 'keyscan.c'
-  259: void KS_ScanMatrix()
-  260: {
-  261: 	byte i = 0;
-  262: 	byte j = 0;
+  285: void KS_ScanMatrix()
+  286: {
+  287: 	byte i = 0;
+  288: 	byte j = 0;
 ;---- Variable 'i' assigned to Register 'R7' ----
-001D36 E4                CLR     A
-001D37 FF                MOV     R7,A
-  263: 	byte tgroup = 0;
-001D38 904E86            MOV     DPTR,#j
-001D3B F0                MOVX    @DPTR,A
-  264: 	byte tgpionum = 0;
+001D28 E4                CLR     A
+001D29 FF                MOV     R7,A
+  289: 	byte tgroup = 0;
+001D2A 904E86            MOV     DPTR,#j
+001D2D F0                MOVX    @DPTR,A
+  290: 	byte tgpionum = 0;
 ;---- Variable 'tgroup' assigned to Register 'R6' ----
-001D3C FE                MOV     R6,A
-  265: 	byte temp = 0;
+001D2E FE                MOV     R6,A
+  291: 	byte temp = 0;
 ;---- Variable 'tgpionum' assigned to Register 'R5' ----
-001D3D FD                MOV     R5,A
-  266: 	byte check = 0;
-001D3E A3                INC     DPTR
-001D3F F0                MOVX    @DPTR,A
-  267: 	byte rawSel = 0;
-001D40 A3                INC     DPTR
-001D41 F0                MOVX    @DPTR,A
-  268: 	for (i=0; col[i]!=0; i++) {
-001D42 A3                INC     DPTR
-001D43 F0                MOVX    @DPTR,A
-  269: 		tgroup = col[i]  >> 3;
-001D44         ?C0045?KEYSCAN:
-001D44 EF                MOV     A,R7
-001D45 90060C            MOV     DPTR,#col
-001D48 93                MOVC    A,@A+DPTR
-001D49 607C              JZ      ?C0046?KEYSCAN
-  270: 		tgpionum = 1 << (col[i] & 7);
-001D4B EF                MOV     A,R7
-001D4C 93                MOVC    A,@A+DPTR
-001D4D FD                MOV     R5,A
-001D4E 13                RRC     A
-001D4F 13                RRC     A
-001D50 13                RRC     A
-001D51 541F              ANL     A,#01FH
-001D53 FE                MOV     R6,A
-  271: 		GET_RAW_KEY_SEL(ksSelMapCurr[i], tgroup, tgpionum);
-001D54 ED                MOV     A,R5
-001D55 5407              ANL     A,#07H
-001D57 FD                MOV     R5,A
-001D58 7401              MOV     A,#01H
-001D5A A805              MOV     R0,AR5
-001D5C 08                INC     R0
-001D5D 8002              SJMP    ?C0095?KEYSCAN
-001D5F         ?C0094?KEYSCAN:
-001D5F C3                CLR     C
-001D60 33                RLC     A
-001D61         ?C0095?KEYSCAN:
-001D61 D8FC              DJNZ    R0,?C0094?KEYSCAN
-001D63 FD                MOV     R5,A
-  272: 	}
-001D64 EE                MOV     A,R6
-001D65 2478              ADD     A,#078H
-001D67 FB                MOV     R3,A
-001D68 E4                CLR     A
-001D69 3480              ADDC    A,#080H
-001D6B 8B82              MOV     DPL,R3
-001D6D F583              MOV     DPH,A
-001D6F E0                MOVX    A,@DPTR
-001D70 FC                MOV     R4,A
-001D71 ED                MOV     A,R5
-001D72 F4                CPL     A
-001D73 FB                MOV     R3,A
-001D74 EC                MOV     A,R4
-001D75 5B                ANL     A,R3
-001D76 F0                MOVX    @DPTR,A
-001D77 EE                MOV     A,R6
-001D78 2470              ADD     A,#070H
-001D7A F582              MOV     DPL,A
-001D7C E4                CLR     A
-001D7D 3480              ADDC    A,#080H
-001D7F F583              MOV     DPH,A
-001D81 E0                MOVX    A,@DPTR
-001D82 4D                ORL     A,R5
-001D83 F0                MOVX    @DPTR,A
-001D84 EE                MOV     A,R6
-001D85 2474              ADD     A,#074H
-001D87 F582              MOV     DPL,A
-001D89 E4                CLR     A
-001D8A 3480              ADDC    A,#080H
-001D8C F583              MOV     DPH,A
-001D8E E0                MOVX    A,@DPTR
-001D8F 5B                ANL     A,R3
-001D90 F0                MOVX    @DPTR,A
-001D91 90811C            MOV     DPTR,#0811CH
-001D94 E0                MOVX    A,@DPTR
-001D95 F4                CPL     A
-001D96 FC                MOV     R4,A
-001D97 74BC              MOV     A,#LOW ksSelMapCurr
-001D99 2F                ADD     A,R7
-001D9A F582              MOV     DPL,A
-001D9C E4                CLR     A
-001D9D 344D              ADDC    A,#HIGH ksSelMapCurr
-001D9F F583              MOV     DPH,A
-001DA1 EC                MOV     A,R4
+001D2F FD                MOV     R5,A
+  292: 	byte check = 0;
+001D30 A3                INC     DPTR
+001D31 F0                MOVX    @DPTR,A
+  293: 	byte rawSel = 0;
+001D32 A3                INC     DPTR
+001D33 F0                MOVX    @DPTR,A
+  294: 	for (i=0; col[i]!=0; i++) {
+001D34 A3                INC     DPTR
+001D35 F0                MOVX    @DPTR,A
+  295: 		tgroup = col[i]  >> 3;
+001D36         ?C0045?KEYSCAN:
+001D36 EF                MOV     A,R7
+001D37 90060C            MOV     DPTR,#col
+001D3A 93                MOVC    A,@A+DPTR
+001D3B 607C              JZ      ?C0046?KEYSCAN
+  296: 		tgpionum = 1 << (col[i] & 7);
+001D3D EF                MOV     A,R7
+001D3E 93                MOVC    A,@A+DPTR
+001D3F FD                MOV     R5,A
+001D40 13                RRC     A
+001D41 13                RRC     A
+001D42 13                RRC     A
+001D43 541F              ANL     A,#01FH
+001D45 FE                MOV     R6,A
+  297: 		GET_RAW_KEY_SEL(ksSelMapCurr[i], tgroup, tgpionum);
+001D46 ED                MOV     A,R5
+001D47 5407              ANL     A,#07H
+001D49 FD                MOV     R5,A
+001D4A 7401              MOV     A,#01H
+001D4C A805              MOV     R0,AR5
+001D4E 08                INC     R0
+001D4F 8002              SJMP    ?C0095?KEYSCAN
+001D51         ?C0094?KEYSCAN:
+001D51 C3                CLR     C
+001D52 33                RLC     A
+001D53         ?C0095?KEYSCAN:
+001D53 D8FC              DJNZ    R0,?C0094?KEYSCAN
+001D55 FD                MOV     R5,A
+  298: 	}
+001D56 EE                MOV     A,R6
+001D57 2478              ADD     A,#078H
+001D59 FB                MOV     R3,A
+001D5A E4                CLR     A
+001D5B 3480              ADDC    A,#080H
+001D5D 8B82              MOV     DPL,R3
+001D5F F583              MOV     DPH,A
+001D61 E0                MOVX    A,@DPTR
+001D62 FC                MOV     R4,A
+001D63 ED                MOV     A,R5
+001D64 F4                CPL     A
+001D65 FB                MOV     R3,A
+001D66 EC                MOV     A,R4
+001D67 5B                ANL     A,R3
+001D68 F0                MOVX    @DPTR,A
+001D69 EE                MOV     A,R6
+001D6A 2470              ADD     A,#070H
+001D6C F582              MOV     DPL,A
+001D6E E4                CLR     A
+001D6F 3480              ADDC    A,#080H
+001D71 F583              MOV     DPH,A
+001D73 E0                MOVX    A,@DPTR
+001D74 4D                ORL     A,R5
+001D75 F0                MOVX    @DPTR,A
+001D76 EE                MOV     A,R6
+001D77 2474              ADD     A,#074H
+001D79 F582              MOV     DPL,A
+001D7B E4                CLR     A
+001D7C 3480              ADDC    A,#080H
+001D7E F583              MOV     DPH,A
+001D80 E0                MOVX    A,@DPTR
+001D81 5B                ANL     A,R3
+001D82 F0                MOVX    @DPTR,A
+001D83 90811C            MOV     DPTR,#0811CH
+001D86 E0                MOVX    A,@DPTR
+001D87 F4                CPL     A
+001D88 FC                MOV     R4,A
+001D89 74BC              MOV     A,#LOW ksSelMapCurr
+001D8B 2F                ADD     A,R7
+001D8C F582              MOV     DPL,A
+001D8E E4                CLR     A
+001D8F 344D              ADDC    A,#HIGH ksSelMapCurr
+001D91 F583              MOV     DPH,A
+001D93 EC                MOV     A,R4
+001D94 F0                MOVX    @DPTR,A
+001D95 EE                MOV     A,R6
+001D96 2478              ADD     A,#078H
+001D98 FB                MOV     R3,A
+001D99 E4                CLR     A
+001D9A 3480              ADDC    A,#080H
+001D9C 8B82              MOV     DPL,R3
+001D9E F583              MOV     DPH,A
+001DA0 E0                MOVX    A,@DPTR
+001DA1 4D                ORL     A,R5
 001DA2 F0                MOVX    @DPTR,A
 001DA3 EE                MOV     A,R6
-001DA4 2478              ADD     A,#078H
+001DA4 2470              ADD     A,#070H
 001DA6 FB                MOV     R3,A
 001DA7 E4                CLR     A
 001DA8 3480              ADDC    A,#080H
 001DAA 8B82              MOV     DPL,R3
 001DAC F583              MOV     DPH,A
 001DAE E0                MOVX    A,@DPTR
-001DAF 4D                ORL     A,R5
-001DB0 F0                MOVX    @DPTR,A
-001DB1 EE                MOV     A,R6
-001DB2 2470              ADD     A,#070H
-001DB4 FB                MOV     R3,A
-001DB5 E4                CLR     A
-001DB6 3480              ADDC    A,#080H
-001DB8 8B82              MOV     DPL,R3
-001DBA F583              MOV     DPH,A
-001DBC E0                MOVX    A,@DPTR
-001DBD FC                MOV     R4,A
-001DBE ED                MOV     A,R5
-001DBF F4                CPL     A
-001DC0 FB                MOV     R3,A
-001DC1 EC                MOV     A,R4
-001DC2 5B                ANL     A,R3
-001DC3 F0                MOVX    @DPTR,A
-  273: 
-001DC4 0F                INC     R7
-001DC5 A144              AJMP    ?C0045?KEYSCAN
-001DC7         ?C0046?KEYSCAN:
-  274: 	for (i=0; col[i]!=0; i++) {
-001DC7 E4                CLR     A
-001DC8 FF                MOV     R7,A
-001DC9         ?C0048?KEYSCAN:
-001DC9 EF                MOV     A,R7
-001DCA 90060C            MOV     DPTR,#col
-001DCD 93                MOVC    A,@A+DPTR
-001DCE 607C              JZ      ?C0049?KEYSCAN
-  275: 		tgroup = col[i]  >> 3;
-001DD0 EF                MOV     A,R7
-001DD1 93                MOVC    A,@A+DPTR
-001DD2 FD                MOV     R5,A
-001DD3 13                RRC     A
-001DD4 13                RRC     A
-001DD5 13                RRC     A
-001DD6 541F              ANL     A,#01FH
-001DD8 FE                MOV     R6,A
-  276: 		tgpionum = 1 << (col[i] & 7);
-001DD9 ED                MOV     A,R5
-001DDA 5407              ANL     A,#07H
-001DDC FD                MOV     R5,A
-001DDD 7401              MOV     A,#01H
-001DDF A805              MOV     R0,AR5
-001DE1 08                INC     R0
-001DE2 8002              SJMP    ?C0097?KEYSCAN
-001DE4         ?C0096?KEYSCAN:
-001DE4 C3                CLR     C
-001DE5 33                RLC     A
-001DE6         ?C0097?KEYSCAN:
-001DE6 D8FC              DJNZ    R0,?C0096?KEYSCAN
-001DE8 FD                MOV     R5,A
-  277: 		GET_RAW_KEY_SEL(ksSelMapCheck[i], tgroup, tgpionum);
-001DE9 EE                MOV     A,R6
-001DEA 2478              ADD     A,#078H
-001DEC FB                MOV     R3,A
-001DED E4                CLR     A
-001DEE 3480              ADDC    A,#080H
-001DF0 8B82              MOV     DPL,R3
-001DF2 F583              MOV     DPH,A
-001DF4 E0                MOVX    A,@DPTR
-001DF5 FC                MOV     R4,A
-001DF6 ED                MOV     A,R5
-001DF7 F4                CPL     A
-001DF8 FB                MOV     R3,A
-001DF9 EC                MOV     A,R4
-001DFA 5B                ANL     A,R3
-001DFB F0                MOVX    @DPTR,A
-001DFC EE                MOV     A,R6
-001DFD 2470              ADD     A,#070H
-001DFF F582              MOV     DPL,A
-001E01 E4                CLR     A
-001E02 3480              ADDC    A,#080H
-001E04 F583              MOV     DPH,A
-001E06 E0                MOVX    A,@DPTR
-001E07 4D                ORL     A,R5
-001E08 F0                MOVX    @DPTR,A
-001E09 EE                MOV     A,R6
-001E0A 2474              ADD     A,#074H
-001E0C F582              MOV     DPL,A
-001E0E E4                CLR     A
-001E0F 3480              ADDC    A,#080H
-001E11 F583              MOV     DPH,A
-001E13 E0                MOVX    A,@DPTR
-001E14 5B                ANL     A,R3
-001E15 F0                MOVX    @DPTR,A
-001E16 90811C            MOV     DPTR,#0811CH
-001E19 E0                MOVX    A,@DPTR
-001E1A F4                CPL     A
-001E1B FC                MOV     R4,A
-001E1C 74A8              MOV     A,#LOW ksSelMapCheck
-001E1E 2F                ADD     A,R7
-001E1F F582              MOV     DPL,A
-001E21 E4                CLR     A
-001E22 344D              ADDC    A,#HIGH ksSelMapCheck
-001E24 F583              MOV     DPH,A
-001E26 EC                MOV     A,R4
+001DAF FC                MOV     R4,A
+001DB0 ED                MOV     A,R5
+001DB1 F4                CPL     A
+001DB2 FB                MOV     R3,A
+001DB3 EC                MOV     A,R4
+001DB4 5B                ANL     A,R3
+001DB5 F0                MOVX    @DPTR,A
+  299: 
+001DB6 0F                INC     R7
+001DB7 A136              AJMP    ?C0045?KEYSCAN
+001DB9         ?C0046?KEYSCAN:
+  300: 	for (i=0; col[i]!=0; i++) {
+001DB9 E4                CLR     A
+001DBA FF                MOV     R7,A
+001DBB         ?C0048?KEYSCAN:
+001DBB EF                MOV     A,R7
+001DBC 90060C            MOV     DPTR,#col
+001DBF 93                MOVC    A,@A+DPTR
+001DC0 607C              JZ      ?C0049?KEYSCAN
+  301: 		tgroup = col[i]  >> 3;
+001DC2 EF                MOV     A,R7
+001DC3 93                MOVC    A,@A+DPTR
+001DC4 FD                MOV     R5,A
+001DC5 13                RRC     A
+001DC6 13                RRC     A
+001DC7 13                RRC     A
+001DC8 541F              ANL     A,#01FH
+001DCA FE                MOV     R6,A
+  302: 		tgpionum = 1 << (col[i] & 7);
+001DCB ED                MOV     A,R5
+001DCC 5407              ANL     A,#07H
+001DCE FD                MOV     R5,A
+001DCF 7401              MOV     A,#01H
+001DD1 A805              MOV     R0,AR5
+001DD3 08                INC     R0
+001DD4 8002              SJMP    ?C0097?KEYSCAN
+001DD6         ?C0096?KEYSCAN:
+001DD6 C3                CLR     C
+001DD7 33                RLC     A
+001DD8         ?C0097?KEYSCAN:
+001DD8 D8FC              DJNZ    R0,?C0096?KEYSCAN
+001DDA FD                MOV     R5,A
+  303: 		GET_RAW_KEY_SEL(ksSelMapCheck[i], tgroup, tgpionum);
+001DDB EE                MOV     A,R6
+001DDC 2478              ADD     A,#078H
+001DDE FB                MOV     R3,A
+001DDF E4                CLR     A
+001DE0 3480              ADDC    A,#080H
+001DE2 8B82              MOV     DPL,R3
+001DE4 F583              MOV     DPH,A
+001DE6 E0                MOVX    A,@DPTR
+001DE7 FC                MOV     R4,A
+001DE8 ED                MOV     A,R5
+001DE9 F4                CPL     A
+001DEA FB                MOV     R3,A
+001DEB EC                MOV     A,R4
+001DEC 5B                ANL     A,R3
+001DED F0                MOVX    @DPTR,A
+001DEE EE                MOV     A,R6
+001DEF 2470              ADD     A,#070H
+001DF1 F582              MOV     DPL,A
+001DF3 E4                CLR     A
+001DF4 3480              ADDC    A,#080H
+001DF6 F583              MOV     DPH,A
+001DF8 E0                MOVX    A,@DPTR
+001DF9 4D                ORL     A,R5
+001DFA F0                MOVX    @DPTR,A
+001DFB EE                MOV     A,R6
+001DFC 2474              ADD     A,#074H
+001DFE F582              MOV     DPL,A
+001E00 E4                CLR     A
+001E01 3480              ADDC    A,#080H
+001E03 F583              MOV     DPH,A
+001E05 E0                MOVX    A,@DPTR
+001E06 5B                ANL     A,R3
+001E07 F0                MOVX    @DPTR,A
+001E08 90811C            MOV     DPTR,#0811CH
+001E0B E0                MOVX    A,@DPTR
+001E0C F4                CPL     A
+001E0D FC                MOV     R4,A
+001E0E 74A8              MOV     A,#LOW ksSelMapCheck
+001E10 2F                ADD     A,R7
+001E11 F582              MOV     DPL,A
+001E13 E4                CLR     A
+001E14 344D              ADDC    A,#HIGH ksSelMapCheck
+001E16 F583              MOV     DPH,A
+001E18 EC                MOV     A,R4
+001E19 F0                MOVX    @DPTR,A
+001E1A EE                MOV     A,R6
+001E1B 2478              ADD     A,#078H
+001E1D FB                MOV     R3,A
+001E1E E4                CLR     A
+001E1F 3480              ADDC    A,#080H
+001E21 8B82              MOV     DPL,R3
+001E23 F583              MOV     DPH,A
+001E25 E0                MOVX    A,@DPTR
+001E26 4D                ORL     A,R5
 001E27 F0                MOVX    @DPTR,A
 001E28 EE                MOV     A,R6
-001E29 2478              ADD     A,#078H
+001E29 2470              ADD     A,#070H
 001E2B FB                MOV     R3,A
 001E2C E4                CLR     A
 001E2D 3480              ADDC    A,#080H
 001E2F 8B82              MOV     DPL,R3
 001E31 F583              MOV     DPH,A
 001E33 E0                MOVX    A,@DPTR
-001E34 4D                ORL     A,R5
-001E35 F0                MOVX    @DPTR,A
-001E36 EE                MOV     A,R6
-001E37 2470              ADD     A,#070H
-001E39 FB                MOV     R3,A
-001E3A E4                CLR     A
-001E3B 3480              ADDC    A,#080H
-001E3D 8B82              MOV     DPL,R3
-001E3F F583              MOV     DPH,A
-001E41 E0                MOVX    A,@DPTR
-001E42 FC                MOV     R4,A
-001E43 ED                MOV     A,R5
-001E44 F4                CPL     A
-001E45 FB                MOV     R3,A
-001E46 EC                MOV     A,R4
-001E47 5B                ANL     A,R3
-001E48 F0                MOVX    @DPTR,A
-  278: 	}
-001E49 0F                INC     R7
-001E4A A1C9              AJMP    ?C0048?KEYSCAN
-001E4C         ?C0049?KEYSCAN:
-  279: 
-  280: 	for (i=0; col[i]!=0; i++) {
+001E34 FC                MOV     R4,A
+001E35 ED                MOV     A,R5
+001E36 F4                CPL     A
+001E37 FB                MOV     R3,A
+001E38 EC                MOV     A,R4
+001E39 5B                ANL     A,R3
+001E3A F0                MOVX    @DPTR,A
+  304: 	}
+001E3B 0F                INC     R7
+001E3C A1BB              AJMP    ?C0048?KEYSCAN
+001E3E         ?C0049?KEYSCAN:
+  305: 
+  306: 	for (i=0; col[i]!=0; i++) {
+001E3E E4                CLR     A
+001E3F FF                MOV     R7,A
+001E40         ?C0051?KEYSCAN:
+001E40 EF                MOV     A,R7
+001E41 90060C            MOV     DPTR,#col
+001E44 93                MOVC    A,@A+DPTR
+001E45 6040              JZ      ?C0055?KEYSCAN
+  307: 		if (ksSelMapCheck[i]!=ksSelMapCurr[i]) {
+001E47 74BC              MOV     A,#LOW ksSelMapCurr
+001E49 2F                ADD     A,R7
+001E4A F582              MOV     DPL,A
 001E4C E4                CLR     A
-001E4D FF                MOV     R7,A
-001E4E         ?C0051?KEYSCAN:
-001E4E EF                MOV     A,R7
-001E4F 90060C            MOV     DPTR,#col
-001E52 93                MOVC    A,@A+DPTR
-001E53 6040              JZ      ?C0055?KEYSCAN
-  281: 		if (ksSelMapCheck[i]!=ksSelMapCurr[i]) {
-001E55 74BC              MOV     A,#LOW ksSelMapCurr
-001E57 2F                ADD     A,R7
-001E58 F582              MOV     DPL,A
-001E5A E4                CLR     A
-001E5B 344D              ADDC    A,#HIGH ksSelMapCurr
-001E5D F583              MOV     DPH,A
-001E5F E0                MOVX    A,@DPTR
-001E60 FE                MOV     R6,A
-001E61 74A8              MOV     A,#LOW ksSelMapCheck
+001E4D 344D              ADDC    A,#HIGH ksSelMapCurr
+001E4F F583              MOV     DPH,A
+001E51 E0                MOVX    A,@DPTR
+001E52 FE                MOV     R6,A
+001E53 74A8              MOV     A,#LOW ksSelMapCheck
+001E55 2F                ADD     A,R7
+001E56 F582              MOV     DPL,A
+001E58 E4                CLR     A
+001E59 344D              ADDC    A,#HIGH ksSelMapCheck
+001E5B F583              MOV     DPH,A
+001E5D E0                MOVX    A,@DPTR
+001E5E 6E                XRL     A,R6
+001E5F 6023              JZ      ?C0053?KEYSCAN
+  308: 			ksSelMapCurr[i] &= ksSelMapCheck[i];
+001E61 74BC              MOV     A,#LOW ksSelMapCurr
 001E63 2F                ADD     A,R7
 001E64 F582              MOV     DPL,A
 001E66 E4                CLR     A
-001E67 344D              ADDC    A,#HIGH ksSelMapCheck
+001E67 344D              ADDC    A,#HIGH ksSelMapCurr
 001E69 F583              MOV     DPH,A
-001E6B E0                MOVX    A,@DPTR
-001E6C 6E                XRL     A,R6
-001E6D 6023              JZ      ?C0053?KEYSCAN
-  282: 			ksSelMapCurr[i] &= ksSelMapCheck[i];
-001E6F 74BC              MOV     A,#LOW ksSelMapCurr
-001E71 2F                ADD     A,R7
-001E72 F582              MOV     DPL,A
-001E74 E4                CLR     A
-001E75 344D              ADDC    A,#HIGH ksSelMapCurr
-001E77 F583              MOV     DPH,A
-001E79 C083              PUSH    DPH
-001E7B C082              PUSH    DPL
-001E7D E0                MOVX    A,@DPTR
-001E7E FE                MOV     R6,A
-001E7F 74A8              MOV     A,#LOW ksSelMapCheck
-001E81 2F                ADD     A,R7
-001E82 F582              MOV     DPL,A
-001E84 E4                CLR     A
-001E85 344D              ADDC    A,#HIGH ksSelMapCheck
-001E87 F583              MOV     DPH,A
-001E89 E0                MOVX    A,@DPTR
-001E8A FD                MOV     R5,A
-001E8B EE                MOV     A,R6
-001E8C 5D                ANL     A,R5
-001E8D D082              POP     DPL
-001E8F D083              POP     DPH
-001E91 F0                MOVX    @DPTR,A
-  283: 		}
-  284: 	}
-001E92         ?C0053?KEYSCAN:
-001E92 0F                INC     R7
-001E93 80B9              SJMP    ?C0051?KEYSCAN
-  285: }
-001E95         ?C0055?KEYSCAN:
-001E95 22                RET     
+001E6B C083              PUSH    DPH
+001E6D C082              PUSH    DPL
+001E6F E0                MOVX    A,@DPTR
+001E70 FE                MOV     R6,A
+001E71 74A8              MOV     A,#LOW ksSelMapCheck
+001E73 2F                ADD     A,R7
+001E74 F582              MOV     DPL,A
+001E76 E4                CLR     A
+001E77 344D              ADDC    A,#HIGH ksSelMapCheck
+001E79 F583              MOV     DPH,A
+001E7B E0                MOVX    A,@DPTR
+001E7C FD                MOV     R5,A
+001E7D EE                MOV     A,R6
+001E7E 5D                ANL     A,R5
+001E7F D082              POP     DPL
+001E81 D083              POP     DPH
+001E83 F0                MOVX    @DPTR,A
+  309: 		}
+  310: 	}
+001E84         ?C0053?KEYSCAN:
+001E84 0F                INC     R7
+001E85 80B9              SJMP    ?C0051?KEYSCAN
+  311: }
+001E87         ?C0055?KEYSCAN:
+001E87 22                RET     
 ----- FUNCTION KS_ScanMatrix (END) -------
 
 
------ FUNCTION LED_handle (BEGIN) -----
- FILE: 'led.c'
-   24: void LED_handle()
-   25: {
-   26: 	if (power_on_flag != 2)
-   27: 		return;
-001E96 904DE1            MOV     DPTR,#power_on_flag
-001E99 E0                MOVX    A,@DPTR
-001E9A 6402              XRL     A,#02H
-001E9C 6002              JZ      $ + 4H
-001E9E E129              AJMP    ?C0005?LED
-001EA0         ?C0004?LED:
-   28: 
-   29: 	if(!g_variable.pairing_timeout)
-001EA0 904CE9            MOV     DPTR,#g_variable+02AH
-001EA3 E0                MOVX    A,@DPTR
-001EA4 707C              JNZ     ?C0006?LED
-   30: 	{
-   31: 		//low battery LED process
-   32: 		if (g_variable.battery_status == BAT_STATUS_SHUT_DOWN)
-001EA6 904CD5            MOV     DPTR,#g_variable+016H
-001EA9 E0                MOVX    A,@DPTR
-001EAA B40205            CJNE    A,#02H,?C0007?LED
-   33: 		{
-   34: 			System_long_sleep();
-001EAD 1210E5            LCALL   System_long_sleep
-   35: 		}
-001EB0 802F              SJMP    ?C0008?LED
-001EB2         ?C0007?LED:
-   36: 		else if (g_variable.battery_status == BAT_STATUS_LOW)
-001EB2 904CD5            MOV     DPTR,#g_variable+016H
-001EB5 E0                MOVX    A,@DPTR
-001EB6 B40114            CJNE    A,#01H,?C0009?LED
-   37: 		{
-   38: 			if (g_variable.battery_low_led_flash_flag == 0)
-001EB9 904CF7            MOV     DPTR,#g_variable+038H
-001EBC E0                MOVX    A,@DPTR
-001EBD 7022              JNZ     ?C0008?LED
-   39: 			{
-   40: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
-001EBF 904CE2            MOV     DPTR,#g_variable+023H
-001EC2 7404              MOV     A,#04H
-001EC4 F0                MOVX    @DPTR,A
-   41: 				g_variable.battery_low_led_flash_flag = 1;
-001EC5 904CF7            MOV     DPTR,#g_variable+038H
-001EC8 7401              MOV     A,#01H
-001ECA F0                MOVX    @DPTR,A
-   42: 			}
-   43: 		}
-001ECB 8014              SJMP    ?C0008?LED
-001ECD         ?C0009?LED:
-   44: 		else
-   45: 		{
-   46: 			if (g_variable.battery_low_led_flash_flag == 1)
-001ECD 904CF7            MOV     DPTR,#g_variable+038H
-001ED0 E0                MOVX    A,@DPTR
-001ED1 B4010D            CJNE    A,#01H,?C0008?LED
-   47: 			{
-   48: 				g_variable.battery_low_led_flash_flag = 0;
-001ED4 E4                CLR     A
-001ED5 F0                MOVX    @DPTR,A
-   49: 				g_variable.battery_low_led_flash_interval = 0;
-001ED6 904CE2            MOV     DPTR,#g_variable+023H
-001ED9 F0                MOVX    @DPTR,A
-   50: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
-001EDA C201              CLR     ?_GPIO_Setout?BIT
-001EDC 7FFF              MOV     R7,#0FFH
-001EDE 120FD0            LCALL   _GPIO_Setout
-   51: 			}
-   52: 		}
-001EE1         ?C0008?LED:
-   53: 
-   54: 		//capslock  numlock  scrolllock LED process
-   55: 		if (YC_check_is_connected())
-001EE1 120FEF            LCALL   YC_check_is_connected
-001EE4 EF                MOV     A,R7
-001EE5 6034              JZ      ?C0013?LED
-   56: 		{
-   57: 			if(m_caps_num_lock != m_caps_num_lock_last)
-001EE7 904DD9            MOV     DPTR,#m_caps_num_lock_last
-001EEA E0                MOVX    A,@DPTR
-001EEB FF                MOV     R7,A
-001EEC 904CB7            MOV     DPTR,#m_caps_num_lock
-001EEF E0                MOVX    A,@DPTR
-001EF0 6F                XRL     A,R7
-001EF1 6036              JZ      ?C0005?LED
-   58: 			{
-   59: 				/*
-   60: 				if(m_caps_num_lock & KB_PC_KEYSEL_NUMLOCK)
-   61: 				{
-   62: 					g_variable.sys_numlockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
-   63: 					GPIO_Setout(NUM_LOCK_LED_GPIO, 0);
-   64: 				}
-   65: 				else
-   66: 				{
-   67: 					GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
-   68: 					g_variable.sys_numlockled_on_timer = LED_ON;
-   69: 				}
-   70: 				*/
-   71: 				
-   72: 				if(m_caps_num_lock & KB_PC_KEYSEL_CAPSLOCK)
-001EF3 E0                MOVX    A,@DPTR
-001EF4 30E10F            JNB     ACC.1,?C0015?LED
-   73: 				{
-   74: 					g_variable.sys_capslockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
-001EF7 904CE7            MOV     DPTR,#g_variable+028H
-001EFA 740C              MOV     A,#0CH
-001EFC F0                MOVX    @DPTR,A
-   75: 					GPIO_Setout(CAPS_LED_GPIO, LED_ON);
-001EFD D201              SETB    ?_GPIO_Setout?BIT
-001EFF 7F1E              MOV     R7,#01EH
-001F01 120FD0            LCALL   _GPIO_Setout
-   76: 				}
-001F04 800C              SJMP    ?C0016?LED
-001F06         ?C0015?LED:
-   77: 				else 
-   78: 				{
-   79: 					GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
-001F06 C201              CLR     ?_GPIO_Setout?BIT
-001F08 7F1E              MOV     R7,#01EH
-001F0A 120FD0            LCALL   _GPIO_Setout
-   80: 					g_variable.sys_capslockled_on_timer = 0;
-001F0D E4                CLR     A
-001F0E 904CE7            MOV     DPTR,#g_variable+028H
-001F11 F0                MOVX    @DPTR,A
-   81: 				}	
-001F12         ?C0016?LED:
-   82: 
-   83: 				//if(m_caps_num_lock & KB_PC_KEYSEL_SCROLLLOCK)
-   84: 				//	g_variable.sys_scrolllockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
-   85: 				//else 
-   86: 				//	g_variable.sys_scrolllockled_on_timer = 0;
-   87: 					
-   88: 				m_caps_num_lock_last = m_caps_num_lock;
-001F12 904CB7            MOV     DPTR,#m_caps_num_lock
-001F15 E0                MOVX    A,@DPTR
-001F16 904DD9            MOV     DPTR,#m_caps_num_lock_last
-001F19 F0                MOVX    @DPTR,A
-   89: 			}
-   90: 		}
-001F1A 22                RET     
-001F1B         ?C0013?LED:
-   91: 		else
-   92: 		{
-   93: 			//GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
-   94: 			GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
-001F1B C201              CLR     ?_GPIO_Setout?BIT
-001F1D 7F1E              MOV     R7,#01EH
-001F1F 020FD0            LJMP    _GPIO_Setout
-   95: 		}
-   96: 	}
-001F22         ?C0006?LED:
-   97: 	else
-   98: 	{
-   99: 		//GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
-  100: 		GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
-001F22 C201              CLR     ?_GPIO_Setout?BIT
-001F24 7F1E              MOV     R7,#01EH
-001F26 120FD0            LCALL   _GPIO_Setout
-  101: 	}
-  102: 
-  103: }
-001F29         ?C0005?LED:
-001F29 22                RET     
------ FUNCTION LED_handle (END) -------
-
-
 ----- FUNCTION System_Hardware_reset (BEGIN) -----
  FILE: 'sys.c'
    56: static void System_Hardware_reset()
    57: {
    58: 	m_reset_reg = 1;
    59: 	while(1);
-001F2A 908010            MOV     DPTR,#m_reset_reg
-001F2D 7401              MOV     A,#01H
-001F2F F0                MOVX    @DPTR,A
-001F30         ?C0004?SYS:
+001E88 908010            MOV     DPTR,#m_reset_reg
+001E8B 7401              MOV     A,#01H
+001E8D F0                MOVX    @DPTR,A
+001E8E         ?C0004?SYS:
    60: }
-001F30 80FE              SJMP    ?C0004?SYS
-001F32 22                RET     
+001E8E 80FE              SJMP    ?C0004?SYS
+001E90 22                RET     
 ----- FUNCTION System_Hardware_reset (END) -------
 
 
@@ -5997,7 +5965,7 @@
    69: {
    70: 	System_Hardware_reset();
    71: }
-001F33 80F5              SJMP    System_Hardware_reset
+001E91 80F5              SJMP    System_Hardware_reset
 ----- FUNCTION System_Reset_Connect (END) -------
 
 
@@ -6005,45 +5973,45 @@
  FILE: 'sys.c'
    78: static void kb_cb_Hid(byte *p,byte len) {
    79: 	//p[0] is hid type,always is 1(kb) now
-001F35 904EA9            MOV     DPTR,#len
-001F38 ED                MOV     A,R5
-001F39 F0                MOVX    @DPTR,A
+001E93 904EA9            MOV     DPTR,#len
+001E96 ED                MOV     A,R5
+001E97 F0                MOVX    @DPTR,A
 ;---- Variable 'p' assigned to Register 'R1/R2/R3' ----
    80: 	byte temp = p[1];
-001F3A 900001            MOV     DPTR,#01H
-001F3D 1203CF            LCALL   ?C?CLDOPTR
-001F40 904EAA            MOV     DPTR,#temp
-001F43 F0                MOVX    @DPTR,A
+001E98 900001            MOV     DPTR,#01H
+001E9B 1203CF            LCALL   ?C?CLDOPTR
+001E9E 904EAA            MOV     DPTR,#temp
+001EA1 F0                MOVX    @DPTR,A
    81: 
    82: 	if (len<2) {
    83: 		return;
    84: 	}
    85: }
-001F44 22                RET     
+001EA2 22                RET     
 ----- FUNCTION _kb_cb_Hid (END) -------
 
 
 ----- FUNCTION kb_cb_init (BEGIN) -----
  FILE: 'sys.c'
-  443: static void kb_cb_init()
-  444: {
-  445: 	IPC_Initialize(&cb);
-  446: }
-001F45 7B01              MOV     R3,#01H
-001F47 7A4E              MOV     R2,#HIGH cb
-001F49 790B              MOV     R1,#LOW cb
+  456: static void kb_cb_init()
+  457: {
+  458: 	IPC_Initialize(&cb);
+  459: }
+001EA3 7B01              MOV     R3,#01H
+001EA5 7A4E              MOV     R2,#HIGH cb
+001EA7 790B              MOV     R1,#LOW cb
 ;----                  JMP     _IPC_Initialize
 ----- FUNCTION kb_cb_init (END) -------
 
 
 ----- FUNCTION _IPC_Initialize (BEGIN) -----
 ;---- Variable 'cb' assigned to Register 'R1/R2/R3' ----
-001F4B 781D              MOV     R0,#LOW ipcCb
-001F4D 7C4E              MOV     R4,#HIGH ipcCb
-001F4F 7D01              MOV     R5,#01H
-001F51 7E00              MOV     R6,#00H
-001F53 7F12              MOV     R7,#012H
-001F55 020390            LJMP    ?C?COPY
+001EA9 781D              MOV     R0,#LOW ipcCb
+001EAB 7C4E              MOV     R4,#HIGH ipcCb
+001EAD 7D01              MOV     R5,#01H
+001EAF 7E00              MOV     R6,#00H
+001EB1 7F12              MOV     R7,#012H
+001EB3 020390            LJMP    ?C?COPY
 ----- FUNCTION _IPC_Initialize (END) -------
 
 
@@ -6051,962 +6019,939 @@
  FILE: 'adc.c'
     3: void YC_adc_init()
     4: {
-    5: 	byte i;
-001F58 22                RET     
-    6: 	#ifndef  ADC_ENABLE
-    7: 		return;
-    8: 	#endif	
-    9: 	m_adc_channel = ADC_CHANNEL;
-   10: 	g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
-   11: 	g_variable.battery_value_index = 0;
+    5: #ifdef  ADC_ENABLE
+    6: 	byte i;
+    7: 	
+    8: 	g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
+001EB6 904CD3            MOV     DPTR,#g_variable+014H
+001EB9 7405              MOV     A,#05H
+001EBB F0                MOVX    @DPTR,A
+    9: 	g_variable.battery_value_index = 0;
+001EBC E4                CLR     A
+001EBD A3                INC     DPTR
+001EBE F0                MOVX    @DPTR,A
+   10: 
+   11: #ifdef ADC_TYPE_HVIN 	
    12: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
-001F59         ?C0002?ADC:
-001F59 904EB3            MOV     DPTR,#i
-001F5C E0                MOVX    A,@DPTR
-001F5D FF                MOV     R7,A
-001F5E C3                CLR     C
-001F5F 9404              SUBB    A,#04H
-001F61 501B              JNC     ?C0003?ADC
    13: 	{
    14: 		g_variable.battery_value[i] = INIT_BATTERY_VALUE;
-001F63 EF                MOV     A,R7
-001F64 25E0              ADD     A,ACC
-001F66 24D6              ADD     A,#LOW g_variable+017H
-001F68 F582              MOV     DPL,A
-001F6A E4                CLR     A
-001F6B 344C              ADDC    A,#HIGH g_variable+017H
-001F6D F583              MOV     DPH,A
-001F6F 7479              MOV     A,#079H
-001F71 F0                MOVX    @DPTR,A
-001F72 A3                INC     DPTR
-001F73 7490              MOV     A,#090H
-001F75 F0                MOVX    @DPTR,A
    15: 	}
-001F76 904EB3            MOV     DPTR,#i
-001F79 E0                MOVX    A,@DPTR
-001F7A 04                INC     A
-001F7B F0                MOVX    @DPTR,A
-001F7C 80DB              SJMP    ?C0002?ADC
-001F7E         ?C0003?ADC:
    16: 
-   17: 	
-   18: 	if(m_adc_config_flag == ADC_TYPE_HVIN)
-001F7E 904C8F            MOV     DPTR,#m_adc_config_flag
-001F81 E0                MOVX    A,@DPTR
-001F82 6402              XRL     A,#02H
-001F84 6003              JZ      $ + 5H
-001F86 022026            LJMP    ?C0005?ADC
-   19: 	{
-   20: 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V2+m_adc0vBase;
-001F89 904C91            MOV     DPTR,#m_adc0vBase
-001F8C E0                MOVX    A,@DPTR
-001F8D FE                MOV     R6,A
-001F8E A3                INC     DPTR
-001F8F E0                MOVX    A,@DPTR
-001F90 FF                MOV     R7,A
-001F91 C3                CLR     C
-001F92 904C94            MOV     DPTR,#m_adc3vValue+01H
-001F95 E0                MOVX    A,@DPTR
-001F96 9F                SUBB    A,R7
-001F97 FD                MOV     R5,A
-001F98 904C93            MOV     DPTR,#m_adc3vValue
-001F9B E0                MOVX    A,@DPTR
-001F9C 9E                SUBB    A,R6
-001F9D FC                MOV     R4,A
-001F9E E4                CLR     A
-001F9F 120206            LCALL   ?C?FCASTI
-001FA2 7BC3              MOV     R3,#0C3H
-001FA4 7AF5              MOV     R2,#0F5H
-001FA6 7988              MOV     R1,#088H
-001FA8 783F              MOV     R0,#03FH
-001FAA 1200FB            LCALL   ?C?FPMUL
-001FAD C004              PUSH    AR4
-001FAF C005              PUSH    AR5
-001FB1 C006              PUSH    AR6
-001FB3 C007              PUSH    AR7
-001FB5 904C91            MOV     DPTR,#m_adc0vBase
-001FB8 E0                MOVX    A,@DPTR
-001FB9 FC                MOV     R4,A
-001FBA A3                INC     DPTR
-001FBB E0                MOVX    A,@DPTR
-001FBC FD                MOV     R5,A
-001FBD E4                CLR     A
-001FBE 120206            LCALL   ?C?FCASTI
-001FC1 D003              POP     AR3
-001FC3 D002              POP     AR2
-001FC5 D001              POP     AR1
-001FC7 D000              POP     AR0
-001FC9 12000A            LCALL   ?C?FPADD
-001FCC 12023F            LCALL   ?C?CASTF
-001FCF 904CDE            MOV     DPTR,#g_variable+01FH
-001FD2 EE                MOV     A,R6
-001FD3 F0                MOVX    @DPTR,A
-001FD4 A3                INC     DPTR
-001FD5 EF                MOV     A,R7
-001FD6 F0                MOVX    @DPTR,A
-   21: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V0+m_adc0vBase;
-001FD7 904C91            MOV     DPTR,#m_adc0vBase
-001FDA E0                MOVX    A,@DPTR
-001FDB FE                MOV     R6,A
-001FDC A3                INC     DPTR
-001FDD E0                MOVX    A,@DPTR
-001FDE FF                MOV     R7,A
-001FDF C3                CLR     C
-001FE0 904C94            MOV     DPTR,#m_adc3vValue+01H
-001FE3 E0                MOVX    A,@DPTR
-001FE4 9F                SUBB    A,R7
-001FE5 FD                MOV     R5,A
-001FE6 904C93            MOV     DPTR,#m_adc3vValue
-001FE9 E0                MOVX    A,@DPTR
-001FEA 9E                SUBB    A,R6
-001FEB FC                MOV     R4,A
-001FEC E4                CLR     A
-001FED 120206            LCALL   ?C?FCASTI
-001FF0 7BAE              MOV     R3,#0AEH
-001FF2 7A47              MOV     R2,#047H
-001FF4 7981              MOV     R1,#081H
-001FF6 783F              MOV     R0,#03FH
-001FF8 1200FB            LCALL   ?C?FPMUL
-001FFB C004              PUSH    AR4
-001FFD C005              PUSH    AR5
-001FFF C006              PUSH    AR6
-002001 C007              PUSH    AR7
-002003 904C91            MOV     DPTR,#m_adc0vBase
-002006 E0                MOVX    A,@DPTR
-002007 FC                MOV     R4,A
-002008 A3                INC     DPTR
-002009 E0                MOVX    A,@DPTR
-00200A FD                MOV     R5,A
-00200B E4                CLR     A
-00200C 120206            LCALL   ?C?FCASTI
-00200F D003              POP     AR3
-002011 D002              POP     AR2
-002013 D001              POP     AR1
-002015 D000              POP     AR0
-002017 12000A            LCALL   ?C?FPADD
-00201A 12023F            LCALL   ?C?CASTF
-00201D 904CE0            MOV     DPTR,#g_variable+021H
-002020 EE                MOV     A,R6
-002021 F0                MOVX    @DPTR,A
-002022 A3                INC     DPTR
-002023 EF                MOV     A,R7
-002024 F0                MOVX    @DPTR,A
-   22: 	}
-002025 22                RET     
-002026         ?C0005?ADC:
-   23: 	else if(m_adc_config_flag == ADC_TYPE_VINLPM)
-002026 904C8F            MOV     DPTR,#m_adc_config_flag
-002029 E0                MOVX    A,@DPTR
-00202A 6401              XRL     A,#01H
-00202C 7002              JNZ     $ + 4H
-00202E 01CC              AJMP    ?C0001?ADC
-   24: 	{
-   25: 
-   26: 	}
-002030         ?C0007?ADC:
-   27: 	else
-   28: 	{
-   29: 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_1V1+m_adc0vBase;
-002030 904C91            MOV     DPTR,#m_adc0vBase
-002033 E0                MOVX    A,@DPTR
-002034 FE                MOV     R6,A
-002035 A3                INC     DPTR
-002036 E0                MOVX    A,@DPTR
-002037 FF                MOV     R7,A
-002038 C3                CLR     C
-002039 904C94            MOV     DPTR,#m_adc3vValue+01H
-00203C E0                MOVX    A,@DPTR
-00203D 9F                SUBB    A,R7
-00203E FD                MOV     R5,A
-00203F 904C93            MOV     DPTR,#m_adc3vValue
-002042 E0                MOVX    A,@DPTR
-002043 9E                SUBB    A,R6
-002044 FC                MOV     R4,A
-002045 E4                CLR     A
-002046 120206            LCALL   ?C?FCASTI
-002049 7BC3              MOV     R3,#0C3H
-00204B 7AF5              MOV     R2,#0F5H
-00204D 79A8              MOV     R1,#0A8H
-00204F 783E              MOV     R0,#03EH
-002051 1200FB            LCALL   ?C?FPMUL
-002054 C004              PUSH    AR4
-002056 C005              PUSH    AR5
-002058 C006              PUSH    AR6
-00205A C007              PUSH    AR7
-00205C 904C91            MOV     DPTR,#m_adc0vBase
-00205F E0                MOVX    A,@DPTR
-002060 FC                MOV     R4,A
-002061 A3                INC     DPTR
-002062 E0                MOVX    A,@DPTR
-002063 FD                MOV     R5,A
-002064 E4                CLR     A
-002065 120206            LCALL   ?C?FCASTI
-002068 D003              POP     AR3
-00206A D002              POP     AR2
-00206C D001              POP     AR1
-00206E D000              POP     AR0
-002070 12000A            LCALL   ?C?FPADD
-002073 12023F            LCALL   ?C?CASTF
-002076 904CDE            MOV     DPTR,#g_variable+01FH
-002079 EE                MOV     A,R6
-00207A F0                MOVX    @DPTR,A
-00207B A3                INC     DPTR
-00207C EF                MOV     A,R7
-00207D F0                MOVX    @DPTR,A
-   30: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_0V9+m_adc0vBase;
-00207E 904C91            MOV     DPTR,#m_adc0vBase
-002081 E0                MOVX    A,@DPTR
-002082 FE                MOV     R6,A
-002083 A3                INC     DPTR
-002084 E0                MOVX    A,@DPTR
-002085 FF                MOV     R7,A
-002086 C3                CLR     C
-002087 904C94            MOV     DPTR,#m_adc3vValue+01H
-00208A E0                MOVX    A,@DPTR
-00208B 9F                SUBB    A,R7
-00208C FD                MOV     R5,A
-00208D 904C93            MOV     DPTR,#m_adc3vValue
-002090 E0                MOVX    A,@DPTR
-002091 9E                SUBB    A,R6
-002092 FC                MOV     R4,A
-002093 E4                CLR     A
-002094 120206            LCALL   ?C?FCASTI
-002097 7B5C              MOV     R3,#05CH
-002099 7A8F              MOV     R2,#08FH
-00209B 7942              MOV     R1,#042H
-00209D 783E              MOV     R0,#03EH
-00209F 1200FB            LCALL   ?C?FPMUL
-0020A2 C004              PUSH    AR4
-0020A4 C005              PUSH    AR5
-0020A6 C006              PUSH    AR6
-0020A8 C007              PUSH    AR7
-0020AA 904C91            MOV     DPTR,#m_adc0vBase
-0020AD E0                MOVX    A,@DPTR
-0020AE FC                MOV     R4,A
-0020AF A3                INC     DPTR
-0020B0 E0                MOVX    A,@DPTR
-0020B1 FD                MOV     R5,A
-0020B2 E4                CLR     A
-0020B3 120206            LCALL   ?C?FCASTI
-0020B6 D003              POP     AR3
-0020B8 D002              POP     AR2
-0020BA D001              POP     AR1
-0020BC D000              POP     AR0
-0020BE 12000A            LCALL   ?C?FPADD
-0020C1 12023F            LCALL   ?C?CASTF
-0020C4 904CE0            MOV     DPTR,#g_variable+021H
-0020C7 EE                MOV     A,R6
-0020C8 F0                MOVX    @DPTR,A
-0020C9 A3                INC     DPTR
-0020CA EF                MOV     A,R7
-0020CB F0                MOVX    @DPTR,A
-   31: 	}
-   32: 	
-   33: }
-0020CC         ?C0001?ADC:
-0020CC 22                RET     
+   17: 	g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V2+m_adc0vBase;
+   18: 	g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V0+m_adc0vBase;
+   19: #endif
+   20: #ifdef ADC_TYPE_VINLPM
+   21: 		for (i = 0; i < BAT_ARRAY_LEN; i++)
+;---- Variable 'i' assigned to Register 'R7' ----
+001EBF FF                MOV     R7,A
+001EC0         ?C0001?ADC:
+   22: 		{
+   23: 			g_variable.battery_value[i] = INIT_BATTERY_VALUE_VINLPM;
+001EC0 EF                MOV     A,R7
+001EC1 25E0              ADD     A,ACC
+001EC3 24D6              ADD     A,#LOW g_variable+017H
+001EC5 F582              MOV     DPL,A
+001EC7 E4                CLR     A
+001EC8 344C              ADDC    A,#HIGH g_variable+017H
+001ECA F583              MOV     DPH,A
+001ECC 7451              MOV     A,#051H
+001ECE F0                MOVX    @DPTR,A
+001ECF A3                INC     DPTR
+001ED0 F0                MOVX    @DPTR,A
+   24: 		}
+001ED1 0F                INC     R7
+001ED2 EF                MOV     A,R7
+001ED3 B404EA            CJNE    A,#04H,?C0001?ADC
+001ED6         ?C0002?ADC:
+   25: 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_2V2+m_adc0vBase;
+001ED6 904C91            MOV     DPTR,#m_adc0vBase
+001ED9 E0                MOVX    A,@DPTR
+001EDA FE                MOV     R6,A
+001EDB A3                INC     DPTR
+001EDC E0                MOVX    A,@DPTR
+001EDD FF                MOV     R7,A
+001EDE C3                CLR     C
+001EDF 904C94            MOV     DPTR,#m_adc3vValue+01H
+001EE2 E0                MOVX    A,@DPTR
+001EE3 9F                SUBB    A,R7
+001EE4 FD                MOV     R5,A
+001EE5 904C93            MOV     DPTR,#m_adc3vValue
+001EE8 E0                MOVX    A,@DPTR
+001EE9 9E                SUBB    A,R6
+001EEA FC                MOV     R4,A
+001EEB E4                CLR     A
+001EEC 120206            LCALL   ?C?FCASTI
+001EEF 7BA4              MOV     R3,#0A4H
+001EF1 7A70              MOV     R2,#070H
+001EF3 793D              MOV     R1,#03DH
+001EF5 783F              MOV     R0,#03FH
+001EF7 1200FB            LCALL   ?C?FPMUL
+001EFA C004              PUSH    AR4
+001EFC C005              PUSH    AR5
+001EFE C006              PUSH    AR6
+001F00 C007              PUSH    AR7
+001F02 904C91            MOV     DPTR,#m_adc0vBase
+001F05 E0                MOVX    A,@DPTR
+001F06 FC                MOV     R4,A
+001F07 A3                INC     DPTR
+001F08 E0                MOVX    A,@DPTR
+001F09 FD                MOV     R5,A
+001F0A E4                CLR     A
+001F0B 120206            LCALL   ?C?FCASTI
+001F0E D003              POP     AR3
+001F10 D002              POP     AR2
+001F12 D001              POP     AR1
+001F14 D000              POP     AR0
+001F16 12000A            LCALL   ?C?FPADD
+001F19 12023F            LCALL   ?C?CASTF
+001F1C 904CDE            MOV     DPTR,#g_variable+01FH
+001F1F EE                MOV     A,R6
+001F20 F0                MOVX    @DPTR,A
+001F21 A3                INC     DPTR
+001F22 EF                MOV     A,R7
+001F23 F0                MOVX    @DPTR,A
+   26: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_2V0+m_adc0vBase;
+001F24 904C91            MOV     DPTR,#m_adc0vBase
+001F27 E0                MOVX    A,@DPTR
+001F28 FE                MOV     R6,A
+001F29 A3                INC     DPTR
+001F2A E0                MOVX    A,@DPTR
+001F2B FF                MOV     R7,A
+001F2C C3                CLR     C
+001F2D 904C94            MOV     DPTR,#m_adc3vValue+01H
+001F30 E0                MOVX    A,@DPTR
+001F31 9F                SUBB    A,R7
+001F32 FD                MOV     R5,A
+001F33 904C93            MOV     DPTR,#m_adc3vValue
+001F36 E0                MOVX    A,@DPTR
+001F37 9E                SUBB    A,R6
+001F38 FC                MOV     R4,A
+001F39 E4                CLR     A
+001F3A 120206            LCALL   ?C?FCASTI
+001F3D 7B1F              MOV     R3,#01FH
+001F3F 7A85              MOV     R2,#085H
+001F41 792B              MOV     R1,#02BH
+001F43 783F              MOV     R0,#03FH
+001F45 1200FB            LCALL   ?C?FPMUL
+001F48 C004              PUSH    AR4
+001F4A C005              PUSH    AR5
+001F4C C006              PUSH    AR6
+001F4E C007              PUSH    AR7
+001F50 904C91            MOV     DPTR,#m_adc0vBase
+001F53 E0                MOVX    A,@DPTR
+001F54 FC                MOV     R4,A
+001F55 A3                INC     DPTR
+001F56 E0                MOVX    A,@DPTR
+001F57 FD                MOV     R5,A
+001F58 E4                CLR     A
+001F59 120206            LCALL   ?C?FCASTI
+001F5C D003              POP     AR3
+001F5E D002              POP     AR2
+001F60 D001              POP     AR1
+001F62 D000              POP     AR0
+001F64 12000A            LCALL   ?C?FPADD
+001F67 12023F            LCALL   ?C?CASTF
+001F6A 904CE0            MOV     DPTR,#g_variable+021H
+001F6D EE                MOV     A,R6
+001F6E F0                MOVX    @DPTR,A
+001F6F A3                INC     DPTR
+001F70 EF                MOV     A,R7
+001F71 F0                MOVX    @DPTR,A
+   27: #endif
+   28: #ifdef ADC_TYPE_GPIO
+   29: 	m_adc_channel = ADC_CHANNEL;
+   30: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
+   31: 	{
+   32: 		g_variable.battery_value[i] = INIT_BATTERY_VALUE;
+   33: 	}
+   34: 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_1V1+m_adc0vBase;
+   35: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_0V9+m_adc0vBase;
+   36: #endif	
+   37: #endif
+   38: }
+001F72 22                RET     
 ----- FUNCTION YC_adc_init (END) -------
 
 
 ----- FUNCTION YC_adc_check (BEGIN) -----
  FILE: 'adc.c'
-   35: void YC_adc_check() 
-   36: {
-   37: 	byte i;
-   38: 	ulong batValue = 0;
-0020CD 904E75            MOV     DPTR,#batValue
-0020D0 120533            LCALL   ?C?LSTKXDATA
-0020D3 00                DB      00H
-0020D4 00                DB      00H
-0020D5 00                DB      00H
-0020D6 00                DB      00H
-0020D7 22                RET     
-   39: 	#ifndef  ADC_ENABLE
-   40: 		return;
-   41: 	#endif	
-   42: //	if(m_adcCurrentValue < m_adc0vBase) 
-   43: //		return;
-   44: 
-   45: 	g_variable.battery_value[g_variable.battery_value_index++] = m_adcCurrentValue;
-   46: 	if (g_variable.battery_value_index >= BAT_ARRAY_LEN)
-   47: 		g_variable.battery_value_index = 0;
-0020D8         ?C0010?ADC:
-   48: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
-0020D8 E4                CLR     A
-0020D9 904E74            MOV     DPTR,#i
-0020DC F0                MOVX    @DPTR,A
-0020DD         ?C0011?ADC:
-   49: 	{
-   50: 		batValue += g_variable.battery_value[i];
-0020DD 904E75            MOV     DPTR,#batValue
-0020E0 E0                MOVX    A,@DPTR
-0020E1 F8                MOV     R0,A
-0020E2 A3                INC     DPTR
-0020E3 E0                MOVX    A,@DPTR
-0020E4 F9                MOV     R1,A
-0020E5 A3                INC     DPTR
-0020E6 E0                MOVX    A,@DPTR
-0020E7 FA                MOV     R2,A
-0020E8 A3                INC     DPTR
-0020E9 E0                MOVX    A,@DPTR
-0020EA FB                MOV     R3,A
-0020EB 904E74            MOV     DPTR,#i
-0020EE E0                MOVX    A,@DPTR
-0020EF 25E0              ADD     A,ACC
-0020F1 24D6              ADD     A,#LOW g_variable+017H
-0020F3 F582              MOV     DPL,A
-0020F5 E4                CLR     A
-0020F6 344C              ADDC    A,#HIGH g_variable+017H
-0020F8 F583              MOV     DPH,A
-0020FA E0                MOVX    A,@DPTR
-0020FB FE                MOV     R6,A
-0020FC A3                INC     DPTR
-0020FD E0                MOVX    A,@DPTR
-0020FE FF                MOV     R7,A
-0020FF E4                CLR     A
-002100 FC                MOV     R4,A
-002101 FD                MOV     R5,A
-002102 EB                MOV     A,R3
-002103 2F                ADD     A,R7
-002104 FF                MOV     R7,A
-002105 EA                MOV     A,R2
-002106 3E                ADDC    A,R6
-002107 FE                MOV     R6,A
-002108 ED                MOV     A,R5
-002109 39                ADDC    A,R1
-00210A FD                MOV     R5,A
-00210B EC                MOV     A,R4
-00210C 38                ADDC    A,R0
-00210D FC                MOV     R4,A
-00210E 904E75            MOV     DPTR,#batValue
-002111 120527            LCALL   ?C?LSTXDATA
-   51: 	}
-002114 904E74            MOV     DPTR,#i
-002117 E0                MOVX    A,@DPTR
-002118 04                INC     A
-002119 F0                MOVX    @DPTR,A
-00211A E0                MOVX    A,@DPTR
-00211B B404BF            CJNE    A,#04H,?C0011?ADC
-00211E         ?C0012?ADC:
-   52: 	batValue = batValue/BAT_ARRAY_LEN;
-00211E 904E75            MOV     DPTR,#batValue
-002121 E0                MOVX    A,@DPTR
-002122 FC                MOV     R4,A
-002123 A3                INC     DPTR
-002124 E0                MOVX    A,@DPTR
-002125 FD                MOV     R5,A
-002126 A3                INC     DPTR
-002127 E0                MOVX    A,@DPTR
-002128 FE                MOV     R6,A
-002129 A3                INC     DPTR
-00212A E0                MOVX    A,@DPTR
-00212B FF                MOV     R7,A
-00212C E4                CLR     A
-00212D 7B04              MOV     R3,#04H
-00212F FA                MOV     R2,A
-002130 F9                MOV     R1,A
-002131 F8                MOV     R0,A
-002132 120476            LCALL   ?C?ULDIV
-002135 904E75            MOV     DPTR,#batValue
-002138 120527            LCALL   ?C?LSTXDATA
-   53: 
-   54: 	if(g_variable.battery_value[0] < g_variable.battery_level_shutdown)
-00213B 904CE0            MOV     DPTR,#g_variable+021H
-00213E E0                MOVX    A,@DPTR
-00213F FE                MOV     R6,A
-002140 A3                INC     DPTR
-002141 E0                MOVX    A,@DPTR
-002142 FF                MOV     R7,A
-002143 C3                CLR     C
-002144 904CD7            MOV     DPTR,#g_variable+018H
-002147 E0                MOVX    A,@DPTR
-002148 9F                SUBB    A,R7
-002149 904CD6            MOV     DPTR,#g_variable+017H
-00214C E0                MOVX    A,@DPTR
-00214D 9E                SUBB    A,R6
-00214E 5007              JNC     ?C0014?ADC
-   55: 	{
-   56: 		g_variable.battery_status = BAT_STATUS_SHUT_DOWN;
-002150 904CD5            MOV     DPTR,#g_variable+016H
-002153 7402              MOV     A,#02H
-002155 F0                MOVX    @DPTR,A
-   57: 	}
-002156 22                RET     
-002157         ?C0014?ADC:
-   58: 	else
-   59: 	{
-   60: 		if (batValue < g_variable.battery_level_low)
-002157 904CDE            MOV     DPTR,#g_variable+01FH
-00215A E0                MOVX    A,@DPTR
-00215B FE                MOV     R6,A
-00215C A3                INC     DPTR
-00215D E0                MOVX    A,@DPTR
-00215E FF                MOV     R7,A
-00215F E4                CLR     A
-002160 FC                MOV     R4,A
-002161 FD                MOV     R5,A
-002162 904E75            MOV     DPTR,#batValue
-002165 E0                MOVX    A,@DPTR
-002166 F8                MOV     R0,A
-002167 A3                INC     DPTR
-002168 E0                MOVX    A,@DPTR
-002169 F9                MOV     R1,A
-00216A A3                INC     DPTR
-00216B E0                MOVX    A,@DPTR
-00216C FA                MOV     R2,A
-00216D A3                INC     DPTR
-00216E E0                MOVX    A,@DPTR
-00216F FB                MOV     R3,A
-002170 C3                CLR     C
-002171 120516            LCALL   ?C?ULCMP
-002174 5007              JNC     ?C0016?ADC
-   61: 		{
-   62: 			g_variable.battery_status = BAT_STATUS_LOW;
-002176 904CD5            MOV     DPTR,#g_variable+016H
-002179 7401              MOV     A,#01H
-00217B F0                MOVX    @DPTR,A
-   63: 		}
-00217C 22                RET     
-00217D         ?C0016?ADC:
-   64: 		else
-   65: 		{
-   66: 			g_variable.battery_status = BAT_STATUS_NONE;
-00217D E4                CLR     A
-00217E 904CD5            MOV     DPTR,#g_variable+016H
-002181 F0                MOVX    @DPTR,A
-   67: 		}
-   68: 	}
-   69: 	
-   70: }
-002182 22                RET     
+   40: void YC_adc_check() 
+   41: {
+   42: #ifdef  ADC_ENABLE
+   43: 	byte i;
+   44: 	ulong batValue = 0;
+001F73 904E75            MOV     DPTR,#batValue
+001F76 120533            LCALL   ?C?LSTKXDATA
+001F79 00                DB      00H
+001F7A 00                DB      00H
+001F7B 00                DB      00H
+001F7C 00                DB      00H
+   45: 
+   46: 	g_variable.battery_value[g_variable.battery_value_index++] = m_adcCurrentValue;
+001F7D 904C95            MOV     DPTR,#m_adcCurrentValue
+001F80 E0                MOVX    A,@DPTR
+001F81 FE                MOV     R6,A
+001F82 A3                INC     DPTR
+001F83 E0                MOVX    A,@DPTR
+001F84 FF                MOV     R7,A
+001F85 904CD4            MOV     DPTR,#g_variable+015H
+001F88 E0                MOVX    A,@DPTR
+001F89 FD                MOV     R5,A
+001F8A 04                INC     A
+001F8B F0                MOVX    @DPTR,A
+001F8C ED                MOV     A,R5
+001F8D 25E0              ADD     A,ACC
+001F8F 24D6              ADD     A,#LOW g_variable+017H
+001F91 F582              MOV     DPL,A
+001F93 E4                CLR     A
+001F94 344C              ADDC    A,#HIGH g_variable+017H
+001F96 F583              MOV     DPH,A
+001F98 EE                MOV     A,R6
+001F99 F0                MOVX    @DPTR,A
+001F9A A3                INC     DPTR
+001F9B EF                MOV     A,R7
+001F9C F0                MOVX    @DPTR,A
+   47: 	if (g_variable.battery_value_index >= BAT_ARRAY_LEN)
+001F9D 904CD4            MOV     DPTR,#g_variable+015H
+001FA0 E0                MOVX    A,@DPTR
+001FA1 C3                CLR     C
+001FA2 9404              SUBB    A,#04H
+001FA4 4002              JC      ?C0005?ADC
+   48: 		g_variable.battery_value_index = 0;
+001FA6 E4                CLR     A
+001FA7 F0                MOVX    @DPTR,A
+001FA8         ?C0005?ADC:
+   49: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
+001FA8 E4                CLR     A
+001FA9 904E74            MOV     DPTR,#i
+001FAC F0                MOVX    @DPTR,A
+001FAD         ?C0006?ADC:
+   50: 	{
+   51: 		batValue += g_variable.battery_value[i];
+001FAD 904E75            MOV     DPTR,#batValue
+001FB0 E0                MOVX    A,@DPTR
+001FB1 F8                MOV     R0,A
+001FB2 A3                INC     DPTR
+001FB3 E0                MOVX    A,@DPTR
+001FB4 F9                MOV     R1,A
+001FB5 A3                INC     DPTR
+001FB6 E0                MOVX    A,@DPTR
+001FB7 FA                MOV     R2,A
+001FB8 A3                INC     DPTR
+001FB9 E0                MOVX    A,@DPTR
+001FBA FB                MOV     R3,A
+001FBB 904E74            MOV     DPTR,#i
+001FBE E0                MOVX    A,@DPTR
+001FBF 25E0              ADD     A,ACC
+001FC1 24D6              ADD     A,#LOW g_variable+017H
+001FC3 F582              MOV     DPL,A
+001FC5 E4                CLR     A
+001FC6 344C              ADDC    A,#HIGH g_variable+017H
+001FC8 F583              MOV     DPH,A
+001FCA E0                MOVX    A,@DPTR
+001FCB FE                MOV     R6,A
+001FCC A3                INC     DPTR
+001FCD E0                MOVX    A,@DPTR
+001FCE FF                MOV     R7,A
+001FCF E4                CLR     A
+001FD0 FC                MOV     R4,A
+001FD1 FD                MOV     R5,A
+001FD2 EB                MOV     A,R3
+001FD3 2F                ADD     A,R7
+001FD4 FF                MOV     R7,A
+001FD5 EA                MOV     A,R2
+001FD6 3E                ADDC    A,R6
+001FD7 FE                MOV     R6,A
+001FD8 ED                MOV     A,R5
+001FD9 39                ADDC    A,R1
+001FDA FD                MOV     R5,A
+001FDB EC                MOV     A,R4
+001FDC 38                ADDC    A,R0
+001FDD FC                MOV     R4,A
+001FDE 904E75            MOV     DPTR,#batValue
+001FE1 120527            LCALL   ?C?LSTXDATA
+   52: 	}
+001FE4 904E74            MOV     DPTR,#i
+001FE7 E0                MOVX    A,@DPTR
+001FE8 04                INC     A
+001FE9 F0                MOVX    @DPTR,A
+001FEA E0                MOVX    A,@DPTR
+001FEB B404BF            CJNE    A,#04H,?C0006?ADC
+001FEE         ?C0007?ADC:
+   53: 	batValue = batValue/BAT_ARRAY_LEN;
+001FEE 904E75            MOV     DPTR,#batValue
+001FF1 E0                MOVX    A,@DPTR
+001FF2 FC                MOV     R4,A
+001FF3 A3                INC     DPTR
+001FF4 E0                MOVX    A,@DPTR
+001FF5 FD                MOV     R5,A
+001FF6 A3                INC     DPTR
+001FF7 E0                MOVX    A,@DPTR
+001FF8 FE                MOV     R6,A
+001FF9 A3                INC     DPTR
+001FFA E0                MOVX    A,@DPTR
+001FFB FF                MOV     R7,A
+001FFC E4                CLR     A
+001FFD 7B04              MOV     R3,#04H
+001FFF FA                MOV     R2,A
+002000 F9                MOV     R1,A
+002001 F8                MOV     R0,A
+002002 120476            LCALL   ?C?ULDIV
+002005 904E75            MOV     DPTR,#batValue
+002008 120527            LCALL   ?C?LSTXDATA
+   54: 
+   55: 	if(g_variable.battery_value[0] < g_variable.battery_level_shutdown)
+00200B 904CE0            MOV     DPTR,#g_variable+021H
+00200E E0                MOVX    A,@DPTR
+00200F FE                MOV     R6,A
+002010 A3                INC     DPTR
+002011 E0                MOVX    A,@DPTR
+002012 FF                MOV     R7,A
+002013 C3                CLR     C
+002014 904CD7            MOV     DPTR,#g_variable+018H
+002017 E0                MOVX    A,@DPTR
+002018 9F                SUBB    A,R7
+002019 904CD6            MOV     DPTR,#g_variable+017H
+00201C E0                MOVX    A,@DPTR
+00201D 9E                SUBB    A,R6
+00201E 5007              JNC     ?C0009?ADC
+   56: 	{
+   57: 		g_variable.battery_status = BAT_STATUS_SHUT_DOWN;
+002020 904CD5            MOV     DPTR,#g_variable+016H
+002023 7402              MOV     A,#02H
+002025 F0                MOVX    @DPTR,A
+   58: 	}
+002026 22                RET     
+002027         ?C0009?ADC:
+   59: 	else
+   60: 	{
+   61: 		if (batValue < g_variable.battery_level_low)
+002027 904CDE            MOV     DPTR,#g_variable+01FH
+00202A E0                MOVX    A,@DPTR
+00202B FE                MOV     R6,A
+00202C A3                INC     DPTR
+00202D E0                MOVX    A,@DPTR
+00202E FF                MOV     R7,A
+00202F E4                CLR     A
+002030 FC                MOV     R4,A
+002031 FD                MOV     R5,A
+002032 904E75            MOV     DPTR,#batValue
+002035 E0                MOVX    A,@DPTR
+002036 F8                MOV     R0,A
+002037 A3                INC     DPTR
+002038 E0                MOVX    A,@DPTR
+002039 F9                MOV     R1,A
+00203A A3                INC     DPTR
+00203B E0                MOVX    A,@DPTR
+00203C FA                MOV     R2,A
+00203D A3                INC     DPTR
+00203E E0                MOVX    A,@DPTR
+00203F FB                MOV     R3,A
+002040 C3                CLR     C
+002041 120516            LCALL   ?C?ULCMP
+002044 5007              JNC     ?C0011?ADC
+   62: 		{
+   63: 			g_variable.battery_status = BAT_STATUS_LOW;
+002046 904CD5            MOV     DPTR,#g_variable+016H
+002049 7401              MOV     A,#01H
+00204B F0                MOVX    @DPTR,A
+   64: 		}
+00204C 22                RET     
+00204D         ?C0011?ADC:
+   65: 		else
+   66: 		{
+   67: 			g_variable.battery_status = BAT_STATUS_NONE;
+00204D E4                CLR     A
+00204E 904CD5            MOV     DPTR,#g_variable+016H
+002051 F0                MOVX    @DPTR,A
+   68: 		}
+   69: 	}
+   70: #endif	
+   71: }
+002052 22                RET     
 ----- FUNCTION YC_adc_check (END) -------
 
 
+----- FUNCTION main (BEGIN) -----
+ FILE: 'ram.c'
+    5: void main()
+    6: {
+    7: 	YC_System_Main();
+    8: }
+002053 020DE8            LJMP    YC_System_Main
+----- FUNCTION main (END) -------
+
+
 ----- FUNCTION _bufsize (BEGIN) -----
-002183 904E8A            MOV     DPTR,#rptr
-002186 EE                MOV     A,R6
-002187 F0                MOVX    @DPTR,A
-002188 A3                INC     DPTR
-002189 EF                MOV     A,R7
-00218A F0                MOVX    @DPTR,A
-00218B 904E8C            MOV     DPTR,#wptr
-00218E EC                MOV     A,R4
-00218F F0                MOVX    @DPTR,A
-002190 A3                INC     DPTR
-002191 ED                MOV     A,R5
-002192 F0                MOVX    @DPTR,A
+002056 904E8A            MOV     DPTR,#rptr
+002059 EE                MOV     A,R6
+00205A F0                MOVX    @DPTR,A
+00205B A3                INC     DPTR
+00205C EF                MOV     A,R7
+00205D F0                MOVX    @DPTR,A
+00205E 904E8C            MOV     DPTR,#wptr
+002061 EC                MOV     A,R4
+002062 F0                MOVX    @DPTR,A
+002063 A3                INC     DPTR
+002064 ED                MOV     A,R5
+002065 F0                MOVX    @DPTR,A
 ;---- Variable 'buflen' assigned to Register 'R3' ----
-002193 904E8C            MOV     DPTR,#wptr
-002196 E0                MOVX    A,@DPTR
-002197 FE                MOV     R6,A
-002198 A3                INC     DPTR
-002199 E0                MOVX    A,@DPTR
-00219A FF                MOV     R7,A
-00219B D3                SETB    C
-00219C 904E8B            MOV     DPTR,#rptr+01H
-00219F E0                MOVX    A,@DPTR
-0021A0 9F                SUBB    A,R7
-0021A1 904E8A            MOV     DPTR,#rptr
-0021A4 E0                MOVX    A,@DPTR
-0021A5 9E                SUBB    A,R6
-0021A6 4016              JC      ?C0001?IPC
-0021A8 904E8C            MOV     DPTR,#wptr
-0021AB E0                MOVX    A,@DPTR
-0021AC FE                MOV     R6,A
-0021AD A3                INC     DPTR
-0021AE E0                MOVX    A,@DPTR
-0021AF FF                MOV     R7,A
-0021B0 904E8B            MOV     DPTR,#rptr+01H
-0021B3 E0                MOVX    A,@DPTR
-0021B4 9F                SUBB    A,R7
-0021B5 FF                MOV     R7,A
-0021B6 904E8A            MOV     DPTR,#rptr
-0021B9 E0                MOVX    A,@DPTR
-0021BA 9E                SUBB    A,R6
-0021BB FE                MOV     R6,A
-0021BC 801E              SJMP    ?C0002?IPC
-0021BE         ?C0001?IPC:
-0021BE 904E8A            MOV     DPTR,#rptr
-0021C1 E0                MOVX    A,@DPTR
-0021C2 FE                MOV     R6,A
-0021C3 A3                INC     DPTR
-0021C4 E0                MOVX    A,@DPTR
-0021C5 FF                MOV     R7,A
-0021C6 C3                CLR     C
-0021C7 904E8D            MOV     DPTR,#wptr+01H
-0021CA E0                MOVX    A,@DPTR
-0021CB 9F                SUBB    A,R7
-0021CC FF                MOV     R7,A
-0021CD 904E8C            MOV     DPTR,#wptr
-0021D0 E0                MOVX    A,@DPTR
-0021D1 9E                SUBB    A,R6
-0021D2 FE                MOV     R6,A
-0021D3 AD03              MOV     R5,AR3
-0021D5 C3                CLR     C
-0021D6 EB                MOV     A,R3
-0021D7 9F                SUBB    A,R7
-0021D8 FF                MOV     R7,A
-0021D9 E4                CLR     A
-0021DA 9E                SUBB    A,R6
-0021DB FE                MOV     R6,A
-0021DC         ?C0002?IPC:
-0021DC 22                RET     
+002066 904E8C            MOV     DPTR,#wptr
+002069 E0                MOVX    A,@DPTR
+00206A FE                MOV     R6,A
+00206B A3                INC     DPTR
+00206C E0                MOVX    A,@DPTR
+00206D FF                MOV     R7,A
+00206E D3                SETB    C
+00206F 904E8B            MOV     DPTR,#rptr+01H
+002072 E0                MOVX    A,@DPTR
+002073 9F                SUBB    A,R7
+002074 904E8A            MOV     DPTR,#rptr
+002077 E0                MOVX    A,@DPTR
+002078 9E                SUBB    A,R6
+002079 4016              JC      ?C0001?IPC
+00207B 904E8C            MOV     DPTR,#wptr
+00207E E0                MOVX    A,@DPTR
+00207F FE                MOV     R6,A
+002080 A3                INC     DPTR
+002081 E0                MOVX    A,@DPTR
+002082 FF                MOV     R7,A
+002083 904E8B            MOV     DPTR,#rptr+01H
+002086 E0                MOVX    A,@DPTR
+002087 9F                SUBB    A,R7
+002088 FF                MOV     R7,A
+002089 904E8A            MOV     DPTR,#rptr
+00208C E0                MOVX    A,@DPTR
+00208D 9E                SUBB    A,R6
+00208E FE                MOV     R6,A
+00208F 801E              SJMP    ?C0002?IPC
+002091         ?C0001?IPC:
+002091 904E8A            MOV     DPTR,#rptr
+002094 E0                MOVX    A,@DPTR
+002095 FE                MOV     R6,A
+002096 A3                INC     DPTR
+002097 E0                MOVX    A,@DPTR
+002098 FF                MOV     R7,A
+002099 C3                CLR     C
+00209A 904E8D            MOV     DPTR,#wptr+01H
+00209D E0                MOVX    A,@DPTR
+00209E 9F                SUBB    A,R7
+00209F FF                MOV     R7,A
+0020A0 904E8C            MOV     DPTR,#wptr
+0020A3 E0                MOVX    A,@DPTR
+0020A4 9E                SUBB    A,R6
+0020A5 FE                MOV     R6,A
+0020A6 AD03              MOV     R5,AR3
+0020A8 C3                CLR     C
+0020A9 EB                MOV     A,R3
+0020AA 9F                SUBB    A,R7
+0020AB FF                MOV     R7,A
+0020AC E4                CLR     A
+0020AD 9E                SUBB    A,R6
+0020AE FE                MOV     R6,A
+0020AF         ?C0002?IPC:
+0020AF 22                RET     
 ----- FUNCTION _bufsize (END) -------
 
 
 ----- FUNCTION _ipcRx (BEGIN) -----
-0021DD 904EAB            MOV     DPTR,#dest
-0021E0 EE                MOV     A,R6
-0021E1 F0                MOVX    @DPTR,A
-0021E2 A3                INC     DPTR
-0021E3 EF                MOV     A,R7
-0021E4 F0                MOVX    @DPTR,A
+0020B0 904EAB            MOV     DPTR,#dest
+0020B3 EE                MOV     A,R6
+0020B4 F0                MOVX    @DPTR,A
+0020B5 A3                INC     DPTR
+0020B6 EF                MOV     A,R7
+0020B7 F0                MOVX    @DPTR,A
 ;---- Variable 'len' assigned to Register 'R1' ----
-0021E5 A905              MOV     R1,AR5
-0021E7 904B9E            MOV     DPTR,#ipcRxReadPtr
-0021EA E0                MOVX    A,@DPTR
-0021EB FE                MOV     R6,A
-0021EC A3                INC     DPTR
-0021ED E0                MOVX    A,@DPTR
-0021EE FF                MOV     R7,A
+0020B8 A905              MOV     R1,AR5
+0020BA 904B9E            MOV     DPTR,#ipcRxReadPtr
+0020BD E0                MOVX    A,@DPTR
+0020BE FE                MOV     R6,A
+0020BF A3                INC     DPTR
+0020C0 E0                MOVX    A,@DPTR
+0020C1 FF                MOV     R7,A
 ;---- Variable 'src' assigned to Register 'R6/R7' ----
-0021EF         ?C0004?IPC:
-0021EF AD01              MOV     R5,AR1
-0021F1 19                DEC     R1
-0021F2 ED                MOV     A,R5
-0021F3 602F              JZ      ?C0005?IPC
-0021F5 0F                INC     R7
-0021F6 EF                MOV     A,R7
-0021F7 AC06              MOV     R4,AR6
-0021F9 7001              JNZ     ?C0038?IPC
-0021FB 0E                INC     R6
-0021FC         ?C0038?IPC:
-0021FC 14                DEC     A
-0021FD F582              MOV     DPL,A
-0021FF 8C83              MOV     DPH,R4
-002201 E0                MOVX    A,@DPTR
-002202 FD                MOV     R5,A
-002203 904EAB            MOV     DPTR,#dest
-002206 E4                CLR     A
-002207 75F001            MOV     B,#01H
-00220A 120424            LCALL   ?C?ILDIX
-00220D 85F082            MOV     DPL,B
-002210 F583              MOV     DPH,A
-002212 ED                MOV     A,R5
-002213 F0                MOVX    @DPTR,A
-002214 AD07              MOV     R5,AR7
-002216 AC06              MOV     R4,AR6
-002218 BC4BD4            CJNE    R4,#04BH,?C0004?IPC
-00221B BD9AD1            CJNE    R5,#09AH,?C0004?IPC
-00221E 7E4B              MOV     R6,#04BH
-002220 7F36              MOV     R7,#036H
-002222 80CB              SJMP    ?C0004?IPC
-002224         ?C0005?IPC:
-002224 904B9E            MOV     DPTR,#ipcRxReadPtr
-002227 EE                MOV     A,R6
-002228 F0                MOVX    @DPTR,A
-002229 A3                INC     DPTR
-00222A EF                MOV     A,R7
-00222B F0                MOVX    @DPTR,A
-00222C 22                RET     
+0020C2         ?C0004?IPC:
+0020C2 AD01              MOV     R5,AR1
+0020C4 19                DEC     R1
+0020C5 ED                MOV     A,R5
+0020C6 602F              JZ      ?C0005?IPC
+0020C8 0F                INC     R7
+0020C9 EF                MOV     A,R7
+0020CA AC06              MOV     R4,AR6
+0020CC 7001              JNZ     ?C0038?IPC
+0020CE 0E                INC     R6
+0020CF         ?C0038?IPC:
+0020CF 14                DEC     A
+0020D0 F582              MOV     DPL,A
+0020D2 8C83              MOV     DPH,R4
+0020D4 E0                MOVX    A,@DPTR
+0020D5 FD                MOV     R5,A
+0020D6 904EAB            MOV     DPTR,#dest
+0020D9 E4                CLR     A
+0020DA 75F001            MOV     B,#01H
+0020DD 120424            LCALL   ?C?ILDIX
+0020E0 85F082            MOV     DPL,B
+0020E3 F583              MOV     DPH,A
+0020E5 ED                MOV     A,R5
+0020E6 F0                MOVX    @DPTR,A
+0020E7 AD07              MOV     R5,AR7
+0020E9 AC06              MOV     R4,AR6
+0020EB BC4BD4            CJNE    R4,#04BH,?C0004?IPC
+0020EE BD9AD1            CJNE    R5,#09AH,?C0004?IPC
+0020F1 7E4B              MOV     R6,#04BH
+0020F3 7F36              MOV     R7,#036H
+0020F5 80CB              SJMP    ?C0004?IPC
+0020F7         ?C0005?IPC:
+0020F7 904B9E            MOV     DPTR,#ipcRxReadPtr
+0020FA EE                MOV     A,R6
+0020FB F0                MOVX    @DPTR,A
+0020FC A3                INC     DPTR
+0020FD EF                MOV     A,R7
+0020FE F0                MOVX    @DPTR,A
+0020FF 22                RET     
 ----- FUNCTION _ipcRx (END) -------
 
 
 ----- FUNCTION IPC_DealSingleStep (BEGIN) -----
-00222D 7A0C              MOV     R2,#HIGH ipcReadBuff
-00222F 794B              MOV     R1,#LOW ipcReadBuff
-002231 904E9B            MOV     DPTR,#pbuff
-002234 7401              MOV     A,#01H
-002236 F0                MOVX    @DPTR,A
-002237 A3                INC     DPTR
-002238 740C              MOV     A,#HIGH ipcReadBuff
-00223A F0                MOVX    @DPTR,A
-00223B A3                INC     DPTR
-00223C 744B              MOV     A,#LOW ipcReadBuff
-00223E F0                MOVX    @DPTR,A
-00223F 904BA0            MOV     DPTR,#ipcRxWritePtr
-002242 E0                MOVX    A,@DPTR
-002243 FE                MOV     R6,A
-002244 A3                INC     DPTR
-002245 E0                MOVX    A,@DPTR
-002246 FF                MOV     R7,A
-002247 904B9E            MOV     DPTR,#ipcRxReadPtr
-00224A E0                MOVX    A,@DPTR
-00224B 6E                XRL     A,R6
-00224C 7003              JNZ     ?C0040?IPC
-00224E A3                INC     DPTR
-00224F E0                MOVX    A,@DPTR
-002250 6F                XRL     A,R7
-002251         ?C0040?IPC:
-002251 7002              JNZ     $ + 4H
-002253 6106              AJMP    ?C0031?IPC
-002255         ?C0023?IPC:
-002255 7E0C              MOV     R6,#HIGH ipcReadBuff
-002257 7F4B              MOV     R7,#LOW ipcReadBuff
-002259 7D03              MOV     R5,#03H
-00225B 31DD              ACALL   _ipcRx
-00225D 904E9B            MOV     DPTR,#pbuff
-002260 E0                MOVX    A,@DPTR
-002261 FB                MOV     R3,A
-002262 A3                INC     DPTR
-002263 E0                MOVX    A,@DPTR
-002264 FA                MOV     R2,A
-002265 A3                INC     DPTR
-002266 E0                MOVX    A,@DPTR
-002267 F9                MOV     R1,A
-002268 1203B6            LCALL   ?C?CLDPTR
-00226B B4022B            CJNE    A,#02H,?C0025?IPC
-00226E 904E9C            MOV     DPTR,#pbuff+01H
-002271 E4                CLR     A
-002272 75F002            MOV     B,#02H
-002275 12040E            LCALL   ?C?IILDX
-002278 904E9B            MOV     DPTR,#pbuff
-00227B E0                MOVX    A,@DPTR
-00227C FB                MOV     R3,A
-00227D A3                INC     DPTR
-00227E E0                MOVX    A,@DPTR
-00227F FA                MOV     R2,A
-002280 A3                INC     DPTR
-002281 E0                MOVX    A,@DPTR
-002282 F9                MOV     R1,A
-002283 1203B6            LCALL   ?C?CLDPTR
-002286 FF                MOV     R7,A
-002287 904E1D            MOV     DPTR,#ipcCb
-00228A E0                MOVX    A,@DPTR
-00228B A3                INC     DPTR
-00228C E0                MOVX    A,@DPTR
-00228D FA                MOV     R2,A
-00228E A3                INC     DPTR
-00228F E0                MOVX    A,@DPTR
-002290 F582              MOV     DPL,A
-002292 8A83              MOV     DPH,R2
-002294 120568            LCALL   ?C?ICALL2
-002297 806D              SJMP    ?C0031?IPC
-002299         ?C0025?IPC:
-002299 904E9B            MOV     DPTR,#pbuff
-00229C E0                MOVX    A,@DPTR
-00229D FB                MOV     R3,A
-00229E A3                INC     DPTR
-00229F E0                MOVX    A,@DPTR
-0022A0 FA                MOV     R2,A
-0022A1 A3                INC     DPTR
-0022A2 E0                MOVX    A,@DPTR
-0022A3 F9                MOV     R1,A
-0022A4 1203B6            LCALL   ?C?CLDPTR
-0022A7 6405              XRL     A,#05H
-0022A9 7059              JNZ     ?C0029?IPC
-0022AB 904E9C            MOV     DPTR,#pbuff+01H
-0022AE 75F001            MOV     B,#01H
-0022B1 12040E            LCALL   ?C?IILDX
-0022B4 7E0C              MOV     R6,#HIGH ipcReadBuff+03H
-0022B6 7F4E              MOV     R7,#LOW ipcReadBuff+03H
-0022B8 904E9B            MOV     DPTR,#pbuff
-0022BB E0                MOVX    A,@DPTR
-0022BC FB                MOV     R3,A
-0022BD A3                INC     DPTR
-0022BE E0                MOVX    A,@DPTR
-0022BF FA                MOV     R2,A
-0022C0 A3                INC     DPTR
-0022C1 E0                MOVX    A,@DPTR
-0022C2 F9                MOV     R1,A
-0022C3 1203B6            LCALL   ?C?CLDPTR
-0022C6 14                DEC     A
-0022C7 FD                MOV     R5,A
-0022C8 31DD              ACALL   _ipcRx
-0022CA 904E9B            MOV     DPTR,#pbuff
-0022CD E0                MOVX    A,@DPTR
-0022CE FB                MOV     R3,A
-0022CF A3                INC     DPTR
-0022D0 E0                MOVX    A,@DPTR
-0022D1 FA                MOV     R2,A
-0022D2 A3                INC     DPTR
-0022D3 E0                MOVX    A,@DPTR
-0022D4 2401              ADD     A,#01H
-0022D6 F9                MOV     R1,A
-0022D7 E4                CLR     A
-0022D8 3A                ADDC    A,R2
-0022D9 FA                MOV     R2,A
-0022DA C002              PUSH    AR2
-0022DC C001              PUSH    AR1
-0022DE 904E9B            MOV     DPTR,#pbuff
-0022E1 E0                MOVX    A,@DPTR
-0022E2 A3                INC     DPTR
-0022E3 E0                MOVX    A,@DPTR
-0022E4 FA                MOV     R2,A
-0022E5 A3                INC     DPTR
-0022E6 E0                MOVX    A,@DPTR
-0022E7 F9                MOV     R1,A
-0022E8 1203B6            LCALL   ?C?CLDPTR
-0022EB FD                MOV     R5,A
-0022EC 7C00              MOV     R4,#00H
-0022EE 904E29            MOV     DPTR,#ipcCb+0CH
-0022F1 E0                MOVX    A,@DPTR
-0022F2 A3                INC     DPTR
-0022F3 E0                MOVX    A,@DPTR
-0022F4 FA                MOV     R2,A
-0022F5 A3                INC     DPTR
-0022F6 E0                MOVX    A,@DPTR
-0022F7 F582              MOV     DPL,A
-0022F9 8A83              MOV     DPH,R2
-0022FB D001              POP     AR1
-0022FD D002              POP     AR2
-0022FF 120568            LCALL   ?C?ICALL2
-002302 8002              SJMP    ?C0031?IPC
-002304         ?C0029?IPC:
-002304 80FE              SJMP    ?C0029?IPC
-002306         IPC_TIMER:
-002306         ?C0031?IPC:
-002306 904BA5            MOV     DPTR,#bttimer
-002309 E0                MOVX    A,@DPTR
-00230A FE                MOV     R6,A
-00230B A3                INC     DPTR
-00230C E0                MOVX    A,@DPTR
-00230D FF                MOV     R7,A
-00230E 904C5E            MOV     DPTR,#c51timer
-002311 E0                MOVX    A,@DPTR
-002312 6E                XRL     A,R6
-002313 7003              JNZ     ?C0041?IPC
-002315 A3                INC     DPTR
-002316 E0                MOVX    A,@DPTR
-002317 6F                XRL     A,R7
-002318         ?C0041?IPC:
-002318 6022              JZ      ?C0035?IPC
-00231A 904E23            MOV     DPTR,#ipcCb+06H
-00231D E0                MOVX    A,@DPTR
-00231E FB                MOV     R3,A
-00231F A3                INC     DPTR
-002320 E0                MOVX    A,@DPTR
-002321 FA                MOV     R2,A
-002322 A3                INC     DPTR
-002323 E0                MOVX    A,@DPTR
-002324 F9                MOV     R1,A
-002325 4A                ORL     A,R2
-002326 6037              JZ      ?C0034?IPC
-002328         ?C0033?IPC:
-002328 120564            LCALL   ?C?ICALL
-00232B 904BA5            MOV     DPTR,#bttimer
-00232E E0                MOVX    A,@DPTR
-00232F FF                MOV     R7,A
-002330 A3                INC     DPTR
-002331 E0                MOVX    A,@DPTR
-002332 904C5E            MOV     DPTR,#c51timer
-002335 CF                XCH     A,R7
-002336 F0                MOVX    @DPTR,A
-002337 A3                INC     DPTR
-002338 EF                MOV     A,R7
-002339 F0                MOVX    @DPTR,A
-00233A 80CA              SJMP    ?C0031?IPC
-00233C         ?C0035?IPC:
-00233C 904C8D            MOV     DPTR,#btstimer
-00233F E0                MOVX    A,@DPTR
-002340 FF                MOV     R7,A
-002341 A3                INC     DPTR
-002342 E0                MOVX    A,@DPTR
-002343 6F                XRL     A,R7
-002344 6019              JZ      ?C0034?IPC
-002346 904E26            MOV     DPTR,#ipcCb+09H
-002349 E0                MOVX    A,@DPTR
-00234A FB                MOV     R3,A
-00234B A3                INC     DPTR
-00234C E0                MOVX    A,@DPTR
-00234D FA                MOV     R2,A
-00234E A3                INC     DPTR
-00234F E0                MOVX    A,@DPTR
-002350 F9                MOV     R1,A
-002351 4A                ORL     A,R2
-002352 600B              JZ      ?C0034?IPC
-002354         ?C0037?IPC:
-002354 120564            LCALL   ?C?ICALL
-002357 904C8D            MOV     DPTR,#btstimer
-00235A E0                MOVX    A,@DPTR
-00235B A3                INC     DPTR
-00235C F0                MOVX    @DPTR,A
-00235D 80DD              SJMP    ?C0035?IPC
-00235F         ?C0034?IPC:
-00235F 22                RET     
+002100 7A0C              MOV     R2,#HIGH ipcReadBuff
+002102 794B              MOV     R1,#LOW ipcReadBuff
+002104 904E9B            MOV     DPTR,#pbuff
+002107 7401              MOV     A,#01H
+002109 F0                MOVX    @DPTR,A
+00210A A3                INC     DPTR
+00210B 740C              MOV     A,#HIGH ipcReadBuff
+00210D F0                MOVX    @DPTR,A
+00210E A3                INC     DPTR
+00210F 744B              MOV     A,#LOW ipcReadBuff
+002111 F0                MOVX    @DPTR,A
+002112 904BA0            MOV     DPTR,#ipcRxWritePtr
+002115 E0                MOVX    A,@DPTR
+002116 FE                MOV     R6,A
+002117 A3                INC     DPTR
+002118 E0                MOVX    A,@DPTR
+002119 FF                MOV     R7,A
+00211A 904B9E            MOV     DPTR,#ipcRxReadPtr
+00211D E0                MOVX    A,@DPTR
+00211E 6E                XRL     A,R6
+00211F 7003              JNZ     ?C0040?IPC
+002121 A3                INC     DPTR
+002122 E0                MOVX    A,@DPTR
+002123 6F                XRL     A,R7
+002124         ?C0040?IPC:
+002124 7002              JNZ     $ + 4H
+002126 21D9              AJMP    ?C0031?IPC
+002128         ?C0023?IPC:
+002128 7E0C              MOV     R6,#HIGH ipcReadBuff
+00212A 7F4B              MOV     R7,#LOW ipcReadBuff
+00212C 7D03              MOV     R5,#03H
+00212E 11B0              ACALL   _ipcRx
+002130 904E9B            MOV     DPTR,#pbuff
+002133 E0                MOVX    A,@DPTR
+002134 FB                MOV     R3,A
+002135 A3                INC     DPTR
+002136 E0                MOVX    A,@DPTR
+002137 FA                MOV     R2,A
+002138 A3                INC     DPTR
+002139 E0                MOVX    A,@DPTR
+00213A F9                MOV     R1,A
+00213B 1203B6            LCALL   ?C?CLDPTR
+00213E B4022B            CJNE    A,#02H,?C0025?IPC
+002141 904E9C            MOV     DPTR,#pbuff+01H
+002144 E4                CLR     A
+002145 75F002            MOV     B,#02H
+002148 12040E            LCALL   ?C?IILDX
+00214B 904E9B            MOV     DPTR,#pbuff
+00214E E0                MOVX    A,@DPTR
+00214F FB                MOV     R3,A
+002150 A3                INC     DPTR
+002151 E0                MOVX    A,@DPTR
+002152 FA                MOV     R2,A
+002153 A3                INC     DPTR
+002154 E0                MOVX    A,@DPTR
+002155 F9                MOV     R1,A
+002156 1203B6            LCALL   ?C?CLDPTR
+002159 FF                MOV     R7,A
+00215A 904E1D            MOV     DPTR,#ipcCb
+00215D E0                MOVX    A,@DPTR
+00215E A3                INC     DPTR
+00215F E0                MOVX    A,@DPTR
+002160 FA                MOV     R2,A
+002161 A3                INC     DPTR
+002162 E0                MOVX    A,@DPTR
+002163 F582              MOV     DPL,A
+002165 8A83              MOV     DPH,R2
+002167 120568            LCALL   ?C?ICALL2
+00216A 806D              SJMP    ?C0031?IPC
+00216C         ?C0025?IPC:
+00216C 904E9B            MOV     DPTR,#pbuff
+00216F E0                MOVX    A,@DPTR
+002170 FB                MOV     R3,A
+002171 A3                INC     DPTR
+002172 E0                MOVX    A,@DPTR
+002173 FA                MOV     R2,A
+002174 A3                INC     DPTR
+002175 E0                MOVX    A,@DPTR
+002176 F9                MOV     R1,A
+002177 1203B6            LCALL   ?C?CLDPTR
+00217A 6405              XRL     A,#05H
+00217C 7059              JNZ     ?C0029?IPC
+00217E 904E9C            MOV     DPTR,#pbuff+01H
+002181 75F001            MOV     B,#01H
+002184 12040E            LCALL   ?C?IILDX
+002187 7E0C              MOV     R6,#HIGH ipcReadBuff+03H
+002189 7F4E              MOV     R7,#LOW ipcReadBuff+03H
+00218B 904E9B            MOV     DPTR,#pbuff
+00218E E0                MOVX    A,@DPTR
+00218F FB                MOV     R3,A
+002190 A3                INC     DPTR
+002191 E0                MOVX    A,@DPTR
+002192 FA                MOV     R2,A
+002193 A3                INC     DPTR
+002194 E0                MOVX    A,@DPTR
+002195 F9                MOV     R1,A
+002196 1203B6            LCALL   ?C?CLDPTR
+002199 14                DEC     A
+00219A FD                MOV     R5,A
+00219B 11B0              ACALL   _ipcRx
+00219D 904E9B            MOV     DPTR,#pbuff
+0021A0 E0                MOVX    A,@DPTR
+0021A1 FB                MOV     R3,A
+0021A2 A3                INC     DPTR
+0021A3 E0                MOVX    A,@DPTR
+0021A4 FA                MOV     R2,A
+0021A5 A3                INC     DPTR
+0021A6 E0                MOVX    A,@DPTR
+0021A7 2401              ADD     A,#01H
+0021A9 F9                MOV     R1,A
+0021AA E4                CLR     A
+0021AB 3A                ADDC    A,R2
+0021AC FA                MOV     R2,A
+0021AD C002              PUSH    AR2
+0021AF C001              PUSH    AR1
+0021B1 904E9B            MOV     DPTR,#pbuff
+0021B4 E0                MOVX    A,@DPTR
+0021B5 A3                INC     DPTR
+0021B6 E0                MOVX    A,@DPTR
+0021B7 FA                MOV     R2,A
+0021B8 A3                INC     DPTR
+0021B9 E0                MOVX    A,@DPTR
+0021BA F9                MOV     R1,A
+0021BB 1203B6            LCALL   ?C?CLDPTR
+0021BE FD                MOV     R5,A
+0021BF 7C00              MOV     R4,#00H
+0021C1 904E29            MOV     DPTR,#ipcCb+0CH
+0021C4 E0                MOVX    A,@DPTR
+0021C5 A3                INC     DPTR
+0021C6 E0                MOVX    A,@DPTR
+0021C7 FA                MOV     R2,A
+0021C8 A3                INC     DPTR
+0021C9 E0                MOVX    A,@DPTR
+0021CA F582              MOV     DPL,A
+0021CC 8A83              MOV     DPH,R2
+0021CE D001              POP     AR1
+0021D0 D002              POP     AR2
+0021D2 120568            LCALL   ?C?ICALL2
+0021D5 8002              SJMP    ?C0031?IPC
+0021D7         ?C0029?IPC:
+0021D7 80FE              SJMP    ?C0029?IPC
+0021D9         IPC_TIMER:
+0021D9         ?C0031?IPC:
+0021D9 904BA5            MOV     DPTR,#bttimer
+0021DC E0                MOVX    A,@DPTR
+0021DD FE                MOV     R6,A
+0021DE A3                INC     DPTR
+0021DF E0                MOVX    A,@DPTR
+0021E0 FF                MOV     R7,A
+0021E1 904C5E            MOV     DPTR,#c51timer
+0021E4 E0                MOVX    A,@DPTR
+0021E5 6E                XRL     A,R6
+0021E6 7003              JNZ     ?C0041?IPC
+0021E8 A3                INC     DPTR
+0021E9 E0                MOVX    A,@DPTR
+0021EA 6F                XRL     A,R7
+0021EB         ?C0041?IPC:
+0021EB 6022              JZ      ?C0035?IPC
+0021ED 904E23            MOV     DPTR,#ipcCb+06H
+0021F0 E0                MOVX    A,@DPTR
+0021F1 FB                MOV     R3,A
+0021F2 A3                INC     DPTR
+0021F3 E0                MOVX    A,@DPTR
+0021F4 FA                MOV     R2,A
+0021F5 A3                INC     DPTR
+0021F6 E0                MOVX    A,@DPTR
+0021F7 F9                MOV     R1,A
+0021F8 4A                ORL     A,R2
+0021F9 6037              JZ      ?C0034?IPC
+0021FB         ?C0033?IPC:
+0021FB 120564            LCALL   ?C?ICALL
+0021FE 904BA5            MOV     DPTR,#bttimer
+002201 E0                MOVX    A,@DPTR
+002202 FF                MOV     R7,A
+002203 A3                INC     DPTR
+002204 E0                MOVX    A,@DPTR
+002205 904C5E            MOV     DPTR,#c51timer
+002208 CF                XCH     A,R7
+002209 F0                MOVX    @DPTR,A
+00220A A3                INC     DPTR
+00220B EF                MOV     A,R7
+00220C F0                MOVX    @DPTR,A
+00220D 80CA              SJMP    ?C0031?IPC
+00220F         ?C0035?IPC:
+00220F 904C8D            MOV     DPTR,#btstimer
+002212 E0                MOVX    A,@DPTR
+002213 FF                MOV     R7,A
+002214 A3                INC     DPTR
+002215 E0                MOVX    A,@DPTR
+002216 6F                XRL     A,R7
+002217 6019              JZ      ?C0034?IPC
+002219 904E26            MOV     DPTR,#ipcCb+09H
+00221C E0                MOVX    A,@DPTR
+00221D FB                MOV     R3,A
+00221E A3                INC     DPTR
+00221F E0                MOVX    A,@DPTR
+002220 FA                MOV     R2,A
+002221 A3                INC     DPTR
+002222 E0                MOVX    A,@DPTR
+002223 F9                MOV     R1,A
+002224 4A                ORL     A,R2
+002225 600B              JZ      ?C0034?IPC
+002227         ?C0037?IPC:
+002227 120564            LCALL   ?C?ICALL
+00222A 904C8D            MOV     DPTR,#btstimer
+00222D E0                MOVX    A,@DPTR
+00222E A3                INC     DPTR
+00222F F0                MOVX    @DPTR,A
+002230 80DD              SJMP    ?C0035?IPC
+002232         ?C0034?IPC:
+002232 22                RET     
 ----- FUNCTION IPC_DealSingleStep (END) -------
 
 
 ----- FUNCTION IPC_GetBBDIsconnectReason (BEGIN) -----
-002360 900446            MOV     DPTR,#bbDisReason
-002363 E0                MOVX    A,@DPTR
-002364 FF                MOV     R7,A
-002365 22                RET     
+002233 900446            MOV     DPTR,#bbDisReason
+002236 E0                MOVX    A,@DPTR
+002237 FF                MOV     R7,A
+002238 22                RET     
 ----- FUNCTION IPC_GetBBDIsconnectReason (END) -------
 
 
 ----- FUNCTION IPC_AbandonLpm (BEGIN) -----
-002366 900B7F            MOV     DPTR,#lpm_flag
-002369 7401              MOV     A,#01H
-00236B F0                MOVX    @DPTR,A
-00236C E4                CLR     A
-00236D 900B7E            MOV     DPTR,#current_task
-002370 F0                MOVX    @DPTR,A
-002371 22                RET     
+002239 900B7F            MOV     DPTR,#lpm_flag
+00223C 7401              MOV     A,#01H
+00223E F0                MOVX    @DPTR,A
+00223F E4                CLR     A
+002240 900B7E            MOV     DPTR,#current_task
+002243 F0                MOVX    @DPTR,A
+002244 22                RET     
 ----- FUNCTION IPC_AbandonLpm (END) -------
 
 
 ----- FUNCTION IPC_IsTxBuffEmpty (BEGIN) -----
-002372 904B9C            MOV     DPTR,#ipcTxWritePtr
-002375 E0                MOVX    A,@DPTR
-002376 FE                MOV     R6,A
-002377 A3                INC     DPTR
-002378 E0                MOVX    A,@DPTR
-002379 FF                MOV     R7,A
-00237A 904B9A            MOV     DPTR,#ipcTxReadPtr
-00237D E0                MOVX    A,@DPTR
-00237E B50607            CJNE    A,AR6,?C0021?IPC
-002381 A3                INC     DPTR
-002382 E0                MOVX    A,@DPTR
-002383 B50702            CJNE    A,AR7,?C0021?IPC
-002386 D3                SETB    C
-002387 22                RET     
-002388         ?C0021?IPC:
-002388 C3                CLR     C
-002389 22                RET     
+002245 904B9C            MOV     DPTR,#ipcTxWritePtr
+002248 E0                MOVX    A,@DPTR
+002249 FE                MOV     R6,A
+00224A A3                INC     DPTR
+00224B E0                MOVX    A,@DPTR
+00224C FF                MOV     R7,A
+00224D 904B9A            MOV     DPTR,#ipcTxReadPtr
+002250 E0                MOVX    A,@DPTR
+002251 B50607            CJNE    A,AR6,?C0021?IPC
+002254 A3                INC     DPTR
+002255 E0                MOVX    A,@DPTR
+002256 B50702            CJNE    A,AR7,?C0021?IPC
+002259 D3                SETB    C
+00225A 22                RET     
+00225B         ?C0021?IPC:
+00225B C3                CLR     C
+00225C 22                RET     
 ----- FUNCTION IPC_IsTxBuffEmpty (END) -------
 
 
 ----- FUNCTION YC_Ice_break (BEGIN) -----
-00238A 908280            MOV     DPTR,#08280H
-00238D 7401              MOV     A,#01H
-00238F F0                MOVX    @DPTR,A
-002390 22                RET     
+00225D 908280            MOV     DPTR,#08280H
+002260 7401              MOV     A,#01H
+002262 F0                MOVX    @DPTR,A
+002263 22                RET     
 ----- FUNCTION YC_Ice_break (END) -------
 
 
+----- FUNCTION _dmemcpy (BEGIN) -----
+002264 904E46            MOV     DPTR,#dest
+002267 EB                MOV     A,R3
+002268 F0                MOVX    @DPTR,A
+002269 A3                INC     DPTR
+00226A EA                MOV     A,R2
+00226B F0                MOVX    @DPTR,A
+00226C A3                INC     DPTR
+00226D E9                MOV     A,R1
+00226E F0                MOVX    @DPTR,A
+00226F         ?C0005?UTILITIES:
+00226F 904E4C            MOV     DPTR,#len
+002272 74FF              MOV     A,#0FFH
+002274 F5F0              MOV     B,A
+002276 120424            LCALL   ?C?ILDIX
+002279 45F0              ORL     A,B
+00227B 602A              JZ      ?C0007?UTILITIES
+00227D 904E49            MOV     DPTR,#src
+002280 E0                MOVX    A,@DPTR
+002281 FB                MOV     R3,A
+002282 A3                INC     DPTR
+002283 E4                CLR     A
+002284 75F001            MOV     B,#01H
+002287 120424            LCALL   ?C?ILDIX
+00228A A9F0              MOV     R1,B
+00228C FA                MOV     R2,A
+00228D 1203B6            LCALL   ?C?CLDPTR
+002290 FF                MOV     R7,A
+002291 904E46            MOV     DPTR,#dest
+002294 E0                MOVX    A,@DPTR
+002295 FB                MOV     R3,A
+002296 A3                INC     DPTR
+002297 E4                CLR     A
+002298 75F001            MOV     B,#01H
+00229B 120424            LCALL   ?C?ILDIX
+00229E A9F0              MOV     R1,B
+0022A0 FA                MOV     R2,A
+0022A1 EF                MOV     A,R7
+0022A2 1203FC            LCALL   ?C?CSTPTR
+0022A5 80C8              SJMP    ?C0005?UTILITIES
+0022A7         ?C0007?UTILITIES:
+0022A7 22                RET     
+----- FUNCTION _dmemcpy (END) -------
+
+
 ----- FUNCTION _xmemclear_ff (BEGIN) -----
-002391 904EA1            MOV     DPTR,#dest
-002394 EB                MOV     A,R3
-002395 F0                MOVX    @DPTR,A
-002396 A3                INC     DPTR
-002397 EA                MOV     A,R2
-002398 F0                MOVX    @DPTR,A
-002399 A3                INC     DPTR
-00239A E9                MOV     A,R1
-00239B F0                MOVX    @DPTR,A
+0022A8 904EA1            MOV     DPTR,#dest
+0022AB EB                MOV     A,R3
+0022AC F0                MOVX    @DPTR,A
+0022AD A3                INC     DPTR
+0022AE EA                MOV     A,R2
+0022AF F0                MOVX    @DPTR,A
+0022B0 A3                INC     DPTR
+0022B1 E9                MOV     A,R1
+0022B2 F0                MOVX    @DPTR,A
 ;---- Variable 'len' assigned to Register 'R4/R5' ----
-00239C         ?C0011?UTILITIES:
-00239C ED                MOV     A,R5
-00239D 1D                DEC     R5
-00239E AE04              MOV     R6,AR4
-0023A0 7001              JNZ     ?C0027?UTILITIES
-0023A2 1C                DEC     R4
-0023A3         ?C0027?UTILITIES:
-0023A3 4E                ORL     A,R6
-0023A4 6017              JZ      ?C0013?UTILITIES
-0023A6 904EA1            MOV     DPTR,#dest
-0023A9 E0                MOVX    A,@DPTR
-0023AA FB                MOV     R3,A
-0023AB A3                INC     DPTR
-0023AC E4                CLR     A
-0023AD 75F001            MOV     B,#01H
-0023B0 120424            LCALL   ?C?ILDIX
-0023B3 A9F0              MOV     R1,B
-0023B5 FA                MOV     R2,A
-0023B6 74FF              MOV     A,#0FFH
-0023B8 1203FC            LCALL   ?C?CSTPTR
-0023BB 80DF              SJMP    ?C0011?UTILITIES
-0023BD         ?C0013?UTILITIES:
-0023BD 22                RET     
+0022B3         ?C0011?UTILITIES:
+0022B3 ED                MOV     A,R5
+0022B4 1D                DEC     R5
+0022B5 AE04              MOV     R6,AR4
+0022B7 7001              JNZ     ?C0027?UTILITIES
+0022B9 1C                DEC     R4
+0022BA         ?C0027?UTILITIES:
+0022BA 4E                ORL     A,R6
+0022BB 6017              JZ      ?C0013?UTILITIES
+0022BD 904EA1            MOV     DPTR,#dest
+0022C0 E0                MOVX    A,@DPTR
+0022C1 FB                MOV     R3,A
+0022C2 A3                INC     DPTR
+0022C3 E4                CLR     A
+0022C4 75F001            MOV     B,#01H
+0022C7 120424            LCALL   ?C?ILDIX
+0022CA A9F0              MOV     R1,B
+0022CC FA                MOV     R2,A
+0022CD 74FF              MOV     A,#0FFH
+0022CF 1203FC            LCALL   ?C?CSTPTR
+0022D2 80DF              SJMP    ?C0011?UTILITIES
+0022D4         ?C0013?UTILITIES:
+0022D4 22                RET     
 ----- FUNCTION _xmemclear_ff (END) -------
 
 
 ----- FUNCTION _GPIO_ClearWakeup (BEGIN) -----
 ;---- Variable 'gpio_num' assigned to Register 'R7' ----
-0023BE EF                MOV     A,R7
-0023BF F4                CPL     A
-0023C0 603A              JZ      ?C0023?GPIO
-0023C2         ?C0022?GPIO:
-0023C2 EF                MOV     A,R7
-0023C3 5407              ANL     A,#07H
-0023C5 FE                MOV     R6,A
+0022D5 EF                MOV     A,R7
+0022D6 F4                CPL     A
+0022D7 603A              JZ      ?C0023?GPIO
+0022D9         ?C0022?GPIO:
+0022D9 EF                MOV     A,R7
+0022DA 5407              ANL     A,#07H
+0022DC FE                MOV     R6,A
 ;---- Variable 'queue' assigned to Register 'R6' ----
-0023C6 EF                MOV     A,R7
-0023C7 13                RRC     A
-0023C8 13                RRC     A
-0023C9 13                RRC     A
-0023CA 5403              ANL     A,#03H
-0023CC FF                MOV     R7,A
+0022DD EF                MOV     A,R7
+0022DE 13                RRC     A
+0022DF 13                RRC     A
+0022E0 13                RRC     A
+0022E1 5403              ANL     A,#03H
+0022E3 FF                MOV     R7,A
 ;---- Variable 'group' assigned to Register 'R7' ----
-0023CD 24A3              ADD     A,#LOW YC_GPIOWakeupL
-0023CF F582              MOV     DPL,A
-0023D1 E4                CLR     A
-0023D2 3400              ADDC    A,#HIGH YC_GPIOWakeupL
-0023D4 F583              MOV     DPH,A
-0023D6 C083              PUSH    DPH
-0023D8 C082              PUSH    DPL
-0023DA E0                MOVX    A,@DPTR
-0023DB FD                MOV     R5,A
-0023DC 7401              MOV     A,#01H
-0023DE A806              MOV     R0,AR6
-0023E0 08                INC     R0
-0023E1 8002              SJMP    ?C0043?GPIO
-0023E3         ?C0042?GPIO:
-0023E3 C3                CLR     C
-0023E4 33                RLC     A
-0023E5         ?C0043?GPIO:
-0023E5 D8FC              DJNZ    R0,?C0042?GPIO
-0023E7 F4                CPL     A
-0023E8 FC                MOV     R4,A
-0023E9 5D                ANL     A,R5
-0023EA D082              POP     DPL
-0023EC D083              POP     DPH
-0023EE F0                MOVX    @DPTR,A
-0023EF 74A7              MOV     A,#LOW YC_GPIOWakeupH
-0023F1 2F                ADD     A,R7
-0023F2 F582              MOV     DPL,A
-0023F4 E4                CLR     A
-0023F5 3400              ADDC    A,#HIGH YC_GPIOWakeupH
-0023F7 F583              MOV     DPH,A
-0023F9 E0                MOVX    A,@DPTR
-0023FA 5C                ANL     A,R4
-0023FB F0                MOVX    @DPTR,A
-0023FC         ?C0023?GPIO:
-0023FC 22                RET     
+0022E4 24A3              ADD     A,#LOW YC_GPIOWakeupL
+0022E6 F582              MOV     DPL,A
+0022E8 E4                CLR     A
+0022E9 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+0022EB F583              MOV     DPH,A
+0022ED C083              PUSH    DPH
+0022EF C082              PUSH    DPL
+0022F1 E0                MOVX    A,@DPTR
+0022F2 FD                MOV     R5,A
+0022F3 7401              MOV     A,#01H
+0022F5 A806              MOV     R0,AR6
+0022F7 08                INC     R0
+0022F8 8002              SJMP    ?C0043?GPIO
+0022FA         ?C0042?GPIO:
+0022FA C3                CLR     C
+0022FB 33                RLC     A
+0022FC         ?C0043?GPIO:
+0022FC D8FC              DJNZ    R0,?C0042?GPIO
+0022FE F4                CPL     A
+0022FF FC                MOV     R4,A
+002300 5D                ANL     A,R5
+002301 D082              POP     DPL
+002303 D083              POP     DPH
+002305 F0                MOVX    @DPTR,A
+002306 74A7              MOV     A,#LOW YC_GPIOWakeupH
+002308 2F                ADD     A,R7
+002309 F582              MOV     DPL,A
+00230B E4                CLR     A
+00230C 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+00230E F583              MOV     DPH,A
+002310 E0                MOVX    A,@DPTR
+002311 5C                ANL     A,R4
+002312 F0                MOVX    @DPTR,A
+002313         ?C0023?GPIO:
+002313 22                RET     
 ----- FUNCTION _GPIO_ClearWakeup (END) -------
 
 
 ----- FUNCTION GPIO_fillpd (BEGIN) -----
 ;---- Variable 'i' assigned to Register 'R7' ----
-0023FD E4                CLR     A
-0023FE FF                MOV     R7,A
-0023FF         ?C0026?GPIO:
-0023FF EF                MOV     A,R7
-002400 FD                MOV     R5,A
-002401 7C00              MOV     R4,#00H
-002403 2478              ADD     A,#078H
-002405 FB                MOV     R3,A
-002406 EC                MOV     A,R4
-002407 3480              ADDC    A,#080H
-002409 8B82              MOV     DPL,R3
-00240B F583              MOV     DPH,A
-00240D E0                MOVX    A,@DPTR
-00240E FE                MOV     R6,A
-00240F ED                MOV     A,R5
-002410 2470              ADD     A,#070H
-002412 FD                MOV     R5,A
-002413 EC                MOV     A,R4
-002414 3480              ADDC    A,#080H
-002416 8D82              MOV     DPL,R5
-002418 F583              MOV     DPH,A
-00241A E0                MOVX    A,@DPTR
-00241B 4E                ORL     A,R6
-00241C F4                CPL     A
-00241D FE                MOV     R6,A
-00241E EF                MOV     A,R7
-00241F 247C              ADD     A,#07CH
-002421 FD                MOV     R5,A
-002422 EC                MOV     A,R4
-002423 3480              ADDC    A,#080H
-002425 8D82              MOV     DPL,R5
-002427 F583              MOV     DPH,A
-002429 EE                MOV     A,R6
-00242A F0                MOVX    @DPTR,A
-00242B 0F                INC     R7
-00242C EF                MOV     A,R7
-00242D B404CF            CJNE    A,#04H,?C0026?GPIO
-002430 22                RET     
+002314 E4                CLR     A
+002315 FF                MOV     R7,A
+002316         ?C0026?GPIO:
+002316 EF                MOV     A,R7
+002317 FD                MOV     R5,A
+002318 7C00              MOV     R4,#00H
+00231A 2478              ADD     A,#078H
+00231C FB                MOV     R3,A
+00231D EC                MOV     A,R4
+00231E 3480              ADDC    A,#080H
+002320 8B82              MOV     DPL,R3
+002322 F583              MOV     DPH,A
+002324 E0                MOVX    A,@DPTR
+002325 FE                MOV     R6,A
+002326 ED                MOV     A,R5
+002327 2470              ADD     A,#070H
+002329 FD                MOV     R5,A
+00232A EC                MOV     A,R4
+00232B 3480              ADDC    A,#080H
+00232D 8D82              MOV     DPL,R5
+00232F F583              MOV     DPH,A
+002331 E0                MOVX    A,@DPTR
+002332 4E                ORL     A,R6
+002333 F4                CPL     A
+002334 FE                MOV     R6,A
+002335 EF                MOV     A,R7
+002336 247C              ADD     A,#07CH
+002338 FD                MOV     R5,A
+002339 EC                MOV     A,R4
+00233A 3480              ADDC    A,#080H
+00233C 8D82              MOV     DPL,R5
+00233E F583              MOV     DPH,A
+002340 EE                MOV     A,R6
+002341 F0                MOVX    @DPTR,A
+002342 0F                INC     R7
+002343 EF                MOV     A,R7
+002344 B404CF            CJNE    A,#04H,?C0026?GPIO
+002347 22                RET     
 ----- FUNCTION GPIO_fillpd (END) -------
 
 
Index: output/FW.HTM
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/FW.HTM	(revision 114)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/FW.HTM	(working copy)
@@ -25,197 +25,189 @@
 
 <p class="TinyT">
 Created from: <b>LX51 LINKER/LOCATER V4.41</b><br>
-Creation time: <b>06/01/2020  18:34:35</b><p>
+Creation time: <b>06/12/2020  12:11:06</b><p>
 
 <hr>
 
 
 <h2><a name="S2"></a>?PR?YC_LOAD_RECORD_LIST?BLUETOOTH (C:0006C2H - C:000743H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S147">?PR?_XMEMCPY?UTILITIES</a>)<p>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S144">?PR?_XMEMCPY?UTILITIES</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
-<li><a href="#S147">?PR?_XMEMCPY?UTILITIES</a></li>
+<li><a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S144">?PR?_XMEMCPY?UTILITIES</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
-</ul>
-
-<h2><a name="S10"></a>?PR?YC_START_RECONNECT?BLUETOOTH (C:0012ACH - C:0012B5H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
-<p><br><b>Calls to:</b></p>
-<ul>
-<li><a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
 </ul>
 
+<h2><a name="S10"></a>?PR?YC_START_RECONNECT?BLUETOOTH (C:00144CH - C:001453H)</h2>
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
 </ul>
 
-<h2><a name="S69"></a>?PR?KSCOLINITIALIZE?KEYSCAN (C:0012C1H - C:0012DEH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S172">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<h2><a name="S69"></a>?PR?KSCOLINITIALIZE?KEYSCAN (C:00142EH - C:00144BH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S169">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S172">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S169">?PR?_GPIO_SETINPUT?GPIO</a></li>
 </ul>
 
-<h2><a name="S88"></a>?PR?SYSTEM_HARDWARE_RESET?SYS (C:001F2AH - C:001F32H)</h2>
+<h2><a name="S86"></a>?PR?SYSTEM_HARDWARE_RESET?SYS (C:001E88H - C:001E90H)</h2>
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S90">?PR?SYSTEM_RESET_CONNECT?SYS</a></li>
+<li><a href="#S88">?PR?SYSTEM_RESET_CONNECT?SYS</a></li>
 </ul>
 
-<h2><a name="S90"></a>?PR?SYSTEM_RESET_CONNECT?SYS (C:001F33H - C:001F34H)</h2>
+<h2><a name="S88"></a>?PR?SYSTEM_RESET_CONNECT?SYS (C:001E91H - C:001E92H)</h2>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S88">?PR?SYSTEM_HARDWARE_RESET?SYS</a></li>
+<li><a href="#S86">?PR?SYSTEM_HARDWARE_RESET?SYS</a></li>
 </ul>
 
-<h2><a name="S91"></a>?PR?_KB_CB_HID?SYS (C:001F35H - C:001F44H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>)<p>
+<h2><a name="S89"></a>?PR?_KB_CB_HID?SYS (C:001E93H - C:001EA2H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
-<h2><a name="S93"></a>?PR?_KB_CB_EVENT?SYS (C:0010EFH - C:0011F1H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S86">?PR?SYSTEM_HARDWARE_INIT?SYS</a>)<p>
+<h2><a name="S91"></a>?PR?_KB_CB_EVENT?SYS (C:001268H - C:00136DH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S84">?PR?SYSTEM_HARDWARE_INIT?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S155">?PR?_DELAY1MS?UTILITIES</a></li>
-<li><a href="#S189">?PR?_IIC_READ?IIC</a></li>
-<li><a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S152">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S161">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S186">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
 <li><a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
 <li><a href="#S3">?PR?_YC_STORE_RECORD_LIST?BLUETOOTH</a></li>
 <li><a href="#S71">?PR?KS_INITIALIZE?KEYSCAN</a></li>
-<li><a href="#S83">?PR?LED_DEVICE_POWEROFF?LED</a></li>
-<li><a href="#S86">?PR?SYSTEM_HARDWARE_INIT?SYS</a></li>
-<li><a href="#S89">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
-<li><a href="#S87">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
+<li><a href="#S84">?PR?SYSTEM_HARDWARE_INIT?SYS</a></li>
+<li><a href="#S87">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S85">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
 <li><a href="#S8">?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH</a></li>
 <li><a href="#S2">?PR?YC_LOAD_RECORD_LIST?BLUETOOTH</a></li>
 <li><a href="#S10">?PR?YC_START_RECONNECT?BLUETOOTH</a></li>
 </ul>
 
-<h2><a name="S97"></a>?PR?YC_PAIRING_TIMEROUT_500MS?SYS (C:0010C8H - C:0010E4H)</h2>
+<h2><a name="S95"></a>?PR?YC_PAIRING_TIMEROUT_500MS?SYS (C:0015C7H - C:0015E3H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
 <li><a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
-<li><a href="#S89">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S87">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S99">?PR?KB_CB_TIMER500MS?SYS</a></li>
+<li><a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S99"></a>?PR?KB_CB_TIMER500MS?SYS (C:001429H - C:001442H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S98">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a>)<p>
+<h2><a name="S97"></a>?PR?KB_CB_TIMER500MS?SYS (C:0015E4H - C:0015FDH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S96">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S98">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
-<li><a href="#S94">?PR?LED_TIMER500MS?SYS</a></li>
-<li><a href="#S109">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a></li>
-<li><a href="#S95">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
-<li><a href="#S97">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
-<li><a href="#S96">?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS</a></li>
+<li><a href="#S96">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S92">?PR?LED_TIMER500MS?SYS</a></li>
+<li><a href="#S106">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a></li>
+<li><a href="#S93">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+<li><a href="#S95">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
+<li><a href="#S94">?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S100"></a>?PR?KB_CB_TIMER100MS?SYS (C:00176AH - C:0017D3H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S82">?PR?LED_DEVICE_POWERON?LED</a>)<p>
+<h2><a name="S98"></a>?PR?KB_CB_TIMER100MS?SYS (C:0010EAH - C:001168H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S161">?PR?_GPIO_SETOUT?GPIO</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S164">?PR?_GPIO_SETOUT?GPIO</a></li>
-<li><a href="#S83">?PR?LED_DEVICE_POWEROFF?LED</a></li>
-<li><a href="#S82">?PR?LED_DEVICE_POWERON?LED</a></li>
+<li><a href="#S161">?PR?_GPIO_SETOUT?GPIO</a></li>
 </ul>
 
-<h2><a name="S102"></a>?PR?YC_SYSTEM_MAIN?SYS (C:000DA8H - C:000DEDH)</h2>
+<h2><a name="S100"></a>?PR?YC_SYSTEM_MAIN?SYS (C:000DE8H - C:000E2EH)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=16 Bytes (<a href="#S54">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S125">?PR?IPC_ABANDONLPM?IPC</a></li>
-<li><a href="#S127">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
-<li><a href="#S124">?PR?IPC_WAITLPM?IPC</a></li>
-<li><a href="#S101">?PR?KB_CB_INIT?SYS</a></li>
+<li><a href="#S122">?PR?IPC_ABANDONLPM?IPC</a></li>
+<li><a href="#S124">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+<li><a href="#S121">?PR?IPC_WAITLPM?IPC</a></li>
+<li><a href="#S99">?PR?KB_CB_INIT?SYS</a></li>
 <li><a href="#S54">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a></li>
 <li><a href="#S72">?PR?KS_UNISTALL?KEYSCAN</a></li>
 <li><a href="#S81">?PR?LED_ALL_SHUTDOWN?LED</a></li>
-<li><a href="#S84">?PR?LED_HANDLE?LED</a></li>
+<li><a href="#S82">?PR?LED_HANDLE?LED</a></li>
 <li><a href="#S12">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S110">?PR?MAIN?RAM</a></li>
+<li><a href="#S107">?PR?MAIN?RAM</a></li>
 </ul>
 
-<h2><a name="S110"></a>?PR?MAIN?RAM (C:000FE2H - C:000FE3H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=16 Bytes (<a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<h2><a name="S107"></a>?PR?MAIN?RAM (C:002053H - C:002055H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=16 Bytes (<a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+<li><a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S115"></a>?PR?_IPCTX?IPC (C:00076BH - C:0007FCH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S111">?PR?_BUFSIZE?IPC</a>)<p>
+<h2><a name="S112"></a>?PR?_IPCTX?IPC (C:00076BH - C:0007FCH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S108">?PR?_BUFSIZE?IPC</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
-<li><a href="#S111">?PR?_BUFSIZE?IPC</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
+<li><a href="#S108">?PR?_BUFSIZE?IPC</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S119">?PR?_IPC_TXDATA?IPC</a></li>
+<li><a href="#S116">?PR?_IPC_TXDATA?IPC</a></li>
 </ul>
 
-<h2><a name="S119"></a>?PR?_IPC_TXDATA?IPC (C:000D65H - C:000D8AH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S147">?PR?_XMEMCPY?UTILITIES</a>)<p>
+<h2><a name="S116"></a>?PR?_IPC_TXDATA?IPC (C:000DA5H - C:000DCAH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S144">?PR?_XMEMCPY?UTILITIES</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S115">?PR?_IPCTX?IPC</a></li>
-<li><a href="#S147">?PR?_XMEMCPY?UTILITIES</a></li>
+<li><a href="#S112">?PR?_IPCTX?IPC</a></li>
+<li><a href="#S144">?PR?_XMEMCPY?UTILITIES</a></li>
 </ul>
 
-<h2><a name="S123"></a>?PR?_IPC_INITIALIZE?IPC (C:001F4BH - C:001F57H)</h2>
+<h2><a name="S120"></a>?PR?_IPC_INITIALIZE?IPC (C:001EA9H - C:001EB5H)</h2>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
-<h2><a name="S153"></a>?PR?_XMEMCLEAR_FF?UTILITIES (C:002391H - C:0023BDH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>)<p>
+<h2><a name="S150"></a>?PR?_XMEMCLEAR_FF?UTILITIES (C:0022A8H - C:0022D4H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <h2><a name="S3"></a>?PR?_YC_STORE_RECORD_LIST?BLUETOOTH (C:0007FDH - C:00083CH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S147">?PR?_XMEMCPY?UTILITIES</a>) Top=2 Bytes (<a href="#S93">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S144">?PR?_XMEMCPY?UTILITIES</a>) Top=2 Bytes (<a href="#S91">?PR?_KB_CB_EVENT?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S147">?PR?_XMEMCPY?UTILITIES</a></li>
+<li><a href="#S144">?PR?_XMEMCPY?UTILITIES</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
 </ul>
 
-<h2><a name="S4"></a>?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH (C:000FEFH - C:000FFBH)</h2>
-<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S94">?PR?LED_TIMER500MS?SYS</a>)<p>
+<h2><a name="S4"></a>?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH (C:00100FH - C:00101BH)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S92">?PR?LED_TIMER500MS?SYS</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S84">?PR?LED_HANDLE?LED</a></li>
-<li><a href="#S94">?PR?LED_TIMER500MS?SYS</a></li>
+<li><a href="#S82">?PR?LED_HANDLE?LED</a></li>
+<li><a href="#S92">?PR?LED_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S5"></a>?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH (C:000FFCH - C:00104AH)</h2>
+<h2><a name="S5"></a>?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH (C:0017E6H - C:001835H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>) Top=8 Bytes (<a href="#S47">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -227,11 +219,11 @@
 <li><a href="#S47">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S7"></a>?PR?YC_CANCEL_RECONNECT?BLUETOOTH (C:0016CDH - C:0016DEH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=12 Bytes (<a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<h2><a name="S7"></a>?PR?YC_CANCEL_RECONNECT?BLUETOOTH (C:001836H - C:001847H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=12 Bytes (<a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
@@ -239,60 +231,60 @@
 <li><a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S8"></a>?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH (C:0012A2H - C:0012ABH)</h2>
+<h2><a name="S8"></a>?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH (C:0014D2H - C:0014DBH)</h2>
 <p><br><b>Maximum Stack:</b> Top=12 Bytes (<a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
 <li><a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S9"></a>?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH (C:001411H - C:001428H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=12 Bytes (<a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<h2><a name="S9"></a>?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH (C:0016CEH - C:0016E5H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=12 Bytes (<a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
-<li><a href="#S95">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+<li><a href="#S93">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S11"></a>?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH (C:0013AEH - C:0013D8H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S189">?PR?_IIC_READ?IIC</a>) Top=12 Bytes (<a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<h2><a name="S11"></a>?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH (C:0016E6H - C:001710H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S186">?PR?_IIC_READ?IIC</a>) Top=12 Bytes (<a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S189">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S186">?PR?_IIC_READ?IIC</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
-<li><a href="#S96">?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS</a></li>
+<li><a href="#S94">?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S12"></a>?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH (C:000F5CH - C:000FA2H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S193">?PR?_IIC_WRITEBLOCK?IIC</a>) Top=2 Bytes (<a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<h2><a name="S12"></a>?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH (C:001169H - C:0011AFH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S190">?PR?_IIC_WRITEBLOCK?IIC</a>) Top=2 Bytes (<a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S155">?PR?_DELAY1MS?UTILITIES</a></li>
-<li><a href="#S164">?PR?_GPIO_SETOUT?GPIO</a></li>
-<li><a href="#S193">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S152">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S161">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S190">?PR?_IIC_WRITEBLOCK?IIC</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+<li><a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S45"></a>?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS (C:00104BH - C:0010C7H)</h2>
+<h2><a name="S45"></a>?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS (C:001454H - C:0014D1H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S9">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a>) Top=10 Bytes (<a href="#S5">?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S155">?PR?_DELAY1MS?UTILITIES</a></li>
-<li><a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S152">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
 <li><a href="#S7">?PR?YC_CANCEL_RECONNECT?BLUETOOTH</a></li>
 <li><a href="#S8">?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH</a></li>
 <li><a href="#S9">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a></li>
@@ -301,18 +293,17 @@
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
-<li><a href="#S98">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S96">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
 <li><a href="#S5">?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH</a></li>
-<li><a href="#S97">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
-<li><a href="#S10">?PR?YC_START_RECONNECT?BLUETOOTH</a></li>
+<li><a href="#S95">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S47"></a>?PR?_IPC_TXHIDDATA?KB_PROCESS (C:000A43H - C:000A73H)</h2>
+<h2><a name="S47"></a>?PR?_IPC_TXHIDDATA?KB_PROCESS (C:000C8AH - C:000CBBH)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S5">?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH</a>) Top=6 Bytes (<a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S121">?PR?_IPC_TXBLEDATA?IPC</a></li>
+<li><a href="#S118">?PR?_IPC_TXBLEDATA?IPC</a></li>
 <li><a href="#S5">?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH</a></li>
 </ul>
 
@@ -322,19 +313,19 @@
 <li><a href="#S50">?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S49"></a>?PR?_KB_SET_MULTIKEY?KB_PROCESS (C:000BCFH - C:000BE9H)</h2>
+<h2><a name="S49"></a>?PR?_KB_SET_MULTIKEY?KB_PROCESS (C:000BBDH - C:000BD7H)</h2>
 <p><br><b>Maximum Stack:</b> Top=8 Bytes (<a href="#S62">?PR?_KB_MULTIKEY_SETUP?KB_PROCESS</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S62">?PR?_KB_MULTIKEY_SETUP?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S50"></a>?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS (C:000C9CH - C:000CD5H)</h2>
+<h2><a name="S50"></a>?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS (C:000CBCH - C:000CF5H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S47">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>) Top=4 Bytes (<a href="#S54">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
 <li><a href="#S47">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
-<li><a href="#S151">?PR?_XMEMCLEAR?UTILITIES</a></li>
+<li><a href="#S148">?PR?_XMEMCLEAR?UTILITIES</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
@@ -342,12 +333,12 @@
 <li><a href="#S54">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S52"></a>?PR?KB_MOTION?KB_PROCESS (C:000D2CH - C:000D5EH)</h2>
+<h2><a name="S52"></a>?PR?KB_MOTION?KB_PROCESS (C:000D6CH - C:000D9EH)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>) Top=2 Bytes (<a href="#S54">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
 <li><a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
-<li><a href="#S126">?PR?IPC_ISTXBUFFEMPTY?IPC</a></li>
+<li><a href="#S123">?PR?IPC_ISTXBUFFEMPTY?IPC</a></li>
 <li><a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
@@ -356,8 +347,8 @@
 <li><a href="#S54">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S54"></a>?PR?KB_NEED_KEYSCAN?KB_PROCESS (C:000CD6H - C:000D2BH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S52">?PR?KB_MOTION?KB_PROCESS</a>) Top=2 Bytes (<a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<h2><a name="S54"></a>?PR?KB_NEED_KEYSCAN?KB_PROCESS (C:000CF6H - C:000D6BH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S52">?PR?KB_MOTION?KB_PROCESS</a>) Top=2 Bytes (<a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
 <li><a href="#S50">?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS</a></li>
@@ -366,19 +357,19 @@
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+<li><a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S55"></a>?PR?_KB_MOTION_KEYSCAN?KB_PROCESS (C:000880H - C:000A42H)</h2>
+<h2><a name="S55"></a>?PR?_KB_MOTION_KEYSCAN?KB_PROCESS (C:000880H - C:000A2AH)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S47">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>) Top=4 Bytes (<a href="#S52">?PR?KB_MOTION?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 <li><a href="#S47">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
 <li><a href="#S57">?PR?_KB_DEVICE_SELECT?KB_PROCESS</a></li>
 <li><a href="#S62">?PR?_KB_MULTIKEY_SETUP?KB_PROCESS</a></li>
-<li><a href="#S151">?PR?_XMEMCLEAR?UTILITIES</a></li>
-<li><a href="#S147">?PR?_XMEMCPY?UTILITIES</a></li>
+<li><a href="#S148">?PR?_XMEMCLEAR?UTILITIES</a></li>
+<li><a href="#S144">?PR?_XMEMCPY?UTILITIES</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
@@ -386,11 +377,11 @@
 <li><a href="#S52">?PR?KB_MOTION?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S57"></a>?PR?_KB_DEVICE_SELECT?KB_PROCESS (C:0017D4H - C:001833H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>)<p>
+<h2><a name="S57"></a>?PR?_KB_DEVICE_SELECT?KB_PROCESS (C:001848H - C:0018A7H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
@@ -398,18 +389,18 @@
 <li><a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S59"></a>?PR?_KEY_REPLACE?KB_PROCESS (C:001834H - C:001853H)</h2>
+<h2><a name="S59"></a>?PR?_KB_COMBINATION_KEY_PRESS?KB_PROCESS (C:0018A8H - C:0018CCH)</h2>
 <p><br><b>Maximum Stack:</b> Top=8 Bytes (<a href="#S60">?PR?_KEY_FN_FUNCTION?KB_PROCESS</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S60">?PR?_KEY_FN_FUNCTION?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S60"></a>?PR?_KEY_FN_FUNCTION?KB_PROCESS (C:001854H - C:0019B1H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S59">?PR?_KEY_REPLACE?KB_PROCESS</a>) Top=6 Bytes (<a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<h2><a name="S60"></a>?PR?_KEY_FN_FUNCTION?KB_PROCESS (C:0018CDH - C:0019A0H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S59">?PR?_KB_COMBINATION_KEY_PRESS?KB_PROCESS</a>) Top=6 Bytes (<a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S59">?PR?_KEY_REPLACE?KB_PROCESS</a></li>
+<li><a href="#S59">?PR?_KB_COMBINATION_KEY_PRESS?KB_PROCESS</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
@@ -417,11 +408,11 @@
 <li><a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S62"></a>?PR?_KB_MULTIKEY_SETUP?KB_PROCESS (C:000A74H - C:000BCEH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>)<p>
+<h2><a name="S62"></a>?PR?_KB_MULTIKEY_SETUP?KB_PROCESS (C:000A2BH - C:000BBCH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 <li><a href="#S49">?PR?_KB_SET_MULTIKEY?KB_PROCESS</a></li>
 </ul>
 
@@ -430,32 +421,32 @@
 <li><a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S64"></a>?PR?_BIT_COUNT?KEYSCAN (C:001BAEH - C:001BBBH)</h2>
+<h2><a name="S64"></a>?PR?_BIT_COUNT?KEYSCAN (C:001B9DH - C:001BAAH)</h2>
 <p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S65"></a>?PR?_KEYIN?KEYSCAN (C:001C36H - C:001C8BH)</h2>
+<h2><a name="S65"></a>?PR?_KEYIN?KEYSCAN (C:001C25H - C:001C7CH)</h2>
 <p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S66"></a>?PR?_KEYOUT?KEYSCAN (C:001C8CH - C:001D35H)</h2>
+<h2><a name="S66"></a>?PR?_KEYOUT?KEYSCAN (C:001C7DH - C:001D27H)</h2>
 <p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S67"></a>?PR?KSRAWINITIALIZE?KEYSCAN (C:0012DFH - C:0012FBH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S172">?PR?_GPIO_SETINPUT?GPIO</a>) Top=6 Bytes (<a href="#S71">?PR?KS_INITIALIZE?KEYSCAN</a>)<p>
+<h2><a name="S67"></a>?PR?KSRAWINITIALIZE?KEYSCAN (C:0014F8H - C:001514H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S169">?PR?_GPIO_SETINPUT?GPIO</a>) Top=6 Bytes (<a href="#S71">?PR?KS_INITIALIZE?KEYSCAN</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S172">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S169">?PR?_GPIO_SETINPUT?GPIO</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
@@ -463,8 +454,8 @@
 <li><a href="#S71">?PR?KS_INITIALIZE?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S71"></a>?PR?KS_INITIALIZE?KEYSCAN (C:0012B6H - C:0012C0H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S67">?PR?KSRAWINITIALIZE?KEYSCAN</a>) Top=4 Bytes (<a href="#S86">?PR?SYSTEM_HARDWARE_INIT?SYS</a>)<p>
+<h2><a name="S71"></a>?PR?KS_INITIALIZE?KEYSCAN (C:001423H - C:00142DH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S67">?PR?KSRAWINITIALIZE?KEYSCAN</a>) Top=4 Bytes (<a href="#S84">?PR?SYSTEM_HARDWARE_INIT?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
 <li><a href="#S67">?PR?KSRAWINITIALIZE?KEYSCAN</a></li>
@@ -472,35 +463,35 @@
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
-<li><a href="#S86">?PR?SYSTEM_HARDWARE_INIT?SYS</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S84">?PR?SYSTEM_HARDWARE_INIT?SYS</a></li>
 </ul>
 
-<h2><a name="S72"></a>?PR?KS_UNISTALL?KEYSCAN (C:000DEEH - C:000E98H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S179">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a>) Top=2 Bytes (<a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<h2><a name="S72"></a>?PR?KS_UNISTALL?KEYSCAN (C:000E2FH - C:000ED9H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S176">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a>) Top=2 Bytes (<a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S179">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a></li>
-<li><a href="#S185">?PR?GPIO_FILLPD?GPIO</a></li>
+<li><a href="#S176">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a></li>
+<li><a href="#S182">?PR?GPIO_FILLPD?GPIO</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+<li><a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S74"></a>?PR?KS_SCANMATRIX?KEYSCAN (C:001D36H - C:001E95H)</h2>
+<h2><a name="S74"></a>?PR?KS_SCANMATRIX?KEYSCAN (C:001D28H - C:001E87H)</h2>
 <p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S76"></a>?PR?_ARRAY_IS_EMPTY?KEYSCAN (C:001BBCH - C:001BEBH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<h2><a name="S76"></a>?PR?_ARRAY_IS_EMPTY?KEYSCAN (C:001BABH - C:001BDAH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
@@ -508,13 +499,13 @@
 <li><a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S78"></a>?PR?KS_GETCURRENTEVT?KEYSCAN (C:0019B2H - C:001BADH)</h2>
+<h2><a name="S78"></a>?PR?KS_GETCURRENTEVT?KEYSCAN (C:0019A1H - C:001B9CH)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S74">?PR?KS_SCANMATRIX?KEYSCAN</a>) Top=4 Bytes (<a href="#S52">?PR?KB_MOTION?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
 <li><a href="#S76">?PR?_ARRAY_IS_EMPTY?KEYSCAN</a></li>
 <li><a href="#S64">?PR?_BIT_COUNT?KEYSCAN</a></li>
-<li><a href="#S156">?PR?_COMPARE_STR?UTILITIES</a></li>
+<li><a href="#S153">?PR?_COMPARE_STR?UTILITIES</a></li>
 <li><a href="#S60">?PR?_KEY_FN_FUNCTION?KB_PROCESS</a></li>
 <li><a href="#S65">?PR?_KEYIN?KEYSCAN</a></li>
 <li><a href="#S66">?PR?_KEYOUT?KEYSCAN</a></li>
@@ -526,73 +517,48 @@
 <li><a href="#S52">?PR?KB_MOTION?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S81"></a>?PR?LED_ALL_SHUTDOWN?LED (C:000FA3H - C:000FB2H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S174">?PR?_GPIO_SETOUTPUT?GPIO</a>) Top=4 Bytes (<a href="#S98">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a>)<p>
-<p><br><b>Calls to:</b></p>
-<ul>
-<li><a href="#S174">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
-</ul>
-
-<p><br><b>Called from:</b></p>
-<ul>
-<li><a href="#S98">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
-<li><a href="#S86">?PR?SYSTEM_HARDWARE_INIT?SYS</a></li>
-<li><a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a></li>
-</ul>
-
-<h2><a name="S82"></a>?PR?LED_DEVICE_POWERON?LED (C:000FE9H - C:000FEEH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S164">?PR?_GPIO_SETOUT?GPIO</a>) Top=2 Bytes (<a href="#S100">?PR?KB_CB_TIMER100MS?SYS</a>)<p>
+<h2><a name="S81"></a>?PR?LED_ALL_SHUTDOWN?LED (C:000F9CH - C:000FABH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S171">?PR?_GPIO_SETOUTPUT?GPIO</a>) Top=4 Bytes (<a href="#S96">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S164">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S171">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S100">?PR?KB_CB_TIMER100MS?SYS</a></li>
+<li><a href="#S96">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S84">?PR?SYSTEM_HARDWARE_INIT?SYS</a></li>
+<li><a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S83"></a>?PR?LED_DEVICE_POWEROFF?LED (C:001576H - C:00157CH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S164">?PR?_GPIO_SETOUT?GPIO</a>) Top=2 Bytes (<a href="#S93">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<h2><a name="S82"></a>?PR?LED_HANDLE?LED (C:001065H - C:0010E9H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S161">?PR?_GPIO_SETOUT?GPIO</a>) Top=2 Bytes (<a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S164">?PR?_GPIO_SETOUT?GPIO</a></li>
-</ul>
-
-<p><br><b>Called from:</b></p>
-<ul>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
-<li><a href="#S100">?PR?KB_CB_TIMER100MS?SYS</a></li>
-</ul>
-
-<h2><a name="S84"></a>?PR?LED_HANDLE?LED (C:001E96H - C:001F29H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S164">?PR?_GPIO_SETOUT?GPIO</a>) Top=2 Bytes (<a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
-<p><br><b>Calls to:</b></p>
-<ul>
-<li><a href="#S164">?PR?_GPIO_SETOUT?GPIO</a></li>
-<li><a href="#S89">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S161">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S87">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
 <li><a href="#S4">?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+<li><a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S85"></a>?PR?SYSTEM_CLEAR_MEM?SYS (C:000C16H - C:000C9BH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S151">?PR?_XMEMCLEAR?UTILITIES</a>) Top=4 Bytes (<a href="#S87">?PR?SYSTEM_SOFTWARE_INIT?SYS</a>)<p>
+<h2><a name="S83"></a>?PR?SYSTEM_CLEAR_MEM?SYS (C:000C04H - C:000C89H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S148">?PR?_XMEMCLEAR?UTILITIES</a>) Top=4 Bytes (<a href="#S85">?PR?SYSTEM_SOFTWARE_INIT?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S151">?PR?_XMEMCLEAR?UTILITIES</a></li>
+<li><a href="#S148">?PR?_XMEMCLEAR?UTILITIES</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S87">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
+<li><a href="#S85">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
 </ul>
 
-<h2><a name="S86"></a>?PR?SYSTEM_HARDWARE_INIT?SYS (C:000FE4H - C:000FE8H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S71">?PR?KS_INITIALIZE?KEYSCAN</a>) Top=2 Bytes (<a href="#S93">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<h2><a name="S84"></a>?PR?SYSTEM_HARDWARE_INIT?SYS (C:00141EH - C:001422H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S71">?PR?KS_INITIALIZE?KEYSCAN</a>) Top=2 Bytes (<a href="#S91">?PR?_KB_CB_EVENT?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
 <li><a href="#S71">?PR?KS_INITIALIZE?KEYSCAN</a></li>
@@ -601,272 +567,272 @@
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
 </ul>
 
-<h2><a name="S87"></a>?PR?SYSTEM_SOFTWARE_INIT?SYS (C:000D8BH - C:000DA7H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S105">?PR?YC_ADC_INIT?ADC</a>) Top=2 Bytes (<a href="#S93">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<h2><a name="S85"></a>?PR?SYSTEM_SOFTWARE_INIT?SYS (C:000DCBH - C:000DE7H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S103">?PR?YC_ADC_INIT?ADC</a>) Top=2 Bytes (<a href="#S91">?PR?_KB_CB_EVENT?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S85">?PR?SYSTEM_CLEAR_MEM?SYS</a></li>
-<li><a href="#S105">?PR?YC_ADC_INIT?ADC</a></li>
+<li><a href="#S83">?PR?SYSTEM_CLEAR_MEM?SYS</a></li>
+<li><a href="#S103">?PR?YC_ADC_INIT?ADC</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
 </ul>
 
-<h2><a name="S89"></a>?PR?SYSTEM_LONG_SLEEP?SYS (C:0010E5H - C:0010EEH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=4 Bytes (<a href="#S95">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a>)<p>
+<h2><a name="S87"></a>?PR?SYSTEM_LONG_SLEEP?SYS (C:00125EH - C:001267H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=4 Bytes (<a href="#S93">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
-<li><a href="#S98">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
-<li><a href="#S84">?PR?LED_HANDLE?LED</a></li>
-<li><a href="#S95">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
-<li><a href="#S97">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S96">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S82">?PR?LED_HANDLE?LED</a></li>
+<li><a href="#S93">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+<li><a href="#S95">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S94"></a>?PR?LED_TIMER500MS?SYS (C:00150DH - C:001559H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S182">?PR?_GPIO_FLIPOUTBIT?GPIO</a>) Top=2 Bytes (<a href="#S99">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<h2><a name="S92"></a>?PR?LED_TIMER500MS?SYS (C:00101CH - C:001053H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S179">?PR?_GPIO_FLIPOUTBIT?GPIO</a>) Top=2 Bytes (<a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S182">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
-<li><a href="#S164">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S179">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
+<li><a href="#S161">?PR?_GPIO_SETOUT?GPIO</a></li>
 <li><a href="#S4">?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S99">?PR?KB_CB_TIMER500MS?SYS</a></li>
+<li><a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S95"></a>?PR?YC_CONNECT_TIMEOUT_500MS?SYS (C:0013D9H - C:001410H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S9">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a>) Top=2 Bytes (<a href="#S99">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<h2><a name="S93"></a>?PR?YC_CONNECT_TIMEOUT_500MS?SYS (C:0015FEH - C:001635H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S9">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a>) Top=2 Bytes (<a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
-<li><a href="#S89">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S87">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
 <li><a href="#S9">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S99">?PR?KB_CB_TIMER500MS?SYS</a></li>
+<li><a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S96"></a>?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS (C:0014DBH - C:00150CH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S11">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a>) Top=2 Bytes (<a href="#S99">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<h2><a name="S94"></a>?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS (C:001711H - C:001742H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S11">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a>) Top=2 Bytes (<a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
 <li><a href="#S11">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S99">?PR?KB_CB_TIMER500MS?SYS</a></li>
+<li><a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S98"></a>?PR?KB_BUTTON_PRESS_TIMER500MS?SYS (C:001443H - C:0014C8H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S81">?PR?LED_ALL_SHUTDOWN?LED</a>) Top=2 Bytes (<a href="#S99">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<h2><a name="S96"></a>?PR?KB_BUTTON_PRESS_TIMER500MS?SYS (C:001636H - C:0016BBH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S81">?PR?LED_ALL_SHUTDOWN?LED</a>) Top=2 Bytes (<a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
 <li><a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
 <li><a href="#S81">?PR?LED_ALL_SHUTDOWN?LED</a></li>
-<li><a href="#S89">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S87">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S99">?PR?KB_CB_TIMER500MS?SYS</a></li>
+<li><a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S101"></a>?PR?KB_CB_INIT?SYS (C:001F45H - C:001F4AH)</h2>
-<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<h2><a name="S99"></a>?PR?KB_CB_INIT?SYS (C:001EA3H - C:001EA8H)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+<li><a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S105"></a>?PR?YC_ADC_INIT?ADC (C:001F58H - C:0020CCH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S87">?PR?SYSTEM_SOFTWARE_INIT?SYS</a>)<p>
+<h2><a name="S103"></a>?PR?YC_ADC_INIT?ADC (C:001EB6H - C:001F72H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S85">?PR?SYSTEM_SOFTWARE_INIT?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S87">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
+<li><a href="#S85">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
 </ul>
 
-<h2><a name="S107"></a>?PR?YC_ADC_CHECK?ADC (C:0020CDH - C:002182H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S109">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a>)<p>
+<h2><a name="S104"></a>?PR?YC_ADC_CHECK?ADC (C:001F73H - C:002052H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S106">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S109">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a></li>
+<li><a href="#S106">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a></li>
 </ul>
 
-<h2><a name="S109"></a>?PR?YC_ADC_CHECK_TIMER500MS?ADC (C:0014C9H - C:0014DAH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S107">?PR?YC_ADC_CHECK?ADC</a>) Top=2 Bytes (<a href="#S99">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<h2><a name="S106"></a>?PR?YC_ADC_CHECK_TIMER500MS?ADC (C:0016BCH - C:0016CDH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S104">?PR?YC_ADC_CHECK?ADC</a>) Top=2 Bytes (<a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S107">?PR?YC_ADC_CHECK?ADC</a></li>
+<li><a href="#S104">?PR?YC_ADC_CHECK?ADC</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S99">?PR?KB_CB_TIMER500MS?SYS</a></li>
+<li><a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S111"></a>?PR?_BUFSIZE?IPC (C:002183H - C:0021DCH)</h2>
-<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S115">?PR?_IPCTX?IPC</a>)<p>
+<h2><a name="S108"></a>?PR?_BUFSIZE?IPC (C:002056H - C:0020AFH)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S112">?PR?_IPCTX?IPC</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S115">?PR?_IPCTX?IPC</a></li>
+<li><a href="#S112">?PR?_IPCTX?IPC</a></li>
 </ul>
 
-<h2><a name="S113"></a>?PR?_IPCRX?IPC (C:0021DDH - C:00222CH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S127">?PR?IPC_DEALSINGLESTEP?IPC</a>)<p>
+<h2><a name="S110"></a>?PR?_IPCRX?IPC (C:0020B0H - C:0020FFH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S124">?PR?IPC_DEALSINGLESTEP?IPC</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S127">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+<li><a href="#S124">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
 </ul>
 
-<h2><a name="S117"></a>?PR?_IPC_TXCONTROLCMD?IPC (C:000744H - C:00076AH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=14 Bytes (<a href="#S9">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a>)<p>
+<h2><a name="S114"></a>?PR?_IPC_TXCONTROLCMD?IPC (C:000744H - C:00076AH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=14 Bytes (<a href="#S9">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
 <li><a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
-<li><a href="#S89">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S87">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
 <li><a href="#S7">?PR?YC_CANCEL_RECONNECT?BLUETOOTH</a></li>
-<li><a href="#S95">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+<li><a href="#S93">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
 <li><a href="#S9">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a></li>
 <li><a href="#S2">?PR?YC_LOAD_RECORD_LIST?BLUETOOTH</a></li>
-<li><a href="#S96">?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS</a></li>
+<li><a href="#S94">?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S121"></a>?PR?_IPC_TXBLEDATA?IPC (C:000D5FH - C:000D64H)</h2>
+<h2><a name="S118"></a>?PR?_IPC_TXBLEDATA?IPC (C:000D9FH - C:000DA4H)</h2>
 <p><br><b>Maximum Stack:</b> Top=8 Bytes (<a href="#S47">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S47">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S124"></a>?PR?IPC_WAITLPM?IPC (C:000F39H - C:000F43H)</h2>
-<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<h2><a name="S121"></a>?PR?IPC_WAITLPM?IPC (C:000F79H - C:000F83H)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+<li><a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S125"></a>?PR?IPC_ABANDONLPM?IPC (C:002366H - C:002371H)</h2>
-<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<h2><a name="S122"></a>?PR?IPC_ABANDONLPM?IPC (C:002239H - C:002244H)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+<li><a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S126"></a>?PR?IPC_ISTXBUFFEMPTY?IPC (C:002372H - C:002389H)</h2>
+<h2><a name="S123"></a>?PR?IPC_ISTXBUFFEMPTY?IPC (C:002245H - C:00225CH)</h2>
 <p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S52">?PR?KB_MOTION?KB_PROCESS</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S52">?PR?KB_MOTION?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S127"></a>?PR?IPC_DEALSINGLESTEP?IPC (C:00222DH - C:00235FH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S113">?PR?_IPCRX?IPC</a>) Top=2 Bytes (<a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<h2><a name="S124"></a>?PR?IPC_DEALSINGLESTEP?IPC (C:002100H - C:002232H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S110">?PR?_IPCRX?IPC</a>) Top=2 Bytes (<a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
-<li><a href="#S113">?PR?_IPCRX?IPC</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
+<li><a href="#S110">?PR?_IPCRX?IPC</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S102">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+<li><a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S147"></a>?PR?_XMEMCPY?UTILITIES (C:00083DH - C:00087FH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=14 Bytes (<a href="#S189">?PR?_IIC_READ?IIC</a>)<p>
+<h2><a name="S144"></a>?PR?_XMEMCPY?UTILITIES (C:00083DH - C:00087FH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=14 Bytes (<a href="#S186">?PR?_IIC_READ?IIC</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S189">?PR?_IIC_READ?IIC</a></li>
-<li><a href="#S119">?PR?_IPC_TXDATA?IPC</a></li>
+<li><a href="#S186">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S116">?PR?_IPC_TXDATA?IPC</a></li>
 <li><a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
 <li><a href="#S3">?PR?_YC_STORE_RECORD_LIST?BLUETOOTH</a></li>
 <li><a href="#S2">?PR?YC_LOAD_RECORD_LIST?BLUETOOTH</a></li>
 </ul>
 
-<h2><a name="S149"></a>?PR?_DMEMCPY?UTILITIES (C:001726H - C:001769H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=8 Bytes (<a href="#S191">?PR?_IIC_WRITE?IIC</a>)<p>
+<h2><a name="S146"></a>?PR?_DMEMCPY?UTILITIES (C:002264H - C:0022A7H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=8 Bytes (<a href="#S188">?PR?_IIC_WRITE?IIC</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S191">?PR?_IIC_WRITE?IIC</a></li>
+<li><a href="#S188">?PR?_IIC_WRITE?IIC</a></li>
 </ul>
 
-<h2><a name="S151"></a>?PR?_XMEMCLEAR?UTILITIES (C:000BEAH - C:000C15H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S85">?PR?SYSTEM_CLEAR_MEM?SYS</a>)<p>
+<h2><a name="S148"></a>?PR?_XMEMCLEAR?UTILITIES (C:000BD8H - C:000C03H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S83">?PR?SYSTEM_CLEAR_MEM?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
 <li><a href="#S50">?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS</a></li>
-<li><a href="#S85">?PR?SYSTEM_CLEAR_MEM?SYS</a></li>
+<li><a href="#S83">?PR?SYSTEM_CLEAR_MEM?SYS</a></li>
 </ul>
 
-<h2><a name="S155"></a>?PR?_DELAY1MS?UTILITIES (C:000F44H - C:000F5BH)</h2>
+<h2><a name="S152"></a>?PR?_DELAY1MS?UTILITIES (C:000F84H - C:000F9BH)</h2>
 <p><br><b>Maximum Stack:</b> Top=12 Bytes (<a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S193">?PR?_IIC_WRITEBLOCK?IIC</a></li>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S190">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
 <li><a href="#S45">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
 <li><a href="#S12">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
 </ul>
 
-<h2><a name="S156"></a>?PR?_COMPARE_STR?UTILITIES (C:001BECH - C:001C35H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<h2><a name="S153"></a>?PR?_COMPARE_STR?UTILITIES (C:001BDBH - C:001C24H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
@@ -874,110 +840,103 @@
 <li><a href="#S78">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S158"></a>?PR?_GPIOSETBIT?GPIO (C:00134DH - C:0013ADH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=12 Bytes (<a href="#S168">?PR?_GPIO_SETPD?GPIO</a>)<p>
+<h2><a name="S155"></a>?PR?_GPIOSETBIT?GPIO (C:001555H - C:0015B5H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=12 Bytes (<a href="#S165">?PR?_GPIO_SETPD?GPIO</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S170">?PR?_GPIO_SETOE?GPIO</a></li>
-<li><a href="#S164">?PR?_GPIO_SETOUT?GPIO</a></li>
-<li><a href="#S168">?PR?_GPIO_SETPD?GPIO</a></li>
-<li><a href="#S166">?PR?_GPIO_SETPU?GPIO</a></li>
+<li><a href="#S167">?PR?_GPIO_SETOE?GPIO</a></li>
+<li><a href="#S161">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S165">?PR?_GPIO_SETPD?GPIO</a></li>
+<li><a href="#S163">?PR?_GPIO_SETPU?GPIO</a></li>
 </ul>
 
-<h2><a name="S161"></a>?PR?_GPIOGETBIT?GPIO (C:0016DFH - C:00171DH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S197">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S182">?PR?_GPIO_FLIPOUTBIT?GPIO</a>)<p>
+<h2><a name="S158"></a>?PR?_GPIOGETBIT?GPIO (C:000FD0H - C:00100EH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S194">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S179">?PR?_GPIO_FLIPOUTBIT?GPIO</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S182">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
-<li><a href="#S163">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
-</ul>
-
-<h2><a name="S163"></a>?PR?_GPIO_GETINPUTSTATUS?GPIO (C:00171EH - C:001725H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S161">?PR?_GPIOGETBIT?GPIO</a>) Top=6 Bytes (<a href="#S179">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a>)<p>
-<p><br><b>Calls to:</b></p>
-<ul>
-<li><a href="#S161">?PR?_GPIOGETBIT?GPIO</a></li>
+<li><a href="#S179">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
 </ul>
 
+<h2><a name="S160"></a>?PR?_GPIO_GETINPUTSTATUS?GPIO (C:000FCAH - C:000FCFH)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S176">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S179">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a></li>
+<li><a href="#S176">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a></li>
 </ul>
 
-<h2><a name="S164"></a>?PR?_GPIO_SETOUT?GPIO (C:000FD0H - C:000FE1H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S158">?PR?_GPIOSETBIT?GPIO</a>) Top=8 Bytes (<a href="#S174">?PR?_GPIO_SETOUTPUT?GPIO</a>)<p>
+<h2><a name="S161"></a>?PR?_GPIO_SETOUT?GPIO (C:001054H - C:001064H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S155">?PR?_GPIOSETBIT?GPIO</a>) Top=8 Bytes (<a href="#S171">?PR?_GPIO_SETOUTPUT?GPIO</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S158">?PR?_GPIOSETBIT?GPIO</a></li>
+<li><a href="#S155">?PR?_GPIOSETBIT?GPIO</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S182">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
-<li><a href="#S174">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
-<li><a href="#S100">?PR?KB_CB_TIMER100MS?SYS</a></li>
-<li><a href="#S83">?PR?LED_DEVICE_POWEROFF?LED</a></li>
-<li><a href="#S82">?PR?LED_DEVICE_POWERON?LED</a></li>
-<li><a href="#S84">?PR?LED_HANDLE?LED</a></li>
-<li><a href="#S94">?PR?LED_TIMER500MS?SYS</a></li>
+<li><a href="#S179">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
+<li><a href="#S171">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S98">?PR?KB_CB_TIMER100MS?SYS</a></li>
+<li><a href="#S82">?PR?LED_HANDLE?LED</a></li>
+<li><a href="#S92">?PR?LED_TIMER500MS?SYS</a></li>
 <li><a href="#S12">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
 </ul>
 
-<h2><a name="S166"></a>?PR?_GPIO_SETPU?GPIO (C:00131AH - C:00132AH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S158">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S172">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<h2><a name="S163"></a>?PR?_GPIO_SETPU?GPIO (C:001533H - C:001543H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S155">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S169">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S158">?PR?_GPIOSETBIT?GPIO</a></li>
+<li><a href="#S155">?PR?_GPIOSETBIT?GPIO</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S172">?PR?_GPIO_SETINPUT?GPIO</a></li>
-<li><a href="#S174">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+<li><a href="#S169">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S171">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
 </ul>
 
-<h2><a name="S168"></a>?PR?_GPIO_SETPD?GPIO (C:00132BH - C:00133BH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S158">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S172">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<h2><a name="S165"></a>?PR?_GPIO_SETPD?GPIO (C:001544H - C:001554H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S155">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S169">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S158">?PR?_GPIOSETBIT?GPIO</a></li>
+<li><a href="#S155">?PR?_GPIOSETBIT?GPIO</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S172">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S169">?PR?_GPIO_SETINPUT?GPIO</a></li>
 </ul>
 
-<h2><a name="S170"></a>?PR?_GPIO_SETOE?GPIO (C:00133CH - C:00134CH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S158">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S172">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<h2><a name="S167"></a>?PR?_GPIO_SETOE?GPIO (C:0015B6H - C:0015C6H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S155">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S169">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S158">?PR?_GPIOSETBIT?GPIO</a></li>
+<li><a href="#S155">?PR?_GPIOSETBIT?GPIO</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S172">?PR?_GPIO_SETINPUT?GPIO</a></li>
-<li><a href="#S174">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+<li><a href="#S169">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S171">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
 </ul>
 
-<h2><a name="S172"></a>?PR?_GPIO_SETINPUT?GPIO (C:0012FCH - C:001319H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S168">?PR?_GPIO_SETPD?GPIO</a>) Top=8 Bytes (<a href="#S67">?PR?KSRAWINITIALIZE?KEYSCAN</a>)<p>
+<h2><a name="S169"></a>?PR?_GPIO_SETINPUT?GPIO (C:001515H - C:001532H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S165">?PR?_GPIO_SETPD?GPIO</a>) Top=8 Bytes (<a href="#S67">?PR?KSRAWINITIALIZE?KEYSCAN</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S170">?PR?_GPIO_SETOE?GPIO</a></li>
-<li><a href="#S168">?PR?_GPIO_SETPD?GPIO</a></li>
-<li><a href="#S166">?PR?_GPIO_SETPU?GPIO</a></li>
+<li><a href="#S167">?PR?_GPIO_SETOE?GPIO</a></li>
+<li><a href="#S165">?PR?_GPIO_SETPD?GPIO</a></li>
+<li><a href="#S163">?PR?_GPIO_SETPU?GPIO</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
@@ -986,13 +945,13 @@
 <li><a href="#S67">?PR?KSRAWINITIALIZE?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S174"></a>?PR?_GPIO_SETOUTPUT?GPIO (C:000FB3H - C:000FCFH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S170">?PR?_GPIO_SETOE?GPIO</a>) Top=6 Bytes (<a href="#S81">?PR?LED_ALL_SHUTDOWN?LED</a>)<p>
+<h2><a name="S171"></a>?PR?_GPIO_SETOUTPUT?GPIO (C:000FACH - C:000FC9H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S167">?PR?_GPIO_SETOE?GPIO</a>) Top=6 Bytes (<a href="#S81">?PR?LED_ALL_SHUTDOWN?LED</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S170">?PR?_GPIO_SETOE?GPIO</a></li>
-<li><a href="#S164">?PR?_GPIO_SETOUT?GPIO</a></li>
-<li><a href="#S166">?PR?_GPIO_SETPU?GPIO</a></li>
+<li><a href="#S167">?PR?_GPIO_SETOE?GPIO</a></li>
+<li><a href="#S161">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S163">?PR?_GPIO_SETPU?GPIO</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
@@ -1000,11 +959,11 @@
 <li><a href="#S81">?PR?LED_ALL_SHUTDOWN?LED</a></li>
 </ul>
 
-<h2><a name="S179"></a>?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO (C:000E99H - C:000EACH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S163">?PR?_GPIO_GETINPUTSTATUS?GPIO</a>) Top=4 Bytes (<a href="#S72">?PR?KS_UNISTALL?KEYSCAN</a>)<p>
+<h2><a name="S176"></a>?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO (C:000EDAH - C:000EECH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S160">?PR?_GPIO_GETINPUTSTATUS?GPIO</a>) Top=4 Bytes (<a href="#S72">?PR?KS_UNISTALL?KEYSCAN</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S163">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S160">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
@@ -1012,68 +971,68 @@
 <li><a href="#S72">?PR?KS_UNISTALL?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S182"></a>?PR?_GPIO_FLIPOUTBIT?GPIO (C:00155AH - C:001575H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S161">?PR?_GPIOGETBIT?GPIO</a>) Top=4 Bytes (<a href="#S94">?PR?LED_TIMER500MS?SYS</a>)<p>
+<h2><a name="S179"></a>?PR?_GPIO_FLIPOUTBIT?GPIO (C:0014DCH - C:0014F7H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S158">?PR?_GPIOGETBIT?GPIO</a>) Top=4 Bytes (<a href="#S92">?PR?LED_TIMER500MS?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S164">?PR?_GPIO_SETOUT?GPIO</a></li>
-<li><a href="#S161">?PR?_GPIOGETBIT?GPIO</a></li>
+<li><a href="#S161">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S158">?PR?_GPIOGETBIT?GPIO</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S94">?PR?LED_TIMER500MS?SYS</a></li>
+<li><a href="#S92">?PR?LED_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S185"></a>?PR?GPIO_FILLPD?GPIO (C:0023FDH - C:002430H)</h2>
+<h2><a name="S182"></a>?PR?GPIO_FILLPD?GPIO (C:002314H - C:002347H)</h2>
 <p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S72">?PR?KS_UNISTALL?KEYSCAN</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S72">?PR?KS_UNISTALL?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S188"></a>?PR?IICWAITDONE?IIC (C:00157DH - C:001584H)</h2>
-<p><br><b>Maximum Stack:</b> Top=16 Bytes (<a href="#S189">?PR?_IIC_READ?IIC</a>)<p>
+<h2><a name="S185"></a>?PR?IICWAITDONE?IIC (C:001743H - C:00174AH)</h2>
+<p><br><b>Maximum Stack:</b> Top=16 Bytes (<a href="#S186">?PR?_IIC_READ?IIC</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S189">?PR?_IIC_READ?IIC</a></li>
-<li><a href="#S191">?PR?_IIC_WRITE?IIC</a></li>
+<li><a href="#S186">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S188">?PR?_IIC_WRITE?IIC</a></li>
 </ul>
 
-<h2><a name="S189"></a>?PR?_IIC_READ?IIC (C:0011F2H - C:0012A1H)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S188">?PR?IICWAITDONE?IIC</a>) Top=14 Bytes (<a href="#S11">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a>)<p>
+<h2><a name="S186"></a>?PR?_IIC_READ?IIC (C:00136EH - C:00141DH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S185">?PR?IICWAITDONE?IIC</a>) Top=14 Bytes (<a href="#S11">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S147">?PR?_XMEMCPY?UTILITIES</a></li>
-<li><a href="#S188">?PR?IICWAITDONE?IIC</a></li>
+<li><a href="#S144">?PR?_XMEMCPY?UTILITIES</a></li>
+<li><a href="#S185">?PR?IICWAITDONE?IIC</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S93">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
 <li><a href="#S11">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a></li>
 </ul>
 
-<h2><a name="S191"></a>?PR?_IIC_WRITE?IIC (C:001585H - C:00161EH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S149">?PR?_DMEMCPY?UTILITIES</a>) Top=6 Bytes (<a href="#S193">?PR?_IIC_WRITEBLOCK?IIC</a>)<p>
+<h2><a name="S188"></a>?PR?_IIC_WRITE?IIC (C:00174BH - C:0017E5H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S146">?PR?_DMEMCPY?UTILITIES</a>) Top=6 Bytes (<a href="#S190">?PR?_IIC_WRITEBLOCK?IIC</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S149">?PR?_DMEMCPY?UTILITIES</a></li>
-<li><a href="#S188">?PR?IICWAITDONE?IIC</a></li>
+<li><a href="#S146">?PR?_DMEMCPY?UTILITIES</a></li>
+<li><a href="#S185">?PR?IICWAITDONE?IIC</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
 <ul>
-<li><a href="#S193">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S190">?PR?_IIC_WRITEBLOCK?IIC</a></li>
 </ul>
 
-<h2><a name="S193"></a>?PR?_IIC_WRITEBLOCK?IIC (C:00161FH - C:0016CCH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S191">?PR?_IIC_WRITE?IIC</a>) Top=4 Bytes (<a href="#S12">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a>)<p>
+<h2><a name="S190"></a>?PR?_IIC_WRITEBLOCK?IIC (C:0011B0H - C:00125DH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S188">?PR?_IIC_WRITE?IIC</a>) Top=4 Bytes (<a href="#S12">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
-<li><a href="#S197">?C?LIB_CODE</a></li>
-<li><a href="#S155">?PR?_DELAY1MS?UTILITIES</a></li>
-<li><a href="#S191">?PR?_IIC_WRITE?IIC</a></li>
+<li><a href="#S194">?C?LIB_CODE</a></li>
+<li><a href="#S152">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S188">?PR?_IIC_WRITE?IIC</a></li>
 </ul>
 
 <p><br><b>Called from:</b></p>
@@ -1081,30 +1040,30 @@
 <li><a href="#S12">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
 </ul>
 
-<h2><a name="S197"></a>?C?LIB_CODE (C:000003H - C:000569H)</h2>
-<p><br><b>Maximum Stack:</b> Top=16 Bytes (<a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a>)<p>
+<h2><a name="S194"></a>?C?LIB_CODE (C:000003H - C:000569H)</h2>
+<p><br><b>Maximum Stack:</b> Top=16 Bytes (<a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S76">?PR?_ARRAY_IS_EMPTY?KEYSCAN</a></li>
-<li><a href="#S156">?PR?_COMPARE_STR?UTILITIES</a></li>
-<li><a href="#S149">?PR?_DMEMCPY?UTILITIES</a></li>
-<li><a href="#S161">?PR?_GPIOGETBIT?GPIO</a></li>
-<li><a href="#S158">?PR?_GPIOSETBIT?GPIO</a></li>
-<li><a href="#S193">?PR?_IIC_WRITEBLOCK?IIC</a></li>
-<li><a href="#S123">?PR?_IPC_INITIALIZE?IPC</a></li>
-<li><a href="#S117">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
-<li><a href="#S113">?PR?_IPCRX?IPC</a></li>
-<li><a href="#S115">?PR?_IPCTX?IPC</a></li>
-<li><a href="#S91">?PR?_KB_CB_HID?SYS</a></li>
+<li><a href="#S153">?PR?_COMPARE_STR?UTILITIES</a></li>
+<li><a href="#S146">?PR?_DMEMCPY?UTILITIES</a></li>
+<li><a href="#S158">?PR?_GPIOGETBIT?GPIO</a></li>
+<li><a href="#S155">?PR?_GPIOSETBIT?GPIO</a></li>
+<li><a href="#S190">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S120">?PR?_IPC_INITIALIZE?IPC</a></li>
+<li><a href="#S114">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S110">?PR?_IPCRX?IPC</a></li>
+<li><a href="#S112">?PR?_IPCTX?IPC</a></li>
+<li><a href="#S89">?PR?_KB_CB_HID?SYS</a></li>
 <li><a href="#S57">?PR?_KB_DEVICE_SELECT?KB_PROCESS</a></li>
 <li><a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
 <li><a href="#S62">?PR?_KB_MULTIKEY_SETUP?KB_PROCESS</a></li>
-<li><a href="#S151">?PR?_XMEMCLEAR?UTILITIES</a></li>
-<li><a href="#S153">?PR?_XMEMCLEAR_FF?UTILITIES</a></li>
-<li><a href="#S147">?PR?_XMEMCPY?UTILITIES</a></li>
-<li><a href="#S127">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
-<li><a href="#S107">?PR?YC_ADC_CHECK?ADC</a></li>
-<li><a href="#S105">?PR?YC_ADC_INIT?ADC</a></li>
+<li><a href="#S148">?PR?_XMEMCLEAR?UTILITIES</a></li>
+<li><a href="#S150">?PR?_XMEMCLEAR_FF?UTILITIES</a></li>
+<li><a href="#S144">?PR?_XMEMCPY?UTILITIES</a></li>
+<li><a href="#S124">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+<li><a href="#S104">?PR?YC_ADC_CHECK?ADC</a></li>
+<li><a href="#S103">?PR?YC_ADC_INIT?ADC</a></li>
 </ul>
 
 </body>
Index: output/FW.MAP
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/FW.MAP	(revision 114)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/FW.MAP	(working copy)
@@ -1,4 +1,4 @@
-LX51 LINKER/LOCATER V4.41                                                               06/01/2020  18:34:34  PAGE 1
+LX51 LINKER/LOCATER V4.41                                                               06/12/2020  12:11:06  PAGE 1
 
 
 LX51 LINKER/LOCATER V4.41, INVOKED BY:
@@ -82,7 +82,7 @@
 BASE        START       END         USED      MEMORY CLASS
 ==========================================================
 X:000000H   X:004DD0H   X:004F40H   000325H   XDATA
-C:000000H   C:000000H   C:00FFFFH   00237BH   CODE
+C:000000H   C:000000H   C:00FFFFH   002292H   CODE
 I:000000H   I:000010H   I:00007FH   000008H   DATA
 I:000000H   I:000080H   I:0000CFH   000001H   IDATA
 C:000000H   C:000000H   C:00FFFFH   0000B6H   CONST
@@ -123,94 +123,92 @@
 00076BH   0007FCH   000092H   BYTE   UNIT     CODE           ?PR?_IPCTX?IPC
 0007FDH   00083CH   000040H   BYTE   UNIT     CODE           ?PR?_YC_STORE_RECORD_LIST?BLUETOOTH
 00083DH   00087FH   000043H   BYTE   UNIT     CODE           ?PR?_XMEMCPY?UTILITIES
-000880H   000A42H   0001C3H   BYTE   UNIT     CODE           ?PR?_KB_MOTION_KEYSCAN?KB_PROCESS
-000A43H   000A73H   000031H   BYTE   UNIT     CODE           ?PR?_IPC_TXHIDDATA?KB_PROCESS
-000A74H   000BCEH   00015BH   BYTE   UNIT     CODE           ?PR?_KB_MULTIKEY_SETUP?KB_PROCESS
-000BCFH   000BE9H   00001BH   BYTE   UNIT     CODE           ?PR?_KB_SET_MULTIKEY?KB_PROCESS
-000BEAH   000C15H   00002CH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR?UTILITIES
-000C16H   000C9BH   000086H   BYTE   UNIT     CODE           ?PR?SYSTEM_CLEAR_MEM?SYS
-000C9CH   000CD5H   00003AH   BYTE   UNIT     CODE           ?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS
-000CD6H   000D2BH   000056H   BYTE   UNIT     CODE           ?PR?KB_NEED_KEYSCAN?KB_PROCESS
-000D2CH   000D5EH   000033H   BYTE   UNIT     CODE           ?PR?KB_MOTION?KB_PROCESS
-000D5FH   000D64H   000006H   BYTE   UNIT     CODE           ?PR?_IPC_TXBLEDATA?IPC
-000D65H   000D8AH   000026H   BYTE   UNIT     CODE           ?PR?_IPC_TXDATA?IPC
-000D8BH   000DA7H   00001DH   BYTE   UNIT     CODE           ?PR?SYSTEM_SOFTWARE_INIT?SYS
-000DA8H   000DEDH   000046H   BYTE   UNIT     CODE           ?PR?YC_SYSTEM_MAIN?SYS
-000DEEH   000E98H   0000ABH   BYTE   UNIT     CODE           ?PR?KS_UNISTALL?KEYSCAN
-000E99H   000EACH   000014H   BYTE   UNIT     CODE           ?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
-000EADH   000F38H   00008CH   BYTE   UNIT     CODE           ?PR?_GPIO_SETWAKEUP?GPIO
-000F39H   000F43H   00000BH   BYTE   UNIT     CODE           ?PR?IPC_WAITLPM?IPC
-000F44H   000F5BH   000018H   BYTE   UNIT     CODE           ?PR?_DELAY1MS?UTILITIES
-000F5CH   000FA2H   000047H   BYTE   UNIT     CODE           ?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH
-000FA3H   000FB2H   000010H   BYTE   UNIT     CODE           ?PR?LED_ALL_SHUTDOWN?LED
-000FB3H   000FCFH   00001DH   BYTE   UNIT     CODE           ?PR?_GPIO_SETOUTPUT?GPIO
-000FD0H   000FE1H   000012H   BYTE   UNIT     CODE           ?PR?_GPIO_SETOUT?GPIO
-000FE2H   000FE3H   000002H   BYTE   UNIT     CODE           ?PR?MAIN?RAM
-000FE4H   000FE8H   000005H   BYTE   UNIT     CODE           ?PR?SYSTEM_HARDWARE_INIT?SYS
-000FE9H   000FEEH   000006H   BYTE   UNIT     CODE           ?PR?LED_DEVICE_POWERON?LED
-000FEFH   000FFBH   00000DH   BYTE   UNIT     CODE           ?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH
-000FFCH   00104AH   00004FH   BYTE   UNIT     CODE           ?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH
-00104BH   0010C7H   00007DH   BYTE   UNIT     CODE           ?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS
-0010C8H   0010E4H   00001DH   BYTE   UNIT     CODE           ?PR?YC_PAIRING_TIMEROUT_500MS?SYS
-0010E5H   0010EEH   00000AH   BYTE   UNIT     CODE           ?PR?SYSTEM_LONG_SLEEP?SYS
-0010EFH   0011F1H   000103H   BYTE   UNIT     CODE           ?PR?_KB_CB_EVENT?SYS
-0011F2H   0012A1H   0000B0H   BYTE   UNIT     CODE           ?PR?_IIC_READ?IIC
-0012A2H   0012ABH   00000AH   BYTE   UNIT     CODE           ?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH
-0012ACH   0012B5H   00000AH   BYTE   UNIT     CODE           ?PR?YC_START_RECONNECT?BLUETOOTH
-0012B6H   0012C0H   00000BH   BYTE   UNIT     CODE           ?PR?KS_INITIALIZE?KEYSCAN
-0012C1H   0012DEH   00001EH   BYTE   UNIT     CODE           ?PR?KSCOLINITIALIZE?KEYSCAN
-0012DFH   0012FBH   00001DH   BYTE   UNIT     CODE           ?PR?KSRAWINITIALIZE?KEYSCAN
-0012FCH   001319H   00001EH   BYTE   UNIT     CODE           ?PR?_GPIO_SETINPUT?GPIO
-00131AH   00132AH   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETPU?GPIO
-00132BH   00133BH   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETPD?GPIO
-00133CH   00134CH   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETOE?GPIO
-00134DH   0013ADH   000061H   BYTE   UNIT     CODE           ?PR?_GPIOSETBIT?GPIO
-0013AEH   0013D8H   00002BH   BYTE   UNIT     CODE           ?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH
-0013D9H   001410H   000038H   BYTE   UNIT     CODE           ?PR?YC_CONNECT_TIMEOUT_500MS?SYS
-001411H   001428H   000018H   BYTE   UNIT     CODE           ?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH
-001429H   001442H   00001AH   BYTE   UNIT     CODE           ?PR?KB_CB_TIMER500MS?SYS
-001443H   0014C8H   000086H   BYTE   UNIT     CODE           ?PR?KB_BUTTON_PRESS_TIMER500MS?SYS
-0014C9H   0014DAH   000012H   BYTE   UNIT     CODE           ?PR?YC_ADC_CHECK_TIMER500MS?ADC
-0014DBH   00150CH   000032H   BYTE   UNIT     CODE           ?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS
-00150DH   001559H   00004DH   BYTE   UNIT     CODE           ?PR?LED_TIMER500MS?SYS
-00155AH   001575H   00001CH   BYTE   UNIT     CODE           ?PR?_GPIO_FLIPOUTBIT?GPIO
-001576H   00157CH   000007H   BYTE   UNIT     CODE           ?PR?LED_DEVICE_POWEROFF?LED
-00157DH   001584H   000008H   BYTE   UNIT     CODE           ?PR?IICWAITDONE?IIC
-001585H   00161EH   00009AH   BYTE   UNIT     CODE           ?PR?_IIC_WRITE?IIC
-00161FH   0016CCH   0000AEH   BYTE   UNIT     CODE           ?PR?_IIC_WRITEBLOCK?IIC
-0016CDH   0016DEH   000012H   BYTE   UNIT     CODE           ?PR?YC_CANCEL_RECONNECT?BLUETOOTH
-0016DFH   00171DH   00003FH   BYTE   UNIT     CODE           ?PR?_GPIOGETBIT?GPIO
-00171EH   001725H   000008H   BYTE   UNIT     CODE           ?PR?_GPIO_GETINPUTSTATUS?GPIO
-001726H   001769H   000044H   BYTE   UNIT     CODE           ?PR?_DMEMCPY?UTILITIES
-00176AH   0017D3H   00006AH   BYTE   UNIT     CODE           ?PR?KB_CB_TIMER100MS?SYS
-0017D4H   001833H   000060H   BYTE   UNIT     CODE           ?PR?_KB_DEVICE_SELECT?KB_PROCESS
-001834H   001853H   000020H   BYTE   UNIT     CODE           ?PR?_KEY_REPLACE?KB_PROCESS
-001854H   0019B1H   00015EH   BYTE   UNIT     CODE           ?PR?_KEY_FN_FUNCTION?KB_PROCESS
-0019B2H   001BADH   0001FCH   BYTE   UNIT     CODE           ?PR?KS_GETCURRENTEVT?KEYSCAN
-001BAEH   001BBBH   00000EH   BYTE   UNIT     CODE           ?PR?_BIT_COUNT?KEYSCAN
-001BBCH   001BEBH   000030H   BYTE   UNIT     CODE           ?PR?_ARRAY_IS_EMPTY?KEYSCAN
-001BECH   001C35H   00004AH   BYTE   UNIT     CODE           ?PR?_COMPARE_STR?UTILITIES
-001C36H   001C8BH   000056H   BYTE   UNIT     CODE           ?PR?_KEYIN?KEYSCAN
-001C8CH   001D35H   0000AAH   BYTE   UNIT     CODE           ?PR?_KEYOUT?KEYSCAN
-001D36H   001E95H   000160H   BYTE   UNIT     CODE           ?PR?KS_SCANMATRIX?KEYSCAN
-001E96H   001F29H   000094H   BYTE   UNIT     CODE           ?PR?LED_HANDLE?LED
-001F2AH   001F32H   000009H   BYTE   UNIT     CODE           ?PR?SYSTEM_HARDWARE_RESET?SYS
-001F33H   001F34H   000002H   BYTE   UNIT     CODE           ?PR?SYSTEM_RESET_CONNECT?SYS
-001F35H   001F44H   000010H   BYTE   UNIT     CODE           ?PR?_KB_CB_HID?SYS
-001F45H   001F4AH   000006H   BYTE   UNIT     CODE           ?PR?KB_CB_INIT?SYS
-001F4BH   001F57H   00000DH   BYTE   UNIT     CODE           ?PR?_IPC_INITIALIZE?IPC
-001F58H   0020CCH   000175H   BYTE   UNIT     CODE           ?PR?YC_ADC_INIT?ADC
-0020CDH   002182H   0000B6H   BYTE   UNIT     CODE           ?PR?YC_ADC_CHECK?ADC
-002183H   0021DCH   00005AH   BYTE   UNIT     CODE           ?PR?_BUFSIZE?IPC
-0021DDH   00222CH   000050H   BYTE   UNIT     CODE           ?PR?_IPCRX?IPC
-00222DH   00235FH   000133H   BYTE   UNIT     CODE           ?PR?IPC_DEALSINGLESTEP?IPC
-002360H   002365H   000006H   BYTE   UNIT     CODE           ?PR?IPC_GETBBDISCONNECTREASON?IPC
-002366H   002371H   00000CH   BYTE   UNIT     CODE           ?PR?IPC_ABANDONLPM?IPC
-002372H   002389H   000018H   BYTE   UNIT     CODE           ?PR?IPC_ISTXBUFFEMPTY?IPC
-00238AH   002390H   000007H   BYTE   UNIT     CODE           ?PR?YC_ICE_BREAK?UTILITIES
-002391H   0023BDH   00002DH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR_FF?UTILITIES
-0023BEH   0023FCH   00003FH   BYTE   UNIT     CODE           ?PR?_GPIO_CLEARWAKEUP?GPIO
-0023FDH   002430H   000034H   BYTE   UNIT     CODE           ?PR?GPIO_FILLPD?GPIO
+000880H   000A2AH   0001ABH   BYTE   UNIT     CODE           ?PR?_KB_MOTION_KEYSCAN?KB_PROCESS
+000A2BH   000BBCH   000192H   BYTE   UNIT     CODE           ?PR?_KB_MULTIKEY_SETUP?KB_PROCESS
+000BBDH   000BD7H   00001BH   BYTE   UNIT     CODE           ?PR?_KB_SET_MULTIKEY?KB_PROCESS
+000BD8H   000C03H   00002CH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR?UTILITIES
+000C04H   000C89H   000086H   BYTE   UNIT     CODE           ?PR?SYSTEM_CLEAR_MEM?SYS
+000C8AH   000CBBH   000032H   BYTE   UNIT     CODE           ?PR?_IPC_TXHIDDATA?KB_PROCESS
+000CBCH   000CF5H   00003AH   BYTE   UNIT     CODE           ?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS
+000CF6H   000D6BH   000076H   BYTE   UNIT     CODE           ?PR?KB_NEED_KEYSCAN?KB_PROCESS
+000D6CH   000D9EH   000033H   BYTE   UNIT     CODE           ?PR?KB_MOTION?KB_PROCESS
+000D9FH   000DA4H   000006H   BYTE   UNIT     CODE           ?PR?_IPC_TXBLEDATA?IPC
+000DA5H   000DCAH   000026H   BYTE   UNIT     CODE           ?PR?_IPC_TXDATA?IPC
+000DCBH   000DE7H   00001DH   BYTE   UNIT     CODE           ?PR?SYSTEM_SOFTWARE_INIT?SYS
+000DE8H   000E2EH   000047H   BYTE   UNIT     CODE           ?PR?YC_SYSTEM_MAIN?SYS
+000E2FH   000ED9H   0000ABH   BYTE   UNIT     CODE           ?PR?KS_UNISTALL?KEYSCAN
+000EDAH   000EECH   000013H   BYTE   UNIT     CODE           ?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+000EEDH   000F78H   00008CH   BYTE   UNIT     CODE           ?PR?_GPIO_SETWAKEUP?GPIO
+000F79H   000F83H   00000BH   BYTE   UNIT     CODE           ?PR?IPC_WAITLPM?IPC
+000F84H   000F9BH   000018H   BYTE   UNIT     CODE           ?PR?_DELAY1MS?UTILITIES
+000F9CH   000FABH   000010H   BYTE   UNIT     CODE           ?PR?LED_ALL_SHUTDOWN?LED
+000FACH   000FC9H   00001EH   BYTE   UNIT     CODE           ?PR?_GPIO_SETOUTPUT?GPIO
+000FCAH   000FCFH   000006H   BYTE   UNIT     CODE           ?PR?_GPIO_GETINPUTSTATUS?GPIO
+000FD0H   00100EH   00003FH   BYTE   UNIT     CODE           ?PR?_GPIOGETBIT?GPIO
+00100FH   00101BH   00000DH   BYTE   UNIT     CODE           ?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH
+00101CH   001053H   000038H   BYTE   UNIT     CODE           ?PR?LED_TIMER500MS?SYS
+001054H   001064H   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETOUT?GPIO
+001065H   0010E9H   000085H   BYTE   UNIT     CODE           ?PR?LED_HANDLE?LED
+0010EAH   001168H   00007FH   BYTE   UNIT     CODE           ?PR?KB_CB_TIMER100MS?SYS
+001169H   0011AFH   000047H   BYTE   UNIT     CODE           ?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH
+0011B0H   00125DH   0000AEH   BYTE   UNIT     CODE           ?PR?_IIC_WRITEBLOCK?IIC
+00125EH   001267H   00000AH   BYTE   UNIT     CODE           ?PR?SYSTEM_LONG_SLEEP?SYS
+001268H   00136DH   000106H   BYTE   UNIT     CODE           ?PR?_KB_CB_EVENT?SYS
+00136EH   00141DH   0000B0H   BYTE   UNIT     CODE           ?PR?_IIC_READ?IIC
+00141EH   001422H   000005H   BYTE   UNIT     CODE           ?PR?SYSTEM_HARDWARE_INIT?SYS
+001423H   00142DH   00000BH   BYTE   UNIT     CODE           ?PR?KS_INITIALIZE?KEYSCAN
+00142EH   00144BH   00001EH   BYTE   UNIT     CODE           ?PR?KSCOLINITIALIZE?KEYSCAN
+00144CH   001453H   000008H   BYTE   UNIT     CODE           ?PR?YC_START_RECONNECT?BLUETOOTH
+001454H   0014D1H   00007EH   BYTE   UNIT     CODE           ?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS
+0014D2H   0014DBH   00000AH   BYTE   UNIT     CODE           ?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH
+0014DCH   0014F7H   00001CH   BYTE   UNIT     CODE           ?PR?_GPIO_FLIPOUTBIT?GPIO
+0014F8H   001514H   00001DH   BYTE   UNIT     CODE           ?PR?KSRAWINITIALIZE?KEYSCAN
+001515H   001532H   00001EH   BYTE   UNIT     CODE           ?PR?_GPIO_SETINPUT?GPIO
+001533H   001543H   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETPU?GPIO
+001544H   001554H   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETPD?GPIO
+001555H   0015B5H   000061H   BYTE   UNIT     CODE           ?PR?_GPIOSETBIT?GPIO
+0015B6H   0015C6H   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETOE?GPIO
+0015C7H   0015E3H   00001DH   BYTE   UNIT     CODE           ?PR?YC_PAIRING_TIMEROUT_500MS?SYS
+0015E4H   0015FDH   00001AH   BYTE   UNIT     CODE           ?PR?KB_CB_TIMER500MS?SYS
+0015FEH   001635H   000038H   BYTE   UNIT     CODE           ?PR?YC_CONNECT_TIMEOUT_500MS?SYS
+001636H   0016BBH   000086H   BYTE   UNIT     CODE           ?PR?KB_BUTTON_PRESS_TIMER500MS?SYS
+0016BCH   0016CDH   000012H   BYTE   UNIT     CODE           ?PR?YC_ADC_CHECK_TIMER500MS?ADC
+0016CEH   0016E5H   000018H   BYTE   UNIT     CODE           ?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH
+0016E6H   001710H   00002BH   BYTE   UNIT     CODE           ?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH
+001711H   001742H   000032H   BYTE   UNIT     CODE           ?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS
+001743H   00174AH   000008H   BYTE   UNIT     CODE           ?PR?IICWAITDONE?IIC
+00174BH   0017E5H   00009BH   BYTE   UNIT     CODE           ?PR?_IIC_WRITE?IIC
+0017E6H   001835H   000050H   BYTE   UNIT     CODE           ?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH
+001836H   001847H   000012H   BYTE   UNIT     CODE           ?PR?YC_CANCEL_RECONNECT?BLUETOOTH
+001848H   0018A7H   000060H   BYTE   UNIT     CODE           ?PR?_KB_DEVICE_SELECT?KB_PROCESS
+0018A8H   0018CCH   000025H   BYTE   UNIT     CODE           ?PR?_KB_COMBINATION_KEY_PRESS?KB_PROCESS
+0018CDH   0019A0H   0000D4H   BYTE   UNIT     CODE           ?PR?_KEY_FN_FUNCTION?KB_PROCESS
+0019A1H   001B9CH   0001FCH   BYTE   UNIT     CODE           ?PR?KS_GETCURRENTEVT?KEYSCAN
+001B9DH   001BAAH   00000EH   BYTE   UNIT     CODE           ?PR?_BIT_COUNT?KEYSCAN
+001BABH   001BDAH   000030H   BYTE   UNIT     CODE           ?PR?_ARRAY_IS_EMPTY?KEYSCAN
+001BDBH   001C24H   00004AH   BYTE   UNIT     CODE           ?PR?_COMPARE_STR?UTILITIES
+001C25H   001C7CH   000058H   BYTE   UNIT     CODE           ?PR?_KEYIN?KEYSCAN
+001C7DH   001D27H   0000ABH   BYTE   UNIT     CODE           ?PR?_KEYOUT?KEYSCAN
+001D28H   001E87H   000160H   BYTE   UNIT     CODE           ?PR?KS_SCANMATRIX?KEYSCAN
+001E88H   001E90H   000009H   BYTE   UNIT     CODE           ?PR?SYSTEM_HARDWARE_RESET?SYS
+001E91H   001E92H   000002H   BYTE   UNIT     CODE           ?PR?SYSTEM_RESET_CONNECT?SYS
+001E93H   001EA2H   000010H   BYTE   UNIT     CODE           ?PR?_KB_CB_HID?SYS
+001EA3H   001EA8H   000006H   BYTE   UNIT     CODE           ?PR?KB_CB_INIT?SYS
+001EA9H   001EB5H   00000DH   BYTE   UNIT     CODE           ?PR?_IPC_INITIALIZE?IPC
+001EB6H   001F72H   0000BDH   BYTE   UNIT     CODE           ?PR?YC_ADC_INIT?ADC
+001F73H   002052H   0000E0H   BYTE   UNIT     CODE           ?PR?YC_ADC_CHECK?ADC
+002053H   002055H   000003H   BYTE   UNIT     CODE           ?PR?MAIN?RAM
+002056H   0020AFH   00005AH   BYTE   UNIT     CODE           ?PR?_BUFSIZE?IPC
+0020B0H   0020FFH   000050H   BYTE   UNIT     CODE           ?PR?_IPCRX?IPC
+002100H   002232H   000133H   BYTE   UNIT     CODE           ?PR?IPC_DEALSINGLESTEP?IPC
+002233H   002238H   000006H   BYTE   UNIT     CODE           ?PR?IPC_GETBBDISCONNECTREASON?IPC
+002239H   002244H   00000CH   BYTE   UNIT     CODE           ?PR?IPC_ABANDONLPM?IPC
+002245H   00225CH   000018H   BYTE   UNIT     CODE           ?PR?IPC_ISTXBUFFEMPTY?IPC
+00225DH   002263H   000007H   BYTE   UNIT     CODE           ?PR?YC_ICE_BREAK?UTILITIES
+002264H   0022A7H   000044H   BYTE   UNIT     CODE           ?PR?_DMEMCPY?UTILITIES
+0022A8H   0022D4H   00002DH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR_FF?UTILITIES
+0022D5H   002313H   00003FH   BYTE   UNIT     CODE           ?PR?_GPIO_CLEARWAKEUP?GPIO
+002314H   002347H   000034H   BYTE   UNIT     CODE           ?PR?GPIO_FILLPD?GPIO
 
 * * * * * * * * * * *  X D A T A   M E M O R Y  * * * * * * * * * * * * *
 000040H   000045H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?25
@@ -278,8 +276,8 @@
 004CB6H   004CB6H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?15
 004CB7H   004CB7H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?13
 004CB8H   004CBEH   000007H   ---    ---      **GAP**
-004CBFH   004D00H   000042H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?3
-004D01H   004D37H   000037H   ---    ---      **GAP**
+004CBFH   004D01H   000043H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?3
+004D02H   004D37H   000036H   ---    ---      **GAP**
 004D38H   004D38H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?26
 004D39H   004D3CH   000004H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?29
 004D3DH   004D40H   000004H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?14
@@ -323,12 +321,11 @@
 004EB0H   004EB0H   000001H   BYTE   UNIT     XDATA          ?XD?KSRAWINITIALIZE?KEYSCAN
 004EB1H   004EB1H   000001H   BYTE   UNIT     XDATA          ?XD?KSCOLINITIALIZE?KEYSCAN
 004EB2H   004EB2H   000001H   BYTE   UNIT     XDATA          ?XD?KS_UNISTALL?KEYSCAN
-004EB3H   004EB3H   000001H   BYTE   UNIT     XDATA          ?XD?YC_ADC_INIT?ADC
-004EB4H   004EB4H   000001H   BYTE   UNIT     XDATA          ?XD?_IPC_TXDATA?IPC
-004EB5H   004EB5H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIOGETBIT?GPIO
-004EB6H   004EB6H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
-004EB7H   004EB7H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_FLIPOUTBIT?GPIO
-004EB8H   00800FH   003158H   ---    ---      **GAP**
+004EB3H   004EB3H   000001H   BYTE   UNIT     XDATA          ?XD?_IPC_TXDATA?IPC
+004EB4H   004EB4H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIOGETBIT?GPIO
+004EB5H   004EB5H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+004EB6H   004EB6H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_FLIPOUTBIT?GPIO
+004EB7H   00800FH   003159H   ---    ---      **GAP**
 008010H   008010H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?4
 
 
@@ -378,40 +375,40 @@
       00000000H   NUMBER   ---       ?C?XDATASEG
       010005B1H   CODE     ---       ?C_START
       01000000H   CODE     ---       ?C_STARTUP
-      01001BBCH   CODE     ---       _array_is_empty
-      01001BECH   CODE     ---       _compare_str
-      01000F44H   CODE     ---       _Delay1ms
-      01001726H   CODE     ---       _dmemcpy
-      010023BEH   CODE     ---       _GPIO_ClearWakeup
-      0100155AH   CODE     ---       _GPIO_FlipOutBit
-      0100171EH   CODE     ---       _GPIO_GetInputStatus
-      010012FCH   CODE     ---       _GPIO_SetInput
-      0100133CH   CODE     ---       _GPIO_Setoe
-      01000FD0H   CODE     ---       _GPIO_Setout
-      01000FB3H   CODE     ---       _GPIO_SetOutput
-      0100132BH   CODE     ---       _GPIO_SetPd
-      0100131AH   CODE     ---       _GPIO_SetPu
-      01000EADH   CODE     ---       _GPIO_SetWakeup
-      01000E99H   CODE     ---       _GPIO_SetWakeupByCurrentState
-      010011F2H   CODE     ---       _IIC_Read
-      01001585H   CODE     ---       _IIC_write
-      0100161FH   CODE     ---       _IIC_WriteBlock
-      01001F4BH   CODE     ---       _IPC_Initialize
-      01000D5FH   CODE     ---       _IPC_TxBleData
+      01001BABH   CODE     ---       _array_is_empty
+      01001BDBH   CODE     ---       _compare_str
+      01000F84H   CODE     ---       _Delay1ms
+      01002264H   CODE     ---       _dmemcpy
+      010022D5H   CODE     ---       _GPIO_ClearWakeup
+      010014DCH   CODE     ---       _GPIO_FlipOutBit
+      01000FCAH   CODE     ---       _GPIO_GetInputStatus
+      01001515H   CODE     ---       _GPIO_SetInput
+      010015B6H   CODE     ---       _GPIO_Setoe
+      01001054H   CODE     ---       _GPIO_Setout
+      01000FACH   CODE     ---       _GPIO_SetOutput
+      01001544H   CODE     ---       _GPIO_SetPd
+      01001533H   CODE     ---       _GPIO_SetPu
+      01000EEDH   CODE     ---       _GPIO_SetWakeup
+      01000EDAH   CODE     ---       _GPIO_SetWakeupByCurrentState
+      0100136EH   CODE     ---       _IIC_Read
+      0100174BH   CODE     ---       _IIC_write
+      010011B0H   CODE     ---       _IIC_WriteBlock
+      01001EA9H   CODE     ---       _IPC_Initialize
+      01000D9FH   CODE     ---       _IPC_TxBleData
       01000744H   CODE     ---       _IPC_TxControlCmd
-      01000D65H   CODE     ---       _IPC_TxData
-      01000A43H   CODE     ---       _IPC_TxHidData
-      010017D4H   CODE     ---       _kb_device_select
+      01000DA5H   CODE     ---       _IPC_TxData
+      01000C8AH   CODE     ---       _IPC_TxHidData
+      010018A8H   CODE     ---       _kb_combination_key_press
+      01001848H   CODE     ---       _kb_device_select
       01000880H   CODE     ---       _kb_motion_keyscan
-      01000A74H   CODE     ---       _kb_multikey_setup
-      01000C9CH   CODE     ---       _kb_send_combination_key
-      01000BCFH   CODE     ---       _kb_set_multikey
-      01001854H   CODE     ---       _key_fn_function
-      01001834H   CODE     ---       _key_replace
-      01000BEAH   CODE     ---       _xmemclear
-      01002391H   CODE     ---       _xmemclear_ff
+      01000A2BH   CODE     ---       _kb_multikey_setup
+      01000CBCH   CODE     ---       _kb_send_combination_key
+      01000BBDH   CODE     ---       _kb_set_multikey
+      010018CDH   CODE     ---       _key_fn_function
+      01000BD8H   CODE     ---       _xmemclear
+      010022A8H   CODE     ---       _xmemclear_ff
       0100083DH   CODE     ---       _xmemcpy
-      0100104BH   CODE     ---       _YC_key_action_handle
+      01001454H   CODE     ---       _YC_key_action_handle
       010007FDH   CODE     ---       _YC_store_record_list
       02004DE2H   XDATA    BYTE      action_timeout
       02004DE4H   XDATA    ---       bd_key_record_list
@@ -429,24 +426,24 @@
       02004DD3H   XDATA    BYTE      fn_tx_flag
       02004CBFH   XDATA    ---       g_variable
       02004DD0H   XDATA    BYTE      get_24g_led_send
-      010023FDH   CODE     ---       GPIO_fillpd
+      01002314H   CODE     ---       GPIO_fillpd
       02004800H   XDATA    ---       hidBuff
       02004DDAH   XDATA    BYTE      iOS_rec_pinCode
-      01002366H   CODE     ---       IPC_AbandonLpm
-      0100222DH   CODE     ---       IPC_DealSingleStep
-      01002360H   CODE     ---       IPC_GetBBDIsconnectReason
-      01002372H   CODE     ---       IPC_IsTxBuffEmpty
-      01000F39H   CODE     ---       IPC_WaitLpm
+      01002239H   CODE     ---       IPC_AbandonLpm
+      01002100H   CODE     ---       IPC_DealSingleStep
+      01002233H   CODE     ---       IPC_GetBBDIsconnectReason
+      01002245H   CODE     ---       IPC_IsTxBuffEmpty
+      01000F79H   CODE     ---       IPC_WaitLpm
       02000550H   XDATA    ---       ipcPin
       0200054FH   XDATA    BYTE      ipcPinlen
       02000C4BH   XDATA    ---       ipcReadBuff
       02000BE7H   XDATA    ---       ipcSendBuff
-      01001443H   CODE     ---       kb_button_press_timer500ms
-      01000CD6H   CODE     ---       kb_need_keyscan
-      010019B2H   CODE     ---       KS_GetCurrentEvt
-      010012B6H   CODE     ---       KS_Initialize
-      01001D36H   CODE     ---       KS_ScanMatrix
-      01000DEEH   CODE     ---       KS_Unistall
+      01001636H   CODE     ---       kb_button_press_timer500ms
+      01000CF6H   CODE     ---       kb_need_keyscan
+      010019A1H   CODE     ---       KS_GetCurrentEvt
+      01001423H   CODE     ---       KS_Initialize
+      01001D28H   CODE     ---       KS_ScanMatrix
+      01000E2FH   CODE     ---       KS_Unistall
       02004213H   XDATA    BYTE      kscurrmult
       02004E4EH   XDATA    ---       ksEvtPool
       01000621H   CONST    ---       ksMap
@@ -455,11 +452,9 @@
       02004D93H   XDATA    ---       ksSelMapOld
       02004D39H   XDATA    DWORD     le_pin_code
       02004DD2H   XDATA    BYTE      le_pin_code_len
-      01000FA3H   CODE     ---       LED_all_shutdown
-      01001576H   CODE     ---       LED_device_poweroff
-      01000FE9H   CODE     ---       LED_device_poweron
-      01001E96H   CODE     ---       LED_handle
-      0100150DH   CODE     ---       LED_timer500ms
+      01000F9CH   CODE     ---       LED_all_shutdown
+      01001065H   CODE     ---       LED_handle
+      0100101CH   CODE     ---       LED_timer500ms
       02004DD5H   XDATA    BYTE      long_press_flag
       02000B7FH   XDATA    BYTE      lpm_flag
       02004C00H   XDATA    ---       m_24g_addr
@@ -486,7 +481,7 @@
       02008010H   XDATA    BYTE      m_reset_reg
       020047F4H   XDATA    WORD      m_ui_state_map
       02000B81H   XDATA    BYTE      m_wakup_from_power_flag
-      01000FE2H   CODE     ---       main
+      01002053H   CODE     ---       main
       02004E01H   XDATA    BYTE      mult_key_status
       02004DE3H   XDATA    BYTE      mult_key_value
       02004E02H   XDATA    ---       multikey
@@ -497,28 +492,28 @@
       02004DD6H   XDATA    BYTE      repeat_send_24g
       02004DD8H   XDATA    BYTE      standard_key_release_flag
       02004DD4H   XDATA    BYTE      switch_role_timer
-      010010E5H   CODE     ---       System_long_sleep
-      01001F33H   CODE     ---       System_Reset_Connect
-      01000D8BH   CODE     ---       System_Software_init
-      010020CDH   CODE     ---       YC_adc_check
-      010014C9H   CODE     ---       YC_adc_check_timer500ms
-      01001F58H   CODE     ---       YC_adc_init
-      010016CDH   CODE     ---       YC_cancel_reconnect
-      01000FEFH   CODE     ---       YC_check_is_connected
-      01000FFCH   CODE     ---       YC_check_need_reconnected
-      010012A2H   CODE     ---       YC_clear_reconnect_flag
-      010013D9H   CODE     ---       YC_connect_timeout_500ms
-      01001411H   CODE     ---       YC_disconnect_all_link
-      010013AEH   CODE     ---       YC_get_ble_ramdon_lap
+      0100125EH   CODE     ---       System_long_sleep
+      01001E91H   CODE     ---       System_Reset_Connect
+      01000DCBH   CODE     ---       System_Software_init
+      01001F73H   CODE     ---       YC_adc_check
+      010016BCH   CODE     ---       YC_adc_check_timer500ms
+      01001EB6H   CODE     ---       YC_adc_init
+      01001836H   CODE     ---       YC_cancel_reconnect
+      0100100FH   CODE     ---       YC_check_is_connected
+      010017E6H   CODE     ---       YC_check_need_reconnected
+      010014D2H   CODE     ---       YC_clear_reconnect_flag
+      010015FEH   CODE     ---       YC_connect_timeout_500ms
+      010016CEH   CODE     ---       YC_disconnect_all_link
+      010016E6H   CODE     ---       YC_get_ble_ramdon_lap
       020000A7H   XDATA    ---       YC_GPIOWakeupH
       020000A3H   XDATA    ---       YC_GPIOWakeupL
-      0100238AH   CODE     ---       YC_Ice_break
+      0100225DH   CODE     ---       YC_Ice_break
       010006C2H   CODE     ---       YC_load_record_list
-      010010C8H   CODE     ---       YC_pairing_timerout_500ms
-      010012ACH   CODE     ---       YC_start_reconnect
-      01000DA8H   CODE     ---       YC_System_Main
-      01000F5CH   CODE     ---       YC_update_eeprom_data
-      010014DBH   CODE     ---       YC_wait_disconnect_timer500ms
+      010015C7H   CODE     ---       YC_pairing_timerout_500ms
+      0100144CH   CODE     ---       YC_start_reconnect
+      01000DE8H   CODE     ---       YC_System_Main
+      01001169H   CODE     ---       YC_update_eeprom_data
+      01001711H   CODE     ---       YC_wait_disconnect_timer500ms
 
 
 
@@ -527,14 +522,14 @@
       VALUE       REP       CLASS    TYPE      SYMBOL NAME
       ====================================================
       ---         MODULE    ---      ---       BLUETOOTH
-      01000F5CH   PUBLIC    CODE     ---       YC_update_eeprom_data
-      010013AEH   PUBLIC    CODE     ---       YC_get_ble_ramdon_lap
-      010012ACH   PUBLIC    CODE     ---       YC_start_reconnect
-      01001411H   PUBLIC    CODE     ---       YC_disconnect_all_link
-      010012A2H   PUBLIC    CODE     ---       YC_clear_reconnect_flag
-      010016CDH   PUBLIC    CODE     ---       YC_cancel_reconnect
-      01000FFCH   PUBLIC    CODE     ---       YC_check_need_reconnected
-      01000FEFH   PUBLIC    CODE     ---       YC_check_is_connected
+      01001169H   PUBLIC    CODE     ---       YC_update_eeprom_data
+      010016E6H   PUBLIC    CODE     ---       YC_get_ble_ramdon_lap
+      0100144CH   PUBLIC    CODE     ---       YC_start_reconnect
+      010016CEH   PUBLIC    CODE     ---       YC_disconnect_all_link
+      010014D2H   PUBLIC    CODE     ---       YC_clear_reconnect_flag
+      01001836H   PUBLIC    CODE     ---       YC_cancel_reconnect
+      010017E6H   PUBLIC    CODE     ---       YC_check_need_reconnected
+      0100100FH   PUBLIC    CODE     ---       YC_check_is_connected
       010007FDH   PUBLIC    CODE     ---       _YC_store_record_list
       010006C2H   PUBLIC    CODE     ---       YC_load_record_list
 
@@ -580,112 +575,112 @@
       0100083CH   LINE      ---      ---       #44
       ---         BLOCKEND  ---      ---       LVL=0
 
-      01000FEFH   BLOCK     CODE     ---       LVL=0
-      01000FEFH   LINE      ---      ---       #47
-      01000FEFH   LINE      ---      ---       #48
-      01000FEFH   LINE      ---      ---       #49
-      01000FF6H   LINE      ---      ---       #50
-      01000FF6H   LINE      ---      ---       #51
-      01000FF9H   LINE      ---      ---       #52
-      01000FF9H   LINE      ---      ---       #53
-      01000FFBH   LINE      ---      ---       #54
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000FFCH   BLOCK     CODE     ---       LVL=0
-      01000FFCH   LINE      ---      ---       #56
-      01000FFCH   LINE      ---      ---       #57
-      01000FFCH   BLOCK     CODE     NEAR LAB  LVL=1
-      01000FFCH   LINE      ---      ---       #58
-      01001001H   LINE      ---      ---       #59
-      01001008H   LINE      ---      ---       #60
-      0100100EH   LINE      ---      ---       #61
-      01001015H   LINE      ---      ---       #62
-      0100101BH   LINE      ---      ---       #64
-      01001021H   LINE      ---      ---       #65
-      01001021H   LINE      ---      ---       #66
-      01001027H   LINE      ---      ---       #67
-      01001027H   LINE      ---      ---       #68
-      0100102AH   LINE      ---      ---       #69
-      01001035H   LINE      ---      ---       #71
-      01001035H   LINE      ---      ---       #72
-      01001039H   LINE      ---      ---       #73
-      01001039H   LINE      ---      ---       #74
-      01001039H   LINE      ---      ---       #75
-      0100103BH   LINE      ---      ---       #77
-      0100103BH   LINE      ---      ---       #78
-      01001040H   LINE      ---      ---       #79
-      01001045H   LINE      ---      ---       #80
-      01001045H   LINE      ---      ---       #81
-      0100104AH   LINE      ---      ---       #82
+      0100100FH   BLOCK     CODE     ---       LVL=0
+      0100100FH   LINE      ---      ---       #47
+      0100100FH   LINE      ---      ---       #48
+      0100100FH   LINE      ---      ---       #49
+      01001016H   LINE      ---      ---       #50
+      01001016H   LINE      ---      ---       #51
+      01001019H   LINE      ---      ---       #52
+      01001019H   LINE      ---      ---       #53
+      0100101BH   LINE      ---      ---       #54
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010017E6H   BLOCK     CODE     ---       LVL=0
+      010017E6H   LINE      ---      ---       #56
+      010017E6H   LINE      ---      ---       #57
+      010017E6H   BLOCK     CODE     NEAR LAB  LVL=1
+      010017E6H   LINE      ---      ---       #58
+      010017EBH   LINE      ---      ---       #59
+      010017F2H   LINE      ---      ---       #60
+      010017F8H   LINE      ---      ---       #61
+      010017FFH   LINE      ---      ---       #62
+      01001805H   LINE      ---      ---       #64
+      0100180BH   LINE      ---      ---       #65
+      0100180BH   LINE      ---      ---       #66
+      01001811H   LINE      ---      ---       #67
+      01001811H   LINE      ---      ---       #68
+      01001814H   LINE      ---      ---       #69
+      0100181FH   LINE      ---      ---       #71
+      0100181FH   LINE      ---      ---       #72
+      01001824H   LINE      ---      ---       #73
+      01001824H   LINE      ---      ---       #74
+      01001824H   LINE      ---      ---       #75
+      01001826H   LINE      ---      ---       #77
+      01001826H   LINE      ---      ---       #78
+      0100182BH   LINE      ---      ---       #79
+      01001830H   LINE      ---      ---       #80
+      01001830H   LINE      ---      ---       #81
+      01001835H   LINE      ---      ---       #82
       02004EADH   SYMBOL    XDATA    VOID      return_val
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010016CDH   BLOCK     CODE     ---       LVL=0
-      010016CDH   LINE      ---      ---       #85
-      010016CDH   LINE      ---      ---       #86
-      010016CDH   LINE      ---      ---       #87
-      010016D4H   LINE      ---      ---       #88
-      010016D4H   LINE      ---      ---       #90
-      010016D9H   LINE      ---      ---       #91
-      010016DCH   LINE      ---      ---       #92
-      010016DCH   LINE      ---      ---       #93
-      010016DEH   LINE      ---      ---       #94
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      010012A2H   BLOCK     CODE     ---       LVL=0
-      010012A2H   LINE      ---      ---       #97
-      010012A2H   LINE      ---      ---       #98
-      010012A2H   LINE      ---      ---       #99
-      010012A7H   LINE      ---      ---       #100
-      010012ABH   LINE      ---      ---       #101
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01001411H   BLOCK     CODE     ---       LVL=0
-      01001411H   LINE      ---      ---       #104
-      01001411H   LINE      ---      ---       #105
-      01001411H   LINE      ---      ---       #106
-      0100141EH   LINE      ---      ---       #108
-      0100141EH   LINE      ---      ---       #109
-      01001423H   LINE      ---      ---       #110
-      01001426H   LINE      ---      ---       #111
-      01001426H   LINE      ---      ---       #112
-      01001428H   LINE      ---      ---       #113
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      010012ACH   BLOCK     CODE     ---       LVL=0
-      010012ACH   LINE      ---      ---       #116
-      010012ACH   LINE      ---      ---       #117
-      010012ACH   LINE      ---      ---       #118
-      010012B2H   LINE      ---      ---       #119
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      010013AEH   BLOCK     CODE     ---       LVL=0
-      010013AEH   LINE      ---      ---       #123
-      010013AEH   LINE      ---      ---       #124
-      010013AEH   LINE      ---      ---       #125
-      010013BEH   LINE      ---      ---       #126
-      010013C4H   LINE      ---      ---       #127
-      010013C8H   LINE      ---      ---       #128
-      010013D0H   LINE      ---      ---       #129
-      010013D8H   LINE      ---      ---       #130
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000F5CH   BLOCK     CODE     ---       LVL=0
-      01000F5CH   LINE      ---      ---       #134
-      01000F5CH   LINE      ---      ---       #135
-      01000F5CH   LINE      ---      ---       #136
-      01000F63H   LINE      ---      ---       #137
-      01000F63H   LINE      ---      ---       #138
-      01000F67H   LINE      ---      ---       #139
-      01000F6BH   LINE      ---      ---       #140
-      01000F71H   LINE      ---      ---       #141
-      01000F82H   LINE      ---      ---       #142
-      01000F93H   LINE      ---      ---       #143
-      01000F99H   LINE      ---      ---       #144
-      01000F9DH   LINE      ---      ---       #145
-      01000FA2H   LINE      ---      ---       #146
-      01000FA2H   LINE      ---      ---       #147
+      01001836H   BLOCK     CODE     ---       LVL=0
+      01001836H   LINE      ---      ---       #85
+      01001836H   LINE      ---      ---       #86
+      01001836H   LINE      ---      ---       #87
+      0100183DH   LINE      ---      ---       #88
+      0100183DH   LINE      ---      ---       #90
+      01001842H   LINE      ---      ---       #91
+      01001845H   LINE      ---      ---       #92
+      01001845H   LINE      ---      ---       #93
+      01001847H   LINE      ---      ---       #94
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010014D2H   BLOCK     CODE     ---       LVL=0
+      010014D2H   LINE      ---      ---       #97
+      010014D2H   LINE      ---      ---       #98
+      010014D2H   LINE      ---      ---       #99
+      010014D7H   LINE      ---      ---       #100
+      010014DBH   LINE      ---      ---       #101
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010016CEH   BLOCK     CODE     ---       LVL=0
+      010016CEH   LINE      ---      ---       #104
+      010016CEH   LINE      ---      ---       #105
+      010016CEH   LINE      ---      ---       #106
+      010016DBH   LINE      ---      ---       #108
+      010016DBH   LINE      ---      ---       #109
+      010016E0H   LINE      ---      ---       #110
+      010016E3H   LINE      ---      ---       #111
+      010016E3H   LINE      ---      ---       #112
+      010016E5H   LINE      ---      ---       #113
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100144CH   BLOCK     CODE     ---       LVL=0
+      0100144CH   LINE      ---      ---       #116
+      0100144CH   LINE      ---      ---       #117
+      0100144CH   LINE      ---      ---       #118
+      01001452H   LINE      ---      ---       #119
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010016E6H   BLOCK     CODE     ---       LVL=0
+      010016E6H   LINE      ---      ---       #123
+      010016E6H   LINE      ---      ---       #124
+      010016E6H   LINE      ---      ---       #125
+      010016F6H   LINE      ---      ---       #126
+      010016FCH   LINE      ---      ---       #127
+      01001700H   LINE      ---      ---       #128
+      01001708H   LINE      ---      ---       #129
+      01001710H   LINE      ---      ---       #130
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001169H   BLOCK     CODE     ---       LVL=0
+      01001169H   LINE      ---      ---       #134
+      01001169H   LINE      ---      ---       #135
+      01001169H   LINE      ---      ---       #136
+      01001170H   LINE      ---      ---       #137
+      01001170H   LINE      ---      ---       #138
+      01001174H   LINE      ---      ---       #139
+      01001179H   LINE      ---      ---       #140
+      0100117FH   LINE      ---      ---       #141
+      0100118FH   LINE      ---      ---       #142
+      0100119FH   LINE      ---      ---       #143
+      010011A5H   LINE      ---      ---       #144
+      010011AAH   LINE      ---      ---       #145
+      010011AFH   LINE      ---      ---       #146
+      010011AFH   LINE      ---      ---       #147
       ---         BLOCKEND  ---      ---       LVL=0
 
       ---         MODULE    ---      ---       GLOBAL_VARIABLE
@@ -746,574 +741,566 @@
       0100060CH   PUBLIC    CONST    ---       col
 
       ---         MODULE    ---      ---       KB_PROCESS
-      01000A74H   PUBLIC    CODE     ---       _kb_multikey_setup
-      01001854H   PUBLIC    CODE     ---       _key_fn_function
-      01001834H   PUBLIC    CODE     ---       _key_replace
-      010017D4H   PUBLIC    CODE     ---       _kb_device_select
+      01000A2BH   PUBLIC    CODE     ---       _kb_multikey_setup
+      010018CDH   PUBLIC    CODE     ---       _key_fn_function
+      010018A8H   PUBLIC    CODE     ---       _kb_combination_key_press
+      01001848H   PUBLIC    CODE     ---       _kb_device_select
       01000880H   PUBLIC    CODE     ---       _kb_motion_keyscan
-      01000CD6H   PUBLIC    CODE     ---       kb_need_keyscan
-      01000C9CH   PUBLIC    CODE     ---       _kb_send_combination_key
-      01000BCFH   PUBLIC    CODE     ---       _kb_set_multikey
-      01000A43H   PUBLIC    CODE     ---       _IPC_TxHidData
-      0100104BH   PUBLIC    CODE     ---       _YC_key_action_handle
-
-      0100104BH   BLOCK     CODE     ---       LVL=0
-      0100104BH   LINE      ---      ---       #3
-      01001050H   LINE      ---      ---       #4
-      01001050H   LINE      ---      ---       #5
-      01001063H   LINE      ---      ---       #6
-      01001063H   LINE      ---      ---       #7
-      01001063H   LINE      ---      ---       #8
-      01001063H   LINE      ---      ---       #9
-      01001063H   LINE      ---      ---       #10
-      0100106CH   LINE      ---      ---       #11
-      01001072H   LINE      ---      ---       #12
-      01001076H   LINE      ---      ---       #13
-      0100107BH   LINE      ---      ---       #14
-      01001080H   LINE      ---      ---       #15
-      01001085H   LINE      ---      ---       #16
-      0100108AH   LINE      ---      ---       #18
-      0100108BH   LINE      ---      ---       #19
-      0100108BH   LINE      ---      ---       #20
-      01001090H   LINE      ---      ---       #21
-      01001090H   LINE      ---      ---       #22
-      01001090H   LINE      ---      ---       #23
-      01001095H   LINE      ---      ---       #24
-      0100109FH   LINE      ---      ---       #25
-      0100109FH   LINE      ---      ---       #26
-      010010A7H   LINE      ---      ---       #27
-      010010ADH   LINE      ---      ---       #28
-      010010AEH   LINE      ---      ---       #30
-      010010AEH   LINE      ---      ---       #31
-      010010B0H   LINE      ---      ---       #32
-      010010B5H   LINE      ---      ---       #33
-      010010B7H   LINE      ---      ---       #34
-      010010BCH   LINE      ---      ---       #35
-      010010C1H   LINE      ---      ---       #36
-      010010C1H   LINE      ---      ---       #37
-      010010C2H   LINE      ---      ---       #44
-      010010C2H   LINE      ---      ---       #45
-      010010C7H   LINE      ---      ---       #46
-      010010C7H   LINE      ---      ---       #47
-      010010C7H   LINE      ---      ---       #48
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000A43H   BLOCK     CODE     ---       LVL=0
-      01000A43H   LINE      ---      ---       #52
-      01000A51H   LINE      ---      ---       #53
-      01000A51H   LINE      ---      ---       #54
-      01000A56H   LINE      ---      ---       #56
-      01000A5CH   LINE      ---      ---       #59
-      01000A63H   LINE      ---      ---       #60
-      01000A63H   LINE      ---      ---       #61
-      01000A73H   LINE      ---      ---       #62
-      01000A73H   LINE      ---      ---       #63
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000BCFH   BLOCK     CODE     ---       LVL=0
-      01000BCFH   LINE      ---      ---       #66
-      01000BD3H   LINE      ---      ---       #67
-      01000BD3H   LINE      ---      ---       #68
-      01000BDBH   LINE      ---      ---       #69
-      01000BDBH   LINE      ---      ---       #70
-      01000BDEH   LINE      ---      ---       #71
-      01000BE3H   LINE      ---      ---       #72
-      01000BE6H   LINE      ---      ---       #73
-      01000BE9H   LINE      ---      ---       #74
-      01000BE9H   LINE      ---      ---       #75
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000C9CH   BLOCK     CODE     ---       LVL=0
-      01000C9CH   LINE      ---      ---       #78
-      01000CA4H   LINE      ---      ---       #79
-      01000CA4H   LINE      ---      ---       #80
-      01000CB0H   LINE      ---      ---       #81
-      01000CB6H   LINE      ---      ---       #82
-      01000CC4H   LINE      ---      ---       #83
-      01000CCCH   LINE      ---      ---       #84
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000D2CH   BLOCK     CODE     ---       LVL=0
-      01000D2CH   LINE      ---      ---       #149
-      01000D2CH   LINE      ---      ---       #150
-      01000D2CH   BLOCK     CODE     NEAR LAB  LVL=1
-      01000D2CH   LINE      ---      ---       #151
-      01000D35H   LINE      ---      ---       #153
-      01000D3AH   LINE      ---      ---       #155
-      01000D48H   LINE      ---      ---       #157
-      01000D4BH   LINE      ---      ---       #158
-      01000D4BH   LINE      ---      ---       #159
-      01000D51H   LINE      ---      ---       #161
-      01000D51H   LINE      ---      ---       #162
-      01000D5EH   LINE      ---      ---       #163
+      01000CF6H   PUBLIC    CODE     ---       kb_need_keyscan
+      01000CBCH   PUBLIC    CODE     ---       _kb_send_combination_key
+      01000BBDH   PUBLIC    CODE     ---       _kb_set_multikey
+      01000C8AH   PUBLIC    CODE     ---       _IPC_TxHidData
+      01001454H   PUBLIC    CODE     ---       _YC_key_action_handle
+
+      01001454H   BLOCK     CODE     ---       LVL=0
+      01001454H   LINE      ---      ---       #3
+      01001459H   LINE      ---      ---       #4
+      01001459H   LINE      ---      ---       #5
+      0100146CH   LINE      ---      ---       #6
+      0100146CH   LINE      ---      ---       #7
+      0100146CH   LINE      ---      ---       #8
+      0100146CH   LINE      ---      ---       #9
+      0100146CH   LINE      ---      ---       #10
+      01001475H   LINE      ---      ---       #11
+      0100147BH   LINE      ---      ---       #12
+      0100147FH   LINE      ---      ---       #13
+      01001484H   LINE      ---      ---       #14
+      01001489H   LINE      ---      ---       #15
+      0100148EH   LINE      ---      ---       #16
+      01001493H   LINE      ---      ---       #18
+      01001494H   LINE      ---      ---       #19
+      01001494H   LINE      ---      ---       #20
+      01001499H   LINE      ---      ---       #21
+      01001499H   LINE      ---      ---       #22
+      01001499H   LINE      ---      ---       #23
+      0100149EH   LINE      ---      ---       #24
+      010014A9H   LINE      ---      ---       #25
+      010014A9H   LINE      ---      ---       #26
+      010014B1H   LINE      ---      ---       #27
+      010014B7H   LINE      ---      ---       #28
+      010014B8H   LINE      ---      ---       #30
+      010014B8H   LINE      ---      ---       #31
+      010014BAH   LINE      ---      ---       #32
+      010014BFH   LINE      ---      ---       #33
+      010014C1H   LINE      ---      ---       #34
+      010014C6H   LINE      ---      ---       #35
+      010014CBH   LINE      ---      ---       #36
+      010014CBH   LINE      ---      ---       #37
+      010014CCH   LINE      ---      ---       #44
+      010014CCH   LINE      ---      ---       #45
+      010014D1H   LINE      ---      ---       #46
+      010014D1H   LINE      ---      ---       #47
+      010014D1H   LINE      ---      ---       #48
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000C8AH   BLOCK     CODE     ---       LVL=0
+      01000C8AH   LINE      ---      ---       #52
+      01000C98H   LINE      ---      ---       #53
+      01000C98H   LINE      ---      ---       #54
+      01000C9EH   LINE      ---      ---       #56
+      01000CA4H   LINE      ---      ---       #59
+      01000CABH   LINE      ---      ---       #60
+      01000CABH   LINE      ---      ---       #61
+      01000CBBH   LINE      ---      ---       #62
+      01000CBBH   LINE      ---      ---       #63
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000BBDH   BLOCK     CODE     ---       LVL=0
+      01000BBDH   LINE      ---      ---       #66
+      01000BC1H   LINE      ---      ---       #67
+      01000BC1H   LINE      ---      ---       #68
+      01000BC9H   LINE      ---      ---       #69
+      01000BC9H   LINE      ---      ---       #70
+      01000BCCH   LINE      ---      ---       #71
+      01000BD1H   LINE      ---      ---       #72
+      01000BD4H   LINE      ---      ---       #73
+      01000BD7H   LINE      ---      ---       #74
+      01000BD7H   LINE      ---      ---       #75
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000CBCH   BLOCK     CODE     ---       LVL=0
+      01000CBCH   LINE      ---      ---       #78
+      01000CC4H   LINE      ---      ---       #79
+      01000CC4H   LINE      ---      ---       #80
+      01000CD0H   LINE      ---      ---       #81
+      01000CD6H   LINE      ---      ---       #82
+      01000CE4H   LINE      ---      ---       #83
+      01000CECH   LINE      ---      ---       #84
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000D6CH   BLOCK     CODE     ---       LVL=0
+      01000D6CH   LINE      ---      ---       #149
+      01000D6CH   LINE      ---      ---       #150
+      01000D6CH   BLOCK     CODE     NEAR LAB  LVL=1
+      01000D6CH   LINE      ---      ---       #151
+      01000D75H   LINE      ---      ---       #153
+      01000D7AH   LINE      ---      ---       #155
+      01000D88H   LINE      ---      ---       #157
+      01000D8BH   LINE      ---      ---       #158
+      01000D8BH   LINE      ---      ---       #159
+      01000D91H   LINE      ---      ---       #161
+      01000D91H   LINE      ---      ---       #162
+      01000D9EH   LINE      ---      ---       #163
       02004E92H   SYMBOL    XDATA    VOID      pEvt
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01000CD6H   BLOCK     CODE     ---       LVL=0
-      01000CD6H   LINE      ---      ---       #167
-      01000CD6H   LINE      ---      ---       #168
-      01000CD6H   LINE      ---      ---       #177
-      01000CD6H   LINE      ---      ---       #179
-      01000CE5H   LINE      ---      ---       #183
-      01000CE7H   LINE      ---      ---       #185
-      01000CE7H   LINE      ---      ---       #187
-      01000CEEH   LINE      ---      ---       #188
-      01000CEEH   LINE      ---      ---       #189
-      01000CF1H   LINE      ---      ---       #190
-      01000CF9H   LINE      ---      ---       #191
-      01000CF9H   LINE      ---      ---       #192
-      01000D00H   LINE      ---      ---       #193
-      01000D00H   LINE      ---      ---       #194
-      01000D05H   LINE      ---      ---       #195
-      01000D0BH   LINE      ---      ---       #196
-      01000D13H   LINE      ---      ---       #197
-      01000D13H   LINE      ---      ---       #198
-      01000D1AH   LINE      ---      ---       #199
-      01000D1AH   LINE      ---      ---       #200
-      01000D1DH   LINE      ---      ---       #201
-      01000D1FH   LINE      ---      ---       #202
-      01000D23H   LINE      ---      ---       #203
-      01000D2BH   LINE      ---      ---       #204
-      01000D2BH   LINE      ---      ---       #205
-      01000D2BH   LINE      ---      ---       #206
-      01000D2BH   LINE      ---      ---       #207
+      01000CF6H   BLOCK     CODE     ---       LVL=0
+      01000CF6H   LINE      ---      ---       #167
+      01000CF6H   LINE      ---      ---       #168
+      01000CF6H   LINE      ---      ---       #177
+      01000CF6H   LINE      ---      ---       #178
+      01000D05H   LINE      ---      ---       #182
+      01000D07H   LINE      ---      ---       #184
+      01000D07H   LINE      ---      ---       #185
+      01000D0EH   LINE      ---      ---       #186
+      01000D0EH   LINE      ---      ---       #187
+      01000D15H   LINE      ---      ---       #188
+      01000D1BH   LINE      ---      ---       #189
+      01000D1CH   LINE      ---      ---       #190
+      01000D23H   LINE      ---      ---       #191
+      01000D23H   LINE      ---      ---       #192
+      01000D26H   LINE      ---      ---       #193
+      01000D2EH   LINE      ---      ---       #194
+      01000D2EH   LINE      ---      ---       #195
+      01000D35H   LINE      ---      ---       #196
+      01000D35H   LINE      ---      ---       #197
+      01000D3AH   LINE      ---      ---       #198
+      01000D43H   LINE      ---      ---       #199
+      01000D48H   LINE      ---      ---       #200
+      01000D4EH   LINE      ---      ---       #201
+      01000D4FH   LINE      ---      ---       #202
+      01000D56H   LINE      ---      ---       #203
+      01000D56H   LINE      ---      ---       #204
+      01000D5BH   LINE      ---      ---       #205
+      01000D5FH   LINE      ---      ---       #206
+      01000D66H   LINE      ---      ---       #207
+      01000D6BH   LINE      ---      ---       #208
+      01000D6BH   LINE      ---      ---       #209
+      01000D6BH   LINE      ---      ---       #210
+      01000D6BH   LINE      ---      ---       #211
       ---         BLOCKEND  ---      ---       LVL=0
 
       01000880H   BLOCK     CODE     ---       LVL=0
-      01000880H   LINE      ---      ---       #211
-      0100088BH   LINE      ---      ---       #212
+      01000880H   LINE      ---      ---       #215
+      0100088BH   LINE      ---      ---       #216
       0100088BH   BLOCK     CODE     NEAR LAB  LVL=1
-      0100088BH   LINE      ---      ---       #213
-      0100088EH   LINE      ---      ---       #214
-      01000890H   LINE      ---      ---       #216
-      01000894H   LINE      ---      ---       #217
-      010008A2H   LINE      ---      ---       #218
-      010008A2H   LINE      ---      ---       #219
-      010008C0H   LINE      ---      ---       #220
-      010008C0H   LINE      ---      ---       #221
-      010008C6H   LINE      ---      ---       #222
-      010008C6H   LINE      ---      ---       #223
-      010008CEH   LINE      ---      ---       #224
-      010008D6H   LINE      ---      ---       #227
-      010008E9H   LINE      ---      ---       #229
-      010008F7H   LINE      ---      ---       #233
-      010008FEH   LINE      ---      ---       #234
-      010008FEH   LINE      ---      ---       #235
-      01000904H   LINE      ---      ---       #236
-      01000904H   LINE      ---      ---       #237
-      0100090AH   LINE      ---      ---       #238
-      01000911H   LINE      ---      ---       #239
-      0100091CH   LINE      ---      ---       #240
-      01000928H   LINE      ---      ---       #242
-      0100092EH   LINE      ---      ---       #243
-      01000935H   LINE      ---      ---       #244
-      01000935H   LINE      ---      ---       #245
-      0100093BH   LINE      ---      ---       #246
-      01000949H   LINE      ---      ---       #247
-      0100094EH   LINE      ---      ---       #248
-      01000958H   LINE      ---      ---       #249
-      0100095FH   LINE      ---      ---       #251
-      0100095FH   LINE      ---      ---       #253
-      0100096CH   LINE      ---      ---       #255
-      01000973H   LINE      ---      ---       #256
-      01000973H   LINE      ---      ---       #257
-      01000976H   LINE      ---      ---       #258
-      0100097AH   LINE      ---      ---       #259
-      01000984H   LINE      ---      ---       #260
-      01000984H   LINE      ---      ---       #261
-      0100098BH   LINE      ---      ---       #262
-      0100098BH   LINE      ---      ---       #263
-      0100098DH   LINE      ---      ---       #264
-      01000991H   LINE      ---      ---       #265
-      01000997H   LINE      ---      ---       #266
-      010009A1H   LINE      ---      ---       #267
-      010009A1H   LINE      ---      ---       #269
-      010009A1H   LINE      ---      ---       #270
-      010009A7H   LINE      ---      ---       #271
-      010009B9H   LINE      ---      ---       #272
-      010009BCH   LINE      ---      ---       #274
-      010009C0H   LINE      ---      ---       #276
-      010009C9H   LINE      ---      ---       #277
-      010009E7H   LINE      ---      ---       #279
-      01000A03H   LINE      ---      ---       #281
-      01000A13H   LINE      ---      ---       #282
-      01000A13H   LINE      ---      ---       #283
-      01000A21H   LINE      ---      ---       #284
-      01000A30H   LINE      ---      ---       #285
-      01000A38H   LINE      ---      ---       #287
-      01000A42H   LINE      ---      ---       #288
-      01000A42H   LINE      ---      ---       #290
+      0100088BH   LINE      ---      ---       #217
+      0100088EH   LINE      ---      ---       #218
+      01000890H   LINE      ---      ---       #220
+      01000894H   LINE      ---      ---       #221
+      010008A2H   LINE      ---      ---       #222
+      010008A2H   LINE      ---      ---       #223
+      010008C0H   LINE      ---      ---       #224
+      010008C0H   LINE      ---      ---       #225
+      010008C6H   LINE      ---      ---       #226
+      010008C6H   LINE      ---      ---       #227
+      010008CEH   LINE      ---      ---       #228
+      010008D6H   LINE      ---      ---       #231
+      010008E9H   LINE      ---      ---       #233
+      010008F7H   LINE      ---      ---       #237
+      010008FEH   LINE      ---      ---       #238
+      010008FEH   LINE      ---      ---       #239
+      01000904H   LINE      ---      ---       #240
+      01000904H   LINE      ---      ---       #241
+      0100090AH   LINE      ---      ---       #242
+      01000911H   LINE      ---      ---       #243
+      0100091CH   LINE      ---      ---       #244
+      01000928H   LINE      ---      ---       #246
+      0100092EH   LINE      ---      ---       #247
+      01000947H   LINE      ---      ---       #250
+      01000947H   LINE      ---      ---       #252
+      01000947H   LINE      ---      ---       #255
+      01000954H   LINE      ---      ---       #257
+      0100095BH   LINE      ---      ---       #258
+      0100095BH   LINE      ---      ---       #259
+      0100095EH   LINE      ---      ---       #260
+      01000962H   LINE      ---      ---       #261
+      0100096CH   LINE      ---      ---       #262
+      0100096CH   LINE      ---      ---       #263
+      01000973H   LINE      ---      ---       #264
+      01000973H   LINE      ---      ---       #265
+      01000975H   LINE      ---      ---       #266
+      01000979H   LINE      ---      ---       #267
+      0100097FH   LINE      ---      ---       #268
+      01000989H   LINE      ---      ---       #269
+      01000989H   LINE      ---      ---       #271
+      01000989H   LINE      ---      ---       #272
+      0100098FH   LINE      ---      ---       #273
+      010009A1H   LINE      ---      ---       #274
+      010009A4H   LINE      ---      ---       #276
+      010009A8H   LINE      ---      ---       #278
+      010009B1H   LINE      ---      ---       #279
+      010009CFH   LINE      ---      ---       #281
+      010009EBH   LINE      ---      ---       #283
+      010009FBH   LINE      ---      ---       #284
+      010009FBH   LINE      ---      ---       #285
+      01000A09H   LINE      ---      ---       #286
+      01000A18H   LINE      ---      ---       #287
+      01000A20H   LINE      ---      ---       #289
+      01000A2AH   LINE      ---      ---       #290
+      01000A2AH   LINE      ---      ---       #292
       02004E72H   SYMBOL    XDATA    VOID      temp
       02004E73H   SYMBOL    XDATA    VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010017D4H   BLOCK     CODE     ---       LVL=0
-      010017D4H   LINE      ---      ---       #294
-      010017DFH   LINE      ---      ---       #295
-      010017DFH   BLOCK     CODE     NEAR LAB  LVL=1
-      010017DFH   LINE      ---      ---       #296
-      010017E1H   LINE      ---      ---       #297
-      010017E2H   LINE      ---      ---       #299
-      010017EAH   LINE      ---      ---       #300
-      010017EAH   LINE      ---      ---       #301
-      010017ECH   LINE      ---      ---       #303
-      010017F2H   LINE      ---      ---       #304
-      010017F2H   LINE      ---      ---       #305
-      0100180EH   LINE      ---      ---       #307
-      01001811H   LINE      ---      ---       #308
-      01001811H   LINE      ---      ---       #309
-      01001817H   LINE      ---      ---       #310
-      0100181EH   LINE      ---      ---       #311
-      01001821H   LINE      ---      ---       #312
-      01001821H   LINE      ---      ---       #314
-      01001821H   LINE      ---      ---       #315
-      01001828H   LINE      ---      ---       #316
-      01001828H   LINE      ---      ---       #317
-      0100182AH   LINE      ---      ---       #318
-      0100182AH   LINE      ---      ---       #320
-      0100182AH   LINE      ---      ---       #321
-      01001831H   LINE      ---      ---       #322
-      01001831H   LINE      ---      ---       #323
-      01001833H   LINE      ---      ---       #324
+      01001848H   BLOCK     CODE     ---       LVL=0
+      01001848H   LINE      ---      ---       #296
+      01001853H   LINE      ---      ---       #297
+      01001853H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001853H   LINE      ---      ---       #298
+      01001855H   LINE      ---      ---       #299
+      01001856H   LINE      ---      ---       #301
+      0100185EH   LINE      ---      ---       #302
+      0100185EH   LINE      ---      ---       #303
+      01001860H   LINE      ---      ---       #305
+      01001866H   LINE      ---      ---       #306
+      01001866H   LINE      ---      ---       #307
+      01001882H   LINE      ---      ---       #309
+      01001885H   LINE      ---      ---       #310
+      01001885H   LINE      ---      ---       #311
+      0100188BH   LINE      ---      ---       #312
+      01001892H   LINE      ---      ---       #313
+      01001895H   LINE      ---      ---       #314
+      01001895H   LINE      ---      ---       #316
+      01001895H   LINE      ---      ---       #317
+      0100189CH   LINE      ---      ---       #318
+      0100189CH   LINE      ---      ---       #319
+      0100189EH   LINE      ---      ---       #320
+      0100189EH   LINE      ---      ---       #322
+      0100189EH   LINE      ---      ---       #323
+      010018A5H   LINE      ---      ---       #324
+      010018A5H   LINE      ---      ---       #325
+      010018A7H   LINE      ---      ---       #326
       00000006H   SYMBOL    DATA     VOID      temp
       00000005H   SYMBOL    DATA     VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001834H   BLOCK     CODE     ---       LVL=0
-      01001834H   LINE      ---      ---       #328
-      01001834H   LINE      ---      ---       #329
-      01001834H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001834H   LINE      ---      ---       #332
-      01001836H   LINE      ---      ---       #333
-      0100183AH   LINE      ---      ---       #334
-      0100183AH   LINE      ---      ---       #335
-      01001840H   LINE      ---      ---       #336
-      01001842H   LINE      ---      ---       #337
-      01001844H   LINE      ---      ---       #339
-      01001844H   LINE      ---      ---       #340
-      0100184AH   LINE      ---      ---       #341
-      0100184AH   LINE      ---      ---       #342
-      0100184DH   LINE      ---      ---       #343
-      01001851H   LINE      ---      ---       #344
-      01001851H   LINE      ---      ---       #345
-      01001851H   LINE      ---      ---       #347
-      01001853H   LINE      ---      ---       #348
-      00000006H   SYMBOL    DATA     VOID      temp_value
-      ---         BLOCKEND  CODE     ---       LVL=1
-      ---         BLOCKEND  CODE     ---       LVL=0
-
-      01001854H   BLOCK     CODE     ---       LVL=0
-      01001854H   LINE      ---      ---       #353
-      01001858H   LINE      ---      ---       #354
-      01001858H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001858H   LINE      ---      ---       #355
-      0100185DH   LINE      ---      ---       #357
-      0100185FH   LINE      ---      ---       #358
-      01001869H   LINE      ---      ---       #359
-      01001869H   LINE      ---      ---       #361
-      010018A5H   LINE      ---      ---       #362
-      010018A5H   LINE      ---      ---       #363
-      010018A5H   LINE      ---      ---       #364
-      010018B2H   LINE      ---      ---       #365
-      010018B4H   LINE      ---      ---       #366
-      010018B4H   LINE      ---      ---       #367
-      010018C1H   LINE      ---      ---       #368
-      010018C3H   LINE      ---      ---       #369
-      010018C3H   LINE      ---      ---       #370
-      010018C9H   LINE      ---      ---       #372
-      010018CDH   LINE      ---      ---       #374
-      010018D1H   LINE      ---      ---       #375
-      010018D1H   LINE      ---      ---       #376
-      010018D7H   LINE      ---      ---       #377
-      010018D9H   LINE      ---      ---       #379
-      010018D9H   LINE      ---      ---       #380
-      010018DFH   LINE      ---      ---       #381
-      010018DFH   LINE      ---      ---       #383
-      010018ECH   LINE      ---      ---       #384
-      010018EEH   LINE      ---      ---       #385
-      010018EEH   LINE      ---      ---       #386
-      010018F4H   LINE      ---      ---       #387
-      010018F7H   LINE      ---      ---       #389
-      010018FBH   LINE      ---      ---       #390
-      010018FBH   LINE      ---      ---       #391
-      01001901H   LINE      ---      ---       #392
-      01001903H   LINE      ---      ---       #394
-      01001903H   LINE      ---      ---       #395
-      01001909H   LINE      ---      ---       #396
-      01001909H   LINE      ---      ---       #397
-      01001916H   LINE      ---      ---       #399
-      01001918H   LINE      ---      ---       #400
-      01001918H   LINE      ---      ---       #401
-      0100191EH   LINE      ---      ---       #402
-      01001922H   LINE      ---      ---       #404
-      01001926H   LINE      ---      ---       #405
-      01001926H   LINE      ---      ---       #406
-      0100192CH   LINE      ---      ---       #407
-      0100192EH   LINE      ---      ---       #409
-      0100192EH   LINE      ---      ---       #410
-      01001934H   LINE      ---      ---       #411
-      01001934H   LINE      ---      ---       #412
-      01001941H   LINE      ---      ---       #413
-      01001943H   LINE      ---      ---       #414
-      01001943H   LINE      ---      ---       #415
-      01001950H   LINE      ---      ---       #416
-      01001952H   LINE      ---      ---       #417
-      01001952H   LINE      ---      ---       #418
-      0100195FH   LINE      ---      ---       #419
-      01001961H   LINE      ---      ---       #420
-      01001961H   LINE      ---      ---       #421
-      0100196EH   LINE      ---      ---       #422
-      01001970H   LINE      ---      ---       #423
-      01001970H   LINE      ---      ---       #424
-      0100197DH   LINE      ---      ---       #425
-      0100197FH   LINE      ---      ---       #426
-      0100197FH   LINE      ---      ---       #427
-      0100198CH   LINE      ---      ---       #428
-      0100198EH   LINE      ---      ---       #429
-      0100198EH   LINE      ---      ---       #430
-      0100199BH   LINE      ---      ---       #431
-      0100199DH   LINE      ---      ---       #432
-      0100199DH   LINE      ---      ---       #433
-      010019ACH   LINE      ---      ---       #434
-      010019ACH   LINE      ---      ---       #435
-      010019ACH   LINE      ---      ---       #436
-      010019ACH   LINE      ---      ---       #437
-      010019ACH   LINE      ---      ---       #438
-      010019ACH   LINE      ---      ---       #440
-      010019B1H   LINE      ---      ---       #441
+      010018A8H   BLOCK     CODE     ---       LVL=0
+      010018A8H   LINE      ---      ---       #331
+      010018A8H   LINE      ---      ---       #332
+      010018A8H   LINE      ---      ---       #333
+      010018ADH   LINE      ---      ---       #334
+      010018B0H   LINE      ---      ---       #336
+      010018B4H   LINE      ---      ---       #337
+      010018B4H   LINE      ---      ---       #338
+      010018BBH   LINE      ---      ---       #339
+      010018BFH   LINE      ---      ---       #341
+      010018C5H   LINE      ---      ---       #342
+      010018C6H   LINE      ---      ---       #344
+      010018C6H   LINE      ---      ---       #345
+      010018CCH   LINE      ---      ---       #346
+      010018CCH   LINE      ---      ---       #348
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010018CDH   BLOCK     CODE     ---       LVL=0
+      010018CDH   LINE      ---      ---       #351
+      010018CFH   LINE      ---      ---       #352
+      010018CFH   BLOCK     CODE     NEAR LAB  LVL=1
+      010018CFH   LINE      ---      ---       #353
+      010018D4H   LINE      ---      ---       #355
+      010018D6H   LINE      ---      ---       #356
+      010018E0H   LINE      ---      ---       #357
+      010018E0H   LINE      ---      ---       #387
+      01001920H   LINE      ---      ---       #388
+      01001920H   LINE      ---      ---       #389
+      01001920H   LINE      ---      ---       #390
+      01001926H   LINE      ---      ---       #391
+      01001928H   LINE      ---      ---       #392
+      01001928H   LINE      ---      ---       #393
+      0100192EH   LINE      ---      ---       #394
+      01001930H   LINE      ---      ---       #395
+      01001930H   LINE      ---      ---       #396
+      01001936H   LINE      ---      ---       #397
+      01001938H   LINE      ---      ---       #398
+      01001938H   LINE      ---      ---       #399
+      0100193EH   LINE      ---      ---       #400
+      01001940H   LINE      ---      ---       #401
+      01001940H   LINE      ---      ---       #413
+      01001940H   LINE      ---      ---       #414
+      01001948H   LINE      ---      ---       #415
+      0100194DH   LINE      ---      ---       #416
+      0100194DH   LINE      ---      ---       #417
+      0100194FH   LINE      ---      ---       #418
+      0100194FH   LINE      ---      ---       #432
+      0100194FH   LINE      ---      ---       #433
+      01001957H   LINE      ---      ---       #434
+      0100195CH   LINE      ---      ---       #435
+      0100195CH   LINE      ---      ---       #436
+      0100195EH   LINE      ---      ---       #437
+      0100195EH   LINE      ---      ---       #438
+      01001964H   LINE      ---      ---       #439
+      01001966H   LINE      ---      ---       #440
+      01001966H   LINE      ---      ---       #441
+      0100196CH   LINE      ---      ---       #442
+      0100196EH   LINE      ---      ---       #443
+      0100196EH   LINE      ---      ---       #444
+      01001974H   LINE      ---      ---       #445
+      01001976H   LINE      ---      ---       #446
+      01001976H   LINE      ---      ---       #447
+      0100197CH   LINE      ---      ---       #448
+      0100197EH   LINE      ---      ---       #449
+      0100197EH   LINE      ---      ---       #450
+      01001984H   LINE      ---      ---       #451
+      01001986H   LINE      ---      ---       #452
+      01001986H   LINE      ---      ---       #453
+      0100198CH   LINE      ---      ---       #454
+      0100198EH   LINE      ---      ---       #455
+      0100198EH   LINE      ---      ---       #467
+      0100198EH   LINE      ---      ---       #468
+      01001996H   LINE      ---      ---       #469
+      01001996H   LINE      ---      ---       #477
+      0100199BH   LINE      ---      ---       #478
+      0100199BH   LINE      ---      ---       #479
+      0100199BH   LINE      ---      ---       #480
+      0100199BH   LINE      ---      ---       #481
+      0100199BH   LINE      ---      ---       #482
+      0100199BH   LINE      ---      ---       #484
+      010019A0H   LINE      ---      ---       #485
       02004EAFH   SYMBOL    XDATA    VOID      temp
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01000A74H   BLOCK     CODE     ---       LVL=0
-      01000A74H   LINE      ---      ---       #445
-      01000A7FH   LINE      ---      ---       #446
-      01000A7FH   BLOCK     CODE     NEAR LAB  LVL=1
-      01000A7FH   LINE      ---      ---       #447
-      01000A82H   LINE      ---      ---       #449
-      01000A8FH   LINE      ---      ---       #450
-      01000A8FH   LINE      ---      ---       #451
-      01000ABAH   LINE      ---      ---       #453
-      01000ABAH   LINE      ---      ---       #454
-      01000AC1H   LINE      ---      ---       #455
-      01000AC1H   LINE      ---      ---       #456
-      01000AC7H   LINE      ---      ---       #457
-      01000AC9H   LINE      ---      ---       #458
-      01000ACDH   LINE      ---      ---       #459
-      01000ACDH   LINE      ---      ---       #460
-      01000AD3H   LINE      ---      ---       #461
-      01000AD5H   LINE      ---      ---       #462
-      01000AF5H   LINE      ---      ---       #463
-      01000AF5H   LINE      ---      ---       #464
-      01000AF9H   LINE      ---      ---       #465
-      01000AFBH   LINE      ---      ---       #466
-      01000AFFH   LINE      ---      ---       #467
-      01000AFFH   LINE      ---      ---       #468
-      01000B05H   LINE      ---      ---       #469
-      01000B07H   LINE      ---      ---       #470
-      01000B27H   LINE      ---      ---       #471
-      01000B27H   LINE      ---      ---       #472
-      01000B2BH   LINE      ---      ---       #473
-      01000B2DH   LINE      ---      ---       #474
-      01000B31H   LINE      ---      ---       #475
-      01000B31H   LINE      ---      ---       #476
-      01000B37H   LINE      ---      ---       #477
-      01000B39H   LINE      ---      ---       #478
-      01000B59H   LINE      ---      ---       #479
-      01000B59H   LINE      ---      ---       #480
-      01000B5DH   LINE      ---      ---       #481
-      01000B5FH   LINE      ---      ---       #482
-      01000B63H   LINE      ---      ---       #483
-      01000B63H   LINE      ---      ---       #484
-      01000B69H   LINE      ---      ---       #485
-      01000B6BH   LINE      ---      ---       #529
-      01000B8BH   LINE      ---      ---       #530
-      01000B8BH   LINE      ---      ---       #531
-      01000B8FH   LINE      ---      ---       #532
-      01000B91H   LINE      ---      ---       #533
-      01000B95H   LINE      ---      ---       #534
-      01000B95H   LINE      ---      ---       #535
-      01000B9BH   LINE      ---      ---       #536
-      01000B9BH   LINE      ---      ---       #538
-      01000BA2H   LINE      ---      ---       #539
-      01000BA2H   LINE      ---      ---       #540
-      01000BC2H   LINE      ---      ---       #541
-      01000BC6H   LINE      ---      ---       #542
-      01000BC6H   LINE      ---      ---       #543
-      01000BC6H   LINE      ---      ---       #544
-      01000BCEH   LINE      ---      ---       #545
+      01000A2BH   BLOCK     CODE     ---       LVL=0
+      01000A2BH   LINE      ---      ---       #489
+      01000A36H   LINE      ---      ---       #490
+      01000A36H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000A36H   LINE      ---      ---       #491
+      01000A39H   LINE      ---      ---       #493
+      01000A46H   LINE      ---      ---       #494
+      01000A46H   LINE      ---      ---       #495
+      01000A71H   LINE      ---      ---       #497
+      01000A71H   LINE      ---      ---       #504
+      01000A78H   LINE      ---      ---       #505
+      01000A78H   LINE      ---      ---       #506
+      01000A7EH   LINE      ---      ---       #507
+      01000A80H   LINE      ---      ---       #512
+      01000A84H   LINE      ---      ---       #513
+      01000A84H   LINE      ---      ---       #514
+      01000A8AH   LINE      ---      ---       #515
+      01000A8CH   LINE      ---      ---       #516
+      01000AACH   LINE      ---      ---       #517
+      01000AACH   LINE      ---      ---       #518
+      01000AB0H   LINE      ---      ---       #519
+      01000AB2H   LINE      ---      ---       #520
+      01000AB6H   LINE      ---      ---       #521
+      01000AB6H   LINE      ---      ---       #522
+      01000ABCH   LINE      ---      ---       #523
+      01000ABEH   LINE      ---      ---       #524
+      01000ADEH   LINE      ---      ---       #525
+      01000ADEH   LINE      ---      ---       #526
+      01000AE2H   LINE      ---      ---       #527
+      01000AE4H   LINE      ---      ---       #528
+      01000AE8H   LINE      ---      ---       #529
+      01000AE8H   LINE      ---      ---       #530
+      01000AEEH   LINE      ---      ---       #531
+      01000AF0H   LINE      ---      ---       #536
+      01000B10H   LINE      ---      ---       #537
+      01000B10H   LINE      ---      ---       #538
+      01000B15H   LINE      ---      ---       #539
+      01000B17H   LINE      ---      ---       #564
+      01000B1BH   LINE      ---      ---       #565
+      01000B1BH   LINE      ---      ---       #566
+      01000B21H   LINE      ---      ---       #567
+      01000B23H   LINE      ---      ---       #568
+      01000B43H   LINE      ---      ---       #569
+      01000B43H   LINE      ---      ---       #570
+      01000B49H   LINE      ---      ---       #571
+      01000B4BH   LINE      ---      ---       #580
+      01000B4FH   LINE      ---      ---       #581
+      01000B4FH   LINE      ---      ---       #582
+      01000B55H   LINE      ---      ---       #583
+      01000B57H   LINE      ---      ---       #588
+      01000B77H   LINE      ---      ---       #589
+      01000B77H   LINE      ---      ---       #590
+      01000B7DH   LINE      ---      ---       #591
+      01000B7FH   LINE      ---      ---       #592
+      01000B83H   LINE      ---      ---       #593
+      01000B83H   LINE      ---      ---       #594
+      01000B89H   LINE      ---      ---       #595
+      01000B89H   LINE      ---      ---       #597
+      01000B90H   LINE      ---      ---       #598
+      01000B90H   LINE      ---      ---       #599
+      01000BB0H   LINE      ---      ---       #600
+      01000BB4H   LINE      ---      ---       #601
+      01000BB4H   LINE      ---      ---       #602
+      01000BB4H   LINE      ---      ---       #603
+      01000BBCH   LINE      ---      ---       #604
       02004E85H   SYMBOL    XDATA    VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
       ---         MODULE    ---      ---       KEYSCAN
       02004E4EH   PUBLIC    XDATA    ---       ksEvtPool
-      010019B2H   PUBLIC    CODE     ---       KS_GetCurrentEvt
-      01001BBCH   PUBLIC    CODE     ---       _array_is_empty
-      01001D36H   PUBLIC    CODE     ---       KS_ScanMatrix
-      01000DEEH   PUBLIC    CODE     ---       KS_Unistall
-      010012B6H   PUBLIC    CODE     ---       KS_Initialize
-
-      01001BAEH   BLOCK     CODE     ---       LVL=0
-      01001BAEH   LINE      ---      ---       #24
-      01001BAEH   LINE      ---      ---       #25
-      01001BAEH   BLOCK     CODE     NEAR LAB  LVL=1
-      01001BAEH   LINE      ---      ---       #27
-      01001BB3H   LINE      ---      ---       #28
-      01001BB6H   LINE      ---      ---       #29
-      01001BB9H   LINE      ---      ---       #30
-      01001BBBH   LINE      ---      ---       #31
+      010019A1H   PUBLIC    CODE     ---       KS_GetCurrentEvt
+      01001BABH   PUBLIC    CODE     ---       _array_is_empty
+      01001D28H   PUBLIC    CODE     ---       KS_ScanMatrix
+      01000E2FH   PUBLIC    CODE     ---       KS_Unistall
+      01001423H   PUBLIC    CODE     ---       KS_Initialize
+
+      01001B9DH   BLOCK     CODE     ---       LVL=0
+      01001B9DH   LINE      ---      ---       #24
+      01001B9DH   LINE      ---      ---       #25
+      01001B9DH   BLOCK     CODE     NEAR LAB  LVL=1
+      01001B9DH   LINE      ---      ---       #27
+      01001BA2H   LINE      ---      ---       #28
+      01001BA5H   LINE      ---      ---       #29
+      01001BA8H   LINE      ---      ---       #30
+      01001BAAH   LINE      ---      ---       #31
       00000006H   SYMBOL    DATA     VOID      c
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001C36H   BLOCK     CODE     ---       LVL=0
-      01001C36H   LINE      ---      ---       #35
-      01001C36H   LINE      ---      ---       #36
-      01001C36H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001C36H   LINE      ---      ---       #37
-      01001C38H   LINE      ---      ---       #39
-      01001C44H   LINE      ---      ---       #40
-      01001C44H   LINE      ---      ---       #41
-      01001C5EH   LINE      ---      ---       #43
-      01001C5EH   LINE      ---      ---       #89
-      01001C60H   LINE      ---      ---       #90
-      01001C60H   LINE      ---      ---       #91
-      01001C6FH   LINE      ---      ---       #92
-      01001C6FH   LINE      ---      ---       #93
-      01001C72H   LINE      ---      ---       #94
-      01001C72H   LINE      ---      ---       #95
-      01001C79H   LINE      ---      ---       #96
-      01001C85H   LINE      ---      ---       #97
-      01001C86H   LINE      ---      ---       #98
-      01001C86H   LINE      ---      ---       #99
-      01001C8BH   LINE      ---      ---       #100
+      01001C25H   BLOCK     CODE     ---       LVL=0
+      01001C25H   LINE      ---      ---       #52
+      01001C25H   LINE      ---      ---       #53
+      01001C25H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001C25H   LINE      ---      ---       #54
+      01001C27H   LINE      ---      ---       #56
+      01001C29H   LINE      ---      ---       #57
+      01001C35H   LINE      ---      ---       #58
+      01001C35H   LINE      ---      ---       #62
+      01001C4FH   LINE      ---      ---       #64
+      01001C4FH   LINE      ---      ---       #110
+      01001C51H   LINE      ---      ---       #111
+      01001C51H   LINE      ---      ---       #112
+      01001C60H   LINE      ---      ---       #113
+      01001C60H   LINE      ---      ---       #114
+      01001C63H   LINE      ---      ---       #115
+      01001C63H   LINE      ---      ---       #116
+      01001C6AH   LINE      ---      ---       #117
+      01001C76H   LINE      ---      ---       #118
+      01001C77H   LINE      ---      ---       #119
+      01001C77H   LINE      ---      ---       #120
+      01001C7CH   LINE      ---      ---       #121
       00000006H   SYMBOL    DATA     VOID      i
+      00000005H   SYMBOL    DATA     VOID      key_temp
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001C8CH   BLOCK     CODE     ---       LVL=0
-      01001C8CH   LINE      ---      ---       #102
-      01001C8CH   LINE      ---      ---       #103
-      01001C8CH   BLOCK     CODE     NEAR LAB  LVL=1
-      01001C8CH   LINE      ---      ---       #104
-      01001C8EH   LINE      ---      ---       #105
-      01001C8FH   LINE      ---      ---       #107
-      01001C9DH   LINE      ---      ---       #108
-      01001C9DH   LINE      ---      ---       #109
-      01001CA4H   LINE      ---      ---       #110
-      01001CA4H   LINE      ---      ---       #111
-      01001CA7H   LINE      ---      ---       #112
-      01001CA7H   LINE      ---      ---       #113
-      01001CA9H   LINE      ---      ---       #115
-      01001CAFH   LINE      ---      ---       #117
-      01001CBBH   LINE      ---      ---       #118
-      01001CBBH   LINE      ---      ---       #119
-      01001CD6H   LINE      ---      ---       #121
-      01001CD6H   LINE      ---      ---       #165
-      01001CD8H   LINE      ---      ---       #166
-      01001CD8H   LINE      ---      ---       #167
-      01001CDBH   LINE      ---      ---       #168
-      01001CDBH   LINE      ---      ---       #169
-      01001CE9H   LINE      ---      ---       #170
-      01001CEDH   LINE      ---      ---       #171
-      01001CF8H   LINE      ---      ---       #172
-      01001CF8H   LINE      ---      ---       #173
-      01001CFAH   LINE      ---      ---       #174
-      01001CFAH   LINE      ---      ---       #175
-      01001CFCH   LINE      ---      ---       #177
-      01001CFCH   LINE      ---      ---       #178
-      01001D14H   LINE      ---      ---       #179
-      01001D21H   LINE      ---      ---       #180
-      01001D21H   LINE      ---      ---       #181
-      01001D25H   LINE      ---      ---       #182
-      01001D30H   LINE      ---      ---       #183
-      01001D30H   LINE      ---      ---       #184
-      01001D30H   LINE      ---      ---       #185
-      01001D35H   LINE      ---      ---       #186
+      01001C7DH   BLOCK     CODE     ---       LVL=0
+      01001C7DH   LINE      ---      ---       #123
+      01001C7DH   LINE      ---      ---       #124
+      01001C7DH   BLOCK     CODE     NEAR LAB  LVL=1
+      01001C7DH   LINE      ---      ---       #125
+      01001C7FH   LINE      ---      ---       #126
+      01001C80H   LINE      ---      ---       #128
+      01001C82H   LINE      ---      ---       #129
+      01001C90H   LINE      ---      ---       #130
+      01001C90H   LINE      ---      ---       #131
+      01001C97H   LINE      ---      ---       #132
+      01001C97H   LINE      ---      ---       #133
+      01001C9AH   LINE      ---      ---       #134
+      01001C9AH   LINE      ---      ---       #135
+      01001C9CH   LINE      ---      ---       #137
+      01001CA2H   LINE      ---      ---       #139
+      01001CAEH   LINE      ---      ---       #140
+      01001CAEH   LINE      ---      ---       #144
+      01001CC8H   LINE      ---      ---       #146
+      01001CC8H   LINE      ---      ---       #191
+      01001CCAH   LINE      ---      ---       #192
+      01001CCAH   LINE      ---      ---       #193
+      01001CCDH   LINE      ---      ---       #194
+      01001CCDH   LINE      ---      ---       #195
+      01001CDBH   LINE      ---      ---       #196
+      01001CDFH   LINE      ---      ---       #197
+      01001CEAH   LINE      ---      ---       #198
+      01001CEAH   LINE      ---      ---       #199
+      01001CECH   LINE      ---      ---       #200
+      01001CECH   LINE      ---      ---       #201
+      01001CEEH   LINE      ---      ---       #203
+      01001CEEH   LINE      ---      ---       #204
+      01001D06H   LINE      ---      ---       #205
+      01001D13H   LINE      ---      ---       #206
+      01001D13H   LINE      ---      ---       #207
+      01001D17H   LINE      ---      ---       #208
+      01001D22H   LINE      ---      ---       #209
+      01001D22H   LINE      ---      ---       #210
+      01001D22H   LINE      ---      ---       #211
+      01001D27H   LINE      ---      ---       #212
       00000006H   SYMBOL    DATA     VOID      i
       00000005H   SYMBOL    DATA     VOID      found
+      00000004H   SYMBOL    DATA     VOID      key_temp
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010012DFH   BLOCK     CODE     ---       LVL=0
-      010012DFH   LINE      ---      ---       #188
-      010012DFH   LINE      ---      ---       #189
-      010012DFH   BLOCK     CODE     NEAR LAB  LVL=1
-      010012DFH   LINE      ---      ---       #190
-      010012E4H   LINE      ---      ---       #192
-      010012EFH   LINE      ---      ---       #193
-      010012F3H   LINE      ---      ---       #194
-      010012FBH   LINE      ---      ---       #195
+      010014F8H   BLOCK     CODE     ---       LVL=0
+      010014F8H   LINE      ---      ---       #214
+      010014F8H   LINE      ---      ---       #215
+      010014F8H   BLOCK     CODE     NEAR LAB  LVL=1
+      010014F8H   LINE      ---      ---       #216
+      010014FDH   LINE      ---      ---       #218
+      01001508H   LINE      ---      ---       #219
+      0100150CH   LINE      ---      ---       #220
+      01001514H   LINE      ---      ---       #221
       02004EB0H   SYMBOL    XDATA    VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010012C1H   BLOCK     CODE     ---       LVL=0
-      010012C1H   LINE      ---      ---       #197
-      010012C1H   LINE      ---      ---       #198
-      010012C1H   BLOCK     CODE     NEAR LAB  LVL=1
-      010012C1H   LINE      ---      ---       #199
-      010012C6H   LINE      ---      ---       #200
-      010012D2H   LINE      ---      ---       #201
-      010012D6H   LINE      ---      ---       #202
-      010012DEH   LINE      ---      ---       #203
+      0100142EH   BLOCK     CODE     ---       LVL=0
+      0100142EH   LINE      ---      ---       #223
+      0100142EH   LINE      ---      ---       #224
+      0100142EH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100142EH   LINE      ---      ---       #225
+      01001433H   LINE      ---      ---       #226
+      0100143FH   LINE      ---      ---       #227
+      01001443H   LINE      ---      ---       #228
+      0100144BH   LINE      ---      ---       #229
       02004EB1H   SYMBOL    XDATA    VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010012B6H   BLOCK     CODE     ---       LVL=0
-      010012B6H   LINE      ---      ---       #205
-      010012B6H   LINE      ---      ---       #206
-      010012B6H   LINE      ---      ---       #207
-      010012BBH   LINE      ---      ---       #208
-      010012BDH   LINE      ---      ---       #209
-      010012BFH   LINE      ---      ---       #210
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000DEEH   BLOCK     CODE     ---       LVL=0
-      01000DEEH   LINE      ---      ---       #214
-      01000DEEH   LINE      ---      ---       #215
-      01000DEEH   BLOCK     CODE     NEAR LAB  LVL=1
-      01000DEEH   LINE      ---      ---       #216
-      01000DF0H   LINE      ---      ---       #217
-      01000DF4H   LINE      ---      ---       #218
-      01000DF5H   LINE      ---      ---       #219
-      01000DF6H   LINE      ---      ---       #220
-      01000DFDH   LINE      ---      ---       #221
-      01000E06H   LINE      ---      ---       #222
-      01000E16H   LINE      ---      ---       #223
-      01000E29H   LINE      ---      ---       #224
-      01000E36H   LINE      ---      ---       #225
-      01000E43H   LINE      ---      ---       #226
-      01000E46H   LINE      ---      ---       #228
-      01000E49H   LINE      ---      ---       #230
-      01000E51H   LINE      ---      ---       #231
-      01000E59H   LINE      ---      ---       #232
-      01000E59H   LINE      ---      ---       #233
-      01000E5FH   LINE      ---      ---       #234
-      01000E5FH   LINE      ---      ---       #235
-      01000E63H   LINE      ---      ---       #236
-      01000E67H   LINE      ---      ---       #237
-      01000E6BH   LINE      ---      ---       #238
-      01000E6FH   LINE      ---      ---       #239
-      01000E73H   LINE      ---      ---       #240
-      01000E77H   LINE      ---      ---       #241
-      01000E7BH   LINE      ---      ---       #242
-      01000E7FH   LINE      ---      ---       #243
-      01000E7FH   LINE      ---      ---       #245
-      01000E7FH   LINE      ---      ---       #246
-      01000E88H   LINE      ---      ---       #247
-      01000E8EH   LINE      ---      ---       #248
-      01000E8EH   LINE      ---      ---       #250
-      01000E8FH   LINE      ---      ---       #252
-      01000E8FH   LINE      ---      ---       #253
-      01000E94H   LINE      ---      ---       #254
-      01000E98H   LINE      ---      ---       #255
-      01000E98H   LINE      ---      ---       #256
+      01001423H   BLOCK     CODE     ---       LVL=0
+      01001423H   LINE      ---      ---       #231
+      01001423H   LINE      ---      ---       #232
+      01001423H   LINE      ---      ---       #233
+      01001428H   LINE      ---      ---       #234
+      0100142AH   LINE      ---      ---       #235
+      0100142CH   LINE      ---      ---       #236
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000E2FH   BLOCK     CODE     ---       LVL=0
+      01000E2FH   LINE      ---      ---       #240
+      01000E2FH   LINE      ---      ---       #241
+      01000E2FH   BLOCK     CODE     NEAR LAB  LVL=1
+      01000E2FH   LINE      ---      ---       #242
+      01000E31H   LINE      ---      ---       #243
+      01000E35H   LINE      ---      ---       #244
+      01000E36H   LINE      ---      ---       #245
+      01000E37H   LINE      ---      ---       #246
+      01000E3EH   LINE      ---      ---       #247
+      01000E47H   LINE      ---      ---       #248
+      01000E57H   LINE      ---      ---       #249
+      01000E6AH   LINE      ---      ---       #250
+      01000E77H   LINE      ---      ---       #251
+      01000E84H   LINE      ---      ---       #252
+      01000E87H   LINE      ---      ---       #254
+      01000E8AH   LINE      ---      ---       #256
+      01000E92H   LINE      ---      ---       #257
+      01000E9AH   LINE      ---      ---       #258
+      01000E9AH   LINE      ---      ---       #259
+      01000EA0H   LINE      ---      ---       #260
+      01000EA0H   LINE      ---      ---       #261
+      01000EA4H   LINE      ---      ---       #262
+      01000EA8H   LINE      ---      ---       #263
+      01000EACH   LINE      ---      ---       #264
+      01000EB0H   LINE      ---      ---       #265
+      01000EB4H   LINE      ---      ---       #266
+      01000EB8H   LINE      ---      ---       #267
+      01000EBCH   LINE      ---      ---       #268
+      01000EC0H   LINE      ---      ---       #269
+      01000EC0H   LINE      ---      ---       #271
+      01000EC0H   LINE      ---      ---       #272
+      01000EC9H   LINE      ---      ---       #273
+      01000ECFH   LINE      ---      ---       #274
+      01000ECFH   LINE      ---      ---       #276
+      01000ED0H   LINE      ---      ---       #278
+      01000ED0H   LINE      ---      ---       #279
+      01000ED5H   LINE      ---      ---       #280
+      01000ED9H   LINE      ---      ---       #281
+      01000ED9H   LINE      ---      ---       #282
       00000007H   SYMBOL    DATA     VOID      i
       02004EB2H   SYMBOL    XDATA    VOID      temp
       00000006H   SYMBOL    DATA     VOID      tgroup
@@ -1321,33 +1308,33 @@
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001D36H   BLOCK     CODE     ---       LVL=0
-      01001D36H   LINE      ---      ---       #259
-      01001D36H   LINE      ---      ---       #260
-      01001D36H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001D36H   LINE      ---      ---       #261
-      01001D38H   LINE      ---      ---       #262
-      01001D3CH   LINE      ---      ---       #263
-      01001D3DH   LINE      ---      ---       #264
-      01001D3EH   LINE      ---      ---       #265
-      01001D40H   LINE      ---      ---       #266
-      01001D42H   LINE      ---      ---       #267
-      01001D44H   LINE      ---      ---       #268
-      01001D4BH   LINE      ---      ---       #269
-      01001D54H   LINE      ---      ---       #270
-      01001D64H   LINE      ---      ---       #271
-      01001DC4H   LINE      ---      ---       #272
-      01001DC7H   LINE      ---      ---       #274
-      01001DD0H   LINE      ---      ---       #275
-      01001DD9H   LINE      ---      ---       #276
-      01001DE9H   LINE      ---      ---       #277
-      01001E49H   LINE      ---      ---       #278
-      01001E4CH   LINE      ---      ---       #280
-      01001E55H   LINE      ---      ---       #281
-      01001E6FH   LINE      ---      ---       #282
-      01001E92H   LINE      ---      ---       #283
-      01001E92H   LINE      ---      ---       #284
-      01001E95H   LINE      ---      ---       #285
+      01001D28H   BLOCK     CODE     ---       LVL=0
+      01001D28H   LINE      ---      ---       #285
+      01001D28H   LINE      ---      ---       #286
+      01001D28H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001D28H   LINE      ---      ---       #287
+      01001D2AH   LINE      ---      ---       #288
+      01001D2EH   LINE      ---      ---       #289
+      01001D2FH   LINE      ---      ---       #290
+      01001D30H   LINE      ---      ---       #291
+      01001D32H   LINE      ---      ---       #292
+      01001D34H   LINE      ---      ---       #293
+      01001D36H   LINE      ---      ---       #294
+      01001D3DH   LINE      ---      ---       #295
+      01001D46H   LINE      ---      ---       #296
+      01001D56H   LINE      ---      ---       #297
+      01001DB6H   LINE      ---      ---       #298
+      01001DB9H   LINE      ---      ---       #300
+      01001DC2H   LINE      ---      ---       #301
+      01001DCBH   LINE      ---      ---       #302
+      01001DDBH   LINE      ---      ---       #303
+      01001E3BH   LINE      ---      ---       #304
+      01001E3EH   LINE      ---      ---       #306
+      01001E47H   LINE      ---      ---       #307
+      01001E61H   LINE      ---      ---       #308
+      01001E84H   LINE      ---      ---       #309
+      01001E84H   LINE      ---      ---       #310
+      01001E87H   LINE      ---      ---       #311
       00000007H   SYMBOL    DATA     VOID      i
       02004E86H   SYMBOL    XDATA    VOID      j
       00000006H   SYMBOL    DATA     VOID      tgroup
@@ -1358,109 +1345,109 @@
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001BBCH   BLOCK     CODE     ---       LVL=0
-      01001BBCH   LINE      ---      ---       #287
-      01001BC7H   LINE      ---      ---       #288
-      01001BC7H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001BC7H   LINE      ---      ---       #290
-      01001BCEH   LINE      ---      ---       #291
-      01001BCEH   LINE      ---      ---       #292
-      01001BE3H   LINE      ---      ---       #293
-      01001BE6H   LINE      ---      ---       #294
-      01001BE9H   LINE      ---      ---       #295
-      01001BEBH   LINE      ---      ---       #296
+      01001BABH   BLOCK     CODE     ---       LVL=0
+      01001BABH   LINE      ---      ---       #313
+      01001BB6H   LINE      ---      ---       #314
+      01001BB6H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001BB6H   LINE      ---      ---       #316
+      01001BBDH   LINE      ---      ---       #317
+      01001BBDH   LINE      ---      ---       #318
+      01001BD2H   LINE      ---      ---       #319
+      01001BD5H   LINE      ---      ---       #320
+      01001BD8H   LINE      ---      ---       #321
+      01001BDAH   LINE      ---      ---       #322
       00000007H   SYMBOL    DATA     VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010019B2H   BLOCK     CODE     ---       LVL=0
-      010019B2H   LINE      ---      ---       #299
-      010019B2H   LINE      ---      ---       #300
-      010019B2H   BLOCK     CODE     NEAR LAB  LVL=1
-      010019B2H   LINE      ---      ---       #302
-      010019B7H   LINE      ---      ---       #303
-      010019B9H   LINE      ---      ---       #304
-      010019BBH   LINE      ---      ---       #305
-      010019BDH   LINE      ---      ---       #306
-      010019BFH   LINE      ---      ---       #307
-      010019C1H   LINE      ---      ---       #308
-      010019C3H   LINE      ---      ---       #309
-      010019C5H   LINE      ---      ---       #310
-      010019C7H   LINE      ---      ---       #311
-      010019C9H   LINE      ---      ---       #312
-      010019CBH   LINE      ---      ---       #313
-      010019CDH   LINE      ---      ---       #314
-      010019CFH   LINE      ---      ---       #315
-      010019D1H   LINE      ---      ---       #317
-      010019D3H   LINE      ---      ---       #319
-      01001A01H   LINE      ---      ---       #321
-      01001A01H   LINE      ---      ---       #322
-      01001A08H   LINE      ---      ---       #323
-      01001A0AH   LINE      ---      ---       #325
-      01001A0AH   LINE      ---      ---       #326
-      01001A11H   LINE      ---      ---       #327
-      01001A16H   LINE      ---      ---       #328
-      01001A16H   LINE      ---      ---       #330
-      01001A26H   LINE      ---      ---       #331
-      01001A35H   LINE      ---      ---       #332
-      01001A39H   LINE      ---      ---       #333
-      01001A3FH   LINE      ---      ---       #334
-      01001A45H   LINE      ---      ---       #335
-      01001A4DH   LINE      ---      ---       #336
-      01001A4DH   LINE      ---      ---       #337
-      01001A55H   LINE      ---      ---       #338
-      01001A5DH   LINE      ---      ---       #339
-      01001A65H   LINE      ---      ---       #340
-      01001A71H   LINE      ---      ---       #341
-      01001A90H   LINE      ---      ---       #342
-      01001A96H   LINE      ---      ---       #343
-      01001A98H   LINE      ---      ---       #344
-      01001A98H   LINE      ---      ---       #345
-      01001A9DH   LINE      ---      ---       #346
-      01001A9DH   LINE      ---      ---       #348
-      01001AAFH   LINE      ---      ---       #349
-      01001AAFH   LINE      ---      ---       #350
-      01001ACBH   LINE      ---      ---       #351
-      01001ADEH   LINE      ---      ---       #352
-      01001AE4H   LINE      ---      ---       #353
-      01001AE4H   LINE      ---      ---       #354
-      01001AE6H   LINE      ---      ---       #355
-      01001AE8H   LINE      ---      ---       #357
-      01001AE8H   LINE      ---      ---       #359
-      01001AEEH   LINE      ---      ---       #360
-      01001AF5H   LINE      ---      ---       #361
-      01001B0DH   LINE      ---      ---       #362
-      01001B1CH   LINE      ---      ---       #363
-      01001B1CH   LINE      ---      ---       #364
-      01001B21H   LINE      ---      ---       #365
-      01001B21H   LINE      ---      ---       #366
-      01001B32H   LINE      ---      ---       #367
-      01001B45H   LINE      ---      ---       #368
-      01001B4CH   LINE      ---      ---       #369
-      01001B4CH   LINE      ---      ---       #370
-      01001B53H   LINE      ---      ---       #371
-      01001B55H   LINE      ---      ---       #373
-      01001B55H   LINE      ---      ---       #374
-      01001B5CH   LINE      ---      ---       #375
-      01001B5CH   LINE      ---      ---       #376
-      01001B5CH   LINE      ---      ---       #377
-      01001B64H   LINE      ---      ---       #378
-      01001B6CH   LINE      ---      ---       #379
-      01001B74H   LINE      ---      ---       #380
-      01001B7AH   LINE      ---      ---       #381
-      01001B7AH   LINE      ---      ---       #382
-      01001B82H   LINE      ---      ---       #384
-      01001B90H   LINE      ---      ---       #385
-      01001B90H   LINE      ---      ---       #386
-      01001B93H   LINE      ---      ---       #387
-      01001B93H   LINE      ---      ---       #390
-      01001BA0H   LINE      ---      ---       #391
-      01001BA0H   LINE      ---      ---       #392
-      01001BA7H   LINE      ---      ---       #393
-      01001BA7H   LINE      ---      ---       #395
-      01001BA7H   LINE      ---      ---       #396
-      01001BADH   LINE      ---      ---       #397
-      01001BADH   LINE      ---      ---       #400
+      010019A1H   BLOCK     CODE     ---       LVL=0
+      010019A1H   LINE      ---      ---       #325
+      010019A1H   LINE      ---      ---       #326
+      010019A1H   BLOCK     CODE     NEAR LAB  LVL=1
+      010019A1H   LINE      ---      ---       #328
+      010019A6H   LINE      ---      ---       #329
+      010019A8H   LINE      ---      ---       #330
+      010019AAH   LINE      ---      ---       #331
+      010019ACH   LINE      ---      ---       #332
+      010019AEH   LINE      ---      ---       #333
+      010019B0H   LINE      ---      ---       #334
+      010019B2H   LINE      ---      ---       #335
+      010019B4H   LINE      ---      ---       #336
+      010019B6H   LINE      ---      ---       #337
+      010019B8H   LINE      ---      ---       #338
+      010019BAH   LINE      ---      ---       #339
+      010019BCH   LINE      ---      ---       #340
+      010019BEH   LINE      ---      ---       #341
+      010019C0H   LINE      ---      ---       #343
+      010019C2H   LINE      ---      ---       #345
+      010019F0H   LINE      ---      ---       #347
+      010019F0H   LINE      ---      ---       #348
+      010019F7H   LINE      ---      ---       #349
+      010019F9H   LINE      ---      ---       #351
+      010019F9H   LINE      ---      ---       #352
+      01001A00H   LINE      ---      ---       #353
+      01001A05H   LINE      ---      ---       #354
+      01001A05H   LINE      ---      ---       #356
+      01001A15H   LINE      ---      ---       #357
+      01001A24H   LINE      ---      ---       #358
+      01001A28H   LINE      ---      ---       #359
+      01001A2EH   LINE      ---      ---       #360
+      01001A34H   LINE      ---      ---       #361
+      01001A3CH   LINE      ---      ---       #362
+      01001A3CH   LINE      ---      ---       #363
+      01001A44H   LINE      ---      ---       #364
+      01001A4CH   LINE      ---      ---       #365
+      01001A54H   LINE      ---      ---       #366
+      01001A60H   LINE      ---      ---       #367
+      01001A7FH   LINE      ---      ---       #368
+      01001A85H   LINE      ---      ---       #369
+      01001A87H   LINE      ---      ---       #370
+      01001A87H   LINE      ---      ---       #371
+      01001A8CH   LINE      ---      ---       #372
+      01001A8CH   LINE      ---      ---       #374
+      01001A9EH   LINE      ---      ---       #375
+      01001A9EH   LINE      ---      ---       #376
+      01001ABAH   LINE      ---      ---       #377
+      01001ACDH   LINE      ---      ---       #378
+      01001AD3H   LINE      ---      ---       #379
+      01001AD3H   LINE      ---      ---       #380
+      01001AD5H   LINE      ---      ---       #381
+      01001AD7H   LINE      ---      ---       #383
+      01001AD7H   LINE      ---      ---       #385
+      01001ADDH   LINE      ---      ---       #386
+      01001AE4H   LINE      ---      ---       #387
+      01001AFCH   LINE      ---      ---       #388
+      01001B0BH   LINE      ---      ---       #389
+      01001B0BH   LINE      ---      ---       #390
+      01001B10H   LINE      ---      ---       #391
+      01001B10H   LINE      ---      ---       #392
+      01001B21H   LINE      ---      ---       #393
+      01001B34H   LINE      ---      ---       #394
+      01001B3BH   LINE      ---      ---       #395
+      01001B3BH   LINE      ---      ---       #396
+      01001B42H   LINE      ---      ---       #397
+      01001B44H   LINE      ---      ---       #399
+      01001B44H   LINE      ---      ---       #400
+      01001B4BH   LINE      ---      ---       #401
+      01001B4BH   LINE      ---      ---       #402
+      01001B4BH   LINE      ---      ---       #403
+      01001B53H   LINE      ---      ---       #404
+      01001B5BH   LINE      ---      ---       #405
+      01001B63H   LINE      ---      ---       #406
+      01001B69H   LINE      ---      ---       #407
+      01001B69H   LINE      ---      ---       #408
+      01001B71H   LINE      ---      ---       #410
+      01001B7FH   LINE      ---      ---       #411
+      01001B7FH   LINE      ---      ---       #412
+      01001B82H   LINE      ---      ---       #413
+      01001B82H   LINE      ---      ---       #416
+      01001B8FH   LINE      ---      ---       #417
+      01001B8FH   LINE      ---      ---       #418
+      01001B96H   LINE      ---      ---       #419
+      01001B96H   LINE      ---      ---       #421
+      01001B96H   LINE      ---      ---       #422
+      01001B9CH   LINE      ---      ---       #423
+      01001B9CH   LINE      ---      ---       #426
       02004E2FH   SYMBOL    XDATA    VOID      i
       02004E30H   SYMBOL    XDATA    VOID      j
       02004E31H   SYMBOL    XDATA    VOID      temp
@@ -1479,563 +1466,537 @@
       ---         BLOCKEND  CODE     ---       LVL=0
 
       ---         MODULE    ---      ---       LED
-      01001E96H   PUBLIC    CODE     ---       LED_handle
-      01001576H   PUBLIC    CODE     ---       LED_device_poweroff
-      01000FE9H   PUBLIC    CODE     ---       LED_device_poweron
-      01000FA3H   PUBLIC    CODE     ---       LED_all_shutdown
-
-      01000FA3H   BLOCK     CODE     ---       LVL=0
-      01000FA3H   LINE      ---      ---       #4
-      01000FA3H   LINE      ---      ---       #5
-      01000FA3H   LINE      ---      ---       #7
-      01000FA9H   LINE      ---      ---       #8
-      01000FAFH   LINE      ---      ---       #9
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000FE9H   BLOCK     CODE     ---       LVL=0
-      01000FE9H   LINE      ---      ---       #13
-      01000FE9H   LINE      ---      ---       #14
-      01000FE9H   LINE      ---      ---       #15
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01001576H   BLOCK     CODE     ---       LVL=0
-      01001576H   LINE      ---      ---       #18
-      01001576H   LINE      ---      ---       #19
-      01001576H   LINE      ---      ---       #20
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01001E96H   BLOCK     CODE     ---       LVL=0
-      01001E96H   LINE      ---      ---       #24
-      01001E96H   LINE      ---      ---       #25
-      01001E96H   LINE      ---      ---       #26
-      01001EA0H   LINE      ---      ---       #29
-      01001EA6H   LINE      ---      ---       #30
-      01001EA6H   LINE      ---      ---       #32
-      01001EADH   LINE      ---      ---       #33
-      01001EADH   LINE      ---      ---       #34
-      01001EB0H   LINE      ---      ---       #35
-      01001EB2H   LINE      ---      ---       #36
-      01001EB9H   LINE      ---      ---       #37
-      01001EB9H   LINE      ---      ---       #38
-      01001EBFH   LINE      ---      ---       #39
-      01001EBFH   LINE      ---      ---       #40
-      01001EC5H   LINE      ---      ---       #41
-      01001ECBH   LINE      ---      ---       #42
-      01001ECBH   LINE      ---      ---       #43
-      01001ECDH   LINE      ---      ---       #45
-      01001ECDH   LINE      ---      ---       #46
-      01001ED4H   LINE      ---      ---       #47
-      01001ED4H   LINE      ---      ---       #48
-      01001ED6H   LINE      ---      ---       #49
-      01001EDAH   LINE      ---      ---       #50
-      01001EE1H   LINE      ---      ---       #51
-      01001EE1H   LINE      ---      ---       #52
-      01001EE1H   LINE      ---      ---       #55
-      01001EE7H   LINE      ---      ---       #56
-      01001EE7H   LINE      ---      ---       #57
-      01001EF3H   LINE      ---      ---       #58
-      01001EF3H   LINE      ---      ---       #72
-      01001EF7H   LINE      ---      ---       #73
-      01001EF7H   LINE      ---      ---       #74
-      01001EFDH   LINE      ---      ---       #75
-      01001F04H   LINE      ---      ---       #76
-      01001F06H   LINE      ---      ---       #78
-      01001F06H   LINE      ---      ---       #79
-      01001F0DH   LINE      ---      ---       #80
-      01001F12H   LINE      ---      ---       #81
-      01001F12H   LINE      ---      ---       #88
-      01001F1AH   LINE      ---      ---       #89
-      01001F1AH   LINE      ---      ---       #90
-      01001F1BH   LINE      ---      ---       #92
-      01001F1BH   LINE      ---      ---       #94
-      01001F22H   LINE      ---      ---       #95
-      01001F22H   LINE      ---      ---       #96
-      01001F22H   LINE      ---      ---       #98
-      01001F22H   LINE      ---      ---       #100
-      01001F29H   LINE      ---      ---       #101
-      01001F29H   LINE      ---      ---       #103
+      01001065H   PUBLIC    CODE     ---       LED_handle
+      01000F9CH   PUBLIC    CODE     ---       LED_all_shutdown
+
+      01000F9CH   BLOCK     CODE     ---       LVL=0
+      01000F9CH   LINE      ---      ---       #4
+      01000F9CH   LINE      ---      ---       #5
+      01000F9CH   LINE      ---      ---       #7
+      01000FA2H   LINE      ---      ---       #8
+      01000FA8H   LINE      ---      ---       #9
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001065H   BLOCK     CODE     ---       LVL=0
+      01001065H   LINE      ---      ---       #14
+      01001065H   LINE      ---      ---       #15
+      01001065H   LINE      ---      ---       #16
+      0100106DH   LINE      ---      ---       #19
+      01001073H   LINE      ---      ---       #20
+      01001073H   LINE      ---      ---       #22
+      0100107AH   LINE      ---      ---       #23
+      0100107AH   LINE      ---      ---       #24
+      0100107CH   LINE      ---      ---       #25
+      0100107EH   LINE      ---      ---       #26
+      01001085H   LINE      ---      ---       #27
+      01001085H   LINE      ---      ---       #28
+      0100108BH   LINE      ---      ---       #29
+      0100108BH   LINE      ---      ---       #30
+      01001091H   LINE      ---      ---       #31
+      01001097H   LINE      ---      ---       #32
+      01001097H   LINE      ---      ---       #33
+      01001099H   LINE      ---      ---       #35
+      01001099H   LINE      ---      ---       #36
+      010010A0H   LINE      ---      ---       #37
+      010010A0H   LINE      ---      ---       #38
+      010010A2H   LINE      ---      ---       #39
+      010010A6H   LINE      ---      ---       #40
+      010010ACH   LINE      ---      ---       #41
+      010010ACH   LINE      ---      ---       #42
+      010010ACH   LINE      ---      ---       #45
+      010010B1H   LINE      ---      ---       #46
+      010010B1H   LINE      ---      ---       #47
+      010010BDH   LINE      ---      ---       #48
+      010010BDH   LINE      ---      ---       #62
+      010010C1H   LINE      ---      ---       #63
+      010010C1H   LINE      ---      ---       #64
+      010010C7H   LINE      ---      ---       #65
+      010010CDH   LINE      ---      ---       #66
+      010010CFH   LINE      ---      ---       #68
+      010010CFH   LINE      ---      ---       #69
+      010010D5H   LINE      ---      ---       #70
+      010010DAH   LINE      ---      ---       #71
+      010010DAH   LINE      ---      ---       #78
+      010010E2H   LINE      ---      ---       #79
+      010010E2H   LINE      ---      ---       #80
+      010010E3H   LINE      ---      ---       #82
+      010010E3H   LINE      ---      ---       #84
+      010010E9H   LINE      ---      ---       #85
+      010010E9H   LINE      ---      ---       #86
+      010010E9H   LINE      ---      ---       #88
+      010010E9H   LINE      ---      ---       #90
+      010010E9H   LINE      ---      ---       #92
       ---         BLOCKEND  ---      ---       LVL=0
 
       ---         MODULE    ---      ---       SYS
-      01000DA8H   PUBLIC    CODE     ---       YC_System_Main
-      01001443H   PUBLIC    CODE     ---       kb_button_press_timer500ms
-      010010C8H   PUBLIC    CODE     ---       YC_pairing_timerout_500ms
-      010014DBH   PUBLIC    CODE     ---       YC_wait_disconnect_timer500ms
-      010013D9H   PUBLIC    CODE     ---       YC_connect_timeout_500ms
-      0100150DH   PUBLIC    CODE     ---       LED_timer500ms
-      01001F33H   PUBLIC    CODE     ---       System_Reset_Connect
-      010010E5H   PUBLIC    CODE     ---       System_long_sleep
-      01000D8BH   PUBLIC    CODE     ---       System_Software_init
-
-      01000C16H   BLOCK     CODE     ---       LVL=0
-      01000C16H   LINE      ---      ---       #11
-      01000C16H   LINE      ---      ---       #12
-      01000C16H   LINE      ---      ---       #13
-      01000C22H   LINE      ---      ---       #14
-      01000C2EH   LINE      ---      ---       #15
-      01000C3AH   LINE      ---      ---       #16
-      01000C46H   LINE      ---      ---       #17
-      01000C52H   LINE      ---      ---       #18
-      01000C5EH   LINE      ---      ---       #20
-      01000C63H   LINE      ---      ---       #21
-      01000C67H   LINE      ---      ---       #23
-      01000C6BH   LINE      ---      ---       #24
-      01000C6FH   LINE      ---      ---       #25
-      01000C73H   LINE      ---      ---       #26
-      01000C77H   LINE      ---      ---       #27
-      01000C7BH   LINE      ---      ---       #28
-      01000C7FH   LINE      ---      ---       #29
-      01000C83H   LINE      ---      ---       #30
-      01000C87H   LINE      ---      ---       #31
-      01000C8BH   LINE      ---      ---       #32
-      01000C8FH   LINE      ---      ---       #34
-      01000C93H   LINE      ---      ---       #35
-      01000C97H   LINE      ---      ---       #36
-      01000C9BH   LINE      ---      ---       #37
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000FE4H   BLOCK     CODE     ---       LVL=0
-      01000FE4H   LINE      ---      ---       #39
-      01000FE4H   LINE      ---      ---       #40
-      01000FE4H   LINE      ---      ---       #41
-      01000FE7H   LINE      ---      ---       #42
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000D8BH   BLOCK     CODE     ---       LVL=0
-      01000D8BH   LINE      ---      ---       #46
-      01000D8BH   LINE      ---      ---       #47
-      01000D8BH   LINE      ---      ---       #48
-      01000D8DH   LINE      ---      ---       #49
-      01000D90H   LINE      ---      ---       #50
-      01000D96H   LINE      ---      ---       #51
-      01000D9CH   LINE      ---      ---       #52
-      01000DA1H   LINE      ---      ---       #53
-      01000DA7H   LINE      ---      ---       #54
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01001F2AH   BLOCK     CODE     ---       LVL=0
-      01001F2AH   LINE      ---      ---       #56
-      01001F2AH   LINE      ---      ---       #57
-      01001F2AH   LINE      ---      ---       #58
-      01001F30H   LINE      ---      ---       #59
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      010010E5H   BLOCK     CODE     ---       LVL=0
-      010010E5H   LINE      ---      ---       #62
-      010010E5H   LINE      ---      ---       #63
-      010010E5H   LINE      ---      ---       #64
-      010010EAH   LINE      ---      ---       #65
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01001F33H   BLOCK     CODE     ---       LVL=0
-      01001F33H   LINE      ---      ---       #68
-      01001F33H   LINE      ---      ---       #69
-      01001F33H   LINE      ---      ---       #70
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01001F35H   BLOCK     CODE     ---       LVL=0
-      01001F35H   LINE      ---      ---       #78
-      01001F3AH   BLOCK     CODE     NEAR LAB  LVL=1
-      01001F3AH   LINE      ---      ---       #80
-      01001F44H   LINE      ---      ---       #82
-      01001F44H   LINE      ---      ---       #84
-      01001F44H   LINE      ---      ---       #85
+      01000DE8H   PUBLIC    CODE     ---       YC_System_Main
+      01001636H   PUBLIC    CODE     ---       kb_button_press_timer500ms
+      010015C7H   PUBLIC    CODE     ---       YC_pairing_timerout_500ms
+      01001711H   PUBLIC    CODE     ---       YC_wait_disconnect_timer500ms
+      010015FEH   PUBLIC    CODE     ---       YC_connect_timeout_500ms
+      0100101CH   PUBLIC    CODE     ---       LED_timer500ms
+      01001E91H   PUBLIC    CODE     ---       System_Reset_Connect
+      0100125EH   PUBLIC    CODE     ---       System_long_sleep
+      01000DCBH   PUBLIC    CODE     ---       System_Software_init
+
+      01000C04H   BLOCK     CODE     ---       LVL=0
+      01000C04H   LINE      ---      ---       #11
+      01000C04H   LINE      ---      ---       #12
+      01000C04H   LINE      ---      ---       #13
+      01000C10H   LINE      ---      ---       #14
+      01000C1CH   LINE      ---      ---       #15
+      01000C28H   LINE      ---      ---       #16
+      01000C34H   LINE      ---      ---       #17
+      01000C40H   LINE      ---      ---       #18
+      01000C4CH   LINE      ---      ---       #20
+      01000C51H   LINE      ---      ---       #21
+      01000C55H   LINE      ---      ---       #23
+      01000C59H   LINE      ---      ---       #24
+      01000C5DH   LINE      ---      ---       #25
+      01000C61H   LINE      ---      ---       #26
+      01000C65H   LINE      ---      ---       #27
+      01000C69H   LINE      ---      ---       #28
+      01000C6DH   LINE      ---      ---       #29
+      01000C71H   LINE      ---      ---       #30
+      01000C75H   LINE      ---      ---       #31
+      01000C79H   LINE      ---      ---       #32
+      01000C7DH   LINE      ---      ---       #34
+      01000C81H   LINE      ---      ---       #35
+      01000C85H   LINE      ---      ---       #36
+      01000C89H   LINE      ---      ---       #37
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100141EH   BLOCK     CODE     ---       LVL=0
+      0100141EH   LINE      ---      ---       #39
+      0100141EH   LINE      ---      ---       #40
+      0100141EH   LINE      ---      ---       #41
+      01001420H   LINE      ---      ---       #42
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000DCBH   BLOCK     CODE     ---       LVL=0
+      01000DCBH   LINE      ---      ---       #46
+      01000DCBH   LINE      ---      ---       #47
+      01000DCBH   LINE      ---      ---       #48
+      01000DCDH   LINE      ---      ---       #49
+      01000DD0H   LINE      ---      ---       #50
+      01000DD6H   LINE      ---      ---       #51
+      01000DDCH   LINE      ---      ---       #52
+      01000DE1H   LINE      ---      ---       #53
+      01000DE7H   LINE      ---      ---       #54
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001E88H   BLOCK     CODE     ---       LVL=0
+      01001E88H   LINE      ---      ---       #56
+      01001E88H   LINE      ---      ---       #57
+      01001E88H   LINE      ---      ---       #58
+      01001E8EH   LINE      ---      ---       #59
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100125EH   BLOCK     CODE     ---       LVL=0
+      0100125EH   LINE      ---      ---       #62
+      0100125EH   LINE      ---      ---       #63
+      0100125EH   LINE      ---      ---       #64
+      01001263H   LINE      ---      ---       #65
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001E91H   BLOCK     CODE     ---       LVL=0
+      01001E91H   LINE      ---      ---       #68
+      01001E91H   LINE      ---      ---       #69
+      01001E91H   LINE      ---      ---       #70
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001E93H   BLOCK     CODE     ---       LVL=0
+      01001E93H   LINE      ---      ---       #78
+      01001E98H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001E98H   LINE      ---      ---       #80
+      01001EA2H   LINE      ---      ---       #82
+      01001EA2H   LINE      ---      ---       #84
+      01001EA2H   LINE      ---      ---       #85
       02004EAAH   SYMBOL    XDATA    VOID      temp
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010010EFH   BLOCK     CODE     ---       LVL=0
-      010010EFH   LINE      ---      ---       #87
-      010010EFH   LINE      ---      ---       #88
-      010010EFH   LINE      ---      ---       #89
-      01001116H   LINE      ---      ---       #90
-      01001116H   LINE      ---      ---       #91
-      01001116H   LINE      ---      ---       #95
-      01001116H   LINE      ---      ---       #96
-      01001119H   LINE      ---      ---       #97
-      0100111CH   LINE      ---      ---       #98
-      0100112CH   LINE      ---      ---       #99
-      01001131H   LINE      ---      ---       #100
-      01001141H   LINE      ---      ---       #101
-      0100114DH   LINE      ---      ---       #102
-      0100114DH   LINE      ---      ---       #103
-      01001157H   LINE      ---      ---       #104
-      01001161H   LINE      ---      ---       #105
-      01001167H   LINE      ---      ---       #106
-      01001167H   LINE      ---      ---       #108
-      01001169H   LINE      ---      ---       #109
-      01001169H   LINE      ---      ---       #110
-      01001169H   LINE      ---      ---       #111
-      0100116BH   LINE      ---      ---       #112
-      0100116BH   LINE      ---      ---       #115
-      0100116BH   LINE      ---      ---       #116
-      0100116EH   LINE      ---      ---       #117
-      0100116EH   LINE      ---      ---       #120
-      0100116EH   LINE      ---      ---       #121
-      01001174H   LINE      ---      ---       #122
-      01001178H   LINE      ---      ---       #123
-      0100117DH   LINE      ---      ---       #124
-      01001183H   LINE      ---      ---       #125
-      01001185H   LINE      ---      ---       #126
-      0100118AH   LINE      ---      ---       #127
-      01001190H   LINE      ---      ---       #128
-      01001191H   LINE      ---      ---       #129
-      01001191H   LINE      ---      ---       #130
-      01001197H   LINE      ---      ---       #131
-      0100119AH   LINE      ---      ---       #132
-      0100119CH   LINE      ---      ---       #133
-      010011A1H   LINE      ---      ---       #134
-      010011A6H   LINE      ---      ---       #135
-      010011ACH   LINE      ---      ---       #136
-      010011ADH   LINE      ---      ---       #137
-      010011ADH   LINE      ---      ---       #138
-      010011B2H   LINE      ---      ---       #139
-      010011B8H   LINE      ---      ---       #140
-      010011B9H   LINE      ---      ---       #149
-      010011B9H   LINE      ---      ---       #150
-      010011C1H   LINE      ---      ---       #151
-      010011C6H   LINE      ---      ---       #152
-      010011C8H   LINE      ---      ---       #153
-      010011CDH   LINE      ---      ---       #155
-      010011D2H   LINE      ---      ---       #156
-      010011D2H   LINE      ---      ---       #157
-      010011D4H   LINE      ---      ---       #158
-      010011D6H   LINE      ---      ---       #159
-      010011D6H   LINE      ---      ---       #160
-      010011D6H   LINE      ---      ---       #162
-      010011DDH   LINE      ---      ---       #163
-      010011DDH   LINE      ---      ---       #164
-      010011DFH   LINE      ---      ---       #165
-      010011DFH   LINE      ---      ---       #166
-      010011DFH   LINE      ---      ---       #169
-      010011E5H   LINE      ---      ---       #170
-      010011E5H   LINE      ---      ---       #171
-      010011E8H   LINE      ---      ---       #172
-      010011E8H   LINE      ---      ---       #173
-      010011E8H   LINE      ---      ---       #175
-      010011EAH   LINE      ---      ---       #176
-      010011F1H   LINE      ---      ---       #177
-      010011F1H   LINE      ---      ---       #178
-      010011F1H   LINE      ---      ---       #179
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      0100150DH   BLOCK     CODE     ---       LVL=0
-      0100150DH   LINE      ---      ---       #182
-      0100150DH   LINE      ---      ---       #183
-      0100150DH   LINE      ---      ---       #184
-      01001515H   LINE      ---      ---       #186
-      0100151BH   LINE      ---      ---       #187
-      0100151BH   LINE      ---      ---       #188
-      01001523H   LINE      ---      ---       #189
-      01001523H   LINE      ---      ---       #190
-      01001527H   LINE      ---      ---       #191
-      01001529H   LINE      ---      ---       #193
-      01001529H   LINE      ---      ---       #194
-      01001530H   LINE      ---      ---       #195
-      01001530H   LINE      ---      ---       #196
-      01001530H   LINE      ---      ---       #199
-      01001536H   LINE      ---      ---       #200
-      01001536H   LINE      ---      ---       #213
-      0100153CH   LINE      ---      ---       #214
-      0100153CH   LINE      ---      ---       #215
-      0100153EH   LINE      ---      ---       #216
-      01001545H   LINE      ---      ---       #217
-      0100154BH   LINE      ---      ---       #218
-      01001552H   LINE      ---      ---       #219
-      01001552H   LINE      ---      ---       #221
-      01001559H   LINE      ---      ---       #222
-      01001559H   LINE      ---      ---       #223
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      010013D9H   BLOCK     CODE     ---       LVL=0
-      010013D9H   LINE      ---      ---       #225
-      010013D9H   LINE      ---      ---       #226
-      010013D9H   LINE      ---      ---       #229
-      010013E0H   LINE      ---      ---       #230
-      010013E0H   LINE      ---      ---       #231
-      010013ECH   LINE      ---      ---       #232
-      010013ECH   LINE      ---      ---       #233
-      010013EEH   LINE      ---      ---       #234
-      010013F4H   LINE      ---      ---       #235
-      010013F4H   LINE      ---      ---       #236
-      010013F5H   LINE      ---      ---       #238
-      010013F5H   LINE      ---      ---       #239
-      01001401H   LINE      ---      ---       #240
-      01001401H   LINE      ---      ---       #241
-      01001407H   LINE      ---      ---       #242
-      01001407H   LINE      ---      ---       #243
-      01001409H   LINE      ---      ---       #244
-      0100140EH   LINE      ---      ---       #245
-      0100140EH   LINE      ---      ---       #246
-      01001410H   LINE      ---      ---       #247
-      01001410H   LINE      ---      ---       #248
-      01001410H   LINE      ---      ---       #249
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      010014DBH   BLOCK     CODE     ---       LVL=0
-      010014DBH   LINE      ---      ---       #252
-      010014DBH   LINE      ---      ---       #253
-      010014DBH   LINE      ---      ---       #255
-      010014E1H   LINE      ---      ---       #256
-      010014E1H   LINE      ---      ---       #257
-      010014E4H   LINE      ---      ---       #258
-      010014E7H   LINE      ---      ---       #259
-      010014E7H   LINE      ---      ---       #260
-      010014F5H   LINE      ---      ---       #262
-      010014F5H   LINE      ---      ---       #263
-      010014FAH   LINE      ---      ---       #264
-      01001500H   LINE      ---      ---       #265
-      01001502H   LINE      ---      ---       #266
-      01001507H   LINE      ---      ---       #267
-      0100150CH   LINE      ---      ---       #268
-      0100150CH   LINE      ---      ---       #269
-      0100150CH   LINE      ---      ---       #270
-      0100150CH   LINE      ---      ---       #272
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      010010C8H   BLOCK     CODE     ---       LVL=0
-      010010C8H   LINE      ---      ---       #275
-      010010C8H   LINE      ---      ---       #276
-      010010C8H   LINE      ---      ---       #278
-      010010CEH   LINE      ---      ---       #279
-      010010CEH   LINE      ---      ---       #280
-      010010D5H   LINE      ---      ---       #281
-      010010DBH   LINE      ---      ---       #282
-      010010DEH   LINE      ---      ---       #283
-      010010DEH   LINE      ---      ---       #284
-      010010E2H   LINE      ---      ---       #285
-      010010E4H   LINE      ---      ---       #286
-      010010E4H   LINE      ---      ---       #287
-      010010E4H   LINE      ---      ---       #288
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01001443H   BLOCK     CODE     ---       LVL=0
-      01001443H   LINE      ---      ---       #290
-      01001443H   LINE      ---      ---       #291
-      01001443H   LINE      ---      ---       #308
-      0100144AH   LINE      ---      ---       #309
-      0100144AH   LINE      ---      ---       #310
-      01001453H   LINE      ---      ---       #311
-      01001456H   LINE      ---      ---       #312
-      0100145EH   LINE      ---      ---       #313
-      0100145EH   LINE      ---      ---       #314
-      01001464H   LINE      ---      ---       #315
-      0100146AH   LINE      ---      ---       #316
-      0100146AH   LINE      ---      ---       #317
-      0100146FH   LINE      ---      ---       #318
-      01001471H   LINE      ---      ---       #319
-      01001478H   LINE      ---      ---       #320
-      01001478H   LINE      ---      ---       #321
-      0100147EH   LINE      ---      ---       #322
-      01001483H   LINE      ---      ---       #323
-      01001485H   LINE      ---      ---       #324
-      01001485H   LINE      ---      ---       #325
-      01001485H   LINE      ---      ---       #326
-      01001487H   LINE      ---      ---       #328
-      0100148CH   LINE      ---      ---       #331
-      01001493H   LINE      ---      ---       #332
-      01001493H   LINE      ---      ---       #333
-      01001499H   LINE      ---      ---       #334
-      010014A2H   LINE      ---      ---       #335
-      010014A5H   LINE      ---      ---       #336
-      010014ACH   LINE      ---      ---       #337
-      010014ACH   LINE      ---      ---       #339
-      010014B2H   LINE      ---      ---       #340
-      010014B2H   LINE      ---      ---       #341
-      010014B5H   LINE      ---      ---       #342
-      010014B9H   LINE      ---      ---       #343
-      010014BCH   LINE      ---      ---       #344
-      010014C2H   LINE      ---      ---       #345
-      010014C2H   LINE      ---      ---       #346
-      010014C2H   LINE      ---      ---       #347
-      010014C3H   LINE      ---      ---       #349
-      010014C3H   LINE      ---      ---       #350
-      010014C8H   LINE      ---      ---       #351
-      010014C8H   LINE      ---      ---       #354
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01001429H   BLOCK     CODE     ---       LVL=0
-      01001429H   LINE      ---      ---       #358
-      01001429H   LINE      ---      ---       #359
-      01001429H   LINE      ---      ---       #360
-      0100142BH   LINE      ---      ---       #362
-      01001439H   LINE      ---      ---       #364
-      0100143BH   LINE      ---      ---       #365
-      0100143DH   LINE      ---      ---       #366
-      0100143FH   LINE      ---      ---       #367
-      01001441H   LINE      ---      ---       #368
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      0100176AH   BLOCK     CODE     ---       LVL=0
-      0100176AH   LINE      ---      ---       #380
-      0100176AH   LINE      ---      ---       #381
-      0100176AH   LINE      ---      ---       #383
-      01001770H   LINE      ---      ---       #384
-      01001770H   LINE      ---      ---       #385
-      01001772H   LINE      ---      ---       #386
-      01001772H   LINE      ---      ---       #388
-      01001778H   LINE      ---      ---       #389
-      0100177AH   LINE      ---      ---       #391
-      01001780H   LINE      ---      ---       #392
-      01001780H   LINE      ---      ---       #393
-      01001782H   LINE      ---      ---       #394
-      01001785H   LINE      ---      ---       #395
-      0100178BH   LINE      ---      ---       #396
-      0100178BH   LINE      ---      ---       #397
-      0100178DH   LINE      ---      ---       #398
-      0100178DH   LINE      ---      ---       #399
-      0100178FH   LINE      ---      ---       #401
-      01001795H   LINE      ---      ---       #402
-      01001795H   LINE      ---      ---       #403
-      0100179BH   LINE      ---      ---       #404
-      0100179BH   LINE      ---      ---       #405
-      0100179DH   LINE      ---      ---       #406
-      010017A1H   LINE      ---      ---       #407
-      010017A1H   LINE      ---      ---       #408
-      010017A8H   LINE      ---      ---       #409
-      010017AAH   LINE      ---      ---       #411
-      010017B1H   LINE      ---      ---       #412
-      010017B7H   LINE      ---      ---       #413
-      010017BAH   LINE      ---      ---       #414
-      010017BAH   LINE      ---      ---       #415
-      010017BAH   LINE      ---      ---       #417
-      010017C0H   LINE      ---      ---       #418
-      010017C0H   LINE      ---      ---       #419
-      010017C3H   LINE      ---      ---       #420
-      010017C6H   LINE      ---      ---       #421
-      010017C6H   LINE      ---      ---       #423
-      010017CDH   LINE      ---      ---       #424
-      010017CDH   LINE      ---      ---       #425
-      010017D3H   LINE      ---      ---       #426
-      010017D3H   LINE      ---      ---       #427
-      010017D3H   LINE      ---      ---       #428
-      010017D3H   LINE      ---      ---       #429
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01001F45H   BLOCK     CODE     ---       LVL=0
-      01001F45H   LINE      ---      ---       #443
-      01001F45H   LINE      ---      ---       #444
-      01001F45H   LINE      ---      ---       #445
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000DA8H   BLOCK     CODE     ---       LVL=0
-      01000DA8H   LINE      ---      ---       #450
-      01000DA8H   LINE      ---      ---       #451
-      01000DA8H   LINE      ---      ---       #452
-      01000DABH   LINE      ---      ---       #453
-      01000DABH   LINE      ---      ---       #454
-      01000DAEH   LINE      ---      ---       #455
-      01000DB0H   LINE      ---      ---       #456
-      01000DB2H   LINE      ---      ---       #457
-      01000DB5H   LINE      ---      ---       #459
-      01000DC0H   LINE      ---      ---       #460
-      01000DC0H   LINE      ---      ---       #461
-      01000DC2H   LINE      ---      ---       #463
-      01000DC4H   LINE      ---      ---       #464
-      01000DC6H   LINE      ---      ---       #465
-      01000DC8H   LINE      ---      ---       #466
-      01000DC8H   LINE      ---      ---       #468
-      01000DC8H   LINE      ---      ---       #469
-      01000DE0H   LINE      ---      ---       #472
-      01000DE0H   LINE      ---      ---       #473
-      01000DE3H   LINE      ---      ---       #474
-      01000DE5H   LINE      ---      ---       #475
-      01000DE5H   LINE      ---      ---       #477
-      01000DE5H   LINE      ---      ---       #478
-      01000DE7H   LINE      ---      ---       #479
-      01000DE9H   LINE      ---      ---       #480
-      01000DEBH   LINE      ---      ---       #481
-      01000DEBH   LINE      ---      ---       #482
-      01000DEBH   LINE      ---      ---       #483
+      01001268H   BLOCK     CODE     ---       LVL=0
+      01001268H   LINE      ---      ---       #87
+      01001268H   LINE      ---      ---       #88
+      01001268H   LINE      ---      ---       #89
+      0100128FH   LINE      ---      ---       #90
+      0100128FH   LINE      ---      ---       #91
+      0100128FH   LINE      ---      ---       #95
+      0100128FH   LINE      ---      ---       #96
+      01001291H   LINE      ---      ---       #97
+      01001294H   LINE      ---      ---       #98
+      010012A4H   LINE      ---      ---       #99
+      010012A9H   LINE      ---      ---       #109
+      010012B9H   LINE      ---      ---       #110
+      010012C5H   LINE      ---      ---       #111
+      010012C5H   LINE      ---      ---       #112
+      010012CFH   LINE      ---      ---       #113
+      010012D9H   LINE      ---      ---       #114
+      010012DFH   LINE      ---      ---       #115
+      010012DFH   LINE      ---      ---       #117
+      010012E1H   LINE      ---      ---       #118
+      010012E1H   LINE      ---      ---       #119
+      010012E1H   LINE      ---      ---       #120
+      010012E3H   LINE      ---      ---       #121
+      010012E3H   LINE      ---      ---       #124
+      010012E3H   LINE      ---      ---       #125
+      010012E6H   LINE      ---      ---       #126
+      010012E6H   LINE      ---      ---       #129
+      010012E6H   LINE      ---      ---       #130
+      010012ECH   LINE      ---      ---       #131
+      010012F0H   LINE      ---      ---       #132
+      010012F5H   LINE      ---      ---       #133
+      010012FBH   LINE      ---      ---       #134
+      01001301H   LINE      ---      ---       #135
+      01001306H   LINE      ---      ---       #136
+      0100130CH   LINE      ---      ---       #137
+      0100130DH   LINE      ---      ---       #138
+      0100130DH   LINE      ---      ---       #139
+      01001313H   LINE      ---      ---       #140
+      01001316H   LINE      ---      ---       #141
+      01001318H   LINE      ---      ---       #142
+      0100131DH   LINE      ---      ---       #143
+      01001322H   LINE      ---      ---       #144
+      01001328H   LINE      ---      ---       #145
+      01001329H   LINE      ---      ---       #146
+      01001329H   LINE      ---      ---       #147
+      0100132EH   LINE      ---      ---       #148
+      01001334H   LINE      ---      ---       #149
+      01001335H   LINE      ---      ---       #158
+      01001335H   LINE      ---      ---       #159
+      0100133DH   LINE      ---      ---       #160
+      01001342H   LINE      ---      ---       #161
+      01001344H   LINE      ---      ---       #162
+      01001349H   LINE      ---      ---       #164
+      0100134EH   LINE      ---      ---       #165
+      0100134EH   LINE      ---      ---       #166
+      01001350H   LINE      ---      ---       #167
+      01001352H   LINE      ---      ---       #168
+      01001352H   LINE      ---      ---       #169
+      01001352H   LINE      ---      ---       #171
+      01001359H   LINE      ---      ---       #172
+      01001359H   LINE      ---      ---       #173
+      0100135BH   LINE      ---      ---       #174
+      0100135BH   LINE      ---      ---       #175
+      0100135BH   LINE      ---      ---       #178
+      01001361H   LINE      ---      ---       #179
+      01001361H   LINE      ---      ---       #180
+      01001364H   LINE      ---      ---       #181
+      01001364H   LINE      ---      ---       #182
+      01001364H   LINE      ---      ---       #184
+      01001366H   LINE      ---      ---       #185
+      0100136DH   LINE      ---      ---       #186
+      0100136DH   LINE      ---      ---       #187
+      0100136DH   LINE      ---      ---       #188
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100101CH   BLOCK     CODE     ---       LVL=0
+      0100101CH   LINE      ---      ---       #191
+      0100101CH   LINE      ---      ---       #192
+      0100101CH   LINE      ---      ---       #193
+      01001024H   LINE      ---      ---       #195
+      0100102AH   LINE      ---      ---       #196
+      0100102AH   LINE      ---      ---       #197
+      0100102EH   LINE      ---      ---       #199
+      0100102EH   LINE      ---      ---       #203
+      01001033H   LINE      ---      ---       #204
+      01001033H   LINE      ---      ---       #217
+      01001039H   LINE      ---      ---       #218
+      01001039H   LINE      ---      ---       #219
+      0100103BH   LINE      ---      ---       #220
+      01001041H   LINE      ---      ---       #221
+      01001047H   LINE      ---      ---       #222
+      0100104DH   LINE      ---      ---       #223
+      0100104DH   LINE      ---      ---       #225
+      01001053H   LINE      ---      ---       #226
+      01001053H   LINE      ---      ---       #227
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010015FEH   BLOCK     CODE     ---       LVL=0
+      010015FEH   LINE      ---      ---       #229
+      010015FEH   LINE      ---      ---       #230
+      010015FEH   LINE      ---      ---       #233
+      01001605H   LINE      ---      ---       #234
+      01001605H   LINE      ---      ---       #235
+      01001611H   LINE      ---      ---       #236
+      01001611H   LINE      ---      ---       #237
+      01001613H   LINE      ---      ---       #238
+      01001619H   LINE      ---      ---       #239
+      01001619H   LINE      ---      ---       #240
+      0100161AH   LINE      ---      ---       #242
+      0100161AH   LINE      ---      ---       #243
+      01001626H   LINE      ---      ---       #244
+      01001626H   LINE      ---      ---       #245
+      0100162CH   LINE      ---      ---       #246
+      0100162CH   LINE      ---      ---       #247
+      0100162EH   LINE      ---      ---       #248
+      01001633H   LINE      ---      ---       #249
+      01001633H   LINE      ---      ---       #250
+      01001635H   LINE      ---      ---       #251
+      01001635H   LINE      ---      ---       #252
+      01001635H   LINE      ---      ---       #253
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001711H   BLOCK     CODE     ---       LVL=0
+      01001711H   LINE      ---      ---       #256
+      01001711H   LINE      ---      ---       #257
+      01001711H   LINE      ---      ---       #259
+      01001717H   LINE      ---      ---       #260
+      01001717H   LINE      ---      ---       #261
+      0100171AH   LINE      ---      ---       #262
+      0100171DH   LINE      ---      ---       #263
+      0100171DH   LINE      ---      ---       #264
+      0100172BH   LINE      ---      ---       #266
+      0100172BH   LINE      ---      ---       #267
+      01001730H   LINE      ---      ---       #268
+      01001736H   LINE      ---      ---       #269
+      01001738H   LINE      ---      ---       #270
+      0100173DH   LINE      ---      ---       #271
+      01001742H   LINE      ---      ---       #272
+      01001742H   LINE      ---      ---       #273
+      01001742H   LINE      ---      ---       #274
+      01001742H   LINE      ---      ---       #276
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010015C7H   BLOCK     CODE     ---       LVL=0
+      010015C7H   LINE      ---      ---       #279
+      010015C7H   LINE      ---      ---       #280
+      010015C7H   LINE      ---      ---       #282
+      010015CDH   LINE      ---      ---       #283
+      010015CDH   LINE      ---      ---       #284
+      010015D4H   LINE      ---      ---       #285
+      010015DAH   LINE      ---      ---       #286
+      010015DDH   LINE      ---      ---       #287
+      010015DDH   LINE      ---      ---       #288
+      010015E1H   LINE      ---      ---       #289
+      010015E3H   LINE      ---      ---       #290
+      010015E3H   LINE      ---      ---       #291
+      010015E3H   LINE      ---      ---       #292
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001636H   BLOCK     CODE     ---       LVL=0
+      01001636H   LINE      ---      ---       #294
+      01001636H   LINE      ---      ---       #295
+      01001636H   LINE      ---      ---       #312
+      0100163DH   LINE      ---      ---       #313
+      0100163DH   LINE      ---      ---       #314
+      01001646H   LINE      ---      ---       #315
+      01001649H   LINE      ---      ---       #316
+      01001651H   LINE      ---      ---       #317
+      01001651H   LINE      ---      ---       #318
+      01001657H   LINE      ---      ---       #319
+      0100165DH   LINE      ---      ---       #320
+      0100165DH   LINE      ---      ---       #321
+      01001662H   LINE      ---      ---       #322
+      01001664H   LINE      ---      ---       #323
+      0100166BH   LINE      ---      ---       #324
+      0100166BH   LINE      ---      ---       #325
+      01001671H   LINE      ---      ---       #326
+      01001676H   LINE      ---      ---       #327
+      01001678H   LINE      ---      ---       #328
+      01001678H   LINE      ---      ---       #329
+      01001678H   LINE      ---      ---       #330
+      0100167AH   LINE      ---      ---       #332
+      0100167FH   LINE      ---      ---       #335
+      01001686H   LINE      ---      ---       #336
+      01001686H   LINE      ---      ---       #337
+      0100168CH   LINE      ---      ---       #338
+      01001695H   LINE      ---      ---       #339
+      01001698H   LINE      ---      ---       #340
+      0100169FH   LINE      ---      ---       #341
+      0100169FH   LINE      ---      ---       #343
+      010016A5H   LINE      ---      ---       #344
+      010016A5H   LINE      ---      ---       #345
+      010016A8H   LINE      ---      ---       #346
+      010016ACH   LINE      ---      ---       #347
+      010016AFH   LINE      ---      ---       #348
+      010016B5H   LINE      ---      ---       #349
+      010016B5H   LINE      ---      ---       #350
+      010016B5H   LINE      ---      ---       #351
+      010016B6H   LINE      ---      ---       #353
+      010016B6H   LINE      ---      ---       #354
+      010016BBH   LINE      ---      ---       #355
+      010016BBH   LINE      ---      ---       #358
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010015E4H   BLOCK     CODE     ---       LVL=0
+      010015E4H   LINE      ---      ---       #362
+      010015E4H   LINE      ---      ---       #363
+      010015E4H   LINE      ---      ---       #364
+      010015E6H   LINE      ---      ---       #366
+      010015F4H   LINE      ---      ---       #368
+      010015F6H   LINE      ---      ---       #369
+      010015F8H   LINE      ---      ---       #370
+      010015FAH   LINE      ---      ---       #371
+      010015FCH   LINE      ---      ---       #372
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010010EAH   BLOCK     CODE     ---       LVL=0
+      010010EAH   LINE      ---      ---       #384
+      010010EAH   LINE      ---      ---       #385
+      010010EAH   LINE      ---      ---       #387
+      010010F0H   LINE      ---      ---       #388
+      010010F0H   LINE      ---      ---       #389
+      010010F2H   LINE      ---      ---       #390
+      010010F2H   LINE      ---      ---       #392
+      010010F8H   LINE      ---      ---       #393
+      010010FAH   LINE      ---      ---       #395
+      01001100H   LINE      ---      ---       #396
+      01001100H   LINE      ---      ---       #397
+      01001102H   LINE      ---      ---       #398
+      01001105H   LINE      ---      ---       #399
+      0100110AH   LINE      ---      ---       #400
+      0100110AH   LINE      ---      ---       #404
+      01001110H   LINE      ---      ---       #405
+      01001110H   LINE      ---      ---       #406
+      01001112H   LINE      ---      ---       #407
+      01001118H   LINE      ---      ---       #408
+      0100111EH   LINE      ---      ---       #409
+      0100111EH   LINE      ---      ---       #410
+      01001124H   LINE      ---      ---       #411
+      01001124H   LINE      ---      ---       #412
+      01001126H   LINE      ---      ---       #414
+      0100112CH   LINE      ---      ---       #415
+      0100112CH   LINE      ---      ---       #416
+      01001132H   LINE      ---      ---       #417
+      01001132H   LINE      ---      ---       #418
+      01001134H   LINE      ---      ---       #419
+      01001138H   LINE      ---      ---       #420
+      01001138H   LINE      ---      ---       #421
+      0100113EH   LINE      ---      ---       #422
+      01001140H   LINE      ---      ---       #424
+      01001146H   LINE      ---      ---       #425
+      0100114CH   LINE      ---      ---       #426
+      0100114FH   LINE      ---      ---       #427
+      0100114FH   LINE      ---      ---       #428
+      0100114FH   LINE      ---      ---       #430
+      01001155H   LINE      ---      ---       #431
+      01001155H   LINE      ---      ---       #432
+      01001158H   LINE      ---      ---       #433
+      0100115BH   LINE      ---      ---       #434
+      0100115BH   LINE      ---      ---       #436
+      01001162H   LINE      ---      ---       #437
+      01001162H   LINE      ---      ---       #438
+      01001168H   LINE      ---      ---       #439
+      01001168H   LINE      ---      ---       #440
+      01001168H   LINE      ---      ---       #441
+      01001168H   LINE      ---      ---       #442
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001EA3H   BLOCK     CODE     ---       LVL=0
+      01001EA3H   LINE      ---      ---       #456
+      01001EA3H   LINE      ---      ---       #457
+      01001EA3H   LINE      ---      ---       #458
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000DE8H   BLOCK     CODE     ---       LVL=0
+      01000DE8H   LINE      ---      ---       #463
+      01000DE8H   LINE      ---      ---       #464
+      01000DE8H   LINE      ---      ---       #465
+      01000DEBH   LINE      ---      ---       #466
+      01000DEBH   LINE      ---      ---       #467
+      01000DEEH   LINE      ---      ---       #468
+      01000DF0H   LINE      ---      ---       #469
+      01000DF3H   LINE      ---      ---       #470
+      01000DF6H   LINE      ---      ---       #472
+      01000E01H   LINE      ---      ---       #473
+      01000E01H   LINE      ---      ---       #474
+      01000E03H   LINE      ---      ---       #476
+      01000E05H   LINE      ---      ---       #477
+      01000E07H   LINE      ---      ---       #478
+      01000E09H   LINE      ---      ---       #479
+      01000E09H   LINE      ---      ---       #481
+      01000E09H   LINE      ---      ---       #482
+      01000E21H   LINE      ---      ---       #484
+      01000E21H   LINE      ---      ---       #485
+      01000E24H   LINE      ---      ---       #486
+      01000E26H   LINE      ---      ---       #487
+      01000E26H   LINE      ---      ---       #489
+      01000E26H   LINE      ---      ---       #490
+      01000E28H   LINE      ---      ---       #491
+      01000E2AH   LINE      ---      ---       #492
+      01000E2CH   LINE      ---      ---       #493
+      01000E2CH   LINE      ---      ---       #494
+      01000E2CH   LINE      ---      ---       #495
       ---         BLOCKEND  ---      ---       LVL=0
 
       ---         MODULE    ---      ---       ADC
-      010014C9H   PUBLIC    CODE     ---       YC_adc_check_timer500ms
-      010020CDH   PUBLIC    CODE     ---       YC_adc_check
-      01001F58H   PUBLIC    CODE     ---       YC_adc_init
-
-      01001F58H   BLOCK     CODE     ---       LVL=0
-      01001F58H   LINE      ---      ---       #3
-      01001F58H   LINE      ---      ---       #4
-      01001F58H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001F59H   LINE      ---      ---       #9
-      01001F59H   LINE      ---      ---       #10
-      01001F59H   LINE      ---      ---       #11
-      01001F59H   LINE      ---      ---       #12
-      01001F63H   LINE      ---      ---       #13
-      01001F63H   LINE      ---      ---       #14
-      01001F76H   LINE      ---      ---       #15
-      01001F7EH   LINE      ---      ---       #18
-      01001F89H   LINE      ---      ---       #19
-      01001F89H   LINE      ---      ---       #20
-      01001FD7H   LINE      ---      ---       #21
-      01002025H   LINE      ---      ---       #22
-      01002026H   LINE      ---      ---       #23
-      01002030H   LINE      ---      ---       #24
-      01002030H   LINE      ---      ---       #26
-      01002030H   LINE      ---      ---       #28
-      01002030H   LINE      ---      ---       #29
-      0100207EH   LINE      ---      ---       #30
-      010020CCH   LINE      ---      ---       #31
-      010020CCH   LINE      ---      ---       #33
-      02004EB3H   SYMBOL    XDATA    VOID      i
+      010016BCH   PUBLIC    CODE     ---       YC_adc_check_timer500ms
+      01001F73H   PUBLIC    CODE     ---       YC_adc_check
+      01001EB6H   PUBLIC    CODE     ---       YC_adc_init
+
+      01001EB6H   BLOCK     CODE     ---       LVL=0
+      01001EB6H   LINE      ---      ---       #3
+      01001EB6H   LINE      ---      ---       #4
+      01001EB6H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001EB6H   LINE      ---      ---       #8
+      01001EBCH   LINE      ---      ---       #9
+      01001EBFH   LINE      ---      ---       #21
+      01001EC0H   LINE      ---      ---       #22
+      01001EC0H   LINE      ---      ---       #23
+      01001ED1H   LINE      ---      ---       #24
+      01001ED6H   LINE      ---      ---       #25
+      01001F24H   LINE      ---      ---       #26
+      01001F72H   LINE      ---      ---       #38
+      00000007H   SYMBOL    DATA     VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010020CDH   BLOCK     CODE     ---       LVL=0
-      010020CDH   LINE      ---      ---       #35
-      010020CDH   LINE      ---      ---       #36
-      010020CDH   BLOCK     CODE     NEAR LAB  LVL=1
-      010020CDH   LINE      ---      ---       #38
-      010020D8H   LINE      ---      ---       #45
-      010020D8H   LINE      ---      ---       #46
-      010020D8H   LINE      ---      ---       #47
-      010020D8H   LINE      ---      ---       #48
-      010020DDH   LINE      ---      ---       #49
-      010020DDH   LINE      ---      ---       #50
-      01002114H   LINE      ---      ---       #51
-      0100211EH   LINE      ---      ---       #52
-      0100213BH   LINE      ---      ---       #54
-      01002150H   LINE      ---      ---       #55
-      01002150H   LINE      ---      ---       #56
-      01002156H   LINE      ---      ---       #57
-      01002157H   LINE      ---      ---       #59
-      01002157H   LINE      ---      ---       #60
-      01002176H   LINE      ---      ---       #61
-      01002176H   LINE      ---      ---       #62
-      0100217CH   LINE      ---      ---       #63
-      0100217DH   LINE      ---      ---       #65
-      0100217DH   LINE      ---      ---       #66
-      01002182H   LINE      ---      ---       #67
-      01002182H   LINE      ---      ---       #68
-      01002182H   LINE      ---      ---       #70
+      01001F73H   BLOCK     CODE     ---       LVL=0
+      01001F73H   LINE      ---      ---       #40
+      01001F73H   LINE      ---      ---       #41
+      01001F73H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001F73H   LINE      ---      ---       #44
+      01001F7DH   LINE      ---      ---       #46
+      01001F9DH   LINE      ---      ---       #47
+      01001FA6H   LINE      ---      ---       #48
+      01001FA8H   LINE      ---      ---       #49
+      01001FADH   LINE      ---      ---       #50
+      01001FADH   LINE      ---      ---       #51
+      01001FE4H   LINE      ---      ---       #52
+      01001FEEH   LINE      ---      ---       #53
+      0100200BH   LINE      ---      ---       #55
+      01002020H   LINE      ---      ---       #56
+      01002020H   LINE      ---      ---       #57
+      01002026H   LINE      ---      ---       #58
+      01002027H   LINE      ---      ---       #60
+      01002027H   LINE      ---      ---       #61
+      01002046H   LINE      ---      ---       #62
+      01002046H   LINE      ---      ---       #63
+      0100204CH   LINE      ---      ---       #64
+      0100204DH   LINE      ---      ---       #66
+      0100204DH   LINE      ---      ---       #67
+      01002052H   LINE      ---      ---       #68
+      01002052H   LINE      ---      ---       #69
+      01002052H   LINE      ---      ---       #71
       02004E74H   SYMBOL    XDATA    VOID      i
       02004E75H   SYMBOL    XDATA    VOID      batValue
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010014C9H   BLOCK     CODE     ---       LVL=0
-      010014C9H   LINE      ---      ---       #73
-      010014C9H   LINE      ---      ---       #74
-      010014C9H   LINE      ---      ---       #76
-      010014CFH   LINE      ---      ---       #77
-      010014CFH   LINE      ---      ---       #78
-      010014D1H   LINE      ---      ---       #79
-      010014D4H   LINE      ---      ---       #80
-      010014D4H   LINE      ---      ---       #81
-      010014D7H   LINE      ---      ---       #82
-      010014DAH   LINE      ---      ---       #83
-      010014DAH   LINE      ---      ---       #84
-      010014DAH   LINE      ---      ---       #85
+      010016BCH   BLOCK     CODE     ---       LVL=0
+      010016BCH   LINE      ---      ---       #74
+      010016BCH   LINE      ---      ---       #75
+      010016BCH   LINE      ---      ---       #78
+      010016C2H   LINE      ---      ---       #79
+      010016C2H   LINE      ---      ---       #80
+      010016C4H   LINE      ---      ---       #81
+      010016C7H   LINE      ---      ---       #82
+      010016C7H   LINE      ---      ---       #83
+      010016CAH   LINE      ---      ---       #84
+      010016CDH   LINE      ---      ---       #85
+      010016CDH   LINE      ---      ---       #86
+      010016CDH   LINE      ---      ---       #88
       ---         BLOCKEND  ---      ---       LVL=0
 
       ---         MODULE    ---      ---       RAM
-      01000FE2H   PUBLIC    CODE     ---       main
+      01002053H   PUBLIC    CODE     ---       main
 
-      01000FE2H   BLOCK     CODE     ---       LVL=0
-      01000FE2H   LINE      ---      ---       #5
-      01000FE2H   LINE      ---      ---       #6
-      01000FE2H   LINE      ---      ---       #7
+      01002053H   BLOCK     CODE     ---       LVL=0
+      01002053H   LINE      ---      ---       #5
+      01002053H   LINE      ---      ---       #6
+      01002053H   LINE      ---      ---       #7
       ---         BLOCKEND  ---      ---       LVL=0
 
       ---         MODULE    ---      ---       IPC
@@ -2049,36 +2010,36 @@
       02000C4BH   PUBLIC    XDATA    ---       ipcReadBuff
       0200054FH   PUBLIC    XDATA    BYTE      ipcPinlen
       02000B7EH   PUBLIC    XDATA    BYTE      current_task
-      0100222DH   PUBLIC    CODE     ---       IPC_DealSingleStep
-      01002372H   PUBLIC    CODE     ---       IPC_IsTxBuffEmpty
-      01002366H   PUBLIC    CODE     ---       IPC_AbandonLpm
-      01000F39H   PUBLIC    CODE     ---       IPC_WaitLpm
-      01001F4BH   PUBLIC    CODE     ---       _IPC_Initialize
-      01002360H   PUBLIC    CODE     ---       IPC_GetBBDIsconnectReason
-      01000D5FH   PUBLIC    CODE     ---       _IPC_TxBleData
-      01000D65H   PUBLIC    CODE     ---       _IPC_TxData
+      01002100H   PUBLIC    CODE     ---       IPC_DealSingleStep
+      01002245H   PUBLIC    CODE     ---       IPC_IsTxBuffEmpty
+      01002239H   PUBLIC    CODE     ---       IPC_AbandonLpm
+      01000F79H   PUBLIC    CODE     ---       IPC_WaitLpm
+      01001EA9H   PUBLIC    CODE     ---       _IPC_Initialize
+      01002233H   PUBLIC    CODE     ---       IPC_GetBBDIsconnectReason
+      01000D9FH   PUBLIC    CODE     ---       _IPC_TxBleData
+      01000DA5H   PUBLIC    CODE     ---       _IPC_TxData
       01000744H   PUBLIC    CODE     ---       _IPC_TxControlCmd
 
-      01002183H   BLOCK     CODE     ---       LVL=0
-      01002183H   LINE      ---      ---       #44
-      01002193H   LINE      ---      ---       #45
-      01002193H   LINE      ---      ---       #46
-      010021DCH   LINE      ---      ---       #47
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      010021DDH   BLOCK     CODE     ---       LVL=0
-      010021DDH   LINE      ---      ---       #49
-      010021E7H   LINE      ---      ---       #50
-      010021E7H   BLOCK     CODE     NEAR LAB  LVL=1
-      010021E7H   LINE      ---      ---       #51
-      010021EFH   LINE      ---      ---       #52
-      010021F5H   LINE      ---      ---       #53
-      01002214H   LINE      ---      ---       #54
-      0100221EH   LINE      ---      ---       #55
-      01002222H   LINE      ---      ---       #56
-      01002222H   LINE      ---      ---       #57
-      01002224H   LINE      ---      ---       #58
-      0100222CH   LINE      ---      ---       #59
+      01002056H   BLOCK     CODE     ---       LVL=0
+      01002056H   LINE      ---      ---       #44
+      01002066H   LINE      ---      ---       #45
+      01002066H   LINE      ---      ---       #46
+      010020AFH   LINE      ---      ---       #47
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010020B0H   BLOCK     CODE     ---       LVL=0
+      010020B0H   LINE      ---      ---       #49
+      010020BAH   LINE      ---      ---       #50
+      010020BAH   BLOCK     CODE     NEAR LAB  LVL=1
+      010020BAH   LINE      ---      ---       #51
+      010020C2H   LINE      ---      ---       #52
+      010020C8H   LINE      ---      ---       #53
+      010020E7H   LINE      ---      ---       #54
+      010020F1H   LINE      ---      ---       #55
+      010020F5H   LINE      ---      ---       #56
+      010020F5H   LINE      ---      ---       #57
+      010020F7H   LINE      ---      ---       #58
+      010020FFH   LINE      ---      ---       #59
       00000006H   SYMBOL    DATA     VOID      src
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
@@ -2112,112 +2073,112 @@
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01000D65H   BLOCK     CODE     ---       LVL=0
-      01000D65H   LINE      ---      ---       #83
-      01000D6AH   LINE      ---      ---       #84
-      01000D6AH   LINE      ---      ---       #85
-      01000D70H   LINE      ---      ---       #86
-      01000D7BH   LINE      ---      ---       #87
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000D5FH   BLOCK     CODE     ---       LVL=0
-      01000D5FH   LINE      ---      ---       #91
-      01000D5FH   LINE      ---      ---       #92
-      01000D5FH   LINE      ---      ---       #93
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01002360H   BLOCK     CODE     ---       LVL=0
-      01002360H   LINE      ---      ---       #97
-      01002360H   LINE      ---      ---       #98
-      01002360H   LINE      ---      ---       #99
-      01002365H   LINE      ---      ---       #100
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01001F4BH   BLOCK     CODE     ---       LVL=0
-      01001F4BH   LINE      ---      ---       #102
-      01001F4BH   LINE      ---      ---       #103
-      01001F4BH   LINE      ---      ---       #104
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000F39H   BLOCK     CODE     ---       LVL=0
-      01000F39H   LINE      ---      ---       #107
-      01000F39H   LINE      ---      ---       #108
-      01000F39H   LINE      ---      ---       #109
-      01000F3EH   LINE      ---      ---       #110
-      01000F42H   LINE      ---      ---       #111
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01002366H   BLOCK     CODE     ---       LVL=0
-      01002366H   LINE      ---      ---       #114
-      01002366H   LINE      ---      ---       #115
-      01002366H   LINE      ---      ---       #116
-      0100236CH   LINE      ---      ---       #117
-      01002371H   LINE      ---      ---       #118
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01002372H   BLOCK     CODE     ---       LVL=0
-      01002372H   LINE      ---      ---       #120
-      01002372H   LINE      ---      ---       #121
-      01002372H   LINE      ---      ---       #122
-      01002386H   LINE      ---      ---       #123
-      01002388H   LINE      ---      ---       #124
-      01002389H   LINE      ---      ---       #125
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      0100222DH   BLOCK     CODE     ---       LVL=0
-      0100222DH   LINE      ---      ---       #128
-      0100222DH   LINE      ---      ---       #129
-      0100222DH   BLOCK     CODE     NEAR LAB  LVL=1
-      0100222DH   LINE      ---      ---       #130
-      0100223FH   LINE      ---      ---       #131
-      01002255H   LINE      ---      ---       #132
-      01002255H   LINE      ---      ---       #133
-      0100225DH   LINE      ---      ---       #134
-      0100226EH   LINE      ---      ---       #135
-      01002278H   LINE      ---      ---       #136
-      01002297H   LINE      ---      ---       #137
-      01002299H   LINE      ---      ---       #138
-      010022ABH   LINE      ---      ---       #139
-      010022B4H   LINE      ---      ---       #140
-      010022CAH   LINE      ---      ---       #141
-      01002302H   LINE      ---      ---       #142
-      01002304H   LINE      ---      ---       #143
-      01002304H   LINE      ---      ---       #144
-      01002306H   LINE      ---      ---       #145
-      01002306H   LINE      ---      ---       #146
-      01002306H   LINE      ---      ---       #147
-      0100231AH   LINE      ---      ---       #148
-      01002328H   LINE      ---      ---       #150
-      0100232BH   LINE      ---      ---       #152
-      0100233AH   LINE      ---      ---       #153
-      0100233CH   LINE      ---      ---       #154
-      01002346H   LINE      ---      ---       #155
-      01002354H   LINE      ---      ---       #157
-      01002357H   LINE      ---      ---       #159
-      0100235DH   LINE      ---      ---       #160
-      0100235FH   LINE      ---      ---       #162
-      01002306H   SYMBOL    ---      ---       IPC_TIMERingleStep
+      01000DA5H   BLOCK     CODE     ---       LVL=0
+      01000DA5H   LINE      ---      ---       #83
+      01000DAAH   LINE      ---      ---       #84
+      01000DAAH   LINE      ---      ---       #85
+      01000DB0H   LINE      ---      ---       #86
+      01000DBBH   LINE      ---      ---       #87
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000D9FH   BLOCK     CODE     ---       LVL=0
+      01000D9FH   LINE      ---      ---       #91
+      01000D9FH   LINE      ---      ---       #92
+      01000D9FH   LINE      ---      ---       #93
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002233H   BLOCK     CODE     ---       LVL=0
+      01002233H   LINE      ---      ---       #97
+      01002233H   LINE      ---      ---       #98
+      01002233H   LINE      ---      ---       #99
+      01002238H   LINE      ---      ---       #100
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001EA9H   BLOCK     CODE     ---       LVL=0
+      01001EA9H   LINE      ---      ---       #102
+      01001EA9H   LINE      ---      ---       #103
+      01001EA9H   LINE      ---      ---       #104
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000F79H   BLOCK     CODE     ---       LVL=0
+      01000F79H   LINE      ---      ---       #107
+      01000F79H   LINE      ---      ---       #108
+      01000F79H   LINE      ---      ---       #109
+      01000F7EH   LINE      ---      ---       #110
+      01000F82H   LINE      ---      ---       #111
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002239H   BLOCK     CODE     ---       LVL=0
+      01002239H   LINE      ---      ---       #114
+      01002239H   LINE      ---      ---       #115
+      01002239H   LINE      ---      ---       #116
+      0100223FH   LINE      ---      ---       #117
+      01002244H   LINE      ---      ---       #118
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002245H   BLOCK     CODE     ---       LVL=0
+      01002245H   LINE      ---      ---       #120
+      01002245H   LINE      ---      ---       #121
+      01002245H   LINE      ---      ---       #122
+      01002259H   LINE      ---      ---       #123
+      0100225BH   LINE      ---      ---       #124
+      0100225CH   LINE      ---      ---       #125
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002100H   BLOCK     CODE     ---       LVL=0
+      01002100H   LINE      ---      ---       #128
+      01002100H   LINE      ---      ---       #129
+      01002100H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002100H   LINE      ---      ---       #130
+      01002112H   LINE      ---      ---       #131
+      01002128H   LINE      ---      ---       #132
+      01002128H   LINE      ---      ---       #133
+      01002130H   LINE      ---      ---       #134
+      01002141H   LINE      ---      ---       #135
+      0100214BH   LINE      ---      ---       #136
+      0100216AH   LINE      ---      ---       #137
+      0100216CH   LINE      ---      ---       #138
+      0100217EH   LINE      ---      ---       #139
+      01002187H   LINE      ---      ---       #140
+      0100219DH   LINE      ---      ---       #141
+      010021D5H   LINE      ---      ---       #142
+      010021D7H   LINE      ---      ---       #143
+      010021D7H   LINE      ---      ---       #144
+      010021D9H   LINE      ---      ---       #145
+      010021D9H   LINE      ---      ---       #146
+      010021D9H   LINE      ---      ---       #147
+      010021EDH   LINE      ---      ---       #148
+      010021FBH   LINE      ---      ---       #150
+      010021FEH   LINE      ---      ---       #152
+      0100220DH   LINE      ---      ---       #153
+      0100220FH   LINE      ---      ---       #154
+      01002219H   LINE      ---      ---       #155
+      01002227H   LINE      ---      ---       #157
+      0100222AH   LINE      ---      ---       #159
+      01002230H   LINE      ---      ---       #160
+      01002232H   LINE      ---      ---       #162
+      010021D9H   SYMBOL    ---      ---       IPC_TIMERingleStep
       02004E9BH   SYMBOL    XDATA    VOID      pbuff
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
       ---         MODULE    ---      ---       UTILITIES
       02004E55H   PUBLIC    XDATA    BYTE      ?_compare_str?BYTE
-      01001BECH   PUBLIC    CODE     ---       _compare_str
-      01000F44H   PUBLIC    CODE     ---       _Delay1ms
-      01002391H   PUBLIC    CODE     ---       _xmemclear_ff
-      01000BEAH   PUBLIC    CODE     ---       _xmemclear
+      01001BDBH   PUBLIC    CODE     ---       _compare_str
+      01000F84H   PUBLIC    CODE     ---       _Delay1ms
+      010022A8H   PUBLIC    CODE     ---       _xmemclear_ff
+      01000BD8H   PUBLIC    CODE     ---       _xmemclear
       02004E46H   PUBLIC    XDATA    BYTE      ?_dmemcpy?BYTE
-      01001726H   PUBLIC    CODE     ---       _dmemcpy
+      01002264H   PUBLIC    CODE     ---       _dmemcpy
       02004E69H   PUBLIC    XDATA    BYTE      ?_xmemcpy?BYTE
       0100083DH   PUBLIC    CODE     ---       _xmemcpy
-      0100238AH   PUBLIC    CODE     ---       YC_Ice_break
+      0100225DH   PUBLIC    CODE     ---       YC_Ice_break
 
-      0100238AH   BLOCK     CODE     ---       LVL=0
-      0100238AH   LINE      ---      ---       #3
-      0100238AH   LINE      ---      ---       #4
-      0100238AH   LINE      ---      ---       #5
-      01002390H   LINE      ---      ---       #7
+      0100225DH   BLOCK     CODE     ---       LVL=0
+      0100225DH   LINE      ---      ---       #3
+      0100225DH   LINE      ---      ---       #4
+      0100225DH   LINE      ---      ---       #5
+      01002263H   LINE      ---      ---       #7
       ---         BLOCKEND  ---      ---       LVL=0
 
       0100083DH   BLOCK     CODE     ---       LVL=0
@@ -2228,52 +2189,52 @@
       0100087FH   LINE      ---      ---       #14
       ---         BLOCKEND  ---      ---       LVL=0
 
-      01001726H   BLOCK     CODE     ---       LVL=0
-      01001726H   LINE      ---      ---       #16
-      01001731H   LINE      ---      ---       #17
-      01001731H   LINE      ---      ---       #18
-      0100173FH   LINE      ---      ---       #19
-      01001769H   LINE      ---      ---       #21
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000BEAH   BLOCK     CODE     ---       LVL=0
-      01000BEAH   LINE      ---      ---       #23
-      01000BF5H   LINE      ---      ---       #24
-      01000BF5H   LINE      ---      ---       #25
-      01000BFFH   LINE      ---      ---       #26
-      01000C15H   LINE      ---      ---       #28
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01002391H   BLOCK     CODE     ---       LVL=0
-      01002391H   LINE      ---      ---       #30
-      0100239CH   LINE      ---      ---       #31
-      0100239CH   LINE      ---      ---       #32
-      010023A6H   LINE      ---      ---       #33
-      010023BDH   LINE      ---      ---       #35
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000F44H   BLOCK     CODE     ---       LVL=0
-      01000F44H   LINE      ---      ---       #46
-      01000F44H   LINE      ---      ---       #47
-      01000F44H   BLOCK     CODE     NEAR LAB  LVL=1
-      01000F44H   LINE      ---      ---       #49
-      01000F4AH   LINE      ---      ---       #50
-      01000F58H   LINE      ---      ---       #51
-      01000F5BH   LINE      ---      ---       #52
+      01002264H   BLOCK     CODE     ---       LVL=0
+      01002264H   LINE      ---      ---       #16
+      0100226FH   LINE      ---      ---       #17
+      0100226FH   LINE      ---      ---       #18
+      0100227DH   LINE      ---      ---       #19
+      010022A7H   LINE      ---      ---       #21
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000BD8H   BLOCK     CODE     ---       LVL=0
+      01000BD8H   LINE      ---      ---       #23
+      01000BE3H   LINE      ---      ---       #24
+      01000BE3H   LINE      ---      ---       #25
+      01000BEDH   LINE      ---      ---       #26
+      01000C03H   LINE      ---      ---       #28
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010022A8H   BLOCK     CODE     ---       LVL=0
+      010022A8H   LINE      ---      ---       #30
+      010022B3H   LINE      ---      ---       #31
+      010022B3H   LINE      ---      ---       #32
+      010022BDH   LINE      ---      ---       #33
+      010022D4H   LINE      ---      ---       #35
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000F84H   BLOCK     CODE     ---       LVL=0
+      01000F84H   LINE      ---      ---       #46
+      01000F84H   LINE      ---      ---       #47
+      01000F84H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000F84H   LINE      ---      ---       #49
+      01000F8AH   LINE      ---      ---       #50
+      01000F98H   LINE      ---      ---       #51
+      01000F9BH   LINE      ---      ---       #52
       00000004H   SYMBOL    DATA     VOID      j
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001BECH   BLOCK     CODE     ---       LVL=0
-      01001BECH   LINE      ---      ---       #54
-      01001BF7H   LINE      ---      ---       #55
-      01001BF7H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001BF7H   LINE      ---      ---       #57
-      01001C03H   LINE      ---      ---       #58
-      01001C2DH   LINE      ---      ---       #59
-      01001C30H   LINE      ---      ---       #60
-      01001C33H   LINE      ---      ---       #61
-      01001C35H   LINE      ---      ---       #62
+      01001BDBH   BLOCK     CODE     ---       LVL=0
+      01001BDBH   LINE      ---      ---       #54
+      01001BE6H   LINE      ---      ---       #55
+      01001BE6H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001BE6H   LINE      ---      ---       #57
+      01001BF2H   LINE      ---      ---       #58
+      01001C1CH   LINE      ---      ---       #59
+      01001C1FH   LINE      ---      ---       #60
+      01001C22H   LINE      ---      ---       #61
+      01001C24H   LINE      ---      ---       #62
       00000007H   SYMBOL    DATA     VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
@@ -2281,248 +2242,248 @@
       ---         MODULE    ---      ---       GPIO
       020000A3H   PUBLIC    XDATA    ---       YC_GPIOWakeupL
       020000A7H   PUBLIC    XDATA    ---       YC_GPIOWakeupH
-      010023FDH   PUBLIC    CODE     ---       GPIO_fillpd
-      0100155AH   PUBLIC    CODE     ---       _GPIO_FlipOutBit
-      01000E99H   PUBLIC    CODE     ---       _GPIO_SetWakeupByCurrentState
-      010023BEH   PUBLIC    CODE     ---       _GPIO_ClearWakeup
+      01002314H   PUBLIC    CODE     ---       GPIO_fillpd
+      010014DCH   PUBLIC    CODE     ---       _GPIO_FlipOutBit
+      01000EDAH   PUBLIC    CODE     ---       _GPIO_SetWakeupByCurrentState
+      010022D5H   PUBLIC    CODE     ---       _GPIO_ClearWakeup
       00000020H.7 PUBLIC    BIT      BIT       ?_GPIO_SetWakeup?BIT
-      01000EADH   PUBLIC    CODE     ---       _GPIO_SetWakeup
+      01000EEDH   PUBLIC    CODE     ---       _GPIO_SetWakeup
       00000020H.6 PUBLIC    BIT      BIT       ?_GPIO_SetOutput?BIT
-      01000FB3H   PUBLIC    CODE     ---       _GPIO_SetOutput
+      01000FACH   PUBLIC    CODE     ---       _GPIO_SetOutput
       00000020H.5 PUBLIC    BIT      BIT       ?_GPIO_SetInput?BIT
-      010012FCH   PUBLIC    CODE     ---       _GPIO_SetInput
+      01001515H   PUBLIC    CODE     ---       _GPIO_SetInput
       00000020H.4 PUBLIC    BIT      BIT       ?_GPIO_Setoe?BIT
-      0100133CH   PUBLIC    CODE     ---       _GPIO_Setoe
+      010015B6H   PUBLIC    CODE     ---       _GPIO_Setoe
       00000020H.3 PUBLIC    BIT      BIT       ?_GPIO_SetPd?BIT
-      0100132BH   PUBLIC    CODE     ---       _GPIO_SetPd
+      01001544H   PUBLIC    CODE     ---       _GPIO_SetPd
       00000020H.2 PUBLIC    BIT      BIT       ?_GPIO_SetPu?BIT
-      0100131AH   PUBLIC    CODE     ---       _GPIO_SetPu
+      01001533H   PUBLIC    CODE     ---       _GPIO_SetPu
       00000020H.1 PUBLIC    BIT      BIT       ?_GPIO_Setout?BIT
-      01000FD0H   PUBLIC    CODE     ---       _GPIO_Setout
-      0100171EH   PUBLIC    CODE     ---       _GPIO_GetInputStatus
+      01001054H   PUBLIC    CODE     ---       _GPIO_Setout
+      01000FCAH   PUBLIC    CODE     ---       _GPIO_GetInputStatus
 
-      0100134DH   BLOCK     CODE     ---       LVL=0
-      0100134DH   LINE      ---      ---       #9
-      01001358H   LINE      ---      ---       #10
-      01001358H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001358H   LINE      ---      ---       #11
-      0100135AH   LINE      ---      ---       #12
-      0100135BH   LINE      ---      ---       #14
-      0100135FH   LINE      ---      ---       #15
-      01001366H   LINE      ---      ---       #17
-      01001369H   LINE      ---      ---       #18
-      0100138BH   LINE      ---      ---       #19
-      0100138BH   LINE      ---      ---       #21
-      0100138BH   LINE      ---      ---       #22
+      01001555H   BLOCK     CODE     ---       LVL=0
+      01001555H   LINE      ---      ---       #9
+      01001560H   LINE      ---      ---       #10
+      01001560H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001560H   LINE      ---      ---       #11
+      01001562H   LINE      ---      ---       #12
+      01001563H   LINE      ---      ---       #14
+      01001567H   LINE      ---      ---       #15
+      0100156EH   LINE      ---      ---       #17
+      01001571H   LINE      ---      ---       #18
+      01001593H   LINE      ---      ---       #19
+      01001593H   LINE      ---      ---       #21
+      01001593H   LINE      ---      ---       #22
       00000006H   SYMBOL    DATA     VOID      queue
       00000005H   SYMBOL    DATA     VOID      group
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010016DFH   BLOCK     CODE     ---       LVL=0
-      010016DFH   LINE      ---      ---       #26
-      010016E1H   LINE      ---      ---       #27
-      010016E1H   BLOCK     CODE     NEAR LAB  LVL=1
-      010016E1H   LINE      ---      ---       #28
-      010016E6H   LINE      ---      ---       #29
-      010016E7H   LINE      ---      ---       #31
-      010016EBH   LINE      ---      ---       #32
-      010016F2H   LINE      ---      ---       #33
-      0100171DH   LINE      ---      ---       #35
-      02004EB5H   SYMBOL    XDATA    VOID      queue
+      01000FD0H   BLOCK     CODE     ---       LVL=0
+      01000FD0H   LINE      ---      ---       #26
+      01000FD2H   LINE      ---      ---       #27
+      01000FD2H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000FD2H   LINE      ---      ---       #28
+      01000FD7H   LINE      ---      ---       #29
+      01000FD8H   LINE      ---      ---       #31
+      01000FDCH   LINE      ---      ---       #32
+      01000FE3H   LINE      ---      ---       #33
+      0100100EH   LINE      ---      ---       #35
+      02004EB4H   SYMBOL    XDATA    VOID      queue
       00000006H   SYMBOL    DATA     VOID      group
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      0100171EH   BLOCK     CODE     ---       LVL=0
-      0100171EH   LINE      ---      ---       #37
-      0100171EH   LINE      ---      ---       #38
-      0100171EH   LINE      ---      ---       #39
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000FD0H   BLOCK     CODE     ---       LVL=0
-      01000FD0H   LINE      ---      ---       #42
-      01000FD0H   LINE      ---      ---       #43
-      01000FD0H   LINE      ---      ---       #44
-      01000FD4H   LINE      ---      ---       #46
-      01000FE1H   LINE      ---      ---       #47
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      0100131AH   BLOCK     CODE     ---       LVL=0
-      0100131AH   LINE      ---      ---       #49
-      0100131AH   LINE      ---      ---       #50
-      0100131AH   LINE      ---      ---       #51
-      0100131EH   LINE      ---      ---       #53
-      0100132AH   LINE      ---      ---       #54
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      0100132BH   BLOCK     CODE     ---       LVL=0
-      0100132BH   LINE      ---      ---       #56
-      0100132BH   LINE      ---      ---       #57
-      0100132BH   LINE      ---      ---       #58
-      0100132FH   LINE      ---      ---       #60
-      0100133BH   LINE      ---      ---       #61
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      0100133CH   BLOCK     CODE     ---       LVL=0
-      0100133CH   LINE      ---      ---       #63
-      0100133CH   LINE      ---      ---       #64
-      0100133CH   LINE      ---      ---       #65
-      01001340H   LINE      ---      ---       #67
-      0100134CH   LINE      ---      ---       #68
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      010012FCH   BLOCK     CODE     ---       LVL=0
-      010012FCH   LINE      ---      ---       #70
-      010012FEH   LINE      ---      ---       #71
-      010012FEH   LINE      ---      ---       #72
-      01001302H   LINE      ---      ---       #74
-      0100130AH   LINE      ---      ---       #75
-      01001313H   LINE      ---      ---       #76
-      01001319H   LINE      ---      ---       #77
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000FB3H   BLOCK     CODE     ---       LVL=0
-      01000FB3H   LINE      ---      ---       #79
-      01000FB5H   LINE      ---      ---       #80
-      01000FB5H   LINE      ---      ---       #81
-      01000FB9H   LINE      ---      ---       #83
-      01000FC0H   LINE      ---      ---       #84
-      01000FC8H   LINE      ---      ---       #85
-      01000FCFH   LINE      ---      ---       #86
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01000EADH   BLOCK     CODE     ---       LVL=0
-      01000EADH   LINE      ---      ---       #88
-      01000EADH   LINE      ---      ---       #89
-      01000EADH   BLOCK     CODE     NEAR LAB  LVL=1
-      01000EADH   LINE      ---      ---       #92
-      01000EB3H   LINE      ---      ---       #94
-      01000EB7H   LINE      ---      ---       #95
-      01000EBEH   LINE      ---      ---       #96
-      01000EC1H   LINE      ---      ---       #97
-      01000EE2H   LINE      ---      ---       #98
-      01000F03H   LINE      ---      ---       #99
-      01000F04H   LINE      ---      ---       #101
-      01000F04H   LINE      ---      ---       #102
-      01000F26H   LINE      ---      ---       #103
-      01000F38H   LINE      ---      ---       #104
-      01000F38H   LINE      ---      ---       #105
+      01000FCAH   BLOCK     CODE     ---       LVL=0
+      01000FCAH   LINE      ---      ---       #37
+      01000FCAH   LINE      ---      ---       #38
+      01000FCAH   LINE      ---      ---       #39
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001054H   BLOCK     CODE     ---       LVL=0
+      01001054H   LINE      ---      ---       #42
+      01001054H   LINE      ---      ---       #43
+      01001054H   LINE      ---      ---       #44
+      01001058H   LINE      ---      ---       #46
+      01001064H   LINE      ---      ---       #47
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001533H   BLOCK     CODE     ---       LVL=0
+      01001533H   LINE      ---      ---       #49
+      01001533H   LINE      ---      ---       #50
+      01001533H   LINE      ---      ---       #51
+      01001537H   LINE      ---      ---       #53
+      01001543H   LINE      ---      ---       #54
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001544H   BLOCK     CODE     ---       LVL=0
+      01001544H   LINE      ---      ---       #56
+      01001544H   LINE      ---      ---       #57
+      01001544H   LINE      ---      ---       #58
+      01001548H   LINE      ---      ---       #60
+      01001554H   LINE      ---      ---       #61
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010015B6H   BLOCK     CODE     ---       LVL=0
+      010015B6H   LINE      ---      ---       #63
+      010015B6H   LINE      ---      ---       #64
+      010015B6H   LINE      ---      ---       #65
+      010015BAH   LINE      ---      ---       #67
+      010015C6H   LINE      ---      ---       #68
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001515H   BLOCK     CODE     ---       LVL=0
+      01001515H   LINE      ---      ---       #70
+      01001517H   LINE      ---      ---       #71
+      01001517H   LINE      ---      ---       #72
+      0100151BH   LINE      ---      ---       #74
+      01001523H   LINE      ---      ---       #75
+      0100152CH   LINE      ---      ---       #76
+      01001532H   LINE      ---      ---       #77
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000FACH   BLOCK     CODE     ---       LVL=0
+      01000FACH   LINE      ---      ---       #79
+      01000FAEH   LINE      ---      ---       #80
+      01000FAEH   LINE      ---      ---       #81
+      01000FB2H   LINE      ---      ---       #83
+      01000FB9H   LINE      ---      ---       #84
+      01000FC2H   LINE      ---      ---       #85
+      01000FC9H   LINE      ---      ---       #86
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000EEDH   BLOCK     CODE     ---       LVL=0
+      01000EEDH   LINE      ---      ---       #88
+      01000EEDH   LINE      ---      ---       #89
+      01000EEDH   BLOCK     CODE     NEAR LAB  LVL=1
+      01000EEDH   LINE      ---      ---       #92
+      01000EF3H   LINE      ---      ---       #94
+      01000EF7H   LINE      ---      ---       #95
+      01000EFEH   LINE      ---      ---       #96
+      01000F01H   LINE      ---      ---       #97
+      01000F22H   LINE      ---      ---       #98
+      01000F43H   LINE      ---      ---       #99
+      01000F44H   LINE      ---      ---       #101
+      01000F44H   LINE      ---      ---       #102
+      01000F66H   LINE      ---      ---       #103
+      01000F78H   LINE      ---      ---       #104
+      01000F78H   LINE      ---      ---       #105
       00000006H   SYMBOL    DATA     VOID      queue
       00000007H   SYMBOL    DATA     VOID      group
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010023BEH   BLOCK     CODE     ---       LVL=0
-      010023BEH   LINE      ---      ---       #107
-      010023BEH   LINE      ---      ---       #108
-      010023BEH   BLOCK     CODE     NEAR LAB  LVL=1
-      010023BEH   LINE      ---      ---       #111
-      010023C2H   LINE      ---      ---       #113
-      010023C6H   LINE      ---      ---       #114
-      010023CDH   LINE      ---      ---       #115
-      010023EFH   LINE      ---      ---       #116
-      010023FCH   LINE      ---      ---       #117
+      010022D5H   BLOCK     CODE     ---       LVL=0
+      010022D5H   LINE      ---      ---       #107
+      010022D5H   LINE      ---      ---       #108
+      010022D5H   BLOCK     CODE     NEAR LAB  LVL=1
+      010022D5H   LINE      ---      ---       #111
+      010022D9H   LINE      ---      ---       #113
+      010022DDH   LINE      ---      ---       #114
+      010022E4H   LINE      ---      ---       #115
+      01002306H   LINE      ---      ---       #116
+      01002313H   LINE      ---      ---       #117
       00000006H   SYMBOL    DATA     VOID      queue
       00000007H   SYMBOL    DATA     VOID      group
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01000E99H   BLOCK     CODE     ---       LVL=0
-      01000E99H   LINE      ---      ---       #119
-      01000E9EH   LINE      ---      ---       #120
-      01000E9EH   BLOCK     CODE     NEAR LAB  LVL=1
-      01000E9EH   LINE      ---      ---       #121
-      01000EA3H   LINE      ---      ---       #122
+      01000EDAH   BLOCK     CODE     ---       LVL=0
+      01000EDAH   LINE      ---      ---       #119
+      01000EDFH   LINE      ---      ---       #120
+      01000EDFH   BLOCK     CODE     NEAR LAB  LVL=1
+      01000EDFH   LINE      ---      ---       #121
+      01000EE3H   LINE      ---      ---       #122
       00000021H.0 SYMBOL    BIT      VOID      st
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      0100155AH   BLOCK     CODE     ---       LVL=0
-      0100155AH   LINE      ---      ---       #125
-      0100155FH   LINE      ---      ---       #126
-      0100155FH   BLOCK     CODE     NEAR LAB  LVL=1
-      0100155FH   LINE      ---      ---       #127
-      01001569H   LINE      ---      ---       #128
+      010014DCH   BLOCK     CODE     ---       LVL=0
+      010014DCH   LINE      ---      ---       #125
+      010014E1H   LINE      ---      ---       #126
+      010014E1H   BLOCK     CODE     NEAR LAB  LVL=1
+      010014E1H   LINE      ---      ---       #127
+      010014ECH   LINE      ---      ---       #128
       00000021H.1 SYMBOL    BIT      VOID      st
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010023FDH   BLOCK     CODE     ---       LVL=0
-      010023FDH   LINE      ---      ---       #131
-      010023FDH   LINE      ---      ---       #132
-      010023FDH   BLOCK     CODE     NEAR LAB  LVL=1
-      010023FDH   LINE      ---      ---       #134
-      010023FFH   LINE      ---      ---       #135
-      01002430H   LINE      ---      ---       #136
+      01002314H   BLOCK     CODE     ---       LVL=0
+      01002314H   LINE      ---      ---       #131
+      01002314H   LINE      ---      ---       #132
+      01002314H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002314H   LINE      ---      ---       #134
+      01002316H   LINE      ---      ---       #135
+      01002347H   LINE      ---      ---       #136
       00000007H   SYMBOL    DATA     VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
       ---         MODULE    ---      ---       IIC
-      0100161FH   PUBLIC    CODE     ---       _IIC_WriteBlock
-      01001585H   PUBLIC    CODE     ---       _IIC_write
-      010011F2H   PUBLIC    CODE     ---       _IIC_Read
-
-      0100157DH   BLOCK     CODE     ---       LVL=0
-      0100157DH   LINE      ---      ---       #11
-      0100157DH   LINE      ---      ---       #12
-      0100157DH   LINE      ---      ---       #13
-      01001584H   LINE      ---      ---       #14
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      010011F2H   BLOCK     CODE     ---       LVL=0
-      010011F2H   LINE      ---      ---       #16
-      01001203H   LINE      ---      ---       #17
-      01001203H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001203H   LINE      ---      ---       #18
-      01001203H   LINE      ---      ---       #19
-      0100120CH   LINE      ---      ---       #20
-      01001212H   LINE      ---      ---       #21
-      01001218H   LINE      ---      ---       #22
-      0100121EH   LINE      ---      ---       #23
-      01001237H   LINE      ---      ---       #24
-      0100124CH   LINE      ---      ---       #25
-      01001265H   LINE      ---      ---       #26
-      0100126BH   LINE      ---      ---       #27
-      01001273H   LINE      ---      ---       #28
-      0100127AH   LINE      ---      ---       #29
-      0100127AH   LINE      ---      ---       #30
-      01001281H   LINE      ---      ---       #31
-      01001283H   LINE      ---      ---       #32
+      010011B0H   PUBLIC    CODE     ---       _IIC_WriteBlock
+      0100174BH   PUBLIC    CODE     ---       _IIC_write
+      0100136EH   PUBLIC    CODE     ---       _IIC_Read
+
+      01001743H   BLOCK     CODE     ---       LVL=0
+      01001743H   LINE      ---      ---       #11
+      01001743H   LINE      ---      ---       #12
+      01001743H   LINE      ---      ---       #13
+      0100174AH   LINE      ---      ---       #14
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100136EH   BLOCK     CODE     ---       LVL=0
+      0100136EH   LINE      ---      ---       #16
+      0100137FH   LINE      ---      ---       #17
+      0100137FH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100137FH   LINE      ---      ---       #18
+      0100137FH   LINE      ---      ---       #19
+      01001388H   LINE      ---      ---       #20
+      0100138EH   LINE      ---      ---       #21
+      01001394H   LINE      ---      ---       #22
+      0100139AH   LINE      ---      ---       #23
+      010013B3H   LINE      ---      ---       #24
+      010013C8H   LINE      ---      ---       #25
+      010013E1H   LINE      ---      ---       #26
+      010013E7H   LINE      ---      ---       #27
+      010013EFH   LINE      ---      ---       #28
+      010013F6H   LINE      ---      ---       #29
+      010013F6H   LINE      ---      ---       #30
+      010013FDH   LINE      ---      ---       #31
+      010013FFH   LINE      ---      ---       #32
       00000006H   SYMBOL    DATA     VOID      mem_src
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001585H   BLOCK     CODE     ---       LVL=0
-      01001585H   LINE      ---      ---       #35
-      010015A0H   LINE      ---      ---       #36
-      010015A0H   LINE      ---      ---       #37
-      010015C1H   LINE      ---      ---       #38
-      010015C7H   LINE      ---      ---       #39
-      010015D6H   LINE      ---      ---       #40
-      010015F3H   LINE      ---      ---       #41
-      0100160AH   LINE      ---      ---       #42
-      01001611H   LINE      ---      ---       #43
-      01001616H   LINE      ---      ---       #44
-      0100161DH   LINE      ---      ---       #45
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      0100161FH   BLOCK     CODE     ---       LVL=0
-      0100161FH   LINE      ---      ---       #48
-      01001636H   LINE      ---      ---       #49
-      01001636H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001636H   LINE      ---      ---       #51
-      01001642H   LINE      ---      ---       #52
-      01001652H   LINE      ---      ---       #53
-      01001660H   LINE      ---      ---       #54
-      01001686H   LINE      ---      ---       #55
-      01001693H   LINE      ---      ---       #56
-      010016A8H   LINE      ---      ---       #57
-      010016ADH   LINE      ---      ---       #58
-      010016BEH   LINE      ---      ---       #59
-      010016CAH   LINE      ---      ---       #60
-      010016CCH   LINE      ---      ---       #61
+      0100174BH   BLOCK     CODE     ---       LVL=0
+      0100174BH   LINE      ---      ---       #35
+      01001766H   LINE      ---      ---       #36
+      01001766H   LINE      ---      ---       #37
+      01001788H   LINE      ---      ---       #38
+      0100178EH   LINE      ---      ---       #39
+      0100179DH   LINE      ---      ---       #40
+      010017BAH   LINE      ---      ---       #41
+      010017D1H   LINE      ---      ---       #42
+      010017D8H   LINE      ---      ---       #43
+      010017DDH   LINE      ---      ---       #44
+      010017E4H   LINE      ---      ---       #45
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010011B0H   BLOCK     CODE     ---       LVL=0
+      010011B0H   LINE      ---      ---       #48
+      010011C7H   LINE      ---      ---       #49
+      010011C7H   BLOCK     CODE     NEAR LAB  LVL=1
+      010011C7H   LINE      ---      ---       #51
+      010011D3H   LINE      ---      ---       #52
+      010011E3H   LINE      ---      ---       #53
+      010011F1H   LINE      ---      ---       #54
+      01001217H   LINE      ---      ---       #55
+      01001224H   LINE      ---      ---       #56
+      01001239H   LINE      ---      ---       #57
+      0100123EH   LINE      ---      ---       #58
+      0100124FH   LINE      ---      ---       #59
+      0100125BH   LINE      ---      ---       #60
+      0100125DH   LINE      ---      ---       #61
       00000004H   SYMBOL    DATA     VOID      cris
       02004E44H   SYMBOL    XDATA    VOID      curr_len
       ---         BLOCKEND  CODE     ---       LVL=1
@@ -2594,5 +2555,5 @@
       ---         MODULE    ---      ---       ?C_INIT
       010005B1H   PUBLIC    CODE     ---       ?C_START
 
-Program Size: data=10.2 xdata=805 const=182 code=9083
+Program Size: data=10.2 xdata=805 const=182 code=8850
 LX51 RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
Index: output/FW.SBR
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: output/eeprom.dat
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/eeprom.dat	(revision 114)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-ae
+a6
 10
 c5
 12
@@ -15,55 +15,55 @@
 c0
 01
 00
-2d
+2b
 c0
 01
 80
-35
+33
 c0
 02
 80
-3e
+3c
 c0
 48
 01
-87
+85
 c0
 49
 01
-5a
+58
 c0
 4a
 01
-60
+5e
 c0
 4a
 81
-4a
+48
 c0
 58
 02
-2c
+2a
 c0
 58
 81
-0e
+0c
 c0
 59
 01
-22
+20
 c0
 59
 81
-3c
+3a
 c0
 5b
 01
-45
+43
 c0
 5c
 81
-16
+14
 20
 20
 3b
@@ -71,7 +71,7 @@
 c0
 19
 02
-38
+36
 c0
 1d
 d3
@@ -79,83 +79,83 @@
 c0
 1f
 01
-fa
+f8
 c0
 1f
 81
-fe
+fc
 c0
 25
 02
-81
+7f
 c0
 25
 82
-31
+2f
 c0
 26
 02
-3b
+39
 c0
 27
 02
-41
+3f
 c0
 2b
 02
-48
+46
 c0
 31
 82
-50
+4e
 c0
 32
 02
-75
+73
 c0
 32
 82
-a6
+a4
 c0
 34
 84
-03
+01
 c0
 35
 83
-ec
+ea
 c0
 37
 04
-0a
+08
 c0
 37
 82
-8c
+8a
 c0
 43
 80
-e9
+e7
 c0
 46
 82
-0c
+0a
 c0
 47
 82
-02
+00
 c0
 66
 81
-91
+8f
 c0
 67
 80
-f4
+f2
 c0
 68
 00
-fe
+fc
 20
 20
 3b
@@ -168,14 +168,6 @@
 00
 8b
 81
-58
-01
-06
-20
-60
-01
-cd
-4c
 70
 80
 06
@@ -211,7 +203,7 @@
 20
 3a
 00
-2f
+2d
 20
 20
 30
@@ -219,15 +211,15 @@
 20
 40
 00
-84
+82
 20
 40
 00
-42
+40
 20
 40
 00
-39
+37
 20
 20
 30
@@ -275,7 +267,7 @@
 20
 3a
 00
-46
+44
 68
 00
 c7
@@ -287,7 +279,7 @@
 20
 40
 00
-e4
+e2
 20
 74
 00
@@ -303,7 +295,7 @@
 20
 40
 00
-c5
+c3
 60
 00
 cb
@@ -311,7 +303,7 @@
 c0
 00
 80
-59
+57
 1f
 e2
 04
@@ -327,7 +319,7 @@
 c3
 00
 00
-56
+54
 1a
 22
 0c
@@ -343,7 +335,7 @@
 c0
 02
 80
-63
+61
 20
 20
 3b
@@ -359,15 +351,15 @@
 20
 20
 00
-bd
+bb
 20
 40
 00
-c5
+c3
 20
 40
 00
-c5
+c3
 60
 00
 8b
@@ -375,7 +367,7 @@
 20
 40
 00
-5e
+5c
 20
 20
 7c
@@ -383,7 +375,7 @@
 20
 40
 00
-c8
+c6
 18
 c2
 04
@@ -439,7 +431,7 @@
 20
 40
 00
-c5
+c3
 18
 c2
 22
@@ -467,7 +459,7 @@
 20
 40
 00
-c5
+c3
 18
 c2
 22
@@ -475,15 +467,15 @@
 c0
 00
 80
-78
+76
 c0
 01
 00
-80
+7e
 c0
 01
 80
-82
+80
 68
 01
 4c
@@ -499,7 +491,7 @@
 20
 40
 00
-bf
+bd
 20
 40
 56
@@ -523,7 +515,7 @@
 20
 20
 00
-79
+77
 68
 01
 4c
@@ -531,7 +523,7 @@
 20
 20
 00
-79
+77
 68
 0a
 4c
@@ -611,11 +603,11 @@
 c2
 80
 00
-a1
+9f
 c2
 80
 80
-a3
+a1
 da
 20
 00
@@ -623,7 +615,7 @@
 20
 40
 00
-b4
+b2
 70
 89
 71
@@ -639,7 +631,7 @@
 20
 40
 00
-a4
+a2
 da
 20
 00
@@ -647,7 +639,7 @@
 20
 20
 00
-b4
+b2
 70
 89
 71
@@ -655,7 +647,7 @@
 20
 20
 00
-a4
+a2
 70
 89
 71
@@ -747,7 +739,7 @@
 24
 3a
 00
-bb
+b9
 79
 3f
 84
@@ -763,7 +755,7 @@
 20
 40
 00
-c5
+c3
 1f
 e2
 72
@@ -771,15 +763,15 @@
 20
 40
 00
-c1
+bf
 20
 20
 00
-5e
+5c
 20
 40
 00
-c5
+c3
 e0
 a0
 80
@@ -787,7 +779,7 @@
 c2
 00
 00
-c1
+bf
 20
 60
 00
@@ -795,7 +787,7 @@
 20
 40
 00
-c8
+c6
 e8
 c0
 80
@@ -863,11 +855,11 @@
 20
 40
 00
-dc
+da
 c2
 00
 00
-d4
+d2
 18
 a2
 7e
@@ -915,7 +907,7 @@
 20
 20
 00
-e6
+e4
 68
 01
 4b
@@ -959,7 +951,7 @@
 24
 41
 00
-f0
+ee
 20
 20
 7c
@@ -999,7 +991,7 @@
 20
 40
 00
-fa
+f8
 20
 20
 3e
@@ -1011,11 +1003,11 @@
 c0
 0a
 04
-1b
+19
 c0
 0a
 84
-21
+1f
 20
 20
 3e
@@ -1055,7 +1047,7 @@
 20
 20
 01
-02
+00
 1a
 62
 7e
@@ -1083,7 +1075,7 @@
 20
 20
 00
-cd
+cb
 70
 41
 6e
@@ -1239,7 +1231,7 @@
 20
 40
 00
-e4
+e2
 24
 74
 00
@@ -1247,7 +1239,7 @@
 20
 40
 00
-e1
+df
 24
 74
 00
@@ -1263,15 +1255,15 @@
 20
 40
 01
-41
+3f
 20
 20
 00
-e4
+e2
 20
 40
 01
-34
+32
 24
 74
 00
@@ -1299,7 +1291,7 @@
 c0
 80
 01
-41
+3f
 20
 60
 00
@@ -1307,7 +1299,7 @@
 20
 40
 01
-34
+32
 24
 74
 00
@@ -1327,7 +1319,7 @@
 20
 40
 01
-4c
+4a
 20
 20
 3a
@@ -1339,7 +1331,7 @@
 24
 3a
 01
-52
+50
 20
 40
 3d
@@ -1415,7 +1407,7 @@
 20
 40
 01
-5d
+5b
 58
 00
 05
@@ -1491,7 +1483,7 @@
 20
 40
 01
-76
+74
 70
 89
 55
@@ -1575,7 +1567,7 @@
 20
 40
 01
-7e
+7c
 20
 20
 3a
@@ -1623,7 +1615,7 @@
 58
 00
 01
-90
+8e
 60
 01
 42
@@ -1631,15 +1623,15 @@
 58
 00
 01
-07
+05
 60
 01
 42
 92
 58
 00
-02
 01
+ff
 60
 01
 42
@@ -1647,7 +1639,7 @@
 58
 00
 00
-42
+40
 60
 01
 42
@@ -1655,7 +1647,7 @@
 58
 00
 01
-8a
+88
 60
 01
 42
@@ -1703,11 +1695,11 @@
 c0
 2d
 01
-bf
+bd
 20
 35
 81
-bd
+bb
 68
 01
 4c
@@ -1735,7 +1727,7 @@
 20
 40
 01
-ca
+c8
 68
 04
 02
@@ -1743,7 +1735,7 @@
 24
 3a
 01
-b7
+b5
 68
 01
 4a
@@ -1755,7 +1747,7 @@
 20
 3a
 01
-b7
+b5
 60
 01
 4c
@@ -1763,7 +1755,7 @@
 20
 40
 04
-28
+26
 70
 4b
 a4
@@ -1771,7 +1763,7 @@
 20
 40
 00
-cd
+cb
 70
 4c
 97
@@ -1791,7 +1783,7 @@
 20
 20
 01
-b9
+b7
 1c
 e2
 7e
@@ -1799,7 +1791,7 @@
 20
 3a
 02
-04
+02
 20
 40
 5b
@@ -1835,7 +1827,7 @@
 20
 20
 01
-b9
+b7
 20
 40
 68
@@ -1875,11 +1867,11 @@
 c2
 80
 01
-dc
+da
 c2
 80
 81
-ea
+e8
 68
 01
 02
@@ -2067,7 +2059,7 @@
 20
 40
 01
-41
+3f
 70
 4c
 97
@@ -2131,19 +2123,19 @@
 c0
 06
 82
-1b
+19
 c0
 15
 82
-23
+21
 c0
 15
 02
-25
+23
 c0
 08
 82
-19
+17
 c0
 09
 7c
@@ -2295,7 +2287,7 @@
 20
 40
 02
-3e
+3c
 20
 20
 54
@@ -2303,7 +2295,7 @@
 20
 36
 81
-63
+61
 20
 40
 53
@@ -2327,7 +2319,7 @@
 c0
 00
 82
-46
+44
 20
 20
 54
@@ -2379,23 +2371,23 @@
 c0
 03
 82
-6a
+68
 c0
 07
 82
-6e
+6c
 c0
 03
 02
-5c
+5a
 c0
 01
 02
-59
+57
 c0
 09
 82
-57
+55
 20
 20
 56
@@ -2451,7 +2443,7 @@
 c0
 01
 02
-66
+64
 70
 41
 31
@@ -2459,7 +2451,7 @@
 20
 20
 02
-68
+66
 70
 0b
 7d
@@ -2531,7 +2523,7 @@
 c0
 01
 02
-7a
+78
 c0
 03
 d7
@@ -2623,15 +2615,15 @@
 c0
 29
 02
-92
+90
 c0
 01
 02
-a4
+a2
 c0
 09
 02
-98
+96
 20
 20
 59
@@ -2647,7 +2639,7 @@
 c0
 0f
 82
-96
+94
 20
 20
 59
@@ -2659,7 +2651,7 @@
 20
 20
 02
-2e
+2c
 68
 01
 03
@@ -2671,7 +2663,7 @@
 20
 42
 82
-96
+94
 68
 01
 03
@@ -2691,7 +2683,7 @@
 20
 22
 82
-a1
+9f
 20
 20
 59
@@ -2723,27 +2715,27 @@
 c0
 0d
 83
-de
+dc
 c0
 0e
 83
-de
+dc
 c0
 08
 83
-72
+70
 c0
 04
 83
-24
+22
 c0
 02
 83
-12
+10
 c0
 03
 82
-c6
+c4
 c0
 09
 d8
@@ -2751,15 +2743,15 @@
 c0
 01
 82
-b7
+b5
 c0
 05
 82
-ba
+b8
 c0
 06
 82
-b2
+b0
 20
 20
 56
@@ -2771,7 +2763,7 @@
 c0
 03
 82
-b5
+b3
 20
 20
 57
@@ -2803,7 +2795,7 @@
 c0
 07
 02
-bd
+bb
 20
 20
 57
@@ -2867,7 +2859,7 @@
 20
 22
 82
-df
+dd
 58
 00
 18
@@ -2879,7 +2871,7 @@
 20
 22
 82
-e1
+df
 58
 00
 18
@@ -2891,7 +2883,7 @@
 20
 22
 82
-e5
+e3
 58
 00
 18
@@ -2903,7 +2895,7 @@
 20
 22
 82
-e3
+e1
 20
 20
 57
@@ -2943,7 +2935,7 @@
 20
 20
 02
-e7
+e5
 d8
 e0
 00
@@ -2951,7 +2943,7 @@
 20
 20
 02
-d6
+d4
 d8
 e0
 00
@@ -2959,7 +2951,7 @@
 20
 20
 02
-d6
+d4
 d8
 e0
 00
@@ -2967,7 +2959,7 @@
 20
 20
 02
-d6
+d4
 d8
 e0
 00
@@ -2975,7 +2967,7 @@
 20
 20
 02
-d6
+d4
 68
 01
 44
@@ -2995,11 +2987,11 @@
 20
 40
 02
-ee
+ec
 20
 22
 82
-f9
+f7
 20
 20
 57
@@ -3047,7 +3039,7 @@
 20
 20
 02
-ef
+ed
 18
 c0
 8d
@@ -3063,7 +3055,7 @@
 20
 40
 03
-07
+05
 20
 3a
 57
@@ -3147,7 +3139,7 @@
 20
 20
 03
-0a
+08
 d9
 60
 00
@@ -3175,7 +3167,7 @@
 24
 21
 03
-22
+20
 78
 54
 7c
@@ -3211,7 +3203,7 @@
 20
 20
 03
-16
+14
 18
 c0
 8c
@@ -3219,7 +3211,7 @@
 20
 20
 03
-1f
+1d
 68
 09
 44
@@ -3235,7 +3227,7 @@
 20
 22
 83
-64
+62
 58
 00
 2a
@@ -3247,7 +3239,7 @@
 20
 22
 83
-6f
+6d
 58
 00
 28
@@ -3275,11 +3267,11 @@
 20
 40
 03
-b6
+b4
 24
 21
 03
-40
+3e
 68
 09
 02
@@ -3287,19 +3279,19 @@
 20
 40
 03
-be
+bc
 c0
 00
 83
-40
+3e
 20
 40
 03
-ba
+b8
 24
 22
 83
-3e
+3c
 78
 54
 7c
@@ -3307,31 +3299,31 @@
 20
 40
 03
-42
+40
 20
 40
 03
-a4
+a2
 20
 40
 03
-be
+bc
 20
 40
 03
-4a
+48
 20
 20
 03
-40
+3e
 20
 40
 03
-a4
+a2
 20
 20
 03
-31
+2f
 20
 34
 57
@@ -3339,7 +3331,7 @@
 20
 20
 03
-dc
+da
 68
 01
 02
@@ -3359,7 +3351,7 @@
 20
 40
 03
-d3
+d1
 d8
 a0
 44
@@ -3371,7 +3363,7 @@
 20
 20
 03
-d6
+d4
 68
 09
 4c
@@ -3383,11 +3375,11 @@
 c0
 82
 83
-5c
+5a
 20
 40
 03
-d0
+ce
 68
 01
 02
@@ -3399,7 +3391,7 @@
 20
 40
 03
-d6
+d4
 58
 00
 45
@@ -3431,7 +3423,7 @@
 20
 40
 03
-d0
+ce
 18
 42
 0c
@@ -3443,11 +3435,11 @@
 20
 20
 03
-d6
+d4
 20
 40
 03
-d0
+ce
 68
 01
 02
@@ -3467,7 +3459,7 @@
 20
 40
 03
-d6
+d4
 70
 44
 45
@@ -3531,7 +3523,7 @@
 20
 20
 03
-65
+63
 d9
 60
 00
@@ -3555,11 +3547,11 @@
 20
 40
 03
-b6
+b4
 24
 21
 03
-9a
+98
 68
 09
 02
@@ -3567,19 +3559,19 @@
 20
 40
 03
-be
+bc
 c0
 00
 83
-9d
+9b
 20
 40
 03
-ba
+b8
 24
 22
 83
-96
+94
 68
 00
 8d
@@ -3587,11 +3579,11 @@
 c0
 00
 83
-9d
+9b
 24
 34
 03
-87
+85
 78
 54
 7c
@@ -3611,11 +3603,11 @@
 20
 40
 03
-d6
+d4
 20
 20
 03
-91
+8f
 68
 00
 cc
@@ -3627,7 +3619,7 @@
 20
 22
 83
-9d
+9b
 68
 00
 c4
@@ -3639,7 +3631,7 @@
 20
 22
 83
-9d
+9b
 68
 01
 02
@@ -3655,7 +3647,7 @@
 20
 40
 03
-ad
+ab
 68
 01
 02
@@ -3667,7 +3659,7 @@
 20
 40
 03
-a8
+a6
 19
 60
 97
@@ -3675,15 +3667,15 @@
 20
 22
 83
-98
+96
 20
 40
 03
-a4
+a2
 20
 20
 03
-77
+75
 70
 0d
 5c
@@ -3691,7 +3683,7 @@
 20
 20
 03
-96
+94
 68
 01
 02
@@ -3703,7 +3695,7 @@
 20
 20
 03
-a1
+9f
 68
 01
 02
@@ -3719,7 +3711,7 @@
 20
 20
 03
-a1
+9f
 20
 34
 57
@@ -3727,11 +3719,11 @@
 20
 40
 03
-ad
+ab
 20
 20
 03
-dc
+da
 68
 09
 02
@@ -3763,7 +3755,7 @@
 20
 40
 03
-d3
+d1
 20
 20
 7e
@@ -3771,7 +3763,7 @@
 20
 40
 03
-d0
+ce
 68
 01
 0d
@@ -3803,7 +3795,7 @@
 20
 20
 03
-d6
+d4
 68
 09
 02
@@ -3851,7 +3843,7 @@
 20
 3a
 03
-c9
+c7
 e8
 c9
 00
@@ -3867,7 +3859,7 @@
 20
 22
 83
-cb
+c9
 e8
 c0
 80
@@ -3879,7 +3871,7 @@
 20
 20
 03
-c0
+be
 58
 00
 00
@@ -3899,7 +3891,7 @@
 20
 40
 03
-d9
+d7
 58
 00
 00
@@ -3959,7 +3951,7 @@
 20
 40
 03
-d0
+ce
 20
 20
 58
@@ -4027,23 +4019,23 @@
 c0
 01
 83
-fa
+f8
 c0
 05
 03
-fe
+fc
 c0
 00
 03
-f7
+f5
 c0
 09
 03
-fc
+fa
 c0
 01
-04
-00
+03
+fe
 1f
 e6
 7c
@@ -4123,7 +4115,7 @@
 20
 20
 84
-07
+05
 20
 20
 58
@@ -4147,15 +4139,15 @@
 c0
 00
 84
-11
+0f
 c0
 02
 04
-16
+14
 c0
 04
 84
-0f
+0d
 20
 20
 58
@@ -4195,7 +4187,7 @@
 20
 22
 84
-19
+17
 20
 20
 59
@@ -4272,12 +4264,12 @@
 60
 00
 00
-51
-07
+11
+72
 aa
 55
-33
-24
+4a
+23
 02
 05
 6a
@@ -5677,8 +5669,8 @@
 05
 b1
 02
-0f
-e2
+20
+53
 e4
 93
 a3
@@ -5808,23 +5800,23 @@
 4e
 0b
 ff
-10
-ef
+12
+68
 00
 00
 00
 ff
-14
-29
+15
+e4
 ff
-17
-6a
+10
+ea
 00
 00
 00
 ff
-1f
-35
+1e
+93
 00
 1a
 08
@@ -6225,8 +6217,8 @@
 7b
 64
 12
-21
-83
+20
+56
 90
 4e
 66
@@ -6552,13 +6544,13 @@
 e0
 f9
 12
-17
-d4
+18
+48
 ef
 60
 02
 41
-42
+2a
 90
 4e
 6f
@@ -6572,7 +6564,7 @@
 70
 02
 41
-42
+2a
 90
 4c
 c7
@@ -6609,7 +6601,7 @@
 09
 fc
 71
-ea
+d8
 7b
 01
 7a
@@ -6621,7 +6613,7 @@
 7c
 00
 71
-ea
+d8
 90
 4c
 b6
@@ -6632,51 +6624,27 @@
 4c
 f4
 e0
-b4
+ff
+64
 01
+70
+02
+41
 2a
-90
-48
-00
-74
-01
-f0
-a3
-e0
-ff
-90
-4c
-f5
-e0
-fe
 ef
-4e
-90
-48
-01
-f0
-e4
-90
-48
-03
-f0
-7b
-01
-7a
-48
-79
-00
-7d
-09
-51
-43
-90
-4c
-f4
-74
+64
+04
+70
 02
-f0
-22
+41
+2a
+ef
+64
+02
+70
+02
+41
+2a
 90
 4e
 6f
@@ -6689,7 +6657,7 @@
 e0
 f9
 51
-74
+2b
 90
 4e
 01
@@ -6712,8 +6680,8 @@
 02
 7d
 03
-41
-43
+81
+8a
 90
 4e
 01
@@ -6741,8 +6709,8 @@
 02
 7d
 03
-41
-43
+81
+8a
 90
 48
 00
@@ -6902,57 +6870,8 @@
 00
 7d
 09
-51
-43
-22
-90
-4e
-7e
-eb
-f0
-a3
-ea
-f0
-a3
-e9
-f0
-a3
-ed
-f0
-f1
-fc
-ef
-60
-1d
-90
-4c
-eb
-e0
-70
-17
-90
-4c
-c7
-e0
-b4
-04
-10
-90
-4e
-7e
-e0
-fb
-a3
-e0
-fa
-a3
-e0
-f9
-a3
-e0
-fd
-b1
-5f
+91
+8a
 22
 90
 4e
@@ -6980,7 +6899,7 @@
 40
 02
 61
-ce
+bc
 90
 4e
 82
@@ -7023,34 +6942,34 @@
 60
 02
 61
-c6
+b4
 12
 03
 b6
 fb
 b4
-f1
+f2
 08
 7f
-83
+cd
 7e
-01
+00
 71
-cf
+bd
 61
-9b
+89
 eb
 b4
-f2
+f4
 08
 7f
-cd
+b6
 7e
 00
 71
-cf
+bd
 61
-9b
+89
 90
 4e
 82
@@ -7081,26 +7000,26 @@
 b6
 fb
 b4
-f3
+f5
 06
 7f
-b7
+b5
 71
-cf
+bd
 61
-9b
+89
 eb
 b4
-f4
+f6
 08
 7f
-b6
+ea
 7e
 00
 71
-cf
+bd
 61
-9b
+89
 90
 4e
 82
@@ -7131,26 +7050,26 @@
 b6
 fb
 b4
-f5
+f7
 06
 7f
-b5
+e9
 71
-cf
-80
-6e
+bd
+61
+89
 eb
 b4
-f6
+f8
 08
 7f
-ea
+e2
 7e
 00
 71
-cf
-80
-62
+bd
+61
+89
 90
 4e
 82
@@ -7181,26 +7100,27 @@
 b6
 fb
 b4
-f7
-06
+fa
+07
 7f
-e9
+8a
+0e
 71
-cf
+bd
 80
-3c
+72
 eb
 b4
-f8
+d5
 08
 7f
-e2
+21
 7e
-00
+02
 71
-cf
+bd
 80
-30
+66
 90
 4e
 82
@@ -7231,31 +7151,28 @@
 b6
 fb
 b4
-d7
-06
+d6
+08
 7f
-70
+23
+7e
+02
 71
-cf
+bd
 80
-0a
+3e
 eb
 b4
-d8
-06
+d9
+08
 7f
-6f
+b8
 7e
 00
 71
-cf
-90
-4e
-01
-e0
-b4
-02
-24
+bd
+80
+32
 90
 4e
 82
@@ -7284,22 +7201,79 @@
 12
 03
 b6
-90
-4d
-e3
-f0
-e4
-12
+fb
+b4
+db
+08
+7f
+06
+7e
 03
-fc
+71
+bd
+80
+0a
+eb
+b4
+dc
+06
+7f
+07
+7e
+03
+71
+bd
 90
 4e
-85
+01
 e0
-04
-f0
-41
-83
+b4
+02
+24
+90
+4e
+82
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+90
+4d
+e3
+f0
+e4
+12
+03
+fc
+90
+4e
+85
+e0
+04
+f0
+41
+3a
 22
 ad
 07
@@ -7379,11 +7353,11 @@
 79
 bf
 7d
-42
+43
 7c
 00
 71
-ea
+d8
 7b
 01
 7a
@@ -7395,7 +7369,7 @@
 7c
 00
 71
-ea
+d8
 7b
 01
 7a
@@ -7407,7 +7381,7 @@
 7c
 00
 71
-ea
+d8
 7b
 01
 7a
@@ -7419,7 +7393,7 @@
 7c
 00
 71
-ea
+d8
 7b
 01
 7a
@@ -7431,7 +7405,7 @@
 7c
 00
 71
-ea
+d8
 7b
 01
 7a
@@ -7443,7 +7417,7 @@
 7c
 00
 71
-ea
+d8
 e4
 90
 4d
@@ -7508,6 +7482,56 @@
 22
 90
 4e
+7e
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+12
+17
+e6
+ef
+60
+1d
+90
+4c
+eb
+e0
+70
+17
+90
+4c
+c7
+e0
+b4
+04
+10
+90
+4e
+7e
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+a3
+e0
+fd
+b1
+9f
+22
+90
+4e
 a7
 ef
 f0
@@ -7525,7 +7549,7 @@
 7c
 00
 71
-ea
+d8
 90
 48
 00
@@ -7562,8 +7586,8 @@
 00
 7d
 09
-41
-43
+80
+94
 90
 4c
 f4
@@ -7572,15 +7596,36 @@
 60
 08
 64
-01
+03
 60
 04
 ef
 b4
-03
+05
 02
 80
-45
+65
+90
+4c
+f4
+e0
+b4
+01
+0e
+a3
+e0
+ff
+e4
+fd
+91
+bc
+90
+4c
+f4
+74
+02
+f0
+22
 90
 4c
 f4
@@ -7598,14 +7643,14 @@
 e0
 fd
 80
-a3
+8e
 90
 4c
 f4
 e0
 b4
 04
-13
+1a
 e4
 90
 4c
@@ -7613,42 +7658,53 @@
 f0
 90
 4c
+f5
+e0
+ff
+e4
+fd
+91
+bc
+e4
+90
+4c
+f5
+f0
+90
+4c
 f4
 74
 05
 f0
-a3
-e0
-ff
-a3
-e0
-fd
-80
-89
+22
 90
 4c
 f4
 e0
 b4
-05
-11
+06
+15
 e4
-a3
-f0
-a3
+90
+4c
+f6
 f0
 90
 4c
-f4
+f5
 f0
 a3
 e0
-ff
-a3
-e0
 fd
+e4
+ff
 91
-9c
+bc
+e4
+90
+4c
+f4
+f0
 22
 90
 4e
@@ -7660,13 +7716,13 @@
 a3
 f0
 12
-23
-72
+22
+45
 50
 24
 12
 19
-b2
+a1
 90
 4e
 92
@@ -7709,7 +7765,7 @@
 f0
 90
 4e
-b4
+b3
 ed
 f0
 e0
@@ -7737,7 +7793,7 @@
 e7
 90
 4e
-b4
+b3
 e0
 24
 02
@@ -7746,10 +7802,10 @@
 07
 6b
 91
-16
+04
 12
-1f
-58
+1e
+b6
 90
 4c
 eb
@@ -7769,24 +7825,25 @@
 f0
 90
 4d
-00
+01
 74
 ff
 f0
 22
 12
-1f
-45
+1e
+a3
 12
-22
-2d
+21
+00
 91
-d6
-f1
-5c
+f6
 12
-1e
-96
+11
+69
+12
+10
+65
 90
 0b
 7e
@@ -7797,13 +7854,13 @@
 24
 fe
 70
-eb
-b1
-ee
+ea
+d1
+2f
 f1
-a3
+9c
 f1
-39
+79
 80
 fe
 90
@@ -7826,23 +7883,23 @@
 06
 90
 4c
-e7
+f8
 e0
 60
 05
 12
-23
-66
-80
-c6
-b1
-ee
-f1
+22
 39
 80
-c0
-80
-be
+c5
+d1
+2f
+f1
+79
+80
+bf
+80
+bd
 22
 e4
 ff
@@ -7934,7 +7991,7 @@
 b0
 12
 23
-fd
+14
 90
 81
 1c
@@ -7960,31 +8017,31 @@
 e4
 ff
 d1
-99
+da
 7f
 01
 d1
-99
+da
 7f
 02
 d1
-99
+da
 7f
 03
 d1
-99
+da
 7f
 04
 d1
-99
+da
 7f
 05
 d1
-99
+da
 7f
 06
 d1
-99
+da
 7f
 07
 80
@@ -8017,17 +8074,16 @@
 22
 90
 4e
-b6
+b5
 ef
 f0
-12
-17
-1e
+f1
+ca
 92
 08
 90
 4e
-b6
+b5
 e0
 ff
 a2
@@ -8040,7 +8096,7 @@
 70
 02
 e1
-38
+78
 ef
 54
 07
@@ -8210,153 +8266,121 @@
 80
 e9
 22
-90
-4c
-bf
-e0
-ff
-60
-3f
-64
-03
-60
-04
-7f
-c8
-f1
-44
-c2
-01
-7f
-ff
-f1
-d0
-7b
-01
-7a
-4d
-79
-e4
-7d
-1d
-7c
-00
-7f
-d8
-7e
-3f
-12
-16
-1f
-7b
-01
-7a
-4c
-79
-f2
-7d
-02
-7c
-00
-7f
-f6
-7e
-3f
-12
-16
-1f
-d2
-01
-7f
-ff
-f1
-d0
-7f
-0a
-f1
-44
-e4
-90
-4c
-bf
-f0
-22
 c2
 06
 7f
 1e
 f1
-b3
+ac
 c2
 06
 7f
 0f
 f1
-b3
+ac
 c2
 06
 7f
-ff
+1d
 ac
 07
 ec
 f4
 60
-16
+17
 af
 04
 d2
 04
 12
-13
-3c
+15
+b6
 af
 04
 a2
 06
 92
 01
-f1
-d0
+12
+10
+54
 af
 04
 c2
 02
 12
-13
-1a
+15
+33
 22
-ef
-f4
-60
-0d
 7b
 01
 7a
-80
+81
 79
+1c
+ad
+07
+e4
+90
+4e
+b4
+f0
+fe
+ef
+54
+07
+f0
+ef
+13
+13
+13
+54
+03
+fe
+f5
+82
+75
+83
+00
+12
+03
+cf
+fd
+33
+95
+e0
+fc
+90
+4e
+b4
+e0
+ff
 74
-a2
 01
-92
+7e
 00
-12
-13
-4d
-22
-a1
 a8
-12
-12
-b6
-80
-ba
-d2
-01
-7f
-0f
+07
+08
 80
-e1
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
+fe
+ef
+5d
+4e
+24
+ff
+22
 90
 4c
 c7
@@ -8370,294 +8394,361 @@
 7f
 00
 22
-e4
-90
-4e
-ad
-f0
 90
-4c
-c8
+4d
+e1
 e0
-b4
+64
 02
-06
-90
-4e
-ad
-e0
-ff
-22
-90
-47
-f5
-e0
-30
-e3
-06
+70
+2f
 90
-4e
-ad
+4c
+e9
 e0
-ff
-22
+60
+04
+7f
+0f
+91
+dc
+11
+0f
+ef
+60
+20
 90
 4c
-c7
+e7
 e0
-70
-1a
+60
+14
+14
+f0
+d2
+01
+7f
+1e
+11
+54
 90
 4c
-ef
+e7
 e0
 70
+0c
+c2
+01
+7f
+1e
+80
+07
+c2
+01
+7f
 1e
+11
+54
+22
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
 74
-0a
-f0
-a3
-e0
-70
-17
+a2
+01
+92
+00
+b1
+55
+22
 90
 4d
 e1
 e0
-b4
+64
 02
-10
-7f
-01
-11
-4b
-80
-0a
-e4
+70
+7c
 90
 4c
-eb
-f0
+e9
+e0
+70
+76
 90
-4e
-ad
+4c
+d5
+e0
+b4
+02
 04
-f0
+51
+5e
+80
+2e
 90
-4e
-ad
+4c
+d5
 e0
-ff
-22
-90
-4e
-ae
-ef
-f0
-24
-fe
-60
-0f
+b4
+01
 14
-60
-0c
-24
-fe
-60
-35
-24
-f8
-60
-2c
-24
-0c
-70
-5f
 90
-4e
-ae
+4c
+f7
 e0
-14
-90
-4d
-d1
-f0
+70
+21
 90
-42
-13
+4c
+e2
 74
-05
+04
 f0
 90
 4c
+f7
+74
+01
 f0
-f0
-7f
-04
-12
-07
-44
-7f
-0a
-12
-0f
-44
-7f
-2a
-12
-07
-44
-e4
+80
+13
 90
 4c
-ed
-f0
-22
-7f
-0e
-02
-07
-44
+f7
+e0
+b4
+01
+0c
 e4
+f0
 90
 4c
+e2
 f0
-f0
-91
+c2
+01
+7f
+1d
 11
-ef
-70
-05
-d1
-cd
+54
+11
+0f
 ef
 60
-0f
+32
 90
-4e
-ae
+4d
+d9
 e0
+ff
 90
 4c
-ed
-f0
+b7
+e0
+6f
+60
+2c
+e0
+30
+e1
+0e
 90
-4d
-e2
+4c
+e7
 74
-03
-f0
-22
-51
-a2
-e4
-90
-41
-31
+0c
 f0
-71
-ae
+d2
+01
 7f
-0d
-12
-07
-44
+1e
+11
+54
+80
+0b
+c2
+01
+7f
+1e
+11
+54
 e4
 90
 4c
-ed
+e7
 f0
-22
-e4
 90
 4c
-ed
+b7
+e0
+90
+4d
+d9
 f0
 22
+c2
+01
+7f
+1e
+11
+54
+22
 90
 4c
-e9
+ea
 e0
 60
-16
-e4
+02
+14
+f0
 90
 4c
-e3
-f0
-a3
+ef
+e0
+60
+02
+14
 f0
 90
 4c
-e9
+f8
 e0
+60
+0a
 14
 f0
 e0
 70
-06
-7f
-0d
-11
-4b
-11
-e5
-22
-e4
+05
 90
-4d
-38
+4c
+f4
+04
 f0
-7f
-19
-02
-07
-44
-ef
-24
-ec
+90
+4c
+e5
+e0
 60
-7a
+16
 14
+f0
+d2
+01
+7f
+0f
+11
+54
+90
+4c
+e5
+e0
 70
-02
-21
-b9
-24
-ec
+31
+c2
+01
+7f
+0f
+11
+54
+80
+29
+90
+4c
+e9
+e0
 70
-02
-21
-ad
-24
-f9
+23
+90
+4c
+e2
+e0
 60
-66
-24
-fd
+1d
+14
+f0
+e0
+30
+e1
+08
+d2
+01
+7f
+1d
+11
+54
+80
+06
+c2
+01
+7f
+1d
+11
+54
+90
+4c
+e2
+e0
+70
+03
+74
+04
+f0
+90
+4d
+de
+e0
 60
-0f
+13
+e0
 14
+f0
+e0
 70
-02
-21
-91
-24
-fd
+0d
+90
+4c
+c7
+e0
+b4
+04
+06
+90
+42
+13
+74
+0c
+f0
+22
+90
+4c
+bf
+e0
+ff
 60
-5b
-24
-08
+3f
+64
+03
 60
-02
-21
-f1
+05
+7f
+c8
 12
 0f
-e4
-12
-0d
-8b
+84
+c2
+01
+7f
+ff
+11
+54
 7b
 01
 7a
@@ -8673,12 +8764,7 @@
 7e
 3f
 31
-f2
-7f
-0a
-12
-0f
-44
+b0
 7b
 01
 7a
@@ -8694,534 +8780,479 @@
 7e
 3f
 31
-f2
-90
-4c
-f2
-e0
-b4
-ff
-1f
-a3
-e0
-b4
+b0
+d2
+01
+7f
 ff
-1a
-90
-4c
-93
-e0
-a3
-e0
+11
+54
+7f
+0a
+12
+0f
+84
+e4
 90
 4c
-f2
+bf
 f0
+22
 90
-4c
-91
-e0
+4e
+3d
+ee
+f0
 a3
-e0
-90
-4c
-f3
+ef
 f0
-90
-4c
-bf
-74
-01
+a3
+ec
 f0
-41
-ac
-41
-b6
-02
-06
-c2
-90
-4c
-c7
-74
-03
+a3
+ed
 f0
 a3
-74
-01
+eb
+f0
+a3
+ea
+f0
+a3
+e9
 f0
-7f
-0e
-12
-07
-44
 90
-4c
-e5
+4e
+3f
 e0
 70
 02
-b1
-76
-e4
-90
-4c
-e9
-f0
-90
-4c
-e3
-f0
-a3
-f0
-22
-90
-4c
-c7
-74
-04
-f0
-e4
 a3
-f0
-51
-a2
-e4
-90
-4c
-eb
-f0
-90
+e0
+70
+02
 41
-31
-04
-f0
-90
-4c
-bf
-74
-03
-f0
-22
-7f
-01
-12
-07
-fd
-90
-4c
-bf
-74
-03
-f0
-22
+5d
 90
-4c
-c7
+4e
+3d
 e0
-90
-4c
-cb
-f0
-e4
-90
-4c
-c7
-f0
-a3
-f0
-90
-4c
-eb
-04
-f0
+fe
 a3
 e0
-b4
+ff
+44
+0f
+24
 01
-04
+fd
 e4
-f0
-01
-e5
-90
-4c
+3e
+fc
+c3
 ed
-e0
+9f
 ff
-60
-02
-01
-4b
-90
-4c
-f0
-e0
-60
-03
-02
-06
-c2
-11
-e5
-e4
+ec
+9e
+fe
 90
-4c
-e3
+4e
+44
 f0
 a3
+ef
 f0
-22
 90
 4e
-79
-ec
-f0
-a3
-ed
-f0
-a3
-eb
-f0
-a3
-ea
-f0
+3f
+e0
+fc
 a3
-e9
-f0
+e0
+fd
+d3
+9f
+ec
+9e
+40
+0a
 90
+4e
+44
+e0
+fe
+a3
+e0
+ff
 80
-98
-74
 04
-f0
-a3
-e4
-f0
-90
-0c
+ae
+04
 af
-74
-a0
-f0
-a3
+05
+90
+4e
+44
 ee
 f0
+fc
 a3
 ef
 f0
+fd
+c3
 90
-0c
-b2
-74
-a1
+4e
+40
+e0
+9d
 f0
-7a
-0c
-79
-af
-7e
-0c
-7f
-af
-74
-af
-fc
-74
-0c
-ff
-ec
-fe
-ef
 90
-80
-9a
-ee
+4e
+3f
+e0
+9c
 f0
+90
+4e
+3d
+e0
+fe
 a3
-ef
-f0
+e0
+ff
 90
 4e
-79
+41
 e0
-fc
+fb
 a3
 e0
 fa
-ec
-ff
-ea
+a3
+e0
+f9
+f1
+4b
+7f
+0a
+12
+0f
+84
+90
+4e
+44
+e0
 fe
-ef
+a3
+e0
+ff
 90
-80
-9e
+4e
+42
 ee
+8f
 f0
-a3
-ef
+12
+04
+0e
+90
+4e
+3e
+e0
+2f
 f0
-7a
-0b
-79
-83
-7e
-0b
-7f
-83
-74
-83
-fc
-74
-0b
-ff
-ec
-fe
-ef
 90
-80
-9c
-ee
-f0
-a3
-ef
+4e
+3d
+e0
+3e
 f0
+21
+c7
+22
+e4
 90
-80
-90
-74
-02
+4d
+38
 f0
-90
-80
-9c
-a3
-e0
-20
-e7
+7f
+19
+02
 07
-90
-80
-90
-e0
 44
+ef
+24
+ec
+60
+79
+14
+70
+02
+61
+35
+24
+ec
+70
+02
+61
+29
+24
+f9
+60
+65
+24
+fd
+60
+0f
+14
+70
+02
+61
+0d
+24
+fd
+60
+5a
+24
+08
+60
+02
+61
+6d
+91
+1e
+12
+0d
+cb
+7b
 01
-f0
-90
-80
-06
-e0
-44
-04
-f0
-b1
+7a
+4d
+79
+e4
 7d
-90
-4e
+1d
+7c
+00
+7f
+d8
+7e
+3f
+71
+6e
+7f
+0a
+12
+0f
+84
 7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+f6
+7e
+3f
+71
+6e
+90
+4c
+f2
 e0
+b4
+ff
+1f
 a3
 e0
-fa
-a3
-e0
-ae
-02
+b4
 ff
-7b
-01
-7a
-0b
-79
-83
+1a
 90
-4e
-79
+4c
+93
 e0
 a3
 e0
 90
-4e
-6e
+4c
+f2
 f0
-02
-08
-3d
-e4
 90
 4c
-f0
-f0
+91
+e0
+a3
+e0
 90
-4d
-dd
+4c
+f3
 f0
-22
 90
-4d
-e1
+4c
+bf
 74
+01
+f0
+81
+4c
+81
+23
 02
+06
+c2
+90
+4c
+c7
+74
+03
 f0
-7f
-01
+a3
+74
 01
-4b
+f0
+7f
+0e
+12
+07
+44
 90
-80
-80
+4c
+e5
+e0
+70
+06
+c2
+01
+7f
+0f
+11
+54
 e4
+90
+4c
+e9
+f0
+90
+4c
+e3
 f0
 a3
 f0
+22
+90
+4c
+c7
+74
+04
+f0
+e4
 a3
 f0
-51
-df
+91
+d2
 e4
 90
-4e
-b1
-f0
+4c
+eb
 f0
 90
-4e
-b1
-e0
+41
+31
+04
+f0
 90
-06
-0c
-93
-ff
-60
-0c
-c2
-05
-51
-fc
+4c
+bf
+74
+03
+f0
+22
+7f
+01
+12
+07
+fd
 90
-4e
-b1
-e0
-04
+4c
+bf
+74
+03
 f0
-80
-e9
 22
+90
+4c
+c7
+e0
+90
+4c
+cb
+f0
 e4
 90
-4e
-b0
+4c
+c7
 f0
+a3
 f0
 90
-4e
-b0
+4c
+eb
+04
+f0
+a3
 e0
-ff
-c3
-94
-08
-50
-0c
-c2
-05
-51
-fc
+b4
+01
+04
+e4
+f0
+41
+5e
 90
-4e
-b0
+4c
+ed
 e0
-04
+ff
+60
+02
+81
+54
+90
+4c
 f0
-80
-ea
-22
-ac
-07
-ec
-f4
+e0
 60
-17
-af
-04
-a2
-05
-92
 03
-71
-2b
-af
-04
-a2
-05
-b3
-92
 02
-71
-1a
-af
-04
+06
 c2
-04
-71
-3c
-22
-ef
-f4
-60
-0c
-7b
-01
-7a
-80
-79
-78
-a2
-02
-92
-00
-71
-4d
-22
-ef
-f4
-60
-0c
-7b
-01
-7a
-80
-79
-7c
-a2
-03
-92
-00
-71
-4d
-22
-ef
-f4
-60
-0c
-7b
-01
-7a
-80
-79
-70
-a2
-04
-92
-00
-71
-4d
+51
+5e
+e4
+90
+4c
+e3
+f0
+a3
+f0
 22
 90
 4e
-a4
+79
+ec
+f0
+a3
+ed
+f0
+a3
 eb
 f0
 a3
@@ -9230,432 +9261,328 @@
 a3
 e9
 f0
+90
+80
+98
+74
+04
+f0
+a3
 e4
-fe
-fd
+f0
+90
+0c
+af
+74
+a0
+f0
+a3
+ee
+f0
+a3
 ef
-54
-07
+f0
+90
+0c
+b2
+74
+a1
+f0
+7a
+0c
+79
+af
+7e
+0c
+7f
+af
+74
+af
+fc
+74
+0c
+ff
+ec
 fe
 ef
-13
-13
-13
-54
-03
-fd
-30
-00
-22
 90
-4e
-a4
-e0
-fb
+80
+9a
+ee
+f0
 a3
+ef
+f0
+90
+4e
+79
 e0
-fa
+fc
 a3
 e0
-2d
-f9
-e4
-3a
 fa
-12
-03
-b6
+ec
 ff
-74
-01
-a8
-06
-08
-80
-02
-c3
-33
-d8
-fc
-4f
-02
-03
-fc
+ea
+fe
+ef
 90
-4e
-a4
-e0
-fb
-a3
-e0
-fa
-a3
-e0
-2d
-f9
-e4
-3a
-fa
-12
-03
-b6
-ff
-74
-01
-a8
-06
-08
 80
-02
-c3
-33
-d8
-fc
-f4
-5f
-02
-03
-fc
-7b
-01
+9e
+ee
+f0
+a3
+ef
+f0
 7a
-4c
+0b
 79
-f2
-7d
-02
-7c
-00
-7f
-f6
+83
 7e
-3f
-31
-f2
+0b
+7f
+83
+74
+83
+fc
+74
+0b
+ff
+ec
+fe
+ef
 90
-4c
-f2
-e0
-04
+80
+9c
+ee
 f0
 a3
-e0
-04
+ef
 f0
 90
-4c
-f2
-e0
+80
 90
-44
-fa
+74
+02
 f0
 90
-4c
-f3
+80
+9c
+a3
 e0
+20
+e7
+07
+90
+80
 90
+e0
 44
-fb
+01
 f0
-22
 90
-4c
-c7
+80
+06
 e0
-b4
+44
 04
-15
+f0
+f1
+43
 90
-4c
-e3
+4e
+7b
 e0
-b4
-0e
-29
 a3
 e0
-b4
-10
-24
-91
-11
-90
-4c
-ec
-74
+fa
+a3
+e0
+ae
+02
+ff
+7b
 01
-f0
-22
+7a
+0b
+79
+83
 90
-4c
-e3
+4e
+79
 e0
-70
-04
 a3
 e0
-64
-14
-70
+90
+4e
+6e
+f0
+02
+08
+3d
+91
+23
+02
 0f
+9c
 90
-4d
-dd
-e0
-60
-07
+80
+80
 e4
 f0
-7f
-0e
-12
-07
-44
-11
-e5
-22
+a3
+f0
+a3
+f0
+91
+f8
+e4
 90
-4c
-c7
+4e
+b1
+f0
+f0
+90
+4e
+b1
 e0
+90
+06
+0c
+93
 ff
-64
-04
 60
-04
-ef
-b4
-03
-08
-7f
-11
-12
-07
-44
-7f
-01
-22
-7f
-00
-22
+0c
+c2
+05
 b1
-0d
+15
 90
-4c
-e4
+4e
+b1
 e0
 04
 f0
-70
-06
+80
+e9
+22
 90
-4c
-e3
-e0
-04
+4d
+e1
+74
+02
 f0
-91
-c9
-71
-d9
-91
-43
-91
-db
+7f
 01
-c8
 90
-4c
-ce
-e0
-30
-e1
-3d
-90
-4c
-d0
-e0
-c3
-94
-fa
-50
-03
-e0
-04
+4e
+ae
+ef
 f0
-90
-4c
-d0
-e0
-64
-b4
+24
+fe
+60
+0f
+14
+60
+0c
+24
+fe
+60
+35
+24
+f8
+60
+2c
+24
+0c
 70
-2e
-90
-4d
-dc
-e0
-04
-f0
-e0
-d3
-94
-02
-50
-07
-e4
-90
-4c
-d0
-f0
-80
-1b
+60
 90
-4d
-dc
+4e
+ae
 e0
-b4
-03
 14
 90
 4d
-d5
-74
-01
-f0
-e4
-90
-4c
-d0
-f0
-11
-e5
-80
-05
-e4
-90
-4d
-dc
+d1
 f0
 90
-4c
-ce
-e0
-30
-e3
-30
-90
-4c
-ea
+42
+13
 74
-0a
-f0
-90
-4c
-d2
-e0
-c3
-94
-fa
-50
-03
-e0
-04
+05
 f0
 90
 4c
-d2
-e0
-b4
-06
-1c
-90
-4c
-e9
-e0
-70
-16
-74
 f0
 f0
 7f
-05
-11
-4b
+04
+12
+07
+44
+7f
+0a
 12
 0f
-a3
+84
+7f
+2a
+12
+07
+44
+e4
 90
 4c
-eb
-74
-01
+ed
 f0
 22
+7f
+0e
+02
+07
+44
 e4
 90
 4c
-d2
 f0
-22
-90
-4c
-d3
-e0
-60
-0b
-14
 f0
-e0
+d1
+ce
+ef
 70
 06
-74
-05
-f0
 12
-20
-cd
-22
-90
-4d
-e2
-e0
+18
+36
+ef
 60
-2b
-e0
-14
-f0
+0f
+90
+4e
+ae
 e0
-70
-25
 90
 4c
 ed
-e0
-b4
-05
-1e
+f0
 90
-47
-f5
-e0
-20
-e3
-17
+4d
+e2
+74
+03
+f0
+22
+91
+d2
 e4
 90
 41
 31
 f0
-90
-4c
-e9
-74
-f0
-f0
-71
-ae
+d1
+e6
 7f
 0d
 12
@@ -9667,137 +9594,146 @@
 ed
 f0
 22
-90
-4d
-e1
-e0
-64
-02
-70
-44
+e4
 90
 4c
-e9
-e0
-60
-15
+ed
+f0
+22
+e4
 90
 4c
-cc
-e0
-64
+f0
+f0
+90
+4d
+dd
+f0
+22
+90
+4e
+b6
+ef
+f0
+7b
 01
-60
-06
-7f
-0f
-b1
-5a
+7a
 80
-07
-c2
-01
-7f
-0f
-12
-0f
-d0
-12
-0f
-ef
-ef
-60
-23
-90
-4c
-e7
-e0
-60
-16
-14
-f0
-d2
-01
-7f
-1e
+79
+74
 12
 0f
 d0
+92
+09
 90
-4c
-e7
+4e
+b6
 e0
-70
-0e
-c2
+ff
+a2
+09
+b3
+92
 01
-7f
-1e
-02
-0f
-d0
-c2
 01
-7f
-1e
-12
-0f
-d0
-22
+54
+e4
 90
 4e
-b7
-ef
+b0
+f0
 f0
-7b
-01
-7a
-80
-79
-74
-d1
-df
-92
-09
 90
 4e
-b7
+b0
 e0
 ff
+c3
+94
+08
+50
+0c
+c2
+05
+b1
+15
+90
+4e
+b0
+e0
+04
+f0
+80
+ea
+22
+ac
+07
+ec
+f4
+60
+17
+af
+04
 a2
-09
+05
+92
+03
+b1
+44
+af
+04
+a2
+05
 b3
 92
-01
 02
-0f
-d0
+b1
+33
+af
+04
 c2
+04
+b1
+b6
+22
+ef
+f4
+60
+0c
+7b
 01
-7f
-0f
+7a
+80
+79
+78
+a2
 02
-0f
-d0
-90
-81
-2c
-e0
-30
-e5
-f9
+92
+00
+b1
+55
 22
-90
-4e
-5c
-ee
-f0
-a3
 ef
-f0
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+7c
+a2
+03
+92
+00
+b1
+55
+22
 90
 4e
-60
+a4
 eb
 f0
 a3
@@ -9806,324 +9742,387 @@
 a3
 e9
 f0
+e4
+fe
+fd
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+fd
+30
+00
+22
 90
 4e
-5e
-ec
-f0
-a3
-ed
-f0
-a3
+a4
 e0
-f9
+fb
 a3
 e0
 fa
 a3
 e0
-90
-4e
-49
-c9
-f0
-a3
-ea
-f0
-a3
-e9
-f0
-a3
-ec
-f0
-a3
-ed
-f0
-7b
-01
-7a
-0b
-79
-86
-f1
-26
-90
-0b
-83
+2d
+f9
+e4
+3a
+fa
+12
+03
+b6
+ff
 74
-a0
-f0
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+02
+03
+fc
 90
 4e
-5c
+a4
 e0
-ff
+fb
 a3
 e0
-90
-0b
-84
-cf
-f0
+fa
 a3
-ef
-f0
-90
-4e
-5f
-e0
-24
-03
-fd
-90
-4e
-5e
 e0
-34
-00
-fc
-ed
+2d
+f9
+e4
+3a
 fa
-ec
+12
+03
+b6
 ff
-ea
-fe
-ef
-90
+74
+01
+a8
+06
+08
 80
-98
-ee
-f0
-a3
+02
+c3
+33
+d8
+fc
+f4
+5f
+02
+03
+fc
 ef
-f0
+f4
+60
+0c
+7b
+01
 7a
-0b
+80
 79
-83
-7e
-0b
-7f
-83
-74
-83
-fc
-74
-0b
-ff
-ec
-fe
-ef
-a3
-ee
-f0
-a3
-ef
-f0
+70
+a2
+04
+92
+00
+b1
+55
+22
 90
-80
-9e
+4c
+e9
+e0
+60
+16
 e4
+90
+4c
+e3
 f0
 a3
 f0
 90
-80
+4c
+e9
+e0
+14
+f0
+e0
+70
+06
+7f
+0d
+91
+54
+51
+5e
+22
+11
+1c
 90
+4c
+e4
+e0
 04
 f0
-90
-80
+70
 06
+90
+4c
+e3
 e0
-44
 04
 f0
-a1
-7d
+d1
+bc
+b1
+fe
+d1
+36
+f1
+11
+80
+c9
 90
-4e
-3d
-ee
-f0
-a3
-ef
-f0
+4c
+c7
+e0
+b4
+04
+15
+90
+4c
+e3
+e0
+b4
+0e
+29
 a3
+e0
+b4
+10
+24
+d1
+ce
+90
+4c
 ec
+74
+01
 f0
-a3
-ed
-f0
-a3
-eb
-f0
-a3
-ea
-f0
-a3
-e9
-f0
+22
 90
-4e
-3f
+4c
+e3
 e0
 70
-02
+04
 a3
 e0
+64
+14
 70
-02
-c1
-cc
+0f
 90
-4e
-3d
-e0
-fe
-a3
+4d
+dd
 e0
-ff
-44
-0f
-24
-01
-fd
+60
+07
 e4
-3e
-fc
-c3
-ed
-9f
-ff
-ec
-9e
-fe
-90
-4e
-44
-f0
-a3
-ef
 f0
+7f
+0e
+12
+07
+44
+51
+5e
+22
 90
-4e
-3f
-e0
-fc
-a3
+4c
+ce
 e0
-fd
-d3
-9f
-ec
-9e
-40
-0a
+30
+e1
+3d
 90
-4e
-44
+4c
+d0
 e0
-fe
-a3
+c3
+94
+fa
+50
+03
 e0
-ff
-80
-04
-ae
 04
-af
-05
+f0
 90
-4e
-44
-ee
+4c
+d0
+e0
+64
+b4
+70
+2e
+90
+4d
+dc
+e0
+04
 f0
-fc
-a3
-ef
+e0
+d3
+94
+02
+50
+07
+e4
+90
+4c
+d0
 f0
-fd
-c3
+80
+1b
 90
-4e
-40
+4d
+dc
 e0
-9d
+b4
+03
+14
+90
+4d
+d5
+74
+01
 f0
+e4
 90
-4e
-3f
+4c
+d0
+f0
+51
+5e
+80
+05
+e4
+90
+4d
+dc
+f0
+90
+4c
+ce
 e0
-9c
+30
+e3
+30
+90
+4c
+ea
+74
+0a
 f0
 90
-4e
-3d
+4c
+d2
 e0
-fe
-a3
+c3
+94
+fa
+50
+03
 e0
-ff
+04
+f0
 90
-4e
-41
-e0
-fb
-a3
+4c
+d2
 e0
-fa
-a3
+b4
+06
+1c
+90
+4c
+e9
 e0
-f9
-b1
-85
+70
+16
+74
+f0
+f0
 7f
-0a
+05
+91
+54
 12
 0f
-44
+9c
 90
-4e
-44
-e0
-fe
-a3
-e0
-ff
+4c
+eb
+74
+01
+f0
+22
+e4
 90
-4e
-42
-ee
-8f
+4c
+d2
 f0
-12
-04
-0e
+22
 90
-4e
-3e
+4c
+d3
 e0
-2f
+60
+0b
+14
 f0
-90
-4e
-3d
 e0
-3e
+70
+06
+74
+05
 f0
-c1
-36
+12
+1f
+73
 22
 90
 4c
 c7
 e0
+ff
+64
+04
+60
+04
+ef
 b4
-02
+03
 08
 7f
-0e
+11
 12
 07
 44
@@ -10133,254 +10132,118 @@
 7f
 00
 22
-ad
-07
-e4
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+f6
+7e
+3f
+71
+6e
 90
-4e
-b5
+4c
+f2
+e0
+04
 f0
-fe
-ef
-54
-07
+a3
+e0
+04
 f0
-ef
-13
-13
-13
-54
-03
-fe
-f5
-82
-75
-83
-00
-12
-03
-cf
-fd
-33
-95
+90
+4c
+f2
 e0
-fc
 90
-4e
-b5
+44
+fa
+f0
+90
+4c
+f3
 e0
-ff
-74
-01
-7e
-00
-a8
-07
-08
-80
-05
-c3
-33
-ce
-33
-ce
-d8
-f9
-ff
-ee
-5c
-fe
-ef
-5d
-4e
-24
-ff
-22
-7b
-01
-7a
-81
-79
-1c
-80
-b9
-90
-4e
-46
-eb
-f0
-a3
-ea
-f0
-a3
-e9
-f0
-90
-4e
-4c
-74
-ff
-f5
-f0
-12
-04
-24
-45
-f0
-60
-2a
-90
-4e
-49
-e0
-fb
-a3
-e4
-75
-f0
-01
-12
-04
-24
-a9
-f0
-fa
-12
-03
-b6
-ff
 90
-4e
-46
-e0
+44
 fb
-a3
-e4
-75
-f0
-01
-12
-04
-24
-a9
 f0
-fa
-ef
-12
-03
-fc
-80
-c8
 22
 90
-4c
-ea
-e0
-60
-02
-14
-f0
-90
-4c
-ef
+4d
+e2
 e0
 60
-02
-14
-f0
-90
-4c
-e5
+2b
 e0
-60
-0f
 14
 f0
-12
-0f
-e9
-90
-4c
-e5
 e0
 70
-2f
-b1
-76
-80
-2b
+25
 90
 4c
-e9
+ed
 e0
-70
-25
+b4
+05
+1e
 90
-4c
-e2
+47
+f5
 e0
-60
-1f
-14
+20
+e3
+17
+e4
+90
+41
+31
 f0
-e0
-30
-e1
-09
-d2
-01
-7f
-ff
-12
-0f
-d0
-80
-07
-c2
-01
-7f
-ff
-12
-0f
-d0
 90
 4c
-e2
-e0
-70
-03
+e9
 74
-04
 f0
-90
-4d
-de
-e0
-60
-13
-e0
-14
 f0
-e0
-70
+d1
+e6
+7f
 0d
+12
+07
+44
+e4
 90
 4c
-c7
+ed
+f0
+22
+90
+81
+2c
 e0
-b4
-04
-06
+30
+e5
+f9
+22
 90
-42
-13
-74
-0c
+4e
+5c
+ee
+f0
+a3
+ef
 f0
-22
 90
 4e
-95
+60
 eb
 f0
 a3
@@ -10389,38 +10252,283 @@
 a3
 e9
 f0
-e4
-fe
-fd
-90
-4d
-db
-e0
-64
-01
-70
-40
-7d
-05
-af
-05
-1d
-ef
-60
-3f
 90
 4e
-95
+5e
+ec
+f0
+a3
+ed
+f0
+a3
 e0
-fb
+f9
 a3
 e0
 fa
 a3
 e0
-24
+90
+4e
+49
+c9
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+7b
 01
-f9
+7a
+0b
+79
+86
+12
+22
+64
+90
+0b
+83
+74
+a0
+f0
+90
+4e
+5c
+e0
+ff
+a3
+e0
+90
+0b
+84
+cf
+f0
+a3
+ef
+f0
+90
+4e
+5f
+e0
+24
+03
+fd
+90
+4e
+5e
+e0
+34
+00
+fc
+ed
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+98
+ee
+f0
+a3
+ef
+f0
+7a
+0b
+79
+83
+7e
+0b
+7f
+83
+74
+83
+fc
+74
+0b
+ff
+ec
+fe
+ef
+a3
+ee
+f0
+a3
+ef
+f0
+90
+80
+9e
+e4
+f0
+a3
+f0
+90
+80
+90
+04
+f0
+90
+80
+06
+e0
+44
+04
+f0
+e1
+43
+e4
+90
+4e
+ad
+f0
+90
+4c
+c8
+e0
+b4
+02
+06
+90
+4e
+ad
+e0
+ff
+22
+90
+47
+f5
+e0
+30
+e3
+06
+90
+4e
+ad
+e0
+ff
+22
+90
+4c
+c7
+e0
+70
+1b
+90
+4c
+ef
+e0
+70
+1f
+74
+0a
+f0
+a3
+e0
+70
+18
+90
+4d
+e1
+e0
+b4
+02
+11
+7f
+01
+12
+14
+54
+80
+0a
+e4
+90
+4c
+eb
+f0
+90
+4e
+ad
+04
+f0
+90
+4e
+ad
+e0
+ff
+22
+90
+4c
+c7
+e0
+b4
+02
+08
+7f
+0e
+12
+07
+44
+7f
+01
+22
+7f
+00
+22
+90
+4e
+95
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+fe
+fd
+90
+4d
+db
+e0
+64
+01
+70
+40
+7d
+05
+af
+05
+1d
+ef
+60
+3f
+90
+4e
+95
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
 e4
 3a
 fa
@@ -10474,48 +10582,51 @@
 7f
 00
 22
-ae
-05
+90
+4c
+f5
+ed
+f0
+a3
+eb
+f0
 ef
 30
 e0
-0a
+12
 90
-4d
-d3
+4c
+f4
 e0
+b4
+03
 04
+74
+02
 f0
-ae
-03
-80
-0d
+22
 90
-4d
-d3
-e0
-60
-07
-e0
-14
+4c
+f4
+74
+01
+f0
+22
+90
+4c
+f4
+74
+04
 f0
-af
-03
-ae
-07
-af
-06
 22
 ae
 07
-ac
-05
 e4
 90
 4e
 af
 f0
-ec
+ed
 f0
 90
 4d
@@ -10526,20 +10637,24 @@
 60
 02
 21
-ac
-ec
+9b
+ed
 24
-c6
+d7
+60
+3b
+24
+ef
 b4
 0c
 00
 40
 02
 21
-ac
+9b
 90
 18
-81
+fc
 75
 f0
 03
@@ -10552,303 +10667,163 @@
 83
 73
 02
-18
-a5
+19
+28
 02
-18
-b4
+19
+30
 02
-18
-c3
+19
+38
 02
-18
-ee
+19
+40
 02
 19
-18
+4f
 02
 19
-43
+5e
 02
 19
-52
+66
 02
 19
-61
+6e
 02
 19
-70
+76
 02
 19
-7f
+7e
 02
 19
-8e
+86
 02
 19
-9d
-af
-06
-ad
-04
-7b
-d7
-11
-34
+8e
 90
 4e
 af
-ef
+74
+d6
 f0
-21
-ac
-af
-06
-ad
-04
-7b
-d8
-11
-34
+80
+73
 90
 4e
 af
-ef
-f0
-21
-ac
-90
-4c
-f5
-74
-04
-f0
-a3
 74
-2b
+f4
 f0
-ee
-30
-e0
-08
+80
+6b
 90
-4c
-f4
+4e
+af
 74
-01
+f2
 f0
 80
-06
+63
 90
-4c
-f4
+4e
+af
 74
-04
+f5
 f0
+80
+5b
 af
 06
-ad
+7b
+2b
+7d
 04
-e4
-fb
 11
-34
+a8
+e4
 90
 4e
 af
-ef
-f0
-21
-ac
-90
-4c
-f5
-74
-08
-f0
-a3
-14
-f0
-ee
-30
-e0
-08
-90
-4c
-f4
-74
-01
 f0
 80
-06
-90
 4c
-f4
-74
-04
-f0
 af
 06
-ad
-04
-e4
-fb
+7b
+0e
+7d
+08
 11
-34
+a8
+e4
 90
 4e
 af
-ef
 f0
-21
-ac
+80
+3d
 90
-4c
-f5
+4e
+af
 74
-08
+fa
 f0
-a3
+80
+35
+90
+4e
+af
 74
-50
+d5
 f0
-ee
-30
-e0
-08
+80
+2d
 90
-4c
-f4
+4e
+af
 74
-01
+f5
 f0
 80
-06
+25
 90
-4c
-f4
+4e
+af
 74
-04
+f6
 f0
-af
-06
-ad
-04
-e4
-fb
-11
-34
+80
+1d
 90
 4e
 af
-ef
+74
+f7
 f0
 80
-69
-af
-06
-ad
-04
-7b
-d5
-11
-34
+15
 90
 4e
 af
-ef
+74
+f8
 f0
 80
-5a
-af
-06
-ad
-04
-7b
-f4
-11
-34
-90
-4e
-af
-ef
-f0
-80
-4b
-af
-06
-ad
-04
-7b
-f2
-11
-34
-90
-4e
-af
-ef
-f0
-80
-3c
-af
-06
-ad
-04
-7b
-f5
-11
-34
-90
-4e
-af
-ef
-f0
-80
-2d
-af
-06
-ad
-04
-7b
-f8
-11
-34
-90
-4e
-af
-ef
-f0
-80
-1e
-af
-06
-ad
-04
-7b
-f6
-11
-34
-90
-4e
-af
-ef
-f0
-80
-0f
+0d
 af
 06
-ae
-04
-ad
-06
 7b
-f7
+2c
+7d
+08
 11
-34
+a8
+e4
 90
 4e
 af
-ef
 f0
 90
 4e
@@ -10888,7 +10863,7 @@
 a3
 f0
 b1
-36
+28
 7a
 4d
 79
@@ -10918,7 +10893,7 @@
 79
 bc
 71
-ec
+db
 ef
 60
 16
@@ -10931,7 +10906,7 @@
 7d
 14
 71
-bc
+ab
 ef
 70
 09
@@ -11006,7 +10981,7 @@
 af
 05
 71
-ae
+9d
 a3
 e0
 2f
@@ -11041,7 +11016,7 @@
 e0
 ff
 71
-ae
+9d
 90
 4e
 3a
@@ -11108,7 +11083,7 @@
 70
 02
 61
-82
+71
 74
 93
 2f
@@ -11163,9 +11138,9 @@
 70
 04
 61
-7a
+69
 61
-7a
+69
 90
 4e
 39
@@ -11253,7 +11228,7 @@
 93
 fd
 11
-54
+cd
 90
 4e
 38
@@ -11272,7 +11247,7 @@
 e0
 ff
 91
-36
+25
 80
 07
 90
@@ -11281,7 +11256,7 @@
 e0
 ff
 91
-8c
+7d
 90
 4e
 31
@@ -11319,7 +11294,7 @@
 04
 f0
 41
-a2
+91
 90
 4e
 01
@@ -11502,6 +11477,8 @@
 22
 e4
 fe
+ad
+07
 ef
 c3
 94
@@ -11518,15 +11495,15 @@
 4e
 4e
 e0
-fe
-ef
+ff
+ed
 54
 07
-ff
+fe
 74
 01
 a8
-07
+06
 08
 80
 02
@@ -11534,7 +11511,7 @@
 33
 d8
 fc
-4e
+4f
 90
 4e
 4e
@@ -11589,6 +11566,8 @@
 e4
 fe
 fd
+ac
+07
 ef
 54
 f0
@@ -11599,8 +11578,8 @@
 ef
 54
 d0
-fc
-bc
+fb
+bb
 d0
 0c
 90
@@ -11626,26 +11605,26 @@
 94
 e0
 40
-21
+20
 ef
 d3
 94
 e7
 50
-1b
+1a
 90
 4e
 4e
 e0
-fe
-ef
+ff
+ec
 54
 07
-ff
+fe
 74
-01
+fe
 a8
-07
+06
 08
 80
 02
@@ -11653,8 +11632,7 @@
 33
 d8
 fc
-f4
-5e
+5f
 90
 4e
 4e
@@ -11900,7 +11878,7 @@
 f0
 0f
 a1
-44
+36
 e4
 ff
 ef
@@ -12033,7 +12011,7 @@
 f0
 0f
 a1
-c9
+bb
 e4
 ff
 ef
@@ -12109,415 +12087,83 @@
 b9
 22
 90
-4d
-e1
-e0
-64
-02
-60
-02
-e1
-29
-90
-4c
-e9
-e0
-70
-7c
-90
-4c
-d5
-e0
-b4
-02
-05
-12
-10
-e5
 80
-2f
-90
-4c
-d5
-e0
-b4
-01
-14
-90
-4c
-f7
-e0
-70
-22
-90
-4c
-e2
-74
-04
-f0
-90
-4c
-f7
+10
 74
 01
 f0
 80
-14
-90
-4c
-f7
-e0
-b4
-01
-0d
-e4
-f0
-90
-4c
-e2
-f0
-c2
-01
-7f
-ff
-12
-0f
-d0
-12
-0f
-ef
-ef
-60
-34
-90
-4d
-d9
-e0
-ff
-90
-4c
-b7
-e0
-6f
-60
-36
-e0
-30
-e1
-0f
+fe
+22
+80
+f5
 90
-4c
-e7
-74
-0c
+4e
+a9
+ed
 f0
-d2
-01
-7f
-1e
-12
-0f
-d0
-80
-0c
-c2
-01
-7f
-1e
-12
-0f
-d0
-e4
-90
-4c
-e7
-f0
-90
-4c
-b7
-e0
-90
-4d
-d9
-f0
-22
-c2
-01
-7f
-1e
-02
-0f
-d0
-c2
-01
-7f
-1e
-12
-0f
-d0
-22
-90
-80
-10
-74
-01
-f0
-80
-fe
-22
-80
-f5
-90
-4e
-a9
-ed
-f0
-90
-00
-01
-12
-03
-cf
-90
-4e
-aa
-f0
-22
-7b
-01
-7a
-4e
-79
-0b
-78
-1d
-7c
-4e
-7d
-01
-7e
-00
-7f
-12
-02
-03
-90
-22
-90
-4e
-b3
-e0
-ff
-c3
-94
-04
-50
-1b
-ef
-25
-e0
-24
-d6
-f5
-82
-e4
-34
-4c
-f5
-83
-74
-79
-f0
-a3
-74
-90
-f0
-90
-4e
-b3
-e0
-04
-f0
-80
-db
-90
-4c
-8f
-e0
-64
-02
-60
-03
-02
-20
-26
-90
-4c
-91
-e0
-fe
-a3
-e0
-ff
-c3
-90
-4c
-94
-e0
-9f
-fd
-90
-4c
-93
-e0
-9e
-fc
-e4
-12
-02
-06
-7b
-c3
-7a
-f5
-79
-88
-78
-3f
-12
-00
-fb
-c0
-04
-c0
-05
-c0
-06
-c0
-07
-90
-4c
-91
-e0
-fc
-a3
-e0
-fd
-e4
-12
-02
-06
-d0
-03
-d0
-02
-d0
-01
-d0
-00
-12
-00
-0a
-12
-02
-3f
-90
-4c
-de
-ee
-f0
-a3
-ef
-f0
-90
-4c
-91
-e0
-fe
-a3
-e0
-ff
-c3
-90
-4c
-94
-e0
-9f
-fd
-90
-4c
-93
-e0
-9e
-fc
-e4
-12
-02
-06
-7b
-ae
-7a
-47
-79
-81
-78
-3f
-12
-00
-fb
-c0
-04
-c0
-05
-c0
-06
-c0
-07
-90
-4c
-91
-e0
-fc
-a3
-e0
-fd
-e4
-12
-02
-06
-d0
-03
-d0
-02
-d0
-01
-d0
+90
 00
+01
 12
+03
+cf
+90
+4e
+aa
+f0
+22
+7b
+01
+7a
+4e
+79
+0b
+78
+1d
+7c
+4e
+7d
+01
+7e
 00
-0a
+7f
 12
 02
-3f
+03
+90
 90
 4c
-e0
-ee
+d3
+74
+05
 f0
+e4
 a3
-ef
 f0
-22
-90
-4c
-8f
+ff
+ef
+25
 e0
-64
-01
-70
-02
-01
-cc
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+74
+51
+f0
+a3
+f0
+0f
+ef
+b4
+04
+ea
 90
 4c
 91
@@ -12544,13 +12190,13 @@
 02
 06
 7b
-c3
+a4
 7a
-f5
+70
 79
-a8
+3d
 78
-3e
+3f
 12
 00
 fb
@@ -12622,13 +12268,13 @@
 02
 06
 7b
-5c
+1f
 7a
-8f
+85
 79
-42
+2b
 78
-3e
+3f
 12
 00
 fb
@@ -12685,7 +12331,49 @@
 00
 00
 00
-22
+90
+4c
+95
+e0
+fe
+a3
+e0
+ff
+90
+4c
+d4
+e0
+fd
+04
+f0
+ed
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+ee
+f0
+a3
+ef
+f0
+90
+4c
+d4
+e0
+c3
+94
+04
+40
+02
+e4
+f0
 e4
 90
 4e
@@ -12857,6 +12545,9 @@
 d5
 f0
 22
+02
+0d
+e8
 90
 4e
 8a
@@ -13065,16 +12756,16 @@
 6f
 70
 02
-61
-06
+21
+d9
 7e
 0c
 7f
 4b
 7d
 03
-31
-dd
+11
+b0
 90
 4e
 9b
@@ -13182,8 +12873,8 @@
 b6
 14
 fd
-31
-dd
+11
+b0
 90
 4e
 9b
@@ -13385,6 +13076,74 @@
 22
 90
 4e
+46
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+4c
+74
+ff
+f5
+f0
+12
+04
+24
+45
+f0
+60
+2a
+90
+4e
+49
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+46
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+ef
+12
+03
+fc
+80
+c8
+22
+90
+4e
 a1
 eb
 f0
@@ -13543,8 +13302,8 @@
 04
 cf
 22
-bb
-b9
+cb
+1b
 aa
 55
 40
@@ -14383,14 +14142,14 @@
 02
 01
 09
-0a
-5c
+04
+e8
 09
 02
 02
 09
-85
-02
+70
+21
 09
 02
 03
@@ -14504,23 +14263,6 @@
 01
 aa
 55
-04
-00
-91
-4c
-9f
-3e
-cd
-4d
-aa
-55
-01
-00
-8f
-4c
-04
-aa
-55
 dd
 01
 04
@@ -14634,10 +14376,10 @@
 2a
 07
 02
-8a
-24
-66
-82
+e8
+04
+21
+70
 01
 00
 0f
@@ -15177,6 +14919,33 @@
 64
 aa
 55
+04
+00
+4c
+4d
+20
+20
+06
+12
+aa
+55
+04
+00
+91
+4c
+9f
+3e
+cd
+4d
+aa
+55
+01
+00
+8f
+4c
+01
+aa
+55
 08
 00
 16
@@ -15462,8 +15231,8 @@
 6c
 59
 50
-6b
-45
+e2
+59
 ff
 ff
 ff
@@ -16380,5 +16149,236 @@
 ff
 ff
 ff
-da
-bc
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+34
+2f
Index: output/fw.hex
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/fw.hex	(revision 114)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/fw.hex	(working copy)
@@ -85,7 +85,7 @@
 :10054000054A12054A12054AE473E493A3C583C51C
 :10055000F0C583C8C582C8F0A3C583C5F0C583C8EC
 :10056000C582C8228A838982E473787FE4F6D8FD45
-:100570007581CF0205B1020FE2E493A3F8E493A3DF
+:100570007581CF0205B1022053E493A3F8E493A35D
 :100580004003F68001F208DFF48029E493A3F854D5
 :1005900007240CC8C333C4540F4420C8834004F458
 :1005A00056800146F6DFE4800B010204081020406B
@@ -93,8 +93,8 @@
 :1005C00009541FFEE493A360010ECF54C025E060E0
 :1005D000A840B8E493A3FAE493A3F8E493A3C8C5AE
 :1005E00082C8CAC583CAF0A3C8C582C8CAC583CA9F
-:1005F000DFE9DEE780BE524E0BFF10EF000000FF88
-:100600001429FF176A000000FF1F35001A08090AA5
+:1005F000DFE9DEE780BE524E0BFF1268000000FF0D
+:1006000015E4FF10EA000000FF1E93001A08090A13
 :100610000B0C0D0E18191714131211151B1C0000CA
 :100620000048000000E400E03E142B04291D8B3537
 :100630001E1A3916641B8A3A1F083C073D06883B80
@@ -119,7 +119,7 @@
 :100760004E91F07B017A4E798F7D03904E63EBF0D2
 :10077000A3EAF0A3E9F0A3EDF0904B9CE0FFA3E027
 :10078000904E67CFF0A3EFF0904B9AE0FEA3E0FF0E
-:10079000904B9CE0FCA3E0FD7B64122183904E66AD
+:10079000904B9CE0FCA3E0FD7B64122056904E66DB
 :1007A000E0FEEFC39E40E1904E66E0FF14F0EF6084
 :1007B0003C904E63E0FBA3E475F0019124A9F0FAAC
 :1007C00071B6FF904E67E475F001912485F082F5D3
@@ -140,442 +140,427 @@
 :1008B0003AFA7E00E92FF9EE3AFA1203B6B4AF061F
 :1008C000904DDB7401F0904E73E004F080CA904DBF
 :1008D000DBE0904DE0F0904E6FE0FBA3E0FAA3E088
-:1008E000F91217D4EF60024142904E6FE0A3E0FA94
-:1008F000A3E04A70024142904CC7E0B40406904223
+:1008E000F9121848EF6002412A904E6FE0A3E0FA37
+:1008F000A3E04A7002412A904CC7E0B4040690423B
 :10090000137403F0904DDE740AF0E4904CE3F0A30E
-:10091000F07B017A4879007D09FC71EA7B017A4E0F
-:1009200079027D097C0071EA904CB67401F0904C1C
-:10093000F4E0B4012A9048007401F0A3E0FF904C69
-:10094000F5E0FEEF4E904801F0E4904803F07B01A3
-:100950007A4879007D095143904CF47402F022905A
-:100960004E6FE0FBA3E0FAA3E0F95174904E01E072
-:10097000B401117402F0904E02F07B017A4E7902BC
-:100980007D034143904E01E0B40316E4F0904DE343
-:10099000F0904E027402F07B017A4E79027D0341A1
-:1009A000439048007401F0904E6FE0FBA3E0FAA37F
-:1009B000E0F91203B6904801F0E4A3F0904DD8F0AE
-:1009C0009000011203CFB4AF1E7E487F03904E6F9C
-:1009D000E0FBA3E0FAA3E02402F9E43AFA904E6EB9
-:1009E0007405F0113D801C7E487F03904E6FE0FB44
-:1009F000A3E0FAA3E02401F9E43AFA904E6E7406FB
-:100A0000F0113D904E737403F0904E73E0FFC39469
-:100A100009502574002FF582E43448F583E0B4AF23
-:100A20000F904E73E02400F582E43448F583E4F03F
-:100A3000904E73E004F080D17B017A4879007D0903
-:100A4000514322904E7EEBF0A3EAF0A3E9F0A3ED30
-:100A5000F0F1FCEF601D904CEBE07017904CC7E09C
-:100A6000B40410904E7EE0FBA3E0FAA3E0F9A3E00B
-:100A7000FDB15F22904E82EBF0A3EAF0A3E9F0E42F
-:100A8000A3F0F0904E85E0FFC39406400261CE9043
-:100A90004E82E0FBA3E0FAA3E02401F9E43AFA7EF7
-:100AA00000E92FF9EE3AFA1203B6FF54F064F06051
-:100AB00009EF54D064D0600261C61203B6FBB4F1F2
-:100AC000087F837E0171CF619BEBB4F2087FCD7EFE
-:100AD0000071CF619B904E82E0FBA3E0FAA3E0247B
-:100AE00001F9E43AFAA3E07E0029F9EE3AFA12039A
-:100AF000B6FBB4F3067FB771CF619BEBB4F4087F0C
-:100B0000B67E0071CF619B904E82E0FBA3E0FAA31A
-:100B1000E02401F9E43AFAA3E07E0029F9EE3AFA7A
-:100B20001203B6FBB4F5067FB571CF806EEBB4F659
-:100B3000087FEA7E0071CF8062904E82E0FBA3E0E6
-:100B4000FAA3E02401F9E43AFAA3E07E0029F9EEE1
-:100B50003AFA1203B6FBB4F7067FE971CF803CEB9B
-:100B6000B4F8087FE27E0071CF8030904E82E0FBC7
-:100B7000A3E0FAA3E02401F9E43AFAA3E07E002915
-:100B8000F9EE3AFA1203B6FBB4D7067F7071CF8044
-:100B90000AEBB4D8067F6F7E0071CF904E01E0B4AF
-:100BA0000224904E82E0FBA3E0FAA3E02401F9E4E2
-:100BB0003AFAA3E07E0029F9EE3AFA1203B6904D14
-:100BC000E3F0E41203FC904E85E004F0418322AD93
-:100BD00007AC06904E01E06402600E7401F0904E86
-:100BE0000204F0EFA3F0EEA3F022904E9EEBF0A3F0
-:100BF000EAF0A3E9F0ED1DAE0470011C4E60169002
-:100C00004E9EE0FBA3E475F001120424A9F0FAE47F
-:100C10001203FC80E0227B017A4C79BF7D427C008C
-:100C200071EA7B017A4D79937D147C0071EA7B0136
-:100C30007A4D79A87D147C0071EA7B017A4D79BCEC
-:100C40007D147C0071EA7B017A4879007D097C0083
-:100C500071EA7B017A4E79027D097C0071EAE490A9
-:100C60004DDEF0904DE2F0904DE1F0904DDDF090D2
-:100C70004DDCF0904E01F0904DD5F0904DD8F090B5
-:100C80004DDBF0904DE0F0904DD3F0904DDFF090C3
-:100C90004DE3F0904DD9F0904D38F022904EA7EFF3
-:100CA000F0A3EDF07B017A4879007D097C0071EAC0
-:100CB0009048007401F0A3E0FF904EA7E0FEEF4ED5
-:100CC000904801F0904EA8E0904803F07B017A48EC
-:100CD00079007D094143904CF4E0FF6008640160B5
-:100CE00004EFB403028045904CF4E0B4020B7403AB
-:100CF000F0A3E0FFA3E0FD80A3904CF4E0B4041364
-:100D0000E4904CF6F0904CF47405F0A3E0FFA3E0FF
-:100D1000FD8089904CF4E0B40511E4A3F0A3F090B9
-:100D20004CF4F0A3E0FFA3E0FD919C22904E92E4EE
-:100D3000F0A3F0A3F012237250241219B2904E9235
-:100D4000EBF0A3EAF0A3E9F04A7006904CB604F089
-:100D500022904E92E0FBA3E0FAA3E0F911802290EA
-:100D60000BE77405F0904EB4EDF0E0FD900BE8F069
-:100D70007E0B7FE9904E6EEDF0113D7B017A0B7991
-:100D8000E7904EB4E02402FD02076B9116121F5843
-:100D9000904CEB7401F0904CE5741EF0E4904CF034
-:100DA000F0904D0074FFF022121F4512222D91D6B3
-:100DB000F15C121E96900B7EE014600C24FE70EB2A
-:100DC000B1EEF1A3F13980FE904CEAE07012904C44
-:100DD000ECE0700C904CE5E07006904CE7E06005AC
-:100DE00012236680C6B1EEF13980C080BE22E4FFD6
-:100DF000904EB2F0FEFDEF90060C936049EF93FD2C
-:100E0000131313541FFEED5407FD7401A805088049
-:100E100002C333D8FCFDEE2478FBE434808B82F5EA
-:100E200083E0FCEDF4FBEC5BF0EE2470F582E4343F
-:100E300080F583E04DF0EE2474F582E43480F58390
-:100E4000E05BF00F80B01223FD90811CE0904EB269
-:100E5000F0904CD5E064026036904DD5E06020E41F
-:100E6000FFD1997F01D1997F02D1997F03D1997FD9
-:100E700004D1997F05D1997F06D1997F07801A9077
-:100E80004EB2E0FF9000A3F0EFF49000A7F022E450
-:100E90009000A3F09000A7F022904EB6EFF012174A
-:100EA0001E9208904EB6E0FFA208B39207EFF470CE
-:100EB00002E138EF5407FEEF1313135403FF30071A
-:100EC0004324A3F582E43400F583C083C082E0FDAF
-:100ED0007401A806088002C333D8FCF45DD082D028
-:100EE00083F074A72FF582E43400F583C083C082B9
-:100EF000E0FF7401A806088002C333D8FC4FD082FB
-:100F0000D083F02274A32FF582E43400F583C083EC
-:100F1000C082E0FD7401A806088002C333D8FCFC3F
-:100F20004DD082D083F074A72FF582E43400F5838E
-:100F3000E0FFECF4FEEF5EF022E4900B7FF0900B0C
-:100F40007EF07F01EFD394004011E4FDFC0DBD0065
-:100F5000010CBC04F8BDA6F51F80E922904CBFE04F
-:100F6000FF603F640360047FC8F144C2017FFFF16A
-:100F7000D07B017A4D79E47D1D7C007FD87E3F12C5
-:100F8000161F7B017A4C79F27D027C007FF67E3F52
-:100F900012161FD2017FFFF1D07F0AF144E4904C7A
-:100FA000BFF022C2067F1EF1B3C2067F0FF1B3C2AB
-:100FB000067FFFAC07ECF46016AF04D20412133CBA
-:100FC000AF04A2069201F1D0AF04C20212131A229A
-:100FD000EFF4600D7B017A807974A2019200121304
-:100FE0004D22A1A81212B680BAD2017F0F80E190E3
-:100FF0004CC7E0B404037F01227F0022E4904EAD91
-:10100000F0904CC8E0B40206904EADE0FF2290474D
-:10101000F5E030E306904EADE0FF22904CC7E07063
-:101020001A904CEFE0701E740AF0A3E07017904D18
-:10103000E1E0B402107F01114B800AE4904CEBF028
-:10104000904EAD04F0904EADE0FF22904EAEEFF02A
-:1010500024FE600F14600C24FE603524F8602C24FC
-:101060000C705F904EAEE014904DD1F0904213742E
-:1010700005F0904CF0F07F041207447F0A120F44F1
-:101080007F2A120744E4904CEDF0227F0E020744C1
-:10109000E4904CF0F09111EF7005D1CDEF600F901E
-:1010A0004EAEE0904CEDF0904DE27403F02251A270
-:1010B000E4904131F071AE7F0D120744E4904CEDA5
-:1010C000F022E4904CEDF022904CE9E06016E490C0
-:1010D0004CE3F0A3F0904CE9E014F0E070067F0DD3
-:1010E000114B11E522E4904D38F07F19020744EFCF
-:1010F00024EC607A14700221B924EC700221AD2432
-:10110000F9606624FD600F147002219124FD605B7C
-:101110002408600221F1120FE4120D8B7B017A4D3D
-:1011200079E47D1D7C007FD87E3F31F27F0A120F6B
-:10113000447B017A4C79F27D027C007FF67E3F3160
-:10114000F2904CF2E0B4FF1FA3E0B4FF1A904C936E
-:10115000E0A3E0904CF2F0904C91E0A3E0904CF3CF
-:10116000F0904CBF7401F041AC41B60206C2904C05
-:10117000C77403F0A37401F07F0E120744904CE58E
-:10118000E07002B176E4904CE9F0904CE3F0A3F00B
-:1011900022904CC77404F0E4A3F051A2E4904CEB0D
-:1011A000F090413104F0904CBF7403F0227F0112A3
-:1011B00007FD904CBF7403F022904CC7E0904CCBDD
-:1011C000F0E4904CC7F0A3F0904CEB04F0A3E0B433
-:1011D0000104E4F001E5904CEDE0FF6002014B906A
-:1011E0004CF0E060030206C211E5E4904CE3F0A38A
-:1011F000F022904E79ECF0A3EDF0A3EBF0A3EAF02F
-:10120000A3E9F09080987404F0A3E4F0900CAF741C
-:10121000A0F0A3EEF0A3EFF0900CB274A1F07A0C62
-:1012200079AF7E0C7FAF74AFFC740CFFECFEEF90D7
-:10123000809AEEF0A3EFF0904E79E0FCA3E0FAEC98
-:10124000FFEAFEEF90809EEEF0A3EFF07A0B798339
-:101250007E0B7F837483FC740BFFECFEEF90809C0D
-:10126000EEF0A3EFF09080907402F090809CA3E0E9
-:1012700020E707908090E04401F0908006E044046D
-:10128000F0B17D904E7BE0A3E0FAA3E0AE02FF7BDD
-:10129000017A0B7983904E79E0A3E0904E6EF002D4
-:1012A000083DE4904CF0F0904DDDF022904DE1745B
-:1012B00002F07F01014B908080E4F0A3F0A3F05195
-:1012C000DFE4904EB1F0F0904EB1E090060C93FF49
-:1012D000600CC20551FC904EB1E004F080E922E4BC
-:1012E000904EB0F0F0904EB0E0FFC39408500CC2A6
-:1012F0000551FC904EB0E004F080EA22AC07ECF41B
-:101300006017AF04A2059203712BAF04A205B3923C
-:1013100002711AAF04C204713C22EFF4600C7B012D
-:101320007A807978A2029200714D22EFF4600C7BF2
-:10133000017A80797CA2039200714D22EFF4600C57
-:101340007B017A807970A2049200714D22904EA4A4
-:10135000EBF0A3EAF0A3E9F0E4FEFDEF5407FEEFA3
-:101360001313135403FD300022904EA4E0FBA3E0BE
-:10137000FAA3E02DF9E43AFA1203B6FF7401A806C5
-:10138000088002C333D8FC4F0203FC904EA4E0FB5C
-:10139000A3E0FAA3E02DF9E43AFA1203B6FF7401D0
-:1013A000A806088002C333D8FCF45F0203FC7B016B
-:1013B0007A4C79F27D027C007FF67E3F31F2904CD0
-:1013C000F2E004F0A3E004F0904CF2E09044FAF074
-:1013D000904CF3E09044FBF022904CC7E0B404152D
-:1013E000904CE3E0B40E29A3E0B410249111904C8A
-:1013F000EC7401F022904CE3E07004A3E0641470FC
-:101400000F904DDDE06007E4F07F0E12074411E518
-:1014100022904CC7E0FF64046004EFB403087F111E
-:101420001207447F01227F0022B10D904CE4E004BA
-:10143000F07006904CE3E004F091C971D9914391AA
-:10144000DB01C8904CCEE030E13D904CD0E0C3943D
-:10145000FA5003E004F0904CD0E064B4702E904D4C
-:10146000DCE004F0E0D394025007E4904CD0F0802C
-:101470001B904DDCE0B40314904DD57401F0E49062
-:101480004CD0F011E58005E4904DDCF0904CCEE0BE
-:1014900030E330904CEA740AF0904CD2E0C394FAF6
-:1014A0005003E004F0904CD2E0B4061C904CE9E00C
-:1014B000701674F0F07F05114B120FA3904CEB7473
-:1014C00001F022E4904CD2F022904CD3E0600B1457
-:1014D000F0E070067405F01220CD22904DE2E0603D
-:1014E0002BE014F0E07025904CEDE0B4051E904721
-:1014F000F5E020E317E4904131F0904CE974F0F00E
-:1015000071AE7F0D120744E4904CEDF022904DE156
-:10151000E064027044904CE9E06015904CCCE064CB
-:101520000160067F0FB15A8007C2017F0F120FD0F2
-:10153000120FEFEF6023904CE7E0601614F0D20139
-:101540007F1E120FD0904CE7E0700EC2017F1E028A
-:101550000FD0C2017F1E120FD022904EB7EFF07B4A
-:10156000017A807974D1DF9209904EB7E0FFA20929
-:10157000B39201020FD0C2017F0F020FD090812CD5
-:10158000E030E5F922904E5CEEF0A3EFF0904E6073
-:10159000EBF0A3EAF0A3E9F0904E5EECF0A3EDF0DF
-:1015A000A3E0F9A3E0FAA3E0904E49C9F0A3EAF062
-:1015B000A3E9F0A3ECF0A3EDF07B017A0B7986F1BF
-:1015C00026900B8374A0F0904E5CE0FFA3E0900B9C
-:1015D00084CFF0A3EFF0904E5FE02403FD904E5EC9
-:1015E000E03400FCEDFAECFFEAFEEF908098EEF0BC
-:1015F000A3EFF07A0B79837E0B7F837483FC740BEB
-:10160000FFECFEEFA3EEF0A3EFF090809EE4F0A3DA
-:10161000F090809004F0908006E04404F0A17D906A
-:101620004E3DEEF0A3EFF0A3ECF0A3EDF0A3EBF052
-:10163000A3EAF0A3E9F0904E3FE07002A3E070024D
-:10164000C1CC904E3DE0FEA3E0FF440F2401FDE439
-:101650003EFCC3ED9FFFEC9EFE904E44F0A3EFF0E6
-:10166000904E3FE0FCA3E0FDD39FEC9E400A904EDD
-:1016700044E0FEA3E0FF8004AE04AF05904E44EECC
-:10168000F0FCA3EFF0FDC3904E40E09DF0904E3F84
-:10169000E09CF0904E3DE0FEA3E0FF904E41E0FB69
-:1016A000A3E0FAA3E0F9B1857F0A120F44904E44FB
-:1016B000E0FEA3E0FF904E42EE8FF012040E904E3B
-:1016C0003EE02FF0904E3DE03EF0C13622904CC7F8
-:1016D000E0B402087F0E1207447F01227F0022AD92
-:1016E00007E4904EB5F0FEEF5407F0EF13131354D8
-:1016F00003FEF5827583001203CFFD3395E0FC9065
-:101700004EB5E0FF74017E00A807088005C333CE04
-:1017100033CED8F9FFEE5CFEEF5D4E24FF227B0155
-:101720007A81791C80B9904E46EBF0A3EAF0A3E9E8
-:10173000F0904E4C74FFF5F012042445F0602A90AE
-:101740004E49E0FBA3E475F001120424A9F0FA125B
-:1017500003B6FF904E46E0FBA3E475F001120424AB
-:10176000A9F0FAEF1203FC80C822904CEAE0600274
-:1017700014F0904CEFE0600214F0904CE5E0600F44
-:1017800014F0120FE9904CE5E0702FB176802B90A9
-:101790004CE9E07025904CE2E0601F14F0E030E18D
-:1017A00009D2017FFF120FD08007C2017FFF120F05
-:1017B000D0904CE2E070037404F0904DDEE06013D2
-:1017C000E014F0E0700D904CC7E0B40406904213B2
-:1017D000740CF022904E95EBF0A3EAF0A3E9F0E44C
-:1017E000FEFD904DDBE0640170407D05AF051DEF0F
-:1017F000603F904E95E0FBA3E0FAA3E02401F9E4FA
-:101800003AFAED7E0029F9EE3AFA1203B6FEB41E5A
-:1018100010904CEA740AF0904CCEE04408F07F013E
-:1018200022904CCEE054F7F080C2904CCEE054F7BA
-:10183000F07F0022AE05EF30E00A904DD3E004F0D7
-:10184000AE03800D904DD3E06007E014F0AF03AE1F
-:1018500007AF0622AE07AC05E4904EAFF0ECF09077
-:101860004DDBE06401600221ACEC24C6B40C004006
-:101870000221AC90188175F003A4C58325F0C583BF
-:10188000730218A50218B40218C30218EE02191840
-:1018900002194302195202196102197002197F02DA
-:1018A000198E02199DAF06AD047BD71134904EAF4F
-:1018B000EFF021ACAF06AD047BD81134904EAFEF02
-:1018C000F021AC904CF57404F0A3742BF0EE30E0F2
-:1018D00008904CF47401F08006904CF47404F0AF5E
-:1018E00006AD04E4FB1134904EAFEFF021AC904C08
-:1018F000F57408F0A314F0EE30E008904CF4740195
-:10190000F08006904CF47404F0AF06AD04E4FB11D3
-:1019100034904EAFEFF021AC904CF57408F0A37406
-:1019200050F0EE30E008904CF47401F08006904CDA
-:10193000F47404F0AF06AD04E4FB1134904EAFEF45
-:10194000F08069AF06AD047BD51134904EAFEFF057
-:10195000805AAF06AD047BF41134904EAFEFF080A7
-:101960004BAF06AD047BF21134904EAFEFF0803CEC
-:10197000AF06AD047BF51134904EAFEFF0802DAF84
-:1019800006AD047BF81134904EAFEFF0801EAF0629
-:10199000AD047BF61134904EAFEFF0800FAF06AE82
-:1019A00004AD067BF71134904EAFEFF0904EAFE0F0
-:1019B000FF22E4904E2FF0A3F0A3F0A3F0A3F0A336
-:1019C000F0A3F0A3F0A3F0A3F0A3F0A3F0A3F0A37F
-:1019D000F0B1367A4D79A8904E587401F0A3744D49
-:1019E000F0A374A8F0A37414F07B017A4D79BC7154
-:1019F000ECEF60167B017A4D79BC7D1471BCEF7001
-:101A000009904CCEE04402F0800C904CCEE054FDA6
-:101A1000F0E4904CD0F0E4904E2FF0904E2FE0FF89
-:101A200090060C93602F74BC2FF582E4344DF5833F
-:101A3000E0904E31F0E0FD6014904E35E004F0A3EC
-:101A4000E0FEED4EF0AF0571AEA3E02FF0904E2F0B
-:101A5000E004F080C6904E37E0904E3CF0904E355A
-:101A6000E0904E3BF0904E36E0FF71AE904E3AEF74
-:101A7000F0904E3CE0FFD39402401D904E3AE0FEC1
-:101A8000A3E0FDD39E4004AE058000EFD39E400846
-:101A9000904E397401F08005E4904E39F0E4904E98
-:101AA0002FF0904E2FE0FF90060C9370026182742D
-:101AB000932FF582E4344DF583E0FE74BC2FF5825C
-:101AC000E4344DF583E06E904E31F0904E2FE0FF00
-:101AD00024BCF582E4344DF583E0904E34F0904E12
-:101AE00031E07004617A617A904E39E060077B00E2
-:101AF0007A0079002274BC2FF582E4344DF583E03E
-:101B0000FE74932FF582E4344DF583EEF0E4904EAD
-:101B100030F0904E30E0FFC394085058A3E030E01E
-:101B20003B904E2FE0FE33333354F8FEEF4E904E91
-:101B300033F0A3E0FF904E33E090062193FD115463
-:101B4000904E38EFF0904E34E030E009904E38E09F
-:101B5000FF91368007904E38E0FF918C904E31E037
-:101B6000FFC313F0904E34E0FFC313F0904E30E00B
-:101B700004F0809E904E327401F0904E2FE004F0FD
-:101B800041A2904E01E0B4030A904DD8E0B40103A5
-:101B90007402F0904E32E07007904DD8E0B4020726
-:101BA0007B017A4E794E227B007A00790022E4FE96
-:101BB000EF6006145FFF0E80F7AF0622904E98EBA1
-:101BC000F0A3EAF0A3E9F0E4FFEFC39D501B904EB1
-:101BD00098E0FBA3E0FAA3E0F98F8275830012037B
-:101BE000CF60037F00220F80E07F0122904E55EBF3
-:101BF000F0A3EAF0A3E9F0E4FF904E5BE0FEEFC350
-:101C00009E5030904E58E0FBA3E0FAA3E0F98F829B
-:101C10007583001203CFFE904E55E0FBA3E0FAA3BC
-:101C2000E0F98F827583001203CF6E60037F00227C
-:101C30000F80C67F0122E4FEEFC394E04020EFD383
-:101C400094E7501A904E4EE0FEEF5407FF7401A83F
-:101C500007088002C333D8FC4E904E4EF022E4FEBB
-:101C6000744F2EF582E4344EF583E0FD6F601CED79
-:101C70007014904DE3E06F6012744F2EF582E434DF
-:101C80004EF583EFF0220EEEB406D522E4FEFDEF12
-:101C900054F064F06007EF54D0FCBCD00C904E01BF
-:101CA000E0B4020B7403F08006904DD87401F0EF9D
-:101CB000C394E04021EFD394E7501B904E4EE0FEDA
-:101CC000EF5407FF7401A807088002C333D8FCF45F
-:101CD0005E904E4EF022E4FEED7021744F2EF582A0
-:101CE000E4344EF583E06F7047EEB4050B244FF5F6
-:101CF00082E4344EF583E4F07D018034744F2EF598
-:101D000082E4344EF583E0FC744E2EF582E4344ECA
-:101D1000F583ECF0744F2EF582E4344EF583E060E9
-:101D200014EEB4050B244FF582E4344EF583E4F051
-:101D30000EEEB406A322E4FF904E86F0FEFDA3F063
-:101D4000A3F0A3F0EF90060C93607CEF93FD1313C8
-:101D500013541FFEED5407FD7401A805088002C34B
-:101D600033D8FCFDEE2478FBE434808B82F583E0ED
-:101D7000FCEDF4FBEC5BF0EE2470F582E43480F5CE
-:101D800083E04DF0EE2474F582E43480F583E05B6B
-:101D9000F090811CE0F4FC74BC2FF582E4344DF526
-:101DA00083ECF0EE2478FBE434808B82F583E04D05
-:101DB000F0EE2470FBE434808B82F583E0FCEDF4DC
-:101DC000FBEC5BF00FA144E4FFEF90060C93607C0A
-:101DD000EF93FD131313541FFEED5407FD7401A878
-:101DE00005088002C333D8FCFDEE2478FBE4348080
-:101DF0008B82F583E0FCEDF4FBEC5BF0EE2470F5F8
-:101E000082E43480F583E04DF0EE2474F582E4340E
-:101E100080F583E05BF090811CE0F4FC74A82FF562
-:101E200082E4344DF583ECF0EE2478FBE434808BCF
-:101E300082F583E04DF0EE2470FBE434808B82F574
-:101E400083E0FCEDF4FBEC5BF00FA1C9E4FFEF9045
-:101E5000060C93604074BC2FF582E4344DF583E0AA
-:101E6000FE74A82FF582E4344DF583E06E60237490
-:101E7000BC2FF582E4344DF583C083C082E0FE744C
-:101E8000A82FF582E4344DF583E0FDEE5DD082D0DD
-:101E900083F00F80B922904DE1E064026002E129F5
-:101EA000904CE9E0707C904CD5E0B402051210E54E
-:101EB000802F904CD5E0B40114904CF7E070229044
-:101EC0004CE27404F0904CF77401F08014904CF7DD
-:101ED000E0B4010DE4F0904CE2F0C2017FFF120F7C
-:101EE000D0120FEFEF6034904DD9E0FF904CB7E087
-:101EF0006F6036E030E10F904CE7740CF0D2017F58
-:101F00001E120FD0800CC2017F1E120FD0E4904C25
-:101F1000E7F0904CB7E0904DD9F022C2017F1E024D
-:101F20000FD0C2017F1E120FD0229080107401F0DA
-:101F300080FE2280F5904EA9EDF09000011203CFB3
-:101F4000904EAAF0227B017A4E790B781D7C4E7D53
-:101F5000017E007F1202039022904EB3E0FFC394F3
-:101F600004501BEF25E024D6F582E4344CF583744D
-:101F700079F0A37490F0904EB3E004F080DB904CC5
-:101F80008FE064026003022026904C91E0FEA3E003
-:101F9000FFC3904C94E09FFD904C93E09EFCE412B4
-:101FA00002067BC37AF57988783F1200FBC004C033
-:101FB00005C006C007904C91E0FCA3E0FDE41202CE
-:101FC00006D003D002D001D00012000A12023F90C6
-:101FD0004CDEEEF0A3EFF0904C91E0FEA3E0FFC3E7
-:101FE000904C94E09FFD904C93E09EFCE41202061E
-:101FF0007BAE7A477981783F1200FBC004C005C0F0
-:1020000006C007904C91E0FCA3E0FDE4120206D06C
-:1020100003D002D001D00012000A12023F904CE01F
-:10202000EEF0A3EFF022904C8FE06401700201CC3F
-:10203000904C91E0FEA3E0FFC3904C94E09FFD9094
-:102040004C93E09EFCE41202067BC37AF579A878F3
-:102050003E1200FBC004C005C006C007904C91E0D2
-:10206000FCA3E0FDE4120206D003D002D001D000B0
-:1020700012000A12023F904CDEEEF0A3EFF0904CFB
-:1020800091E0FEA3E0FFC3904C94E09FFD904C9341
-:10209000E09EFCE41202067B5C7A8F7942783E1265
-:1020A00000FBC004C005C006C007904C91E0FCA333
-:1020B000E0FDE4120206D003D002D001D0001200ED
-:1020C0000A12023F904CE0EEF0A3EFF022904E7522
-:1020D0001205330000000022E4904E74F0904E751B
-:1020E000E0F8A3E0F9A3E0FAA3E0FB904E74E0254A
-:1020F000E024D6F582E4344CF583E0FEA3E0FFE46F
-:10210000FCFDEB2FFFEA3EFEED39FDEC38FC904E76
-:1021100075120527904E74E004F0E0B404BF904EB1
-:1021200075E0FCA3E0FDA3E0FEA3E0FFE47B04FA7E
-:10213000F9F8120476904E75120527904CE0E0FEF7
-:10214000A3E0FFC3904CD7E09F904CD6E09E500791
-:10215000904CD57402F022904CDEE0FEA3E0FFE448
-:10216000FCFD904E75E0F8A3E0F9A3E0FAA3E0FBD4
-:10217000C31205165007904CD57401F022E4904C20
-:10218000D5F022904E8AEEF0A3EFF0904E8CECF05A
-:10219000A3EDF0904E8CE0FEA3E0FFD3904E8BE0D9
-:1021A0009F904E8AE09E4016904E8CE0FEA3E0FF8A
-:1021B000904E8BE09FFF904E8AE09EFE801E904ED8
-:1021C0008AE0FEA3E0FFC3904E8DE09FFF904E8C0F
-:1021D000E09EFEAD03C3EB9FFFE49EFE22904EAB5C
-:1021E000EEF0A3EFF0A905904B9EE0FEA3E0FFAD5B
-:1021F0000119ED602F0FEFAC0670010E14F5828C03
-:1022000083E0FD904EABE475F00112042485F0826A
-:10221000F583EDF0AD07AC06BC4BD4BD9AD17E4B37
-:102220007F3680CB904B9EEEF0A3EFF0227A0C79B4
-:102230004B904E9B7401F0A3740CF0A3744BF09080
-:102240004BA0E0FEA3E0FF904B9EE06E7003A3E086
-:102250006F700261067E0C7F4B7D0331DD904E9BDB
-:10226000E0FBA3E0FAA3E0F91203B6B4022B904E10
-:102270009CE475F00212040E904E9BE0FBA3E0FA82
-:10228000A3E0F91203B6FF904E1DE0A3E0FAA3E02D
-:10229000F5828A83120568806D904E9BE0FBA3E077
-:1022A000FAA3E0F91203B664057059904E9C75F0DC
-:1022B0000112040E7E0C7F4E904E9BE0FBA3E0FAD1
-:1022C000A3E0F91203B614FD31DD904E9BE0FBA3B1
-:1022D000E0FAA3E02401F9E43AFAC002C001904E0A
-:1022E0009BE0A3E0FAA3E0F91203B6FD7C00904E58
-:1022F00029E0A3E0FAA3E0F5828A83D001D002129C
-:102300000568800280FE904BA5E0FEA3E0FF904CA4
-:102310005EE06E7003A3E06F6022904E23E0FBA3AB
-:10232000E0FAA3E0F94A6037120564904BA5E0FF9C
-:10233000A3E0904C5ECFF0A3EFF080CA904C8DE00C
-:10234000FFA3E06F6019904E26E0FBA3E0FAA3E044
-:10235000F94A600B120564904C8DE0A3F080DD22F9
-:10236000900446E0FF22900B7F7401F0E4900B7E16
-:10237000F022904B9CE0FEA3E0FF904B9AE0B50664
-:1023800007A3E0B50702D322C3229082807401F034
-:1023900022904EA1EBF0A3EAF0A3E9F0ED1DAE040C
-:1023A00070011C4E6017904EA1E0FBA3E475F00194
-:1023B000120424A9F0FA74FF1203FC80DF22EFF468
-:1023C000603AEF5407FEEF1313135403FF24A3F5F1
-:1023D00082E43400F583C083C082E0FD7401A80666
-:1023E000088002C333D8FCF4FC5DD082D083F07443
-:1023F000A72FF582E43400F583E05CF022E4FFEFE0
-:10240000FD7C002478FBEC34808B82F583E0FEEDCC
-:102410002470FDEC34808D82F583E04EF4FEEF24D1
-:102420007CFDEC34808D82F583EEF00FEFB404CFA9
-:012430002289
+:10091000F07B017A4879007D09FC71D87B017A4E21
+:1009200079027D097C0071D8904CB67401F0904C2E
+:10093000F4E0FF64017002412AEF64047002412A6E
+:10094000EF64027002412A904E6FE0FBA3E0FAA32D
+:10095000E0F9512B904E01E0B401117402F0904E79
+:1009600002F07B017A4E79027D03818A904E01E08C
+:10097000B40316E4F0904DE3F0904E027402F07B65
+:10098000017A4E79027D03818A9048007401F090CB
+:100990004E6FE0FBA3E0FAA3E0F91203B690480122
+:1009A000F0E4A3F0904DD8F09000011203CFB4AF63
+:1009B0001E7E487F03904E6FE0FBA3E0FAA3E02485
+:1009C00002F9E43AFA904E6E7405F0113D801C7EF7
+:1009D000487F03904E6FE0FBA3E0FAA3E02401F907
+:1009E000E43AFA904E6E7406F0113D904E73740323
+:1009F000F0904E73E0FFC39409502574002FF582E8
+:100A0000E43448F583E0B4AF0F904E73E02400F572
+:100A100082E43448F583E4F0904E73E004F080D132
+:100A20007B017A4879007D09918A22904E82EBF011
+:100A3000A3EAF0A3E9F0E4A3F0F0904E85E0FFC351
+:100A40009406400261BC904E82E0FBA3E0FAA3E072
+:100A50002401F9E43AFA7E00E92FF9EE3AFA12039A
+:100A6000B6FF54F064F06009EF54D064D0600261C6
+:100A7000B41203B6FBB4F2087FCD7E0071BD61896C
+:100A8000EBB4F4087FB67E0071BD6189904E82E0C0
+:100A9000FBA3E0FAA3E02401F9E43AFAA3E07E0024
+:100AA00029F9EE3AFA1203B6FBB4F5067FB571BD2B
+:100AB0006189EBB4F6087FEA7E0071BD6189904ED2
+:100AC00082E0FBA3E0FAA3E02401F9E43AFAA3E010
+:100AD0007E0029F9EE3AFA1203B6FBB4F7067FE975
+:100AE00071BD6189EBB4F8087FE27E0071BD618958
+:100AF000904E82E0FBA3E0FAA3E02401F9E43AFA85
+:100B0000A3E07E0029F9EE3AFA1203B6FBB4FA0725
+:100B10007F8A0E71BD8072EBB4D5087F217E027191
+:100B2000BD8066904E82E0FBA3E0FAA3E02401F9C9
+:100B3000E43AFAA3E07E0029F9EE3AFA1203B6FB92
+:100B4000B4D6087F237E0271BD803EEBB4D9087F06
+:100B5000B87E0071BD8032904E82E0FBA3E0FAA324
+:100B6000E02401F9E43AFAA3E07E0029F9EE3AFA2A
+:100B70001203B6FBB4DB087F067E0371BD800AEB6F
+:100B8000B4DC067F077E0371BD904E01E0B4022401
+:100B9000904E82E0FBA3E0FAA3E02401F9E43AFAE4
+:100BA000A3E07E0029F9EE3AFA1203B6904DE3F085
+:100BB000E41203FC904E85E004F0413A22AD07AC0C
+:100BC00006904E01E06402600E7401F0904E020443
+:100BD000F0EFA3F0EEA3F022904E9EEBF0A3EAF02C
+:100BE000A3E9F0ED1DAE0470011C4E6016904E9E00
+:100BF000E0FBA3E475F001120424A9F0FAE4120367
+:100C0000FC80E0227B017A4C79BF7D437C0071D867
+:100C10007B017A4D79937D147C0071D87B017A4DEC
+:100C200079A87D147C0071D87B017A4D79BC7D1444
+:100C30007C0071D87B017A4879007D097C0071D8ED
+:100C40007B017A4E79027D097C0071D8E4904DDEFB
+:100C5000F0904DE2F0904DE1F0904DDDF0904DDCE4
+:100C6000F0904E01F0904DD5F0904DD8F0904DDBC6
+:100C7000F0904DE0F0904DD3F0904DDFF0904DE3CB
+:100C8000F0904DD9F0904D38F022904E7EEBF0A3CD
+:100C9000EAF0A3E9F0A3EDF01217E6EF601D904C27
+:100CA000EBE07017904CC7E0B40410904E7EE0FB70
+:100CB000A3E0FAA3E0F9A3E0FDB19F22904EA7EFD5
+:100CC000F0A3EDF07B017A4879007D097C0071D8B2
+:100CD0009048007401F0A3E0FF904EA7E0FEEF4EB5
+:100CE000904801F0904EA8E0904803F07B017A48CC
+:100CF00079007D098094904CF4E0FF600864036003
+:100D000004EFB405028065904CF4E0B4010EA3E05A
+:100D1000FFE4FD91BC904CF47402F022904CF4E09E
+:100D2000B4020B7403F0A3E0FFA3E0FD808E904CAF
+:100D3000F4E0B4041AE4904CF6F0904CF5E0FFE4D3
+:100D4000FD91BCE4904CF5F0904CF47405F02290C9
+:100D50004CF4E0B40615E4904CF6F0904CF5F0A39A
+:100D6000E0FDE4FF91BCE4904CF4F022904E92E45C
+:100D7000F0A3F0A3F012224550241219A1904E9234
+:100D8000EBF0A3EAF0A3E9F04A7006904CB604F049
+:100D900022904E92E0FBA3E0FAA3E0F911802290AA
+:100DA0000BE77405F0904EB3EDF0E0FD900BE8F02A
+:100DB0007E0B7FE9904E6EEDF0113D7B017A0B7951
+:100DC000E7904EB3E02402FD02076B9104121EB6B9
+:100DD000904CEB7401F0904CE5741EF0E4904CF0F4
+:100DE000F0904D0174FFF022121EA312210091F623
+:100DF000121169121065900B7EE014600C24FE70D5
+:100E0000EAD12FF19CF17980FE904CEAE0701290CB
+:100E10004CECE0700C904CE5E07006904CF8E06013
+:100E20000512223980C5D12FF17980BF80BD22E41F
+:100E3000FF904EB2F0FEFDEF90060C936049EF93E9
+:100E4000FD131313541FFEED5407FD7401A805088C
+:100E50008002C333D8FCFDEE2478FBE434808B821F
+:100E6000F583E0FCEDF4FBEC5BF0EE2470F582E43E
+:100E70003480F583E04DF0EE2474F582E43480F59F
+:100E800083E05BF00F80B012231490811CE0904E41
+:100E9000B2F0904CD5E064026036904DD5E0602011
+:100EA000E4FFD1DA7F01D1DA7F02D1DA7F03D1DA30
+:100EB0007F04D1DA7F05D1DA7F06D1DA7F07801A85
+:100EC000904EB2E0FF9000A3F0EFF49000A7F02264
+:100ED000E49000A3F09000A7F022904EB5EFF0F15F
+:100EE000CA9208904EB5E0FFA208B39207EFF470E3
+:100EF00002E178EF5407FEEF1313135403FF30079A
+:100F00004324A3F582E43400F583C083C082E0FD6E
+:100F10007401A806088002C333D8FCF45DD082D0E7
+:100F200083F074A72FF582E43400F583C083C08278
+:100F3000E0FF7401A806088002C333D8FC4FD082BA
+:100F4000D083F02274A32FF582E43400F583C083AC
+:100F5000C082E0FD7401A806088002C333D8FCFCFF
+:100F60004DD082D083F074A72FF582E43400F5834E
+:100F7000E0FFECF4FEEF5EF022E4900B7FF0900BCC
+:100F80007EF07F01EFD394004011E4FDFC0DBD0025
+:100F9000010CBC04F8BDA6F51F80E922C2067F1E25
+:100FA000F1ACC2067F0FF1ACC2067F1DAC07ECF4BA
+:100FB0006017AF04D2041215B6AF04A20692011254
+:100FC0001054AF04C202121533227B017A81791CBE
+:100FD000AD07E4904EB4F0FEEF5407F0EF13131397
+:100FE0005403FEF5827583001203CFFD3395E0FCB8
+:100FF000904EB4E0FF74017E00A807088005C3335B
+:10100000CE33CED8F9FFEE5CFEEF5D4E24FF22908A
+:101010004CC7E0B404037F01227F0022904DE1E041
+:101020006402702F904CE9E060047F0F91DC110F97
+:10103000EF6020904CE7E0601414F0D2017F1E11A5
+:1010400054904CE7E0700CC2017F1E8007C2017F04
+:101050001E115422EFF4600C7B017A807974A20196
+:101060009200B15522904DE1E06402707C904CE911
+:10107000E07076904CD5E0B40204515E802E904C26
+:10108000D5E0B40114904CF7E07021904CE2740468
+:10109000F0904CF77401F08013904CF7E0B4010C21
+:1010A000E4F0904CE2F0C2017F1D1154110FEF608B
+:1010B00032904DD9E0FF904CB7E06F602CE030E10A
+:1010C0000E904CE7740CF0D2017F1E1154800BC2BD
+:1010D000017F1E1154E4904CE7F0904CB7E0904D26
+:1010E000D9F022C2017F1E115422904CEAE0600226
+:1010F00014F0904CEFE0600214F0904CF8E0600ABD
+:1011000014F0E07005904CF404F0904CE5E06016AB
+:1011100014F0D2017F0F1154904CE5E07031C20100
+:101120007F0F11548029904CE9E07023904CE2E04D
+:10113000601D14F0E030E108D2017F1D11548006DB
+:10114000C2017F1D1154904CE2E070037404F090D2
+:101150004DDEE06013E014F0E0700D904CC7E0B499
+:101160000406904213740CF022904CBFE0FF603FE5
+:10117000640360057FC8120F84C2017FFF11547B96
+:10118000017A4D79E47D1D7C007FD87E3F31B07BB4
+:10119000017A4C79F27D027C007FF67E3F31B0D23D
+:1011A000017FFF11547F0A120F84E4904CBFF0229C
+:1011B000904E3DEEF0A3EFF0A3ECF0A3EDF0A3EB27
+:1011C000F0A3EAF0A3E9F0904E3FE07002A3E070D4
+:1011D00002415D904E3DE0FEA3E0FF440F2401FD7F
+:1011E000E43EFCC3ED9FFFEC9EFE904E44F0A3EF67
+:1011F000F0904E3FE0FCA3E0FDD39FEC9E400A90B0
+:101200004E44E0FEA3E0FF8004AE04AF05904E44E0
+:10121000EEF0FCA3EFF0FDC3904E40E09DF0904E49
+:101220003FE09CF0904E3DE0FEA3E0FF904E41E099
+:10123000FBA3E0FAA3E0F9F14B7F0A120F84904E72
+:1012400044E0FEA3E0FF904E42EE8FF012040E90B9
+:101250004E3EE02FF0904E3DE03EF021C722E4905C
+:101260004D38F07F19020744EF24EC6079147002C6
+:10127000613524EC7002612924F9606524FD600F5A
+:10128000147002610D24FD605A24086002616D91A2
+:101290001E120DCB7B017A4D79E47D1D7C007FD839
+:1012A0007E3F716E7F0A120F847B017A4C79F27D4A
+:1012B000027C007FF67E3F716E904CF2E0B4FF1F1F
+:1012C000A3E0B4FF1A904C93E0A3E0904CF2F090AE
+:1012D0004C91E0A3E0904CF3F0904CBF7401F0818E
+:1012E0004C81230206C2904CC77403F0A37401F032
+:1012F0007F0E120744904CE5E07006C2017F0F118B
+:1013000054E4904CE9F0904CE3F0A3F022904CC7E9
+:101310007404F0E4A3F091D2E4904CEBF0904131EE
+:1013200004F0904CBF7403F0227F011207FD904C33
+:10133000BF7403F022904CC7E0904CCBF0E4904C8B
+:10134000C7F0A3F0904CEB04F0A3E0B40104E4F088
+:10135000415E904CEDE0FF60028154904CF0E06003
+:10136000030206C2515EE4904CE3F0A3F022904EDB
+:1013700079ECF0A3EDF0A3EBF0A3EAF0A3E9F09091
+:1013800080987404F0A3E4F0900CAF74A0F0A3EE86
+:10139000F0A3EFF0900CB274A1F07A0C79AF7E0C50
+:1013A0007FAF74AFFC740CFFECFEEF90809AEEF010
+:1013B000A3EFF0904E79E0FCA3E0FAECFFEAFEEF39
+:1013C00090809EEEF0A3EFF07A0B79837E0B7F8303
+:1013D0007483FC740BFFECFEEF90809CEEF0A3EFA7
+:1013E000F09080907402F090809CA3E020E707903A
+:1013F0008090E04401F0908006E04404F0F14390D6
+:101400004E7BE0A3E0FAA3E0AE02FF7B017A0B790A
+:1014100083904E79E0A3E0904E6EF002083D912358
+:10142000020F9C908080E4F0A3F0A3F091F8E49088
+:101430004EB1F0F0904EB1E090060C93FF600CC2FC
+:1014400005B115904EB1E004F080E922904DE174B1
+:1014500002F07F01904EAEEFF024FE600F14600C9E
+:1014600024FE603524F8602C240C7060904EAEE0B1
+:1014700014904DD1F09042137405F0904CF0F07F31
+:10148000041207447F0A120F847F2A120744E49053
+:101490004CEDF0227F0E020744E4904CF0F0D1CEE8
+:1014A000EF7006121836EF600F904EAEE0904CEDE4
+:1014B000F0904DE27403F02291D2E4904131F0D1EA
+:1014C000E67F0D120744E4904CEDF022E4904CEDE1
+:1014D000F022E4904CF0F0904DDDF022904EB6EF0B
+:1014E000F07B017A807974120FD09209904EB6E0A9
+:1014F000FFA209B392010154E4904EB0F0F0904E77
+:10150000B0E0FFC39408500CC205B115904EB0E096
+:1015100004F080EA22AC07ECF46017AF04A2059255
+:1015200003B144AF04A205B39202B133AF04C204C5
+:10153000B1B622EFF4600C7B017A807978A2029236
+:1015400000B15522EFF4600C7B017A80797CA20314
+:101550009200B15522904EA4EBF0A3EAF0A3E9F07B
+:10156000E4FEFDEF5407FEEF1313135403FD3000A8
+:1015700022904EA4E0FBA3E0FAA3E02DF9E43AFAAE
+:101580001203B6FF7401A806088002C333D8FC4FCB
+:101590000203FC904EA4E0FBA3E0FAA3E02DF9E4E3
+:1015A0003AFA1203B6FF7401A806088002C333D8C2
+:1015B000FCF45F0203FCEFF4600C7B017A8079702D
+:1015C000A2049200B15522904CE9E06016E4904CE0
+:1015D000E3F0A3F0904CE9E014F0E070067F0D9189
+:1015E00054515E22111C904CE4E004F07006904CC3
+:1015F000E3E004F0D1BCB1FED136F11180C9904CCA
+:10160000C7E0B40415904CE3E0B40E29A3E0B41095
+:1016100024D1CE904CEC7401F022904CE3E07004A5
+:10162000A3E06414700F904DDDE06007E4F07F0EDE
+:10163000120744515E22904CCEE030E13D904CD0F8
+:10164000E0C394FA5003E004F0904CD0E064B4702E
+:101650002E904DDCE004F0E0D394025007E4904C6F
+:10166000D0F0801B904DDCE0B40314904DD5740194
+:10167000F0E4904CD0F0515E8005E4904DDCF090A9
+:101680004CCEE030E330904CEA740AF0904CD2E05B
+:10169000C394FA5003E004F0904CD2E0B4061C90DE
+:1016A0004CE9E0701674F0F07F059154120F9C9095
+:1016B0004CEB7401F022E4904CD2F022904CD3E039
+:1016C000600B14F0E070067405F0121F7322904C4A
+:1016D000C7E0FF64046004EFB403087F11120744FD
+:1016E0007F01227F00227B017A4C79F27D027C000F
+:1016F0007FF67E3F716E904CF2E004F0A3E004F0C0
+:10170000904CF2E09044FAF0904CF3E09044FBF0FF
+:1017100022904DE2E0602BE014F0E07025904CED5B
+:10172000E0B4051E9047F5E020E317E4904131F066
+:10173000904CE974F0F0D1E67F0D120744E4904C30
+:10174000EDF02290812CE030E5F922904E5CEEF035
+:10175000A3EFF0904E60EBF0A3EAF0A3E9F0904E17
+:101760005EECF0A3EDF0A3E0F9A3E0FAA3E0904E65
+:1017700049C9F0A3EAF0A3E9F0A3ECF0A3EDF07BF4
+:10178000017A0B7986122264900B8374A0F0904E3C
+:101790005CE0FFA3E0900B84CFF0A3EFF0904E5FEE
+:1017A000E02403FD904E5EE03400FCEDFAECFFEA2D
+:1017B000FEEF908098EEF0A3EFF07A0B79837E0B2A
+:1017C0007F837483FC740BFFECFEEFA3EEF0A3EFBA
+:1017D000F090809EE4F0A3F090809004F09080065A
+:1017E000E04404F0E143E4904EADF0904CC8E0B426
+:1017F0000206904EADE0FF229047F5E030E3069000
+:101800004EADE0FF22904CC7E0701B904CEFE070B3
+:101810001F740AF0A3E07018904DE1E0B402117F4C
+:1018200001121454800AE4904CEBF0904EAD04F099
+:10183000904EADE0FF22904CC7E0B402087F0E123C
+:1018400007447F01227F0022904E95EBF0A3EAF03F
+:10185000A3E9F0E4FEFD904DDBE0640170407D05FE
+:10186000AF051DEF603F904E95E0FBA3E0FAA3E0CB
+:101870002401F9E43AFAED7E0029F9EE3AFA12036E
+:10188000B6FEB41E10904CEA740AF0904CCEE044C0
+:1018900008F07F0122904CCEE054F7F080C2904CCB
+:1018A000CEE054F7F07F0022904CF5EDF0A3EBF082
+:1018B000EF30E012904CF4E0B403047402F0229094
+:1018C0004CF47401F022904CF47404F022AE07E45E
+:1018D000904EAFF0EDF0904DDBE064016002219B93
+:1018E000ED24D7603B24EFB40C004002219B9018FC
+:1018F000FC75F003A4C58325F0C583730219280283
+:10190000193002193802194002194F02195E0219E2
+:101910006602196E02197602197E02198602198E64
+:10192000904EAF74D6F08073904EAF74F4F0806B2D
+:10193000904EAF74F2F08063904EAF74F5F0805B20
+:10194000AF067B2B7D0411A8E4904EAFF0804CAF26
+:10195000067B0E7D0811A8E4904EAFF0803D904EBE
+:10196000AF74FAF08035904EAF74D5F0802D904E64
+:10197000AF74F5F08025904EAF74F6F0801D904E58
+:10198000AF74F7F08015904EAF74F8F0800DAF068D
+:101990007B2C7D0811A8E4904EAFF0904EAFE0FF95
+:1019A00022E4904E2FF0A3F0A3F0A3F0A3F0A3F055
+:1019B000A3F0A3F0A3F0A3F0A3F0A3F0A3F0A3F08F
+:1019C000B1287A4D79A8904E587401F0A3744DF067
+:1019D000A374A8F0A37414F07B017A4D79BC71DB79
+:1019E000EF60167B017A4D79BC7D1471ABEF700905
+:1019F000904CCEE04402F0800C904CCEE054FDF0D0
+:101A0000E4904CD0F0E4904E2FF0904E2FE0FF90F9
+:101A1000060C93602F74BC2FF582E4344DF583E0FF
+:101A2000904E31F0E0FD6014904E35E004F0A3E0FC
+:101A3000FEED4EF0AF05719DA3E02FF0904E2FE02C
+:101A400004F080C6904E37E0904E3CF0904E35E06A
+:101A5000904E3BF0904E36E0FF719D904E3AEFF085
+:101A6000904E3CE0FFD39402401D904E3AE0FEA31E
+:101A7000E0FDD39E4004AE058000EFD39E40089069
+:101A80004E397401F08005E4904E39F0E4904E2F09
+:101A9000F0904E2FE0FF90060C93700261717493EA
+:101AA0002FF582E4344DF583E0FE74BC2FF582E41B
+:101AB000344DF583E06E904E31F0904E2FE0FF24D0
+:101AC000BCF582E4344DF583E0904E34F0904E3115
+:101AD000E0700461696169904E39E060077B007ACB
+:101AE0000079002274BC2FF582E4344DF583E0FECA
+:101AF00074932FF582E4344DF583EEF0E4904E308C
+:101B0000F0904E30E0FFC394085058A3E030E03B23
+:101B1000904E2FE0FE33333354F8FEEF4E904E33A9
+:101B2000F0A3E0FF904E33E090062193FD11CD909D
+:101B30004E38EFF0904E34E030E009904E38E0FF40
+:101B400091258007904E38E0FF917D904E31E0FF67
+:101B5000C313F0904E34E0FFC313F0904E30E00416
+:101B6000F0809E904E327401F0904E2FE004F041D0
+:101B700091904E01E0B4030A904DD8E0B401037493
+:101B800002F0904E32E07007904DD8E0B402077B2F
+:101B9000017A4E794E227B007A00790022E4FEEF32
+:101BA0006006145FFF0E80F7AF0622904E98EBF0B0
+:101BB000A3EAF0A3E9F0E4FFEFC39D501B904E9819
+:101BC000E0FBA3E0FAA3E0F98F827583001203CF54
+:101BD00060037F00220F80E07F0122904E55EBF0E2
+:101BE000A3EAF0A3E9F0E4FF904E5BE0FEEFC39EB2
+:101BF0005030904E58E0FBA3E0FAA3E0F98F8275D5
+:101C000083001203CFFE904E55E0FBA3E0FAA3E061
+:101C1000F98F827583001203CF6E60037F00220F5D
+:101C200080C67F0122E4FEAD07EFC394E04020EFC1
+:101C3000D394E7501A904E4EE0FFED5407FE740126
+:101C4000A806088002C333D8FC4F904E4EF022E421
+:101C5000FE744F2EF582E4344EF583E0FD6F601C78
+:101C6000ED7014904DE3E06F6012744F2EF582E436
+:101C7000344EF583EFF0220EEEB406D522E4FEFDDD
+:101C8000AC07EF54F064F06007EF54D0FBBBD00C0E
+:101C9000904E01E0B4020B7403F08006904DD874AE
+:101CA00001F0EFC394E04020EFD394E7501A904E38
+:101CB0004EE0FFEC5407FE74FEA806088002C33312
+:101CC000D8FC5F904E4EF022E4FEED7021744F2E52
+:101CD000F582E4344EF583E06F7047EEB4050B24D3
+:101CE0004FF582E4344EF583E4F07D018034744F87
+:101CF0002EF582E4344EF583E0FC744E2EF582E43A
+:101D0000344EF583ECF0744F2EF582E4344EF583B7
+:101D1000E06014EEB4050B244FF582E4344EF583F5
+:101D2000E4F00EEEB406A322E4FF904E86F0FEFD32
+:101D3000A3F0A3F0A3F0EF90060C93607CEF93FD6B
+:101D4000131313541FFEED5407FD7401A8050880FA
+:101D500002C333D8FCFDEE2478FBE434808B82F59B
+:101D600083E0FCEDF4FBEC5BF0EE2470F582E434F0
+:101D700080F583E04DF0EE2474F582E43480F58341
+:101D8000E05BF090811CE0F4FC74BC2FF582E4343D
+:101D90004DF583ECF0EE2478FBE434808B82F58300
+:101DA000E04DF0EE2470FBE434808B82F583E0FCA0
+:101DB000EDF4FBEC5BF00FA136E4FFEF90060C9323
+:101DC000607CEF93FD131313541FFEED5407FD7455
+:101DD00001A805088002C333D8FCFDEE2478FBE49B
+:101DE00034808B82F583E0FCEDF4FBEC5BF0EE24B9
+:101DF00070F582E43480F583E04DF0EE2474F582D2
+:101E0000E43480F583E05BF090811CE0F4FC74A87E
+:101E10002FF582E4344DF583ECF0EE2478FBE434C6
+:101E2000808B82F583E04DF0EE2470FBE434808BF0
+:101E300082F583E0FCEDF4FBEC5BF00FA1BBE4FF6B
+:101E4000EF90060C93604074BC2FF582E4344DF59E
+:101E500083E0FE74A82FF582E4344DF583E06E60D4
+:101E60002374BC2FF582E4344DF583C083C082E037
+:101E7000FE74A82FF582E4344DF583E0FDEE5DD0CD
+:101E800082D083F00F80B9229080107401F080FE20
+:101E90002280F5904EA9EDF09000011203CF904EF4
+:101EA000AAF0227B017A4E790B781D7C4E7D017E53
+:101EB000007F12020390904CD37405F0E4A3F0FF6E
+:101EC000EF25E024D6F582E4344CF5837451F0A379
+:101ED000F00FEFB404EA904C91E0FEA3E0FFC39052
+:101EE0004C94E09FFD904C93E09EFCE41202067B34
+:101EF000A47A70793D783F1200FBC004C005C0068B
+:101F0000C007904C91E0FCA3E0FDE4120206D00370
+:101F1000D002D001D00012000A12023F904CDEEE37
+:101F2000F0A3EFF0904C91E0FEA3E0FFC3904C943F
+:101F3000E09FFD904C93E09EFCE41202067B1F7A2A
+:101F400085792B783F1200FBC004C005C006C0078E
+:101F5000904C91E0FCA3E0FDE4120206D003D00215
+:101F6000D001D00012000A12023F904CE0EEF0A324
+:101F7000EFF022904E7512053300000000904C9552
+:101F8000E0FEA3E0FF904CD4E0FD04F0ED25E0245A
+:101F9000D6F582E4344CF583EEF0A3EFF0904CD408
+:101FA000E0C394044002E4F0E4904E74F0904E7567
+:101FB000E0F8A3E0F9A3E0FAA3E0FB904E74E0257B
+:101FC000E024D6F582E4344CF583E0FEA3E0FFE4A0
+:101FD000FCFDEB2FFFEA3EFEED39FDEC38FC904EA8
+:101FE00075120527904E74E004F0E0B404BF904EE3
+:101FF00075E0FCA3E0FDA3E0FEA3E0FFE47B04FAB0
+:10200000F9F8120476904E75120527904CE0E0FE28
+:10201000A3E0FFC3904CD7E09F904CD6E09E5007C2
+:10202000904CD57402F022904CDEE0FEA3E0FFE479
+:10203000FCFD904E75E0F8A3E0F9A3E0FAA3E0FB05
+:10204000C31205165007904CD57401F022E4904C51
+:10205000D5F022020DE8904E8AEEF0A3EFF0904EFC
+:102060008CECF0A3EDF0904E8CE0FEA3E0FFD3905B
+:102070004E8BE09F904E8AE09E4016904E8CE0FE84
+:10208000A3E0FF904E8BE09FFF904E8AE09EFE8083
+:102090001E904E8AE0FEA3E0FFC3904E8DE09FFFAE
+:1020A000904E8CE09EFEAD03C3EB9FFFE49EFE22AC
+:1020B000904EABEEF0A3EFF0A905904B9EE0FEA38F
+:1020C000E0FFAD0119ED602F0FEFAC0670010E14AB
+:1020D000F5828C83E0FD904EABE475F00112042490
+:1020E00085F082F583EDF0AD07AC06BC4BD4BD9A0C
+:1020F000D17E4B7F3680CB904B9EEEF0A3EFF0224B
+:102100007A0C794B904E9B7401F0A3740CF0A3747D
+:102110004BF0904BA0E0FEA3E0FF904B9EE06E7072
+:1021200003A3E06F700221D97E0C7F4B7D0311B0B9
+:10213000904E9BE0FBA3E0FAA3E0F91203B6B402D1
+:102140002B904E9CE475F00212040E904E9BE0FB27
+:10215000A3E0FAA3E0F91203B6FF904E1DE0A3E05E
+:10216000FAA3E0F5828A83120568806D904E9BE0A9
+:10217000FBA3E0FAA3E0F91203B664057059904E90
+:102180009C75F00112040E7E0C7F4E904E9BE0FB7E
+:10219000A3E0FAA3E0F91203B614FD11B0904E9B30
+:1021A000E0FBA3E0FAA3E02401F9E43AFAC002C09C
+:1021B00001904E9BE0A3E0FAA3E0F91203B6FD7C88
+:1021C00000904E29E0A3E0FAA3E0F5828A83D001D3
+:1021D000D002120568800280FE904BA5E0FEA3E0CD
+:1021E000FF904C5EE06E7003A3E06F6022904E2380
+:1021F000E0FBA3E0FAA3E0F94A6037120564904BD4
+:10220000A5E0FFA3E0904C5ECFF0A3EFF080CA9072
+:102210004C8DE0FFA3E06F6019904E26E0FBA3E039
+:10222000FAA3E0F94A600B120564904C8DE0A3F02C
+:1022300080DD22900446E0FF22900B7F7401F0E4E1
+:10224000900B7EF022904B9CE0FEA3E0FF904B9A17
+:10225000E0B50607A3E0B50702D322C3229082802F
+:102260007401F022904E46EBF0A3EAF0A3E9F0905F
+:102270004E4C74FFF5F012042445F0602A904E494C
+:10228000E0FBA3E475F001120424A9F0FA1203B6EE
+:10229000FF904E46E0FBA3E475F001120424A9F080
+:1022A000FAEF1203FC80C822904EA1EBF0A3EAF0F3
+:1022B000A3E9F0ED1DAE0470011C4E6017904EA115
+:1022C000E0FBA3E475F001120424A9F0FA74FF12F4
+:1022D00003FC80DF22EFF4603AEF5407FEEF1313A4
+:1022E000135403FF24A3F582E43400F583C083C0B4
+:1022F00082E0FD7401A806088002C333D8FCF4FC18
+:102300005DD082D083F074A72FF582E43400F5838A
+:10231000E05CF022E4FFEFFD7C002478FBEC3480ED
+:102320008B82F583E0FEED2470FDEC34808D82F528
+:1023300083E04EF4FEEF247CFDEC34808D82F58347
+:08234000EEF00FEFB404CF2210
 :00000001FF
Index: output/fwram.rom
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/fwram.rom	(revision 114)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/fwram.rom	(working copy)
@@ -1397,8 +1397,8 @@
 05
 b1
 02
-0f
-e2
+20
+53
 e4
 93
 a3
@@ -1528,23 +1528,23 @@
 4e
 0b
 ff
-10
-ef
+12
+68
 00
 00
 00
 ff
-14
-29
+15
+e4
 ff
-17
-6a
+10
+ea
 00
 00
 00
 ff
-1f
-35
+1e
+93
 00
 1a
 08
@@ -1945,8 +1945,8 @@
 7b
 64
 12
-21
-83
+20
+56
 90
 4e
 66
@@ -2272,13 +2272,13 @@
 e0
 f9
 12
-17
-d4
+18
+48
 ef
 60
 02
 41
-42
+2a
 90
 4e
 6f
@@ -2292,7 +2292,7 @@
 70
 02
 41
-42
+2a
 90
 4c
 c7
@@ -2329,7 +2329,7 @@
 09
 fc
 71
-ea
+d8
 7b
 01
 7a
@@ -2341,7 +2341,7 @@
 7c
 00
 71
-ea
+d8
 90
 4c
 b6
@@ -2352,51 +2352,27 @@
 4c
 f4
 e0
-b4
+ff
+64
 01
+70
+02
+41
 2a
-90
-48
-00
-74
-01
-f0
-a3
-e0
-ff
-90
-4c
-f5
-e0
-fe
 ef
-4e
-90
-48
-01
-f0
-e4
-90
-48
-03
-f0
-7b
-01
-7a
-48
-79
-00
-7d
-09
-51
-43
-90
-4c
-f4
-74
+64
+04
+70
 02
-f0
-22
+41
+2a
+ef
+64
+02
+70
+02
+41
+2a
 90
 4e
 6f
@@ -2409,7 +2385,7 @@
 e0
 f9
 51
-74
+2b
 90
 4e
 01
@@ -2432,8 +2408,8 @@
 02
 7d
 03
-41
-43
+81
+8a
 90
 4e
 01
@@ -2461,8 +2437,8 @@
 02
 7d
 03
-41
-43
+81
+8a
 90
 48
 00
@@ -2622,57 +2598,8 @@
 00
 7d
 09
-51
-43
-22
-90
-4e
-7e
-eb
-f0
-a3
-ea
-f0
-a3
-e9
-f0
-a3
-ed
-f0
-f1
-fc
-ef
-60
-1d
-90
-4c
-eb
-e0
-70
-17
-90
-4c
-c7
-e0
-b4
-04
-10
-90
-4e
-7e
-e0
-fb
-a3
-e0
-fa
-a3
-e0
-f9
-a3
-e0
-fd
-b1
-5f
+91
+8a
 22
 90
 4e
@@ -2700,7 +2627,7 @@
 40
 02
 61
-ce
+bc
 90
 4e
 82
@@ -2743,34 +2670,34 @@
 60
 02
 61
-c6
+b4
 12
 03
 b6
 fb
 b4
-f1
+f2
 08
 7f
-83
+cd
 7e
-01
+00
 71
-cf
+bd
 61
-9b
+89
 eb
 b4
-f2
+f4
 08
 7f
-cd
+b6
 7e
 00
 71
-cf
+bd
 61
-9b
+89
 90
 4e
 82
@@ -2801,26 +2728,26 @@
 b6
 fb
 b4
-f3
+f5
 06
 7f
-b7
+b5
 71
-cf
+bd
 61
-9b
+89
 eb
 b4
-f4
+f6
 08
 7f
-b6
+ea
 7e
 00
 71
-cf
+bd
 61
-9b
+89
 90
 4e
 82
@@ -2851,26 +2778,26 @@
 b6
 fb
 b4
-f5
+f7
 06
 7f
-b5
+e9
 71
-cf
-80
-6e
+bd
+61
+89
 eb
 b4
-f6
+f8
 08
 7f
-ea
+e2
 7e
 00
 71
-cf
-80
-62
+bd
+61
+89
 90
 4e
 82
@@ -2901,26 +2828,27 @@
 b6
 fb
 b4
-f7
-06
+fa
+07
 7f
-e9
+8a
+0e
 71
-cf
+bd
 80
-3c
+72
 eb
 b4
-f8
+d5
 08
 7f
-e2
+21
 7e
-00
+02
 71
-cf
+bd
 80
-30
+66
 90
 4e
 82
@@ -2951,26 +2879,80 @@
 b6
 fb
 b4
-d7
-06
+d6
+08
 7f
-70
+23
+7e
+02
 71
-cf
+bd
 80
-0a
+3e
 eb
 b4
-d8
-06
+d9
+08
 7f
-6f
+b8
 7e
 00
 71
-cf
-90
-4e
+bd
+80
+32
+90
+4e
+82
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+db
+08
+7f
+06
+7e
+03
+71
+bd
+80
+0a
+eb
+b4
+dc
+06
+7f
+07
+7e
+03
+71
+bd
+90
+4e
 01
 e0
 b4
@@ -3019,7 +3001,7 @@
 04
 f0
 41
-83
+3a
 22
 ad
 07
@@ -3099,11 +3081,11 @@
 79
 bf
 7d
-42
+43
 7c
 00
 71
-ea
+d8
 7b
 01
 7a
@@ -3115,7 +3097,7 @@
 7c
 00
 71
-ea
+d8
 7b
 01
 7a
@@ -3127,7 +3109,7 @@
 7c
 00
 71
-ea
+d8
 7b
 01
 7a
@@ -3139,7 +3121,7 @@
 7c
 00
 71
-ea
+d8
 7b
 01
 7a
@@ -3151,7 +3133,7 @@
 7c
 00
 71
-ea
+d8
 7b
 01
 7a
@@ -3163,7 +3145,7 @@
 7c
 00
 71
-ea
+d8
 e4
 90
 4d
@@ -3228,6 +3210,56 @@
 22
 90
 4e
+7e
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+12
+17
+e6
+ef
+60
+1d
+90
+4c
+eb
+e0
+70
+17
+90
+4c
+c7
+e0
+b4
+04
+10
+90
+4e
+7e
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+a3
+e0
+fd
+b1
+9f
+22
+90
+4e
 a7
 ef
 f0
@@ -3245,7 +3277,7 @@
 7c
 00
 71
-ea
+d8
 90
 48
 00
@@ -3282,8 +3314,8 @@
 00
 7d
 09
-41
-43
+80
+94
 90
 4c
 f4
@@ -3292,15 +3324,36 @@
 60
 08
 64
-01
+03
 60
 04
 ef
 b4
-03
+05
 02
 80
-45
+65
+90
+4c
+f4
+e0
+b4
+01
+0e
+a3
+e0
+ff
+e4
+fd
+91
+bc
+90
+4c
+f4
+74
+02
+f0
+22
 90
 4c
 f4
@@ -3318,14 +3371,14 @@
 e0
 fd
 80
-a3
+8e
 90
 4c
 f4
 e0
 b4
 04
-13
+1a
 e4
 90
 4c
@@ -3333,42 +3386,53 @@
 f0
 90
 4c
+f5
+e0
+ff
+e4
+fd
+91
+bc
+e4
+90
+4c
+f5
+f0
+90
+4c
 f4
 74
 05
 f0
-a3
-e0
-ff
-a3
-e0
-fd
-80
-89
+22
 90
 4c
 f4
 e0
 b4
-05
-11
+06
+15
 e4
-a3
-f0
-a3
+90
+4c
+f6
 f0
 90
 4c
-f4
+f5
 f0
 a3
 e0
-ff
-a3
-e0
 fd
+e4
+ff
 91
-9c
+bc
+e4
+90
+4c
+f4
+f0
 22
 90
 4e
@@ -3380,13 +3444,13 @@
 a3
 f0
 12
-23
-72
+22
+45
 50
 24
 12
 19
-b2
+a1
 90
 4e
 92
@@ -3429,7 +3493,7 @@
 f0
 90
 4e
-b4
+b3
 ed
 f0
 e0
@@ -3457,7 +3521,7 @@
 e7
 90
 4e
-b4
+b3
 e0
 24
 02
@@ -3466,10 +3530,10 @@
 07
 6b
 91
-16
+04
 12
-1f
-58
+1e
+b6
 90
 4c
 eb
@@ -3489,24 +3553,25 @@
 f0
 90
 4d
-00
+01
 74
 ff
 f0
 22
 12
-1f
-45
+1e
+a3
 12
-22
-2d
+21
+00
 91
-d6
-f1
-5c
+f6
 12
-1e
-96
+11
+69
+12
+10
+65
 90
 0b
 7e
@@ -3517,13 +3582,13 @@
 24
 fe
 70
-eb
-b1
-ee
+ea
+d1
+2f
 f1
-a3
+9c
 f1
-39
+79
 80
 fe
 90
@@ -3546,23 +3611,23 @@
 06
 90
 4c
-e7
+f8
 e0
 60
 05
 12
-23
-66
-80
-c6
-b1
-ee
-f1
+22
 39
 80
-c0
+c5
+d1
+2f
+f1
+79
 80
-be
+bf
+80
+bd
 22
 e4
 ff
@@ -3654,7 +3719,7 @@
 b0
 12
 23
-fd
+14
 90
 81
 1c
@@ -3680,31 +3745,31 @@
 e4
 ff
 d1
-99
+da
 7f
 01
 d1
-99
+da
 7f
 02
 d1
-99
+da
 7f
 03
 d1
-99
+da
 7f
 04
 d1
-99
+da
 7f
 05
 d1
-99
+da
 7f
 06
 d1
-99
+da
 7f
 07
 80
@@ -3737,17 +3802,16 @@
 22
 90
 4e
-b6
+b5
 ef
 f0
-12
-17
-1e
+f1
+ca
 92
 08
 90
 4e
-b6
+b5
 e0
 ff
 a2
@@ -3760,7 +3824,7 @@
 70
 02
 e1
-38
+78
 ef
 54
 07
@@ -3930,153 +3994,121 @@
 80
 e9
 22
-90
-4c
-bf
-e0
-ff
-60
-3f
-64
-03
-60
-04
-7f
-c8
-f1
-44
-c2
-01
-7f
-ff
-f1
-d0
-7b
-01
-7a
-4d
-79
-e4
-7d
-1d
-7c
-00
-7f
-d8
-7e
-3f
-12
-16
-1f
-7b
-01
-7a
-4c
-79
-f2
-7d
-02
-7c
-00
-7f
-f6
-7e
-3f
-12
-16
-1f
-d2
-01
-7f
-ff
-f1
-d0
-7f
-0a
-f1
-44
-e4
-90
-4c
-bf
-f0
-22
 c2
 06
 7f
 1e
 f1
-b3
+ac
 c2
 06
 7f
 0f
 f1
-b3
+ac
 c2
 06
 7f
-ff
+1d
 ac
 07
 ec
 f4
 60
-16
+17
 af
 04
 d2
 04
 12
-13
-3c
+15
+b6
 af
 04
 a2
 06
 92
 01
-f1
-d0
+12
+10
+54
 af
 04
 c2
 02
 12
-13
-1a
+15
+33
 22
-ef
-f4
-60
-0d
 7b
 01
 7a
-80
+81
 79
+1c
+ad
+07
+e4
+90
+4e
+b4
+f0
+fe
+ef
+54
+07
+f0
+ef
+13
+13
+13
+54
+03
+fe
+f5
+82
+75
+83
+00
+12
+03
+cf
+fd
+33
+95
+e0
+fc
+90
+4e
+b4
+e0
+ff
 74
-a2
 01
-92
+7e
 00
-12
-13
-4d
-22
-a1
 a8
-12
-12
-b6
-80
-ba
-d2
-01
-7f
-0f
+07
+08
 80
-e1
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
+fe
+ef
+5d
+4e
+24
+ff
+22
 90
 4c
 c7
@@ -4090,294 +4122,361 @@
 7f
 00
 22
-e4
-90
-4e
-ad
-f0
 90
-4c
-c8
+4d
+e1
 e0
-b4
+64
 02
-06
-90
-4e
-ad
-e0
-ff
-22
-90
-47
-f5
-e0
-30
-e3
-06
-90
-4e
-ad
-e0
-ff
-22
+70
+2f
 90
 4c
-c7
+e9
 e0
-70
-1a
+60
+04
+7f
+0f
+91
+dc
+11
+0f
+ef
+60
+20
 90
 4c
-ef
+e7
 e0
-70
-1e
-74
-0a
+60
+14
+14
 f0
-a3
+d2
+01
+7f
+1e
+11
+54
+90
+4c
+e7
 e0
 70
-17
+0c
+c2
+01
+7f
+1e
+80
+07
+c2
+01
+7f
+1e
+11
+54
+22
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+74
+a2
+01
+92
+00
+b1
+55
+22
 90
 4d
 e1
 e0
-b4
+64
 02
-10
-7f
-01
-11
-4b
-80
-0a
-e4
+70
+7c
 90
 4c
-eb
-f0
+e9
+e0
+70
+76
 90
-4e
-ad
+4c
+d5
+e0
+b4
+02
 04
-f0
+51
+5e
+80
+2e
 90
-4e
-ad
+4c
+d5
 e0
-ff
-22
-90
-4e
-ae
-ef
-f0
-24
-fe
-60
-0f
+b4
+01
 14
-60
-0c
-24
-fe
-60
-35
-24
-f8
-60
-2c
-24
-0c
-70
-5f
 90
-4e
-ae
+4c
+f7
 e0
-14
-90
-4d
-d1
-f0
+70
+21
 90
-42
-13
+4c
+e2
 74
-05
+04
 f0
 90
 4c
+f7
+74
+01
 f0
-f0
-7f
-04
-12
-07
-44
-7f
-0a
-12
-0f
-44
-7f
-2a
-12
-07
-44
-e4
+80
+13
 90
 4c
-ed
-f0
-22
-7f
-0e
-02
-07
-44
+f7
+e0
+b4
+01
+0c
 e4
+f0
 90
 4c
+e2
 f0
-f0
-91
+c2
+01
+7f
+1d
 11
-ef
-70
-05
-d1
-cd
+54
+11
+0f
 ef
 60
-0f
+32
 90
-4e
-ae
+4d
+d9
 e0
+ff
 90
 4c
-ed
-f0
+b7
+e0
+6f
+60
+2c
+e0
+30
+e1
+0e
 90
-4d
-e2
+4c
+e7
 74
-03
-f0
-22
-51
-a2
-e4
-90
-41
-31
+0c
 f0
-71
-ae
+d2
+01
 7f
-0d
-12
-07
-44
+1e
+11
+54
+80
+0b
+c2
+01
+7f
+1e
+11
+54
 e4
 90
 4c
-ed
+e7
 f0
-22
-e4
 90
 4c
-ed
+b7
+e0
+90
+4d
+d9
 f0
 22
+c2
+01
+7f
+1e
+11
+54
+22
 90
 4c
-e9
+ea
 e0
 60
-16
-e4
-90
-4c
-e3
-f0
-a3
+02
+14
 f0
 90
 4c
-e9
+ef
 e0
-14
+60
+02
+14
+f0
+90
+4c
+f8
+e0
+60
+0a
+14
 f0
 e0
 70
-06
-7f
-0d
-11
-4b
-11
-e5
-22
-e4
+05
 90
-4d
-38
+4c
+f4
+04
 f0
-7f
-19
-02
-07
-44
-ef
-24
-ec
+90
+4c
+e5
+e0
 60
-7a
+16
 14
+f0
+d2
+01
+7f
+0f
+11
+54
+90
+4c
+e5
+e0
 70
-02
-21
-b9
-24
-ec
+31
+c2
+01
+7f
+0f
+11
+54
+80
+29
+90
+4c
+e9
+e0
 70
-02
-21
-ad
-24
-f9
+23
+90
+4c
+e2
+e0
 60
-66
-24
-fd
+1d
+14
+f0
+e0
+30
+e1
+08
+d2
+01
+7f
+1d
+11
+54
+80
+06
+c2
+01
+7f
+1d
+11
+54
+90
+4c
+e2
+e0
+70
+03
+74
+04
+f0
+90
+4d
+de
+e0
 60
-0f
+13
+e0
 14
+f0
+e0
 70
-02
-21
-91
-24
-fd
+0d
+90
+4c
+c7
+e0
+b4
+04
+06
+90
+42
+13
+74
+0c
+f0
+22
+90
+4c
+bf
+e0
+ff
 60
-5b
-24
-08
+3f
+64
+03
 60
-02
-21
-f1
+05
+7f
+c8
 12
 0f
-e4
-12
-0d
-8b
+84
+c2
+01
+7f
+ff
+11
+54
 7b
 01
 7a
@@ -4393,12 +4492,7 @@
 7e
 3f
 31
-f2
-7f
-0a
-12
-0f
-44
+b0
 7b
 01
 7a
@@ -4414,403 +4508,674 @@
 7e
 3f
 31
-f2
-90
-4c
-f2
-e0
-b4
-ff
-1f
-a3
-e0
-b4
+b0
+d2
+01
+7f
 ff
-1a
-90
-4c
-93
-e0
-a3
-e0
+11
+54
+7f
+0a
+12
+0f
+84
+e4
 90
 4c
-f2
+bf
 f0
+22
 90
-4c
-91
-e0
+4e
+3d
+ee
+f0
 a3
-e0
-90
-4c
-f3
+ef
 f0
-90
-4c
-bf
-74
-01
+a3
+ec
 f0
-41
-ac
-41
-b6
-02
-06
-c2
-90
-4c
-c7
-74
-03
+a3
+ed
 f0
 a3
-74
-01
+eb
+f0
+a3
+ea
+f0
+a3
+e9
 f0
-7f
-0e
-12
-07
-44
 90
-4c
-e5
+4e
+3f
 e0
 70
 02
-b1
-76
-e4
-90
-4c
-e9
-f0
-90
-4c
-e3
-f0
-a3
-f0
-22
-90
-4c
-c7
-74
-04
-f0
-e4
 a3
-f0
-51
-a2
-e4
-90
-4c
-eb
-f0
-90
+e0
+70
+02
 41
-31
-04
-f0
-90
-4c
-bf
-74
-03
-f0
-22
-7f
-01
-12
-07
-fd
-90
-4c
-bf
-74
-03
-f0
-22
+5d
 90
-4c
-c7
+4e
+3d
 e0
-90
-4c
-cb
-f0
-e4
-90
-4c
-c7
-f0
-a3
-f0
-90
-4c
-eb
-04
-f0
+fe
 a3
 e0
-b4
+ff
+44
+0f
+24
 01
-04
+fd
 e4
-f0
-01
-e5
-90
-4c
+3e
+fc
+c3
 ed
-e0
+9f
 ff
-60
-02
-01
-4b
-90
-4c
-f0
-e0
-60
-03
-02
-06
-c2
-11
-e5
-e4
+ec
+9e
+fe
 90
-4c
-e3
+4e
+44
 f0
 a3
+ef
 f0
-22
 90
 4e
-79
-ec
-f0
-a3
-ed
-f0
-a3
-eb
-f0
-a3
-ea
-f0
+3f
+e0
+fc
 a3
-e9
-f0
+e0
+fd
+d3
+9f
+ec
+9e
+40
+0a
 90
+4e
+44
+e0
+fe
+a3
+e0
+ff
 80
-98
-74
 04
-f0
-a3
-e4
-f0
-90
-0c
+ae
+04
 af
-74
-a0
-f0
-a3
+05
+90
+4e
+44
 ee
 f0
+fc
 a3
 ef
 f0
+fd
+c3
 90
-0c
-b2
-74
-a1
+4e
+40
+e0
+9d
 f0
-7a
-0c
-79
-af
-7e
-0c
-7f
-af
-74
-af
-fc
-74
-0c
-ff
-ec
-fe
-ef
 90
-80
-9a
-ee
+4e
+3f
+e0
+9c
 f0
+90
+4e
+3d
+e0
+fe
 a3
-ef
-f0
+e0
+ff
 90
 4e
-79
+41
 e0
-fc
+fb
 a3
 e0
 fa
-ec
-ff
-ea
+a3
+e0
+f9
+f1
+4b
+7f
+0a
+12
+0f
+84
+90
+4e
+44
+e0
 fe
-ef
+a3
+e0
+ff
 90
-80
-9e
+4e
+42
 ee
+8f
 f0
-a3
-ef
-f0
-7a
-0b
-79
-83
-7e
-0b
-7f
-83
-74
-83
-fc
-74
-0b
-ff
-ec
-fe
-ef
+12
+04
+0e
 90
-80
-9c
-ee
-f0
-a3
-ef
+4e
+3e
+e0
+2f
 f0
 90
-80
-90
-74
-02
+4e
+3d
+e0
+3e
 f0
+21
+c7
+22
+e4
 90
-80
-9c
-a3
-e0
-20
-e7
+4d
+38
+f0
+7f
+19
+02
 07
-90
-80
-90
-e0
 44
+ef
+24
+ec
+60
+79
+14
+70
+02
+61
+35
+24
+ec
+70
+02
+61
+29
+24
+f9
+60
+65
+24
+fd
+60
+0f
+14
+70
+02
+61
+0d
+24
+fd
+60
+5a
+24
+08
+60
+02
+61
+6d
+91
+1e
+12
+0d
+cb
+7b
 01
-f0
-90
-80
-06
-e0
-44
-04
-f0
-b1
+7a
+4d
+79
+e4
 7d
-90
-4e
+1d
+7c
+00
+7f
+d8
+7e
+3f
+71
+6e
+7f
+0a
+12
+0f
+84
 7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+f6
+7e
+3f
+71
+6e
+90
+4c
+f2
 e0
+b4
+ff
+1f
 a3
 e0
-fa
-a3
-e0
-ae
-02
+b4
 ff
-7b
-01
-7a
-0b
-79
-83
+1a
 90
-4e
-79
+4c
+93
 e0
 a3
 e0
 90
-4e
-6e
+4c
+f2
 f0
-02
-08
-3d
-e4
 90
 4c
-f0
-f0
+91
+e0
+a3
+e0
 90
-4d
-dd
+4c
+f3
 f0
-22
 90
-4d
-e1
+4c
+bf
 74
+01
+f0
+81
+4c
+81
+23
 02
+06
+c2
+90
+4c
+c7
+74
+03
 f0
-7f
-01
+a3
+74
 01
-4b
+f0
+7f
+0e
+12
+07
+44
 90
-80
-80
+4c
+e5
+e0
+70
+06
+c2
+01
+7f
+0f
+11
+54
 e4
+90
+4c
+e9
+f0
+90
+4c
+e3
 f0
 a3
 f0
+22
+90
+4c
+c7
+74
+04
+f0
+e4
 a3
 f0
-51
-df
+91
+d2
 e4
 90
-4e
-b1
-f0
+4c
+eb
 f0
 90
-4e
-b1
-e0
+41
+31
+04
+f0
 90
-06
+4c
+bf
+74
+03
+f0
+22
+7f
+01
+12
+07
+fd
+90
+4c
+bf
+74
+03
+f0
+22
+90
+4c
+c7
+e0
+90
+4c
+cb
+f0
+e4
+90
+4c
+c7
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+a3
+e0
+b4
+01
+04
+e4
+f0
+41
+5e
+90
+4c
+ed
+e0
+ff
+60
+02
+81
+54
+90
+4c
+f0
+e0
+60
+03
+02
+06
+c2
+51
+5e
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4e
+79
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+80
+98
+74
+04
+f0
+a3
+e4
+f0
+90
+0c
+af
+74
+a0
+f0
+a3
+ee
+f0
+a3
+ef
+f0
+90
+0c
+b2
+74
+a1
+f0
+7a
+0c
+79
+af
+7e
+0c
+7f
+af
+74
+af
+fc
+74
+0c
+ff
+ec
+fe
+ef
+90
+80
+9a
+ee
+f0
+a3
+ef
+f0
+90
+4e
+79
+e0
+fc
+a3
+e0
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+9e
+ee
+f0
+a3
+ef
+f0
+7a
+0b
+79
+83
+7e
+0b
+7f
+83
+74
+83
+fc
+74
+0b
+ff
+ec
+fe
+ef
+90
+80
+9c
+ee
+f0
+a3
+ef
+f0
+90
+80
+90
+74
+02
+f0
+90
+80
+9c
+a3
+e0
+20
+e7
+07
+90
+80
+90
+e0
+44
+01
+f0
+90
+80
+06
+e0
+44
+04
+f0
+f1
+43
+90
+4e
+7b
+e0
+a3
+e0
+fa
+a3
+e0
+ae
+02
+ff
+7b
+01
+7a
+0b
+79
+83
+90
+4e
+79
+e0
+a3
+e0
+90
+4e
+6e
+f0
+02
+08
+3d
+91
+23
+02
+0f
+9c
+90
+80
+80
+e4
+f0
+a3
+f0
+a3
+f0
+91
+f8
+e4
+90
+4e
+b1
+f0
+f0
+90
+4e
+b1
+e0
+90
+06
 0c
 93
 ff
@@ -4818,8 +5183,8 @@
 0c
 c2
 05
-51
-fc
+b1
+15
 90
 4e
 b1
@@ -4829,6 +5194,178 @@
 80
 e9
 22
+90
+4d
+e1
+74
+02
+f0
+7f
+01
+90
+4e
+ae
+ef
+f0
+24
+fe
+60
+0f
+14
+60
+0c
+24
+fe
+60
+35
+24
+f8
+60
+2c
+24
+0c
+70
+60
+90
+4e
+ae
+e0
+14
+90
+4d
+d1
+f0
+90
+42
+13
+74
+05
+f0
+90
+4c
+f0
+f0
+7f
+04
+12
+07
+44
+7f
+0a
+12
+0f
+84
+7f
+2a
+12
+07
+44
+e4
+90
+4c
+ed
+f0
+22
+7f
+0e
+02
+07
+44
+e4
+90
+4c
+f0
+f0
+d1
+ce
+ef
+70
+06
+12
+18
+36
+ef
+60
+0f
+90
+4e
+ae
+e0
+90
+4c
+ed
+f0
+90
+4d
+e2
+74
+03
+f0
+22
+91
+d2
+e4
+90
+41
+31
+f0
+d1
+e6
+7f
+0d
+12
+07
+44
+e4
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+f0
+f0
+90
+4d
+dd
+f0
+22
+90
+4e
+b6
+ef
+f0
+7b
+01
+7a
+80
+79
+74
+12
+0f
+d0
+92
+09
+90
+4e
+b6
+e0
+ff
+a2
+09
+b3
+92
+01
+01
+54
 e4
 90
 4e
@@ -4847,8 +5384,8 @@
 0c
 c2
 05
-51
-fc
+b1
+15
 90
 4e
 b0
@@ -4870,8 +5407,8 @@
 05
 92
 03
-71
-2b
+b1
+44
 af
 04
 a2
@@ -4879,14 +5416,14 @@
 b3
 92
 02
-71
-1a
+b1
+33
 af
 04
 c2
 04
-71
-3c
+b1
+b6
 22
 ef
 f4
@@ -4902,8 +5439,8 @@
 02
 92
 00
-71
-4d
+b1
+55
 22
 ef
 f4
@@ -4919,25 +5456,8 @@
 03
 92
 00
-71
-4d
-22
-ef
-f4
-60
-0c
-7b
-01
-7a
-80
-79
-70
-a2
-04
-92
-00
-71
-4d
+b1
+55
 22
 90
 4e
@@ -5036,49 +5556,78 @@
 02
 03
 fc
+ef
+f4
+60
+0c
 7b
 01
 7a
-4c
+80
 79
-f2
-7d
-02
-7c
+70
+a2
+04
+92
 00
-7f
-f6
-7e
-3f
-31
-f2
+b1
+55
+22
 90
 4c
-f2
+e9
 e0
-04
+60
+16
+e4
+90
+4c
+e3
 f0
 a3
-e0
-04
 f0
 90
 4c
-f2
+e9
 e0
-90
-44
-fa
+14
 f0
+e0
+70
+06
+7f
+0d
+91
+54
+51
+5e
+22
+11
+1c
 90
 4c
-f3
+e4
 e0
+04
+f0
+70
+06
 90
-44
-fb
+4c
+e3
+e0
+04
 f0
-22
+d1
+bc
+b1
+fe
+d1
+36
+f1
+11
+80
+c9
 90
 4c
 c7
@@ -5098,8 +5647,8 @@
 b4
 10
 24
-91
-11
+d1
+ce
 90
 4c
 ec
@@ -5132,59 +5681,9 @@
 12
 07
 44
-11
-e5
-22
-90
-4c
-c7
-e0
-ff
-64
-04
-60
-04
-ef
-b4
-03
-08
-7f
-11
-12
-07
-44
-7f
-01
-22
-7f
-00
+51
+5e
 22
-b1
-0d
-90
-4c
-e4
-e0
-04
-f0
-70
-06
-90
-4c
-e3
-e0
-04
-f0
-91
-c9
-71
-d9
-91
-43
-91
-db
-01
-c8
 90
 4c
 ce
@@ -5249,8 +5748,8 @@
 4c
 d0
 f0
-11
-e5
+51
+5e
 80
 05
 e4
@@ -5301,11 +5800,11 @@
 f0
 7f
 05
-11
-4b
+91
+54
 12
 0f
-a3
+9c
 90
 4c
 eb
@@ -5333,349 +5832,146 @@
 74
 05
 f0
-12
-20
-cd
-22
-90
-4d
-e2
-e0
-60
-2b
-e0
-14
-f0
-e0
-70
-25
-90
-4c
-ed
-e0
-b4
-05
-1e
-90
-47
-f5
-e0
-20
-e3
-17
-e4
-90
-41
-31
-f0
-90
-4c
-e9
-74
-f0
-f0
-71
-ae
-7f
-0d
-12
-07
-44
-e4
-90
-4c
-ed
-f0
-22
-90
-4d
-e1
-e0
-64
-02
-70
-44
-90
-4c
-e9
-e0
-60
-15
-90
-4c
-cc
-e0
-64
-01
-60
-06
-7f
-0f
-b1
-5a
-80
-07
-c2
-01
-7f
-0f
-12
-0f
-d0
-12
-0f
-ef
-ef
-60
-23
-90
-4c
-e7
-e0
-60
-16
-14
-f0
-d2
-01
-7f
-1e
-12
-0f
-d0
+12
+1f
+73
+22
 90
 4c
-e7
+c7
 e0
-70
-0e
-c2
-01
+ff
+64
+04
+60
+04
+ef
+b4
+03
+08
+7f
+11
+12
+07
+44
 7f
-1e
-02
-0f
-d0
-c2
 01
+22
 7f
-1e
-12
-0f
-d0
+00
 22
-90
-4e
-b7
-ef
-f0
 7b
 01
 7a
-80
+4c
 79
-74
-d1
-df
-92
-09
-90
-4e
-b7
-e0
-ff
-a2
-09
-b3
-92
-01
+f2
+7d
 02
-0f
-d0
-c2
-01
+7c
+00
 7f
-0f
-02
-0f
-d0
+f6
+7e
+3f
+71
+6e
 90
-81
-2c
+4c
+f2
 e0
-30
-e5
-f9
-22
-90
-4e
-5c
-ee
-f0
-a3
-ef
-f0
-90
-4e
-60
-eb
-f0
-a3
-ea
+04
 f0
 a3
-e9
+e0
+04
 f0
 90
-4e
-5e
-ec
-f0
-a3
-ed
-f0
-a3
-e0
-f9
-a3
-e0
-fa
-a3
+4c
+f2
 e0
 90
-4e
-49
-c9
-f0
-a3
-ea
-f0
-a3
-e9
-f0
-a3
-ec
-f0
-a3
-ed
+44
+fa
 f0
-7b
-01
-7a
-0b
-79
-86
-f1
-26
 90
-0b
-83
-74
-a0
+4c
+f3
+e0
+90
+44
+fb
 f0
+22
 90
-4e
-5c
+4d
+e2
 e0
-ff
-a3
+60
+2b
 e0
-90
-0b
-84
-cf
-f0
-a3
-ef
+14
 f0
+e0
+70
+25
 90
-4e
-5f
+4c
+ed
 e0
-24
-03
-fd
+b4
+05
+1e
 90
-4e
-5e
+47
+f5
 e0
-34
-00
-fc
-ed
-fa
-ec
-ff
-ea
-fe
-ef
+20
+e3
+17
+e4
 90
-80
-98
-ee
-f0
-a3
-ef
+41
+31
 f0
-7a
-0b
-79
-83
-7e
-0b
-7f
-83
-74
-83
-fc
+90
+4c
+e9
 74
-0b
-ff
-ec
-fe
-ef
-a3
-ee
 f0
-a3
-ef
 f0
-90
-80
-9e
+d1
+e6
+7f
+0d
+12
+07
+44
 e4
-f0
-a3
-f0
-90
-80
-90
-04
-f0
 90
-80
-06
-e0
-44
-04
+4c
+ed
 f0
-a1
-7d
+22
+90
+81
+2c
+e0
+30
+e5
+f9
+22
 90
 4e
-3d
+5c
 ee
 f0
 a3
 ef
 f0
-a3
-ec
-f0
-a3
-ed
-f0
-a3
+90
+4e
+60
 eb
 f0
 a3
@@ -5686,417 +5982,237 @@
 f0
 90
 4e
-3f
-e0
-70
-02
-a3
-e0
-70
-02
-c1
-cc
-90
-4e
-3d
-e0
-fe
-a3
-e0
-ff
-44
-0f
-24
-01
-fd
-e4
-3e
-fc
-c3
-ed
-9f
-ff
+5e
 ec
-9e
-fe
-90
-4e
-44
 f0
 a3
-ef
+ed
 f0
-90
-4e
-3f
-e0
-fc
 a3
 e0
-fd
-d3
-9f
-ec
-9e
-40
-0a
-90
-4e
-44
+f9
+a3
 e0
-fe
+fa
 a3
 e0
-ff
-80
-04
-ae
-04
-af
-05
 90
 4e
-44
-ee
+49
+c9
 f0
-fc
 a3
-ef
+ea
 f0
-fd
-c3
-90
-4e
-40
-e0
-9d
+a3
+e9
+f0
+a3
+ec
 f0
+a3
+ed
+f0
+7b
+01
+7a
+0b
+79
+86
+12
+22
+64
 90
-4e
-3f
-e0
-9c
+0b
+83
+74
+a0
 f0
 90
 4e
-3d
-e0
-fe
-a3
+5c
 e0
 ff
-90
-4e
-41
-e0
-fb
-a3
-e0
-fa
 a3
 e0
-f9
-b1
-85
-7f
-0a
-12
-0f
-44
 90
-4e
-44
-e0
-fe
+0b
+84
+cf
+f0
 a3
-e0
-ff
-90
-4e
-42
-ee
-8f
+ef
 f0
-12
-04
-0e
 90
 4e
-3e
+5f
 e0
-2f
-f0
+24
+03
+fd
 90
 4e
-3d
-e0
-3e
-f0
-c1
-36
-22
-90
-4c
-c7
+5e
 e0
-b4
-02
-08
-7f
-0e
-12
-07
-44
-7f
-01
-22
-7f
+34
 00
-22
-ad
-07
-e4
-90
-4e
-b5
-f0
+fc
+ed
+fa
+ec
+ff
+ea
 fe
 ef
-54
-07
-f0
-ef
-13
-13
-13
-54
-03
-fe
-f5
-82
-75
-83
-00
-12
-03
-cf
-fd
-33
-95
-e0
-fc
 90
-4e
-b5
-e0
-ff
-74
-01
-7e
-00
-a8
-07
-08
 80
-05
-c3
-33
-ce
-33
-ce
-d8
-f9
-ff
+98
 ee
-5c
-fe
+f0
+a3
 ef
-5d
-4e
-24
-ff
-22
-7b
-01
+f0
 7a
-81
+0b
 79
-1c
-80
-b9
-90
-4e
-46
-eb
-f0
+83
+7e
+0b
+7f
+83
+74
+83
+fc
+74
+0b
+ff
+ec
+fe
+ef
 a3
-ea
+ee
 f0
 a3
-e9
+ef
 f0
 90
-4e
-4c
-74
-ff
-f5
+80
+9e
+e4
 f0
-12
+a3
+f0
+90
+80
+90
 04
-24
-45
 f0
-60
-2a
 90
-4e
-49
+80
+06
 e0
-fb
-a3
-e4
-75
-f0
-01
-12
+44
 04
-24
-a9
 f0
-fa
-12
-03
-b6
-ff
+e1
+43
+e4
 90
 4e
-46
-e0
-fb
-a3
-e4
-75
-f0
-01
-12
-04
-24
-a9
+ad
 f0
-fa
-ef
-12
-03
-fc
-80
-c8
-22
 90
 4c
-ea
+c8
 e0
-60
+b4
 02
-14
-f0
+06
 90
-4c
-ef
+4e
+ad
 e0
-60
-02
-14
-f0
+ff
+22
 90
-4c
-e5
+47
+f5
 e0
-60
-0f
-14
-f0
-12
-0f
-e9
+30
+e3
+06
 90
-4c
-e5
+4e
+ad
 e0
-70
-2f
-b1
-76
-80
-2b
+ff
+22
 90
 4c
-e9
+c7
 e0
 70
-25
+1b
 90
 4c
-e2
+ef
 e0
-60
+70
 1f
-14
+74
+0a
 f0
+a3
 e0
-30
+70
+18
+90
+4d
 e1
-09
-d2
-01
+e0
+b4
+02
+11
 7f
-ff
-12
-0f
-d0
-80
-07
-c2
 01
-7f
-ff
 12
-0f
-d0
+14
+54
+80
+0a
+e4
 90
 4c
-e2
-e0
-70
-03
-74
-04
+eb
 f0
 90
-4d
-de
-e0
-60
-13
-e0
-14
+4e
+ad
+04
 f0
+90
+4e
+ad
 e0
-70
-0d
+ff
+22
 90
 4c
 c7
 e0
 b4
-04
-06
-90
-42
-13
-74
-0c
-f0
+02
+08
+7f
+0e
+12
+07
+44
+7f
+01
+22
+7f
+00
 22
 90
 4e
@@ -6194,48 +6310,51 @@
 7f
 00
 22
-ae
-05
+90
+4c
+f5
+ed
+f0
+a3
+eb
+f0
 ef
 30
 e0
-0a
+12
 90
-4d
-d3
+4c
+f4
 e0
+b4
+03
 04
+74
+02
 f0
-ae
-03
-80
-0d
+22
+90
+4c
+f4
+74
+01
+f0
+22
 90
-4d
-d3
-e0
-60
-07
-e0
-14
+4c
+f4
+74
+04
 f0
-af
-03
-ae
-07
-af
-06
 22
 ae
 07
-ac
-05
 e4
 90
 4e
 af
 f0
-ec
+ed
 f0
 90
 4d
@@ -6246,20 +6365,24 @@
 60
 02
 21
-ac
-ec
+9b
+ed
 24
-c6
+d7
+60
+3b
+24
+ef
 b4
 0c
 00
 40
 02
 21
-ac
+9b
 90
 18
-81
+fc
 75
 f0
 03
@@ -6272,303 +6395,163 @@
 83
 73
 02
-18
-a5
+19
+28
 02
-18
-b4
+19
+30
 02
-18
-c3
+19
+38
 02
-18
-ee
+19
+40
 02
 19
-18
+4f
 02
 19
-43
+5e
 02
 19
-52
+66
 02
 19
-61
+6e
 02
 19
-70
+76
 02
 19
-7f
+7e
 02
 19
-8e
+86
 02
 19
-9d
-af
-06
-ad
-04
-7b
-d7
-11
-34
+8e
 90
 4e
 af
-ef
+74
+d6
 f0
-21
-ac
-af
-06
-ad
-04
-7b
-d8
-11
-34
+80
+73
 90
 4e
 af
-ef
-f0
-21
-ac
-90
-4c
-f5
-74
-04
-f0
-a3
 74
-2b
-f0
-ee
-30
-e0
-08
-90
-4c
 f4
-74
-01
 f0
 80
-06
-90
-4c
-f4
-74
-04
-f0
-af
-06
-ad
-04
-e4
-fb
-11
-34
+6b
 90
 4e
 af
-ef
-f0
-21
-ac
-90
-4c
-f5
-74
-08
-f0
-a3
-14
-f0
-ee
-30
-e0
-08
-90
-4c
-f4
 74
-01
+f2
 f0
 80
-06
-90
-4c
-f4
-74
-04
-f0
-af
-06
-ad
-04
-e4
-fb
-11
-34
+63
 90
 4e
 af
-ef
-f0
-21
-ac
-90
-4c
-f5
-74
-08
-f0
-a3
 74
-50
-f0
-ee
-30
-e0
-08
-90
-4c
-f4
-74
-01
+f5
 f0
 80
-06
-90
-4c
-f4
-74
-04
-f0
+5b
 af
 06
-ad
+7b
+2b
+7d
 04
-e4
-fb
 11
-34
+a8
+e4
 90
 4e
 af
-ef
 f0
 80
-69
+4c
 af
 06
-ad
-04
 7b
-d5
+0e
+7d
+08
 11
-34
+a8
+e4
 90
 4e
 af
-ef
 f0
 80
-5a
-af
-06
-ad
-04
-7b
-f4
-11
-34
+3d
 90
 4e
 af
-ef
+74
+fa
 f0
 80
-4b
-af
-06
-ad
-04
-7b
-f2
-11
-34
+35
 90
 4e
 af
-ef
+74
+d5
 f0
 80
-3c
+2d
+90
+4e
 af
-06
-ad
-04
-7b
+74
 f5
-11
-34
+f0
+80
+25
 90
 4e
 af
-ef
+74
+f6
 f0
 80
-2d
-af
-06
-ad
-04
-7b
-f8
-11
-34
+1d
 90
 4e
 af
-ef
+74
+f7
 f0
 80
-1e
-af
-06
-ad
-04
-7b
-f6
-11
-34
+15
 90
 4e
 af
-ef
+74
+f8
 f0
 80
-0f
+0d
 af
 06
-ae
-04
-ad
-06
 7b
-f7
+2c
+7d
+08
 11
-34
+a8
+e4
 90
 4e
 af
-ef
 f0
 90
 4e
@@ -6608,7 +6591,7 @@
 a3
 f0
 b1
-36
+28
 7a
 4d
 79
@@ -6638,7 +6621,7 @@
 79
 bc
 71
-ec
+db
 ef
 60
 16
@@ -6651,7 +6634,7 @@
 7d
 14
 71
-bc
+ab
 ef
 70
 09
@@ -6726,7 +6709,7 @@
 af
 05
 71
-ae
+9d
 a3
 e0
 2f
@@ -6761,7 +6744,7 @@
 e0
 ff
 71
-ae
+9d
 90
 4e
 3a
@@ -6828,7 +6811,7 @@
 70
 02
 61
-82
+71
 74
 93
 2f
@@ -6883,9 +6866,9 @@
 70
 04
 61
-7a
+69
 61
-7a
+69
 90
 4e
 39
@@ -6973,7 +6956,7 @@
 93
 fd
 11
-54
+cd
 90
 4e
 38
@@ -6992,7 +6975,7 @@
 e0
 ff
 91
-36
+25
 80
 07
 90
@@ -7001,7 +6984,7 @@
 e0
 ff
 91
-8c
+7d
 90
 4e
 31
@@ -7039,7 +7022,7 @@
 04
 f0
 41
-a2
+91
 90
 4e
 01
@@ -7222,6 +7205,8 @@
 22
 e4
 fe
+ad
+07
 ef
 c3
 94
@@ -7238,15 +7223,15 @@
 4e
 4e
 e0
-fe
-ef
+ff
+ed
 54
 07
-ff
+fe
 74
 01
 a8
-07
+06
 08
 80
 02
@@ -7254,7 +7239,7 @@
 33
 d8
 fc
-4e
+4f
 90
 4e
 4e
@@ -7309,6 +7294,8 @@
 e4
 fe
 fd
+ac
+07
 ef
 54
 f0
@@ -7319,8 +7306,8 @@
 ef
 54
 d0
-fc
-bc
+fb
+bb
 d0
 0c
 90
@@ -7346,26 +7333,26 @@
 94
 e0
 40
-21
+20
 ef
 d3
 94
 e7
 50
-1b
+1a
 90
 4e
 4e
 e0
-fe
-ef
+ff
+ec
 54
 07
-ff
+fe
 74
-01
+fe
 a8
-07
+06
 08
 80
 02
@@ -7373,8 +7360,7 @@
 33
 d8
 fc
-f4
-5e
+5f
 90
 4e
 4e
@@ -7620,7 +7606,7 @@
 f0
 0f
 a1
-44
+36
 e4
 ff
 ef
@@ -7744,237 +7730,89 @@
 f5
 83
 e0
-fc
-ed
-f4
-fb
-ec
-5b
-f0
-0f
-a1
-c9
-e4
-ff
-ef
-90
-06
-0c
-93
-60
-40
-74
-bc
-2f
-f5
-82
-e4
-34
-4d
-f5
-83
-e0
-fe
-74
-a8
-2f
-f5
-82
-e4
-34
-4d
-f5
-83
-e0
-6e
-60
-23
-74
-bc
-2f
-f5
-82
-e4
-34
-4d
-f5
-83
-c0
-83
-c0
-82
-e0
-fe
-74
-a8
-2f
-f5
-82
-e4
-34
-4d
-f5
-83
-e0
-fd
-ee
-5d
-d0
-82
-d0
-83
-f0
-0f
-80
-b9
-22
-90
-4d
-e1
-e0
-64
-02
-60
-02
-e1
-29
-90
-4c
-e9
-e0
-70
-7c
-90
-4c
-d5
-e0
-b4
-02
-05
-12
-10
-e5
-80
-2f
-90
-4c
-d5
-e0
-b4
-01
-14
-90
-4c
-f7
-e0
-70
-22
-90
-4c
-e2
-74
-04
-f0
-90
-4c
-f7
-74
-01
-f0
-80
-14
-90
-4c
-f7
-e0
-b4
-01
-0d
-e4
-f0
-90
-4c
-e2
+fc
+ed
+f4
+fb
+ec
+5b
 f0
-c2
-01
-7f
-ff
-12
-0f
-d0
-12
 0f
+a1
+bb
+e4
+ff
 ef
-ef
+90
+06
+0c
+93
 60
+40
+74
+bc
+2f
+f5
+82
+e4
 34
-90
 4d
-d9
+f5
+83
 e0
-ff
-90
-4c
-b7
+fe
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
 e0
-6f
+6e
 60
-36
-e0
-30
-e1
-0f
-90
-4c
-e7
+23
 74
-0c
-f0
-d2
-01
-7f
-1e
-12
-0f
-d0
-80
-0c
-c2
-01
-7f
-1e
-12
-0f
-d0
+bc
+2f
+f5
+82
 e4
-90
-4c
-e7
-f0
-90
-4c
-b7
+34
+4d
+f5
+83
+c0
+83
+c0
+82
 e0
-90
+fe
+74
+a8
+2f
+f5
+82
+e4
+34
 4d
-d9
-f0
-22
-c2
-01
-7f
-1e
-02
-0f
+f5
+83
+e0
+fd
+ee
+5d
 d0
-c2
-01
-7f
-1e
-12
-0f
+82
 d0
+83
+f0
+0f
+80
+b9
 22
 90
 80
@@ -8008,147 +7846,52 @@
 7a
 4e
 79
-0b
-78
-1d
-7c
-4e
-7d
-01
-7e
-00
-7f
-12
-02
-03
-90
-22
-90
-4e
-b3
-e0
-ff
-c3
-94
-04
-50
-1b
-ef
-25
-e0
-24
-d6
-f5
-82
-e4
-34
-4c
-f5
-83
-74
-79
-f0
-a3
-74
-90
-f0
-90
-4e
-b3
-e0
-04
-f0
-80
-db
-90
-4c
-8f
-e0
-64
-02
-60
-03
-02
-20
-26
-90
-4c
-91
-e0
-fe
-a3
-e0
-ff
-c3
-90
-4c
-94
-e0
-9f
-fd
-90
-4c
-93
-e0
-9e
-fc
-e4
-12
-02
-06
-7b
-c3
-7a
-f5
-79
-88
-78
-3f
-12
-00
-fb
-c0
-04
-c0
-05
-c0
-06
-c0
-07
-90
-4c
-91
-e0
-fc
-a3
-e0
-fd
-e4
-12
-02
-06
-d0
-03
-d0
-02
-d0
+0b
+78
+1d
+7c
+4e
+7d
 01
-d0
-00
-12
+7e
 00
-0a
+7f
 12
 02
-3f
+03
+90
 90
 4c
-de
-ee
+d3
+74
+05
 f0
+e4
 a3
+f0
+ff
 ef
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+74
+51
 f0
+a3
+f0
+0f
+ef
+b4
+04
+ea
 90
 4c
 91
@@ -8175,11 +7918,11 @@
 02
 06
 7b
-ae
+a4
 7a
-47
+70
 79
-81
+3d
 78
 3f
 12
@@ -8221,23 +7964,12 @@
 3f
 90
 4c
-e0
+de
 ee
 f0
 a3
 ef
 f0
-22
-90
-4c
-8f
-e0
-64
-01
-70
-02
-01
-cc
 90
 4c
 91
@@ -8264,13 +7996,13 @@
 02
 06
 7b
-c3
+1f
 7a
-f5
+85
 79
-a8
+2b
 78
-3e
+3f
 12
 00
 fb
@@ -8310,102 +8042,66 @@
 3f
 90
 4c
-de
+e0
 ee
 f0
 a3
 ef
 f0
+22
+90
+4e
+75
+12
+05
+33
+00
+00
+00
+00
 90
 4c
-91
+95
 e0
 fe
 a3
 e0
 ff
-c3
 90
 4c
-94
+d4
 e0
-9f
 fd
-90
-4c
-93
-e0
-9e
-fc
-e4
-12
-02
-06
-7b
-5c
-7a
-8f
-79
-42
-78
-3e
-12
-00
-fb
-c0
 04
-c0
-05
-c0
-06
-c0
-07
-90
-4c
-91
-e0
-fc
-a3
+f0
+ed
+25
 e0
-fd
+24
+d6
+f5
+82
 e4
-12
-02
-06
-d0
-03
-d0
-02
-d0
-01
-d0
-00
-12
-00
-0a
-12
-02
-3f
-90
+34
 4c
-e0
+f5
+83
 ee
 f0
 a3
 ef
 f0
-22
 90
-4e
-75
-12
-05
-33
-00
-00
-00
-00
-22
+4c
+d4
+e0
+c3
+94
+04
+40
+02
+e4
+f0
 e4
 90
 4e
@@ -8577,6 +8273,9 @@
 d5
 f0
 22
+02
+0d
+e8
 90
 4e
 8a
@@ -8785,16 +8484,16 @@
 6f
 70
 02
-61
-06
+21
+d9
 7e
 0c
 7f
 4b
 7d
 03
-31
-dd
+11
+b0
 90
 4e
 9b
@@ -8902,8 +8601,8 @@
 b6
 14
 fd
-31
-dd
+11
+b0
 90
 4e
 9b
@@ -9105,6 +8804,74 @@
 22
 90
 4e
+46
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+4c
+74
+ff
+f5
+f0
+12
+04
+24
+45
+f0
+60
+2a
+90
+4e
+49
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+46
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+ef
+12
+03
+fc
+80
+c8
+22
+90
+4e
 a1
 eb
 f0
Index: output/ramcode.rom
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/ramcode.rom	(revision 114)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/ramcode.rom	(working copy)
@@ -1,46 +1,44 @@
 c5128010
 c0000027
-c001002d
-c0018035
-c002803e
-c0480187
-c049015a
-c04a0160
-c04a814a
-c058022c
-c058810e
-c0590122
-c059813c
-c05b0145
-c05c8116
+c001002b
+c0018033
+c002803c
+c0480185
+c0490158
+c04a015e
+c04a8148
+c058022a
+c058810c
+c0590120
+c059813a
+c05b0143
+c05c8114
 20203bf1
-c0190238
+c0190236
 c01dd3b0
-c01f01fa
-c01f81fe
-c0250281
-c0258231
-c026023b
-c0270241
-c02b0248
-c0318250
-c0320275
-c03282a6
-c0348403
-c03583ec
-c037040a
-c037828c
-c04380e9
-c046820c
-c0478202
-c0668191
-c06780f4
-c06800fe
+c01f01f8
+c01f81fc
+c025027f
+c025822f
+c0260239
+c027023f
+c02b0246
+c031824e
+c0320273
+c03282a4
+c0348401
+c03583ea
+c0370408
+c037828a
+c04380e7
+c046820a
+c0478200
+c066818f
+c06780f2
+c06800fc
 20203bf1
 6810813b
 60008b81
-58010620
-6001cd4c
 70800608
 20203003
 20407719
@@ -49,11 +47,11 @@
 6800c7dc
 203a3013
 6800c793
-203a002f
+203a002d
 20203013
-20400084
-20400042
-20400039
+20400082
+20400040
+20400037
 20203015
 680947f4
 6800c3d8
@@ -65,34 +63,34 @@
 20403024
 20203022
 6800c7dc
-203a0046
+203a0044
 6800c793
 207a0000
-204000e4
+204000e2
 20740000
 1ff0fe00
 1fe20c00
-204000c5
+204000c3
 6000cba7
-c0008059
+c0008057
 1fe20400
 18c22200
 6800c040
-c3000056
+c3000054
 1a220c00
 c6848000
 18427e00
-c0028063
+c0028061
 20203bf1
 1a220c00
 d8a000f8
-202000bd
-204000c5
-204000c5
+202000bb
+204000c3
+204000c3
 60008b7d
-2040005e
+2040005c
 20207c33
-204000c8
+204000c6
 18c20400
 18508400
 60094b9a
@@ -106,30 +104,30 @@
 d8a04bad
 98a08a00
 1a220c00
-204000c5
+204000c3
 18c22200
 1fe0ffff
 1fe27200
 1fe0fe07
 6000cc82
 1a220c00
-204000c5
+204000c3
 18c22200
-c0008078
-c0010080
-c0018082
+c0008076
+c001007e
+c0018080
 68014cb8
 e0a10000
 1a220c00
-204000bf
+204000bd
 2040561e
 247a0000
 700b7d1b
 20205620
 68014cba
-20200079
+20200077
 68014cbc
-20200079
+20200077
 680a4c59
 1c427e00
 98467e00
@@ -149,18 +147,18 @@
 1fe17e03
 c1800000
 6800cc8f
-c28000a1
-c28080a3
+c280009f
+c28080a1
 da200000
-204000b4
+204000b2
 7089718f
 6800cc90
 60108973
-204000a4
+204000a2
 da200001
-202000b4
+202000b2
 708971bf
-202000a4
+202000a2
 708971af
 68108053
 79207e07
@@ -183,19 +181,19 @@
 98460400
 1a227e00
 79200407
-243a00bb
+243a00b9
 793f8407
 d8a08078
 202069f4
-204000c5
+204000c3
 1fe27200
-204000c1
-2020005e
-204000c5
+204000bf
+2020005c
+204000c3
 e0a08000
-c20000c1
+c20000bf
 20600000
-204000c8
+204000c6
 e8c08000
 20600000
 58004b36
@@ -212,8 +210,8 @@
 1a220c00
 e8c08000
 e0a08000
-204000dc
-c20000d4
+204000da
+c20000d2
 18a27e00
 1ff0fe00
 60014ba0
@@ -225,7 +223,7 @@
 20600000
 68014b9e
 68094ba0
-202000e6
+202000e4
 68014b9a
 68094b9c
 98467c00
@@ -236,7 +234,7 @@
 6808c7ef
 6800cd4b
 98467c00
-244100f0
+244100ee
 20207c06
 680a4d48
 600a47ec
@@ -246,11 +244,11 @@
 20407f9f
 207a0000
 1fe22600
-204000fa
+204000f8
 20203ea5
 c10c0000
-c00a041b
-c00a8421
+c00a0419
+c00a841f
 20203e7d
 60088259
 6800cc8d
@@ -260,14 +258,14 @@
 207a0000
 1fe0ffff
 60008259
-20200102
+20200100
 1a627e00
 1fe17ef0
 c1280000
 1a627e00
 207a0000
 6000cba4
-202000cd
+202000cb
 70416e7f
 20403cf3
 6800cc97
@@ -306,32 +304,32 @@
 6800c793
 207a0000
 20203d25
-204000e4
+204000e2
 24740000
-204000e1
+204000df
 24740000
 700b7f01
 700b7e01
-20400141
-202000e4
-20400134
+2040013f
+202000e2
+20400132
 24740000
 68008b7f
 247a0000
 20203d2d
 68008b7e
 2000000a
-c0800141
+c080013f
 20600000
-20400134
+20400132
 24740000
 68008b7f
 247a0000
 20203d4f
-2040014c
+2040014a
 20203aaf
 6800c219
-243a0152
+243a0150
 20403d91
 20007530
 20007530
@@ -350,7 +348,7 @@
 60088017
 1840a200
 20203ab6
-2040015d
+2040015b
 58000500
 20403bf3
 70890601
@@ -369,7 +367,7 @@
 e8c28000
 e0a28000
 708956df
-20400176
+20400174
 708955df
 20600000
 20000004
@@ -390,7 +388,7 @@
 708956c0
 20600000
 2030ba6f
-2040017e
+2040017c
 20203a6f
 78347c00
 68120138
@@ -402,15 +400,15 @@
 700b7e00
 70017706
 20403fa4
-58000190
+5800018e
 6001428a
-58000107
+58000105
 60014292
-58000201
+580001ff
 60014290
-58000042
+58000040
 6001428c
-5800018a
+58000188
 60014288
 58004aa0
 1ff0fe00
@@ -422,31 +420,31 @@
 60014b9e
 60014ba0
 6800cc97
-c02d01bf
-203581bd
+c02d01bd
+203581bb
 68014c91
 1ff0fe00
 60014c91
 68014c93
 1ff0fe00
 60014c93
-204001ca
+204001c8
 680402a0
-243a01b7
+243a01b5
 68014ad4
 1ff0fe00
-203a01b7
+203a01b5
 60014c93
-20400428
+20400426
 704ba42f
-204000cd
+204000cb
 704c9700
 70828003
 20600000
 704ba430
-202001b9
+202001b7
 1ce27e00
-203a0204
+203a0202
 20405b63
 20404d99
 58000000
@@ -455,7 +453,7 @@
 1c427e00
 60024c59
 704ba433
-202001b9
+202001b7
 2040688a
 580007e2
 da2002a0
@@ -465,8 +463,8 @@
 680402a0
 207a0000
 6800cc8f
-c28001dc
-c28081ea
+c28001da
+c28081e8
 680102a0
 1ff0fe00
 60014c91
@@ -513,7 +511,7 @@
 202053d9
 20600000
 700b7e03
-20400141
+2040013f
 704c975a
 20403db8
 68120138
@@ -529,10 +527,10 @@
 20407c24
 18427e00
 207a0000
-c006821b
-c0158223
-c0150225
-c0088219
+c0068219
+c0158221
+c0150223
+c0088217
 c0097c85
 20207c5a
 700b7d22
@@ -570,15 +568,15 @@
 70443f00
 2020534e
 204053dd
-2040023e
+2040023c
 202054c1
-20368163
+20368161
 204053ee
 20203a91
 6800cc60
 600246f9
 6800c4db
-c0008246
+c0008244
 202054e0
 7044db00
 202054ef
@@ -591,11 +589,11 @@
 70413101
 2020557e
 6800c440
-c003826a
-c007826e
-c003025c
-c0010259
-c0098257
+c0038268
+c007826c
+c003025a
+c0010257
+c0098255
 2020563a
 18000401
 20205892
@@ -609,9 +607,9 @@
 700b7d34
 20407c27
 6800cc69
-c0010266
+c0010264
 70413101
-20200268
+20200266
 700b7d46
 20405620
 18000401
@@ -629,7 +627,7 @@
 2020588a
 6800c444
 c004d719
-c001027a
+c0010278
 c003d70d
 20205656
 59000302
@@ -652,24 +650,24 @@
 202054af
 e8c18000
 600183f9
-c0290292
-c00102a4
-c0090298
+c0290290
+c00102a2
+c0090296
 20205907
 704d3801
 680103fa
-c00f8296
+c00f8294
 202059ed
 d8c00349
-2020022e
+2020022c
 680103fa
 1fe67c1f
-20428296
+20428294
 680103fa
 68094cbc
 18408401
 98467c00
-202282a1
+2022829f
 202059ca
 700b7d34
 20407c27
@@ -677,19 +675,19 @@
 700b7d03
 20205620
 6800c444
-c00d83de
-c00e83de
-c0088372
-c0048324
-c0028312
-c00382c6
+c00d83dc
+c00e83dc
+c0088370
+c0048322
+c0028310
+c00382c4
 c009d85c
-c00182b7
-c00582ba
-c00682b2
+c00182b5
+c00582b8
+c00682b0
 20205666
 680103fa
-c00382b5
+c00382b3
 202057d6
 7003fc07
 20205729
@@ -697,7 +695,7 @@
 e0a10000
 2020588a
 680103fa
-c00702bd
+c00702bb
 202057c6
 6800cc69
 c08057c6
@@ -713,16 +711,16 @@
 680944c0
 58001812
 98467c00
-202282df
+202282dd
 5800180f
 98467c00
-202282e1
+202282df
 5800180a
 98467c00
-202282e5
+202282e3
 58001801
 98467c00
-202282e3
+202282e1
 20205754
 6800cc7f
 d8400000
@@ -732,21 +730,21 @@
 6800cc7f
 f9207e00
 6000cc7f
-202002e7
+202002e5
 d8e00000
-202002d6
+202002d4
 d8e00001
-202002d6
+202002d4
 d8e00003
-202002d6
+202002d4
 d8e00002
-202002d6
+202002d4
 680144c0
 1fe22200
 680944c4
 18422400
-204002ee
-202282f9
+204002ec
+202282f7
 20205728
 d8c04504
 e8c10000
@@ -758,11 +756,11 @@
 18c08dfd
 e8c08000
 98c08c00
-202002ef
+202002ed
 18c08df9
 e8c10000
 60014c61
-20400307
+20400305
 203a5728
 18c08dfc
 e8c10000
@@ -783,14 +781,14 @@
 20628000
 e8c08000
 98c08c00
-2020030a
+20200308
 d9600003
 18007e01
 6000c445
 20405a74
 20405a7d
 203a5746
-24210322
+24210320
 78547c00
 e0a10000
 e8c10000
@@ -799,54 +797,54 @@
 2022d746
 e8c08000
 98c08c00
-20200316
+20200314
 18c08c02
-2020031f
+2020031d
 680944c0
 58002a00
 98467c00
-20228364
+20228362
 58002a50
 98467c00
-2022836f
+2022836d
 58002803
 98467c00
 2422d728
 680144bc
 600102a0
 78347c00
-204003b6
-24210340
+204003b4
+2421033e
 680902a0
-204003be
-c0008340
-204003ba
-2422833e
+204003bc
+c000833e
+204003b8
+2422833c
 78547c00
-20400342
-204003a4
-204003be
-2040034a
-20200340
-204003a4
-20200331
+20400340
+204003a2
+204003bc
+20400348
+2020033e
+204003a2
+2020032f
 20345728
-202003dc
+202003da
 680102a0
 60014446
 6800cc67
 1fe27200
-204003d3
+204003d1
 d8a04448
 20407e45
-202003d6
+202003d4
 68094c65
 184cfe00
-c082835c
-204003d0
+c082835a
+204003ce
 680102a0
 e0a10000
-204003d6
+204003d4
 58004504
 98408c00
 e8c08000
@@ -854,16 +852,16 @@
 1fe27200
 1fe0fe05
 6000c445
-204003d0
+204003ce
 18420c00
 20407e45
-202003d6
-204003d0
+202003d4
+204003ce
 680102a0
 e0a10000
 68014c65
 e0a10000
-204003d6
+204003d4
 70444507
 20600000
 20405b08
@@ -879,57 +877,57 @@
 2020588a
 d8402a50
 20405b0c
-20200365
+20200363
 d9600002
 680144bc
 600102a0
 700d5c00
 78347c00
-204003b6
-2421039a
+204003b4
+24210398
 680902a0
-204003be
-c000839d
-204003ba
-24228396
+204003bc
+c000839b
+204003b8
+24228394
 68008d5c
-c000839d
-24340387
+c000839b
+24340385
 78547c00
 6800cc67
 1fe0fe04
 6000c445
-204003d6
-20200391
+204003d4
+2020038f
 6800cc67
 1fe67c10
-2022839d
+2022839b
 6800c445
 1fe67c10
-2022839d
+2022839b
 680102a0
 1fe0ffff
 60010d5a
-204003ad
+204003ab
 680102a0
 60010d58
-204003a8
+204003a6
 196097ff
-20228398
-204003a4
-20200377
+20228396
+204003a2
+20200375
 700d5c01
-20200396
+20200394
 680102a0
 60010d5a
-202003a1
+2020039f
 680102a0
 1fe0ffff
 60010d5a
-202003a1
+2020039f
 20345728
-204003ad
-202003dc
+204003ab
+202003da
 680902a0
 18408401
 600902a0
@@ -937,9 +935,9 @@
 6800cc67
 60008103
 1fe27200
-204003d3
+204003d1
 20207e45
-204003d0
+204003ce
 68010d58
 e0a10000
 68010d5a
@@ -947,7 +945,7 @@
 68008103
 1fe27200
 20407e45
-202003d6
+202003d4
 680902a0
 680144be
 98467c00
@@ -959,19 +957,19 @@
 d8c04504
 18422200
 e8c10000
-203a03c9
+203a03c7
 e8c90000
 60094c65
 9a267c00
-202283cb
+202283c9
 e8c08000
 98c08c00
-202003c0
+202003be
 58000001
 20600000
 e8c08000
 6000cc67
-204003d9
+204003d7
 58000000
 20600000
 680102b9
@@ -986,7 +984,7 @@
 18c27e00
 600102b7
 20600000
-204003d0
+204003ce
 2020588a
 6800cbab
 1fe08401
@@ -1003,11 +1001,11 @@
 6808cc82
 20205892
 1a627e00
-c00183fa
-c00503fe
-c00003f7
-c00903fc
-c0010400
+c00183f8
+c00503fc
+c00003f5
+c00903fa
+c00103fe
 1fe67c0d
 202158c0
 6000cc68
@@ -1027,15 +1025,15 @@
 20600000
 6800c43e
 28200601
-20208407
+20208405
 202058a7
 6800c43f
 207a0000
 202058a7
 e8c08000
-c0008411
-c0020416
-c004840f
+c000840f
+c0020414
+c004840d
 202058f8
 704c6903
 20205974
@@ -1045,7 +1043,7 @@
 700b7d42
 20205620
 204074a8
-20228419
+20228417
 20205968
 704c6902
 2020596a
Index: output/sched.rom
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/sched.rom	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/output/sched.rom	(working copy)
@@ -276,9 +276,9 @@
 090101 25084b6579626f617264
 090200 090103
 090201# VendorID
-090a5c
+0904e8
 090202#ProductID
-098502
+097021
 090203 090001
 090204 2801
 090205 090002
@@ -317,11 +317,6 @@
 4ba2:02 01
 
 
-4c91:9f 3e
-4c93:cd 4d
-4c8f:04    #01 VINLPM      #02 HVIN      #04 GPIO
-
-
 #attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
 4504:
 
@@ -351,7 +346,7 @@
 0c 00 00 28 02 0a 18 
 #Characteristic: pnp id
 0d 00 03 28 01 02
-0e 00 50 2a 07 02 8a 24 66 82 01 00
+0e 00 50 2a 07 02 e8 04 21 70 01 00		# SAMSUNG soft keyboard,setup shortcuts
 
 #Primary service: HID
 0f 00 00 28 02 12 18
@@ -544,6 +539,12 @@
 43fa:
 '\09BT4.2 Keyboard
 
+4d4c:20 20 06 12		#version data 20200612
+
+4c91:9f 3e
+4c93:cd 4d
+4c8f:01    #01 VINLPM      #02 HVIN      #04 GPIO
+
 4216:8f 10 ce
 4219:00 0a 0b ef 0f
 41f8:00
Index: patch/adc.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: patch/bluetooth.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: patch/global_variable.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: patch/kb.dat
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/patch/kb.dat	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/patch/kb.dat	(working copy)
@@ -276,9 +276,9 @@
 090101 25084b6579626f617264
 090200 090103
 090201# VendorID
-090a5c
+0904e8
 090202#ProductID
-098502
+097021
 090203 090001
 090204 2801
 090205 090002
@@ -317,11 +317,6 @@
 mem_ipc_tx_evt_buff:02 01
 
 
-mem_adc_0v:9f 3e
-mem_adc_3v:cd 4d
-mem_adc_config_flag:04    #01 VINLPM      #02 HVIN      #04 GPIO
-
-
 #attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
 mem_le_att_list:
 
@@ -351,7 +346,7 @@
 0c 00 00 28 02 0a 18 
 #Characteristic: pnp id
 0d 00 03 28 01 02
-0e 00 50 2a 07 02 8a 24 66 82 01 00
+0e 00 50 2a 07 02 e8 04 21 70 01 00		# SAMSUNG soft keyboard,setup shortcuts
 
 #Primary service: HID
 0f 00 00 28 02 12 18
@@ -544,3 +539,9 @@
 mem_le_scan_data:
 '\09BT4.2 Keyboard
 
+mem_version_yy_mm_dd:20 20 06 12		#version data 20200612
+
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+mem_adc_config_flag:01    #01 VINLPM      #02 HVIN      #04 GPIO
+
Index: patch/kb_process.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: patch/keyboard.format
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/patch/keyboard.format	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/patch/keyboard.format	(working copy)
@@ -167,7 +167,7 @@
 1 mem_mouse_retry_flag
 1 mem_adc_pu_bit
 4 mem_ui_timer_last_btclk_temp
-3 mem_version_yy_mm_dd
+4 mem_version_yy_mm_dd
 )
 
 //C51 synchronous task
Index: patch/keyscan.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: patch/led.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: patch/ram.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: patch/ramcode.rom
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/patch/ramcode.rom	(revision 114)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/patch/ramcode.rom	(working copy)
@@ -1,46 +1,44 @@
 c5128010
 c0000027
-c001002d
-c0018035
-c002803e
-c0480187
-c049015a
-c04a0160
-c04a814a
-c058022c
-c058810e
-c0590122
-c059813c
-c05b0145
-c05c8116
+c001002b
+c0018033
+c002803c
+c0480185
+c0490158
+c04a015e
+c04a8148
+c058022a
+c058810c
+c0590120
+c059813a
+c05b0143
+c05c8114
 20203bf1
-c0190238
+c0190236
 c01dd3b0
-c01f01fa
-c01f81fe
-c0250281
-c0258231
-c026023b
-c0270241
-c02b0248
-c0318250
-c0320275
-c03282a6
-c0348403
-c03583ec
-c037040a
-c037828c
-c04380e9
-c046820c
-c0478202
-c0668191
-c06780f4
-c06800fe
+c01f01f8
+c01f81fc
+c025027f
+c025822f
+c0260239
+c027023f
+c02b0246
+c031824e
+c0320273
+c03282a4
+c0348401
+c03583ea
+c0370408
+c037828a
+c04380e7
+c046820a
+c0478200
+c066818f
+c06780f2
+c06800fc
 20203bf1
 6810813b
 60008b81
-58010620
-6001cd4c
 70800608
 20203003
 20407719
@@ -49,11 +47,11 @@
 6800c7dc
 203a3013
 6800c793
-203a002f
+203a002d
 20203013
-20400084
-20400042
-20400039
+20400082
+20400040
+20400037
 20203015
 680947f4
 6800c3d8
@@ -65,34 +63,34 @@
 20403024
 20203022
 6800c7dc
-203a0046
+203a0044
 6800c793
 207a0000
-204000e4
+204000e2
 20740000
 1ff0fe00
 1fe20c00
-204000c5
+204000c3
 6000cba7
-c0008059
+c0008057
 1fe20400
 18c22200
 6800c040
-c3000056
+c3000054
 1a220c00
 c6848000
 18427e00
-c0028063
+c0028061
 20203bf1
 1a220c00
 d8a000f8
-202000bd
-204000c5
-204000c5
+202000bb
+204000c3
+204000c3
 60008b7d
-2040005e
+2040005c
 20207c33
-204000c8
+204000c6
 18c20400
 18508400
 60094b9a
@@ -106,30 +104,30 @@
 d8a04bad
 98a08a00
 1a220c00
-204000c5
+204000c3
 18c22200
 1fe0ffff
 1fe27200
 1fe0fe07
 6000cc82
 1a220c00
-204000c5
+204000c3
 18c22200
-c0008078
-c0010080
-c0018082
+c0008076
+c001007e
+c0018080
 68014cb8
 e0a10000
 1a220c00
-204000bf
+204000bd
 2040561e
 247a0000
 700b7d1b
 20205620
 68014cba
-20200079
+20200077
 68014cbc
-20200079
+20200077
 680a4c59
 1c427e00
 98467e00
@@ -149,18 +147,18 @@
 1fe17e03
 c1800000
 6800cc8f
-c28000a1
-c28080a3
+c280009f
+c28080a1
 da200000
-204000b4
+204000b2
 7089718f
 6800cc90
 60108973
-204000a4
+204000a2
 da200001
-202000b4
+202000b2
 708971bf
-202000a4
+202000a2
 708971af
 68108053
 79207e07
@@ -183,19 +181,19 @@
 98460400
 1a227e00
 79200407
-243a00bb
+243a00b9
 793f8407
 d8a08078
 202069f4
-204000c5
+204000c3
 1fe27200
-204000c1
-2020005e
-204000c5
+204000bf
+2020005c
+204000c3
 e0a08000
-c20000c1
+c20000bf
 20600000
-204000c8
+204000c6
 e8c08000
 20600000
 58004b36
@@ -212,8 +210,8 @@
 1a220c00
 e8c08000
 e0a08000
-204000dc
-c20000d4
+204000da
+c20000d2
 18a27e00
 1ff0fe00
 60014ba0
@@ -225,7 +223,7 @@
 20600000
 68014b9e
 68094ba0
-202000e6
+202000e4
 68014b9a
 68094b9c
 98467c00
@@ -236,7 +234,7 @@
 6808c7ef
 6800cd4b
 98467c00
-244100f0
+244100ee
 20207c06
 680a4d48
 600a47ec
@@ -246,11 +244,11 @@
 20407f9f
 207a0000
 1fe22600
-204000fa
+204000f8
 20203ea5
 c10c0000
-c00a041b
-c00a8421
+c00a0419
+c00a841f
 20203e7d
 60088259
 6800cc8d
@@ -260,14 +258,14 @@
 207a0000
 1fe0ffff
 60008259
-20200102
+20200100
 1a627e00
 1fe17ef0
 c1280000
 1a627e00
 207a0000
 6000cba4
-202000cd
+202000cb
 70416e7f
 20403cf3
 6800cc97
@@ -306,32 +304,32 @@
 6800c793
 207a0000
 20203d25
-204000e4
+204000e2
 24740000
-204000e1
+204000df
 24740000
 700b7f01
 700b7e01
-20400141
-202000e4
-20400134
+2040013f
+202000e2
+20400132
 24740000
 68008b7f
 247a0000
 20203d2d
 68008b7e
 2000000a
-c0800141
+c080013f
 20600000
-20400134
+20400132
 24740000
 68008b7f
 247a0000
 20203d4f
-2040014c
+2040014a
 20203aaf
 6800c219
-243a0152
+243a0150
 20403d91
 20007530
 20007530
@@ -350,7 +348,7 @@
 60088017
 1840a200
 20203ab6
-2040015d
+2040015b
 58000500
 20403bf3
 70890601
@@ -369,7 +367,7 @@
 e8c28000
 e0a28000
 708956df
-20400176
+20400174
 708955df
 20600000
 20000004
@@ -390,7 +388,7 @@
 708956c0
 20600000
 2030ba6f
-2040017e
+2040017c
 20203a6f
 78347c00
 68120138
@@ -402,15 +400,15 @@
 700b7e00
 70017706
 20403fa4
-58000190
+5800018e
 6001428a
-58000107
+58000105
 60014292
-58000201
+580001ff
 60014290
-58000042
+58000040
 6001428c
-5800018a
+58000188
 60014288
 58004aa0
 1ff0fe00
@@ -422,31 +420,31 @@
 60014b9e
 60014ba0
 6800cc97
-c02d01bf
-203581bd
+c02d01bd
+203581bb
 68014c91
 1ff0fe00
 60014c91
 68014c93
 1ff0fe00
 60014c93
-204001ca
+204001c8
 680402a0
-243a01b7
+243a01b5
 68014ad4
 1ff0fe00
-203a01b7
+203a01b5
 60014c93
-20400428
+20400426
 704ba42f
-204000cd
+204000cb
 704c9700
 70828003
 20600000
 704ba430
-202001b9
+202001b7
 1ce27e00
-203a0204
+203a0202
 20405b63
 20404d99
 58000000
@@ -455,7 +453,7 @@
 1c427e00
 60024c59
 704ba433
-202001b9
+202001b7
 2040688a
 580007e2
 da2002a0
@@ -465,8 +463,8 @@
 680402a0
 207a0000
 6800cc8f
-c28001dc
-c28081ea
+c28001da
+c28081e8
 680102a0
 1ff0fe00
 60014c91
@@ -513,7 +511,7 @@
 202053d9
 20600000
 700b7e03
-20400141
+2040013f
 704c975a
 20403db8
 68120138
@@ -529,10 +527,10 @@
 20407c24
 18427e00
 207a0000
-c006821b
-c0158223
-c0150225
-c0088219
+c0068219
+c0158221
+c0150223
+c0088217
 c0097c85
 20207c5a
 700b7d22
@@ -570,15 +568,15 @@
 70443f00
 2020534e
 204053dd
-2040023e
+2040023c
 202054c1
-20368163
+20368161
 204053ee
 20203a91
 6800cc60
 600246f9
 6800c4db
-c0008246
+c0008244
 202054e0
 7044db00
 202054ef
@@ -591,11 +589,11 @@
 70413101
 2020557e
 6800c440
-c003826a
-c007826e
-c003025c
-c0010259
-c0098257
+c0038268
+c007826c
+c003025a
+c0010257
+c0098255
 2020563a
 18000401
 20205892
@@ -609,9 +607,9 @@
 700b7d34
 20407c27
 6800cc69
-c0010266
+c0010264
 70413101
-20200268
+20200266
 700b7d46
 20405620
 18000401
@@ -629,7 +627,7 @@
 2020588a
 6800c444
 c004d719
-c001027a
+c0010278
 c003d70d
 20205656
 59000302
@@ -652,24 +650,24 @@
 202054af
 e8c18000
 600183f9
-c0290292
-c00102a4
-c0090298
+c0290290
+c00102a2
+c0090296
 20205907
 704d3801
 680103fa
-c00f8296
+c00f8294
 202059ed
 d8c00349
-2020022e
+2020022c
 680103fa
 1fe67c1f
-20428296
+20428294
 680103fa
 68094cbc
 18408401
 98467c00
-202282a1
+2022829f
 202059ca
 700b7d34
 20407c27
@@ -677,19 +675,19 @@
 700b7d03
 20205620
 6800c444
-c00d83de
-c00e83de
-c0088372
-c0048324
-c0028312
-c00382c6
+c00d83dc
+c00e83dc
+c0088370
+c0048322
+c0028310
+c00382c4
 c009d85c
-c00182b7
-c00582ba
-c00682b2
+c00182b5
+c00582b8
+c00682b0
 20205666
 680103fa
-c00382b5
+c00382b3
 202057d6
 7003fc07
 20205729
@@ -697,7 +695,7 @@
 e0a10000
 2020588a
 680103fa
-c00702bd
+c00702bb
 202057c6
 6800cc69
 c08057c6
@@ -713,16 +711,16 @@
 680944c0
 58001812
 98467c00
-202282df
+202282dd
 5800180f
 98467c00
-202282e1
+202282df
 5800180a
 98467c00
-202282e5
+202282e3
 58001801
 98467c00
-202282e3
+202282e1
 20205754
 6800cc7f
 d8400000
@@ -732,21 +730,21 @@
 6800cc7f
 f9207e00
 6000cc7f
-202002e7
+202002e5
 d8e00000
-202002d6
+202002d4
 d8e00001
-202002d6
+202002d4
 d8e00003
-202002d6
+202002d4
 d8e00002
-202002d6
+202002d4
 680144c0
 1fe22200
 680944c4
 18422400
-204002ee
-202282f9
+204002ec
+202282f7
 20205728
 d8c04504
 e8c10000
@@ -758,11 +756,11 @@
 18c08dfd
 e8c08000
 98c08c00
-202002ef
+202002ed
 18c08df9
 e8c10000
 60014c61
-20400307
+20400305
 203a5728
 18c08dfc
 e8c10000
@@ -783,14 +781,14 @@
 20628000
 e8c08000
 98c08c00
-2020030a
+20200308
 d9600003
 18007e01
 6000c445
 20405a74
 20405a7d
 203a5746
-24210322
+24210320
 78547c00
 e0a10000
 e8c10000
@@ -799,54 +797,54 @@
 2022d746
 e8c08000
 98c08c00
-20200316
+20200314
 18c08c02
-2020031f
+2020031d
 680944c0
 58002a00
 98467c00
-20228364
+20228362
 58002a50
 98467c00
-2022836f
+2022836d
 58002803
 98467c00
 2422d728
 680144bc
 600102a0
 78347c00
-204003b6
-24210340
+204003b4
+2421033e
 680902a0
-204003be
-c0008340
-204003ba
-2422833e
+204003bc
+c000833e
+204003b8
+2422833c
 78547c00
-20400342
-204003a4
-204003be
-2040034a
-20200340
-204003a4
-20200331
+20400340
+204003a2
+204003bc
+20400348
+2020033e
+204003a2
+2020032f
 20345728
-202003dc
+202003da
 680102a0
 60014446
 6800cc67
 1fe27200
-204003d3
+204003d1
 d8a04448
 20407e45
-202003d6
+202003d4
 68094c65
 184cfe00
-c082835c
-204003d0
+c082835a
+204003ce
 680102a0
 e0a10000
-204003d6
+204003d4
 58004504
 98408c00
 e8c08000
@@ -854,16 +852,16 @@
 1fe27200
 1fe0fe05
 6000c445
-204003d0
+204003ce
 18420c00
 20407e45
-202003d6
-204003d0
+202003d4
+204003ce
 680102a0
 e0a10000
 68014c65
 e0a10000
-204003d6
+204003d4
 70444507
 20600000
 20405b08
@@ -879,57 +877,57 @@
 2020588a
 d8402a50
 20405b0c
-20200365
+20200363
 d9600002
 680144bc
 600102a0
 700d5c00
 78347c00
-204003b6
-2421039a
+204003b4
+24210398
 680902a0
-204003be
-c000839d
-204003ba
-24228396
+204003bc
+c000839b
+204003b8
+24228394
 68008d5c
-c000839d
-24340387
+c000839b
+24340385
 78547c00
 6800cc67
 1fe0fe04
 6000c445
-204003d6
-20200391
+204003d4
+2020038f
 6800cc67
 1fe67c10
-2022839d
+2022839b
 6800c445
 1fe67c10
-2022839d
+2022839b
 680102a0
 1fe0ffff
 60010d5a
-204003ad
+204003ab
 680102a0
 60010d58
-204003a8
+204003a6
 196097ff
-20228398
-204003a4
-20200377
+20228396
+204003a2
+20200375
 700d5c01
-20200396
+20200394
 680102a0
 60010d5a
-202003a1
+2020039f
 680102a0
 1fe0ffff
 60010d5a
-202003a1
+2020039f
 20345728
-204003ad
-202003dc
+204003ab
+202003da
 680902a0
 18408401
 600902a0
@@ -937,9 +935,9 @@
 6800cc67
 60008103
 1fe27200
-204003d3
+204003d1
 20207e45
-204003d0
+204003ce
 68010d58
 e0a10000
 68010d5a
@@ -947,7 +945,7 @@
 68008103
 1fe27200
 20407e45
-202003d6
+202003d4
 680902a0
 680144be
 98467c00
@@ -959,19 +957,19 @@
 d8c04504
 18422200
 e8c10000
-203a03c9
+203a03c7
 e8c90000
 60094c65
 9a267c00
-202283cb
+202283c9
 e8c08000
 98c08c00
-202003c0
+202003be
 58000001
 20600000
 e8c08000
 6000cc67
-204003d9
+204003d7
 58000000
 20600000
 680102b9
@@ -986,7 +984,7 @@
 18c27e00
 600102b7
 20600000
-204003d0
+204003ce
 2020588a
 6800cbab
 1fe08401
@@ -1003,11 +1001,11 @@
 6808cc82
 20205892
 1a627e00
-c00183fa
-c00503fe
-c00003f7
-c00903fc
-c0010400
+c00183f8
+c00503fc
+c00003f5
+c00903fa
+c00103fe
 1fe67c0d
 202158c0
 6000cc68
@@ -1027,15 +1025,15 @@
 20600000
 6800c43e
 28200601
-20208407
+20208405
 202058a7
 6800c43f
 207a0000
 202058a7
 e8c08000
-c0008411
-c0020416
-c004840f
+c000840f
+c0020414
+c004840d
 202058f8
 704c6903
 20205974
@@ -1045,7 +1043,7 @@
 700b7d42
 20205620
 204074a8
-20228419
+20228417
 20205968
 704c6902
 2020596a
Index: patch/sch.rom
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/patch/sch.rom	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/patch/sch.rom	(working copy)
@@ -276,9 +276,9 @@
 090101 25084b6579626f617264
 090200 090103
 090201# VendorID
-090a5c
+0904e8
 090202#ProductID
-098502
+097021
 090203 090001
 090204 2801
 090205 090002
@@ -317,11 +317,6 @@
 mem_ipc_tx_evt_buff:02 01
 
 
-mem_adc_0v:9f 3e
-mem_adc_3v:cd 4d
-mem_adc_config_flag:04    #01 VINLPM      #02 HVIN      #04 GPIO
-
-
 #attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
 mem_le_att_list:
 
@@ -351,7 +346,7 @@
 0c 00 00 28 02 0a 18 
 #Characteristic: pnp id
 0d 00 03 28 01 02
-0e 00 50 2a 07 02 8a 24 66 82 01 00
+0e 00 50 2a 07 02 e8 04 21 70 01 00		# SAMSUNG soft keyboard,setup shortcuts
 
 #Primary service: HID
 0f 00 00 28 02 12 18
@@ -544,6 +539,12 @@
 mem_le_scan_data:
 '\09BT4.2 Keyboard
 
+mem_version_yy_mm_dd:20 20 06 12		#version data 20200612
+
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+mem_adc_config_flag:01    #01 VINLPM      #02 HVIN      #04 GPIO
+
 mem_lpm_config:8f 10 ce
 mem_lpm_xtalcnt:00 0a 0b ef 0f
 mem_lpm_hibernate_switch:00
Index: patch/sched.rom
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/patch/sched.rom	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/patch/sched.rom	(working copy)
@@ -276,9 +276,9 @@
 090101 25084b6579626f617264
 090200 090103
 090201# VendorID
-090a5c
+0904e8
 090202#ProductID
-098502
+097021
 090203 090001
 090204 2801
 090205 090002
@@ -317,11 +317,6 @@
 mem_ipc_tx_evt_buff:02 01
 
 
-mem_adc_0v:9f 3e
-mem_adc_3v:cd 4d
-mem_adc_config_flag:04    #01 VINLPM      #02 HVIN      #04 GPIO
-
-
 #attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
 mem_le_att_list:
 
@@ -351,7 +346,7 @@
 0c 00 00 28 02 0a 18 
 #Characteristic: pnp id
 0d 00 03 28 01 02
-0e 00 50 2a 07 02 8a 24 66 82 01 00
+0e 00 50 2a 07 02 e8 04 21 70 01 00		# SAMSUNG soft keyboard,setup shortcuts
 
 #Primary service: HID
 0f 00 00 28 02 12 18
@@ -544,6 +539,12 @@
 mem_le_scan_data:
 '\09BT4.2 Keyboard
 
+mem_version_yy_mm_dd:20 20 06 12		#version data 20200612
+
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+mem_adc_config_flag:01    #01 VINLPM      #02 HVIN      #04 GPIO
+
 mem_lpm_config:8f 10 ce
 mem_lpm_xtalcnt:00 0a 0b ef 0f
 mem_lpm_hibernate_switch:00
Index: patch/sys.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: sys.h
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/sys.h	(revision 110)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/sys.h	(working copy)
@@ -2,6 +2,9 @@
 #define _YC_SYSTEM_H_
 #include "common.h"
 
+//#define MULTISYSTEM_ENABLE
+
+
 #define STANDBY_TIMER_30MIN				3600		// 500ms*3600 = 30min
 #define STANDBY_TIMER_10MIN				1200		// 500ms*1200 = 10min
 #define RECONNECT_TIMER_5S				10			// 500ms*10 = 5s
Index: sys.c
===================================================================
--- /YC1026/YC1086_only_BLE_SDK_CUSTOMER/sys.c	(revision 114)
+++ /YC1026/YC1086_only_BLE_SDK_CUSTOMER/sys.c	(working copy)
@@ -97,6 +97,15 @@
 		System_Software_init();
 		IIC_Read(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD), (byte *)bd_key_record_list);
 		Delay1ms(10);
+	#ifdef MULTISYSTEM_ENABLE	
+		IIC_Read(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+		Delay1ms(10);
+		if(g_variable.system_mode > OSMODE_IOS)
+		{
+			g_variable.system_mode = OSMODE_WINDOWS;
+			IIC_WriteBlock(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+		}
+	#endif	
 		IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
 		if(g_variable.ble_ramdon_lap1 == 0xff && g_variable.ble_ramdon_lap2 == 0xff)
 		{
@@ -104,7 +113,7 @@
 			g_variable.ble_ramdon_lap2 = m_adc0vBase;
 			g_variable.update_eeprom_flag = 1;
 		}
-
+			
 		YC_start_reconnect();
 		break;
 	case IPC_EVT_WAKEUP:
@@ -122,7 +131,7 @@
 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_INIT;
 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
 		if(!g_variable.powerOn_timer)
-			LED_device_poweroff();
+			GPIO_Setout(BT_LED_GPIO,LED_OFF);
 		g_variable.pairing_timeout = 0;
 		g_variable.sleepTimer = 0;
 		break;
@@ -185,16 +194,11 @@
 		return;
 	if (g_variable.pairing_timeout != 0) //bt  pairing
 	{
-		if (g_variable.button_reconnect_flag != 1)
-		{
-			GPIO_FlipOutBit(BT_LED_GPIO);
-		}
-		else
-		{
-			GPIO_Setout(BT_LED_GPIO,LED_OFF);
-		}
+		GPIO_FlipOutBit(BT_LED_GPIO);
+		
 	}
 
+
 	
 	if (YC_check_is_connected())
 	{
@@ -388,13 +392,22 @@
 	if(g_variable.recon_delay)
 		g_variable.recon_delay--;
 
+	if(g_variable.one_key_press_wait_release_timer)
+	{
+		g_variable.one_key_press_wait_release_timer--;
+		if(!g_variable.one_key_press_wait_release_timer)
+			g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+	}
+
+
+
 	if (g_variable.powerOn_timer != 0)
 	{	
 		g_variable.powerOn_timer--;
-		LED_device_poweron();
+		GPIO_Setout(BT_LED_GPIO,LED_ON);
 		if (!g_variable.powerOn_timer)
 		{
-			LED_device_poweroff();
+			GPIO_Setout(BT_LED_GPIO,LED_OFF);
 		}
 	}
 	else
@@ -466,8 +479,7 @@
 			break;
 			
 		case FIX_ENTER_LPM:
-			if (g_variable.delay_enter_lpm_timer ||g_variable.lockLpm ||g_variable.powerOn_timer ||
-			g_variable.sys_capslockled_on_timer  //||g_variable.sys_numlockled_on_timer
+			if (g_variable.delay_enter_lpm_timer ||g_variable.lockLpm ||g_variable.powerOn_timer ||g_variable.one_key_press_wait_release_timer
 			) 
 			{
 				IPC_AbandonLpm();
